├── .DS_Store ├── .gitignore ├── Procfile ├── README.md ├── app.json ├── app.py ├── requirements.txt ├── static ├── .DS_Store ├── LICENSE ├── README.md ├── css │ ├── freelancer.css │ └── freelancer.min.css ├── gulpfile.js ├── img │ ├── .DS_Store │ ├── add.png │ ├── add_preview.png │ ├── learn_python.jpeg │ ├── minus_preview.png │ ├── portfolio │ │ ├── chesstastic.jpeg │ │ ├── cleverprogrammer.png │ │ └── youtubecp.png │ ├── profile.png │ ├── python.jpeg │ ├── shopping_cart.png │ ├── shopping_preview.png │ ├── subtract.png │ ├── time.jpeg │ └── time_preview.png ├── js │ ├── contact_me.js │ ├── freelancer.js │ ├── freelancer.min.js │ └── jqBootstrapValidation.js ├── less │ ├── freelancer.less │ ├── mixins.less │ └── variables.less ├── mail │ └── contact_me.php ├── package.json └── vendor │ ├── .DS_Store │ ├── bootstrap │ ├── .DS_Store │ ├── css │ │ ├── bootstrap.css │ │ └── bootstrap.min.css │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ └── js │ │ ├── bootstrap.js │ │ └── bootstrap.min.js │ ├── font-awesome │ ├── css │ │ ├── font-awesome.css │ │ └── font-awesome.min.css │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── less │ │ ├── animated.less │ │ ├── bordered-pulled.less │ │ ├── core.less │ │ ├── fixed-width.less │ │ ├── font-awesome.less │ │ ├── icons.less │ │ ├── larger.less │ │ ├── list.less │ │ ├── mixins.less │ │ ├── path.less │ │ ├── rotated-flipped.less │ │ ├── screen-reader.less │ │ ├── stacked.less │ │ └── variables.less │ └── scss │ │ ├── _animated.scss │ │ ├── _bordered-pulled.scss │ │ ├── _core.scss │ │ ├── _fixed-width.scss │ │ ├── _icons.scss │ │ ├── _larger.scss │ │ ├── _list.scss │ │ ├── _mixins.scss │ │ ├── _path.scss │ │ ├── _rotated-flipped.scss │ │ ├── _screen-reader.scss │ │ ├── _stacked.scss │ │ ├── _variables.scss │ │ └── font-awesome.scss │ └── jquery │ ├── jquery.js │ └── jquery.min.js └── templates ├── .DS_Store ├── add_numbers.html ├── code.html ├── index.html ├── python_apps.html ├── shopping_list.html └── time.html /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | 49 | # Translations 50 | *.mo 51 | *.pot 52 | 53 | # Django stuff: 54 | *.log 55 | local_settings.py 56 | 57 | # Flask stuff: 58 | instance/ 59 | .webassets-cache 60 | 61 | # Scrapy stuff: 62 | .scrapy 63 | 64 | # Sphinx documentation 65 | docs/_build/ 66 | 67 | # PyBuilder 68 | target/ 69 | 70 | # Jupyter Notebook 71 | .ipynb_checkpoints 72 | 73 | # pyenv 74 | .python-version 75 | 76 | # celery beat schedule file 77 | celerybeat-schedule 78 | 79 | # SageMath parsed files 80 | *.sage.py 81 | 82 | # dotenv 83 | .env 84 | 85 | # virtualenv 86 | .venv 87 | venv/ 88 | ENV/ 89 | 90 | # Spyder project settings 91 | .spyderproject 92 | .spyproject 93 | 94 | # Rope project settings 95 | .ropeproject 96 | 97 | # mkdocs documentation 98 | /site 99 | 100 | # mypy 101 | .mypy_cache/ 102 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web gunicorn app:app --preload -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Flask Portfolio App for The Profitable Programmer Students... 2 | Flask Portfolio App for students @ Clever Programmer deployed from Cloud 9 3 | 4 | [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy) 5 | 6 | ## LIVE PORTFOLIO APP... 7 | https://my-portfolio-with-flask.herokuapp.com/ 8 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "name": "Flask Portfolio App", 4 | "description": "A simple portfolio app built with python", 5 | "repository": "https://github.com/driftyco/ionic-heroku-button", 6 | "logo": "http://www.unixstickers.com/image/data/stickers/flask/Flask-logo.sh.png", 7 | "keywords": ["Flask", "Portfolio"] 8 | } 9 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, render_template, request, redirect 2 | import datetime 3 | import pytz # timezone 4 | import requests 5 | import os 6 | 7 | 8 | 9 | app = Flask(__name__) 10 | 11 | 12 | @app.route('/', methods=['GET']) 13 | def home_page(): 14 | return render_template('index.html') 15 | 16 | @app.route('/') 17 | def profile(name): 18 | return render_template('index.html', name=name) 19 | 20 | 21 | @app.route('/add_numbers', methods=['GET','POST']) 22 | def add_numbers_post(): 23 | # --> ['5', '6', '8'] 24 | # print(type(request.form['text'])) 25 | if request.method == 'GET': 26 | return render_template('add_numbers.html') 27 | elif request.method == 'POST': 28 | print(request.form['text'].split()) 29 | total = 0 30 | try: 31 | for str_num in request.form['text'].split(): 32 | total += int(str_num) 33 | return render_template('add_numbers.html', result=str(total)) 34 | except ValueError: 35 | return "Easy now! Let's keep it simple! 2 numbers with a space between them please" 36 | 37 | 38 | @app.route('/shopping_list', methods=['GET','POST']) 39 | def shopping_list_post(): 40 | # --> ['5', '6', '8'] 41 | # print(type(request.form['text'])) 42 | 43 | if request.method == 'GET': 44 | return render_template('shopping_list.html') 45 | elif request.method == 'POST': 46 | print(request.form['text'].split()) 47 | 48 | shop_list = [] 49 | try: 50 | for item in request.form['text'].split(): 51 | 52 | shop_list.append(item) 53 | 54 | 55 | 56 | return render_template('shopping_list.html', result="\n".join([str(item) for item in shop_list])) 57 | except ValueError: 58 | return "Easy now! Let's keep it simple! Just words with a space between them" 59 | 60 | 61 | @app.route('/time', methods=['GET','POST']) 62 | def time_post(): 63 | # --> ['5', '6', '8'] 64 | # print(type(request.form['text'])) 65 | 66 | if request.method == 'GET': 67 | return render_template('time.html') 68 | elif request.method == 'POST': 69 | print(request.form['text'].split()) 70 | 71 | for item in request.form['text'].split(): 72 | answer = (datetime.datetime.now(pytz.timezone("Europe/Dublin")).strftime('Time = ' + '%H:%M:%S' + ' GMT ' + ' Year = ' + '%d-%m-%Y')) 73 | #answer = datetime.datetime.now().strftime('Time == ' + '%H:%M:%S' + ' Year == ' + '%d-%m-%Y') 74 | #answer = datetime.datetime.now().strftime('%Y-%m-%d \n %H:%M:%S') 75 | 76 | 77 | 78 | return render_template('time.html', result=answer) 79 | 80 | 81 | 82 | @app.route('/python_apps') 83 | def python_apps_page(): 84 | # testing stuff 85 | return render_template('python_apps.html') 86 | 87 | 88 | @app.route('/blog', methods=['GET']) 89 | def blog_page(): 90 | return render_template('blog.html') 91 | 92 | 93 | if __name__ == '__main__': 94 | app.run(debug=True) 95 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==0.12 2 | Flask-Babel==0.11.2 3 | Flask-Cors==3.0.2 4 | Flask-Login==0.4.0 5 | Flask-Mail==0.9.1 6 | Flask-OpenID==1.2.5 7 | Flask-SQLAlchemy==2.2 8 | Flask-WhooshAlchemy==0.56 9 | Flask-WTF==0.14.2 10 | buttercms-python==0.7 11 | 12 | gunicorn==19.7.1 13 | Jinja2==2.9.4 14 | 15 | pep8==1.7.0 16 | python-dateutil==2.6.0 17 | 18 | redis==2.10.5 19 | requests==2.12.4 20 | requests-oauthlib==0.8.0 21 | 22 | 23 | SQLAlchemy==1.1.5 24 | sqlalchemy-migrate==0.11.0 25 | sqlparse==0.2.3 26 | 27 | virtualenv==15.1.0 28 | 29 | Werkzeug==0.11.15 30 | 31 | WTForms==2.1 32 | 33 | dj-database-url==0.4.1 34 | psycopg2>=2.6.2 35 | whitenoise==2.0.6 36 | 37 | -------------------------------------------------------------------------------- /static/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/.DS_Store -------------------------------------------------------------------------------- /static/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2013-2016 Blackrock Digital LLC. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /static/README.md: -------------------------------------------------------------------------------- 1 | # [Start Bootstrap](http://startbootstrap.com/) - [Freelancer](http://startbootstrap.com/template-overviews/freelancer/) 2 | 3 | [Freelancer](http://startbootstrap.com/template-overviews/freelancer/) is a one page freelancer portfolio theme for [Bootstrap](http://getbootstrap.com/) created by [Start Bootstrap](http://startbootstrap.com/). This theme features several content sections, a responsive portfolio grid with hover effects, full page portfolio item modals, and a working PHP contact form. 4 | 5 | ## Getting Started 6 | 7 | To begin using this template, choose one of the following options to get started: 8 | * [Download the latest release on Start Bootstrap](http://startbootstrap.com/template-overviews/freelancer/) 9 | * Clone the repo: `git clone https://github.com/BlackrockDigital/startbootstrap-freelancer.git` 10 | * Fork the repo 11 | 12 | ## Bugs and Issues 13 | 14 | Have a bug or an issue with this template? [Open a new issue](https://github.com/BlackrockDigital/startbootstrap-freelancer/issues) here on GitHub or leave a comment on the [template overview page at Start Bootstrap](http://startbootstrap.com/template-overviews/freelancer/). 15 | 16 | ## Creator 17 | 18 | Start Bootstrap was created by and is maintained by **[David Miller](http://davidmiller.io/)**, Owner of [Blackrock Digital](http://blackrockdigital.io/). 19 | 20 | * https://twitter.com/davidmillerskt 21 | * https://github.com/davidtmiller 22 | 23 | Start Bootstrap is based on the [Bootstrap](http://getbootstrap.com/) framework created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thorton](https://twitter.com/fat). 24 | 25 | ## Copyright and License 26 | 27 | Copyright 2013-2016 Blackrock Digital LLC. Code released under the [MIT](https://github.com/BlackrockDigital/startbootstrap-freelancer/blob/gh-pages/LICENSE) license. -------------------------------------------------------------------------------- /static/css/freelancer.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - Freelancer v3.3.7+1 (http://startbootstrap.com/template-overviews/freelancer) 3 | * Copyright 2013-2016 Start Bootstrap 4 | * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE) 5 | */ 6 | body { 7 | font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif; 8 | overflow-x: hidden; 9 | } 10 | p { 11 | font-size: 20px; 12 | } 13 | p.small { 14 | font-size: 16px; 15 | } 16 | a, 17 | a:hover, 18 | a:focus, 19 | a:active, 20 | a.active { 21 | color: #18BC9C; 22 | } 23 | h1, 24 | h2, 25 | h3, 26 | h4, 27 | h5, 28 | h6 { 29 | font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; 30 | text-transform: uppercase; 31 | font-weight: 700; 32 | } 33 | hr.star-light, 34 | hr.star-primary { 35 | padding: 0; 36 | border: none; 37 | border-top: solid 5px; 38 | text-align: center; 39 | max-width: 250px; 40 | margin: 25px auto 30px; 41 | } 42 | hr.star-light:after, 43 | hr.star-primary:after { 44 | content: "\f005"; 45 | font-family: FontAwesome; 46 | display: inline-block; 47 | position: relative; 48 | top: -0.8em; 49 | font-size: 2em; 50 | padding: 0 0.25em; 51 | } 52 | hr.star-light { 53 | border-color: white; 54 | } 55 | hr.star-light:after { 56 | background-color: #FFBE33; 57 | color: white; 58 | } 59 | hr.star-primary { 60 | border-color: #2C3E50; 61 | } 62 | hr.star-primary:after { 63 | background-color: white; 64 | color: #2C3E50; 65 | } 66 | .img-centered { 67 | margin: 0 auto; 68 | } 69 | header { 70 | text-align: center; 71 | background: #18BC9C; 72 | color: white; 73 | } 74 | header .container { 75 | padding-top: 100px; 76 | padding-bottom: 50px; 77 | } 78 | header img { 79 | display: block; 80 | margin: 0 auto 20px; 81 | } 82 | header .intro-text .name { 83 | display: block; 84 | font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; 85 | text-transform: uppercase; 86 | font-weight: 700; 87 | font-size: 2em; 88 | } 89 | header .intro-text .skills { 90 | font-size: 1.25em; 91 | font-weight: 300; 92 | } 93 | @media (min-width: 768px) { 94 | header .container { 95 | padding-top: 200px; 96 | padding-bottom: 100px; 97 | } 98 | header .intro-text .name { 99 | font-size: 4.75em; 100 | } 101 | header .intro-text .skills { 102 | font-size: 1.75em; 103 | } 104 | } 105 | .navbar-custom { 106 | background: #2C3E50; 107 | font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; 108 | text-transform: uppercase; 109 | font-weight: 700; 110 | border: none; 111 | } 112 | .navbar-custom .navbar-brand { 113 | color: white; 114 | } 115 | .navbar-custom .navbar-brand:hover, 116 | .navbar-custom .navbar-brand:focus, 117 | .navbar-custom .navbar-brand:active, 118 | .navbar-custom .navbar-brand.active { 119 | color: white; 120 | } 121 | .navbar-custom .navbar-nav { 122 | letter-spacing: 1px; 123 | } 124 | .navbar-custom .navbar-nav li a { 125 | color: white; 126 | } 127 | .navbar-custom .navbar-nav li a:hover { 128 | color: #18BC9C; 129 | } 130 | .navbar-custom .navbar-nav li a:focus, 131 | .navbar-custom .navbar-nav li a:active { 132 | color: white; 133 | } 134 | .navbar-custom .navbar-nav li.active a { 135 | color: white; 136 | background: #18BC9C; 137 | } 138 | .navbar-custom .navbar-nav li.active a:hover, 139 | .navbar-custom .navbar-nav li.active a:focus, 140 | .navbar-custom .navbar-nav li.active a:active { 141 | color: white; 142 | background: #18BC9C; 143 | } 144 | .navbar-custom .navbar-toggle { 145 | color: white; 146 | text-transform: uppercase; 147 | font-size: 10px; 148 | border-color: white; 149 | } 150 | .navbar-custom .navbar-toggle:hover, 151 | .navbar-custom .navbar-toggle:focus { 152 | background-color: #18BC9C; 153 | color: white; 154 | border-color: #18BC9C; 155 | } 156 | @media (min-width: 768px) { 157 | .navbar-custom { 158 | padding: 25px 0; 159 | -webkit-transition: padding 0.3s; 160 | -moz-transition: padding 0.3s; 161 | transition: padding 0.3s; 162 | } 163 | .navbar-custom .navbar-brand { 164 | font-size: 2em; 165 | -webkit-transition: all 0.3s; 166 | -moz-transition: all 0.3s; 167 | transition: all 0.3s; 168 | } 169 | .navbar-custom.affix { 170 | padding: 10px 0; 171 | } 172 | .navbar-custom.affix .navbar-brand { 173 | font-size: 1.5em; 174 | } 175 | } 176 | section { 177 | padding: 100px 0; 178 | } 179 | section h2 { 180 | margin: 0; 181 | font-size: 3em; 182 | } 183 | section.success { 184 | background: #18BC9C; 185 | color: white; 186 | } 187 | @media (max-width: 767px) { 188 | section { 189 | padding: 75px 0; 190 | } 191 | section.first { 192 | padding-top: 75px; 193 | } 194 | } 195 | #portfolio .portfolio-item { 196 | margin: 0 0 15px; 197 | right: 0; 198 | } 199 | #portfolio .portfolio-item .portfolio-link { 200 | display: block; 201 | position: relative; 202 | max-width: 400px; 203 | margin: 0 auto; 204 | } 205 | #portfolio .portfolio-item .portfolio-link .caption { 206 | background: rgba(24, 188, 156, 0.9); 207 | position: absolute; 208 | width: 100%; 209 | height: 100%; 210 | opacity: 0; 211 | transition: all ease 0.5s; 212 | -webkit-transition: all ease 0.5s; 213 | -moz-transition: all ease 0.5s; 214 | } 215 | #portfolio .portfolio-item .portfolio-link .caption:hover { 216 | opacity: 1; 217 | } 218 | #portfolio .portfolio-item .portfolio-link .caption .caption-content { 219 | position: absolute; 220 | width: 100%; 221 | height: 20px; 222 | font-size: 20px; 223 | text-align: center; 224 | top: 50%; 225 | margin-top: -12px; 226 | color: white; 227 | } 228 | #portfolio .portfolio-item .portfolio-link .caption .caption-content i { 229 | margin-top: -12px; 230 | } 231 | #portfolio .portfolio-item .portfolio-link .caption .caption-content h3, 232 | #portfolio .portfolio-item .portfolio-link .caption .caption-content h4 { 233 | margin: 0; 234 | } 235 | #portfolio * { 236 | z-index: 2; 237 | } 238 | @media (min-width: 767px) { 239 | #portfolio .portfolio-item { 240 | margin: 0 0 30px; 241 | } 242 | } 243 | .floating-label-form-group { 244 | position: relative; 245 | margin-bottom: 0; 246 | padding-bottom: 0.5em; 247 | border-bottom: 1px solid #eeeeee; 248 | } 249 | .floating-label-form-group input, 250 | .floating-label-form-group textarea { 251 | z-index: 1; 252 | position: relative; 253 | padding-right: 0; 254 | padding-left: 0; 255 | border: none; 256 | border-radius: 0; 257 | font-size: 1.5em; 258 | background: none; 259 | box-shadow: none !important; 260 | resize: none; 261 | } 262 | .floating-label-form-group label { 263 | display: block; 264 | z-index: 0; 265 | position: relative; 266 | top: 2em; 267 | margin: 0; 268 | font-size: 0.85em; 269 | line-height: 1.764705882em; 270 | vertical-align: middle; 271 | vertical-align: baseline; 272 | opacity: 0; 273 | -webkit-transition: top 0.3s ease,opacity 0.3s ease; 274 | -moz-transition: top 0.3s ease,opacity 0.3s ease; 275 | -ms-transition: top 0.3s ease,opacity 0.3s ease; 276 | transition: top 0.3s ease,opacity 0.3s ease; 277 | } 278 | .floating-label-form-group:not(:first-child) { 279 | padding-left: 14px; 280 | border-left: 1px solid #eeeeee; 281 | } 282 | .floating-label-form-group-with-value label { 283 | top: 0; 284 | opacity: 1; 285 | } 286 | .floating-label-form-group-with-focus label { 287 | color: #18BC9C; 288 | } 289 | form .row:first-child .floating-label-form-group { 290 | border-top: 1px solid #eeeeee; 291 | } 292 | footer { 293 | color: white; 294 | } 295 | footer h3 { 296 | margin-bottom: 30px; 297 | } 298 | footer .footer-above { 299 | padding-top: 50px; 300 | background-color: #2C3E50; 301 | } 302 | footer .footer-col { 303 | margin-bottom: 50px; 304 | } 305 | footer .footer-below { 306 | padding: 25px 0; 307 | background-color: #233140; 308 | } 309 | .btn-outline { 310 | color: white; 311 | font-size: 20px; 312 | border: solid 2px white; 313 | background: transparent; 314 | transition: all 0.3s ease-in-out; 315 | margin-top: 15px; 316 | } 317 | .btn-outline:hover, 318 | .btn-outline:focus, 319 | .btn-outline:active, 320 | .btn-outline.active { 321 | color: #18BC9C; 322 | background: white; 323 | border: solid 2px white; 324 | } 325 | .btn-primary { 326 | color: white; 327 | background-color: #2C3E50; 328 | border-color: #2C3E50; 329 | font-weight: 700; 330 | } 331 | .btn-primary:hover, 332 | .btn-primary:focus, 333 | .btn-primary:active, 334 | .btn-primary.active, 335 | .open .dropdown-toggle.btn-primary { 336 | color: white; 337 | background-color: #1a242f; 338 | border-color: #161f29; 339 | } 340 | .btn-primary:active, 341 | .btn-primary.active, 342 | .open .dropdown-toggle.btn-primary { 343 | background-image: none; 344 | } 345 | .btn-primary.disabled, 346 | .btn-primary[disabled], 347 | fieldset[disabled] .btn-primary, 348 | .btn-primary.disabled:hover, 349 | .btn-primary[disabled]:hover, 350 | fieldset[disabled] .btn-primary:hover, 351 | .btn-primary.disabled:focus, 352 | .btn-primary[disabled]:focus, 353 | fieldset[disabled] .btn-primary:focus, 354 | .btn-primary.disabled:active, 355 | .btn-primary[disabled]:active, 356 | fieldset[disabled] .btn-primary:active, 357 | .btn-primary.disabled.active, 358 | .btn-primary[disabled].active, 359 | fieldset[disabled] .btn-primary.active { 360 | background-color: #2C3E50; 361 | border-color: #2C3E50; 362 | } 363 | .btn-primary .badge { 364 | color: #2C3E50; 365 | background-color: white; 366 | } 367 | .btn-success { 368 | color: white; 369 | background-color: #18BC9C; 370 | border-color: #18BC9C; 371 | font-weight: 700; 372 | } 373 | .btn-success:hover, 374 | .btn-success:focus, 375 | .btn-success:active, 376 | .btn-success.active, 377 | .open .dropdown-toggle.btn-success { 378 | color: white; 379 | background-color: #128f76; 380 | border-color: #11866f; 381 | } 382 | .btn-success:active, 383 | .btn-success.active, 384 | .open .dropdown-toggle.btn-success { 385 | background-image: none; 386 | } 387 | .btn-success.disabled, 388 | .btn-success[disabled], 389 | fieldset[disabled] .btn-success, 390 | .btn-success.disabled:hover, 391 | .btn-success[disabled]:hover, 392 | fieldset[disabled] .btn-success:hover, 393 | .btn-success.disabled:focus, 394 | .btn-success[disabled]:focus, 395 | fieldset[disabled] .btn-success:focus, 396 | .btn-success.disabled:active, 397 | .btn-success[disabled]:active, 398 | fieldset[disabled] .btn-success:active, 399 | .btn-success.disabled.active, 400 | .btn-success[disabled].active, 401 | fieldset[disabled] .btn-success.active { 402 | background-color: #18BC9C; 403 | border-color: #18BC9C; 404 | } 405 | .btn-success .badge { 406 | color: #18BC9C; 407 | background-color: white; 408 | } 409 | .btn-social { 410 | display: inline-block; 411 | height: 50px; 412 | width: 50px; 413 | border: 2px solid white; 414 | border-radius: 100%; 415 | text-align: center; 416 | font-size: 20px; 417 | line-height: 45px; 418 | } 419 | .scroll-top { 420 | position: fixed; 421 | right: 2%; 422 | bottom: 2%; 423 | width: 50px; 424 | height: 50px; 425 | z-index: 1049; 426 | } 427 | .scroll-top .btn { 428 | font-size: 20px; 429 | width: 50px; 430 | height: 50px; 431 | border-radius: 100%; 432 | line-height: 28px; 433 | } 434 | .portfolio-modal .modal-content { 435 | border-radius: 0; 436 | background-clip: border-box; 437 | -webkit-box-shadow: none; 438 | box-shadow: none; 439 | border: none; 440 | min-height: 100%; 441 | padding: 100px 0; 442 | text-align: center; 443 | } 444 | .portfolio-modal .modal-content h2 { 445 | margin: 0; 446 | font-size: 3em; 447 | } 448 | .portfolio-modal .modal-content img { 449 | margin-bottom: 30px; 450 | } 451 | .portfolio-modal .modal-content .item-details { 452 | margin: 30px 0; 453 | } 454 | .portfolio-modal .close-modal { 455 | position: absolute; 456 | width: 75px; 457 | height: 75px; 458 | background-color: transparent; 459 | top: 25px; 460 | right: 25px; 461 | cursor: pointer; 462 | } 463 | .portfolio-modal .close-modal:hover { 464 | opacity: 0.3; 465 | } 466 | .portfolio-modal .close-modal .lr { 467 | height: 75px; 468 | width: 1px; 469 | margin-left: 35px; 470 | background-color: #2C3E50; 471 | transform: rotate(45deg); 472 | -ms-transform: rotate(45deg); 473 | /* IE 9 */ 474 | -webkit-transform: rotate(45deg); 475 | /* Safari and Chrome */ 476 | z-index: 1051; 477 | } 478 | .portfolio-modal .close-modal .lr .rl { 479 | height: 75px; 480 | width: 1px; 481 | background-color: #2C3E50; 482 | transform: rotate(90deg); 483 | -ms-transform: rotate(90deg); 484 | /* IE 9 */ 485 | -webkit-transform: rotate(90deg); 486 | /* Safari and Chrome */ 487 | z-index: 1052; 488 | } 489 | .portfolio-modal .modal-backdrop { 490 | opacity: 0; 491 | display: none; 492 | } 493 | #skipnav a { 494 | padding: 6px; 495 | position: absolute; 496 | top: -40px; 497 | left: 0px; 498 | color: white; 499 | border-right: 1px solid white; 500 | border-bottom: 1px solid white; 501 | border-bottom-right-radius: 8px; 502 | background: transparent; 503 | transition: top 1s ease-out, background 1s linear; 504 | z-index: 2000; 505 | } 506 | #skipnav a:focus { 507 | position: absolute; 508 | left: 0px; 509 | top: 0px; 510 | background: #18BC9C; 511 | outline: 0; 512 | transition: top 0.1s ease-in, background 0.5s linear; 513 | } 514 | div#maincontent { 515 | outline: none; 516 | } 517 | -------------------------------------------------------------------------------- /static/css/freelancer.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - Freelancer v3.3.7+1 (http://startbootstrap.com/template-overviews/freelancer) 3 | * Copyright 2013-2016 Start Bootstrap 4 | * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE) 5 | */body{font-family:Lato,'Helvetica Neue',Helvetica,Arial,sans-serif;overflow-x:hidden}p{font-size:20px}p.small{font-size:16px}a,a.active,a:active,a:focus,a:hover{color:#18BC9C}h1,h2,h3,h4,h5,h6{font-family:Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;text-transform:uppercase;font-weight:700}hr.star-light,hr.star-primary{padding:0;border:none;border-top:solid 5px;text-align:center;max-width:250px;margin:25px auto 30px}hr.star-light:after,hr.star-primary:after{content:"\f005";font-family:FontAwesome;display:inline-block;position:relative;top:-.8em;font-size:2em;padding:0 .25em}hr.star-light{border-color:#fff}hr.star-light:after{background-color:#18BC9C;color:#fff}hr.star-primary{border-color:#2C3E50}hr.star-primary:after{background-color:#fff;color:#2C3E50}.img-centered{margin:0 auto}header{text-align:center;background:#18BC9C;color:#fff}header .container{padding-top:100px;padding-bottom:50px}header img{display:block;margin:0 auto 20px}header .intro-text .name{display:block;font-family:Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;text-transform:uppercase;font-weight:700;font-size:2em}header .intro-text .skills{font-size:1.25em;font-weight:300}@media (min-width:768px){header .container{padding-top:200px;padding-bottom:100px}header .intro-text .name{font-size:4.75em}header .intro-text .skills{font-size:1.75em}}.navbar-custom{background:#2C3E50;font-family:Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;text-transform:uppercase;font-weight:700;border:none}.navbar-custom .navbar-brand,.navbar-custom .navbar-brand.active,.navbar-custom .navbar-brand:active,.navbar-custom .navbar-brand:focus,.navbar-custom .navbar-brand:hover{color:#fff}.navbar-custom .navbar-nav{letter-spacing:1px}.navbar-custom .navbar-nav li a{color:#fff}.navbar-custom .navbar-nav li a:hover{color:#18BC9C}.navbar-custom .navbar-nav li a:active,.navbar-custom .navbar-nav li a:focus{color:#fff}.navbar-custom .navbar-nav li.active a,.navbar-custom .navbar-nav li.active a:active,.navbar-custom .navbar-nav li.active a:focus,.navbar-custom .navbar-nav li.active a:hover{color:#fff;background:#18BC9C}.navbar-custom .navbar-toggle{color:#fff;text-transform:uppercase;font-size:10px;border-color:#fff}.navbar-custom .navbar-toggle:focus,.navbar-custom .navbar-toggle:hover{background-color:#18BC9C;color:#fff;border-color:#18BC9C}@media (min-width:768px){.navbar-custom{padding:25px 0;-webkit-transition:padding .3s;-moz-transition:padding .3s;transition:padding .3s}.navbar-custom .navbar-brand{font-size:2em;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.navbar-custom.affix{padding:10px 0}.navbar-custom.affix .navbar-brand{font-size:1.5em}}section{padding:100px 0}section h2{margin:0;font-size:3em}section.success{background:#18BC9C;color:#fff}@media (max-width:767px){section{padding:75px 0}section.first{padding-top:75px}}#portfolio .portfolio-item{margin:0 0 15px;right:0}#portfolio .portfolio-item .portfolio-link{display:block;position:relative;max-width:400px;margin:0 auto}#portfolio .portfolio-item .portfolio-link .caption{background:rgba(24,188,156,.9);position:absolute;width:100%;height:100%;opacity:0;transition:all ease .5s;-webkit-transition:all ease .5s;-moz-transition:all ease .5s}#portfolio .portfolio-item .portfolio-link .caption:hover{opacity:1}#portfolio .portfolio-item .portfolio-link .caption .caption-content{position:absolute;width:100%;height:20px;font-size:20px;text-align:center;top:50%;margin-top:-12px;color:#fff}#portfolio .portfolio-item .portfolio-link .caption .caption-content i{margin-top:-12px}#portfolio .portfolio-item .portfolio-link .caption .caption-content h3,#portfolio .portfolio-item .portfolio-link .caption .caption-content h4{margin:0}#portfolio *{z-index:2}@media (min-width:767px){#portfolio .portfolio-item{margin:0 0 30px}}.floating-label-form-group{position:relative;margin-bottom:0;padding-bottom:.5em;border-bottom:1px solid #eee}.floating-label-form-group input,.floating-label-form-group textarea{z-index:1;position:relative;padding-right:0;padding-left:0;border:none;border-radius:0;font-size:1.5em;background:0 0;box-shadow:none!important;resize:none}.floating-label-form-group label{display:block;z-index:0;position:relative;top:2em;margin:0;font-size:.85em;line-height:1.764705882em;vertical-align:middle;vertical-align:baseline;opacity:0;-webkit-transition:top .3s ease,opacity .3s ease;-moz-transition:top .3s ease,opacity .3s ease;-ms-transition:top .3s ease,opacity .3s ease;transition:top .3s ease,opacity .3s ease}.floating-label-form-group:not(:first-child){padding-left:14px;border-left:1px solid #eee}.floating-label-form-group-with-value label{top:0;opacity:1}.floating-label-form-group-with-focus label{color:#18BC9C}form .row:first-child .floating-label-form-group{border-top:1px solid #eee}footer{color:#fff}footer h3{margin-bottom:30px}footer .footer-above{padding-top:50px;background-color:#2C3E50}footer .footer-col{margin-bottom:50px}footer .footer-below{padding:25px 0;background-color:#233140}.btn-outline{color:#fff;font-size:20px;border:2px solid #fff;background:0 0;transition:all .3s ease-in-out;margin-top:15px}.btn-outline.active,.btn-outline:active,.btn-outline:focus,.btn-outline:hover{color:#18BC9C;background:#fff;border:2px solid #fff}.btn-primary{color:#fff;background-color:#2C3E50;border-color:#2C3E50;font-weight:700}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#1a242f;border-color:#161f29}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#2C3E50;border-color:#2C3E50}.btn-primary .badge{color:#2C3E50;background-color:#fff}.btn-success{color:#fff;background-color:#18BC9C;border-color:#18BC9C;font-weight:700}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:#128f76;border-color:#11866f}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#18BC9C;border-color:#18BC9C}.btn-success .badge{color:#18BC9C;background-color:#fff}.btn-social{display:inline-block;height:50px;width:50px;border:2px solid #fff;border-radius:100%;text-align:center;font-size:20px;line-height:45px}.scroll-top{position:fixed;right:2%;bottom:2%;width:50px;height:50px;z-index:1049}.scroll-top .btn{font-size:20px;width:50px;height:50px;border-radius:100%;line-height:28px}.portfolio-modal .modal-content{border-radius:0;background-clip:border-box;-webkit-box-shadow:none;box-shadow:none;border:none;min-height:100%;padding:100px 0;text-align:center}.portfolio-modal .modal-content h2{margin:0;font-size:3em}.portfolio-modal .modal-content img{margin-bottom:30px}.portfolio-modal .modal-content .item-details{margin:30px 0}.portfolio-modal .close-modal{position:absolute;width:75px;height:75px;background-color:transparent;top:25px;right:25px;cursor:pointer}.portfolio-modal .close-modal:hover{opacity:.3}.portfolio-modal .close-modal .lr{height:75px;width:1px;margin-left:35px;background-color:#2C3E50;transform:rotate(45deg);-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);z-index:1051}.portfolio-modal .close-modal .lr .rl{height:75px;width:1px;background-color:#2C3E50;transform:rotate(90deg);-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);z-index:1052}.portfolio-modal .modal-backdrop{opacity:0;display:none}#skipnav a{padding:6px;position:absolute;top:-40px;left:0;color:#fff;border-right:1px solid #fff;border-bottom:1px solid #fff;border-bottom-right-radius:8px;background:0 0;transition:top 1s ease-out,background 1s linear;z-index:2000}#skipnav a:focus{position:absolute;left:0;top:0;background:#18BC9C;outline:0;transition:top .1s ease-in,background .5s linear}div#maincontent{outline:0} 6 | -------------------------------------------------------------------------------- /static/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var less = require('gulp-less'); 3 | var browserSync = require('browser-sync').create(); 4 | var header = require('gulp-header'); 5 | var cleanCSS = require('gulp-clean-css'); 6 | var rename = require("gulp-rename"); 7 | var uglify = require('gulp-uglify'); 8 | var filter = require('gulp-filter'); 9 | var pkg = require('./package.json'); 10 | 11 | // Set the banner content 12 | var banner = ['/*!\n', 13 | ' * Start Bootstrap - <%= pkg.title %> v<%= pkg.version %> (<%= pkg.homepage %>)\n', 14 | ' * Copyright 2013-' + (new Date()).getFullYear(), ' <%= pkg.author %>\n', 15 | ' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n', 16 | ' */\n', 17 | '' 18 | ].join(''); 19 | 20 | // Compile LESS files from /less into /css 21 | gulp.task('less', function() { 22 | var f = filter(['*', '!mixins.less', '!variables.less']); 23 | return gulp.src('less/*.less') 24 | .pipe(f) 25 | .pipe(less()) 26 | .pipe(header(banner, { pkg: pkg })) 27 | .pipe(gulp.dest('css')) 28 | .pipe(browserSync.reload({ 29 | stream: true 30 | })) 31 | }); 32 | 33 | // Minify compiled CSS 34 | gulp.task('minify-css', ['less'], function() { 35 | return gulp.src('css/freelancer.css') 36 | .pipe(cleanCSS({ compatibility: 'ie8' })) 37 | .pipe(rename({ suffix: '.min' })) 38 | .pipe(gulp.dest('css')) 39 | .pipe(browserSync.reload({ 40 | stream: true 41 | })) 42 | }); 43 | 44 | // Minify JS 45 | gulp.task('minify-js', function() { 46 | return gulp.src('js/freelancer.js') 47 | .pipe(uglify()) 48 | .pipe(header(banner, { pkg: pkg })) 49 | .pipe(rename({ suffix: '.min' })) 50 | .pipe(gulp.dest('js')) 51 | .pipe(browserSync.reload({ 52 | stream: true 53 | })) 54 | }); 55 | 56 | // Copy vendor libraries from /node_modules into /vendor 57 | gulp.task('copy', function() { 58 | gulp.src(['node_modules/bootstrap/dist/**/*', '!**/npm.js', '!**/bootstrap-theme.*', '!**/*.map']) 59 | .pipe(gulp.dest('vendor/bootstrap')) 60 | 61 | gulp.src(['node_modules/jquery/dist/jquery.js', 'node_modules/jquery/dist/jquery.min.js']) 62 | .pipe(gulp.dest('vendor/jquery')) 63 | 64 | gulp.src([ 65 | 'node_modules/font-awesome/**', 66 | '!node_modules/font-awesome/**/*.map', 67 | '!node_modules/font-awesome/.npmignore', 68 | '!node_modules/font-awesome/*.txt', 69 | '!node_modules/font-awesome/*.md', 70 | '!node_modules/font-awesome/*.json' 71 | ]) 72 | .pipe(gulp.dest('vendor/font-awesome')) 73 | }) 74 | 75 | // Run everything 76 | gulp.task('default', ['less', 'minify-css', 'minify-js', 'copy']); 77 | 78 | // Configure the browserSync task 79 | gulp.task('browserSync', function() { 80 | browserSync.init({ 81 | server: { 82 | baseDir: '' 83 | }, 84 | }) 85 | }) 86 | 87 | // Dev task with browserSync 88 | gulp.task('dev', ['browserSync', 'less', 'minify-css', 'minify-js'], function() { 89 | gulp.watch('less/*.less', ['less']); 90 | gulp.watch('css/*.css', ['minify-css']); 91 | gulp.watch('js/*.js', ['minify-js']); 92 | // Reloads the browser whenever HTML or JS files change 93 | gulp.watch('*.html', browserSync.reload); 94 | gulp.watch('js/**/*.js', browserSync.reload); 95 | }); 96 | -------------------------------------------------------------------------------- /static/img/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/.DS_Store -------------------------------------------------------------------------------- /static/img/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/add.png -------------------------------------------------------------------------------- /static/img/add_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/add_preview.png -------------------------------------------------------------------------------- /static/img/learn_python.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/learn_python.jpeg -------------------------------------------------------------------------------- /static/img/minus_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/minus_preview.png -------------------------------------------------------------------------------- /static/img/portfolio/chesstastic.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/portfolio/chesstastic.jpeg -------------------------------------------------------------------------------- /static/img/portfolio/cleverprogrammer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/portfolio/cleverprogrammer.png -------------------------------------------------------------------------------- /static/img/portfolio/youtubecp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/portfolio/youtubecp.png -------------------------------------------------------------------------------- /static/img/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/profile.png -------------------------------------------------------------------------------- /static/img/python.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/python.jpeg -------------------------------------------------------------------------------- /static/img/shopping_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/shopping_cart.png -------------------------------------------------------------------------------- /static/img/shopping_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/shopping_preview.png -------------------------------------------------------------------------------- /static/img/subtract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/subtract.png -------------------------------------------------------------------------------- /static/img/time.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/time.jpeg -------------------------------------------------------------------------------- /static/img/time_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/img/time_preview.png -------------------------------------------------------------------------------- /static/js/contact_me.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | $("#contactForm input,#contactForm textarea").jqBootstrapValidation({ 4 | preventSubmit: true, 5 | submitError: function($form, event, errors) { 6 | // additional error messages or events 7 | }, 8 | submitSuccess: function($form, event) { 9 | // Prevent spam click and default submit behaviour 10 | $("#btnSubmit").attr("disabled", true); 11 | event.preventDefault(); 12 | 13 | // get values from FORM 14 | var name = $("input#name").val(); 15 | var email = $("input#email").val(); 16 | var phone = $("input#phone").val(); 17 | var message = $("textarea#message").val(); 18 | var firstName = name; // For Success/Failure Message 19 | // Check for white space in name for Success/Fail message 20 | if (firstName.indexOf(' ') >= 0) { 21 | firstName = name.split(' ').slice(0, -1).join(' '); 22 | } 23 | $.ajax({ 24 | url: "././mail/contact_me.php", 25 | type: "POST", 26 | data: { 27 | name: name, 28 | phone: phone, 29 | email: email, 30 | message: message 31 | }, 32 | cache: false, 33 | success: function() { 34 | // Enable button & show success message 35 | $("#btnSubmit").attr("disabled", false); 36 | $('#success').html("
"); 37 | $('#success > .alert-success').html(""); 39 | $('#success > .alert-success') 40 | .append("Your message has been sent. "); 41 | $('#success > .alert-success') 42 | .append('
'); 43 | 44 | //clear all fields 45 | $('#contactForm').trigger("reset"); 46 | }, 47 | error: function() { 48 | // Fail message 49 | $('#success').html("
"); 50 | $('#success > .alert-danger').html(""); 52 | $('#success > .alert-danger').append("Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"); 53 | $('#success > .alert-danger').append('
'); 54 | //clear all fields 55 | $('#contactForm').trigger("reset"); 56 | }, 57 | }); 58 | }, 59 | filter: function() { 60 | return $(this).is(":visible"); 61 | }, 62 | }); 63 | 64 | $("a[data-toggle=\"tab\"]").click(function(e) { 65 | e.preventDefault(); 66 | $(this).tab("show"); 67 | }); 68 | }); 69 | 70 | // When clicking on Full hide fail/success boxes 71 | $('#name').focus(function() { 72 | $('#success').html(''); 73 | }); 74 | -------------------------------------------------------------------------------- /static/js/freelancer.js: -------------------------------------------------------------------------------- 1 | // Freelancer Theme JavaScript 2 | 3 | (function($) { 4 | "use strict"; // Start of use strict 5 | 6 | // jQuery for page scrolling feature - requires jQuery Easing plugin 7 | $('.page-scroll a').bind('click', function(event) { 8 | var $anchor = $(this); 9 | $('html, body').stop().animate({ 10 | scrollTop: ($($anchor.attr('href')).offset().top - 50) 11 | }, 1250, 'easeInOutExpo'); 12 | event.preventDefault(); 13 | }); 14 | 15 | // Highlight the top nav as scrolling occurs 16 | $('body').scrollspy({ 17 | target: '.navbar-fixed-top', 18 | offset: 51 19 | }); 20 | 21 | // Closes the Responsive Menu on Menu Item Click 22 | $('.navbar-collapse ul li a').click(function(){ 23 | $('.navbar-toggle:visible').click(); 24 | }); 25 | 26 | // Offset for Main Navigation 27 | $('#mainNav').affix({ 28 | offset: { 29 | top: 100 30 | } 31 | }) 32 | 33 | // Floating label headings for the contact form 34 | $(function() { 35 | $("body").on("input propertychange", ".floating-label-form-group", function(e) { 36 | $(this).toggleClass("floating-label-form-group-with-value", !!$(e.target).val()); 37 | }).on("focus", ".floating-label-form-group", function() { 38 | $(this).addClass("floating-label-form-group-with-focus"); 39 | }).on("blur", ".floating-label-form-group", function() { 40 | $(this).removeClass("floating-label-form-group-with-focus"); 41 | }); 42 | }); 43 | 44 | })(jQuery); // End of use strict 45 | -------------------------------------------------------------------------------- /static/js/freelancer.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - Freelancer v3.3.7+1 (http://startbootstrap.com/template-overviews/freelancer) 3 | * Copyright 2013-2016 Start Bootstrap 4 | * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE) 5 | */ 6 | !function(o){"use strict";o(".page-scroll a").bind("click",function(t){var l=o(this);o("html, body").stop().animate({scrollTop:o(l.attr("href")).offset().top-50},1250,"easeInOutExpo"),t.preventDefault()}),o("body").scrollspy({target:".navbar-fixed-top",offset:51}),o(".navbar-collapse ul li a").click(function(){o(".navbar-toggle:visible").click()}),o("#mainNav").affix({offset:{top:100}}),o(function(){o("body").on("input propertychange",".floating-label-form-group",function(t){o(this).toggleClass("floating-label-form-group-with-value",!!o(t.target).val())}).on("focus",".floating-label-form-group",function(){o(this).addClass("floating-label-form-group-with-focus")}).on("blur",".floating-label-form-group",function(){o(this).removeClass("floating-label-form-group-with-focus")})})}(jQuery); -------------------------------------------------------------------------------- /static/less/freelancer.less: -------------------------------------------------------------------------------- 1 | @import "variables.less"; 2 | @import "mixins.less"; 3 | 4 | body { 5 | font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif; 6 | overflow-x: hidden; 7 | } 8 | 9 | p { 10 | font-size: 20px; 11 | } 12 | 13 | p.small { 14 | font-size: 16px; 15 | } 16 | 17 | a, 18 | a:hover, 19 | a:focus, 20 | a:active, 21 | a.active { 22 | color: @theme-success; 23 | } 24 | 25 | h1, h2, h3, h4, h5, h6 { 26 | font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; 27 | text-transform: uppercase; 28 | font-weight: 700; 29 | } 30 | 31 | hr.star-light, 32 | hr.star-primary { 33 | padding: 0; 34 | border: none; 35 | border-top: solid 5px; 36 | text-align: center; 37 | max-width: 250px; 38 | margin: 25px auto 30px; 39 | } 40 | 41 | hr.star-light:after, 42 | hr.star-primary:after { 43 | content: "\f005"; 44 | font-family: FontAwesome; 45 | display: inline-block; 46 | position: relative; 47 | top: -0.8em; 48 | font-size: 2em; 49 | padding: 0 0.25em; 50 | } 51 | 52 | hr.star-light { 53 | border-color: white; 54 | } 55 | 56 | hr.star-light:after { 57 | background-color: @theme-success; 58 | color: white; 59 | } 60 | 61 | hr.star-primary { 62 | border-color: @theme-primary; 63 | } 64 | 65 | hr.star-primary:after { 66 | background-color: white; 67 | color: @theme-primary; 68 | } 69 | 70 | .img-centered { 71 | margin: 0 auto; 72 | } 73 | 74 | header { 75 | text-align: center; 76 | background: @theme-success; 77 | color: white; 78 | .container { 79 | padding-top: 100px; 80 | padding-bottom: 50px; 81 | } 82 | img { 83 | display: block; 84 | margin: 0 auto 20px; 85 | } 86 | .intro-text { 87 | .name { 88 | display: block; 89 | font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; 90 | text-transform: uppercase; 91 | font-weight: 700; 92 | font-size: 2em; 93 | } 94 | .skills { 95 | font-size: 1.25em; 96 | font-weight: 300; 97 | } 98 | } 99 | } 100 | 101 | @media(min-width:768px) { 102 | header { 103 | .container { 104 | padding-top: 200px; 105 | padding-bottom: 100px; 106 | } 107 | .intro-text { 108 | .name { 109 | font-size: 4.75em; 110 | } 111 | .skills { 112 | font-size: 1.75em; 113 | } 114 | } 115 | } 116 | } 117 | 118 | .navbar-custom { 119 | background: @theme-primary; 120 | font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; 121 | text-transform: uppercase; 122 | font-weight: 700; 123 | border: none; 124 | .navbar-brand { 125 | color: white; 126 | &:hover, 127 | &:focus, 128 | &:active, 129 | &.active { 130 | color: white; 131 | } 132 | } 133 | .navbar-nav { 134 | letter-spacing: 1px; 135 | li { 136 | a { 137 | color: white; 138 | &:hover { 139 | color: @theme-success; 140 | } 141 | &:focus, 142 | &:active { 143 | color: white; 144 | } 145 | } 146 | &.active { 147 | a { 148 | color: white; 149 | background: @theme-success; 150 | &:hover, 151 | &:focus, 152 | &:active { 153 | color: white; 154 | background: @theme-success; 155 | } 156 | } 157 | } 158 | } 159 | } 160 | .navbar-toggle { 161 | color: white; 162 | text-transform: uppercase; 163 | font-size: 10px; 164 | border-color: white; 165 | &:hover, 166 | &:focus { 167 | background-color: @theme-success; 168 | color: white; 169 | border-color: @theme-success; 170 | } 171 | } 172 | } 173 | 174 | @media(min-width:768px) { 175 | .navbar-custom { 176 | padding: 25px 0; 177 | -webkit-transition: padding 0.3s; 178 | -moz-transition: padding 0.3s; 179 | transition: padding 0.3s; 180 | .navbar-brand { 181 | font-size: 2em; 182 | -webkit-transition: all 0.3s; 183 | -moz-transition: all 0.3s; 184 | transition: all 0.3s; 185 | } 186 | } 187 | .navbar-custom.affix { 188 | padding: 10px 0; 189 | .navbar-brand { 190 | font-size: 1.5em; 191 | } 192 | } 193 | } 194 | 195 | section { 196 | padding: 100px 0; 197 | h2 { 198 | margin: 0; 199 | font-size: 3em; 200 | } 201 | } 202 | 203 | section.success { 204 | background: @theme-success; 205 | color: white; 206 | } 207 | 208 | @media(max-width:767px) { 209 | section { 210 | padding: 75px 0; 211 | } 212 | section.first { 213 | padding-top: 75px; 214 | } 215 | } 216 | 217 | #portfolio { 218 | .portfolio-item { 219 | margin: 0 0 15px; 220 | right: 0; 221 | .portfolio-link { 222 | display: block; 223 | position: relative; 224 | max-width: 400px; 225 | margin: 0 auto; 226 | .caption { 227 | background: fade(@theme-success, 90%); 228 | position: absolute; 229 | width: 100%; 230 | height: 100%; 231 | opacity: 0; 232 | transition: all ease 0.5s; 233 | -webkit-transition: all ease 0.5s; 234 | -moz-transition: all ease 0.5s; 235 | &:hover { 236 | opacity: 1; 237 | } 238 | .caption-content { 239 | position: absolute; 240 | width: 100%; 241 | height: 20px; 242 | font-size: 20px; 243 | text-align: center; 244 | top: 50%; 245 | margin-top: -12px; 246 | color: white; 247 | i { 248 | margin-top: -12px; 249 | } 250 | h3, 251 | h4 { 252 | margin: 0; 253 | } 254 | } 255 | } 256 | } 257 | } 258 | * { 259 | z-index: 2; 260 | } 261 | } 262 | 263 | @media(min-width:767px) { 264 | #portfolio { 265 | .portfolio-item { 266 | margin: 0 0 30px; 267 | } 268 | } 269 | } 270 | 271 | .floating-label-form-group { 272 | position: relative; 273 | margin-bottom: 0; 274 | padding-bottom: 0.5em; 275 | border-bottom: 1px solid @gray-lighter; 276 | input, 277 | textarea { 278 | z-index: 1; 279 | position: relative; 280 | padding-right: 0; 281 | padding-left: 0; 282 | border: none; 283 | border-radius: 0; 284 | font-size: 1.5em; 285 | background: none; 286 | box-shadow: none !important; 287 | resize: none; 288 | } 289 | label { 290 | display: block; 291 | z-index: 0; 292 | position: relative; 293 | top: 2em; 294 | margin: 0; 295 | font-size: 0.85em; 296 | line-height: 1.764705882em; 297 | vertical-align: middle; 298 | vertical-align: baseline; 299 | opacity: 0; 300 | -webkit-transition: top 0.3s ease,opacity 0.3s ease; 301 | -moz-transition: top 0.3s ease,opacity 0.3s ease; 302 | -ms-transition: top 0.3s ease,opacity 0.3s ease; 303 | transition: top 0.3s ease,opacity 0.3s ease; 304 | } 305 | &:not(:first-child) { 306 | padding-left: 14px; 307 | border-left: 1px solid @gray-lighter; 308 | } 309 | } 310 | 311 | .floating-label-form-group-with-value { 312 | label { 313 | top: 0; 314 | opacity: 1; 315 | } 316 | } 317 | 318 | .floating-label-form-group-with-focus { 319 | label { 320 | color: @theme-success; 321 | } 322 | } 323 | 324 | form .row:first-child .floating-label-form-group { 325 | border-top: 1px solid @gray-lighter; 326 | } 327 | 328 | footer { 329 | color: white; 330 | h3 { 331 | margin-bottom: 30px; 332 | } 333 | .footer-above { 334 | padding-top: 50px; 335 | background-color: @theme-primary; 336 | } 337 | .footer-col { 338 | margin-bottom: 50px; 339 | } 340 | .footer-below { 341 | padding: 25px 0; 342 | background-color: darken(@theme-primary, 5%); 343 | } 344 | } 345 | 346 | // Buttons 347 | 348 | .btn-outline { 349 | color: white; 350 | font-size: 20px; 351 | border: solid 2px white; 352 | background: transparent; 353 | transition: all 0.3s ease-in-out; 354 | margin-top: 15px; 355 | &:hover, 356 | &:focus, 357 | &:active, 358 | &.active { 359 | color: @theme-success; 360 | background: white; 361 | border: solid 2px white; 362 | } 363 | } 364 | 365 | .btn-primary { 366 | .button-variant(white; @theme-primary; @theme-primary); 367 | font-weight: 700; 368 | } 369 | 370 | .btn-success { 371 | .button-variant(white; @theme-success; @theme-success); 372 | font-weight: 700; 373 | } 374 | 375 | .btn-social { 376 | display: inline-block; 377 | height: 50px; 378 | width: 50px; 379 | border: 2px solid white; 380 | border-radius: 100%; 381 | text-align: center; 382 | font-size: 20px; 383 | line-height: 45px; 384 | } 385 | 386 | .scroll-top { 387 | position: fixed; 388 | right: 2%; 389 | bottom: 2%; 390 | width: 50px; 391 | height: 50px; 392 | z-index: 1049; 393 | .btn { 394 | font-size: 20px; 395 | width: 50px; 396 | height: 50px; 397 | border-radius: 100%; 398 | line-height: 28px; 399 | } 400 | } 401 | 402 | .portfolio-modal { 403 | .modal-content { 404 | border-radius: 0; 405 | background-clip: border-box; 406 | -webkit-box-shadow: none; 407 | box-shadow: none; 408 | border: none; 409 | min-height: 100%; 410 | padding: 100px 0; 411 | text-align: center; 412 | h2 { 413 | margin: 0; 414 | font-size: 3em; 415 | } 416 | img { 417 | margin-bottom: 30px; 418 | } 419 | .item-details { 420 | margin: 30px 0; 421 | } 422 | } 423 | .close-modal { 424 | position: absolute; 425 | width:75px; 426 | height:75px; 427 | background-color:transparent; 428 | top: 25px; 429 | right: 25px; 430 | cursor: pointer; 431 | &:hover { 432 | opacity: 0.3; 433 | } 434 | .lr { 435 | height:75px; 436 | width:1px; 437 | margin-left:35px; 438 | background-color:@theme-primary; 439 | transform: rotate(45deg); 440 | -ms-transform: rotate(45deg); 441 | /* IE 9 */ 442 | -webkit-transform: rotate(45deg); 443 | /* Safari and Chrome */ 444 | z-index:1051; 445 | .rl { 446 | height:75px; 447 | width:1px; 448 | background-color:@theme-primary; 449 | transform: rotate(90deg); 450 | -ms-transform: rotate(90deg); 451 | /* IE 9 */ 452 | -webkit-transform: rotate(90deg); 453 | /* Safari and Chrome */ 454 | z-index:1052; 455 | } 456 | } 457 | } 458 | .modal-backdrop { 459 | opacity: 0; 460 | display: none; 461 | } 462 | } 463 | 464 | #skipnav a { 465 | padding: 6px; 466 | position: absolute; 467 | top: -40px; 468 | left: 0px; 469 | color: white; 470 | border-right: 1px solid white; 471 | border-bottom: 1px solid white; 472 | border-bottom-right-radius: 8px; 473 | background: transparent; 474 | transition: top 1s ease-out, background 1s linear; 475 | z-index: 2000; 476 | &:focus{ 477 | position: absolute; 478 | left: 0px; 479 | top: 0px; 480 | background: @theme-success; 481 | outline: 0; 482 | transition: top .1s ease-in, background .5s linear; 483 | } 484 | } 485 | 486 | div#maincontent{ 487 | outline: none; 488 | } 489 | -------------------------------------------------------------------------------- /static/less/mixins.less: -------------------------------------------------------------------------------- 1 | .button-variant(@color; @background; @border) { 2 | color: @color; 3 | background-color: @background; 4 | border-color: @border; 5 | 6 | &:hover, 7 | &:focus, 8 | &:active, 9 | &.active, 10 | .open .dropdown-toggle& { 11 | color: @color; 12 | background-color: darken(@background, 10%); 13 | border-color: darken(@border, 12%); 14 | } 15 | &:active, 16 | &.active, 17 | .open .dropdown-toggle& { 18 | background-image: none; 19 | } 20 | &.disabled, 21 | &[disabled], 22 | fieldset[disabled] & { 23 | &, 24 | &:hover, 25 | &:focus, 26 | &:active, 27 | &.active { 28 | background-color: @background; 29 | border-color: @border; 30 | } 31 | } 32 | 33 | .badge { 34 | color: @background; 35 | background-color: @color; 36 | } 37 | } 38 | 39 | .transition-all() { 40 | -webkit-transition: all 0.5s; 41 | -moz-transition: all 0.5s; 42 | transition: all 0.5s; 43 | } -------------------------------------------------------------------------------- /static/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | 3 | // Gray and Brand Colors for use across theme 4 | 5 | @theme-primary: #2C3E50; 6 | @theme-success: #18BC9C; 7 | 8 | @gray-base: #000; 9 | @gray-darker: lighten(@gray-base, 13.5%); // #222 10 | @gray-dark: lighten(@gray-base, 20%); // #333 11 | @gray: lighten(@gray-base, 33.5%); // #555 12 | @gray-light: lighten(@gray-base, 46.7%); // #777 13 | @gray-lighter: lighten(@gray-base, 93.5%); // #eee -------------------------------------------------------------------------------- /static/mail/contact_me.php: -------------------------------------------------------------------------------- 1 | 27 | -------------------------------------------------------------------------------- /static/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "freelancer", 3 | "title": "Freelancer", 4 | "version": "3.3.7+1", 5 | "homepage": "http://startbootstrap.com/template-overviews/freelancer", 6 | "author": "Start Bootstrap", 7 | "license": { 8 | "type": "MIT", 9 | "url": "https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE" 10 | }, 11 | "devDependencies": { 12 | "bootstrap": "^3.3.7", 13 | "browser-sync": "^2.13.0", 14 | "font-awesome": "^4.6.3", 15 | "gulp": "^3.9.1", 16 | "gulp-clean-css": "^2.0.10", 17 | "gulp-filter": "^4.0.0", 18 | "gulp-header": "^1.8.7", 19 | "gulp-less": "^3.1.0", 20 | "gulp-rename": "^1.2.2", 21 | "gulp-uglify": "^1.5.4", 22 | "jquery": "^1.11.3" 23 | }, 24 | "repository": { 25 | "type": "git", 26 | "url": "https://github.com/BlackrockDigital/startbootstrap-freelancer.git" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /static/vendor/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/.DS_Store -------------------------------------------------------------------------------- /static/vendor/bootstrap/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/bootstrap/.DS_Store -------------------------------------------------------------------------------- /static/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /static/vendor/bootstrap/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) 3 | * Copyright 2011-2016 Twitter, Inc. 4 | * Licensed under the MIT license 5 | */ 6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); -------------------------------------------------------------------------------- /static/vendor/font-awesome/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} 5 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/vendor/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/vendor/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/vendor/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/vendor/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/static/vendor/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | @import "screen-reader.less"; 19 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | .sr-only() { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | .sr-only-focusable() { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | @fa-font-path: "../fonts"; 5 | @fa-font-size-base: 14px; 6 | @fa-line-height-base: 1; 7 | //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.3/fonts"; // for referencing Bootstrap CDN font files directly 8 | @fa-css-prefix: fa; 9 | @fa-version: "4.6.3"; 10 | @fa-border-color: #eee; 11 | @fa-inverse: #fff; 12 | @fa-li-width: (30em / 14); 13 | 14 | @fa-var-500px: "\f26e"; 15 | @fa-var-adjust: "\f042"; 16 | @fa-var-adn: "\f170"; 17 | @fa-var-align-center: "\f037"; 18 | @fa-var-align-justify: "\f039"; 19 | @fa-var-align-left: "\f036"; 20 | @fa-var-align-right: "\f038"; 21 | @fa-var-amazon: "\f270"; 22 | @fa-var-ambulance: "\f0f9"; 23 | @fa-var-american-sign-language-interpreting: "\f2a3"; 24 | @fa-var-anchor: "\f13d"; 25 | @fa-var-android: "\f17b"; 26 | @fa-var-angellist: "\f209"; 27 | @fa-var-angle-double-down: "\f103"; 28 | @fa-var-angle-double-left: "\f100"; 29 | @fa-var-angle-double-right: "\f101"; 30 | @fa-var-angle-double-up: "\f102"; 31 | @fa-var-angle-down: "\f107"; 32 | @fa-var-angle-left: "\f104"; 33 | @fa-var-angle-right: "\f105"; 34 | @fa-var-angle-up: "\f106"; 35 | @fa-var-apple: "\f179"; 36 | @fa-var-archive: "\f187"; 37 | @fa-var-area-chart: "\f1fe"; 38 | @fa-var-arrow-circle-down: "\f0ab"; 39 | @fa-var-arrow-circle-left: "\f0a8"; 40 | @fa-var-arrow-circle-o-down: "\f01a"; 41 | @fa-var-arrow-circle-o-left: "\f190"; 42 | @fa-var-arrow-circle-o-right: "\f18e"; 43 | @fa-var-arrow-circle-o-up: "\f01b"; 44 | @fa-var-arrow-circle-right: "\f0a9"; 45 | @fa-var-arrow-circle-up: "\f0aa"; 46 | @fa-var-arrow-down: "\f063"; 47 | @fa-var-arrow-left: "\f060"; 48 | @fa-var-arrow-right: "\f061"; 49 | @fa-var-arrow-up: "\f062"; 50 | @fa-var-arrows: "\f047"; 51 | @fa-var-arrows-alt: "\f0b2"; 52 | @fa-var-arrows-h: "\f07e"; 53 | @fa-var-arrows-v: "\f07d"; 54 | @fa-var-asl-interpreting: "\f2a3"; 55 | @fa-var-assistive-listening-systems: "\f2a2"; 56 | @fa-var-asterisk: "\f069"; 57 | @fa-var-at: "\f1fa"; 58 | @fa-var-audio-description: "\f29e"; 59 | @fa-var-automobile: "\f1b9"; 60 | @fa-var-backward: "\f04a"; 61 | @fa-var-balance-scale: "\f24e"; 62 | @fa-var-ban: "\f05e"; 63 | @fa-var-bank: "\f19c"; 64 | @fa-var-bar-chart: "\f080"; 65 | @fa-var-bar-chart-o: "\f080"; 66 | @fa-var-barcode: "\f02a"; 67 | @fa-var-bars: "\f0c9"; 68 | @fa-var-battery-0: "\f244"; 69 | @fa-var-battery-1: "\f243"; 70 | @fa-var-battery-2: "\f242"; 71 | @fa-var-battery-3: "\f241"; 72 | @fa-var-battery-4: "\f240"; 73 | @fa-var-battery-empty: "\f244"; 74 | @fa-var-battery-full: "\f240"; 75 | @fa-var-battery-half: "\f242"; 76 | @fa-var-battery-quarter: "\f243"; 77 | @fa-var-battery-three-quarters: "\f241"; 78 | @fa-var-bed: "\f236"; 79 | @fa-var-beer: "\f0fc"; 80 | @fa-var-behance: "\f1b4"; 81 | @fa-var-behance-square: "\f1b5"; 82 | @fa-var-bell: "\f0f3"; 83 | @fa-var-bell-o: "\f0a2"; 84 | @fa-var-bell-slash: "\f1f6"; 85 | @fa-var-bell-slash-o: "\f1f7"; 86 | @fa-var-bicycle: "\f206"; 87 | @fa-var-binoculars: "\f1e5"; 88 | @fa-var-birthday-cake: "\f1fd"; 89 | @fa-var-bitbucket: "\f171"; 90 | @fa-var-bitbucket-square: "\f172"; 91 | @fa-var-bitcoin: "\f15a"; 92 | @fa-var-black-tie: "\f27e"; 93 | @fa-var-blind: "\f29d"; 94 | @fa-var-bluetooth: "\f293"; 95 | @fa-var-bluetooth-b: "\f294"; 96 | @fa-var-bold: "\f032"; 97 | @fa-var-bolt: "\f0e7"; 98 | @fa-var-bomb: "\f1e2"; 99 | @fa-var-book: "\f02d"; 100 | @fa-var-bookmark: "\f02e"; 101 | @fa-var-bookmark-o: "\f097"; 102 | @fa-var-braille: "\f2a1"; 103 | @fa-var-briefcase: "\f0b1"; 104 | @fa-var-btc: "\f15a"; 105 | @fa-var-bug: "\f188"; 106 | @fa-var-building: "\f1ad"; 107 | @fa-var-building-o: "\f0f7"; 108 | @fa-var-bullhorn: "\f0a1"; 109 | @fa-var-bullseye: "\f140"; 110 | @fa-var-bus: "\f207"; 111 | @fa-var-buysellads: "\f20d"; 112 | @fa-var-cab: "\f1ba"; 113 | @fa-var-calculator: "\f1ec"; 114 | @fa-var-calendar: "\f073"; 115 | @fa-var-calendar-check-o: "\f274"; 116 | @fa-var-calendar-minus-o: "\f272"; 117 | @fa-var-calendar-o: "\f133"; 118 | @fa-var-calendar-plus-o: "\f271"; 119 | @fa-var-calendar-times-o: "\f273"; 120 | @fa-var-camera: "\f030"; 121 | @fa-var-camera-retro: "\f083"; 122 | @fa-var-car: "\f1b9"; 123 | @fa-var-caret-down: "\f0d7"; 124 | @fa-var-caret-left: "\f0d9"; 125 | @fa-var-caret-right: "\f0da"; 126 | @fa-var-caret-square-o-down: "\f150"; 127 | @fa-var-caret-square-o-left: "\f191"; 128 | @fa-var-caret-square-o-right: "\f152"; 129 | @fa-var-caret-square-o-up: "\f151"; 130 | @fa-var-caret-up: "\f0d8"; 131 | @fa-var-cart-arrow-down: "\f218"; 132 | @fa-var-cart-plus: "\f217"; 133 | @fa-var-cc: "\f20a"; 134 | @fa-var-cc-amex: "\f1f3"; 135 | @fa-var-cc-diners-club: "\f24c"; 136 | @fa-var-cc-discover: "\f1f2"; 137 | @fa-var-cc-jcb: "\f24b"; 138 | @fa-var-cc-mastercard: "\f1f1"; 139 | @fa-var-cc-paypal: "\f1f4"; 140 | @fa-var-cc-stripe: "\f1f5"; 141 | @fa-var-cc-visa: "\f1f0"; 142 | @fa-var-certificate: "\f0a3"; 143 | @fa-var-chain: "\f0c1"; 144 | @fa-var-chain-broken: "\f127"; 145 | @fa-var-check: "\f00c"; 146 | @fa-var-check-circle: "\f058"; 147 | @fa-var-check-circle-o: "\f05d"; 148 | @fa-var-check-square: "\f14a"; 149 | @fa-var-check-square-o: "\f046"; 150 | @fa-var-chevron-circle-down: "\f13a"; 151 | @fa-var-chevron-circle-left: "\f137"; 152 | @fa-var-chevron-circle-right: "\f138"; 153 | @fa-var-chevron-circle-up: "\f139"; 154 | @fa-var-chevron-down: "\f078"; 155 | @fa-var-chevron-left: "\f053"; 156 | @fa-var-chevron-right: "\f054"; 157 | @fa-var-chevron-up: "\f077"; 158 | @fa-var-child: "\f1ae"; 159 | @fa-var-chrome: "\f268"; 160 | @fa-var-circle: "\f111"; 161 | @fa-var-circle-o: "\f10c"; 162 | @fa-var-circle-o-notch: "\f1ce"; 163 | @fa-var-circle-thin: "\f1db"; 164 | @fa-var-clipboard: "\f0ea"; 165 | @fa-var-clock-o: "\f017"; 166 | @fa-var-clone: "\f24d"; 167 | @fa-var-close: "\f00d"; 168 | @fa-var-cloud: "\f0c2"; 169 | @fa-var-cloud-download: "\f0ed"; 170 | @fa-var-cloud-upload: "\f0ee"; 171 | @fa-var-cny: "\f157"; 172 | @fa-var-code: "\f121"; 173 | @fa-var-code-fork: "\f126"; 174 | @fa-var-codepen: "\f1cb"; 175 | @fa-var-codiepie: "\f284"; 176 | @fa-var-coffee: "\f0f4"; 177 | @fa-var-cog: "\f013"; 178 | @fa-var-cogs: "\f085"; 179 | @fa-var-columns: "\f0db"; 180 | @fa-var-comment: "\f075"; 181 | @fa-var-comment-o: "\f0e5"; 182 | @fa-var-commenting: "\f27a"; 183 | @fa-var-commenting-o: "\f27b"; 184 | @fa-var-comments: "\f086"; 185 | @fa-var-comments-o: "\f0e6"; 186 | @fa-var-compass: "\f14e"; 187 | @fa-var-compress: "\f066"; 188 | @fa-var-connectdevelop: "\f20e"; 189 | @fa-var-contao: "\f26d"; 190 | @fa-var-copy: "\f0c5"; 191 | @fa-var-copyright: "\f1f9"; 192 | @fa-var-creative-commons: "\f25e"; 193 | @fa-var-credit-card: "\f09d"; 194 | @fa-var-credit-card-alt: "\f283"; 195 | @fa-var-crop: "\f125"; 196 | @fa-var-crosshairs: "\f05b"; 197 | @fa-var-css3: "\f13c"; 198 | @fa-var-cube: "\f1b2"; 199 | @fa-var-cubes: "\f1b3"; 200 | @fa-var-cut: "\f0c4"; 201 | @fa-var-cutlery: "\f0f5"; 202 | @fa-var-dashboard: "\f0e4"; 203 | @fa-var-dashcube: "\f210"; 204 | @fa-var-database: "\f1c0"; 205 | @fa-var-deaf: "\f2a4"; 206 | @fa-var-deafness: "\f2a4"; 207 | @fa-var-dedent: "\f03b"; 208 | @fa-var-delicious: "\f1a5"; 209 | @fa-var-desktop: "\f108"; 210 | @fa-var-deviantart: "\f1bd"; 211 | @fa-var-diamond: "\f219"; 212 | @fa-var-digg: "\f1a6"; 213 | @fa-var-dollar: "\f155"; 214 | @fa-var-dot-circle-o: "\f192"; 215 | @fa-var-download: "\f019"; 216 | @fa-var-dribbble: "\f17d"; 217 | @fa-var-dropbox: "\f16b"; 218 | @fa-var-drupal: "\f1a9"; 219 | @fa-var-edge: "\f282"; 220 | @fa-var-edit: "\f044"; 221 | @fa-var-eject: "\f052"; 222 | @fa-var-ellipsis-h: "\f141"; 223 | @fa-var-ellipsis-v: "\f142"; 224 | @fa-var-empire: "\f1d1"; 225 | @fa-var-envelope: "\f0e0"; 226 | @fa-var-envelope-o: "\f003"; 227 | @fa-var-envelope-square: "\f199"; 228 | @fa-var-envira: "\f299"; 229 | @fa-var-eraser: "\f12d"; 230 | @fa-var-eur: "\f153"; 231 | @fa-var-euro: "\f153"; 232 | @fa-var-exchange: "\f0ec"; 233 | @fa-var-exclamation: "\f12a"; 234 | @fa-var-exclamation-circle: "\f06a"; 235 | @fa-var-exclamation-triangle: "\f071"; 236 | @fa-var-expand: "\f065"; 237 | @fa-var-expeditedssl: "\f23e"; 238 | @fa-var-external-link: "\f08e"; 239 | @fa-var-external-link-square: "\f14c"; 240 | @fa-var-eye: "\f06e"; 241 | @fa-var-eye-slash: "\f070"; 242 | @fa-var-eyedropper: "\f1fb"; 243 | @fa-var-fa: "\f2b4"; 244 | @fa-var-facebook: "\f09a"; 245 | @fa-var-facebook-f: "\f09a"; 246 | @fa-var-facebook-official: "\f230"; 247 | @fa-var-facebook-square: "\f082"; 248 | @fa-var-fast-backward: "\f049"; 249 | @fa-var-fast-forward: "\f050"; 250 | @fa-var-fax: "\f1ac"; 251 | @fa-var-feed: "\f09e"; 252 | @fa-var-female: "\f182"; 253 | @fa-var-fighter-jet: "\f0fb"; 254 | @fa-var-file: "\f15b"; 255 | @fa-var-file-archive-o: "\f1c6"; 256 | @fa-var-file-audio-o: "\f1c7"; 257 | @fa-var-file-code-o: "\f1c9"; 258 | @fa-var-file-excel-o: "\f1c3"; 259 | @fa-var-file-image-o: "\f1c5"; 260 | @fa-var-file-movie-o: "\f1c8"; 261 | @fa-var-file-o: "\f016"; 262 | @fa-var-file-pdf-o: "\f1c1"; 263 | @fa-var-file-photo-o: "\f1c5"; 264 | @fa-var-file-picture-o: "\f1c5"; 265 | @fa-var-file-powerpoint-o: "\f1c4"; 266 | @fa-var-file-sound-o: "\f1c7"; 267 | @fa-var-file-text: "\f15c"; 268 | @fa-var-file-text-o: "\f0f6"; 269 | @fa-var-file-video-o: "\f1c8"; 270 | @fa-var-file-word-o: "\f1c2"; 271 | @fa-var-file-zip-o: "\f1c6"; 272 | @fa-var-files-o: "\f0c5"; 273 | @fa-var-film: "\f008"; 274 | @fa-var-filter: "\f0b0"; 275 | @fa-var-fire: "\f06d"; 276 | @fa-var-fire-extinguisher: "\f134"; 277 | @fa-var-firefox: "\f269"; 278 | @fa-var-first-order: "\f2b0"; 279 | @fa-var-flag: "\f024"; 280 | @fa-var-flag-checkered: "\f11e"; 281 | @fa-var-flag-o: "\f11d"; 282 | @fa-var-flash: "\f0e7"; 283 | @fa-var-flask: "\f0c3"; 284 | @fa-var-flickr: "\f16e"; 285 | @fa-var-floppy-o: "\f0c7"; 286 | @fa-var-folder: "\f07b"; 287 | @fa-var-folder-o: "\f114"; 288 | @fa-var-folder-open: "\f07c"; 289 | @fa-var-folder-open-o: "\f115"; 290 | @fa-var-font: "\f031"; 291 | @fa-var-font-awesome: "\f2b4"; 292 | @fa-var-fonticons: "\f280"; 293 | @fa-var-fort-awesome: "\f286"; 294 | @fa-var-forumbee: "\f211"; 295 | @fa-var-forward: "\f04e"; 296 | @fa-var-foursquare: "\f180"; 297 | @fa-var-frown-o: "\f119"; 298 | @fa-var-futbol-o: "\f1e3"; 299 | @fa-var-gamepad: "\f11b"; 300 | @fa-var-gavel: "\f0e3"; 301 | @fa-var-gbp: "\f154"; 302 | @fa-var-ge: "\f1d1"; 303 | @fa-var-gear: "\f013"; 304 | @fa-var-gears: "\f085"; 305 | @fa-var-genderless: "\f22d"; 306 | @fa-var-get-pocket: "\f265"; 307 | @fa-var-gg: "\f260"; 308 | @fa-var-gg-circle: "\f261"; 309 | @fa-var-gift: "\f06b"; 310 | @fa-var-git: "\f1d3"; 311 | @fa-var-git-square: "\f1d2"; 312 | @fa-var-github: "\f09b"; 313 | @fa-var-github-alt: "\f113"; 314 | @fa-var-github-square: "\f092"; 315 | @fa-var-gitlab: "\f296"; 316 | @fa-var-gittip: "\f184"; 317 | @fa-var-glass: "\f000"; 318 | @fa-var-glide: "\f2a5"; 319 | @fa-var-glide-g: "\f2a6"; 320 | @fa-var-globe: "\f0ac"; 321 | @fa-var-google: "\f1a0"; 322 | @fa-var-google-plus: "\f0d5"; 323 | @fa-var-google-plus-circle: "\f2b3"; 324 | @fa-var-google-plus-official: "\f2b3"; 325 | @fa-var-google-plus-square: "\f0d4"; 326 | @fa-var-google-wallet: "\f1ee"; 327 | @fa-var-graduation-cap: "\f19d"; 328 | @fa-var-gratipay: "\f184"; 329 | @fa-var-group: "\f0c0"; 330 | @fa-var-h-square: "\f0fd"; 331 | @fa-var-hacker-news: "\f1d4"; 332 | @fa-var-hand-grab-o: "\f255"; 333 | @fa-var-hand-lizard-o: "\f258"; 334 | @fa-var-hand-o-down: "\f0a7"; 335 | @fa-var-hand-o-left: "\f0a5"; 336 | @fa-var-hand-o-right: "\f0a4"; 337 | @fa-var-hand-o-up: "\f0a6"; 338 | @fa-var-hand-paper-o: "\f256"; 339 | @fa-var-hand-peace-o: "\f25b"; 340 | @fa-var-hand-pointer-o: "\f25a"; 341 | @fa-var-hand-rock-o: "\f255"; 342 | @fa-var-hand-scissors-o: "\f257"; 343 | @fa-var-hand-spock-o: "\f259"; 344 | @fa-var-hand-stop-o: "\f256"; 345 | @fa-var-hard-of-hearing: "\f2a4"; 346 | @fa-var-hashtag: "\f292"; 347 | @fa-var-hdd-o: "\f0a0"; 348 | @fa-var-header: "\f1dc"; 349 | @fa-var-headphones: "\f025"; 350 | @fa-var-heart: "\f004"; 351 | @fa-var-heart-o: "\f08a"; 352 | @fa-var-heartbeat: "\f21e"; 353 | @fa-var-history: "\f1da"; 354 | @fa-var-home: "\f015"; 355 | @fa-var-hospital-o: "\f0f8"; 356 | @fa-var-hotel: "\f236"; 357 | @fa-var-hourglass: "\f254"; 358 | @fa-var-hourglass-1: "\f251"; 359 | @fa-var-hourglass-2: "\f252"; 360 | @fa-var-hourglass-3: "\f253"; 361 | @fa-var-hourglass-end: "\f253"; 362 | @fa-var-hourglass-half: "\f252"; 363 | @fa-var-hourglass-o: "\f250"; 364 | @fa-var-hourglass-start: "\f251"; 365 | @fa-var-houzz: "\f27c"; 366 | @fa-var-html5: "\f13b"; 367 | @fa-var-i-cursor: "\f246"; 368 | @fa-var-ils: "\f20b"; 369 | @fa-var-image: "\f03e"; 370 | @fa-var-inbox: "\f01c"; 371 | @fa-var-indent: "\f03c"; 372 | @fa-var-industry: "\f275"; 373 | @fa-var-info: "\f129"; 374 | @fa-var-info-circle: "\f05a"; 375 | @fa-var-inr: "\f156"; 376 | @fa-var-instagram: "\f16d"; 377 | @fa-var-institution: "\f19c"; 378 | @fa-var-internet-explorer: "\f26b"; 379 | @fa-var-intersex: "\f224"; 380 | @fa-var-ioxhost: "\f208"; 381 | @fa-var-italic: "\f033"; 382 | @fa-var-joomla: "\f1aa"; 383 | @fa-var-jpy: "\f157"; 384 | @fa-var-jsfiddle: "\f1cc"; 385 | @fa-var-key: "\f084"; 386 | @fa-var-keyboard-o: "\f11c"; 387 | @fa-var-krw: "\f159"; 388 | @fa-var-language: "\f1ab"; 389 | @fa-var-laptop: "\f109"; 390 | @fa-var-lastfm: "\f202"; 391 | @fa-var-lastfm-square: "\f203"; 392 | @fa-var-leaf: "\f06c"; 393 | @fa-var-leanpub: "\f212"; 394 | @fa-var-legal: "\f0e3"; 395 | @fa-var-lemon-o: "\f094"; 396 | @fa-var-level-down: "\f149"; 397 | @fa-var-level-up: "\f148"; 398 | @fa-var-life-bouy: "\f1cd"; 399 | @fa-var-life-buoy: "\f1cd"; 400 | @fa-var-life-ring: "\f1cd"; 401 | @fa-var-life-saver: "\f1cd"; 402 | @fa-var-lightbulb-o: "\f0eb"; 403 | @fa-var-line-chart: "\f201"; 404 | @fa-var-link: "\f0c1"; 405 | @fa-var-linkedin: "\f0e1"; 406 | @fa-var-linkedin-square: "\f08c"; 407 | @fa-var-linux: "\f17c"; 408 | @fa-var-list: "\f03a"; 409 | @fa-var-list-alt: "\f022"; 410 | @fa-var-list-ol: "\f0cb"; 411 | @fa-var-list-ul: "\f0ca"; 412 | @fa-var-location-arrow: "\f124"; 413 | @fa-var-lock: "\f023"; 414 | @fa-var-long-arrow-down: "\f175"; 415 | @fa-var-long-arrow-left: "\f177"; 416 | @fa-var-long-arrow-right: "\f178"; 417 | @fa-var-long-arrow-up: "\f176"; 418 | @fa-var-low-vision: "\f2a8"; 419 | @fa-var-magic: "\f0d0"; 420 | @fa-var-magnet: "\f076"; 421 | @fa-var-mail-forward: "\f064"; 422 | @fa-var-mail-reply: "\f112"; 423 | @fa-var-mail-reply-all: "\f122"; 424 | @fa-var-male: "\f183"; 425 | @fa-var-map: "\f279"; 426 | @fa-var-map-marker: "\f041"; 427 | @fa-var-map-o: "\f278"; 428 | @fa-var-map-pin: "\f276"; 429 | @fa-var-map-signs: "\f277"; 430 | @fa-var-mars: "\f222"; 431 | @fa-var-mars-double: "\f227"; 432 | @fa-var-mars-stroke: "\f229"; 433 | @fa-var-mars-stroke-h: "\f22b"; 434 | @fa-var-mars-stroke-v: "\f22a"; 435 | @fa-var-maxcdn: "\f136"; 436 | @fa-var-meanpath: "\f20c"; 437 | @fa-var-medium: "\f23a"; 438 | @fa-var-medkit: "\f0fa"; 439 | @fa-var-meh-o: "\f11a"; 440 | @fa-var-mercury: "\f223"; 441 | @fa-var-microphone: "\f130"; 442 | @fa-var-microphone-slash: "\f131"; 443 | @fa-var-minus: "\f068"; 444 | @fa-var-minus-circle: "\f056"; 445 | @fa-var-minus-square: "\f146"; 446 | @fa-var-minus-square-o: "\f147"; 447 | @fa-var-mixcloud: "\f289"; 448 | @fa-var-mobile: "\f10b"; 449 | @fa-var-mobile-phone: "\f10b"; 450 | @fa-var-modx: "\f285"; 451 | @fa-var-money: "\f0d6"; 452 | @fa-var-moon-o: "\f186"; 453 | @fa-var-mortar-board: "\f19d"; 454 | @fa-var-motorcycle: "\f21c"; 455 | @fa-var-mouse-pointer: "\f245"; 456 | @fa-var-music: "\f001"; 457 | @fa-var-navicon: "\f0c9"; 458 | @fa-var-neuter: "\f22c"; 459 | @fa-var-newspaper-o: "\f1ea"; 460 | @fa-var-object-group: "\f247"; 461 | @fa-var-object-ungroup: "\f248"; 462 | @fa-var-odnoklassniki: "\f263"; 463 | @fa-var-odnoklassniki-square: "\f264"; 464 | @fa-var-opencart: "\f23d"; 465 | @fa-var-openid: "\f19b"; 466 | @fa-var-opera: "\f26a"; 467 | @fa-var-optin-monster: "\f23c"; 468 | @fa-var-outdent: "\f03b"; 469 | @fa-var-pagelines: "\f18c"; 470 | @fa-var-paint-brush: "\f1fc"; 471 | @fa-var-paper-plane: "\f1d8"; 472 | @fa-var-paper-plane-o: "\f1d9"; 473 | @fa-var-paperclip: "\f0c6"; 474 | @fa-var-paragraph: "\f1dd"; 475 | @fa-var-paste: "\f0ea"; 476 | @fa-var-pause: "\f04c"; 477 | @fa-var-pause-circle: "\f28b"; 478 | @fa-var-pause-circle-o: "\f28c"; 479 | @fa-var-paw: "\f1b0"; 480 | @fa-var-paypal: "\f1ed"; 481 | @fa-var-pencil: "\f040"; 482 | @fa-var-pencil-square: "\f14b"; 483 | @fa-var-pencil-square-o: "\f044"; 484 | @fa-var-percent: "\f295"; 485 | @fa-var-phone: "\f095"; 486 | @fa-var-phone-square: "\f098"; 487 | @fa-var-photo: "\f03e"; 488 | @fa-var-picture-o: "\f03e"; 489 | @fa-var-pie-chart: "\f200"; 490 | @fa-var-pied-piper: "\f2ae"; 491 | @fa-var-pied-piper-alt: "\f1a8"; 492 | @fa-var-pied-piper-pp: "\f1a7"; 493 | @fa-var-pinterest: "\f0d2"; 494 | @fa-var-pinterest-p: "\f231"; 495 | @fa-var-pinterest-square: "\f0d3"; 496 | @fa-var-plane: "\f072"; 497 | @fa-var-play: "\f04b"; 498 | @fa-var-play-circle: "\f144"; 499 | @fa-var-play-circle-o: "\f01d"; 500 | @fa-var-plug: "\f1e6"; 501 | @fa-var-plus: "\f067"; 502 | @fa-var-plus-circle: "\f055"; 503 | @fa-var-plus-square: "\f0fe"; 504 | @fa-var-plus-square-o: "\f196"; 505 | @fa-var-power-off: "\f011"; 506 | @fa-var-print: "\f02f"; 507 | @fa-var-product-hunt: "\f288"; 508 | @fa-var-puzzle-piece: "\f12e"; 509 | @fa-var-qq: "\f1d6"; 510 | @fa-var-qrcode: "\f029"; 511 | @fa-var-question: "\f128"; 512 | @fa-var-question-circle: "\f059"; 513 | @fa-var-question-circle-o: "\f29c"; 514 | @fa-var-quote-left: "\f10d"; 515 | @fa-var-quote-right: "\f10e"; 516 | @fa-var-ra: "\f1d0"; 517 | @fa-var-random: "\f074"; 518 | @fa-var-rebel: "\f1d0"; 519 | @fa-var-recycle: "\f1b8"; 520 | @fa-var-reddit: "\f1a1"; 521 | @fa-var-reddit-alien: "\f281"; 522 | @fa-var-reddit-square: "\f1a2"; 523 | @fa-var-refresh: "\f021"; 524 | @fa-var-registered: "\f25d"; 525 | @fa-var-remove: "\f00d"; 526 | @fa-var-renren: "\f18b"; 527 | @fa-var-reorder: "\f0c9"; 528 | @fa-var-repeat: "\f01e"; 529 | @fa-var-reply: "\f112"; 530 | @fa-var-reply-all: "\f122"; 531 | @fa-var-resistance: "\f1d0"; 532 | @fa-var-retweet: "\f079"; 533 | @fa-var-rmb: "\f157"; 534 | @fa-var-road: "\f018"; 535 | @fa-var-rocket: "\f135"; 536 | @fa-var-rotate-left: "\f0e2"; 537 | @fa-var-rotate-right: "\f01e"; 538 | @fa-var-rouble: "\f158"; 539 | @fa-var-rss: "\f09e"; 540 | @fa-var-rss-square: "\f143"; 541 | @fa-var-rub: "\f158"; 542 | @fa-var-ruble: "\f158"; 543 | @fa-var-rupee: "\f156"; 544 | @fa-var-safari: "\f267"; 545 | @fa-var-save: "\f0c7"; 546 | @fa-var-scissors: "\f0c4"; 547 | @fa-var-scribd: "\f28a"; 548 | @fa-var-search: "\f002"; 549 | @fa-var-search-minus: "\f010"; 550 | @fa-var-search-plus: "\f00e"; 551 | @fa-var-sellsy: "\f213"; 552 | @fa-var-send: "\f1d8"; 553 | @fa-var-send-o: "\f1d9"; 554 | @fa-var-server: "\f233"; 555 | @fa-var-share: "\f064"; 556 | @fa-var-share-alt: "\f1e0"; 557 | @fa-var-share-alt-square: "\f1e1"; 558 | @fa-var-share-square: "\f14d"; 559 | @fa-var-share-square-o: "\f045"; 560 | @fa-var-shekel: "\f20b"; 561 | @fa-var-sheqel: "\f20b"; 562 | @fa-var-shield: "\f132"; 563 | @fa-var-ship: "\f21a"; 564 | @fa-var-shirtsinbulk: "\f214"; 565 | @fa-var-shopping-bag: "\f290"; 566 | @fa-var-shopping-basket: "\f291"; 567 | @fa-var-shopping-cart: "\f07a"; 568 | @fa-var-sign-in: "\f090"; 569 | @fa-var-sign-language: "\f2a7"; 570 | @fa-var-sign-out: "\f08b"; 571 | @fa-var-signal: "\f012"; 572 | @fa-var-signing: "\f2a7"; 573 | @fa-var-simplybuilt: "\f215"; 574 | @fa-var-sitemap: "\f0e8"; 575 | @fa-var-skyatlas: "\f216"; 576 | @fa-var-skype: "\f17e"; 577 | @fa-var-slack: "\f198"; 578 | @fa-var-sliders: "\f1de"; 579 | @fa-var-slideshare: "\f1e7"; 580 | @fa-var-smile-o: "\f118"; 581 | @fa-var-snapchat: "\f2ab"; 582 | @fa-var-snapchat-ghost: "\f2ac"; 583 | @fa-var-snapchat-square: "\f2ad"; 584 | @fa-var-soccer-ball-o: "\f1e3"; 585 | @fa-var-sort: "\f0dc"; 586 | @fa-var-sort-alpha-asc: "\f15d"; 587 | @fa-var-sort-alpha-desc: "\f15e"; 588 | @fa-var-sort-amount-asc: "\f160"; 589 | @fa-var-sort-amount-desc: "\f161"; 590 | @fa-var-sort-asc: "\f0de"; 591 | @fa-var-sort-desc: "\f0dd"; 592 | @fa-var-sort-down: "\f0dd"; 593 | @fa-var-sort-numeric-asc: "\f162"; 594 | @fa-var-sort-numeric-desc: "\f163"; 595 | @fa-var-sort-up: "\f0de"; 596 | @fa-var-soundcloud: "\f1be"; 597 | @fa-var-space-shuttle: "\f197"; 598 | @fa-var-spinner: "\f110"; 599 | @fa-var-spoon: "\f1b1"; 600 | @fa-var-spotify: "\f1bc"; 601 | @fa-var-square: "\f0c8"; 602 | @fa-var-square-o: "\f096"; 603 | @fa-var-stack-exchange: "\f18d"; 604 | @fa-var-stack-overflow: "\f16c"; 605 | @fa-var-star: "\f005"; 606 | @fa-var-star-half: "\f089"; 607 | @fa-var-star-half-empty: "\f123"; 608 | @fa-var-star-half-full: "\f123"; 609 | @fa-var-star-half-o: "\f123"; 610 | @fa-var-star-o: "\f006"; 611 | @fa-var-steam: "\f1b6"; 612 | @fa-var-steam-square: "\f1b7"; 613 | @fa-var-step-backward: "\f048"; 614 | @fa-var-step-forward: "\f051"; 615 | @fa-var-stethoscope: "\f0f1"; 616 | @fa-var-sticky-note: "\f249"; 617 | @fa-var-sticky-note-o: "\f24a"; 618 | @fa-var-stop: "\f04d"; 619 | @fa-var-stop-circle: "\f28d"; 620 | @fa-var-stop-circle-o: "\f28e"; 621 | @fa-var-street-view: "\f21d"; 622 | @fa-var-strikethrough: "\f0cc"; 623 | @fa-var-stumbleupon: "\f1a4"; 624 | @fa-var-stumbleupon-circle: "\f1a3"; 625 | @fa-var-subscript: "\f12c"; 626 | @fa-var-subway: "\f239"; 627 | @fa-var-suitcase: "\f0f2"; 628 | @fa-var-sun-o: "\f185"; 629 | @fa-var-superscript: "\f12b"; 630 | @fa-var-support: "\f1cd"; 631 | @fa-var-table: "\f0ce"; 632 | @fa-var-tablet: "\f10a"; 633 | @fa-var-tachometer: "\f0e4"; 634 | @fa-var-tag: "\f02b"; 635 | @fa-var-tags: "\f02c"; 636 | @fa-var-tasks: "\f0ae"; 637 | @fa-var-taxi: "\f1ba"; 638 | @fa-var-television: "\f26c"; 639 | @fa-var-tencent-weibo: "\f1d5"; 640 | @fa-var-terminal: "\f120"; 641 | @fa-var-text-height: "\f034"; 642 | @fa-var-text-width: "\f035"; 643 | @fa-var-th: "\f00a"; 644 | @fa-var-th-large: "\f009"; 645 | @fa-var-th-list: "\f00b"; 646 | @fa-var-themeisle: "\f2b2"; 647 | @fa-var-thumb-tack: "\f08d"; 648 | @fa-var-thumbs-down: "\f165"; 649 | @fa-var-thumbs-o-down: "\f088"; 650 | @fa-var-thumbs-o-up: "\f087"; 651 | @fa-var-thumbs-up: "\f164"; 652 | @fa-var-ticket: "\f145"; 653 | @fa-var-times: "\f00d"; 654 | @fa-var-times-circle: "\f057"; 655 | @fa-var-times-circle-o: "\f05c"; 656 | @fa-var-tint: "\f043"; 657 | @fa-var-toggle-down: "\f150"; 658 | @fa-var-toggle-left: "\f191"; 659 | @fa-var-toggle-off: "\f204"; 660 | @fa-var-toggle-on: "\f205"; 661 | @fa-var-toggle-right: "\f152"; 662 | @fa-var-toggle-up: "\f151"; 663 | @fa-var-trademark: "\f25c"; 664 | @fa-var-train: "\f238"; 665 | @fa-var-transgender: "\f224"; 666 | @fa-var-transgender-alt: "\f225"; 667 | @fa-var-trash: "\f1f8"; 668 | @fa-var-trash-o: "\f014"; 669 | @fa-var-tree: "\f1bb"; 670 | @fa-var-trello: "\f181"; 671 | @fa-var-tripadvisor: "\f262"; 672 | @fa-var-trophy: "\f091"; 673 | @fa-var-truck: "\f0d1"; 674 | @fa-var-try: "\f195"; 675 | @fa-var-tty: "\f1e4"; 676 | @fa-var-tumblr: "\f173"; 677 | @fa-var-tumblr-square: "\f174"; 678 | @fa-var-turkish-lira: "\f195"; 679 | @fa-var-tv: "\f26c"; 680 | @fa-var-twitch: "\f1e8"; 681 | @fa-var-twitter: "\f099"; 682 | @fa-var-twitter-square: "\f081"; 683 | @fa-var-umbrella: "\f0e9"; 684 | @fa-var-underline: "\f0cd"; 685 | @fa-var-undo: "\f0e2"; 686 | @fa-var-universal-access: "\f29a"; 687 | @fa-var-university: "\f19c"; 688 | @fa-var-unlink: "\f127"; 689 | @fa-var-unlock: "\f09c"; 690 | @fa-var-unlock-alt: "\f13e"; 691 | @fa-var-unsorted: "\f0dc"; 692 | @fa-var-upload: "\f093"; 693 | @fa-var-usb: "\f287"; 694 | @fa-var-usd: "\f155"; 695 | @fa-var-user: "\f007"; 696 | @fa-var-user-md: "\f0f0"; 697 | @fa-var-user-plus: "\f234"; 698 | @fa-var-user-secret: "\f21b"; 699 | @fa-var-user-times: "\f235"; 700 | @fa-var-users: "\f0c0"; 701 | @fa-var-venus: "\f221"; 702 | @fa-var-venus-double: "\f226"; 703 | @fa-var-venus-mars: "\f228"; 704 | @fa-var-viacoin: "\f237"; 705 | @fa-var-viadeo: "\f2a9"; 706 | @fa-var-viadeo-square: "\f2aa"; 707 | @fa-var-video-camera: "\f03d"; 708 | @fa-var-vimeo: "\f27d"; 709 | @fa-var-vimeo-square: "\f194"; 710 | @fa-var-vine: "\f1ca"; 711 | @fa-var-vk: "\f189"; 712 | @fa-var-volume-control-phone: "\f2a0"; 713 | @fa-var-volume-down: "\f027"; 714 | @fa-var-volume-off: "\f026"; 715 | @fa-var-volume-up: "\f028"; 716 | @fa-var-warning: "\f071"; 717 | @fa-var-wechat: "\f1d7"; 718 | @fa-var-weibo: "\f18a"; 719 | @fa-var-weixin: "\f1d7"; 720 | @fa-var-whatsapp: "\f232"; 721 | @fa-var-wheelchair: "\f193"; 722 | @fa-var-wheelchair-alt: "\f29b"; 723 | @fa-var-wifi: "\f1eb"; 724 | @fa-var-wikipedia-w: "\f266"; 725 | @fa-var-windows: "\f17a"; 726 | @fa-var-won: "\f159"; 727 | @fa-var-wordpress: "\f19a"; 728 | @fa-var-wpbeginner: "\f297"; 729 | @fa-var-wpforms: "\f298"; 730 | @fa-var-wrench: "\f0ad"; 731 | @fa-var-xing: "\f168"; 732 | @fa-var-xing-square: "\f169"; 733 | @fa-var-y-combinator: "\f23b"; 734 | @fa-var-y-combinator-square: "\f1d4"; 735 | @fa-var-yahoo: "\f19e"; 736 | @fa-var-yc: "\f23b"; 737 | @fa-var-yc-square: "\f1d4"; 738 | @fa-var-yelp: "\f1e9"; 739 | @fa-var-yen: "\f157"; 740 | @fa-var-yoast: "\f2b1"; 741 | @fa-var-youtube: "\f167"; 742 | @fa-var-youtube-play: "\f16a"; 743 | @fa-var-youtube-square: "\f166"; 744 | 745 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | @mixin sr-only { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | @mixin sr-only-focusable { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only(); } 5 | .sr-only-focusable { @include sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | $fa-font-path: "../fonts" !default; 5 | $fa-font-size-base: 14px !default; 6 | $fa-line-height-base: 1 !default; 7 | //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.3/fonts" !default; // for referencing Bootstrap CDN font files directly 8 | $fa-css-prefix: fa !default; 9 | $fa-version: "4.6.3" !default; 10 | $fa-border-color: #eee !default; 11 | $fa-inverse: #fff !default; 12 | $fa-li-width: (30em / 14) !default; 13 | 14 | $fa-var-500px: "\f26e"; 15 | $fa-var-adjust: "\f042"; 16 | $fa-var-adn: "\f170"; 17 | $fa-var-align-center: "\f037"; 18 | $fa-var-align-justify: "\f039"; 19 | $fa-var-align-left: "\f036"; 20 | $fa-var-align-right: "\f038"; 21 | $fa-var-amazon: "\f270"; 22 | $fa-var-ambulance: "\f0f9"; 23 | $fa-var-american-sign-language-interpreting: "\f2a3"; 24 | $fa-var-anchor: "\f13d"; 25 | $fa-var-android: "\f17b"; 26 | $fa-var-angellist: "\f209"; 27 | $fa-var-angle-double-down: "\f103"; 28 | $fa-var-angle-double-left: "\f100"; 29 | $fa-var-angle-double-right: "\f101"; 30 | $fa-var-angle-double-up: "\f102"; 31 | $fa-var-angle-down: "\f107"; 32 | $fa-var-angle-left: "\f104"; 33 | $fa-var-angle-right: "\f105"; 34 | $fa-var-angle-up: "\f106"; 35 | $fa-var-apple: "\f179"; 36 | $fa-var-archive: "\f187"; 37 | $fa-var-area-chart: "\f1fe"; 38 | $fa-var-arrow-circle-down: "\f0ab"; 39 | $fa-var-arrow-circle-left: "\f0a8"; 40 | $fa-var-arrow-circle-o-down: "\f01a"; 41 | $fa-var-arrow-circle-o-left: "\f190"; 42 | $fa-var-arrow-circle-o-right: "\f18e"; 43 | $fa-var-arrow-circle-o-up: "\f01b"; 44 | $fa-var-arrow-circle-right: "\f0a9"; 45 | $fa-var-arrow-circle-up: "\f0aa"; 46 | $fa-var-arrow-down: "\f063"; 47 | $fa-var-arrow-left: "\f060"; 48 | $fa-var-arrow-right: "\f061"; 49 | $fa-var-arrow-up: "\f062"; 50 | $fa-var-arrows: "\f047"; 51 | $fa-var-arrows-alt: "\f0b2"; 52 | $fa-var-arrows-h: "\f07e"; 53 | $fa-var-arrows-v: "\f07d"; 54 | $fa-var-asl-interpreting: "\f2a3"; 55 | $fa-var-assistive-listening-systems: "\f2a2"; 56 | $fa-var-asterisk: "\f069"; 57 | $fa-var-at: "\f1fa"; 58 | $fa-var-audio-description: "\f29e"; 59 | $fa-var-automobile: "\f1b9"; 60 | $fa-var-backward: "\f04a"; 61 | $fa-var-balance-scale: "\f24e"; 62 | $fa-var-ban: "\f05e"; 63 | $fa-var-bank: "\f19c"; 64 | $fa-var-bar-chart: "\f080"; 65 | $fa-var-bar-chart-o: "\f080"; 66 | $fa-var-barcode: "\f02a"; 67 | $fa-var-bars: "\f0c9"; 68 | $fa-var-battery-0: "\f244"; 69 | $fa-var-battery-1: "\f243"; 70 | $fa-var-battery-2: "\f242"; 71 | $fa-var-battery-3: "\f241"; 72 | $fa-var-battery-4: "\f240"; 73 | $fa-var-battery-empty: "\f244"; 74 | $fa-var-battery-full: "\f240"; 75 | $fa-var-battery-half: "\f242"; 76 | $fa-var-battery-quarter: "\f243"; 77 | $fa-var-battery-three-quarters: "\f241"; 78 | $fa-var-bed: "\f236"; 79 | $fa-var-beer: "\f0fc"; 80 | $fa-var-behance: "\f1b4"; 81 | $fa-var-behance-square: "\f1b5"; 82 | $fa-var-bell: "\f0f3"; 83 | $fa-var-bell-o: "\f0a2"; 84 | $fa-var-bell-slash: "\f1f6"; 85 | $fa-var-bell-slash-o: "\f1f7"; 86 | $fa-var-bicycle: "\f206"; 87 | $fa-var-binoculars: "\f1e5"; 88 | $fa-var-birthday-cake: "\f1fd"; 89 | $fa-var-bitbucket: "\f171"; 90 | $fa-var-bitbucket-square: "\f172"; 91 | $fa-var-bitcoin: "\f15a"; 92 | $fa-var-black-tie: "\f27e"; 93 | $fa-var-blind: "\f29d"; 94 | $fa-var-bluetooth: "\f293"; 95 | $fa-var-bluetooth-b: "\f294"; 96 | $fa-var-bold: "\f032"; 97 | $fa-var-bolt: "\f0e7"; 98 | $fa-var-bomb: "\f1e2"; 99 | $fa-var-book: "\f02d"; 100 | $fa-var-bookmark: "\f02e"; 101 | $fa-var-bookmark-o: "\f097"; 102 | $fa-var-braille: "\f2a1"; 103 | $fa-var-briefcase: "\f0b1"; 104 | $fa-var-btc: "\f15a"; 105 | $fa-var-bug: "\f188"; 106 | $fa-var-building: "\f1ad"; 107 | $fa-var-building-o: "\f0f7"; 108 | $fa-var-bullhorn: "\f0a1"; 109 | $fa-var-bullseye: "\f140"; 110 | $fa-var-bus: "\f207"; 111 | $fa-var-buysellads: "\f20d"; 112 | $fa-var-cab: "\f1ba"; 113 | $fa-var-calculator: "\f1ec"; 114 | $fa-var-calendar: "\f073"; 115 | $fa-var-calendar-check-o: "\f274"; 116 | $fa-var-calendar-minus-o: "\f272"; 117 | $fa-var-calendar-o: "\f133"; 118 | $fa-var-calendar-plus-o: "\f271"; 119 | $fa-var-calendar-times-o: "\f273"; 120 | $fa-var-camera: "\f030"; 121 | $fa-var-camera-retro: "\f083"; 122 | $fa-var-car: "\f1b9"; 123 | $fa-var-caret-down: "\f0d7"; 124 | $fa-var-caret-left: "\f0d9"; 125 | $fa-var-caret-right: "\f0da"; 126 | $fa-var-caret-square-o-down: "\f150"; 127 | $fa-var-caret-square-o-left: "\f191"; 128 | $fa-var-caret-square-o-right: "\f152"; 129 | $fa-var-caret-square-o-up: "\f151"; 130 | $fa-var-caret-up: "\f0d8"; 131 | $fa-var-cart-arrow-down: "\f218"; 132 | $fa-var-cart-plus: "\f217"; 133 | $fa-var-cc: "\f20a"; 134 | $fa-var-cc-amex: "\f1f3"; 135 | $fa-var-cc-diners-club: "\f24c"; 136 | $fa-var-cc-discover: "\f1f2"; 137 | $fa-var-cc-jcb: "\f24b"; 138 | $fa-var-cc-mastercard: "\f1f1"; 139 | $fa-var-cc-paypal: "\f1f4"; 140 | $fa-var-cc-stripe: "\f1f5"; 141 | $fa-var-cc-visa: "\f1f0"; 142 | $fa-var-certificate: "\f0a3"; 143 | $fa-var-chain: "\f0c1"; 144 | $fa-var-chain-broken: "\f127"; 145 | $fa-var-check: "\f00c"; 146 | $fa-var-check-circle: "\f058"; 147 | $fa-var-check-circle-o: "\f05d"; 148 | $fa-var-check-square: "\f14a"; 149 | $fa-var-check-square-o: "\f046"; 150 | $fa-var-chevron-circle-down: "\f13a"; 151 | $fa-var-chevron-circle-left: "\f137"; 152 | $fa-var-chevron-circle-right: "\f138"; 153 | $fa-var-chevron-circle-up: "\f139"; 154 | $fa-var-chevron-down: "\f078"; 155 | $fa-var-chevron-left: "\f053"; 156 | $fa-var-chevron-right: "\f054"; 157 | $fa-var-chevron-up: "\f077"; 158 | $fa-var-child: "\f1ae"; 159 | $fa-var-chrome: "\f268"; 160 | $fa-var-circle: "\f111"; 161 | $fa-var-circle-o: "\f10c"; 162 | $fa-var-circle-o-notch: "\f1ce"; 163 | $fa-var-circle-thin: "\f1db"; 164 | $fa-var-clipboard: "\f0ea"; 165 | $fa-var-clock-o: "\f017"; 166 | $fa-var-clone: "\f24d"; 167 | $fa-var-close: "\f00d"; 168 | $fa-var-cloud: "\f0c2"; 169 | $fa-var-cloud-download: "\f0ed"; 170 | $fa-var-cloud-upload: "\f0ee"; 171 | $fa-var-cny: "\f157"; 172 | $fa-var-code: "\f121"; 173 | $fa-var-code-fork: "\f126"; 174 | $fa-var-codepen: "\f1cb"; 175 | $fa-var-codiepie: "\f284"; 176 | $fa-var-coffee: "\f0f4"; 177 | $fa-var-cog: "\f013"; 178 | $fa-var-cogs: "\f085"; 179 | $fa-var-columns: "\f0db"; 180 | $fa-var-comment: "\f075"; 181 | $fa-var-comment-o: "\f0e5"; 182 | $fa-var-commenting: "\f27a"; 183 | $fa-var-commenting-o: "\f27b"; 184 | $fa-var-comments: "\f086"; 185 | $fa-var-comments-o: "\f0e6"; 186 | $fa-var-compass: "\f14e"; 187 | $fa-var-compress: "\f066"; 188 | $fa-var-connectdevelop: "\f20e"; 189 | $fa-var-contao: "\f26d"; 190 | $fa-var-copy: "\f0c5"; 191 | $fa-var-copyright: "\f1f9"; 192 | $fa-var-creative-commons: "\f25e"; 193 | $fa-var-credit-card: "\f09d"; 194 | $fa-var-credit-card-alt: "\f283"; 195 | $fa-var-crop: "\f125"; 196 | $fa-var-crosshairs: "\f05b"; 197 | $fa-var-css3: "\f13c"; 198 | $fa-var-cube: "\f1b2"; 199 | $fa-var-cubes: "\f1b3"; 200 | $fa-var-cut: "\f0c4"; 201 | $fa-var-cutlery: "\f0f5"; 202 | $fa-var-dashboard: "\f0e4"; 203 | $fa-var-dashcube: "\f210"; 204 | $fa-var-database: "\f1c0"; 205 | $fa-var-deaf: "\f2a4"; 206 | $fa-var-deafness: "\f2a4"; 207 | $fa-var-dedent: "\f03b"; 208 | $fa-var-delicious: "\f1a5"; 209 | $fa-var-desktop: "\f108"; 210 | $fa-var-deviantart: "\f1bd"; 211 | $fa-var-diamond: "\f219"; 212 | $fa-var-digg: "\f1a6"; 213 | $fa-var-dollar: "\f155"; 214 | $fa-var-dot-circle-o: "\f192"; 215 | $fa-var-download: "\f019"; 216 | $fa-var-dribbble: "\f17d"; 217 | $fa-var-dropbox: "\f16b"; 218 | $fa-var-drupal: "\f1a9"; 219 | $fa-var-edge: "\f282"; 220 | $fa-var-edit: "\f044"; 221 | $fa-var-eject: "\f052"; 222 | $fa-var-ellipsis-h: "\f141"; 223 | $fa-var-ellipsis-v: "\f142"; 224 | $fa-var-empire: "\f1d1"; 225 | $fa-var-envelope: "\f0e0"; 226 | $fa-var-envelope-o: "\f003"; 227 | $fa-var-envelope-square: "\f199"; 228 | $fa-var-envira: "\f299"; 229 | $fa-var-eraser: "\f12d"; 230 | $fa-var-eur: "\f153"; 231 | $fa-var-euro: "\f153"; 232 | $fa-var-exchange: "\f0ec"; 233 | $fa-var-exclamation: "\f12a"; 234 | $fa-var-exclamation-circle: "\f06a"; 235 | $fa-var-exclamation-triangle: "\f071"; 236 | $fa-var-expand: "\f065"; 237 | $fa-var-expeditedssl: "\f23e"; 238 | $fa-var-external-link: "\f08e"; 239 | $fa-var-external-link-square: "\f14c"; 240 | $fa-var-eye: "\f06e"; 241 | $fa-var-eye-slash: "\f070"; 242 | $fa-var-eyedropper: "\f1fb"; 243 | $fa-var-fa: "\f2b4"; 244 | $fa-var-facebook: "\f09a"; 245 | $fa-var-facebook-f: "\f09a"; 246 | $fa-var-facebook-official: "\f230"; 247 | $fa-var-facebook-square: "\f082"; 248 | $fa-var-fast-backward: "\f049"; 249 | $fa-var-fast-forward: "\f050"; 250 | $fa-var-fax: "\f1ac"; 251 | $fa-var-feed: "\f09e"; 252 | $fa-var-female: "\f182"; 253 | $fa-var-fighter-jet: "\f0fb"; 254 | $fa-var-file: "\f15b"; 255 | $fa-var-file-archive-o: "\f1c6"; 256 | $fa-var-file-audio-o: "\f1c7"; 257 | $fa-var-file-code-o: "\f1c9"; 258 | $fa-var-file-excel-o: "\f1c3"; 259 | $fa-var-file-image-o: "\f1c5"; 260 | $fa-var-file-movie-o: "\f1c8"; 261 | $fa-var-file-o: "\f016"; 262 | $fa-var-file-pdf-o: "\f1c1"; 263 | $fa-var-file-photo-o: "\f1c5"; 264 | $fa-var-file-picture-o: "\f1c5"; 265 | $fa-var-file-powerpoint-o: "\f1c4"; 266 | $fa-var-file-sound-o: "\f1c7"; 267 | $fa-var-file-text: "\f15c"; 268 | $fa-var-file-text-o: "\f0f6"; 269 | $fa-var-file-video-o: "\f1c8"; 270 | $fa-var-file-word-o: "\f1c2"; 271 | $fa-var-file-zip-o: "\f1c6"; 272 | $fa-var-files-o: "\f0c5"; 273 | $fa-var-film: "\f008"; 274 | $fa-var-filter: "\f0b0"; 275 | $fa-var-fire: "\f06d"; 276 | $fa-var-fire-extinguisher: "\f134"; 277 | $fa-var-firefox: "\f269"; 278 | $fa-var-first-order: "\f2b0"; 279 | $fa-var-flag: "\f024"; 280 | $fa-var-flag-checkered: "\f11e"; 281 | $fa-var-flag-o: "\f11d"; 282 | $fa-var-flash: "\f0e7"; 283 | $fa-var-flask: "\f0c3"; 284 | $fa-var-flickr: "\f16e"; 285 | $fa-var-floppy-o: "\f0c7"; 286 | $fa-var-folder: "\f07b"; 287 | $fa-var-folder-o: "\f114"; 288 | $fa-var-folder-open: "\f07c"; 289 | $fa-var-folder-open-o: "\f115"; 290 | $fa-var-font: "\f031"; 291 | $fa-var-font-awesome: "\f2b4"; 292 | $fa-var-fonticons: "\f280"; 293 | $fa-var-fort-awesome: "\f286"; 294 | $fa-var-forumbee: "\f211"; 295 | $fa-var-forward: "\f04e"; 296 | $fa-var-foursquare: "\f180"; 297 | $fa-var-frown-o: "\f119"; 298 | $fa-var-futbol-o: "\f1e3"; 299 | $fa-var-gamepad: "\f11b"; 300 | $fa-var-gavel: "\f0e3"; 301 | $fa-var-gbp: "\f154"; 302 | $fa-var-ge: "\f1d1"; 303 | $fa-var-gear: "\f013"; 304 | $fa-var-gears: "\f085"; 305 | $fa-var-genderless: "\f22d"; 306 | $fa-var-get-pocket: "\f265"; 307 | $fa-var-gg: "\f260"; 308 | $fa-var-gg-circle: "\f261"; 309 | $fa-var-gift: "\f06b"; 310 | $fa-var-git: "\f1d3"; 311 | $fa-var-git-square: "\f1d2"; 312 | $fa-var-github: "\f09b"; 313 | $fa-var-github-alt: "\f113"; 314 | $fa-var-github-square: "\f092"; 315 | $fa-var-gitlab: "\f296"; 316 | $fa-var-gittip: "\f184"; 317 | $fa-var-glass: "\f000"; 318 | $fa-var-glide: "\f2a5"; 319 | $fa-var-glide-g: "\f2a6"; 320 | $fa-var-globe: "\f0ac"; 321 | $fa-var-google: "\f1a0"; 322 | $fa-var-google-plus: "\f0d5"; 323 | $fa-var-google-plus-circle: "\f2b3"; 324 | $fa-var-google-plus-official: "\f2b3"; 325 | $fa-var-google-plus-square: "\f0d4"; 326 | $fa-var-google-wallet: "\f1ee"; 327 | $fa-var-graduation-cap: "\f19d"; 328 | $fa-var-gratipay: "\f184"; 329 | $fa-var-group: "\f0c0"; 330 | $fa-var-h-square: "\f0fd"; 331 | $fa-var-hacker-news: "\f1d4"; 332 | $fa-var-hand-grab-o: "\f255"; 333 | $fa-var-hand-lizard-o: "\f258"; 334 | $fa-var-hand-o-down: "\f0a7"; 335 | $fa-var-hand-o-left: "\f0a5"; 336 | $fa-var-hand-o-right: "\f0a4"; 337 | $fa-var-hand-o-up: "\f0a6"; 338 | $fa-var-hand-paper-o: "\f256"; 339 | $fa-var-hand-peace-o: "\f25b"; 340 | $fa-var-hand-pointer-o: "\f25a"; 341 | $fa-var-hand-rock-o: "\f255"; 342 | $fa-var-hand-scissors-o: "\f257"; 343 | $fa-var-hand-spock-o: "\f259"; 344 | $fa-var-hand-stop-o: "\f256"; 345 | $fa-var-hard-of-hearing: "\f2a4"; 346 | $fa-var-hashtag: "\f292"; 347 | $fa-var-hdd-o: "\f0a0"; 348 | $fa-var-header: "\f1dc"; 349 | $fa-var-headphones: "\f025"; 350 | $fa-var-heart: "\f004"; 351 | $fa-var-heart-o: "\f08a"; 352 | $fa-var-heartbeat: "\f21e"; 353 | $fa-var-history: "\f1da"; 354 | $fa-var-home: "\f015"; 355 | $fa-var-hospital-o: "\f0f8"; 356 | $fa-var-hotel: "\f236"; 357 | $fa-var-hourglass: "\f254"; 358 | $fa-var-hourglass-1: "\f251"; 359 | $fa-var-hourglass-2: "\f252"; 360 | $fa-var-hourglass-3: "\f253"; 361 | $fa-var-hourglass-end: "\f253"; 362 | $fa-var-hourglass-half: "\f252"; 363 | $fa-var-hourglass-o: "\f250"; 364 | $fa-var-hourglass-start: "\f251"; 365 | $fa-var-houzz: "\f27c"; 366 | $fa-var-html5: "\f13b"; 367 | $fa-var-i-cursor: "\f246"; 368 | $fa-var-ils: "\f20b"; 369 | $fa-var-image: "\f03e"; 370 | $fa-var-inbox: "\f01c"; 371 | $fa-var-indent: "\f03c"; 372 | $fa-var-industry: "\f275"; 373 | $fa-var-info: "\f129"; 374 | $fa-var-info-circle: "\f05a"; 375 | $fa-var-inr: "\f156"; 376 | $fa-var-instagram: "\f16d"; 377 | $fa-var-institution: "\f19c"; 378 | $fa-var-internet-explorer: "\f26b"; 379 | $fa-var-intersex: "\f224"; 380 | $fa-var-ioxhost: "\f208"; 381 | $fa-var-italic: "\f033"; 382 | $fa-var-joomla: "\f1aa"; 383 | $fa-var-jpy: "\f157"; 384 | $fa-var-jsfiddle: "\f1cc"; 385 | $fa-var-key: "\f084"; 386 | $fa-var-keyboard-o: "\f11c"; 387 | $fa-var-krw: "\f159"; 388 | $fa-var-language: "\f1ab"; 389 | $fa-var-laptop: "\f109"; 390 | $fa-var-lastfm: "\f202"; 391 | $fa-var-lastfm-square: "\f203"; 392 | $fa-var-leaf: "\f06c"; 393 | $fa-var-leanpub: "\f212"; 394 | $fa-var-legal: "\f0e3"; 395 | $fa-var-lemon-o: "\f094"; 396 | $fa-var-level-down: "\f149"; 397 | $fa-var-level-up: "\f148"; 398 | $fa-var-life-bouy: "\f1cd"; 399 | $fa-var-life-buoy: "\f1cd"; 400 | $fa-var-life-ring: "\f1cd"; 401 | $fa-var-life-saver: "\f1cd"; 402 | $fa-var-lightbulb-o: "\f0eb"; 403 | $fa-var-line-chart: "\f201"; 404 | $fa-var-link: "\f0c1"; 405 | $fa-var-linkedin: "\f0e1"; 406 | $fa-var-linkedin-square: "\f08c"; 407 | $fa-var-linux: "\f17c"; 408 | $fa-var-list: "\f03a"; 409 | $fa-var-list-alt: "\f022"; 410 | $fa-var-list-ol: "\f0cb"; 411 | $fa-var-list-ul: "\f0ca"; 412 | $fa-var-location-arrow: "\f124"; 413 | $fa-var-lock: "\f023"; 414 | $fa-var-long-arrow-down: "\f175"; 415 | $fa-var-long-arrow-left: "\f177"; 416 | $fa-var-long-arrow-right: "\f178"; 417 | $fa-var-long-arrow-up: "\f176"; 418 | $fa-var-low-vision: "\f2a8"; 419 | $fa-var-magic: "\f0d0"; 420 | $fa-var-magnet: "\f076"; 421 | $fa-var-mail-forward: "\f064"; 422 | $fa-var-mail-reply: "\f112"; 423 | $fa-var-mail-reply-all: "\f122"; 424 | $fa-var-male: "\f183"; 425 | $fa-var-map: "\f279"; 426 | $fa-var-map-marker: "\f041"; 427 | $fa-var-map-o: "\f278"; 428 | $fa-var-map-pin: "\f276"; 429 | $fa-var-map-signs: "\f277"; 430 | $fa-var-mars: "\f222"; 431 | $fa-var-mars-double: "\f227"; 432 | $fa-var-mars-stroke: "\f229"; 433 | $fa-var-mars-stroke-h: "\f22b"; 434 | $fa-var-mars-stroke-v: "\f22a"; 435 | $fa-var-maxcdn: "\f136"; 436 | $fa-var-meanpath: "\f20c"; 437 | $fa-var-medium: "\f23a"; 438 | $fa-var-medkit: "\f0fa"; 439 | $fa-var-meh-o: "\f11a"; 440 | $fa-var-mercury: "\f223"; 441 | $fa-var-microphone: "\f130"; 442 | $fa-var-microphone-slash: "\f131"; 443 | $fa-var-minus: "\f068"; 444 | $fa-var-minus-circle: "\f056"; 445 | $fa-var-minus-square: "\f146"; 446 | $fa-var-minus-square-o: "\f147"; 447 | $fa-var-mixcloud: "\f289"; 448 | $fa-var-mobile: "\f10b"; 449 | $fa-var-mobile-phone: "\f10b"; 450 | $fa-var-modx: "\f285"; 451 | $fa-var-money: "\f0d6"; 452 | $fa-var-moon-o: "\f186"; 453 | $fa-var-mortar-board: "\f19d"; 454 | $fa-var-motorcycle: "\f21c"; 455 | $fa-var-mouse-pointer: "\f245"; 456 | $fa-var-music: "\f001"; 457 | $fa-var-navicon: "\f0c9"; 458 | $fa-var-neuter: "\f22c"; 459 | $fa-var-newspaper-o: "\f1ea"; 460 | $fa-var-object-group: "\f247"; 461 | $fa-var-object-ungroup: "\f248"; 462 | $fa-var-odnoklassniki: "\f263"; 463 | $fa-var-odnoklassniki-square: "\f264"; 464 | $fa-var-opencart: "\f23d"; 465 | $fa-var-openid: "\f19b"; 466 | $fa-var-opera: "\f26a"; 467 | $fa-var-optin-monster: "\f23c"; 468 | $fa-var-outdent: "\f03b"; 469 | $fa-var-pagelines: "\f18c"; 470 | $fa-var-paint-brush: "\f1fc"; 471 | $fa-var-paper-plane: "\f1d8"; 472 | $fa-var-paper-plane-o: "\f1d9"; 473 | $fa-var-paperclip: "\f0c6"; 474 | $fa-var-paragraph: "\f1dd"; 475 | $fa-var-paste: "\f0ea"; 476 | $fa-var-pause: "\f04c"; 477 | $fa-var-pause-circle: "\f28b"; 478 | $fa-var-pause-circle-o: "\f28c"; 479 | $fa-var-paw: "\f1b0"; 480 | $fa-var-paypal: "\f1ed"; 481 | $fa-var-pencil: "\f040"; 482 | $fa-var-pencil-square: "\f14b"; 483 | $fa-var-pencil-square-o: "\f044"; 484 | $fa-var-percent: "\f295"; 485 | $fa-var-phone: "\f095"; 486 | $fa-var-phone-square: "\f098"; 487 | $fa-var-photo: "\f03e"; 488 | $fa-var-picture-o: "\f03e"; 489 | $fa-var-pie-chart: "\f200"; 490 | $fa-var-pied-piper: "\f2ae"; 491 | $fa-var-pied-piper-alt: "\f1a8"; 492 | $fa-var-pied-piper-pp: "\f1a7"; 493 | $fa-var-pinterest: "\f0d2"; 494 | $fa-var-pinterest-p: "\f231"; 495 | $fa-var-pinterest-square: "\f0d3"; 496 | $fa-var-plane: "\f072"; 497 | $fa-var-play: "\f04b"; 498 | $fa-var-play-circle: "\f144"; 499 | $fa-var-play-circle-o: "\f01d"; 500 | $fa-var-plug: "\f1e6"; 501 | $fa-var-plus: "\f067"; 502 | $fa-var-plus-circle: "\f055"; 503 | $fa-var-plus-square: "\f0fe"; 504 | $fa-var-plus-square-o: "\f196"; 505 | $fa-var-power-off: "\f011"; 506 | $fa-var-print: "\f02f"; 507 | $fa-var-product-hunt: "\f288"; 508 | $fa-var-puzzle-piece: "\f12e"; 509 | $fa-var-qq: "\f1d6"; 510 | $fa-var-qrcode: "\f029"; 511 | $fa-var-question: "\f128"; 512 | $fa-var-question-circle: "\f059"; 513 | $fa-var-question-circle-o: "\f29c"; 514 | $fa-var-quote-left: "\f10d"; 515 | $fa-var-quote-right: "\f10e"; 516 | $fa-var-ra: "\f1d0"; 517 | $fa-var-random: "\f074"; 518 | $fa-var-rebel: "\f1d0"; 519 | $fa-var-recycle: "\f1b8"; 520 | $fa-var-reddit: "\f1a1"; 521 | $fa-var-reddit-alien: "\f281"; 522 | $fa-var-reddit-square: "\f1a2"; 523 | $fa-var-refresh: "\f021"; 524 | $fa-var-registered: "\f25d"; 525 | $fa-var-remove: "\f00d"; 526 | $fa-var-renren: "\f18b"; 527 | $fa-var-reorder: "\f0c9"; 528 | $fa-var-repeat: "\f01e"; 529 | $fa-var-reply: "\f112"; 530 | $fa-var-reply-all: "\f122"; 531 | $fa-var-resistance: "\f1d0"; 532 | $fa-var-retweet: "\f079"; 533 | $fa-var-rmb: "\f157"; 534 | $fa-var-road: "\f018"; 535 | $fa-var-rocket: "\f135"; 536 | $fa-var-rotate-left: "\f0e2"; 537 | $fa-var-rotate-right: "\f01e"; 538 | $fa-var-rouble: "\f158"; 539 | $fa-var-rss: "\f09e"; 540 | $fa-var-rss-square: "\f143"; 541 | $fa-var-rub: "\f158"; 542 | $fa-var-ruble: "\f158"; 543 | $fa-var-rupee: "\f156"; 544 | $fa-var-safari: "\f267"; 545 | $fa-var-save: "\f0c7"; 546 | $fa-var-scissors: "\f0c4"; 547 | $fa-var-scribd: "\f28a"; 548 | $fa-var-search: "\f002"; 549 | $fa-var-search-minus: "\f010"; 550 | $fa-var-search-plus: "\f00e"; 551 | $fa-var-sellsy: "\f213"; 552 | $fa-var-send: "\f1d8"; 553 | $fa-var-send-o: "\f1d9"; 554 | $fa-var-server: "\f233"; 555 | $fa-var-share: "\f064"; 556 | $fa-var-share-alt: "\f1e0"; 557 | $fa-var-share-alt-square: "\f1e1"; 558 | $fa-var-share-square: "\f14d"; 559 | $fa-var-share-square-o: "\f045"; 560 | $fa-var-shekel: "\f20b"; 561 | $fa-var-sheqel: "\f20b"; 562 | $fa-var-shield: "\f132"; 563 | $fa-var-ship: "\f21a"; 564 | $fa-var-shirtsinbulk: "\f214"; 565 | $fa-var-shopping-bag: "\f290"; 566 | $fa-var-shopping-basket: "\f291"; 567 | $fa-var-shopping-cart: "\f07a"; 568 | $fa-var-sign-in: "\f090"; 569 | $fa-var-sign-language: "\f2a7"; 570 | $fa-var-sign-out: "\f08b"; 571 | $fa-var-signal: "\f012"; 572 | $fa-var-signing: "\f2a7"; 573 | $fa-var-simplybuilt: "\f215"; 574 | $fa-var-sitemap: "\f0e8"; 575 | $fa-var-skyatlas: "\f216"; 576 | $fa-var-skype: "\f17e"; 577 | $fa-var-slack: "\f198"; 578 | $fa-var-sliders: "\f1de"; 579 | $fa-var-slideshare: "\f1e7"; 580 | $fa-var-smile-o: "\f118"; 581 | $fa-var-snapchat: "\f2ab"; 582 | $fa-var-snapchat-ghost: "\f2ac"; 583 | $fa-var-snapchat-square: "\f2ad"; 584 | $fa-var-soccer-ball-o: "\f1e3"; 585 | $fa-var-sort: "\f0dc"; 586 | $fa-var-sort-alpha-asc: "\f15d"; 587 | $fa-var-sort-alpha-desc: "\f15e"; 588 | $fa-var-sort-amount-asc: "\f160"; 589 | $fa-var-sort-amount-desc: "\f161"; 590 | $fa-var-sort-asc: "\f0de"; 591 | $fa-var-sort-desc: "\f0dd"; 592 | $fa-var-sort-down: "\f0dd"; 593 | $fa-var-sort-numeric-asc: "\f162"; 594 | $fa-var-sort-numeric-desc: "\f163"; 595 | $fa-var-sort-up: "\f0de"; 596 | $fa-var-soundcloud: "\f1be"; 597 | $fa-var-space-shuttle: "\f197"; 598 | $fa-var-spinner: "\f110"; 599 | $fa-var-spoon: "\f1b1"; 600 | $fa-var-spotify: "\f1bc"; 601 | $fa-var-square: "\f0c8"; 602 | $fa-var-square-o: "\f096"; 603 | $fa-var-stack-exchange: "\f18d"; 604 | $fa-var-stack-overflow: "\f16c"; 605 | $fa-var-star: "\f005"; 606 | $fa-var-star-half: "\f089"; 607 | $fa-var-star-half-empty: "\f123"; 608 | $fa-var-star-half-full: "\f123"; 609 | $fa-var-star-half-o: "\f123"; 610 | $fa-var-star-o: "\f006"; 611 | $fa-var-steam: "\f1b6"; 612 | $fa-var-steam-square: "\f1b7"; 613 | $fa-var-step-backward: "\f048"; 614 | $fa-var-step-forward: "\f051"; 615 | $fa-var-stethoscope: "\f0f1"; 616 | $fa-var-sticky-note: "\f249"; 617 | $fa-var-sticky-note-o: "\f24a"; 618 | $fa-var-stop: "\f04d"; 619 | $fa-var-stop-circle: "\f28d"; 620 | $fa-var-stop-circle-o: "\f28e"; 621 | $fa-var-street-view: "\f21d"; 622 | $fa-var-strikethrough: "\f0cc"; 623 | $fa-var-stumbleupon: "\f1a4"; 624 | $fa-var-stumbleupon-circle: "\f1a3"; 625 | $fa-var-subscript: "\f12c"; 626 | $fa-var-subway: "\f239"; 627 | $fa-var-suitcase: "\f0f2"; 628 | $fa-var-sun-o: "\f185"; 629 | $fa-var-superscript: "\f12b"; 630 | $fa-var-support: "\f1cd"; 631 | $fa-var-table: "\f0ce"; 632 | $fa-var-tablet: "\f10a"; 633 | $fa-var-tachometer: "\f0e4"; 634 | $fa-var-tag: "\f02b"; 635 | $fa-var-tags: "\f02c"; 636 | $fa-var-tasks: "\f0ae"; 637 | $fa-var-taxi: "\f1ba"; 638 | $fa-var-television: "\f26c"; 639 | $fa-var-tencent-weibo: "\f1d5"; 640 | $fa-var-terminal: "\f120"; 641 | $fa-var-text-height: "\f034"; 642 | $fa-var-text-width: "\f035"; 643 | $fa-var-th: "\f00a"; 644 | $fa-var-th-large: "\f009"; 645 | $fa-var-th-list: "\f00b"; 646 | $fa-var-themeisle: "\f2b2"; 647 | $fa-var-thumb-tack: "\f08d"; 648 | $fa-var-thumbs-down: "\f165"; 649 | $fa-var-thumbs-o-down: "\f088"; 650 | $fa-var-thumbs-o-up: "\f087"; 651 | $fa-var-thumbs-up: "\f164"; 652 | $fa-var-ticket: "\f145"; 653 | $fa-var-times: "\f00d"; 654 | $fa-var-times-circle: "\f057"; 655 | $fa-var-times-circle-o: "\f05c"; 656 | $fa-var-tint: "\f043"; 657 | $fa-var-toggle-down: "\f150"; 658 | $fa-var-toggle-left: "\f191"; 659 | $fa-var-toggle-off: "\f204"; 660 | $fa-var-toggle-on: "\f205"; 661 | $fa-var-toggle-right: "\f152"; 662 | $fa-var-toggle-up: "\f151"; 663 | $fa-var-trademark: "\f25c"; 664 | $fa-var-train: "\f238"; 665 | $fa-var-transgender: "\f224"; 666 | $fa-var-transgender-alt: "\f225"; 667 | $fa-var-trash: "\f1f8"; 668 | $fa-var-trash-o: "\f014"; 669 | $fa-var-tree: "\f1bb"; 670 | $fa-var-trello: "\f181"; 671 | $fa-var-tripadvisor: "\f262"; 672 | $fa-var-trophy: "\f091"; 673 | $fa-var-truck: "\f0d1"; 674 | $fa-var-try: "\f195"; 675 | $fa-var-tty: "\f1e4"; 676 | $fa-var-tumblr: "\f173"; 677 | $fa-var-tumblr-square: "\f174"; 678 | $fa-var-turkish-lira: "\f195"; 679 | $fa-var-tv: "\f26c"; 680 | $fa-var-twitch: "\f1e8"; 681 | $fa-var-twitter: "\f099"; 682 | $fa-var-twitter-square: "\f081"; 683 | $fa-var-umbrella: "\f0e9"; 684 | $fa-var-underline: "\f0cd"; 685 | $fa-var-undo: "\f0e2"; 686 | $fa-var-universal-access: "\f29a"; 687 | $fa-var-university: "\f19c"; 688 | $fa-var-unlink: "\f127"; 689 | $fa-var-unlock: "\f09c"; 690 | $fa-var-unlock-alt: "\f13e"; 691 | $fa-var-unsorted: "\f0dc"; 692 | $fa-var-upload: "\f093"; 693 | $fa-var-usb: "\f287"; 694 | $fa-var-usd: "\f155"; 695 | $fa-var-user: "\f007"; 696 | $fa-var-user-md: "\f0f0"; 697 | $fa-var-user-plus: "\f234"; 698 | $fa-var-user-secret: "\f21b"; 699 | $fa-var-user-times: "\f235"; 700 | $fa-var-users: "\f0c0"; 701 | $fa-var-venus: "\f221"; 702 | $fa-var-venus-double: "\f226"; 703 | $fa-var-venus-mars: "\f228"; 704 | $fa-var-viacoin: "\f237"; 705 | $fa-var-viadeo: "\f2a9"; 706 | $fa-var-viadeo-square: "\f2aa"; 707 | $fa-var-video-camera: "\f03d"; 708 | $fa-var-vimeo: "\f27d"; 709 | $fa-var-vimeo-square: "\f194"; 710 | $fa-var-vine: "\f1ca"; 711 | $fa-var-vk: "\f189"; 712 | $fa-var-volume-control-phone: "\f2a0"; 713 | $fa-var-volume-down: "\f027"; 714 | $fa-var-volume-off: "\f026"; 715 | $fa-var-volume-up: "\f028"; 716 | $fa-var-warning: "\f071"; 717 | $fa-var-wechat: "\f1d7"; 718 | $fa-var-weibo: "\f18a"; 719 | $fa-var-weixin: "\f1d7"; 720 | $fa-var-whatsapp: "\f232"; 721 | $fa-var-wheelchair: "\f193"; 722 | $fa-var-wheelchair-alt: "\f29b"; 723 | $fa-var-wifi: "\f1eb"; 724 | $fa-var-wikipedia-w: "\f266"; 725 | $fa-var-windows: "\f17a"; 726 | $fa-var-won: "\f159"; 727 | $fa-var-wordpress: "\f19a"; 728 | $fa-var-wpbeginner: "\f297"; 729 | $fa-var-wpforms: "\f298"; 730 | $fa-var-wrench: "\f0ad"; 731 | $fa-var-xing: "\f168"; 732 | $fa-var-xing-square: "\f169"; 733 | $fa-var-y-combinator: "\f23b"; 734 | $fa-var-y-combinator-square: "\f1d4"; 735 | $fa-var-yahoo: "\f19e"; 736 | $fa-var-yc: "\f23b"; 737 | $fa-var-yc-square: "\f1d4"; 738 | $fa-var-yelp: "\f1e9"; 739 | $fa-var-yen: "\f157"; 740 | $fa-var-yoast: "\f2b1"; 741 | $fa-var-youtube: "\f167"; 742 | $fa-var-youtube-play: "\f16a"; 743 | $fa-var-youtube-square: "\f166"; 744 | 745 | -------------------------------------------------------------------------------- /static/vendor/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | @import "screen-reader"; 19 | -------------------------------------------------------------------------------- /templates/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleverProgrammer/c9_flask_portfolio_app/38736c389757ebd3141a49c881c7258781b5c5f0/templates/.DS_Store -------------------------------------------------------------------------------- /templates/add_numbers.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block title %}Addition{% endblock %} 4 | 5 | {% block content %} 6 | 7 |
8 |
9 |
10 | 11 |
12 |

13 |
14 | Let's Add some numbers! 15 |
16 |
17 |
18 |
19 | 20 | 21 | 22 | 23 |
24 |
25 |
26 |
27 |

Add Numbers

28 |
29 |
30 |
31 |
32 |
33 | 34 | 35 |
36 |
37 |
38 | 39 | 40 |

41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 |

50 |
51 |
52 |
53 |
54 |

Answer = {{result}}

55 |
56 |
57 |
58 | 59 |
60 |
61 |
62 | {% endblock %} 63 | 64 | {% block footer%} 65 | {% endblock %} 66 | 67 | 68 | -------------------------------------------------------------------------------- /templates/code.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block title %}Python Apps{% endblock %} 4 | 5 | {% block content %} 6 | 7 |
8 |
9 |
10 |
11 | 12 |
13 |

Simple Python Apps

14 |
15 | Let's Play! 16 |
17 |
18 |
19 |
20 |
21 | 22 | 23 |
24 |
25 |
26 |
27 |

About

28 |
29 |
30 |
31 |
32 |
33 |

Let's Add Some Numbers!

34 | 35 |
36 | 37 | 38 |
39 |
40 |
41 |

The languages I work with include HTML, CSS and Python. I work with the Flask Framework for Python development. If you are a non technical person who would like control over your website then I can create a Wordpress website for you. Simplicity, creativity and clarity are the core principles behind my work.

42 |
43 |
44 |
45 |
46 | 47 | 48 | 49 | 50 | {% endblock %} -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {% block head %} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | {% block title %}About{% endblock %} 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 75 | 76 | {% endblock %} 77 | 78 |
79 | {% block content%} 80 |
81 |
82 |
83 | 84 |
85 |

Hey there {{name}}!

86 |
87 | Python Developer - Flask Framework 88 |
89 |
90 |
91 |
92 |
93 | 94 | 95 | 96 |
97 |
98 |
99 |
100 |

Portfolio

101 |
102 |
103 |
104 | 136 |
137 |
138 | 139 | 140 |
141 |
142 |
143 |
144 |

About

145 |
146 |
147 |
148 |
149 |
150 |

I love the Flask Framework. I can make so many things simply by leveraging code that other people have made for me to use

151 |
152 |
153 |

The languages that you see on this app are HTML, CSS, Python and some JavaScript. By using this BootStrap template I saved myself a lot of time. Instead of creating the HTML and CSS from scratch I was able to edit the template to the way I wanted it to look like.

154 |
155 |
156 |
157 |
158 | 159 | {% endblock %} 160 | 161 | {% block footer %} 162 | 163 |
164 | 165 | 195 | 204 | {% endblock %} 205 |
206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | -------------------------------------------------------------------------------- /templates/python_apps.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block title %}Python Apps{% endblock %} 4 | 5 | {% block content %} 6 | 7 |
8 |
9 |
10 | 11 |
12 |

Simple Python Apps

13 |
14 | Let's Play! 15 |
16 |
17 |
18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 |
28 |
29 |
30 |

Simple Python Apps

31 |
32 |
33 |
34 |
35 |
36 |

Addition

37 | 38 |
39 |
40 | 41 |
42 |
43 | Cabin 44 |
45 |
46 |
47 |

Shopping List

48 | 49 |
50 |
51 | 52 |
53 |
54 | Slice of cake 55 |
56 |
57 |
58 |

Current Time

59 | 60 |
61 |
62 | 63 |
64 |
65 | Circus tent 66 |
67 |
68 |
69 |
70 |
71 | 72 | 73 |
74 |
75 |
76 |
77 |

78 |
79 |
80 |
81 |
82 |
83 |

The languages I work with include: HTML, CSS & Python. I work with the Flask Framework for Python development. If you are a non technical person who would like control over your website then I can create a Wordpress website for you. Simplicity, creativity and clarity are the core principles behind my work.

84 |
85 |
86 |
87 |
88 | 89 | {% endblock%} 90 | -------------------------------------------------------------------------------- /templates/shopping_list.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block title %}Shopping List{% endblock %} 4 | 5 | {% block content %} 6 | 7 |
8 |
9 |
10 | 11 |
12 |

13 |
14 | Let's Buy Some Groceries! 15 |
16 |
17 |
18 |
19 | 20 | 21 | 22 | 23 |
24 |
25 |
26 |
27 |

Shopping List

28 |
29 |
30 |
31 |
32 |
33 | 34 | 35 |
36 |
37 |
38 | 39 | 40 |

41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 |
50 |
51 |
52 |
53 |

List = {{result}}

54 |
55 |
56 | 57 |
58 |
59 |
60 | {% endblock %} 61 | 62 | {% block footer%} 63 | {% endblock %} -------------------------------------------------------------------------------- /templates/time.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block title %}Time{% endblock %} 4 | 5 | {% block content %} 6 | 7 |
8 |
9 |
10 | 11 |
12 |

13 |
14 | Discover the Current Date &Time 15 |
16 |
17 |
18 |
19 | 20 | 21 | 22 | 23 |
24 |
25 |
26 |
27 |

28 |
29 |
30 |
31 |
32 |
33 | 34 | 35 |
36 |
37 |
38 | 39 | 40 |

41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 |
50 |
51 |
52 |
53 |

{{result}}

54 |
55 |
56 | 57 |
58 |
59 |
60 | {% endblock %} 61 | 62 | {% block footer%} 63 | {% endblock %} --------------------------------------------------------------------------------