From b540e8896ff88069713716c75d34a58fca115749 Mon Sep 17 00:00:00 2001 From: Massimo Di Pierro Date: Sat, 25 Jan 2025 17:03:29 -0800 Subject: [PATCH] version 1.20250125.1 --- apps/_documentation/static/en/.buildinfo | 4 +- .../static/en/_static/basic.css | 15 +- .../static/en/_static/css/badge_only.css | 2 +- .../static/en/_static/css/theme.css | 2 +- .../static/en/_static/doctools.js | 7 - .../en/_static/documentation_options.js | 2 +- .../en/_static/js/html5shiv-printshiv.min.js | 4 - .../static/en/_static/js/html5shiv.min.js | 4 - .../static/en/_static/language_data.js | 7 - .../static/en/_static/searchtools.js | 38 ++- apps/_documentation/static/en/chapter-01.html | 31 +-- apps/_documentation/static/en/chapter-02.html | 55 ++-- apps/_documentation/static/en/chapter-03.html | 98 ++++--- apps/_documentation/static/en/chapter-04.html | 30 +-- apps/_documentation/static/en/chapter-05.html | 126 ++++++--- apps/_documentation/static/en/chapter-06.html | 223 +++++++++++----- apps/_documentation/static/en/chapter-07.html | 34 ++- apps/_documentation/static/en/chapter-08.html | 30 +-- apps/_documentation/static/en/chapter-09.html | 30 +-- apps/_documentation/static/en/chapter-10.html | 30 +-- apps/_documentation/static/en/chapter-11.html | 30 +-- apps/_documentation/static/en/chapter-12.html | 35 ++- apps/_documentation/static/en/chapter-13.html | 237 ++++++++++++++--- apps/_documentation/static/en/chapter-14.html | 32 +-- apps/_documentation/static/en/chapter-15.html | 30 +-- apps/_documentation/static/en/chapter-16.html | 30 +-- apps/_documentation/static/en/genindex.html | 31 +-- apps/_documentation/static/en/index.html | 31 +-- apps/_documentation/static/en/objects.inv | Bin 8405 -> 8549 bytes apps/_documentation/static/en/search.html | 31 +-- apps/_documentation/static/en/searchindex.js | 2 +- apps/_documentation/static/pt/.buildinfo | 4 +- .../static/pt/_static/basic.css | 15 +- .../static/pt/_static/css/badge_only.css | 2 +- .../static/pt/_static/css/theme.css | 2 +- .../static/pt/_static/doctools.js | 7 - .../pt/_static/documentation_options.js | 2 +- .../pt/_static/js/html5shiv-printshiv.min.js | 4 - .../static/pt/_static/js/html5shiv.min.js | 4 - .../static/pt/_static/language_data.js | 7 - .../static/pt/_static/searchtools.js | 38 ++- .../static/pt/_static/translations.js | 6 +- apps/_documentation/static/pt/chapter-01.html | 33 +-- apps/_documentation/static/pt/chapter-02.html | 57 ++--- apps/_documentation/static/pt/chapter-03.html | 100 ++++---- apps/_documentation/static/pt/chapter-04.html | 32 +-- apps/_documentation/static/pt/chapter-05.html | 129 +++++++--- apps/_documentation/static/pt/chapter-06.html | 225 ++++++++++++----- apps/_documentation/static/pt/chapter-07.html | 38 ++- apps/_documentation/static/pt/chapter-08.html | 32 +-- apps/_documentation/static/pt/chapter-09.html | 32 +-- apps/_documentation/static/pt/chapter-10.html | 32 +-- apps/_documentation/static/pt/chapter-11.html | 32 +-- apps/_documentation/static/pt/chapter-12.html | 37 ++- apps/_documentation/static/pt/chapter-13.html | 239 +++++++++++++++--- apps/_documentation/static/pt/chapter-14.html | 34 +-- apps/_documentation/static/pt/chapter-15.html | 32 +-- apps/_documentation/static/pt/chapter-16.html | 32 +-- apps/_documentation/static/pt/genindex.html | 33 +-- apps/_documentation/static/pt/index.html | 33 +-- apps/_documentation/static/pt/objects.inv | Bin 9476 -> 9629 bytes apps/_documentation/static/pt/search.html | 33 +-- apps/_documentation/static/pt/searchindex.js | 2 +- py4web/__init__.py | 2 +- pyproject.toml | 2 +- 65 files changed, 1507 insertions(+), 1066 deletions(-) delete mode 100644 apps/_documentation/static/en/_static/js/html5shiv-printshiv.min.js delete mode 100644 apps/_documentation/static/en/_static/js/html5shiv.min.js delete mode 100644 apps/_documentation/static/pt/_static/js/html5shiv-printshiv.min.js delete mode 100644 apps/_documentation/static/pt/_static/js/html5shiv.min.js diff --git a/apps/_documentation/static/en/.buildinfo b/apps/_documentation/static/en/.buildinfo index d5364a3ce..5b07da970 100644 --- a/apps/_documentation/static/en/.buildinfo +++ b/apps/_documentation/static/en/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 05361d6f8693871fc2dbfcc71260e2ee +# This file records the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 64d345ea9a589f60d7be30861a16fd89 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/apps/_documentation/static/en/_static/basic.css b/apps/_documentation/static/en/_static/basic.css index f316efcb4..7ebbd6d07 100644 --- a/apps/_documentation/static/en/_static/basic.css +++ b/apps/_documentation/static/en/_static/basic.css @@ -1,12 +1,5 @@ /* - * basic.css - * ~~~~~~~~~ - * * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ /* -- main layout ----------------------------------------------------------- */ @@ -115,15 +108,11 @@ img { /* -- search page ----------------------------------------------------------- */ ul.search { - margin: 10px 0 0 20px; - padding: 0; + margin-top: 10px; } ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; + padding: 5px 0; } ul.search li a { diff --git a/apps/_documentation/static/en/_static/css/badge_only.css b/apps/_documentation/static/en/_static/css/badge_only.css index c718cee44..88ba55b96 100644 --- a/apps/_documentation/static/en/_static/css/badge_only.css +++ b/apps/_documentation/static/en/_static/css/badge_only.css @@ -1 +1 @@ -.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px} \ No newline at end of file diff --git a/apps/_documentation/static/en/_static/css/theme.css b/apps/_documentation/static/en/_static/css/theme.css index 19a446a0e..0f14f1064 100644 --- a/apps/_documentation/static/en/_static/css/theme.css +++ b/apps/_documentation/static/en/_static/css/theme.css @@ -1,4 +1,4 @@ html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{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.33333em;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.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-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:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{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:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.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}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{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.33333em;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.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-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:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{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:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.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}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon,.wy-side-nav-search>a.icon{display:block}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch select option,.wy-side-nav-search>div.switch-menus>div.version-switch select option{color:#000}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/apps/_documentation/static/en/_static/doctools.js b/apps/_documentation/static/en/_static/doctools.js index 4d67807d1..0398ebb9f 100644 --- a/apps/_documentation/static/en/_static/doctools.js +++ b/apps/_documentation/static/en/_static/doctools.js @@ -1,12 +1,5 @@ /* - * doctools.js - * ~~~~~~~~~~~ - * * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ "use strict"; diff --git a/apps/_documentation/static/en/_static/documentation_options.js b/apps/_documentation/static/en/_static/documentation_options.js index 7d5644e0b..aaccbf330 100644 --- a/apps/_documentation/static/en/_static/documentation_options.js +++ b/apps/_documentation/static/en/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '20240915', + VERSION: '20241204', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/apps/_documentation/static/en/_static/js/html5shiv-printshiv.min.js b/apps/_documentation/static/en/_static/js/html5shiv-printshiv.min.js deleted file mode 100644 index 2b43bd062..000000000 --- a/apps/_documentation/static/en/_static/js/html5shiv-printshiv.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/** -* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/apps/_documentation/static/en/_static/js/html5shiv.min.js b/apps/_documentation/static/en/_static/js/html5shiv.min.js deleted file mode 100644 index cd1c674f5..000000000 --- a/apps/_documentation/static/en/_static/js/html5shiv.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/** -* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/apps/_documentation/static/en/_static/language_data.js b/apps/_documentation/static/en/_static/language_data.js index 367b8ed81..c7fe6c6fa 100644 --- a/apps/_documentation/static/en/_static/language_data.js +++ b/apps/_documentation/static/en/_static/language_data.js @@ -1,13 +1,6 @@ /* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; diff --git a/apps/_documentation/static/en/_static/searchtools.js b/apps/_documentation/static/en/_static/searchtools.js index b08d58c9b..2c774d17a 100644 --- a/apps/_documentation/static/en/_static/searchtools.js +++ b/apps/_documentation/static/en/_static/searchtools.js @@ -1,12 +1,5 @@ /* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ "use strict"; @@ -20,7 +13,7 @@ if (typeof Scorer === "undefined") { // and returns the new score. /* score: result => { - const [docname, title, anchor, descr, score, filename] = result + const [docname, title, anchor, descr, score, filename, kind] = result return score }, */ @@ -47,6 +40,14 @@ if (typeof Scorer === "undefined") { }; } +// Global search result kind enum, used by themes to style search results. +class SearchResultKind { + static get index() { return "index"; } + static get object() { return "object"; } + static get text() { return "text"; } + static get title() { return "title"; } +} + const _removeChildren = (element) => { while (element && element.lastChild) element.removeChild(element.lastChild); }; @@ -64,9 +65,13 @@ const _displayItem = (item, searchTerms, highlightTerms) => { const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; const contentRoot = document.documentElement.dataset.content_root; - const [docName, title, anchor, descr, score, _filename] = item; + const [docName, title, anchor, descr, score, _filename, kind] = item; let listItem = document.createElement("li"); + // Add a class representing the item's type: + // can be used by a theme's CSS selector for styling + // See SearchResultKind for the class names. + listItem.classList.add(`kind-${kind}`); let requestUrl; let linkUrl; if (docBuilder === "dirhtml") { @@ -115,8 +120,10 @@ const _finishSearch = (resultCount) => { "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." ); else - Search.status.innerText = _( - "Search finished, found ${resultCount} page(s) matching the search query." + Search.status.innerText = Documentation.ngettext( + "Search finished, found one page matching the search query.", + "Search finished, found ${resultCount} pages matching the search query.", + resultCount, ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( @@ -138,7 +145,7 @@ const _displayNextItem = ( else _finishSearch(resultCount); }; // Helper function used by query() to order search results. -// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Each input is an array of [docname, title, anchor, descr, score, filename, kind]. // Order the results by score (in opposite order of appearance, since the // `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. const _orderResultsByScoreThenName = (a, b) => { @@ -248,6 +255,7 @@ const Search = { searchSummary.classList.add("search-summary"); searchSummary.innerText = ""; const searchList = document.createElement("ul"); + searchList.setAttribute("role", "list"); searchList.classList.add("search"); const out = document.getElementById("search-results"); @@ -318,7 +326,7 @@ const Search = { const indexEntries = Search._index.indexentries; // Collect multiple result groups to be sorted separately and then ordered. - // Each is an array of [docname, title, anchor, descr, score, filename]. + // Each is an array of [docname, title, anchor, descr, score, filename, kind]. const normalResults = []; const nonMainIndexResults = []; @@ -337,6 +345,7 @@ const Search = { null, score + boost, filenames[file], + SearchResultKind.title, ]); } } @@ -354,6 +363,7 @@ const Search = { null, score, filenames[file], + SearchResultKind.index, ]; if (isMain) { normalResults.push(result); @@ -475,6 +485,7 @@ const Search = { descr, score, filenames[match[0]], + SearchResultKind.object, ]); }; Object.keys(objects).forEach((prefix) => @@ -585,6 +596,7 @@ const Search = { null, score, filenames[file], + SearchResultKind.text, ]); } return results; diff --git a/apps/_documentation/static/en/chapter-01.html b/apps/_documentation/static/en/chapter-01.html index 0aae81d03..6a32c9011 100644 --- a/apps/_documentation/static/en/chapter-01.html +++ b/apps/_documentation/static/en/chapter-01.html @@ -1,27 +1,24 @@ + + - What is py4web? — py4web 20240915 documentation + What is py4web? — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
- 20240915 -
@@ -215,6 +209,7 @@

Acknowledgmentssugizo

  • valq7711

  • Kevin Keller

  • +
  • Krzysztof Socha

  • Sam de Alfaro sam@dealfaro.com (logo design)

  • Special thanks to Sam de Alfaro, who designed the official logo of py4web. We friendly call the logo “Axel the axolotl”: it magically represents the sense of kindness and inclusion. We believe it’s the cornerstone of our growing community.

    @@ -233,7 +228,7 @@

    Acknowledgments -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with Sphinx using a @@ -258,7 +253,7 @@

    Acknowledgments - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-02.html b/apps/_documentation/static/en/chapter-02.html index 88d4f3d33..c7f5da52b 100644 --- a/apps/_documentation/static/en/chapter-02.html +++ b/apps/_documentation/static/en/chapter-02.html @@ -1,27 +1,24 @@ + + - Help, resources and hints — py4web 20240915 documentation + Help, resources and hints — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    @@ -196,24 +190,17 @@

    Debugging py4web with VScodelaunch.json configuration file. Note that if you’re using Windows the “your_full_path_to_py4web.py” parameter must be written using forward slash only, like “C:/Users/your_name/py4web/py4web.py”.

    -

    If you have instead installed py4web from pip, you need to:

    -
    -
    #!/usr/bin/env python3
    -from py4web.core import cli
    -cli()
    -
    -
    -
      -
    • create / change the vscode launch.json configuration file:

    • -
    -
    "args": ["run", "."],
    -"program": "your_full_path_to_py4web-start.py",
    +

    If you have instead installed py4web from pip, you need to set the launch.json file to run py4web as a module

    +
    {
    +  "name": "py4web apps",
    +  "type": "debugpy",
    +  "request": "launch",
    +  "module": "py4web",
    +  "args": ["run", "apps", "-D", "--watch", "lazy"]
    +}
     
    +

    Adjust the args to match your apps folder. For example, replace apps with . if you opened the apps folder itself in VSCode.

    Tip

    In both cases, if you should get gevent errors you have to also add "gevent": true on the launch.json configuration file.

    @@ -248,7 +235,7 @@

    How to contribute -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with Sphinx using a @@ -273,7 +260,7 @@

    How to contribute - v: 20240915 + v: 20241204

    The app_names option lets you filter which specific apps you want to serve (comma separated). If absent or empty @@ -598,9 +591,10 @@

    HTTPS
    "configurations": [
             {
                 "name": "py4web",
    -            "type": "python",
    +            "type": "debugpy",
                 "request": "launch",
    -            "program": "${workspaceFolder}/py4web.py",
    +            "module": "py4web",
    +            // or "program": "${workspaceFolder}/py4web.py", if you didn't install py4web as a package
                 "args": [
                     "run",
                     "apps",
    @@ -708,7 +702,7 @@ 

    Deployment on Ubuntu
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with
    Sphinx using a @@ -733,7 +727,7 @@

    Deployment on Ubuntu - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-04.html b/apps/_documentation/static/en/chapter-04.html index 891a70dda..6cc47c4d3 100644 --- a/apps/_documentation/static/en/chapter-04.html +++ b/apps/_documentation/static/en/chapter-04.html @@ -1,27 +1,24 @@ + + - The Dashboard — py4web 20240915 documentation + The Dashboard — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    Built with Sphinx using a @@ -200,7 +194,7 @@

    Login into the Dashboard - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-05.html b/apps/_documentation/static/en/chapter-05.html index ddb242e56..fed5fdbd0 100644 --- a/apps/_documentation/static/en/chapter-05.html +++ b/apps/_documentation/static/en/chapter-05.html @@ -1,27 +1,24 @@ + + - Creating an app — py4web 20240915 documentation + Creating an app — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    @@ -72,6 +66,7 @@
  • Copying the _scaffold app
  • Watch for files change
  • Domain-mapped apps
  • +
  • Custom error pages
  • Fixtures
  • @@ -165,11 +160,15 @@

    Static web pagesstatic is a special path for py4web and only files under the static folder are served.

    -

    Important: internally py4web uses the ombott -(One More BOTTle) <https://github.com/valq7711/ombott>`__, +

    +

    Important

    +

    Internally py4web uses the +ombott (One More BOTTle) web server, +which is a minimal and fast bottlepy spin-off. It supports streaming, partial content, range requests, and if-modified-since. This is all handled automatically based on the HTTP request headers.

    +

    Dynamic Web Pages

    @@ -259,6 +258,33 @@

    Routes<

    The pattern matching the wildcard is passed to the function under the specified variable name.

    +

    Note that the routing is implemented in ombott as radix-tree hybrid +router. It is declaration-order-independent and it prioritizes static +route-fragment over dynamic one, since this is most expected behavior.

    +

    This results in some constraints, such as one cannot have more than one +route that has dynamic fragment of different types (int, path) in the +same place.. Hence something like this is incorrect and will result +in errors:

    +
    @action('color/<code:int>')
    +def color(code):
    +    return f'Color code: {code}'
    +
    +@action('color/<name:path>')
    +def color(name):
    +    return f'Color name: {name}'
    +
    +
    +

    Instead, to accomplish a simmilar result, one needs to handle all the +logic in one action:

    +
    @action('color/<color_identifier:path>')
    +def color(color_identifier):
    +   try:
    +      msg = f'Color code: {int(color_identifier)}'
    +   except:
    +      msg = f'Color name: {color_identifier}'
    +   return msg
    +
    +

    Also, the action decorator takes an optional method argument that can be an HTTP method or a list of methods:

    -

    This is an example server block of nginx configuraiton. One would have to create a separate such block for each app/each domain being served by py4web server. Note some important aspects:

    +

    This is an example server block of nginx configuration. One would have to create +a separate such block for each app/each domain being served by py4web server. Note some important aspects:

    • server_name defines the domain mapped to the app myapp,

    • -
    • proxy_http_version 1.1; directive is optional, but highly recommended (otherwise nginx uses HTTP 1.0 to talk to the backend-server – here py4web – and it creates all kinds of issues with buffering and otherwise),

    • +
    • +
      proxy_http_version 1.1; directive is optional, but highly recommended (otherwise nginx uses HTTP 1.0 to talk

      to the backend-server – here py4web – and it creates all kinds of issues with buffering and otherwise),

      +
      +
      +
    • proxy_set_header Host $host; directive ensures that the correct Host is passed to py4web – here myapp.example.com

    • -
    • proxy_set_header X-PY4WEB-APPNAME /myapp; directive ensures that py4web (and ombott) knows which app to serve and also that this application is domain-mapped – pay specific attention to the slash (/) in front of the myapp name – it is required to ensure correct parsing of URLs on ombott level,

    • -
    • finally proxy_pass http://127.0.0.1:8000/myapp$request_uri; ensures that the request is passed in its entirity ($request_uri) to py4web server (here: 127.0.0.1:8000) and the correct app (/myapp).

    • +
    • +
      proxy_set_header X-PY4WEB-APPNAME /myapp; directive ensures that py4web (and ombott) knows which app to serve

      and also that this application is domain-mapped – pay specific attention to the slash (/) in front of the myapp +name – it is required to ensure correct parsing of URLs on ombott level,

      +
      +
      +
    • +
    • +
      finally proxy_pass http://127.0.0.1:8000/myapp$request_uri; ensures that the request is passed in its integrity ($request_uri)

      to py4web server (here: 127.0.0.1:8000) and the correct app (/myapp).

      +
      +
      +
    -

    Such configuration ensures that all URL manipulation inside ombott and py4web - especially in modules such as Auth, Form, and Grid are done correctly using the domain to which the app is mapped to.

    +

    Such configuration ensures that all URL manipulation inside ombott and py4web - especially in modules such as Auth, Form, +and Grid are done correctly using the domain to which the app is mapped to.

    +

    +
    +

    Custom error pages

    +

    py4web provides default error pages. For instance, if none of the routes +in an app matches the request, a default 404 error page will be shown. By +default all HTTP error codes are handled automatically by py4web.

    +

    It is however possible to override this behaviour. It can be done either +per HTTP error code, or even for all errors.

    +

    Here is an example for overriding HTTP code 404 (not found):

    +
    from py4web.core import ERROR_PAGES
    +ERROR_PAGES[404] = f"Page not found!"
    +
    +
    +

    If one wants to replace _all_ default error pages, a special qualifier +"*" should be used. Also, the returned value may contain HTML code as +well:

    +
    from py4web import URL
    +from py4web.core import ERROR_PAGES
    +from yatl.helpers import A
    +
    +ERROR_PAGES["*"] = f"We have encountered an error! (try: {A('Main Page', _href=URL("/",scheme=True))})"
    +
    +
    +

    Note that this setup is global. This means that it is defined once +for all apps on a given py4web instance. This is because, when an error +is encountered, it could be because the request has not matched any of +the apps. Hence, this configuration should only be done in one of the +apps.

    @@ -514,7 +582,7 @@

    Domain-mapped apps -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with Sphinx using a @@ -539,7 +607,7 @@

    Domain-mapped apps - v: 20240915 + v: 20241204

    -

    The string hello world will be translated based on the +

    The string hello world will be translated based on the internationalization file in the specified “translations” folder that best matches the HTTP accept-language header.

    Here Translator is a py4web class that extends @@ -290,7 +288,7 @@

    The Translator fixturereturn str(T("You have been here {n} times").format(n=counter))

    -

    If the T fixture is to be used from inside a template you may want to pass it to the template:

    +

    If the T fixture is to be used from inside a template you may want to pass it to the template:

    This is to be done outside any action and will apply to all actions. Action will still need to declare -action.uses(T) else the behavior is undefined.

    +action.uses(T) else the behavior is undefined.

    The Flash fixture

    @@ -629,9 +627,9 @@

    The Condition fixture

    Notice that the Condition fixtures takes a function as first argument -which is called on_request and must evaluate to True or False.

    +which is called on_request and must evaluate to True or False.

    Also notice that in the above example the Condition depends on the Session -therefore it must be listed after session in action.uses.

    +therefore it must be listed after session in action.uses.

    If False, by default, the Condition fixture raises 404. It is possible to specify a different exception:

    You can use condition to check permissions. For example, if you -are giving group memberships to users using Tags (it will be explained +are giving group memberships to users using Tags (it will be explained later on the Authorization using Tags chapter), then you can require that users action have specific group membership:

    groups = Tags(db.auth_user)
    @@ -825,11 +823,11 @@ 

    Custom fixturesdef on_error(self, context) pass

    -

    For example in the DAL fixture case, on_request starts a transaction, -on_success commits it, and on_error rolls it back.

    -

    In the case of a template, on_request and on_error do nothing but -on_success transforms the output.

    -

    In the case of auth.user fixtures, on_request does all the work of +

    For example in the DAL fixture case, on_request starts a transaction, +on_success commits it, and on_error rolls it back.

    +

    In the case of a template, on_request and on_error do nothing but +on_success transforms the output.

    +

    In the case of auth.user fixtures, on_request does all the work of determining if the user is logged in (from the dependent session fixture) and eventually preventing the request from accessing the inner layers.

    Now imagine a request coming in calling an action with three fixtures A, B, and C. @@ -838,22 +836,22 @@

    Custom fixtureson_request +and the last one to call on_success. You can think of them as layers of +an onion with the action (user code) at the center. on_success is called +when entering a layer from the outside and on_success is called when exiting a layer from the inside (like WSGI middleware).

    If any point an exception is raised inner layers are not called -and outer layers will call on_error instead of on_success.

    +and outer layers will call on_error instead of on_success.

    Context is a shared object which contains:

    • content[‘fixtures’]: the list of all the fixtures for the action.

    • -
    • context[‘processed’]: the list of fixtures that called on_request previously within the request.

    • +
    • context[‘processed’]: the list of fixtures that called on_request previously within the request.

    • context[‘exception’]: the exception raised by the action or any previous fixture logic (usually None)

    • context[‘output’]: the action output.

    -

    on_success and on_error can see the current context[‘exception’] and -transform it. They can see the current context[‘output’] and transform it as well.

    +

    on_success and on_error can see the current context['exception'] and +transform it. They can see the current context['output'] and transform it as well.

    For example here is a fixture that transforms the output text to upper case:

    -

    Notice that this fixture assumes the context[‘output’] is a string +

    Notice that this fixture assumes the context['output'] is a string and therefore it must come before the template.

    Here is a fixture that logs exceptions tracebacks to a file:

    -

    Fixtures also have a __prerequisite__ attribute. If a fixture +

    Fixtures also have a __prerequisite__ attribute. If a fixture takes another fixture as an argument, its value must be appended -to the list of __prerequisites__. This guarantees that they are +to the list of __prerequisites__. This guarantees that they are always executed in the proper order even if listed in the wrong order. -It also makes it optional to declare prerequisite fixtures in action.uses.

    -

    For example Auth depends on db, session, and flash. db and session -are indeed arguments. flash is a special singleton fixture declared within Auth. +It also makes it optional to declare prerequisite fixtures in action.uses.

    +

    For example Auth depends on db, session, and flash. db and session +are indeed arguments. flash is a special singleton fixture declared within Auth. This means that

    action.uses(auth)
     
    @@ -900,7 +898,7 @@

    Custom fixturespy4web.HTTP, bottle.HTTResponse) while other exceptions are errors. The actual logic can be complicated and individual fixtures do not need to know these details.

    They all need to know what the context is and whether they are @@ -909,6 +907,74 @@

    Custom fixtures +

    Fixtures with dependencies

    +

    If a fixture depends on another fixture, it needs to be passed that fixture in the initializer, +and the fixture must be listed in the __prerequisites__ attribute. +For example, suppose we want to create a fixture that grants access to a controller only +to users whose email address is included in an ADMIN_EMAILS list. +We can write the following fixture:

    +
    class AdminAccess(Fixture):
    +
    +    def __init__(self, auth, admin_list, redirect_url=None):
    +        super().__init__()
    +        self.admin_list = admin_list
    +        self.auth = auth
    +        self.__prerequisites__ = [auth]
    +        # One thing to note here is that the URL function can only be called in a
    +        # request context (while serving a request).  Thus, we cannot store in the fixture
    +        # initialization the full URL to redirect, but only the path.
    +        self.redirect_url = redirect_url or 'index'
    +
    +    def on_request(self, context):
    +        if ((not self.auth.current_user)
    +            or self.auth.current_user.get('email') not in self.admin_list):
    +            redirect(URL(self.redirect_url))
    +
    +    def on_error(self, context):
    +        redirect(URL(self.redirect_url))
    +
    +
    +

    The fixture can be created and used as follows:

    +
    admin_access = AdminAccess(auth, ['a@example.com',], 'index')
    +
    +@action('/admin-only')
    +@action.uses('admin_only.html', admin_access)
    +def admin_only():
    +    return dict()
    +
    +
    + +
    +

    Using local storage

    +

    Fixtures can use a thread-local storage for data they need. +Here is an example:

    +
    class LocalStorageDemo(Fixture):
    +
    +   def __init__(self):
    +       super().__init__()
    +
    +   def on_request(self, context):
    +       Fixture.local_initialize(self)
    +       # We can check whether the local storage is valid.
    +       print(f"is_valid: {self.is_valid()}")
    +       content = str(uuid.uuid4())
    +       print(f"Storing content: {content}")
    +       self.local.my_content = content
    +
    +   def on_success(self, context):
    +       # The line below is used only to show that the thread-local object is in place.
    +       print(f"Retrieved: {self.local.my_content}")
    +
    +
    +

    Notably, the initializer should contain the line:

    +
    Fixture.local_initialize(self)
    +
    +
    +

    in order to initialize the thread-local storage. +Once this is done, the thread-local storage can be used to store and retrieve data +using the the self.local object.

    +

    Multiple fixtures

    @@ -942,11 +1008,11 @@

    Multiple fixtures
    @action.uses(A,B)
     

    -

    but not quite. All fixtures declared in one action.uses share -the same context while fixtures in different action.uses use +

    but not quite. All fixtures declared in one action.uses share +the same context while fixtures in different action.uses use different contexts and therefore they cannot communicate with each other. This may change in the future. -For now we recommend using a single call to action.uses.

    +For now we recommend using a single call to action.uses.

    Caching and Memoize

    @@ -976,16 +1042,16 @@

    Caching and Memoize

    Convenience Decorators

    The _scaffold application, in common.py defines two special -convenience decorators:

    -
    @unauthenticated()
    -def index():
    -    return dict()
    +convenience decorators using ActionFactory:

    +
    @unauthenticated()
    +def index():
    +    return dict()
     

    and

    -
    @authenticated()
    -def index():
    -    return dict()
    +
    @authenticated()
    +def index():
    +    return dict()
     

    They apply all of the decorators below (db, session, T, flash, auth), @@ -996,9 +1062,50 @@

    Convenience Decorators

    @unauthenticated does not require the user to be logged in.

  • @authenticated required the user to be logged in.

  • -

    They can be combined with (and precede) other @action.uses(...) but -they should not be combined with @action(...) because they perform -that function automatically.

    +
    +

    Warning

    +

    ActionFactory decorators like these cannot be combined +with @action or @action.uses

    +
    +

    The decorators can be used directly as shown above, which enables +all HTTP methods (GET, POST, PUT, …) but you can also create separate +controllers for each HTTP method:

    +
    @authenticated.get()
    +def index():
    +    # only handle GET requests
    +    return dict()
    +
    +@authenticated.post(path="index")
    +def index_form():
    +    # only handle POST requests
    +    return dict()
    +
    +
    +

    The both decorator and its HTTP method calls have the following arguments:

    +
      +
    • +
      path overwrites the path built from the function name

      with the given string. Does not automatically handle arguments.

      +
      +
      +
    • +
    • +
      template specifies the template name, instead of using

      the function name.

      +
      +
      +
    • +
    • uses specify extra fixtures for this specific controllers.

    • +
    +
    @authenticated(
    +   path="test",
    +   template="generic.html",
    +   uses=[Inject(message="Hello World")])
    +def example():
    +    return dict()
    +
    +
    +

    As manual ordering of fixtures isn’t possible with uses, +make sure the fixtures define their dependencies. +See: Fixtures with dependencies

    @@ -1013,7 +1120,7 @@

    Convenience Decorators
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with
    Sphinx using a @@ -1038,7 +1145,7 @@

    Convenience Decorators - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-07.html b/apps/_documentation/static/en/chapter-07.html index 6212a8c6d..2188fab2c 100644 --- a/apps/_documentation/static/en/chapter-07.html +++ b/apps/_documentation/static/en/chapter-07.html @@ -1,27 +1,24 @@ + + - The Database Abstraction Layer (DAL) — py4web 20240915 documentation + The Database Abstraction Layer (DAL) — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    @@ -1249,9 +1243,11 @@

    Field constructorauthorize can be used to require access control on the corresponding field, for “upload” fields only. It will be discussed more in detail in the context of Authentication and Authorization.

    +
  • widget do not use DAL widgets with py4web, it has has its own +(see Widgets later).

  • represent can be None or can point to a function that takes a field value and returns an alternate representation for the field -value. Examples:

  • +value.

    Note not all the attributes are thread safe and most of them should only be set globally for an app. The following are guaranteed to be @@ -4550,7 +4546,7 @@

    Google NoSQL (Datastore)
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with
    Sphinx using a @@ -4575,7 +4571,7 @@

    Google NoSQL (Datastore) - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-08.html b/apps/_documentation/static/en/chapter-08.html index 1faf0618e..43cde9c27 100644 --- a/apps/_documentation/static/en/chapter-08.html +++ b/apps/_documentation/static/en/chapter-08.html @@ -1,27 +1,24 @@ + + - The RestAPI — py4web 20240915 documentation + The RestAPI — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    @@ -1146,7 +1140,7 @@

    The RestAPI response
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with
    Sphinx using a @@ -1171,7 +1165,7 @@

    The RestAPI response - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-09.html b/apps/_documentation/static/en/chapter-09.html index 1bcd0a082..5ff162cbe 100644 --- a/apps/_documentation/static/en/chapter-09.html +++ b/apps/_documentation/static/en/chapter-09.html @@ -1,27 +1,24 @@ + + - YATL Template Language — py4web 20240915 documentation + YATL Template Language — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    Built with Sphinx using a @@ -762,7 +756,7 @@

    Mobile development - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-10.html b/apps/_documentation/static/en/chapter-10.html index 89c9f9440..ca9ed0a18 100644 --- a/apps/_documentation/static/en/chapter-10.html +++ b/apps/_documentation/static/en/chapter-10.html @@ -1,27 +1,24 @@ + + - YATL helpers — py4web 20240915 documentation + YATL helpers — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    Built with Sphinx using a @@ -872,7 +866,7 @@

    Using Inject - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-11.html b/apps/_documentation/static/en/chapter-11.html index 500573fc3..6b842f01b 100644 --- a/apps/_documentation/static/en/chapter-11.html +++ b/apps/_documentation/static/en/chapter-11.html @@ -1,27 +1,24 @@ + + - Internationalization — py4web 20240915 documentation + Internationalization — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    @@ -195,7 +189,7 @@

    Update the translation files -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with Sphinx using a @@ -220,7 +214,7 @@

    Update the translation files - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-12.html b/apps/_documentation/static/en/chapter-12.html index 196a440db..950ae952c 100644 --- a/apps/_documentation/static/en/chapter-12.html +++ b/apps/_documentation/static/en/chapter-12.html @@ -1,27 +1,24 @@ + + - Forms — py4web 20240915 documentation + Forms — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -

    Custom widgets

    @@ -1586,7 +1585,7 @@

    Validation functions
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with
    Sphinx using a @@ -1611,7 +1610,7 @@

    Validation functions - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-13.html b/apps/_documentation/static/en/chapter-13.html index 24e21f278..a8be1faf2 100644 --- a/apps/_documentation/static/en/chapter-13.html +++ b/apps/_documentation/static/en/chapter-13.html @@ -1,27 +1,24 @@ + + - Authentication and authorization — py4web 20240915 documentation + Authentication and authorization — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    @@ -85,6 +79,12 @@
  • OAuth2 with Discord
  • +
  • Auth API Plugins +
  • Authorization using Tags
  • @@ -475,6 +491,149 @@

    OAuth2 with Discord +

    Auth API Plugins

    +

    There are two types of web APIs, those called by the browser for example by a single page web app, +and those designed to be called by a different kind of program. Both of them may need tosupport +authentication. The distintion is important because, in the case of the browser, there is no need +to manage any authentication token as the browser already provides cookies and py4web uses +cookies to handle seesions. If the user operating the browser is logged-in, when an API is called, +the corresponding action already knows who the user is. No additional logic is necessary. +In this case there there is no need for any kind of additional API token which would only diminuish +the security provided by the cookie based session token.

    +

    When the API is to be accessed by a different program (for example a script) the story is different. +There is no session and we do not want to ask the user for the password every time. +The standard way to authenticate in this case is by issuing the user an API token, aka a string, +which, when presented along with API request allows py4web to recognize the identity of the caller. +This is also referred to as “Authentication bearer”.

    +

    Py4web provides a plugin system that gives you a lot of flexibility but it also provides +two practical plugins that are sufficient in most cases. The two plugins are called: +SimpleTokenPlugin and JwtTokenPlugin. The first one of the two is recommended in most of the cases.

    +

    What all plugins have in common: +- They have a way for a user to create a token which is a string. +- When an HTTP(S) request is made to an action that @actiion.uses(auth) or @action.uses(auth.user)

    +
    +

    py4web will identify the user if the token is present, as if the user was logged-in.

    +
    +

    What SimpleTokenPlugin and JwtTokenPlugin have in common: +- When an HTTP(S) request is made, the token must be put in the “Authentication” header.

    +
    +

    You will need to create your own plugin if you want to pass it in some other manner.

    +
    +
      +
    • Each user can create as many tokens as desired.

    • +
    • Users can create tokens for other users if the application logic requires/allows it.

    • +
    +

    Unique features of SimpleTokenPlugin: +- A token is a UUID. +- Tokens can be managed serverside (created, deleted, expired, change expiration). +- Current tokens are stored in a adatabase table. +- The default table associates token with the owner and a textual description.

    +
    +

    Users can nevertheless provide their own table and add any desired metadata to tokens +which the app can retrieve to distinguish different tokens from the same user. +This is done by adding fields to the table.

    +
    +
      +
    • Under the hood veryfing a token requires a database query.

    • +
    +

    Unique features of JwtTokenPlugin: +- The token is an encrypted and digitally signed dict that stores the user_id and expiration. +- The author of the token can add any metadata to into the token at creation. +- The token is not stored anywhere serverside and there is no database table. +- Tokens can be created (and there is a function to do so) but they cannot be managed.

    +
    +

    The server cannot expire tokens or change expiration. This would require the tokens +to validated against a database and that is exactely when the JwtTokenPlugin tries to avoid.

    +
    +
      +
    • The only way to expire a token is by changing the serverside secret using for validation +so when a token is expired, all tokens are expired.

    • +
    +

    SimpleTokenPlugin are the recommended kind of tokens for most applications. +JwtTokenPlugin are valuable when the expiration is short and known in advance and when +avoiding a database lookup is very important, such as for actions that are very fast +and one is willing to sacrifice a bit of security (serverside token expiration capability) +in order to avoid database access.

    +
    +

    Example of SimpleTokenPlugin

    +

    In common.py:

    +
    from py4web.utils.auth import SimpleTokenPlugin
    +simple_token_plugin = SimpleTokenPlugin(auth)
    +auth.token_plugins.append(simple_token_plugin)
    +
    +
    +

    You can optionally a table=db.mytable to a custom table. Otherwise it will create and use +one called “auth_simple_token”.

    +

    In controllers.py

    +
    @action("test_api")
    +@action.uses(auth.user)
    +def test_api():
    +    return {"hello": "world"}
    +
    +
    +

    Users can access this action if via a browser if they are logged in, without the token, of via API by providing a token.

    +
    curl http://127.0.0.1:8000/test1/test_api -H "Authorization: Bearer {token}"
    +
    +
    +

    In order to create and manage tokens you can use a grid. In controllers.py

    +
    @action("tokens/<path:path>")
    +@action.uses("generic.html", auth.user)
    +def _(path):
    +   db.auth_simple_token.user_id.default = auth.user_id
    +   grid = Grid(path, db.auth_simple_token.user_id==auth.user_id, create=True, deletable=True)
    +   return dict(grid=grid)
    +
    +
    +
    +
    +

    Example of JwtTokenPlugin

    +

    In common.py:

    +
    from py4web.utils.auth import SimpleTokenPlugin
    +jwt_token_plugin = JwtTokenPlugin(auth)
    +auth.token_plugins.append(jwt_token_plugin)
    +
    +
    +

    In controllers.py it works the same as SimpleTokenPlugin:

    +
    @action("test_api")
    +@action.uses(auth.user)
    +def test_api():
    +    return {"hello": "world"}
    +
    +
    +

    The token is also passed using the same header as in the previous example:

    +
    curl http://127.0.0.1:8000/test1/test_api -H "Authorization: Bearer {token}"
    +
    +
    +

    While you cannot manage tokens you still need a way to create them. You can create an +action for example that, when called, gives you a new token. In controllers.py

    +
    @action("make_token")
    +@action.uses("generic.html", auth.user)
    +def make_token():
    +     return dict(token=jwt_token_plugin.make(
    +        auth.current_user,
    +        expiration=utcnow()+datetime.timedelta(days=10)))
    +
    +
    +
    +
    +

    Example of custom Token Plugin

    +

    A token plugin is just a class that, given a request, returns an associated user. +For example here is a dumb and UNSAFE plugin that authorizes everybody as user 1 as long as +the “Authentication” header is provided.

    +

    from py4web import request

    +
    class MyCustomTokenPlugin:
    +    def get_user(self):
    +        authorization = request.headers.get("Authentication")
    +        if authorization:
    +            return db.auth_user(1)
    +        return None
    +
    +auth.token_plugins.append(MyCustomTokenPlugin())
    +
    +
    +
    +

    Authorization using Tags

    @@ -661,7 +820,7 @@

    User Impersonation -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with Sphinx using a @@ -686,7 +845,7 @@

    User Impersonation - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-14.html b/apps/_documentation/static/en/chapter-14.html index 91a7ea451..5b74064c1 100644 --- a/apps/_documentation/static/en/chapter-14.html +++ b/apps/_documentation/static/en/chapter-14.html @@ -1,27 +1,24 @@ + + - Grid — py4web 20240915 documentation + Grid — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    @@ -422,7 +416,7 @@

    Using templates
    [[if request.query.get('action') in ('details', 'edit'):]]
    +
    [[if grid.action in ['details', 'edit']: ]]
         #  Display the custom form
         [[form = grid.render() ]]
         [[form.custom["begin"] ]]
    @@ -661,7 +655,7 @@ 

    Grids with checkboxes
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with
    Sphinx using a @@ -686,7 +680,7 @@

    Grids with checkboxes - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-15.html b/apps/_documentation/static/en/chapter-15.html index ac7da9289..84879637c 100644 --- a/apps/_documentation/static/en/chapter-15.html +++ b/apps/_documentation/static/en/chapter-15.html @@ -1,27 +1,24 @@ + + - From web2py to py4web — py4web 20240915 documentation + From web2py to py4web — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    Built with Sphinx using a @@ -490,7 +484,7 @@

    “auth” example - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/chapter-16.html b/apps/_documentation/static/en/chapter-16.html index 53ba723fe..04ddb6fe5 100644 --- a/apps/_documentation/static/en/chapter-16.html +++ b/apps/_documentation/static/en/chapter-16.html @@ -1,27 +1,24 @@ + + - Advanced topics and examples — py4web 20240915 documentation + Advanced topics and examples — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -40,9 +37,6 @@ py4web -
    - 20240915 -
    Built with Sphinx using a @@ -886,7 +880,7 @@

    The T object - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/genindex.html b/apps/_documentation/static/en/genindex.html index 68a1c04c0..1db788979 100644 --- a/apps/_documentation/static/en/genindex.html +++ b/apps/_documentation/static/en/genindex.html @@ -1,27 +1,23 @@ + + - Index — py4web 20240915 documentation + Index — py4web 20241204 documentation - - + - - - - - - - - - + + + + + + @@ -39,9 +35,6 @@ py4web -
    - 20240915 -
    @@ -109,7 +102,7 @@

    Index


    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with Sphinx using a @@ -134,7 +127,7 @@

    Index

    - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/index.html b/apps/_documentation/static/en/index.html index ef9ebe901..6ae69690a 100644 --- a/apps/_documentation/static/en/index.html +++ b/apps/_documentation/static/en/index.html @@ -1,27 +1,24 @@ + + - py4web: the reference Manual — py4web 20240915 documentation + py4web: the reference Manual — py4web 20241204 documentation - - + - - - - - - - - + + + + + + @@ -40,9 +37,6 @@ py4web -
    - 20240915 -
    Built with Sphinx using a @@ -283,7 +278,7 @@

    Indices and tables - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/objects.inv b/apps/_documentation/static/en/objects.inv index 86f2301c8d6198d39c09125a636edbdbf9c0a137..a209dab8f2953a39e89031448f6f20a30e1b985c 100644 GIT binary patch delta 8503 zcmV-7A;{j>IN(A346)vZOU zdpcqw)DT&u&;kJ(7s>3W`HGghlLerVm6es1{PoxSILwRu zbNuVCDle8F;_$)5O21Ky$8cMiOn>{QZyt+H{09+JRzCRk*RT)s=3B;uYJY-a$?iT~ z^~$~#*<`2Fm6}}ra({h_sQi8zEee2z$x_kxILZrOGs9dXOan;6-w07cMMOda3LZ>Y z7SU?wy9g_%KAueO=I5us5H?Peb?$47h$;C*V4N%Z2cmP@qckI(#-~G(rpo?NlzobV>m*z0JH$`Sc`63uwcP(|mC zl$<3Ne+ZNv2gFTCjg}wORX;cCM@wg7`N+M-AX;gZ)+npmVC37Zy%)Y& ztMkh<6i&9KcXTBob$)eoHz!DL{O>DEDgHoIejmo$M;JIaCW{unK_r6vSrb?1v-`=# z%_kUdFHdgIr%Z^W64<5tEKJsB1S86$fg^dOJf6%??tjm(?r$eoXD1csNGi)v0gGsJ zaDx!D*QojVWmm&c_5j*Cn~<0VbiMeXHZr8y#FOdy<>aE(LbC~@cmyNKA7 z!Q;43vr%yLT+)mgZssr>xD}GmC0tvPjv+x&U8F?v;~iYf{8~u9Y)7>M#0dQN8_^CU zd@45te3W~cIC}9Q%T^XS zu79rQY-TH-vDN{3oP|K1nw3b(I38#3QButP)!oH~v-Wwo8uNCc7-DCWQ+b>6xLl6` zf*1iW?#={QWN9)AN`eHQ-(Ft{eB|hDNA7CWF1KLtmo&g6;V2G9Xp2C)yBioIj%nDr znpDi&QN5AmnB~Uy#xff-*nd(xq zVWgI6W)WsZ{t}^Cp*d)>tbJRgFdYJS)do}O#^9fWZ>)=bf<{exHLKK>HfS zyyFNuQW1YJ7-q8$4O3i!A1RB+kPHwUDPo{&&x;R#DRx`)S2y>qF38t(uv7@8;eXAd zRE?4d?FrDfiPl+Y!%nO4$=tgm!>U9~BSy;?C7(yC&IDQ#^Ku_7o^6iKPs$;HXEfwHX_ zye%xPoh*~dS7L+5m@LfwkhfBiu`u7^29&6Z`)!!#FYx*wc%QKoS!nx)*J(TMyeZ1< z;o8b=hnliu%*h|k!OLre+2hB99sJwSJJ6tvn%zurkjaZ(?6o!|q#BUr#L82D|KXN z?iX>Gdo2oyY7$j7m?hyh7vk#`-hedI6`3wz(m(lladM>QxA5!ek0(p+i7g6EwKqRE* z=X2^nMHa2sCL3iUM3yZ?9Y{Po41IrDm~A03aQFawAI9;{7fJ`PW++9|wZPOMDJu0E z*rHH#G_0l9y)0vOhwddWvci=3eq4Z^x{uXZs|3e z$gPQ11EWSVEq^>(C=|+oT}C1B*F$jAP>jqq%E26#1%nU|;Ti%hLn`wn+-&ipVM>cD zVj+ORs$#;&aQcrH8gxrHT4=P;=ukVF$ykNhH1M~xL~VC)E>YkQJZVF&-VE-QQ{;DEXtH{LgBsh}o z_wboRR~))XHFHR4n>Z$;R6&cLL-5p=YGuNr%>2q(Ts!eeo1jLC&uwY)Xq|XEg=57& zA&5x_O~qZL+i1a8B0Zz0SA(a)QAQ)+AVkQ!a{@s(j24_uKxuMtD9xhZ2T~L2Y!#Xl?;7Zd zhrX@9%&CK7;|@_wFjC#t$b@(>Xts<`fY&zSemj&XBGjaVZVo3)P8p$OebHqF$&;9K}QY$=df`g9S&BGHwHPK)a zV}GtN&cVK=_0BlIkS;--I8Td(3S)|r=OhlH+YP^}uhf*Jf@+8-z%pHQ4E*Zn$FNXQ4(`Ld7xVC673ys#ir-N633?{3 z9pvDEEesDr@G$Wyx`)(>=SQc`le~bNTYp*K87@DR+Y0`!6V9))nm-zK9OjP?X$W%# zclP^E%=e6$!u+)04h$n?P1E~M6yHsC>TbR38=c~RsyEDfg%5d=g$ugIi*RQ$_4;^n z@yCklhfb;=DymzP7cd-Gh(C8C*dVE2Ci4q5H(6)z zplg8XK1r~Mif?}qyRdJXez1l_i+|wTQG##Y_c2zc2?XN^o{r9=CB|NJn#o2unN6P} zud%GKTCg~7TI_U?I)IVl0cL4n0VvY%OO$6>UKN-&pn)BvVp?*efhYG2RWeE;LR-YN zgNC> zU`oe{DOGTa8Q0SP;_7CfFf+qvwukUIL zyoSpMFd1OP!z6_!WxlK3?kEVP5f4tH!K6aOYm1+HRZuHv&Ih;PANTnpT&>c0i9Sk? z_U|k0H0y&KY*CnrKsqg9gD>cX3@Umx#MtzzJS`SsxI5g?wo8_kXn#bCg8IbZWDZ5O z6P@1P9XnvK$e-c8fysn~m%zbI;mP~DZvL!sLct(-KQ)5XboNsx8Ee7kNhk1ls4$ai zgc|H9ysQ&q7?JX?NDtD@TXdv|c4xt)3;en&cDYLyk6D@wMnoD{hugl0#6>Q3n*^IN zLRqjV^8)%aZhrwo`G4!L3iEb+#+EQ_YBkGGndTG^F@n zo-olzK5FR~X@$NMCKGd_zD#+;?^O>j2Ni66HKDoPx{FcmUgjBGG5GfF$u zaSvUk=X04BHh*eHTa1T?w>^!5=S)d5*cN~6RZ+EKtjq7z)&R%*Bmo7yXk`Y6t^?RP zVn#cVnkqW!f~9#VdGiBLs%b?H{s!i3GrVHvpqinyY^N>sxRdy1H^s9(YM=8(x-?&- zRgm3Ef12S*(76iBxRB&j$>kZ-Qy8ZmuGT|(DV;VPbAMDE?l8*e+bKTIDZ8f`gQmes&xnrQtLEbqdN)Swn?Dx^}45>?O;9)bQD3hW*M5iE{ zdhY08fF(UJyqQH36E8|yv!y=hwt{)AWQ~KZC4X^nx34yt9S^ChcA(j`=HdQ~fjN}q z<#*u9!XyvJI2jd4*FneKWWh4sgp_u--5Q!edVJ=Fye9eMJ&IttOTtaGz!>ZpM_j}; z+GiF&7J{FF;D+3AyF!?*lsK40`eYJW3m;yZwTU9>N{houSXmucCwtU$qUQDTy5`?r z3V%W#sI&#E>HFJDLAv%;g$)%nu7Z%O$ z18siik(SXX9(vTDX3k%N=E*nmVtu+seedB(B^q$W4P@c9 z^k;b4hmvj@wL7q7yh2~WPWlLgl__L(mw(gdy(KI}UWXVUSEm*HHhl?r@;Z9n!*kcV z_-UIUsLzKflI-z0o7{xsKyrmU?WGK8%QSCklbQIS$wu*N2ONr@wh4m1q9$KiBSi;X zHUty-2L~@MHiBZO768yM_^=)_vOCT_^xjHDX-4T9>a>S07#D7MRV}hQ0KK~~?teme zHOa!eFl2FT6dJhGUdn*7Nw|lh_Xh4%v@PQi%WRaH;()pVJnbiCg=5$9NJ&ljvCxbO(nJ(;AF9+KZe$>g!|-!Ms0#bg!1KO=2<*24~@m!ZJpK zow1VFAg@vWtVuEZ@d8;Rc-*Z-9)Ek(E=$9of%wTuicGK3YQxB!`GUFP5EDu}ko9`6 zQfPyEeeB4r7XQ^TFI^Qw=xS1U5TSPnIb*Sa(wYV%Sg&}M8wKq=NfwKZCo)P9nTb`9 zvo4~*?X}~Lb)GAiO@1P)8STOwSTAfGhYOlm$XORr@Yt8gGCa>mn06>q#DA#%#26dC zOrK5m9GMqi86uL_PWn>|9C&O2y; z8%7A)!|N+01#+}`760Q zbLn!SX5!YVU5Y-TCovX|COHGP=0~+V`5v1C@Hcj?)L+Z1%^)+Q)Eh(R=OL zqwj41uAO|fegXHYw}0fIeLo4Y$27mGY+XmG?9k`Y!HdN$=aA40Fr)#*&UP{oG&;*n|?d#=Jl+a9;J{{z;izuiT z-N-FYW87c9@qfAp)iR#Iw1r*v5e8!eIIk*>JlLcU7^7O6XA`H}fq_Z9ESA@G`O7_u zfQpHLxyy5m%*T?1?P*s9(hbmMHyJAFnALB0+MZxH7vLpUKBW2m2Iu9t-a|1tZ-by0 z;ZlzXUpB$PCZ{ODCR$`^p5h3A6MC4JdGjL)sT~k!_T*WWf=fq=UuR4jY|0p> zYH&5P75-1G2Of}T-MyPyW2EdwNgDuC-rMRLr?8pNw`VII=-X*{z- z)TvM9V1wI+%EmH_e4Up=XF*Eg`;KQmTy-j5cJ?QA-9s19b~CCaFPR5}kyhGKhSHMO zpsri+fTAV`jZYLPX%A1=9W+6jg$v(4!dL2=q<;b_gyr{dddq8lRe`Vnk7`}}QsbId z)fB_aq|EMiYM;wo_jN2p>sGFxuA#4qzLoq}qZj=n9XwW7312tCLN+#qi`i<@*DZL^ z%qRkz#Ezm}4;l0^YRN^~Vykr)TAA;s2F)Aa^y6l78F2Bm-Yu}zwC~0W2HVVJ=5rb4 zQGa1Pkye1!g@c+`;&E3vRi){*$dU>FNX#x-MCouCQI^8_hh|t_TN1ALHe8U6;Vfx^ z?Kt6v;)K0XKH)%@-(j?11_O^&jTmcq@NXedz3fA_D-qrmO}6lQU%mBe2u7_v*#)Ot zS!I$<#!{EXyF4KqiEHAwZ33h$;mfm8Re!0pf2iC`%pkYL`qt6dP1e^S!f?%#J&hJuRXlO}_9%laEeoHg1-F!>g8ib0 z2iHy1NWv>noao_JF3`S4t7uF*xuuXz8*V*BHz;n$C<<~;wQB5^QCxd&@XcmibIXj> zteY`qW8aLLQVF}WmUk zp{^mdSO(sLXT#)u$~R`iWrM#)xdYFJ$@`RN2Ie?lrJ0dEYH#smFi?&3>r0&KpsV`m zR}?X|MB6M~nB_pUt3gtep0(gX{ur|D8P3AA_m!o!lb*HUL01{nuc)R97y6iH#iA^{ zk=vOS3^?Cb(N1SB1n4O$CV#^q<8+0q2H06IWq?0&W|qT64y*^xvaYBslkf~#B&tOex^4MjckcV{g_8`V#((#Cf87CU?)q$> zq(+RDZ#XX!-^(%6_V3!N90fTAO^VqVMFD$hqqCo-TyRZ%-X;*rD1o6eDzIM67|Oc% zyiFjK8&f={zUhrPry@G90|P8CJm_q^qUyu;H;j1h>($3w=&bO(2@Yt%g6_M?Hqnqp zw~-%Oub}5yL(DDBO@DPTC~WzpRhbMHtH5+>4>?xvOvPdm@}-bpQ5Z_FOIl#4D1R~h+amh_o~)PjJAJesdkaS%i&g#NiHWmCs_Xe75wi;4!;wK&~-pV!+E8S6+=; zVwb#lZFMl@LV8)=uEmm`1_iOMU=n;l4?1NGWOn9Zb|Lt z&RaChjk|MW^au`McbF#s9#z0)y<*%VZw^r4APxSz+lwX<&_{Xag4F&~qhBc`!FdG= zifDtLC4c@1P~@AAu&lPS^9D31O1N&AGs<2<=xV8_Nfsal?hr8FCkcv|6ca7*uC|I& z54*fCsb-jN!RA1C%7o2YnW*ZXG50i|$;@)J5(m(A8jN+0rXb-4yy$-_9e9>*5ZIq% z7|r1TIw*1ZiKgYY^x05-csrA9pg8l9QFlFbfq&EwuD^_I0{cTcZyGTIXV+%xx;V0xmPgt8>cKQM-bnh7-$-W}eEpjHt+N+`-YxUg2;6Wz2B{jk+_Cf3U7=IQSO+*0@N)Mp;O0B`CeT1kD0}`WkG=3$78jI_9 zDQ+c=$FmSd6Qa8ivqV~@v~xKcSKt1s@PZzHMa zQkAMUTY}V_rbwBW?$$izL(ciRe9752fEQ5&<;r=m)uh&18zjLEU}FRN{P`{p^CJHe zfBvlUV(}pk?@g@q8#R9jH-*Xcw}1ZTp;*U%5SX&~;PdBjALq@t%n8*9VSmZ?E?w@$ zz7=e;)#*}=u716{K1Ei3w}|Ei(86S)=s1q@!dJ{N*GSVq((pG@lt__~$bf-+6P87^ z-1;uU;?&2J(e3Q~^jG4>X|l?Fg%OyNPb9|a{Lx)gUT#dbSL81uf)u(Qf-5>E0Xjy} zbm6}Wz^ISc$5{G#7~|ufr+@1;%A}hjN|QZ>_>SpF(L&Hdz;i7T63>nAz92^7e}pf5 zWe12Fk7fvdh~hhx|OhEq##G~A-H^r6@7A7`@;lInxA}stj7L~M!Xn*EwrYidGNXeH+ zioZQl{52LM+inW)?Lm+lPkz0@=dm!$Z@&2^GewytzIqH;%}7Ia+khB_{{h~tecEQNPA(DoV&-LG2Kd4Xsj5Fop)kq9)s!fi$K}HKZVa=iq6kCr zDUy*>puUV^pxs4@Gk+jw($eb|843DiMvj1|oG3|Ff@F`brT5+;M&W-BkCoND$c5uU zo@N7z2c;60MgnObDLHkd@En=Q^6E{*mdLLR47zAUD>@`P9-?BJK~;>rwHI)3_mqV* z(_6I=qfW0Umx4!M_d#W5o@U?y%qBCrNs6$?|NglW3Jc9l-G5^8mmk!mOBXCZyx}MD z@K!#*lh1eZ`MrF;_g&A!8~yNBKYXVj-sy+$^}~Dh>CKV)^cMbo2mju|zwhDSdo*f7 zZ|y;h`gAfnMm(JG;^9B_X?A%5_{ay2)H%Wyc*m0zUQrd^V~sB!jM`+;I?T4}(QNzg zd$iER)x_1n)qld($c+{s)YX1%w2z+7#PX4Qok6tJh}MWzZ8GYuSKbR>uhjYF8G@5d z>1|yJq|UEyZf8WvjsJaRl;RI$<#%Dcd4PsO)Y!DrL zE@{RJH!~OwOhn{M3D;JnLqrg&i6^rM&w^^#5%N$L+&TSka&82 zA@^+=r+;B_$Ri;_2eS?umPKcl@!*#U``} zSF0#l4b!1E*fOjp$;|kq)6Y#YtZ)DnrRmA6ML)27KvczvQHXv+mN8sB|9g&cNgc=+1>Rid#PzdcDP9oFGsVn+z{xa+{wVv%LgobS=6|?p0S&)bcT8d z)PHdv0(EL$A}Ql|n7>D)xcjTyiwo!N^Kd!j?LruGr=wGOoAS6^4Iu)Ih!?kKLM*a0 z8AK%@k!O?ZE1?f;y=}`~wc6zd9R7kDm?Rve!3=E~D0h1UZNxD(J6EGhc{8Xs5{^}F zY;7#FA&otth&RE8o`AmICVz1;`glSVZ+|a7j?~3DAs=Nt8C8E~W(6&^3^R)`EAr=P_%va8vouB>TmNLw3xKjj@q(vgbzgUK+O zb!-^o3jIh~K89pK;7E}IU3*@9_-nDwjpK zg*NQ83?I#%JJWAUU>Z4E4wQTzsk#zaNzC(IxY-;Sh6I)dRyz_YV!Oe})LS3ZSY2aH zOu_4!Wt4cYG6k1MK;GDc+u&*v$PbLaFJ=#mTtAvZd&~EsWL<%VKg!YVa77 zxw-4>tyE$R<~!V=l2mcG3G@6JUjGB{Ggcx?ZQt;^Y{#89MY%cLTDj>kQ+BjD`GYxl zdW|?c`gpQKe-nBe8pNpS%?KNryx7KGZ$lt8o&8E-i@aR(OC3H*Lw~cj?a4ZPsp9YZ zC*s`mFV`AGpgWMjz~zMl@dmD~Tpua;;s`nj;N;;e4$9L^9r>BNc^u|mk3vvQP*tN@ z5iWBfeZ9gPkY>3e(*+FrM;|Xvj?`=d|Bgv;<)^QJh693P$eb*J)J$e&3-bcqLgSrO zw>ULB`DHemoZu9D&wp6jvK|zTo{J%Ic>)2RBlAU6_$v^B)a-ml6{yIf)yiapT!diR zL)3|+v&GQ&%iL@ViGjlh`1>%9x4uw1kTp{&ny!VWdPUKw*TEKrnxSJYz1_<)R=3!_ zkI<{UFlKike2jN=wwr-|B{WHl&i6w{)kMM5D4 z{4#=|zaBz24S!+et`P@gSOx|mp29fT$kfHCfzE>9QDWsVF`^Y3=dZrQ0cZI&IOU$B1cHO;RDtvqXBdP5%cz(NKkE} zIZyvnT7MgyO0($qo>YRmTE*r>xdwaWk#E~CbE;5SxI+vRjZC*KvLK!enkC~epqDk^ zemj;JBG#xwZU$eVofLfh22-NIl`K}Kkgq}T#Z!Z7T+LjuN!(Fg`scQE0G=wEH(gop zJ3;t{lT;sfBt&(UMGKGWySggkTdH*lQO&nW5r4jTk`_r%kRNNb;J%DvoH$T0y4gVM z>PcG^w6^GvEqXwaAqfzn>+)qD0!&w6O?;}qP|eq7okqX!lXzcAP|bxG#}dXhkxM@3 zgn0m+`^$x*7Cdf}gN|Iw!xJ_&$zal9t}rgaeL>rs;(S251nG2nN-RA*?e zVSlarhL)e89k6*a%jl)AQE_*gIFftgIO9&KU=CKZZU3wKN{tB>R82Aw7U{gBp;kXX zgoTQ7Xzt%VoBRK+SZ_O7{D!JeP%|;spF@XfZn)8ahlx+oJ)}-PKRR`uEQ(yV+t#li#F@ z+gZQlZSC)Ufd`*I-ls2i6u7_NV>6e9plgKju1GMCif?}qzp(3?ez1;23-IkA;G6gR z6f4&Rz&L`Zqw{EivC^DIo)Hc{(|^av>ntm-7B04%mOJj14xpvDhfx)H0E*1}65AQe zQT%a(8rViErYSONcydouC9M=Pv}KGtWJnwHT`5c1UrNAgiyb$p0e8q=qGHQ4J7!*H zcp&v4-P(qtMvqi$!HU8LZf=U5HFi!M-ionU^sFufKzKbIw85g3A^?%5&6aA?n zS{XdZNL$#6C5d4Vz6_(7+UD0VuEgXLXfwksTthb?`=if_Rnb;OTM_LU;#WfhJRAj5?y!-ui@ezTn0GtFiD|EneS>hTMF7})%(_Y19Wd*s?HlfNWa9hF-9j(rf5dpJKCD zak&aO%Fmw_=Gpk1Epgb@YQ~RQ z<`hq{gjJS)^L<$qdw*M3R~cBCDcVv*d&EK?`K*0(3>_v%?;~LFs3<_n4ip7o_RI9|{qhaN-*l~j@O40A!@@;*QpBh{< zeB2fY79j>7U|5=!b7&kqi|;}VJXBy9*44=*20lJZ7vA5iUiJ0%tL4$7QQ#Zc^?NqZVObB*wkQ>VLBgJU{Yq5 zcC6z)a+RGgWm?$y7A@ZGZ-{m*3ZHWj$+cSkvDZXZilLozXSPN--W3TbG(~eB*vK59 z&ao|8+tW1BDSsC%%zeqr3V8TSb5-y+C}->bxhO}~Or;4iZK=nd!Z+J7e!Iu)Q$9}@ z=4-49v)kxTQ~VNaF2gb|B<)kOWQNof=4r>P)sVfC&e{goxWwTW7HYm+WuMBYD?uZS2GW}+72aYOW& zMQ`Z4mci9LPNB2=I(!V(Due>5Rhq7_;|Kj>lR(|u+mY-n2kU8&(;%l=jPi(CtW~tL zab^B&bbkWo&)ED3%%8CNR*88&I83(BFlaH~z{vTK@-^8QwQrT^h5)0Qe9L}$UnWI) zh)rQM?cCDI05{9PKx7t4^tvc%Hk9h1TV&<&k~IzXmZZVezFNL@+-Is<+hr4m`|C4? z&=AQJ+n|+&NgfXAWK<+wCmnZ-1&eeYQbOBiV}EF=V?cch)O?tXU zO>N?FWU}I&?v)H^%`C5Jk^y6{XF+(i1PbA&ZGm9lt`=XpNrn!1-w4d)?)9;}+XTW+ zEdi)6_^|G?^wA_$FUET-k)@fXYpl~fa(}_FQSqy4){YVe_?cs~5AATYDdPb%DU^KR zh`K>M-7m@phfdd!ksA24Ne%{#+h57t7)2NJc}5E-dwnW}DlPJ~Mq`ckJk}obbup%3 zDwa^XC&X4JF&W4EvhZ2q&N98#qrz*zYs8;5C8j@KplXyXOe@jB^A5lcIg?JixVPzLq-*oj#y{;OkMx+m0&fq-MARHa2lrJM%$Kh)+H1? z?8{Z?A0Q%4I~EyY*8bcF8}~||On>$inP=b5Fof0){i#I{*d7nJH@@N`R>tgr{nVfa z574Hp1I^#aDQiJH`AbU zdy-pF^LXrXKTvNqGfNmz;atXLn3Q46MB{Zb=L|!5Wb1iXl5S=84+5>{;-2rYL6CQI ziX^>w8K=*l9fK-{c8v258PJ9nf|gbKcJ~1st>*+CO9?o+%X$z>?7{ct^pWa+#c&Y#pQ-d zy#VxQ-Aroj@-0rad!Xv z?pB3ETZ4b+GJ_fq83YkQre-bS?@nZ5&jq*@TmL!*+i}D7&kp&I8ZC&!--oTFMxb@z z7f711=Z+WQravwHmAW_{-2`+upneYW#k8QF!0eDOn&d#1X4@$bzB6!@X4s+;S^w?m zbhC->F41QokOlkx*nb@DuY)0g#+DQR+5IcxbQM8eSLw!N10ogz*A@JtEkKe9r=?(* zVPSJ?_b9)sloQT(!MIt)x@gK(sk-a%k=-n%is6Q>wN#+KeK&{){+xNb#=G1r3Dy!C zfYPUZy?lle8p+b9qg-|g1=VZ~b&Jy&m;A21-GgfWM`+s8E`Rq4217$CuPTi^Sf}?G zHCmV_6Q`S=hDmx^jMsJi<&H!^`#XTU%X19r#*%02DOW|(4bo+|7#isq)o-@ie!<;b zpqIEA9gXkTI4;MD0*aD(3k0|UW3h3)903XJlJBvHxkVq>XRM$1s)i6^*_l7!OwKtCr za06AvyY#4qY^4$|i0r9|$i#|>(hJ#`#WAmHvY5(ImwydXOlyD3v6w}a(?XZtXUhZ* z=~%+`s1iBma}D8TI5+oc`Z!$KG3wH%adDK)vIc_iqFgFFNa! zy51uf(2643-dm=udn2v1Xb90VAFi%j^nju!2enTWC}}rO*BvrJnuT-UQn6R+noxo4 zP2}(2?0?2nQ64N#IHOaTK#%l6n ze_#iX%~jy*CRxOW=Kio+4Sn6B2hCIz@JZZJwDTdoeT-UGiniQpo`t4#_e+E2wQu-w zGrA0TKdZf~9IIj9jRgjq%w*ya`wT9$8Fhq$RfFglmcu?v3(^26p)!M+>Jn@JJiP;CteG|pt&bI;WUw1CRs-+TV;5sCuFT?4L)fLpkxULPexU{SN&7v zUVmXGxmC0iCu7&qR=2&c5wy{Q>In*Z;^?Q`=)nPaNVjf^17$7&)K^~N(mE=M%2nJ+ zuQXWZApwlTtFgJqo@G?yeXz1C6QBv`c+)r^H_`G6Gh93Pq%9CsQ$im9F|k0T6yYXP zt9`jfc8#3?H3DT-s5(2DIe|?ImuM4=IDdsFAEs!T>{5hjO?1gtHfeDy1`_(Wq1dr# zdDSKq&fbn>kfmke>uJF)B~-Ax58c6A*=ZEv87NM@a5ER^U!!F-BoEn2NVdP5577;Y z$q++9&U+O!7DOoC4y^ahW?pkuglr==Wy!|U2sNf%#c~s7?Gyq&$8Fe@zsH7Juzz;` zf|E)1Z$@s5Wl6OR6eLZ%#lT3stlAl_h;ih11x+5;ZsASwt4Wt6SmS)AwaIfzIJ5Ht zxDNn!Qt27xkNu6bsA#L=rXwm9O)ArY<^ql&@Y>ctEzBxCXQY8JK>2ec6z+ zOJ!|xW`EqFu58!fI_9)Tw$o;mcz^az>NATwb6fJXUwohOwOR8{u3ux^k*EFQ`;2D> z#yDSPnVEacPVmd1XM@PE-*r+4T^mAv#lDhOXp^OLv*?L-HAHIYX^S4@43@n>HL%mY zk^%nilv(tzW4AqU#<~^k(*`xjH)bBu(x+;E+4o?XqMMXymynaE>6M{l25W%kS8Akb zw^#tZ{;2SVO<+s_sK51v$lXpMhP^PQGr{643VtEXKewIT$|z{^$l;Nb1KkTofzPbuf3g(SF|Cl z{aG0v`+Dv1+A9m5HOT=@SkQep**fa;=r;00^A+?wYmAwdxv5SDg@4^4XIUn_10}o1 zs^E2ncbn{-+EY%|J5sS+q`VaJ!*+w+8FJ($t$VXsr&Mt0mI6Eb0?c+6{G%l9Vg98w z^vi@i8RVB0hD<4uu$&SJQl_o)Wd5qZ1xHQVG|-|^aa5y|9`4^6@s1ipMIEJ~JZ=jG zJWn1E7hcc=LnVpf-+z|a2k7~OlbJuNA}xJRMI=K_3{4EtZR!LEOzAi0@tgZ>v5a)M z!`kLnF>h|Q@Xp||x~yESDQHr_%Ne$V7L~+KdGXw8Z^(u0GTzR`lAVSGsV-pyz|SH;l3)5SxmLt4 z_3Qnyez7(v)*At1N65hX{%&;v_}su#HiMP4W7H&_3~A>u3dK2x%zuRybXF&_j0`dd zKT$hmtv}LfQ-6eoVF)`9YcpW}cSI<)ZG~oCLM$&~SzLD;6%XaT|5dSR|G2c4DYK@~ zSyX%~?@7KGTzwkN->hDJs!qw!ds}r&YBzV*l3{IJ))`}u-~e^UY3lDt1-x@pjBBgS z0R|kUp?^EMXbORRly^=@?LIa7;Wz@$DpF8HYwTI#?|-sHzTpUCwZ+aF)SxKgx?#*H ztNWm;rJf>Lg6v_2gxRi0P&}uYXn}XNweN6$m-jin94M)&HiPKLsEVsK`^=;X0N0JQ|XFf9P zc8^>jTYtpXUq*I;`$IZ!8oy~!eZPV{4p(tzb#9DP%?55wEX@723?bdDj-4Ya2n7~d$Z(pK`?S-)^ zORHy?-0l+;Q`ptEYY60LriSEFvq2no*cA))4K}P<9NBb=i}7I@j%>?eS=z1aWhLoi z_W!B}=?IclxLYY2o{@X=URU7TCfSO~sPNza`X6!xI*ilA{QF=3JLJCFAzh7W&B%Ch zM}M|q)(+cn!Lwvj+`mzG;Rl(3d$mi^KX9h{3ZdR^l#|QYb&5VAsO2N ztQfVR%ugLMLHCcFeAVxyKtT^kE^MU~wl*n!rq$O=>PF#v1MFn)Xhxza#3AoS94(xm zJEel>=Dyzjzt(|Z+_6ORh}wIC4~lNTl7Ef=;o|aDtx5WH+FyEkJMZ@+i~`6vkk9iIG^L-240dh=cj=$e*cdX$isD1 zo#yg%;W1E^g1ST5>QL*{9Rk{})ega?wXeDH*5sa>-Y1R5 wW#=_jZdAyd2$*cJbs_6=qeCs^x)=Frzc|{*mH&h7A-JypQE0ZU6uP diff --git a/apps/_documentation/static/en/search.html b/apps/_documentation/static/en/search.html index 9395416d0..7f1d6d78d 100644 --- a/apps/_documentation/static/en/search.html +++ b/apps/_documentation/static/en/search.html @@ -1,28 +1,24 @@ + + - Search — py4web 20240915 documentation + Search — py4web 20241204 documentation - - + - - - - - - - - - + + + + + + @@ -42,9 +38,6 @@ py4web -
    - 20240915 -
    @@ -116,7 +109,7 @@
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Built with Sphinx using a @@ -141,7 +134,7 @@ - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/en/searchindex.js b/apps/_documentation/static/en/searchindex.js index d2dd50c44..dd4e0a9bb 100644 --- a/apps/_documentation/static/en/searchindex.js +++ b/apps/_documentation/static/en/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"A": [[10, "a"]], "A minimal form example without a database": [[12, "a-minimal-form-example-without-a-database"]], "A modern python workplace": [[1, "a-modern-python-workplace"]], "ANY_OF": [[12, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adding attributes to fields and tables": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced features": [[6, "advanced-features"]], "Advanced form design": [[12, "advanced-form-design"]], "Advanced topics and examples": [[16, null]], "Auth Plugins": [[13, "auth-plugins"]], "Auth UI": [[13, "auth-ui"]], "Authentication and authorization": [[13, null]], "Authentication using Auth": [[13, "authentication-using-auth"]], "Authorization using Tags": [[13, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[16, "autocomplete-widget-using-htmx"]], "BEAUTIFY": [[10, "beautify"]], "BODY": [[10, "body"]], "Basic form example": [[12, "basic-form-example"]], "Basic grid example": [[14, "basic-grid-example"]], "Basic syntax": [[8, "basic-syntax"]], "Built-in helpers": [[10, "built-in-helpers"]], "CAT": [[10, "cat"]], "CLEANUP": [[12, "cleanup"]], "CRUD settings": [[14, "crud-settings"]], "CRYPT": [[12, "crypt"]], "CSV (all tables at once)": [[6, "csv-all-tables-at-once"]], "CSV (one Table at a time)": [[6, "csv-one-table-at-a-time"]], "CSV and remote database synchronization": [[6, "csv-and-remote-database-synchronization"]], "Caching and Memoize": [[5, "caching-and-memoize"]], "Caching selects": [[6, "caching-selects"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[16, "celery"]], "Checkbox validation": [[12, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combining rows": [[6, "combining-rows"]], "Command line options": [[2, "command-line-options"]], "Common filters": [[6, "common-filters"]], "Complexity and security validators": [[12, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Computed fields": [[6, "computed-fields"]], "Connection failures (attempts parameter)": [[6, "connection-failures-attempts-parameter"]], "Connection pooling": [[6, "connection-pooling"]], "Connection strings (the uri parameter)": [[6, "connection-strings-the-uri-parameter"]], "Contents:": [[17, null]], "Convenience Decorators": [[5, "convenience-decorators"]], "Copy data from one db into another": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, null]], "Custom Action Buttons": [[14, "custom-action-buttons"]], "Custom Field types": [[6, "custom-field-types"]], "Custom columns": [[14, "custom-columns"]], "Custom fixtures": [[5, "custom-fixtures"]], "Custom forms": [[12, "custom-forms"]], "Custom helpers": [[10, "custom-helpers"]], "Custom widgets": [[12, "custom-widgets"]], "Customizing style": [[14, "customizing-style"]], "DAL constructor": [[6, "dal-constructor"]], "DAL introduction": [[6, "dal-introduction"]], "DAL signature": [[6, "dal-signature"]], "DIV": [[10, "div"]], "Data representation": [[6, "data-representation"]], "Database cascades": [[6, "database-cascades"]], "Database folder location": [[6, "database-folder-location"]], "Database quoting and case settings": [[6, "database-quoting-and-case-settings"]], "Database validators": [[12, "database-validators"]], "Date and time validators": [[12, "date-and-time-validators"]], "Debugging py4web with PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Debugging py4web with VScode": [[1, "debugging-py4web-with-vscode"]], "Default migration settings": [[6, "default-migration-settings"]], "Default page layout": [[8, "default-page-layout"]], "Default values with coalesce and coalesce_zero": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Dictionaries and tuples with IS_IN_SET": [[12, "dictionaries-and-tuples-with-is-in-set"]], "Distributed transaction": [[6, "distributed-transaction"]], "Domain-mapped apps": [[4, "domain-mapped-apps"]], "Dynamic Web Pages": [[4, "dynamic-web-pages"]], "EM": [[10, "em"]], "Experiment with the py4web shell": [[6, "experiment-with-the-py4web-shell"]], "Exporting and importing data": [[6, "exporting-and-importing-data"]], "Expressions": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "FORM": [[10, "form"]], "Fetching a Row": [[6, "fetching-a-row"]], "Field constructor": [[6, "field-constructor"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[12, "file-upload-field"]], "First run": [[2, "first-run"]], "Fixing broken migrations": [[6, "fixing-broken-migrations"]], "Fixtures": [[5, null]], "Form structure manipulation": [[12, "form-structure-manipulation"]], "Form validation": [[12, "form-validation"]], "Forms": [[12, null]], "From scratch": [[4, "from-scratch"]], "From web2py to py4web": [[15, null]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Gotchas": [[6, "gotchas"]], "Grid": [[14, null]], "Grids with checkboxes": [[14, "grids-with-checkboxes"]], "Grouping and counting": [[6, "grouping-and-counting"]], "H1, H2, H3, H4, H5, H6": [[10, "h1-h2-h3-h4-h5-h6"]], "HEAD": [[10, "head"]], "HTML": [[10, "html"]], "HTML and XML (one Table at a time)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Help, resources and hints": [[1, null]], "Helpers overview": [[10, "helpers-overview"]], "Hints and tips": [[1, "hints-and-tips"]], "How to contribute": [[1, "how-to-contribute"]], "I": [[10, "i"]], "IMG": [[10, "img"]], "INPUT": [[10, "input"]], "IS_ALPHANUMERIC": [[12, "is-alphanumeric"]], "IS_DATE": [[12, "is-date"]], "IS_DATETIME": [[12, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[12, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[12, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[12, "is-decimal-in-range"]], "IS_EMAIL": [[12, "is-email"]], "IS_EMPTY_OR": [[12, "is-empty-or"]], "IS_EQUAL_TO": [[12, "is-equal-to"]], "IS_EXPR": [[12, "is-expr"]], "IS_FILE": [[12, "is-file"]], "IS_FLOAT_IN_RANGE": [[12, "is-float-in-range"]], "IS_IMAGE": [[12, "is-image"]], "IS_INT_IN_RANGE": [[12, "is-int-in-range"]], "IS_IN_DB": [[12, "is-in-db"]], "IS_IN_DB and Tagging": [[12, "is-in-db-and-tagging"]], "IS_IN_SET": [[12, "is-in-set"]], "IS_IN_SET and Tagging": [[12, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[12, "is-ipaddress"]], "IS_IPV4": [[12, "is-ipv4"]], "IS_IPV6": [[12, "is-ipv6"]], "IS_JSON": [[12, "is-json"]], "IS_LENGTH": [[12, "is-length"]], "IS_LIST_OF": [[12, "is-list-of"]], "IS_LIST_OF_EMAILS": [[12, "is-list-of-emails"]], "IS_LOWER": [[12, "is-lower"]], "IS_MATCH": [[12, "is-match"]], "IS_NOT_EMPTY": [[12, "is-not-empty"]], "IS_NOT_IN_DB": [[12, "is-not-in-db"]], "IS_NULL_OR": [[12, "is-null-or"]], "IS_SAFE": [[12, "is-safe"]], "IS_SLUG": [[12, "is-slug"]], "IS_STRONG": [[12, "is-strong"]], "IS_TIME": [[12, "is-time"]], "IS_UPLOAD_FILENAME": [[12, "is-upload-filename"]], "IS_UPPER": [[12, "is-upper"]], "IS_URL": [[12, "is-url"]], "Indexes": [[6, "indexes"]], "Indices and tables": [[17, "indices-and-tables"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserting and updating from a dictionary": [[6, "inserting-and-updating-from-a-dictionary"]], "Installation and Startup": [[2, null]], "Installing from binaries": [[2, "installing-from-binaries"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Installing from source (globally)": [[2, "installing-from-source-globally"]], "Installing from source (locally)": [[2, "installing-from-source-locally"]], "Internationalization": [[11, null]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[14, "key-features"]], "LABEL": [[10, "label"]], "LDAP": [[13, "ldap"]], "LI": [[10, "li"]], "Lazy Tables": [[6, "lazy-tables"]], "Left outer join": [[6, "left-outer-join"]], "Legacy databases and keyed tables": [[6, "legacy-databases-and-keyed-tables"]], "Logical operators": [[6, "logical-operators"]], "Login into the Dashboard": [[3, "login-into-the-dashboard"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Making a secure connection": [[6, "making-a-secure-connection"]], "Many to many relation": [[6, "many-to-many-relation"]], "Migration control summary": [[6, "migration-control-summary"]], "Migrations": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Model-less applications": [[6, "model-less-applications"]], "More on uploads": [[6, "more-on-uploads"]], "Multiple Tags objects": [[13, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "New style virtual fields (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Note on new DAL and adapters": [[6, "note-on-new-dal-and-adapters"]], "OAuth2 with Discord": [[13, "oauth2-with-discord"]], "OAuth2 with Facebook": [[13, "oauth2-with-facebook"]], "OAuth2 with Google": [[13, "oauth2-with-google"]], "OL": [[10, "ol"]], "OPTION": [[10, "option"]], "Old style virtual fields": [[6, "old-style-virtual-fields"]], "On return values": [[4, "on-return-values"]], "One to many relation": [[6, "one-to-many-relation"]], "Oracle": [[6, "oracle"]], "Other DAL constructor parameters": [[6, "other-dal-constructor-parameters"]], "Other operators": [[6, "other-operators"]], "Other validators": [[12, "other-validators"]], "P": [[10, "p"]], "PAM": [[13, "pam"]], "PRE": [[10, "pre"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Pluralize": [[11, "pluralize"]], "Prerequisites": [[1, "prerequisites"]], "Query, Set, Rows": [[6, "query-set-rows"]], "Range, set and equality validators": [[12, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Record versioning": [[6, "record-versioning"]], "Recursive selects": [[6, "recursive-selects"]], "Reference Fields": [[14, "reference-fields"]], "Rendering rows using represent": [[6, "rendering-rows-using-represent"]], "Replicated databases": [[6, "replicated-databases"]], "Reserved keywords": [[6, "reserved-keywords"]], "Resources": [[1, "resources"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Routes": [[4, "routes"]], "Run-time field and table modification": [[6, "run-time-field-and-table-modification"]], "SCRIPT": [[10, "script"]], "SELECT": [[10, "select"]], "SPAN": [[10, "span"]], "SQLite": [[6, "sqlite"]], "STYLE": [[10, "style"]], "Sample Action Button Class": [[14, "sample-action-button-class"]], "Searching and filtering": [[14, "searching-and-filtering"]], "Self-Reference and aliases": [[6, "self-reference-and-aliases"]], "Sending messages using a background task": [[16, "sending-messages-using-a-background-task"]], "Server-side DOM": [[10, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Setup procedures": [[2, "setup-procedures"]], "Sharing sessions": [[5, "sharing-sessions"]], "Shortcuts": [[6, "shortcuts"]], "Simple conversion examples": [[15, "simple-conversion-examples"]], "Sorted options": [[12, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[12, "special-type-validators"]], "Standard widgets": [[12, "standard-widgets"]], "Static web pages": [[4, "static-web-pages"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Supported platforms and prerequisites": [[2, "supported-platforms-and-prerequisites"]], "TABLE, TR, TD": [[10, "table-tr-td"]], "TAG": [[10, "tag"]], "TBODY": [[10, "tbody"]], "TEXTAREA": [[10, "textarea"]], "TH": [[10, "th"]], "THEAD": [[10, "thead"]], "TITLE": [[10, "title"]], "TT": [[10, "tt"]], "Table constructor": [[6, "table-constructor"]], "Table inheritance": [[6, "table-inheritance"]], "Table methods": [[6, "table-methods"]], "Tagging records": [[6, "tagging-records"]], "Tags and Permissions": [[13, "tags-and-permissions"]], "Template Functions": [[8, "template-functions"]], "Templates": [[4, "templates"]], "Text format validators": [[12, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL fixture": [[5, "the-dal-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Dashboard": [[3, null]], "The Database Abstraction Layer (DAL)": [[6, null]], "The Discord server": [[1, "the-discord-server"]], "The Flash fixture": [[5, "the-flash-fixture"]], "The Form constructor": [[12, "the-form-constructor"]], "The Google group": [[1, "the-google-group"]], "The Grid object": [[14, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[16, "the-q-object"]], "The RestAPI": [[7, null]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[16, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The main Web page": [[3, "the-main-web-page"]], "The request object": [[4, "the-request-object"]], "The scheduler": [[16, "the-scheduler"]], "The sidecar parameter": [[12, "the-sidecar-parameter"]], "The sources on GitHub": [[1, "the-sources-on-github"]], "This manual": [[1, "this-manual"]], "Timing queries": [[6, "timing-queries"]], "Tutorials and video": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[13, "two-factor-authentication"]], "UL": [[10, "ul"]], "URL": [[10, "url"]], "Understanding the design": [[2, "understanding-the-design"]], "Update the translation files": [[11, "update-the-translation-files"]], "Upgrading": [[2, "upgrading"]], "User Impersonation": [[13, "user-impersonation"]], "Using Auth inside actions": [[13, "using-auth-inside-actions"]], "Using DAL without define tables": [[6, "using-dal-without-define-tables"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[10, "using-inject"]], "Using an iterator-based select for lower memory use": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "Using callable parameters": [[14, "using-callable-parameters"]], "Using templates": [[14, "using-templates"]], "Using the DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Using the dashboard app with databases": [[6, "using-the-dashboard-app-with-databases"]], "Validation functions": [[12, "validation-functions"]], "Virtual fields": [[6, "virtual-fields"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "What is py4web?": [[0, null]], "Widgets": [[12, "widgets"]], "XML": [[10, "xml"]], "YATL Template Language": [[8, null]], "YATL helpers": [[10, null]], "_lastsql": [[6, "lastsql"]], "as_dict and as_list": [[6, "as-dict-and-as-list"]], "belongs": [[6, "belongs"]], "block and super": [[8, "block-and-super"]], "cache, cacheable": [[6, "cache-cacheable"]], "call command option": [[2, "call-command-option"]], "callbacks on record insert, delete and update": [[6, "callbacks-on-record-insert-delete-and-update"]], "case": [[6, "case"]], "children": [[10, "children"]], "commit and rollback": [[6, "commit-and-rollback"]], "count, isempty, delete, update": [[6, "count-isempty-delete-update"]], "def...return": [[8, "def-return"]], "define_table signature": [[6, "define-table-signature"]], "distinct": [[6, "distinct"]], "drop": [[6, "drop"]], "executesql": [[6, "executesql"]], "extend and include": [[8, "extend-and-include"]], "filter_in and filter_out": [[6, "filter-in-and-filter-out"]], "find": [[10, "find"]], "find, exclude, sort": [[6, "find-exclude-sort"]], "first and last": [[6, "first-and-last"]], "for...in": [[8, "for-in"]], "format: Record representation": [[6, "format-record-representation"]], "groupby, having": [[6, "groupby-having"]], "htmx": [[16, "htmx"]], "htmx usage in Form": [[16, "htmx-usage-in-form"]], "htmx usage in Grid": [[16, "htmx-usage-in-grid"]], "id: Notes about the primary key": [[6, "id-notes-about-the-primary-key"]], "if...elif...else": [[8, "if-elif-else"]], "insert": [[6, "insert"]], "join, left": [[6, "join-left"]], "like, ilike, regexp, startswith, endswith, contains, upper, lower": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "limitby": [[6, "limitby"]], "list: and contains": [[6, "list-type-and-contains"]], "migrate, fake_migrate": [[6, "migrate-fake-migrate"]], "new_app command option": [[2, "new-app-command-option"]], "on_define": [[6, "on-define"]], "orderby": [[6, "orderby"]], "orderby, groupby, limitby, distinct, having, orderby_on_limitby, join, left, cache": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "plural and singular": [[6, "plural-and-singular"]], "polymodel": [[6, "polymodel"]], "primarykey: Support for legacy tables": [[6, "primarykey-support-for-legacy-tables"]], "py4web and asyncio": [[16, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: the reference Manual": [[17, null]], "redefine": [[6, "redefine"]], "rname: Real name": [[6, "rname-real-name"]], "run command option": [[2, "run-command-option"]], "select command": [[6, "select-command"]], "sequence_name": [[6, "sequence-name"]], "set_password command option": [[2, "set-password-command-option"]], "setup command option": [[2, "setup-command-option"]], "shell command option": [[2, "shell-command-option"]], "string.format": [[16, "string-format"]], "sum, avg, min, max and len": [[6, "sum-avg-min-max-and-len"]], "table_class": [[6, "table-class"]], "trigger_name": [[6, "trigger-name"]], "try...except...else...finally": [[8, "try-except-else-finally"]], "two_factor_required": [[13, "two-factor-required"]], "two_factor_send": [[13, "two-factor-send"]], "two_factor_tries": [[13, "two-factor-tries"]], "two_factor_validate": [[13, "two-factor-validate"]], "update_or_insert": [[6, "update-or-insert"]], "update_record": [[6, "update-record"]], "utils.js": [[16, "utils-js"]], "validate_and_insert, validate_and_update": [[6, "validate-and-insert-validate-and-update"]], "version command option": [[2, "version-command-option"]], "while": [[8, "while"]], "year, month, day, hour, minutes, seconds": [[6, "year-month-day-hour-minutes-seconds"]], "\u201cAccessing OS files\u201d example": [[15, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[15, "form-and-flash-example"]], "\u201cHello world\u201d example": [[15, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[15, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[15, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[15, "returning-args-example"]], "\u201cReturning variables\u201d example": [[15, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[15, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[15, "view-example"]], "\u201cauth\u201d example": [[15, "auth-example"]], "\u201cgrid\u201d example": [[15, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-1", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-1.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "0": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "00": 7, "01": 7, "02": [6, 12], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "08": 12, "0x4e86": 12, "0x7fa533ff7640": 10, "1": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16], "10": [2, 6, 7, 8, 10, 11, 12, 13, 16], "100": [2, 6, 7, 8, 12, 16], "1000": [5, 6, 12, 16], "1000m": 16, "100px": 16, "1024": 12, "1048576": 12, "10px": 14, "11": [6, 12], "111111": 16, "11211": 5, "12": 12, "120": 6, "123": [10, 12], "123218": 7, "123456": 12, "125": 6, "127": [2, 3, 4, 5, 12, 14], "13": [6, 12], "132635": 7, "14": [8, 12, 14], "15": [6, 12, 13, 14], "16": 12, "168": 12, "169": 12, "16px": 8, "172": [6, 12], "174": 6, "178974": 7, "19": [6, 7, 12], "192": [6, 12], "1963": 12, "198": 6, "199": 12, "19t05": 7, "1e100": 6, "1kb": 12, "1l": 6, "1mb": 12, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 10, 11, 12, 13, 15, 16], "20": [2, 7, 11, 12], "200": [7, 12, 15, 16], "2001": 12, "2002": 12, "2005": 6, "2007": 0, "2008": 12, "2009": 12, "200m": 16, "200x200": 12, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 13, "227": 6, "239": 6, "2396": 12, "24": 12, "254": 12, "255": 12, "256": 6, "2616": 12, "28": 12, "2em": 16, "2px": 16, "3": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "30": [2, 6, 8, 12], "301": 15, "309903": 7, "31": [6, 7, 12], "32": [6, 12], "322494": 7, "32768": 6, "33": [6, 12], "34": 7, "3490": 12, "3492": 12, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 16, "4": [2, 5, 6, 7, 8, 12, 14], "40": [2, 10, 16], "400": [5, 15], "401": 13, "404": [5, 13], "405515": 7, "43": 6, "45": [8, 12], "451907": 7, "453020": 7, "456": 12, "466030": 7, "4e": 12, "5": [5, 6, 7, 8, 11, 12, 13, 14, 16], "50": [2, 7], "500": 16, "500m": 16, "512": 6, "53": 12, "54": 8, "559918": 7, "58": 8, "59": 12, "6": [5, 6, 7, 12, 13, 15, 16], "60": [5, 6], "63": [6, 12], "6379": 5, "64": [6, 8, 16], "65": 6, "6to4": 12, "7": [2, 7, 8, 12, 15], "70": 7, "74": 6, "75": 7, "8": [2, 6, 7, 12], "80": [4, 7, 12], "8000": [2, 3, 4, 12, 14], "86": 12, "8601": 7, "8em": [8, 16], "9": [6, 7, 12, 14, 15], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [2, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17], "AND": 6, "AS": 6, "And": [1, 4, 5, 6, 13, 14, 16], "As": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "At": [6, 8], "Be": [5, 6, 8], "But": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16], "By": [2, 4, 5, 6, 12, 13, 15], "For": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "IF": 6, "IN": 6, "INTO": 6, "IT": 11, "If": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "In": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "It": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 16], "Its": [0, 2, 6, 12, 14], "NO": 6, "NOT": [6, 12, 13], "No": [2, 6], "Not": 6, "ON": [6, 12], "OR": [6, 10, 12, 14], "Of": 8, "On": [2, 6, 13, 16], "One": [2, 4, 12, 13], "Or": [5, 12], "Such": 4, "That": [4, 6, 15], "The": [0, 2, 8, 10, 11, 13, 15, 17], "Their": [5, 6, 15], "Then": [4, 5, 6, 10, 12, 13, 14, 16], "There": [1, 2, 5, 6, 8, 12, 13, 14, 16], "These": [0, 5, 6, 10, 12, 14], "To": [2, 4, 6, 8, 10, 11, 12, 13, 14, 16], "With": [2, 6, 12, 13, 16], "_": [2, 5, 12, 16], "__": 4, "__dict__": 5, "__file__": [5, 7, 14], "__init__": [2, 4, 5, 6, 7, 13, 14, 15, 16], "__prerequisite__": 5, "__prerequisites__": [5, 13], "__str__": [5, 8, 10], "_action": [10, 14], "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_upd": 6, "_alt": 10, "_always_": 13, "_and": 12, "_autocomplet": 16, "_autocomplete_search_field": 16, "_before_": 6, "_before_delet": 6, "_before_insert": 6, "_before_upd": 6, "_bgcolor": 10, "_c": 10, "_check": 10, "_class": [5, 10, 12, 16], "_col": 10, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_data": 10, "_db": 6, "_dbname": 6, "_default": [2, 4], "_delet": 6, "_disabl": 10, "_document": [1, 3], "_enable_record_vers": 6, "_extra": 6, "_format": 6, "_href": [5, 8, 10, 12, 14], "_hx": 16, "_id": [6, 10, 12, 16], "_insert": 6, "_listifi": 6, "_method": [10, 14], "_name": [6, 10, 12, 14, 16], "_next_url": 13, "_nonreserv": 6, "_onclick": 12, "_placehold": [12, 16], "_row": 10, "_scaffold": [5, 8, 10, 12, 13, 14, 15, 17], "_search": 16, "_select": [6, 10], "_sesson": 5, "_src": 10, "_style": [12, 16], "_tabl": [6, 12, 16], "_tablenam": 6, "_tag_": 13, "_time": 6, "_titl": [12, 16], "_type": [6, 10, 12, 14, 16], "_u": 10, "_updat": 6, "_uri": 6, "_valu": [10, 12, 14, 16], "_xmln": 10, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaaa": 8, "ab": [10, 12], "abbrevi": 12, "abc": [10, 12], "abil": 15, "abl": [1, 2, 5, 6, 12], "abort": [4, 6], "about": [0, 7, 13, 14, 15, 16, 17], "abov": [4, 5, 6, 7, 8, 12, 13, 14, 16], "abracadabra": 2, "absent": 2, "absolut": [2, 6, 15], "abspath": 4, "abstract": [5, 15, 17], "accdesc": 6, "accept": [1, 2, 4, 5, 6, 10, 11, 12, 13, 15, 16], "access": [0, 2, 4, 5, 6, 10, 12, 13, 16], "accnum": 6, "accomplish": [5, 6, 13, 15], "accord": [6, 8], "accordingli": 8, "account": [2, 6], "acctyp": 6, "achiev": [5, 6, 15], "acknowledg": 17, "acquir": 6, "across": [6, 8], "act": [6, 10, 12], "action": [4, 5, 6, 10, 12, 15, 16, 17], "action_button": 14, "action_token": [5, 13], "activ": [2, 6, 13], "actual": [2, 5, 6, 8, 14], "ad": [0, 2, 5, 11, 12, 13, 14, 16], "adapt": [13, 16], "adapter_arg": 6, "add": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "addit": [2, 4, 5, 6, 7, 8, 12, 14], "addition": 14, "additional_class": 14, "additional_styl": 14, "address": [2, 6, 12, 13], "admin": [0, 6, 15], "administr": 2, "advanc": [2, 13, 14, 17], "advantag": [2, 6, 8, 16], "advis": [6, 14], "affect": 6, "after": [2, 3, 5, 6, 8, 12, 13, 14, 16], "after_connect": 6, "after_delet": 6, "after_insert": 6, "after_upd": 6, "aftermath": 6, "ag": 6, "again": [2, 3, 4, 5, 6, 12, 13, 14, 16], "against": [6, 7, 10, 12, 13, 14], "aggreg": 6, "agnost": 4, "aid": 6, "aim": 0, "ajax": [8, 14, 16], "aka": 1, "alchemi": 6, "alert": [5, 8, 10, 12, 15], "alex": 6, "alfaro": [0, 1], "alg": 12, "algorithm": [5, 12], "alia": [6, 12], "aliv": 16, "all": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "alloc": 12, "allow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "allowed_act": 13, "allowed_attribut": 10, "allowed_overrid": 12, "allowed_pattern": 7, "allowed_schem": 12, "almost": 5, "along": [2, 4, 10, 12, 16], "alphabet": 12, "alphanumer": 12, "alreadi": [2, 3, 4, 5, 6, 10, 12, 13, 14], "also": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "alt": 10, "alter": 6, "altern": [2, 5, 6, 8, 12, 16], "although": [2, 6, 8, 12], "alwai": [0, 2, 4, 5, 6, 8, 12, 16], "am": [12, 16], "amazon": 6, "ambigu": [4, 6], "among": [6, 12], "amount": 6, "an": [0, 1, 2, 3, 5, 8, 10, 12, 13, 14, 15, 16, 17], "analogi": 15, "ancestor": 10, "anchor": 16, "andrew": 1, "angl": 8, "angular": [0, 16], "ani": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "annoi": 2, "anonym": [6, 8, 12], "anoth": [4, 5, 8, 11, 12, 13], "anotherpath": 5, "ansi": 6, "answer": 1, "anyhow": 2, "anyobj": 6, "anyth": 4, "anywai": 6, "anywher": [8, 15], "api": [0, 6, 7, 10, 12, 13, 15, 16], "api_kei": 16, "api_vers": 7, "app": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "app1": 5, "app1_sess": 5, "app2": 5, "app_fold": 15, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appar": 6, "appear": [6, 12, 14], "append": [5, 6, 10, 12, 14, 16], "append_id": 14, "appl": 12, "appli": [0, 5, 6, 12, 13, 14, 16], "applic": [0, 2, 3, 4, 5, 8, 12, 13, 14, 15, 16], "appnam": [2, 4, 5, 13, 15], "appname_sess": 5, "approach": [6, 15], "appropri": [6, 12], "approv": 13, "apps_fold": 2, "apt": 13, "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "arbitrari": [4, 6, 13], "archiv": 6, "archive_db": 6, "archive_nam": 6, "aren": 6, "arg": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "arithmet": 12, "around": [1, 6, 15], "arrai": [10, 16], "arrang": [6, 12], "arriv": [0, 6], "as_ordered_dict": 6, "ascii": 12, "asid": [6, 16], "ask": [2, 5, 6, 13, 16], "aspect": 4, "assert": [6, 16], "asset": 2, "assign": [6, 8, 12, 13, 15, 16], "assist": 1, "associ": [6, 11, 12, 13], "assum": [2, 5, 6, 7, 11, 12, 15], "async": 16, "asynchron": 16, "asyncio": 17, "attach": [5, 6, 13, 15], "attack": [5, 10], "attempt": [12, 13], "attent": [4, 6], "attr": [12, 14, 16], "attribut": [4, 5, 10, 12, 14, 15, 16], "attributes_plugin": 16, "attributespluginhtmx": 16, "aug": 12, "august": 12, "auth": [0, 2, 4, 6, 8, 10, 16, 17], "auth_group": 13, "auth_plugin": 13, "auth_us": [5, 6, 13, 16], "auth_user_tag_group": [6, 13], "auth_user_tagged_group": 13, "authent": [5, 6, 14, 17], "author": [5, 6, 7, 17], "auto": [6, 14], "auto_import": 6, "auto_process": [14, 16], "autocomplete_queri": 16, "autodelet": 6, "autogener": 6, "automat": [2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "avail": [1, 2, 6, 8, 10, 13, 15, 16], "averag": 6, "avoid": [0, 1, 2, 5, 6, 8, 12], "awai": 6, "awar": 6, "awesom": [8, 14], "axel": 0, "axolotl": 0, "b": [5, 6, 8, 10, 12, 15, 16], "back": [5, 6, 12], "backend": [4, 6], "background": [2, 4, 12, 17], "backport": 6, "backslash": 4, "backup": [2, 6, 12], "backward": [0, 6, 12], "bad_dai": 6, "bail": 6, "banana": 12, "bar": [8, 14], "barrier": 0, "base": [0, 2, 3, 4, 5, 7, 8, 12, 13, 14, 15, 16], "base64": [6, 8, 16], "base_dn": 13, "baseadapt": 6, "bash": 2, "basic": [0, 1, 2, 5, 6, 16, 17], "bat": 2, "batman": [7, 12, 14], "battl": 0, "beaslei": 0, "becaus": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 16], "becom": [12, 16], "bed": 11, "been": [0, 2, 5, 6, 8, 12, 13], "befor": [1, 2, 5, 6, 8, 10, 12, 13, 14], "before_delet": 6, "before_insert": 6, "before_upd": 6, "begin": [8, 12, 13, 14], "beginn": 2, "behav": [6, 14], "behavior": [4, 5, 6, 10, 12, 15, 16], "behaviour": [2, 6, 14], "being": [1, 4, 5, 6, 7, 8, 12, 16], "believ": [0, 5], "belong": [13, 15], "below": [5, 6, 7, 12, 14], "benefit": [6, 16], "best": [1, 2, 5, 6, 11, 14], "better": [0, 1, 2, 4, 6, 14, 15, 16], "between": [5, 6, 10, 12, 15], "beyond": 12, "bgcolor": 10, "big": [6, 15], "bigint": 6, "bigint_id": 6, "bin": [1, 2], "binari": 6, "bind": 16, "birthplac": 6, "bit": 12, "bitbucket": 1, "black": [8, 12], "blank": [12, 14], "blink": 16, "blob": 6, "block": [4, 10, 13, 16], "blockquot": 10, "blog": [1, 6, 10], "blog_post": 6, "blue": [4, 6, 12, 15], "bmp": 12, "boat": 6, "bob": 6, "bodi": [4, 8, 13, 14, 16], "boilerpl": 5, "bold": 10, "book": [1, 6], "boolean": [6, 14], "boost": [6, 8], "bootstrap": 14, "border": 16, "born": 6, "botaro": 0, "both": [1, 2, 4, 5, 6, 8, 12, 15], "bottl": [0, 4, 5, 8, 15], "bottle_app": 2, "bottleneck": 16, "bottlepi": [4, 5], "bottom": 12, "boundari": 12, "box": [0, 6, 12], "br": [8, 10], "bracket": [0, 8, 12], "branch": [1, 2], "break": [2, 6, 12], "breez": 1, "briefli": 2, "broke": 0, "broken": [0, 12], "brows": [2, 3, 14, 16], "browser": [1, 2, 3, 5, 7, 8, 14, 16], "bruce": [7, 14], "bsd": 1, "buffer": [4, 6], "bug": [1, 3, 6], "build": [1, 2, 4, 5, 6, 10, 12, 14, 16], "builder": 16, "built": [0, 1, 4, 6, 8, 12, 14, 16, 17], "bulk_insert": 6, "bulletproof": 6, "bulma": [12, 14, 16], "bunch": 2, "buse": 16, "button": [3, 4, 5, 10, 12, 16, 17], "bypass": [12, 13, 14], "byte": [6, 12], "bytecod": 8, "c": [1, 2, 3, 5, 6, 8, 10, 12, 15], "ca": 12, "cach": [0, 2, 4, 12, 17], "cache_db_select": 6, "calcul": 6, "calendar": 14, "call": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "callabl": [10, 12], "callback": [12, 13, 16], "callback_url": 13, "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "cancel": [12, 16], "cancel_attr": 16, "cane": [11, 16], "cani": [11, 16], "cannot": [2, 5, 6, 8, 10, 12, 16], "capabl": [0, 14, 16], "capit": 16, "captur": 16, "car": 6, "card": 6, "care": [5, 6, 8, 15, 16], "carl": 6, "carri": 15, "carrol": 0, "cart": 5, "case": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 15, 16], "case_sensit": 6, "cassio": 0, "catch": 6, "caus": [6, 12], "caveat": [6, 8, 15, 17], "cd": 2, "cdnj": [8, 14], "celeri": 17, "center": [5, 8], "centuri": 12, "ceo": [7, 14], "certain": [6, 8, 12, 14], "certif": 2, "cf": 4, "cgi": 12, "chair": 6, "challeng": 13, "chang": [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "change_email": 13, "change_password": [8, 13], "changed_fil": 4, "channel": 1, "chapter": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15], "char": [6, 13], "charact": [4, 6, 10, 12], "charg": [2, 15], "chat": 1, "check": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "check_": 16, "check_reserv": 6, "checkbox": [8, 10, 17], "checkboxwidget": 12, "cherri": 12, "chicago": 6, "children": 14, "choic": [1, 4, 12, 14], "choos": [1, 6, 12, 13], "choosen": 6, "chose": 4, "chosen": 6, "chrome": [3, 16], "circular": 6, "circumst": 5, "cit0801": 7, "cit0802": 7, "cit1601": 16, "cite": [10, 12], "clark": [7, 14], "clash": 12, "class": [5, 6, 8, 10, 12, 13, 15, 16], "class_inner_except": 16, "class_styl": 14, "claudia": 6, "claus": [6, 8], "clean": [1, 10], "cleaner": 5, "cleanup": 0, "clear": [6, 12], "clearli": [6, 16], "clever": 12, "cli": [1, 2], "click": [3, 6, 10, 12, 14, 16], "clickabl": 14, "client": [0, 7, 12, 13, 16], "client_id": 13, "client_ip": 5, "client_secret": 13, "clientsid": 16, "clock": 12, "clone": [2, 4, 6, 16], "close": [5, 6, 8, 10], "closer": 6, "cloudflar": [8, 14], "cmd": 2, "cn": 13, "co": [6, 12], "coa": 6, "code": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "col": 10, "collaps": [7, 10], "collat": 6, "collect": [0, 2, 15], "colnam": 6, "colon": 8, "color": [4, 6, 8, 10, 12, 16], "colspan": 10, "column": [6, 17], "com": [0, 1, 3, 4, 5, 8, 10, 13, 14, 16], "combin": [5, 10, 12, 14], "come": [0, 4, 5, 6, 8, 12, 13, 14, 15, 16], "comma": [2, 6, 16], "command": [3, 4, 8, 10, 17], "comment": [6, 10], "commit": [4, 5, 7, 14, 15, 16], "common": [2, 3, 4, 5, 8, 12, 13, 15, 16], "common_filt": 6, "commun": [0, 5, 6], "compact": 6, "compani": 14, "compar": [0, 6, 13, 15], "comparison": [6, 12, 13], "compat": [0, 1, 6, 10, 12], "competitor": 0, "compil": [4, 8, 10, 12], "compiled_css": 4, "complain": 6, "complet": [0, 6, 8, 10, 12, 13, 16], "complex": [1, 2, 4, 5, 6, 8, 10, 13, 15, 16], "compliant": [6, 16], "complic": 5, "compon": [0, 3, 4, 5, 8, 10, 12, 13, 16], "component_1": 16, "compos": [2, 5], "compound": 10, "compress": [3, 4], "compris": 3, "compromis": 0, "comput": [1, 16, 17], "concaten": [6, 10], "conceiv": 6, "concept": [0, 13], "concern": 6, "concurr": [0, 2, 6, 12, 16], "cond": 5, "condit": [6, 8, 12, 13, 17], "condition": 6, "config": [2, 4], "configur": [1, 2, 4, 5, 6, 12, 13, 15, 16], "configuraiton": 4, "confirm": [2, 12, 13, 14, 16], "conflict": [0, 2, 4, 6], "confus": 6, "conjunct": 6, "conn": 5, "connect": [3, 4, 5, 12, 15], "connectionpool": 6, "consequ": [6, 12, 16], "consid": [5, 6, 8, 10, 12, 14, 15, 16], "consider": 6, "consist": [5, 6, 8, 14, 15], "consol": [2, 10, 13, 16], "constant": 12, "constrain": 15, "constraint": [0, 6], "construct": [4, 6], "constructor": [5, 10, 13, 17], "consult": 6, "contain": [0, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "contect": 8, "content": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "content_typ": 16, "context": [3, 5, 6, 8, 13], "contextlib": 6, "continu": [6, 8, 16], "contribut": [0, 17], "control": [2, 4, 5, 8, 10, 12, 13, 14, 15, 16], "conveni": [6, 17], "convent": [4, 6, 8, 12, 15], "convers": [12, 17], "convert": [1, 4, 6, 10, 12], "cooki": [0, 4, 6, 12, 16], "copi": [1, 2, 3, 8, 10, 14, 17], "copyfileobj": 6, "core": [1, 2, 4, 5], "corei": 1, "corner": 14, "cornerston": 0, "correct": [1, 4, 6, 13], "correct_cod": 13, "correctli": [4, 12], "correspond": [2, 3, 4, 6, 10, 11, 13, 14, 15], "corrupt": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 10, 12, 13, 15], "count": [5, 7, 13, 14, 16], "counter": [5, 6, 16], "counterpart": 4, "coupl": [14, 16], "cours": [1, 8], "cover": 4, "cp": 2, "creat": [0, 1, 2, 3, 5, 6, 8, 10, 12, 13, 14, 15, 16, 17], "create_form": 12, "create_th": 12, "created_bi": 6, "created_on": 6, "creation": [2, 6], "creativ": [12, 13], "credential_decod": 6, "criteria": [6, 12], "critic": 2, "cross": [5, 6, 10], "crossorigin": 8, "crt": [2, 6], "crud": [3, 12, 16], "cruz": 1, "crypt": 2, "csrf": [5, 12], "csrf_protect": 12, "csrf_session": 12, "css": [1, 4, 5, 8, 10, 12, 13, 14, 16], "csv": 15, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "current": [2, 5, 6, 8, 10, 13, 14, 15, 16], "current_record": 6, "cursor": [6, 16], "curt": 6, "custom": [0, 2, 4, 8, 13, 15, 16, 17], "custom_check": 12, "custom_qualifi": 6, "customiz": [0, 12, 14], "cx_oracl": 6, "cyclic": 6, "czech": 11, "d": [2, 7, 10, 12], "daemon": [2, 16], "dai": 12, "dal": [2, 4, 7, 12, 13, 14, 16, 17], "dan": 0, "dancer": 13, "danger": 15, "dash": 12, "dashboard": [0, 2, 4, 5, 8, 12, 16, 17], "dashboard_mod": 2, "data": [0, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "data_label": 16, "databas": [0, 1, 3, 4, 7, 13, 14, 15, 16, 17], "datalist": 16, "date": [2, 6, 14], "datetim": [4, 5, 6, 7, 12, 16], "datetimewidget": 12, "daunt": 1, "db": [2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_folder": [5, 7, 14], "db_name": 6, "db_uid": 6, "dbadmin": 4, "dbio": 12, "dbo": 6, "dbset": 12, "dbstore": 5, "dc": 13, "dd": 12, "de": [0, 1, 6, 11], "deal": [1, 6, 16], "dealfaro": 0, "debounc": 16, "debug": [2, 4, 5, 6, 8], "debugg": [1, 15], "decid": [6, 12, 13, 14], "decim": [4, 6, 12], "declar": [0, 4, 5, 6], "decod": 6, "decode_credenti": 6, "decor": [1, 4, 6, 15, 17], "decres": 13, "dedic": [1, 4, 5, 10, 15], "def": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "default": [0, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "defer": [6, 16], "defin": [2, 4, 5, 8, 12, 13, 14, 15, 16], "define_t": [5, 7, 12, 13, 14, 15], "definit": [6, 7, 12, 14, 15], "degre": 6, "del": [6, 10], "delai": [6, 16], "deleg": 6, "delet": [2, 4, 7, 12, 14, 16], "delete_record": 6, "delimit": [0, 5, 6, 8, 15], "deliv": 16, "delta": 16, "demand": 6, "demo": [1, 2, 16], "deni": 7, "denorm": [6, 7], "depend": [0, 2, 3, 4, 5, 6, 8, 12, 13, 14, 15], "deploi": 2, "deploy": 1, "deployment_tool": 2, "deprec": [6, 12, 16], "deriv": [6, 12], "desc": 14, "descend": 10, "describ": [2, 3, 4, 5, 6, 12], "descript": [6, 7, 12, 13, 14], "design": [0, 4, 6, 8, 13, 16, 17], "desir": [5, 8, 12, 13], "dest": [4, 6], "detail": [0, 1, 2, 5, 6, 7, 8, 10, 12, 14, 16], "detail_field": 12, "determin": [4, 5, 6, 8, 11, 12, 13, 14], "determinist": 5, "dev": 13, "develop": [0, 1, 4, 5, 6, 13, 14, 15, 16], "development_tool": 2, "devic": 8, "di": [0, 5], "diagram": 7, "dialect": 6, "dict": [4, 5, 6, 11, 12, 14, 15, 16], "dictionari": [4, 5, 10, 11, 15], "did": [0, 4, 6, 16], "differ": [0, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16], "difficult": [2, 16], "digit": [4, 6, 12, 13], "dimens": 12, "dir": [2, 12, 16], "direct": [2, 4, 5, 6, 8, 12], "directli": [1, 2, 4, 6, 7, 8, 10, 12, 13, 14, 16], "directori": 13, "dirnam": [5, 7, 14], "disabl": [6, 7, 10, 12, 14], "disallow": [6, 12], "discard": 6, "discord_client_id": 13, "discord_client_secret": 13, "discount": 6, "discounted_tot": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discov": [11, 13], "discoveri": 2, "discrimin": 13, "discuss": [1, 3, 6, 8, 10, 12], "disk": 5, "dismiss": [5, 15], "displai": [3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "distinct": [8, 12], "distributed_transaction_commit": 6, "ditch": 0, "div": [4, 5, 8, 12, 14, 15, 16], "divis": [8, 10, 12], "divmod": 6, "django": [0, 1, 6, 15], "do": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "do_connect": 6, "doc": [1, 16], "dockerfil": 2, "doctor": 6, "doctyp": [8, 14], "document": [3, 5, 6, 8, 10, 12, 16], "doe": [0, 2, 5, 6, 8, 12, 13, 14, 15, 16], "doesn": [5, 6, 14], "dog": [11, 12, 16], "doh": 12, "dom": [8, 17], "domain": [12, 13, 17], "don": [1, 2, 3, 4, 6, 8, 12, 13, 14], "done": [2, 4, 5, 6, 8, 12, 14, 15], "dot": 12, "doubl": [2, 6, 8], "doubt": 14, "down": [6, 12, 16], "downfal": 14, "download": [2, 12], "download_url": 12, "downsid": [6, 15], "dramat": 6, "driven": 0, "driver": 6, "driver_arg": 6, "drop": 12, "dropdown": [12, 14, 16], "dsn": 6, "due": [6, 7, 12], "dummi": [6, 8], "dummyrespons": 8, "dump": [5, 6, 16], "dumpfil": 6, "duplic": 6, "durabl": 7, "dure": [6, 14], "dynam": [6, 7, 8, 10, 12, 13, 17], "e": [2, 4, 5, 6, 7, 8, 10, 12, 13, 16], "each": [2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "earli": [5, 6], "earlier": [13, 16], "easi": [0, 5, 6, 8, 10, 12], "easier": [0, 6, 7, 8], "easiest": [6, 13], "easili": [4, 5, 6, 8, 10, 12, 14], "ebook": 1, "echo": 4, "ecosystem": 16, "edg": 16, "edit": [0, 2, 3, 4, 8, 10, 12, 13, 14, 15, 16], "edit_sidecar": 16, "editor": [1, 8], "educ": 2, "effect": [3, 5, 6, 12], "effici": [0, 1, 5, 6, 15], "effort": 1, "efg": 10, "either": [6, 10, 12], "el": 10, "element": [6, 8, 10, 12, 14, 16], "els": [2, 5, 6, 12, 13, 14, 15, 16], "elt": 16, "emac": 8, "email": [2, 5, 8, 12, 13, 15, 16], "emails_onvalid": 12, "emb": 10, "embed": [5, 8, 12], "ember": 12, "emerg": 16, "emphas": 10, "employe": [5, 14], "empti": [2, 4, 6, 12, 16], "empty_regex": 12, "en": [5, 7, 16], "enabl": [1, 5, 6, 7, 10, 13, 15, 16], "enable_record_vers": 6, "encapsul": [8, 10], "enclos": [6, 8], "encod": [5, 6, 12, 16], "encrypt": [0, 2, 5], "end": [4, 6, 8, 10, 12, 13, 14, 15, 16], "endpoint": [13, 16], "enforc": [5, 6, 12, 15], "engin": [6, 12], "english": 5, "enhanc": 6, "enough": [12, 13, 14], "enqueu": 16, "enqueue_run": 16, "ensur": [4, 6, 12], "enter": [4, 5, 10, 12, 13], "enterpris": [1, 13], "entir": [4, 6, 8, 15, 16], "entiti": 6, "entity_quot": 6, "entri": [0, 6, 7, 11, 12, 14, 15], "entropi": 12, "env": [1, 15], "envelop": 16, "environ": [0, 1, 4, 5, 6, 15], "epub": 1, "eq": 7, "equal": [6, 7, 10, 13, 16], "equip": 5, "equival": [4, 5, 6, 10, 12, 15], "errlog": 5, "error": [1, 2, 3, 5, 6, 7, 8, 10, 12, 15, 16], "error_messag": 12, "errorlog": 2, "escap": [6, 8, 10], "especi": [0, 2, 4, 5, 6, 12, 13], "esprima": 4, "establish": [6, 15], "etc": [4, 5, 6, 7, 11, 15], "eval": 16, "evalu": [5, 6, 7, 8, 12, 16], "even": [1, 4, 5, 6, 8, 10, 12, 14, 15, 16], "event": [2, 6, 16], "event_tim": 6, "eventu": 5, "ever": 6, "everi": [0, 2, 4, 5, 6, 13, 14, 15, 16], "everyon": [0, 1], "everyth": [2, 15, 16], "evolut": 0, "ex": 2, "exact": 15, "exactli": [5, 6, 8], "exampl": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 17], "excel": [1, 14], "except": [2, 4, 5, 6, 10, 12, 13, 16], "excerpt": 8, "exclud": 12, "exclus": [0, 5, 6, 12, 13], "execut": [1, 2, 5, 6, 8, 10, 12, 15, 16], "exercis": [5, 13], "exist": [2, 5, 6, 12, 13, 14, 16], "exit": [2, 5], "exp": [4, 6], "expand": [1, 3], "expect": [2, 4, 5, 6, 10, 12, 15], "experi": [1, 12, 13], "experienc": 0, "experiment": [2, 5], "expir": [5, 6], "explain": [4, 5, 6, 12, 14], "explanatori": 6, "explicit": [0, 2, 4, 5, 6, 12, 13], "explicitli": [0, 2, 5, 6, 8, 10, 12, 16], "explict": 6, "explor": 3, "export": 17, "export_to_csv_fil": 6, "expos": [0, 3, 4, 5, 6, 7, 13], "express": [4, 7, 8, 10, 11, 12, 14, 16], "extend": [0, 5, 6, 12, 13, 15, 16], "extens": [3, 6, 12, 15], "extern": [2, 4, 6, 13], "extra": [5, 6, 12, 13], "extra_field": 5, "extract": [6, 12, 16], "f": [6, 13, 14, 15, 16], "fa": 14, "face": [1, 6], "facebook": [0, 5], "facilit": 4, "fact": [4, 5, 6, 15], "factori": [5, 6, 10], "fail": [3, 6, 8, 12, 13, 16], "failur": [4, 12, 16], "fake": 6, "fake_migrate_al": 6, "fall": 12, "fals": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "famou": [1, 6], "fanci": 16, "far": [6, 16], "fast": [0, 4, 16], "faster": [0, 6, 8, 15], "father": 6, "father_id": 6, "favorite_color": 5, "fb00": 12, "fdb": 6, "fe80": 12, "feasibl": [2, 12], "featur": [0, 2, 4, 7, 8, 15, 17], "februari": 5, "feed": 6, "fetch": [15, 16], "fetchon": 6, "few": [6, 8, 13, 16], "ff00": 12, "fid": 6, "field": [2, 4, 5, 7, 10, 13, 15, 16, 17], "field1": 6, "field2": 6, "field3": 6, "field_id": 14, "fieldnam": [6, 16], "fieldstorag": 12, "fifth": 14, "file": [0, 1, 2, 3, 5, 6, 8, 10, 13, 14, 16, 17], "file_cont": [6, 16], "file_nam": [6, 16], "file_path": 15, "filenam": [2, 4, 5, 6, 12], "filep": 4, "filepath": 4, "filesystem": [0, 4, 5, 6], "fileuploadwidget": 12, "fill": [12, 16], "filter": [2, 4, 7, 12, 13], "filter_in": 12, "filter_out": 14, "final": [1, 2, 4, 6, 11, 13, 14], "find": [1, 2, 4, 8, 11, 12, 13, 14, 16], "find_by_tag": 13, "find_match": 11, "findal": 12, "fine": [2, 13, 14], "fire": 6, "firebird": 6, "firebird_embed": 6, "firebirdadapt": 6, "firebirdembed": 6, "firebirdembeddedadapt": 6, "firefox": [3, 16], "firfox": 16, "first": [0, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "first_nam": [4, 5, 13, 14], "first_onli": 10, "first_row": 6, "first_row_dict": 6, "fist": 12, "fit": 12, "five": 6, "fix": [5, 15], "fixtur": [0, 2, 4, 6, 10, 13, 15, 17], "fk_field": 16, "fk_tabl": 16, "fkdaog": 8, "flag": 12, "flash": [8, 12, 16, 17], "flask": [0, 15], "flexibl": [0, 6, 13, 14, 16], "flight": 7, "float": [4, 12], "flow": 13, "fn": 2, "focu": 16, "fold": 6, "folder": [1, 2, 3, 4, 5, 7, 11, 12, 14, 15], "follow": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "font": [8, 12, 14], "foo": 14, "foot": 13, "footer": [8, 10], "forbid": 12, "forbidden": 12, "forc": [2, 5, 6, 12, 13], "foreground": 12, "foreign": [1, 14], "foreign_key_check": 6, "forgeri": 5, "forget": [6, 14], "form": [0, 4, 5, 6, 7, 11, 13, 14, 17], "form_bas": 12, "form_custom_widget": 12, "form_exampl": 12, "form_minim": 12, "form_nam": 12, "form_widget": 12, "format": [4, 5, 7, 10, 11, 13, 14], "formatt": 16, "formdata": 7, "former": 6, "formstyl": [12, 14, 16], "formstylebootstrap4": 12, "formstylebulma": [12, 14, 16], "formstyledefault": [12, 14], "formstylefactori": 16, "forum": 3, "forward": [1, 3], "found": [2, 5, 6, 12], "four": [2, 6], "fourth": 12, "fp": 5, "fr": 11, "framework": [0, 1, 2, 4, 5, 6, 12, 13, 14, 15, 16], "free": [1, 5, 6, 13], "freetext": 16, "frequent": [1, 6, 12], "friendli": [0, 5, 8], "from": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17], "from_add": 16, "from_addr": 16, "from_address": 13, "from_email": 16, "front": [0, 4, 8, 12, 16], "frontend": 16, "fsstorag": 5, "ftp": 12, "full": [2, 4, 6, 8, 12, 14, 16], "fulli": [1, 4, 5, 6, 12], "fullnam": 6, "func": [2, 5], "function": [0, 2, 4, 5, 6, 7, 10, 13, 14, 15, 16], "functool": 16, "furnitur": 5, "further": 13, "futur": [5, 15, 16], "g": [1, 2, 6, 10, 12], "gain": 2, "gather": 14, "gavgavian": 1, "gender": 6, "gener": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "generate_time_based_cod": 13, "german": 11, "get": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17], "get_cooki": 16, "get_us": [4, 5, 13, 15], "get_var": [7, 15], "getvalu": 6, "gevent": [1, 2], "geventw": 2, "geventwebsocketserv": 2, "gia": 5, "gib": 6, "gif": 12, "git": [1, 2], "github": [2, 3, 4, 5, 6, 14], "gitlat": 1, "give": [0, 2, 4, 5, 6, 8, 13, 14], "given": [2, 5, 6, 8, 12, 16], "global": [0, 5, 6, 8, 13, 15, 16], "go": [1, 2, 4, 6, 8, 14, 16], "goal": 0, "goe": [6, 12], "good": [2, 3, 12], "googl": [0, 3, 5, 8, 12, 14], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gotcha": 17, "gotta": 8, "granular": 6, "granulari": 12, "graphic": 6, "graphql": 7, "great": 16, "greater": 7, "greedi": 4, "green": [4, 6, 12, 15], "grid": [0, 4, 17], "grid_class_styl": 14, "grid_tutori": 14, "gridactionbutton": 14, "gridclassstyl": 14, "gridclassstylebulma": 14, "group": [0, 2, 3, 5, 13, 15], "group_nam": 13, "groupbi": 12, "grow": [0, 6, 16], "gt": [7, 10], "guarante": [5, 6, 8, 15, 16], "guid": 2, "guidelin": 13, "gunicorn": 2, "gunicorngev": 2, "gz": 12, "h": [2, 12], "h1": [4, 8], "h2": [8, 12], "ha": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "habit": 2, "had": 6, "hamburg": 8, "hand": [2, 6, 16], "handi": 6, "handl": [2, 4, 5, 6, 12, 14, 15, 16], "handler": 4, "hang": 1, "happen": [5, 6], "hard": 15, "hardcod": 5, "has_membership": 13, "hash": [2, 6, 12], "have": [0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "he": 6, "head": [4, 8, 12, 14], "header": [4, 5, 6, 8, 10, 14, 16], "height": [12, 14, 16], "hello": [4, 5, 6, 8, 10, 12, 13, 16], "help": [2, 6, 7, 8, 10, 12, 15, 17], "helper": [0, 4, 5, 6, 8, 12, 14, 15, 16, 17], "henc": [0, 2, 4, 5, 6, 12, 13], "her": 12, "here": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "hesit": 6, "hex": 12, "hh": 12, "hi": [6, 12, 16], "hidden": [6, 12, 16], "hidden_div": 16, "hidden_input": 16, "hide": [6, 14], "hierarch": [6, 13], "high": [12, 13], "higher": 6, "highest": 12, "highli": [1, 4, 14], "highlight": [1, 8], "hint": [14, 17], "histor": [0, 6], "histori": 12, "hit": [2, 6], "hmac": 12, "ho": 5, "hold": [6, 16], "home": 8, "host": [1, 2, 4, 5, 12, 13], "hour": 12, "hous": 15, "housekeep": 6, "how": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17], "howev": [6, 8, 10, 12, 13, 14, 16], "href": [8, 10, 13, 14], "hs256": 5, "html": [1, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16], "html5": 8, "htmx": [14, 17], "htmx_form": 16, "htmx_form_demo": 16, "htmx_grid": 16, "htmx_list": 16, "htmxautocompletewidget": 16, "http": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "httrespons": 5, "hulk": 12, "hundr": 16, "hx": 16, "hypertext": 16, "hyphen": 10, "i": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "i18n": [5, 11], "ibm_db_dbi": 6, "icon": [8, 14], "id": [0, 1, 2, 3, 7, 8, 10, 12, 13, 14, 15, 16], "id1": 6, "id2": 6, "id_field_nam": 14, "id_valu": 14, "idea": 6, "ident": [6, 7, 15], "identifi": [4, 5, 6, 10, 12], "idn": 12, "ie": 12, "ietf": 12, "ifram": 12, "ignor": [4, 5, 6, 8, 10, 12, 14, 16], "ignore_attribute_plugin": 14, "ignore_common_filt": [6, 12], "ignore_field_cas": 6, "iip": 6, "illustr": [6, 8], "imag": [6, 8, 10, 12], "image_fil": 6, "imagin": [5, 6, 8, 16], "imap": 6, "imapadapt": 6, "imaplib": 6, "img": [4, 12], "immedi": [2, 6, 14], "immens": 0, "implement": [4, 5, 6, 8, 12, 13, 15, 16], "impli": 7, "implic": 5, "implicit": 6, "implicitli": [6, 12], "import": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "import_and_sync": 6, "import_from_csv_fil": 6, "impos": 8, "impot": 12, "improv": [12, 13, 14], "includ": [0, 4, 5, 6, 7, 10, 12, 14, 15, 16], "include_action_button_text": 14, "include_path": 4, "inclus": [0, 12], "incom": 2, "incorrect": 8, "increas": 5, "increment": 6, "inde": [0, 5], "indent": 8, "independ": [0, 5, 6, 13], "index": [1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "indic": [4, 6, 12, 13, 15, 16], "individu": [0, 2, 5, 6, 7, 8, 12], "ineffici": [5, 6], "infinit": 6, "info": [2, 4, 5, 6, 13], "inform": [1, 5, 6, 7, 12, 13, 15, 17], "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingr": 6, "ingredi": 4, "ingresadapt": 6, "ingresdbi": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "init": 14, "initi": [0, 2, 4, 5, 8, 12], "inject": [6, 8, 12, 14, 17], "inlin": [10, 16], "inner": [5, 8, 16], "input": [2, 4, 5, 6, 8, 12, 13, 14, 16], "insensit": [6, 12], "insert": [3, 5, 7, 8, 12, 13, 14, 16], "insid": [1, 2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "inspector": 8, "inspir": 7, "instal": [0, 1, 3, 4, 5, 6, 13, 16, 17], "instanc": [4, 5, 6, 10, 12, 13, 14, 16], "instanti": [6, 13, 14, 15], "instead": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "instruct": [2, 12], "int": [4, 6, 12, 13, 15], "int2ip": 6, "integ": [2, 4, 6, 7, 10, 12, 16], "integr": [0, 1, 8, 16], "intend": [6, 16], "intention": 12, "interact": [0, 5], "interchang": 13, "interfac": [0, 3, 5, 6, 14, 15, 16], "intermedi": 6, "intern": [0, 1, 4, 5, 6, 8, 13, 14], "internation": [0, 4, 5, 12, 15, 17], "interpret": [0, 6, 7, 10], "intersect": 6, "introduc": [0, 8], "introduct": [1, 2, 17], "intuit": 12, "invalid": [2, 5, 6, 12, 13], "invert": [6, 12], "invis": 6, "involv": [6, 8, 14, 15], "io": [2, 6], "ip": [2, 6, 12], "ip2int": 6, "ip_list": 13, "ipaddr": 6, "ipaddress": 13, "iptabl": 2, "ipv4": [6, 12], "ipv4address": 13, "ipv4network": 13, "ipv6": 12, "is_6to4": 12, "is_act": 6, "is_automat": 12, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_imperson": 13, "is_in_db": [6, 14], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_loc": 12, "is_localhost": 12, "is_multicast": 12, "is_not_empti": 6, "is_null_or": 14, "is_priv": 12, "is_publ": 6, "is_reserv": 12, "is_rout": 12, "is_teredo": 12, "is_tim": 6, "isdir": [7, 14], "isn": [12, 14], "iso": 7, "isol": 16, "issu": [0, 3, 4, 6], "ital": 10, "italian": [5, 11], "item": [6, 7, 8, 10, 12], "itemize1": 8, "itemize2": 8, "iter": [8, 12], "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "itself": [2, 6, 12, 16], "iv": 6, "j": [0, 4, 5, 8, 11, 15, 17], "javascript": [1, 4, 7, 10, 16], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlite": 6, "jdbcsqliteadapt": 6, "jetbrain": 1, "jim": [0, 1, 14], "jinja2": 5, "job": [7, 12, 14], "john": [0, 6], "join": [4, 5, 7, 12, 13, 14, 15, 17], "jonathan": 6, "journalist": [7, 14], "journei": 1, "jpeg": 12, "jpg": 12, "jpsteil": 14, "jqueri": [10, 12, 16], "jsl": 16, "json": [0, 1, 2, 4, 5, 6, 7, 11, 12, 15, 16], "jump": 1, "junk": 6, "just": [1, 2, 4, 5, 6, 7, 8, 12, 14, 16], "jwt": 5, "jython": 6, "k": [5, 8, 15], "karg": 10, "kbyte": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 10, 12, 14, 15], "keep_valu": 12, "kei": [2, 4, 5, 7, 10, 11, 12, 13, 16, 17], "keller": 0, "ken": 6, "kent": [7, 14], "kevin": 0, "keycod": 16, "keyup": 16, "keyword": [8, 10], "kfield": 16, "kill": 16, "kind": [0, 4, 13], "kinterbasdb": 6, "know": [1, 2, 4, 5, 6, 8, 14], "knowledg": 1, "known": [6, 8], "known_express": 11, "ktabl": 16, "kwarg": [6, 16], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 12], "label": [6, 7, 8, 12, 14, 15, 16], "lack": [6, 12, 15], "lambda": [5, 6, 10, 12, 14, 16], "lang": 5, "languag": [0, 1, 4, 5, 11, 15, 16, 17], "larg": [6, 12], "larger": 0, "last": [1, 5, 8, 12, 13, 14, 16], "last_insert_id": 6, "last_nam": [5, 13, 14], "last_row": 6, "lastdot": 12, "lastrowid": 6, "later": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14], "latest": [2, 6, 15], "latin1": 6, "latter": [6, 12, 15], "launch": [1, 2], "launcher": 1, "lax": 5, "layer": [5, 15, 17], "layout": [12, 13, 14, 15, 16, 17], "lazi": [2, 4, 15], "lazili": 16, "lazy_t": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 13, "ldap_set": 13, "ldapplugin": 13, "lead": [5, 14], "leader": 16, "learn": [1, 6], "least": [1, 2, 6, 12, 15, 16], "leav": [5, 6, 13], "left": [8, 12, 14, 16], "len": [12, 16], "length": [6, 12], "less": [7, 12, 15, 16], "let": [2, 6, 7, 12, 16], "letter": 12, "level": [2, 4, 6, 7, 11, 12, 13], "leverag": 0, "li": [8, 12, 13, 16], "lib": [2, 8, 10, 14], "libldap2": 13, "librari": [0, 2, 4, 6, 11, 12, 13, 15, 16], "libsasl2": 13, "libsass": 4, "licens": 1, "life": 16, "lifespan": 12, "lifetim": 5, "lighter": [6, 15], "like": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "limit": [0, 2, 5, 6, 7, 8, 12, 13, 15, 16], "line": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "link": [2, 6, 7, 8, 10, 12, 13, 14, 16], "lint": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "list_of_field": 6, "listabl": 6, "listen": [2, 3, 4], "listproperti": 6, "liststringproperti": 6, "listwidget": 12, "littl": [1, 5, 6], "live": [6, 16], "ll": [1, 2, 3, 5, 6, 8, 12, 14, 16], "load": [3, 4, 5, 6, 8, 14, 16], "loazkji": 8, "local": [3, 5, 6, 12, 13, 14, 15], "localhost": [2, 4, 5, 6, 12], "locat": [2, 4, 8, 15], "lock": [5, 6, 16], "log": [2, 3, 4, 5, 6, 8, 10, 13, 15, 16], "logerror": 5, "logfil": 6, "logging_level": 2, "logic": [2, 5, 12, 13, 14, 15, 16], "login": [0, 2, 4, 5, 6, 8, 12, 13, 15, 17], "logo": [0, 8, 10], "logout": [0, 8, 13], "long": [0, 2, 12, 16], "longer": [0, 6], "longhash_tablenam": 6, "longtext": 6, "look": [2, 3, 4, 5, 6, 7, 10, 12, 13], "lookup": [5, 7, 12], "loop": [6, 8, 16], "lose": [6, 12], "lost": [1, 5, 6, 15], "lot": [1, 4, 6], "love": 0, "low": 0, "lower": 12, "lowercas": 12, "lowest": 12, "lru": 5, "lt": [2, 10], "luca": [0, 1], "m": [0, 2, 6, 10, 12], "mac": 6, "machin": [2, 6], "macneiln": 2, "maco": 2, "made": [1, 2, 6, 8, 12, 14], "magic": 0, "mai": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "mail": [1, 3, 6, 12, 16], "mailto": 12, "main": [0, 1, 2, 4, 6, 8, 14, 15, 16, 17], "maintain": [6, 8, 14, 16], "mainten": 16, "major": 6, "make": [0, 1, 2, 5, 8, 10, 11, 12, 13, 14, 15, 16], "makefil": 2, "man": 16, "manag": [0, 1, 2, 3, 4, 5, 6, 12, 13, 14, 16], "mandatori": [5, 6, 8], "mani": [0, 1, 2, 4, 5, 7, 8, 12, 14, 15, 16], "manipul": [4, 6], "manner": [5, 15], "manual": [2, 3, 4, 6, 10, 13, 14], "map": [2, 6, 10, 11, 12, 15, 17], "map_non": 6, "marco": 6, "margin": [8, 16], "mark": [6, 13], "massimo": [0, 6], "master": [1, 2, 6, 14], "match": [2, 4, 5, 6, 7, 8, 10, 11, 12, 16], "materi": 6, "math": 16, "mathemat": 6, "matter": 15, "max": [11, 12, 16], "max_concurrent_run": 16, "maximum": [5, 6, 12], "maxip": 12, "maxlen": 12, "maxsiz": 12, "mayb": [2, 5], "md5": 12, "me": [10, 12, 14, 16], "mean": [1, 2, 3, 5, 6, 8, 12, 13, 15], "mechan": [0, 4, 5, 6, 8, 10, 13, 15, 16], "meet": 6, "member": [12, 13], "membership": [0, 5, 12, 13, 15], "memcach": [0, 6], "memoiz": 17, "memori": 5, "mention": [5, 13, 16], "menu": [8, 12, 13], "merg": 6, "mess": 1, "messag": [2, 4, 5, 7, 8, 12, 14, 15, 17], "met": 6, "meta": [8, 10], "metadata": 6, "metatag": 10, "method": [4, 5, 7, 8, 10, 12, 13, 14, 16, 17], "mfa": 13, "micah": 0, "microsoft": [1, 13], "mid": 6, "middlewar": 5, "might": [4, 7, 12], "migrat": [15, 17], "migrate_en": 6, "mileston": 1, "min": [8, 12, 14], "min_length": 12, "mind": [1, 4, 6, 7, 8, 12], "minim": [4, 5, 14, 17], "minimalist": [8, 15], "minimalist_pag": 8, "minimum": [6, 12], "minip": 12, "minor": [8, 12, 15], "minsiz": 12, "minut": 12, "miss": [2, 13, 14], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 14], "mm": 12, "mode": [2, 4, 5, 12, 13], "model": [0, 3, 4, 7, 10, 12, 14, 15, 16], "modern": [6, 13, 16], "modif": [2, 12], "modifi": [2, 4, 6, 7, 8, 12, 14, 15, 16], "modified_bi": 6, "modified_on": 6, "modul": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 17], "modular": [0, 6, 8, 15], "moment": 6, "mongo": 6, "mongodb": 6, "mongodbadapt": 6, "monkei": 5, "monolith": 0, "monospac": 10, "month": 12, "more": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "moreov": [6, 16], "most": [0, 3, 4, 5, 6, 12, 13, 14, 15, 16], "mostli": 5, "mother": 6, "mother_id": 6, "mount": 13, "move": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 4, 5, 6, 8, 12, 14, 15, 16], "multi": [1, 2, 6, 15], "multicast": 12, "multipl": [0, 1, 2, 4, 6, 8, 10, 11, 12, 15, 16, 17], "multiprocess": 5, "multiselect": 12, "multius": 13, "must": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "my": [5, 8, 10, 12, 13, 16], "my_app": 4, "my_id": 16, "my_password_fil": 2, "my_task": 16, "my_url_path": 15, "my_var": [5, 10], "myapp": [2, 4], "myclass": 10, "mycompon": 16, "mycustomwidget": 12, "mydb": 6, "myerror": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunct": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myorder": 6, "myqueri": 6, "myrecord": 6, "mysaltvalu": 12, "mysendgridsend": 16, "myset": 6, "mysidebar": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyl": 12, "mytabl": 6, "myvalu": 6, "myvirtualfield": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "n": [5, 6, 11, 16], "name": [2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "nameonli": 6, "narrow": 6, "nativ": 6, "native_json": 12, "nav": 8, "navbar": [8, 13], "navig": [8, 14, 16], "ndb": 6, "ne6fz": 8, "necessari": [6, 8, 10], "need": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "neg": [6, 12], "negat": 6, "neither": [6, 12], "nest": [6, 8, 10], "nested_select": 6, "network": [6, 12, 13], "never": [5, 6, 8, 12, 15, 16], "nevertheless": 6, "new": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "new_app": [8, 10], "new_password": 16, "new_sidecar": 16, "newer": 8, "newli": [4, 6, 11], "newlin": [6, 12], "next": [1, 2, 5, 6, 8, 12, 16], "nginx": [2, 4], "nice": 10, "nicer": 16, "nico": 0, "nid": 6, "no_backslash_escap": 6, "no_tabl": [12, 16], "node": [4, 16], "non": [4, 5, 6, 12, 14, 15], "none": [2, 5, 6, 7, 10, 12, 13, 14, 15, 16], "nor": [2, 6, 12], "normal": [2, 4, 5, 6, 8, 10, 12, 14, 16], "northwind": 1, "nosqladapt": 6, "not_author": 13, "notat": [6, 10], "note": [1, 2, 4, 5, 8, 10, 12, 15, 16], "noth": [2, 5, 6, 12, 16], "notic": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "notnul": 6, "notset": 2, "now": [0, 2, 4, 5, 6, 8, 12, 14, 16], "nowadai": 1, "null": [6, 7, 12, 16], "num": 6, "number": [2, 4, 5, 6, 8, 11, 12, 13, 14, 16], "number_work": 2, "numer": [6, 12], "o": [4, 5, 7, 12, 14], "oauth": 13, "oauth2": [0, 5], "oauth2discord": 13, "oauth2facebook": 13, "oauth2googl": 13, "obj": [6, 8], "object": [0, 5, 6, 7, 8, 10, 11, 12, 15, 17], "observ": 6, "obtain": [2, 4, 6, 13, 16], "obviou": [6, 7, 8, 13], "obvious": [6, 12], "occasion": [6, 12], "occur": [2, 6, 8, 12, 16], "odd": [6, 8], "off": [0, 2, 4, 6, 14, 16], "offici": [0, 6, 12, 16], "offset": [6, 7], "often": [4, 6, 13, 16], "ok": [10, 15], "old": [2, 5, 12, 15], "older": 12, "ombott": [0, 4, 15], "omit": 2, "on_delete_act": 6, "on_error": 5, "on_fals": 5, "on_request": [5, 13], "on_success": 5, "onc": [1, 2, 5, 10, 12, 13, 14, 16], "onclick": 16, "ondelet": 6, "one": [0, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 16], "ones": [2, 5, 6, 7, 12, 15], "onion": 5, "onkeydown": 16, "onli": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "onlin": [1, 6], "onload": 16, "onvalid": 12, "onward": 6, "opac": 16, "open": [1, 2, 3, 4, 5, 6, 10], "oper": [0, 3, 5, 11, 12, 13, 17], "operationalerror": 12, "oppos": [5, 6, 10], "opposit": [5, 6], "oprow": 6, "optim": [4, 6], "optimis": 6, "option": [0, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17], "oracleadapt": 6, "order": [1, 2, 4, 5, 6, 7, 10, 12, 14, 15], "order_item": 6, "orderbi": [12, 13, 14, 16], "ordereddict": 6, "org": [7, 10, 16], "organ": 4, "origin": [6, 8, 10, 11, 12], "orm": 6, "other": [0, 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 15, 16, 17], "other_pag": [12, 16], "otherfield": 6, "othert": 6, "otherwis": [4, 5, 6, 8, 12, 13, 14], "oufil": 6, "our": [0, 1, 2, 4, 5, 6, 10, 12, 16], "out": [0, 1, 2, 6, 8, 16], "outer": [5, 12, 16], "outlin": [4, 5], "output": [1, 2, 4, 5, 6, 7, 8, 10, 12, 16], "output_styl": 4, "outsid": [0, 5, 6, 12, 14, 15, 16], "ov": 6, "over": [6, 8, 14, 16], "overcom": 6, "overhead": 6, "overkil": 13, "overload": 6, "overrid": [4, 6, 8, 10, 13, 14, 15, 16], "override_class": 14, "override_styl": 14, "overview": 17, "overwritten": [5, 15], "own": [4, 5, 6, 8, 12, 13, 14, 15, 16], "owner": [6, 12], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "ownership": 6, "p": [2, 8, 12], "p10n": 11, "p11n": 5, "packag": [0, 6, 10], "pad": [5, 8, 15, 16], "page": [1, 5, 6, 10, 12, 13, 14, 15, 16, 17], "page_head": 8, "page_left_menu": 8, "page_script": 8, "pagin": [6, 14], "pai": 4, "paint": [4, 12], "pair": [6, 10], "pam": [0, 5], "pam_plugin": 13, "pamplugin": 13, "paragraph": [1, 5, 10, 12, 14], "param": [12, 13, 14, 15, 16], "paramet": [1, 2, 4, 5, 13, 16], "parent": [2, 6, 8, 16], "parenthes": 6, "park": [7, 14], "pars": [4, 5, 6, 11, 12, 13], "parsemodul": 4, "parser": 6, "part": [6, 10, 12, 15], "parti": [0, 5], "partial": [4, 6, 15], "particip": 1, "particular": [0, 1, 6, 12, 14, 15, 16], "particularli": 6, "pass": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "passphras": 5, "password": [0, 2, 3, 5, 6, 8, 12, 13, 15, 16], "password_fil": 2, "passwordwidget": 12, "patch": 5, "path": [2, 4, 5, 6, 7, 11, 12, 14, 15, 16], "path_to": 2, "pattern": [4, 7], "paus": 2, "payment": 6, "payrol": 5, "pbkdf2": 12, "pc": 3, "pdf": [1, 12], "pdkdf2": 2, "per": [0, 4, 5, 7, 14], "percent": 6, "percentag": 6, "perfect": 0, "perfectli": 14, "perform": [0, 3, 5, 6, 12, 13, 15], "perhap": 5, "period": 16, "permiss": [0, 5, 6, 15], "permit": 6, "permitted_tag": 10, "persist": [5, 6, 13], "person": [2, 6, 7, 12, 14], "persons_and_th": 6, "perspect": 0, "pet": 6, "peter": [7, 14], "phase": 6, "philip": 6, "phone": [12, 16], "photograph": [7, 14], "phrase": 6, "physic": 13, "pick": [4, 5, 13], "piec": [0, 5, 6, 8, 12], "pierro": 0, "pip": [0, 1, 6], "pirsch": 0, "piu": 5, "pixel": 12, "place": [1, 5, 6, 8, 12, 14, 16], "placehold": [6, 11, 12, 16], "plai": [0, 16], "plain": [6, 16], "plan": [1, 16], "platform": [0, 1, 17], "pleas": [5, 6], "plu": [6, 8, 13, 14], "plugin": [4, 5, 12, 14, 16], "plural": [0, 4, 5, 14, 15, 16, 17], "pm": 12, "png": [10, 12], "point": [2, 3, 4, 5, 6, 7, 8, 12, 14, 15], "pointer": 16, "pointless": 6, "polici": [0, 17], "pollut": 5, "pool": [4, 5], "pool_connect": 6, "pool_siz": [5, 6], "poor": 16, "pop": 16, "popul": 6, "popular": [0, 6], "port": [0, 2, 3, 5, 6, 15], "portabl": 6, "portion": 14, "posit": [5, 10], "possibl": [4, 5, 6, 8, 12, 13, 14, 15, 16], "possibli": 6, "post": [4, 6, 7, 10, 12, 13, 14, 15, 16], "post_action_button": 14, "post_text": 6, "post_var": [7, 15], "post_writ": 7, "postel": 11, "postel\u00ed": 11, "postfix": 15, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyco": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserv": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocess": 15, "potenti": 2, "power": [2, 6, 7, 13, 15, 16], "pprint": 6, "pr": 1, "practic": [0, 6, 8, 12, 15, 17], "pre": [2, 4, 5, 6, 14], "pre_action_button": 14, "precaut": 2, "preced": [5, 6, 7, 8, 12], "preciou": 14, "predefin": [8, 12, 16], "predetermin": 15, "prefer": [2, 5, 6, 10, 16], "prefix": [2, 4, 6, 7, 8, 12, 15], "preliminari": 1, "prepend": [4, 7, 12, 15, 16], "prepend_schem": 12, "preprocess": 15, "prerequisit": [5, 17], "presenc": [5, 6], "present": [2, 6, 8, 12, 13], "preserv": [0, 5], "press": [3, 4, 14], "pretti": [4, 6, 15], "prevent": [2, 5, 6, 8, 10, 12, 16], "previou": [2, 5, 6, 8, 10, 12, 16], "previous": [5, 6, 12], "price": 6, "prima": 5, "primari": [8, 13], "primarili": 14, "prime": 12, "print": [4, 6, 10, 11, 13, 14, 15, 16], "privat": [5, 12], "probabl": [4, 12], "problem": [0, 1, 6, 8, 13, 14, 16], "procedur": 17, "process": [2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "produc": [0, 2, 5, 6, 8, 10, 12, 13], "product": [2, 4, 6, 16], "product_record": 16, "profil": [0, 8, 13, 15], "program": [1, 2, 3, 6, 8, 10, 12, 16], "programmat": [6, 10], "project": [0, 2, 4, 5, 6], "project_nam": 2, "prompt": [2, 4, 6], "proper": [5, 6, 14], "properli": 4, "properti": [6, 12], "protocol": 3, "prototyp": 16, "provid": [0, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "proxi": 4, "proxy_http_vers": 4, "proxy_pass": 4, "proxy_set_head": 4, "prudent": 6, "pseudo": 6, "psycopg2": 6, "public": 6, "publish": 4, "pull": [1, 6], "punycod": 12, "pure": 6, "purpos": [0, 5, 6, 10, 12, 13, 15], "put": [4, 5, 7, 12, 16], "put_writ": 7, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16], "py4web": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14], "py4web_filesystem": 6, "py4web_wsgi": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 12, 13, 14, 15, 16], "pyfilesystem": 6, "pymongo": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytd": 6, "python": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16], "python2": [2, 15], "python3": [1, 2], "pyweb": 15, "q": [2, 5, 6, 14], "qualifi": 6, "quantiti": 6, "queri": [4, 5, 7, 10, 12, 13, 14, 15, 16], "query1": 6, "query2": 6, "queryselector": 16, "queryselectoral": 16, "querystr": 14, "question": [1, 2, 6], "quick": [1, 12], "quickli": [2, 12, 14], "quickstart": 16, "quiet": 2, "quirk": 5, "quit": [1, 2, 5, 7, 8, 12, 14], "quot": [2, 10], "quote_minim": 6, "quote_nonnumer": 6, "quotechar": 6, "r": [2, 6, 12], "race": 12, "radio": [10, 12], "radiowidget": 12, "radiu": 16, "rais": [5, 6, 12, 13, 15], "ram": [5, 6], "randint": [8, 13], "random": [6, 8, 12, 13, 16], "rang": [4, 6, 8, 13, 15], "rapid": [0, 16], "rare": 6, "rather": [6, 8, 10, 12, 16], "raw": 17, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "reach": [2, 5], "react": 16, "reactiv": 16, "read": [1, 4, 5, 6, 7, 14, 16], "readabl": [5, 6, 7, 14, 15], "readi": [2, 6], "readm": [1, 12], "readonli": [2, 12, 16], "real": [2, 4, 7, 8, 12], "real_ident": [6, 7], "realiz": 6, "realli": [1, 4, 6], "reap": 16, "reason": [2, 5, 6, 7, 13, 14, 15], "reassembl": 0, "rebuild": 6, "rebuilt": 6, "rec_id": 7, "recal": 8, "receiv": 6, "recent": [3, 5, 6, 12, 14], "recereiv": 16, "recip": 2, "recogn": [4, 6], "recommend": [1, 4, 5, 6, 12, 16], "record": [7, 12, 13, 14, 15, 16], "record_id": [7, 16], "recov": [6, 12], "recreat": 6, "recurr": 6, "recurs": 8, "recycl": 6, "red": [3, 4, 6, 8, 10, 12], "redefin": 5, "redefinit": 6, "redesign": 0, "redi": 0, "redirect": [4, 5, 12, 13, 14, 16], "reduc": [0, 5, 16], "redund": 6, "ref": [10, 12, 13], "refer": [1, 5, 7, 8, 12, 16], "referenc": [6, 7, 10], "referenced_bi": 7, "reflect": [1, 6], "refresh": 14, "regex": [7, 10, 12], "regexlib": 12, "regist": [0, 5, 6, 8, 13, 15, 16], "register_plugin": 13, "register_task": 16, "register_vue_compon": 16, "registr": [4, 12], "registration_stamp": 12, "regular": [0, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16], "reimplement": 16, "reinstal": 2, "reinstat": 6, "reject": [12, 13], "rel": [4, 6, 8, 14, 15], "relat": [5, 17], "relationship": 6, "releas": [0, 2], "relev": 6, "reli": [0, 4, 6], "reliabl": 1, "reload": [2, 3, 4, 5, 12, 16], "remain": [0, 6, 12], "rememb": [3, 5, 6, 12], "remote_addr": [5, 13], "remov": [0, 2, 4, 6, 10, 12, 13], "renam": [1, 7], "render": [5, 7, 8, 10, 12, 14, 15, 16], "renoir": 8, "reopen": 5, "repackag": 0, "repeat": [6, 12], "replac": [0, 2, 6, 8, 10, 12, 14, 16], "replic": [1, 5], "report": [4, 8], "repositori": [1, 2, 3], "repr_row": 6, "repres": [0, 8, 12], "represent": [10, 16], "representational_state_transf": 7, "representing_field": 12, "request": [0, 1, 2, 5, 6, 7, 12, 13, 14, 15, 16], "request_bodi": 16, "request_reset_password": 13, "request_uri": 4, "requir": [0, 1, 2, 4, 5, 6, 7, 12, 13, 14, 15, 16], "requires_": 15, "requires_login": 15, "requires_membership": 13, "rescu": 6, "reserv": 12, "reset": 6, "reset_password": 13, "resourc": [6, 13, 17], "respect": [6, 10, 12, 14], "respons": [4, 5, 6, 8, 14, 15, 16, 17], "rest": [7, 13], "restapi": [0, 3, 17], "restart": [2, 4, 5, 6, 14], "restor": 6, "restrict": [5, 6, 7, 12, 16], "restructuredtext": 1, "result": [1, 6, 7, 8, 12, 13, 14, 16], "resultset": 6, "ret": 6, "retain": 6, "retri": 6, "retriev": [4, 5, 6, 15, 16], "return": [5, 6, 7, 10, 12, 13, 14, 16], "reus": 6, "revers": [4, 5, 6], "revert": 6, "rewrit": 6, "rewritten": 6, "rfc": 12, "rid": 6, "ride": 8, "right": [1, 2, 3, 5, 6, 8], "road": 16, "robust": 16, "rocket": 15, "rocket3": [2, 15], "rocketserv": 2, "role": [2, 5, 10], "roll": [5, 6], "rollback": [4, 16], "root": [6, 8, 13, 14], "roughli": 6, "rout": [0, 2, 3, 5, 14, 15, 16], "rover": 6, "row": [8, 10, 12, 14, 15, 16], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 14, "rpc": 6, "rst": 1, "rule": [4, 5, 8, 12, 14], "run": [1, 3, 4, 5, 8, 13, 15, 16, 17], "run_in_transact": 6, "runtim": [2, 6], "s3": 6, "s_": [12, 16], "s_autocomplet": 16, "s_autocomplete_result": 16, "s_down_kei": 16, "s_search": 16, "safari": 16, "safe": [1, 5, 6, 10, 14, 15], "safer": [6, 12, 14], "safeti": [2, 16], "sai": [6, 13], "said": 7, "sake": 6, "salt": 12, "sam": 0, "same": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "same_sit": 5, "saml": 13, "saml2": 0, "sampl": 13, "sandbox": 16, "sane": 4, "sanit": [5, 10, 12, 15], "santa": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "save": [1, 2, 4, 5, 6, 11, 12], "scaffold": [2, 4, 5, 6, 8, 12, 15, 16], "scaffold_zip": 2, "scale": [5, 8], "scan": 6, "scare": 1, "schafer": 1, "schedul": 17, "scheduled_for": 16, "schema": 6, "scheme": 12, "school": 13, "scope": 4, "score": 16, "score_input": 16, "scratch": 17, "script": [2, 8, 12, 16], "sdk": 2, "se": [6, 14], "seamlessli": 8, "search": [0, 1, 2, 3, 6, 10, 12, 13, 17], "search_button_text": 14, "search_form": 14, "search_queri": 14, "search_text": 14, "search_valu": 16, "searchabl": 6, "sec": 16, "second": [5, 10, 12, 13, 15], "secret": [5, 13], "section": [2, 4, 6, 8, 12, 13], "secur": [0, 2, 7, 13], "see": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "seem": 6, "seen": [0, 5, 6, 7, 10, 12, 13, 14, 16], "segment": 4, "select": [3, 4, 5, 7, 11, 12, 13, 14, 15, 16, 17], "selected_el": 16, "selected_id": 14, "selectedindex": 16, "selector": [10, 16], "selector1": 10, "selector2": 10, "selectorn": 10, "selectwidget": 12, "self": [2, 5, 10, 12, 13, 14, 16], "semant": [12, 13], "send": [2, 6, 12, 13, 17], "send_two_factor_email": 13, "sender": [13, 16], "sendgrid": 16, "sendgrid_api_kei": 16, "sendgridapicli": 16, "sendmail": 16, "sendmail_task": 16, "sens": [0, 6, 12, 13], "sensit": [5, 6, 12], "sent": [5, 6, 13, 16], "separ": [2, 4, 5, 6, 8, 12, 13, 14, 16], "sequenc": [5, 6], "sequenti": 6, "seri": 1, "serial": [4, 5, 6, 8, 10, 12], "serializ": [0, 5, 6, 10], "serv": [0, 2, 4, 6, 13, 15, 16], "server": [0, 2, 3, 4, 7, 8, 13, 15, 16, 17], "server_addr": 6, "server_nam": 4, "serversid": 16, "session": [0, 2, 4, 6, 10, 12, 13, 14, 15, 16, 17], "session_app1": 5, "session_secret_kei": 5, "set": [0, 1, 2, 4, 5, 7, 8, 10, 11, 13, 16], "set_attribut": 6, "set_encod": 6, "set_head": 6, "set_password": 3, "setinterv": 16, "setup": [1, 3, 4, 13, 14, 16, 17], "setvirtualfield": 6, "sever": [4, 6], "sf": 16, "sftp": 6, "sg": 16, "sh": 16, "sha512": [8, 12], "share": [6, 15], "shell": 10, "ship": 8, "shoe": 6, "shop": 5, "short": [12, 16], "shortcut": [8, 12], "shorter": [6, 12], "shortli": 4, "should": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "show": [1, 2, 4, 5, 6, 8, 12, 13, 14], "show_id": 14, "showcas": 6, "shown": [2, 6, 12, 13], "shutil": 6, "side": [1, 6, 13, 16, 17], "sidebar": 8, "sidebar_en": 8, "sidebar_menu": 10, "sidecar": 16, "sign": [2, 4, 5, 6, 8, 12, 13], "signatur": [5, 7, 10, 12, 16], "signed_url": 5, "signer": 5, "signifi": 8, "signific": 8, "signing_info": 12, "similar": [0, 4, 5, 6, 10, 12, 15], "similarli": [6, 10], "simpl": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "simple_queri": 16, "simpler": [6, 8, 14], "simplest": [2, 4], "simpli": [2, 4, 5, 6, 8, 11, 12, 16], "simplic": [6, 16], "simplifi": [0, 4, 6, 8], "simultan": 6, "sinc": [0, 4, 5, 6, 7, 8, 13, 14, 15], "singl": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14], "singleton": [5, 15], "site": [1, 2, 4, 5, 6, 10, 14, 16], "situat": 6, "six": 6, "size": [5, 6, 8, 12], "skip": [5, 16], "slash": [1, 4, 5, 13], "slave": 6, "sleep": 16, "sleep_tim": 16, "slice": 6, "slicker": 0, "slow": [6, 16], "slug": 12, "sm": 16, "small": [5, 12], "smaller": 6, "smtplib": 16, "snippet": 6, "so": [2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "soap": 10, "socket": 16, "solut": [0, 1, 2, 6, 16], "some": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "some_condit": 8, "some_form": 12, "some_valu": 6, "somefield": 6, "somefil": 6, "somepath": 5, "somet": 6, "someth": [5, 6, 7, 8, 10, 12, 13, 14, 16], "sometim": [5, 6, 8, 10, 12, 13, 14], "somevalu": 6, "somewhat": 12, "somewher": [5, 6], "soon": [8, 16], "sophist": 15, "sort": 14, "sourc": [3, 4, 6, 12, 16], "source1": 12, "south": 1, "sp": 6, "space": [6, 8, 12, 14], "span": [4, 15], "spatialit": 6, "speak": 5, "special": [0, 4, 5, 6, 8, 10, 11, 13, 15, 17], "specif": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "specifi": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "speed": [6, 7, 8], "sphinx": 1, "spiderman": [7, 14], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 12], "split_email": 12, "sql": 17, "sql_mode": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 12, 15], "sqlite": [1, 5, 7, 13, 14, 16], "sqlite3": 6, "sqliteadapt": 6, "squar": [0, 8], "src": [6, 8, 10, 12, 16], "ss": 12, "ssl": [2, 4], "ssl_cert": 2, "ssl_kei": 2, "sslcert": 6, "sslkei": 6, "sslmode": 6, "sslrootcert": 6, "sso_id": [5, 13], "stabl": 2, "stai": 6, "stand": [7, 10, 12], "standard": [1, 2, 3, 6, 7, 13, 14, 15, 16, 17], "start": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "start_imperson": 13, "startup": [6, 15, 17], "state": [5, 6, 7, 15, 16], "stateless": [5, 16], "statement": [6, 8, 12], "static": [1, 8, 10, 15, 17], "static_dev": 4, "statu": [7, 16], "status_cod": 16, "stderr": [2, 16], "stdout": [2, 16], "steil": [0, 1, 14], "step": [2, 6, 13, 15, 16], "step1": 5, "step2": 5, "step3": 5, "step_complet": 5, "still": [2, 5, 6, 10, 12, 14, 15], "stone": 14, "stop": [2, 3, 13], "stop_imperson": 13, "storag": [5, 6, 7, 14], "store": [0, 2, 5, 6, 10, 12, 13, 15, 16], "stored_item": 6, "stored_item_arch": 6, "stori": [0, 5], "str": [2, 5, 6, 10, 12, 15, 16], "stream": [4, 5, 6, 15], "strength": 7, "strict": 12, "strictli": [4, 6, 16], "string": [4, 5, 7, 8, 10, 11, 12, 14], "stringio": 6, "stringlistproperti": 6, "strip": [2, 12, 15], "strong": [0, 10, 13], "strongli": [1, 5, 12, 14], "structur": [1, 4, 5, 6, 11, 13, 14, 15, 17], "stuck": 2, "student": 2, "studi": 1, "studio": 1, "stuff": [12, 14], "style": [4, 8, 12, 16, 17], "stylesheet": [8, 14], "sub": 6, "subclass": [6, 12], "subfold": [4, 5, 6], "subhead": 10, "subject": [6, 7, 13, 16], "submiss": [12, 16], "submit": [1, 5, 6, 10, 12, 13, 14, 16], "submodul": 0, "subnet": 12, "subqueri": 16, "subsect": 6, "subset": [0, 6, 12], "substitut": [6, 8], "substr": 12, "subtl": 6, "succe": 6, "succed": 13, "succeed": 0, "success": [0, 4, 5, 6, 7, 13, 16], "successfulli": 13, "sudo": [2, 13], "suffer": [0, 13], "suffic": 6, "suffici": [6, 13], "sugar": 5, "suggest": [1, 6, 12], "sugizo": 0, "suit": 2, "summar": 6, "superhero": [6, 7, 12, 14, 16], "superman": [6, 7, 12, 14], "superpow": [6, 7], "superseed": 6, "suppli": 10, "support": [1, 4, 5, 8, 10, 11, 12, 13, 14, 15, 16, 17], "suppos": 6, "suppress": [2, 10], "sure": [2, 3, 4, 5, 6, 11, 12, 13, 16], "surround": 12, "susan": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 12, "symlink": [2, 4], "sync": [2, 6], "synopsi": 12, "syntact": [5, 12], "syntax": [0, 1, 4, 5, 6, 7, 10, 12, 13, 15, 16, 17], "system": [0, 2, 5, 6, 10, 13, 16], "sysus": 6, "t": [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15], "t_folder": 5, "tab": [3, 5, 12], "tabl": [5, 7, 12, 13, 14, 15, 16], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 12, 16], "tag": [0, 5, 7, 8, 15, 16, 17], "tag_input": 16, "tagged_db": 13, "tagger": 10, "tags_input": 16, "tail": 6, "tail_nam": 13, "take": [2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "taken": 12, "talk": 4, "tamper": [5, 6], "tanti": 16, "tantissimi": 11, "tap": 16, "tar": 12, "target": [6, 10, 16], "task": [1, 5, 6, 13, 17], "task_run": 16, "tast": 6, "tbodi": 6, "tcp": 3, "td": 6, "teacher": 13, "technic": 16, "tell": [2, 4, 5, 6, 13, 14, 16], "temp": 6, "templat": [0, 10, 12, 13, 15, 16, 17], "temporari": 6, "temporarili": 5, "ten": 12, "tenanc": 6, "teradata": 6, "teradataadapt": 6, "teredo": 12, "term": [6, 12], "termin": [4, 8, 16], "test": [0, 2, 4, 6, 8, 10, 12, 13, 14], "text": [2, 5, 6, 8, 10, 14, 16], "textarea": 12, "textareawidget": 12, "textual": 10, "th": 6, "than": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "thank": [0, 6, 10], "that_templ": 8, "thead": 6, "thei": [0, 2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "them": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "themselv": [6, 8], "therefor": [2, 4, 5, 6, 8, 10, 12, 15], "therein": 6, "thi": [0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "thing": [2, 5, 6, 12, 14, 15], "thing_id": 12, "thing_tags_default": 6, "think": [5, 6, 8, 14, 16], "third": [0, 5, 6, 12], "this_templ": 8, "thisisatest": 10, "thisisthekei": 12, "those": [0, 2, 5, 6, 8, 10, 13, 15, 16], "though": 8, "thought": [0, 6, 13], "thread": [2, 5, 6, 15, 16], "threadsafevari": 5, "three": [0, 5, 6, 13], "through": [2, 12], "throughout": 5, "thu": [6, 8], "thumbnail": 12, "ti": 5, "ticket": [0, 3, 6], "tickets_onli": 2, "tild": 6, "tim": 6, "time": [0, 2, 4, 5, 8, 13, 14, 15, 16], "timedelta": 12, "timeoffset": 10, "timeout": [5, 16], "timestamp": [5, 7, 16], "tip": [2, 14, 17], "titl": [3, 8, 12, 16], "tmp": [5, 6], "to_addr": 16, "todai": [0, 12, 16], "todo": 16, "togeth": [0, 6, 8, 11, 14], "toi": 6, "token": [5, 12], "too": [2, 5, 6, 12, 16], "took": 6, "tool": [0, 6, 13, 16], "top": [8, 11, 12, 13], "topic": [14, 17], "tornado": 2, "total": [6, 7], "total_pric": 6, "totp": 13, "touch": 8, "tr": 6, "traceback": [5, 6], "track": [1, 6, 15], "trade": 6, "tradit": [2, 6], "trail": [2, 12], "train": 1, "transact": [5, 16], "transform": [5, 6, 12, 16], "transit": 16, "translat": [1, 2, 4, 6, 8, 12, 15, 16, 17], "transpar": [6, 8, 12], "trap": 16, "treat": [6, 15], "tree": [4, 8, 12], "tri": [0, 6, 13, 15], "trick": 2, "trickeri": 8, "trigger": [3, 5, 6, 16], "trivial": [5, 6], "true": [1, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "truncat": 6, "truth": 16, "try": [1, 2, 5, 6, 12, 13, 16], "ttl": 5, "tupl": [6, 8, 10], "turn": [0, 4, 6, 12, 13, 14, 16], "tutori": [2, 14, 16], "twice": [5, 6], "twilio": 16, "twitter": [0, 5, 13], "two": [0, 1, 2, 4, 5, 6, 8, 12, 14, 15, 16], "two_factor": 13, "txt": [0, 2, 4, 6], "type": [2, 4, 5, 7, 8, 10, 13, 14, 16], "typewrit": 10, "typic": [4, 5, 6, 8, 12], "u": [2, 6, 10, 12], "ubuntu": 13, "uc": 1, "ui": 5, "uid": 6, "ul": [8, 12, 13, 16], "un": [8, 10, 11, 16], "unari": 6, "unauthent": [5, 6, 10], "unauthor": 6, "unchang": [6, 12], "undefin": 5, "under": [2, 3, 4, 5, 6, 12], "underli": 15, "underscor": [6, 10, 12], "understand": [0, 1, 4, 6, 7, 8, 14, 17], "undocu": 16, "unfortun": [6, 14], "unicod": [6, 12], "unicodedecodeerror": 6, "uniform": 6, "union": 6, "uniqu": [6, 7, 12], "unit_pric": 6, "univers": [6, 10], "unknown": 4, "unless": [2, 3, 5, 6, 8, 12, 16], "unlik": [0, 2, 4, 6, 7, 8, 15, 16], "unnam": [6, 10], "unned": 2, "unord": 10, "unpkg": 16, "unquot": [6, 10], "unsaf": [5, 10, 12], "untest": [2, 13], "until": [0, 5, 6, 8, 12], "unus": 6, "unusu": 6, "unwant": [2, 6], "unzip": 2, "up": [1, 2, 5, 6, 8, 13, 16], "updat": [2, 5, 12, 14, 15, 16, 17], "update_form": 12, "update_languag": 11, "update_na": 6, "update_th": 12, "upgrad": [6, 17], "upload": [0, 4, 15], "upload_fold": [6, 12], "upload_help": 16, "uploadf": 6, "uploadfield": 6, "uploadfold": 6, "uploadsepar": 6, "upon": [2, 8, 13, 15], "upper": [4, 5, 12], "upper_cas": 5, "uppercas": [5, 12], "uri": 13, "url": [2, 4, 5, 7, 8, 12, 13, 14, 15, 16], "url_prefix": 2, "url_sign": 5, "url_to_post_to": 16, "urlsign": 17, "us": [0, 1, 3, 4, 7, 11, 12, 15, 17], "usabl": 14, "usag": [2, 3, 4, 5, 6, 10, 12, 13, 14], "use_schedul": 16, "useful": 12, "useless": [12, 15], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "user_email": 15, "user_id": [5, 6, 13, 15], "user_nam": 6, "user_outside_network": 13, "user_password": 6, "user_token": 6, "usernam": [5, 6, 13], "usr": 1, "usual": [1, 2, 5, 6, 7, 8, 10, 12], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "util": [2, 4, 5, 8, 10, 12, 13, 14, 15, 17], "uuid": [5, 6], "uuid4": [5, 6], "v": [5, 10, 12, 16], "v3": 1, "val": [14, 16], "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [2, 4, 7, 8, 10, 13, 14, 15, 17], "validate_cod": 13, "validate_j": 4, "valq7711": [0, 4], "valu": [2, 5, 7, 8, 10, 11, 12, 13, 14, 16], "valuabl": 1, "value1": 6, "value2": 6, "value_field": 12, "var": [6, 10, 12, 15, 16], "varchar": 6, "variabl": [4, 5, 6, 10, 11, 12, 14, 16], "variou": [5, 6], "ve": [1, 2, 3, 5, 8, 10, 12, 13, 14, 16], "vehicl": 5, "vendor": 16, "vendor_typ": 16, "venv": 2, "verbos": 6, "veri": [0, 4, 5, 6, 8, 10, 12, 13, 15, 16], "verif": 13, "verifi": [5, 12, 13, 16], "verify_email": 13, "versa": 5, "version": [1, 3, 5, 7, 8, 12, 16], "vertica": 6, "verticaadapt": 6, "via": [5, 6, 8, 10, 13, 16], "vice": 5, "video": [2, 16], "view": [1, 5, 6], "viewport": 8, "virtual": [1, 17], "virtualenv": [1, 2], "virtualfield": 6, "visibl": 4, "visit": [3, 5, 6, 8, 12, 13], "visit_log": 5, "visitor": [6, 10, 12], "visto": 5, "visual": 1, "vital": 13, "volt": 5, "vscode": 2, "vue": [0, 4, 16], "vulner": 8, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "wa": [0, 5, 6, 12, 13, 14], "wai": [0, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "wait": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 10, 12, 14, 16], "warn": [2, 5], "warp": 11, "watch": [2, 3, 17], "wayn": [7, 14], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "web": [0, 1, 2, 5, 6, 8, 13, 14, 15, 16, 17], "web2pi": [0, 1, 2, 3, 4, 5, 6, 12, 13, 14, 17], "webserv": 4, "websit": [6, 16], "websocket": 16, "welcom": [2, 4, 5, 8, 15, 16], "well": [0, 5, 6, 8, 12, 13, 16], "were": [0, 4, 6], "what": [1, 4, 5, 6, 8, 12, 13, 15, 16, 17], "whatev": [10, 16], "when": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whenev": [4, 6], "where": [1, 2, 4, 6, 7, 8, 12, 13, 15, 16], "whether": [5, 6, 8, 12, 13, 14, 15], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whichev": 16, "while": [0, 4, 5, 6, 7, 12, 13, 14, 15], "white": [10, 16], "whitelist": 13, "who": [0, 13], "whole": [4, 12], "whose": [6, 8, 12], "why": [5, 6, 8, 15], "widget": [6, 17], "width": [8, 12], "wiki": [6, 7], "wikipedia": [6, 7], "wild": 6, "wildcard": 4, "william": 6, "window": [1, 2, 4, 5, 6, 8, 12], "wish": [1, 6, 12, 16], "wit": 2, "with_alia": 6, "within": [0, 1, 4, 5, 6, 8, 10, 12, 14, 16], "without": [1, 8, 10, 14, 16, 17], "wolf": 0, "won": 6, "wood": 6, "word": [5, 6, 11, 14], "work": [0, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "worker": [2, 5, 16], "workflow": [5, 17], "workload": 6, "workspacefold": 2, "world": [4, 5, 6, 8, 10, 12, 16], "worri": [4, 6], "worth": 8, "would": [0, 4, 5, 6, 8, 10, 12, 13, 14, 16], "wouldn": 6, "wrap": [5, 11, 12, 14, 16], "wrapper": [15, 16], "writabl": [5, 6, 12, 15], "write": [2, 4, 5, 6, 8, 12, 15], "written": [1, 8, 12, 14], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 10, 14, 16], "x": [2, 4, 6, 8, 10, 12, 14, 16], "xml": [8, 12, 15, 16], "xmlescap": 10, "xmln": 10, "xss": [6, 8, 10], "xyz": [10, 12], "y": [2, 10, 12], "yaml": 2, "yatl": [0, 4, 5, 6, 12, 14, 16, 17], "yb": 10, "ye": [2, 6, 16], "year": [12, 16], "yes_or_no": 6, "yet": [0, 2, 4, 5, 6, 8, 12, 16], "yield": 6, "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "your": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "your_app": 12, "your_full_path_to_py4web": 1, "your_nam": [1, 16], "yourapp": 6, "yourappnam": 2, "youremail": 13, "yourself": [1, 2, 12, 14], "youtub": [2, 6], "yyyi": 12, "z": [10, 12], "zanferrari": 0, "zap": 13, "zap_id": 13, "zapper": 13, "zero": [6, 8, 12, 14], "zip": [0, 2, 6, 12], "zip_cod": 16, "zxjdbc": 6}, "titles": ["What is py4web?", "Help, resources and hints", "Installation and Startup", "The Dashboard", "Creating an app", "Fixtures", "The Database Abstraction Layer (DAL)", "The RestAPI", "YATL Template Language", "<no title>", "YATL helpers", "Internationalization", "Forms", "Authentication and authorization", "Grid", "From web2py to py4web", "Advanced topics and examples", "py4web: the reference Manual"], "titleterms": {"A": [1, 10, 12], "On": 4, "One": 6, "The": [1, 3, 4, 5, 6, 7, 12, 14, 16], "_lastsql": 6, "_scaffold": 4, "about": [5, 6], "abstract": 6, "access": 15, "acknowledg": 0, "action": [7, 13, 14], "ad": 6, "adapt": 6, "advanc": [6, 12, 16], "aka": 2, "alias": 6, "all": 6, "alon": 6, "an": [4, 6], "anoth": 6, "any_of": 12, "anywher": 5, "app": [2, 4, 6], "applic": 6, "arg": 15, "as_dict": 6, "as_list": 6, "asyncio": 16, "attempt": 6, "attribut": 6, "auth": [5, 13, 15], "authent": 13, "author": 13, "autocomplet": 16, "avg": 6, "background": 16, "base": 6, "basic": [8, 12, 14], "beautifi": 10, "belong": 6, "binari": 2, "block": 8, "bodi": 10, "broken": 6, "built": 10, "button": 14, "cach": [5, 6], "cacheabl": 6, "call": [2, 15], "callabl": 14, "callback": 6, "cascad": 6, "case": 6, "cat": 10, "caveat": 5, "celeri": 16, "chang": 4, "checkbox": [12, 14], "children": 10, "class": 14, "cleanup": 12, "client": 5, "coalesc": 6, "coalesce_zero": 6, "column": 14, "com": 2, "combin": 6, "command": [2, 6], "commit": 6, "common": 6, "complex": 12, "comput": 6, "condit": 5, "connect": 6, "constructor": [6, 12], "contain": 6, "content": 17, "contribut": 1, "control": 6, "conveni": 5, "convers": 15, "cooki": 5, "copi": [4, 6], "count": 6, "counter": 15, "creat": 4, "crud": 14, "crypt": 12, "csv": 6, "custom": [5, 6, 10, 12, 14], "dai": 6, "dal": [5, 6], "dashboard": [3, 6], "data": 6, "databas": [5, 6, 12], "datastor": 6, "date": 12, "db": 6, "debug": 1, "decor": 5, "def": 8, "default": [6, 8], "defin": 6, "define_t": 6, "delet": 6, "deploy": 2, "design": [2, 12], "develop": 8, "dictionari": [6, 12], "discord": [1, 13], "distinct": 6, "distribut": 6, "div": 10, "docker": 2, "dom": 10, "domain": 4, "drop": 6, "dynam": 4, "elif": 8, "els": 8, "em": 10, "endswith": 6, "engin": 2, "environ": 2, "equal": 12, "exampl": [7, 12, 14, 15, 16], "except": 8, "exclud": 6, "executesql": 6, "experi": 6, "experiment": 6, "export": 6, "express": 6, "extend": 8, "facebook": 13, "factor": 13, "failur": 6, "fake_migr": 6, "featur": [6, 14], "fetch": 6, "field": [6, 12, 14], "file": [4, 11, 12, 15], "filter": [6, 14], "filter_in": 6, "filter_out": 6, "final": 8, "find": [6, 10], "first": [2, 6], "fix": 6, "fixtur": 5, "flash": [5, 15], "folder": 6, "form": [10, 12, 15, 16], "format": [6, 12, 16], "from": [2, 4, 6, 15], "function": [8, 12], "gae": 2, "gcloud": 2, "gener": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 13], "gotcha": 6, "grid": [14, 15, 16], "group": [1, 6], "groupbi": 6, "h1": 10, "h2": 10, "h3": 10, "h4": 10, "h5": 10, "h6": 10, "have": 6, "head": 10, "hello": 15, "help": 1, "helper": 10, "hint": 1, "hour": 6, "how": 1, "html": [6, 10], "htmx": 16, "http": 2, "i": [0, 10], "id": 6, "ilik": 6, "img": 10, "imperson": 13, "import": 6, "includ": 8, "index": 6, "indic": 17, "inform": 8, "inherit": 6, "inject": [5, 10], "inner": 6, "input": 10, "insert": 6, "insid": 13, "instal": 2, "internation": 11, "introduct": 6, "is_alphanumer": 12, "is_dat": 12, "is_date_in_rang": 12, "is_datetim": 12, "is_datetime_in_rang": 12, "is_decimal_in_rang": 12, "is_email": 12, "is_empty_or": 12, "is_equal_to": 12, "is_expr": 12, "is_fil": 12, "is_float_in_rang": 12, "is_imag": 12, "is_in_db": 12, "is_in_set": 12, "is_int_in_rang": 12, "is_ipaddress": 12, "is_ipv4": 12, "is_ipv6": 12, "is_json": 12, "is_length": 12, "is_list_of": 12, "is_list_of_email": 12, "is_low": 12, "is_match": 12, "is_not_empti": 12, "is_not_in_db": 12, "is_null_or": 12, "is_saf": 12, "is_slug": 12, "is_strong": 12, "is_tim": 12, "is_upload_filenam": 12, "is_upp": 12, "is_url": 12, "isempti": 6, "iter": 6, "j": 16, "join": 6, "kei": [6, 14], "keyword": 6, "label": 10, "languag": 8, "last": 6, "layer": 6, "layout": 8, "lazi": 6, "ldap": 13, "left": 6, "legaci": 6, "len": 6, "less": 6, "li": 10, "like": 6, "limitbi": 6, "line": 2, "list": 6, "local": 2, "locat": 6, "logic": 6, "login": 3, "lower": 6, "main": 3, "make": 6, "mani": 6, "manipul": 12, "manual": [1, 17], "map": 4, "max": 6, "memcach": 5, "memoiz": 5, "memori": 6, "messag": 16, "method": [6, 15], "microsoft": 6, "migrat": 6, "min": 6, "minim": 12, "minut": 6, "mobil": 8, "model": 6, "modern": 1, "modif": 6, "month": 6, "more": 6, "mssql": 6, "multipl": [5, 13], "mysql": 6, "name": 6, "new": 6, "new_app": 2, "nosql": 6, "note": 6, "o": 15, "oauth2": 13, "object": [4, 13, 14, 16], "ol": 10, "old": 6, "on_defin": 6, "onc": 6, "one": 6, "oper": 6, "option": [2, 10, 12], "oracl": 6, "orderbi": 6, "orderby_on_limitbi": 6, "other": [6, 12], "outer": 6, "overview": 10, "p": 10, "page": [3, 4, 8], "pam": 13, "paramet": [6, 12, 14], "permiss": 13, "pip": 2, "platform": 2, "plugin": 13, "plural": [6, 11], "podman": 2, "polici": 7, "polymodel": 6, "pool": 6, "practic": 7, "pre": 10, "prerequisit": [1, 2], "primari": 6, "primarykei": 6, "procedur": 2, "py4web": [0, 1, 6, 15, 16, 17], "pycharm": 1, "python": 1, "pythonanywher": 2, "q": 16, "queri": 6, "quick": 6, "quot": 6, "rang": 12, "raw": 6, "real": 6, "record": 6, "recurs": 6, "redefin": 6, "redi": 5, "redirect": 15, "refer": [6, 14, 17], "regexp": 6, "relat": 6, "remot": 6, "render": 6, "replic": 6, "repres": 6, "represent": 6, "request": 4, "reserv": 6, "resourc": 1, "respons": 7, "restapi": 7, "return": [4, 8, 15], "rname": 6, "rollback": 6, "rout": 4, "row": 6, "run": [2, 6], "sampl": 14, "schedul": 16, "scratch": 4, "script": 10, "search": 14, "second": 6, "secur": [6, 12], "select": [6, 10], "self": 6, "send": 16, "sequence_nam": 6, "server": [1, 5, 6, 10], "session": 5, "set": [6, 12, 14, 15], "set_password": 2, "setup": 2, "share": 5, "shell": [2, 6], "shortcut": 6, "side": [5, 10], "sidecar": 12, "signatur": 6, "simpl": 15, "singular": 6, "sort": [6, 12], "sourc": [1, 2], "span": 10, "special": [2, 12], "sql": 6, "sqlite": 6, "stand": 6, "standard": [8, 12], "startswith": 6, "startup": 2, "static": 4, "string": [6, 16], "structur": [8, 12], "style": [6, 10, 14], "substr": 6, "sum": 6, "summari": 6, "super": 8, "support": [2, 6], "synchron": 6, "syntax": 8, "t": 16, "tabl": [6, 10, 17], "table_class": 6, "tag": [6, 10, 12, 13], "task": 16, "tbodi": 10, "td": 10, "templat": [4, 5, 8, 14], "text": 12, "textarea": 10, "th": 10, "thead": 10, "thi": 1, "time": [6, 12], "tip": 1, "titl": 10, "topic": 16, "tour": 6, "tr": 10, "transact": 6, "translat": [5, 11], "trigger_nam": 6, "try": 8, "tt": 10, "tupl": 12, "tutori": 1, "two": 13, "two_factor_requir": 13, "two_factor_send": 13, "two_factor_tri": 13, "two_factor_valid": 13, "type": [6, 12], "ubuntu": 2, "ui": 13, "ul": 10, "understand": 2, "up": 15, "updat": [6, 11], "update_or_insert": 6, "update_record": 6, "upgrad": 2, "upload": [6, 12], "upper": 6, "uri": 6, "url": 10, "urlsign": 5, "us": [2, 5, 6, 8, 10, 13, 14, 16], "usag": 16, "user": 13, "util": 16, "valid": [6, 12], "validate_and_insert": 6, "validate_and_upd": 6, "valu": [4, 6], "variabl": [8, 15], "version": [2, 6], "video": 1, "view": 15, "virtual": [2, 6], "vscode": 1, "watch": 4, "web": [3, 4], "web2pi": 15, "what": 0, "while": 8, "widget": [12, 16], "without": [2, 6, 12], "workflow": 8, "workplac": 1, "world": 15, "wsgi": 2, "xml": [6, 10], "yatl": [8, 10], "year": 6}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A": [[10, "a"]], "A minimal form example without a database": [[12, "a-minimal-form-example-without-a-database"]], "A modern python workplace": [[1, "a-modern-python-workplace"]], "ANY_OF": [[12, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adding attributes to fields and tables": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced features": [[6, "advanced-features"]], "Advanced form design": [[12, "advanced-form-design"]], "Advanced topics and examples": [[16, null]], "Auth API Plugins": [[13, "auth-api-plugins"]], "Auth Plugins": [[13, "auth-plugins"]], "Auth UI": [[13, "auth-ui"]], "Authentication and authorization": [[13, null]], "Authentication using Auth": [[13, "authentication-using-auth"]], "Authorization using Tags": [[13, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[16, "autocomplete-widget-using-htmx"]], "BEAUTIFY": [[10, "beautify"]], "BODY": [[10, "body"]], "Basic form example": [[12, "basic-form-example"]], "Basic grid example": [[14, "basic-grid-example"]], "Basic syntax": [[8, "basic-syntax"]], "Built-in helpers": [[10, "built-in-helpers"]], "CAT": [[10, "cat"]], "CLEANUP": [[12, "cleanup"]], "CRUD settings": [[14, "crud-settings"]], "CRYPT": [[12, "crypt"]], "CSV (all tables at once)": [[6, "csv-all-tables-at-once"]], "CSV (one Table at a time)": [[6, "csv-one-table-at-a-time"]], "CSV and remote database synchronization": [[6, "csv-and-remote-database-synchronization"]], "Caching and Memoize": [[5, "caching-and-memoize"]], "Caching selects": [[6, "caching-selects"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[16, "celery"]], "Checkbox validation": [[12, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combining rows": [[6, "combining-rows"]], "Command line options": [[2, "command-line-options"]], "Common filters": [[6, "common-filters"]], "Complexity and security validators": [[12, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Computed fields": [[6, "computed-fields"]], "Connection failures (attempts parameter)": [[6, "connection-failures-attempts-parameter"]], "Connection pooling": [[6, "connection-pooling"]], "Connection strings (the uri parameter)": [[6, "connection-strings-the-uri-parameter"]], "Contents:": [[17, null]], "Convenience Decorators": [[5, "convenience-decorators"]], "Copy data from one db into another": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, null]], "Custom Action Buttons": [[14, "custom-action-buttons"]], "Custom Field types": [[6, "custom-field-types"]], "Custom columns": [[14, "custom-columns"]], "Custom error pages": [[4, "custom-error-pages"]], "Custom fixtures": [[5, "custom-fixtures"]], "Custom forms": [[12, "custom-forms"]], "Custom helpers": [[10, "custom-helpers"]], "Custom widgets": [[12, "custom-widgets"]], "Customizing style": [[14, "customizing-style"]], "DAL constructor": [[6, "dal-constructor"]], "DAL introduction": [[6, "dal-introduction"]], "DAL signature": [[6, "dal-signature"]], "DIV": [[10, "div"]], "Data representation": [[6, "data-representation"]], "Database cascades": [[6, "database-cascades"]], "Database folder location": [[6, "database-folder-location"]], "Database quoting and case settings": [[6, "database-quoting-and-case-settings"]], "Database validators": [[12, "database-validators"]], "Date and time validators": [[12, "date-and-time-validators"]], "Debugging py4web with PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Debugging py4web with VScode": [[1, "debugging-py4web-with-vscode"]], "Default migration settings": [[6, "default-migration-settings"]], "Default page layout": [[8, "default-page-layout"]], "Default values with coalesce and coalesce_zero": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Dictionaries and tuples with IS_IN_SET": [[12, "dictionaries-and-tuples-with-is-in-set"]], "Distributed transaction": [[6, "distributed-transaction"]], "Domain-mapped apps": [[4, "domain-mapped-apps"]], "Dynamic Web Pages": [[4, "dynamic-web-pages"]], "EM": [[10, "em"]], "Example of JwtTokenPlugin": [[13, "example-of-jwttokenplugin"]], "Example of SimpleTokenPlugin": [[13, "example-of-simpletokenplugin"]], "Example of custom Token Plugin": [[13, "example-of-custom-token-plugin"]], "Experiment with the py4web shell": [[6, "experiment-with-the-py4web-shell"]], "Exporting and importing data": [[6, "exporting-and-importing-data"]], "Expressions": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "FORM": [[10, "form"]], "Fetching a Row": [[6, "fetching-a-row"]], "Field constructor": [[6, "field-constructor"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[12, "file-upload-field"]], "First run": [[2, "first-run"]], "Fixing broken migrations": [[6, "fixing-broken-migrations"]], "Fixtures": [[5, null]], "Fixtures with dependencies": [[5, "fixtures-with-dependencies"]], "Form structure manipulation": [[12, "form-structure-manipulation"]], "Form validation": [[12, "form-validation"]], "Forms": [[12, null]], "From scratch": [[4, "from-scratch"]], "From web2py to py4web": [[15, null]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Gotchas": [[6, "gotchas"]], "Grid": [[14, null]], "Grids with checkboxes": [[14, "grids-with-checkboxes"]], "Grouping and counting": [[6, "grouping-and-counting"]], "H1, H2, H3, H4, H5, H6": [[10, "h1-h2-h3-h4-h5-h6"]], "HEAD": [[10, "head"]], "HTML": [[10, "html"]], "HTML and XML (one Table at a time)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Help, resources and hints": [[1, null]], "Helpers overview": [[10, "helpers-overview"]], "Hints and tips": [[1, "hints-and-tips"]], "How to contribute": [[1, "how-to-contribute"]], "I": [[10, "i"]], "IMG": [[10, "img"]], "INPUT": [[10, "input"]], "IS_ALPHANUMERIC": [[12, "is-alphanumeric"]], "IS_DATE": [[12, "is-date"]], "IS_DATETIME": [[12, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[12, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[12, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[12, "is-decimal-in-range"]], "IS_EMAIL": [[12, "is-email"]], "IS_EMPTY_OR": [[12, "is-empty-or"]], "IS_EQUAL_TO": [[12, "is-equal-to"]], "IS_EXPR": [[12, "is-expr"]], "IS_FILE": [[12, "is-file"]], "IS_FLOAT_IN_RANGE": [[12, "is-float-in-range"]], "IS_IMAGE": [[12, "is-image"]], "IS_INT_IN_RANGE": [[12, "is-int-in-range"]], "IS_IN_DB": [[12, "is-in-db"]], "IS_IN_DB and Tagging": [[12, "is-in-db-and-tagging"]], "IS_IN_SET": [[12, "is-in-set"]], "IS_IN_SET and Tagging": [[12, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[12, "is-ipaddress"]], "IS_IPV4": [[12, "is-ipv4"]], "IS_IPV6": [[12, "is-ipv6"]], "IS_JSON": [[12, "is-json"]], "IS_LENGTH": [[12, "is-length"]], "IS_LIST_OF": [[12, "is-list-of"]], "IS_LIST_OF_EMAILS": [[12, "is-list-of-emails"]], "IS_LOWER": [[12, "is-lower"]], "IS_MATCH": [[12, "is-match"]], "IS_NOT_EMPTY": [[12, "is-not-empty"]], "IS_NOT_IN_DB": [[12, "is-not-in-db"]], "IS_NULL_OR": [[12, "is-null-or"]], "IS_SAFE": [[12, "is-safe"]], "IS_SLUG": [[12, "is-slug"]], "IS_STRONG": [[12, "is-strong"]], "IS_TIME": [[12, "is-time"]], "IS_UPLOAD_FILENAME": [[12, "is-upload-filename"]], "IS_UPPER": [[12, "is-upper"]], "IS_URL": [[12, "is-url"]], "Indexes": [[6, "indexes"]], "Indices and tables": [[17, "indices-and-tables"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserting and updating from a dictionary": [[6, "inserting-and-updating-from-a-dictionary"]], "Installation and Startup": [[2, null]], "Installing from binaries": [[2, "installing-from-binaries"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Installing from source (globally)": [[2, "installing-from-source-globally"]], "Installing from source (locally)": [[2, "installing-from-source-locally"]], "Internationalization": [[11, null]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[14, "key-features"]], "LABEL": [[10, "label"]], "LDAP": [[13, "ldap"]], "LI": [[10, "li"]], "Lazy Tables": [[6, "lazy-tables"]], "Left outer join": [[6, "left-outer-join"]], "Legacy databases and keyed tables": [[6, "legacy-databases-and-keyed-tables"]], "Logical operators": [[6, "logical-operators"]], "Login into the Dashboard": [[3, "login-into-the-dashboard"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Making a secure connection": [[6, "making-a-secure-connection"]], "Many to many relation": [[6, "many-to-many-relation"]], "Migration control summary": [[6, "migration-control-summary"]], "Migrations": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Model-less applications": [[6, "model-less-applications"]], "More on uploads": [[6, "more-on-uploads"]], "Multiple Tags objects": [[13, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "New style virtual fields (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Note on new DAL and adapters": [[6, "note-on-new-dal-and-adapters"]], "OAuth2 with Discord": [[13, "oauth2-with-discord"]], "OAuth2 with Facebook": [[13, "oauth2-with-facebook"]], "OAuth2 with Google": [[13, "oauth2-with-google"]], "OL": [[10, "ol"]], "OPTION": [[10, "option"]], "Old style virtual fields": [[6, "old-style-virtual-fields"]], "On return values": [[4, "on-return-values"]], "One to many relation": [[6, "one-to-many-relation"]], "Oracle": [[6, "oracle"]], "Other DAL constructor parameters": [[6, "other-dal-constructor-parameters"]], "Other operators": [[6, "other-operators"]], "Other validators": [[12, "other-validators"]], "P": [[10, "p"]], "PAM": [[13, "pam"]], "PRE": [[10, "pre"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Pluralize": [[11, "pluralize"]], "Prerequisites": [[1, "prerequisites"]], "Query, Set, Rows": [[6, "query-set-rows"]], "Range, set and equality validators": [[12, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Record versioning": [[6, "record-versioning"]], "Recursive selects": [[6, "recursive-selects"]], "Reference Fields": [[14, "reference-fields"]], "Rendering rows using represent": [[6, "rendering-rows-using-represent"]], "Replicated databases": [[6, "replicated-databases"]], "Reserved keywords": [[6, "reserved-keywords"]], "Resources": [[1, "resources"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Routes": [[4, "routes"]], "Run-time field and table modification": [[6, "run-time-field-and-table-modification"]], "SCRIPT": [[10, "script"]], "SELECT": [[10, "select"]], "SPAN": [[10, "span"]], "SQLite": [[6, "sqlite"]], "STYLE": [[10, "style"]], "Sample Action Button Class": [[14, "sample-action-button-class"]], "Searching and filtering": [[14, "searching-and-filtering"]], "Self-Reference and aliases": [[6, "self-reference-and-aliases"]], "Sending messages using a background task": [[16, "sending-messages-using-a-background-task"]], "Server-side DOM": [[10, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Setup procedures": [[2, "setup-procedures"]], "Sharing sessions": [[5, "sharing-sessions"]], "Shortcuts": [[6, "shortcuts"]], "Simple conversion examples": [[15, "simple-conversion-examples"]], "Sorted options": [[12, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[12, "special-type-validators"]], "Standard widgets": [[12, "standard-widgets"]], "Static web pages": [[4, "static-web-pages"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Supported platforms and prerequisites": [[2, "supported-platforms-and-prerequisites"]], "TABLE, TR, TD": [[10, "table-tr-td"]], "TAG": [[10, "tag"]], "TBODY": [[10, "tbody"]], "TEXTAREA": [[10, "textarea"]], "TH": [[10, "th"]], "THEAD": [[10, "thead"]], "TITLE": [[10, "title"]], "TT": [[10, "tt"]], "Table constructor": [[6, "table-constructor"]], "Table inheritance": [[6, "table-inheritance"]], "Table methods": [[6, "table-methods"]], "Tagging records": [[6, "tagging-records"]], "Tags and Permissions": [[13, "tags-and-permissions"]], "Template Functions": [[8, "template-functions"]], "Templates": [[4, "templates"]], "Text format validators": [[12, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL fixture": [[5, "the-dal-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Dashboard": [[3, null]], "The Database Abstraction Layer (DAL)": [[6, null]], "The Discord server": [[1, "the-discord-server"]], "The Flash fixture": [[5, "the-flash-fixture"]], "The Form constructor": [[12, "the-form-constructor"]], "The Google group": [[1, "the-google-group"]], "The Grid object": [[14, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[16, "the-q-object"]], "The RestAPI": [[7, null]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[16, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The main Web page": [[3, "the-main-web-page"]], "The request object": [[4, "the-request-object"]], "The scheduler": [[16, "the-scheduler"]], "The sidecar parameter": [[12, "the-sidecar-parameter"]], "The sources on GitHub": [[1, "the-sources-on-github"]], "This manual": [[1, "this-manual"]], "Timing queries": [[6, "timing-queries"]], "Tutorials and video": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[13, "two-factor-authentication"]], "UL": [[10, "ul"]], "URL": [[10, "url"]], "Understanding the design": [[2, "understanding-the-design"]], "Update the translation files": [[11, "update-the-translation-files"]], "Upgrading": [[2, "upgrading"]], "User Impersonation": [[13, "user-impersonation"]], "Using Auth inside actions": [[13, "using-auth-inside-actions"]], "Using DAL without define tables": [[6, "using-dal-without-define-tables"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[10, "using-inject"]], "Using an iterator-based select for lower memory use": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "Using callable parameters": [[14, "using-callable-parameters"]], "Using local storage": [[5, "using-local-storage"]], "Using templates": [[14, "using-templates"]], "Using the DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Using the dashboard app with databases": [[6, "using-the-dashboard-app-with-databases"]], "Validation functions": [[12, "validation-functions"]], "Virtual fields": [[6, "virtual-fields"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "What is py4web?": [[0, null]], "Widgets": [[12, "widgets"]], "XML": [[10, "xml"]], "YATL Template Language": [[8, null]], "YATL helpers": [[10, null]], "_lastsql": [[6, "lastsql"]], "as_dict and as_list": [[6, "as-dict-and-as-list"]], "belongs": [[6, "belongs"]], "block and super": [[8, "block-and-super"]], "cache, cacheable": [[6, "cache-cacheable"]], "call command option": [[2, "call-command-option"]], "callbacks on record insert, delete and update": [[6, "callbacks-on-record-insert-delete-and-update"]], "case": [[6, "case"]], "children": [[10, "children"]], "commit and rollback": [[6, "commit-and-rollback"]], "count, isempty, delete, update": [[6, "count-isempty-delete-update"]], "def...return": [[8, "def-return"]], "define_table signature": [[6, "define-table-signature"]], "distinct": [[6, "distinct"]], "drop": [[6, "drop"]], "executesql": [[6, "executesql"]], "extend and include": [[8, "extend-and-include"]], "filter_in and filter_out": [[6, "filter-in-and-filter-out"]], "find": [[10, "find"]], "find, exclude, sort": [[6, "find-exclude-sort"]], "first and last": [[6, "first-and-last"]], "for...in": [[8, "for-in"]], "format: Record representation": [[6, "format-record-representation"]], "groupby, having": [[6, "groupby-having"]], "htmx": [[16, "htmx"]], "htmx usage in Form": [[16, "htmx-usage-in-form"]], "htmx usage in Grid": [[16, "htmx-usage-in-grid"]], "id: Notes about the primary key": [[6, "id-notes-about-the-primary-key"]], "if...elif...else": [[8, "if-elif-else"]], "insert": [[6, "insert"]], "join, left": [[6, "join-left"]], "like, ilike, regexp, startswith, endswith, contains, upper, lower": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "limitby": [[6, "limitby"]], "list: and contains": [[6, "list-type-and-contains"]], "migrate, fake_migrate": [[6, "migrate-fake-migrate"]], "new_app command option": [[2, "new-app-command-option"]], "on_define": [[6, "on-define"]], "orderby": [[6, "orderby"]], "orderby, groupby, limitby, distinct, having, orderby_on_limitby, join, left, cache": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "plural and singular": [[6, "plural-and-singular"]], "polymodel": [[6, "polymodel"]], "primarykey: Support for legacy tables": [[6, "primarykey-support-for-legacy-tables"]], "py4web and asyncio": [[16, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: the reference Manual": [[17, null]], "redefine": [[6, "redefine"]], "rname: Real name": [[6, "rname-real-name"]], "run command option": [[2, "run-command-option"]], "select command": [[6, "select-command"]], "sequence_name": [[6, "sequence-name"]], "set_password command option": [[2, "set-password-command-option"]], "setup command option": [[2, "setup-command-option"]], "shell command option": [[2, "shell-command-option"]], "string.format": [[16, "string-format"]], "sum, avg, min, max and len": [[6, "sum-avg-min-max-and-len"]], "table_class": [[6, "table-class"]], "trigger_name": [[6, "trigger-name"]], "try...except...else...finally": [[8, "try-except-else-finally"]], "two_factor_required": [[13, "two-factor-required"]], "two_factor_send": [[13, "two-factor-send"]], "two_factor_tries": [[13, "two-factor-tries"]], "two_factor_validate": [[13, "two-factor-validate"]], "update_or_insert": [[6, "update-or-insert"]], "update_record": [[6, "update-record"]], "utils.js": [[16, "utils-js"]], "validate_and_insert, validate_and_update": [[6, "validate-and-insert-validate-and-update"]], "version command option": [[2, "version-command-option"]], "while": [[8, "while"]], "year, month, day, hour, minutes, seconds": [[6, "year-month-day-hour-minutes-seconds"]], "\u201cAccessing OS files\u201d example": [[15, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[15, "form-and-flash-example"]], "\u201cHello world\u201d example": [[15, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[15, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[15, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[15, "returning-args-example"]], "\u201cReturning variables\u201d example": [[15, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[15, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[15, "view-example"]], "\u201cauth\u201d example": [[15, "auth-example"]], "\u201cgrid\u201d example": [[15, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-1", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-1.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "0": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "00": 7, "01": 7, "02": [6, 12], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "08": 12, "0x4e86": 12, "0x7fa533ff7640": 10, "1": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "10": [2, 6, 7, 8, 10, 11, 12, 13, 16], "100": [2, 6, 7, 8, 12, 16], "1000": [5, 6, 12, 16], "1000m": 16, "100px": 16, "1024": 12, "1048576": 12, "10px": 14, "11": [6, 12], "111111": 16, "11211": 5, "12": 12, "120": 6, "123": [10, 12], "123218": 7, "123456": 12, "125": 6, "127": [2, 3, 4, 5, 12, 13, 14], "13": [6, 12], "132635": 7, "14": [8, 12, 14], "15": [6, 12, 13, 14], "16": 12, "168": 12, "169": 12, "16px": 8, "172": [6, 12], "174": 6, "178974": 7, "19": [6, 7, 12], "192": [6, 12], "1963": 12, "198": 6, "199": 12, "19t05": 7, "1e100": 6, "1kb": 12, "1l": 6, "1mb": 12, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 10, 11, 12, 13, 15, 16], "20": [2, 7, 11, 12], "200": [7, 12, 15, 16], "2001": 12, "2002": 12, "2005": 6, "2007": 0, "2008": 12, "2009": 12, "200m": 16, "200x200": 12, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 13, "227": 6, "239": 6, "2396": 12, "24": 12, "254": 12, "255": 12, "256": 6, "2616": 12, "28": 12, "2em": 16, "2px": 16, "3": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "30": [2, 6, 8, 12], "301": 15, "309903": 7, "31": [6, 7, 12], "32": [6, 12], "322494": 7, "32768": 6, "33": [6, 12], "34": 7, "3490": 12, "3492": 12, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 16, "4": [2, 5, 6, 7, 8, 12, 14], "40": [2, 10, 16], "400": [5, 15], "401": 13, "404": [4, 5, 13], "405515": 7, "43": 6, "45": [8, 12], "451907": 7, "453020": 7, "456": 12, "466030": 7, "4e": 12, "5": [5, 6, 7, 8, 11, 12, 13, 14, 16], "50": [2, 7], "500": 16, "500m": 16, "512": 6, "53": 12, "54": 8, "559918": 7, "58": 8, "59": 12, "6": [5, 6, 7, 12, 13, 15, 16], "60": [5, 6], "63": [6, 12], "6379": 5, "64": [6, 8, 16], "65": 6, "6to4": 12, "7": [2, 7, 8, 12, 15], "70": 7, "74": 6, "75": 7, "8": [2, 6, 7, 12], "80": [4, 7, 12], "8000": [2, 3, 4, 12, 13, 14], "86": 12, "8601": 7, "8em": [8, 16], "9": [6, 7, 12, 14, 15], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [2, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17], "AND": 6, "AS": 6, "And": [1, 4, 5, 6, 13, 14, 16], "As": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "At": [6, 8], "Be": [5, 6, 8], "But": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16], "By": [2, 4, 5, 6, 12, 13, 15], "For": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "IF": 6, "IN": 6, "INTO": 6, "IT": 11, "If": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "In": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "It": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 16], "Its": [0, 2, 6, 12, 14], "NO": 6, "NOT": [6, 12, 13], "No": [2, 6, 13], "Not": 6, "ON": [6, 12], "OR": [6, 10, 12, 14], "Of": 8, "On": [2, 6, 13, 16], "One": [2, 4, 5, 12, 13], "Or": [5, 12], "Such": 4, "That": [4, 6, 15], "The": [0, 2, 8, 10, 11, 13, 15, 17], "Their": [5, 6, 15], "Then": [4, 5, 6, 10, 12, 13, 14, 16], "There": [1, 2, 5, 6, 8, 12, 13, 14, 16], "These": [0, 5, 6, 10, 12, 14], "To": [2, 4, 6, 8, 10, 11, 12, 13, 14, 16], "With": [2, 6, 12, 13, 16], "_": [2, 5, 12, 13, 16], "__dict__": 5, "__file__": [5, 7, 14], "__init__": [2, 4, 5, 6, 7, 13, 14, 15, 16], "__prerequisite__": 5, "__prerequisites__": [5, 13], "__str__": [5, 8, 10], "_action": [10, 14], "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_upd": 6, "_all_": 4, "_alt": 10, "_always_": 13, "_and": 12, "_autocomplet": 16, "_autocomplete_search_field": 16, "_before_": 6, "_before_delet": 6, "_before_insert": 6, "_before_upd": 6, "_bgcolor": 10, "_c": 10, "_check": 10, "_class": [5, 10, 12, 16], "_col": 10, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_data": 10, "_db": 6, "_dbname": 6, "_default": [2, 4], "_delet": 6, "_disabl": 10, "_document": [1, 3], "_enable_record_vers": 6, "_extra": 6, "_format": 6, "_href": [4, 5, 8, 10, 12, 14], "_hx": 16, "_id": [6, 10, 12, 16], "_insert": 6, "_listifi": 6, "_method": [10, 14], "_name": [6, 10, 12, 14, 16], "_next_url": 13, "_nonreserv": 6, "_onclick": 12, "_placehold": [12, 16], "_row": 10, "_scaffold": [5, 8, 10, 12, 13, 14, 15, 17], "_search": 16, "_select": [6, 10], "_sesson": 5, "_src": 10, "_style": [12, 16], "_tabl": [6, 12, 16], "_tablenam": 6, "_tag_": 13, "_time": 6, "_titl": [12, 16], "_type": [6, 10, 12, 14, 16], "_u": 10, "_updat": 6, "_uri": 6, "_valu": [10, 12, 14, 16], "_xmln": 10, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaaa": 8, "ab": [10, 12], "abbrevi": 12, "abc": [10, 12], "abil": 15, "abl": [1, 2, 5, 6, 12], "abort": [4, 6], "about": [0, 7, 13, 14, 15, 16, 17], "abov": [4, 5, 6, 7, 8, 12, 13, 14, 16], "abracadabra": 2, "absent": 2, "absolut": [2, 6, 15], "abspath": 4, "abstract": [5, 15, 17], "accdesc": 6, "accept": [1, 2, 4, 5, 6, 10, 11, 12, 13, 15, 16], "access": [0, 2, 4, 5, 6, 10, 12, 13, 16], "accnum": 6, "accomplish": [4, 5, 6, 13, 15], "accord": [6, 8], "accordingli": 8, "account": [2, 6], "acctyp": 6, "achiev": [5, 6, 15], "acknowledg": 17, "acquir": 6, "across": [6, 8], "act": [6, 10, 12], "actiion": 13, "action": [4, 5, 6, 10, 12, 15, 16, 17], "action_button": 14, "action_token": [5, 13], "actionfactori": 5, "activ": [2, 6, 13], "actual": [2, 5, 6, 8, 14], "ad": [0, 2, 5, 11, 12, 13, 14, 16], "adapt": [13, 16], "adapter_arg": 6, "adatabas": 13, "add": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "addit": [2, 4, 5, 6, 7, 8, 12, 13, 14], "addition": 14, "additional_class": 14, "additional_styl": 14, "address": [2, 5, 6, 12, 13], "adjust": 1, "admin": [0, 5, 6, 15], "admin_access": 5, "admin_email": 5, "admin_list": 5, "admin_onli": 5, "adminaccess": 5, "administr": 2, "advanc": [2, 13, 14, 17], "advantag": [2, 6, 8, 16], "advis": [6, 14], "affect": 6, "after": [2, 3, 5, 6, 8, 12, 13, 14, 16], "after_connect": 6, "after_delet": 6, "after_insert": 6, "after_upd": 6, "aftermath": 6, "ag": 6, "again": [2, 3, 4, 5, 6, 12, 13, 14, 16], "against": [6, 7, 10, 12, 13, 14], "aggreg": 6, "agnost": 4, "aid": 6, "aim": 0, "ajax": [8, 14, 16], "aka": [1, 13], "alchemi": 6, "alert": [5, 8, 10, 12, 15], "alex": 6, "alfaro": [0, 1], "alg": 12, "algorithm": [5, 12], "alia": [6, 12], "aliv": 16, "all": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "alloc": 12, "allow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "allowed_act": 13, "allowed_attribut": 10, "allowed_overrid": 12, "allowed_pattern": 7, "allowed_schem": 12, "almost": 5, "along": [2, 4, 10, 12, 13, 16], "alphabet": 12, "alphanumer": 12, "alreadi": [2, 3, 4, 5, 6, 10, 12, 13, 14], "also": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "alt": 10, "alter": 6, "altern": [2, 5, 6, 8, 12, 16], "although": [2, 6, 8, 12], "alwai": [0, 2, 4, 5, 6, 8, 12, 16], "am": [12, 16], "amazon": 6, "ambigu": [4, 6], "among": [6, 12], "amount": 6, "an": [0, 1, 2, 3, 5, 8, 10, 12, 13, 14, 15, 16, 17], "analogi": 15, "ancestor": 10, "anchor": 16, "andrew": 1, "angl": 8, "angular": [0, 16], "ani": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "annoi": 2, "anonym": [6, 8, 12], "anoth": [4, 5, 8, 11, 12, 13], "anotherpath": 5, "ansi": 6, "answer": 1, "anyhow": 2, "anyobj": 6, "anyth": 4, "anywai": 6, "anywher": [8, 13, 15], "api": [0, 6, 7, 10, 12, 15, 16], "api_kei": 16, "api_vers": 7, "app": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "app1": 5, "app1_sess": 5, "app2": 5, "app_fold": 15, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appar": 6, "appear": [6, 12, 14], "append": [5, 6, 10, 12, 13, 14, 16], "append_id": 14, "appl": 12, "appli": [0, 5, 6, 12, 13, 14, 16], "applic": [0, 2, 3, 4, 5, 8, 12, 13, 14, 15, 16], "appnam": [2, 4, 5, 13, 15], "appname_sess": 5, "approach": [6, 15], "appropri": [6, 12], "approv": 13, "apps_fold": 2, "apt": 13, "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "arbitrari": [4, 6, 13], "archiv": 6, "archive_db": 6, "archive_nam": 6, "aren": 6, "arg": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "arithmet": 12, "around": [1, 6, 15], "arrai": [10, 16], "arrang": [6, 12], "arriv": [0, 6], "as_ordered_dict": 6, "ascii": 12, "asid": [6, 16], "ask": [2, 5, 6, 13, 16], "aspect": 4, "assert": [6, 16], "asset": 2, "assign": [6, 8, 12, 13, 15, 16], "assist": 1, "associ": [6, 11, 12, 13], "assum": [2, 5, 6, 7, 11, 12, 15], "async": 16, "asynchron": 16, "asyncio": 17, "attach": [5, 6, 13, 15], "attack": [5, 10], "attempt": [12, 13], "attent": [4, 6], "attr": [12, 14, 16], "attribut": [4, 5, 10, 12, 14, 15, 16], "attributes_plugin": 16, "attributespluginhtmx": 16, "aug": 12, "august": 12, "auth": [0, 2, 4, 6, 8, 10, 16, 17], "auth_group": 13, "auth_plugin": 13, "auth_simple_token": 13, "auth_us": [5, 6, 13, 16], "auth_user_tag_group": [6, 13], "auth_user_tagged_group": 13, "authent": [5, 6, 14, 17], "author": [5, 6, 7, 17], "auto": [6, 14], "auto_import": 6, "auto_process": [14, 16], "autocomplete_queri": 16, "autodelet": 6, "autogener": 6, "automat": [2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "avail": [1, 2, 6, 8, 10, 13, 15, 16], "averag": 6, "avoid": [0, 1, 2, 5, 6, 8, 12, 13], "awai": 6, "awar": 6, "awesom": [8, 14], "axel": 0, "axolotl": 0, "b": [5, 6, 8, 10, 12, 15, 16], "back": [5, 6, 12], "backend": [4, 6], "background": [2, 4, 12, 17], "backport": 6, "backslash": 4, "backup": [2, 6, 12], "backward": [0, 6, 12], "bad_dai": 6, "bail": 6, "banana": 12, "bar": [8, 14], "barrier": 0, "base": [0, 2, 3, 4, 5, 7, 8, 12, 13, 14, 15, 16], "base64": [6, 8, 16], "base_dn": 13, "baseadapt": 6, "bash": 2, "basic": [0, 1, 2, 5, 6, 16, 17], "bat": 2, "batman": [7, 12, 14], "battl": 0, "bearer": 13, "beaslei": 0, "becaus": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 16], "becom": [12, 16], "bed": 11, "been": [0, 2, 5, 6, 8, 12, 13], "befor": [1, 2, 5, 6, 8, 10, 12, 13, 14], "before_delet": 6, "before_insert": 6, "before_upd": 6, "begin": [8, 12, 13, 14], "beginn": 2, "behav": [6, 14], "behavior": [4, 5, 6, 10, 12, 15, 16], "behaviour": [2, 4, 6, 14], "being": [1, 4, 5, 6, 7, 8, 12, 16], "believ": [0, 5], "belong": [13, 15], "below": [5, 6, 7, 12, 14], "benefit": [6, 16], "best": [1, 2, 5, 6, 11, 14], "better": [0, 1, 2, 4, 6, 14, 15, 16], "between": [5, 6, 10, 12, 15], "beyond": 12, "bgcolor": 10, "big": [6, 15], "bigint": 6, "bigint_id": 6, "bin": 2, "binari": 6, "bind": 16, "birthplac": 6, "bit": [12, 13], "bitbucket": 1, "black": [8, 12], "blank": [12, 14], "blink": 16, "blob": 6, "block": [4, 10, 13, 16], "blockquot": 10, "blog": [1, 6, 10], "blog_post": 6, "blue": [4, 6, 12, 15], "bmp": 12, "boat": 6, "bob": 6, "bodi": [4, 8, 13, 14, 16], "boilerpl": 5, "bold": 10, "book": [1, 6], "boolean": [6, 14], "boost": [6, 8], "bootstrap": 14, "border": 16, "born": 6, "botaro": 0, "both": [1, 2, 4, 5, 6, 8, 12, 13, 15], "bottl": [0, 4, 5, 8, 15], "bottle_app": 2, "bottleneck": 16, "bottlepi": [4, 5], "bottom": 12, "boundari": 12, "box": [0, 6, 12], "br": [8, 10], "bracket": [0, 8, 12], "branch": [1, 2], "break": [2, 6, 12], "breez": 1, "briefli": 2, "broke": 0, "broken": [0, 12], "brows": [2, 3, 14, 16], "browser": [1, 2, 3, 5, 7, 8, 13, 14, 16], "bruce": [7, 14], "bsd": 1, "buffer": [4, 6], "bug": [1, 3, 6], "build": [1, 2, 4, 5, 6, 10, 12, 14, 16], "builder": 16, "built": [0, 1, 4, 5, 6, 8, 12, 14, 16, 17], "bulk_insert": 6, "bulletproof": 6, "bulma": [12, 14, 16], "bunch": 2, "buse": 16, "button": [3, 4, 5, 10, 12, 16, 17], "bypass": [12, 13, 14], "byte": [6, 12], "bytecod": 8, "c": [1, 2, 3, 5, 6, 8, 10, 12, 15], "ca": 12, "cach": [0, 2, 4, 12, 17], "cache_db_select": 6, "calcul": 6, "calendar": 14, "call": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "callabl": [10, 12], "callback": [12, 13, 16], "callback_url": 13, "caller": 13, "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "cancel": [12, 16], "cancel_attr": 16, "cane": [11, 16], "cani": [11, 16], "cannot": [2, 4, 5, 6, 8, 10, 12, 13, 16], "capabl": [0, 13, 14, 16], "capit": 16, "captur": 16, "car": 6, "card": 6, "care": [5, 6, 8, 15, 16], "carl": 6, "carri": 15, "carrol": 0, "cart": 5, "case": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 15, 16], "case_sensit": 6, "cassio": 0, "catch": 6, "caus": [6, 12], "caveat": [6, 8, 15, 17], "cd": 2, "cdnj": [8, 14], "celeri": 17, "center": [5, 8], "centuri": 12, "ceo": [7, 14], "certain": [6, 8, 12, 14], "certif": 2, "cf": 4, "cgi": 12, "chair": 6, "challeng": 13, "chang": [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "change_email": 13, "change_password": [8, 13], "changed_fil": 4, "channel": 1, "chapter": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15], "char": [6, 13], "charact": [4, 6, 10, 12], "charg": [2, 15], "chat": 1, "check": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "check_": 16, "check_reserv": 6, "checkbox": [8, 10, 17], "checkboxwidget": 12, "cherri": 12, "chicago": 6, "children": 14, "choic": [1, 4, 12, 14], "choos": [1, 6, 12, 13], "choosen": 6, "chose": 4, "chosen": 6, "chrome": [3, 16], "circular": 6, "circumst": 5, "cit0801": 7, "cit0802": 7, "cit1601": 16, "cite": [10, 12], "clark": [7, 14], "clash": 12, "class": [5, 6, 8, 10, 12, 13, 15, 16], "class_inner_except": 16, "class_styl": 14, "claudia": 6, "claus": [6, 8], "clean": [1, 10], "cleaner": 5, "cleanup": 0, "clear": [6, 12], "clearli": [6, 16], "clever": 12, "cli": 2, "click": [3, 6, 10, 12, 14, 16], "clickabl": 14, "client": [0, 7, 12, 13, 16], "client_id": 13, "client_ip": 5, "client_secret": 13, "clientsid": 16, "clock": 12, "clone": [2, 4, 6, 16], "close": [5, 6, 8, 10], "closer": 6, "cloudflar": [8, 14], "cmd": 2, "cn": 13, "co": [6, 12], "coa": 6, "code": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "col": 10, "collaps": [7, 10], "collat": 6, "collect": [0, 2, 15], "colnam": 6, "colon": 8, "color": [4, 6, 8, 10, 12, 16], "color_identifi": 4, "colspan": 10, "column": [6, 17], "com": [0, 1, 3, 4, 5, 8, 10, 13, 14, 16], "combin": [5, 10, 12, 14], "come": [0, 4, 5, 6, 8, 12, 13, 14, 15, 16], "comma": [2, 6, 16], "command": [3, 4, 8, 10, 17], "comment": [6, 10], "commit": [4, 5, 7, 14, 15, 16], "common": [2, 3, 4, 5, 8, 12, 13, 15, 16], "common_filt": 6, "commun": [0, 5, 6], "compact": 6, "compani": 14, "compar": [0, 6, 13, 15], "comparison": [6, 12, 13], "compat": [0, 1, 6, 10, 12], "competitor": 0, "compil": [4, 8, 10, 12], "compiled_css": 4, "complain": 6, "complet": [0, 6, 8, 10, 12, 13, 16], "complex": [1, 2, 4, 5, 6, 8, 10, 13, 15, 16], "compliant": [6, 16], "complic": 5, "compon": [0, 3, 4, 5, 8, 10, 12, 13, 16], "component_1": 16, "compos": [2, 5], "compound": 10, "compress": [3, 4], "compris": 3, "compromis": 0, "comput": [1, 16, 17], "concaten": [6, 10], "conceiv": 6, "concept": [0, 13], "concern": 6, "concurr": [0, 2, 6, 12, 16], "cond": 5, "condit": [6, 8, 12, 13, 17], "condition": 6, "config": [2, 4], "configur": [1, 2, 4, 5, 6, 12, 13, 15, 16], "confirm": [2, 12, 13, 14, 16], "conflict": [0, 2, 4, 6], "confus": 6, "conjunct": 6, "conn": 5, "connect": [3, 4, 5, 12, 15], "connectionpool": 6, "consequ": [6, 12, 16], "consid": [5, 6, 8, 10, 12, 14, 15, 16], "consider": 6, "consist": [5, 6, 8, 14, 15], "consol": [2, 10, 13, 16], "constant": 12, "constrain": 15, "constraint": [0, 4, 6], "construct": [4, 6], "constructor": [5, 10, 13, 17], "consult": 6, "contain": [0, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "contect": 8, "content": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "content_typ": 16, "context": [3, 5, 6, 8, 13], "contextlib": 6, "continu": [6, 8, 16], "contribut": [0, 17], "control": [2, 4, 5, 8, 10, 12, 13, 14, 15, 16], "conveni": [6, 17], "convent": [4, 6, 8, 12, 15], "convers": [12, 17], "convert": [1, 4, 6, 10, 12], "cooki": [0, 4, 6, 12, 13, 16], "copi": [2, 3, 8, 10, 14, 17], "copyfileobj": 6, "core": [2, 4, 5], "corei": 1, "corner": 14, "cornerston": 0, "correct": [1, 4, 6, 13], "correct_cod": 13, "correctli": [4, 12], "correspond": [2, 3, 4, 6, 10, 11, 13, 14, 15], "corrupt": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 10, 12, 13, 15], "count": [5, 7, 13, 14, 16], "counter": [5, 6, 16], "counterpart": 4, "coupl": [14, 16], "cours": [1, 8], "cover": 4, "cp": 2, "creat": [0, 1, 2, 3, 5, 6, 8, 10, 12, 13, 14, 15, 16, 17], "create_form": 12, "create_th": 12, "created_bi": 6, "created_on": 6, "creation": [2, 6, 13], "creativ": [12, 13], "credential_decod": 6, "criteria": [6, 12], "critic": 2, "cross": [5, 6, 10], "crossorigin": 8, "crt": [2, 6], "crud": [3, 12, 16], "cruz": 1, "crypt": 2, "csrf": [5, 12], "csrf_protect": 12, "csrf_session": 12, "css": [1, 4, 5, 8, 10, 12, 13, 14, 16], "csv": 15, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "curl": 13, "current": [2, 5, 6, 8, 10, 13, 14, 15, 16], "current_record": 6, "current_us": [5, 13], "cursor": [6, 16], "curt": 6, "custom": [0, 2, 8, 15, 16, 17], "custom_check": 12, "custom_qualifi": 6, "customiz": [0, 12, 14], "cx_oracl": 6, "cyclic": 6, "czech": 11, "d": [1, 2, 7, 10, 12], "daemon": [2, 16], "dai": [12, 13], "dal": [2, 4, 7, 12, 13, 14, 16, 17], "dan": 0, "dancer": 13, "danger": 15, "dash": 12, "dashboard": [0, 2, 4, 5, 8, 12, 16, 17], "dashboard_mod": 2, "data": [0, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "data_label": 16, "databas": [0, 1, 3, 4, 7, 13, 14, 15, 16, 17], "datalist": 16, "date": [2, 6, 14], "datetim": [4, 5, 6, 7, 12, 13, 16], "datetimewidget": 12, "daunt": 1, "db": [2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_folder": [5, 7, 14], "db_name": 6, "db_uid": 6, "dbadmin": 4, "dbio": 12, "dbo": 6, "dbset": 12, "dbstore": 5, "dc": 13, "dd": 12, "de": [0, 1, 6, 11], "deal": [1, 6, 16], "dealfaro": 0, "debounc": 16, "debug": [2, 4, 5, 6, 8], "debugg": [1, 15], "debugpi": [1, 2], "decid": [6, 12, 13, 14], "decim": [4, 6, 12], "declar": [0, 4, 5, 6], "decod": 6, "decode_credenti": 6, "decor": [1, 4, 6, 15, 17], "decreas": 13, "dedic": [1, 4, 5, 10, 15], "def": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "default": [0, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "defer": [6, 16], "defin": [2, 4, 5, 8, 12, 13, 14, 15, 16], "define_t": [5, 7, 12, 13, 14, 15], "definit": [6, 7, 12, 14, 15], "degre": 6, "del": [6, 10], "delai": [6, 16], "deleg": 6, "delet": [2, 4, 7, 12, 13, 14, 16], "delete_record": 6, "delimit": [0, 5, 6, 8, 15], "deliv": 16, "delta": 16, "demand": 6, "demo": [1, 2, 16], "deni": 7, "denorm": [6, 7], "depend": [0, 2, 3, 4, 6, 8, 12, 13, 14, 15], "deploi": 2, "deploy": 1, "deployment_tool": 2, "deprec": [6, 12, 16], "deriv": [6, 12], "desc": 14, "descend": 10, "describ": [2, 3, 4, 5, 6, 12], "descript": [6, 7, 12, 13, 14], "design": [0, 4, 6, 8, 13, 16, 17], "desir": [5, 8, 12, 13], "dest": [4, 6], "detail": [0, 1, 2, 5, 6, 7, 8, 10, 12, 14, 16], "detail_field": 12, "determin": [4, 5, 6, 8, 11, 12, 13, 14], "determinist": 5, "dev": 13, "develop": [0, 1, 2, 4, 5, 6, 13, 14, 15, 16], "development_tool": 2, "devic": 8, "di": [0, 5], "diagram": 7, "dialect": 6, "dict": [4, 5, 6, 11, 12, 13, 14, 15, 16], "dictionari": [4, 5, 10, 11, 15], "did": [0, 4, 6, 16], "didn": 2, "differ": [0, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16], "difficult": [2, 16], "digit": [4, 6, 12, 13], "dimens": 12, "diminuish": 13, "dir": [2, 12, 16], "direct": [2, 4, 5, 6, 8, 12], "directli": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "directori": 13, "dirnam": [5, 7, 14], "disabl": [6, 7, 10, 12, 14], "disallow": [6, 12], "discard": 6, "discord_client_id": 13, "discord_client_secret": 13, "discount": 6, "discounted_tot": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discov": [11, 13], "discoveri": 2, "discrimin": 13, "discuss": [1, 3, 6, 8, 10, 12], "disk": 5, "dismiss": [5, 15], "displai": [3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "distinct": [8, 12], "distinguish": 13, "distint": 13, "distributed_transaction_commit": 6, "ditch": 0, "div": [4, 5, 8, 12, 14, 15, 16], "divis": [8, 10, 12], "divmod": 6, "django": [0, 1, 6, 15], "do": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "do_connect": 6, "doc": [1, 16], "dockerfil": 2, "doctor": 6, "doctyp": [8, 14], "document": [3, 5, 6, 8, 10, 12, 16], "doe": [0, 2, 5, 6, 8, 12, 13, 14, 15, 16], "doesn": [5, 6, 14], "dog": [11, 12, 16], "doh": 12, "dom": [8, 17], "domain": [12, 13, 17], "don": [1, 2, 3, 4, 6, 8, 12, 13, 14], "done": [2, 4, 5, 6, 8, 12, 13, 14, 15], "dot": 12, "doubl": [2, 6, 8], "doubt": 14, "down": [6, 12, 16], "downfal": 14, "download": [2, 12], "download_url": 12, "downsid": [6, 15], "dramat": 6, "driven": 0, "driver": 6, "driver_arg": 6, "drop": 12, "dropdown": [12, 14, 16], "dsn": 6, "due": [6, 7, 12], "dumb": 13, "dummi": [6, 8], "dummyrespons": 8, "dump": [5, 6, 16], "dumpfil": 6, "duplic": 6, "durabl": 7, "dure": [6, 14], "dynam": [6, 7, 8, 10, 12, 13, 17], "e": [2, 4, 5, 6, 7, 8, 10, 12, 13, 16], "each": [2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "earli": [5, 6], "earlier": [13, 16], "easi": [0, 5, 6, 8, 10, 12], "easier": [0, 6, 7, 8], "easiest": [6, 13], "easili": [4, 5, 6, 8, 10, 12, 14], "ebook": 1, "echo": 4, "ecosystem": 16, "edg": 16, "edit": [0, 2, 3, 4, 8, 10, 12, 13, 14, 15, 16], "edit_sidecar": 16, "editor": [1, 8], "educ": 2, "effect": [3, 5, 6, 12], "effici": [0, 1, 5, 6, 15], "effort": 1, "efg": 10, "either": [4, 6, 10, 12], "el": 10, "element": [6, 8, 10, 12, 14, 16], "els": [2, 5, 6, 12, 13, 14, 15, 16], "elt": 16, "emac": 8, "email": [2, 5, 8, 12, 13, 15, 16], "emails_onvalid": 12, "emb": 10, "embed": [5, 8, 12], "ember": 12, "emerg": 16, "emphas": 10, "employe": [5, 14], "empti": [2, 4, 6, 12, 16], "empty_regex": 12, "en": [5, 7, 16], "enabl": [1, 5, 6, 7, 10, 13, 15, 16], "enable_record_vers": 6, "encapsul": [8, 10], "enclos": [6, 8], "encod": [5, 6, 12, 16], "encount": 4, "encrypt": [0, 2, 5, 13], "end": [4, 6, 8, 10, 12, 13, 14, 15, 16], "endpoint": [13, 16], "enforc": [5, 6, 12, 15], "engin": [6, 12], "english": 5, "enhanc": 6, "enough": [12, 13, 14], "enqueu": 16, "enqueue_run": 16, "ensur": [4, 6, 12], "enter": [4, 5, 10, 12, 13], "enterpris": [1, 13], "entir": [6, 8, 15, 16], "entiti": 6, "entity_quot": 6, "entri": [0, 6, 7, 11, 12, 14, 15], "entropi": 12, "env": 15, "envelop": 16, "environ": [0, 1, 4, 5, 6, 15], "epub": 1, "eq": 7, "equal": [6, 7, 10, 13, 16], "equip": 5, "equival": [4, 5, 6, 10, 12, 15], "errlog": 5, "error": [1, 2, 3, 5, 6, 7, 8, 10, 12, 15, 16, 17], "error_messag": 12, "error_pag": 4, "errorlog": 2, "escap": [6, 8, 10], "especi": [0, 2, 4, 5, 6, 12, 13], "esprima": 4, "establish": [6, 15], "etc": [4, 5, 6, 7, 11, 15], "eval": 16, "evalu": [5, 6, 7, 8, 12, 16], "even": [1, 4, 5, 6, 8, 10, 12, 14, 15, 16], "event": [2, 6, 16], "event_tim": 6, "eventu": 5, "ever": 6, "everi": [0, 2, 4, 5, 6, 13, 14, 15, 16], "everybodi": 13, "everyon": [0, 1], "everyth": [2, 15, 16], "evolut": 0, "ex": 2, "exact": [13, 15], "exactli": [5, 6, 8], "exampl": [1, 2, 3, 4, 5, 6, 8, 10, 11, 17], "excel": [1, 14], "except": [2, 4, 5, 6, 10, 12, 13, 16], "excerpt": 8, "exclud": 12, "exclus": [0, 5, 6, 12, 13], "execut": [1, 2, 5, 6, 8, 10, 12, 15, 16], "exercis": [5, 13], "exist": [2, 5, 6, 12, 13, 14, 16], "exit": [2, 5], "exp": [4, 6], "expand": [1, 3], "expect": [2, 4, 5, 6, 10, 12, 15], "experi": [1, 12, 13], "experienc": 0, "experiment": [2, 5], "expir": [5, 6, 13], "explain": [4, 5, 6, 12, 14], "explanatori": 6, "explicit": [0, 2, 4, 5, 6, 12, 13], "explicitli": [0, 2, 5, 6, 8, 10, 12, 16], "explict": 6, "explor": 3, "export": 17, "export_to_csv_fil": 6, "expos": [0, 3, 4, 5, 6, 7, 13], "express": [4, 7, 8, 10, 11, 12, 14, 16], "extend": [0, 5, 6, 12, 13, 15, 16], "extens": [3, 6, 12, 15], "extern": [2, 4, 6, 13], "extra": [5, 6, 12, 13], "extra_field": 5, "extract": [6, 12, 16], "f": [4, 5, 6, 13, 14, 15, 16], "fa": 14, "face": [1, 6], "facebook": [0, 5], "facilit": 4, "fact": [4, 5, 6, 15], "factori": [5, 6, 10], "fail": [3, 6, 8, 12, 13, 16], "failur": [4, 12, 16], "fake": 6, "fake_migrate_al": 6, "fall": 12, "fals": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "famou": [1, 6], "fanci": 16, "far": [6, 16], "fast": [0, 4, 13, 16], "faster": [0, 6, 8, 15], "father": 6, "father_id": 6, "favorite_color": 5, "fb00": 12, "fdb": 6, "fe80": 12, "feasibl": [2, 12], "featur": [0, 2, 4, 7, 8, 13, 15, 17], "februari": 5, "feed": 6, "fetch": [15, 16], "fetchon": 6, "few": [6, 8, 13, 16], "ff00": 12, "fid": 6, "field": [2, 4, 5, 7, 10, 13, 15, 16, 17], "field1": 6, "field2": 6, "field3": 6, "field_id": 14, "fieldnam": [6, 16], "fieldstorag": 12, "fifth": 14, "file": [0, 1, 2, 3, 5, 6, 8, 10, 13, 14, 16, 17], "file_cont": [6, 16], "file_nam": [6, 16], "file_path": 15, "filenam": [2, 4, 5, 6, 12], "filep": 4, "filepath": 4, "filesystem": [0, 4, 5, 6], "fileuploadwidget": 12, "fill": [12, 16], "filter": [2, 4, 7, 12, 13], "filter_in": 12, "filter_out": 14, "final": [1, 2, 4, 6, 11, 13, 14], "find": [1, 2, 4, 8, 11, 12, 13, 14, 16], "find_by_tag": 13, "find_match": 11, "findal": 12, "fine": [2, 13, 14], "fire": 6, "firebird": 6, "firebird_embed": 6, "firebirdadapt": 6, "firebirdembed": 6, "firebirdembeddedadapt": 6, "firefox": [3, 16], "firfox": 16, "first": [0, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "first_nam": [4, 5, 13, 14], "first_onli": 10, "first_row": 6, "first_row_dict": 6, "fist": 12, "fit": 12, "five": 6, "fix": [5, 15], "fixtur": [0, 2, 4, 6, 10, 13, 15, 17], "fk_field": 16, "fk_tabl": 16, "fkdaog": 8, "flag": 12, "flash": [8, 12, 16, 17], "flask": [0, 15], "flexibl": [0, 6, 13, 14, 16], "flight": 7, "float": [4, 12], "flow": 13, "fn": 2, "focu": 16, "fold": 6, "folder": [1, 2, 3, 4, 5, 7, 11, 12, 14, 15], "follow": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "font": [8, 12, 14], "foo": 14, "foot": 13, "footer": [8, 10], "forbid": 12, "forbidden": 12, "forc": [2, 5, 6, 12, 13], "foreground": 12, "foreign": [1, 14], "foreign_key_check": 6, "forgeri": 5, "forget": [6, 14], "form": [0, 4, 5, 6, 7, 11, 13, 14, 17], "form_bas": 12, "form_custom_widget": 12, "form_exampl": 12, "form_minim": 12, "form_nam": 12, "form_widget": 12, "format": [4, 5, 7, 10, 11, 13, 14], "formatt": 16, "formdata": 7, "former": 6, "formstyl": [12, 14, 16], "formstylebootstrap4": 12, "formstylebulma": [12, 14, 16], "formstyledefault": [12, 14], "formstylefactori": 16, "forum": 3, "forward": [1, 3], "found": [2, 4, 5, 6, 12], "four": [2, 6], "fourth": 12, "fp": 5, "fr": 11, "fragment": 4, "framework": [0, 1, 2, 4, 5, 6, 12, 13, 14, 15, 16], "free": [1, 5, 6, 13], "freetext": 16, "frequent": [1, 6, 12], "friendli": [0, 5, 8], "from": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17], "from_add": 16, "from_addr": 16, "from_address": 13, "from_email": 16, "front": [0, 4, 8, 12, 16], "frontend": 16, "fsstorag": 5, "ftp": 12, "full": [2, 4, 5, 6, 8, 12, 14, 16], "fulli": [1, 4, 5, 6, 12], "fullnam": 6, "func": [2, 5], "function": [0, 2, 4, 5, 6, 7, 10, 13, 14, 15, 16], "functool": 16, "furnitur": 5, "further": 13, "futur": [5, 15, 16], "g": [1, 2, 6, 10, 12], "gain": 2, "gather": 14, "gavgavian": 1, "gender": 6, "gener": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "generate_time_based_cod": 13, "german": 11, "get": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17], "get_cooki": 16, "get_us": [4, 5, 13, 15], "get_var": [7, 15], "getvalu": 6, "gevent": [1, 2], "gia": 5, "gib": 6, "gif": 12, "git": [1, 2], "github": [2, 3, 4, 5, 6, 14], "gitlat": 1, "give": [0, 2, 4, 5, 6, 8, 13, 14], "given": [2, 4, 5, 6, 8, 12, 13, 16], "global": [0, 4, 5, 6, 8, 13, 15, 16], "go": [1, 2, 4, 6, 8, 14, 16], "goal": 0, "goe": [6, 12], "good": [2, 3, 12], "googl": [0, 3, 5, 8, 12, 14], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gotcha": 17, "gotta": 8, "grant": 5, "granular": 6, "granulari": 12, "graphic": 6, "graphql": 7, "great": 16, "greater": 7, "greedi": 4, "green": [4, 6, 12, 15], "grid": [0, 4, 13, 17], "grid_class_styl": 14, "grid_tutori": 14, "gridactionbutton": 14, "gridclassstyl": 14, "gridclassstylebulma": 14, "group": [0, 2, 3, 5, 13, 15], "group_nam": 13, "groupbi": 12, "grow": [0, 6, 16], "gt": [7, 10], "guarante": [5, 6, 8, 15, 16], "guid": 2, "guidelin": 13, "gunicorn": 2, "gz": 12, "h": [2, 12, 13], "h1": [4, 8], "h2": [8, 12], "ha": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "habit": 2, "had": 6, "hamburg": 8, "hand": [2, 6, 16], "handi": 6, "handl": [2, 4, 5, 6, 12, 13, 14, 15, 16], "handler": 4, "hang": 1, "happen": [5, 6], "hard": 15, "hardcod": 5, "has_membership": 13, "hash": [2, 6, 12], "have": [0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "he": 6, "head": [4, 8, 12, 14], "header": [4, 5, 6, 8, 10, 13, 14, 16], "height": [12, 14, 16], "hello": [4, 5, 6, 8, 10, 12, 13, 16], "help": [2, 6, 7, 8, 10, 12, 15, 17], "helper": [0, 4, 5, 6, 8, 12, 14, 15, 16, 17], "henc": [0, 2, 4, 5, 6, 12, 13], "her": 12, "here": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "hesit": 6, "hex": 12, "hh": 12, "hi": [6, 12, 16], "hidden": [6, 12, 16], "hidden_div": 16, "hidden_input": 16, "hide": [6, 14], "hierarch": [6, 13], "high": [12, 13], "higher": 6, "highest": 12, "highli": [1, 4, 14], "highlight": [1, 8], "hint": [14, 17], "histor": [0, 6], "histori": 12, "hit": [2, 6], "hmac": 12, "ho": 5, "hold": [6, 16], "home": 8, "hood": 13, "host": [1, 2, 4, 5, 12, 13], "hour": 12, "hous": 15, "housekeep": 6, "how": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17], "howev": [4, 6, 8, 10, 12, 13, 14, 16], "href": [8, 10, 13, 14], "hs256": 5, "html": [1, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16], "html5": 8, "htmx": [14, 17], "htmx_form": 16, "htmx_form_demo": 16, "htmx_grid": 16, "htmx_list": 16, "htmxautocompletewidget": 16, "http": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "httrespons": 5, "hulk": 12, "hundr": 16, "hx": 16, "hybrid": 4, "hypertext": 16, "hyphen": 10, "i": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "i18n": [5, 11], "ibm_db_dbi": 6, "icon": [8, 14], "id": [0, 1, 2, 3, 7, 8, 10, 12, 13, 14, 15, 16], "id1": 6, "id2": 6, "id_field_nam": 14, "id_valu": 14, "idea": 6, "ident": [6, 7, 13, 15], "identifi": [4, 5, 6, 10, 12, 13], "idn": 12, "ie": 12, "ietf": 12, "ifram": 12, "ignor": [4, 5, 6, 8, 10, 12, 14, 16], "ignore_attribute_plugin": 14, "ignore_common_filt": [6, 12], "ignore_field_cas": 6, "iip": 6, "illustr": [6, 8], "imag": [6, 8, 10, 12], "image_fil": 6, "imagin": [5, 6, 8, 16], "imap": 6, "imapadapt": 6, "imaplib": 6, "img": [4, 12], "immedi": [2, 6, 14], "immens": 0, "implement": [4, 5, 6, 8, 12, 13, 15, 16], "impli": 7, "implic": 5, "implicit": 6, "implicitli": [6, 12], "import": [0, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "import_and_sync": 6, "import_from_csv_fil": 6, "impos": 8, "impot": 12, "improv": [12, 13, 14], "includ": [0, 4, 5, 6, 7, 10, 12, 14, 15, 16], "include_action_button_text": 14, "include_path": 4, "inclus": [0, 12], "incom": 2, "incorrect": [4, 8], "increas": 5, "increment": 6, "inde": [0, 5], "indent": 8, "independ": [0, 4, 5, 6, 13], "index": [1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "index_form": 5, "indic": [4, 6, 12, 13, 15, 16], "individu": [0, 2, 5, 6, 7, 8, 12], "ineffici": [5, 6], "infinit": 6, "info": [2, 4, 5, 6, 13], "inform": [1, 5, 6, 7, 12, 13, 15, 17], "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingr": 6, "ingredi": 4, "ingresadapt": 6, "ingresdbi": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "init": 14, "initi": [0, 2, 4, 5, 8, 12], "inject": [6, 8, 12, 14, 17], "inlin": [10, 16], "inner": [5, 8, 16], "input": [2, 4, 5, 6, 8, 12, 13, 14, 16], "insensit": [6, 12], "insert": [3, 5, 7, 8, 12, 13, 14, 16], "insid": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "inspector": 8, "inspir": 7, "instal": [0, 1, 3, 4, 5, 6, 13, 16, 17], "instanc": [4, 5, 6, 10, 12, 13, 14, 16], "instanti": [6, 13, 14, 15], "instead": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "instruct": [2, 12], "int": [4, 6, 12, 13, 15], "int2ip": 6, "integ": [2, 4, 6, 7, 10, 12, 16], "integr": [0, 1, 4, 8, 16], "intend": [6, 16], "intention": 12, "interact": [0, 5], "interchang": 13, "interfac": [0, 3, 5, 6, 14, 15, 16], "intermedi": 6, "intern": [0, 1, 4, 5, 6, 8, 13, 14], "internation": [0, 4, 5, 12, 15, 17], "interpret": [0, 6, 7, 10], "intersect": 6, "introduc": [0, 8], "introduct": [1, 2, 17], "intuit": 12, "invalid": [2, 5, 6, 12, 13], "invert": [6, 12], "invis": 6, "involv": [6, 8, 14, 15], "io": [2, 6], "ip": [2, 6, 12], "ip2int": 6, "ip_list": 13, "ipaddr": 6, "ipaddress": 13, "iptabl": 2, "ipv4": [6, 12], "ipv4address": 13, "ipv4network": 13, "ipv6": 12, "is_6to4": 12, "is_act": 6, "is_automat": 12, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_imperson": 13, "is_in_db": [6, 14], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_loc": 12, "is_localhost": 12, "is_multicast": 12, "is_not_empti": 6, "is_null_or": 14, "is_priv": 12, "is_publ": 6, "is_reserv": 12, "is_rout": 12, "is_teredo": 12, "is_tim": 6, "is_valid": 5, "isdir": [7, 14], "isn": [5, 12, 14], "iso": 7, "isol": 16, "issu": [0, 3, 4, 6, 13], "ital": 10, "italian": [5, 11], "item": [6, 7, 8, 10, 12], "itemize1": 8, "itemize2": 8, "iter": [8, 12], "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "itself": [1, 2, 6, 12, 16], "iv": 6, "j": [0, 4, 5, 8, 11, 15, 17], "javascript": [1, 4, 7, 10, 16], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlite": 6, "jdbcsqliteadapt": 6, "jetbrain": 1, "jim": [0, 1, 14], "jinja2": 5, "job": [7, 12, 14], "john": [0, 6], "join": [4, 5, 7, 12, 13, 14, 15, 17], "jonathan": 6, "journalist": [7, 14], "journei": 1, "jpeg": 12, "jpg": 12, "jpsteil": 14, "jqueri": [10, 12, 16], "jsl": 16, "json": [0, 1, 2, 4, 5, 6, 7, 11, 12, 15, 16], "jump": 1, "junk": 6, "just": [1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 16], "jwt": 5, "jwt_token_plugin": 13, "jython": 6, "k": [5, 8, 15], "karg": 10, "kbyte": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 10, 12, 14, 15], "keep_valu": 12, "kei": [2, 4, 5, 7, 10, 11, 12, 13, 16, 17], "keller": 0, "ken": 6, "kent": [7, 14], "kevin": 0, "keycod": 16, "keyup": 16, "keyword": [8, 10], "kfield": 16, "kill": 16, "kind": [0, 4, 13], "kinterbasdb": 6, "know": [1, 2, 4, 5, 6, 8, 13, 14], "knowledg": 1, "known": [6, 8, 13], "known_express": 11, "krzysztof": 0, "ktabl": 16, "kwarg": [6, 16], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 12], "label": [6, 7, 8, 12, 14, 15, 16], "lack": [6, 12, 15], "lambda": [5, 6, 10, 12, 14, 16], "lang": 5, "languag": [0, 1, 4, 5, 11, 15, 16, 17], "larg": [6, 12], "larger": 0, "last": [1, 5, 8, 12, 13, 14, 16], "last_insert_id": 6, "last_nam": [5, 13, 14], "last_row": 6, "lastdot": 12, "lastrowid": 6, "later": [2, 4, 5, 6, 8, 10, 12, 13, 14], "latest": [2, 6, 15], "latin1": 6, "latter": [6, 12, 15], "launch": [1, 2], "lax": 5, "layer": [5, 15, 17], "layout": [12, 13, 14, 15, 16, 17], "lazi": [1, 2, 4, 15], "lazili": 16, "lazy_t": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 13, "ldap_set": 13, "ldapplugin": 13, "lead": [5, 14], "leader": 16, "learn": [1, 6], "least": [1, 2, 6, 12, 15, 16], "leav": [5, 6, 13], "left": [8, 12, 14, 16], "len": [12, 16], "length": [6, 12], "less": [7, 12, 15, 16], "let": [2, 6, 7, 12, 16], "letter": 12, "level": [2, 4, 6, 7, 11, 12, 13], "leverag": 0, "li": [8, 12, 13, 16], "lib": [2, 8, 10, 14], "libldap2": 13, "librari": [0, 2, 4, 6, 11, 12, 13, 15, 16], "libsasl2": 13, "libsass": 4, "licens": 1, "life": 16, "lifespan": 12, "lifetim": 5, "lighter": [6, 15], "like": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "limit": [0, 2, 5, 6, 7, 8, 12, 13, 15, 16], "line": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "link": [2, 6, 7, 8, 10, 12, 13, 14, 16], "lint": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "list_of_field": 6, "listabl": 6, "listen": [2, 3, 4], "listproperti": 6, "liststringproperti": 6, "listwidget": 12, "littl": [1, 5, 6], "live": [6, 16], "ll": [1, 2, 3, 5, 6, 8, 12, 14, 16], "load": [3, 4, 5, 6, 8, 14, 16], "loazkji": 8, "local": [3, 6, 12, 13, 14, 15], "local_initi": 5, "localhost": [2, 4, 5, 6, 12], "localstoragedemo": 5, "locat": [2, 4, 8, 15], "lock": [5, 6, 16], "log": [2, 3, 4, 5, 6, 8, 10, 13, 15, 16], "logerror": 5, "logfil": 6, "logging_level": 2, "logic": [2, 4, 5, 12, 13, 14, 15, 16], "login": [0, 2, 4, 5, 6, 8, 12, 13, 15, 17], "logo": [0, 8, 10], "logout": [0, 8, 13], "long": [0, 2, 12, 13, 16], "longer": [0, 6], "longhash_tablenam": 6, "longtext": 6, "look": [2, 3, 4, 5, 6, 7, 10, 12, 13], "lookup": [5, 7, 12, 13], "loop": [6, 8, 16], "lose": [6, 12], "lost": [1, 5, 6, 15], "lot": [1, 4, 6, 13], "love": 0, "low": 0, "lower": 12, "lowercas": 12, "lowest": 12, "lru": 5, "lt": [2, 10], "luca": [0, 1], "m": [0, 2, 6, 10, 12], "mac": 6, "machin": [2, 6], "macneiln": 2, "maco": 2, "made": [1, 2, 6, 8, 12, 13, 14], "magic": 0, "mai": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "mail": [1, 3, 6, 12, 16], "mailto": 12, "main": [0, 1, 2, 4, 6, 8, 14, 15, 16, 17], "maintain": [6, 8, 14, 16], "mainten": 16, "major": 6, "make": [0, 1, 2, 5, 8, 10, 11, 12, 13, 14, 15, 16], "make_token": 13, "makefil": 2, "man": 16, "manag": [0, 1, 2, 3, 4, 5, 6, 12, 13, 14, 16], "mandatori": [5, 6, 8], "mani": [0, 1, 2, 4, 5, 7, 8, 12, 13, 14, 15, 16], "manipul": [4, 6], "manner": [5, 13, 15], "manual": [2, 3, 4, 5, 6, 10, 13, 14], "map": [2, 6, 10, 11, 12, 15, 17], "map_non": 6, "marco": 6, "margin": [8, 16], "mark": [6, 13], "massimo": [0, 6], "master": [1, 2, 6, 14], "match": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 16], "materi": 6, "math": 16, "mathemat": 6, "matter": 15, "max": [11, 12, 16], "max_concurrent_run": 16, "maximum": [5, 6, 12], "maxip": 12, "maxlen": 12, "maxsiz": 12, "mayb": [2, 5], "md5": 12, "me": [10, 12, 14, 16], "mean": [1, 2, 3, 4, 5, 6, 8, 12, 13, 15], "mechan": [0, 4, 5, 6, 8, 10, 13, 15, 16], "meet": 6, "member": [12, 13], "membership": [0, 5, 12, 13, 15], "memcach": [0, 6], "memoiz": 17, "memori": 5, "mention": [5, 13, 16], "menu": [8, 12, 13], "merg": 6, "mess": 1, "messag": [2, 4, 5, 7, 8, 12, 14, 15, 17], "met": 6, "meta": [8, 10], "metadata": [6, 13], "metatag": 10, "method": [4, 5, 7, 8, 10, 12, 13, 14, 16, 17], "mfa": 13, "micah": 0, "microsoft": [1, 13], "mid": 6, "middlewar": 5, "might": [4, 7, 12], "migrat": [15, 17], "migrate_en": 6, "mileston": 1, "min": [8, 12, 14], "min_length": 12, "mind": [1, 4, 6, 7, 8, 12], "minim": [4, 5, 14, 17], "minimalist": [8, 15], "minimalist_pag": 8, "minimum": [6, 12], "minip": 12, "minor": [8, 12, 15], "minsiz": 12, "minut": 12, "miss": [2, 13, 14], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 14], "mm": 12, "mode": [2, 4, 5, 12, 13], "model": [0, 3, 4, 7, 10, 12, 14, 15, 16], "modern": [6, 13, 16], "modif": [2, 12], "modifi": [2, 4, 6, 7, 8, 12, 14, 15, 16], "modified_bi": 6, "modified_on": 6, "modul": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 17], "modular": [0, 6, 8, 15], "moment": 6, "mongo": 6, "mongodb": 6, "mongodbadapt": 6, "monkei": 5, "monolith": 0, "monospac": 10, "month": 12, "more": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "moreov": [6, 16], "most": [0, 3, 4, 5, 6, 12, 13, 14, 15, 16], "mostli": 5, "mother": 6, "mother_id": 6, "mount": 13, "move": 6, "msg": 4, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 4, 5, 6, 8, 12, 14, 15, 16], "multi": [1, 2, 6, 15], "multicast": 12, "multipl": [0, 1, 2, 4, 6, 8, 10, 11, 12, 15, 16, 17], "multiprocess": 5, "multiselect": 12, "multius": 13, "must": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "my": [5, 8, 10, 12, 13, 16], "my_app": 4, "my_cont": 5, "my_id": 16, "my_password_fil": 2, "my_task": 16, "my_url_path": 15, "my_var": [5, 10], "myapp": [2, 4], "myclass": 10, "mycompon": 16, "mycustomtokenplugin": 13, "mycustomwidget": 12, "mydb": 6, "myerror": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunct": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myorder": 6, "myqueri": 6, "myrecord": 6, "mysaltvalu": 12, "mysendgridsend": 16, "myset": 6, "mysidebar": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyl": 12, "mytabl": [6, 13], "myvalu": 6, "myvirtualfield": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "n": [5, 6, 11, 16], "name": [1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "nameonli": 6, "narrow": 6, "nativ": 6, "native_json": 12, "nav": 8, "navbar": [8, 13], "navig": [8, 14, 16], "ndb": 6, "ne6fz": 8, "necessari": [6, 8, 10, 13], "need": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "neg": [6, 12], "negat": 6, "neither": [6, 12], "nest": [6, 8, 10], "nested_select": 6, "network": [6, 12, 13], "never": [5, 6, 8, 12, 15, 16], "nevertheless": [6, 13], "new": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "new_app": [8, 10], "new_password": 16, "new_sidecar": 16, "newer": 8, "newli": [4, 6, 11], "newlin": [6, 12], "next": [1, 2, 5, 6, 8, 12, 16], "nginx": [2, 4], "nice": 10, "nicer": 16, "nico": 0, "nid": 6, "no_backslash_escap": 6, "no_tabl": [12, 16], "node": [4, 16], "non": [4, 5, 6, 12, 14, 15], "none": [2, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "nor": [2, 6, 12], "normal": [2, 4, 5, 6, 8, 10, 12, 14, 16], "northwind": 1, "nosqladapt": 6, "not_author": 13, "notabl": 5, "notat": [6, 10], "note": [1, 2, 4, 5, 8, 10, 12, 15, 16], "noth": [2, 5, 6, 12, 16], "notic": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "notnul": 6, "notset": 2, "now": [0, 2, 4, 5, 6, 8, 12, 14, 16], "nowadai": 1, "null": [6, 7, 12, 16], "num": 6, "number": [2, 4, 5, 6, 8, 11, 12, 13, 14, 16], "number_work": 2, "numer": [6, 12], "o": [4, 5, 7, 12, 14], "oauth": 13, "oauth2": [0, 5], "oauth2discord": 13, "oauth2facebook": 13, "oauth2googl": 13, "obj": [6, 8], "object": [0, 5, 6, 7, 8, 10, 11, 12, 15, 17], "observ": 6, "obtain": [2, 4, 6, 13, 16], "obviou": [6, 7, 8, 13], "obvious": [6, 12], "occasion": [6, 12], "occur": [2, 6, 8, 12, 16], "odd": [6, 8], "off": [0, 2, 4, 6, 14, 16], "offici": [0, 6, 12, 16], "offset": [6, 7], "often": [4, 6, 13, 16], "ok": [10, 15], "old": [2, 5, 12, 15], "older": 12, "ombott": [0, 4, 15], "omit": 2, "on_delete_act": 6, "on_error": 5, "on_fals": 5, "on_request": [5, 13], "on_success": 5, "onc": [1, 2, 4, 5, 10, 12, 13, 14, 16], "onclick": 16, "ondelet": 6, "one": [0, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 16], "ones": [2, 5, 6, 7, 12, 15], "onion": 5, "onkeydown": 16, "onli": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "onlin": [1, 6], "onload": 16, "onvalid": 12, "onward": 6, "opac": 16, "open": [1, 2, 3, 4, 5, 6, 10], "oper": [0, 3, 5, 11, 12, 13, 17], "operationalerror": 12, "oppos": [5, 6, 10], "opposit": [5, 6], "oprow": 6, "optim": [4, 6], "optimis": 6, "option": [0, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17], "oracleadapt": 6, "order": [1, 2, 4, 5, 6, 7, 10, 12, 13, 14, 15], "order_item": 6, "orderbi": [12, 13, 14, 16], "ordereddict": 6, "org": [7, 10, 16], "organ": 4, "origin": [6, 8, 10, 11, 12], "orm": 6, "other": [0, 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 15, 16, 17], "other_pag": [12, 16], "otherfield": 6, "othert": 6, "otherwis": [4, 5, 6, 8, 12, 13, 14], "oufil": 6, "our": [0, 1, 2, 4, 5, 6, 10, 12, 16], "out": [0, 1, 2, 6, 8, 16], "outer": [5, 12, 16], "outlin": [4, 5], "output": [1, 2, 4, 5, 6, 7, 8, 10, 12, 16], "output_styl": 4, "outsid": [0, 5, 6, 12, 14, 15, 16], "ov": 6, "over": [4, 6, 8, 14, 16], "overcom": 6, "overhead": 6, "overkil": 13, "overload": 6, "overrid": [4, 6, 8, 10, 13, 14, 15, 16], "override_class": 14, "override_styl": 14, "overview": 17, "overwrit": 5, "overwritten": [5, 15], "own": [4, 5, 6, 8, 12, 13, 14, 15, 16], "owner": [6, 12, 13], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "ownership": 6, "p": [2, 8, 12], "p10n": 11, "p11n": 5, "packag": [0, 2, 6, 10], "pad": [5, 8, 15, 16], "page": [1, 5, 6, 10, 12, 13, 14, 15, 16, 17], "page_head": 8, "page_left_menu": 8, "page_script": 8, "pagin": [6, 14], "pai": 4, "paint": [4, 12], "pair": [6, 10], "pam": [0, 5], "pam_plugin": 13, "pamplugin": 13, "paragraph": [1, 5, 10, 12, 14], "param": [12, 13, 14, 15, 16], "paramet": [1, 2, 4, 5, 13, 16], "parent": [2, 6, 8, 16], "parenthes": 6, "park": [7, 14], "pars": [4, 5, 6, 11, 12, 13], "parsemodul": 4, "parser": 6, "part": [6, 10, 12, 15], "parti": [0, 5], "partial": [4, 6, 15], "particip": 1, "particular": [0, 1, 6, 12, 14, 15, 16], "particularli": 6, "pass": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "passphras": 5, "password": [0, 2, 3, 5, 6, 8, 12, 13, 15, 16], "password_fil": 2, "passwordwidget": 12, "patch": 5, "path": [2, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16], "path_to": 2, "pattern": [4, 7], "paus": 2, "payment": 6, "payrol": 5, "pbkdf2": 12, "pc": 3, "pdf": [1, 12], "pdkdf2": 2, "per": [0, 4, 5, 7, 14], "percent": 6, "percentag": 6, "perfect": 0, "perfectli": 14, "perform": [0, 3, 5, 6, 12, 13, 15], "perhap": 5, "period": 16, "permiss": [0, 5, 6, 15], "permit": 6, "permitted_tag": 10, "persist": [5, 6, 13], "person": [2, 6, 7, 12, 14], "persons_and_th": 6, "perspect": 0, "pet": 6, "peter": [7, 14], "phase": 6, "philip": 6, "phone": [12, 16], "photograph": [7, 14], "phrase": 6, "physic": 13, "pick": [4, 5, 13], "piec": [0, 5, 6, 8, 12], "pierro": 0, "pip": [0, 1, 6], "pirsch": 0, "piu": 5, "pixel": 12, "place": [1, 4, 5, 6, 8, 12, 14, 16], "placehold": [6, 11, 12, 16], "plai": [0, 16], "plain": [6, 16], "plan": [1, 16], "platform": [0, 1, 17], "pleas": [5, 6], "plu": [6, 8, 13, 14], "plugin": [4, 5, 12, 14, 16], "plural": [0, 4, 5, 14, 15, 16, 17], "pm": 12, "png": [10, 12], "point": [2, 3, 4, 5, 6, 7, 8, 12, 14, 15], "pointer": 16, "pointless": 6, "polici": [0, 17], "pollut": 5, "pool": [4, 5], "pool_connect": 6, "pool_siz": [5, 6], "poor": 16, "pop": 16, "popul": 6, "popular": [0, 6], "port": [0, 2, 3, 5, 6, 15], "portabl": 6, "portion": 14, "posit": [5, 10], "possibl": [4, 5, 6, 8, 12, 13, 14, 15, 16], "possibli": 6, "post": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "post_action_button": 14, "post_text": 6, "post_var": [7, 15], "post_writ": 7, "postel": 11, "postel\u00ed": 11, "postfix": 15, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyco": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserv": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocess": 15, "potenti": 2, "power": [2, 6, 7, 13, 15, 16], "pprint": 6, "pr": 1, "practic": [0, 6, 8, 12, 13, 15, 17], "pre": [2, 4, 5, 6, 14], "pre_action_button": 14, "precaut": 2, "preced": [6, 7, 8, 12], "preciou": 14, "predefin": [8, 12, 16], "predetermin": 15, "prefer": [2, 5, 6, 10, 16], "prefix": [2, 4, 6, 7, 8, 12, 15], "preliminari": 1, "prepend": [4, 7, 12, 15, 16], "prepend_schem": 12, "preprocess": 15, "prerequisit": [5, 17], "presenc": [5, 6], "present": [2, 6, 8, 12, 13], "preserv": [0, 5], "press": [3, 4, 14], "pretti": [4, 6, 15], "prevent": [2, 5, 6, 8, 10, 12, 16], "previou": [2, 5, 6, 8, 10, 12, 13, 16], "previous": [5, 6, 12], "price": 6, "prima": 5, "primari": [8, 13], "primarili": 14, "prime": 12, "print": [4, 5, 6, 10, 11, 13, 14, 15, 16], "priorit": 4, "privat": [5, 12], "probabl": [4, 12], "problem": [0, 1, 6, 8, 13, 14, 16], "procedur": 17, "process": [2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "produc": [0, 2, 5, 6, 8, 10, 12, 13], "product": [2, 4, 6, 16], "product_record": 16, "profil": [0, 8, 13, 15], "program": [1, 2, 3, 6, 8, 10, 12, 13, 16], "programmat": [6, 10], "project": [0, 2, 4, 5, 6], "project_nam": 2, "prompt": [2, 4, 6], "proper": [5, 6, 14], "properli": 4, "properti": [6, 12], "protocol": 3, "prototyp": 16, "provid": [0, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "proxi": 4, "proxy_http_vers": 4, "proxy_pass": 4, "proxy_set_head": 4, "prudent": 6, "pseudo": 6, "psycopg2": 6, "public": 6, "publish": 4, "pull": [1, 6], "punycod": 12, "pure": 6, "purpos": [0, 5, 6, 10, 12, 13, 15], "put": [4, 5, 7, 12, 13, 16], "put_writ": 7, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16], "py4web": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14], "py4web_filesystem": 6, "py4web_wsgi": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 12, 13, 14, 15, 16], "pyfilesystem": 6, "pymongo": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytd": 6, "python": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16], "python2": [2, 15], "python3": 2, "pyweb": 15, "q": [2, 5, 6, 14], "qualifi": [4, 6], "quantiti": 6, "queri": [4, 5, 7, 10, 12, 13, 14, 15, 16], "query1": 6, "query2": 6, "queryselector": 16, "queryselectoral": 16, "querystr": 14, "question": [1, 2, 6], "quick": [1, 12], "quickli": [2, 12, 14], "quickstart": 16, "quiet": 2, "quirk": 5, "quit": [1, 2, 5, 7, 8, 12, 14], "quot": [2, 10], "quote_minim": 6, "quote_nonnumer": 6, "quotechar": 6, "r": [2, 6, 12], "race": 12, "radio": [10, 12], "radiowidget": 12, "radiu": 16, "radix": 4, "rais": [5, 6, 12, 13, 15], "ram": [5, 6], "randint": [8, 13], "random": [6, 8, 12, 13, 16], "rang": [4, 6, 8, 13, 15], "rapid": [0, 16], "rare": 6, "rather": [6, 8, 10, 12, 16], "raw": 17, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "reach": [2, 5], "react": 16, "reactiv": 16, "read": [1, 4, 5, 6, 7, 14, 16], "readabl": [5, 6, 7, 14, 15], "readi": [2, 6], "readm": [1, 12], "readonli": [2, 12, 16], "real": [2, 4, 7, 8, 12], "real_ident": [6, 7], "realiz": 6, "realli": [1, 4, 6], "reap": 16, "reason": [2, 5, 6, 7, 13, 14, 15], "reassembl": 0, "rebuild": 6, "rebuilt": 6, "rec_id": 7, "recal": 8, "receiv": 6, "recent": [3, 5, 6, 12, 14], "recereiv": 16, "recip": 2, "recogn": [4, 6, 13], "recommend": [1, 4, 5, 6, 12, 13, 16], "record": [7, 12, 13, 14, 15, 16], "record_id": [7, 16], "recov": [6, 12], "recreat": 6, "recurr": 6, "recurs": 8, "recycl": 6, "red": [3, 4, 6, 8, 10, 12], "redefin": 5, "redefinit": 6, "redesign": 0, "redi": 0, "redirect": [4, 5, 12, 13, 14, 16], "redirect_url": 5, "reduc": [0, 5, 16], "redund": 6, "ref": [10, 12, 13], "refer": [1, 5, 7, 8, 12, 13, 16], "referenc": [6, 7, 10], "referenced_bi": 7, "reflect": [1, 6], "refresh": 14, "regex": [7, 10, 12], "regexlib": 12, "regist": [0, 5, 6, 8, 13, 15, 16], "register_plugin": 13, "register_task": 16, "register_vue_compon": 16, "registr": [4, 12], "registration_stamp": 12, "regular": [0, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16], "reimplement": 16, "reinstal": 2, "reinstat": 6, "reject": [12, 13], "rel": [4, 6, 8, 14, 15], "relat": [5, 17], "relationship": 6, "releas": [0, 2], "relev": 6, "reli": [0, 4, 6], "reliabl": 1, "reload": [2, 3, 4, 5, 12, 16], "remain": [0, 6, 12], "rememb": [3, 5, 6, 12], "remote_addr": [5, 13], "remov": [0, 2, 4, 6, 10, 12, 13], "renam": 7, "render": [5, 7, 8, 10, 12, 14, 15, 16], "renoir": 8, "reopen": 5, "repackag": 0, "repeat": [6, 12], "replac": [0, 1, 2, 4, 6, 8, 10, 12, 14, 16], "replic": [1, 5], "report": [4, 8], "repositori": [1, 2, 3], "repr_row": 6, "repres": [0, 8, 12], "represent": [10, 16], "representational_state_transf": 7, "representing_field": 12, "request": [0, 1, 2, 5, 6, 7, 12, 13, 14, 15, 16], "request_bodi": 16, "request_reset_password": 13, "request_uri": 4, "requir": [0, 1, 2, 4, 5, 6, 7, 12, 13, 14, 15, 16], "requires_": 15, "requires_login": 15, "requires_membership": 13, "rescu": 6, "reserv": 12, "reset": 6, "reset_password": 13, "resourc": [6, 13, 17], "respect": [6, 10, 12, 14], "respons": [4, 5, 6, 8, 14, 15, 16, 17], "rest": [7, 13], "restapi": [0, 3, 17], "restart": [2, 4, 5, 6, 14], "restor": 6, "restrict": [5, 6, 7, 12, 16], "restructuredtext": 1, "result": [1, 4, 6, 7, 8, 12, 13, 14, 16], "resultset": 6, "ret": 6, "retain": 6, "retri": 6, "retriev": [4, 5, 6, 13, 15, 16], "return": [5, 6, 7, 10, 12, 13, 14, 16], "reus": 6, "revers": [4, 5, 6], "revert": 6, "rewrit": 6, "rewritten": 6, "rfc": 12, "rid": 6, "ride": 8, "right": [1, 2, 3, 5, 6, 8], "road": 16, "robust": 16, "rocket": [2, 15], "rocket3": [2, 15], "rocketserv": 2, "role": [2, 5, 10], "roll": [5, 6], "rollback": [4, 16], "root": [6, 8, 13, 14], "roughli": 6, "rout": [0, 2, 3, 5, 14, 15, 16], "router": 4, "rover": 6, "row": [8, 10, 12, 14, 15, 16], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 14, "rpc": 6, "rst": 1, "rule": [4, 5, 8, 12, 14], "run": [1, 3, 4, 5, 8, 13, 15, 16, 17], "run_in_transact": 6, "runtim": [2, 6], "s3": 6, "s_": [12, 16], "s_autocomplet": 16, "s_autocomplete_result": 16, "s_down_kei": 16, "s_search": 16, "sacrific": 13, "safari": 16, "safe": [1, 5, 6, 10, 14, 15], "safer": [6, 12, 14], "safeti": [2, 16], "sai": [6, 13], "said": 7, "sake": 6, "salt": 12, "sam": 0, "same": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "same_sit": 5, "saml": 13, "saml2": 0, "sampl": 13, "sandbox": 16, "sane": 4, "sanit": [5, 10, 12, 15], "santa": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "save": [1, 2, 4, 5, 6, 11, 12], "scaffold": [2, 4, 5, 6, 8, 12, 15, 16], "scaffold_zip": 2, "scale": [5, 8], "scan": 6, "scare": 1, "schafer": 1, "schedul": 17, "scheduled_for": 16, "schema": 6, "scheme": [4, 12], "school": 13, "scope": 4, "score": 16, "score_input": 16, "scratch": 17, "script": [2, 8, 12, 13, 16], "sdk": 2, "se": [6, 14], "seamlessli": 8, "search": [0, 1, 2, 3, 6, 10, 12, 13, 17], "search_button_text": 14, "search_form": 14, "search_queri": 14, "search_text": 14, "search_valu": 16, "searchabl": 6, "sec": 16, "second": [5, 10, 12, 13, 15], "secret": [5, 13], "section": [2, 4, 6, 8, 12, 13], "secur": [0, 2, 7, 13], "see": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "seem": 6, "seen": [0, 5, 6, 7, 10, 12, 13, 14, 16], "seesion": 13, "segment": 4, "select": [3, 4, 5, 7, 11, 12, 13, 14, 15, 16, 17], "selected_el": 16, "selected_id": 14, "selectedindex": 16, "selector": [10, 16], "selector1": 10, "selector2": 10, "selectorn": 10, "selectwidget": 12, "self": [2, 5, 10, 12, 13, 14, 16], "semant": [12, 13], "send": [2, 6, 12, 13, 17], "send_two_factor_email": 13, "sender": [13, 16], "sendgrid": 16, "sendgrid_api_kei": 16, "sendgridapicli": 16, "sendmail": 16, "sendmail_task": 16, "sens": [0, 6, 12, 13], "sensit": [5, 6, 12], "sent": [5, 6, 13, 16], "separ": [2, 4, 5, 6, 8, 12, 13, 14, 16], "sequenc": [5, 6], "sequenti": 6, "seri": 1, "serial": [4, 5, 6, 8, 10, 12], "serializ": [0, 5, 6, 10], "serv": [0, 2, 4, 5, 6, 13, 15, 16], "server": [0, 2, 3, 4, 7, 8, 13, 15, 16, 17], "server_addr": 6, "server_nam": 4, "serversid": [13, 16], "session": [0, 2, 4, 6, 10, 12, 13, 14, 15, 16, 17], "session_app1": 5, "session_secret_kei": 5, "set": [0, 1, 2, 4, 5, 7, 8, 10, 11, 13, 16], "set_attribut": 6, "set_encod": 6, "set_head": 6, "set_password": 3, "setinterv": 16, "setup": [1, 3, 4, 13, 14, 16, 17], "setvirtualfield": 6, "sever": [4, 6], "sf": 16, "sftp": 6, "sg": 16, "sh": 16, "sha512": [8, 12], "share": [6, 15], "shell": 10, "ship": 8, "shoe": 6, "shop": 5, "short": [12, 13, 16], "shortcut": [8, 12], "shorter": [6, 12], "shortli": 4, "should": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "show": [1, 2, 4, 5, 6, 8, 12, 13, 14], "show_id": 14, "showcas": 6, "shown": [2, 4, 5, 6, 12, 13], "shutil": 6, "side": [1, 6, 13, 16, 17], "sidebar": 8, "sidebar_en": 8, "sidebar_menu": 10, "sidecar": 16, "sign": [2, 4, 5, 6, 8, 12, 13], "signatur": [5, 7, 10, 12, 16], "signed_url": 5, "signer": 5, "signifi": 8, "signific": 8, "signing_info": 12, "similar": [0, 4, 5, 6, 10, 12, 15], "similarli": [6, 10], "simmilar": 4, "simpl": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "simple_queri": 16, "simple_token_plugin": 13, "simpler": [6, 8, 14], "simplest": [2, 4], "simpli": [2, 4, 5, 6, 8, 11, 12, 16], "simplic": [6, 16], "simplifi": [0, 4, 6, 8], "simultan": 6, "sinc": [0, 4, 5, 6, 7, 8, 13, 14, 15], "singl": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14], "singleton": [5, 15], "site": [1, 2, 4, 5, 6, 10, 14, 16], "situat": 6, "six": 6, "size": [5, 6, 8, 12], "skip": [5, 16], "slash": [1, 4, 5, 13], "slave": 6, "sleep": 16, "sleep_tim": 16, "slice": 6, "slicker": 0, "slow": [6, 16], "slug": 12, "sm": 16, "small": [5, 12], "smaller": 6, "smtplib": 16, "snippet": 6, "so": [2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "soap": 10, "socha": 0, "socket": 16, "solut": [0, 1, 2, 6, 16], "some": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "some_condit": 8, "some_form": 12, "some_valu": 6, "somefield": 6, "somefil": 6, "somepath": 5, "somet": 6, "someth": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "sometim": [5, 6, 8, 10, 12, 13, 14], "somevalu": 6, "somewhat": 12, "somewher": [5, 6], "soon": [8, 16], "sophist": 15, "sort": 14, "sourc": [3, 4, 6, 12, 16], "source1": 12, "south": 1, "sp": 6, "space": [6, 8, 12, 14], "span": [4, 15], "spatialit": 6, "speak": 5, "special": [0, 4, 5, 6, 8, 10, 11, 13, 15, 17], "specif": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "specifi": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "speed": [6, 7, 8], "sphinx": 1, "spiderman": [7, 14], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 12], "split_email": 12, "sql": 17, "sql_mode": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 12, 15], "sqlite": [1, 5, 7, 13, 14, 16], "sqlite3": 6, "sqliteadapt": 6, "squar": [0, 8], "src": [6, 8, 10, 12, 16], "ss": 12, "ssl": [2, 4], "ssl_cert": 2, "ssl_kei": 2, "sslcert": 6, "sslkei": 6, "sslmode": 6, "sslrootcert": 6, "sso_id": [5, 13], "stabl": 2, "stai": 6, "stand": [7, 10, 12], "standard": [2, 3, 6, 7, 13, 14, 15, 16, 17], "start": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "start_imperson": 13, "startup": [6, 15, 17], "state": [5, 6, 7, 15, 16], "stateless": [5, 16], "statement": [6, 8, 12], "static": [1, 8, 10, 15, 17], "static_dev": 4, "statu": [7, 16], "status_cod": 16, "stderr": [2, 16], "stdout": [2, 16], "steil": [0, 1, 14], "step": [2, 6, 13, 15, 16], "step1": 5, "step2": 5, "step3": 5, "step_complet": 5, "still": [2, 5, 6, 10, 12, 13, 14, 15], "stone": 14, "stop": [2, 3, 13], "stop_imperson": 13, "storag": [6, 7, 14], "store": [0, 2, 5, 6, 10, 12, 13, 15, 16], "stored_item": 6, "stored_item_arch": 6, "stori": [0, 5, 13], "str": [2, 5, 6, 10, 12, 15, 16], "stream": [4, 5, 6, 15], "strength": 7, "strict": 12, "strictli": [4, 6, 16], "string": [4, 5, 7, 8, 10, 11, 12, 13, 14], "stringio": 6, "stringlistproperti": 6, "strip": [2, 12, 15], "strong": [0, 10, 13], "strongli": [1, 5, 12, 14], "structur": [1, 4, 5, 6, 11, 13, 14, 15, 17], "stuck": 2, "student": 2, "studi": 1, "studio": 1, "stuff": [12, 14], "style": [4, 8, 12, 16, 17], "stylesheet": [8, 14], "sub": 6, "subclass": [6, 12], "subfold": [4, 5, 6], "subhead": 10, "subject": [6, 7, 13, 16], "submiss": [12, 16], "submit": [1, 5, 6, 10, 12, 13, 14, 16], "submodul": 0, "subnet": 12, "subqueri": 16, "subsect": 6, "subset": [0, 6, 12], "substitut": [6, 8], "substr": 12, "subtl": 6, "succe": 6, "succeed": [0, 13], "success": [0, 4, 5, 6, 7, 13, 16], "successfulli": 13, "sudo": [2, 13], "suffer": [0, 13], "suffic": 6, "suffici": [6, 13], "sugar": 5, "suggest": [1, 6, 12], "sugizo": 0, "suit": 2, "summar": 6, "super": 5, "superhero": [6, 7, 12, 14, 16], "superman": [6, 7, 12, 14], "superpow": [6, 7], "superseed": 6, "suppli": 10, "support": [1, 4, 5, 8, 10, 11, 12, 13, 14, 15, 16, 17], "suppos": [5, 6], "suppress": [2, 10], "sure": [2, 3, 4, 5, 6, 11, 12, 13, 16], "surround": 12, "susan": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 12, "symlink": [2, 4], "sync": [2, 6], "synopsi": 12, "syntact": [5, 12], "syntax": [0, 1, 4, 5, 6, 7, 10, 12, 13, 15, 16, 17], "system": [0, 2, 5, 6, 10, 13, 16], "sysus": 6, "t": [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15], "t_folder": 5, "tab": [3, 5, 12], "tabl": [5, 7, 12, 13, 14, 15, 16], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 12, 16], "tag": [0, 5, 7, 8, 15, 16, 17], "tag_input": 16, "tagged_db": 13, "tagger": 10, "tags_input": 16, "tail": 6, "tail_nam": 13, "take": [2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "taken": 12, "talk": 4, "tamper": [5, 6], "tanti": 16, "tantissimi": 11, "tap": 16, "tar": 12, "target": [6, 10, 16], "task": [1, 5, 6, 13, 17], "task_run": 16, "tast": 6, "tbodi": 6, "tcp": 3, "td": 6, "teacher": 13, "technic": 16, "tell": [2, 4, 5, 6, 13, 14, 16], "temp": 6, "templat": [0, 10, 12, 13, 15, 16, 17], "temporari": 6, "temporarili": 5, "ten": 12, "tenanc": 6, "teradata": 6, "teradataadapt": 6, "teredo": 12, "term": [6, 12], "termin": [4, 8, 16], "test": [0, 2, 4, 5, 6, 8, 10, 12, 13, 14], "test1": 13, "test_api": 13, "text": [2, 5, 6, 8, 10, 14, 16], "textarea": 12, "textareawidget": 12, "textual": [10, 13], "th": 6, "than": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "thank": [0, 6, 10], "that_templ": 8, "thead": 6, "thei": [0, 2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "them": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "themselv": [6, 8], "therefor": [2, 4, 5, 6, 8, 10, 12, 15], "therein": 6, "thi": [0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "thing": [2, 5, 6, 12, 14, 15], "thing_id": 12, "thing_tags_default": 6, "think": [5, 6, 8, 14, 16], "third": [0, 5, 6, 12], "this_templ": 8, "thisisatest": 10, "thisisthekei": 12, "those": [0, 2, 5, 6, 8, 10, 13, 15, 16], "though": 8, "thought": [0, 6, 13], "thread": [2, 5, 6, 15, 16], "threadsafevari": 5, "three": [0, 5, 6, 13], "through": [2, 12], "throughout": 5, "thu": [5, 6, 8], "thumbnail": 12, "ti": 5, "ticket": [0, 3, 6], "tickets_onli": 2, "tild": 6, "tim": 6, "time": [0, 2, 4, 5, 8, 13, 14, 15, 16], "timedelta": [12, 13], "timeoffset": 10, "timeout": [5, 16], "timestamp": [5, 7, 16], "tip": [2, 14, 17], "titl": [3, 8, 12, 16], "tmp": [5, 6], "to_addr": 16, "todai": [0, 12, 16], "todo": 16, "togeth": [0, 6, 8, 11, 14], "toi": 6, "token": [5, 12], "token_plugin": 13, "too": [2, 5, 6, 12, 16], "took": 6, "tool": [0, 6, 13, 16], "top": [8, 11, 12, 13], "topic": [14, 17], "tornado": 2, "tosupport": 13, "total": [6, 7], "total_pric": 6, "totp": 13, "touch": 8, "tr": 6, "traceback": [5, 6], "track": [1, 6, 15], "trade": 6, "tradit": [2, 6], "trail": [2, 12], "train": 1, "transact": [5, 16], "transform": [5, 6, 12, 16], "transit": 16, "translat": [1, 2, 4, 6, 8, 12, 15, 16, 17], "transpar": [6, 8, 12], "trap": 16, "treat": [6, 15], "tree": [4, 8, 12], "tri": [0, 6, 13, 15], "trick": 2, "trickeri": 8, "trigger": [3, 5, 6, 16], "trivial": [5, 6], "true": [1, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "truncat": 6, "truth": 16, "try": [1, 2, 4, 5, 6, 12, 13, 16], "ttl": 5, "tupl": [6, 8, 10], "turn": [0, 4, 6, 12, 13, 14, 16], "tutori": [2, 14, 16], "twice": [5, 6], "twilio": 16, "twitter": [0, 5, 13], "two": [0, 1, 2, 4, 5, 6, 8, 12, 14, 15, 16], "two_factor": 13, "txt": [0, 2, 4, 6], "type": [1, 2, 4, 5, 7, 8, 10, 13, 14, 16], "typewrit": 10, "typic": [4, 5, 6, 8, 12], "u": [2, 6, 10, 12], "ubuntu": 13, "uc": 1, "ui": 5, "uid": 6, "ul": [8, 12, 13, 16], "un": [8, 10, 11, 16], "unari": 6, "unauthent": [5, 6, 10], "unauthor": 6, "unavail": 2, "unchang": [6, 12], "undefin": 5, "under": [2, 3, 4, 5, 6, 12, 13], "underli": 15, "underscor": [6, 10, 12], "understand": [0, 1, 4, 6, 7, 8, 14, 17], "undocu": 16, "unfortun": [6, 14], "unicod": [6, 12], "unicodedecodeerror": 6, "uniform": 6, "union": 6, "uniqu": [6, 7, 12, 13], "unit_pric": 6, "univers": [6, 10], "unknown": 4, "unless": [2, 3, 5, 6, 8, 12, 16], "unlik": [0, 2, 4, 6, 7, 8, 15, 16], "unnam": [6, 10], "unned": 2, "unord": 10, "unpkg": 16, "unquot": [6, 10], "unsaf": [5, 10, 12, 13], "untest": [2, 13], "until": [0, 5, 6, 8, 12], "unus": 6, "unusu": 6, "unwant": [2, 6], "unzip": 2, "up": [1, 2, 5, 6, 8, 13, 16], "updat": [2, 5, 12, 14, 15, 16, 17], "update_form": 12, "update_languag": 11, "update_na": 6, "update_th": 12, "upgrad": [6, 17], "upload": [0, 4, 15], "upload_fold": [6, 12], "upload_help": 16, "uploadf": 6, "uploadfield": 6, "uploadfold": 6, "uploadsepar": 6, "upon": [2, 8, 13, 15], "upper": [4, 5, 12], "upper_cas": 5, "uppercas": [5, 12], "uri": 13, "url": [2, 4, 5, 7, 8, 12, 13, 14, 15, 16], "url_prefix": 2, "url_sign": 5, "url_to_post_to": 16, "urlsign": 17, "us": [0, 1, 3, 4, 7, 11, 12, 15, 17], "usabl": 14, "usag": [2, 3, 4, 5, 6, 10, 12, 13, 14], "use_schedul": 16, "useful": 12, "useless": [12, 15], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "user_email": 15, "user_id": [5, 6, 13, 15], "user_nam": 6, "user_outside_network": 13, "user_password": 6, "user_token": 6, "usernam": [5, 6, 13], "usual": [1, 2, 5, 6, 7, 8, 10, 12], "utcnow": [5, 6, 13], "utf": 6, "utf8": 6, "utf8mb4": 6, "util": [2, 4, 5, 8, 10, 12, 13, 14, 15, 17], "uuid": [5, 6, 13], "uuid4": [5, 6], "v": [5, 10, 12, 16], "v3": 1, "val": [14, 16], "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [2, 4, 5, 7, 8, 10, 13, 14, 15, 17], "validate_cod": 13, "validate_j": 4, "valq7711": 0, "valu": [2, 5, 7, 8, 10, 11, 12, 13, 14, 16], "valuabl": [1, 13], "value1": 6, "value2": 6, "value_field": 12, "var": [6, 10, 12, 15, 16], "varchar": 6, "variabl": [4, 5, 6, 10, 11, 12, 14, 16], "variou": [5, 6], "ve": [1, 2, 3, 5, 8, 10, 12, 13, 14, 16], "vehicl": 5, "vendor": 16, "vendor_typ": 16, "venv": 2, "verbos": 6, "veri": [0, 4, 5, 6, 8, 10, 12, 13, 15, 16], "verif": 13, "verifi": [5, 12, 13, 16], "verify_email": 13, "versa": 5, "version": [1, 3, 5, 7, 8, 12, 16], "vertica": 6, "verticaadapt": 6, "veryf": 13, "via": [5, 6, 8, 10, 13, 16], "vice": 5, "video": [2, 16], "view": [1, 5, 6], "viewport": 8, "virtual": [1, 17], "virtualenv": [1, 2], "virtualfield": 6, "visibl": 4, "visit": [3, 5, 6, 8, 12, 13], "visit_log": 5, "visitor": [6, 10, 12], "visto": 5, "visual": 1, "vital": 13, "volt": 5, "vscode": 2, "vue": [0, 4, 16], "vulner": 8, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "wa": [0, 5, 6, 12, 13, 14], "wai": [0, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "wait": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 10, 12, 13, 14, 16], "warn": [2, 5], "warp": 11, "watch": [1, 2, 3, 17], "wayn": [7, 14], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "web": [0, 1, 2, 5, 6, 8, 13, 14, 15, 16, 17], "web2pi": [0, 1, 2, 3, 4, 5, 6, 12, 13, 14, 17], "webserv": 4, "websit": [6, 16], "websocket": [2, 16], "welcom": [2, 4, 5, 8, 15, 16], "well": [0, 4, 5, 6, 8, 12, 13, 16], "were": [0, 4, 6], "what": [1, 4, 5, 6, 8, 12, 13, 15, 16, 17], "whatev": [10, 16], "when": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whenev": [4, 6], "where": [1, 2, 4, 6, 7, 8, 12, 13, 15, 16], "whether": [5, 6, 8, 12, 13, 14, 15], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whichev": 16, "while": [0, 4, 5, 6, 7, 12, 13, 14, 15], "white": [10, 16], "whitelist": 13, "who": [0, 13], "whole": [4, 12], "whose": [5, 6, 8, 12], "why": [5, 6, 8, 15], "widget": [6, 17], "width": [8, 12], "wiki": [6, 7], "wikipedia": [6, 7], "wild": 6, "wildcard": 4, "william": 6, "willing": 13, "window": [1, 2, 4, 5, 6, 8, 12], "wish": [1, 6, 12, 16], "wit": 2, "with_alia": 6, "within": [0, 1, 4, 5, 6, 8, 10, 12, 14, 16], "without": [1, 8, 10, 13, 14, 16, 17], "wolf": 0, "won": 6, "wood": 6, "word": [5, 6, 11, 14], "work": [0, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "worker": [2, 5, 16], "workflow": [5, 17], "workload": 6, "workspacefold": 2, "world": [4, 5, 6, 8, 10, 12, 13, 16], "worri": [4, 6], "worth": 8, "would": [0, 4, 5, 6, 8, 10, 12, 13, 14, 16], "wouldn": 6, "wrap": [5, 11, 12, 14, 16], "wrapper": [15, 16], "writabl": [5, 6, 12, 15], "write": [2, 4, 5, 6, 8, 12, 15], "written": [1, 8, 12, 14], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "www": [2, 8, 10, 14, 16], "x": [2, 4, 6, 8, 10, 12, 14, 16], "xml": [8, 12, 15, 16], "xmlescap": 10, "xmln": 10, "xss": [6, 8, 10], "xyz": [10, 12], "y": [2, 10, 12], "yaml": 2, "yatl": [0, 4, 5, 6, 12, 14, 16, 17], "yb": 10, "ye": [2, 6, 16], "year": [12, 16], "yes_or_no": 6, "yet": [0, 2, 4, 5, 6, 8, 12, 16], "yield": 6, "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "your": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "your_app": 12, "your_full_path_to_py4web": 1, "your_nam": [1, 16], "yourapp": 6, "yourappnam": 2, "youremail": 13, "yourself": [1, 2, 12, 14], "youtub": [2, 6], "yyyi": 12, "z": [10, 12], "zanferrari": 0, "zap": 13, "zap_id": 13, "zapper": 13, "zero": [6, 8, 12, 14], "zip": [0, 2, 6, 12], "zip_cod": 16, "zxjdbc": 6}, "titles": ["What is py4web?", "Help, resources and hints", "Installation and Startup", "The Dashboard", "Creating an app", "Fixtures", "The Database Abstraction Layer (DAL)", "The RestAPI", "YATL Template Language", "<no title>", "YATL helpers", "Internationalization", "Forms", "Authentication and authorization", "Grid", "From web2py to py4web", "Advanced topics and examples", "py4web: the reference Manual"], "titleterms": {"A": [1, 10, 12], "On": 4, "One": 6, "The": [1, 3, 4, 5, 6, 7, 12, 14, 16], "_lastsql": 6, "_scaffold": 4, "about": [5, 6], "abstract": 6, "access": 15, "acknowledg": 0, "action": [7, 13, 14], "ad": 6, "adapt": 6, "advanc": [6, 12, 16], "aka": 2, "alias": 6, "all": 6, "alon": 6, "an": [4, 6], "anoth": 6, "any_of": 12, "anywher": 5, "api": 13, "app": [2, 4, 6], "applic": 6, "arg": 15, "as_dict": 6, "as_list": 6, "asyncio": 16, "attempt": 6, "attribut": 6, "auth": [5, 13, 15], "authent": 13, "author": 13, "autocomplet": 16, "avg": 6, "background": 16, "base": 6, "basic": [8, 12, 14], "beautifi": 10, "belong": 6, "binari": 2, "block": 8, "bodi": 10, "broken": 6, "built": 10, "button": 14, "cach": [5, 6], "cacheabl": 6, "call": [2, 15], "callabl": 14, "callback": 6, "cascad": 6, "case": 6, "cat": 10, "caveat": 5, "celeri": 16, "chang": 4, "checkbox": [12, 14], "children": 10, "class": 14, "cleanup": 12, "client": 5, "coalesc": 6, "coalesce_zero": 6, "column": 14, "com": 2, "combin": 6, "command": [2, 6], "commit": 6, "common": 6, "complex": 12, "comput": 6, "condit": 5, "connect": 6, "constructor": [6, 12], "contain": 6, "content": 17, "contribut": 1, "control": 6, "conveni": 5, "convers": 15, "cooki": 5, "copi": [4, 6], "count": 6, "counter": 15, "creat": 4, "crud": 14, "crypt": 12, "csv": 6, "custom": [4, 5, 6, 10, 12, 13, 14], "dai": 6, "dal": [5, 6], "dashboard": [3, 6], "data": 6, "databas": [5, 6, 12], "datastor": 6, "date": 12, "db": 6, "debug": 1, "decor": 5, "def": 8, "default": [6, 8], "defin": 6, "define_t": 6, "delet": 6, "depend": 5, "deploy": 2, "design": [2, 12], "develop": 8, "dictionari": [6, 12], "discord": [1, 13], "distinct": 6, "distribut": 6, "div": 10, "docker": 2, "dom": 10, "domain": 4, "drop": 6, "dynam": 4, "elif": 8, "els": 8, "em": 10, "endswith": 6, "engin": 2, "environ": 2, "equal": 12, "error": 4, "exampl": [7, 12, 13, 14, 15, 16], "except": 8, "exclud": 6, "executesql": 6, "experi": 6, "experiment": 6, "export": 6, "express": 6, "extend": 8, "facebook": 13, "factor": 13, "failur": 6, "fake_migr": 6, "featur": [6, 14], "fetch": 6, "field": [6, 12, 14], "file": [4, 11, 12, 15], "filter": [6, 14], "filter_in": 6, "filter_out": 6, "final": 8, "find": [6, 10], "first": [2, 6], "fix": 6, "fixtur": 5, "flash": [5, 15], "folder": 6, "form": [10, 12, 15, 16], "format": [6, 12, 16], "from": [2, 4, 6, 15], "function": [8, 12], "gae": 2, "gcloud": 2, "gener": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 13], "gotcha": 6, "grid": [14, 15, 16], "group": [1, 6], "groupbi": 6, "h1": 10, "h2": 10, "h3": 10, "h4": 10, "h5": 10, "h6": 10, "have": 6, "head": 10, "hello": 15, "help": 1, "helper": 10, "hint": 1, "hour": 6, "how": 1, "html": [6, 10], "htmx": 16, "http": 2, "i": [0, 10], "id": 6, "ilik": 6, "img": 10, "imperson": 13, "import": 6, "includ": 8, "index": 6, "indic": 17, "inform": 8, "inherit": 6, "inject": [5, 10], "inner": 6, "input": 10, "insert": 6, "insid": 13, "instal": 2, "internation": 11, "introduct": 6, "is_alphanumer": 12, "is_dat": 12, "is_date_in_rang": 12, "is_datetim": 12, "is_datetime_in_rang": 12, "is_decimal_in_rang": 12, "is_email": 12, "is_empty_or": 12, "is_equal_to": 12, "is_expr": 12, "is_fil": 12, "is_float_in_rang": 12, "is_imag": 12, "is_in_db": 12, "is_in_set": 12, "is_int_in_rang": 12, "is_ipaddress": 12, "is_ipv4": 12, "is_ipv6": 12, "is_json": 12, "is_length": 12, "is_list_of": 12, "is_list_of_email": 12, "is_low": 12, "is_match": 12, "is_not_empti": 12, "is_not_in_db": 12, "is_null_or": 12, "is_saf": 12, "is_slug": 12, "is_strong": 12, "is_tim": 12, "is_upload_filenam": 12, "is_upp": 12, "is_url": 12, "isempti": 6, "iter": 6, "j": 16, "join": 6, "jwttokenplugin": 13, "kei": [6, 14], "keyword": 6, "label": 10, "languag": 8, "last": 6, "layer": 6, "layout": 8, "lazi": 6, "ldap": 13, "left": 6, "legaci": 6, "len": 6, "less": 6, "li": 10, "like": 6, "limitbi": 6, "line": 2, "list": 6, "local": [2, 5], "locat": 6, "logic": 6, "login": 3, "lower": 6, "main": 3, "make": 6, "mani": 6, "manipul": 12, "manual": [1, 17], "map": 4, "max": 6, "memcach": 5, "memoiz": 5, "memori": 6, "messag": 16, "method": [6, 15], "microsoft": 6, "migrat": 6, "min": 6, "minim": 12, "minut": 6, "mobil": 8, "model": 6, "modern": 1, "modif": 6, "month": 6, "more": 6, "mssql": 6, "multipl": [5, 13], "mysql": 6, "name": 6, "new": 6, "new_app": 2, "nosql": 6, "note": 6, "o": 15, "oauth2": 13, "object": [4, 13, 14, 16], "ol": 10, "old": 6, "on_defin": 6, "onc": 6, "one": 6, "oper": 6, "option": [2, 10, 12], "oracl": 6, "orderbi": 6, "orderby_on_limitbi": 6, "other": [6, 12], "outer": 6, "overview": 10, "p": 10, "page": [3, 4, 8], "pam": 13, "paramet": [6, 12, 14], "permiss": 13, "pip": 2, "platform": 2, "plugin": 13, "plural": [6, 11], "podman": 2, "polici": 7, "polymodel": 6, "pool": 6, "practic": 7, "pre": 10, "prerequisit": [1, 2], "primari": 6, "primarykei": 6, "procedur": 2, "py4web": [0, 1, 6, 15, 16, 17], "pycharm": 1, "python": 1, "pythonanywher": 2, "q": 16, "queri": 6, "quick": 6, "quot": 6, "rang": 12, "raw": 6, "real": 6, "record": 6, "recurs": 6, "redefin": 6, "redi": 5, "redirect": 15, "refer": [6, 14, 17], "regexp": 6, "relat": 6, "remot": 6, "render": 6, "replic": 6, "repres": 6, "represent": 6, "request": 4, "reserv": 6, "resourc": 1, "respons": 7, "restapi": 7, "return": [4, 8, 15], "rname": 6, "rollback": 6, "rout": 4, "row": 6, "run": [2, 6], "sampl": 14, "schedul": 16, "scratch": 4, "script": 10, "search": 14, "second": 6, "secur": [6, 12], "select": [6, 10], "self": 6, "send": 16, "sequence_nam": 6, "server": [1, 5, 6, 10], "session": 5, "set": [6, 12, 14, 15], "set_password": 2, "setup": 2, "share": 5, "shell": [2, 6], "shortcut": 6, "side": [5, 10], "sidecar": 12, "signatur": 6, "simpl": 15, "simpletokenplugin": 13, "singular": 6, "sort": [6, 12], "sourc": [1, 2], "span": 10, "special": [2, 12], "sql": 6, "sqlite": 6, "stand": 6, "standard": [8, 12], "startswith": 6, "startup": 2, "static": 4, "storag": 5, "string": [6, 16], "structur": [8, 12], "style": [6, 10, 14], "substr": 6, "sum": 6, "summari": 6, "super": 8, "support": [2, 6], "synchron": 6, "syntax": 8, "t": 16, "tabl": [6, 10, 17], "table_class": 6, "tag": [6, 10, 12, 13], "task": 16, "tbodi": 10, "td": 10, "templat": [4, 5, 8, 14], "text": 12, "textarea": 10, "th": 10, "thead": 10, "thi": 1, "time": [6, 12], "tip": 1, "titl": 10, "token": 13, "topic": 16, "tour": 6, "tr": 10, "transact": 6, "translat": [5, 11], "trigger_nam": 6, "try": 8, "tt": 10, "tupl": 12, "tutori": 1, "two": 13, "two_factor_requir": 13, "two_factor_send": 13, "two_factor_tri": 13, "two_factor_valid": 13, "type": [6, 12], "ubuntu": 2, "ui": 13, "ul": 10, "understand": 2, "up": 15, "updat": [6, 11], "update_or_insert": 6, "update_record": 6, "upgrad": 2, "upload": [6, 12], "upper": 6, "uri": 6, "url": 10, "urlsign": 5, "us": [2, 5, 6, 8, 10, 13, 14, 16], "usag": 16, "user": 13, "util": 16, "valid": [6, 12], "validate_and_insert": 6, "validate_and_upd": 6, "valu": [4, 6], "variabl": [8, 15], "version": [2, 6], "video": 1, "view": 15, "virtual": [2, 6], "vscode": 1, "watch": 4, "web": [3, 4], "web2pi": 15, "what": 0, "while": 8, "widget": [12, 16], "without": [2, 6, 12], "workflow": 8, "workplac": 1, "world": 15, "wsgi": 2, "xml": [6, 10], "yatl": [8, 10], "year": 6}}) \ No newline at end of file diff --git a/apps/_documentation/static/pt/.buildinfo b/apps/_documentation/static/pt/.buildinfo index 923462398..d2659a9f3 100644 --- a/apps/_documentation/static/pt/.buildinfo +++ b/apps/_documentation/static/pt/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 98265029ce021aefb7b5237442b00c75 +# This file records the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 47251d31eb033687cd72a6498a16ed66 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/apps/_documentation/static/pt/_static/basic.css b/apps/_documentation/static/pt/_static/basic.css index f316efcb4..7ebbd6d07 100644 --- a/apps/_documentation/static/pt/_static/basic.css +++ b/apps/_documentation/static/pt/_static/basic.css @@ -1,12 +1,5 @@ /* - * basic.css - * ~~~~~~~~~ - * * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ /* -- main layout ----------------------------------------------------------- */ @@ -115,15 +108,11 @@ img { /* -- search page ----------------------------------------------------------- */ ul.search { - margin: 10px 0 0 20px; - padding: 0; + margin-top: 10px; } ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; + padding: 5px 0; } ul.search li a { diff --git a/apps/_documentation/static/pt/_static/css/badge_only.css b/apps/_documentation/static/pt/_static/css/badge_only.css index c718cee44..88ba55b96 100644 --- a/apps/_documentation/static/pt/_static/css/badge_only.css +++ b/apps/_documentation/static/pt/_static/css/badge_only.css @@ -1 +1 @@ -.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px} \ No newline at end of file diff --git a/apps/_documentation/static/pt/_static/css/theme.css b/apps/_documentation/static/pt/_static/css/theme.css index 19a446a0e..0f14f1064 100644 --- a/apps/_documentation/static/pt/_static/css/theme.css +++ b/apps/_documentation/static/pt/_static/css/theme.css @@ -1,4 +1,4 @@ html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{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.33333em;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.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-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:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{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:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.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}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{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.33333em;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.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-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:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{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:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.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}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon,.wy-side-nav-search>a.icon{display:block}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch select option,.wy-side-nav-search>div.switch-menus>div.version-switch select option{color:#000}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/apps/_documentation/static/pt/_static/doctools.js b/apps/_documentation/static/pt/_static/doctools.js index 4d67807d1..0398ebb9f 100644 --- a/apps/_documentation/static/pt/_static/doctools.js +++ b/apps/_documentation/static/pt/_static/doctools.js @@ -1,12 +1,5 @@ /* - * doctools.js - * ~~~~~~~~~~~ - * * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ "use strict"; diff --git a/apps/_documentation/static/pt/_static/documentation_options.js b/apps/_documentation/static/pt/_static/documentation_options.js index c0519342e..e8af9d878 100644 --- a/apps/_documentation/static/pt/_static/documentation_options.js +++ b/apps/_documentation/static/pt/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '20240915', + VERSION: '20241204', LANGUAGE: 'pt', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/apps/_documentation/static/pt/_static/js/html5shiv-printshiv.min.js b/apps/_documentation/static/pt/_static/js/html5shiv-printshiv.min.js deleted file mode 100644 index 2b43bd062..000000000 --- a/apps/_documentation/static/pt/_static/js/html5shiv-printshiv.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/** -* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/apps/_documentation/static/pt/_static/js/html5shiv.min.js b/apps/_documentation/static/pt/_static/js/html5shiv.min.js deleted file mode 100644 index cd1c674f5..000000000 --- a/apps/_documentation/static/pt/_static/js/html5shiv.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/** -* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/apps/_documentation/static/pt/_static/language_data.js b/apps/_documentation/static/pt/_static/language_data.js index 47f42f25f..f7b73f872 100644 --- a/apps/_documentation/static/pt/_static/language_data.js +++ b/apps/_documentation/static/pt/_static/language_data.js @@ -1,13 +1,6 @@ /* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ var stopwords = ["a", "ao", "aos", "aquela", "aquelas", "aquele", "aqueles", "aquilo", "as", "at\u00e9", "com", "como", "da", "das", "de", "dela", "delas", "dele", "deles", "depois", "do", "dos", "e", "ela", "elas", "ele", "eles", "em", "entre", "era", "eram", "essa", "essas", "esse", "esses", "esta", "estamos", "estas", "estava", "estavam", "este", "esteja", "estejam", "estejamos", "estes", "esteve", "estive", "estivemos", "estiver", "estivera", "estiveram", "estiverem", "estivermos", "estivesse", "estivessem", "estiv\u00e9ramos", "estiv\u00e9ssemos", "estou", "est\u00e1", "est\u00e1vamos", "est\u00e3o", "eu", "foi", "fomos", "for", "fora", "foram", "forem", "formos", "fosse", "fossem", "fui", "f\u00f4ramos", "f\u00f4ssemos", "haja", "hajam", "hajamos", "havemos", "hei", "houve", "houvemos", "houver", "houvera", "houveram", "houverei", "houverem", "houveremos", "houveria", "houveriam", "houvermos", "houver\u00e1", "houver\u00e3o", "houver\u00edamos", "houvesse", "houvessem", "houv\u00e9ramos", "houv\u00e9ssemos", "h\u00e1", "h\u00e3o", "isso", "isto", "j\u00e1", "lhe", "lhes", "mais", "mas", "me", "mesmo", "meu", "meus", "minha", "minhas", "muito", "na", "nas", "nem", "no", "nos", "nossa", "nossas", "nosso", "nossos", "num", "numa", "n\u00e3o", "n\u00f3s", "o", "os", "ou", "para", "pela", "pelas", "pelo", "pelos", "por", "qual", "quando", "que", "quem", "se", "seja", "sejam", "sejamos", "sem", "serei", "seremos", "seria", "seriam", "ser\u00e1", "ser\u00e3o", "ser\u00edamos", "seu", "seus", "somos", "sou", "sua", "suas", "s\u00e3o", "s\u00f3", "tamb\u00e9m", "te", "tem", "temos", "tenha", "tenham", "tenhamos", "tenho", "terei", "teremos", "teria", "teriam", "ter\u00e1", "ter\u00e3o", "ter\u00edamos", "teu", "teus", "teve", "tinha", "tinham", "tive", "tivemos", "tiver", "tivera", "tiveram", "tiverem", "tivermos", "tivesse", "tivessem", "tiv\u00e9ramos", "tiv\u00e9ssemos", "tu", "tua", "tuas", "t\u00e9m", "t\u00ednhamos", "um", "uma", "voc\u00ea", "voc\u00eas", "vos", "\u00e0", "\u00e0s", "\u00e9ramos"]; diff --git a/apps/_documentation/static/pt/_static/searchtools.js b/apps/_documentation/static/pt/_static/searchtools.js index b08d58c9b..2c774d17a 100644 --- a/apps/_documentation/static/pt/_static/searchtools.js +++ b/apps/_documentation/static/pt/_static/searchtools.js @@ -1,12 +1,5 @@ /* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * */ "use strict"; @@ -20,7 +13,7 @@ if (typeof Scorer === "undefined") { // and returns the new score. /* score: result => { - const [docname, title, anchor, descr, score, filename] = result + const [docname, title, anchor, descr, score, filename, kind] = result return score }, */ @@ -47,6 +40,14 @@ if (typeof Scorer === "undefined") { }; } +// Global search result kind enum, used by themes to style search results. +class SearchResultKind { + static get index() { return "index"; } + static get object() { return "object"; } + static get text() { return "text"; } + static get title() { return "title"; } +} + const _removeChildren = (element) => { while (element && element.lastChild) element.removeChild(element.lastChild); }; @@ -64,9 +65,13 @@ const _displayItem = (item, searchTerms, highlightTerms) => { const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; const contentRoot = document.documentElement.dataset.content_root; - const [docName, title, anchor, descr, score, _filename] = item; + const [docName, title, anchor, descr, score, _filename, kind] = item; let listItem = document.createElement("li"); + // Add a class representing the item's type: + // can be used by a theme's CSS selector for styling + // See SearchResultKind for the class names. + listItem.classList.add(`kind-${kind}`); let requestUrl; let linkUrl; if (docBuilder === "dirhtml") { @@ -115,8 +120,10 @@ const _finishSearch = (resultCount) => { "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." ); else - Search.status.innerText = _( - "Search finished, found ${resultCount} page(s) matching the search query." + Search.status.innerText = Documentation.ngettext( + "Search finished, found one page matching the search query.", + "Search finished, found ${resultCount} pages matching the search query.", + resultCount, ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( @@ -138,7 +145,7 @@ const _displayNextItem = ( else _finishSearch(resultCount); }; // Helper function used by query() to order search results. -// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Each input is an array of [docname, title, anchor, descr, score, filename, kind]. // Order the results by score (in opposite order of appearance, since the // `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. const _orderResultsByScoreThenName = (a, b) => { @@ -248,6 +255,7 @@ const Search = { searchSummary.classList.add("search-summary"); searchSummary.innerText = ""; const searchList = document.createElement("ul"); + searchList.setAttribute("role", "list"); searchList.classList.add("search"); const out = document.getElementById("search-results"); @@ -318,7 +326,7 @@ const Search = { const indexEntries = Search._index.indexentries; // Collect multiple result groups to be sorted separately and then ordered. - // Each is an array of [docname, title, anchor, descr, score, filename]. + // Each is an array of [docname, title, anchor, descr, score, filename, kind]. const normalResults = []; const nonMainIndexResults = []; @@ -337,6 +345,7 @@ const Search = { null, score + boost, filenames[file], + SearchResultKind.title, ]); } } @@ -354,6 +363,7 @@ const Search = { null, score, filenames[file], + SearchResultKind.index, ]; if (isMain) { normalResults.push(result); @@ -475,6 +485,7 @@ const Search = { descr, score, filenames[match[0]], + SearchResultKind.object, ]); }; Object.keys(objects).forEach((prefix) => @@ -585,6 +596,7 @@ const Search = { null, score, filenames[file], + SearchResultKind.text, ]); } return results; diff --git a/apps/_documentation/static/pt/_static/translations.js b/apps/_documentation/static/pt/_static/translations.js index 92521cc73..b65255bc8 100644 --- a/apps/_documentation/static/pt/_static/translations.js +++ b/apps/_documentation/static/pt/_static/translations.js @@ -36,7 +36,11 @@ Documentation.addTranslations({ "Search": "", "Search Page": "", "Search Results": "", - "Search finished, found ${resultCount} page(s) matching the search query.": "", + "Search finished, found one page matching the search query.": [ + "", + "", + "" + ], "Search within %(docstitle)s": "", "Searching": "", "Searching for multiple words only shows matches that contain\n all words.": "", diff --git a/apps/_documentation/static/pt/chapter-01.html b/apps/_documentation/static/pt/chapter-01.html index dc16e452a..bd011a318 100644 --- a/apps/_documentation/static/pt/chapter-01.html +++ b/apps/_documentation/static/pt/chapter-01.html @@ -1,28 +1,25 @@ + + - O que é py4web? — Documentação py4web 20240915 + O que é py4web? — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -190,6 +184,7 @@

    Acknowledgmentssugizo

  • valq7711

  • Kevin Keller

  • +
  • Krzysztof Socha

  • Sam de Alfaro sam@dealfaro.com (logo design)

  • Special thanks to Sam de Alfaro, who designed the official logo of py4web. We friendly call the logo «Axel the axolotl»: it magically represents the sense of kindness and inclusion. We believe it’s the cornerstone of our growing community.

    @@ -208,7 +203,7 @@

    Acknowledgments -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com Sphinx usando um @@ -233,7 +228,7 @@

    Acknowledgments - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-02.html b/apps/_documentation/static/pt/chapter-02.html index 56bb40074..ac44c4815 100644 --- a/apps/_documentation/static/pt/chapter-02.html +++ b/apps/_documentation/static/pt/chapter-02.html @@ -1,28 +1,25 @@ + + - Ajuda, recursos e dicas — Documentação py4web 20240915 + Ajuda, recursos e dicas — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -191,24 +185,17 @@

    Depuração py4web com VScodelaunch.json configuration file. Note that if you’re using Windows the «your_full_path_to_py4web.py» parameter must be written using forward slash only, like «C:/Users/your_name/py4web/py4web.py».

    -

    If you have instead installed py4web from pip, you need to:

    -
    -
    #!/usr/bin/env python3
    -from py4web.core import cli
    -cli()
    -
    -
    -
      -
    • create / change the vscode launch.json configuration file:

    • -
    -
    "args": ["run", "."],
    -"program": "your_full_path_to_py4web-start.py",
    +

    If you have instead installed py4web from pip, you need to set the launch.json file to run py4web as a module

    +
    {
    +  "name": "py4web apps",
    +  "type": "debugpy",
    +  "request": "launch",
    +  "module": "py4web",
    +  "args": ["run", "apps", "-D", "--watch", "lazy"]
    +}
     
    +

    Adjust the args to match your apps folder. For example, replace apps with . if you opened the apps folder itself in VSCode.

    Dica

    In both cases, if you should get gevent errors you have to also add "gevent": true on the launch.json configuration file.

    @@ -242,7 +229,7 @@

    Como contribuir -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com Sphinx usando um @@ -267,7 +254,7 @@

    Como contribuir - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-03.html b/apps/_documentation/static/pt/chapter-03.html index 0ac526a1c..2eeccc748 100644 --- a/apps/_documentation/static/pt/chapter-03.html +++ b/apps/_documentation/static/pt/chapter-03.html @@ -1,29 +1,27 @@ + + - Instalação e colocação em funcionamento — Documentação py4web 20240915 + Instalação e colocação em funcionamento — Documentação py4web 20241204 - + - - - - - - - - - - + + + + + + + + @@ -43,9 +41,6 @@ py4web -
    - 20240915 -
    @@ -400,38 +395,36 @@

    Opções de linha de comandoapp_names option lets you filter which specific apps you want to serve (comma separated). If absent or empty @@ -566,9 +559,10 @@

    HTTPS
    "configurations": [
             {
                 "name": "py4web",
    -            "type": "python",
    +            "type": "debugpy",
                 "request": "launch",
    -            "program": "${workspaceFolder}/py4web.py",
    +            "module": "py4web",
    +            // or "program": "${workspaceFolder}/py4web.py", if you didn't install py4web as a package
                 "args": [
                     "run",
                     "apps",
    @@ -670,7 +664,7 @@ 

    Deployment on Ubuntu
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com
    Sphinx usando um @@ -695,7 +689,7 @@

    Deployment on Ubuntu - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-04.html b/apps/_documentation/static/pt/chapter-04.html index a194ec2a2..93badc937 100644 --- a/apps/_documentation/static/pt/chapter-04.html +++ b/apps/_documentation/static/pt/chapter-04.html @@ -1,28 +1,25 @@ + + - O Dashboard — Documentação py4web 20240915 + O Dashboard — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -165,7 +159,7 @@

    Sessão no Dashboard
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com
    Sphinx usando um @@ -190,7 +184,7 @@

    Sessão no Dashboard - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-05.html b/apps/_documentation/static/pt/chapter-05.html index 270345015..387ccbd2e 100644 --- a/apps/_documentation/static/pt/chapter-05.html +++ b/apps/_documentation/static/pt/chapter-05.html @@ -1,28 +1,25 @@ + + - Creating an app — Documentação py4web 20240915 + Creating an app — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -73,6 +67,7 @@
  • Copying the _scaffold app
  • Watch for files change
  • Domain-mapped apps
  • +
  • Custom error pages
  • Fixures
  • @@ -164,11 +159,15 @@

    Páginas estáticashttps://github.com/valq7711/ombott>`__, +
    +

    Importante

    +

    Internally py4web uses the +ombott (One More BOTTle) web server, +which is a minimal and fast bottlepy spin-off. It supports streaming, partial content, range requests, and if-modified-since. This is all handled automatically based on the HTTP request headers.

    +

    Páginas web dinâmicas

    @@ -238,6 +237,33 @@

    Rotas

    O padrão de harmonização o carácter universal é passado para a função sob a variável especificada `` name``.

    +

    Note that the routing is implemented in ombott as radix-tree hybrid +router. It is declaration-order-independent and it prioritizes static +route-fragment over dynamic one, since this is most expected behavior.

    +

    This results in some constraints, such as one cannot have more than one +route that has dynamic fragment of different types (int, path) in the +same place.. Hence something like this is incorrect and will result +in errors:

    +
    @action('color/<code:int>')
    +def color(code):
    +    return f'Color code: {code}'
    +
    +@action('color/<name:path>')
    +def color(name):
    +    return f'Color name: {name}'
    +
    +
    +

    Instead, to accomplish a simmilar result, one needs to handle all the +logic in one action:

    +
    @action('color/<color_identifier:path>')
    +def color(color_identifier):
    +   try:
    +      msg = f'Color code: {int(color_identifier)}'
    +   except:
    +      msg = f'Color name: {color_identifier}'
    +   return msg
    +
    +

    Além disso, o decorador acção tem um argumento `` method`` opcional que pode ser um método HTTP ou uma lista de métodos:

    -

    This is an example server block of nginx configuraiton. One would have to create a separate such block for each app/each domain being served by py4web server. Note some important aspects:

    +

    This is an example server block of nginx configuration. One would have to create +a separate such block for each app/each domain being served by py4web server. Note some important aspects:

    • server_name defines the domain mapped to the app myapp,

    • -
    • proxy_http_version 1.1; directive is optional, but highly recommended (otherwise nginx uses HTTP 1.0 to talk to the backend-server – here py4web – and it creates all kinds of issues with buffering and otherwise),

    • +
    • +
      proxy_http_version 1.1; directive is optional, but highly recommended (otherwise nginx uses HTTP 1.0 to talk

      to the backend-server – here py4web – and it creates all kinds of issues with buffering and otherwise),

      +
      +
      +
    • proxy_set_header Host $host; directive ensures that the correct Host is passed to py4web – here myapp.example.com

    • -
    • proxy_set_header X-PY4WEB-APPNAME /myapp; directive ensures that py4web (and ombott) knows which app to serve and also that this application is domain-mapped – pay specific attention to the slash (/) in front of the myapp name – it is required to ensure correct parsing of URLs on ombott level,

    • -
    • finally proxy_pass http://127.0.0.1:8000/myapp$request_uri; ensures that the request is passed in its entirity ($request_uri) to py4web server (here: 127.0.0.1:8000) and the correct app (/myapp).

    • +
    • +
      proxy_set_header X-PY4WEB-APPNAME /myapp; directive ensures that py4web (and ombott) knows which app to serve

      and also that this application is domain-mapped – pay specific attention to the slash (/) in front of the myapp +name – it is required to ensure correct parsing of URLs on ombott level,

      +
      +
      +
    • +
    • +
      finally proxy_pass http://127.0.0.1:8000/myapp$request_uri; ensures that the request is passed in its integrity ($request_uri)

      to py4web server (here: 127.0.0.1:8000) and the correct app (/myapp).

      +
      +
      +
    -

    Such configuration ensures that all URL manipulation inside ombott and py4web - especially in modules such as Auth, Form, and Grid are done correctly using the domain to which the app is mapped to.

    +

    Such configuration ensures that all URL manipulation inside ombott and py4web - especially in modules such as Auth, Form, +and Grid are done correctly using the domain to which the app is mapped to.

    + +
    +

    Custom error pages

    +

    py4web provides default error pages. For instance, if none of the routes +in an app matches the request, a default 404 error page will be shown. By +default all HTTP error codes are handled automatically by py4web.

    +

    It is however possible to override this behaviour. It can be done either +per HTTP error code, or even for all errors.

    +

    Here is an example for overriding HTTP code 404 (not found):

    +
    from py4web.core import ERROR_PAGES
    +ERROR_PAGES[404] = f"Page not found!"
    +
    +
    +

    If one wants to replace _all_ default error pages, a special qualifier +"*" should be used. Also, the returned value may contain HTML code as +well:

    +
    from py4web import URL
    +from py4web.core import ERROR_PAGES
    +from yatl.helpers import A
    +
    +ERROR_PAGES["*"] = f"We have encountered an error! (try: {A('Main Page', _href=URL("/",scheme=True))})"
    +
    +
    +

    Note that this setup is global. This means that it is defined once +for all apps on a given py4web instance. This is because, when an error +is encountered, it could be because the request has not matched any of +the apps. Hence, this configuration should only be done in one of the +apps.

    @@ -459,7 +528,7 @@

    Domain-mapped apps -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com Sphinx usando um @@ -484,7 +553,7 @@

    Domain-mapped apps - v: 20240915 + v: 20241204

    -

    The string hello world will be translated based on the +

    The string hello world will be translated based on the internationalization file in the specified “translations” folder that best matches the HTTP accept-language header.

    Aqui `` Translator`` é uma classe py4web que se estende `` pluralize.Translator`` e também implementa a interface de `` Fixture``.

    @@ -279,7 +277,7 @@

    The Translator fixturereturn str(T("You have been here {n} times").format(n=counter))

    -

    If the T fixture is to be used from inside a template you may want to pass it to the template:

    +

    If the T fixture is to be used from inside a template you may want to pass it to the template:

    This is to be done outside any action and will apply to all actions. Action will still need to declare -action.uses(T) else the behavior is undefined.

    +action.uses(T) else the behavior is undefined.

    O fixture flash

    @@ -609,9 +607,9 @@

    The Condition fixture

    Notice that the Condition fixtures takes a function as first argument -which is called on_request and must evaluate to True or False.

    +which is called on_request and must evaluate to True or False.

    Also notice that in the above example the Condition depends on the Session -therefore it must be listed after session in action.uses.

    +therefore it must be listed after session in action.uses.

    If False, by default, the Condition fixture raises 404. It is possible to specify a different exception:

    You can use condition to check permissions. For example, if you -are giving group memberships to users using Tags (it will be explained +are giving group memberships to users using Tags (it will be explained later on the Authorization using Tags chapter), then you can require that users action have specific group membership:

    groups = Tags(db.auth_user)
    @@ -790,11 +788,11 @@ 

    Fixtures personalizadosdef on_error(self, context) pass

    -

    For example in the DAL fixture case, on_request starts a transaction, -on_success commits it, and on_error rolls it back.

    -

    In the case of a template, on_request and on_error do nothing but -on_success transforms the output.

    -

    In the case of auth.user fixtures, on_request does all the work of +

    For example in the DAL fixture case, on_request starts a transaction, +on_success commits it, and on_error rolls it back.

    +

    In the case of a template, on_request and on_error do nothing but +on_success transforms the output.

    +

    In the case of auth.user fixtures, on_request does all the work of determining if the user is logged in (from the dependent session fixture) and eventually preventing the request from accessing the inner layers.

    Now imagine a request coming in calling an action with three fixtures A, B, and C. @@ -803,22 +801,22 @@

    Fixtures personalizadoson_request +and the last one to call on_success. You can think of them as layers of +an onion with the action (user code) at the center. on_success is called +when entering a layer from the outside and on_success is called when exiting a layer from the inside (like WSGI middleware).

    If any point an exception is raised inner layers are not called -and outer layers will call on_error instead of on_success.

    +and outer layers will call on_error instead of on_success.

    Context is a shared object which contains:

    • content[“fixtures”]: the list of all the fixtures for the action.

    • -
    • context[“processed”]: the list of fixtures that called on_request previously within the request.

    • +
    • context[“processed”]: the list of fixtures that called on_request previously within the request.

    • context[“exception”]: the exception raised by the action or any previous fixture logic (usually None)

    • context[“output”]: the action output.

    -

    on_success and on_error can see the current context[“exception”] and -transform it. They can see the current context[“output”] and transform it as well.

    +

    on_success and on_error can see the current context['exception'] and +transform it. They can see the current context['output'] and transform it as well.

    For example here is a fixture that transforms the output text to upper case:

    -

    Notice that this fixture assumes the context[“output”] is a string +

    Notice that this fixture assumes the context['output'] is a string and therefore it must come before the template.

    Here is a fixture that logs exceptions tracebacks to a file:

    -

    Fixtures also have a __prerequisite__ attribute. If a fixture +

    Fixtures also have a __prerequisite__ attribute. If a fixture takes another fixture as an argument, its value must be appended -to the list of __prerequisites__. This guarantees that they are +to the list of __prerequisites__. This guarantees that they are always executed in the proper order even if listed in the wrong order. -It also makes it optional to declare prerequisite fixtures in action.uses.

    -

    For example Auth depends on db, session, and flash. db and session -are indeed arguments. flash is a special singleton fixture declared within Auth. +It also makes it optional to declare prerequisite fixtures in action.uses.

    +

    For example Auth depends on db, session, and flash. db and session +are indeed arguments. flash is a special singleton fixture declared within Auth. This means that

    action.uses(auth)
     
    @@ -865,7 +863,7 @@

    Fixtures personalizadospy4web.HTTP, bottle.HTTResponse) while other exceptions are errors. The actual logic can be complicated and individual fixtures do not need to know these details.

    They all need to know what the context is and whether they are @@ -874,6 +872,74 @@

    Fixtures personalizados +

    Fixtures with dependencies

    +

    If a fixture depends on another fixture, it needs to be passed that fixture in the initializer, +and the fixture must be listed in the __prerequisites__ attribute. +For example, suppose we want to create a fixture that grants access to a controller only +to users whose email address is included in an ADMIN_EMAILS list. +We can write the following fixture:

    +
    class AdminAccess(Fixture):
    +
    +    def __init__(self, auth, admin_list, redirect_url=None):
    +        super().__init__()
    +        self.admin_list = admin_list
    +        self.auth = auth
    +        self.__prerequisites__ = [auth]
    +        # One thing to note here is that the URL function can only be called in a
    +        # request context (while serving a request).  Thus, we cannot store in the fixture
    +        # initialization the full URL to redirect, but only the path.
    +        self.redirect_url = redirect_url or 'index'
    +
    +    def on_request(self, context):
    +        if ((not self.auth.current_user)
    +            or self.auth.current_user.get('email') not in self.admin_list):
    +            redirect(URL(self.redirect_url))
    +
    +    def on_error(self, context):
    +        redirect(URL(self.redirect_url))
    +
    +
    +

    The fixture can be created and used as follows:

    +
    admin_access = AdminAccess(auth, ['a@example.com',], 'index')
    +
    +@action('/admin-only')
    +@action.uses('admin_only.html', admin_access)
    +def admin_only():
    +    return dict()
    +
    +
    + +
    +

    Using local storage

    +

    Fixtures can use a thread-local storage for data they need. +Here is an example:

    +
    class LocalStorageDemo(Fixture):
    +
    +   def __init__(self):
    +       super().__init__()
    +
    +   def on_request(self, context):
    +       Fixture.local_initialize(self)
    +       # We can check whether the local storage is valid.
    +       print(f"is_valid: {self.is_valid()}")
    +       content = str(uuid.uuid4())
    +       print(f"Storing content: {content}")
    +       self.local.my_content = content
    +
    +   def on_success(self, context):
    +       # The line below is used only to show that the thread-local object is in place.
    +       print(f"Retrieved: {self.local.my_content}")
    +
    +
    +

    Notably, the initializer should contain the line:

    +
    Fixture.local_initialize(self)
    +
    +
    +

    in order to initialize the thread-local storage. +Once this is done, the thread-local storage can be used to store and retrieve data +using the the self.local object.

    +

    Multiple fixtures

    @@ -907,11 +973,11 @@

    Multiple fixtures
    @action.uses(A,B)
     

    -

    but not quite. All fixtures declared in one action.uses share -the same context while fixtures in different action.uses use +

    but not quite. All fixtures declared in one action.uses share +the same context while fixtures in different action.uses use different contexts and therefore they cannot communicate with each other. This may change in the future. -For now we recommend using a single call to action.uses.

    +For now we recommend using a single call to action.uses.

    Caching e Memoize

    @@ -941,16 +1007,16 @@

    Caching e Memoize

    Decoradores de conveniência

    The _scaffold application, in common.py defines two special -convenience decorators:

    -
    @unauthenticated()
    -def index():
    -    return dict()
    +convenience decorators using ActionFactory:

    +
    @unauthenticated()
    +def index():
    +    return dict()
     

    e

    -

    @@ -978,7 +1085,7 @@

    Decoradores de conveniência -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com Sphinx usando um @@ -1003,7 +1110,7 @@

    Decoradores de conveniência - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-07.html b/apps/_documentation/static/pt/chapter-07.html index ddecc1a0b..c09de85fd 100644 --- a/apps/_documentation/static/pt/chapter-07.html +++ b/apps/_documentation/static/pt/chapter-07.html @@ -1,28 +1,25 @@ + + - The Database Abstraction Layer (DAL) — Documentação py4web 20240915 + The Database Abstraction Layer (DAL) — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -1113,7 +1107,11 @@

    Construtor Fieldwidget do not use DAL widgets with py4web, it has has its own +(see Widgets later).

    +
  • represent can be None or can point to a function that takes a +field value and returns an alternate representation for the field +value.

  • Note not all the attributes are thread safe and most of them should only be set globally for an app. The following are guaranteed to be @@ -3850,7 +3848,7 @@

    Google NoSQL (Datastore)
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com
    Sphinx usando um @@ -3875,7 +3873,7 @@

    Google NoSQL (Datastore) - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-08.html b/apps/_documentation/static/pt/chapter-08.html index 6bcad2e2c..770736c83 100644 --- a/apps/_documentation/static/pt/chapter-08.html +++ b/apps/_documentation/static/pt/chapter-08.html @@ -1,28 +1,25 @@ + + - The RestAPI — Documentação py4web 20240915 + The RestAPI — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -1144,7 +1138,7 @@

    The RestAPI response
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com
    Sphinx usando um @@ -1169,7 +1163,7 @@

    The RestAPI response - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-09.html b/apps/_documentation/static/pt/chapter-09.html index 2ba861f4a..0d997514e 100644 --- a/apps/_documentation/static/pt/chapter-09.html +++ b/apps/_documentation/static/pt/chapter-09.html @@ -1,28 +1,25 @@ + + - Linguagem de template YATL — Documentação py4web 20240915 + Linguagem de template YATL — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    Compilado com Sphinx usando um @@ -734,7 +728,7 @@

    Mobile development - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-10.html b/apps/_documentation/static/pt/chapter-10.html index b9adc6438..0fae96c08 100644 --- a/apps/_documentation/static/pt/chapter-10.html +++ b/apps/_documentation/static/pt/chapter-10.html @@ -1,28 +1,25 @@ + + - Helpers YATL — Documentação py4web 20240915 + Helpers YATL — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    Compilado com Sphinx usando um @@ -843,7 +837,7 @@

    Using Inject - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-11.html b/apps/_documentation/static/pt/chapter-11.html index fb2e1a503..26eb58cb0 100644 --- a/apps/_documentation/static/pt/chapter-11.html +++ b/apps/_documentation/static/pt/chapter-11.html @@ -1,28 +1,25 @@ + + - Internacionalização — Documentação py4web 20240915 + Internacionalização — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -187,7 +181,7 @@

    Atualizar os arquivos de tradução -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com Sphinx usando um @@ -212,7 +206,7 @@

    Atualizar os arquivos de tradução - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-12.html b/apps/_documentation/static/pt/chapter-12.html index a9696f142..3ef641727 100644 --- a/apps/_documentation/static/pt/chapter-12.html +++ b/apps/_documentation/static/pt/chapter-12.html @@ -1,28 +1,25 @@ + + - Forumlários — Documentação py4web 20240915 + Forumlários — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -

    Custom widgets

    @@ -1587,7 +1586,7 @@

    Validation functions
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com
    Sphinx usando um @@ -1612,7 +1611,7 @@

    Validation functions - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-13.html b/apps/_documentation/static/pt/chapter-13.html index 707598b4d..84de48667 100644 --- a/apps/_documentation/static/pt/chapter-13.html +++ b/apps/_documentation/static/pt/chapter-13.html @@ -1,28 +1,25 @@ + + - Authentication and authorization — Documentação py4web 20240915 + Authentication and authorization — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -86,6 +80,12 @@
  • OAuth2 with Discord
  • +
  • Auth API Plugins +
  • Authorization using Tags
  • @@ -469,6 +485,149 @@

    OAuth2 with Discord +

    Auth API Plugins

    +

    There are two types of web APIs, those called by the browser for example by a single page web app, +and those designed to be called by a different kind of program. Both of them may need tosupport +authentication. The distintion is important because, in the case of the browser, there is no need +to manage any authentication token as the browser already provides cookies and py4web uses +cookies to handle seesions. If the user operating the browser is logged-in, when an API is called, +the corresponding action already knows who the user is. No additional logic is necessary. +In this case there there is no need for any kind of additional API token which would only diminuish +the security provided by the cookie based session token.

    +

    When the API is to be accessed by a different program (for example a script) the story is different. +There is no session and we do not want to ask the user for the password every time. +The standard way to authenticate in this case is by issuing the user an API token, aka a string, +which, when presented along with API request allows py4web to recognize the identity of the caller. +This is also referred to as «Authentication bearer».

    +

    Py4web provides a plugin system that gives you a lot of flexibility but it also provides +two practical plugins that are sufficient in most cases. The two plugins are called: +SimpleTokenPlugin and JwtTokenPlugin. The first one of the two is recommended in most of the cases.

    +

    What all plugins have in common: +- They have a way for a user to create a token which is a string. +- When an HTTP(S) request is made to an action that @actiion.uses(auth) or @action.uses(auth.user)

    +
    +

    py4web will identify the user if the token is present, as if the user was logged-in.

    +
    +

    What SimpleTokenPlugin and JwtTokenPlugin have in common: +- When an HTTP(S) request is made, the token must be put in the «Authentication» header.

    +
    +

    You will need to create your own plugin if you want to pass it in some other manner.

    +
    +
      +
    • Each user can create as many tokens as desired.

    • +
    • Users can create tokens for other users if the application logic requires/allows it.

    • +
    +

    Unique features of SimpleTokenPlugin: +- A token is a UUID. +- Tokens can be managed serverside (created, deleted, expired, change expiration). +- Current tokens are stored in a adatabase table. +- The default table associates token with the owner and a textual description.

    +
    +

    Users can nevertheless provide their own table and add any desired metadata to tokens +which the app can retrieve to distinguish different tokens from the same user. +This is done by adding fields to the table.

    +
    +
      +
    • Under the hood veryfing a token requires a database query.

    • +
    +

    Unique features of JwtTokenPlugin: +- The token is an encrypted and digitally signed dict that stores the user_id and expiration. +- The author of the token can add any metadata to into the token at creation. +- The token is not stored anywhere serverside and there is no database table. +- Tokens can be created (and there is a function to do so) but they cannot be managed.

    +
    +

    The server cannot expire tokens or change expiration. This would require the tokens +to validated against a database and that is exactely when the JwtTokenPlugin tries to avoid.

    +
    +
      +
    • The only way to expire a token is by changing the serverside secret using for validation +so when a token is expired, all tokens are expired.

    • +
    +

    SimpleTokenPlugin are the recommended kind of tokens for most applications. +JwtTokenPlugin are valuable when the expiration is short and known in advance and when +avoiding a database lookup is very important, such as for actions that are very fast +and one is willing to sacrifice a bit of security (serverside token expiration capability) +in order to avoid database access.

    +
    +

    Example of SimpleTokenPlugin

    +

    In common.py:

    +
    from py4web.utils.auth import SimpleTokenPlugin
    +simple_token_plugin = SimpleTokenPlugin(auth)
    +auth.token_plugins.append(simple_token_plugin)
    +
    +
    +

    You can optionally a table=db.mytable to a custom table. Otherwise it will create and use +one called «auth_simple_token».

    +

    In controllers.py

    +
    @action("test_api")
    +@action.uses(auth.user)
    +def test_api():
    +    return {"hello": "world"}
    +
    +
    +

    Users can access this action if via a browser if they are logged in, without the token, of via API by providing a token.

    +
    curl http://127.0.0.1:8000/test1/test_api -H "Authorization: Bearer {token}"
    +
    +
    +

    In order to create and manage tokens you can use a grid. In controllers.py

    +
    @action("tokens/<path:path>")
    +@action.uses("generic.html", auth.user)
    +def _(path):
    +   db.auth_simple_token.user_id.default = auth.user_id
    +   grid = Grid(path, db.auth_simple_token.user_id==auth.user_id, create=True, deletable=True)
    +   return dict(grid=grid)
    +
    +
    +
    +
    +

    Example of JwtTokenPlugin

    +

    In common.py:

    +
    from py4web.utils.auth import SimpleTokenPlugin
    +jwt_token_plugin = JwtTokenPlugin(auth)
    +auth.token_plugins.append(jwt_token_plugin)
    +
    +
    +

    In controllers.py it works the same as SimpleTokenPlugin:

    +
    @action("test_api")
    +@action.uses(auth.user)
    +def test_api():
    +    return {"hello": "world"}
    +
    +
    +

    The token is also passed using the same header as in the previous example:

    +
    curl http://127.0.0.1:8000/test1/test_api -H "Authorization: Bearer {token}"
    +
    +
    +

    While you cannot manage tokens you still need a way to create them. You can create an +action for example that, when called, gives you a new token. In controllers.py

    +
    @action("make_token")
    +@action.uses("generic.html", auth.user)
    +def make_token():
    +     return dict(token=jwt_token_plugin.make(
    +        auth.current_user,
    +        expiration=utcnow()+datetime.timedelta(days=10)))
    +
    +
    +
    +
    +

    Example of custom Token Plugin

    +

    A token plugin is just a class that, given a request, returns an associated user. +For example here is a dumb and UNSAFE plugin that authorizes everybody as user 1 as long as +the «Authentication» header is provided.

    +

    from py4web import request

    +
    class MyCustomTokenPlugin:
    +    def get_user(self):
    +        authorization = request.headers.get("Authentication")
    +        if authorization:
    +            return db.auth_user(1)
    +        return None
    +
    +auth.token_plugins.append(MyCustomTokenPlugin())
    +
    +
    +
    +

    Authorization using Tags

    @@ -649,7 +808,7 @@

    User Impersonation -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com Sphinx usando um @@ -674,7 +833,7 @@

    User Impersonation - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-14.html b/apps/_documentation/static/pt/chapter-14.html index 343f116ac..79eb162cd 100644 --- a/apps/_documentation/static/pt/chapter-14.html +++ b/apps/_documentation/static/pt/chapter-14.html @@ -1,28 +1,25 @@ + + - Rede — Documentação py4web 20240915 + Rede — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -409,7 +403,7 @@

    Usando templates
    [[if request.query.get('action') in ('details', 'edit'):]]
    +
    [[if grid.action in ['details', 'edit']: ]]
         #  Display the custom form
         [[form = grid.render() ]]
         [[form.custom["begin"] ]]
    @@ -636,7 +630,7 @@ 

    Grids with checkboxes
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com
    Sphinx usando um @@ -661,7 +655,7 @@

    Grids with checkboxes - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-15.html b/apps/_documentation/static/pt/chapter-15.html index 89917b2b5..1be2c1b69 100644 --- a/apps/_documentation/static/pt/chapter-15.html +++ b/apps/_documentation/static/pt/chapter-15.html @@ -1,28 +1,25 @@ + + - De web2py para py4web — Documentação py4web 20240915 + De web2py para py4web — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -42,9 +39,6 @@ py4web -
    - 20240915 -
    Compilado com Sphinx usando um @@ -491,7 +485,7 @@

    “auth” example - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/chapter-16.html b/apps/_documentation/static/pt/chapter-16.html index 05f1068f0..114298a16 100644 --- a/apps/_documentation/static/pt/chapter-16.html +++ b/apps/_documentation/static/pt/chapter-16.html @@ -1,28 +1,25 @@ + + - Advanced topics and examples — Documentação py4web 20240915 + Advanced topics and examples — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    Compilado com Sphinx usando um @@ -887,7 +881,7 @@

    The T object - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/genindex.html b/apps/_documentation/static/pt/genindex.html index e7bb06847..95236d992 100644 --- a/apps/_documentation/static/pt/genindex.html +++ b/apps/_documentation/static/pt/genindex.html @@ -1,28 +1,24 @@ + + - Índice — Documentação py4web 20240915 + Índice — Documentação py4web 20241204 - - + - - - - - - - - - - + + + + + + + @@ -40,9 +36,6 @@ py4web -
    - 20240915 -
    @@ -110,7 +103,7 @@

    Índice


    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com Sphinx usando um @@ -135,7 +128,7 @@

    Índice

    - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/index.html b/apps/_documentation/static/pt/index.html index 5b154ccc9..dc2864a8c 100644 --- a/apps/_documentation/static/pt/index.html +++ b/apps/_documentation/static/pt/index.html @@ -1,28 +1,25 @@ + + - py4web: o manual de referência — Documentação py4web 20240915 + py4web: o manual de referência — Documentação py4web 20241204 - - + - - - - - - - - - + + + + + + + @@ -41,9 +38,6 @@ py4web -
    - 20240915 -
    Compilado com Sphinx usando um @@ -284,7 +279,7 @@

    Índices e tabelas - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/objects.inv b/apps/_documentation/static/pt/objects.inv index 80244317c78bba61aedc2ede63998624d6558de0..b403c9ff8a7161b269705e1f98c3d3cb98c2780e 100644 GIT binary patch delta 9592 zcmV-;C5PICN}WrPJ_Io`Ff@@uJb&G8L`f6VwZ;$|)1jr%*_G*zQ@SE(DL406|} z4if$NquvF4`6~u$giKgAUtinBPQWVx|bR~HC`W=PxqTG}kT(R6Evt4lDtn|}@>9o7??xFsV+ zO%9h|fJ|DMRZ*|`OJXup8~)rBiLS#7Z$Bt z7j>}dP$)jQ{NZ92VW}5ie)(l->ZZ&?9Uo*BOHv`sBL4I5|08x-Buno?_Z&nBjFN~b zZ4qiFlpzes0?4dFT7S$60Y_&n{$S=!ZAO^eRubV|9MRM!PkaYU^Lf@JCe&t(qW&d_ zm@g5HTmtq*ngQ%O&AkG-Vw<4RWl7*CHS!H`(vgol)F$rIl3uFQU~8gGjDNg5c0BVS z4S-)NTaG9ulul3z0bDr87xxHbW+aVe)jroaB8C+Kg4zP5eSa%3jft58nQaMuKMnSK zkb}lWk_%mG>hx*u7=nEfWvBooDM$Qnz2J+t=#$Yjyhu%kWO< zW5*xA`^tTI?SDRe?LNGrM!7XQ*bh;LAV-r!2Eo-J2>uXgc6LgjG=xY|{Dfr_Y{}e$ z6^Qi>K2r6qiHkB_>2e)^Fzex)l_rX?im(c>O0WvCsD>20x3#XI$KRCT8zIXbD|!66 zO!0oDXroOg|Ei$TNf!#G70Qwpw$yk{KFHXfu9m^pSbr^v;_NLW@}dd)10+PK_ZL?) z!Br+~B3O!$B9GAOT4%*AjQ1;3rt{GFmO^uP#N(6c_2l&89k>Z+N0%oDOo&4!Sj6j6 z=Swq!5#`aqk~~r#PG(2fC-1K>C-2`LwVWfV977AN)79PuLd=sw%}&m?6%1wfpzX2= ziJ3#s&42bPBSZQ{JUTczo1AWx(5!TtjbJ1>q&Yg9oSZr=I7ZjD90f;5%a+V=F@w3z zrI37Vpl-DtLxQ5JwnXyVE2zutTu2^@QKbMe0{`wpw8NM@rae&%fyXDO(r$~)>Uy7B zLV(^4IX*p~%r!hxVLO^;?9@IA{1pe+Ri+HED=>vpDj|7M=Ne{w4eoxs$ps>ZN6 zS)#g_93EaCO{b3M?)4~&yVs2V?zIQL83%kLz&8y1sj~S9Ac`UIH`DX?49rZvtZzp^ zS$`10r$_JK&fW<;t?FyLV4F0i*$|-Yf{hck-Ra46c71-#R%+U#9naSx5(ay3#@H8< zBlP+AM`B^XC!CLI5|Tsg*<^Mg4FWFAwah+)c#vf)iyZIIXKZF$p0U;edAx-{o{p8s zn=Bh=?@?0B{rjuaQ*Z4ny%_U!p%`MPlYe7*nyRc>jsb!g0Z*^q3a~D1J_<^L1fE@< zzZdw((c6vO?Wo-pVDJ+fU~)Z*gAvLhknZXN#)v~2cHU1~=3-QDBspfeaJ{i9#|-u$ zMYu~G=t(f-ck&M)b;{C+3%dIm`TM6QBK|=pplSQDG)ow>WujZ_vaaq^G%z#^&VQ56 zx4DJs7C5mk3PeqW9|xaZAMFK=iu5X0sakEyDN;@cx2!zvSOZ_)xKsAHTljdh^l`uV zalia=rvkCmfZC|4zxmsGU6{Y~)AAM=sv_7ngwlZMP+WW{+&3}vQqlSa0>!IzS!x$z zTj&qw+Fu#gDq;#TO1>cbS(h;GGk=1<+}vO5qS!Mi3n&Gs5ph}154voyb6e`!=RAqE zU`Nd&&4X39U_?ofz%2?ns9-_0g$pg5U(8O<-!rsKOnD>W$Yp7p!hOloRa(0*3Ea~( zpGy!ErnM>BK>REO*HDih;wOud6(TYV!OivjHe638R8klvtjZNZv3BL;pnqMQ29Cppc_9!K#&X2QDs;1VQnV4`z*lk_s#m z1`Zc6sAp!W=WFo8Z!%K_N`K@@lrSia=`n*622|QpHf>PS#03WZYUI`xX-#wmCHvTz zQf?^C3TULT_dyd#IGPinG^+h=%M?!?ReVWY5e`4&9(5;2VAFZfOCI_$B&f5PM)hGL z6j3OwNErDXMQ-5&{)D_uzNc*j#0a}cyue@0%d`jvn^=n4?%?v|f`7wJmC4LJ3?(Uo z9-ST?Y(QPb2HT3IU8Q*0hHKHIgqxnv&GnEE)-tlNZ~JKrrp{wd1EXr&P9=*%YHp1Nht*`@n%DE!MX z+mcy0R9%l*hOgZ^{LC-J*X9A-WE0G>aB_q``rT}DdBhnP1AoB>2fZcGI}snT_EEdV zkC|WnsM9*!6G@10Co}1Zb(t=grW|FAMAqA)Sr1EOYh09gn46-O)d~0qLyyj~b!eRe zz>1-?RG|b$ig4ko}{K2y_jm_XZn02HUqtO$K+2*B!$1 z9p+FihpMe&4q1pGj!BZvq1)3Vpjp&bJl&Z?o5E+~<~>lXI}JW)5-*Idn=)Ji7FS;U z0BGkR^7u!XFwbEor9tBH4>Xx-$?=9Jrb?H2pntb`e(WrQm~5eGxocabb8bWFGCS(< z^38@0MpDap8ttJc0s2k- zO@Bqt4%TiT#RMbOn;MxAFGl^6@ekl}j<_KnC5i|&*+MsiA5f2lfvLc3Krm{_($w-Z z5IzLDYzM0tD>?}~=~92cNgaXBOy_;0I`|Nhe9v6R-#(!b)@7L{0oK=DR+Qgh?NSJ9 zwFWQoA&{<1d?Gnb@t=ur9)E_bI=X4n41ZUeVwe;b-~|M7c12n_>2EjS5ykLca3~Lr zY$(?j#8fLRXtUx^#6}$&`u)nRZ2D;z;hUC_x-vXT4sakOCO+dUo|a=5Rk(~u>4c~9 zANr9mWtM%$v}OE<$+uMuV&VX^*Z3mloLOog@h<~)5h@J-N(!C$s*-)%@l;Egbbpk& zCG!bHD;TNb+~Rslii>o3nXpvu7o5FVVHKb}bpxL4C$W)peFuY}OCVdM4@2XpzmbHI z#4(RK*h&@6q44E;*fczg4@fF%T@V5!cD}_iiO=JYjfo%s6TF+(_vYsBTiC0uFg6MC zMUoNsIV;E8=TL9Keje=7$c3@S;V%*^1)UjgQj@z7xL3ZI$MJ7|(7El*_rZ zH_)BHHNvOhRIg1LKR=wDe$i6>dMnkhTdGS_)!;6)h`-s2V0##!Vo+Z%&3}rVSOeA+ zd;1TQ*{LVk+B2kM{4G2K6jb=TR{U36<=JS)@5EO2HEdV$()EKHU1_@8o#)68KU=ZV z1CMRltTN1;wC(M9xwYHL7#;R9+97Hyjr28)xwoQQJK0O=WQQ=ao10g~n!Rm)##-#w zt|kxiu;&T(c>dwWKDep$Zhsfd?FJBl>HrR&l0@^g{?)I=WIVN6zjii8iQubIf-m3f zVr;Dz2xckV9aW{!Un^7LOdTvQSO@zd4cgHbs|1VVx5FL`Qb#Zn-M~~6i~%jxgf^0} zEHCRE&{rDAa3Lph<70*kG(6^2fl*QhNJJ=ypkeaA4Gl{0!>y*#iGK%7(g79V4F7O( zK~_0g{9jrc)tj733*G4Wgl<3Tv~S zS&Ums;N;H<*=qZ5)2l9wXen;CdyeVya9@8(Wrc&X=7FM9)v2)e>T2UoZ9$%@d1vwz zm(D;GoV|gL>+MC0Q60=7eN1d=oK}>2{4a1wH0S|4jxncrQGbF{3?+(_8!#iag+6AX z_+_Zh#hRj93i05Y8q8=#ymI&hF!j0wB?dVgRvukPSkg^7*C%5)7kc5Xu5x4Kg}xnU4IrV2sv!Sp+L6l{V~uga$q zXbY3NYGug@vtO`E>^+1=jXK7Rz7aaH&+uBB#!xBc0g}>YFhG^IM{I<0DVECq2TiiHFBtAf^Hc7A~luR<`i+{2o31;Eo$j}Gw*u(?FSX0$@ zMLXcYu)>58Q^G>Vm@sUL70X}1xF-H1k|R%w2Kty;of`4HZ<@N^IVAfI!&(@k9Av`v zDLVRe{H?9oD6$rq$~3Ey^iKAm2X#!QENux-|8i%OeBEOsdBySvPbeHKHQeWI=#dj& z$1lRi?teqk)8a{OxeECr!bp+_9hl=775WhtC+j9P+e^ifw{hiivIjk=Fr}Y(a9)Rk zW*u?G;s=`qQKB(S15@m>nZu|S*mSEgMAHf%@Mru8vs2=N5vsIFGY=bzgf;Z~t0u92sHM$LPnn;*$zSDUUjJD^-QAph=S5`aU+cc5z19|35r_KG7_A&grEQ zzz?c6U!+U8JMFZ^DKo6fV8M2lZ0v-?7o`I@d`c2gWRI57aERQ4okN4PJGs=Gu04V_>>8WErb zaQKwO6T=;CKsz-eCb?_y>gJ}C_0AWrKYy9h29Gfi-OQ;Zm!AnF8(zL3TYO%jcA9Y% zU~~a(QkYT9$ur_Gxi5{0H%bz5_UAQwl4A`kVZ@JYF}h=6JFK9h$m|+}u^5<7?EHf% z|EjRbN(aLKEfB--3{(O`3^p>R3REO`3Q^#>gJ!sXxog9Jsx2%2w>W^6cMu|C3K8Tu*A zM3Es$^T&T%(PE8TcD0LG9NOA`Fu7zP46k>)ydAqx;@}ciauVXBC)6{d=6_U$uI8Wa zYeMd+bOYAW_nZ5gbUjs7rL-je3$#5&b`(zO$G%ROFQoJoQOBjjBzQQbtmM$?G!D&A z2OTHDV>P3Xynrrgppax|x4r-bw)Bo3luo{p#~f14vYg)MkTm5-weS^G8sT)2DpXi< zRJ{s4kw+{_b7npu2TR7u34eF+*bikr^^V%XVsXkt3p?6H7%faKOYFRRBY3oo$SaLu z{&*7G8=&@cgoXxZ;)!@lJ$k~$GwK~vE}BY5-AOuy!~^bYpPFzS5pQwFJ1HYNZGd-! zN_b$K)9V`c*NuLf=~=M0DqYj^WSV)LPG$< z1NM%alB|?>RD%tUD8(q%K^>y@<7!C9`7b)g=1GTNl8bT(~SM2i9a{I zE*y=B8a?YTBvWL+ntzwHJ$`VQr5L`GJhXU@PdnhLU|r`X5)VAL z$n_it2N>eZPykz8Z9*vza{lyt3#EvkA9^yUC0sw|rFt=h>VIS5#^~U9bbWm9lQ4$VTr^+0|MlVTQ7Wt(y?LkkR>J9EumxdXnkLU|NvV$`m*A{UOe zcc#2c&3)+nFn^L(Ui#ezJYsDe&?!QNMOldop@U9I&Co3yaIHD^e+wQ0P1$pqE(8ee zJwD?d@dLYR;b|Gs!-l29odmyNsR;j2i2=WL%?J-kgF5^U{_b2l3TL5W(gsO26~6;DU|G-jum7x z{0(^BFo-oAdM(Yul(J4tq9$m0#F$nnpSp)#O#a_b5?K8$LSqh2O=`+0<90V8oA7Bp)IhGr=Q(DRyB6UopTirboFj;5Q+UaL=)j^(e;Rkn1qwRr zKYx=PlcF@sCVl*a1+OW}5?u_3ww}eOhm(tlnh84bD2q-fr;sq4_0v8$l5;xT3LQ5Q zRM(8#%O;0(csR8>!ChUy#kIq#O(UTrI=Y+Jc&`GUsv5~TETJ)2MRZ&n#zn+MmV=5u z*WpH)U8cBNYYS73i0Fv8YQ@j-6DO!;kAHuHU-5ohj7U-<8b%rumkGav`*q8mbNU%Z z7+cg7<8xqHa@$F&U+E8Qo+*KorT}dc;LwpwgoAN_ajJtm)}L^a5~Bm^^ZP1;tAU^{ zr@1rzch6o(Q%-Yd`tKoU+lZoe1(UpP3p31SwF){O?EdK!zp@`^&9FTpnA;DO-;m<9$@R0*j(5P#zfih=RjlwuWUo)o`MnKW888B7#2Gcpm%iMOdx zXPX2qCG9A*H$Uy(&gCq;r$vZz5Klep5JjtXFvbF%bB$4zoaWw`ceIhG{k&bZ&{?2m z@#Hij*~r;eT@IIL%_1r0(cFRKT-9l2H?&1^z}ja&z6}rg#=eQIfSF9RgMTC;-ato1 zBz9EPn#g%v9*M_-ORuF$V%C&lVm9@W#eFKTBvhMLv^Q?>_A@}jz5+O(v?Paotw)So ze{Zb)FrL{Xy41&VvB&LVd1IMHzRSz8y~xr6#g-m8d~95nZ0&MSdKuWtTg>OK)1{4Q zBO<*ALlQ&=Bf_-T5TzycBY!?x`P7cY?=y@joU_-+MiHFNf$d6C!&gmOQ%jElS|A|agY~nv~iTXwd3f%|MzqFp2Eh}qdi&>{7BB< z-%P#qdl^FA6VYlT7gKf6=M8P!X}3O9m`*qECu?#UM!J@)vg25?27l}QOQ9Q^JI8z- z>GKVE)X&}m3&<|2TM-&`Z#s!w%3<4;rubrz8Z@s$^P!8$S;S{0?%aIc&QLEzP?r%* zyh`)2NvpIrfj~0g%E$jyP8^(*jzhG+r-U7V6M-UGE~4QGlk!tL94?h?0)BZH%PU91 zCpr!vv&e9kbii+D?tejXP}+$jvC&d;v0LLBY=6zTKIoinp}BXP~S^nd#ys;L5t!md?L&t`CR9r zqAV@aadwSg6++9LF48eu1ssKJ-|?$Osz>3z_}50sDxl$~6&ERJ$68G9GJ~GP{$<69 zZ@v9gF&`H>XcidP-&7^XOyVXgD8d1LF>asLWM%Qdgny_qy4+00;A=cIN_Hcb^1@U& zwmOVkXX0F;-7oQQ1$3ZJ{t<$v+sQylwrB@0?zveSHY9xYYlMElz;U*0%>ksId_MlN!7%M#NJr?5#&pjH$*cE?gN;+qhPP-yUR)08GroOeI*_XJ-B0B2=BRp<=(4%?Qo<{Co z{l+u%pi4eX~&up_g+yQh{0J-6&T%|*{-^H_N(TDDD2XR!V9~)Eiz2)n))acI! z!<3{U!{tu%7J1dm&m6_EyX0AeGpaLMH$=b#z3>B{z_BI{G4j-QE!=D?RkZJ+DSuB+ zKAAl^(xj&M$lya_=&i%Nq!y+Xge=U(=LD=RzsO0*h@1{9m4(3J@g8aEC|4(qrJZ!( z#D}Ljr+ie=SW*w^F&}IaMVxz(jVDfM8HR<=Jq#n+LiG*IHo*MMKg6|dLN-PSwIYNf z1RcOPIqmaAdn8HpGb6gE3^Iwh_>UP03|N_Q2MAJ0+@c^a zP!EQMNH5E~1#QyPqafA=Ovv}>eI&l+j?#4|#C+f2u<^1}P}=R$MPN~nH)x1kmJDg} zDBJ+DX@I5AV@z+iZi$iDFo$^PX@1%1A#{kX2xIx)wqPPlbNXp?L$ZADaeq7MQ4lL` z6!i{MxEs^HQs*(nlemz$$@j>Bn^)38XGHvQxZ<6He(cuzx7{kc*xg{Djx8Yzb`QAh z62Sig?z9=rq&%WS>1l|&f|+m9WV;@eZVg+}Sr^DOGO-{|X&p^L!aaDs`wnfvvviNZy=7%IhX<&r!PPUGwY#JIhThiT zW|=({XO%MQY6o2;XMb>aA51oeyCXg?dvD6=KAvn^>8%ZZy9dl$bqRMzk`zHSk#&rw zSe823y$0)31I{odsFaNw4Y)_R{hiMP3wK47SAF>_q&VqbiX^n2$1n}2d<=yiUm_>B z^J@_4{jYe~d%2FADlk8mpnk6UgtFAjZ$(5x#e@n8uPV*yxPPR!wwzzoRD2qbSv~#< zo=)&(7GMvcK#%_#lUs`Cqt~1?5_R6okmeNp9b6)88_B(wK{3p)4_^8AGHeivD%_7i zll4%hjdRynm4kItY_4_@iYoNS-KGzD0ppmwc2)8|J2y9i-F4H|q&&Ppg|TV$^`MHphho zyUK-wvQ#;d({o&nQWZ6InpI!^6nOs)NvWT3^yqA>4}S!MobTBpI^m%2w$MZ_`u@3J z?X^!@=x{Pj;b{jIKJ@Ob3y3&SswLSZ~B zNiwybyt-jjDE^te5C&>jEz{80_x<$kNrbzQ!vRo!-Pu~#*|?K7QS!+-oAmMk;_!2T zO!IpThJS;S#O7xK9y9O~1bBe;e2%j(c$93#_XVxP@Y`$THhZYDmE38E1LBD%KA%1z zCe1LSjn{<(qmxt!r#K2_BVcG{G!X?;D7k?mHJt(@LlDXK^0sON*JHZ=1W;b*rObj zK`wB&BGE5KKtWpya>mN#zS_wd1K3loTL}Bweo4bSl{*@Jh#Hm4S(0&6#G22zFy(0N i0#;3-v=VSv{dAZd_2YpOqxGS1m;bvyIQk#khqBXoJ!f?Q delta 9438 zcmV<4Bq7_KON2_0J_Im1F*T7wJb&A6tFMmWV2D$4~ z2Z?_CQSSr3{1pQ=LMAMmZ?5ffFW{8`@{O{~c=G;->+@qoRo6+nr~#()B&PRSTGgQj z>q;R^0Z74XgkVdsF`m%Go(vStjc)36xd~m7lS8g=k0w{Mlj9$RAhY?Z3bjnc2<{Mw z&g|lYzsjm9Ou3ioZ-faUbbo~;9@Bdwp!Y~>lkoL`3^nHbkgsE*GaL^KyIv!gE$Y`{f{=sBj1f0!mXszB z!bC21FA$pB6R! zo1zYO9SX$ zr7c3;gffI7Spb=JNPml2BjD(a#qZ6csm%y;+e#w5izAxa_|>%c^~@aYhU)0tEF1N`L!aU>XxM1v1+b#(o+c z_aFzIizFAi)HLYR+%W{lBFaz$NLD~-Q@?>nXJN|({uQOEOkV2&lmFK(o30fj)fQ5; zICA$LPY8*IdkA#Uf}5Az$v3a$|5x(=wfz5D{=W%b+|5gM^Ge-(rEXrUo3GW)8*IZn zp^qJZ{O&9F;(xV!@wI#LhC1cO=-@a+8G;;54jBZW20`$LK(n(`0;M5DisC0Mn_y4o z7OX(5=lDp~HzqF1bgj!x{K0I7Z&sQp!YaZlz$(Ei#G)Ef@ZQ$Cf)PJ2!8bydTUPS$ zbD84(O3_A}O#W3tqmwQbN-LBlEo`arGkGC%d%9i)dw*lSB8s!OjL3^7=ns$(q26Cy z%>-AOu!&$PLW(>>t81MVH!$C?O_?r2^IHnt-4TyZrq`3xi+A8AoE=@B955kHnP3sG zOP#OG2u74g155Hqc{rIJU7x(azMQ;&d(?7{q;d=`uuj)cZV+M~HEMQpwyR+%`vlr9 zn~<0VjDOthNo{0Ezllc&Cuft>trnWKPO}k=B!@IdXOojthXu#z+Loi>=xEuJ87^k9 z*0~gtj}2T~ZO4$HsH!cI{Pqg2Wp*wk_r<7IfEa;)cOlwgP9D>rD2Bk}lT+!pWoC8# zlv_f8-VHfEJ)g|BZU@}8QEViKBydYTHos2hV}G!@O6G)pe|`9EAB$6ctyilwUyb9T z$=)FxC(+FKL(gBCdR*f`P?)Aivn}`&+XtW>4FuX zjDLW#Ac9Yi-oKr_6L?zH*LKM^X-u~vK-nc5C+fS?lj-dG{FtrOv`0IhuR|mZ_Rfs4 zFC<6k^Y4$u!hlb>7}F&rhuE{p>_9pMT$pQFeFpI$%T^XS-k;Cd%(gsZtpoCS3xPZx zE0H%@HqPFoq?r5nSEr}m+E;ox=IKH)#D7jF$MQ5)S+g1g1Tg}hUcD7yUD|vUlmrPp zyF7m{@R75(o4MOryD7lnCp5w2dK3pEltUoh)dkEEhcxZHpR~-ysL@Dr%yQvIV^fZq z>_LifmpIXrV94*}FF@*)r4bi&_cQYMPftYrgDgPP_GM{SFlWm`x7KA{-KA(?Xnz%) zC!Kc-3(GBVVqFx7x(HtmKD$2J3mO&aRjg9A+LTkIoDS|;dD`&`e0$?g+v9HIq%udeVGqg-hIhSzcsIIRlgF=qd1TU?mJ8*G%BnXO^d@vgf zlvH4mFmSkpNj)gEmJ&oRPiNoML7M8d(@pAflcQ@FL~<6kf6?D zn$?GiP(-1yB4Oln6uE^D@GInP@+aCxK#Z`9#0&h@qD+fmu!*Ip?|%+1PcAszRGG{y z!cdYT=+WuX!4}kA*kE6=w7V$Yw&APjQNm5n7v_4%2WuHw*!TUkk0!qQy3kd12Nvdu zcL2wogO0creNC*oDW0ygDaI*lcs8tV%#$}m2{T3ubEB3*2d6)jp__0q;i<2xH(Ah# zkr2UVKb*25tC}@G*nj#~=7+VL1lIb#-QU>1ZR!U|vsOR?j!X{gwR_&^Fx*O~B=%Zj zuZG@`Dif0$XcgJM>jhZ0pxq)-MWVmnT!E2_n3tb-AK=B!Iq)1xz+e0%D)HD{OZ z#i8)8!fY#M;ZSuwW*feC`|vZr5nr2oaFb0i$HK`G`sjDF$$#Y$XIu;f9~|_CK<`9+ z#NJ2kHa}*5_oGhh@JJ*f!kx@yB-UlRTA6Z`F%nsCi)KA6k!^5O;(lR@T6QPkA51+u z%Qm5X3IHpH(pH5M7%9SytCDvsK%%yOhW($Mm6@P6Ry3LHMM;t9N@8peSl?}s|(xH*B3}0BuS9ZylcB`|LSipk#mf-T`$oiVE8<==V&9HP<2Sg^6Vpz&x!3CgItQZ)xM8Y+4a_`d6%8k# zDWO5ve655=360Xq(@e%H#HPX0qs-%C1K;H_crhP}OfUBNzim?prWmGL*ws4D>;g0= zCaz0Rl7HP;N6r`>>BWcK-eo3Pt-*%vTbaCMRnOu{Up&%Df_ntI2Gcvo4v)e1EmM=h z9pin6@Opqzf4K^ayAcwG}US7SN~g+PHNOH0xG_51PbFqwA&& zw}8c!7e4^n1&BQS5f;n~SV?J+c=!V?rdo2mp?`^~(p4T9EuJ3-iy$UDXj<;t7U_cf zP=?H&Yk2u)O9vyV=R9&UKpW`>CU{t3uQ0Z?TZh;vlvGagLjJ?xn!sJlv7g9RF=3OA z-~yqO96nv*a0Md$n26t#EyPyiN488q4J4m*HMD3>^6a4}0s3wIO+{lJukI;|2}Y{7 zHGeW8ei-#z#$SMkIO2wQlqe$9WCz_0zCb+|CXxcP_rM4xD^ttYKzJV*VjZkvtmq`{ zq)Yw%HgyCxE?xAE;NU|;@;&n!fBT3+SXX751Xy2pSy6tAwM!wa)dsw}`#^dv@rmR# z#eXKAKl}`z>S*4i8SV_lu!t*Q)(+&@ihs0n(%){uBZ|4b;LsZy#ZYc6h^bas&}PlA zh>Zp`jQh1&+w{{u!Z$4;4P|(e9N<7mOnk63>UfzqCb6lx^#2*Y?i%?;>R#M)?x0Gzzj%QiIBB9JJnNJ{E!^{%r7Jv6Y zQruL-j|ofde!6JW*atU9{^nPf*^EZ+(lIZ0z2Ro^v1vI|g z44Z~$@c~Iit;;}w#4dI?67hNbu`%((e}Xsi`p(S%zJz$0R-DMo=>Sk_rnY4(n zcOt%K!~v|pYkufrT@)?q%}x~eZhV~H^PTV`Zl^Sl!+3UMpk2=WoWpPeR|cPgQ@t@| z{QPio`bA6i>z!1;ZmBL!RZlKXTEyS%M6f-KPcaCuS7uF4rvYn>L>~ zF#Z;v0SW^AT`T^po$_on<9A{!`xiXIorCP946;L*+0Fb_v0?9+pRpFZbEwIKJnSigJzjj6 z+k3b4-S2|A?0o^K4&dN1Nq@9R>tFp^OvYoY^=oHilnA~WCHV5qKE~E+fnb)x-BDEv z?2KAaw*Y(HxeBU<_z$C3NtEWqBLsfZozPh8r)D zn;$dWP~kbR3e1u+K_Wsq1Wl9wZD>-0FK#r=PCQ|f4!8i$$PYIcWPg>D#s8(HS-r`r zwJ@CS(|W__kkFjt8yOIGucP$JvkRVg1O=};_=BJdY6UDe_-MmzTH>tgmad_TBOoak zpsZI(uP6PkN7^cUk`hPEOI-d~Cun_ao*OpoOPyvkgFlBwG$u6hx_AvfNBKoak7H4e zML81XN#bLj-Dq}JY=3UYy85EquEN@EZ`R?C7C8BHLblre z+w?9MX0#L!$34gNcDS#<4UF9Ma3gmd0sCsfYgpheU%Ou;UmbikBrg#n7TSnS&XrEq{zL3(YS>*IaBU8l?~q zuBpKcRKzQXKLAs&OHh)qKiaH$;s7rYJ<&O}ffl6D-~V`BE%b6}vjiQOJ-WYcb<>g* zI@zHx+XOXw!X96=7c!{m*$`vjd*tD zMRg0$DlBXywtuB-xUmZp8ot%7!o>}P;4xJQiVvpW!J}Xkj8av8>t9<~)KzOsPMH0I zRpRI&G-}i_X5fv`iDQQMzBGn5DQ}OIHfxt^K;stIFt_Ft>p}xq!jcfYzc!@0$rm@J z%?HCby{pB8jzr=Es%o1ATSCbn3;s~f55X!N92t7S1Am)%U>a+x+OFxu8W>hs5Ml~f z$QTobO|fG63z*l$e?)TRNzp(bGpkc0p7*?|>%CL5A26(iA<97}d_6@+pN_w^H5*0N z0!x`@J(AwZ9`vA&i7xT;cFD*ks^b^oWA~!yY4N1CT!*{{VI;|e4$N_k3epIRlXc6F z-L2vn*?+ipIoX3ARG89FJdJKb;jNCiV)27*f+*1#P=Up8*(_lG2^?qD7))t}5BN2{ zgmolw!CX?>q*;U?>4c8gbfkfz2PZxZgi{zkOxB7{z`drIxS=9VgE{jlhZSj(+yY!~ zA4?Q#5_y}p&@kI1p~uBrFE4)JUcidCZ>d^toPWb$e#SV(xaN}zMk$Xvb$dXCuAobj z{rWyOwssLgI$1wF(>>BGc+Qq3TkWSmn=jK9+?{rT;glIxWw2p;TQ+uS;G5C`96lzA zCzMh9FhSKJua?nFlaBt$= zz<<;jGriax;MaTf-c}2nm|vn+kbAU#H^py3=~6dY9dlMP4cKwxhjGf|_K%xFC#5`x zB+aoKr?|iaUYXut_%c)*fHWdN3E=QCi6@3T+JJWIL`)yo;D0SlC!d@@xc+2H8!QkY zx|vf+mOK+kp1Hh1w)nh4?X)&1z~}!D`CXr zYcaZGVLPm#qR8w9!=@NQPwe7@DgUal$yx^j^(_zs<_uHzQnyUz5u_>+hM)7s%+6H6TYc(i964~JB>2OwRZ`|v=2Ci(EN zD!><l|#v4i#o#oN<^D1N+65P$h9H>9gAMf17p+fXGKJWnuen7LpKis1_SZFX@39x0HY8_b(}Pg9i+H6fl{m zMU#!#N1`kc4^%zi@qSWPICis&lyrnS^V2^p_;tfuf6<6=!?XTgA%6vLt3^pCmIv)K zg=wASp~ccF`QqV^1*%07+1jhU2fn)*T{ebbTAe_4?+~s`Zb}Y!mijKn!cv3drj=J9 zuTcJNpJMvkQ)Er^#BAl!xKDZ4@!_Aq-YrZdu3K)A>p7b13LfrIj8c3wLMab&j@Ww( zt%#o=dNQXae0|JI*MG$jx*iKRMh9nz3p{#-duUZesYQcfn`gYei-O|IxSdlIi0TnU z77;Dv?JlB7P6ob^bAN%0m!pXy>#;aBS*G%#0xbPDj?hO39AvU8n}U-rX!!!p0Po+ms72_Ars{O(%NgYA$7k@+i{8sC}6uE{Xnu1BCVtpYe|PfnB%ow2bIs!`5MP_b=ED zz(3St!0+4^z`9j%4ZnlGdv^!IiH5i@Pf|^Vi*cBMW#$;bpu8e^oO(&VPl5Bq7VE%+ zxs#RT`xN-30e@><1oqpXLD$SKrcrAOB>|&j1=$RL1AZ_}VhzXaN?7lgvK2_8CTMxY zm{usCx`$_1B6h3#FGRGPZ|!J0Y1L`Y1>I7~PG4sBE>PR6MJSIr*+B!`FmupZ<51Bp zkfT%3z~dkh=h-=fL^*c&h9*oM`^DvEOhGSaqZ|uwoPTQ7VWE0oY1v7}D?ts+rFB}0 zW6jy>>@K8~d6u;aKvdbFDTaqk7sZJVf_h3Kn~?a6o z)LfqE;(zC>%+B$I*%wc1AH$VH_Xifaym{@}u>s&b?P~&^H2I}15b(a?CG8+7-waCP zt6dV`fP3!`uk23zL;LZ9DjN(N2VZz0{;9!`g{lmu2&eb9A&yG6yt6S&E&|B*wgdde zlU%ybA}qW(e1^q2f>qPH1hwv&F!iCLSEi ztFHXnBZ`QMrhs*+j$lHuQSOUgJOR;X4}VIU z%pw#<7w&yfh%eYQ7*e?HA;M=mbtP|cK1RBVVifCiQG#v6$pga)unY`lArew~Ab-Xe z6a(Y4Da9(zJSo1NGHJAKGFT{PW@HA96K`{9&bA3!N;))V=RfT~vEwYfr$vZz5Klep z5Jl@vFvbFdbAwTpoYvl$u(Fkk`@G#p&{?2ov6vN+Y^CL@E{98{WswvUFmAzduIeqn0ib(`^hBv#F0P z9z}S?k)kB6==js%?PmZ7oE+eM(vlqVXFXy(-8r}R!+2(o=u#ichdpi=%Nxrq@?Bnz z?M0Th40epb;YwavvUA8i8f9QBZ!l%IPFFUfvu5@W7!ju9WGF2;1Ap<++UEo$ z{wP^Q;hZPUY!t!Sp4hG=`*+=>HKk3;f*`V`UWCpZK8w%Gho2Wr8Vy`8h?)73-66VYlbiBEOV=MA0AXtUcZ z%)?srv;4RXBV9{Y*>NmcgMan@rO=H{x?;YL^!XM%>ZkpH1!Nc1?FbFJH=PV1<*@Be zQ+zQ<4Vu@X_0YxSEaLKYd(YRlE7S`S)MW$!urpY{(op4M*w|lZ>af#rK5HdZfvoa{Pib)_>O`D{(Df(s~3}WA{GIK z4$%fF9>pX?2zT945v&L(27;CDg7hq|y!eIA^lhmt#lPLb0#w?h-Ea#SoJ-kALqx5M zG+ymX@N$PTMNpxj94U_99?d*KVd45*Ru?ByRpS^PlFg1Foqvj5w5?7$8I56+;TkKC zG&)>cVa4lvL>ZN~sY5Ov^eFzSN`zS*pQ}VA%F-qs=ezh_A+*ftG98m+?kMEkhuv{4=VqkxAD)weCLG`! zW zkDLzB?$nv)fg)o=YVl_V9C$iRzEAnuthsdbFH!En(_!*`%1e`^)i2V_$USN=@yn=N z|MmZ{&MZ}e{j4=+Swm6Ug-He?e?9h&^aZ`7sFrm{jQz0+w7fT(t=Mq(tGhoet-SPf z3m$PA?|0ZhRe-6+j z!<87^qJd?74TfnC8dZe>V~vOG+GK#x?PrMUL#DfkJUwkxja}wA1+-Ju0Zn(4MX*pw z>tNsrmN6g|`BnC)!;^l=?xd$%aOA7UC&#n&u7BKk%*pzhY5_)EJK#%BVhK!&B&tMI zMO8C*)eA!1;Uy!f0zZC5;Q^fm#q=>rhZxKBa8fHiv14KnUu~=M6y$jHDK6kUO`U+d zszpCqfpzjR4IkGw?2wMmLYFGfyR*=#=Cd%SIZVfCjiqhIFm}b?nUYFBQb8kfWQB8W z>VF#>T78LoETXe6Fv1GZgC5PZwm`J|H7;J62bJ;(J|}zzerB81;cARg1LTIAa-9y@ zeizT8O&_|y9mG+cer!z5_m)4Wtwvw|2~(1W43{ggEb^+ApE-(S_mO7}uBgsv-w*-! z^cxKL1dcUvh>@qZYvE=)siLRW#duWQVt@9iYDG;y?ST)8p&x?fEwwPMAY@}MJ||#p z`L}h1jL4}TrECNa&-X}6)jFLtwsz8i6CW1XO}QG)SW*w^F&}IbMVxz(jVDfM8-|6? zJq#n+LiG)-Ho*KWKE$%G`1gy2GG|0WW4;jW}wF+Z5yt>cOxO>1BDhp-p;v6vVoO1^E+3ABpd{qx3lw zV!m&1+IZP%D4q7`BCx5)TQtNiTZXiG6z%{yG{Dm5F{Za$x5Y?om_t1DG{5YO5UNuu z!q~pIEttsCoW2^}ku2YP+)jEF#D9t>486k?9>#Pa(RobqBrYUw@;x%(;gz(|84-UR zzVJ>%KX$MBx7|y2vAe-Q9a};c?A9>s62Sig?z9=rq&%WS>1l|&f|YO5WcwbJ?iIG8 zvo4TnWMMn{zPe>{_r^~9Buos;=7sKTABLY3fpiLF&2|wny#$Z(Saw?9G=KB(N|^R zDcHkXMZSmK-#e=qrnX=+AUtNme!)*vb?XFtePyv0n%Iu*ytCUe!d*~u5v)p|!*?$=BkNCXo{dh_D z@nq9Vh4lS#4_LSA67G&9DS~Js`xs5JDs{4d57ws!oMB2(DF-zgaF6gnIv0`(4@Hz$ zefcY-IO%>ANoYNfVHr;O7z#bUM2d6sFVoRaa$-I2auYXIV0|n>{ap14WviEes16Ag z6DlOUsx+tLlG@sGet%I@aTyo0e)tnSo#4wX!5%<^9{x2Zw-ifY*PJvGbxQB2IR$?Q zw+P!#a;5hb!~Fi>l`p-&MJTH9JOVA&Lzywe)KIAv?#^klL zLR^`+BPQL#EtTta%=xRR95Z~Gmi{ak>mHX%%Bs99Uy!TFCVx!giVpvx5Ald3v#|Rq z9D${MzpGnexl;duW0Pg$pMU?)WFeH!Y;OMi`+phJuWr@XK{`F$r;k{BTHV497x$c8 zIWBV7RW2NqOv?F|p5tnis;H^ctorh&z%Pf8l==yceCPCgAZFuS#1_$s+I+WzCUQaY z&;6rFPs!dK&VSjA?&u8ulH4$SqyV1pT@gtThA?CY38Mt_{Z6Xr?nc)!I3`jDfB5Hj zP#A0BNJ7=4BKo5u=FjA(IpFH5RT`S2zMsB5iSV#+I8Mnw6t&THHm;H)N&br48l%t0SST7d1NPf54^_63JMC~lJn_Wm z(?`Ul877|bx^Vt-k_zDz?x3UrjDUHeAW%T1)8ONMgs2Up5TkYUep-bZi(7UU z5Bg@~SqP&D({1Lvom8j{dHZ~y=R diff --git a/apps/_documentation/static/pt/search.html b/apps/_documentation/static/pt/search.html index 56fd2f7bf..9bcf957f9 100644 --- a/apps/_documentation/static/pt/search.html +++ b/apps/_documentation/static/pt/search.html @@ -1,29 +1,25 @@ + + - Pesquisar — Documentação py4web 20240915 + Pesquisar — Documentação py4web 20241204 - - + - - - - - - - - - - + + + + + + + @@ -43,9 +39,6 @@ py4web -
    - 20240915 -
    @@ -117,7 +110,7 @@
    -

    © Copyright 2024, BSDv3 License.

    +

    © Copyright 2020, BSDv3 License.

    Compilado com Sphinx usando um @@ -142,7 +135,7 @@ - v: 20240915 + v: 20241204
    diff --git a/apps/_documentation/static/pt/searchindex.js b/apps/_documentation/static/pt/searchindex.js index 53f59cf17..00c66d530 100644 --- a/apps/_documentation/static/pt/searchindex.js +++ b/apps/_documentation/static/pt/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"A auto-refer\u00eancia e aliases": [[6, "self-reference-and-aliases"]], "A minimal form example without a database": [[12, "a-minimal-form-example-without-a-database"]], "A obten\u00e7\u00e3o de um `` row``": [[6, "fetching-a-row"]], "A p\u00e1gina Web principal": [[3, "the-main-web-page"]], "ANY_OF": [[12, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adicionando atributos para campos e tabelas": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced form design": [[12, "advanced-form-design"]], "Advanced topics and examples": [[16, null]], "Agrupamento e contando": [[6, "grouping-and-counting"]], "Ajuda, recursos e dicas": [[1, null]], "Aplicativos de modelo-less": [[6, "model-less-applications"]], "As fontes no GitHub": [[1, "the-sources-on-github"]], "Assinatura da DAL": [[6, "dal-signature"]], "Atalhos": [[6, "shortcuts"]], "Atualizar os arquivos de tradu\u00e7\u00e3o": [[11, "update-the-translation-files"]], "Authentication and authorization": [[13, null]], "Authentication using Auth": [[13, "authentication-using-auth"]], "Authorization using Tags": [[13, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[16, "autocomplete-widget-using-htmx"]], "A\u00e7\u00e3o personalizada Bot\u00f5es": [[14, "custom-action-buttons"]], "Bancos de dados legados e tabelas com chave": [[6, "legacy-databases-and-keyed-tables"]], "Bancos de dados replicados": [[6, "replicated-databases"]], "Basic form example": [[12, "basic-form-example"]], "Basic grid example": [[14, "basic-grid-example"]], "Bot\u00e3o Classe A\u00e7\u00e3o Amostra": [[14, "sample-action-button-class"]], "Built-in helpers": [[10, "built-in-helpers"]], "CLEANUP": [[12, "cleanup"]], "CRUD settings": [[14, "crud-settings"]], "CRYPT": [[12, "crypt"]], "CSV (todas as tabelas ao mesmo tempo)": [[6, "csv-all-tables-at-once"]], "CSV (uma tabela de cada vez)": [[6, "csv-one-table-at-a-time"]], "CSV e sincroniza\u00e7\u00e3o de banco de dados remoto": [[6, "csv-and-remote-database-synchronization"]], "Caching e Memoize": [[5, "caching-and-memoize"]], "Campos computados": [[6, "computed-fields"]], "Campos virtuais": [[6, "virtual-fields"]], "Campos virtuais novo estilo (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Campos virtuais velho antigo": [[6, "old-style-virtual-fields"]], "Caracter\u00edsticas avan\u00e7adas": [[6, "advanced-features"]], "Cascades no banco de dados": [[6, "database-cascades"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[16, "celery"]], "Checkbox validation": [[12, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combinando Rows": [[6, "combining-rows"]], "Como contribuir": [[1, "how-to-contribute"]], "Complexity and security validators": [[12, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Configura\u00e7\u00f5es de quoting e case e do banco de dados": [[6, "database-quoting-and-case-settings"]], "Configura\u00e7\u00f5es padr\u00e3o de migra\u00e7\u00e3o": [[6, "default-migration-settings"]], "Construtor DAL": [[6, "dal-constructor"]], "Construtor Field": [[6, "field-constructor"]], "Construtor Table": [[6, "table-constructor"]], "Conte\u00fado:": [[17, null]], "Copiar dados de um para outro db": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, null]], "Custom columns": [[14, "custom-columns"]], "Custom forms": [[12, "custom-forms"]], "Custom widgets": [[12, "custom-widgets"]], "Customizing style": [[14, "customizing-style"]], "DAL introduction": [[6, "dal-introduction"]], "Database validators": [[12, "database-validators"]], "Date and time validators": [[12, "date-and-time-validators"]], "De web2py para py4web": [[15, null]], "Decoradores de conveni\u00eancia": [[5, "convenience-decorators"]], "Default page layout": [[8, "default-page-layout"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Depura\u00e7\u00e3o py4web com PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Depura\u00e7\u00e3o py4web com VScode": [[1, "debugging-py4web-with-vscode"]], "Dicas e sugest\u00f5es": [[1, "hints-and-tips"]], "Dictionaries and tuples with IS_IN_SET": [[12, "dictionaries-and-tuples-with-is-in-set"]], "Do princ\u00edpio": [[4, "from-scratch"]], "Domain-mapped apps": [[4, "domain-mapped-apps"]], "Em valores de retorno": [[4, "on-return-values"]], "Este manual": [[1, "this-manual"]], "Etiquetas e permiss\u00f5es": [[13, "tags-and-permissions"]], "Experimentar com o shell py4web": [[6, "experiment-with-the-py4web-shell"]], "Exportar e importar dados": [[6, "exporting-and-importing-data"]], "Express\u00f5es": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "Falhas de conex\u00e3o (par\u00e2metro tentativas)": [[6, "connection-failures-attempts-parameter"]], "Fazendo uma conex\u00e3o segura": [[6, "making-a-secure-connection"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[12, "file-upload-field"]], "Fixa\u00e7\u00e3o migra\u00e7\u00f5es quebrados": [[6, "fixing-broken-migrations"]], "Fixtures personalizados": [[5, "custom-fixtures"]], "Fixures": [[5, null]], "Form structure manipulation": [[12, "form-structure-manipulation"]], "Foruml\u00e1rios": [[12, null]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Grids with checkboxes": [[14, "grids-with-checkboxes"]], "HTML e XML (uma tabela de cada vez)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Helpers YATL": [[10, null]], "Helpers overview": [[10, "helpers-overview"]], "Helpers personalizados": [[10, "custom-helpers"]], "Heran\u00e7a de tabela": [[6, "table-inheritance"]], "IS_ALPHANUMERIC": [[12, "is-alphanumeric"]], "IS_DATE": [[12, "is-date"]], "IS_DATETIME": [[12, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[12, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[12, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[12, "is-decimal-in-range"]], "IS_EMAIL": [[12, "is-email"]], "IS_EMPTY_OR": [[12, "is-empty-or"]], "IS_EQUAL_TO": [[12, "is-equal-to"]], "IS_EXPR": [[12, "is-expr"]], "IS_FILE": [[12, "is-file"]], "IS_FLOAT_IN_RANGE": [[12, "is-float-in-range"]], "IS_IMAGE": [[12, "is-image"]], "IS_INT_IN_RANGE": [[12, "is-int-in-range"]], "IS_IN_DB": [[12, "is-in-db"]], "IS_IN_DB and Tagging": [[12, "is-in-db-and-tagging"]], "IS_IN_SET": [[12, "is-in-set"]], "IS_IN_SET and Tagging": [[12, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[12, "is-ipaddress"]], "IS_IPV4": [[12, "is-ipv4"]], "IS_IPV6": [[12, "is-ipv6"]], "IS_JSON": [[12, "is-json"]], "IS_LENGTH": [[12, "is-length"]], "IS_LIST_OF": [[12, "is-list-of"]], "IS_LIST_OF_EMAILS": [[12, "is-list-of-emails"]], "IS_LOWER": [[12, "is-lower"]], "IS_MATCH": [[12, "is-match"]], "IS_NOT_EMPTY": [[12, "is-not-empty"]], "IS_NOT_IN_DB": [[12, "is-not-in-db"]], "IS_NULL_OR": [[12, "is-null-or"]], "IS_SAFE": [[12, "is-safe"]], "IS_SLUG": [[12, "is-slug"]], "IS_STRONG": [[12, "is-strong"]], "IS_TIME": [[12, "is-time"]], "IS_UPLOAD_FILENAME": [[12, "is-upload-filename"]], "IS_UPPER": [[12, "is-upper"]], "IS_URL": [[12, "is-url"]], "Implanta\u00e7\u00e3o em PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserir e atualizar a partir de um dicion\u00e1rio": [[6, "inserting-and-updating-from-a-dictionary"]], "Instalando a partir de bin\u00e1rios": [[2, "installing-from-binaries"]], "Instalando a partir de fonte (localmente)": [[2, "installing-from-source-locally"]], "Instala\u00e7\u00e3o de fonte (globalmente)": [[2, "installing-from-source-globally"]], "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento": [[2, null]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Interface de autentica\u00e7\u00e3o": [[13, "auth-ui"]], "Internacionaliza\u00e7\u00e3o": [[11, null]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[14, "key-features"]], "LDAP": [[13, "ldap"]], "Left outer join": [[6, "left-outer-join"]], "Linguagem de template YATL": [[8, null]], "Local de pasta do banco de dados": [[6, "database-folder-location"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Mais sobre envios": [[6, "more-on-uploads"]], "Many to many relation": [[6, "many-to-many-relation"]], "Marca\u00e7\u00e3o de registros": [[6, "tagging-records"]], "Melhoramento": [[2, "upgrading"]], "Migra\u00e7\u00e3o resumo controle": [[6, "migration-control-summary"]], "Migra\u00e7\u00f5es": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Modelos": [[4, "templates"]], "Multiple Tags objects": [[13, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "Nota sobre novo DAL e adaptadores": [[6, "note-on-new-dal-and-adapters"]], "O Dashboard": [[3, null]], "O fixture DAL": [[5, "the-dal-fixture"]], "O fixture flash": [[5, "the-flash-fixture"]], "O grupo Google": [[1, "the-google-group"]], "O objeto `` request``": [[4, "the-request-object"]], "O pool de conex\u00f5es": [[6, "connection-pooling"]], "O que \u00e9 py4web?": [[0, null]], "OAuth2 with Discord": [[13, "oauth2-with-discord"]], "OAuth2 with Facebook": [[13, "oauth2-with-facebook"]], "OAuth2 with Google": [[13, "oauth2-with-google"]], "Operadores l\u00f3gicos": [[6, "logical-operators"]], "Op\u00e7\u00e3o `` comando call``": [[2, "call-command-option"]], "Op\u00e7\u00e3o `` comando new_app``": [[2, "new-app-command-option"]], "Op\u00e7\u00e3o `` comando run``": [[2, "run-command-option"]], "Op\u00e7\u00e3o `` comando set_password``": [[2, "set-password-command-option"]], "Op\u00e7\u00e3o `` comando setup``": [[2, "setup-command-option"]], "Op\u00e7\u00e3o `` comando shell``": [[2, "shell-command-option"]], "Op\u00e7\u00e3o `` comando version``": [[2, "version-command-option"]], "Op\u00e7\u00f5es de linha de comando": [[2, "command-line-options"]], "Or\u00e1culo": [[6, "oracle"]], "Os campos de refer\u00eancia": [[14, "reference-fields"]], "Os valores por defeito com `` `` coalesce`` e coalesce_zero``": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Other validators": [[12, "other-validators"]], "Outros operadores": [[6, "other-operators"]], "Outros par\u00e2metros do construtor DAL": [[6, "other-dal-constructor-parameters"]], "PAM": [[13, "pam"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Palavras-chave reservadas": [[6, "reserved-keywords"]], "Pegadinhas": [[6, "gotchas"]], "Personalizados `` tipos Field``": [[6, "custom-field-types"]], "Plataformas e pr\u00e9-requisitos suportados": [[2, "supported-platforms-and-prerequisites"]], "Plugins de Autentica\u00e7\u00e3o": [[13, "auth-plugins"]], "Pluralizar": [[11, "pluralize"]], "Primeira corrida": [[2, "first-run"]], "Procedimentos de configura\u00e7\u00e3o": [[2, "setup-procedures"]], "Pr\u00e9-requisitos": [[1, "prerequisites"]], "P\u00e1ginas est\u00e1ticas": [[4, "static-web-pages"]], "P\u00e1ginas web din\u00e2micas": [[4, "dynamic-web-pages"]], "Range, set and equality validators": [[12, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Recursivas `` s SELECT``": [[6, "recursive-selects"]], "Recursos": [[1, "resources"]], "Rede": [[14, null]], "Renderizando Rows com represent": [[6, "rendering-rows-using-represent"]], "Representa\u00e7\u00e3o de dados": [[6, "data-representation"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Rotas": [[4, "routes"]], "SQLite": [[6, "sqlite"]], "Searching and filtering": [[14, "searching-and-filtering"]], "Selects com cache": [[6, "caching-selects"]], "Sending messages using a background task": [[16, "sending-messages-using-a-background-task"]], "Server-side DOM": [[10, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Sess\u00e3o no Dashboard": [[3, "login-into-the-dashboard"]], "Sharing sessions": [[5, "sharing-sessions"]], "Simple conversion examples": [[15, "simple-conversion-examples"]], "Sintaxe b\u00e1sica": [[8, "basic-syntax"]], "Sorted options": [[12, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[12, "special-type-validators"]], "Standard widgets": [[12, "standard-widgets"]], "Strings de conex\u00e3o (o par\u00e2metro uri)": [[6, "connection-strings-the-uri-parameter"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Tabelas pregui\u00e7osos": [[6, "lazy-tables"]], "Table methods": [[6, "table-methods"]], "Template Functions": [[8, "template-functions"]], "Temporiza\u00e7\u00e3o de consultas": [[6, "timing-queries"]], "Text format validators": [[12, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Database Abstraction Layer (DAL)": [[6, null]], "The Discord server": [[1, "the-discord-server"]], "The Form constructor": [[12, "the-form-constructor"]], "The Grid object": [[14, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[16, "the-q-object"]], "The RestAPI": [[7, null]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[16, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The scheduler": [[16, "the-scheduler"]], "The sidecar parameter": [[12, "the-sidecar-parameter"]], "Transa\u00e7\u00e3o distribu\u00edda": [[6, "distributed-transaction"]], "Tutoriais e v\u00eddeo": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[13, "two-factor-authentication"]], "Um local de trabalho python moderna": [[1, "a-modern-python-workplace"]], "Um para muitos rela\u00e7\u00e3o": [[6, "one-to-many-relation"]], "Understanding the design": [[2, "understanding-the-design"]], "Usando DAL sem definir tabelas": [[6, "using-dal-without-define-tables"]], "Usando o DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Usando templates": [[14, "using-templates"]], "Usando um seleto para uso de mem\u00f3ria inferior \u00e0 base de iterador": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "User Impersonation": [[13, "user-impersonation"]], "Using Auth inside actions": [[13, "using-auth-inside-actions"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[10, "using-inject"]], "Using callable parameters": [[14, "using-callable-parameters"]], "Using the dashboard app with databases": [[6, "using-the-dashboard-app-with-databases"]], "Validation functions": [[12, "validation-functions"]], "Valida\u00e7\u00e3o de formul\u00e1rio": [[12, "form-validation"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "Widgets": [[12, "widgets"]], "`` A``": [[10, "a"]], "`` BEAUTIFY``": [[10, "beautify"]], "`` BODY``": [[10, "body"]], "`` Belongs``": [[6, "belongs"]], "`` CAT``": [[10, "cat"]], "`` Comando SELECT``": [[6, "select-command"]], "`` Count``, `` isempty``, `` DELETE``, `` update``": [[6, "count-isempty-delete-update"]], "`` Def \u2026 return``": [[8, "def-return"]], "`` Div``": [[10, "div"]], "`` Drop``": [[6, "drop"]], "`` EM``": [[10, "em"]], "`` Find``, `` exclude``, `` sort``": [[6, "find-exclude-sort"]], "`` Form``": [[10, "form"]], "`` Format``: representa\u00e7\u00e3o da ficha": [[6, "format-record-representation"]], "`` H1``, `` h2``, `` H3``, `` H4``, `` H5``, `` H6``": [[10, "h1-h2-h3-h4-h5-h6"]], "`` HEAD``": [[10, "head"]], "`` HTML``": [[10, "html"]], "`` IMG``": [[10, "img"]], "`` INPUT``": [[10, "input"]], "`` I``": [[10, "i"]], "`` Id``: Notas sobre a chave prim\u00e1ria": [[6, "id-notes-about-the-primary-key"]], "`` If \u2026 elif \u2026 else``": [[8, "if-elif-else"]], "`` Insert``": [[6, "insert"]], "`` LI``": [[10, "li"]], "`` Label``": [[10, "label"]], "`` Like``, `` ilike``, `` regexp``, `` startswith``, `` endswith``, `` contains``, `` upper``, `` lower``": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "`` Lista: `` e `` contains``": [[6, "list-type-and-contains"]], "`` Migrate``, `` fake_migrate``": [[6, "migrate-fake-migrate"]], "`` OL``": [[10, "ol"]], "`` OPTION``": [[10, "option"]], "`` On_define``": [[6, "on-define"]], "`` Orderby``, `` groupby``, `` limitby``, `` distinct``, `` having``, `` orderby_on_limitby``, `` join``, `` left``, `` cache``": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "`` PRE``": [[10, "pre"]], "`` P``": [[10, "p"]], "`` Para \u2026 in``": [[8, "for-in"]], "`` Primarykey``: Suporte para tabelas legadas": [[6, "primarykey-support-for-legacy-tables"]], "`` Query``, `` Set``, `` Rows``": [[6, "query-set-rows"]], "`` Redefine``": [[6, "redefine"]], "`` Rname``: nome real": [[6, "rname-real-name"]], "`` SCRIPT``": [[10, "script"]], "`` SELECT``": [[10, "select"]], "`` SPAN``": [[10, "span"]], "`` STYLE``": [[10, "style"]], "`` Sequence_name``": [[6, "sequence-name"]], "`` Sum``, `` avg``, `` min``, `` `` max`` e len``": [[6, "sum-avg-min-max-and-len"]], "`` TABLE``, `` TR``, `` TD``": [[10, "table-tr-td"]], "`` TAG``": [[10, "tag"]], "`` TBODY``": [[10, "tbody"]], "`` TEXTAREA``": [[10, "textarea"]], "`` THEAD``": [[10, "thead"]], "`` TH``": [[10, "th"]], "`` TITLE``": [[10, "title"]], "`` TT``": [[10, "tt"]], "`` Table_class``": [[6, "table-class"]], "`` Tentar \u2026 exceto \u2026 else \u2026 finally``": [[8, "try-except-else-finally"]], "`` Trigger_name``": [[6, "trigger-name"]], "`` UL``": [[10, "ul"]], "`` URL``": [[10, "url"]], "`` Update_or_insert``": [[6, "update-or-insert"]], "`` Update_record``": [[6, "update-record"]], "`` Validate_and_insert``, `` validate_and_update``": [[6, "validate-and-insert-validate-and-update"]], "`` While``": [[8, "while"]], "`` XML``": [[10, "xml"]], "`` Year``, `` month``, `` day``, `` hour``, `` minutes``, `` seconds``": [[6, "year-month-day-hour-minutes-seconds"]], "`` _Lastsql``": [[6, "lastsql"]], "`` `` As_dict`` e as_list``": [[6, "as-dict-and-as-list"]], "`` `` Filter_in`` e filter_out``": [[6, "filter-in-and-filter-out"]], "`` `` First`` e last``": [[6, "first-and-last"]], "`` `` Plural`` e singular``": [[6, "plural-and-singular"]], "`` `` commit`` e rollback``": [[6, "commit-and-rollback"]], "`` case``": [[6, "case"]], "`` executesql``": [[6, "executesql"]], "`` polymodel``": [[6, "polymodel"]], "assinatura define_table": [[6, "define-table-signature"]], "block and super": [[8, "block-and-super"]], "cache, em cache": [[6, "cache-cacheable"]], "children": [[10, "children"]], "distinto": [[6, "distinct"]], "extend and include": [[8, "extend-and-include"]], "filtros comuns": [[6, "common-filters"]], "find": [[10, "find"]], "groupby, tendo": [[6, "groupby-having"]], "htmx": [[16, "htmx"]], "htmx usage in Form": [[16, "htmx-usage-in-form"]], "htmx usage in Grid": [[16, "htmx-usage-in-grid"]], "juntar-se, deixou": [[6, "join-left"]], "limitby": [[6, "limitby"]], "modifica\u00e7\u00e3o da tabela e campo em tempo de execu\u00e7\u00e3o": [[6, "run-time-field-and-table-modification"]], "ordenar por": [[6, "orderby"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "py4web and asyncio": [[16, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: o manual de refer\u00eancia": [[17, null]], "retornos de chamada no registro de inser\u00e7\u00e3o, exclus\u00e3o e atualiza\u00e7\u00e3o": [[6, "callbacks-on-record-insert-delete-and-update"]], "string.format": [[16, "string-format"]], "two_factor_required": [[13, "two-factor-required"]], "two_factor_send": [[13, "two-factor-send"]], "two_factor_tries": [[13, "two-factor-tries"]], "two_factor_validate": [[13, "two-factor-validate"]], "utils.js": [[16, "utils-js"]], "versionamento recorde": [[6, "record-versioning"]], "\u00cdndices": [[6, "indexes"]], "\u00cdndices e tabelas": [[17, "indices-and-tables"]], "\u201cAccessing OS files\u201d example": [[15, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[15, "form-and-flash-example"]], "\u201cHello world\u201d example": [[15, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[15, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[15, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[15, "returning-args-example"]], "\u201cReturning variables\u201d example": [[15, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[15, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[15, "view-example"]], "\u201cauth\u201d example": [[15, "auth-example"]], "\u201cgrid\u201d example": [[15, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-1", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-1.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"0": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "00": 7, "01": 7, "02": [6, 12], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "08": 12, "0x4e86": 12, "0x7fa533ff7640": 10, "1": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16], "10": [2, 6, 7, 8, 10, 11, 12, 13, 16], "100": [2, 6, 7, 8, 12, 16], "1000": [5, 6, 12, 16], "1000ms": 16, "100px": 16, "1024": 12, "1048576": 12, "10px": 14, "11": [6, 12], "111111": 16, "11211": 5, "12": 12, "120": 6, "123": [10, 12], "123218": 7, "123456": 12, "125": 6, "127": [2, 3, 4, 5, 12, 14], "13": [6, 12], "132635": 7, "14": [8, 12, 14], "15": [6, 12, 13, 14], "16": 12, "168": 12, "169": 12, "16px": 8, "172": [6, 12], "174": 6, "178974": 7, "19": [6, 7, 12], "192": [6, 12], "1963": 12, "198": 6, "199": 12, "19t05": 7, "1e100": 6, "1kb": 12, "1l": 6, "1mb": 12, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 10, 11, 12, 13, 15, 16], "20": [2, 7, 11, 12], "200": [7, 12, 15, 16], "2001": 12, "2002": 12, "2005": 6, "2007": 0, "2008": 12, "2009": 12, "200ms": 16, "200x200": 12, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 13, "227": 6, "239": 6, "2396": 12, "24": 12, "254": 12, "255": 12, "256": 6, "2616": 12, "28": 12, "2em": 16, "2px": 16, "3": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "30": [2, 6, 8, 12], "301": 15, "309903": 7, "31": [6, 7, 12], "32": [6, 12], "322494": 7, "33": [6, 12], "34": 7, "3490": 12, "3492": 12, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 16, "4": [2, 5, 6, 7, 8, 12, 14], "40": [2, 10, 16], "400": [5, 15], "401": 13, "404": [5, 13], "405515": 7, "43": 6, "45": [8, 12], "451907": 7, "453020": 7, "456": 12, "466030": 7, "4e": 12, "5": [5, 6, 7, 8, 11, 12, 13, 14, 16], "50": [2, 7], "500": 16, "500ms": 16, "512": 6, "53": 12, "54": 8, "559918": 7, "58": 8, "59": 12, "6": [5, 6, 7, 12, 13, 15, 16], "60": [5, 6], "63": [6, 12], "6379": 5, "64": [6, 8, 16], "65": 6, "6to4": 12, "7": [2, 7, 8, 12, 15], "70": 7, "74": 6, "75": 7, "768": 6, "8": [2, 6, 7, 12], "80": [4, 7, 12], "8000": [2, 3, 4, 12, 14], "86": 12, "8601": 7, "8em": [8, 16], "9": [6, 7, 12, 14, 15], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [1, 2, 4, 5, 7, 8, 11, 13, 14, 15, 16, 17], "AS": 6, "Ao": [4, 6, 8, 14], "As": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "COMO": 6, "Com": 6, "Comando": 17, "Como": [6, 17], "Da": 6, "De": [0, 1, 4, 6, 17], "Do": [6, 8, 12, 14, 17], "E": [1, 6, 13], "Ela": [1, 6, 8], "Ele": [2, 3, 5, 6, 10], "Eles": [0, 4, 6], "Em": [2, 5, 6, 8, 10], "Essas": 0, "Esse": 4, "Esses": [5, 6], "Esta": [0, 1, 2, 4, 6], "Estas": 10, "Este": [2, 6, 8, 10, 14, 15], "Estes": 6, "For": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "Fora": 0, "H\u00e1": [1, 5, 6, 14], "Isso": [2, 4, 6], "Isto": [0, 2, 3, 4, 5, 6, 10, 14], "Mas": [1, 4, 6], "NO": 6, "Na": 0, "Nem": 6, "No": [2, 5, 6, 8, 14], "Nos": 6, "N\u00f3s": [0, 1, 5], "O": [2, 8, 10, 12, 13, 17], "OU": 14, "Os": [0, 3, 4, 8, 10, 13, 17], "Por": [2, 3, 4, 5, 6, 10], "SE": 6, "Se": [1, 2, 3, 4, 6, 8, 10, 14], "Seu": 6, "Tamb\u00e9m": 6, "Um": 5, "Uma": [4, 6, 8, 10], "_": [2, 5, 12, 16], "__": [1, 2, 4], "__dict__": 5, "__file__": [5, 7, 14], "__init": 2, "__init__": [2, 4, 5, 6, 7, 13, 14, 15, 16], "__prerequisite__": 5, "__prerequisites__": [5, 13], "__str__": [5, 8, 10], "_action": [10, 14], "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_updat": 6, "_alt": 10, "_always_": 13, "_and": 12, "_antes_": 6, "_autocomplet": 16, "_autocomplete_search_fields": 16, "_before_delet": 6, "_before_insert": 6, "_before_updat": 6, "_bgcolor": 10, "_c": 10, "_checked": 10, "_class": [5, 10, 12, 16], "_cols": 10, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_dat": 10, "_db": 6, "_dbnam": 6, "_default": [2, 4], "_delet": 6, "_disabled": 10, "_documentation": [1, 3], "_enable_record_versioning": 6, "_extr": 6, "_format": 6, "_href": [5, 8, 10, 12, 14], "_hx": 16, "_id": [6, 10, 12, 16], "_insert": 6, "_listify": 6, "_method": [10, 14], "_nam": [6, 10, 12, 14, 16], "_next_url": 13, "_nonreserved": 6, "_onclick": 12, "_placehold": [12, 16], "_rows": 10, "_scaffold": [5, 8, 10, 12, 13, 14, 15, 17], "_search": 16, "_select": 6, "_selected": 10, "_sesson": 5, "_src": 10, "_style": [12, 16], "_tabl": [6, 12, 16], "_tablenam": 6, "_tag_": 13, "_timings": 6, "_titl": [12, 16], "_type": [6, 10, 12, 14, 16], "_u": 10, "_updat": 6, "_ur": 6, "_valu": [10, 12, 14, 16], "_xmlns": 10, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaa": 8, "ab": [10, 12], "aba": 3, "abaix": 6, "abas": 3, "abbreviated": 12, "abc": [10, 12], "abert": [1, 3, 6], "ability": 15, "able": [5, 6, 12], "abort": [4, 6], "about": [6, 7, 13, 14, 15, 16, 17], "abov": [4, 5, 6, 7, 8, 12, 14, 16], "abracadabr": 2, "abrir": 2, "absent": 2, "absolut": [2, 6, 15], "abspath": 4, "abstraction": [5, 15, 17], "abstra\u00e7\u00e3": 6, "acab": 6, "accdesc": 6, "accept": [4, 5, 12, 16], "acceptanc": 12, "accepted": [1, 2, 6, 12, 13, 15, 16], "accepting": 10, "accepts": 12, "access": [2, 4, 5, 6, 10, 13, 15, 16], "accessed": [6, 10, 12], "accessibl": 4, "accessing": [5, 6], "accnum": 6, "accomplish": [5, 6, 13], "accomplished": [6, 13, 15], "according": 8, "accordingly": 8, "account": 6, "acctype": 6, "aceit": [6, 11, 12], "aceler": 6, "acert": 2, "acess": [0, 2, 4, 5, 6], "acess\u00f3ri": 4, "achieved": [5, 15], "acim": [6, 7, 8, 13], "acion": 6, "acknowledgments": 17, "acompanh": 6, "acontec": 6, "acord": 6, "acrescent": 6, "across": [6, 8], "act": 6, "action": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "action_button": 14, "action_token": [5, 13], "actions": [4, 5, 6, 14, 15, 17], "activ": [6, 13], "activat": [2, 13], "activated": 13, "activating": 2, "activiti": 6, "acts": 12, "actu": 6, "actual": [5, 6, 8, 13, 14], "actualiz": 6, "actually": [6, 8], "ac\u00e7\u00e3": [4, 5, 6, 7], "ad": 13, "adapt": 13, "adapter_args": 6, "adapters": [6, 16], "add": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "added": [0, 2, 5, 12, 13, 16], "adding": [6, 12, 14], "addition": [6, 8], "additional": [4, 5, 6, 7, 8, 12, 14], "additional_cl": 14, "additional_styl": 14, "address": [2, 12, 13], "adds": 16, "adi": 6, "adiant": 13, "adicion": [2, 5, 11, 12, 13, 14], "adicional": [2, 5, 6], "adi\u00e7\u00e3": 6, "admin": 15, "administr": [0, 6], "administrativ": 2, "administrator": 2, "adquir": 6, "advanc": [2, 13, 14], "advanced": [14, 17], "advantag": [2, 6, 8, 16], "advisabl": 6, "advised": 14, "affecting": 6, "after": [5, 6, 8, 12, 13, 14, 16], "after_connection": 6, "after_delet": 6, "after_insert": 6, "after_updat": 6, "aftermath": 6, "again": [2, 4, 5, 6, 12, 13, 16], "against": [6, 7, 10, 12, 13, 14], "age": 6, "aggregat": 6, "agir": [6, 10], "agn\u00f3st": 4, "agor": [2, 4, 5, 6, 8], "agrad": 10, "agreg": 6, "aid": 6, "aims": 0, "aind": [2, 6, 13], "ajax": [8, 14, 16], "ajud": [0, 2, 4, 6, 15, 17], "ajust": 6, "aka": 1, "alcanc": 6, "alchemy": 6, "aleat\u00f3r": 6, "alert": [5, 8, 10, 12, 15], "alerts": [5, 8, 15], "alex": 6, "alfar": [0, 1], "alg": 12, "algo": [5, 6, 7, 8], "algorithm": [5, 12], "algum": [4, 6, 10], "alguns": [0, 2, 4, 5, 6, 7, 8, 10], "ali": [6, 12], "aliment": 6, "aliv": 16, "all": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "allocated": 12, "allow": [6, 7, 8, 10, 12, 13, 14, 16], "allowed": [6, 7, 12, 13], "allowed_actions": 13, "allowed_attribut": 10, "allowed_overrid": 12, "allowed_patterns": 7, "allowed_schem": 12, "allowing": [1, 12, 16], "allows": [2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 16], "almost": 5, "along": [2, 4, 10, 12, 16], "alphabetically": 12, "alphanumeric": 12, "already": [2, 4, 5, 10, 12, 13, 14], "also": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "alt": 10, "alter": [0, 2, 4, 5, 6, 11], "altering": 6, "altern": 6, "alternat": [5, 16], "alternativ": [2, 6, 8, 12], "although": [2, 8, 12], "alvo": 6, "always": [0, 2, 4, 5, 6, 12, 16], "al\u00e9m": [4, 6, 14], "am": [12, 16], "amazon": 6, "ambas": 6, "ambient": 2, "ambigu": [4, 6], "ambos": [4, 5, 6], "among": [6, 12], "amount": 6, "ampli": 1, "an": [0, 1, 2, 3, 5, 6, 8, 10, 12, 13, 14, 15, 16, 17], "analis": [4, 6, 11], "analogy": 15, "ancestor": 10, "anchor": 16, "and": [0, 1, 2, 3, 4, 5, 10, 17], "andaim": 4, "andrew": 1, "anex": 6, "angle": 8, "angul": 16, "angularjs": 0, "aninh": [6, 10], "anonymous": [6, 8, 12], "anoth": [4, 5, 6, 8, 12, 13], "anotherpath": 5, "ansi": 6, "answer": 1, "anteced": 4, "anterior": [2, 6], "antes": [1, 6, 8, 10, 13, 14], "antig": 15, "any": [2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "anyhow": 2, "anyobj": 6, "anything": 4, "anyway": 6, "anywher": [8, 15], "an\u00e1lis": 6, "apag": 12, "aparec": 6, "aparent": 6, "apen": [2, 5, 6, 7], "api": [0, 6, 7, 10, 12, 13, 16], "api_key": 16, "api_version": 7, "apis": [0, 6, 13, 15], "aplic": [0, 2, 3, 4, 5, 14, 15], "apoi": 6, "apont": 6, "app": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "app1": 5, "app1_session": 5, "app2": 5, "app_fold": 15, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appe": [6, 12], "append": [6, 10, 12, 14, 16], "append_id": 14, "appended": [5, 6], "apple": 12, "appli": [6, 12, 16], "application": [2, 4, 5, 6, 8, 12, 13, 15, 16], "applications": [0, 2, 3, 4, 6, 12, 13, 14], "applied": [5, 6, 12, 14, 16], "apply": [0, 5, 12, 13, 14], "applying": [6, 14], "appnam": [2, 4, 5, 13, 15], "appname_session": 5, "approach": [6, 15], "appropriat": [6, 12], "appropriately": 6, "approv": 13, "apps": [0, 1, 2, 3, 5, 6, 8, 13, 15, 17], "apps_fold": 2, "aprend": 1, "apresent": 8, "apropri": 6, "aproxim": 6, "apt": 13, "ap\u00f3s": [2, 6, 14], "aqu": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14], "aquel": [6, 13], "arbitrary": [4, 13], "arbitr\u00e1ri": 6, "archive_db": 6, "archive_nam": 6, "are": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "aren": 6, "args": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 10, 12, 13, 16], "arguments": [2, 5, 6, 8, 10, 12, 13, 15, 16], "arithmetic": 12, "armazen": [0, 2, 5, 6, 10], "around": [1, 15], "arquiv": [0, 2, 3, 4, 5, 6, 13, 17], "arrang": 12, "array": 16, "arriv": [0, 6], "as_ordered_dict": 6, "asci": 12, "asid": 16, "ask": 16, "asked": [2, 13], "asking": 5, "aspas": 6, "aspects": 4, "assert": [6, 16], "assets": 2, "assigned": [6, 12, 13, 15], "assigning": [15, 16], "assignment": 8, "assigns": 16, "assim": [6, 8], "assinatur": [4, 5], "assist": 4, "assistent": 10, "assoc": [6, 11], "associated": [6, 12, 13], "assum": [2, 5, 6, 7, 11, 12], "assumed": 15, "assuming": [5, 6], "async": 16, "asynchronously": 16, "asynci": 17, "at": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "atend": [2, 6], "ativ": [2, 6], "atrav\u00e9s": [6, 8, 10, 13], "atribut": [5, 10], "atribu\u00edd": 6, "attached": [6, 13], "attaching": 15, "attacks": [5, 10], "attempted": 12, "attempting": 6, "attempts": [6, 13], "attention": [4, 6], "attribut": [4, 5, 6, 10, 12, 14, 15, 16], "attributes_plugin": 16, "attributespluginhtmx": 16, "attrs": [12, 14, 16], "atual": [2, 6], "atualiz": [2, 17], "aug": 12, "august": 12, "aul": 14, "aut": 10, "autentic": 6, "auth": [0, 2, 4, 6, 8, 10, 16, 17], "auth_group": 13, "auth_groups": 13, "auth_plugins": 13, "auth_us": [5, 6, 13, 16], "auth_user_tag_groups": [6, 13], "auth_user_tagged_groups": 13, "authenticat": 13, "authenticated": [5, 6], "authentication": [5, 14, 17], "authoriz": [6, 7], "authorization": [5, 6, 17], "authorized": 13, "auto_import": 6, "auto_process": [14, 16], "autocomplete_query": 16, "autodelet": 6, "autogenerated": 6, "automat": [2, 4, 6, 8, 10, 13, 14], "automatic": [4, 6, 8, 15], "automatically": [2, 3, 4, 5, 6, 12, 13, 14, 15, 16], "autoriz": 6, "auxili": [5, 6, 8, 10], "availabl": [1, 2, 6, 8, 10, 13, 15, 16], "avali": [6, 8], "avanc": 17, "avis": [5, 6, 13], "avoid": [1, 2, 5, 6, 12], "avoided": 8, "avoiding": 5, "avoids": 6, "awar": 6, "awesom": [8, 14], "axel": 0, "axolotl": 0, "azul": 4, "a\u00e7\u00e3": [4, 5, 6, 13, 17], "a\u00e7\u00f5": 5, "a\u00e7\u00fac": 5, "b": [5, 6, 8, 10, 12, 15, 16], "back": [5, 6, 12], "backend": [4, 6], "backends": 6, "background": [2, 4, 12, 17], "backported": 6, "backslash": 4, "backup": [2, 6, 12], "backward": 12, "backwards": [0, 12], "bad_days": 6, "bails": 6, "banan": 12, "banc": [0, 1, 3, 4, 5, 13], "bar": [8, 14], "barc": 6, "barr": 4, "barri": 0, "bas": [0, 2, 4, 8, 14, 16], "base64": [6, 8, 16], "base_dn": 13, "baseadapt": 6, "based": [0, 2, 3, 4, 5, 7, 8, 12, 13, 14, 15, 16], "bash": 2, "basic": [2, 5, 17], "basically": 16, "bast": 2, "bat": 2, "batman": [7, 12, 14], "battl": 0, "be": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "beasley": 0, "becaus": [0, 2, 4, 5, 6, 8, 10, 12, 13, 14, 16], "becom": [12, 16], "bed": 11, "been": [0, 2, 5, 6, 8, 12, 13], "befor": [2, 5, 6, 8, 12, 13, 14], "before_delet": 6, "before_insert": 6, "before_updat": 6, "begin": [12, 14], "beginners": 2, "beginning": [8, 12, 13], "behavior": [5, 6, 12, 15, 16], "behaviour": [2, 6, 14], "being": [4, 5, 6, 7, 8, 12, 16], "believ": [0, 5], "belong": [13, 15], "belonging": 6, "belongs": 13, "below": [5, 6, 7, 12, 14], "bem": [0, 4, 5, 6, 13], "benefits": 16, "benef\u00edci": 6, "best": [2, 5, 6], "bett": [0, 1, 2, 4, 6, 14, 15, 16], "between": [5, 10, 12, 15], "beyond": 12, "bgcolor": 10, "bibliotec": [0, 4, 11], "big": 15, "bigint": 6, "bigint_id": 6, "bilhet": [0, 3, 6], "bilh\u00e9t": 0, "bin": [1, 2], "binari": 2, "binary": 6, "bind": 16, "bin\u00e1ri": 6, "birthplac": 6, "bit": 12, "bitbucket": 1, "black": [8, 12], "blank": [12, 14], "blanks": 12, "blink": 16, "blob": [1, 6], "bloc": [8, 10], "block": [4, 13, 16], "blockquot": 10, "blocks": 8, "blog": [1, 6, 10], "blog_post": 6, "bloqu": 13, "blu": [4, 6, 12, 15], "bmp": 12, "boas": 2, "boat": 6, "bob": 6, "body": [4, 8, 13, 14, 16], "boilerplat": 5, "bold": 10, "bom": 2, "bonit": 6, "book": 6, "boolean": [6, 14], "booleans": 6, "boost": [6, 8], "bootstrap": 14, "bord": 16, "botar": 0, "both": [1, 2, 5, 6, 8, 12, 15], "bottl": [0, 4, 5, 8, 15], "bottle_app": 2, "bottleneck": 16, "bottlepy": [4, 5], "bottom": 12, "bot\u00e3": 3, "bot\u00f5": [3, 17], "boundari": 12, "boundary": 12, "box": [0, 6, 12], "br": [8, 10], "bracket": 8, "brackets": [8, 12], "branch": [1, 2], "break": [2, 6], "breaking": 6, "breaks": 12, "breez": 1, "brev": 4, "briefly": 2, "broken": [0, 6, 12], "brows": [1, 2, 3, 5, 7, 8, 14, 16], "browsers": 16, "browsing": 3, "bruc": [7, 14], "brut": 6, "bsd": 1, "buff": 6, "buffering": 4, "bug": 6, "bugs": 1, "build": [1, 2, 4, 5, 10, 14, 16], "building": [4, 12, 16], "built": [0, 1, 4, 6, 8, 12, 16, 17], "bulk_insert": 6, "bulletproof": 6, "bulm": [12, 14, 16], "bunch": 2, "busc": [3, 6, 14], "busing": 16, "but": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "button": [3, 4, 5, 12, 14, 16], "buttons": [10, 12, 14, 16], "by": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "bypass": [12, 13], "bypassed": 13, "byte": 12, "bytecod": 8, "bytes": 6, "b\u00e1sic": [0, 1, 6, 17], "c": [1, 2, 3, 5, 6, 8, 10, 12, 15], "ca": 12, "cabec": [10, 14], "cabe\u00e7alh": [4, 10], "cach": [0, 2, 4, 5, 12], "cache_db_select": 6, "cacheabl": 6, "cached": 5, "cache\u00e1vel": 6, "caching": [4, 6, 17], "cachorr": 11, "cad": [2, 4, 5, 8, 11, 14], "caiu": 6, "caix": [0, 6, 10], "calcul": 6, "calend": 14, "call": [0, 5, 6, 8, 12, 13, 16], "callabl": [10, 12], "callback": [6, 12, 13, 16], "callback_url": 13, "called": [1, 2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "calling": [5, 6, 8], "calls": [2, 6, 8, 16], "cam": [6, 11], "caminh": [2, 4, 6, 14], "camp": [5, 7, 10, 12, 17], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "cancel": [12, 16], "cancel_attrs": 16, "cannot": [2, 5, 6, 8, 12, 16], "capabiliti": [14, 16], "capac": 0, "capaz": [1, 2], "capitaliz": 16, "captur": 16, "cap\u00edtul": [2, 4, 5, 15], "car": 6, "caract": [6, 10], "caracter": 4, "caracter\u00edst": 17, "card": 6, "careful": [5, 6, 8, 15, 16], "carg": 6, "carl": 6, "carreg": [0, 6], "carroll": 0, "carry": 15, "cart": 5, "car\u00e1ct": [4, 6], "cas": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 15, 16], "cascading": 6, "cascat": 6, "case_sensitiv": 6, "cassi": 0, "caus": [6, 12], "caveat": [6, 8, 15], "caveats": 17, "cd": 2, "cdnjs": [8, 14], "celery": 17, "cent": [5, 6, 8], "century": 12, "ceo": [7, 14], "cerc": 6, "cert": [1, 2, 6, 14], "certain": [6, 8, 12, 14], "certez": 6, "certificat": 2, "certifiqu": [6, 11], "cf": 4, "cgi": 12, "cha": 6, "challeng": 13, "cham": [2, 4, 5, 7, 8, 11, 14], "chang": [1, 2, 3, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17], "change_email": 13, "change_password": [8, 13], "changed": [2, 3, 4, 5, 6, 8, 12, 15, 16], "changed_fil": 4, "changing": 6, "channel": 1, "chapt": [3, 4, 5, 6, 8, 10, 12, 13, 14], "chapters": [1, 5], "char": 6, "charact": [6, 12], "characters": [6, 12], "charg": [2, 15], "chars": 13, "chat": 2, "chats": 1, "chav": [4, 8, 10, 11, 14], "chec": 11, "check": [3, 4, 5, 6, 12, 13, 14, 16], "check_": 16, "check_reserved": 6, "checkbox": [8, 10, 17], "checkboxwidget": 12, "checked": [10, 12, 13], "checking": [1, 12, 13, 15], "checks": [2, 6, 8, 12, 13], "cherry": 12, "chicag": 6, "children": 14, "choic": [1, 12, 14], "choos": [6, 12, 13], "choosen": 6, "chrom": [3, 16], "cient": 6, "cinc": 6, "circul": 6, "circumstanc": 5, "cit": [6, 10, 12], "cit0801": 7, "cit0802": 7, "cit1601": 16, "clar": 6, "clark": [7, 14], "clash": 12, "class": [5, 6, 8, 10, 12, 13, 15, 16], "class_inner_exceptions": 16, "class_styl": 14, "classific": [6, 14], "claud": 6, "claus": 6, "cle": 12, "clean": [5, 10], "cleanup": 0, "clearly": 16, "clev": 12, "cli": [1, 2], "clic": 14, "click": [3, 10, 12, 14, 16], "clickabl": 14, "clicked": [14, 16], "clicks": [6, 16], "client": [0, 7, 12, 13, 16], "client_id": 13, "client_ip": 5, "client_secret": 13, "clients": 5, "clientsid": 16, "cliqu": [3, 14], "clock": 12, "clon": [2, 4, 6, 16], "cloned": 2, "clos": [6, 10], "closed": [6, 8], "closing": [5, 6], "cloudflar": [8, 14], "cl\u00e1usul": [6, 8], "cmd": 2, "cn": 13, "co": [6, 12], "coa": 6, "cod": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "codific": 6, "coding": 1, "cois": 6, "colegial": 13, "collapsibl": 10, "collection": [0, 15], "collections": 2, "collects": 2, "colnam": 6, "coloc": 17, "colon": 8, "color": [4, 6, 8, 10, 12, 16], "colors": [4, 6], "cols": 10, "colspan": 10, "column": [6, 14], "columns": [6, 17], "colun": [6, 14], "comand": 6, "comando": [3, 4, 6, 10, 17], "combin": [4, 5, 10, 14], "combined": [5, 6, 12], "come": [0, 5], "comec": [1, 2, 4, 6], "comes": [0, 5, 8, 12, 13, 14, 15, 16], "comet": 6, "coming": 5, "comm": [2, 16], "command": [2, 4, 6, 8], "commands": [2, 4, 6, 8, 10], "comment": [6, 10], "commit": [5, 7, 14, 16], "commits": [5, 6], "committed": [6, 15], "common": [2, 4, 5, 8, 12, 13, 15, 16], "common_filt": 6, "common_filters": 6, "commonality": 8, "communicat": 5, "communication": 6, "communications": 5, "community": [0, 6], "compact": 6, "company": 14, "compar": [6, 13, 15], "compared": 0, "comparing": 13, "comparison": [12, 13], "compartilh": [5, 6], "compat": 6, "compatibility": 12, "compatibl": [0, 1, 10, 12], "competitor": 0, "compil": [4, 8, 10, 12], "compilation": 8, "compiled": [4, 8, 10, 12], "compiled_css": 4, "compiling": 8, "complet": [0, 2, 6, 10, 12, 14, 16], "completed": [0, 6], "completely": [6, 8, 13], "complex": [1, 2, 4, 5, 6, 8, 10, 13, 15, 16], "complexiti": 16, "complexity": 16, "compliant": 16, "complicated": 5, "component": [0, 4, 5, 8, 10, 12, 13, 16], "component_1": 16, "components": [0, 3, 10, 12, 16], "comport": [4, 6, 10, 14], "compos": 2, "composing": 5, "compost": [6, 10], "compreend": [1, 14], "compressed": 4, "comprim": 3, "compriment": 6, "compris": 3, "compromet": [4, 6], "compromis": 0, "comput": 1, "computed": 17, "computing": 16, "comp\u00f5": 6, "comum": [5, 6], "comunic": 6, "comuns": 3, "concaten": 6, "concatenat": 10, "concatenating": 10, "conceived": 6, "concept": [0, 13], "conch": 2, "concorrent": 0, "concurrency": [6, 16], "concurrent": 16, "concurrently": [2, 12, 16], "cond": 5, "condicion": 8, "condicional": 6, "condition": [6, 12, 13, 17], "conditions": [6, 12], "condi\u00e7\u00e3": 6, "condi\u00e7\u00f5": 6, "conect": [6, 13], "conex\u00e3": 4, "conf": 6, "confiabil": 1, "config": [2, 4], "configur": [3, 13, 14, 15, 16, 17], "configuraiton": 4, "configuration": [1, 4], "configurations": 2, "configured": [5, 12, 15], "confirm": [2, 12, 14], "confirmation": 16, "confirmations": 16, "confirms": 13, "conflicts": 6, "conflit": [0, 2, 4, 6], "conform": [6, 13], "confund": 6, "confus": 6, "conhec": [1, 6], "conjunt": [6, 10, 11, 14], "conn": 5, "connect": [3, 6], "connecting": 6, "connection": [5, 6, 12], "connectionpool": 6, "connections": [5, 6, 15], "cons": 6, "conseg": 6, "consegu": 6, "consequenc": [6, 12, 16], "consequently": 12, "consid": [5, 8, 10, 12, 14, 16], "consider": [6, 8, 10], "considered": [5, 6, 8, 15], "consist": [6, 15], "consistency": 8, "consistent": 5, "consists": [6, 14], "consol": [2, 10, 13, 16], "constant": 12, "constraining": 15, "constru": [6, 10, 14], "constructing": 6, "construction": 4, "constructor": [6, 13, 17], "constructors": [6, 12], "construtor": [5, 10, 12, 17], "constru\u00e7\u00e3": [6, 10, 14], "constru\u00edd": [6, 14], "constr\u00f3": 6, "consult": [1, 7, 13, 14], "consulta1": 6, "cont": [2, 5, 10, 11, 13], "contador": [5, 6], "contag": 6, "contain": [2, 4, 5, 6, 8, 10, 12, 13, 16], "contained": [10, 12, 14], "containing": [0, 2, 5, 12, 13, 14, 16], "contains": [3, 5, 7, 8, 11, 12, 14, 15, 16], "contect": 8, "contenh": 5, "content": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "content_typ": 16, "contents": [8, 10, 16], "context": [3, 5, 6, 8, 13], "contextlib": 6, "contexts": 5, "conte\u00fad": [4, 6, 10], "continu": [0, 6, 8, 16], "contr": 6, "contribu": 17, "contributed": 0, "control": [2, 8, 12, 13, 14, 16], "controll": [5, 6, 8, 10, 12, 13, 14, 15, 16], "controllers": [4, 6, 8, 10, 12, 15, 16], "controls": 12, "contr\u00e1ri": [0, 4, 6, 8], "cont\u00e9m": [2, 4, 5, 6], "cont\u00eain": 6, "cont\u00eam": [6, 11], "convenienc": 5, "convenient": [6, 17], "convention": [8, 12, 15], "conventions": [4, 6], "conven\u00e7\u00e3": 4, "conversion": [12, 17], "convers\u00e3": 6, "convert": [4, 6, 10], "converted": [1, 6, 12], "converting": 6, "converts": 12, "cooki": [0, 4, 6, 12, 16], "copi": 2, "copied": 2, "copy": [1, 2, 3, 4, 6, 14], "copyfileobj": 6, "copying": [2, 8, 10, 17], "cor": [1, 2, 4, 5], "cord": [4, 6, 11], "corey": 1, "corn": 14, "cornerston": 0, "corp": [8, 10], "corr": 17, "correct": [4, 13], "correct_cod": 13, "correctly": [4, 12], "corrent": 6, "correspond": [2, 4, 6, 11], "correspondent": [4, 6, 10], "corresponding": [3, 6, 13, 14, 15], "corresponds": [2, 6, 10], "corret": 6, "corrig": 1, "corromp": 6, "corrupted": 6, "corruption": 6, "costum": 6, "cot": 6, "cota\u00e7\u00e3": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 10, 12, 13, 15], "count": [5, 7, 13, 14, 16], "coupl": 16, "cours": [1, 8], "cov": 4, "cp": 2, "creat": [0, 1, 2, 4, 5, 6, 8, 12, 13, 14, 16], "create_form": 12, "create_thing": 12, "created": [0, 2, 4, 5, 6, 8, 12, 13, 16], "created_by": 6, "created_on": 6, "creating": [1, 2, 5, 6, 13, 15, 16, 17], "creation": 6, "creativ": 12, "creativity": 13, "credential_decod": 6, "cresc": 6, "cri": [2, 3, 4, 5, 6, 8, 10, 13, 14], "cria\u00e7\u00e3": [2, 6, 14], "crit": 12, "critical": 2, "crit\u00e9ri": 6, "cross": [5, 10], "crossorigin": 8, "crt": [2, 6], "crud": [3, 12, 16], "cruz": [1, 6], "crypt": 2, "cs": 5, "csrf": [5, 12], "csrf_protection": 12, "csrf_session": 12, "css": [1, 4, 5, 8, 10, 12, 13, 14, 16], "csv": 15, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "cuj": 6, "current": [5, 6, 10, 13, 14, 15, 16], "current_record": 6, "currently": [2, 5, 8], "curs": 1, "cursor": [6, 16], "curt": 6, "custom": [0, 4, 5, 6, 8, 10, 13, 15, 16, 17], "custom_check": 12, "custom_qualifi": 6, "customiz": [8, 12, 14], "customizabl": [12, 14], "customization": 12, "customizing": 17, "cx_oracl": 6, "c\u00edclic": 6, "c\u00f3dig": [4, 6, 8, 10], "c\u00f3p": 6, "d": [2, 7, 10, 12], "dad": [0, 1, 3, 4, 5, 13, 17], "daemon": 2, "daemons": 16, "dal": [2, 4, 7, 12, 13, 14, 16, 17], "dals": 6, "dan": 0, "danc": 13, "dand": 4, "dangerous": 15, "daquel": 6, "dar": 6, "dash": 12, "dashboard": [2, 4, 5, 8, 12, 16, 17], "dashboard_mod": 2, "dat": [0, 2, 5, 6, 7, 8, 10, 13, 14, 15, 16], "data_label": 16, "databas": [0, 1, 3, 7, 13, 14, 15, 16, 17], "datalist": 16, "datetim": [4, 5, 6, 7, 12, 16], "datetimewidget": 12, "day": 12, "days": 12, "db": [2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_fold": [5, 7, 14], "db_nam": 6, "db_uid": 6, "dbadmin": 4, "dbi": 12, "dbo": 6, "dbset": 12, "dbstor": 5, "dc": 13, "dd": 12, "deal": [6, 16], "dealfar": 0, "debounc": 16, "debug": [1, 2, 5, 6, 8], "debugg": 1, "debugged": 8, "debuggers": 15, "debugging": [1, 4], "decid": [6, 12, 13, 14], "decim": 4, "decimal": [6, 12], "decimals": 12, "decl": [4, 6], "declar": [0, 4, 5, 6, 8], "declared": 5, "decod": 6, "decode_credentials": 6, "decoded": 6, "decomp\u00f5": 6, "decor": [1, 4, 17], "decorated": 15, "decorator": [4, 5, 6, 15], "decorators": [5, 15], "decresed": 13, "dedic": [1, 4, 15], "dedicated": [1, 5, 10], "def": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "default": [2, 3, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "defaults": [5, 6, 12, 14, 15], "deferred": [6, 16], "defin": [0, 4, 5, 8, 10, 12, 13, 14, 16], "define_tabl": [5, 7, 12, 13, 14, 15], "defined": [2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "defining": 14, "definit": 12, "definition": [6, 7, 12, 14], "definitions": [6, 7, 15], "defini\u00e7\u00e3": 6, "defini\u00e7\u00f5": 6, "deform": 11, "deix": 13, "del": [5, 6, 10], "delay": 16, "delaying": 16, "deleg": 6, "delet": [2, 4, 7, 12, 14, 16], "deletabl": [12, 14], "delete_record": 6, "deleted": 6, "deleting": [6, 14], "deletion": 6, "deletions": 6, "delimit": [0, 6, 8], "delimiters": [5, 15], "deliv": 16, "delt": 16, "dem": [1, 2, 16], "demand": 6, "denormaliz": 7, "denormalization": 6, "dentr": [0, 2, 4, 6, 14], "deny": 7, "depend": [4, 5, 6, 13], "dependenc": [0, 2, 5, 15], "dependent": [2, 3, 4, 5], "depending": [6, 8, 12, 14], "depends": [5, 6, 15], "deploy": 2, "deployment": 1, "deployment_tools": 2, "depo": [2, 3, 6], "deprecated": [12, 16], "depur": [6, 8], "deriv": 6, "derived": [6, 12], "desat": 6, "desativ": 6, "desc": 14, "descart": 6, "descendant": 10, "descobert": [2, 11], "descompact": 2, "descrev": 6, "describ": [3, 12], "described": [2, 4, 5, 6, 12], "description": [6, 7, 12, 13], "descriptiv": 12, "descrit": [2, 4, 6, 14], "desd": [5, 6], "desej": [1, 2, 5, 6, 13, 14], "desempenh": 6, "desencad": 3, "desenvolv": 0, "desenvolvedor": [1, 8, 13, 14], "desfaz": 6, "design": [0, 13, 16, 17], "designed": [0, 4, 6, 8, 12, 16], "desir": 8, "desired": [5, 12], "desloc": 6, "desnormaliz": 7, "despej": 6, "dess": [0, 5, 6, 13], "dest": [4, 6, 12], "detail": [6, 10, 14, 16], "detail_fields": 12, "detailed": [2, 14], "details": [0, 1, 5, 6, 7, 8, 12, 14], "detalh": [6, 14], "determin": [4, 5, 6, 11, 12, 13, 14], "determined": [8, 12], "determining": 5, "deterministic": 5, "dev": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "develop": [5, 6, 8, 13, 14, 15], "developers": [0, 1, 6, 13, 16], "developing": 4, "development": [0, 1, 4, 6], "development_tools": 2, "devic": 8, "devolv": [6, 8], "di": [0, 5], "diagr": 7, "dialect": 6, "dialects": 6, "dialet": 6, "dic": 17, "dicion\u00e1ri": [10, 11, 12], "dict": [4, 5, 6, 11, 12, 14, 15, 16], "dictionari": 6, "dictionary": [4, 5, 6, 10, 12, 15], "did": [0, 4, 16], "dif": 6, "diferenc": 6, "diferent": [2, 5, 6, 11, 14], "diff": 6, "differenc": [6, 12, 15], "different": [0, 2, 4, 5, 6, 8, 12, 13, 15, 16], "differs": [6, 14], "difficult": [2, 16], "dif\u00edcil": 1, "dig": 6, "digit": [12, 13], "dimensions": 12, "dinam": 10, "din\u00e2m": [6, 17], "dir": [2, 12, 16], "direct": 6, "directiv": [2, 4, 8, 12], "directly": [2, 4, 6, 7, 10, 12, 13, 14, 16], "directory": 13, "direit": [3, 6], "diret": [1, 5, 6, 8], "diret\u00f3ri": 4, "dirnam": [5, 7, 14], "disabl": [6, 14], "disabled": [7, 10, 12], "disallow": 12, "discord_client_id": 13, "discord_client_secret": 13, "discount": 6, "discounted_total": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discovered": 13, "discriminator": 13, "discuss": 3, "discussed": [6, 8, 10, 12], "discussion": 6, "discuss\u00e3": 1, "discuss\u00f5": 1, "discut": 6, "disk": 5, "dismissal": 15, "dismissibl": 5, "dispar": 6, "display": [5, 12, 13, 14, 16], "displayed": [3, 6, 10, 12, 14, 16], "displaying": [5, 12, 14], "displays": [13, 14], "dispon": 6, "dispon\u00edv": 1, "disposit": [4, 5, 13], "diss": [4, 6, 14], "distinct": [8, 12], "distinction": 6, "distin\u00e7\u00e3": 6, "distribu": 6, "distribut": 6, "distributed_transaction_commit": 6, "distribution": 6, "ditched": 0, "div": [4, 5, 8, 12, 14, 15, 16], "divisibl": [8, 12], "division": [8, 10], "divis\u00e3": 8, "divmod": 6, "diz": [4, 6, 13, 14], "djang": [0, 1, 6, 15], "do_connect": 6, "dobr": 6, "dobrag": 6, "doc": 1, "dockerfil": 2, "docs": [1, 2, 4, 16], "doctor": 6, "doctyp": [8, 14], "document": [6, 8, 10, 12, 16], "documentation": [3, 12, 16], "documentations": 5, "documented": [5, 12], "does": [0, 2, 5, 6, 8, 12, 13, 14, 15, 16], "doesn": 5, "dog": [11, 12, 16], "doh": 12, "doing": [6, 12, 16], "dois": [0, 5, 6, 8], "dom": [8, 17], "domain": [12, 13, 17], "domains": 4, "don": [2, 4, 5, 6, 8, 12, 13, 14, 15], "dot": 12, "doubl": [2, 6, 8], "doubt": 14, "down": [12, 16], "download": [2, 12], "download_url": 12, "downs": 6, "downsid": [6, 15], "dramat": 6, "driv": 6, "driven": 0, "driver_args": 6, "drivers": 6, "drop": 12, "dropdown": [12, 14, 16], "dropdowns": 16, "dropping": 6, "dsn": 6, "duas": [5, 6], "due": [6, 7, 12], "dummy": [6, 8], "dummyrespons": 8, "dump": 5, "dumpfil": 6, "dumps": [6, 16], "duplicat": 6, "durability": 7, "during": [6, 14], "dynamic": [4, 8, 13], "dynamically": [6, 7, 8, 12], "d\u00e1": [0, 2, 14], "d\u00edgit": [4, 6], "ea": 6, "each": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "earli": [13, 16], "early": 5, "easi": [7, 8], "easiest": 6, "easily": [4, 5, 6, 8, 10, 12, 14], "easy": [5, 8, 12], "ebook": 1, "echo": 4, "ecosyst": 16, "edge": 16, "edif\u00edci": 5, "edit": [0, 2, 3, 4, 8, 12, 13, 14, 15, 16], "edit_sidec": 16, "editabl": [14, 15], "editing": [8, 10, 12, 13, 14], "editor": [1, 8], "editors": 8, "edi\u00e7\u00e3": 0, "edi\u00e7\u00f5": 3, "education": 2, "efeit": 6, "efet": 6, "effect": [3, 5, 6, 12], "efficient": [0, 5], "efficiently": [1, 15], "efforts": 1, "efg": 10, "eficient": 6, "eith": [6, 12], "el": 10, "element": [6, 8, 10, 12, 14, 16], "elements": [6, 10, 12, 16], "elev": 6, "elimin": [6, 14], "else": [2, 5, 6, 12, 13, 14, 15, 16], "elt": 16, "el\u00e9tr": [4, 5, 13], "emacs": 8, "email": [2, 8, 12, 13, 15, 16], "emails": [12, 16], "emails_onvalidation": 12, "embed": 10, "embedded": [5, 8, 12], "embedding": 8, "ember": 12, "embor": 6, "emerging": 16, "emit": [3, 6], "employ": 5, "employe": 14, "empreg": 14, "empres": 14, "empty": [2, 4, 12, 16], "empty_regex": 12, "en": [5, 7, 16], "enabl": [1, 5, 6, 7, 10, 13, 15, 16], "enable_record_versioning": 6, "enabled": [5, 7, 13, 15], "encaix": 4, "encapsulat": [8, 10], "encerr": 8, "enclosed": 6, "enclosing": 8, "encod": 6, "encoded": [5, 6, 12, 16], "encoding": 6, "encontr": [4, 6, 8, 11, 13], "encrypted": [2, 5], "encryption": 0, "end": [4, 6, 8, 12, 13, 14, 16], "enderec": 6, "ending": 8, "endpoint": [13, 16], "ends": [6, 8, 15], "enforc": [5, 12], "enforced": [6, 12, 15], "enfrent": [1, 6], "engin": [6, 12], "engineering": 2, "english": 5, "enough": [12, 13], "enquant": [0, 6, 8], "enqueu": 16, "enqueue_run": 16, "enqueueing": 16, "ensin": 13, "ensur": [4, 12], "entant": [6, 8, 10, 14], "entend": 6, "enter": [4, 12, 13], "entered": [10, 13], "entering": 5, "enterpris": [1, 13], "entidad": 6, "entir": [8, 15, 16], "entirity": 4, "entity_quoting": 6, "entrad": [4, 6, 10, 11], "entri": [7, 12, 14], "entropy": 12, "entry": [0, 6, 15], "ent\u00e3": [2, 4, 6, 13], "env": [1, 15], "envelop": 16, "envi": [10, 14], "environ": [5, 15], "environment": [0, 1, 4, 5, 6], "environments": [1, 4], "envolt": 11, "envolv": 6, "eo": 6, "epub": 1, "eq": 7, "equal": [7, 12, 13, 16], "equals": [10, 13], "equip": 5, "equivalent": [4, 5, 6, 10, 12, 15], "equivalently": 10, "errad": 6, "errlog": 5, "erro": [2, 3, 6], "error": [2, 3, 5, 6, 7, 8, 10, 12, 16], "error_messag": 12, "errorlog": 2, "errors": [1, 5, 6, 7, 12, 15], "escap": [6, 8, 10], "escaped": [6, 8, 10], "escaping": [6, 8], "escolh": [1, 4, 6], "escond": 6, "escrav": 6, "escrev": [6, 8, 10], "escrit": [6, 8], "espac": [6, 11, 14], "espec": [5, 6, 10], "especial": [2, 4, 6, 11], "especializ": 6, "especially": [0, 2, 4, 5, 12, 13], "especif": [4, 6], "especific": [4, 5, 6], "especifiqu": 14, "espec\u00edf": [1, 2, 6], "esper": [4, 5, 6], "esprim": 4, "esquec": 6, "esquem": 6, "esquerd": [6, 14], "estabelec": 6, "establish": 6, "established": 6, "establishing": 15, "estad": [5, 6], "estam": 6, "estar": [4, 6, 10], "estend": [0, 5, 6], "estil": 14, "estiv": 6, "estrangeir": [1, 14], "estreit": 6, "estrutur": [4, 5, 6, 11], "est\u00e1t": [10, 17], "est\u00e3": [5, 6, 7, 10, 13], "etap": 6, "etc": [4, 5, 6, 7, 11, 15], "etiquet": [6, 10], "eval": 16, "evaluat": [5, 12, 16], "evaluated": [6, 7], "even": [1, 4, 5, 6, 8, 10, 12, 14, 15, 16], "event": 6, "event_tim": 6, "events": [2, 16], "eventually": 5, "ever": 6, "every": [0, 5, 6, 13, 14, 15, 16], "everyon": [0, 1], "everything": [2, 15, 16], "evit": [0, 2, 6, 8, 12], "evolution": 0, "ex": 6, "exact": [8, 15], "exactly": 5, "exampl": [1, 2, 4, 5, 6, 8, 10, 11, 13, 17], "exat": [6, 8], "excellent": [1, 14], "except": [2, 5, 6, 8, 10, 12, 13, 16], "exception": [5, 6, 12, 13, 16], "exceptions": [4, 5, 16], "excep\u00e7\u00e3": 8, "excerpt": 8, "excet": [5, 6], "exce\u00e7\u00e3": [4, 5, 6, 8], "exce\u00e7\u00f5": 4, "exclu": 6, "exclud": 12, "exclus": 6, "exclusiv": [12, 13], "exclusively": [0, 5, 6], "exclus\u00e3": 14, "exclu\u00edd": [2, 6], "exe": 2, "execu": [2, 4], "execut": [0, 2, 3, 6, 12], "executabl": [6, 10], "executed": [2, 5, 6, 8, 15, 16], "executing": 16, "execution": [1, 16], "exempl": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "exercis": 5, "exerc\u00edci": 13, "exib": [3, 6, 8, 10, 14], "exibi\u00e7\u00e3": [13, 14], "exig": [1, 2, 6, 13], "exist": [1, 2, 4, 5, 6, 8, 12, 16], "existenc": 13, "existent": [2, 6, 13, 14], "existing": [2, 5, 6, 12], "exists": [5, 6], "exit": 2, "exiting": 5, "exp": [4, 6], "expand": 3, "expect": [6, 12], "expected": 15, "expects": [2, 10], "experienc": [1, 13], "experienced": 0, "experiment": [1, 12], "experimental": [2, 5], "experimenting": 1, "expir": 5, "expiration": [5, 6], "explain": 12, "explained": [5, 6, 12, 14], "explanatory": 6, "explic": [4, 6], "explicit": [0, 2, 4, 5, 6, 8, 12], "explicitly": [0, 2, 5, 6, 8, 10, 12, 16], "explict": 6, "exploring": 3, "expl\u00edcit": [6, 13], "expor": [4, 13], "export": 17, "export_to_csv_fil": 6, "exporting": 6, "expos": [4, 5], "exposed": 6, "expost": 7, "express": 12, "expressed": 12, "expression": [4, 6, 8, 11, 12, 14], "expressions": [10, 12, 16], "express\u00e3": [6, 7, 11, 14], "express\u00f5": 11, "exp\u00f5": [0, 3, 4, 6, 13], "extend": [5, 6, 12, 13, 15, 16], "extended": 8, "extends": [6, 8, 16], "extensibl": 15, "extension": [12, 15], "extensions": 12, "extensively": [3, 6], "extens\u00e3": 6, "extern": 2, "external": [6, 13], "externally": 4, "extra": [5, 6, 12, 13], "extra_fields": 5, "extract": [6, 12], "extracted": 6, "extracts": 16, "extras": 6, "extra\u00edd": 6, "extrem": 6, "f": [6, 13, 14, 15, 16], "fa": 14, "facebook": [0, 5], "facil": [4, 5, 6], "facilitat": 4, "fact": [4, 5, 15], "factori": [5, 10], "fail": [6, 8, 12, 13, 16], "failed": [6, 13], "fails": [3, 12], "failur": [6, 12, 16], "fak": 6, "fake_migrate_all": 6, "falh": 4, "fall": 12, "fals": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "falt": 6, "famous": [1, 6], "fancy": 16, "far": [14, 16], "fas": 6, "fast": [0, 4, 6, 8, 15, 16], "fat": 6, "fath": 6, "father_id": 6, "favorite_color": 5, "faz": [2, 5, 8, 10, 12, 13], "fb00": 12, "fdb": 6, "fe80": 12, "feasibl": [2, 12], "featur": [0, 4, 6, 7, 8, 15, 17], "february": 5, "fech": [6, 8, 10], "fechament": 10, "feit": 6, "fetch": [6, 15, 16], "fetchon": 6, "few": [8, 13, 16], "fez": [2, 6], "ff00": 12, "fic": 6, "ficheir": 6, "fict\u00edc": 6, "fict\u00edci": 6, "fid": 6, "field": [2, 4, 5, 7, 13, 14, 15, 16, 17], "field1": 6, "field2": 6, "field3": 6, "field_id": 14, "fieldnam": [6, 16], "fields": [5, 7, 12, 13, 14, 15, 17], "fieldstorag": 12, "fifth": 14, "fil": [0, 1, 2, 3, 5, 6, 8, 10, 11, 13, 14, 16, 17], "file_content": [6, 16], "file_nam": [6, 16], "file_path": 15, "fileir": 6, "filenam": [2, 4, 5, 6, 12], "filep": 4, "filepaths": 4, "filesyst": [4, 5, 6], "fileuploadwidget": 12, "fill": [12, 16], "filled": 12, "filt": [2, 4, 7, 12, 14], "filter_in": 12, "filter_out": 14, "filtered": 13, "filters": [4, 12], "filtr": [13, 14], "filtrag": [4, 14], "fim": [1, 2, 5, 6], "fin": [2, 13, 14], "final": [1, 2, 5, 6, 11, 13], "finally": [4, 14], "find": [1, 2, 4, 12, 13, 14], "find_by_tag": 13, "find_match": 11, "findall": 12, "finding": 14, "finds": [6, 16], "fins": 6, "firebird": 6, "firebird_embedded": 6, "firebirdadapt": 6, "firebirdembedded": 6, "firebirdembeddedadapt": 6, "firefox": [3, 16], "firfox": 16, "first": [0, 2, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16], "first_nam": [4, 5, 13, 14], "first_only": 10, "first_row": 6, "first_row_dict": 6, "fist": 12, "fits": 12, "fix": [5, 6], "fixed": [6, 15], "fixtur": [0, 2, 6, 10, 13, 15, 17], "fixur": 17, "fiz": 1, "fk_field": 16, "fk_tabl": 16, "fkdaog": 8, "flag": 12, "flash": [8, 12, 16, 17], "flask": [0, 15], "flexibil": [0, 14], "flexibility": 16, "flexibl": [6, 13], "flex\u00edv": 0, "flex\u00edvel": 6, "flight": 7, "float": [4, 12], "floating": 12, "flow": 13, "flux": 6, "fn": 2, "focus": 16, "fold": [1, 2, 3, 4, 5, 6, 7, 11, 12, 14, 15], "folders": 2, "follow": [2, 4, 7, 14, 15], "followed": [2, 5, 12], "following": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "follows": [5, 6, 12], "font": [6, 8, 12, 14], "foo": 14, "foot": 8, "footers": 8, "footing": 13, "forbid": 12, "forbidden": 12, "forc": [2, 5, 6, 7, 12, 13], "forcing": 12, "foreground": 12, "foreign": 14, "foreign_key_checks": 6, "forgery": 5, "forget": 14, "form": [0, 4, 5, 6, 7, 11, 13, 14, 17], "form_basic": 12, "form_custom_widgets": 12, "form_exampl": 12, "form_minimal": 12, "form_nam": 12, "form_widgets": 12, "format": [4, 5, 7, 10, 11, 13, 14], "formats": 12, "formatt": 16, "forma\u00e7\u00e3": 6, "formdat": 7, "forms": [6, 10, 14, 15, 16], "formstyl": [12, 14, 16], "formstylebootstrap4": 12, "formstylebulm": [12, 14, 16], "formstyledefault": [12, 14], "formstylefactory": 16, "formul\u00e1ri": [6, 13, 14, 17], "fornec": [0, 2, 3, 4, 5, 6, 10, 13, 14], "forum": 3, "foruml\u00e1ri": [6, 10, 17], "forward": 1, "found": [2, 5, 6, 12], "four": [2, 6], "fourth": 12, "fp": 5, "fr": 11, "fracass": 6, "framework": [0, 2, 12, 13, 14, 15, 16], "frameworks": [0, 2, 5, 6, 15, 16], "fras": 6, "fre": [1, 5, 13], "freetext": 16, "frent": 8, "frequently": 12, "frequ\u00eanc": 1, "friendly": [0, 5, 8], "from": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "from_addr": 16, "from_address": 13, "from_adds": 16, "from_email": 16, "front": [4, 12, 16], "frontends": 16, "fronts": 0, "fsstorag": 5, "ftps": 12, "fug": [6, 8], "full": [2, 4, 6, 8, 12, 16], "fullnam": 6, "fully": [4, 5, 6, 12], "func": [2, 5], "funcion": [6, 17], "funcional": [0, 5, 6], "function": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "functional": 16, "functionaliti": 2, "functionality": [0, 8, 15], "functions": [2, 5, 10, 16], "functools": 16, "fund": 4, "fun\u00e7\u00e3": [4, 6, 8, 10], "fun\u00e7\u00f5": [4, 8], "futur": [5, 15, 16], "f\u00e1bric": 6, "f\u00e1cil": [0, 6, 8, 10, 13], "f\u00edsic": 13, "g": [1, 2, 6, 10, 12], "gain": 2, "gananc": 4, "garant": [6, 8], "garraf": 4, "gavgavian": 1, "gend": 6, "general": [5, 6, 12, 13], "generaliz": 6, "generally": [2, 5, 6, 8], "generat": [2, 6, 8, 10, 12, 13, 14, 15, 16], "generate_time_based_cod": 13, "generated": [1, 5, 6, 8, 12, 13, 14, 16], "generation": 1, "generator": 10, "generic": [2, 4, 5, 6, 12], "generically": 6, "genindex": 17, "gen\u00e9r": 6, "ger": [6, 8, 10, 13, 14], "gerador": 6, "geral": [0, 2, 6, 7, 10], "german": 11, "gest\u00e3": [0, 1], "get": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17], "get_cooki": 16, "get_us": [4, 5, 13, 15], "get_vars": [7, 15], "gets": [8, 13], "getvalu": 6, "gevent": [1, 2], "geventwebsocketserv": 2, "geventws": 2, "gia": 5, "gib": 6, "gif": 12, "git": [1, 2], "github": [2, 3, 4, 5, 6, 14], "gitlat": 1, "giv": [4, 5, 6, 8, 13], "given": [2, 5, 6, 8, 12, 16], "giving": 5, "global": [0, 6, 15, 16], "globally": [2, 6], "globals": [5, 6, 8, 13, 15], "go": [2, 4, 14], "goes": [6, 12], "going": [4, 16], "good": [3, 12], "googl": [0, 3, 5, 8, 12, 14], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gost": 6, "got": 6, "gotch": 6, "gott": 8, "grac": 6, "grad": 0, "grand": 6, "granul": 6, "granulary": 12, "graphically": 6, "graphql": 7, "grau": 6, "grav": 6, "grava\u00e7\u00f5": 12, "gravidad": 6, "grav\u00e1vel": 6, "great": 16, "green": [4, 6, 12, 15], "grelh": 14, "grid": [0, 4, 17], "grid_class_styl": 14, "grid_tutorial": 14, "gridactionbutton": 14, "gridclassstyl": 14, "gridclassstylebulm": 14, "grids": 17, "group": [1, 3, 5, 13, 15], "group_nam": 13, "groupby": 12, "grouping": 2, "groups": [0, 1, 3, 5, 13, 15], "growing": [0, 16], "grup": [6, 13], "gt": [7, 10], "guarant": 5, "guaranteed": [6, 15, 16], "gui": 3, "guid": 2, "guidelin": 13, "gunicorn": 2, "gunicorngevent": 2, "gz": 12, "h": [2, 12], "h1": [4, 8], "h2": [8, 12], "habilit": 6, "had": 6, "hamburg": 8, "hand": [2, 16], "handl": [2, 4, 5, 6, 15, 16], "handled": [4, 5, 12, 16], "handlers": 4, "handling": [4, 14], "handy": 6, "hanging": 1, "happen": 5, "happens": 6, "hard": 15, "hardcod": 5, "harmoniz": 4, "has": [0, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "has_membership": 13, "hash": [2, 6, 12], "hashed": 12, "hav": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "head": [4, 5, 6, 8, 14, 16], "headers": [4, 8, 16], "heading": 12, "headings": [10, 14], "height": [12, 14, 16], "hell": [4, 5, 6, 8, 10, 12, 13, 16], "help": [1, 2, 5, 6, 7, 8, 10, 12, 14, 15], "helpers": [4, 6, 8, 12, 14, 15, 16, 17], "helps": [6, 8, 12], "henc": [0, 2, 5, 6, 12, 13], "her": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "herd": 6, "her\u00f3": 7, "hesitat": 6, "hex": 12, "hh": 12, "hi": 16, "hid": 14, "hidden": [12, 16], "hidden_div": 16, "hidden_input": 16, "hierarchical": [6, 13], "high": [12, 13], "highest": 12, "highlighting": [1, 8], "highly": [1, 4, 14], "hints": 14, "his": 12, "historical": 0, "history": 12, "hist\u00f3r": [5, 6], "hmac": 12, "ho": 5, "hold": 16, "holds": 6, "hom": 8, "hom\u00f3log": 4, "hor": 6, "hosped": 1, "host": [2, 4, 5, 12, 13], "hosted": 1, "hour": 12, "hous": 15, "housekeeping": 6, "houv": 6, "how": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "howev": [6, 8, 12, 13, 16], "href": [8, 10, 13, 14], "hs256": 5, "html": [1, 2, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16], "html5": 8, "htmx": [14, 17], "htmx_form": 16, "htmx_form_dem": 16, "htmx_grid": 16, "htmx_list": 16, "htmxautocompletewidget": 16, "http": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15], "https": [1, 3, 4, 5, 7, 8, 12, 13, 14, 16], "httrespons": 5, "hulk": 12, "hundreds": 16, "hx": 16, "hypertext": 16, "hyphen": 10, "h\u00e1bit": 2, "h\u00edfens": 10, "i": [2, 4, 5, 6, 7, 8, 12, 13, 16], "i18n": [5, 11], "ibm_db_dbi": 6, "icon": [8, 14], "icons": 14, "id": [2, 7, 8, 10, 12, 13, 14, 15, 16], "id1": 6, "id2": 6, "id_field_nam": 14, "id_valu": 14, "ide": [0, 1, 2, 3, 6], "ident": 7, "identical": 15, "identifi": 6, "identific": [6, 10], "identify": 4, "identifying": [5, 12], "identity": [6, 7, 15], "ides": 15, "idiom": 11, "idn": 12, "ids": [6, 14], "ie": 12, "ietf": 12, "if": [0, 1, 2, 3, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "ifram": 12, "ignor": [5, 6, 8, 12, 14], "ignore_attribute_plugin": 14, "ignore_common_filters": [6, 12], "ignore_field_cas": 6, "ignored": [4, 8, 10, 14, 16], "igual": [6, 7], "iip": 6, "illustrat": 6, "ilustr": [6, 8], "imag": [6, 8, 10, 12], "image_fil": 6, "imagin": [5, 6, 8, 16], "imaging": 12, "imap": 6, "imapadapt": 6, "imaplib": 6, "imediat": 14, "img": [4, 12], "immediat": 2, "immediately": 6, "immensely": 0, "imped": [6, 10], "impersonat": 13, "impersonating": 13, "implement": [5, 6, 8, 13], "implementation": [4, 8, 12, 15], "implementations": 16, "implemented": 6, "implements": [5, 6], "impli": 7, "implications": 5, "implicit": 6, "implicitly": [6, 12], "impl\u00edcit": 6, "impor": 6, "import": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "import_and_sync": 6, "import_from_csv_fil": 6, "important": [0, 2, 4, 5, 6, 12, 13], "imported": [2, 12, 13, 15], "importing": 6, "impos": 8, "impot": 12, "imprim": 6, "improved": 12, "improvement": 14, "improving": [12, 13], "in": [0, 1, 2, 3, 4, 6, 7, 11, 12, 13, 14, 15, 17], "inalter": 6, "inclu": [0, 4, 6, 8, 10, 14], "includ": [4, 6, 7, 10, 14, 16], "include_action_button_text": 14, "include_paths": 4, "included": [6, 8, 12, 14], "including": [5, 12, 14, 15, 16], "inclusion": 0, "inclusiv": [0, 12], "inclus\u00e3": 10, "inclu\u00edd": [6, 10], "incoming": 2, "incomum": 6, "incorpor": 6, "incorret": 8, "increased": 5, "increment": 6, "indeed": [0, 5], "indent": 8, "indentation": 8, "indented": 8, "independent": [0, 5, 6, 13], "indesej": [2, 6], "index": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "indic": [4, 6], "indicat": [12, 13, 15], "indicator": 16, "individu": [0, 2, 5, 6], "individual": [5, 6, 7, 8, 12], "indo": 6, "inefficient": 5, "ineficient": 6, "infinit": 6, "info": [2, 4, 5, 13], "inform": [1, 4, 5, 6, 12], "information": [5, 6, 7, 12, 13, 15, 17], "informed": 6, "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingredient": 4, "ingres": 6, "ingresadapt": 6, "ingresdb": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "inic": [2, 4], "inicializ": [4, 5], "init": [4, 14], "initial": [8, 12], "initializ": 2, "initialized": 0, "inject": [12, 14, 17], "injected": [5, 8, 10, 12], "injecting": 10, "injection": 6, "injections": 10, "inje\u00e7\u00e3": 6, "inlin": 16, "inner": [5, 16], "input": [2, 5, 6, 8, 12, 13, 14, 16], "inputs": [12, 16], "insegur": 10, "insensitiv": 12, "inser": [3, 8], "insert": [5, 7, 8, 12, 13, 14, 16], "inserted": 8, "inserting": 12, "inserts": 12, "inser\u00e7\u00f5": 6, "insid": [1, 2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "insir": 6, "insist": 10, "inspector": 8, "inspired": 7, "instal": [3, 6, 13, 17], "install": [2, 6, 13, 16], "installation": [2, 6], "installations": 17, "installed": [0, 1, 2, 3, 4, 5, 6], "installs": 2, "instanc": [4, 5, 6, 10, 12, 13, 14, 16], "instanci": 6, "instantiat": [6, 13, 15], "instantiated": 6, "instantiation": [13, 14], "instead": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "instructions": [2, 12], "instru\u00e7\u00e3": 6, "instru\u00e7\u00f5": 6, "inst\u00e2nc": [6, 14], "int": [4, 6, 12, 13, 15], "int2ip": 6, "integ": [2, 6, 7, 10, 12, 16], "integers": 12, "integr": 0, "integrated": 1, "integration": 16, "integrity": [8, 16], "inteir": [4, 6], "intended": [6, 16], "intentionally": 12, "interaction": 5, "interag": 0, "interchangeably": 13, "interfac": [0, 3, 5, 6, 14, 15, 16], "interior": 8, "intermedi\u00e1r": 6, "intern": [5, 6], "internacionaliz": [0, 4, 17], "internal": [0, 1, 8, 13], "internally": [4, 5, 6, 14], "internationaliz": 12, "internationalization": [5, 12, 15], "internationalized": 12, "interpret": [0, 6], "interpreted": 10, "interpreting": 7, "interromp": 6, "intersec\u00e7\u00e3": 6, "into": [0, 2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "introdu": 2, "introduc": 0, "introduction": [1, 17], "introduz": 8, "intuitively": 12, "invalid": [2, 6, 12, 13], "invalidated": 5, "invalidating": 12, "invers": 6, "invert": [6, 12], "invisibl": 6, "involv": [6, 14, 15], "involved": [6, 8], "inv\u00e9s": 6, "in\u00edci": 6, "in\u00fatil": 6, "io": [2, 6], "ip": [2, 6, 12], "ip2int": 6, "ip_list": 13, "ipaddr": 6, "ipaddress": 13, "iptabl": 2, "ipv4": [6, 12], "ipv4address": 13, "ipv4network": 13, "ipv6": 12, "irem": [4, 5], "ir\u00e1": [2, 3, 4, 6, 8, 13, 14], "is": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "is_6to4": 12, "is_activ": 6, "is_automatic": 12, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_impersonating": 13, "is_in_db": [6, 14], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_local": 12, "is_localhost": 12, "is_multicast": 12, "is_not_empty": 6, "is_null_or": 14, "is_privat": 12, "is_public": 6, "is_reserved": 12, "is_routeabl": 12, "is_tered": 12, "is_tim": 6, "isdir": [7, 14], "isn": [12, 14], "iso": 7, "isolation": 16, "issu": [0, 4, 6], "it": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "italian": [5, 11], "item": [6, 8, 10], "itemize1": 8, "itemize2": 8, "items": [6, 7, 8, 12], "itens": 6, "iter": 8, "iterabl": [6, 12], "iterations": 12, "iterators": 6, "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "itself": [2, 6, 12, 16], "it\u00e1l": 10, "iv": 6, "janel": 2, "javascript": [1, 4, 7, 10, 16], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlit": 6, "jdbcsqliteadapt": 6, "jetbrains": 1, "jim": [0, 1, 14], "jinja2": 5, "job": [7, 12, 14], "jog": [6, 11], "john": [0, 6], "join": [4, 5, 7, 12, 14, 15], "joined": 14, "joins": [14, 17], "jonathan": 6, "jorn": 1, "journalist": [7, 14], "jpeg": 12, "jpg": 12, "jpsteil": 14, "jquery": [10, 12, 16], "js": [0, 4, 5, 8, 11, 15, 17], "jsl": 16, "json": [0, 1, 2, 4, 5, 6, 7, 11, 12, 15, 16], "junt": [10, 14], "jun\u00e7\u00e3": [6, 13], "jun\u00e7\u00f5": 6, "just": [1, 2, 4, 5, 6, 7, 8, 12, 14, 16], "jwt": 5, "jython": 6, "k": [5, 8, 15], "kargs": 10, "kbd": 2, "kbytes": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 10, 12, 15], "keep_valu": 12, "keeps": [5, 14], "kell": 0, "ken": 6, "kent": [7, 14], "kevin": 0, "key": [2, 4, 5, 6, 7, 10, 12, 13, 16, 17], "keycod": 16, "keyed": 6, "keys": [6, 7], "keyup": 16, "keyword": [6, 8, 10], "keywords": 6, "kfield": 16, "killed": 16, "kind": [4, 13], "kindness": 0, "kinds": 4, "kinterbasdb": 6, "know": [5, 14], "known": [6, 8], "known_expressions": 11, "knows": [4, 5], "ktabl": 16, "kwargs": [6, 16], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 12], "la": [4, 6], "label": [6, 7, 8, 12, 16], "labeling": 15, "labels": 12, "lac": 6, "lacking": 12, "lacks": 15, "lad": [1, 5, 6], "lambd": [5, 6, 10, 12, 14, 16], "lang": 5, "languag": [1, 4, 5, 8, 11, 15, 16], "larg": [0, 12], "last": [1, 5, 8, 12, 13, 14, 16], "last_insert_id": 6, "last_nam": [5, 13, 14], "last_row": 6, "lastdot": 12, "lastrowid": 6, "lat": [1, 2, 4, 5, 6, 8, 10, 12, 14], "latest": [2, 6, 15], "latin1": 6, "latt": [6, 12, 15], "launch": [1, 2], "lax": 5, "lay": [5, 15, 17], "layers": 5, "layout": [12, 13, 14, 15, 16, 17], "layouts": [8, 14], "lazily": 16, "lazy": [2, 4, 6], "lazy_tabl": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 13, "ldap_setting": 13, "ldap_settings": 13, "ldapplugin": 13, "lead": [14, 16], "leads": 5, "learn": [1, 6], "least": [1, 2, 12, 15, 16], "leav": [5, 6], "left": [8, 12, 14, 16], "legacy": 6, "leg\u00edvel": 6, "leitur": 6, "lembr": [3, 6, 8, 12], "len": [12, 16], "length": [6, 12], "ler": [1, 6], "less": [7, 12, 15, 16], "let": [7, 12, 16], "lets": 2, "letters": 12, "letting": 6, "lev": [6, 10], "levant": 6, "level": [2, 4, 6, 7, 12, 13], "leverag": 0, "li": [8, 12, 13, 16], "lib": 2, "libldap2": 13, "librari": 13, "library": [2, 6, 11, 12, 15, 16], "libs": [8, 10, 14], "libsasl2": 13, "libsass": 4, "licens": 1, "lid": [1, 4, 5, 6, 14], "lif": 16, "lifespan": 12, "lifetim": 5, "lig": [2, 5, 6, 10], "liga\u00e7\u00e3": [4, 5, 6], "liga\u00e7\u00f5": [6, 10], "light": [6, 15], "lik": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "limit": [5, 6, 7, 12, 13], "limitation": 8, "limited": [0, 2, 5, 15, 16], "limiting": 16, "limits": 12, "limp": 1, "lin": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "linguag": [0, 4, 5, 17], "linguagens": 4, "linh": [5, 6, 8, 10, 14, 17], "link": [4, 7, 8, 10, 12, 13, 14], "linked": 7, "links": [2, 6, 14, 16], "linting": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "list_of_fields": 6, "listabl": 6, "listagens": 10, "listed": [5, 12, 16], "listen": [2, 4], "listening": [2, 3], "listproperty": 6, "lists": [6, 14], "liststringproperty": 6, "listwidget": 12, "littl": [1, 5, 6], "liv": [6, 16], "livr": [1, 6], "lix": 6, "ll": [1, 2, 3, 5, 6, 8, 12, 14, 16], "lo": [1, 2, 3, 4, 6, 7, 8, 10], "load": [3, 5, 16], "loaded": [4, 8, 14, 16], "loading": 16, "loads": [6, 16], "loazkjy": 8, "loc": 5, "local": [3, 5, 8, 12, 13, 14], "localhost": [2, 4, 5, 6, 12], "localiz": 4, "locally": 2, "locals": [5, 12, 14, 15], "locat": 15, "location": [2, 4, 6, 8, 15], "locked": 6, "locking": 5, "locks": 16, "log": [0, 2, 4, 5, 6, 8, 10, 13, 15, 16], "logerrors": 5, "logfil": 6, "logged": [5, 8, 13, 15], "logging": [2, 13], "logging_level": 2, "logic": [2, 5, 6, 13, 14, 15, 16], "logical": 12, "login": [0, 2, 3, 4, 5, 6, 8, 12, 13, 15], "logout": [0, 8, 13], "logs": [2, 5, 6], "loj": 6, "long": [0, 2, 6, 12, 16], "longhash_tablenam": 6, "longtext": 6, "look": [4, 5, 6, 7, 12, 13], "looking": 3, "looks": [2, 6, 12], "lookup": [5, 7], "lookups": 12, "loop": [6, 8, 16], "looping": 6, "loops": 16, "los": [2, 4, 6, 12], "lost": [5, 15], "lot": [4, 6], "lots": 1, "loved": 0, "low": [0, 12], "lowercas": 12, "lowest": 12, "lru": 5, "lt": 10, "lts": 2, "luc": [0, 1], "lug": [1, 5, 6], "lumin\u00e1r": 4, "l\u00e1": [2, 4], "l\u00edngu": 1, "m": [0, 2, 6, 10, 12], "mac": [2, 6], "macac": 5, "machin": 2, "macneiln": 2, "mad": [8, 12, 14], "magically": 0, "mai": 5, "mail": [2, 3, 5, 12, 13, 16], "mailing": 6, "mailt": 12, "main": [1, 2, 3, 4, 6, 8, 14, 15, 16], "maintain": [6, 8, 16], "maintainability": 6, "maintainabl": 14, "maintenanc": 16, "maior": [6, 7], "mai\u00fascul": 6, "major": 6, "mak": [0, 1, 2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "makefil": 2, "making": [6, 8], "man": 16, "manag": [2, 3, 4, 5, 6, 13, 14, 16], "managed": 0, "management": 12, "managing": 6, "mandatory": [5, 8], "maneir": [6, 14], "manipul": 6, "manipulat": 12, "manipulated": 12, "manipulation": 4, "mann": [5, 15], "manual": [2, 3, 4, 6], "manually": [2, 4, 6, 10, 13, 14], "many": [0, 1, 2, 4, 5, 7, 8, 12, 14, 15, 16], "map": [4, 6, 10, 11], "map_non": 6, "mapped": 17, "mapping": [2, 4, 6, 12, 15], "maps": [6, 10], "marc": [1, 6, 10, 13], "marca\u00e7\u00e3": [10, 13], "margin": [8, 16], "marked": 6, "massim": [0, 6], "mast": [1, 2, 14], "match": [2, 5, 6, 8, 10, 11, 12, 16], "matched": [4, 7, 10, 12], "matching": [7, 10, 12], "matem\u00e1t": 6, "material": 6, "math": 16, "matriz": 10, "matters": 15, "max": [11, 12, 16], "max_concurrent_runs": 16, "maximum": [5, 12], "maxip": 12, "maxlen": 12, "maxsiz": 12, "may": [2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "md": 1, "md5": 12, "mean": 15, "meaning": [6, 12, 13], "meanings": 12, "means": [1, 2, 3, 5, 6, 8, 12, 13, 15], "mecan": [6, 8], "mechanism": [0, 4, 5, 6, 8, 10, 13, 15, 16], "med": 1, "mediant": 8, "mei": 6, "melhor": [0, 1, 6, 11, 14, 17], "memb": [12, 13], "membership": [0, 5, 12, 13, 15], "memberships": 5, "membr": 13, "memcach": [0, 6], "memoiz": 17, "memory": [5, 6], "men": [1, 2, 5, 6], "menor": 6, "mensag": 14, "mensagens": [5, 6], "ment": 1, "mention": 5, "mentioned": [13, 16], "menu": [8, 12, 13], "menus": [8, 12], "mes": [6, 10], "mescl": 6, "mesm": [0, 1, 2, 4, 5, 8, 10, 11, 14], "messag": [2, 4, 5, 7, 8, 12, 14, 15, 17], "messed": 1, "mestr": 6, "met": [6, 8, 10], "metad": 6, "metadat": 6, "metatag": 10, "method": [4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "methods": [5, 7, 10, 12, 13, 14, 17], "mfa": 13, "micah": 0, "microsoft": [1, 13], "mid": 6, "middlewar": 5, "might": [4, 7, 12], "migr": 6, "migrate_enabled": 6, "migrated": 6, "migrating": [6, 15], "migration": 6, "migrations": 6, "migra\u00e7\u00f5": 17, "min": [8, 12, 14], "min_length": 12, "mind": [4, 6, 7, 8, 12], "mindful": 6, "minimal": [4, 5, 14, 17], "minimalist": [8, 15], "minimalist_pag": 8, "minimum": 12, "minip": 12, "minor": [8, 12, 15], "minsiz": 12, "minut": 12, "min\u00fascul": 6, "missing": [2, 13, 14], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 14], "mm": 12, "mobili\u00e1ri": 5, "mod": [2, 4, 5, 6, 12, 13], "model": [0, 3, 7, 10, 12, 15, 16], "models": [4, 6, 7, 14, 15], "modern": [6, 13, 16], "modifi": 14, "modific": [2, 4], "modification": 12, "modifications": 2, "modified": [4, 12, 15], "modified_by": 6, "modified_on": 6, "modifiers": 7, "modify": [12, 14, 16], "modifying": [2, 6, 8], "modindex": 17, "modul": [0, 1, 2, 4, 6, 8, 10, 12, 13, 14, 15], "moment": [2, 6], "mong": 6, "mongodb": 6, "mongodbadapt": 6, "monoespac": 10, "monolithic": 0, "mont": 13, "month": 12, "mor": [0, 2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "moreov": 16, "most": [0, 4, 5, 6, 12, 13, 14, 15, 16], "mostr": [1, 4, 6, 14], "moth": 6, "mother_id": 6, "motor": 6, "mov": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 5, 6, 8, 12, 14, 15, 16], "mud": [4, 5, 6], "mudanc": 6, "muit": [0, 1, 4, 5], "mult": [1, 2, 6, 15], "multicast": 12, "multipl": [1, 2, 4, 6, 8, 10, 12, 15, 16, 17], "multiprocess": 5, "multiselect": 12, "multius": 13, "must": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 15, 16], "my": [5, 8, 10, 12, 13, 16], "my_app": 4, "my_id": 16, "my_password_fil": 2, "my_task": 16, "my_url_path": 15, "my_var": [5, 10], "myapp": [2, 4], "myclass": 10, "mycomponent": 16, "mycustomwidget": 12, "mydb": 6, "myerrors": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunction": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myord": 6, "myquery": 6, "myrecord": 6, "mysaltvalu": 12, "mysendgridsend": 16, "myset": 6, "mysideb": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyle": 12, "mytabl": 6, "myvalu": 6, "myvirtualfields": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "m\u00e1quin": [6, 10], "m\u00e1x": 6, "m\u00e1xim": 6, "m\u00e9d": 6, "m\u00e9di": 13, "m\u00e9tod": [4, 5, 6, 8, 14], "m\u00ednim": [5, 6], "m\u00f3dul": [0, 2, 5, 6], "m\u00faltipl": [0, 6], "n": [5, 6, 11, 16], "nad": [2, 4, 6], "nam": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "named": 10, "nameonly": 6, "naming": 6, "nasc": 6, "natal": 6, "nativ": 6, "native_json": 12, "nav": 8, "navb": [8, 13], "naveg": 14, "navigat": 16, "navigation": [8, 16], "ndb": 6, "ne6fz": 8, "necess": [1, 2, 4, 6, 8], "necessary": [6, 8, 10], "necessit": 6, "necess\u00e1r": [1, 6], "necess\u00e1ri": [2, 4, 6], "need": [0, 1, 2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "needed": [2, 4, 5, 6, 10, 12, 13, 16], "needs": [0, 4, 5, 6, 13, 15, 16], "neg": 6, "negated": 6, "negativ": [6, 12], "nega\u00e7\u00e3": 6, "neith": 12, "nel": 6, "nenhum": [6, 13], "ness": 6, "nest": [1, 6, 8, 10], "nested": [6, 8], "nested_select": 6, "network": [12, 13], "networks": [6, 12, 13], "nev": [6, 8, 12, 15, 16], "new": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "new_app": [8, 10], "new_password": 16, "new_sidec": 16, "newlin": [6, 12], "newly": 6, "next": [1, 5, 6, 8, 12, 16], "nginx": [2, 4], "nic": [0, 16], "nicozanf": 2, "nid": 6, "niss": 6, "no_backslash_escap": 6, "no_tabl": [12, 16], "nod": [4, 16], "nom": [2, 4, 5, 7, 10, 12, 13, 14], "nomeaplic": 13, "non": [2, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "nor": [2, 12], "norm": 6, "normal": [4, 5, 6, 8, 12, 14, 16], "normaliz": 6, "normalized": 6, "normally": [2, 6, 8, 10, 12, 14], "northwind": 1, "nosqladapt": 6, "noss": [1, 4, 5, 6], "not": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "not_authorized": 13, "notation": 10, "nota\u00e7\u00e3": [6, 10], "noted": 8, "nothing": [2, 5, 6, 12, 16], "notic": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "notnull": 6, "notset": 2, "nov": [0, 1, 2, 3, 4, 14], "novaaplicaca": 4, "now": [0, 4, 5, 6, 12, 14, 16], "nowadays": 1, "nul": 6, "null": [6, 7, 12, 16], "numb": [2, 5, 6, 8, 12, 13, 16], "number_workers": 2, "numbers": 12, "numerical": 12, "num\u00e9r": 6, "nunc": [5, 6], "n\u00e3": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "n\u00edvel": [6, 11], "n\u00famer": [4, 6, 11, 14], "oauth": 13, "oauth2": [0, 5], "oauth2discord": 13, "oauth2facebook": 13, "oauth2googl": 13, "obj": [6, 8], "object": [0, 4, 5, 6, 7, 8, 10, 12, 13, 15, 17], "objects": [0, 4, 5, 6, 10, 12, 14, 15, 16], "objet": [0, 5, 6, 8, 10, 11], "obras": 6, "obrigat\u00f3ri": 6, "observ": [4, 6, 8], "obsolet": 6, "obtain": [2, 13, 16], "obtained": 6, "obter": [4, 6], "obtid": [2, 6], "obvi": 6, "obvious": [7, 8, 13], "obviously": 12, "ocasional": 6, "occasionally": 12, "occur": [2, 12, 16], "occurring": 2, "occurs": 12, "ocorr": [4, 6, 8], "ocult": [6, 12], "odd": [6, 8], "of": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "off": [0, 2, 4, 14, 16], "official": [0, 12, 16], "offs": 6, "offset": [6, 7], "oficial": 6, "often": [4, 6, 13, 16], "ok": [10, 15], "old": [2, 5, 12, 15], "older": 12, "olhand": 6, "ol\u00e1": 8, "ombott": [0, 4, 15], "omit": 2, "omitted": 2, "on": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "on_delete_action": 6, "on_error": 5, "on_fals": 5, "on_request": [5, 13], "on_success": 5, "once": [1, 2, 5, 6, 12, 13, 16], "onclick": 16, "onde": [2, 6, 7, 8, 12], "ondelet": 6, "one": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 16], "ones": [2, 5, 7, 12, 15], "onion": 5, "onkeydown": 16, "onlin": [1, 6], "onload": 16, "only": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "onvalidation": 12, "opacity": 16, "opcion": [6, 10], "opcional": [4, 6, 10, 12], "open": [1, 2, 4, 5, 6, 10], "opening": 5, "oper": [0, 3, 11, 17], "operat": 12, "operation": [6, 13], "operationalerror": 12, "operations": [5, 6], "operator": [5, 6, 12], "oposi\u00e7\u00e3": 10, "opost": 6, "opposed": 5, "opposit": 5, "oprow": 6, "optimized": 6, "option": [2, 3, 5, 6, 12, 13, 16], "optional": [2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "optionally": [0, 2], "options": [2, 6, 7, 10, 13, 15, 16], "opt\u00e1m": 6, "op\u00e7\u00e3": [3, 4, 6, 8, 10], "op\u00e7\u00f5": [6, 17], "or": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "oracl": 6, "oracleadapt": 6, "ordem": 6, "order": [1, 2, 4, 5, 6, 7, 10, 12, 14, 15], "order_it": 6, "orderby": [12, 13, 14, 16], "ordered": 10, "ordereddict": 6, "org": [2, 4, 7, 10, 16], "organiz": 6, "organized": 4, "orig": [2, 11], "origin": 6, "original": [6, 8, 10, 12], "orm": 6, "other": [0, 1, 2, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16], "other_pag": [12, 16], "otherfield": 6, "others": [0, 6, 15], "othertabl": 6, "otherwis": [4, 5, 6, 8, 12, 13, 14], "otimiz": 6, "oufil": 6, "our": [0, 1, 2, 5, 6, 10, 12, 16], "out": [0, 1, 2, 5, 8, 12, 16], "outlined": [4, 5], "output": [1, 2, 5, 8, 12, 16], "output_styl": 4, "outr": [1, 2, 4, 5, 10, 11, 13, 14, 17], "outsid": [0, 5, 6, 12, 14, 15, 16], "ov": 6, "over": [8, 14, 16], "overkill": 13, "overrid": [4, 6, 8, 13, 14, 15, 16], "override_cl": 14, "override_styl": 14, "overriding": 16, "overview": 17, "overwritten": [5, 15], "own": [4, 5, 6, 8, 12, 13, 14, 15, 16], "owner": [6, 12], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "owners": 12, "ownership": 6, "owns": 6, "p": [2, 8, 12], "p10n": 11, "p11n": 5, "packag": [0, 6, 10], "padded": [5, 8, 15], "padding": 16, "padroniz": 6, "padr\u00e3": [0, 2, 4, 5, 8, 10, 14], "padr\u00f5": [4, 6, 10], "pag": [1, 3, 4, 5, 6, 10, 12, 13, 14, 15, 16, 17], "page_head": 8, "page_left_menu": 8, "page_scripts": 8, "pagin": [6, 14], "pai": 6, "painel": [0, 2, 3], "paint": [4, 12], "painting": 4, "pairs": 10, "palavr": [8, 10, 11], "pam": [0, 5], "pam_plugin": 13, "pamplugin": 13, "papel": 2, "par": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 16, 17], "paragraph": [5, 10, 12, 14], "paramet": [1, 2, 4, 5, 6, 13, 14, 16], "parameters": [2, 6], "params": 16, "parec": [5, 6], "parent": [2, 6, 8, 16], "park": [7, 14], "pars": [5, 6, 12, 13], "parsed": 6, "parsemodul": 4, "parsing": 4, "part": [4, 10, 15], "partial": [4, 6, 15], "particip": 6, "participat": 1, "particul": [0, 1, 6, 12, 14, 15, 16], "particular": 6, "particularly": 6, "parts": 12, "party": [0, 5], "par\u00e1graf": [1, 10], "par\u00e2metr": [5, 14], "par\u00eantes": 6, "pass": [4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "passed": [2, 4, 5, 6, 10, 12, 13, 14, 16], "passing": [5, 6, 10, 12], "passphras": 5, "password": [2, 6, 8, 12, 13, 15, 16], "password_fil": 2, "passwords": [12, 13], "passwordwidget": 12, "past": [2, 4], "path": [2, 4, 5, 6, 7, 11, 12, 14, 15, 16], "path_t": 2, "pattern": 7, "patterns": 7, "paus": 2, "pay": 4, "payment": 6, "payroll": 5, "pbkdf2": 12, "pc": 3, "pdf": [1, 12], "pdkdf2": 2, "pec": [5, 6], "ped": [2, 4, 5, 6, 14], "pedac": 8, "peg": 6, "pegadinh": 17, "pel": [1, 4, 5, 6, 8, 10, 11, 13], "pens": 6, "per": [5, 7, 14], "percentual": 6, "perd": [1, 2, 6], "perfect": 0, "perfectly": 14, "perfil": [0, 13], "perform": [5, 6, 12, 13], "performanc": [0, 5, 6, 15], "performed": 13, "performing": 6, "performs": 12, "pergunt": 6, "perhaps": 5, "period": 16, "periodic": 16, "permanec": 6, "permission": [5, 13], "permissions": [0, 5, 6, 13, 15], "permiss\u00e3": [5, 6, 13], "permit": [0, 3, 5, 6, 8, 10, 13, 14], "permitted_tags": 10, "persist": 5, "persistent": [6, 13], "person": [6, 7, 12, 14], "personag": 6, "personagens": [4, 6], "personal": 2, "personaliz": [0, 2, 17], "persons": 12, "persons_and_things": 6, "perspectiv": 0, "pertenc": 6, "pertencent": 6, "pesquis": [2, 3, 6, 14], "pesso": 6, "pet": [6, 7, 14], "philip": 6, "phon": [12, 16], "photograph": [7, 14], "physics": 13, "pick": [5, 13], "picked": 4, "picks": 5, "piec": [0, 12], "pierr": 0, "pip": [0, 1, 6], "pirsch": 0, "piscin": [4, 6], "piu": 5, "pixels": 12, "plac": [1, 5, 6, 8, 12, 14, 16], "placehold": [12, 16], "placeholders": 6, "placing": 14, "plain": 16, "plan": [1, 16], "plataform": 17, "platform": [0, 1], "play": 16, "playing": 0, "pleas": [5, 6], "plug": 5, "plugin": [5, 12, 13, 14, 16], "plugins": [12, 16], "plural": 11, "pluraliz": [0, 4, 5, 14, 16, 17], "pluralization": 15, "plus": [6, 8, 13, 14], "pm": 12, "png": [10, 12], "pod": [0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 13, 14], "point": [4, 5, 6, 12, 15, 16], "pointing": [2, 3, 8], "points": [6, 7, 12, 14], "polic": 17, "policy": 7, "pollut": 5, "pol\u00edt": 0, "pont": 6, "pool": 5, "pool_connection": 6, "pool_siz": [5, 6], "pooling": 6, "poor": 16, "pop": 16, "popul": [0, 6], "porqu": [2, 4, 5, 6, 8, 11], "port": [0, 2, 3, 5, 6, 15], "portability": 6, "portabl": 6, "portant": [2, 4, 5, 6, 10], "ports": 2, "por\u00e7\u00f5": 14, "posicion": 10, "position": 5, "positional": 10, "posi\u00e7\u00e3": [5, 10], "possibil": 6, "possibl": [4, 5, 6, 8, 12, 13, 14, 15, 16], "possibly": 6, "poss\u00edv": 6, "poss\u00edvel": [4, 6], "post": [4, 6, 7, 10, 12, 13, 14, 15, 16], "post_action_buttons": 14, "post_text": 6, "post_vars": [7, 15], "post_writabl": 7, "posted": 7, "postel": 11, "posterior": 5, "postfix": 15, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyc": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserved": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocessing": 15, "posts": 6, "potentially": 2, "pouc": [5, 6], "pow": [2, 6, 16], "powerful": [7, 13, 15], "powers": 7, "pprint": 6, "pr": 1, "practic": [8, 12], "practical": [6, 12, 15, 17], "pre": [2, 4, 5, 14], "pre_action_buttons": 14, "precau\u00e7\u00e3": 2, "preced": [5, 6, 8], "preceded": [6, 12], "precedent": 6, "preceding": 7, "precious": 14, "precis": [1, 2, 4, 5, 6, 14], "predefin": 8, "predefined": [12, 16], "predetermined": 15, "preench": 6, "preenchiment": 6, "pref": [2, 16], "prefer": 10, "preferenc": 5, "preferred": [5, 6], "prefix": [2, 4, 6, 7, 8, 12, 15], "preguic": 15, "prelimin": 1, "preocup": 6, "prepend": [12, 16], "prepend_schem": 12, "prepended": [12, 15], "prepending": 12, "prepends": 4, "preprocessing": 15, "prerequisit": [2, 5], "presenc": [5, 6], "present": [2, 6, 8, 12, 13], "preserv": [0, 5], "preserved": 5, "press": [4, 14], "pression": 3, "prest": 10, "pretend": 6, "pretty": [6, 15], "prevent": [6, 10, 12, 16], "prevented": 6, "preventing": 5, "prevents": [2, 5, 16], "previ": [6, 12], "previous": [5, 8, 10, 12, 16], "previously": [5, 6, 12], "prim": [5, 12], "primarily": 14, "primary": [6, 8, 13], "primeir": [6, 8, 13, 17], "princip": 0, "principal": [1, 5, 6, 17], "princ\u00edpi": [6, 17], "print": [4, 6, 10, 11, 13, 14, 15, 16], "printed": 4, "privat": [5, 12], "probability": 12, "probl": [0, 6, 8, 14], "problem": [1, 6], "problems": [6, 13, 16], "proc": [13, 16], "proced": 17, "procedur": 2, "process": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "processed": [5, 6, 8, 12], "processing": [5, 6, 8, 12, 16], "procur": [1, 6], "produc": [6, 10, 12, 13], "product": [6, 16], "product_record": 16, "production": [2, 4], "products": 6, "produz": [2, 5, 6, 8, 10], "produ\u00e7\u00e3": 0, "professor": 13, "profil": [8, 13, 15], "progr": [1, 2, 3, 10], "program": [1, 3, 6, 8], "programmatically": 10, "programming": [1, 6, 8, 16], "programs": [1, 2, 12], "project": [0, 2, 4, 5, 6], "project_nam": 2, "projet": [0, 2], "prompt": [2, 4, 6], "pront": 6, "prop": [5, 6, 14], "properly": 4, "properti": [6, 12], "propriedad": 6, "propriet\u00e1r": 6, "propriet\u00e1ri": 6, "protocol": 3, "prototyp": 16, "provavel": [4, 5, 6], "proveit": 6, "provid": [0, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "provided": [5, 6, 8, 10, 12, 14], "providing": [0, 14, 15], "provoc": 6, "proxi": 4, "proxy": 4, "proxy_http_version": 4, "proxy_pass": 4, "proxy_set_head": 4, "prudent": 6, "pr\u00e1tic": [0, 6, 7], "pr\u00e9": [10, 14, 17], "pr\u00f3pr": [13, 14], "pr\u00f3pri": [6, 14], "pr\u00f3xim": [2, 6], "pseud": 6, "psycopg2": 6, "public": [4, 6], "pud": 2, "pull": 1, "punycod": 12, "pur": 6, "purpos": [0, 6, 10, 12, 13, 15], "put": [5, 7, 12, 16], "put_writabl": 7, "putting": 4, "pux": 6, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16], "py4web": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14], "py4web_filesyst": 6, "py4web_wsg": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 12, 13, 14, 15, 16], "pyfilesyst": 6, "pyinstall": 2, "pymong": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytds": 6, "python": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16], "python2": [2, 15], "python3": [1, 2], "pyweb": 15, "p\u00e1gin": [8, 10, 14, 17], "p\u00f3s": 14, "p\u00fablic": 6, "q": [2, 5, 6, 14], "qua": [0, 6], "quadr": [0, 1, 6], "quaisqu": [6, 12], "qualified": 6, "qualqu": [1, 2, 4, 5, 6, 7, 8, 13], "quand": [1, 4, 6, 8, 14], "quant": 6, "quantity": 6, "quebr": 0, "qued": 14, "queir": 5, "quer": [2, 4, 5, 6, 10], "queri": [6, 7, 14, 15, 16], "queried": 7, "query": [4, 5, 7, 10, 12, 14, 15, 16], "query1": 6, "query2": 6, "queryselector": 16, "queryselectorall": 16, "querystring": 14, "questions": [1, 2], "quest\u00e3": 6, "quick": [1, 12], "quickly": [2, 12, 14], "quickstart": 16, "quiet": 2, "quirk": 5, "quis": [4, 6], "quit": [1, 2, 5, 7, 8, 12, 14], "quot": [2, 10], "quote_minimal": 6, "quote_nonnumeric": 6, "quotech": 6, "r": [2, 6, 12], "rac": 12, "radi": [10, 12], "radiowidget": 12, "radius": 16, "rais": [5, 12, 13, 15], "raised": 5, "ram": [5, 6], "randint": [8, 13], "random": [6, 8, 12, 13, 16], "rang": [4, 6, 8, 13, 15], "rapid": [0, 16], "rar": 6, "rarely": 6, "rath": [6, 8, 12, 16], "raw": 17, "raz\u00f5": 6, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "rea": 6, "reach": 2, "reached": 5, "react": 16, "reactivity": 16, "read": [1, 4, 5, 6, 7, 14, 16], "readability": 7, "readabl": [5, 6, 14, 15], "readm": [1, 12], "readonly": [2, 12, 16], "ready": 2, "reagrup": 0, "real": [2, 4, 7, 8, 12], "real_identity": [6, 7], "realiz": [3, 4, 6], "really": [1, 4], "realment": 6, "reaping": 16, "reason": [2, 5, 6, 13, 14, 15], "reasons": [2, 7], "rebuilt": 6, "rec_id": 7, "receb": [6, 8], "recent": [2, 3, 6, 12, 14], "recently": 5, "recereived": 16, "recip": 2, "reclam": 6, "recogniz": 4, "recognized": 6, "recolh": [7, 14], "recomec": 6, "recomend": 6, "recommend": [1, 5, 16], "recommended": [4, 6, 12], "reconstru": 6, "record": [7, 12, 13, 15, 16], "record_id": [7, 16], "recorded": 12, "records": [6, 7, 12, 13, 14, 16], "recorrent": 6, "recovered": 12, "recreat": 6, "recreated": 6, "recup": 6, "recuper": [4, 6], "recurs": [2, 8, 17], "recursively": 8, "recycl": 6, "rec\u00e9m": [4, 6, 11], "red": [0, 3, 4, 6, 8, 10, 12, 17], "redefin": 5, "redefini\u00e7\u00e3": 6, "redesign": 0, "redirecion": [4, 13, 14], "redirect": [4, 5, 12, 13, 14, 16], "redirected": [5, 16], "redirection": [5, 12, 15], "redirects": [5, 13], "reduc": [0, 5, 16], "reduced": 0, "redundant": 6, "reescrev": 6, "reescrit": 6, "ref": [3, 5, 6, 10, 12, 13, 17], "refer": [6, 7], "referenc": [1, 5, 6, 7, 8, 10, 12, 14, 16], "referenced": [6, 7], "referenced_by": 7, "referencing": 6, "referim": 6, "referred": [6, 7], "refers": 7, "reflected": 1, "reflet": 6, "reforc": 6, "refresh": 14, "regex": [7, 10, 12], "regexlib": 12, "regist": [0, 5, 6, 8, 13, 14, 15, 16], "register_plugin": 13, "register_task": 16, "register_vue_component": 16, "registered": [5, 13], "registers": 5, "registr": [3, 4, 12, 13, 14], "registration": [4, 12], "registration_stamp": 12, "regr": [4, 5], "regul": [0, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16], "reimplementation": 16, "reinic": 6, "reinstal": 2, "reinstall": 2, "reinstat": 6, "rejected": [12, 13], "rejects": 12, "rel": [8, 14], "relacion": 6, "relat": 6, "related": [5, 6], "relational": 6, "relations": 17, "relationships": 6, "relativ": [4, 15], "rela\u00e7\u00e3": 10, "rela\u00e7\u00f5": 6, "releas": 2, "released": 0, "relev": 6, "reload": [2, 3, 4, 5, 12], "reloaded": [3, 4, 16], "reloading": [2, 4, 5], "reloads": [4, 5], "rely": [0, 4, 6], "rem": 5, "remain": [6, 12], "remains": 0, "rememb": [5, 6], "remembered": 5, "remote_addr": [5, 13], "remov": [2, 4, 6, 10, 12, 13], "removal": 12, "removed": [0, 6, 10, 12], "removing": 6, "remo\u00e7\u00e3": 6, "renam": 1, "rend": [5, 6, 12, 14, 15, 16], "rendered": [5, 7, 8, 12, 14, 15, 16], "rendering": [8, 10], "renderiz": 10, "renders": 12, "reno": 8, "renom": 7, "reopening": 5, "repackaging": 0, "repeated": 12, "repeti\u00e7\u00e3": 6, "replac": [6, 8, 10, 14, 16], "replaced": [8, 10, 12, 16], "replacing": 12, "replicat": [1, 5], "report": 8, "reported": 4, "repository": [1, 2, 3], "reposit\u00f3ri": 2, "repr_row": 6, "represent": [8, 10, 12], "representation": [6, 10, 16], "representational_state_transf": 7, "represented": 12, "representing_field": 12, "represents": [0, 6], "requ": [0, 5, 6, 12, 13, 14, 15, 16], "request": [0, 1, 2, 5, 6, 7, 12, 13, 14, 15, 16], "request_body": 16, "request_reset_password": 13, "request_ur": 4, "requests": [1, 4, 5, 15], "requir": [2, 5, 6, 12, 13], "required": [4, 5, 6, 7, 12, 16], "requirement": [12, 16], "requirements": [0, 2, 12], "requires_": 15, "requires_login": 15, "requires_membership": 13, "requiring": [2, 15], "requisit": [6, 17], "res": 16, "reserv": 11, "reserved": [6, 12], "reset": 6, "reset_password": 13, "resgat": 6, "resourc": [6, 13], "respect": [6, 12, 14], "respectively": [6, 12], "respons": [4, 5, 6, 8, 15, 16, 17], "responsibility": 6, "responsibl": [14, 16], "respost": [5, 8], "ressalv": 6, "restabelec": 6, "restap": [0, 3, 17], "restart": [2, 4, 5, 6, 14], "restarting": 6, "restaur": 6, "restful": [7, 13], "restrict": [5, 7, 12, 16], "restri\u00e7\u00e3": 6, "restri\u00e7\u00f5": [0, 6], "restructuredtext": 1, "result": [1, 4, 6, 7, 8, 12, 13, 14, 16], "resulting": [8, 12, 16], "results": [6, 8, 12, 14], "ret": 6, "retain": 6, "retorn": [5, 8, 10], "retribu": 10, "retriev": [5, 6, 16], "retrieval": 6, "retrieved": 15, "return": [4, 5, 6, 7, 10, 12, 13, 14, 16], "returned": [5, 6, 7, 8, 10, 12, 13, 16], "returning": 5, "returns": [5, 6, 7, 10, 12, 13, 15, 16], "reutiliz": [2, 6], "revers": [4, 5, 6], "revers\u00e3": 4, "revert": 6, "rfc": 12, "rid": 6, "riding": 8, "right": [5, 6, 8], "rights": 2, "road": 16, "robust": 16, "rocket": 15, "rocket3": [2, 15], "rocketserv": 2, "rodap": 10, "rol": [5, 10], "roll": 6, "rollback": 16, "rolls": 5, "root": [6, 8, 13, 14], "rosc": 5, "rot": [3, 14], "rotul": 6, "rout": [2, 5, 14, 15, 16], "routing": [0, 2, 4, 15], "rov": 6, "row": [12, 14, 16], "rows": [10, 12, 14, 15], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 14, "rpc": 6, "rst": 1, "rul": [8, 12, 14], "run": [1, 3, 4, 6, 8, 13, 16], "run_in_transaction": 6, "running": [1, 2, 4, 5, 16], "runs": [2, 4, 13, 15, 16], "r\u00e1di": 10, "r\u00e1p": [0, 6], "r\u00f3tul": [6, 10, 14], "s": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 16], "s3": 6, "s_": [12, 16], "s_autocomplet": 16, "s_autocomplete_results": 16, "s_down_key": 16, "s_search": 16, "sab": [1, 2, 6, 8], "saf": [1, 6, 12, 14, 15], "safar": 16, "safely": [1, 14], "safety": 16, "said": 7, "sair": 13, "sak": 6, "salt": [1, 12], "salv": [4, 6, 11], "sam": [0, 2, 5, 6, 7, 8, 12, 13, 15, 16], "same_sit": 5, "saml": 13, "saml2": 0, "sampl": 13, "san": 4, "sandbox": 16, "sanitiz": [5, 10, 12, 15], "sanitized": 12, "sant": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "sav": [1, 5, 6, 11, 12], "saved": [2, 5, 6, 12], "say": 13, "sa\u00edd": [2, 4, 6, 8, 10], "scaffold": [2, 4, 16], "scaffold_zip": 2, "scaffolding": [2, 4, 5, 6, 8, 12, 15, 16], "scal": [5, 8], "scan": 6, "schaf": 1, "schedul": 17, "scheduled": 16, "scheduled_for": 16, "schem": [6, 12], "school": 13, "scor": 16, "score_input": 16, "scratch": 4, "script": [2, 8, 12, 16], "scripting": 10, "scripts": [2, 8, 10], "sdk": 2, "seamlessly": 8, "search": [0, 12, 13, 14, 17], "search_button_text": 14, "search_form": 14, "search_queri": 14, "search_text": 14, "search_valu": 16, "searchabl": 6, "searched": [10, 14], "searching": [6, 10], "second": [6, 10, 12, 13, 15], "seconds": [5, 12], "secret": [5, 13], "secs": 16, "section": [2, 4, 6, 8, 12, 13], "sections": 6, "secur": [0, 12], "securely": 2, "security": [0, 2, 6, 7, 13], "see": [0, 1, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "seem": 6, "seen": [0, 5, 7, 10, 12, 13, 14, 16], "seg": 4, "segment": 4, "segred": 13, "segu": [2, 4, 5, 6, 8], "seguint": [2, 4, 5, 6, 8, 10, 11, 12, 13, 14], "segund": 6, "segur": [0, 5], "seguranc": [2, 5, 6, 10], "seis": 6, "sej": [4, 6], "seleccion": 6, "selecion": [3, 6], "select": [4, 5, 7, 11, 12, 13, 14, 15, 16, 17], "selected": [3, 4, 7, 10, 12, 14, 16], "selected_elements": 16, "selected_id": 14, "selectedindex": 16, "selecting": 6, "selection": [12, 14], "selections": 12, "selector": [10, 16], "selector1": 10, "selector2": 10, "selectorn": 10, "selectwidget": 12, "selec\u00e7\u00e3": 6, "sele\u00e7\u00e3": [6, 10], "self": [2, 5, 6, 10, 12, 13, 14, 16], "semantic": [12, 13], "semelh": [0, 4, 5, 6, 10], "sempr": [6, 8], "send": [2, 6, 12, 13, 16], "send_two_factor_email": 13, "sendgrid": 16, "sendgrid_api_key": 16, "sendgridapiclient": 16, "sending": 17, "sendmail": 16, "sendmail_task": 16, "sends": 13, "senh": [0, 2, 3, 5, 6, 13], "sens": [0, 6, 12], "sensitiv": [5, 12], "sens\u00edvel": 6, "sent": [5, 6, 13, 16], "sen\u00e3": 6, "separ": [6, 14], "separat": [4, 6, 12, 13, 16], "separated": [2, 5, 6, 14, 16], "separating": [8, 12], "separator": 12, "sequenc": [5, 6], "sequencial": 6, "sequ\u00eanc": 6, "seq\u00fcenc": 6, "seq\u00fc\u00eanc": 6, "ser": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14], "seri": 1, "serializ": [4, 6, 8, 10], "serializabl": [0, 5, 6], "serialized": [5, 6, 10, 12], "serv": [0, 2, 3, 4, 7, 8, 13, 15, 16, 17], "served": [2, 4, 6], "server_addr": 6, "server_nam": 4, "servers": [2, 6], "serversid": 16, "servidor": [0, 4, 5, 6], "serving": 16, "ser\u00e3": [4, 6, 10], "session": [0, 2, 4, 6, 10, 12, 13, 14, 15, 16, 17], "session_app1": 5, "session_secret_key": 5, "sessions": [0, 6, 15], "sess\u00e3": [4, 17], "sess\u00f5": 5, "set": [0, 2, 5, 7, 8, 10, 11, 14, 15, 16], "set_attribut": 6, "set_encoding": 6, "set_head": 6, "set_password": 3, "setinterval": 16, "sets": [2, 5, 6, 12], "setting": [2, 4, 5, 6, 12, 14], "settings": [1, 4, 5, 6, 10, 13, 15, 16], "setup": [1, 3, 4, 13, 16], "setvirtualfields": 6, "several": 4, "severity": 6, "se\u00e7\u00e3": 6, "se\u00e7\u00f5": 6, "sf": 16, "sftp": 6, "sg": 16, "sh": 16, "sha512": [8, 12], "shar": [5, 6, 15], "shared": 5, "shell": 10, "ships": 8, "sho": 6, "shopping": 5, "short": [12, 16], "shortcut": [6, 8, 12], "should": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "show": [2, 5, 6], "show_id": 14, "showcas": 6, "showed": 13, "showing": [13, 14], "shown": [2, 6, 12, 13], "shows": [4, 8, 12, 13], "shutil": 6, "si": [6, 14], "sid": [6, 13, 16, 17], "sideb": 8, "sidebar_enabled": 8, "sidebar_menu": 10, "sidec": 16, "sign": [5, 8, 13], "signatur": [5, 6, 7, 10, 12, 16], "signed": [2, 5, 12], "signed_url": 5, "signif": [5, 6, 7], "signific": [6, 8], "significant": 8, "signing": 5, "signing_inf": 12, "signs": 5, "sim": 6, "simbol": 2, "simb\u00f3l": 4, "simil": [0, 12, 15], "similar": [6, 10], "similariti": 15, "simpl": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "simple_query": 16, "simples": [4, 6, 11], "simplest": 2, "simplicity": [6, 16], "simplific": 6, "simplified": [0, 4, 8], "simply": [2, 4, 5, 6, 8, 12, 16], "simultan": 6, "simult\u00e2n": 6, "sinal": 6, "sinc": [0, 4, 5, 7, 8, 14, 15], "singl": [2, 4, 5, 6, 7, 8, 12, 13, 14], "singleton": [5, 15], "sintax": [4, 6, 10, 13, 17], "sint\u00e1t": 5, "sistem": [0, 2, 5, 6], "sit": [1, 2, 4, 5, 6, 10, 14, 16], "situa\u00e7\u00e3": 6, "siz": [5, 8, 12], "skip": [5, 16], "slash": [1, 4, 5, 13], "sleep": 16, "sleep_tim": 16, "slick": 0, "slow": [6, 16], "slug": 12, "small": [5, 12], "sms": 16, "smtplib": 16, "snippets": 6, "so": [2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "soap": 10, "sob": [4, 6], "sobr": [0, 8], "sobrecarg": 6, "sockets": 16, "solicit": [0, 6], "solt": 6, "solution": [0, 2, 16], "solu\u00e7\u00e3": [1, 6], "som": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "some_condition": 8, "some_form": 12, "some_valu": 6, "somefield": 6, "somefil": 6, "soment": [2, 4, 6, 8], "somepath": 5, "sometabl": 6, "something": [6, 7, 8, 10, 12, 13, 14, 16], "sometim": [5, 6, 8, 10, 12, 13], "somevalu": 6, "somewhat": 12, "somewher": [5, 6], "soon": [8, 16], "sophisticated": 15, "sort": 12, "sorted": 14, "sorting": 12, "sourc": [1, 2, 3, 4, 6, 12, 16], "source1": 12, "south": 1, "sp": 6, "spac": [6, 8, 12, 14], "span": [4, 15], "spatialit": 6, "speaking": 5, "special": [0, 5, 6, 8, 13, 15, 17], "specialization": 6, "specials": 12, "specific": [2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "specifically": [5, 6, 12, 16], "specifications": 7, "specified": [5, 6, 8, 10, 12, 13, 14, 15, 16], "specify": [2, 4, 5, 6, 7, 12, 13, 14, 16], "specifying": 10, "speed": [7, 8], "sphinx": 1, "spiderman": [7, 14], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 12], "split_emails": 12, "sql": 17, "sql_mod": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 12, 15], "sqlforms": 12, "sqlit": [1, 5, 7, 13, 14, 16], "sqlite3": 6, "sqliteadapt": 6, "squar": 8, "src": [6, 8, 10, 12, 16], "ss": 12, "ssl": [2, 4], "ssl_cert": 2, "ssl_key": 2, "sslcert": 6, "sslkey": 6, "sslmod": 6, "sslrootcert": 6, "sso_id": [5, 13], "stabl": 2, "stand": 12, "standard": [1, 2, 3, 6, 7, 13, 14, 15, 16, 17], "standards": [12, 14], "stands": 10, "start": [1, 2, 3, 4, 5, 6, 10, 12, 13, 14, 16], "start_impersonating": 13, "started": 16, "starting": [2, 4, 12], "starts": [0, 3, 5, 8, 15], "startup": [6, 15], "stat": [5, 7, 15, 16], "stated": 5, "stateful": 5, "stateless": [5, 16], "statement": 8, "statements": [8, 12], "static": [1, 4, 8, 10, 15], "static_dev": 4, "status": [7, 16], "status_cod": 16, "stderr": [2, 16], "stdout": [2, 16], "steil": [0, 1, 14], "step": [13, 15], "step1": 5, "step2": 5, "step3": 5, "step_completed": 5, "stepping": 16, "steps": 2, "still": [5, 6, 10, 12, 14, 15], "ston": 14, "stop": [2, 13], "stop_impersonating": 13, "stor": [5, 6, 12, 13, 16], "storag": [5, 6, 7, 14], "stored": [0, 5, 6, 12, 13, 15, 16], "stored_it": 6, "stored_item_archiv": 6, "storing": 5, "story": 0, "str": [2, 5, 6, 10, 12, 15, 16], "stre": [5, 6], "streaming": [4, 15], "strength": 7, "strict": 12, "strictly": [4, 6, 16], "string": [4, 5, 6, 7, 10, 11, 12, 14], "stringi": 6, "stringlistproperty": 6, "strings": [10, 12, 14], "strip": 12, "stripped": [2, 15], "strong": [0, 10, 13], "strongly": [1, 5, 12, 14], "structur": [1, 4, 6, 13, 14, 15, 17], "stuck": 2, "students": 2, "studi": 1, "study": 1, "stuff": [12, 14], "style": [4, 6, 8, 12, 16, 17], "styles": 14, "stylesheet": [8, 14], "styling": 14, "sub": 6, "subcl": 6, "subclassing": 12, "subconjunt": [0, 6], "subfold": 6, "subfolders": [5, 6], "subheadings": 10, "subject": [6, 7, 13, 16], "sublinh": 6, "submet": 12, "submission": [12, 16], "submit": [1, 5, 6, 10, 12, 14], "submits": 13, "submitted": [13, 14, 16], "submitting": 13, "subm\u00f3dul": 0, "subnet": 12, "subnets": 12, "subpast": 4, "subqueri": 16, "subset": 12, "subse\u00e7\u00e3": 6, "substitu": [0, 2, 6, 8, 10], "substitui\u00e7\u00f5": 14, "substitutions": 8, "substitu\u00edd": 6, "substring": [6, 12], "succeded": 13, "succeeded": 0, "success": [5, 7, 16], "successful": [0, 13], "successfully": 13, "suced": 6, "sucess": [4, 6], "such": [4, 6, 10, 12, 13, 14, 15], "sud": [2, 13], "suffered": 0, "suffers": 13, "sufficient": 13, "suficient": [6, 14], "suger": [1, 6], "sugest\u00f5": 17, "suggest": [1, 12], "sugiz": 0, "sup": 7, "super": 6, "superher": [6, 7, 12, 14, 16], "superhero": 7, "superior": 11, "superman": [6, 7, 12, 14], "superpotent": 7, "superpow": [6, 7], "superseeded": 6, "supond": [2, 6], "suponh": 6, "supor": 6, "suport": [0, 11, 17], "supplied": 10, "support": [1, 2, 6, 12, 14, 15], "supported": [11, 12, 13], "supporting": 16, "supports": [4, 5, 8, 10, 12, 16], "suppress": 2, "suprim": 10, "sur": [5, 12, 13, 16], "surely": [3, 4], "surrounding": 12, "susan": 6, "sutil": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 12, "symbols": 12, "sync": [2, 6], "synops": 12, "syntactic": 12, "syntax": [0, 1, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "system": [0, 2, 5, 6, 10, 13, 16], "systems": 16, "sysus": 6, "s\u00e3": [0, 1, 3, 4, 5, 6, 8, 10, 11, 13, 14], "s\u00e9ri": 6, "t": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15], "t_fold": 5, "tab": [3, 5, 12], "tabel": [5, 10, 13, 14, 15], "tabl": [5, 7, 12, 13, 14, 15, 16, 17], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 12, 16], "tag": [0, 5, 6, 7, 8, 13, 15, 16], "tag_input": 16, "tagg": 10, "tagged_db": 13, "tagging": [6, 10, 13], "tags": [0, 5, 6, 8, 10, 12, 15, 16, 17], "tags_input": 16, "tags_inputs": 16, "tail": 6, "tail_nam": 13, "tais": 6, "tak": [2, 3, 5, 6, 8, 12, 13, 14, 16], "taken": 12, "tal": 6, "talk": 4, "talvez": [2, 5], "tamanh": 6, "tampering": [5, 6], "tant": [6, 16], "tantissim": 11, "tap": 16, "tar": 12, "tard": [4, 6], "taref": [1, 6, 13], "target": [10, 16], "task": 17, "task_run": 16, "tasks": [5, 6, 16], "tast": 6, "tbody": 6, "tcp": 3, "td": 6, "teach": 13, "technically": 16, "tecl": [6, 11], "tell": [4, 13, 16], "telling": [2, 13], "tells": [5, 16], "temp": [2, 8], "templat": [0, 4, 10, 12, 13, 15, 16, 17], "temporarily": 5, "tempor\u00e1ri": 6, "ten": 12, "tenancy": 6, "tenh": [1, 5, 6], "tent": [5, 6], "ter": [2, 4, 5, 6, 10], "teradat": 6, "teradataadapt": 6, "terceir": 6, "tered": 12, "term": 6, "termin": 10, "terminal": 4, "terminat": [8, 16], "termination": 4, "terms": 12, "terr": 6, "ter\u00e3": 6, "test": [2, 6, 8, 10, 12, 14], "tested": [0, 2, 10, 13], "testing": [4, 6], "text": [2, 5, 6, 8, 10, 14, 16], "textar": 12, "textareawidget": 12, "textual": 10, "th": 6, "than": [0, 5, 6, 8, 10, 12, 13, 14, 16], "thank": 10, "thanks": 0, "that": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "that_templat": 8, "the": [0, 3, 8, 10, 11, 13, 15, 17], "thead": 6, "them": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "themselv": [6, 8], "then": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "ther": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "therefor": [4, 5, 8, 12, 15], "thes": [2, 4, 5, 6, 8, 10, 12, 14, 16], "they": [2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "thing": [5, 6, 12, 14, 15], "thing_id": 12, "thing_tags_default": 6, "things": [2, 5, 6, 12], "think": [5, 8, 14, 16], "third": [0, 5, 12], "this": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "this_templat": 8, "thisisatest": 10, "thisisthekey": 12, "thos": [5, 6, 8, 10, 13, 15, 16], "though": 8, "thought": [0, 6, 13], "thre": [0, 5, 6, 13], "thread": [6, 15, 16], "threaded": [2, 15], "threads": [5, 6], "threadsafevariabl": 5, "through": [2, 12], "throughout": 5, "thumbnail": 12, "ti": 5, "ticket": 6, "tickets_only": 2, "til": 6, "tim": [0, 4, 5, 6, 8, 13, 14, 15, 16], "timed": 6, "timedelt": 12, "timeoffset": 10, "timeout": [5, 16], "timeouts": 16, "timestamp": [5, 7, 16], "tint": 4, "tip": [4, 14], "tips": [2, 14], "tir": 6, "titl": [8, 12, 16], "tiv": 6, "tmp": [5, 6], "to": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "to_addr": 16, "to_addrs": 16, "tod": [1, 2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 16], "today": [0, 12, 16], "togeth": [0, 8], "token": [5, 12], "tom": 6, "too": [2, 5, 6, 12, 16], "took": 6, "tool": 0, "tools": [6, 13, 16], "top": [8, 12, 13], "topics": [14, 17], "torn": [1, 2, 5, 6, 10, 14], "total": [1, 6, 7], "total_pric": 6, "totp": 13, "touch": 8, "toy": 6, "tr": 6, "trabalh": [2, 4, 6, 7], "traceback": 6, "tracebacks": 5, "track": [1, 15], "trad": 6, "tradicion": 6, "tradicional": 6, "traditional": 2, "tradutor": 4, "traduz": [1, 6, 8, 11], "tradu\u00e7\u00e3": [5, 17], "tradu\u00e7\u00f5": [5, 11], "trailing": [2, 12], "training": 1, "transaction": [5, 6], "transactional": 16, "transactions": 6, "transa\u00e7\u00f5": 6, "transform": [4, 5, 6, 12, 16], "transformed": [5, 6], "transforms": 5, "transitions": 16, "translat": 16, "translated": [5, 8, 12], "translation": [5, 12, 15], "translations": [5, 11, 16], "translator": [2, 11, 17], "transmit": 3, "transparent": [6, 8, 12], "transparently": 8, "trapped": 16, "trat": [4, 6], "tre": [8, 12], "treated": [6, 15], "tri": [6, 13, 15], "trickery": 8, "tricks": 2, "tried": 0, "trigg": [6, 16], "triggers": 5, "trivial": [5, 6], "tru": [1, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "trunc": 6, "truncat": 6, "truth": 16, "try": [2, 5, 6, 8, 12, 13, 16], "trying": [1, 12, 13], "tr\u00e1s": 6, "tr\u00eas": 6, "ttl": 5, "tud": [5, 6], "tupl": [6, 8, 10], "turn": [12, 13, 14, 16], "turned": 0, "turns": [6, 16], "tutorial": [1, 2, 4, 14, 16], "tutorials": 1, "twic": [5, 6], "twili": 16, "twitt": [0, 5, 13], "two": [1, 2, 4, 5, 6, 8, 12, 14, 15, 16], "two_factor": 13, "txt": [0, 2, 4, 6], "type": [2, 5, 7, 8, 10, 13, 16], "types": 12, "typical": [5, 6, 12], "typically": [4, 8], "t\u00eam": [2, 4, 6, 13], "t\u00edpic": 6, "t\u00edtul": [3, 10, 14], "t\u00f3pic": 6, "u": [2, 6, 10], "ubuntu": 13, "uc": 1, "ui": [5, 13], "uid": 6, "ul": [8, 12, 13, 16], "un": [8, 10, 11, 16], "unauthenticated": [5, 6, 10], "unauthorized": 6, "unchanged": 12, "undefined": 5, "under": [2, 3, 4, 5, 6, 12], "underlying": 15, "underscor": [6, 10, 12], "understand": [0, 2, 4, 6, 7, 8], "understanding": 17, "undocumented": 16, "unfortunat": 6, "unfortunately": 14, "unicod": [6, 12], "unicodedecodeerror": 6, "unid": 6, "uniform": 6, "uniqu": [6, 7, 12], "unit_pric": 6, "unit\u00e1ri": 6, "universal": [4, 6, 10], "uni\u00e3": 6, "unknown": 4, "unless": [3, 5, 6, 8, 12, 16], "unlik": [0, 2, 7, 8, 15, 16], "unnamed": 6, "unneded": 2, "unordered": 10, "unpkg": 16, "unquoted": 10, "uns": 5, "unsaf": [5, 10, 12], "untested": [2, 13], "until": [0, 5, 6, 8, 12], "un\u00e1ri": 6, "up": [1, 2, 5, 6, 8, 13, 16], "updat": [2, 5, 12, 14, 15, 16], "update_form": 12, "update_languag": 11, "update_naiv": 6, "update_thing": 12, "updated": [5, 6, 12], "updating": 5, "upgrad": [2, 6], "upgraded": 2, "upload": [4, 6], "upload_fold": [6, 12], "upload_help": 16, "uploaded": [6, 12, 15], "uploadfield": 6, "uploadfold": 6, "uploadfs": 6, "uploads": 6, "uploadseparat": 6, "upon": [2, 13, 15], "upper": [4, 5, 12], "upper_cas": 5, "uppercas": [5, 12], "uri": 13, "uris": 6, "url": [4, 5, 7, 8, 12, 13, 14, 15, 16], "url_prefix": 2, "url_sign": 5, "url_to_post_t": 16, "urls": [2, 4, 12, 15], "urlsign": 17, "us": [2, 12], "usa": [0, 4, 5, 6, 8], "usabl": 14, "usad": [0, 4, 6, 10, 11, 13, 14], "usag": [2, 3, 4, 5, 6, 10, 12, 13, 14], "usam": 6, "usand": [4, 5, 8, 10, 13, 17], "usar": [2, 4, 5, 6, 8, 10, 14], "use": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "use_schedul": 16, "used": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "useful": [2, 4, 8, 10, 12, 13, 14, 16], "usefull": 12, "useless": [12, 15], "user": [2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "user_email": 15, "user_id": [5, 6, 13, 15], "user_nam": 6, "user_outside_network": 13, "user_password": 6, "user_token": 6, "usernam": [5, 6, 13], "users": [0, 1, 4, 5, 13, 15], "uses": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "using": [0, 1, 3, 4, 7, 12, 15, 17], "uso": [2, 5, 14], "usos": 6, "usou": [5, 6], "usr": 1, "usual": [2, 8, 10, 12], "usually": [1, 5, 7, 12], "usu\u00e1ri": [1, 2, 3, 4, 5, 6, 13, 15], "us\u00e1": [2, 6, 8], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "utility": [2, 12], "utiliz": [2, 3, 4, 5, 6, 10, 13, 14], "utilizing": 14, "utils": [2, 4, 5, 8, 10, 12, 13, 14, 15, 17], "uuid": [5, 6], "uuid4": [5, 6], "uuids": 6, "v": [5, 10, 12, 16], "v3": 1, "vai": [1, 4, 6, 8], "val": 14, "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [4, 6, 10, 13, 15, 17], "validat": [6, 12, 13], "validate_cod": 13, "validate_js": 4, "validated": 12, "validating": 13, "validation": [4, 6, 7, 8, 13, 14], "validator": [6, 12], "validators": [2, 15], "validity": 12, "valios": 1, "valor": [5, 10, 11, 12, 14], "valq7711": [0, 4], "vals": 16, "valu": [2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "value1": 6, "value2": 6, "value_field": 12, "valued": 12, "vam": [1, 6, 10], "vantag": 6, "vantagens": 6, "var": 16, "varch": 6, "vari": 6, "variabl": [5, 6, 10, 12, 14, 16], "various": 5, "vari\u00e1vel": [4, 6, 10, 11], "varredur": 6, "vars": [6, 10, 12, 15], "vaz": 6, "vazi": [2, 6], "ve": [2, 3, 5, 8, 10, 12, 13, 14, 16], "vej": [2, 3], "veloc": 6, "vem": [0, 4, 6], "vendor": 16, "vendor_typ": 16, "vendors": 16, "venv": 2, "ver": [2, 6, 13], "verd": 4, "verdad": 14, "verdadeir": [6, 12, 14], "verif": 6, "verific": [5, 6, 13], "verification": 13, "verified": [5, 12, 16], "verify": 5, "verify_email": 13, "verifying": 13, "vermelh": 4, "vers": 5, "version": [1, 3, 7, 8, 12, 16], "versions": [2, 5, 12], "vers\u00f5": 6, "vertic": 6, "verticaadapt": 6, "very": [0, 4, 8, 10, 12, 13, 15, 16], "vez": [2, 4, 5, 8, 10, 13, 14], "ve\u00edcul": 5, "via": [5, 6, 8, 10, 16], "vias": 6, "vic": 5, "vid": [1, 2, 16], "view": [1, 5, 6], "viewing": 6, "viewport": 8, "views": 6, "vincul": 6, "vind": 2, "vir": 13, "virtual": [1, 17], "virtualenv": [1, 2], "virtualfields": 6, "visit": [3, 5, 12], "visit_log": 5, "visited": [5, 8], "visiting": [5, 13], "visitor": 6, "visitors": [10, 12], "visits": 6, "vist": [5, 6, 10], "visual": 1, "visualiz": 6, "vis\u00e3": 6, "vis\u00edvel": 4, "vital": 13, "voc": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "volt": [5, 6], "vou": 2, "vscod": 2, "vue": [0, 4, 16], "vulner": 8, "v\u00e1l": 4, "v\u00e1r": [2, 4, 5, 6], "v\u00e1ri": [4, 5, 6, 11], "v\u00e3": 6, "v\u00ea": 6, "v\u00edrgul": 6, "v\u00f4o": 7, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 12, 16], "wanting": 16, "wants": 5, "warning": [2, 5], "was": [0, 5, 6, 12, 13, 14], "watch": [2, 3, 17], "watched": 4, "way": [2, 3, 5, 6, 8, 10, 12, 13, 15], "wayn": [7, 14], "ways": [0, 2, 4, 6, 13, 14, 16], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "web": [0, 1, 2, 5, 6, 8, 13, 14, 15, 16, 17], "web2py": [0, 1, 2, 3, 4, 5, 6, 12, 13, 14, 17], "websit": [6, 16], "websocket": 16, "welcom": [4, 5, 8, 15, 16], "well": [0, 5, 6, 8, 12, 13, 16], "wer": [0, 4], "what": [4, 5, 6, 8, 12, 13, 15, 16], "whatev": [10, 16], "when": [0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whenev": 4, "wher": [1, 2, 4, 6, 8, 12, 13, 15, 16], "wheth": [5, 6, 12, 13, 15], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whichev": 16, "whil": [4, 5, 6, 7, 12, 13, 14, 15], "whit": [10, 16], "whitelist": 13, "who": [0, 13], "whol": [4, 12], "whos": [6, 8, 12], "why": [5, 8, 15], "widget": [6, 12], "widgets": [16, 17], "width": [8, 12], "wik": [6, 7], "wikiped": [6, 7], "wild": 6, "wildcard": 4, "will": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "window": [5, 8, 12], "windows": [1, 2, 4, 6], "wish": 16, "wishing": 12, "wit": 2, "with": [0, 1, 2, 3, 4, 5, 7, 8, 10, 16, 17], "with_al": 6, "within": [0, 1, 5, 6, 8, 10, 12, 16], "without": [6, 8, 10, 16, 17], "wolf": 0, "wood": 6, "words": [5, 14], "work": [0, 2, 4, 5, 6, 8, 10, 12, 16], "worked": [0, 16], "workers": 2, "workflow": [5, 17], "working": [2, 12], "workload": 6, "workplac": 1, "works": [2, 6, 8, 12, 13, 14, 15, 16], "workspacefold": 2, "world": [4, 5, 6, 8, 10, 12, 16], "worry": 4, "worth": 8, "would": [0, 4, 5, 6, 10, 12, 13, 16], "wouldn": 6, "wrap": [12, 14, 16], "wrapp": 16, "wrapped": 5, "wrappers": 15, "writ": [2, 4, 5, 6, 8], "writabl": [5, 6, 12, 15], "writing": [4, 6, 15], "written": [1, 8, 12, 14], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 10, 14, 16], "x": [2, 4, 6, 8, 10, 12, 14, 16], "xml": [8, 12, 15, 16], "xmlescap": 10, "xmlns": 10, "xss": [6, 8, 10], "xyz": [10, 12], "y": [2, 10, 12], "yaml": 2, "yatl": [0, 4, 5, 6, 12, 14, 16, 17], "yb": 10, "year": [12, 16], "yes": [2, 6, 16], "yes_or_n": 6, "yet": [0, 2, 4, 5, 8, 12, 16], "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "your": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "your_app": 12, "your_full_path_to_py4web": 1, "your_nam": [1, 16], "yourapp": 6, "yourappnam": 2, "youremail": 13, "yourself": [1, 12], "youtub": [2, 6], "yyyy": 12, "z": [10, 12], "zanferrar": 0, "zap": 13, "zap_id": 13, "zapp": 13, "zapped": 13, "zer": [6, 8, 12, 14], "zip": [0, 2, 6, 12], "zip_cod": 16, "zxjdbc": 6, "\u00c0s": [6, 10], "\u00e1rvor": 4, "\u00e2mbit": 4, "\u00e9": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17], "\u00e9poc": 6, "\u00edndic": 4, "\u00f3bvi": [6, 8], "\u00f3ptim": 4, "\u00faltim": [5, 6, 13], "\u00fanic": [0, 2, 6, 10], "\u00fate": [1, 6], "\u00fatil": 6}, "titles": ["O que \u00e9 py4web?", "Ajuda, recursos e dicas", "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento", "O Dashboard", "Creating an app", "Fixures", "The Database Abstraction Layer (DAL)", "The RestAPI", "Linguagem de template YATL", "<no title>", "Helpers YATL", "Internacionaliza\u00e7\u00e3o", "Foruml\u00e1rios", "Authentication and authorization", "Rede", "De web2py para py4web", "Advanced topics and examples", "py4web: o manual de refer\u00eancia"], "titleterms": {"A": [3, 6, 10, 12], "As": 1, "Comando": 6, "Como": 1, "De": 15, "Do": 4, "EM": 10, "Em": 4, "Este": 1, "Mais": 6, "O": [0, 1, 3, 4, 5, 6], "OS": 15, "Os": [6, 14], "Um": [1, 6], "_lastsql": 6, "_scaffold": 4, "about": 5, "abstraction": 6, "accessing": 15, "acknowledgments": 0, "actions": [7, 13], "adapt": 6, "adicion": 6, "advanced": [12, 16], "agrup": 6, "ajud": 1, "aka": 2, "alias": 6, "alon": 6, "amostr": 14, "an": 4, "and": [6, 7, 8, 12, 13, 14, 15, 16], "antig": 6, "any_of": 12, "anywher": 5, "aplic": 6, "app": [2, 4, 6], "apps": 4, "args": 15, "arquiv": 11, "as_dict": 6, "as_list": 6, "assinatur": 6, "asynci": 16, "atalh": 6, "atribut": 6, "atualiz": [6, 11], "aut": 6, "autentic": 13, "auth": [5, 13, 15], "authentication": 13, "authorization": 13, "autocomplet": 16, "avanc": 6, "avg": 6, "a\u00e7\u00e3": 14, "background": 16, "banc": 6, "bas": 6, "basic": [12, 14], "beautify": 10, "belongs": 6, "bin\u00e1ri": 2, "block": 8, "body": 10, "bot\u00e3": 14, "bot\u00f5": 14, "built": 10, "b\u00e1sic": 8, "cach": 6, "caching": 5, "cad": 6, "call": 2, "callabl": 14, "calling": 15, "camp": [6, 14], "caracter\u00edst": 6, "cas": 6, "cascad": 6, "cat": 10, "caveats": 5, "celery": 16, "cham": 6, "chang": 4, "chav": 6, "checkbox": [12, 14], "children": 10, "class": 14, "cleanup": 12, "client": 5, "coalesc": 6, "coalesce_zer": 6, "coloc": 2, "columns": 14, "comando": 2, "combin": 6, "commit": 6, "complexity": 12, "comput": 6, "computed": 6, "comuns": 6, "condition": 5, "conex\u00e3": 6, "conex\u00f5": 6, "configur": [2, 6], "constructor": 12, "construtor": 6, "consult": 6, "cont": 6, "contains": 6, "conte\u00fad": 17, "contribu": 1, "control": 6, "convenient": 5, "conversion": 15, "cooki": 5, "copi": 6, "copying": 4, "corr": 2, "count": [6, 15], "creating": 4, "crud": 14, "crypt": 12, "csv": 6, "custom": [12, 14], "customizing": 14, "dad": 6, "dal": [5, 6], "dashboard": [3, 6], "dat": 12, "databas": [5, 6, 12], "datastor": 6, "day": 6, "db": 6, "decor": 5, "def": 8, "default": 8, "defeit": 6, "defin": 6, "define_tabl": 6, "deix": 6, "delet": 6, "deployment": 2, "depur": 1, "design": [2, 12], "development": 8, "dic": 1, "dicion\u00e1ri": 6, "dictionari": 12, "din\u00e2m": 4, "discord": [1, 13], "distinct": 6, "distint": 6, "distribu\u00edd": 6, "div": 10, "dock": 2, "dom": 10, "domain": 4, "drop": 6, "elif": 8, "else": 8, "endswith": 6, "engin": 2, "envi": 6, "environment": 2, "equality": 12, "estil": 6, "est\u00e1t": 4, "etiquet": 13, "exampl": [7, 12, 14, 15, 16], "excet": 8, "exclud": 6, "exclus\u00e3": 6, "execu": 6, "executesql": 6, "experiment": 6, "experimental": 6, "export": 6, "express\u00f5": 6, "extend": 8, "extending": 8, "facebook": 13, "factor": 13, "fake_migrat": 6, "falh": 6, "faz": 6, "featur": 14, "fich": 6, "field": [6, 12], "fields": 6, "fil": [4, 12, 15], "filter_in": 6, "filter_out": 6, "filtering": 14, "filtr": 6, "finally": 8, "find": [6, 10], "first": 6, "fixa\u00e7\u00e3": 6, "fixtur": 5, "fixur": 5, "flash": [5, 15], "font": [1, 2], "form": [10, 12, 15, 16], "format": [6, 12, 16], "forms": 12, "formul\u00e1ri": 12, "foruml\u00e1ri": 12, "from": 2, "funcion": 2, "functions": [8, 12], "gae": 2, "gcloud": 2, "generating": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 13], "grid": [14, 15, 16], "grids": 14, "groupby": 6, "grup": 1, "h1": 10, "h2": 10, "h3": 10, "h4": 10, "h5": 10, "h6": 10, "having": 6, "head": 10, "hell": 15, "helpers": 10, "heranc": 6, "hour": 6, "html": [6, 10], "htmx": 16, "https": 2, "i": 10, "id": 6, "if": 8, "ilik": 6, "img": 10, "impersonation": 13, "implant": 2, "import": 6, "in": [5, 8, 10, 16], "includ": 8, "inferior": 6, "information": 8, "inject": [5, 10], "inner": 6, "input": 10, "inser": 6, "insert": 6, "inser\u00e7\u00e3": 6, "insid": 13, "instal": 2, "installations": 2, "installing": 2, "interfac": 13, "internacionaliz": 11, "introduction": 6, "is_alphanumeric": 12, "is_dat": 12, "is_date_in_rang": 12, "is_datetim": 12, "is_datetime_in_rang": 12, "is_decimal_in_rang": 12, "is_email": 12, "is_empty_or": 12, "is_equal_t": 12, "is_expr": 12, "is_fil": 12, "is_float_in_rang": 12, "is_imag": 12, "is_in_db": 12, "is_in_set": 12, "is_int_in_rang": 12, "is_ipaddress": 12, "is_ipv4": 12, "is_ipv6": 12, "is_json": 12, "is_length": 12, "is_list_of": 12, "is_list_of_emails": 12, "is_low": 12, "is_match": 12, "is_not_empty": 12, "is_not_in_db": 12, "is_null_or": 12, "is_saf": 12, "is_slug": 12, "is_strong": 12, "is_tim": 12, "is_upload_filenam": 12, "is_upp": 12, "is_url": 12, "isempty": 6, "iter": 6, "join": 6, "joins": 6, "js": 16, "junt": 6, "key": 14, "label": 10, "last": 6, "lay": 6, "layout": 8, "ldap": 13, "left": 6, "leg": 6, "len": 6, "less": 6, "li": 10, "lik": 6, "limitby": 6, "linguag": 8, "linh": 2, "list": 6, "local": [1, 2, 6], "low": 6, "l\u00f3gic": 6, "manipulation": 12, "manual": [1, 17], "many": 6, "mapped": 4, "marca\u00e7\u00e3": 6, "max": 6, "melhor": 2, "memcach": 5, "memoiz": 5, "mem\u00f3r": 6, "mesm": 6, "messag": 16, "methods": [6, 15], "microsoft": 6, "migrat": 6, "migra\u00e7\u00e3": 6, "migra\u00e7\u00f5": 6, "min": 6, "minimal": 12, "minut": 6, "mobil": 8, "model": [4, 6], "modern": 1, "modific": 6, "month": 6, "mssql": 6, "muit": 6, "multipl": [5, 13], "mysql": 6, "new_app": 2, "nom": 6, "nosql": 6, "not": 6, "nov": 6, "oauth2": 13, "object": [14, 16], "objects": 13, "objet": 4, "obten\u00e7\u00e3": 6, "ol": 10, "on": 2, "on_defin": 6, "oper": 6, "option": 10, "options": 12, "op\u00e7\u00e3": 2, "op\u00e7\u00f5": 2, "orden": 6, "orderby": 6, "orderby_on_limitby": 6, "or\u00e1cul": 6, "other": 12, "out": 6, "outr": 6, "overview": 10, "p": 10, "padr\u00e3": 6, "pag": 8, "palavr": 6, "pam": 13, "par": [6, 8, 15], "paramet": 12, "parameters": 14, "part": [2, 6], "par\u00e2metr": 6, "past": 6, "pegadinh": 6, "permiss\u00f5": 13, "personaliz": [5, 6, 10, 14], "pip": 2, "plataform": 2, "plugins": 13, "plural": 6, "pluraliz": 11, "podman": 2, "polic": 7, "polymodel": 6, "pool": 6, "practical": 7, "pre": 10, "preguic": 6, "primarykey": 6, "primeir": 2, "prim\u00e1r": 6, "principal": 3, "princ\u00edpi": 4, "proced": 2, "pr\u00e9": [1, 2], "py4web": [0, 1, 6, 15, 16, 17], "pycharm": 1, "python": 1, "pythonanywher": 2, "p\u00e1gin": [3, 4], "q": 16, "quebr": 6, "query": 6, "quick": 6, "quoting": 6, "rang": 12, "raw": 6, "real": 6, "record": 6, "recurs": [1, 6], "red": [5, 14], "redefin": 6, "redirect": 15, "referent": [6, 14, 17], "regexp": 6, "registr": 6, "relation": 6, "relations": 6, "rela\u00e7\u00e3": 6, "remot": 6, "renderiz": 6, "replic": 6, "represent": 6, "request": 4, "requisit": [1, 2], "reserv": 6, "respons": 7, "restap": 7, "resum": 6, "retorn": [4, 6], "return": [8, 15], "returning": 15, "rnam": 6, "rollback": 6, "rot": 4, "row": 6, "rows": 6, "run": 2, "s": 6, "schedul": 16, "script": 10, "searching": 14, "seconds": 6, "security": 12, "segur": 6, "select": [6, 10], "selects": 6, "selet": 6, "sending": 16, "sequence_nam": 6, "serv": [1, 5, 6, 10], "session": 5, "sessions": 5, "sess\u00e3": 3, "set": [6, 12], "set_password": 2, "setting": 15, "settings": 14, "setup": 2, "sharing": 5, "shell": [2, 6], "sid": [5, 10], "sidec": 12, "simpl": 15, "sincroniz": 6, "singul": 6, "sintax": 8, "sobr": 6, "sort": 6, "sorted": 12, "span": 10, "special": [2, 12], "sql": 6, "sqlit": 6, "stand": 6, "standard": [8, 12], "startswith": 6, "string": 16, "strings": 6, "structur": [8, 12], "style": [10, 14], "substrings": 6, "sugest\u00f5": 1, "sum": 6, "sup": 8, "suport": [2, 6], "supported": 6, "t": 16, "tabel": [6, 17], "tabl": [6, 10], "table_class": 6, "tag": 10, "tagging": 12, "tags": 13, "task": 16, "tbody": 10, "td": 10, "temp": 6, "templat": [5, 8, 14], "temporiz": 6, "tend": 6, "tent": 8, "tentat": 6, "text": 12, "textar": 10, "th": 10, "the": [1, 2, 4, 5, 6, 7, 12, 14, 16], "thead": 10, "tim": 12, "tip": 6, "titl": 10, "to": 6, "tod": 6, "topics": 16, "tour": 6, "tr": 10, "trabalh": 1, "tradu\u00e7\u00e3": 11, "transa\u00e7\u00e3": 6, "translator": 5, "trigger_nam": 6, "tt": 10, "tupl": 12, "tutori": 1, "two": 13, "two_factor_required": 13, "two_factor_send": 13, "two_factor_tri": 13, "two_factor_validat": 13, "type": [6, 12], "types": 6, "ubuntu": 2, "ul": 10, "understanding": 2, "up": 15, "updat": 6, "update_or_insert": 6, "update_record": 6, "upload": 12, "upper": 6, "uri": 6, "url": 10, "urlsign": 5, "usag": 16, "usand": [6, 14], "user": 13, "using": [2, 5, 6, 8, 10, 13, 14, 16], "uso": 6, "utils": 16, "valid": 12, "validate_and_insert": 6, "validate_and_updat": 6, "validation": 12, "validators": [6, 12], "valor": [4, 6], "variabl": [8, 15], "velh": 6, "version": [2, 6], "vez": 6, "view": 15, "virtu": 6, "virtual": [2, 6], "vscod": 1, "v\u00edd": 1, "watch": 4, "web": [3, 4], "web2py": 15, "whil": 8, "widget": 16, "widgets": 12, "with": [6, 12, 13, 14, 15], "without": [2, 12], "workflow": 8, "world": 15, "wsgi": 2, "xml": [6, 10], "yatl": [8, 10], "year": 6, "\u00e9": 0, "\u00edndic": [6, 17]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A auto-refer\u00eancia e aliases": [[6, "self-reference-and-aliases"]], "A minimal form example without a database": [[12, "a-minimal-form-example-without-a-database"]], "A obten\u00e7\u00e3o de um `` row``": [[6, "fetching-a-row"]], "A p\u00e1gina Web principal": [[3, "the-main-web-page"]], "ANY_OF": [[12, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adicionando atributos para campos e tabelas": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced form design": [[12, "advanced-form-design"]], "Advanced topics and examples": [[16, null]], "Agrupamento e contando": [[6, "grouping-and-counting"]], "Ajuda, recursos e dicas": [[1, null]], "Aplicativos de modelo-less": [[6, "model-less-applications"]], "As fontes no GitHub": [[1, "the-sources-on-github"]], "Assinatura da DAL": [[6, "dal-signature"]], "Atalhos": [[6, "shortcuts"]], "Atualizar os arquivos de tradu\u00e7\u00e3o": [[11, "update-the-translation-files"]], "Auth API Plugins": [[13, "auth-api-plugins"]], "Authentication and authorization": [[13, null]], "Authentication using Auth": [[13, "authentication-using-auth"]], "Authorization using Tags": [[13, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[16, "autocomplete-widget-using-htmx"]], "A\u00e7\u00e3o personalizada Bot\u00f5es": [[14, "custom-action-buttons"]], "Bancos de dados legados e tabelas com chave": [[6, "legacy-databases-and-keyed-tables"]], "Bancos de dados replicados": [[6, "replicated-databases"]], "Basic form example": [[12, "basic-form-example"]], "Basic grid example": [[14, "basic-grid-example"]], "Bot\u00e3o Classe A\u00e7\u00e3o Amostra": [[14, "sample-action-button-class"]], "Built-in helpers": [[10, "built-in-helpers"]], "CLEANUP": [[12, "cleanup"]], "CRUD settings": [[14, "crud-settings"]], "CRYPT": [[12, "crypt"]], "CSV (todas as tabelas ao mesmo tempo)": [[6, "csv-all-tables-at-once"]], "CSV (uma tabela de cada vez)": [[6, "csv-one-table-at-a-time"]], "CSV e sincroniza\u00e7\u00e3o de banco de dados remoto": [[6, "csv-and-remote-database-synchronization"]], "Caching e Memoize": [[5, "caching-and-memoize"]], "Campos computados": [[6, "computed-fields"]], "Campos virtuais": [[6, "virtual-fields"]], "Campos virtuais novo estilo (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Campos virtuais velho antigo": [[6, "old-style-virtual-fields"]], "Caracter\u00edsticas avan\u00e7adas": [[6, "advanced-features"]], "Cascades no banco de dados": [[6, "database-cascades"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[16, "celery"]], "Checkbox validation": [[12, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combinando Rows": [[6, "combining-rows"]], "Como contribuir": [[1, "how-to-contribute"]], "Complexity and security validators": [[12, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Configura\u00e7\u00f5es de quoting e case e do banco de dados": [[6, "database-quoting-and-case-settings"]], "Configura\u00e7\u00f5es padr\u00e3o de migra\u00e7\u00e3o": [[6, "default-migration-settings"]], "Construtor DAL": [[6, "dal-constructor"]], "Construtor Field": [[6, "field-constructor"]], "Construtor Table": [[6, "table-constructor"]], "Conte\u00fado:": [[17, null]], "Copiar dados de um para outro db": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, null]], "Custom columns": [[14, "custom-columns"]], "Custom error pages": [[4, "custom-error-pages"]], "Custom forms": [[12, "custom-forms"]], "Custom widgets": [[12, "custom-widgets"]], "Customizing style": [[14, "customizing-style"]], "DAL introduction": [[6, "dal-introduction"]], "Database validators": [[12, "database-validators"]], "Date and time validators": [[12, "date-and-time-validators"]], "De web2py para py4web": [[15, null]], "Decoradores de conveni\u00eancia": [[5, "convenience-decorators"]], "Default page layout": [[8, "default-page-layout"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Depura\u00e7\u00e3o py4web com PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Depura\u00e7\u00e3o py4web com VScode": [[1, "debugging-py4web-with-vscode"]], "Dicas e sugest\u00f5es": [[1, "hints-and-tips"]], "Dictionaries and tuples with IS_IN_SET": [[12, "dictionaries-and-tuples-with-is-in-set"]], "Do princ\u00edpio": [[4, "from-scratch"]], "Domain-mapped apps": [[4, "domain-mapped-apps"]], "Em valores de retorno": [[4, "on-return-values"]], "Este manual": [[1, "this-manual"]], "Etiquetas e permiss\u00f5es": [[13, "tags-and-permissions"]], "Example of JwtTokenPlugin": [[13, "example-of-jwttokenplugin"]], "Example of SimpleTokenPlugin": [[13, "example-of-simpletokenplugin"]], "Example of custom Token Plugin": [[13, "example-of-custom-token-plugin"]], "Experimentar com o shell py4web": [[6, "experiment-with-the-py4web-shell"]], "Exportar e importar dados": [[6, "exporting-and-importing-data"]], "Express\u00f5es": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "Falhas de conex\u00e3o (par\u00e2metro tentativas)": [[6, "connection-failures-attempts-parameter"]], "Fazendo uma conex\u00e3o segura": [[6, "making-a-secure-connection"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[12, "file-upload-field"]], "Fixa\u00e7\u00e3o migra\u00e7\u00f5es quebrados": [[6, "fixing-broken-migrations"]], "Fixtures personalizados": [[5, "custom-fixtures"]], "Fixtures with dependencies": [[5, "fixtures-with-dependencies"]], "Fixures": [[5, null]], "Form structure manipulation": [[12, "form-structure-manipulation"]], "Foruml\u00e1rios": [[12, null]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Grids with checkboxes": [[14, "grids-with-checkboxes"]], "HTML e XML (uma tabela de cada vez)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Helpers YATL": [[10, null]], "Helpers overview": [[10, "helpers-overview"]], "Helpers personalizados": [[10, "custom-helpers"]], "Heran\u00e7a de tabela": [[6, "table-inheritance"]], "IS_ALPHANUMERIC": [[12, "is-alphanumeric"]], "IS_DATE": [[12, "is-date"]], "IS_DATETIME": [[12, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[12, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[12, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[12, "is-decimal-in-range"]], "IS_EMAIL": [[12, "is-email"]], "IS_EMPTY_OR": [[12, "is-empty-or"]], "IS_EQUAL_TO": [[12, "is-equal-to"]], "IS_EXPR": [[12, "is-expr"]], "IS_FILE": [[12, "is-file"]], "IS_FLOAT_IN_RANGE": [[12, "is-float-in-range"]], "IS_IMAGE": [[12, "is-image"]], "IS_INT_IN_RANGE": [[12, "is-int-in-range"]], "IS_IN_DB": [[12, "is-in-db"]], "IS_IN_DB and Tagging": [[12, "is-in-db-and-tagging"]], "IS_IN_SET": [[12, "is-in-set"]], "IS_IN_SET and Tagging": [[12, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[12, "is-ipaddress"]], "IS_IPV4": [[12, "is-ipv4"]], "IS_IPV6": [[12, "is-ipv6"]], "IS_JSON": [[12, "is-json"]], "IS_LENGTH": [[12, "is-length"]], "IS_LIST_OF": [[12, "is-list-of"]], "IS_LIST_OF_EMAILS": [[12, "is-list-of-emails"]], "IS_LOWER": [[12, "is-lower"]], "IS_MATCH": [[12, "is-match"]], "IS_NOT_EMPTY": [[12, "is-not-empty"]], "IS_NOT_IN_DB": [[12, "is-not-in-db"]], "IS_NULL_OR": [[12, "is-null-or"]], "IS_SAFE": [[12, "is-safe"]], "IS_SLUG": [[12, "is-slug"]], "IS_STRONG": [[12, "is-strong"]], "IS_TIME": [[12, "is-time"]], "IS_UPLOAD_FILENAME": [[12, "is-upload-filename"]], "IS_UPPER": [[12, "is-upper"]], "IS_URL": [[12, "is-url"]], "Implanta\u00e7\u00e3o em PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserir e atualizar a partir de um dicion\u00e1rio": [[6, "inserting-and-updating-from-a-dictionary"]], "Instalando a partir de bin\u00e1rios": [[2, "installing-from-binaries"]], "Instalando a partir de fonte (localmente)": [[2, "installing-from-source-locally"]], "Instala\u00e7\u00e3o de fonte (globalmente)": [[2, "installing-from-source-globally"]], "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento": [[2, null]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Interface de autentica\u00e7\u00e3o": [[13, "auth-ui"]], "Internacionaliza\u00e7\u00e3o": [[11, null]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[14, "key-features"]], "LDAP": [[13, "ldap"]], "Left outer join": [[6, "left-outer-join"]], "Linguagem de template YATL": [[8, null]], "Local de pasta do banco de dados": [[6, "database-folder-location"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Mais sobre envios": [[6, "more-on-uploads"]], "Many to many relation": [[6, "many-to-many-relation"]], "Marca\u00e7\u00e3o de registros": [[6, "tagging-records"]], "Melhoramento": [[2, "upgrading"]], "Migra\u00e7\u00e3o resumo controle": [[6, "migration-control-summary"]], "Migra\u00e7\u00f5es": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Modelos": [[4, "templates"]], "Multiple Tags objects": [[13, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "Nota sobre novo DAL e adaptadores": [[6, "note-on-new-dal-and-adapters"]], "O Dashboard": [[3, null]], "O fixture DAL": [[5, "the-dal-fixture"]], "O fixture flash": [[5, "the-flash-fixture"]], "O grupo Google": [[1, "the-google-group"]], "O objeto `` request``": [[4, "the-request-object"]], "O pool de conex\u00f5es": [[6, "connection-pooling"]], "O que \u00e9 py4web?": [[0, null]], "OAuth2 with Discord": [[13, "oauth2-with-discord"]], "OAuth2 with Facebook": [[13, "oauth2-with-facebook"]], "OAuth2 with Google": [[13, "oauth2-with-google"]], "Operadores l\u00f3gicos": [[6, "logical-operators"]], "Op\u00e7\u00e3o `` comando call``": [[2, "call-command-option"]], "Op\u00e7\u00e3o `` comando new_app``": [[2, "new-app-command-option"]], "Op\u00e7\u00e3o `` comando run``": [[2, "run-command-option"]], "Op\u00e7\u00e3o `` comando set_password``": [[2, "set-password-command-option"]], "Op\u00e7\u00e3o `` comando setup``": [[2, "setup-command-option"]], "Op\u00e7\u00e3o `` comando shell``": [[2, "shell-command-option"]], "Op\u00e7\u00e3o `` comando version``": [[2, "version-command-option"]], "Op\u00e7\u00f5es de linha de comando": [[2, "command-line-options"]], "Or\u00e1culo": [[6, "oracle"]], "Os campos de refer\u00eancia": [[14, "reference-fields"]], "Os valores por defeito com `` `` coalesce`` e coalesce_zero``": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Other validators": [[12, "other-validators"]], "Outros operadores": [[6, "other-operators"]], "Outros par\u00e2metros do construtor DAL": [[6, "other-dal-constructor-parameters"]], "PAM": [[13, "pam"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Palavras-chave reservadas": [[6, "reserved-keywords"]], "Pegadinhas": [[6, "gotchas"]], "Personalizados `` tipos Field``": [[6, "custom-field-types"]], "Plataformas e pr\u00e9-requisitos suportados": [[2, "supported-platforms-and-prerequisites"]], "Plugins de Autentica\u00e7\u00e3o": [[13, "auth-plugins"]], "Pluralizar": [[11, "pluralize"]], "Primeira corrida": [[2, "first-run"]], "Procedimentos de configura\u00e7\u00e3o": [[2, "setup-procedures"]], "Pr\u00e9-requisitos": [[1, "prerequisites"]], "P\u00e1ginas est\u00e1ticas": [[4, "static-web-pages"]], "P\u00e1ginas web din\u00e2micas": [[4, "dynamic-web-pages"]], "Range, set and equality validators": [[12, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Recursivas `` s SELECT``": [[6, "recursive-selects"]], "Recursos": [[1, "resources"]], "Rede": [[14, null]], "Renderizando Rows com represent": [[6, "rendering-rows-using-represent"]], "Representa\u00e7\u00e3o de dados": [[6, "data-representation"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Rotas": [[4, "routes"]], "SQLite": [[6, "sqlite"]], "Searching and filtering": [[14, "searching-and-filtering"]], "Selects com cache": [[6, "caching-selects"]], "Sending messages using a background task": [[16, "sending-messages-using-a-background-task"]], "Server-side DOM": [[10, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Sess\u00e3o no Dashboard": [[3, "login-into-the-dashboard"]], "Sharing sessions": [[5, "sharing-sessions"]], "Simple conversion examples": [[15, "simple-conversion-examples"]], "Sintaxe b\u00e1sica": [[8, "basic-syntax"]], "Sorted options": [[12, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[12, "special-type-validators"]], "Standard widgets": [[12, "standard-widgets"]], "Strings de conex\u00e3o (o par\u00e2metro uri)": [[6, "connection-strings-the-uri-parameter"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Tabelas pregui\u00e7osos": [[6, "lazy-tables"]], "Table methods": [[6, "table-methods"]], "Template Functions": [[8, "template-functions"]], "Temporiza\u00e7\u00e3o de consultas": [[6, "timing-queries"]], "Text format validators": [[12, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Database Abstraction Layer (DAL)": [[6, null]], "The Discord server": [[1, "the-discord-server"]], "The Form constructor": [[12, "the-form-constructor"]], "The Grid object": [[14, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[16, "the-q-object"]], "The RestAPI": [[7, null]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[16, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The scheduler": [[16, "the-scheduler"]], "The sidecar parameter": [[12, "the-sidecar-parameter"]], "Transa\u00e7\u00e3o distribu\u00edda": [[6, "distributed-transaction"]], "Tutoriais e v\u00eddeo": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[13, "two-factor-authentication"]], "Um local de trabalho python moderna": [[1, "a-modern-python-workplace"]], "Um para muitos rela\u00e7\u00e3o": [[6, "one-to-many-relation"]], "Understanding the design": [[2, "understanding-the-design"]], "Usando DAL sem definir tabelas": [[6, "using-dal-without-define-tables"]], "Usando o DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Usando templates": [[14, "using-templates"]], "Usando um seleto para uso de mem\u00f3ria inferior \u00e0 base de iterador": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "User Impersonation": [[13, "user-impersonation"]], "Using Auth inside actions": [[13, "using-auth-inside-actions"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[10, "using-inject"]], "Using callable parameters": [[14, "using-callable-parameters"]], "Using local storage": [[5, "using-local-storage"]], "Using the dashboard app with databases": [[6, "using-the-dashboard-app-with-databases"]], "Validation functions": [[12, "validation-functions"]], "Valida\u00e7\u00e3o de formul\u00e1rio": [[12, "form-validation"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "Widgets": [[12, "widgets"]], "`` A``": [[10, "a"]], "`` BEAUTIFY``": [[10, "beautify"]], "`` BODY``": [[10, "body"]], "`` Belongs``": [[6, "belongs"]], "`` CAT``": [[10, "cat"]], "`` Comando SELECT``": [[6, "select-command"]], "`` Count``, `` isempty``, `` DELETE``, `` update``": [[6, "count-isempty-delete-update"]], "`` Def \u2026 return``": [[8, "def-return"]], "`` Div``": [[10, "div"]], "`` Drop``": [[6, "drop"]], "`` EM``": [[10, "em"]], "`` Find``, `` exclude``, `` sort``": [[6, "find-exclude-sort"]], "`` Form``": [[10, "form"]], "`` Format``: representa\u00e7\u00e3o da ficha": [[6, "format-record-representation"]], "`` H1``, `` h2``, `` H3``, `` H4``, `` H5``, `` H6``": [[10, "h1-h2-h3-h4-h5-h6"]], "`` HEAD``": [[10, "head"]], "`` HTML``": [[10, "html"]], "`` IMG``": [[10, "img"]], "`` INPUT``": [[10, "input"]], "`` I``": [[10, "i"]], "`` Id``: Notas sobre a chave prim\u00e1ria": [[6, "id-notes-about-the-primary-key"]], "`` If \u2026 elif \u2026 else``": [[8, "if-elif-else"]], "`` Insert``": [[6, "insert"]], "`` LI``": [[10, "li"]], "`` Label``": [[10, "label"]], "`` Like``, `` ilike``, `` regexp``, `` startswith``, `` endswith``, `` contains``, `` upper``, `` lower``": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "`` Lista: `` e `` contains``": [[6, "list-type-and-contains"]], "`` Migrate``, `` fake_migrate``": [[6, "migrate-fake-migrate"]], "`` OL``": [[10, "ol"]], "`` OPTION``": [[10, "option"]], "`` On_define``": [[6, "on-define"]], "`` Orderby``, `` groupby``, `` limitby``, `` distinct``, `` having``, `` orderby_on_limitby``, `` join``, `` left``, `` cache``": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "`` PRE``": [[10, "pre"]], "`` P``": [[10, "p"]], "`` Para \u2026 in``": [[8, "for-in"]], "`` Primarykey``: Suporte para tabelas legadas": [[6, "primarykey-support-for-legacy-tables"]], "`` Query``, `` Set``, `` Rows``": [[6, "query-set-rows"]], "`` Redefine``": [[6, "redefine"]], "`` Rname``: nome real": [[6, "rname-real-name"]], "`` SCRIPT``": [[10, "script"]], "`` SELECT``": [[10, "select"]], "`` SPAN``": [[10, "span"]], "`` STYLE``": [[10, "style"]], "`` Sequence_name``": [[6, "sequence-name"]], "`` Sum``, `` avg``, `` min``, `` `` max`` e len``": [[6, "sum-avg-min-max-and-len"]], "`` TABLE``, `` TR``, `` TD``": [[10, "table-tr-td"]], "`` TAG``": [[10, "tag"]], "`` TBODY``": [[10, "tbody"]], "`` TEXTAREA``": [[10, "textarea"]], "`` THEAD``": [[10, "thead"]], "`` TH``": [[10, "th"]], "`` TITLE``": [[10, "title"]], "`` TT``": [[10, "tt"]], "`` Table_class``": [[6, "table-class"]], "`` Tentar \u2026 exceto \u2026 else \u2026 finally``": [[8, "try-except-else-finally"]], "`` Trigger_name``": [[6, "trigger-name"]], "`` UL``": [[10, "ul"]], "`` URL``": [[10, "url"]], "`` Update_or_insert``": [[6, "update-or-insert"]], "`` Update_record``": [[6, "update-record"]], "`` Validate_and_insert``, `` validate_and_update``": [[6, "validate-and-insert-validate-and-update"]], "`` While``": [[8, "while"]], "`` XML``": [[10, "xml"]], "`` Year``, `` month``, `` day``, `` hour``, `` minutes``, `` seconds``": [[6, "year-month-day-hour-minutes-seconds"]], "`` _Lastsql``": [[6, "lastsql"]], "`` `` As_dict`` e as_list``": [[6, "as-dict-and-as-list"]], "`` `` Filter_in`` e filter_out``": [[6, "filter-in-and-filter-out"]], "`` `` First`` e last``": [[6, "first-and-last"]], "`` `` Plural`` e singular``": [[6, "plural-and-singular"]], "`` `` commit`` e rollback``": [[6, "commit-and-rollback"]], "`` case``": [[6, "case"]], "`` executesql``": [[6, "executesql"]], "`` polymodel``": [[6, "polymodel"]], "assinatura define_table": [[6, "define-table-signature"]], "block and super": [[8, "block-and-super"]], "cache, em cache": [[6, "cache-cacheable"]], "children": [[10, "children"]], "distinto": [[6, "distinct"]], "extend and include": [[8, "extend-and-include"]], "filtros comuns": [[6, "common-filters"]], "find": [[10, "find"]], "groupby, tendo": [[6, "groupby-having"]], "htmx": [[16, "htmx"]], "htmx usage in Form": [[16, "htmx-usage-in-form"]], "htmx usage in Grid": [[16, "htmx-usage-in-grid"]], "juntar-se, deixou": [[6, "join-left"]], "limitby": [[6, "limitby"]], "modifica\u00e7\u00e3o da tabela e campo em tempo de execu\u00e7\u00e3o": [[6, "run-time-field-and-table-modification"]], "ordenar por": [[6, "orderby"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "py4web and asyncio": [[16, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: o manual de refer\u00eancia": [[17, null]], "retornos de chamada no registro de inser\u00e7\u00e3o, exclus\u00e3o e atualiza\u00e7\u00e3o": [[6, "callbacks-on-record-insert-delete-and-update"]], "string.format": [[16, "string-format"]], "two_factor_required": [[13, "two-factor-required"]], "two_factor_send": [[13, "two-factor-send"]], "two_factor_tries": [[13, "two-factor-tries"]], "two_factor_validate": [[13, "two-factor-validate"]], "utils.js": [[16, "utils-js"]], "versionamento recorde": [[6, "record-versioning"]], "\u00cdndices": [[6, "indexes"]], "\u00cdndices e tabelas": [[17, "indices-and-tables"]], "\u201cAccessing OS files\u201d example": [[15, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[15, "form-and-flash-example"]], "\u201cHello world\u201d example": [[15, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[15, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[15, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[15, "returning-args-example"]], "\u201cReturning variables\u201d example": [[15, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[15, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[15, "view-example"]], "\u201cauth\u201d example": [[15, "auth-example"]], "\u201cgrid\u201d example": [[15, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-1", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-1.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"0": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "00": 7, "01": 7, "02": [6, 12], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "08": 12, "0x4e86": 12, "0x7fa533ff7640": 10, "1": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "10": [2, 6, 7, 8, 10, 11, 12, 13, 16], "100": [2, 6, 7, 8, 12, 16], "1000": [5, 6, 12, 16], "1000ms": 16, "100px": 16, "1024": 12, "1048576": 12, "10px": 14, "11": [6, 12], "111111": 16, "11211": 5, "12": 12, "120": 6, "123": [10, 12], "123218": 7, "123456": 12, "125": 6, "127": [2, 3, 4, 5, 12, 13, 14], "13": [6, 12], "132635": 7, "14": [8, 12, 14], "15": [6, 12, 13, 14], "16": 12, "168": 12, "169": 12, "16px": 8, "172": [6, 12], "174": 6, "178974": 7, "19": [6, 7, 12], "192": [6, 12], "1963": 12, "198": 6, "199": 12, "19t05": 7, "1e100": 6, "1kb": 12, "1l": 6, "1mb": 12, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 10, 11, 12, 13, 15, 16], "20": [2, 7, 11, 12], "200": [7, 12, 15, 16], "2001": 12, "2002": 12, "2005": 6, "2007": 0, "2008": 12, "2009": 12, "200ms": 16, "200x200": 12, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 13, "227": 6, "239": 6, "2396": 12, "24": 12, "254": 12, "255": 12, "256": 6, "2616": 12, "28": 12, "2em": 16, "2px": 16, "3": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "30": [2, 6, 8, 12], "301": 15, "309903": 7, "31": [6, 7, 12], "32": [6, 12], "322494": 7, "33": [6, 12], "34": 7, "3490": 12, "3492": 12, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 16, "4": [2, 5, 6, 7, 8, 12, 14], "40": [2, 10, 16], "400": [5, 15], "401": 13, "404": [4, 5, 13], "405515": 7, "43": 6, "45": [8, 12], "451907": 7, "453020": 7, "456": 12, "466030": 7, "4e": 12, "5": [5, 6, 7, 8, 11, 12, 13, 14, 16], "50": [2, 7], "500": 16, "500ms": 16, "512": 6, "53": 12, "54": 8, "559918": 7, "58": 8, "59": 12, "6": [5, 6, 7, 12, 13, 15, 16], "60": [5, 6], "63": [6, 12], "6379": 5, "64": [6, 8, 16], "65": 6, "6to4": 12, "7": [2, 7, 8, 12, 15], "70": 7, "74": 6, "75": 7, "768": 6, "8": [2, 6, 7, 12], "80": [4, 7, 12], "8000": [2, 3, 4, 12, 13, 14], "86": 12, "8601": 7, "8em": [8, 16], "9": [6, 7, 12, 14, 15], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [1, 2, 4, 5, 7, 8, 11, 13, 14, 15, 16, 17], "AS": 6, "Ao": [4, 6, 8, 14], "As": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "COMO": 6, "Com": 6, "Comando": 17, "Como": [6, 17], "Da": 6, "De": [0, 1, 4, 6, 17], "Do": [6, 8, 12, 14, 17], "E": [1, 6, 13], "Ela": [1, 6, 8], "Ele": [2, 3, 5, 6, 10], "Eles": [0, 4, 6], "Em": [2, 5, 6, 8, 10], "Essas": 0, "Esse": 4, "Esses": [5, 6], "Esta": [0, 1, 2, 4, 6], "Estas": 10, "Este": [2, 6, 8, 10, 14, 15], "Estes": 6, "For": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "Fora": 0, "H\u00e1": [1, 5, 6, 14], "Isso": [2, 4, 6], "Isto": [0, 2, 3, 4, 5, 6, 10, 14], "Mas": [1, 4, 6], "NO": 6, "Na": 0, "Nem": 6, "No": [2, 5, 6, 8, 13, 14], "Nos": 6, "N\u00f3s": [0, 1, 5], "O": [2, 8, 10, 12, 13, 17], "OU": 14, "Os": [0, 3, 4, 8, 10, 13, 17], "Por": [2, 3, 4, 5, 6, 10], "SE": 6, "Se": [1, 2, 3, 4, 6, 8, 10, 14], "Seu": 6, "Tamb\u00e9m": 6, "Um": 5, "Uma": [4, 6, 8, 10], "_": [2, 5, 12, 13, 16], "__": [1, 2, 4], "__dict__": 5, "__file__": [5, 7, 14], "__init": 2, "__init__": [2, 4, 5, 6, 7, 13, 14, 15, 16], "__prerequisite__": 5, "__prerequisites__": [5, 13], "__str__": [5, 8, 10], "_action": [10, 14], "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_updat": 6, "_all_": 4, "_alt": 10, "_always_": 13, "_and": 12, "_antes_": 6, "_autocomplet": 16, "_autocomplete_search_fields": 16, "_before_delet": 6, "_before_insert": 6, "_before_updat": 6, "_bgcolor": 10, "_c": 10, "_checked": 10, "_class": [5, 10, 12, 16], "_cols": 10, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_dat": 10, "_db": 6, "_dbnam": 6, "_default": [2, 4], "_delet": 6, "_disabled": 10, "_documentation": [1, 3], "_enable_record_versioning": 6, "_extr": 6, "_format": 6, "_href": [4, 5, 8, 10, 12, 14], "_hx": 16, "_id": [6, 10, 12, 16], "_insert": 6, "_listify": 6, "_method": [10, 14], "_nam": [6, 10, 12, 14, 16], "_next_url": 13, "_nonreserved": 6, "_onclick": 12, "_placehold": [12, 16], "_rows": 10, "_scaffold": [5, 8, 10, 12, 13, 14, 15, 17], "_search": 16, "_select": 6, "_selected": 10, "_sesson": 5, "_src": 10, "_style": [12, 16], "_tabl": [6, 12, 16], "_tablenam": 6, "_tag_": 13, "_timings": 6, "_titl": [12, 16], "_type": [6, 10, 12, 14, 16], "_u": 10, "_updat": 6, "_ur": 6, "_valu": [10, 12, 14, 16], "_xmlns": 10, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaa": 8, "ab": [10, 12], "aba": 3, "abaix": 6, "abas": 3, "abbreviated": 12, "abc": [10, 12], "abert": [1, 3, 6], "ability": 15, "able": [5, 6, 12], "abort": [4, 6], "about": [6, 7, 13, 14, 15, 16, 17], "abov": [4, 5, 6, 7, 8, 12, 14, 16], "abracadabr": 2, "abrir": 2, "absent": 2, "absolut": [2, 6, 15], "abspath": 4, "abstraction": [5, 15, 17], "abstra\u00e7\u00e3": 6, "acab": 6, "accdesc": 6, "accept": [4, 5, 12, 16], "acceptanc": 12, "accepted": [1, 2, 6, 12, 13, 15, 16], "accepting": 10, "accepts": 12, "access": [2, 4, 5, 6, 10, 13, 15, 16], "accessed": [6, 10, 12, 13], "accessibl": 4, "accessing": [5, 6], "accnum": 6, "accomplish": [4, 5, 6, 13], "accomplished": [6, 13, 15], "according": 8, "accordingly": 8, "account": 6, "acctype": 6, "aceit": [6, 11, 12], "aceler": 6, "acert": 2, "acess": [0, 2, 4, 5, 6], "acess\u00f3ri": 4, "achieved": [5, 15], "acim": [6, 7, 8, 13], "acion": 6, "acknowledgments": 17, "acompanh": 6, "acontec": 6, "acord": 6, "acrescent": 6, "across": [6, 8], "act": 6, "actiion": 13, "action": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "action_button": 14, "action_token": [5, 13], "actionfactory": 5, "actions": [4, 5, 6, 14, 15, 17], "activ": [6, 13], "activat": [2, 13], "activated": 13, "activating": 2, "activiti": 6, "acts": 12, "actu": 6, "actual": [5, 6, 8, 13, 14], "actualiz": 6, "actually": [6, 8], "ac\u00e7\u00e3": [4, 5, 6, 7], "ad": 13, "adapt": 13, "adapter_args": 6, "adapters": [6, 16], "adatabas": 13, "add": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "added": [0, 2, 5, 12, 13, 16], "adding": [6, 12, 13, 14], "addition": [6, 8], "additional": [4, 5, 6, 7, 8, 12, 13, 14], "additional_cl": 14, "additional_styl": 14, "address": [2, 5, 12, 13], "adds": 16, "adi": 6, "adiant": 13, "adicion": [2, 5, 11, 12, 13, 14], "adicional": [2, 5, 6], "adi\u00e7\u00e3": 6, "adjust": 1, "admin": [5, 15], "admin_access": 5, "admin_emails": 5, "admin_list": 5, "admin_only": 5, "adminaccess": 5, "administr": [0, 6], "administrativ": 2, "administrator": 2, "adquir": 6, "advanc": [2, 13, 14], "advanced": [14, 17], "advantag": [2, 6, 8, 16], "advisabl": 6, "advised": 14, "affecting": 6, "after": [5, 6, 8, 12, 13, 14, 16], "after_connection": 6, "after_delet": 6, "after_insert": 6, "after_updat": 6, "aftermath": 6, "again": [2, 4, 5, 6, 12, 13, 16], "against": [6, 7, 10, 12, 13, 14], "age": 6, "aggregat": 6, "agir": [6, 10], "agn\u00f3st": 4, "agor": [2, 4, 5, 6, 8], "agrad": 10, "agreg": 6, "aid": 6, "aims": 0, "aind": [2, 6, 13], "ajax": [8, 14, 16], "ajud": [0, 2, 6, 15, 17], "ajust": 6, "aka": [1, 13], "alcanc": 6, "alchemy": 6, "aleat\u00f3r": 6, "alert": [5, 8, 10, 12, 15], "alerts": [5, 8, 15], "alex": 6, "alfar": [0, 1], "alg": 12, "algo": [5, 6, 7, 8], "algorithm": [5, 12], "algum": [4, 6, 10], "alguns": [0, 2, 4, 5, 6, 7, 8, 10], "ali": [6, 12], "aliment": 6, "aliv": 16, "all": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "allocated": 12, "allow": [6, 7, 8, 10, 12, 13, 14, 16], "allowed": [6, 7, 12, 13], "allowed_actions": 13, "allowed_attribut": 10, "allowed_overrid": 12, "allowed_patterns": 7, "allowed_schem": 12, "allowing": [1, 12, 16], "allows": [2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 16], "almost": 5, "along": [2, 4, 10, 12, 13, 16], "alphabetically": 12, "alphanumeric": 12, "already": [2, 4, 5, 10, 12, 13, 14], "also": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "alt": 10, "alter": [0, 2, 4, 5, 6, 11], "altering": 6, "altern": 6, "alternat": [5, 6, 16], "alternativ": [2, 6, 8, 12], "although": [2, 8, 12], "alvo": 6, "always": [0, 2, 4, 5, 6, 12, 16], "al\u00e9m": [4, 6, 14], "am": [12, 16], "amazon": 6, "ambas": 6, "ambient": 2, "ambigu": [4, 6], "ambos": [4, 5, 6], "among": [6, 12], "amount": 6, "ampli": 1, "an": [0, 1, 2, 3, 5, 6, 8, 10, 12, 13, 14, 15, 16, 17], "analis": [4, 6, 11], "analogy": 15, "ancestor": 10, "anchor": 16, "and": [0, 1, 2, 3, 4, 5, 10, 17], "andaim": 4, "andrew": 1, "anex": 6, "angle": 8, "angul": 16, "angularjs": 0, "aninh": [6, 10], "anonymous": [6, 8, 12], "anoth": [4, 5, 6, 8, 12, 13], "anotherpath": 5, "ansi": 6, "answer": 1, "anteced": 4, "anterior": [2, 6], "antes": [1, 6, 8, 10, 13, 14], "antig": 15, "any": [2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "anyhow": 2, "anyobj": 6, "anything": 4, "anyway": 6, "anywher": [8, 13, 15], "an\u00e1lis": 6, "apag": 12, "aparec": 6, "aparent": 6, "apen": [2, 5, 6, 7], "api": [0, 6, 7, 10, 12, 16], "api_key": 16, "api_version": 7, "apis": [0, 6, 13, 15], "aplic": [0, 2, 3, 4, 5, 14, 15], "apoi": 6, "apont": 6, "app": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "app1": 5, "app1_session": 5, "app2": 5, "app_fold": 15, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appe": [6, 12], "append": [6, 10, 12, 13, 14, 16], "append_id": 14, "appended": [5, 6], "apple": 12, "appli": [6, 12, 16], "application": [2, 4, 5, 6, 8, 12, 13, 15, 16], "applications": [0, 2, 3, 4, 6, 12, 13, 14], "applied": [5, 6, 12, 14, 16], "apply": [0, 5, 12, 13, 14], "applying": [6, 14], "appnam": [2, 4, 5, 13, 15], "appname_session": 5, "approach": [6, 15], "appropriat": [6, 12], "appropriately": 6, "approv": 13, "apps": [0, 1, 2, 3, 5, 6, 8, 13, 15, 17], "apps_fold": 2, "aprend": 1, "apresent": 8, "apropri": 6, "aproxim": 6, "apt": 13, "ap\u00f3s": [2, 6, 14], "aqu": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14], "aquel": [6, 13], "arbitrary": [4, 13], "arbitr\u00e1ri": 6, "archive_db": 6, "archive_nam": 6, "are": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "aren": 6, "args": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 10, 12, 13, 16], "arguments": [2, 5, 6, 8, 10, 12, 13, 15, 16], "arithmetic": 12, "armazen": [0, 2, 5, 6, 10], "around": [1, 15], "arquiv": [0, 2, 3, 4, 5, 6, 13, 17], "arrang": 12, "array": 16, "arriv": [0, 6], "as_ordered_dict": 6, "asci": 12, "asid": 16, "ask": [13, 16], "asked": [2, 13], "asking": 5, "aspas": 6, "aspects": 4, "assert": [6, 16], "assets": 2, "assigned": [6, 12, 13, 15], "assigning": [15, 16], "assignment": 8, "assigns": 16, "assim": [6, 8], "assinatur": [4, 5], "assist": 4, "assistent": 10, "assoc": [6, 11], "associat": 13, "associated": [6, 12, 13], "assum": [2, 5, 6, 7, 11, 12], "assumed": 15, "assuming": [5, 6], "async": 16, "asynchronously": 16, "asynci": 17, "at": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "atend": [2, 6], "ativ": [2, 6], "atrav\u00e9s": [6, 8, 10, 13], "atribut": [5, 10], "atribu\u00edd": 6, "attached": [6, 13], "attaching": 15, "attacks": [5, 10], "attempted": 12, "attempting": 6, "attempts": [6, 13], "attention": [4, 6], "attribut": [4, 5, 6, 10, 12, 14, 15, 16], "attributes_plugin": 16, "attributespluginhtmx": 16, "attrs": [12, 14, 16], "atual": [2, 6], "atualiz": [2, 17], "aug": 12, "august": 12, "aul": 14, "aut": 10, "autentic": 6, "auth": [0, 2, 4, 6, 8, 10, 16, 17], "auth_group": 13, "auth_groups": 13, "auth_plugins": 13, "auth_simple_token": 13, "auth_us": [5, 6, 13, 16], "auth_user_tag_groups": [6, 13], "auth_user_tagged_groups": 13, "authenticat": 13, "authenticated": [5, 6], "authentication": [5, 14, 17], "author": 13, "authoriz": [6, 7, 13], "authorization": [5, 6, 17], "authorized": 13, "auto_import": 6, "auto_process": [14, 16], "autocomplete_query": 16, "autodelet": 6, "autogenerated": 6, "automat": [2, 4, 6, 8, 10, 13, 14], "automatic": [4, 6, 8, 15], "automatically": [2, 3, 4, 5, 6, 12, 13, 14, 15, 16], "autoriz": 6, "auxili": [5, 6, 8, 10], "availabl": [1, 2, 6, 8, 10, 13, 15, 16], "avali": [6, 8], "avanc": 17, "avis": [5, 6, 13], "avoid": [1, 2, 5, 6, 12, 13], "avoided": 8, "avoiding": [5, 13], "avoids": 6, "awar": 6, "awesom": [8, 14], "axel": 0, "axolotl": 0, "azul": 4, "a\u00e7\u00e3": [4, 5, 6, 13, 17], "a\u00e7\u00f5": 5, "a\u00e7\u00fac": 5, "b": [5, 6, 8, 10, 12, 15, 16], "back": [5, 6, 12], "backend": [4, 6], "backends": 6, "background": [2, 4, 12, 17], "backported": 6, "backslash": 4, "backup": [2, 6, 12], "backward": 12, "backwards": [0, 12], "bad_days": 6, "bails": 6, "banan": 12, "banc": [0, 1, 3, 4, 5, 13], "bar": [8, 14], "barc": 6, "barr": 4, "barri": 0, "bas": [0, 2, 4, 8, 14, 16], "base64": [6, 8, 16], "base_dn": 13, "baseadapt": 6, "based": [0, 2, 3, 4, 5, 7, 8, 12, 13, 14, 15, 16], "bash": 2, "basic": [2, 5, 17], "basically": 16, "bast": 2, "bat": 2, "batman": [7, 12, 14], "battl": 0, "be": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "bear": 13, "beasley": 0, "becaus": [0, 2, 4, 5, 6, 8, 10, 12, 13, 14, 16], "becom": [12, 16], "bed": 11, "been": [0, 2, 5, 6, 8, 12, 13], "befor": [2, 5, 6, 8, 12, 13, 14], "before_delet": 6, "before_insert": 6, "before_updat": 6, "begin": [12, 14], "beginners": 2, "beginning": [8, 12, 13], "behavior": [4, 5, 6, 12, 15, 16], "behaviour": [2, 4, 6, 14], "being": [4, 5, 6, 7, 8, 12, 16], "believ": [0, 5], "belong": [13, 15], "belonging": 6, "belongs": 13, "below": [5, 6, 7, 12, 14], "bem": [0, 5, 6, 13], "benefits": 16, "benef\u00edci": 6, "best": [2, 5, 6], "bett": [0, 1, 2, 4, 6, 14, 15, 16], "between": [5, 10, 12, 15], "beyond": 12, "bgcolor": 10, "bibliotec": [0, 4, 11], "big": 15, "bigint": 6, "bigint_id": 6, "bilhet": [0, 3, 6], "bilh\u00e9t": 0, "bin": 2, "binari": 2, "binary": 6, "bind": 16, "bin\u00e1ri": 6, "birthplac": 6, "bit": [12, 13], "bitbucket": 1, "black": [8, 12], "blank": [12, 14], "blanks": 12, "blink": 16, "blob": [1, 6], "bloc": [8, 10], "block": [4, 13, 16], "blockquot": 10, "blocks": 8, "blog": [1, 6, 10], "blog_post": 6, "bloqu": 13, "blu": [4, 6, 12, 15], "bmp": 12, "boas": 2, "boat": 6, "bob": 6, "body": [4, 8, 13, 14, 16], "boilerplat": 5, "bold": 10, "bom": 2, "bonit": 6, "book": 6, "boolean": [6, 14], "booleans": 6, "boost": [6, 8], "bootstrap": 14, "bord": 16, "botar": 0, "both": [1, 2, 5, 6, 8, 12, 13, 15], "bottl": [0, 4, 5, 8, 15], "bottle_app": 2, "bottleneck": 16, "bottlepy": [4, 5], "bottom": 12, "bot\u00e3": 3, "bot\u00f5": [3, 17], "boundari": 12, "boundary": 12, "box": [0, 6, 12], "br": [8, 10], "bracket": 8, "brackets": [8, 12], "branch": [1, 2], "break": [2, 6], "breaking": 6, "breaks": 12, "breez": 1, "brev": 4, "briefly": 2, "broken": [0, 6, 12], "brows": [1, 2, 3, 5, 7, 8, 13, 14, 16], "browsers": 16, "browsing": 3, "bruc": [7, 14], "brut": 6, "bsd": 1, "buff": 6, "buffering": 4, "bug": 6, "bugs": 1, "build": [1, 2, 4, 5, 10, 14, 16], "building": [4, 12, 16], "built": [0, 1, 4, 5, 6, 8, 12, 16, 17], "bulk_insert": 6, "bulletproof": 6, "bulm": [12, 14, 16], "bunch": 2, "busc": [3, 6, 14], "busing": 16, "but": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "button": [3, 4, 5, 12, 14, 16], "buttons": [10, 12, 14, 16], "by": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "bypass": [12, 13], "bypassed": 13, "byte": 12, "bytecod": 8, "bytes": 6, "b\u00e1sic": [0, 1, 6, 17], "c": [1, 2, 3, 5, 6, 8, 10, 12, 15], "ca": 12, "cabec": [10, 14], "cabe\u00e7alh": [4, 10], "cach": [0, 2, 4, 5, 12], "cache_db_select": 6, "cacheabl": 6, "cached": 5, "cache\u00e1vel": 6, "caching": [4, 6, 17], "cachorr": 11, "cad": [2, 4, 5, 8, 11, 14], "caiu": 6, "caix": [0, 6, 10], "calcul": 6, "calend": 14, "call": [0, 5, 6, 8, 12, 13, 16], "callabl": [10, 12], "callback": [6, 12, 13, 16], "callback_url": 13, "called": [1, 2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "calling": [5, 6, 8], "calls": [2, 5, 6, 8, 16], "cam": [6, 11], "caminh": [2, 4, 6, 14], "camp": [5, 7, 10, 12, 17], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "cancel": [12, 16], "cancel_attrs": 16, "cannot": [2, 4, 5, 6, 8, 12, 13, 16], "capabiliti": [14, 16], "capability": 13, "capac": 0, "capaz": [1, 2], "capitaliz": 16, "captur": 16, "cap\u00edtul": [2, 4, 5, 15], "car": 6, "caract": [6, 10], "caracter": 4, "caracter\u00edst": 17, "card": 6, "careful": [5, 6, 8, 15, 16], "carg": 6, "carl": 6, "carreg": [0, 6], "carroll": 0, "carry": 15, "cart": 5, "car\u00e1ct": [4, 6], "cas": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 15, 16], "cascading": 6, "cascat": 6, "case_sensitiv": 6, "cassi": 0, "caus": [6, 12], "caveat": [6, 8, 15], "caveats": 17, "cd": 2, "cdnjs": [8, 14], "celery": 17, "cent": [5, 6, 8], "century": 12, "ceo": [7, 14], "cerc": 6, "cert": [1, 2, 6, 14], "certain": [6, 8, 12, 14], "certez": 6, "certificat": 2, "certifiqu": [6, 11], "cf": 4, "cgi": 12, "cha": 6, "challeng": 13, "cham": [2, 4, 5, 7, 8, 11, 14], "chang": [1, 2, 3, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17], "change_email": 13, "change_password": [8, 13], "changed": [2, 3, 4, 5, 6, 8, 12, 15, 16], "changed_fil": 4, "changing": [6, 13], "channel": 1, "chapt": [3, 4, 5, 6, 8, 10, 12, 13, 14], "chapters": [1, 5], "char": 6, "charact": [6, 12], "characters": [6, 12], "charg": [2, 15], "chars": 13, "chat": 2, "chats": 1, "chav": [4, 8, 10, 11, 14], "chec": 11, "check": [3, 4, 5, 6, 12, 13, 14, 16], "check_": 16, "check_reserved": 6, "checkbox": [8, 10, 17], "checkboxwidget": 12, "checked": [10, 12, 13], "checking": [1, 12, 13, 15], "checks": [2, 6, 8, 12, 13], "cherry": 12, "chicag": 6, "children": 14, "choic": [1, 12, 14], "choos": [6, 12, 13], "choosen": 6, "chrom": [3, 16], "cient": 6, "cinc": 6, "circul": 6, "circumstanc": 5, "cit": [6, 10, 12], "cit0801": 7, "cit0802": 7, "cit1601": 16, "clar": 6, "clark": [7, 14], "clash": 12, "class": [5, 6, 8, 10, 12, 13, 15, 16], "class_inner_exceptions": 16, "class_styl": 14, "classific": [6, 14], "claud": 6, "claus": 6, "cle": 12, "clean": [5, 10], "cleanup": 0, "clearly": 16, "clev": 12, "cli": 2, "clic": 14, "click": [3, 10, 12, 14, 16], "clickabl": 14, "clicked": [14, 16], "clicks": [6, 16], "client": [0, 7, 12, 13, 16], "client_id": 13, "client_ip": 5, "client_secret": 13, "clients": 5, "clientsid": 16, "cliqu": [3, 14], "clock": 12, "clon": [2, 4, 6, 16], "cloned": 2, "clos": [6, 10], "closed": [6, 8], "closing": [5, 6], "cloudflar": [8, 14], "cl\u00e1usul": [6, 8], "cmd": 2, "cn": 13, "co": [6, 12], "coa": 6, "cod": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "codific": 6, "coding": 1, "cois": 6, "colegial": 13, "collapsibl": 10, "collection": [0, 15], "collections": 2, "collects": 2, "colnam": 6, "coloc": 17, "colon": 8, "color": [4, 6, 8, 10, 12, 16], "color_identifi": 4, "colors": [4, 6], "cols": 10, "colspan": 10, "column": [6, 14], "columns": [6, 17], "colun": [6, 14], "comand": 6, "comando": [3, 4, 6, 10, 17], "combin": [4, 5, 10, 14], "combined": [5, 6, 12], "come": [0, 5], "comec": [1, 2, 4, 6], "comes": [0, 5, 8, 12, 13, 14, 15, 16], "comet": 6, "coming": 5, "comm": [2, 16], "command": [2, 4, 6, 8], "commands": [2, 4, 6, 8, 10], "comment": [6, 10], "commit": [5, 7, 14, 16], "commits": [5, 6], "committed": [6, 15], "common": [2, 4, 5, 8, 12, 13, 15, 16], "common_filt": 6, "common_filters": 6, "commonality": 8, "communicat": 5, "communication": 6, "communications": 5, "community": [0, 6], "compact": 6, "company": 14, "compar": [6, 13, 15], "compared": 0, "comparing": 13, "comparison": [12, 13], "compartilh": [5, 6], "compat": 6, "compatibility": 12, "compatibl": [0, 1, 10, 12], "competitor": 0, "compil": [4, 8, 10, 12], "compilation": 8, "compiled": [4, 8, 10, 12], "compiled_css": 4, "compiling": 8, "complet": [0, 2, 6, 10, 12, 14, 16], "completed": [0, 6], "completely": [6, 8, 13], "complex": [1, 2, 4, 5, 6, 8, 10, 13, 15, 16], "complexiti": 16, "complexity": 16, "compliant": 16, "complicated": 5, "component": [0, 4, 5, 8, 10, 12, 13, 16], "component_1": 16, "components": [0, 3, 10, 12, 16], "comport": [4, 6, 10, 14], "compos": 2, "composing": 5, "compost": [6, 10], "compreend": [1, 14], "compressed": 4, "comprim": 3, "compriment": 6, "compris": 3, "compromet": [4, 6], "compromis": 0, "comput": 1, "computed": 17, "computing": 16, "comp\u00f5": 6, "comum": [5, 6], "comunic": 6, "comuns": 3, "concaten": 6, "concatenat": 10, "concatenating": 10, "conceived": 6, "concept": [0, 13], "conch": 2, "concorrent": 0, "concurrency": [6, 16], "concurrent": 16, "concurrently": [2, 12, 16], "cond": 5, "condicion": 8, "condicional": 6, "condition": [6, 12, 13, 17], "conditions": [6, 12], "condi\u00e7\u00e3": 6, "condi\u00e7\u00f5": 6, "conect": [6, 13], "conex\u00e3": 4, "conf": 6, "confiabil": 1, "config": [2, 4], "configur": [3, 13, 14, 15, 16, 17], "configuration": [1, 4], "configurations": 2, "configured": [5, 12, 15], "confirm": [2, 12, 14], "confirmation": 16, "confirmations": 16, "confirms": 13, "conflicts": 6, "conflit": [0, 2, 4, 6], "conform": [6, 13], "confund": 6, "confus": 6, "conhec": [1, 6], "conjunt": [6, 10, 11, 14], "conn": 5, "connect": [3, 6], "connecting": 6, "connection": [5, 6, 12], "connectionpool": 6, "connections": [5, 6, 15], "cons": 6, "conseg": 6, "consegu": 6, "consequenc": [6, 12, 16], "consequently": 12, "consid": [5, 8, 10, 12, 14, 16], "consider": [6, 8, 10], "considered": [5, 6, 8, 15], "consist": [6, 15], "consistency": 8, "consistent": 5, "consists": [6, 14], "consol": [2, 10, 13, 16], "constant": 12, "constraining": 15, "constraints": 4, "constru": [6, 10, 14], "constructing": 6, "construction": 4, "constructor": [6, 13, 17], "constructors": [6, 12], "construtor": [5, 10, 12, 17], "constru\u00e7\u00e3": [6, 10, 14], "constru\u00edd": [6, 14], "constr\u00f3": 6, "consult": [1, 7, 13, 14], "consulta1": 6, "cont": [2, 5, 10, 11, 13], "contador": [5, 6], "contag": 6, "contain": [2, 4, 5, 6, 8, 10, 12, 13, 16], "contained": [10, 12, 14], "containing": [0, 2, 5, 12, 13, 14, 16], "contains": [3, 5, 7, 8, 11, 12, 14, 15, 16], "contect": 8, "contenh": 5, "content": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "content_typ": 16, "contents": [8, 10, 16], "context": [3, 5, 6, 8, 13], "contextlib": 6, "contexts": 5, "conte\u00fad": [4, 6, 10], "continu": [0, 6, 8, 16], "contr": 6, "contribu": 17, "contributed": 0, "control": [2, 8, 12, 13, 14, 16], "controll": [5, 6, 8, 10, 12, 13, 14, 15, 16], "controllers": [4, 5, 6, 8, 10, 12, 13, 15, 16], "controls": 12, "contr\u00e1ri": [0, 4, 6, 8], "cont\u00e9m": [2, 4, 5, 6], "cont\u00eain": 6, "cont\u00eam": [6, 11], "convenienc": 5, "convenient": [6, 17], "convention": [8, 12, 15], "conventions": [4, 6], "conven\u00e7\u00e3": 4, "conversion": [12, 17], "convers\u00e3": 6, "convert": [4, 6, 10], "converted": [1, 6, 12], "converting": 6, "converts": 12, "cooki": [0, 4, 6, 12, 13, 16], "copi": 2, "copied": 2, "copy": [2, 3, 4, 6, 14], "copyfileobj": 6, "copying": [2, 8, 10, 17], "cor": [2, 4, 5], "cord": [4, 6, 11], "corey": 1, "corn": 14, "cornerston": 0, "corp": [8, 10], "corr": 17, "correct": [4, 13], "correct_cod": 13, "correctly": [4, 12], "corrent": 6, "correspond": [2, 4, 6, 11], "correspondent": [4, 6, 10], "corresponding": [3, 6, 13, 14, 15], "corresponds": [2, 6, 10], "corret": 6, "corrig": 1, "corromp": 6, "corrupted": 6, "corruption": 6, "costum": 6, "cot": 6, "cota\u00e7\u00e3": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 10, 12, 13, 15], "count": [5, 7, 13, 14, 16], "counterparts": 4, "coupl": 16, "cours": [1, 8], "cov": 4, "cp": 2, "creat": [0, 1, 2, 4, 5, 6, 8, 12, 13, 14, 16], "create_form": 12, "create_thing": 12, "created": [0, 2, 4, 5, 6, 8, 12, 13, 16], "created_by": 6, "created_on": 6, "creating": [1, 2, 5, 6, 13, 15, 16, 17], "creation": [6, 13], "creativ": 12, "creativity": 13, "credential_decod": 6, "cresc": 6, "cri": [2, 3, 4, 5, 6, 8, 10, 13, 14], "cria\u00e7\u00e3": [2, 6, 14], "crit": 12, "critical": 2, "crit\u00e9ri": 6, "cross": [5, 10], "crossorigin": 8, "crt": [2, 6], "crud": [3, 12, 16], "cruz": [1, 6], "crypt": 2, "cs": 5, "csrf": [5, 12], "csrf_protection": 12, "csrf_session": 12, "css": [1, 4, 5, 8, 10, 12, 13, 14, 16], "csv": 15, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "cuj": 6, "curl": 13, "current": [5, 6, 10, 13, 14, 15, 16], "current_record": 6, "current_us": [5, 13], "currently": [2, 5, 8], "curs": 1, "cursor": [6, 16], "curt": 6, "custom": [0, 5, 6, 8, 10, 15, 16, 17], "custom_check": 12, "custom_qualifi": 6, "customiz": [8, 12, 14], "customizabl": [12, 14], "customization": 12, "customizing": 17, "cx_oracl": 6, "c\u00edclic": 6, "c\u00f3dig": [4, 6, 8, 10], "c\u00f3p": 6, "d": [1, 2, 7, 10, 12], "dad": [0, 1, 3, 4, 5, 13, 17], "daemon": 2, "daemons": 16, "dal": [2, 4, 7, 12, 13, 14, 16, 17], "dals": 6, "dan": 0, "danc": 13, "dand": 4, "dangerous": 15, "daquel": 6, "dar": 6, "dash": 12, "dashboard": [2, 4, 5, 8, 12, 16, 17], "dashboard_mod": 2, "dat": [0, 2, 5, 6, 7, 8, 10, 13, 14, 15, 16], "data_label": 16, "databas": [0, 1, 3, 7, 13, 14, 15, 16, 17], "datalist": 16, "datetim": [4, 5, 6, 7, 12, 13, 16], "datetimewidget": 12, "day": 12, "days": [12, 13], "db": [2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_fold": [5, 7, 14], "db_nam": 6, "db_uid": 6, "dbadmin": 4, "dbi": 12, "dbo": 6, "dbset": 12, "dbstor": 5, "dc": 13, "dd": 12, "deal": [6, 16], "dealfar": 0, "debounc": 16, "debug": [1, 2, 5, 6, 8], "debugg": 1, "debugged": 8, "debuggers": 15, "debugging": [1, 4], "debugpy": [1, 2], "decid": [6, 12, 13, 14], "decim": 4, "decimal": [6, 12], "decimals": 12, "decl": [4, 6], "declar": [0, 4, 5, 6, 8], "declaration": 4, "declared": 5, "decod": 6, "decode_credentials": 6, "decoded": 6, "decomp\u00f5": 6, "decor": [1, 4, 17], "decorated": 15, "decorator": [4, 5, 6, 15], "decorators": [5, 15], "decreased": 13, "dedic": [1, 4, 15], "dedicated": [1, 5, 10], "def": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "default": [2, 3, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "defaults": [5, 6, 12, 14, 15], "deferred": [6, 16], "defin": [0, 4, 5, 8, 10, 12, 13, 14, 16], "define_tabl": [5, 7, 12, 13, 14, 15], "defined": [2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "defining": 14, "definit": 12, "definition": [6, 7, 12, 14], "definitions": [6, 7, 15], "defini\u00e7\u00e3": 6, "defini\u00e7\u00f5": 6, "deform": 11, "deix": 13, "del": [5, 6, 10], "delay": 16, "delaying": 16, "deleg": 6, "delet": [2, 4, 7, 12, 14, 16], "deletabl": [12, 13, 14], "delete_record": 6, "deleted": [6, 13], "deleting": [6, 14], "deletion": 6, "deletions": 6, "delimit": [0, 6, 8], "delimiters": [5, 15], "deliv": 16, "delt": 16, "dem": [1, 2, 16], "demand": 6, "denormaliz": 7, "denormalization": 6, "dentr": [0, 2, 4, 6, 14], "deny": 7, "depend": [4, 5, 6, 13], "dependenc": [0, 2, 15], "dependent": [2, 3, 4, 5], "depending": [6, 8, 12, 14], "depends": [5, 6, 15], "deploy": 2, "deployment": 1, "deployment_tools": 2, "depo": [2, 3, 6], "deprecated": [12, 16], "depur": [6, 8], "deriv": 6, "derived": [6, 12], "desat": 6, "desativ": 6, "desc": 14, "descart": 6, "descendant": 10, "descobert": [2, 11], "descompact": 2, "descrev": 6, "describ": [3, 12], "described": [2, 4, 5, 6, 12], "description": [6, 7, 12, 13], "descriptiv": 12, "descrit": [2, 4, 6, 14], "desd": [5, 6], "desej": [1, 2, 5, 6, 13, 14], "desempenh": 6, "desencad": 3, "desenvolv": 0, "desenvolvedor": [1, 8, 13, 14], "desfaz": 6, "design": [0, 13, 16, 17], "designed": [0, 4, 6, 8, 12, 13, 16], "desir": 8, "desired": [5, 12, 13], "desloc": 6, "desnormaliz": 7, "despej": 6, "dess": [0, 5, 6, 13], "dest": [4, 6, 12], "detail": [6, 10, 14, 16], "detail_fields": 12, "detailed": [2, 14], "details": [0, 1, 5, 6, 7, 8, 12, 14], "detalh": [6, 14], "determin": [4, 5, 6, 11, 12, 13, 14], "determined": [8, 12], "determining": 5, "deterministic": 5, "dev": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "develop": [5, 6, 8, 13, 14, 15], "developers": [0, 1, 6, 13, 16], "developing": 4, "development": [0, 1, 2, 4, 6], "development_tools": 2, "devic": 8, "devolv": [6, 8], "di": [0, 5], "diagr": 7, "dialect": 6, "dialects": 6, "dialet": 6, "dic": 17, "dicion\u00e1ri": [10, 11, 12], "dict": [4, 5, 6, 11, 12, 13, 14, 15, 16], "dictionari": 6, "dictionary": [4, 5, 6, 10, 12, 15], "did": [0, 4, 16], "didn": 2, "dif": 6, "diferenc": 6, "diferent": [2, 5, 6, 11, 14], "diff": 6, "differenc": [6, 12, 15], "different": [0, 2, 4, 5, 6, 8, 12, 13, 15, 16], "differs": [6, 14], "difficult": [2, 16], "dif\u00edcil": 1, "dig": 6, "digit": [12, 13], "digitally": 13, "dimensions": 12, "diminuish": 13, "dinam": 10, "din\u00e2m": [6, 17], "dir": [2, 12, 16], "direct": 6, "directiv": [2, 4, 8, 12], "directly": [2, 4, 5, 6, 7, 10, 12, 13, 14, 16], "directory": 13, "direit": [3, 6], "diret": [1, 5, 6, 8], "diret\u00f3ri": 4, "dirnam": [5, 7, 14], "disabl": [6, 14], "disabled": [7, 10, 12], "disallow": 12, "discord_client_id": 13, "discord_client_secret": 13, "discount": 6, "discounted_total": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discovered": 13, "discriminator": 13, "discuss": 3, "discussed": [6, 8, 10, 12], "discussion": 6, "discuss\u00e3": 1, "discuss\u00f5": 1, "discut": 6, "disk": 5, "dismissal": 15, "dismissibl": 5, "dispar": 6, "display": [5, 12, 13, 14, 16], "displayed": [3, 6, 10, 12, 14, 16], "displaying": [5, 12, 14], "displays": [13, 14], "dispon": 6, "dispon\u00edv": 1, "disposit": [4, 5, 13], "diss": [4, 6, 14], "distinct": [8, 12], "distinction": 6, "distinguish": 13, "distintion": 13, "distin\u00e7\u00e3": 6, "distribu": 6, "distribut": 6, "distributed_transaction_commit": 6, "distribution": 6, "ditched": 0, "div": [4, 5, 8, 12, 14, 15, 16], "divisibl": [8, 12], "division": [8, 10], "divis\u00e3": 8, "divmod": 6, "diz": [4, 6, 13, 14], "djang": [0, 1, 6, 15], "do_connect": 6, "dobr": 6, "dobrag": 6, "doc": 1, "dockerfil": 2, "docs": [1, 2, 4, 16], "doctor": 6, "doctyp": [8, 14], "document": [6, 8, 10, 12, 16], "documentation": [3, 12, 16], "documentations": 5, "documented": [5, 12], "does": [0, 2, 5, 6, 8, 12, 13, 14, 15, 16], "doesn": 5, "dog": [11, 12, 16], "doh": 12, "doing": [6, 12, 16], "dois": [0, 5, 6, 8], "dom": [8, 17], "domain": [12, 13, 17], "domains": 4, "don": [2, 4, 5, 6, 8, 12, 13, 14, 15], "dot": 12, "doubl": [2, 6, 8], "doubt": 14, "down": [12, 16], "download": [2, 12], "download_url": 12, "downs": 6, "downsid": [6, 15], "dramat": 6, "driv": 6, "driven": 0, "driver_args": 6, "drivers": 6, "drop": 12, "dropdown": [12, 14, 16], "dropdowns": 16, "dropping": 6, "dsn": 6, "duas": [5, 6], "due": [6, 7, 12], "dumb": 13, "dummy": [6, 8], "dummyrespons": 8, "dump": 5, "dumpfil": 6, "dumps": [6, 16], "duplicat": 6, "durability": 7, "during": [6, 14], "dynamic": [4, 8, 13], "dynamically": [6, 7, 8, 12], "d\u00e1": [0, 2, 14], "d\u00edgit": [4, 6], "ea": 6, "each": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "earli": [13, 16], "early": 5, "easi": [7, 8], "easiest": 6, "easily": [4, 5, 6, 8, 10, 12, 14], "easy": [5, 8, 12], "ebook": 1, "echo": 4, "ecosyst": 16, "edge": 16, "edif\u00edci": 5, "edit": [0, 2, 3, 4, 8, 12, 13, 14, 15, 16], "edit_sidec": 16, "editabl": [14, 15], "editing": [8, 10, 12, 13, 14], "editor": [1, 8], "editors": 8, "edi\u00e7\u00e3": 0, "edi\u00e7\u00f5": 3, "education": 2, "efeit": 6, "efet": 6, "effect": [3, 5, 6, 12], "efficient": [0, 5], "efficiently": [1, 15], "efforts": 1, "efg": 10, "eficient": 6, "eith": [4, 6, 12], "el": 10, "element": [6, 8, 10, 12, 14, 16], "elements": [6, 10, 12, 16], "elev": 6, "elimin": [6, 14], "else": [2, 5, 6, 12, 13, 14, 15, 16], "elt": 16, "el\u00e9tr": [4, 5, 13], "emacs": 8, "email": [2, 5, 8, 12, 13, 15, 16], "emails": [12, 16], "emails_onvalidation": 12, "embed": 10, "embedded": [5, 8, 12], "embedding": 8, "ember": 12, "embor": 6, "emerging": 16, "emit": [3, 6], "employ": 5, "employe": 14, "empreg": 14, "empres": 14, "empty": [2, 4, 12, 16], "empty_regex": 12, "en": [5, 7, 16], "enabl": [1, 5, 6, 7, 10, 13, 15, 16], "enable_record_versioning": 6, "enabled": [5, 7, 13, 15], "encaix": 4, "encapsulat": [8, 10], "encerr": 8, "enclosed": 6, "enclosing": 8, "encod": 6, "encoded": [5, 6, 12, 16], "encoding": 6, "encontr": [4, 6, 8, 11, 13], "encountered": 4, "encrypted": [2, 5, 13], "encryption": 0, "end": [4, 6, 8, 12, 13, 14, 16], "enderec": 6, "ending": 8, "endpoint": [13, 16], "ends": [6, 8, 15], "enforc": [5, 12], "enforced": [6, 12, 15], "enfrent": [1, 6], "engin": [6, 12], "engineering": 2, "english": 5, "enough": [12, 13], "enquant": [0, 6, 8], "enqueu": 16, "enqueue_run": 16, "enqueueing": 16, "ensin": 13, "ensur": [4, 12], "entant": [6, 8, 10, 14], "entend": 6, "enter": [4, 12, 13], "entered": [10, 13], "entering": 5, "enterpris": [1, 13], "entidad": 6, "entir": [8, 15, 16], "entity_quoting": 6, "entrad": [4, 6, 10, 11], "entri": [7, 12, 14], "entropy": 12, "entry": [0, 6, 15], "ent\u00e3": [2, 4, 6, 13], "env": 15, "envelop": 16, "envi": [10, 14], "environ": [5, 15], "environment": [0, 1, 4, 5, 6], "environments": [1, 4], "envolt": 11, "envolv": 6, "eo": 6, "epub": 1, "eq": 7, "equal": [7, 12, 13, 16], "equals": [10, 13], "equip": 5, "equivalent": [4, 5, 6, 10, 12, 15], "equivalently": 10, "errad": 6, "errlog": 5, "erro": [2, 3, 6], "error": [2, 3, 5, 6, 7, 8, 10, 12, 16, 17], "error_messag": 12, "error_pag": 4, "errorlog": 2, "errors": [1, 4, 5, 6, 7, 12, 15], "escap": [6, 8, 10], "escaped": [6, 8, 10], "escaping": [6, 8], "escolh": [1, 4, 6], "escond": 6, "escrav": 6, "escrev": [6, 8, 10], "escrit": [6, 8], "espac": [6, 11, 14], "espec": [5, 6, 10], "especial": [2, 4, 6, 11], "especializ": 6, "especially": [0, 2, 4, 5, 12, 13], "especif": [4, 6], "especific": [4, 5, 6], "especifiqu": 14, "espec\u00edf": [1, 2, 6], "esper": [4, 5, 6], "esprim": 4, "esquec": 6, "esquem": 6, "esquerd": [6, 14], "estabelec": 6, "establish": 6, "established": 6, "establishing": 15, "estad": [5, 6], "estam": 6, "estar": [4, 6, 10], "estend": [0, 5, 6], "estil": 14, "estiv": 6, "estrangeir": [1, 14], "estreit": 6, "estrutur": [4, 5, 6, 11], "est\u00e1t": [10, 17], "est\u00e3": [5, 6, 7, 10, 13], "etap": 6, "etc": [4, 5, 6, 7, 11, 15], "etiquet": [6, 10], "eval": 16, "evaluat": [5, 12, 16], "evaluated": [6, 7], "even": [1, 4, 5, 6, 8, 10, 12, 14, 15, 16], "event": 6, "event_tim": 6, "events": [2, 16], "eventually": 5, "ever": 6, "every": [0, 5, 6, 13, 14, 15, 16], "everybody": 13, "everyon": [0, 1], "everything": [2, 15, 16], "evit": [0, 2, 6, 8, 12], "evolution": 0, "ex": 6, "exact": [8, 15], "exactely": 13, "exactly": 5, "exampl": [1, 2, 4, 5, 6, 8, 10, 11, 17], "exat": [6, 8], "excellent": [1, 14], "except": [2, 4, 5, 6, 8, 10, 12, 13, 16], "exception": [5, 6, 12, 13, 16], "exceptions": [4, 5, 16], "excep\u00e7\u00e3": 8, "excerpt": 8, "excet": [5, 6], "exce\u00e7\u00e3": [4, 5, 6, 8], "exce\u00e7\u00f5": 4, "exclu": 6, "exclud": 12, "exclus": 6, "exclusiv": [12, 13], "exclusively": [0, 5, 6], "exclus\u00e3": 14, "exclu\u00edd": [2, 6], "exe": 2, "execu": [2, 4], "execut": [0, 2, 3, 6, 12], "executabl": [6, 10], "executed": [2, 5, 6, 8, 15, 16], "executing": 16, "execution": [1, 16], "exempl": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "exercis": 5, "exerc\u00edci": 13, "exib": [3, 6, 8, 10, 14], "exibi\u00e7\u00e3": [13, 14], "exig": [1, 2, 6, 13], "exist": [1, 2, 4, 5, 6, 8, 12, 16], "existenc": 13, "existent": [2, 6, 13, 14], "existing": [2, 5, 6, 12], "exists": [5, 6], "exit": 2, "exiting": 5, "exp": [4, 6], "expand": 3, "expect": [6, 12], "expected": [4, 15], "expects": [2, 10], "experienc": [1, 13], "experienced": 0, "experiment": [1, 12], "experimental": [2, 5], "experimenting": 1, "expir": [5, 13], "expiration": [5, 6, 13], "expired": 13, "explain": 12, "explained": [5, 6, 12, 14], "explanatory": 6, "explic": [4, 6], "explicit": [0, 2, 4, 5, 6, 8, 12], "explicitly": [0, 2, 5, 6, 8, 10, 12, 16], "explict": 6, "exploring": 3, "expl\u00edcit": [6, 13], "expor": [4, 13], "export": 17, "export_to_csv_fil": 6, "exporting": 6, "expos": [4, 5], "exposed": 6, "expost": 7, "express": 12, "expressed": 12, "expression": [4, 6, 8, 11, 12, 14], "expressions": [10, 12, 16], "express\u00e3": [6, 7, 11, 14], "express\u00f5": 11, "exp\u00f5": [0, 3, 4, 6, 13], "extend": [5, 6, 12, 13, 15, 16], "extended": 8, "extends": [6, 8, 16], "extensibl": 15, "extension": [12, 15], "extensions": 12, "extensively": [3, 6], "extens\u00e3": 6, "extern": 2, "external": [6, 13], "externally": 4, "extra": [5, 6, 12, 13], "extra_fields": 5, "extract": [6, 12], "extracted": 6, "extracts": 16, "extras": 6, "extra\u00edd": 6, "extrem": 6, "f": [4, 5, 6, 13, 14, 15, 16], "fa": 14, "facebook": [0, 5], "facil": [4, 5, 6], "facilitat": 4, "fact": [4, 5, 15], "factori": [5, 10], "fail": [6, 8, 12, 13, 16], "failed": [6, 13], "fails": [3, 12], "failur": [6, 12, 16], "fak": 6, "fake_migrate_all": 6, "falh": 4, "fall": 12, "fals": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "falt": 6, "famous": [1, 6], "fancy": 16, "far": [14, 16], "fas": 6, "fast": [0, 4, 6, 8, 13, 15, 16], "fat": 6, "fath": 6, "father_id": 6, "favorite_color": 5, "faz": [2, 5, 8, 10, 12, 13], "fb00": 12, "fdb": 6, "fe80": 12, "feasibl": [2, 12], "featur": [0, 4, 6, 7, 8, 13, 15, 17], "february": 5, "fech": [6, 8, 10], "fechament": 10, "feit": 6, "fetch": [6, 15, 16], "fetchon": 6, "few": [8, 13, 16], "fez": [2, 6], "ff00": 12, "fic": 6, "ficheir": 6, "fict\u00edc": 6, "fict\u00edci": 6, "fid": 6, "field": [2, 4, 5, 7, 13, 14, 15, 16, 17], "field1": 6, "field2": 6, "field3": 6, "field_id": 14, "fieldnam": [6, 16], "fields": [5, 7, 12, 13, 14, 15, 17], "fieldstorag": 12, "fifth": 14, "fil": [0, 1, 2, 3, 5, 6, 8, 10, 11, 13, 14, 16, 17], "file_content": [6, 16], "file_nam": [6, 16], "file_path": 15, "fileir": 6, "filenam": [2, 4, 5, 6, 12], "filep": 4, "filepaths": 4, "filesyst": [4, 5, 6], "fileuploadwidget": 12, "fill": [12, 16], "filled": 12, "filt": [2, 4, 7, 12, 14], "filter_in": 12, "filter_out": 14, "filtered": 13, "filters": [4, 12], "filtr": [13, 14], "filtrag": [4, 14], "fim": [1, 2, 5, 6], "fin": [2, 13, 14], "final": [1, 2, 5, 6, 11, 13], "finally": [4, 14], "find": [1, 2, 4, 12, 13, 14], "find_by_tag": 13, "find_match": 11, "findall": 12, "finding": 14, "finds": [6, 16], "fins": 6, "firebird": 6, "firebird_embedded": 6, "firebirdadapt": 6, "firebirdembedded": 6, "firebirdembeddedadapt": 6, "firefox": [3, 16], "firfox": 16, "first": [0, 2, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16], "first_nam": [4, 5, 13, 14], "first_only": 10, "first_row": 6, "first_row_dict": 6, "fist": 12, "fits": 12, "fix": [5, 6], "fixed": [6, 15], "fixtur": [0, 2, 6, 10, 13, 15, 17], "fixur": 17, "fiz": 1, "fk_field": 16, "fk_tabl": 16, "fkdaog": 8, "flag": 12, "flash": [8, 12, 16, 17], "flask": [0, 15], "flexibil": [0, 14], "flexibility": [13, 16], "flexibl": [6, 13], "flex\u00edv": 0, "flex\u00edvel": 6, "flight": 7, "float": [4, 12], "floating": 12, "flow": 13, "flux": 6, "fn": 2, "focus": 16, "fold": [1, 2, 3, 4, 5, 6, 7, 11, 12, 14, 15], "folders": 2, "follow": [2, 4, 7, 14, 15], "followed": [2, 5, 12], "following": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "follows": [5, 6, 12], "font": [6, 8, 12, 14], "foo": 14, "foot": 8, "footers": 8, "footing": 13, "forbid": 12, "forbidden": 12, "forc": [2, 5, 6, 7, 12, 13], "forcing": 12, "foreground": 12, "foreign": 14, "foreign_key_checks": 6, "forgery": 5, "forget": 14, "form": [0, 4, 5, 6, 7, 11, 13, 14, 17], "form_basic": 12, "form_custom_widgets": 12, "form_exampl": 12, "form_minimal": 12, "form_nam": 12, "form_widgets": 12, "format": [4, 5, 7, 10, 11, 13, 14], "formats": 12, "formatt": 16, "forma\u00e7\u00e3": 6, "formdat": 7, "forms": [6, 10, 14, 15, 16], "formstyl": [12, 14, 16], "formstylebootstrap4": 12, "formstylebulm": [12, 14, 16], "formstyledefault": [12, 14], "formstylefactory": 16, "formul\u00e1ri": [6, 13, 14, 17], "fornec": [0, 2, 3, 4, 5, 6, 10, 13, 14], "forum": 3, "foruml\u00e1ri": [6, 10, 17], "forward": 1, "found": [2, 4, 5, 6, 12], "four": [2, 6], "fourth": 12, "fp": 5, "fr": 11, "fracass": 6, "fragment": 4, "framework": [0, 2, 12, 13, 14, 15, 16], "frameworks": [0, 2, 5, 6, 15, 16], "fras": 6, "fre": [1, 5, 13], "freetext": 16, "frent": 8, "frequently": 12, "frequ\u00eanc": 1, "friendly": [0, 5, 8], "from": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "from_addr": 16, "from_address": 13, "from_adds": 16, "from_email": 16, "front": [4, 12, 16], "frontends": 16, "fronts": 0, "fsstorag": 5, "ftps": 12, "fug": [6, 8], "full": [2, 4, 5, 6, 8, 12, 16], "fullnam": 6, "fully": [4, 5, 6, 12], "func": [2, 5], "funcion": [6, 17], "funcional": [0, 5, 6], "function": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "functional": 16, "functionaliti": 2, "functionality": [0, 8, 15], "functions": [2, 5, 10, 16], "functools": 16, "fund": 4, "fun\u00e7\u00e3": [4, 6, 8, 10], "fun\u00e7\u00f5": [4, 8], "futur": [5, 15, 16], "f\u00e1bric": 6, "f\u00e1cil": [0, 6, 8, 10, 13], "f\u00edsic": 13, "g": [1, 2, 6, 10, 12], "gain": 2, "gananc": 4, "garant": [6, 8], "garraf": 4, "gavgavian": 1, "gend": 6, "general": [5, 6, 12, 13], "generaliz": 6, "generally": [2, 5, 6, 8], "generat": [2, 6, 8, 10, 12, 13, 14, 15, 16], "generate_time_based_cod": 13, "generated": [1, 5, 6, 8, 12, 13, 14, 16], "generation": 1, "generator": 10, "generic": [2, 4, 5, 6, 12, 13], "generically": 6, "genindex": 17, "gen\u00e9r": 6, "ger": [6, 8, 10, 13, 14], "gerador": 6, "geral": [0, 2, 6, 7, 10], "german": 11, "gest\u00e3": [0, 1], "get": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17], "get_cooki": 16, "get_us": [4, 5, 13, 15], "get_vars": [7, 15], "gets": [8, 13], "getvalu": 6, "gevent": [1, 2], "gia": 5, "gib": 6, "gif": 12, "git": [1, 2], "github": [2, 3, 4, 5, 6, 14], "gitlat": 1, "giv": [4, 5, 6, 8, 13], "given": [2, 4, 5, 6, 8, 12, 13, 16], "giving": 5, "global": [0, 4, 6, 15, 16], "globally": [2, 6], "globals": [5, 6, 8, 13, 15], "go": [2, 4, 14], "goes": [6, 12], "going": [4, 16], "good": [3, 12], "googl": [0, 3, 5, 8, 12, 14], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gost": 6, "got": 6, "gotch": 6, "gott": 8, "grac": 6, "grad": 0, "grand": 6, "grants": 5, "granul": 6, "granulary": 12, "graphically": 6, "graphql": 7, "grau": 6, "grav": 6, "grava\u00e7\u00f5": 12, "gravidad": 6, "grav\u00e1vel": 6, "great": 16, "green": [4, 6, 12, 15], "grelh": 14, "grid": [0, 4, 13, 17], "grid_class_styl": 14, "grid_tutorial": 14, "gridactionbutton": 14, "gridclassstyl": 14, "gridclassstylebulm": 14, "grids": 17, "group": [1, 3, 5, 13, 15], "group_nam": 13, "groupby": 12, "grouping": 2, "groups": [0, 1, 3, 5, 13, 15], "growing": [0, 16], "grup": [6, 13], "gt": [7, 10], "guarant": 5, "guaranteed": [6, 15, 16], "gui": 3, "guid": 2, "guidelin": 13, "gunicorn": 2, "gz": 12, "h": [2, 12, 13], "h1": [4, 8], "h2": [8, 12], "habilit": 6, "had": 6, "hamburg": 8, "hand": [2, 16], "handl": [2, 4, 5, 6, 13, 15, 16], "handled": [4, 5, 12, 16], "handlers": 4, "handling": [4, 14], "handy": 6, "hanging": 1, "happen": 5, "happens": 6, "hard": 15, "hardcod": 5, "harmoniz": 4, "has": [0, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "has_membership": 13, "hash": [2, 6, 12], "hashed": 12, "hav": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "head": [4, 5, 6, 8, 13, 14, 16], "headers": [4, 8, 13, 16], "heading": 12, "headings": [10, 14], "height": [12, 14, 16], "hell": [4, 5, 6, 8, 10, 12, 13, 16], "help": [1, 2, 5, 6, 7, 8, 10, 12, 14, 15], "helpers": [4, 6, 8, 12, 14, 15, 16, 17], "helps": [6, 8, 12], "henc": [0, 2, 4, 5, 6, 12, 13], "her": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "herd": 6, "her\u00f3": 7, "hesitat": 6, "hex": 12, "hh": 12, "hi": 16, "hid": 14, "hidden": [12, 16], "hidden_div": 16, "hidden_input": 16, "hierarchical": [6, 13], "high": [12, 13], "highest": 12, "highlighting": [1, 8], "highly": [1, 4, 14], "hints": 14, "his": 12, "historical": 0, "history": 12, "hist\u00f3r": [5, 6], "hmac": 12, "ho": 5, "hold": 16, "holds": 6, "hom": 8, "hood": 13, "hor": 6, "hosped": 1, "host": [2, 4, 5, 12, 13], "hosted": 1, "hour": 12, "hous": 15, "housekeeping": 6, "houv": 6, "how": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "howev": [4, 6, 8, 12, 13, 16], "href": [8, 10, 13, 14], "hs256": 5, "html": [1, 2, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16], "html5": 8, "htmx": [14, 17], "htmx_form": 16, "htmx_form_dem": 16, "htmx_grid": 16, "htmx_list": 16, "htmxautocompletewidget": 16, "http": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15], "https": [1, 3, 4, 5, 7, 8, 12, 13, 14, 16], "httrespons": 5, "hulk": 12, "hundreds": 16, "hx": 16, "hybrid": 4, "hypertext": 16, "hyphen": 10, "h\u00e1bit": 2, "h\u00edfens": 10, "i": [2, 4, 5, 6, 7, 8, 12, 13, 16], "i18n": [5, 11], "ibm_db_dbi": 6, "icon": [8, 14], "icons": 14, "id": [2, 7, 8, 10, 12, 13, 14, 15, 16], "id1": 6, "id2": 6, "id_field_nam": 14, "id_valu": 14, "ide": [0, 1, 2, 3, 6], "ident": 7, "identical": 15, "identifi": 6, "identific": [6, 10], "identify": [4, 13], "identifying": [5, 12], "identity": [6, 7, 13, 15], "ides": 15, "idiom": 11, "idn": 12, "ids": [6, 14], "ie": 12, "ietf": 12, "if": [0, 1, 2, 3, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "ifram": 12, "ignor": [5, 6, 8, 12, 14], "ignore_attribute_plugin": 14, "ignore_common_filters": [6, 12], "ignore_field_cas": 6, "ignored": [4, 8, 10, 14, 16], "igual": [6, 7], "iip": 6, "illustrat": 6, "ilustr": [6, 8], "imag": [6, 8, 10, 12], "image_fil": 6, "imagin": [5, 6, 8, 16], "imaging": 12, "imap": 6, "imapadapt": 6, "imaplib": 6, "imediat": 14, "img": [4, 12], "immediat": 2, "immediately": 6, "immensely": 0, "imped": [6, 10], "impersonat": 13, "impersonating": 13, "implement": [5, 6, 8, 13], "implementation": [4, 8, 12, 15], "implementations": 16, "implemented": [4, 6], "implements": [5, 6], "impli": 7, "implications": 5, "implicit": 6, "implicitly": [6, 12], "impl\u00edcit": 6, "impor": 6, "import": [0, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "import_and_sync": 6, "import_from_csv_fil": 6, "important": [0, 2, 4, 5, 6, 12, 13], "imported": [2, 4, 12, 13, 15], "importing": 6, "impos": 8, "impot": 12, "imprim": 6, "improved": 12, "improvement": 14, "improving": [12, 13], "in": [0, 1, 2, 3, 4, 6, 7, 11, 12, 13, 14, 15, 17], "inalter": 6, "inclu": [0, 4, 6, 8, 10, 14], "includ": [4, 6, 7, 10, 14, 16], "include_action_button_text": 14, "include_paths": 4, "included": [5, 6, 8, 12, 14], "including": [5, 12, 14, 15, 16], "inclusion": 0, "inclusiv": [0, 12], "inclus\u00e3": 10, "inclu\u00edd": [6, 10], "incoming": 2, "incomum": 6, "incorpor": 6, "incorrect": 4, "incorret": 8, "increased": 5, "increment": 6, "indeed": [0, 5], "indent": 8, "indentation": 8, "indented": 8, "independent": [0, 4, 5, 6, 13], "indesej": [2, 6], "index": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "index_form": 5, "indic": [4, 6], "indicat": [12, 13, 15], "indicator": 16, "individu": [0, 2, 5, 6], "individual": [5, 6, 7, 8, 12], "indo": 6, "inefficient": 5, "ineficient": 6, "infinit": 6, "info": [2, 4, 5, 13], "inform": [1, 4, 5, 6, 12], "information": [5, 6, 7, 12, 13, 15, 17], "informed": 6, "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingredient": 4, "ingres": 6, "ingresadapt": 6, "ingresdb": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "inic": [2, 4], "inicializ": [4, 5], "init": [4, 14], "initial": [8, 12], "initializ": [2, 5], "initialization": 5, "initialized": 0, "inject": [12, 14, 17], "injected": [5, 8, 10, 12], "injecting": 10, "injection": 6, "injections": 10, "inje\u00e7\u00e3": 6, "inlin": 16, "inner": [5, 16], "input": [2, 5, 6, 8, 12, 13, 14, 16], "inputs": [12, 16], "insegur": 10, "insensitiv": 12, "inser": [3, 8], "insert": [5, 7, 8, 12, 13, 14, 16], "inserted": 8, "inserting": 12, "inserts": 12, "inser\u00e7\u00f5": 6, "insid": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "insir": 6, "insist": 10, "inspector": 8, "inspired": 7, "instal": [3, 6, 13, 17], "install": [2, 6, 13, 16], "installation": [2, 6], "installations": 17, "installed": [0, 1, 2, 3, 4, 5, 6], "installs": 2, "instanc": [4, 5, 6, 10, 12, 13, 14, 16], "instanci": 6, "instantiat": [6, 13, 15], "instantiated": 6, "instantiation": [13, 14], "instead": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "instructions": [2, 12], "instru\u00e7\u00e3": 6, "instru\u00e7\u00f5": 6, "inst\u00e2nc": [6, 14], "int": [4, 6, 12, 13, 15], "int2ip": 6, "integ": [2, 6, 7, 10, 12, 16], "integers": 12, "integr": 0, "integrated": 1, "integration": 16, "integrity": [4, 8, 16], "inteir": [4, 6], "intended": [6, 16], "intentionally": 12, "interaction": 5, "interag": 0, "interchangeably": 13, "interfac": [0, 3, 5, 6, 14, 15, 16], "interior": 8, "intermedi\u00e1r": 6, "intern": [5, 6], "internacionaliz": [0, 4, 17], "internal": [0, 1, 8, 13], "internally": [4, 5, 6, 14], "internationaliz": 12, "internationalization": [5, 12, 15], "internationalized": 12, "interpret": [0, 6], "interpreted": 10, "interpreting": 7, "interromp": 6, "intersec\u00e7\u00e3": 6, "into": [0, 2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "introdu": 2, "introduc": 0, "introduction": [1, 17], "introduz": 8, "intuitively": 12, "invalid": [2, 6, 12, 13], "invalidated": 5, "invalidating": 12, "invers": 6, "invert": [6, 12], "invisibl": 6, "involv": [6, 14, 15], "involved": [6, 8], "inv\u00e9s": 6, "in\u00edci": 6, "in\u00fatil": 6, "io": [2, 6], "ip": [2, 6, 12], "ip2int": 6, "ip_list": 13, "ipaddr": 6, "ipaddress": 13, "iptabl": 2, "ipv4": [6, 12], "ipv4address": 13, "ipv4network": 13, "ipv6": 12, "irem": [4, 5], "ir\u00e1": [2, 3, 4, 6, 8, 13, 14], "is": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "is_6to4": 12, "is_activ": 6, "is_automatic": 12, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_impersonating": 13, "is_in_db": [6, 14], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_local": 12, "is_localhost": 12, "is_multicast": 12, "is_not_empty": 6, "is_null_or": 14, "is_privat": 12, "is_public": 6, "is_reserved": 12, "is_routeabl": 12, "is_tered": 12, "is_tim": 6, "is_valid": 5, "isdir": [7, 14], "isn": [5, 12, 14], "iso": 7, "isolation": 16, "issu": [0, 4, 6], "issuing": 13, "it": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "italian": [5, 11], "item": [6, 8, 10], "itemize1": 8, "itemize2": 8, "items": [6, 7, 8, 12], "itens": 6, "iter": 8, "iterabl": [6, 12], "iterations": 12, "iterators": 6, "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "itself": [1, 2, 6, 12, 16], "it\u00e1l": 10, "iv": 6, "janel": 2, "javascript": [1, 4, 7, 10, 16], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlit": 6, "jdbcsqliteadapt": 6, "jetbrains": 1, "jim": [0, 1, 14], "jinja2": 5, "job": [7, 12, 14], "jog": [6, 11], "john": [0, 6], "join": [4, 5, 7, 12, 14, 15], "joined": 14, "joins": [14, 17], "jonathan": 6, "jorn": 1, "journalist": [7, 14], "jpeg": 12, "jpg": 12, "jpsteil": 14, "jquery": [10, 12, 16], "js": [0, 4, 5, 8, 11, 15, 17], "jsl": 16, "json": [0, 1, 2, 4, 5, 6, 7, 11, 12, 15, 16], "junt": [10, 14], "jun\u00e7\u00e3": [6, 13], "jun\u00e7\u00f5": 6, "just": [1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 16], "jwt": 5, "jwt_token_plugin": 13, "jython": 6, "k": [5, 8, 15], "kargs": 10, "kbd": 2, "kbytes": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 10, 12, 15], "keep_valu": 12, "keeps": [5, 14], "kell": 0, "ken": 6, "kent": [7, 14], "kevin": 0, "key": [2, 4, 5, 6, 7, 10, 12, 13, 16, 17], "keycod": 16, "keyed": 6, "keys": [6, 7], "keyup": 16, "keyword": [6, 8, 10], "keywords": 6, "kfield": 16, "killed": 16, "kind": [4, 13], "kindness": 0, "kinds": 4, "kinterbasdb": 6, "know": [5, 14], "known": [6, 8, 13], "known_expressions": 11, "knows": [4, 5, 13], "krzysztof": 0, "ktabl": 16, "kwargs": [6, 16], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 12], "la": [4, 6], "label": [6, 7, 8, 12, 16], "labeling": 15, "labels": 12, "lac": 6, "lacking": 12, "lacks": 15, "lad": [1, 5, 6], "lambd": [5, 6, 10, 12, 14, 16], "lang": 5, "languag": [1, 4, 5, 8, 11, 15, 16], "larg": [0, 12], "last": [1, 5, 8, 12, 13, 14, 16], "last_insert_id": 6, "last_nam": [5, 13, 14], "last_row": 6, "lastdot": 12, "lastrowid": 6, "lat": [2, 4, 5, 6, 8, 10, 12, 14], "latest": [2, 6, 15], "latin1": 6, "latt": [6, 12, 15], "launch": [1, 2], "lax": 5, "lay": [5, 15, 17], "layers": 5, "layout": [12, 13, 14, 15, 16, 17], "layouts": [8, 14], "lazily": 16, "lazy": [1, 2, 4, 6], "lazy_tabl": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 13, "ldap_setting": 13, "ldap_settings": 13, "ldapplugin": 13, "lead": [14, 16], "leads": 5, "learn": [1, 6], "least": [1, 2, 12, 15, 16], "leav": [5, 6], "left": [8, 12, 14, 16], "legacy": 6, "leg\u00edvel": 6, "leitur": 6, "lembr": [3, 6, 8, 12], "len": [12, 16], "length": [6, 12], "ler": [1, 6], "less": [7, 12, 15, 16], "let": [7, 12, 16], "lets": 2, "letters": 12, "letting": 6, "lev": [6, 10], "levant": 6, "level": [2, 4, 6, 7, 12, 13], "leverag": 0, "li": [8, 12, 13, 16], "lib": 2, "libldap2": 13, "librari": 13, "library": [2, 6, 11, 12, 15, 16], "libs": [8, 10, 14], "libsasl2": 13, "libsass": 4, "licens": 1, "lid": [1, 4, 5, 6, 14], "lif": 16, "lifespan": 12, "lifetim": 5, "lig": [2, 5, 6, 10], "liga\u00e7\u00e3": [4, 5, 6], "liga\u00e7\u00f5": [6, 10], "light": [6, 15], "lik": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "limit": [5, 6, 7, 12, 13], "limitation": 8, "limited": [0, 2, 5, 15, 16], "limiting": 16, "limits": 12, "limp": 1, "lin": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "linguag": [0, 4, 5, 17], "linguagens": 4, "linh": [5, 6, 8, 10, 14, 17], "link": [4, 7, 8, 10, 12, 13, 14], "linked": 7, "links": [2, 6, 14, 16], "linting": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "list_of_fields": 6, "listabl": 6, "listagens": 10, "listed": [5, 12, 16], "listen": [2, 4], "listening": [2, 3], "listproperty": 6, "lists": [6, 14], "liststringproperty": 6, "listwidget": 12, "littl": [1, 5, 6], "liv": [6, 16], "livr": [1, 6], "lix": 6, "ll": [1, 2, 3, 5, 6, 8, 12, 14, 16], "lo": [1, 2, 3, 4, 6, 7, 8, 10], "load": [3, 5, 16], "loaded": [4, 8, 14, 16], "loading": 16, "loads": [6, 16], "loazkjy": 8, "loc": 5, "local": [3, 8, 12, 13, 14], "local_initializ": 5, "localhost": [2, 4, 5, 6, 12], "localiz": 4, "locally": 2, "locals": [5, 12, 14, 15], "localstoragedem": 5, "locat": 15, "location": [2, 4, 6, 8, 15], "locked": 6, "locking": 5, "locks": 16, "log": [0, 2, 4, 5, 6, 8, 10, 13, 15, 16], "logerrors": 5, "logfil": 6, "logged": [5, 8, 13, 15], "logging": [2, 13], "logging_level": 2, "logic": [2, 4, 5, 6, 13, 14, 15, 16], "logical": 12, "login": [0, 2, 3, 4, 5, 6, 8, 12, 13, 15], "logout": [0, 8, 13], "logs": [2, 5, 6], "loj": 6, "long": [0, 2, 6, 12, 13, 16], "longhash_tablenam": 6, "longtext": 6, "look": [4, 5, 6, 7, 12, 13], "looking": 3, "looks": [2, 6, 12], "lookup": [5, 7, 13], "lookups": 12, "loop": [6, 8, 16], "looping": 6, "loops": 16, "los": [2, 4, 6, 12], "lost": [5, 15], "lot": [4, 6, 13], "lots": 1, "loved": 0, "low": [0, 12], "lowercas": 12, "lowest": 12, "lru": 5, "lt": 10, "lts": 2, "luc": [0, 1], "lug": [1, 5, 6], "lumin\u00e1r": 4, "l\u00e1": [2, 4], "l\u00edngu": 1, "m": [0, 2, 6, 10, 12], "mac": [2, 6], "macac": 5, "machin": 2, "macneiln": 2, "mad": [8, 12, 13, 14], "magically": 0, "mai": 5, "mail": [2, 3, 5, 12, 13, 16], "mailing": 6, "mailt": 12, "main": [1, 2, 3, 4, 6, 8, 14, 15, 16], "maintain": [6, 8, 16], "maintainability": 6, "maintainabl": 14, "maintenanc": 16, "maior": [6, 7], "mai\u00fascul": 6, "major": 6, "mak": [0, 1, 2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "make_token": 13, "makefil": 2, "making": [6, 8], "man": 16, "manag": [2, 3, 4, 5, 6, 13, 14, 16], "managed": [0, 13], "management": 12, "managing": 6, "mandatory": [5, 8], "maneir": [6, 14], "manipul": 6, "manipulat": 12, "manipulated": 12, "manipulation": 4, "mann": [5, 13, 15], "manual": [2, 3, 4, 5, 6], "manually": [2, 4, 6, 10, 13, 14], "many": [0, 1, 2, 4, 5, 7, 8, 12, 13, 14, 15, 16], "map": [4, 6, 10, 11], "map_non": 6, "mapped": 17, "mapping": [2, 4, 6, 12, 15], "maps": [6, 10], "marc": [1, 6, 10, 13], "marca\u00e7\u00e3": [10, 13], "margin": [8, 16], "marked": 6, "massim": [0, 6], "mast": [1, 2, 14], "match": [1, 2, 4, 5, 6, 8, 10, 11, 12, 16], "matched": [4, 7, 10, 12], "matching": [7, 10, 12], "matem\u00e1t": 6, "material": 6, "math": 16, "matriz": 10, "matters": 15, "max": [11, 12, 16], "max_concurrent_runs": 16, "maximum": [5, 12], "maxip": 12, "maxlen": 12, "maxsiz": 12, "may": [2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "md": 1, "md5": 12, "mean": 15, "meaning": [6, 12, 13], "meanings": 12, "means": [1, 2, 3, 4, 5, 6, 8, 12, 13, 15], "mecan": [6, 8], "mechanism": [0, 4, 5, 6, 8, 10, 13, 15, 16], "med": 1, "mediant": 8, "mei": 6, "melhor": [0, 1, 6, 11, 14, 17], "memb": [12, 13], "membership": [0, 5, 12, 13, 15], "memberships": 5, "membr": 13, "memcach": [0, 6], "memoiz": 17, "memory": [5, 6], "men": [1, 2, 5, 6], "menor": 6, "mensag": 14, "mensagens": [5, 6], "ment": 1, "mention": 5, "mentioned": [13, 16], "menu": [8, 12, 13], "menus": [8, 12], "mes": [6, 10], "mescl": 6, "mesm": [0, 1, 2, 4, 5, 8, 10, 11, 14], "messag": [2, 4, 5, 7, 8, 12, 14, 15, 17], "messed": 1, "mestr": 6, "met": [6, 8, 10], "metad": 6, "metadat": [6, 13], "metatag": 10, "method": [4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "methods": [5, 7, 10, 12, 13, 14, 17], "mfa": 13, "micah": 0, "microsoft": [1, 13], "mid": 6, "middlewar": 5, "might": [4, 7, 12], "migr": 6, "migrate_enabled": 6, "migrated": 6, "migrating": [6, 15], "migration": 6, "migrations": 6, "migra\u00e7\u00f5": 17, "min": [8, 12, 14], "min_length": 12, "mind": [4, 6, 7, 8, 12], "mindful": 6, "minimal": [4, 5, 14, 17], "minimalist": [8, 15], "minimalist_pag": 8, "minimum": 12, "minip": 12, "minor": [8, 12, 15], "minsiz": 12, "minut": 12, "min\u00fascul": 6, "missing": [2, 13, 14], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 14], "mm": 12, "mobili\u00e1ri": 5, "mod": [2, 4, 5, 6, 12, 13], "model": [0, 3, 7, 10, 12, 15, 16], "models": [4, 6, 7, 14, 15], "modern": [6, 13, 16], "modifi": 14, "modific": [2, 4], "modification": 12, "modifications": 2, "modified": [4, 12, 15], "modified_by": 6, "modified_on": 6, "modifiers": 7, "modify": [12, 14, 16], "modifying": [2, 6, 8], "modindex": 17, "modul": [0, 1, 2, 4, 6, 8, 10, 12, 13, 14, 15], "moment": [2, 6], "mong": 6, "mongodb": 6, "mongodbadapt": 6, "monoespac": 10, "monolithic": 0, "mont": 13, "month": 12, "mor": [0, 2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "moreov": 16, "most": [0, 4, 5, 6, 12, 13, 14, 15, 16], "mostr": [1, 4, 6, 14], "moth": 6, "mother_id": 6, "motor": 6, "mov": 6, "msg": 4, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 4, 5, 6, 8, 12, 14, 15, 16], "mud": [4, 5, 6], "mudanc": 6, "muit": [0, 1, 4, 5], "mult": [1, 2, 6, 15], "multicast": 12, "multipl": [1, 2, 4, 6, 8, 10, 12, 15, 16, 17], "multiprocess": 5, "multiselect": 12, "multius": 13, "must": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 15, 16], "my": [5, 8, 10, 12, 13, 16], "my_app": 4, "my_content": 5, "my_id": 16, "my_password_fil": 2, "my_task": 16, "my_url_path": 15, "my_var": [5, 10], "myapp": [2, 4], "myclass": 10, "mycomponent": 16, "mycustomtokenplugin": 13, "mycustomwidget": 12, "mydb": 6, "myerrors": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunction": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myord": 6, "myquery": 6, "myrecord": 6, "mysaltvalu": 12, "mysendgridsend": 16, "myset": 6, "mysideb": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyle": 12, "mytabl": [6, 13], "myvalu": 6, "myvirtualfields": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "m\u00e1quin": [6, 10], "m\u00e1x": 6, "m\u00e1xim": 6, "m\u00e9d": 6, "m\u00e9di": 13, "m\u00e9tod": [4, 5, 6, 8, 14], "m\u00ednim": [5, 6], "m\u00f3dul": [0, 2, 5, 6], "m\u00faltipl": [0, 6], "n": [5, 6, 11, 16], "nad": [2, 4, 6], "nam": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "named": 10, "nameonly": 6, "naming": 6, "nasc": 6, "natal": 6, "nativ": 6, "native_json": 12, "nav": 8, "navb": [8, 13], "naveg": 14, "navigat": 16, "navigation": [8, 16], "ndb": 6, "ne6fz": 8, "necess": [1, 2, 4, 6, 8], "necessary": [6, 8, 10, 13], "necessit": 6, "necess\u00e1r": [1, 6], "necess\u00e1ri": [2, 4, 6], "need": [0, 1, 2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "needed": [2, 4, 5, 6, 10, 12, 13, 16], "needs": [0, 4, 5, 6, 13, 15, 16], "neg": 6, "negated": 6, "negativ": [6, 12], "nega\u00e7\u00e3": 6, "neith": 12, "nel": 6, "nenhum": [6, 13], "ness": 6, "nest": [1, 6, 8, 10], "nested": [6, 8], "nested_select": 6, "network": [12, 13], "networks": [6, 12, 13], "nev": [6, 8, 12, 15, 16], "nevertheless": 13, "new": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "new_app": [8, 10], "new_password": 16, "new_sidec": 16, "newlin": [6, 12], "newly": 6, "next": [1, 5, 6, 8, 12, 16], "nginx": [2, 4], "nic": [0, 16], "nicozanf": 2, "nid": 6, "niss": 6, "no_backslash_escap": 6, "no_tabl": [12, 16], "nod": [4, 16], "nom": [2, 4, 5, 7, 10, 12, 13, 14], "nomeaplic": 13, "non": [2, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "nor": [2, 12], "norm": 6, "normal": [4, 5, 6, 8, 12, 14, 16], "normaliz": 6, "normalized": 6, "normally": [2, 6, 8, 10, 12, 14], "northwind": 1, "nosqladapt": 6, "noss": [1, 4, 5, 6], "not": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "not_authorized": 13, "notably": 5, "notation": 10, "nota\u00e7\u00e3": [6, 10], "noted": 8, "nothing": [2, 5, 6, 12, 16], "notic": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "notnull": 6, "notset": 2, "nov": [0, 1, 2, 3, 4, 14], "novaaplicaca": 4, "now": [0, 4, 5, 6, 12, 14, 16], "nowadays": 1, "nul": 6, "null": [6, 7, 12, 16], "numb": [2, 5, 6, 8, 12, 13, 16], "number_workers": 2, "numbers": 12, "numerical": 12, "num\u00e9r": 6, "nunc": [5, 6], "n\u00e3": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "n\u00edvel": [6, 11], "n\u00famer": [4, 6, 11, 14], "oauth": 13, "oauth2": [0, 5], "oauth2discord": 13, "oauth2facebook": 13, "oauth2googl": 13, "obj": [6, 8], "object": [0, 4, 5, 6, 7, 8, 10, 12, 13, 15, 17], "objects": [0, 4, 5, 6, 10, 12, 14, 15, 16], "objet": [0, 5, 6, 8, 10, 11], "obras": 6, "obrigat\u00f3ri": 6, "observ": [4, 6, 8], "obsolet": 6, "obtain": [2, 13, 16], "obtained": 6, "obter": [4, 6], "obtid": [2, 6], "obvi": 6, "obvious": [7, 8, 13], "obviously": 12, "ocasional": 6, "occasionally": 12, "occur": [2, 12, 16], "occurring": 2, "occurs": 12, "ocorr": [4, 6, 8], "ocult": [6, 12], "odd": [6, 8], "of": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "off": [0, 2, 4, 14, 16], "official": [0, 12, 16], "offs": 6, "offset": [6, 7], "oficial": 6, "often": [4, 6, 13, 16], "ok": [10, 15], "old": [2, 5, 12, 15], "older": 12, "olhand": 6, "ol\u00e1": 8, "ombott": [0, 4, 15], "omit": 2, "omitted": 2, "on": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "on_delete_action": 6, "on_error": 5, "on_fals": 5, "on_request": [5, 13], "on_success": 5, "once": [1, 2, 4, 5, 6, 12, 13, 16], "onclick": 16, "onde": [2, 6, 7, 8, 12], "ondelet": 6, "one": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 16], "ones": [2, 5, 7, 12, 15], "onion": 5, "onkeydown": 16, "onlin": [1, 6], "onload": 16, "only": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "onvalidation": 12, "opacity": 16, "opcion": [6, 10], "opcional": [4, 6, 10, 12], "open": [1, 2, 4, 5, 6, 10], "opened": 1, "opening": 5, "oper": [0, 3, 11, 17], "operat": 12, "operating": 13, "operation": [6, 13], "operationalerror": 12, "operations": [5, 6], "operator": [5, 6, 12], "oposi\u00e7\u00e3": 10, "opost": 6, "opposed": 5, "opposit": 5, "oprow": 6, "optimized": 6, "option": [2, 3, 5, 6, 12, 13, 16], "optional": [2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "optionally": [0, 2, 13], "options": [2, 6, 7, 10, 13, 15, 16], "opt\u00e1m": 6, "op\u00e7\u00e3": [3, 4, 6, 8, 10], "op\u00e7\u00f5": [6, 17], "or": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "oracl": 6, "oracleadapt": 6, "ordem": 6, "order": [2, 4, 5, 6, 7, 10, 12, 13, 14, 15], "order_it": 6, "orderby": [12, 13, 14, 16], "ordered": 10, "ordereddict": 6, "ordering": 5, "org": [2, 4, 7, 10, 16], "organiz": 6, "organized": 4, "orig": [2, 11], "origin": 6, "original": [6, 8, 10, 12], "orm": 6, "other": [0, 1, 2, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16], "other_pag": [12, 16], "otherfield": 6, "others": [0, 6, 15], "othertabl": 6, "otherwis": [4, 5, 6, 8, 12, 13, 14], "otimiz": 6, "oufil": 6, "our": [0, 1, 2, 5, 6, 10, 12, 16], "out": [0, 1, 2, 5, 8, 12, 16], "outlined": [4, 5], "output": [1, 2, 5, 8, 12, 16], "output_styl": 4, "outr": [1, 2, 4, 5, 10, 11, 13, 14, 17], "outsid": [0, 5, 6, 12, 14, 15, 16], "ov": 6, "over": [4, 8, 14, 16], "overkill": 13, "overrid": [4, 6, 8, 13, 14, 15, 16], "override_cl": 14, "override_styl": 14, "overriding": [4, 16], "overview": 17, "overwrit": 5, "overwritten": [5, 15], "own": [4, 5, 6, 8, 12, 13, 14, 15, 16], "owner": [6, 12, 13], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "owners": 12, "ownership": 6, "owns": 6, "p": [2, 8, 12], "p10n": 11, "p11n": 5, "packag": [0, 2, 6, 10], "padded": [5, 8, 15], "padding": 16, "padroniz": 6, "padr\u00e3": [0, 2, 4, 5, 8, 10, 14], "padr\u00f5": [4, 6, 10], "pag": [1, 3, 5, 6, 10, 12, 13, 14, 15, 16, 17], "page_head": 8, "page_left_menu": 8, "page_scripts": 8, "pagin": [6, 14], "pai": 6, "painel": [0, 2, 3], "paint": [4, 12], "painting": 4, "pairs": 10, "palavr": [8, 10, 11], "pam": [0, 5], "pam_plugin": 13, "pamplugin": 13, "papel": 2, "par": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 16, 17], "paragraph": [5, 10, 12, 14], "paramet": [1, 2, 4, 5, 6, 13, 14, 16], "parameters": [2, 6], "params": 16, "parec": [5, 6], "parent": [2, 6, 8, 16], "park": [7, 14], "pars": [5, 6, 12, 13], "parsed": 6, "parsemodul": 4, "parsing": 4, "part": [4, 10, 15], "partial": [4, 6, 15], "particip": 6, "participat": 1, "particul": [0, 1, 6, 12, 14, 15, 16], "particular": 6, "particularly": 6, "parts": 12, "party": [0, 5], "par\u00e1graf": [1, 10], "par\u00e2metr": [5, 14], "par\u00eantes": 6, "pass": [4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "passed": [2, 4, 5, 6, 10, 12, 13, 14, 16], "passing": [5, 6, 10, 12], "passphras": 5, "password": [2, 6, 8, 12, 13, 15, 16], "password_fil": 2, "passwords": [12, 13], "passwordwidget": 12, "past": [2, 4], "path": [2, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16], "path_t": 2, "pattern": 7, "patterns": 7, "paus": 2, "pay": 4, "payment": 6, "payroll": 5, "pbkdf2": 12, "pc": 3, "pdf": [1, 12], "pdkdf2": 2, "pec": [5, 6], "ped": [2, 4, 5, 6, 14], "pedac": 8, "peg": 6, "pegadinh": 17, "pel": [1, 4, 5, 6, 8, 10, 11, 13], "pens": 6, "per": [4, 5, 7, 14], "percentual": 6, "perd": [1, 2, 6], "perfect": 0, "perfectly": 14, "perfil": [0, 13], "perform": [5, 6, 12, 13], "performanc": [0, 5, 6, 15], "performed": 13, "performing": 6, "performs": 12, "pergunt": 6, "perhaps": 5, "period": 16, "periodic": 16, "permanec": 6, "permission": [5, 13], "permissions": [0, 5, 6, 13, 15], "permiss\u00e3": [5, 6, 13], "permit": [0, 3, 5, 6, 8, 10, 13, 14], "permitted_tags": 10, "persist": 5, "persistent": [6, 13], "person": [6, 7, 12, 14], "personag": 6, "personagens": [4, 6], "personal": 2, "personaliz": [0, 2, 17], "persons": 12, "persons_and_things": 6, "perspectiv": 0, "pertenc": 6, "pertencent": 6, "pesquis": [2, 3, 6, 14], "pesso": 6, "pet": [6, 7, 14], "philip": 6, "phon": [12, 16], "photograph": [7, 14], "physics": 13, "pick": [5, 13], "picked": 4, "picks": 5, "piec": [0, 12], "pierr": 0, "pip": [0, 1, 6], "pirsch": 0, "piscin": [4, 6], "piu": 5, "pixels": 12, "plac": [1, 4, 5, 6, 8, 12, 14, 16], "placehold": [12, 16], "placeholders": 6, "placing": 14, "plain": 16, "plan": [1, 16], "plataform": 17, "platform": [0, 1], "play": 16, "playing": 0, "pleas": [5, 6], "plug": 5, "plugin": [5, 12, 14, 16], "plugins": [12, 16], "plural": 11, "pluraliz": [0, 4, 5, 14, 16, 17], "pluralization": 15, "plus": [6, 8, 13, 14], "pm": 12, "png": [10, 12], "pod": [0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 13, 14], "point": [4, 5, 6, 12, 15, 16], "pointing": [2, 3, 8], "points": [6, 7, 12, 14], "polic": 17, "policy": 7, "pollut": 5, "pol\u00edt": 0, "pont": 6, "pool": 5, "pool_connection": 6, "pool_siz": [5, 6], "pooling": 6, "poor": 16, "pop": 16, "popul": [0, 6], "porqu": [2, 4, 5, 6, 8, 11], "port": [0, 2, 3, 5, 6, 15], "portability": 6, "portabl": 6, "portant": [2, 4, 5, 6, 10], "ports": 2, "por\u00e7\u00f5": 14, "posicion": 10, "position": 5, "positional": 10, "posi\u00e7\u00e3": [5, 10], "possibil": 6, "possibl": [4, 5, 6, 8, 12, 13, 14, 15, 16], "possibly": 6, "poss\u00edv": 6, "poss\u00edvel": [4, 6], "post": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "post_action_buttons": 14, "post_text": 6, "post_vars": [7, 15], "post_writabl": 7, "posted": 7, "postel": 11, "posterior": 5, "postfix": 15, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyc": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserved": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocessing": 15, "posts": 6, "potentially": 2, "pouc": [5, 6], "pow": [2, 6, 16], "powerful": [7, 13, 15], "powers": 7, "pprint": 6, "pr": 1, "practic": [8, 12], "practical": [6, 12, 13, 15, 17], "pre": [2, 4, 5, 14], "pre_action_buttons": 14, "precau\u00e7\u00e3": 2, "preced": [6, 8], "preceded": [6, 12], "precedent": 6, "preceding": 7, "precious": 14, "precis": [1, 2, 4, 5, 6, 14], "predefin": 8, "predefined": [12, 16], "predetermined": 15, "preench": 6, "preenchiment": 6, "pref": [2, 16], "prefer": 10, "preferenc": 5, "preferred": [5, 6], "prefix": [2, 4, 6, 7, 8, 12, 15], "preguic": 15, "prelimin": 1, "preocup": 6, "prepend": [12, 16], "prepend_schem": 12, "prepended": [12, 15], "prepending": 12, "prepends": 4, "preprocessing": 15, "prerequisit": [2, 5], "presenc": [5, 6], "present": [2, 6, 8, 12, 13], "presented": 13, "preserv": [0, 5], "preserved": 5, "press": [4, 14], "pression": 3, "prest": 10, "pretend": 6, "pretty": [4, 6, 15], "prevent": [6, 10, 12, 16], "prevented": 6, "preventing": 5, "prevents": [2, 5, 16], "previ": [6, 12], "previous": [5, 8, 10, 12, 13, 16], "previously": [5, 6, 12], "prim": [5, 12], "primarily": 14, "primary": [6, 8, 13], "primeir": [6, 8, 13, 17], "princip": 0, "principal": [1, 5, 6, 17], "princ\u00edpi": [6, 17], "print": [4, 5, 6, 10, 11, 13, 14, 15, 16], "printed": 4, "prioritiz": 4, "privat": [5, 12], "probability": 12, "probl": [0, 6, 8, 14], "problem": [1, 6], "problems": [6, 13, 16], "proc": [13, 16], "proced": 17, "procedur": 2, "process": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "processed": [5, 6, 8, 12], "processing": [5, 6, 8, 12, 16], "procur": [1, 6], "produc": [6, 10, 12, 13], "product": [6, 16], "product_record": 16, "production": [2, 4], "products": 6, "produz": [2, 5, 6, 8, 10], "produ\u00e7\u00e3": 0, "professor": 13, "profil": [8, 13, 15], "progr": [1, 2, 3, 10, 13], "program": [1, 3, 6, 8], "programmatically": 10, "programming": [1, 6, 8, 16], "programs": [1, 2, 12], "project": [0, 2, 4, 5, 6], "project_nam": 2, "projet": [0, 2], "prompt": [2, 4, 6], "pront": 6, "prop": [5, 6, 14], "properly": 4, "properti": [6, 12], "propriedad": 6, "propriet\u00e1r": 6, "propriet\u00e1ri": 6, "protocol": 3, "prototyp": 16, "provavel": [4, 5, 6], "proveit": 6, "provid": [0, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "provided": [5, 6, 8, 10, 12, 13, 14], "providing": [0, 13, 14, 15], "provoc": 6, "proxi": 4, "proxy": 4, "proxy_http_version": 4, "proxy_pass": 4, "proxy_set_head": 4, "prudent": 6, "pr\u00e1tic": [0, 6, 7], "pr\u00e9": [10, 14, 17], "pr\u00f3pr": [13, 14], "pr\u00f3pri": [6, 14], "pr\u00f3xim": [2, 6], "pseud": 6, "psycopg2": 6, "public": [4, 6], "pud": 2, "pull": 1, "punycod": 12, "pur": 6, "purpos": [0, 6, 10, 12, 13, 15], "put": [5, 7, 12, 13, 16], "put_writabl": 7, "putting": 4, "pux": 6, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16], "py4web": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14], "py4web_filesyst": 6, "py4web_wsg": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 12, 13, 14, 15, 16], "pyfilesyst": 6, "pyinstall": 2, "pymong": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytds": 6, "python": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16], "python2": [2, 15], "python3": 2, "pyweb": 15, "p\u00e1gin": [8, 10, 14, 17], "p\u00f3s": 14, "p\u00fablic": 6, "q": [2, 5, 6, 14], "qua": [0, 6], "quadr": [0, 1, 6], "quaisqu": [6, 12], "qualifi": 4, "qualified": 6, "qualqu": [1, 2, 4, 5, 6, 7, 8, 13], "quand": [1, 4, 6, 8, 14], "quant": 6, "quantity": 6, "quebr": 0, "qued": 14, "queir": 5, "quer": [2, 4, 5, 6, 10], "queri": [6, 7, 14, 15, 16], "queried": 7, "query": [4, 5, 7, 10, 12, 13, 14, 15, 16], "query1": 6, "query2": 6, "queryselector": 16, "queryselectorall": 16, "querystring": 14, "questions": [1, 2], "quest\u00e3": 6, "quick": [1, 12], "quickly": [2, 12, 14], "quickstart": 16, "quiet": 2, "quirk": 5, "quis": [4, 6], "quit": [1, 2, 5, 7, 8, 12, 14], "quot": [2, 10], "quote_minimal": 6, "quote_nonnumeric": 6, "quotech": 6, "r": [2, 6, 12], "rac": 12, "radi": [10, 12], "radiowidget": 12, "radius": 16, "radix": 4, "rais": [5, 12, 13, 15], "raised": 5, "ram": [5, 6], "randint": [8, 13], "random": [6, 8, 12, 13, 16], "rang": [4, 6, 8, 13, 15], "rapid": [0, 16], "rar": 6, "rarely": 6, "rath": [6, 8, 12, 16], "raw": 17, "raz\u00f5": 6, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "rea": 6, "reach": 2, "reached": 5, "react": 16, "reactivity": 16, "read": [1, 4, 5, 6, 7, 14, 16], "readability": 7, "readabl": [5, 6, 14, 15], "readm": [1, 12], "readonly": [2, 12, 16], "ready": 2, "reagrup": 0, "real": [2, 4, 7, 8, 12], "real_identity": [6, 7], "realiz": [3, 4, 6], "really": [1, 4], "realment": 6, "reaping": 16, "reason": [2, 5, 6, 13, 14, 15], "reasons": [2, 7], "rebuilt": 6, "rec_id": 7, "receb": [6, 8], "recent": [2, 3, 6, 12, 14], "recently": 5, "recereived": 16, "recip": 2, "reclam": 6, "recogniz": [4, 13], "recognized": 6, "recolh": [7, 14], "recomec": 6, "recomend": 6, "recommend": [1, 5, 16], "recommended": [4, 6, 12, 13], "reconstru": 6, "record": [7, 12, 13, 15, 16], "record_id": [7, 16], "recorded": 12, "records": [6, 7, 12, 13, 14, 16], "recorrent": 6, "recovered": 12, "recreat": 6, "recreated": 6, "recup": 6, "recuper": [4, 6], "recurs": [2, 8, 17], "recursively": 8, "recycl": 6, "rec\u00e9m": [4, 6, 11], "red": [0, 3, 4, 6, 8, 10, 12, 17], "redefin": 5, "redefini\u00e7\u00e3": 6, "redesign": 0, "redirecion": [4, 13, 14], "redirect": [4, 5, 12, 13, 14, 16], "redirect_url": 5, "redirected": [5, 16], "redirection": [5, 12, 15], "redirects": [5, 13], "reduc": [0, 5, 16], "reduced": 0, "redundant": 6, "reescrev": 6, "reescrit": 6, "ref": [3, 5, 6, 10, 12, 13, 17], "refer": [6, 7], "referenc": [1, 5, 6, 7, 8, 10, 12, 14, 16], "referenced": [6, 7], "referenced_by": 7, "referencing": 6, "referim": 6, "referred": [6, 7, 13], "refers": 7, "reflected": 1, "reflet": 6, "reforc": 6, "refresh": 14, "regex": [7, 10, 12], "regexlib": 12, "regist": [0, 5, 6, 8, 13, 14, 15, 16], "register_plugin": 13, "register_task": 16, "register_vue_component": 16, "registered": [5, 13], "registers": 5, "registr": [3, 4, 12, 13, 14], "registration": [4, 12], "registration_stamp": 12, "regr": [4, 5], "regul": [0, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16], "reimplementation": 16, "reinic": 6, "reinstal": 2, "reinstall": 2, "reinstat": 6, "rejected": [12, 13], "rejects": 12, "rel": [8, 14], "relacion": 6, "relat": 6, "related": [5, 6], "relational": 6, "relations": 17, "relationships": 6, "relativ": [4, 15], "rela\u00e7\u00e3": 10, "rela\u00e7\u00f5": 6, "releas": 2, "released": 0, "relev": 6, "reload": [2, 3, 4, 5, 12], "reloaded": [3, 4, 16], "reloading": [2, 4, 5], "reloads": [4, 5], "rely": [0, 4, 6], "rem": 5, "remain": [6, 12], "remains": 0, "rememb": [5, 6], "remembered": 5, "remote_addr": [5, 13], "remov": [2, 4, 6, 10, 12, 13], "removal": 12, "removed": [0, 6, 10, 12], "removing": 6, "remo\u00e7\u00e3": 6, "rend": [5, 6, 12, 14, 15, 16], "rendered": [5, 7, 8, 12, 14, 15, 16], "rendering": [8, 10], "renderiz": 10, "renders": 12, "reno": 8, "renom": 7, "reopening": 5, "repackaging": 0, "repeated": 12, "repeti\u00e7\u00e3": 6, "replac": [1, 4, 6, 8, 10, 14, 16], "replaced": [8, 10, 12, 16], "replacing": 12, "replicat": [1, 5], "report": 8, "reported": 4, "repository": [1, 2, 3], "reposit\u00f3ri": 2, "repr_row": 6, "represent": [8, 10, 12], "representation": [6, 10, 16], "representational_state_transf": 7, "represented": 12, "representing_field": 12, "represents": [0, 6], "requ": [0, 5, 6, 12, 13, 14, 15, 16], "request": [0, 1, 2, 5, 6, 7, 12, 13, 14, 15, 16], "request_body": 16, "request_reset_password": 13, "request_ur": 4, "requests": [1, 4, 5, 15], "requir": [2, 5, 6, 12, 13], "required": [4, 5, 6, 7, 12, 16], "requirement": [12, 16], "requirements": [0, 2, 12], "requires_": 15, "requires_login": 15, "requires_membership": 13, "requiring": [2, 15], "requisit": [6, 17], "res": 16, "reserv": 11, "reserved": [6, 12], "reset": 6, "reset_password": 13, "resgat": 6, "resourc": [6, 13], "respect": [6, 12, 14], "respectively": [6, 12], "respons": [4, 5, 6, 8, 15, 16, 17], "responsibility": 6, "responsibl": [14, 16], "respost": [5, 8], "ressalv": 6, "restabelec": 6, "restap": [0, 3, 17], "restart": [2, 4, 5, 6, 14], "restarting": 6, "restaur": 6, "restful": [7, 13], "restrict": [5, 7, 12, 16], "restri\u00e7\u00e3": 6, "restri\u00e7\u00f5": [0, 6], "restructuredtext": 1, "result": [1, 4, 6, 7, 8, 12, 13, 14, 16], "resulting": [8, 12, 16], "results": [4, 6, 8, 12, 14], "ret": 6, "retain": 6, "retorn": [5, 8, 10], "retribu": 10, "retriev": [5, 6, 13, 16], "retrieval": 6, "retrieved": [5, 15], "return": [4, 5, 6, 7, 10, 12, 13, 14, 16], "returned": [4, 5, 6, 7, 8, 10, 12, 13, 16], "returning": 5, "returns": [5, 6, 7, 10, 12, 13, 15, 16], "reutiliz": [2, 6], "revers": [4, 5, 6], "revers\u00e3": 4, "revert": 6, "rfc": 12, "rid": 6, "riding": 8, "right": [5, 6, 8], "rights": 2, "road": 16, "robust": 16, "rocket": [2, 15], "rocket3": [2, 15], "rocketserv": 2, "rodap": 10, "rol": [5, 10], "roll": 6, "rollback": 16, "rolls": 5, "root": [6, 8, 13, 14], "rosc": 5, "rot": [3, 14], "rotul": 6, "rout": [2, 4, 5, 14, 15, 16], "routing": [0, 2, 4, 15], "rov": 6, "row": [12, 14, 16], "rows": [10, 12, 14, 15], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 14, "rpc": 6, "rst": 1, "rul": [8, 12, 14], "run": [1, 3, 4, 6, 8, 13, 16], "run_in_transaction": 6, "running": [1, 2, 4, 5, 16], "runs": [2, 4, 13, 15, 16], "r\u00e1di": 10, "r\u00e1p": [0, 6], "r\u00f3tul": [6, 10, 14], "s": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 16], "s3": 6, "s_": [12, 16], "s_autocomplet": 16, "s_autocomplete_results": 16, "s_down_key": 16, "s_search": 16, "sab": [1, 2, 6, 8], "sacrific": 13, "saf": [1, 6, 12, 14, 15], "safar": 16, "safely": [1, 14], "safety": 16, "said": 7, "sair": 13, "sak": 6, "salt": [1, 12], "salv": [4, 6, 11], "sam": [0, 2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "same_sit": 5, "saml": 13, "saml2": 0, "sampl": 13, "san": 4, "sandbox": 16, "sanitiz": [5, 10, 12, 15], "sanitized": 12, "sant": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "sav": [1, 5, 6, 11, 12], "saved": [2, 5, 6, 12], "say": 13, "sa\u00edd": [2, 4, 6, 8, 10], "scaffold": [2, 4, 16], "scaffold_zip": 2, "scaffolding": [2, 4, 5, 6, 8, 12, 15, 16], "scal": [5, 8], "scan": 6, "schaf": 1, "schedul": 17, "scheduled": 16, "scheduled_for": 16, "schem": [4, 6, 12], "school": 13, "scor": 16, "score_input": 16, "scratch": 4, "script": [2, 8, 12, 13, 16], "scripting": 10, "scripts": [2, 8, 10], "sdk": 2, "seamlessly": 8, "search": [0, 12, 13, 14, 17], "search_button_text": 14, "search_form": 14, "search_queri": 14, "search_text": 14, "search_valu": 16, "searchabl": 6, "searched": [10, 14], "searching": [6, 10], "second": [6, 10, 12, 13, 15], "seconds": [5, 12], "secret": [5, 13], "secs": 16, "section": [2, 4, 6, 8, 12, 13], "sections": 6, "secur": [0, 12], "securely": 2, "security": [0, 2, 6, 7, 13], "see": [0, 1, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "seem": 6, "seen": [0, 5, 7, 10, 12, 13, 14, 16], "seesions": 13, "seg": 4, "segment": 4, "segred": 13, "segu": [2, 4, 5, 6, 8], "seguint": [2, 4, 5, 6, 8, 10, 11, 12, 13, 14], "segund": 6, "segur": [0, 5], "seguranc": [2, 5, 6, 10], "seis": 6, "sej": [4, 6], "seleccion": 6, "selecion": [3, 6], "select": [4, 5, 7, 11, 12, 13, 14, 15, 16, 17], "selected": [3, 4, 7, 10, 12, 14, 16], "selected_elements": 16, "selected_id": 14, "selectedindex": 16, "selecting": 6, "selection": [12, 14], "selections": 12, "selector": [10, 16], "selector1": 10, "selector2": 10, "selectorn": 10, "selectwidget": 12, "selec\u00e7\u00e3": 6, "sele\u00e7\u00e3": [6, 10], "self": [2, 5, 6, 10, 12, 13, 14, 16], "semantic": [12, 13], "semelh": [0, 4, 5, 6, 10], "sempr": [6, 8], "send": [2, 6, 12, 13, 16], "send_two_factor_email": 13, "sendgrid": 16, "sendgrid_api_key": 16, "sendgridapiclient": 16, "sending": 17, "sendmail": 16, "sendmail_task": 16, "sends": 13, "senh": [0, 2, 3, 5, 6, 13], "sens": [0, 6, 12], "sensitiv": [5, 12], "sens\u00edvel": 6, "sent": [5, 6, 13, 16], "sen\u00e3": 6, "separ": [6, 14], "separat": [4, 5, 6, 12, 13, 16], "separated": [2, 5, 6, 14, 16], "separating": [8, 12], "separator": 12, "sequenc": [5, 6], "sequencial": 6, "sequ\u00eanc": 6, "seq\u00fcenc": 6, "seq\u00fc\u00eanc": 6, "ser": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14], "seri": 1, "serializ": [4, 6, 8, 10], "serializabl": [0, 5, 6], "serialized": [5, 6, 10, 12], "serv": [0, 2, 3, 4, 7, 8, 13, 15, 16, 17], "served": [2, 4, 6], "server_addr": 6, "server_nam": 4, "servers": [2, 6], "serversid": [13, 16], "servidor": [0, 4, 5, 6], "serving": [5, 16], "ser\u00e3": [4, 6, 10], "session": [0, 2, 4, 6, 10, 12, 13, 14, 15, 16, 17], "session_app1": 5, "session_secret_key": 5, "sessions": [0, 6, 15], "sess\u00e3": [4, 17], "sess\u00f5": 5, "set": [0, 1, 2, 5, 7, 8, 10, 11, 14, 15, 16], "set_attribut": 6, "set_encoding": 6, "set_head": 6, "set_password": 3, "setinterval": 16, "sets": [2, 5, 6, 12], "setting": [2, 4, 5, 6, 12, 14], "settings": [1, 4, 5, 6, 10, 13, 15, 16], "setup": [1, 3, 4, 13, 16], "setvirtualfields": 6, "several": 4, "severity": 6, "se\u00e7\u00e3": 6, "se\u00e7\u00f5": 6, "sf": 16, "sftp": 6, "sg": 16, "sh": 16, "sha512": [8, 12], "shar": [5, 6, 15], "shared": 5, "shell": 10, "ships": 8, "sho": 6, "shopping": 5, "short": [12, 13, 16], "shortcut": [6, 8, 12], "should": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "show": [2, 5, 6], "show_id": 14, "showcas": 6, "showed": 13, "showing": [13, 14], "shown": [2, 4, 5, 6, 12, 13], "shows": [4, 8, 12, 13], "shutil": 6, "si": [6, 14], "sid": [6, 13, 16, 17], "sideb": 8, "sidebar_enabled": 8, "sidebar_menu": 10, "sidec": 16, "sign": [5, 8, 13], "signatur": [5, 6, 7, 10, 12, 16], "signed": [2, 5, 12, 13], "signed_url": 5, "signif": [5, 6, 7], "signific": [6, 8], "significant": 8, "signing": 5, "signing_inf": 12, "signs": 5, "sim": 6, "simbol": 2, "simb\u00f3l": 4, "simil": [0, 4, 12, 15], "similar": [6, 10], "similariti": 15, "simmil": 4, "simpl": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "simple_query": 16, "simple_token_plugin": 13, "simples": [4, 6, 11], "simplest": 2, "simplicity": [6, 16], "simplific": 6, "simplified": [0, 4, 8], "simply": [2, 4, 5, 6, 8, 12, 16], "simultan": 6, "simult\u00e2n": 6, "sinal": 6, "sinc": [0, 4, 5, 7, 8, 14, 15], "singl": [2, 4, 5, 6, 7, 8, 12, 13, 14], "singleton": [5, 15], "sintax": [4, 6, 10, 13, 17], "sint\u00e1t": 5, "sistem": [0, 2, 5, 6], "sit": [1, 2, 4, 5, 6, 10, 14, 16], "situa\u00e7\u00e3": 6, "siz": [5, 8, 12], "skip": [5, 16], "slash": [1, 4, 5, 13], "sleep": 16, "sleep_tim": 16, "slick": 0, "slow": [6, 16], "slug": 12, "small": [5, 12], "sms": 16, "smtplib": 16, "snippets": 6, "so": [2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "soap": 10, "sob": [4, 6], "sobr": [0, 8], "sobrecarg": 6, "soch": 0, "sockets": 16, "solicit": [0, 6], "solt": 6, "solution": [0, 2, 16], "solu\u00e7\u00e3": [1, 6], "som": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "some_condition": 8, "some_form": 12, "some_valu": 6, "somefield": 6, "somefil": 6, "soment": [2, 4, 6, 8], "somepath": 5, "sometabl": 6, "something": [4, 6, 7, 8, 10, 12, 13, 14, 16], "sometim": [5, 6, 8, 10, 12, 13], "somevalu": 6, "somewhat": 12, "somewher": [5, 6], "soon": [8, 16], "sophisticated": 15, "sort": 12, "sorted": 14, "sorting": 12, "sourc": [1, 2, 3, 4, 6, 12, 16], "source1": 12, "south": 1, "sp": 6, "spac": [6, 8, 12, 14], "span": [4, 15], "spatialit": 6, "speaking": 5, "special": [0, 4, 5, 6, 8, 13, 15, 17], "specialization": 6, "specials": 12, "specifi": 5, "specific": [2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "specifically": [5, 6, 12, 16], "specifications": 7, "specified": [5, 6, 8, 10, 12, 13, 14, 15, 16], "specify": [2, 4, 5, 6, 7, 12, 13, 14, 16], "specifying": 10, "speed": [7, 8], "sphinx": 1, "spiderman": [7, 14], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 12], "split_emails": 12, "sql": 17, "sql_mod": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 12, 15], "sqlforms": 12, "sqlit": [1, 5, 7, 13, 14, 16], "sqlite3": 6, "sqliteadapt": 6, "squar": 8, "src": [6, 8, 10, 12, 16], "ss": 12, "ssl": [2, 4], "ssl_cert": 2, "ssl_key": 2, "sslcert": 6, "sslkey": 6, "sslmod": 6, "sslrootcert": 6, "sso_id": [5, 13], "stabl": 2, "stand": 12, "standard": [2, 3, 6, 7, 13, 14, 15, 16, 17], "standards": [12, 14], "stands": 10, "start": [1, 2, 3, 4, 5, 6, 10, 12, 13, 14, 16], "start_impersonating": 13, "started": 16, "starting": [2, 4, 12], "starts": [0, 3, 5, 8, 15], "startup": [6, 15], "stat": [5, 7, 15, 16], "stated": 5, "stateful": 5, "stateless": [5, 16], "statement": 8, "statements": [8, 12], "static": [1, 4, 8, 10, 15], "static_dev": 4, "status": [7, 16], "status_cod": 16, "stderr": [2, 16], "stdout": [2, 16], "steil": [0, 1, 14], "step": [13, 15], "step1": 5, "step2": 5, "step3": 5, "step_completed": 5, "stepping": 16, "steps": 2, "still": [5, 6, 10, 12, 13, 14, 15], "ston": 14, "stop": [2, 13], "stop_impersonating": 13, "stor": [5, 6, 12, 13, 16], "storag": [6, 7, 14], "stored": [0, 5, 6, 12, 13, 15, 16], "stored_it": 6, "stored_item_archiv": 6, "storing": 5, "story": [0, 13], "str": [2, 5, 6, 10, 12, 15, 16], "stre": [5, 6], "streaming": [4, 15], "strength": 7, "strict": 12, "strictly": [4, 6, 16], "string": [4, 5, 6, 7, 10, 11, 12, 13, 14], "stringi": 6, "stringlistproperty": 6, "strings": [10, 12, 14], "strip": 12, "stripped": [2, 15], "strong": [0, 10, 13], "strongly": [1, 5, 12, 14], "structur": [1, 4, 6, 13, 14, 15, 17], "stuck": 2, "students": 2, "studi": 1, "study": 1, "stuff": [12, 14], "style": [4, 6, 8, 12, 16, 17], "styles": 14, "stylesheet": [8, 14], "styling": 14, "sub": 6, "subcl": 6, "subclassing": 12, "subconjunt": [0, 6], "subfold": 6, "subfolders": [5, 6], "subheadings": 10, "subject": [6, 7, 13, 16], "sublinh": 6, "submet": 12, "submission": [12, 16], "submit": [1, 5, 6, 10, 12, 14], "submits": 13, "submitted": [13, 14, 16], "submitting": 13, "subm\u00f3dul": 0, "subnet": 12, "subnets": 12, "subpast": 4, "subqueri": 16, "subset": 12, "subse\u00e7\u00e3": 6, "substitu": [0, 2, 6, 8, 10], "substitui\u00e7\u00f5": 14, "substitutions": 8, "substitu\u00edd": 6, "substring": [6, 12], "succeeded": [0, 13], "success": [5, 7, 16], "successful": [0, 13], "successfully": 13, "suced": 6, "sucess": [4, 6], "such": [4, 6, 10, 12, 13, 14, 15], "sud": [2, 13], "suffered": 0, "suffers": 13, "sufficient": 13, "suficient": [6, 14], "suger": [1, 6], "sugest\u00f5": 17, "suggest": [1, 12], "sugiz": 0, "sup": [5, 7], "super": 6, "superher": [6, 7, 12, 14, 16], "superhero": 7, "superior": 11, "superman": [6, 7, 12, 14], "superpotent": 7, "superpow": [6, 7], "superseeded": 6, "supond": [2, 6], "suponh": 6, "supor": 6, "suport": [0, 11, 17], "supplied": 10, "support": [1, 2, 6, 12, 14, 15], "supported": [11, 12, 13], "supporting": 16, "supports": [4, 5, 8, 10, 12, 16], "suppos": 5, "suppress": 2, "suprim": 10, "sur": [5, 12, 13, 16], "surely": [3, 4], "surrounding": 12, "susan": 6, "sutil": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 12, "symbols": 12, "sync": [2, 6], "synops": 12, "syntactic": 12, "syntax": [0, 1, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "system": [0, 2, 5, 6, 10, 13, 16], "systems": 16, "sysus": 6, "s\u00e3": [0, 1, 3, 4, 5, 6, 8, 10, 11, 13, 14], "s\u00e9ri": 6, "t": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15], "t_fold": 5, "tab": [3, 5, 12], "tabel": [5, 10, 13, 14, 15], "tabl": [5, 7, 12, 13, 14, 15, 16, 17], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 12, 16], "tag": [0, 5, 6, 7, 8, 13, 15, 16], "tag_input": 16, "tagg": 10, "tagged_db": 13, "tagging": [6, 10, 13], "tags": [0, 5, 6, 8, 10, 12, 15, 16, 17], "tags_input": 16, "tags_inputs": 16, "tail": 6, "tail_nam": 13, "tais": 6, "tak": [2, 3, 5, 6, 8, 12, 13, 14, 16], "taken": 12, "tal": 6, "talk": 4, "talvez": [2, 5], "tamanh": 6, "tampering": [5, 6], "tant": [6, 16], "tantissim": 11, "tap": 16, "tar": 12, "tard": [4, 6], "taref": [1, 6, 13], "target": [10, 16], "task": 17, "task_run": 16, "tasks": [5, 6, 16], "tast": 6, "tbody": 6, "tcp": 3, "td": 6, "teach": 13, "technically": 16, "tecl": [6, 11], "tell": [4, 13, 16], "telling": [2, 13], "tells": [5, 16], "temp": [2, 8], "templat": [0, 4, 10, 12, 13, 15, 16, 17], "temporarily": 5, "tempor\u00e1ri": 6, "ten": 12, "tenancy": 6, "tenh": [1, 5, 6], "tent": [5, 6], "ter": [2, 4, 5, 6, 10], "teradat": 6, "teradataadapt": 6, "terceir": 6, "tered": 12, "term": 6, "termin": 10, "terminal": 4, "terminat": [8, 16], "termination": 4, "terms": 12, "terr": 6, "ter\u00e3": 6, "test": [2, 5, 6, 8, 10, 12, 14], "test1": 13, "test_ap": 13, "tested": [0, 2, 10, 13], "testing": [4, 6], "text": [2, 5, 6, 8, 10, 14, 16], "textar": 12, "textareawidget": 12, "textual": [10, 13], "th": 6, "than": [0, 4, 5, 6, 8, 10, 12, 13, 14, 16], "thank": 10, "thanks": 0, "that": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "that_templat": 8, "the": [0, 3, 8, 10, 11, 13, 15, 17], "thead": 6, "them": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "themselv": [6, 8], "then": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "ther": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "therefor": [4, 5, 8, 12, 15], "thes": [2, 4, 5, 6, 8, 10, 12, 14, 16], "they": [2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "thing": [5, 6, 12, 14, 15], "thing_id": 12, "thing_tags_default": 6, "things": [2, 5, 6, 12], "think": [5, 8, 14, 16], "third": [0, 5, 12], "this": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "this_templat": 8, "thisisatest": 10, "thisisthekey": 12, "thos": [5, 6, 8, 10, 13, 15, 16], "though": 8, "thought": [0, 6, 13], "thre": [0, 5, 6, 13], "thread": [5, 6, 15, 16], "threaded": [2, 15], "threads": [5, 6], "threadsafevariabl": 5, "through": [2, 12], "throughout": 5, "thumbnail": 12, "thus": 5, "ti": 5, "ticket": 6, "tickets_only": 2, "til": 6, "tim": [0, 4, 5, 6, 8, 13, 14, 15, 16], "timed": 6, "timedelt": [12, 13], "timeoffset": 10, "timeout": [5, 16], "timeouts": 16, "timestamp": [5, 7, 16], "tint": 4, "tip": [4, 14], "tips": [2, 14], "tir": 6, "titl": [8, 12, 16], "tiv": 6, "tmp": [5, 6], "to": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "to_addr": 16, "to_addrs": 16, "tod": [1, 2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 16], "today": [0, 12, 16], "togeth": [0, 8], "token": [5, 12], "token_plugins": 13, "tokens": 13, "tom": 6, "too": [2, 5, 6, 12, 16], "took": 6, "tool": 0, "tools": [6, 13, 16], "top": [8, 12, 13], "topics": [14, 17], "torn": [1, 2, 5, 6, 10, 14], "tosupport": 13, "total": [1, 6, 7], "total_pric": 6, "totp": 13, "touch": 8, "toy": 6, "tr": 6, "trabalh": [2, 6, 7], "traceback": 6, "tracebacks": 5, "track": [1, 15], "trad": 6, "tradicion": 6, "tradicional": 6, "traditional": 2, "tradutor": 4, "traduz": [1, 6, 8, 11], "tradu\u00e7\u00e3": [5, 17], "tradu\u00e7\u00f5": [5, 11], "trailing": [2, 12], "training": 1, "transaction": [5, 6], "transactional": 16, "transactions": 6, "transa\u00e7\u00f5": 6, "transform": [4, 5, 6, 12, 16], "transformed": [5, 6], "transforms": 5, "transitions": 16, "translat": 16, "translated": [5, 8, 12], "translation": [5, 12, 15], "translations": [5, 11, 16], "translator": [2, 11, 17], "transmit": 3, "transparent": [6, 8, 12], "transparently": 8, "trapped": 16, "trat": [4, 6], "tre": [4, 8, 12], "treated": [6, 15], "tri": [6, 13, 15], "trickery": 8, "tricks": 2, "tried": 0, "trigg": [6, 16], "triggers": 5, "trivial": [5, 6], "tru": [1, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "trunc": 6, "truncat": 6, "truth": 16, "try": [2, 4, 5, 6, 8, 12, 13, 16], "trying": [1, 12, 13], "tr\u00e1s": 6, "tr\u00eas": 6, "ttl": 5, "tud": [5, 6], "tupl": [6, 8, 10], "turn": [12, 13, 14, 16], "turned": 0, "turns": [6, 16], "tutorial": [1, 2, 4, 14, 16], "tutorials": 1, "twic": [5, 6], "twili": 16, "twitt": [0, 5, 13], "two": [1, 2, 4, 5, 6, 8, 12, 14, 15, 16], "two_factor": 13, "txt": [0, 2, 4, 6], "type": [1, 2, 5, 7, 8, 10, 13, 16], "types": [4, 12, 13], "typical": [5, 6, 12], "typically": [4, 8], "t\u00eam": [2, 4, 6, 13], "t\u00edpic": 6, "t\u00edtul": [3, 10, 14], "t\u00f3pic": 6, "u": [2, 6, 10], "ubuntu": 13, "uc": 1, "ui": [5, 13], "uid": 6, "ul": [8, 12, 13, 16], "un": [8, 10, 11, 16], "unauthenticated": [5, 6, 10], "unauthorized": 6, "unavailabl": 2, "unchanged": 12, "undefined": 5, "under": [2, 3, 4, 5, 6, 12, 13], "underlying": 15, "underscor": [6, 10, 12], "understand": [0, 2, 4, 6, 7, 8], "understanding": 17, "undocumented": 16, "unfortunat": 6, "unfortunately": 14, "unicod": [6, 12], "unicodedecodeerror": 6, "unid": 6, "uniform": 6, "uniqu": [6, 7, 12, 13], "unit_pric": 6, "unit\u00e1ri": 6, "universal": [4, 6, 10], "uni\u00e3": 6, "unknown": 4, "unless": [3, 5, 6, 8, 12, 16], "unlik": [0, 2, 7, 8, 15, 16], "unnamed": 6, "unneded": 2, "unordered": 10, "unpkg": 16, "unquoted": 10, "uns": 5, "unsaf": [5, 10, 12, 13], "untested": [2, 13], "until": [0, 5, 6, 8, 12], "un\u00e1ri": 6, "up": [1, 2, 5, 6, 8, 13, 16], "updat": [2, 5, 12, 14, 15, 16], "update_form": 12, "update_languag": 11, "update_naiv": 6, "update_thing": 12, "updated": [5, 6, 12], "updating": 5, "upgrad": [2, 6], "upgraded": 2, "upload": [4, 6], "upload_fold": [6, 12], "upload_help": 16, "uploaded": [6, 12, 15], "uploadfield": 6, "uploadfold": 6, "uploadfs": 6, "uploads": 6, "uploadseparat": 6, "upon": [2, 13, 15], "upper": [4, 5, 12], "upper_cas": 5, "uppercas": [5, 12], "uri": 13, "uris": 6, "url": [4, 5, 7, 8, 12, 13, 14, 15, 16], "url_prefix": 2, "url_sign": 5, "url_to_post_t": 16, "urls": [2, 4, 12, 15], "urlsign": 17, "us": [2, 12], "usa": [0, 4, 5, 6, 8], "usabl": 14, "usad": [0, 4, 6, 10, 11, 13, 14], "usag": [2, 3, 4, 5, 6, 10, 12, 13, 14], "usam": 6, "usand": [4, 5, 8, 10, 13, 17], "usar": [2, 4, 5, 6, 8, 10, 14], "use": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "use_schedul": 16, "used": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "useful": [2, 4, 8, 10, 12, 13, 14, 16], "usefull": 12, "useless": [12, 15], "user": [2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "user_email": 15, "user_id": [5, 6, 13, 15], "user_nam": 6, "user_outside_network": 13, "user_password": 6, "user_token": 6, "usernam": [5, 6, 13], "users": [0, 1, 4, 5, 13, 15], "uses": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "using": [0, 1, 3, 4, 7, 12, 15, 17], "uso": [2, 5, 14], "usos": 6, "usou": [5, 6], "usual": [2, 8, 10, 12], "usually": [1, 5, 7, 12], "usu\u00e1ri": [1, 2, 3, 4, 5, 6, 13, 15], "us\u00e1": [2, 6, 8], "utcnow": [5, 6, 13], "utf": 6, "utf8": 6, "utf8mb4": 6, "utility": [2, 12], "utiliz": [2, 3, 4, 5, 6, 10, 13, 14], "utilizing": 14, "utils": [2, 4, 5, 8, 10, 12, 13, 14, 15, 17], "uuid": [5, 6, 13], "uuid4": [5, 6], "uuids": 6, "v": [5, 10, 12, 16], "v3": 1, "vai": [1, 4, 6, 8], "val": 14, "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [4, 5, 6, 10, 13, 15, 17], "validat": [6, 12, 13], "validate_cod": 13, "validate_js": 4, "validated": [12, 13], "validating": 13, "validation": [4, 6, 7, 8, 13, 14], "validator": [6, 12], "validators": [2, 15], "validity": 12, "valios": 1, "valor": [5, 10, 11, 12, 14], "valq7711": 0, "vals": 16, "valu": [2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "valuabl": 13, "value1": 6, "value2": 6, "value_field": 12, "valued": 12, "vam": [1, 6, 10], "vantag": 6, "vantagens": 6, "var": 16, "varch": 6, "vari": 6, "variabl": [5, 6, 10, 12, 14, 16], "various": 5, "vari\u00e1vel": [4, 6, 10, 11], "varredur": 6, "vars": [6, 10, 12, 15], "vaz": 6, "vazi": [2, 6], "ve": [2, 3, 5, 8, 10, 12, 13, 14, 16], "vej": [2, 3], "veloc": 6, "vem": [0, 4, 6], "vendor": 16, "vendor_typ": 16, "vendors": 16, "venv": 2, "ver": [2, 6, 13], "verd": 4, "verdad": 14, "verdadeir": [6, 12, 14], "verif": 6, "verific": [5, 6, 13], "verification": 13, "verified": [5, 12, 16], "verify": 5, "verify_email": 13, "verifying": 13, "vermelh": 4, "vers": 5, "version": [1, 3, 7, 8, 12, 16], "versions": [2, 5, 12], "vers\u00f5": 6, "vertic": 6, "verticaadapt": 6, "very": [0, 4, 8, 10, 12, 13, 15, 16], "veryfing": 13, "vez": [2, 4, 5, 8, 10, 13, 14], "ve\u00edcul": 5, "via": [5, 6, 8, 10, 13, 16], "vias": 6, "vic": 5, "vid": [1, 2, 16], "view": [1, 5, 6], "viewing": 6, "viewport": 8, "views": 6, "vincul": 6, "vind": 2, "vir": 13, "virtual": [1, 17], "virtualenv": [1, 2], "virtualfields": 6, "visit": [3, 5, 12], "visit_log": 5, "visited": [5, 8], "visiting": [5, 13], "visitor": 6, "visitors": [10, 12], "visits": 6, "vist": [5, 6, 10], "visual": 1, "visualiz": 6, "vis\u00e3": 6, "vis\u00edvel": 4, "vital": 13, "voc": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "volt": [5, 6], "vou": 2, "vscod": 2, "vue": [0, 4, 16], "vulner": 8, "v\u00e1l": 4, "v\u00e1r": [2, 4, 5, 6], "v\u00e1ri": [4, 5, 6, 11], "v\u00e3": 6, "v\u00ea": 6, "v\u00edrgul": 6, "v\u00f4o": 7, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 12, 13, 16], "wanting": 16, "wants": [4, 5], "warning": [2, 5], "was": [0, 5, 6, 12, 13, 14], "watch": [1, 2, 3, 17], "watched": 4, "way": [2, 3, 5, 6, 8, 10, 12, 13, 15], "wayn": [7, 14], "ways": [0, 2, 4, 6, 13, 14, 16], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "web": [0, 1, 2, 5, 6, 8, 13, 14, 15, 16, 17], "web2py": [0, 1, 2, 3, 4, 5, 6, 12, 13, 14, 17], "websit": [6, 16], "websocket": 16, "websockets": 2, "welcom": [4, 5, 8, 15, 16], "well": [0, 4, 5, 6, 8, 12, 13, 16], "wer": [0, 4], "what": [4, 5, 6, 8, 12, 13, 15, 16], "whatev": [10, 16], "when": [0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whenev": 4, "wher": [1, 2, 4, 6, 8, 12, 13, 15, 16], "wheth": [5, 6, 12, 13, 15], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whichev": 16, "whil": [4, 5, 6, 7, 12, 13, 14, 15], "whit": [10, 16], "whitelist": 13, "who": [0, 13], "whol": [4, 12], "whos": [5, 6, 8, 12], "why": [5, 8, 15], "widget": [6, 12], "widgets": [6, 16, 17], "width": [8, 12], "wik": [6, 7], "wikiped": [6, 7], "wild": 6, "wildcard": 4, "will": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "willing": 13, "window": [5, 8, 12], "windows": [1, 2, 4, 6], "wish": 16, "wishing": 12, "wit": 2, "with": [0, 1, 2, 3, 4, 7, 8, 10, 16, 17], "with_al": 6, "within": [0, 1, 5, 6, 8, 10, 12, 16], "without": [6, 8, 10, 13, 16, 17], "wolf": 0, "wood": 6, "words": [5, 14], "work": [0, 2, 4, 5, 6, 8, 10, 12, 16], "worked": [0, 16], "workers": 2, "workflow": [5, 17], "working": [2, 12], "workload": 6, "workplac": 1, "works": [2, 6, 8, 12, 13, 14, 15, 16], "workspacefold": 2, "world": [4, 5, 6, 8, 10, 12, 13, 16], "worry": 4, "worth": 8, "would": [0, 4, 5, 6, 10, 12, 13, 16], "wouldn": 6, "wrap": [12, 14, 16], "wrapp": 16, "wrapped": 5, "wrappers": 15, "writ": [2, 4, 5, 6, 8], "writabl": [5, 6, 12, 15], "writing": [4, 6, 15], "written": [1, 8, 12, 14], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "www": [2, 8, 10, 14, 16], "x": [2, 4, 6, 8, 10, 12, 14, 16], "xml": [8, 12, 15, 16], "xmlescap": 10, "xmlns": 10, "xss": [6, 8, 10], "xyz": [10, 12], "y": [2, 10, 12], "yaml": 2, "yatl": [0, 4, 5, 6, 12, 14, 16, 17], "yb": 10, "year": [12, 16], "yes": [2, 6, 16], "yes_or_n": 6, "yet": [0, 2, 4, 5, 8, 12, 16], "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "your": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "your_app": 12, "your_full_path_to_py4web": 1, "your_nam": [1, 16], "yourapp": 6, "yourappnam": 2, "youremail": 13, "yourself": [1, 12], "youtub": [2, 6], "yyyy": 12, "z": [10, 12], "zanferrar": 0, "zap": 13, "zap_id": 13, "zapp": 13, "zapped": 13, "zer": [6, 8, 12, 14], "zip": [0, 2, 6, 12], "zip_cod": 16, "zxjdbc": 6, "\u00c0s": [6, 10], "\u00e1rvor": 4, "\u00e2mbit": 4, "\u00e9": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17], "\u00e9poc": 6, "\u00edndic": 4, "\u00f3bvi": [6, 8], "\u00f3ptim": 4, "\u00faltim": [5, 6, 13], "\u00fanic": [0, 2, 6, 10], "\u00fate": [1, 6], "\u00fatil": 6}, "titles": ["O que \u00e9 py4web?", "Ajuda, recursos e dicas", "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento", "O Dashboard", "Creating an app", "Fixures", "The Database Abstraction Layer (DAL)", "The RestAPI", "Linguagem de template YATL", "<no title>", "Helpers YATL", "Internacionaliza\u00e7\u00e3o", "Foruml\u00e1rios", "Authentication and authorization", "Rede", "De web2py para py4web", "Advanced topics and examples", "py4web: o manual de refer\u00eancia"], "titleterms": {"A": [3, 6, 10, 12], "As": 1, "Comando": 6, "Como": 1, "De": 15, "Do": 4, "EM": 10, "Em": 4, "Este": 1, "Mais": 6, "O": [0, 1, 3, 4, 5, 6], "OS": 15, "Os": [6, 14], "Um": [1, 6], "_lastsql": 6, "_scaffold": 4, "about": 5, "abstraction": 6, "accessing": 15, "acknowledgments": 0, "actions": [7, 13], "adapt": 6, "adicion": 6, "advanced": [12, 16], "agrup": 6, "ajud": 1, "aka": 2, "alias": 6, "alon": 6, "amostr": 14, "an": 4, "and": [6, 7, 8, 12, 13, 14, 15, 16], "antig": 6, "any_of": 12, "anywher": 5, "api": 13, "aplic": 6, "app": [2, 4, 6], "apps": 4, "args": 15, "arquiv": 11, "as_dict": 6, "as_list": 6, "assinatur": 6, "asynci": 16, "atalh": 6, "atribut": 6, "atualiz": [6, 11], "aut": 6, "autentic": 13, "auth": [5, 13, 15], "authentication": 13, "authorization": 13, "autocomplet": 16, "avanc": 6, "avg": 6, "a\u00e7\u00e3": 14, "background": 16, "banc": 6, "bas": 6, "basic": [12, 14], "beautify": 10, "belongs": 6, "bin\u00e1ri": 2, "block": 8, "body": 10, "bot\u00e3": 14, "bot\u00f5": 14, "built": 10, "b\u00e1sic": 8, "cach": 6, "caching": 5, "cad": 6, "call": 2, "callabl": 14, "calling": 15, "camp": [6, 14], "caracter\u00edst": 6, "cas": 6, "cascad": 6, "cat": 10, "caveats": 5, "celery": 16, "cham": 6, "chang": 4, "chav": 6, "checkbox": [12, 14], "children": 10, "class": 14, "cleanup": 12, "client": 5, "coalesc": 6, "coalesce_zer": 6, "coloc": 2, "columns": 14, "comando": 2, "combin": 6, "commit": 6, "complexity": 12, "comput": 6, "computed": 6, "comuns": 6, "condition": 5, "conex\u00e3": 6, "conex\u00f5": 6, "configur": [2, 6], "constructor": 12, "construtor": 6, "consult": 6, "cont": 6, "contains": 6, "conte\u00fad": 17, "contribu": 1, "control": 6, "convenient": 5, "conversion": 15, "cooki": 5, "copi": 6, "copying": 4, "corr": 2, "count": [6, 15], "creating": 4, "crud": 14, "crypt": 12, "csv": 6, "custom": [4, 12, 13, 14], "customizing": 14, "dad": 6, "dal": [5, 6], "dashboard": [3, 6], "dat": 12, "databas": [5, 6, 12], "datastor": 6, "day": 6, "db": 6, "decor": 5, "def": 8, "default": 8, "defeit": 6, "defin": 6, "define_tabl": 6, "deix": 6, "delet": 6, "dependenc": 5, "deployment": 2, "depur": 1, "design": [2, 12], "development": 8, "dic": 1, "dicion\u00e1ri": 6, "dictionari": 12, "din\u00e2m": 4, "discord": [1, 13], "distinct": 6, "distint": 6, "distribu\u00edd": 6, "div": 10, "dock": 2, "dom": 10, "domain": 4, "drop": 6, "elif": 8, "else": 8, "endswith": 6, "engin": 2, "envi": 6, "environment": 2, "equality": 12, "error": 4, "estil": 6, "est\u00e1t": 4, "etiquet": 13, "exampl": [7, 12, 13, 14, 15, 16], "excet": 8, "exclud": 6, "exclus\u00e3": 6, "execu": 6, "executesql": 6, "experiment": 6, "experimental": 6, "export": 6, "express\u00f5": 6, "extend": 8, "extending": 8, "facebook": 13, "factor": 13, "fake_migrat": 6, "falh": 6, "faz": 6, "featur": 14, "fich": 6, "field": [6, 12], "fields": 6, "fil": [4, 12, 15], "filter_in": 6, "filter_out": 6, "filtering": 14, "filtr": 6, "finally": 8, "find": [6, 10], "first": 6, "fixa\u00e7\u00e3": 6, "fixtur": 5, "fixur": 5, "flash": [5, 15], "font": [1, 2], "form": [10, 12, 15, 16], "format": [6, 12, 16], "forms": 12, "formul\u00e1ri": 12, "foruml\u00e1ri": 12, "from": 2, "funcion": 2, "functions": [8, 12], "gae": 2, "gcloud": 2, "generating": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 13], "grid": [14, 15, 16], "grids": 14, "groupby": 6, "grup": 1, "h1": 10, "h2": 10, "h3": 10, "h4": 10, "h5": 10, "h6": 10, "having": 6, "head": 10, "hell": 15, "helpers": 10, "heranc": 6, "hour": 6, "html": [6, 10], "htmx": 16, "https": 2, "i": 10, "id": 6, "if": 8, "ilik": 6, "img": 10, "impersonation": 13, "implant": 2, "import": 6, "in": [5, 8, 10, 16], "includ": 8, "inferior": 6, "information": 8, "inject": [5, 10], "inner": 6, "input": 10, "inser": 6, "insert": 6, "inser\u00e7\u00e3": 6, "insid": 13, "instal": 2, "installations": 2, "installing": 2, "interfac": 13, "internacionaliz": 11, "introduction": 6, "is_alphanumeric": 12, "is_dat": 12, "is_date_in_rang": 12, "is_datetim": 12, "is_datetime_in_rang": 12, "is_decimal_in_rang": 12, "is_email": 12, "is_empty_or": 12, "is_equal_t": 12, "is_expr": 12, "is_fil": 12, "is_float_in_rang": 12, "is_imag": 12, "is_in_db": 12, "is_in_set": 12, "is_int_in_rang": 12, "is_ipaddress": 12, "is_ipv4": 12, "is_ipv6": 12, "is_json": 12, "is_length": 12, "is_list_of": 12, "is_list_of_emails": 12, "is_low": 12, "is_match": 12, "is_not_empty": 12, "is_not_in_db": 12, "is_null_or": 12, "is_saf": 12, "is_slug": 12, "is_strong": 12, "is_tim": 12, "is_upload_filenam": 12, "is_upp": 12, "is_url": 12, "isempty": 6, "iter": 6, "join": 6, "joins": 6, "js": 16, "junt": 6, "jwttokenplugin": 13, "key": 14, "label": 10, "last": 6, "lay": 6, "layout": 8, "ldap": 13, "left": 6, "leg": 6, "len": 6, "less": 6, "li": 10, "lik": 6, "limitby": 6, "linguag": 8, "linh": 2, "list": 6, "local": [1, 2, 5, 6], "low": 6, "l\u00f3gic": 6, "manipulation": 12, "manual": [1, 17], "many": 6, "mapped": 4, "marca\u00e7\u00e3": 6, "max": 6, "melhor": 2, "memcach": 5, "memoiz": 5, "mem\u00f3r": 6, "mesm": 6, "messag": 16, "methods": [6, 15], "microsoft": 6, "migrat": 6, "migra\u00e7\u00e3": 6, "migra\u00e7\u00f5": 6, "min": 6, "minimal": 12, "minut": 6, "mobil": 8, "model": [4, 6], "modern": 1, "modific": 6, "month": 6, "mssql": 6, "muit": 6, "multipl": [5, 13], "mysql": 6, "new_app": 2, "nom": 6, "nosql": 6, "not": 6, "nov": 6, "oauth2": 13, "object": [14, 16], "objects": 13, "objet": 4, "obten\u00e7\u00e3": 6, "of": 13, "ol": 10, "on": 2, "on_defin": 6, "oper": 6, "option": 10, "options": 12, "op\u00e7\u00e3": 2, "op\u00e7\u00f5": 2, "orden": 6, "orderby": 6, "orderby_on_limitby": 6, "or\u00e1cul": 6, "other": 12, "out": 6, "outr": 6, "overview": 10, "p": 10, "padr\u00e3": 6, "pag": [4, 8], "palavr": 6, "pam": 13, "par": [6, 8, 15], "paramet": 12, "parameters": 14, "part": [2, 6], "par\u00e2metr": 6, "past": 6, "pegadinh": 6, "permiss\u00f5": 13, "personaliz": [5, 6, 10, 14], "pip": 2, "plataform": 2, "plugin": 13, "plugins": 13, "plural": 6, "pluraliz": 11, "podman": 2, "polic": 7, "polymodel": 6, "pool": 6, "practical": 7, "pre": 10, "preguic": 6, "primarykey": 6, "primeir": 2, "prim\u00e1r": 6, "principal": 3, "princ\u00edpi": 4, "proced": 2, "pr\u00e9": [1, 2], "py4web": [0, 1, 6, 15, 16, 17], "pycharm": 1, "python": 1, "pythonanywher": 2, "p\u00e1gin": [3, 4], "q": 16, "quebr": 6, "query": 6, "quick": 6, "quoting": 6, "rang": 12, "raw": 6, "real": 6, "record": 6, "recurs": [1, 6], "red": [5, 14], "redefin": 6, "redirect": 15, "referent": [6, 14, 17], "regexp": 6, "registr": 6, "relation": 6, "relations": 6, "rela\u00e7\u00e3": 6, "remot": 6, "renderiz": 6, "replic": 6, "represent": 6, "request": 4, "requisit": [1, 2], "reserv": 6, "respons": 7, "restap": 7, "resum": 6, "retorn": [4, 6], "return": [8, 15], "returning": 15, "rnam": 6, "rollback": 6, "rot": 4, "row": 6, "rows": 6, "run": 2, "s": 6, "schedul": 16, "script": 10, "searching": 14, "seconds": 6, "security": 12, "segur": 6, "select": [6, 10], "selects": 6, "selet": 6, "sending": 16, "sequence_nam": 6, "serv": [1, 5, 6, 10], "session": 5, "sessions": 5, "sess\u00e3": 3, "set": [6, 12], "set_password": 2, "setting": 15, "settings": 14, "setup": 2, "sharing": 5, "shell": [2, 6], "sid": [5, 10], "sidec": 12, "simpl": 15, "simpletokenplugin": 13, "sincroniz": 6, "singul": 6, "sintax": 8, "sobr": 6, "sort": 6, "sorted": 12, "span": 10, "special": [2, 12], "sql": 6, "sqlit": 6, "stand": 6, "standard": [8, 12], "startswith": 6, "storag": 5, "string": 16, "strings": 6, "structur": [8, 12], "style": [10, 14], "substrings": 6, "sugest\u00f5": 1, "sum": 6, "sup": 8, "suport": [2, 6], "supported": 6, "t": 16, "tabel": [6, 17], "tabl": [6, 10], "table_class": 6, "tag": 10, "tagging": 12, "tags": 13, "task": 16, "tbody": 10, "td": 10, "temp": 6, "templat": [5, 8, 14], "temporiz": 6, "tend": 6, "tent": 8, "tentat": 6, "text": 12, "textar": 10, "th": 10, "the": [1, 2, 4, 5, 6, 7, 12, 14, 16], "thead": 10, "tim": 12, "tip": 6, "titl": 10, "to": 6, "tod": 6, "token": 13, "topics": 16, "tour": 6, "tr": 10, "trabalh": 1, "tradu\u00e7\u00e3": 11, "transa\u00e7\u00e3": 6, "translator": 5, "trigger_nam": 6, "tt": 10, "tupl": 12, "tutori": 1, "two": 13, "two_factor_required": 13, "two_factor_send": 13, "two_factor_tri": 13, "two_factor_validat": 13, "type": [6, 12], "types": 6, "ubuntu": 2, "ul": 10, "understanding": 2, "up": 15, "updat": 6, "update_or_insert": 6, "update_record": 6, "upload": 12, "upper": 6, "uri": 6, "url": 10, "urlsign": 5, "usag": 16, "usand": [6, 14], "user": 13, "using": [2, 5, 6, 8, 10, 13, 14, 16], "uso": 6, "utils": 16, "valid": 12, "validate_and_insert": 6, "validate_and_updat": 6, "validation": 12, "validators": [6, 12], "valor": [4, 6], "variabl": [8, 15], "velh": 6, "version": [2, 6], "vez": 6, "view": 15, "virtu": 6, "virtual": [2, 6], "vscod": 1, "v\u00edd": 1, "watch": 4, "web": [3, 4], "web2py": 15, "whil": 8, "widget": 16, "widgets": 12, "with": [5, 6, 12, 13, 14, 15], "without": [2, 12], "workflow": 8, "world": 15, "wsgi": 2, "xml": [6, 10], "yatl": [8, 10], "year": 6, "\u00e9": 0, "\u00edndic": [6, 17]}}) \ No newline at end of file diff --git a/py4web/__init__.py b/py4web/__init__.py index ada540376..57a51bdfa 100644 --- a/py4web/__init__.py +++ b/py4web/__init__.py @@ -2,7 +2,7 @@ __author__ = "Massimo Di Pierro " __license__ = "BSD-3-Clause" -__version__ = "1.20241204.1" +__version__ = "1.20250125.1" def _maybe_gevent(): diff --git a/pyproject.toml b/pyproject.toml index 14baf0b88..43787eea2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "py4web" -version = "1.20241204.1" +version = "1.20250125.1" authors = [{ name="Massimo Di Pierro", email="massimo.dipierro@gmail.com" },] description = "A fast, stable, comprehensive web framework" readme = "README.rst"