From ebb6575bd1430509bf5e36e90f479768dbf75e15 Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Mon, 2 Aug 2021 10:06:27 +1000 Subject: [PATCH 01/24] rebuilding as a JB --- .../Untitled-checkpoint.ipynb | 6 + .../.ipynb_checkpoints/ch4-checkpoint.ipynb | 101 + .../kolmogorov_bwd-checkpoint.ipynb | 616 + .../kolmogorov_bwd-checkpoint.md | 551 + .../kolmogorov_fwd-checkpoint.ipynb | 599 + .../kolmogorov_fwd-checkpoint.md | 508 + .../markov_prop-checkpoint.ipynb | 1077 ++ .../markov_prop-checkpoint.md | 1014 ++ code_book/_build/.doctrees/ch1.doctree | Bin 0 -> 2462 bytes code_book/_build/.doctrees/ch2.doctree | Bin 0 -> 2438 bytes code_book/_build/.doctrees/ch3.doctree | Bin 0 -> 2472 bytes code_book/_build/.doctrees/ch4.doctree | Bin 0 -> 112041 bytes code_book/_build/.doctrees/environment.pickle | Bin 0 -> 24930 bytes code_book/_build/.doctrees/glue_cache.json | 1 + code_book/_build/.doctrees/intro.doctree | Bin 0 -> 8123 bytes .../base.ipynb | 203 + .../base.ipynb | 110 + .../base.ipynb | 167 + .../base.ipynb | 284 + .../base.ipynb | 110 + .../base.ipynb | 50 + .../base.ipynb | 162 + .../base.ipynb | 209 + .../base.ipynb | 48 + .../base.ipynb | 163 + .../base.ipynb | 110 + .../base.ipynb | 33 + .../base.ipynb | 162 + .../base.ipynb | 162 + .../base.ipynb | 162 + .../base.ipynb | 94 + .../base.ipynb | 219 + .../base.ipynb | 217 + .../base.ipynb | 209 + code_book/_build/.jupyter_cache/global.db | Bin 0 -> 36864 bytes code_book/_build/html/.buildinfo | 4 + code_book/_build/html/_images/ch4_1_0.png | Bin 0 -> 80306 bytes ...-main.c949a650a448cc0ae9fd3441c0e17fb0.css | 1 + ...ables.06eb56fa6e07937060861dad626602ad.css | 7 + code_book/_build/html/_sources/ch1.ipynb | 47 + code_book/_build/html/_sources/ch1.md | 18 + code_book/_build/html/_sources/ch2.ipynb | 47 + code_book/_build/html/_sources/ch2.md | 18 + code_book/_build/html/_sources/ch3.ipynb | 47 + code_book/_build/html/_sources/ch3.md | 18 + code_book/_build/html/_sources/ch4.ipynb | 120 + code_book/_build/html/_sources/ch4.md | 65 + code_book/_build/html/_sources/intro.md | 35 + code_book/_build/html/_static/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 176 bytes code_book/_build/html/_static/basic.css | 855 ++ code_book/_build/html/_static/check-solid.svg | 4 + .../_build/html/_static/clipboard.min.js | 7 + code_book/_build/html/_static/copy-button.svg | 5 + code_book/_build/html/_static/copybutton.css | 69 + code_book/_build/html/_static/copybutton.js | 196 + .../_build/html/_static/copybutton_funcs.js | 58 + ...index.c5995385ac14fb8791e8eb36b4908be2.css | 6 + code_book/_build/html/_static/css/theme.css | 117 + code_book/_build/html/_static/doctools.js | 315 + .../html/_static/documentation_options.js | 12 + code_book/_build/html/_static/file.png | Bin 0 -> 286 bytes .../html/_static/images/logo_binder.svg | 19 + .../_build/html/_static/images/logo_colab.png | Bin 0 -> 7601 bytes .../html/_static/images/logo_jupyterhub.svg | 1 + code_book/_build/html/_static/jquery-3.5.1.js | 10872 ++++++++++++++++ code_book/_build/html/_static/jquery.js | 2 + .../_static/js/index.1c5a1a01449ed65a7b51.js | 32 + .../_build/html/_static/language_data.js | 297 + code_book/_build/html/_static/minus.png | Bin 0 -> 90 bytes code_book/_build/html/_static/mystnb.css | 183 + ...-main.c949a650a448cc0ae9fd3441c0e17fb0.css | 1 + ...ables.06eb56fa6e07937060861dad626602ad.css | 7 + code_book/_build/html/_static/plus.png | Bin 0 -> 90 bytes code_book/_build/html/_static/pygments.css | 74 + code_book/_build/html/_static/searchtools.js | 514 + ...-theme.12a9622fbb08dcb3a2a40b2c02b83a57.js | 18 + ...theme.acff12b8f9c144ce68a297486a2fa670.css | 5 + .../_build/html/_static/sphinx-book-theme.css | 1 + .../_build/html/_static/sphinx-thebe.css | 120 + code_book/_build/html/_static/sphinx-thebe.js | 96 + .../_build/html/_static/togglebutton.css | 90 + code_book/_build/html/_static/togglebutton.js | 76 + .../_build/html/_static/underscore-1.3.1.js | 999 ++ code_book/_build/html/_static/underscore.js | 31 + .../vendor/fontawesome/5.13.0/LICENSE.txt | 34 + .../vendor/fontawesome/5.13.0/css/all.min.css | 5 + .../5.13.0/webfonts/fa-brands-400.eot | Bin 0 -> 133034 bytes .../5.13.0/webfonts/fa-brands-400.svg | 3570 +++++ .../5.13.0/webfonts/fa-brands-400.ttf | Bin 0 -> 132728 bytes .../5.13.0/webfonts/fa-brands-400.woff | Bin 0 -> 89824 bytes .../5.13.0/webfonts/fa-brands-400.woff2 | Bin 0 -> 76612 bytes .../5.13.0/webfonts/fa-regular-400.eot | Bin 0 -> 34390 bytes .../5.13.0/webfonts/fa-regular-400.svg | 803 ++ .../5.13.0/webfonts/fa-regular-400.ttf | Bin 0 -> 34092 bytes .../5.13.0/webfonts/fa-regular-400.woff | Bin 0 -> 16800 bytes .../5.13.0/webfonts/fa-regular-400.woff2 | Bin 0 -> 13584 bytes .../5.13.0/webfonts/fa-solid-900.eot | Bin 0 -> 202902 bytes .../5.13.0/webfonts/fa-solid-900.svg | 4938 +++++++ .../5.13.0/webfonts/fa-solid-900.ttf | Bin 0 -> 202616 bytes .../5.13.0/webfonts/fa-solid-900.woff | Bin 0 -> 103300 bytes .../5.13.0/webfonts/fa-solid-900.woff2 | Bin 0 -> 79444 bytes .../_build/html/_static/webpack-macros.html | 25 + code_book/_build/html/ch1.html | 263 + code_book/_build/html/ch2.html | 258 + code_book/_build/html/ch3.html | 258 + code_book/_build/html/ch4.html | 306 + code_book/_build/html/genindex.html | 205 + code_book/_build/html/index.html | 1 + code_book/_build/html/intro.html | 265 + code_book/_build/html/objects.inv | 7 + code_book/_build/html/reports/ch4.log | 70 + code_book/_build/html/search.html | 224 + code_book/_build/html/searchindex.js | 1 + code_book/_build/jupyter_execute/ch1.ipynb | 47 + code_book/_build/jupyter_execute/ch1.py | 6 + code_book/_build/jupyter_execute/ch2.ipynb | 47 + code_book/_build/jupyter_execute/ch2.py | 6 + code_book/_build/jupyter_execute/ch3.ipynb | 47 + code_book/_build/jupyter_execute/ch3.py | 6 + code_book/_build/jupyter_execute/ch4.ipynb | 120 + code_book/_build/jupyter_execute/ch4.py | 57 + code_book/_build/jupyter_execute/ch4.txt | 39 + code_book/_build/jupyter_execute/ch4_1_0.png | Bin 0 -> 80306 bytes code_book/_config.yml | 32 + code_book/_toc.yml | 7 + code_book/ch1.md | 18 + code_book/ch2.md | 18 + code_book/ch3.md | 18 + code_book/ch4.md | 65 + code_book/intro.md | 35 + code_book/logo.png | Bin 0 -> 9854 bytes {python_code => first_edition_code}/ar1.py | 0 .../cpdynam.py | 0 {python_code => first_edition_code}/ds.py | 0 {python_code => first_edition_code}/ecdf.py | 0 .../fig1point2.py | 0 .../fig1point4.py | 0 .../fig1point5.py | 0 .../fig4point1.py | 0 .../fig4point3.py | 0 .../fig4point6.py | 0 .../fig4point7.py | 0 .../fig6point13.py | 0 .../fig6point4.py | 0 .../fphamilton.py | 0 {python_code => first_edition_code}/fpi.py | 0 {python_code => first_edition_code}/fvi.py | 0 .../genfinitemc.py | 0 .../kurtzbellman.py | 0 .../kurtzvsigma.py | 0 .../lininterp.py | 0 {python_code => first_edition_code}/p2srs.py | 0 .../polyclass.py | 0 .../polyclass0.py | 0 .../quadmap1.py | 0 {python_code => first_edition_code}/srs.py | 0 {python_code => first_edition_code}/testds.py | 0 .../testfpi.py | 0 .../testgenfinitemc.py | 0 .../testsrs.py | 0 matlab_code/README.txt | 6 - matlab_code/ar1.m | 12 - matlab_code/cpdynam_rev1/README.txt | 3 - matlab_code/cpdynam_rev1/T.m | 22 - matlab_code/cpdynam_rev1/cpdynam_rev1.m | 46 - matlab_code/cpdynam_rev1/fix_point.m | 14 - matlab_code/cpdynam_rev1/lininterp_rev1.m | 17 - matlab_code/ds_rev1.m | 25 - matlab_code/ecdf.m | 2 - matlab_code/fphamilton.m | 13 - matlab_code/fvi_rev1_and_fpi_rev1/README.txt | 5 - matlab_code/fvi_rev1_and_fpi_rev1/T.m | 32 - matlab_code/fvi_rev1_and_fpi_rev1/U.m | 13 - matlab_code/fvi_rev1_and_fpi_rev1/bellman.m | 29 - matlab_code/fvi_rev1_and_fpi_rev1/f.m | 13 - .../fvi_rev1_and_fpi_rev1/get_greedy.m | 19 - matlab_code/fvi_rev1_and_fpi_rev1/get_value.m | 32 - .../fvi_rev1_and_fpi_rev1/lininterp_rev1.m | 17 - matlab_code/fvi_rev1_and_fpi_rev1/maximizer.m | 14 - matlab_code/fvi_rev1_and_fpi_rev1/maximum.m | 11 - .../fvi_rev1_and_fpi_rev1/test_fpi_rev1.m | 40 - .../fvi_rev1_and_fpi_rev1/test_fvi_rev1.m | 35 - matlab_code/genfinitemc_rev1.m | 26 - matlab_code/kurtzbellman_rev1/Gamma.m | 32 - matlab_code/kurtzbellman_rev1/README.txt | 3 - matlab_code/kurtzbellman_rev1/T.m | 62 - matlab_code/kurtzbellman_rev1/U.m | 14 - .../kurtzbellman_rev1_test.m | 13 - matlab_code/kurtzbellman_rev1/phi.m | 25 - matlab_code/kurtzsigma_rev1/README.txt | 3 - matlab_code/kurtzsigma_rev1/U.m | 14 - .../kurtzsigma_rev1/kurtzsigma_rev1_test.m | 5 - .../kurtzsigma_rev1/kurtzvsigma_rev1.m | 61 - matlab_code/kurtzsigma_rev1/phi.m | 25 - matlab_code/lininterp_rev1.m | 17 - matlab_code/p2srs_rev1.m | 30 - matlab_code/polyclass0.m | 7 - matlab_code/quadmap1.m | 12 - matlab_code/srs_testrs/README.txt | 2 - matlab_code/srs_testrs/sample_path.m | 22 - matlab_code/srs_testrs/testsrs_rev1.m | 32 - matlab_code/srs_testrs/update.m | 12 - matlab_code/testds_rev1.m | 25 - matlab_code/testgenfinitemc_rev1.m | 27 - 205 files changed, 34657 insertions(+), 889 deletions(-) create mode 100644 code_book/.ipynb_checkpoints/Untitled-checkpoint.ipynb create mode 100644 code_book/.ipynb_checkpoints/ch4-checkpoint.ipynb create mode 100644 code_book/.ipynb_checkpoints/kolmogorov_bwd-checkpoint.ipynb create mode 100644 code_book/.ipynb_checkpoints/kolmogorov_bwd-checkpoint.md create mode 100644 code_book/.ipynb_checkpoints/kolmogorov_fwd-checkpoint.ipynb create mode 100644 code_book/.ipynb_checkpoints/kolmogorov_fwd-checkpoint.md create mode 100644 code_book/.ipynb_checkpoints/markov_prop-checkpoint.ipynb create mode 100644 code_book/.ipynb_checkpoints/markov_prop-checkpoint.md create mode 100644 code_book/_build/.doctrees/ch1.doctree create mode 100644 code_book/_build/.doctrees/ch2.doctree create mode 100644 code_book/_build/.doctrees/ch3.doctree create mode 100644 code_book/_build/.doctrees/ch4.doctree create mode 100644 code_book/_build/.doctrees/environment.pickle create mode 100644 code_book/_build/.doctrees/glue_cache.json create mode 100644 code_book/_build/.doctrees/intro.doctree create mode 100644 code_book/_build/.jupyter_cache/executed/086628f969d096c6a7153ec2afe0a4e2/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/1144ec2d237523ea87e2ddd3c1c2321b/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/13237bc72aeab9093aa6eaab60823fcb/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/155649bae18a3547616e22154fbf6a9f/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/1a87139d76e35cf6c6e219fd11b23fe6/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/38d016ea183021056401c56a91fed34a/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/67e995718e020ecec2d9b516aeb5aebd/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/728d1e87fa1ac3b9f9fd564f8c4c4cbd/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/8e6b7cdf0f12f455a1fb52750d3b082f/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/991403d0081f09586073fda07f892489/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/b19efb60339c53c4699e1e5f5057071a/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/ca484b75c9e681c89cc70bdfd6b7cfb6/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/cc54771f9a1a14e35bc8d1a6c3f137fa/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/cf5f20299b6a4f96f931e28c5af3911e/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/d0d7abff15f3f3fd52e5de620b2bd3a2/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/e180333dbedfca98ea3dea6dd1e90cef/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/e60cf8228dbed3fa42cb364fc6b655db/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/ea07c70b3aaf779f8ff59260f515e811/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/executed/f17685b4e22655fb8eade8a9c339e2a9/base.ipynb create mode 100644 code_book/_build/.jupyter_cache/global.db create mode 100644 code_book/_build/html/.buildinfo create mode 100644 code_book/_build/html/_images/ch4_1_0.png create mode 100644 code_book/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css create mode 100644 code_book/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css create mode 100644 code_book/_build/html/_sources/ch1.ipynb create mode 100644 code_book/_build/html/_sources/ch1.md create mode 100644 code_book/_build/html/_sources/ch2.ipynb create mode 100644 code_book/_build/html/_sources/ch2.md create mode 100644 code_book/_build/html/_sources/ch3.ipynb create mode 100644 code_book/_build/html/_sources/ch3.md create mode 100644 code_book/_build/html/_sources/ch4.ipynb create mode 100644 code_book/_build/html/_sources/ch4.md create mode 100644 code_book/_build/html/_sources/intro.md create mode 100644 code_book/_build/html/_static/__init__.py create mode 100644 code_book/_build/html/_static/__pycache__/__init__.cpython-38.pyc create mode 100644 code_book/_build/html/_static/basic.css create mode 100644 code_book/_build/html/_static/check-solid.svg create mode 100644 code_book/_build/html/_static/clipboard.min.js create mode 100644 code_book/_build/html/_static/copy-button.svg create mode 100644 code_book/_build/html/_static/copybutton.css create mode 100644 code_book/_build/html/_static/copybutton.js create mode 100644 code_book/_build/html/_static/copybutton_funcs.js create mode 100644 code_book/_build/html/_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css create mode 100644 code_book/_build/html/_static/css/theme.css create mode 100644 code_book/_build/html/_static/doctools.js create mode 100644 code_book/_build/html/_static/documentation_options.js create mode 100644 code_book/_build/html/_static/file.png create mode 100644 code_book/_build/html/_static/images/logo_binder.svg create mode 100644 code_book/_build/html/_static/images/logo_colab.png create mode 100644 code_book/_build/html/_static/images/logo_jupyterhub.svg create mode 100644 code_book/_build/html/_static/jquery-3.5.1.js create mode 100644 code_book/_build/html/_static/jquery.js create mode 100644 code_book/_build/html/_static/js/index.1c5a1a01449ed65a7b51.js create mode 100644 code_book/_build/html/_static/language_data.js create mode 100644 code_book/_build/html/_static/minus.png create mode 100644 code_book/_build/html/_static/mystnb.css create mode 100644 code_book/_build/html/_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css create mode 100644 code_book/_build/html/_static/panels-variables.06eb56fa6e07937060861dad626602ad.css create mode 100644 code_book/_build/html/_static/plus.png create mode 100644 code_book/_build/html/_static/pygments.css create mode 100644 code_book/_build/html/_static/searchtools.js create mode 100644 code_book/_build/html/_static/sphinx-book-theme.12a9622fbb08dcb3a2a40b2c02b83a57.js create mode 100644 code_book/_build/html/_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css create mode 100644 code_book/_build/html/_static/sphinx-book-theme.css create mode 100644 code_book/_build/html/_static/sphinx-thebe.css create mode 100644 code_book/_build/html/_static/sphinx-thebe.js create mode 100644 code_book/_build/html/_static/togglebutton.css create mode 100644 code_book/_build/html/_static/togglebutton.js create mode 100644 code_book/_build/html/_static/underscore-1.3.1.js create mode 100644 code_book/_build/html/_static/underscore.js create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/LICENSE.txt create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/css/all.min.css create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.eot create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.svg create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.ttf create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff2 create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.eot create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.svg create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.ttf create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.woff create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.woff2 create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.eot create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.svg create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.ttf create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff create mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff2 create mode 100644 code_book/_build/html/_static/webpack-macros.html create mode 100644 code_book/_build/html/ch1.html create mode 100644 code_book/_build/html/ch2.html create mode 100644 code_book/_build/html/ch3.html create mode 100644 code_book/_build/html/ch4.html create mode 100644 code_book/_build/html/genindex.html create mode 100644 code_book/_build/html/index.html create mode 100644 code_book/_build/html/intro.html create mode 100644 code_book/_build/html/objects.inv create mode 100644 code_book/_build/html/reports/ch4.log create mode 100644 code_book/_build/html/search.html create mode 100644 code_book/_build/html/searchindex.js create mode 100644 code_book/_build/jupyter_execute/ch1.ipynb create mode 100644 code_book/_build/jupyter_execute/ch1.py create mode 100644 code_book/_build/jupyter_execute/ch2.ipynb create mode 100644 code_book/_build/jupyter_execute/ch2.py create mode 100644 code_book/_build/jupyter_execute/ch3.ipynb create mode 100644 code_book/_build/jupyter_execute/ch3.py create mode 100644 code_book/_build/jupyter_execute/ch4.ipynb create mode 100644 code_book/_build/jupyter_execute/ch4.py create mode 100644 code_book/_build/jupyter_execute/ch4.txt create mode 100644 code_book/_build/jupyter_execute/ch4_1_0.png create mode 100644 code_book/_config.yml create mode 100644 code_book/_toc.yml create mode 100644 code_book/ch1.md create mode 100644 code_book/ch2.md create mode 100644 code_book/ch3.md create mode 100644 code_book/ch4.md create mode 100644 code_book/intro.md create mode 100644 code_book/logo.png rename {python_code => first_edition_code}/ar1.py (100%) rename {python_code => first_edition_code}/cpdynam.py (100%) rename {python_code => first_edition_code}/ds.py (100%) rename {python_code => first_edition_code}/ecdf.py (100%) rename {python_code => first_edition_code}/fig1point2.py (100%) rename {python_code => first_edition_code}/fig1point4.py (100%) rename {python_code => first_edition_code}/fig1point5.py (100%) rename {python_code => first_edition_code}/fig4point1.py (100%) rename {python_code => first_edition_code}/fig4point3.py (100%) rename {python_code => first_edition_code}/fig4point6.py (100%) rename {python_code => first_edition_code}/fig4point7.py (100%) rename {python_code => first_edition_code}/fig6point13.py (100%) rename {python_code => first_edition_code}/fig6point4.py (100%) rename {python_code => first_edition_code}/fphamilton.py (100%) rename {python_code => first_edition_code}/fpi.py (100%) rename {python_code => first_edition_code}/fvi.py (100%) rename {python_code => first_edition_code}/genfinitemc.py (100%) rename {python_code => first_edition_code}/kurtzbellman.py (100%) rename {python_code => first_edition_code}/kurtzvsigma.py (100%) rename {python_code => first_edition_code}/lininterp.py (100%) rename {python_code => first_edition_code}/p2srs.py (100%) rename {python_code => first_edition_code}/polyclass.py (100%) rename {python_code => first_edition_code}/polyclass0.py (100%) rename {python_code => first_edition_code}/quadmap1.py (100%) rename {python_code => first_edition_code}/srs.py (100%) rename {python_code => first_edition_code}/testds.py (100%) rename {python_code => first_edition_code}/testfpi.py (100%) rename {python_code => first_edition_code}/testgenfinitemc.py (100%) rename {python_code => first_edition_code}/testsrs.py (100%) delete mode 100644 matlab_code/README.txt delete mode 100644 matlab_code/ar1.m delete mode 100644 matlab_code/cpdynam_rev1/README.txt delete mode 100644 matlab_code/cpdynam_rev1/T.m delete mode 100644 matlab_code/cpdynam_rev1/cpdynam_rev1.m delete mode 100644 matlab_code/cpdynam_rev1/fix_point.m delete mode 100644 matlab_code/cpdynam_rev1/lininterp_rev1.m delete mode 100644 matlab_code/ds_rev1.m delete mode 100644 matlab_code/ecdf.m delete mode 100644 matlab_code/fphamilton.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/README.txt delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/T.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/U.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/bellman.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/f.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/get_greedy.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/get_value.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/lininterp_rev1.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/maximizer.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/maximum.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/test_fpi_rev1.m delete mode 100644 matlab_code/fvi_rev1_and_fpi_rev1/test_fvi_rev1.m delete mode 100644 matlab_code/genfinitemc_rev1.m delete mode 100644 matlab_code/kurtzbellman_rev1/Gamma.m delete mode 100644 matlab_code/kurtzbellman_rev1/README.txt delete mode 100644 matlab_code/kurtzbellman_rev1/T.m delete mode 100644 matlab_code/kurtzbellman_rev1/U.m delete mode 100644 matlab_code/kurtzbellman_rev1/kurtzbellman_rev1_test.m delete mode 100644 matlab_code/kurtzbellman_rev1/phi.m delete mode 100644 matlab_code/kurtzsigma_rev1/README.txt delete mode 100644 matlab_code/kurtzsigma_rev1/U.m delete mode 100644 matlab_code/kurtzsigma_rev1/kurtzsigma_rev1_test.m delete mode 100644 matlab_code/kurtzsigma_rev1/kurtzvsigma_rev1.m delete mode 100644 matlab_code/kurtzsigma_rev1/phi.m delete mode 100644 matlab_code/lininterp_rev1.m delete mode 100644 matlab_code/p2srs_rev1.m delete mode 100644 matlab_code/polyclass0.m delete mode 100644 matlab_code/quadmap1.m delete mode 100644 matlab_code/srs_testrs/README.txt delete mode 100644 matlab_code/srs_testrs/sample_path.m delete mode 100644 matlab_code/srs_testrs/testsrs_rev1.m delete mode 100644 matlab_code/srs_testrs/update.m delete mode 100644 matlab_code/testds_rev1.m delete mode 100644 matlab_code/testgenfinitemc_rev1.m diff --git a/code_book/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/code_book/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 0000000..7fec515 --- /dev/null +++ b/code_book/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/code_book/.ipynb_checkpoints/ch4-checkpoint.ipynb b/code_book/.ipynb_checkpoints/ch4-checkpoint.ipynb new file mode 100644 index 0000000..80129ad --- /dev/null +++ b/code_book/.ipynb_checkpoints/ch4-checkpoint.ipynb @@ -0,0 +1,101 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "xmin, xmax = -10.0, 10.0\n", + "ymin, ymax = -5.0, 5.0\n", + "\n", + "\n", + "A1 = np.asarray([[0.55, -0.6],\n", + " [0.5, 0.4]])\n", + "\n", + "def f(x, y): \n", + " return A1 @ (x, y)\n", + "\n", + "def draw_arrow(x, y, ax):\n", + " eps = 0.75\n", + " v1, v2 = f(x, y)\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = eps / nrm\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.4,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", + "\n", + "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 8)\n", + "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 8)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.set_xlim(xmin, xmax)\n", + "ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " draw_arrow(x, y, ax)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "ipynb,md:myst", + "main_language": "python", + "notebook_metadata_filter": "-all" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/code_book/.ipynb_checkpoints/kolmogorov_bwd-checkpoint.ipynb b/code_book/.ipynb_checkpoints/kolmogorov_bwd-checkpoint.ipynb new file mode 100644 index 0000000..3388617 --- /dev/null +++ b/code_book/.ipynb_checkpoints/kolmogorov_bwd-checkpoint.ipynb @@ -0,0 +1,616 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Kolmogorov Backward Equation\n", + "\n", + "## Overview \n", + "\n", + "As models become more complex, deriving analytical representations of the\n", + "transition semigroup $(P_t)$ becomes harder.\n", + "\n", + "This is analogous to the idea that solutions to continuous time models often\n", + "lack analytical solutions.\n", + "\n", + "For example, when studying deterministic paths in continuous time,\n", + "infinitesimal descriptions (ODEs and PDEs) are often more intuitive and easier\n", + "to write down than the associated solutions.\n", + "\n", + "(This is one of the shining insights of mathematics, beginning with the work\n", + "of great scientists such as Isaac Newton.)\n", + "\n", + "We will see in this lecture that the same is true for continuous time Markov\n", + "chains.\n", + "\n", + "To help us focus on intuition in this lecture, rather than technicalities, the state space is assumed to be finite, with $|S|=n$.\n", + "\n", + "Later we will investigate the case where $|S| = \\infty$.\n", + "\n", + "We will use the following imports" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## State Dependent Jump Intensities\n", + "\n", + "As we have seen, continuous time Markov chains jump between states, and hence can \n", + "have the form\n", + "\n", + "$$\n", + " X_t = \\sum_{k \\geq 0} Y_k \\mathbb 1\\{J_k \\leq t < J_{k+1}\\}\n", + " \\qquad (t \\geq 0)\n", + "$$ \n", + "\n", + "where $(J_k)$ are jump times and $(Y_k)$ are the states at each jump.\n", + "\n", + "(We are assuming that $J_k \\to \\infty$ with probability one, so that $X_t$ is well\n", + "defined for all $t \\geq 0$, but this is always true for when holding times are exponential and the state space is finite.)\n", + "\n", + "In the {doc}`previous lecture `, \n", + "\n", + "* the sequence $(Y_k)$ was drawn from a Markov kernel $K$ and called the embedded jump chain, while\n", + "* the holding times $W_k := J_k - J_{k-1}$ were IID and Exp$(\\lambda)$ for some\n", + "constant jump intensity $\\lambda$.\n", + "\n", + "In this lecture, we will generalize by allowing the jump intensity to vary\n", + "with the state.\n", + "\n", + "This difference sounds minor but in fact it will allow us to reach full generality\n", + "in our description of continuous time Markov chains, as\n", + "clarified below.\n", + "\n", + "### Motivation\n", + "\n", + "As a motivating example, recall {ref}`the inventory model `,\n", + "where we assumed that the wait time for the next customer was equal\n", + "to the wait time for new inventory.\n", + "\n", + "This assumption was made purely for convenience and seems unlikely to hold true.\n", + "\n", + "When we relax it, the jump intensities depend on the state.\n", + "\n", + "\n", + "### Algorithmic Construction\n", + "\n", + "We start with two primitives\n", + "\n", + "1. A Markov kernel $K$ on $S$ satisfying $K(x, x) = 0$ for all $x \\in S$\n", + " and\n", + "1. A function $\\lambda$ mapping $S$ to $(0, \\infty)$.\n", + "\n", + "The process $(X_t)$ \n", + "\n", + "* starts at state $x$, \n", + "* waits there for an exponential time $W$ with rate $\\lambda(x)$ and then\n", + "* updates to a new state $y$ drawn from $K(x, \\cdot)$.\n", + "\n", + "Now we take $y$ as the new state for the process and repeat.\n", + "\n", + "More explicitly, assuming initial condition $\\psi$, we\n", + "\n", + "1. draw $Y_0$ from $\\psi$, set $J_0 = 0$ and $n=1$.\n", + "1. Draw $W_n$ independently from Exp$(\\lambda(Y_{n-1}))$.\n", + "1. Set $J_n = J_{n-1} + W_n$.\n", + "1. Set $X_t = Y_{n-1}$ for $t$ in $[J_{n-1}, J_n)$.\n", + "1. Draw $Y_n$ from $K(Y_{n-1}, \\cdot)$.\n", + "1. Set $n = n+1$ and go to step 2.\n", + "\n", + "The sequence $(W_n)$ is drawn as an IID sequence and $(W_n)$ and $(Y_n)$ are\n", + "drawn independently.\n", + "\n", + "The restriction $K(x,x) = 0$ for all $x$ implies that $(X_t)$ actually jumps at each jump time.\n", + "\n", + "\n", + "\n", + "## Computing the Semigroup\n", + "\n", + "For the jump process $(X_t)$ with time varying intensities described in the\n", + "algorithm just given, calculating the transition semigroup is not a trivial exercise.\n", + "\n", + "The approach we adopt is\n", + "\n", + "1. use probabilistic reasoning to obtain an integral equation that the\n", + " semigroup must satisfy.\n", + "1. Convert the integral equation into a differential equation that is easier\n", + " to work with.\n", + "1. Solve this differential equation to obtain the transition semigroup $(P_t)$.\n", + "\n", + "\n", + "The differential equation in question has a special name: the Kolmogorov backward equation.\n", + "\n", + "\n", + "### An Integral Equation\n", + "\n", + "The integral equation referred to above is\n", + "\n", + "$$\n", + " P_t(x, y) = e^{-t \\lambda(x)} I(x, y)\n", + " + \\lambda(x) \n", + " \\int_0^t (K P_{t-\\tau})(x, y) e^{- \\tau \\lambda(x)} d \\tau\n", + "$$ (kbinteg)\n", + "\n", + "which, we claim, holds for all $t \\geq 0$ and $x, y$ in $S$.\n", + "\n", + "Here $(P_t)$ is the transition semigroup of $(X_t)$, the process constructed\n", + "algorithmically above, while \n", + "$K P_{t-\\tau}$ is the product of two Markov kernels as previously\n", + "defined.\n", + "\n", + "Let's see why {eq}`kbinteg` holds.\n", + "\n", + "Conditioning implicitly on $X_0 = x$, the semigroup $(P_t)$ must satisfy \n", + "\n", + "$$\n", + " P_t(x, y) \n", + " = \\mathbb P\\{X_t = y\\}\n", + " = \\mathbb P\\{X_t = y, \\; J_1 > t \\}\n", + " + \\mathbb P\\{X_t = y, \\; J_1 \\leq t \\}\n", + "$$ (pt_split)\n", + "\n", + "\n", + "Regarding the first term on the right hand side of {eq}`pt_split`, we have \n", + "\n", + "$$\n", + " \\mathbb P\\{X_t = y, \\; J_1 > t \\}\n", + " = I(x, y) P\\{J_1 > t \\}\n", + " = I(x, y) e^{- t \\lambda(x)}\n", + "$$ (pt_first)\n", + "\n", + "where $I(x, y) = \\mathbb 1\\{x = y\\}$.\n", + "\n", + "For the second term on the right hand side of {eq}`pt_split`, we have \n", + "\n", + "$$\n", + " \\mathbb P\\{X_t = y, \\; J_1 > t \\}\n", + " = \\mathbb E \n", + " \\left[\n", + " \\mathbb 1\\{J_1 > t\\} \\mathbb P\\{X_t = y \\,|\\, W_1, Y_1\\}\n", + " \\right]\n", + " = \\mathbb E \n", + " \\left[\n", + " \\mathbb 1\\{J_1 > t\\} P_{t - J_1} (Y_1, y) \n", + " \\right]\n", + "$$\n", + "\n", + "Evaluating the expectation and using the independence of $J_1$ and $Y_1$, this becomes\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + " \\mathbb P\\{X_t = y, \\; J_1 > t \\}\n", + " & = \\int_0^\\infty\n", + " \\mathbb 1\\{\\tau > t\\}\n", + " \\sum_z K(x, z) P_{t - \\tau} (z, y) \\lambda(x) e^{-\\tau \\lambda(x)} \n", + " d \\tau\n", + " \\\\\n", + " & = \\lambda(x)\n", + " \\int_0^t\n", + " \\sum_z K(x, z) P_{t - \\tau} (z, y) e^{-\\tau \\lambda(x)} \n", + " d \\tau\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "Combining this result with {eq}`pt_split` and {eq}`pt_first` gives\n", + "{eq}`kbinteg`.\n", + "\n", + "\n", + "\n", + "### Kolmogorov's Differential Equation\n", + "\n", + "We have now confirmed that the semigroup $(P_t)$ associated with the process\n", + "$(X_t)$ should satisfy {eq}`kbinteg`.\n", + "\n", + "\n", + "Equation {eq}`kbinteg` is important but we can simplify it further without\n", + "losing information by taking the time derivative.\n", + "\n", + "Doing so leads to the **Kolmogorov backward equation**, which is, for this\n", + "model\n", + "\n", + "$$\n", + " P'_t = Q P_t \n", + " \\quad \\text{where } \\;\n", + " Q(x, y) := \\lambda(x) (K(x, y) - I(x, y))\n", + "$$ (kolbackeq)\n", + "\n", + "The derivative on the left hand side of {eq}`kolbackeq` is taken element by\n", + "element, with respect to $t$, so that\n", + "\n", + "$$\n", + " P'_t(x, y) = \\left( \\frac{d}{dt} P_t(x, y) \\right)\n", + " \\qquad ((x, y) \\in S \\times S)\n", + "$$\n", + "\n", + "The proof that differentiating {eq}`kbinteg` yields {eq}`kolbackeq` is an\n", + "important exercise (see below).\n", + "\n", + "\n", + "\n", + "### Exponential Solution\n", + "\n", + "The Kolmogorov backward equation is a matrix-valued differential equation.\n", + "\n", + "Recall that, for a scalar differential equation $y'_t = a y_t$ with constant\n", + "$a$ and initial condition $y_0$, the solution is $y_t = e^{ta} y_0$.\n", + "\n", + "This, along with $P_0 = I$, encourages us to guess that the solution to\n", + "Kolmogorov's backward equation {eq}`kolbackeq` is\n", + "\n", + "$$\n", + " P_t = e^{t Q} \n", + "$$ (expsol)\n", + "\n", + "where the right hand side is the [matrix exponential](https://en.wikipedia.org/wiki/Matrix_exponential), with definition \n", + "\n", + "$$\n", + " e^{tQ} \n", + " = \\sum_{k \\geq 0} \\frac{1}{k!} (tQ)^k\n", + " = I + tQ + \\frac{t^2}{2!} Q^2 + \\cdots\n", + "$$ (expofun)\n", + "\n", + "Working element by element, it is not difficult to confirm that \n", + "the derivative of the exponential function $t \\mapsto e^{tQ}$ is\n", + "\n", + "$$\n", + " \\frac{d}{dt} e^{t Q} = Q e^{t Q} = e^{t Q} Q\n", + "$$ (expoderiv)\n", + "\n", + "Hence, differentiating {eq}`expsol` gives $P'_t = Q e^{t Q} = Q P_t$, which\n", + "convinces us that the exponential solution satisfies {eq}`kolbackeq`. \n", + "\n", + "Notice that our solution\n", + "\n", + "$$\n", + " P_t = e^{t Q} \n", + " \\quad \\text{where } \\;\n", + " Q(x, y) := \\lambda(x) (K(x, y) - I(x, y))\n", + "$$ (psolq)\n", + "\n", + "for the semigroup of the jump process $(X_t)$ associated with the jump kernel\n", + "$K$ and the jump intensity function $\\lambda \\colon S \\to (0, \\infty)$ is\n", + "consistent with our earlier result.\n", + "\n", + "In particular, we {ref}`showed ` that, for the model with\n", + "constant jump intensity $\\lambda$, we have $P_t = e^{t \\lambda (K - I)}$.\n", + "\n", + "This is obviously a special case of {eq}`psolq`.\n", + "\n", + "\n", + "\n", + "## Properties of the Solution\n", + "\n", + "Let's investigate further the properties of the exponential solution.\n", + "\n", + "### Checking the Transition Semigroup Properties\n", + "\n", + "While we have confirmed that $(P_t)$ defined by $P_t = e^{t Q}$ solves the\n", + "Kolmogorov backward equation, we have not yet shown that this solution is in\n", + "fact a transition semigroup.\n", + "\n", + "Let's now tie up this loose end.\n", + "\n", + "First\n", + "\n", + "$$\n", + " \\sum_y Q(x, y) \n", + " = \\lambda(x) \\sum_y (K(x, y) - I(x, y))\n", + " = 0\n", + "$$\n", + "\n", + "Hence, if $1$ is a column vector of ones, then $Q 1$ is the\n", + "zero vector.\n", + "\n", + "This implies that $Q^k 1 = 0$ for all $k$ and, as a result, for any $t \\geq\n", + "0$,\n", + "\n", + "$$\n", + " P_t 1\n", + " = e^{tQ} 1\n", + " = I1 + tQ1 + \\frac{t^2}{2!} Q^2 1 + \\cdots\n", + " = I1 = 1\n", + "$$\n", + "\n", + "We have now shown that each $P_t$ has unit row sums, so all that remains to\n", + "check is positivity of all elements (which can easily fail for matrix\n", + "exponentials).\n", + "\n", + "To this end, adopting an argument from {cite}`stroock2013introduction`, we\n", + "set $m := \\max_x \\lambda(x)$ and $\\hat P := I + Q / m$.\n", + "\n", + "It is not difficult to check that $\\hat P$ is a Markov matrix and $Q = m( \\hat\n", + "P - I)$.\n", + "\n", + "Recalling that, for matrix exponentials, $e^{A+B} = e^A e^B$ whenever $AB =\n", + "BA$, we have\n", + "\n", + "$$\n", + " e^{tQ} \n", + " = e^{tm (\\hat P - I)} \n", + " = e^{-tm I} e^{tm \\hat P}\n", + " = e^{-tm} \n", + " \\left( \n", + " I + tm \\hat P + \\frac{(tm)^2}{2!} \\hat P^2 + \\cdots\n", + " \\right)\n", + "$$\n", + "\n", + "It is clear from this representation that all entries of $e^{tQ}$ are\n", + "nonnegative.\n", + "\n", + "We can now be reassured that our solution to the Kolmogorov backward equation\n", + "is indeed a transition semigroup.\n", + "\n", + "\n", + "### Uniqueness\n", + "\n", + "Might there be another, entirely different transition semigroup that also\n", + "satisfies the Kolmogorov backward equation?\n", + "\n", + "The answer is no --- linear ODEs with constant coefficients and fixed initial\n", + "conditions (in this case $P_0 = I$) have unique solutions.\n", + "\n", + "In fact it's not hard to supply a proof --- see the exercises.\n", + "\n", + "\n", + "\n", + "## Application: The Inventory Model\n", + "\n", + "Let us look at a modified version of the inventory model where jump\n", + "intensities depend on the state.\n", + "\n", + "In particular, the wait time for new inventory will now be exponential at rate\n", + "$\\gamma$.\n", + "\n", + "The arrival rate for customers will still be denoted by $\\lambda$ and allowed\n", + "to differ from $\\gamma$.\n", + "\n", + "For parameters we take" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "α = 0.6\n", + "λ = 0.5\n", + "γ = 0.1\n", + "b = 10" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our plan is to investigate the distribution $\\psi_T$ of $X_T$ at $T=30$.\n", + "\n", + "We will do this by simulating many independent draws of $X_T$ and\n", + "histogramming them.\n", + "\n", + "(In the exercises you are asked to calculate $\\psi_T$ a different way, via\n", + "{eq}`psolq`.)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "@njit\n", + "def draw_X(T, X_0, max_iter=5000):\n", + " \"\"\"\n", + " Generate one draw of X_T given X_0.\n", + " \"\"\"\n", + "\n", + " J, Y = 0, X_0\n", + " m = 0\n", + "\n", + " while m < max_iter:\n", + " s = 1/γ if Y == 0 else 1/λ\n", + " W = np.random.exponential(scale=s) # W ~ E(λ)\n", + " J += W\n", + " if J >= T:\n", + " return Y\n", + " # Otherwise update Y\n", + " if Y == 0:\n", + " Y = b\n", + " else:\n", + " U = np.random.geometric(α)\n", + " Y = Y - min(Y, U)\n", + " m += 1\n", + "\n", + "\n", + "\n", + "@njit\n", + "def independent_draws(T=10, num_draws=100):\n", + "\n", + " draws = np.empty(num_draws, dtype=np.int64)\n", + "\n", + " for i in range(num_draws):\n", + " X_0 = np.random.binomial(b+1, 0.25)\n", + " draws[i] = draw_X(T, X_0)\n", + "\n", + " return draws\n" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "T = 30\n", + "n = b + 1 \n", + "draws = independent_draws(T, num_draws=100_000)\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.bar(range(n), [np.mean(draws == i) for i in range(n)], width=0.8, alpha=0.6)\n", + "ax.set(xlabel=\"inventory\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " exponential representation of semigroup to push densities forward.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Ex: Use algo to simulate forward to time $t$. Histogram. Compare.\n", + "\n", + "\n", + "\n", + "## Exercises\n", + "\n", + "### Exercise 1\n", + "\n", + "Prove that differentiating {eq}`kbinteg` at each $(x, y)$ yields {eq}`kolbackeq`.\n", + "\n", + "### Exercise 2\n", + "\n", + "We claimed above that the solution $P_t = e^{t Q}$ is the unique\n", + "transition semigroup satisfying the backward equation $P'_t = Q P_t$.\n", + "\n", + "Try to supply a proof.\n", + "\n", + "(This is not an easy exercise but worth thinking about in any case.)\n", + "\n", + "### Solution to Exercise 2\n", + "\n", + "Here is one proof of uniqueness.\n", + "\n", + "Suppose that $(\\hat P_t)$ is another transition semigroup satisfying \n", + "$P'_t = Q P_t$.\n", + "\n", + "Fix $t > 0$ and let $V_s$ be defined by $V_s = P_s \\hat P_{t-s}$ for all $s\n", + "\\geq 0$.\n", + "\n", + "Note that $V_0 = \\hat P_t$ and $V_t = P_t$.\n", + "\n", + "Note also that $s \\mapsto V_s$ is differentiable, with derivative\n", + "\n", + "$$\n", + " V'_s \n", + " = P'_s \\hat P_{t-s} - P_s \\hat P'_{t-s}\n", + " = P_s Q \\hat P_{t-s} - P_s Q \\hat P_{t-s}\n", + " = 0\n", + "$$\n", + "\n", + "where, in the second last equality, we used {eq}`expoderiv`.\n", + "\n", + "\n", + "Hence $V_s$ is constant, so our previous observations $V_0 = \\hat P_t$ and $V_t = P_t$\n", + "now yield $\\hat P_t = P_t$.\n", + "\n", + "Since $t$ was arbitrary, the proof is now done.\n", + "\n", + "\n", + "\n", + "## Solutions\n", + "\n", + "### Solution to Exercise 1\n", + "\n", + "One can easily verify that, when $f$ is a differentiable function and $\\alpha >\n", + "0$, we have\n", + "\n", + "$$\n", + " g(t) = e^{- t \\alpha} f(t)\n", + " \\quad \\implies \\quad\n", + " g'(t) = e^{- t \\alpha} f'(t) - \\alpha g(t)\n", + "$$ (gdiff)\n", + "\n", + "Note also that, with the change of variable $s = t - \\tau$, we can rewrite\n", + "{eq}`kbinteg` as\n", + "\n", + "$$\n", + " P_t(x, y) = \n", + " e^{-t \\lambda(x)} \n", + " \\left\\{ \n", + " I(x, y)\n", + " + \\lambda(x) \n", + " \\int_0^t (K P_s)(x, y) e^{s \\lambda(x)} d s\n", + " \\right\\}\n", + "$$ (kbinteg2)\n", + "\n", + "Applying {eq}`gdiff` yields\n", + "\n", + "$$\n", + " P'_t(x, y) \n", + " = e^{-t \\lambda(x)} \n", + " \\left\\{ \n", + " \\lambda(x) \n", + " (K P_t)(x, y) e^{t \\lambda(x)} \n", + " \\right\\}\n", + " - \\lambda(x) P_t(x, y)\n", + "$$\n", + "\n", + "After minor rearrangements this becomes\n", + "\n", + "$$\n", + " P'_t(x, y) \n", + " = \\lambda(x) [ (K - I) P_t](x, y) \n", + "$$\n", + "\n", + "which is identical to {eq}`kolbackeq`." + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/code_book/.ipynb_checkpoints/kolmogorov_bwd-checkpoint.md b/code_book/.ipynb_checkpoints/kolmogorov_bwd-checkpoint.md new file mode 100644 index 0000000..1dd4719 --- /dev/null +++ b/code_book/.ipynb_checkpoints/kolmogorov_bwd-checkpoint.md @@ -0,0 +1,551 @@ +--- +jupytext: + formats: ipynb,md:myst + text_representation: + extension: .md + format_name: myst + format_version: '0.9' + jupytext_version: 1.5.0 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Kolmogorov Backward Equation + +## Overview + +As models become more complex, deriving analytical representations of the +transition semigroup $(P_t)$ becomes harder. + +This is analogous to the idea that solutions to continuous time models often +lack analytical solutions. + +For example, when studying deterministic paths in continuous time, +infinitesimal descriptions (ODEs and PDEs) are often more intuitive and easier +to write down than the associated solutions. + +(This is one of the shining insights of mathematics, beginning with the work +of great scientists such as Isaac Newton.) + +We will see in this lecture that the same is true for continuous time Markov +chains. + +To help us focus on intuition in this lecture, rather than technicalities, the state space is assumed to be finite, with $|S|=n$. + +Later we will investigate the case where $|S| = \infty$. + +We will use the following imports + +```{code-cell} ipython3 +import numpy as np +import scipy as sp +import matplotlib.pyplot as plt +import quantecon as qe +from numba import njit +``` + +## State Dependent Jump Intensities + +As we have seen, continuous time Markov chains jump between states, and hence can +have the form + +$$ + X_t = \sum_{k \geq 0} Y_k \mathbb 1\{J_k \leq t < J_{k+1}\} + \qquad (t \geq 0) +$$ + +where $(J_k)$ are jump times and $(Y_k)$ are the states at each jump. + +(We are assuming that $J_k \to \infty$ with probability one, so that $X_t$ is well +defined for all $t \geq 0$, but this is always true for when holding times are exponential and the state space is finite.) + +In the {doc}`previous lecture `, + +* the sequence $(Y_k)$ was drawn from a Markov kernel $K$ and called the embedded jump chain, while +* the holding times $W_k := J_k - J_{k-1}$ were IID and Exp$(\lambda)$ for some +constant jump intensity $\lambda$. + +In this lecture, we will generalize by allowing the jump intensity to vary +with the state. + +This difference sounds minor but in fact it will allow us to reach full generality +in our description of continuous time Markov chains, as +clarified below. + +### Motivation + +As a motivating example, recall {ref}`the inventory model `, +where we assumed that the wait time for the next customer was equal +to the wait time for new inventory. + +This assumption was made purely for convenience and seems unlikely to hold true. + +When we relax it, the jump intensities depend on the state. + + +### Algorithmic Construction + +We start with two primitives + +1. A Markov kernel $K$ on $S$ satisfying $K(x, x) = 0$ for all $x \in S$ + and +1. A function $\lambda$ mapping $S$ to $(0, \infty)$. + +The process $(X_t)$ + +* starts at state $x$, +* waits there for an exponential time $W$ with rate $\lambda(x)$ and then +* updates to a new state $y$ drawn from $K(x, \cdot)$. + +Now we take $y$ as the new state for the process and repeat. + +More explicitly, assuming initial condition $\psi$, we + +1. draw $Y_0$ from $\psi$, set $J_0 = 0$ and $n=1$. +1. Draw $W_n$ independently from Exp$(\lambda(Y_{n-1}))$. +1. Set $J_n = J_{n-1} + W_n$. +1. Set $X_t = Y_{n-1}$ for $t$ in $[J_{n-1}, J_n)$. +1. Draw $Y_n$ from $K(Y_{n-1}, \cdot)$. +1. Set $n = n+1$ and go to step 2. + +The sequence $(W_n)$ is drawn as an IID sequence and $(W_n)$ and $(Y_n)$ are +drawn independently. + +The restriction $K(x,x) = 0$ for all $x$ implies that $(X_t)$ actually jumps at each jump time. + + + +## Computing the Semigroup + +For the jump process $(X_t)$ with time varying intensities described in the +algorithm just given, calculating the transition semigroup is not a trivial exercise. + +The approach we adopt is + +1. use probabilistic reasoning to obtain an integral equation that the + semigroup must satisfy. +1. Convert the integral equation into a differential equation that is easier + to work with. +1. Solve this differential equation to obtain the transition semigroup $(P_t)$. + + +The differential equation in question has a special name: the Kolmogorov backward equation. + + +### An Integral Equation + +The integral equation referred to above is + +$$ + P_t(x, y) = e^{-t \lambda(x)} I(x, y) + + \lambda(x) + \int_0^t (K P_{t-\tau})(x, y) e^{- \tau \lambda(x)} d \tau +$$ (kbinteg) + +which, we claim, holds for all $t \geq 0$ and $x, y$ in $S$. + +Here $(P_t)$ is the transition semigroup of $(X_t)$, the process constructed +algorithmically above, while +$K P_{t-\tau}$ is the product of two Markov kernels as previously +defined. + +Let's see why {eq}`kbinteg` holds. + +Conditioning implicitly on $X_0 = x$, the semigroup $(P_t)$ must satisfy + +$$ + P_t(x, y) + = \mathbb P\{X_t = y\} + = \mathbb P\{X_t = y, \; J_1 > t \} + + \mathbb P\{X_t = y, \; J_1 \leq t \} +$$ (pt_split) + + +Regarding the first term on the right hand side of {eq}`pt_split`, we have + +$$ + \mathbb P\{X_t = y, \; J_1 > t \} + = I(x, y) P\{J_1 > t \} + = I(x, y) e^{- t \lambda(x)} +$$ (pt_first) + +where $I(x, y) = \mathbb 1\{x = y\}$. + +For the second term on the right hand side of {eq}`pt_split`, we have + +$$ + \mathbb P\{X_t = y, \; J_1 > t \} + = \mathbb E + \left[ + \mathbb 1\{J_1 > t\} \mathbb P\{X_t = y \,|\, W_1, Y_1\} + \right] + = \mathbb E + \left[ + \mathbb 1\{J_1 > t\} P_{t - J_1} (Y_1, y) + \right] +$$ + +Evaluating the expectation and using the independence of $J_1$ and $Y_1$, this becomes + +$$ +\begin{aligned} + \mathbb P\{X_t = y, \; J_1 > t \} + & = \int_0^\infty + \mathbb 1\{\tau > t\} + \sum_z K(x, z) P_{t - \tau} (z, y) \lambda(x) e^{-\tau \lambda(x)} + d \tau + \\ + & = \lambda(x) + \int_0^t + \sum_z K(x, z) P_{t - \tau} (z, y) e^{-\tau \lambda(x)} + d \tau +\end{aligned} +$$ + +Combining this result with {eq}`pt_split` and {eq}`pt_first` gives +{eq}`kbinteg`. + + + +### Kolmogorov's Differential Equation + +We have now confirmed that the semigroup $(P_t)$ associated with the process +$(X_t)$ should satisfy {eq}`kbinteg`. + + +Equation {eq}`kbinteg` is important but we can simplify it further without +losing information by taking the time derivative. + +Doing so leads to the **Kolmogorov backward equation**, which is, for this +model + +$$ + P'_t = Q P_t + \quad \text{where } \; + Q(x, y) := \lambda(x) (K(x, y) - I(x, y)) +$$ (kolbackeq) + +The derivative on the left hand side of {eq}`kolbackeq` is taken element by +element, with respect to $t$, so that + +$$ + P'_t(x, y) = \left( \frac{d}{dt} P_t(x, y) \right) + \qquad ((x, y) \in S \times S) +$$ + +The proof that differentiating {eq}`kbinteg` yields {eq}`kolbackeq` is an +important exercise (see below). + + + +### Exponential Solution + +The Kolmogorov backward equation is a matrix-valued differential equation. + +Recall that, for a scalar differential equation $y'_t = a y_t$ with constant +$a$ and initial condition $y_0$, the solution is $y_t = e^{ta} y_0$. + +This, along with $P_0 = I$, encourages us to guess that the solution to +Kolmogorov's backward equation {eq}`kolbackeq` is + +$$ + P_t = e^{t Q} +$$ (expsol) + +where the right hand side is the [matrix exponential](https://en.wikipedia.org/wiki/Matrix_exponential), with definition + +$$ + e^{tQ} + = \sum_{k \geq 0} \frac{1}{k!} (tQ)^k + = I + tQ + \frac{t^2}{2!} Q^2 + \cdots +$$ (expofun) + +Working element by element, it is not difficult to confirm that +the derivative of the exponential function $t \mapsto e^{tQ}$ is + +$$ + \frac{d}{dt} e^{t Q} = Q e^{t Q} = e^{t Q} Q +$$ (expoderiv) + +Hence, differentiating {eq}`expsol` gives $P'_t = Q e^{t Q} = Q P_t$, which +convinces us that the exponential solution satisfies {eq}`kolbackeq`. + +Notice that our solution + +$$ + P_t = e^{t Q} + \quad \text{where } \; + Q(x, y) := \lambda(x) (K(x, y) - I(x, y)) +$$ (psolq) + +for the semigroup of the jump process $(X_t)$ associated with the jump kernel +$K$ and the jump intensity function $\lambda \colon S \to (0, \infty)$ is +consistent with our earlier result. + +In particular, we {ref}`showed ` that, for the model with +constant jump intensity $\lambda$, we have $P_t = e^{t \lambda (K - I)}$. + +This is obviously a special case of {eq}`psolq`. + + + +## Properties of the Solution + +Let's investigate further the properties of the exponential solution. + +### Checking the Transition Semigroup Properties + +While we have confirmed that $(P_t)$ defined by $P_t = e^{t Q}$ solves the +Kolmogorov backward equation, we have not yet shown that this solution is in +fact a transition semigroup. + +Let's now tie up this loose end. + +First + +$$ + \sum_y Q(x, y) + = \lambda(x) \sum_y (K(x, y) - I(x, y)) + = 0 +$$ + +Hence, if $1$ is a column vector of ones, then $Q 1$ is the +zero vector. + +This implies that $Q^k 1 = 0$ for all $k$ and, as a result, for any $t \geq +0$, + +$$ + P_t 1 + = e^{tQ} 1 + = I1 + tQ1 + \frac{t^2}{2!} Q^2 1 + \cdots + = I1 = 1 +$$ + +We have now shown that each $P_t$ has unit row sums, so all that remains to +check is positivity of all elements (which can easily fail for matrix +exponentials). + +To this end, adopting an argument from {cite}`stroock2013introduction`, we +set $m := \max_x \lambda(x)$ and $\hat P := I + Q / m$. + +It is not difficult to check that $\hat P$ is a Markov matrix and $Q = m( \hat +P - I)$. + +Recalling that, for matrix exponentials, $e^{A+B} = e^A e^B$ whenever $AB = +BA$, we have + +$$ + e^{tQ} + = e^{tm (\hat P - I)} + = e^{-tm I} e^{tm \hat P} + = e^{-tm} + \left( + I + tm \hat P + \frac{(tm)^2}{2!} \hat P^2 + \cdots + \right) +$$ + +It is clear from this representation that all entries of $e^{tQ}$ are +nonnegative. + +We can now be reassured that our solution to the Kolmogorov backward equation +is indeed a transition semigroup. + + +### Uniqueness + +Might there be another, entirely different transition semigroup that also +satisfies the Kolmogorov backward equation? + +The answer is no --- linear ODEs with constant coefficients and fixed initial +conditions (in this case $P_0 = I$) have unique solutions. + +In fact it's not hard to supply a proof --- see the exercises. + + + +## Application: The Inventory Model + +Let us look at a modified version of the inventory model where jump +intensities depend on the state. + +In particular, the wait time for new inventory will now be exponential at rate +$\gamma$. + +The arrival rate for customers will still be denoted by $\lambda$ and allowed +to differ from $\gamma$. + +For parameters we take + +```{code-cell} ipython3 +α = 0.6 +λ = 0.5 +γ = 0.1 +b = 10 +``` + +Our plan is to investigate the distribution $\psi_T$ of $X_T$ at $T=30$. + +We will do this by simulating many independent draws of $X_T$ and +histogramming them. + +(In the exercises you are asked to calculate $\psi_T$ a different way, via +{eq}`psolq`.) + +```{code-cell} ipython3 +@njit +def draw_X(T, X_0, max_iter=5000): + """ + Generate one draw of X_T given X_0. + """ + + J, Y = 0, X_0 + m = 0 + + while m < max_iter: + s = 1/γ if Y == 0 else 1/λ + W = np.random.exponential(scale=s) # W ~ E(λ) + J += W + if J >= T: + return Y + # Otherwise update Y + if Y == 0: + Y = b + else: + U = np.random.geometric(α) + Y = Y - min(Y, U) + m += 1 + + +@njit +def independent_draws(T=10, num_draws=100): + + draws = np.empty(num_draws, dtype='int') + + for i in range(num_draws): + X_0 = np.random.binomial(b+1, 0.25) + draws[i] = draw_X(T, X_0) + + return draws +``` + +```{code-cell} ipython3 +T = 30 +draws = independent_draws(T, num_draws=1000) + +fig, ax = plt.subplots() + +ax.hist(draws, density=True, align='left', width=0.8, alpha=0.6) +ax.set(xlabel="inventory") + +plt.show() +``` + +```{code-cell} ipython3 +draws[draws > 9] +``` + + exponential representation of semigroup to push densities forward. + + + + + +Ex: Use algo to simulate forward to time $t$. Histogram. Compare. + + + +## Exercises + +### Exercise 1 + +Prove that differentiating {eq}`kbinteg` at each $(x, y)$ yields {eq}`kolbackeq`. + +### Exercise 2 + +We claimed above that the solution $P_t = e^{t Q}$ is the unique +transition semigroup satisfying the backward equation $P'_t = Q P_t$. + +Try to supply a proof. + +(This is not an easy exercise but worth thinking about in any case.) + +### Solution to Exercise 2 + +Here is one proof of uniqueness. + +Suppose that $(\hat P_t)$ is another transition semigroup satisfying +$P'_t = Q P_t$. + +Fix $t > 0$ and let $V_s$ be defined by $V_s = P_s \hat P_{t-s}$ for all $s +\geq 0$. + +Note that $V_0 = \hat P_t$ and $V_t = P_t$. + +Note also that $s \mapsto V_s$ is differentiable, with derivative + +$$ + V'_s + = P'_s \hat P_{t-s} - P_s \hat P'_{t-s} + = P_s Q \hat P_{t-s} - P_s Q \hat P_{t-s} + = 0 +$$ + +where, in the second last equality, we used {eq}`expoderiv`. + + +Hence $V_s$ is constant, so our previous observations $V_0 = \hat P_t$ and $V_t = P_t$ +now yield $\hat P_t = P_t$. + +Since $t$ was arbitrary, the proof is now done. + + + +## Solutions + +### Solution to Exercise 1 + +One can easily verify that, when $f$ is a differentiable function and $\alpha > +0$, we have + +$$ + g(t) = e^{- t \alpha} f(t) + \quad \implies \quad + g'(t) = e^{- t \alpha} f'(t) - \alpha g(t) +$$ (gdiff) + +Note also that, with the change of variable $s = t - \tau$, we can rewrite +{eq}`kbinteg` as + +$$ + P_t(x, y) = + e^{-t \lambda(x)} + \left\{ + I(x, y) + + \lambda(x) + \int_0^t (K P_s)(x, y) e^{s \lambda(x)} d s + \right\} +$$ (kbinteg2) + +Applying {eq}`gdiff` yields + +$$ + P'_t(x, y) + = e^{-t \lambda(x)} + \left\{ + \lambda(x) + (K P_t)(x, y) e^{t \lambda(x)} + \right\} + - \lambda(x) P_t(x, y) +$$ + +After minor rearrangements this becomes + +$$ + P'_t(x, y) + = \lambda(x) [ (K - I) P_t](x, y) +$$ + +which is identical to {eq}`kolbackeq`. diff --git a/code_book/.ipynb_checkpoints/kolmogorov_fwd-checkpoint.ipynb b/code_book/.ipynb_checkpoints/kolmogorov_fwd-checkpoint.ipynb new file mode 100644 index 0000000..2c7dafb --- /dev/null +++ b/code_book/.ipynb_checkpoints/kolmogorov_fwd-checkpoint.ipynb @@ -0,0 +1,599 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Kolmogorov Forward Equation\n", + "\n", + "\n", + "\n", + "## Overview\n", + "\n", + "In this lecture we approach continuous time Markov chains from a more\n", + "analytical perspective.\n", + "\n", + "The emphasis will be on describing distribution flows through vector-valued\n", + "differential equations.\n", + "\n", + "These distribution flows show how the time $t$ distribution associated with a\n", + "given Markov chain $(X_t)$ changes over time.\n", + "\n", + "Density flows will be identified by ordinary differential equations in vector\n", + "space that are linear and time homogeneous.\n", + "\n", + "We will see that the solutions of these flows are described by Markov\n", + "semigroups.\n", + "\n", + "This leads us back to the theory we have already constructed -- some care will\n", + "be taken to clarify all the connections.\n", + "\n", + "In order to avoid being distracted by technicalities, we continue to defer our\n", + "treatment of infinite state spaces, assuming throughout this lecture that $|S|\n", + "= n$.\n", + "\n", + "As before, $\\mathcal D$ is the set of all distributions on $S$.\n", + "\n", + "We will use the following imports" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.linalg import expm\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## From Difference Equations to ODEs\n", + "\n", + "{ref}`Previously ` we generated this figure, which shows how distributions evolve over time for the inventory model under a certain parameterization:\n", + "\n", + "```{glue:figure} flow_fig\n", + ":name: \"flow_fig\"\n", + "\n", + "Probability flows for the inventory model.\n", + "```\n", + "\n", + "(Hot colors indicate early dates and cool colors denote later dates.)\n", + "\n", + "We also learned how this flow can be described, at least indirectly,\n", + "through the Kolmogorov backward equation, which is an ODE.\n", + "\n", + "In this section we examine distribution flows and their connection to \n", + "ODEs and continuous time Markov chains more systematically.\n", + "\n", + "Although our initial discussion appears to be orthogonal to what has come\n", + "before, the connections and relationships will soon become clear.\n", + "\n", + "\n", + "### Review of the Discrete Time Case\n", + "\n", + "Let $(X_t)$ be a discrete time Markov chain with Markov matrix $P$.\n", + "\n", + "{ref}`Recall that `, in the discrete time case, the distribution $\\psi_t$ of $X_t$ updates according to \n", + "\n", + "$$\n", + " \\psi_{t+1} = \\psi_t P, \n", + " \\qquad \\psi_0 \\text{ a given element of } \\mathcal D,\n", + "$$\n", + "\n", + "where distributions are understood as row vectors.\n", + "\n", + "Here's a visualization for the case $|S|=3$, so that $\\mathcal D$ is the unit\n", + "simplex in $\\mathbb R^3$.\n", + "\n", + "The initial condition is `` (0, 0, 1)`` and the Markov matrix is" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "P = ((0.9, 0.1, 0.0),\n", + " (0.4, 0.4, 0.2),\n", + " (0.1, 0.1, 0.8))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcwAAAFUCAYAAACp7gyoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dd3gUdf4H8PfM7GbTAwYiRQ4VBBU0KogoKCBSBAQSkaYgRUFFUBTl4JATpamHBWy/Q8VTTjxP9OROqhRBRECkqTQbRaqEkLZ1Zn5/hA2bzSbZJLs77f16Hp47k+zuJ9ndee+3C6qqgoiIiComal0AERGRETAwiYiIwsDAJCIiCgMDk4iIKAwMTCIiojAwMImIiMJgq+T7XHNCRERWI4T6IluYREREYWBgEhERhYGBSWQwkyZNwssvv6x1GWW0adMGP/zwg9ZlEEUNA5PIQE6dOoX33nsPo0ePBgDk5OQgKysLSUlJaNy4MT744IOw7qe6t3v11VfRunVrOBwODBs2rNT3JkyYgKlTp1bp9yEyksom/RCRjrz77rvo0aMHEhISAABjxoxBXFwcTpw4gR07dqBnz57IzMxEixYtKryf6t6uQYMGmDJlClasWAGn01nqe71798YDDzyAY8eOoX79+jX7RYl0iC1MIgNZtmwZOnToAAAoLCzE4sWL8eyzzyI5ORnt27dH79698f7771d4H9W9HQBkZ2ejb9++SE9PL/O9+Ph4tGrVCitXrqzeL0ekcwxMIgPZvXs3mjdvDgDYv38/JElCs2bNSr6fmZlZ6ThidW8XjiuuuAI7d+6s8f0Q6REDk8hAcnNzkZKSAgAoKChAWlpaqe+npaUhPz+/wvuo7u3CkZKSgtzc3BrfD5EeMTCJDKR27dolwZacnIy8vLxS38/LyysJ1PJU93bhyM/PR61atWp8P0R6xMAkMpCrr74a+/fvBwA0a9YMPp8PBw4cKPn+zp07K524U93bhWPPnj3IzMys8f0Q6REDk8hAevTogS+//BIAkJSUhOzsbEydOhWFhYXYuHEjPvvsMwwZMqTk54cNG1Zm+Ud1bwcAPp8PLpcLsixDlmW4XC74fD4AgNvtxrZt29ClS5fI/+JEOsDAJDKQoUOHYunSpSVLOl5//XU4nU5kZGRg0KBBeOONN0q1FA8fPox27dqVuZ/q3m769OlISEjA7NmzsXDhQiQkJGD69OkAgCVLlqBjx45o0KBBpH9tIl0QVLXC/dW5+TqRzkyePBkZGRl49NFHK/w5j8eDzMxM7Nq1C3a7Pez7r+7tbrjhBrz99tto2bJl2Lch0qmQm68zMImIiErjaSVERETVxcAkIiIKAwOTiIgoDAxMIgtQVRWKomhdBpGh8bQSIhPyB6TP5yv5J4oi4uLiIEkSJEmCIISc10BE5eAsWSKTUBQFsizD6/XC6/XC/952nj6N3J9/RnxSEi7MzIQgSQAASZJgs9kgCALDk6g0LishMhNVVSHLMnw+HzweT6kuV1EUofh8+PaVV/Dz558D5wLRI4ro9MwzaNqhQ0mgCoJQ0uoURY7SEIGBSWRsgQHp9Xohy3LJ9/ytxMCW4rZ587Dj/fdRIAjIyclBYVER0hIS8KcGDXDXokWodcklJffrvw6IosguWyIGJpGxBI9Der3ekq+LolhhV6onPx8f9+mDfQcPonadOqiTnl58GokgoPDkSTTv2xc3TphQ5vEC/zew1cnwJIsJ+YLnpB8iHSlvHFIQhCoFV/7vv0MQBFzbqhUAwKcI+D0/EQ1TnbAnJeHkjh1lbuO/b0EQSlqzsiyzy5boHAYmkYZUVS3Vggweh6xuQMWlpECR5eLuVgh4c3dLbD9RB8+234oLPDlISE+v8PaBrdfAGtllS1bGj4tEMeQPH5fLhfz8fJw9exaFhYVwu90lXa2RCKSUhg1R58or4Tx9Gh/ub4Ycby1kX+vFaztawuX0onl2dtj3Fdi6VVUVXq8XLpcLHo8H8rlQJrICjmESRVHgOKTX6y05OzKccciayjt8GE/0nYM1v1+CR2/OQ4Low9vbUtH8UgfeXzu+Ro8bOFEosMuWS1TIJDiGSRQLwRN1qjsOWVOrv/VizdlWmPnni2E/fRD2pETMGJiJURM3YfXqw7jttj9V+77ZZUtWxBYmUQ2FGodUVTXmARno66+P4e67V+K113qjefM6AHAuxERs2nQIU6euxLffDkKdOgkRe0zOsiUT4bISokio6nrIWNu37wxuv/2/ePbZ29C2baOSr/sDEwDmzNmAU6fO4OOPe0alVnbZksHxPEyi6vAHpNvtRkFBAc6ePYuCggI4nU4oilKqG1Lr1tSxY4XIylqKRx65qVRYBhs79kb88ks+3n77h6jU4W9d+2f5+nw+uN1ueDwe+Hw+ThQiQ2ILkyiIv3VU3jikXltJeXkedOu2BLfe2hQjRrQq8/3AFiYA/PJLDoYN+zfWrbsTzZtfEPX62GVLBsIuWaLyBG4Y4PP5dDEOWRUej4x+/Zajbt00TJp0S8h6bTYbgq8D//rXLvz3v99jw4a7EBcnxahadtmS7rFLlsgveD1kXl4eCgsL4fF4ABRvGmCz2Qwx21NVVTz88HoANkyceHOV6u3f/ypccEEynn76m+gVGEJ5XbZut5tdtqRbbGGSJZS3HhLQdzdrOKZN24IvvjiKN97ojYQEe7k/F6qFCQA5OUXo3/8DvPtuF3TqVP64Z7QFd9n6P7QYoYVPpsMuWbIOf5efPxwDWy1GD8hAb731I155ZRcWLMhG7doVLxEpLzABYOPGg3jmmS+wdetApKdHbqlJdbHLljTGwCRzCx6H9C/3MMo4ZFUtXfobxo3bgLfeykKjRmmV/nxFgQkAL7zwJc6ezceHH96uq79VcHgapaucDI1jmGQulY1DSpJk2ovrli0nMGbMl3jxxdvDCstwjBvXDvv2ncW77/4YkfuLlOAPPP69bN1uN/eypZhiC5MMwz8O6T/6Sm8bBsTKTz+dRffuSzBlSifcfHPjsG9XWQuz+L5PY8SIj7F+fT9cdlntGlYaPcHjnYEfjKzwGqCoY5csGUvwAcr+5R4Aor5xuV6dOuXErbf+B/feex2ysq6s0m3DCUwAWLRoJ5Yt+xHr1/eD3R67pSbVFWq802azWe61QRHFwCT9Cz5AWVGUkgufGcchq6Kw0IsePf6L669vjAcfbFPl24cbmKqqYuzYJbj++nRMn35TNSrVBmfZUgQxMEl/Avdl9Xg8ZQ5Q5oWumM+nYMCAFUhOTsRTT3Wq1t8l3MAEgD/+KET//h/gn//sjltuaVjlx9Iau2yphhiYpD29b1yuR8UtvvX45ZcivPji7dXuJq1KYALA+vW/Ytastdi6dSBq146v1mPqAbtsqRoYmBR7ocYh/Rcwq45DVtWsWdvw2WcHMX9+XyQmlr8xQWWqGpgAMHv2OjidhfjnP7ub4nkKDE922VIFuKyEYsM/k7WoqAh5eXnIz8+H0+mEz+cr9QmfF6rKvf/+Xrz//j688krPGoVldT36aHvs3p2DhQv3xvyxoyFwiYqqqvB4PHC5XKXOMSUqD1uYVGOhDlD2YyhW36pVhzB69DrMn98XF19c8yUe1WlhAsC+facwatQn2LDhLjRpUqvGdehNebsK+fe5JUtilyxFRqhxSP/JHhyHjIzt208hO3sp5szpgczMehG5z+Djvapi4cLtWL16H9auvdMQS02qi122dA67ZKl6wjlA2T8LkReXmvvttzwMGLAcf/lLx4iFZU0NHnwN4uMdmDFjq9alRBW7bKkibGFSSIETdYxygLIZnD7twm23/Qd33XU1Bgy4KqL3XZMWJnB+qcmiRd3Rvr3xlppUF7tsLYldslQ+jkNqz+n0oVev/6FlywYYN+7GiN9/TQMTANat+wXPP78OW7cOQq1ajghVZhzBXbaBp6iQqTAw6Tyuh9QXWVZw992rIAh2PPPMbRDFyP/tIxGYADBjxhrIshvvvdfVsq+R4I0RAtd2WvVvYjIcw7SycMYhA7ua+KaPHVVV8cQTXyMnx4e//vXWqIRlJD322M3Yvv0UFi3ap3UpmvEHo/+94n9vud3uMj00ZB5sYZqUv+uI45D699JLO/DBBz9h/vy+SEmJXjdndZeVhLJ37ymMHv0JNm7sj0suiczxYmbALlvTYJes2QUfoOyf1WfWA5TN4KOPDmDq1C1YsCAbGRnJUX2sSAYmALz33nf48ssDWLPmTths7KwKxC5bw2OXrNlUdoBy4HIPvkn1Z926I5g4cRPmzu0V9bCMhnvuuRY2mx2zZpl7qUl1sMvWnNjCNJDAfVn9rUg/drMay/ffn8Ydd/wPs2d3Q+vWsVmiEekWJgCcPFmAgQMX4aOPeuDGG+tH9L7NiF22hsEuWaPxv7n84ejfuBxgQBrZkSMF6Nz5P3j00Xbo2rVpzB43GoEJAKtX/4yXXlqPrVsHITU1LuL3b0ahumw54U5XGJhGwHFIc8vNdaNLl8/Qq9cVuOeea2L62NEKTAB45pnVsNm8WLCga1Tu38zK2xiBH4g1xcDUo4rWQ/p3EuGbxhzcbhl9+nyOSy+ti8cfbx/zx49mYBYVeTFo0CJMndoGAwc2i8pjWAG7bHWDgakHHIe0JkVRMWzYFygqEjBrVldN1lpGMzAB4McfT+LBBz/F118PwMUXp0btcayAXbaaY2BqobwDlAEGpJVMnrwJmzadwmuv3QGHwxaTx1TdbkAUIdiLz9GMdmACwIIF32LTpl+walU2l5pECLtsNcHAjJXAcUj/FHL/C5ufEK3n9dd3Y/78PXj77SykpcVH/fF8Bw/CtWwZfAcPAQBszS5Dwu094LioIaIdmIqiYvToT9C160WYPPn6qD6WFbHLNmYYmNESOA7p8XjKbFwOcBzSqj799BdMnPg13nknG/Xrp0T98Xy//YaC+fMhSBKQlASoKtT8Agh2G9LGjYMt48Ko13D8eD4GDVqETz7phTZt9HE8mdmwyzbquHFBpARvGODfl9XlckFV1TKf/PgCtqavvz6Gxx7bgJdf7hmTsAQA19KlECQJQlIyBAgQBBFiaipUjweuNWtiUkO9eimYPLkT7r13JfLzPTF5TKsJtTGCx+MptTECz+6MPAZmGAI3Li8sLEReXh43LqcK7d17BvfcswrTp3dB8+Z1YvKYqssN3+EjxS3LIEJyMty7d8ekDgDo0uUyXHddQ4wfvz5mj2lV/uD092b5fL6SXYUC50xQzTEwy6EoCrxeL4qKipCXl4f8/Hw4nU74fL6SgXebzcaApDKOHStEdvZSPPLITWjbtlHsHtj/Mgx1gVQBxPjA4yef7ICvvjqGf//7QEwf18qC12t7vV64XC643W7IsszwrCEG5jmB3ax5eXml9mUNPmWdAUnlycvzIDt7GbKyWqBXr+YxfWzB4YCtSROoBQVlvqcWFMBxzbUxrScxMQ6zZnXDo49+iUOH8mP62FYX3GWrKAq7bCPAsoFZ1XFIosp4PDLuvnslWrSoh+HDr9OkhoQePSCIEpS8s1AVGarsg5KbCyE5CQmdOsa8npYt6+Gee67FiBGrIMvccFwL7LKNHMvMki1vPaQ/HDk5h2pCVVWMGrUWJ0/68MIL3SBJ2n0WlU+cgHvNGnh//BEQRdgzr0F8p06Iq1sH0V5WErIeWcGoUZ+gZ88/YeLE1jF/fCoreJat/2Qj9qCVsN6yksCA5AHKFE3Tpm3BF18cxRtv9EZCgl3rckKKxcYF5Tl+PB8DBy7CZ5/dgdato7+0hcLHjRFCsl5gFhQUlGw9x09OFC1vvfUjXnllFxYsyEbt2glal1MuLQMTAJYv348339yEzZsHIDmZp5roUajw9B98bTHWW4fpP+WD45AULZ9//htmz96GV1/tpeuw1IPu3Zvh6qvr4/HHN2hdCpUjeJatf54HZ9kWM3VgijGeRk/WsmXLCYwZ8yVefLEHLrooTetyDGHixI5Yt+53fPrpT1qXQhUInmWrqio8Hg9cLpelZ9maOlH8TzRRpB04kItBg1bg6ac7o0WLDK3LMYykpDjMnNkdY8euw5EjZZe/kP4Eh2fgLNvAuSFWYPrAJIq0kyeLkJ29DA89dANuvrmx1uVUgT7eD1dfXQ+DBl2D4cNXQVGsc7E1A6t32TIwiaqgoMCLfv2Wo3v3Zujb90qtyzGskSNbo6hIwUsvbde6FKoGq3bZmnqWrMfjQWFh4bnZgUQ14/MpGDBgBZKTE/HUU50M94HMZtPXcpejR/MwePCH+N//euPaa9mtbQYmmmVrvVmyAFuZFBmqquKRRzbA6QQmTerA11UENGiQiief7IChQ1egsNCrdTkUAaF2FTJTl62pA5MXNYqU2bO/w3ffncZzz3WD3S5pXU416e9i1aNHc1x++YV44gkuNTEbM3bZMjCJKvHee3uxcOF+vPJKTyQm6qtb0wwmT+6EVasOY8mSn7UuhaKgslm2imKcPYZNHZhENbVy5SE8/fQWzJvXC+npiVqXY0rJyQ7MnNkNY8asw9GjXGpiZhVtBC/LssbVVc7UgckWJtXE9u2nMGrUWvztb7ejceNaWpdjatdc0wD9+1+FkSO/4FITiwg+fsy/jameMTCJQvjttzwMGLAcU6Z0RGZmPa3LsYT77muD3Fwv5s7doXUpFENGOgyDgUkU5PRpJ7KylmL48Nbo1OlSrcuxDJtNxMyZ3fH8899i585TWpdDMeTf91vvTB2YfkacjUXaKCryon//FejQ4VL0799S63Is56KL0jBhQgcMGbICRUVcakL6YurANMInFtIPWVYwYsQaZGSkYsyYtlqXY1m9ejXHZZfVxZ//vFHrUohKMXVgAgxNCo+qqpgwYSNycnz4619vhSjydaMVQRAwefKt+Pzz3/D5579qXQ7FiBFOl9J/hTXEwKRwvPTSTnz11Qk8/7yRNyYwj9RUB2bM6IYHHliD48cLtS6HCIBFApNjmFSRf/3rAP7+9x8wd25PpKQ4tC6HzmnVqiGys1tyqQnphiUCk6g869YdwZ//vAlz5/ZCRkay1uWcpwLiycOQftwMcf92wFWkdUWaGD26Df74w43XXtupdSkURUZZVmLq00oAoLCwEF6vF5LEbjYqbffu0+jd+3+YPbsbWrduqHU557mdsK98H+Lx36AqKgRRgCpI8N2SBaXZddW+2+JTe/R/UQp2+HAu7rnnX1ixIgtXXVVH63IoChRFgcPh0NM4Jk8rIfI7fDgf/fotw5NP3qKvsARg2/AphGO/QU1MA1JqQ02qBcTFw/7lxxD/OKp1eTHXqFEtjB9/M4YMWQGnU/+7wZB5mT4wdfSJhXTizBk3srOXYfDga9C1a1OtyylFKMyD9Ov3QFIqEPhh79xZluL3mzSqTFt9+lyBiy9Ox+TJXGpiVkZo3FgiTTjph/xcLh8GDlyB669vhHvuydS6nDKEglyoogQIZd+aqt0B8bT1WphA8cV0ypRb8dlnv2L58t+0LocsyvSB6d/cl0hRVIwatRYpKYkYP76d1uWEpCalQpBlQC175JHg80JJs+4YXlpaPKZP74rRo9fgxAlrToIyIyM1aEwfmFxWQn5/+cs3OHLEhWee6azbjQnU5FpQLmoKFOWX/obsAxQFSssbtSlMJ66//iL07n0F7r//C76vTcQos2RNH5iAMfrGKbpee20Xli8/jDlzusPhsGldToV8He8C0upAKMiFUJAL5J+B4CyA74buUOpdXK37LM4Wc7wPHnywLY4dc+KNN3ZpXQpZjOmXlfh8PhQUFHBZiYV98snPmDhxExYsyEb9+ilalxMeRYF4eB/EEwehOhKhXNwSatoFNbpL27mJQ2Zw8OAZDBnyEVavzsaVV6ZrXQ7VgP+kEodDV5uGhPx0afrAlGUZ+fn5DEyL2rjxKO65ZxVee603mje37vgfYK7ABIBPPvkeH320Axs39kd8vL57Dah8RgpM03fJsjvWuvbuPYMhQ77A9OldLB+WZpSV1QING9bCX/5izaU2ZmKU67TpA5Os6dixQmRnL8Ujj9yEtm0baV0ORYEgCJg69TZ88slPWLXqoNblUDUZ5fBowAKBaZQngiInL8+DrKylyMpqgV69mmtdDkVRWlo8nn22K+6/fzVOnXJqXQ6ZnOkD049T0K3B45ExePBKtGxZH8OHV3/fVTKOG25ohB49LseoUav5PqeoMn1gGmV9D9Wcqqp46KEvIUlxePLJm/m8W8jDD9+IQ4cKMH/+91qXQtVglC1MjVFlDfHCaQ3Tpm3Bvn15mDHjNkiSJV7adI7dLmHWrNvx9NPfYO/eHK3LIZOyxFWFu/2Y3/z5P2Dx4l/x0ks9kJBgruUTFJ5LLqmNsWNvwpAhK+B2y1qXQyZkmcAk8/r889/w3HPf4dVXe6F27QStyyEN3XlnS2RkpOKpp7jUxEiMco1mYJKhbd58HGPGfIkXX+yBiy5K07oc0pggCPjrX2/DRx/tx+rVh7Quh0zGMoHJLlnzOXAgF4MHr8TTT3dGixYZWpdDOlG7dgKmTeuC++77AqdPc6kJRY4lAtMoM7AofCdPFiE7exkeeugG3HxzY63LIZ256abG6NatOUaPXsMPywZglF5AJgkZTkGBF3feuQzduzdD375Xal0O6dTYsTfi55/z8M47P2hdCpmE6TdfBwCPx4PCwkLYbNyg2eh8PgX9+y9HSkoynnqqo24/mYr5hyEeXgcx71fAlgi5XlvI9W8AJO1m8Jpt8/Vw/PzzaYwY8THWreuHZs1qa10OBVFVFaqqIj4+Xm/vZWtuvu6nsyeDqkFVVYwbtwFut4BJk27R7XMqnt4L+843IZ3ZBwg2wFcE26//g/2HdwDFp3V5ltKkSToeeuhGDB26Eh4Pl5rokZE2l7FEYBrlyaCKzZq1Ddu3n8bs2d1gt+v0uDZVge2nT6DaHFDjUgHRBkjxUB21IZ79DeIf3Ikm1vr3vwq1aiVi2rRvtC6FDI6BSYbwj3/sxcKF+/HKKz2RmKjfrkWx4CjgKwSk+NLfEASoUhykE9s0qcvK7wFBEPD0013w/vv7sG7dEa3LIQNjYJLurVx5CNOmbcGrr96B9PRErcupmOJDOcMfxV9nl6wm0tMTMW3abRgxYhVyclxal0MBjHR9tkRgknF9990pjBq1Fn/72+1o3LiW1uVUSkmuDwhSyGAUZA+UOi00qIoAoH37i9G5c1M8+CCXmugJA1NnjPSE0Hm//pqHAQOWY8qUjsjMrKd1OeGRHJD/dBsETx4gu4u/piqAOxeqIxVyBo8c09Ijj7TD3r25+Mc/9mhdCsFYh0cDFllWoqoqcnNzuazEQE6fdqJz588wYEAm+vdvqXU5VaMC0vHNkA6tLh7PVAHlgsshX3oH1HhtWsmCIECS+PoHgAMH/sDIkYuxYcNdaNpU/70WZqYoCmw2G+x23c1LCJnilgnMs2fPQhRFQ32asaqiIi969fofrr66IcaOvVHrcqpPVSB4CqBKdsCm7abwDMzSPvhgB1as2IMvv+yn3xnXFmC0wLRMlyyD0hhkWcGIEWtQr14tPPxwW63LqRlBhOpI1TwsqaxBgzKRkpKIZ57ZonUplmeka7MlAhMw1pNiVaqqYsKEjcjJ8WHq1E58zihqipea3IZ33/0RGzb8rnU5lmak97llAhMAZ8bp3Isv7sBXX53A88/reGMCMo06dZLw9NO3YfjwVThzhktNqHKWCUwjfYqxokWL9uOtt/Zg7txeSElxaF0OWcQtt1yCW265BGPGrOUHao0Y6dpsmcDkEV/6tXbtEUye/A1eeaUnMjKStC6HLGb8+Juxe3cOFi7cq3UppHOWSREeIq1Pu3efxogRqzF7dlc0aXKB1uWQBcXH2zBrVndMnPgVfv75rNblkI5ZKjBJXw4fzke/fsvw5JO3oHXrhlqXQxbWvHld3H9/G9x77wp4vTzVJJaMdG1mYJImzpxxIytrGQYPvgZduzbVupyKqQBUN6DyQmpmgwdfg/h4B2bM2Kp1KaRTlti4AADcbjeKioq4248OuFw+9OmzFE2aZODxx9tpXU6FRNdu2ApXQpD/AAQJcvy18CV1BcQUrUurEm5cEJ5TpwoxYMAH+PDD29GuXQOtyzE1HR8eDVh54wKAmxfohaKoGDVqLVJSEjF+/E1al1Mh0bkV9rx/AmoBVKkWVDEJonMb4s78H6A6tS6PoqBu3SQ89VRnDBu2Erm5bq3LMT2jXZctFZikvcmTN+HIEReeeaYzRFHHz4nqg61wKVQxGRASUPyBUwKkWhDk05Cc27WukKKkU6dL0a7dxRg3bp3WpZDOMDApZl59dRdWrjyCOXO6w+HQd/eg6DsKqF5AiCvzPVVwQHTv1qAqipXHHrsZ27adwgcf7NO6FNIRywQmaWvx4p/xyiu7MHduL6SmxmtdThhEoNzxfRV865hbQoIds2Z1x4QJ6/Hrr1xqEi1Ga8hY5l1vtCfGTDZuPIoJE77CK6/0RP36xpgso9gaAGJ88ezYUlRA9UCO57mWZnfFFRkYMeJ6DBu2Cj6fonU5pmS06zIDk6Jqz54cDBnyBaZP74LmzetoXU74BBG+5L6A4gSUAgAKoHogyGcAewMo8VdpXSHFwJAh10KSbJg9+1utSzEdox0eDVhoWYn/TExJ4qbesXL0aCE6d/4PHnzwBvTs2VzrcqpF9P4CqeALiN6DUMV4KAlt4Uu8GRCM0K18HpeVVN/JkwUYOHAR/v3vHmjbtr7W5ZiGjs/CBKx8gDTAQ6RjLS/Pg65dP8NttzXD8OHsvtQaA7NmVq/+CS+9tAFbtw5CamrZiWBUdUYMTHbJUsR5PDIGD16Jq65qgGHDrtW6HKIa69y5Kdq0aYRHHlmndSmmYrTrsmUCEzDek2NEqqrioYe+hCTF4Ykn2vNvTqYxYUIHfPPNCXz44X6tSzENo10fGJgUUU8/vQX79uVhxozbIEmWenmRySUmFi81efzx9Th4ME/rckgDlrqi8Yiv6Pr733/Ap5/+ipde6oGEBF2OSxDVSIsWF+Lee6/D8OGrIMtcalJTRmvEWC4wKTo+//w3PP/8d5g3rxdq107QupxyqQBk8RBctqVw2j6BV9oBFdwzlMJ3772tIJY2PhcAACAASURBVMsinn9+m9alUIxZZpYsABQWFsLn80EULfU5Ieo2bz6OAQNWYO7cXmjRIkPrcsqlAnDblsIr7QYgAKoECD4IajISvXdDVGtpXWLUcJZsZB0/no9Bgxbhk096oU2belqXY0iKosDhcOj1emztWbIAu2Sj4cCBXAwevBLTpnXWdVgCgCzuh1faBUFNgaCmQkASBDUNKgrhsi3VujwykHr1UjB5cifce+9K5Od7tC7HsIzW62epwNTpJxnDOnGiCFlZSzFmTFu0b99Y63Iq5ZG+A1Q7gl/2AlIgi0egCOadyGG0C5MRdOlyGa69tiEee2y91qVQjFguQdjCjIyCAi/69VuGHj0uR58+V2hdTlhUIR8CQnVLCoAqQgXPuKSqmTixA9avP4qPPz6gdSmGYtTrsKUCk7v8RIbXK2Po0FW49NK6GDWqtdblhE1SLipngo8MATD1GCZFR2JiHGbP7o5HHvkShw/na12OoRjt8GjAYoHJMcyaU1UV48ZtgNstYNKkWwz1grfLrQFBAEqFpgIV+bAprSDAoVVpZGAtW9bD3Xdfw6UmFmCpwAQ4llNTM2duw44dOZg9uxvsdmNtZC+pdZHgvRNAcfesinyoQgHsyjVw+G7RuDoyshEjWsPtVjFnzndal0JRZKllJT6fDwUFBTyxpJr+8Y+9eP757ViwIBvp6Ylal1NtKmQo4hGo8EJSL4SgGuOMzpoQRRGiyNd9NB07lodBgz7EkiV3oFWrC7UuR9f8R3s5HLrt1bH2aSUAIMsy8vPzGZjVsGLFITz44Dq89VYWGjfmWJ/RMDBjY/ny/XjzzU3YvHkAkpN5qkl5VFWFKIqIi9Pt34jrMKl6vvvuFEaPXou//e12Q4SlCsVcn/TIMLp3b4arrqqPCRM2aF2Krhnx8GjAYi1MRVGQl5fHFmYV/PprHrp2/QwTJ3ZAp06XaF1OhQrEUzgq/YBC8TQEiKgtN0IDuQXsqn636osVtjBjp7DQg/79/4nnnmuHrKymWpejSzo/CxNgC5MTfqrq9GknsrKWYuTI1roPy7PicRywb4BTyIVdTYCkxiFHPIh99rXwwqV1eWQhSUlxmDmzO8aOXYcjRwq0LociyFKB6celJZUrKvLirruWo2PHS3HXXS21LqdCKoDfbTsgqjbY4IAAASJExCERXjhxSvpF6xLJYjIz62PgwEyMGLEKisLrTShGbMBYKjCNuFBWC7KsYPjwNahXrxYefrit1uVUyiMUwo0iSCF28ZEQh1zpkAZVkdWNHHk9CgpkvPTSdq1L0SUjXostFZiAMZ+kWFJVFY8/vhFnzvgwdWon/r2IqslmEzFzZnfMmbMN27ef1LocigBLBia7ZMv34os7sHHjCbzwQnfDbEwQpybBgSTI8JX5ngwPast/0qAqIqBhw1Q8+WQHDB26AkVFXq3L0RUjfhi3ZGBSaIsW7cdbb+3B3Lm9DLWGTABwke8aKIIXXrigQoUCBR4UwY4E1JGbaF0iWVjPnpfj8ssvxBNPfKV1KVRDDEwCAKxdewSTJ3+DV17piYyMJK3LqbJU5UJc5u2ARPUCeAUnZMGDdOViNPd2gp17xJLGJk3qhBUrDuG//+UENCOz1DpMACgqKoLH4+FazAC7dv2BPn0+x3PPdUerVg20LqdCHsg4Jp6FR/AhVY1HhpICIWjJlAoVKPNVa+M6TO1t334Ujz/+OTZvHoAGDZK1LkdTiqIgPj5ezw0Ybo0HAE6nE263m4F5zuHD+ejc+TM89lg7dOmi70XWR8VcbLYdhCIoUKFCgIgU1YH23qZIVHW7AFoXGJj68MYb32DPnqP4/PM+EEXdhkXUGTUw2SVrYWfOuJGVtQx3332N7sOyQHDjG9tvsEFAohqHJNWBRNWOArjxjf0X832yI1O6//42yM31Yt68HVqXohkjT7q0XGCKomjoJyxSXC4fBgxYjjZt/oR77snUupxK/SblQIUKG0q3kuJhQ67gxFnBqVFlROGz2UTMmNEdzz33LXbuPKV1OZox6pp4ywUmwFamoqi4//61SEtLwvjxN2ldTljy4IQU4uUqQABUoEhwh7gVkf40apSGCRNuwZAhXGpiNJYLTKuHJQBMmrQJv//uwrRpnQ0zjpKC+JBnkKhQAQFIgHGWwRD16nU5mjatiz//eaPWpVAVMDAt5tVXd2HVqiOYM6c7HI6yW8np1cVyOiAAPiilvu5C8WzZWopxD7Qm6xEEAX/5y634/PPfsHTpr1qXE3NGvQ5bLjCtbPHinzF37i7MndsLqanxWpdToeOiglU2Nz61OfGt5IGkxuF6b2N4IaNI8KBQ8KBI8CIBdtzovYRLSMhwUlMdmDGjGx54YA2OHy/UupyYMmpgWm5ZiSzLyM/Pt9yykq++OoohQ1bhtdd6o3nzOlqXU6GvJDc22jyACkgAZAFwqAIGexORqio4KuXCBS9qqQmop6RBZFxWistK9OvVVzfh55+PY8mS3oYZIqkJRVEgSRLi4nQ9jMJlJYBxP9nUxJ49ORg69AvMmNFV92F5VJSx0eZBsiogFSKSICJVFSFDxad2Jxyw4VK5Dq6U66OBUothSYY3enQbnDzpxuuv79K6lJgx6nWYgWlyR48WIjt7GR599CbccMNFWpdTqZ2iFwJQJggTIeCsoOCYqIS+IYWkqioURYHP50Nxh5HpOo0Mz26XMGtWd8ycuQXff/+H1uVQBSwXmH5WWIt59qwb2dlLceedLdGzZ3OtywlLvqDCFvKpESCogAsMzMoEhqSiKCWvdVmWz/23AganvvzpT7UwfvzNGDJkJZzOsqfumI1RGy6WC0yjPlFV5fHIuPvuVbjqqgYYNuxarcupVL4MHPWIuMAjIdTKNBUqFAFIVy33kg2LqqqQZSUgFAFJkmCz2WC3x8Fms5e89hVFKfnH4NSPPn2uQOPGtTF58tdalxJ1Rr0OG2ddQQQZ9ckKl6KoePDBdZCkODzxRHtd/75FMvDpaTt+KBIhCoAPdrhTbBAzipB8bgKEChX5gormsg1pDMwS/pbkecK5yT0iBCHU36n471n8elChqgpkGRAE8dxkE/2+TqxAEARMmdIZ/fv/E927/wndul2sdUkUxJJXH7MfIj1t2hbs35+PGTNugyTp9ylWVWDBCTu+LxKRKgEpEpAmAmJePI4cTUYeFBRAQb6g4jLZhtt9CVqXrCl/QMqyXNLdWhyS/pakHZJkKycsgwkQBPHce+F8y5TjnNpKS4vH9OndMGrUGpw8WaR1ORTEsi1Mswbm3//+Az799Fe88042EhL0fYLHzy4Rv3tE1JJQ0rgRBSBDEpBb5ECHfBUXJMioo4q4wKItS1VVS/3z78EpSdK5/1/Tv4sQosVZ3Npkq1Mb119/Ee644wrcd98X+OyzO3TdQ1RdRv2dLHkVEkVz/tr/+9+veP757zBvXi/Urq3/1tght1A8hSf4vSMUtz5ltw3NFJvlwjLUpB1RFGGz2c79s0MUpQiEZaDzLc7iGoJbnRRLDz3UFseOOfHmm7u1LoUCWLKFCZhvluzmzcfx8MPrMXduL1x0UZrW5VTo0BkRG36VsPsPEX9AgK2+ipRaKBWcAoA4C+VkcUgGdocWtyLLH4+MlsrGOc//DEWP3S5h5szuGDr0I3To0BBXXpmudUkRxRamgRj1ySrPgQO5GDx4JaZN64wWLTK0LqdC23+X8OYmO348ISIegMcp4PBPIo4fQklW+FRAFIHLE8y9hKR4Zqtc0pITBJS0JKs2Hhktocc5uSwlNi6+uDYeeaQdhgxZAZfL/EtNjMCSgWmmLtkTJ4qQlbUUY8a0Rfv2jbUup0IuH/DpbhsS44BUB5BgA+onKBDigNMnReQVAHkyUCADvWr7kCKZ66Ic2NV6vrvz/KQdm00PIRlK6e5aLkuJnezsFmjQoBamTNmkdSkRYfSePb29M2PCLJN+Cgq86NdvGXr0uBx9+lyhdTkVUlVg634J+acAX8H5r19gAxo7FMSLCjy5wJUJCkbX8+LGVFm7YiMocGarLMsl45Hn10jaz03gMcJbsXgSkL9WjnNGnyAImDq1MxYv/gmrVh3SupyIMOrh0YAFN18HAI/Hg6KiIkNvwO71yujffwVSU5Px1FMddf0CPJsnYOGndhw4IiCnSIBNAOKSgIuuVmE/Nzcpzw1c21BBv6uNf6Cuf0ZrcTdr8fNSPBYpRGhmq56oJR8+Oc4ZPZs3H8aUKSuwdesg1K2r/wl95fG/VuLj9X1aErj5+nl6DpdwqKqKsWM3wOMRMGnSLbr+fRQFeOcjO46eFJCeBkgOAaID8DiBQ9sFqOeGKVUVaFbXuGOWle20I0m2KMxs1YPQ45xsdUbWDTc0wu23X47Ro1ebonfMqMz27rWEmTO3YefOHMye3Q12u35byaoKfPOtgp/2O+HOK4Ts9CLVoUBWBEh2wOsSkP8HcNYFpCepuCLDWN2w+p+0E0tclhJtY8feiN9+K8D8+d9rXUqN6PkDfmUs2SXr8/lQUFBgyC7Zd9/dgxde2IEFC7KRnp6odTnlUhRg8eIirP/Ki9yzAiQJEAQgMdUOx4VpyHWL8LkEpDRS0fZ6GX1b+pASr++XW6iu1vPb0ZmtqzUSQnXXGvdiqQe//JKDYcP+jbVr78Tll1+gdTlV5t98w+FwaF1KZdgl62fUTzgrVhzCM89sxbx5vXQdlgCwaZMTX399GnZbPiSbijiHBJtdRNFZL8T8IlxWV0VGioK7WnkxpLVXt2Fprkk7sRaqu1bmspQauPTSCzB27E0YMmQF3G5j9cgA5wPTqCz5LjfiE7Zt20mMHr0Wf/vb7WjcuJbW5VRo+/YTWLBgM3JyDuBMzgG4i76Dy/k7AECyizhzsghej4p4O9Cqhf7e9NrstGNmgcGpcllKDfXr1xIZGamYOtWYS02MeP314zveAH755SwGDlyBKVM6ITOzntblVOjnn3Px0Ud74fOJiIuLg91uR0K8DV7XEbicJ6GoArxewFmk4q6ePqQkaV1xMetO2oklf3ByWUpNCIKAv/71Nnz44X6sXm2OpSZGYcl3v5E+4fzxhxPZ2cswcmRrdOp0idblVGrNmoOw20XEx4vwnzxlswlISLBBVH9HfJyMC2oD40d5kXmFtq1LTtrREk9LqYnatRPwzDNdcN99X+D0aafW5VSJka6/wSx5NTg/k0/fb8yiIi/uums5OnZsgrvuaql1OWE5fDgPCQk2pKcXB6b/T2yziRBFLxIdbvTt7UCGBltjhtppRxCMsNOOmXH7veq66abG6Nq1GR54YI3ur2WBGJgGpPcnzedTMGzYatSvXwsPP3yD1uWELSkpDl6vgtRUEenpInw+wOsFPJ7iTbxbt47HzTfHboZc4KSdwPFIf3drcUiyq1V73H6vOsaNuwk//ZSHBQt+1LoUS7DsVULPgamqKiZM2IjcXBlTp3bSda3BbrqpAQoLi3frqVtXQtOmNtSrJyIlRcatt9bHwIEpiPZqHv94ZKhJO3Z7HCft6Bq336uKuDgbZs3qjr/85Wvs339G63JMz7JXDD3vJztnzg58/fUJvPBCd11vTBBK27YNcdllFyA314X8fDfcbi8ALy65JAn9+jWJ2uMGT9oByk7aYUAaTehlKRznLK1Jk3SMGdMWQ4euhMejv1nnwYzUAAhmyY0LAKCgoACyLOvu5JJFi/Zj2rStWLDgTmRk6GQKaRXJsoq9e//Ajh0n4fUquOqqumjZsi4cjsiGv7+71c+/V2vsz5Ck2AjcCKG4JcrNEIqpqopx45agVasLMGNGO63LKZeiKHA4HLq77oYQ8kVl2cAsLCyEz+fT1RO3Zs0RjBy5Bv/3f33QpInxdvGItlA77ZwPSO60Yy3cRSjY6dNF6N//A7z3Xld07HiR1uWEpCgK4uPjjdDK5E4/gfTWJbtr1x8YOXI1nnuuG8MyQDiTdjgeaUVclhIsPT0R06bdhpEjVyEnx6V1OaZk2auMnlqWhw7lo1+/5Zg48Ra0atVA63I0V3YTAU7aofJwWUqg9u0vxq23NsVDD63VVYMA0P8yvnDwiqOxnBwXsrOX4Z57rkGXLk21LkczwTNbAZQKSU7aoYpxWYrfI4+0w48/nsF77+3RupSQDNAdWy7LjmHq4RBpl8uH3r0/R9OmF+Lxx/U7UB8tnLRD0WXdcc4DB/7Affctxvr1d6FpU33sPW2gw6MBjmGWpvWnHEVRcd99a5GWloTx42/StJZYKW+nndKbCLAlSZFi3XHOyy6rg9Gjb8DQoSvg9ep/qYlR8MqkkUmTNuHoURemTet87pOvOXHSDmkvdHCavbt20KBMJCUl4Nlnt2hdSgmtGyo1ZdmrlJZP3Lx5u7Bq1RHMmdMdDodNszqihZN2SJ9Kj3OafRchQRDwzDNdsGDBj9iw4XetyzEFy16xtArMjz/+CfPm7cLcub2QmmqIvvywcNIOGcf57ffM3l1bp04Snn76Ngwfvgq5uW5NazH64dGAhSf9yLKM/Pz8mE762bDhKIYOXYXXXuuN5s3rxOxxo8G/iUDg68e/eYAochMBMprSuwj5/5llktCsWWvhdjuxcGE3zUJLUZSSo/MMgJN+AsX6RbNnTw6GDl2FGTO6GjYsQ41Hlp20w65WMiJzL0sZP/5m7Nx5Gv/8516tSzE0y7YwVVXF2bNnY9LCPHq0EJ07/wcPPdQWPXo0i/rjRVJ5LUluR0fmZ65lKfv2ncKoUZ9gw4b+aNIkLeaPzxamCUR794mzZ93IylqKO+9saZiwLDtpB5y0QxZkrnHO5s3r4r77rsewYSs1W2qipx3WqsPY1dfA+TGK6PF4ZAwevBJXX90Aw4ZdG9XHqqnikJRLHY91PiS5PpKszDzLUu6++1rExcVh5sytWpdiSJa+AkYzMBVFxYMProPd7sATT7TX3eywwPHI8yEpQBQlhiRRSMZfliKKAp59tiveeusHfP31Ua3LMRzLXw2j1SX79NNbcOBAPmbM6AJJ0sefubJJO8Uhya5WoopVtixF3+rWTcJTT3XGsGGrcPZs7JaaxKJXL9osfWWM1pP3979/j//851e8+GIPxMdruzFB4HZ05c1s5XgkUXWFCk5Z96eldOp0KW68sTHGjfsyZo/J00oMLhoD0P/97694/vntmDevF2rXToj4/Ycj1KSd861ITtohirzA4FQNsSzl8cdvxrffnsQHH+yL2WMavYVp2WUlAFBUVASPxxOxpSWbNx/HgAErMG9eL1x5ZUZE7jNcwSd/FI9H8uQPIu3of1nKnj0n8cADn2Ljxv645JLoLjVRFAXx8fFGCU0uKwkWySfuwIFcDB68EtOmdY5JWAZ2tZ7fjo6Tdoj0Q//LUq64IgPDh7fG8OGr4PMpld+gmszQHQswMCNyPydOFCEraynGjGmL9u0bR+Q+Qwme2Rq4qTkn7RDpVejg1Ms459Ch10EQbJg9+9uoP5ZBWpflsvSVVRTFGn/yyc/34M47l6FHj8vRp88VEarsvFCTdgJDkuORREZRdvs9Pcyu9S81efPNXfjmm2NRexyjhyVg8cAEavYker0yhg79Ak2b1sWoUa0jVlNlk3YkycaQJDIs/S1LufDCZEyZciuGDVuJvDyPJjUYgaWvuDUJS1VVMXbsBng8AiZN6lDjT0/BO+0IAnfaITK/0MtStBjn7Ny5Ka6/vhEefTQ6S03YwjS4mjyBM2Z8i127cjB7djfYbFX/MwZ2tYbaaaf45A+GJJE1lF6WotX2exMmdMCmTcfxr3/tj9ljGgmvxtWwYMEeLFr0E15+uScSE8Pfeb+8STvcaYeIivmDs/gaEOvu2sREO2bN6o7HHluPgwfzInrfbGEaXHWewOXLD+LZZ7di3rxeSE9PrPTnOWmHiKpHm2UpLVpciKFDr8Pw4asgy5FZauLfYczoLH2VruoTuG3bSTzwwDrMmXM7GjeuVe7PcdIOEUVO7Jel3HvvdfD5BDz//Lao3L9RWfqKXZXA/OWXsxg4cAWeeqoTrr66Xpnvc9IOEUVX2WUp0RrnlCQRM2Z0w6uv7sTWrccjet9Gxis4Kt+F4o8/nMjKWoqRI1ujY8dLSm4TPGlHEDhph4ii7fyyFCB645z16qVg0qROuPfelSgoqPlSE6MfHg1YPDDDaWEWFXlx113L0alTU/Tr16LCSTvFIcmuViKKleiOc3brdhkyMxti/Pj1Nb4vM7D8lb2i0PT5FNx77xeoX78WHnigFSftEJFOhQ7OSLQ6//znDli//igWLz4QmVINzNKnlQBAXl7x1GlBELBlyxZcd911EEURiqLgvff24tFHN6JJk1pISopDfLwNDsf5f8X/LSEuzoa4OFvQ96WAn5OCvi8hPv78bex20RQzyIhIL4ov3ZE6LWX37uMYN24JNm0agEaNUqpejaoiLi7OSN2yIf9Qlg/M/Pz8kmOxZs6ciWXLlmH06NEYMGAAVFXE4cNFcLsVuN0+OJ0ynE4fXC4fXC4ZLpcPTmfx14u/5kNRkXzuaz643XLJ9/23838t8D5kWT0XsFJJqAaGa3A4BwdycBgHBnVgwAfef1ycxJAmsoRQx4wBVQ3P+fO3YPv2Q1i+vC8kqWrBpygKHA4HA9Po8vLy4PV6z03YEZGbm4t58+bhiy++wHPPPYdbbrkl6jXIsgKXq3SQFv//suFbHNJyqZ8rKvKV/Lz/+4H/HXgbt7v4fz0eGXFxxQFa/K90K9gftsUBHRjOEhwOe6nwDQ52//0GtsSLb2cLeLMSUWwFBqdQ8i/c4JRlBffdtxh9+lyMJ55oVaVHZmCahM/ng8vlKllY6/936tQpuFwuNGrUSOsSo0JR1KCWcqjALhvOxa3owDCXg1rT52/ndpduiftDOrC16285h+rKPh/QZYM3sCUe/LXSrWyGNFFp57tr/YEZbnftsWN5GDToQyxZcgdatbow7Ec02OHRAAOzfP41lB6PB7IsB336okhRVTWgpSwHtYrLtpL9X3e75ZJWdHDr2f+14i7z0l/3t6btdrFMSBe3pkOHsf9nz3d/lx/GwQHvb6lXZ39hotgL1V1b8XVv+fL9ePPNTdiyZSCSksLbGpSBaUIMTvNRVRUej1ImTEO1noNb2IHhHNx6Dm51B3Z/u1wyRFEoCeTAYA0VvP7/HxjQocavg4M5+GftdknrPzcZVtXGOadMWYHatSW8+eatld+zWnzfDEyTYnBSTaiqCq+39Lh0ea3nUJPH/EEdavJY8IQz//93u+VzF6XSQVtxl3fooA4cvy4d+qXHp+Pji1vSfF+YSelxzvK6awsK3Bgw4AO88EJ79OnTpOJ7PHd/8fHx0Sg4WhiYVcXgJCPx+ZRyQ7ZsC7ts13bg2HTpVnXpFnXg2LR/hneocA4M29Ld3TbY7aG7xMubSFa6q5wzvKOv8mUpO3Ycw/jx/8XmzQPRsGFy+ffEwLQWBidRaLKslFpWVdkksODJZYFj02W7x8/f5nx3tw9erxIUyBV1d5cN69Bj0WW/VjrArRzS5Y9zvvnmZnz//REsW9a33Ml1/slFDocjVgVHAgOzpkIFp4GmSROZgn+Gd0Vd28HhXHryWPDEs7K384ezP/gDZ3jHx0tlQjawFRw4E7zsOunQYVzeRDJ9zfAuuyxFllWMHLkY/fpdisceuy70rRiY1sbgJLIWRTk/wzu49VzZuumiorJj06HHs32lZpG73cUzvEtvZlJeK7j0piZxcfaQ49flr50+31KvfFOC0sH5++/5uOeef2Hp0r645pq6ZX/63HaicXFxUXhmooaBGWkMTiKKlsAZ3pV1bQfP4A6eOFbeeutQY9OSJJQK47It4dI7hsXF2bBz53F4PB58993gMrO1FUUpOebQQEIGpi3WVZiJIAiw2WyQJAk+n4/BSUQRU9yNWbxlZq1asenO9M/wDl7fHGqGdmAQN2+eAEEAvF4vRBE4fPgwPvroI7Rr1w433nhjTGqPBd0E5qRJk3DhhRfi0Ucf1bqUUtq0aYMFCxagRYsW5f6MIAiw2+2w2WwMTiIyLEEQzrUaJaSlVe22J06cwDvvvIXFixcjISEB/fr1w+WXXx6dQjWii6v5qVOn8N5772H06NEAgFdffRWtW7eGw+HAsGHDwr6fnJwcZGVlISkpCY0bN8YHH3xQ49tNmDABU6dODet+/MGZmJhYskj3/Pl0RETm9eabb0JVVSxcuBBLlizBkCFDkJKSUrJXtxnoYgzzhRdewP79+zF//nwAwCeffAJRFLFixQo4nU68++67Yd3PoEGDoCgK3n77bezYsQM9e/bE119/XWHrsLLbuVwuNGjQAD/88APq169fpd9LVdWSFqeiKBBFLvImIvPy54l/dx9JkkrODjZYb1vIC7UufoNly5ahQ4cOJf+dnZ2Nvn37Ij09Pez7KCwsxOLFi/Hss88iOTkZ7du3R+/evfH+++/X6Hbx8fFo1aoVVq5cWeXfK7jFCaDkEGoiIrPwT4D096bFxcUhKSkJiYmJRjsHs0K6+C12796N5s2b1+g+9u/fD0mS0KxZs5KvZWZm4ocffqjx7a644grs3Lmz2rUFBqd/LRKDk4iMLFRIJiYmmi4kA+li0k9ubi5SUqp+ineggoICpAWNUqelpSE/P7/Gt0tJScGxY8dqVB9Q/uQgdtUSkRH4u1r9mxHExcWVdLda4Rqmi8CsXbt2pcFWmeTkZOTl5ZX6Wl5eXqVBHM7t8vPzUatWrRrVF4jBSURG4Q9IP/+YpCRZb7tAXbSZr776auzfv79G99GsWTP4fD4cOHCg5Gs7d+6sdMJPOLfbs2cPMjMza1RfKKHGOGVZZlctEWlKVVUoilLS5SpJEuLj45GUlIT4+HjYbDbLhSWgk8Ds0aMHvvzyy5L/9vl8cLlckGUZsizD5XLB5/OVfH/YsGFllpskJSUhOzsbU6dORWFhITZu3IjPPvsMQ4YMqdHt3G43tm3bdbwdyAAABbBJREFUhi5dukT+Fz+HwUlEWgsOSVEUER8fj+TkZCQkJFg2JAPpIjCHDh2KpUuXwul0AgCmT5+OhIQEzJ49GwsXLkRCQgKmT59e8vOHDx9Gu3btytzP66+/DqfTiYyMDAwaNAhvvPFGqZZidW63ZMkSdOzYEQ0aNIj0r10Gg5OIYsnf3aooSklIOhyOkhmudrvd8iEZSBfrMAFg8uTJyMjIqHSnH4/Hg8zMTOzatatKexNW93Y33HAD3n77bbRs2TLs20RK8TZVXni9Xq7jJKKI8YckAIiiWDKnwowzW6uJm68bFYOTiGrKH5L+o7kCNxTg9aQMBqbRMTiJqCqCl4EEtiR57aiQfnf6ofD41z0FboDAMU4iChQ4JqmqKmw2GxISEpCUlASHwxGT5SCTJk3Cyy+/HNXHqI42bdpUuplNRRiYBsTgJKJAeloGEnyYRnUPxYjGIRxVOUwjFF1sXEDV4w9Ou91e0lXLDRCIrCGwuxUAJEkq6XLV8v3/7rvvokePHkhISAAAjBkzBnFxcThx4kTJ4RaZmZmVrpFv0KABpkyZUnIIR7gqerzevXvjgQcewLFjx6p8mAbAFqYpsMVJZA1GWAYSeJhGdQ/FAKJzCEdNDtMAGJimEhyc/s2RGZxExmak00ACD9Oo7qEY1RXtwzTYJWtCwV21PI+TyHiCl4EYZaPzwMM0qnsoRnVF+zANBqaJMTiJjMUMp4EEHqZR3UMxqivah2nopx1PUeN/4/mnlbOrlkg/9LAMJJICD9Oo7qEY1RXtwzQYmBbC4CTSBz0tA4m0wMM0qnsoBhCdQzhqepgGA9OCGJxEsWeV00CCD9Oo7qEY0TiEo6aHaXBrPCrZcs/j8UBVVUONlxDpmf/66h+XlCSp1B6uZmWCwzS4lyxVLDA4AZTMziOiquFpIIbHwKTwMDiJqo6ngZgKA5OqhsFJVDGeBmJaDEyqHgYn0XmB+7cCgM1mg91uZ0iaCwOTaobBSVYVvNG5PySNtkaSwsbApMhQVRUejwderxcAg5PMSa+ngVBMMDApshicZDZWXQZCZTAwKToYnGR0XAZCQRiYFF0MTjISLgOhCjAwKTYURYHX62Vwku5wGQiFiYFJscXgJD3gMhCqBgYmaSMwOLlXLcUCl4FQDTEwSVv+4PSv42RwUiRxGQhFEAOT9IHBSZHCZSAUJQxM0hcGJ1UXl4FQlDEwSZ8YnBQOLgOhGGJgkr4xOCkYl4GQRhiYZAwMTmvjMhDSAQYmGQuD0zq4DIR0hoFJxsTgNCcuAyEdY2CSsSmKUmqvWgan8XAZCBkEA5PMwR+cPp+POwcZBJeBkMEwMMlcGJz6xmUgZGAMTDInBqd+cBkImQQDk8yNwakNLgMhE2JgkjUwOKOPy0DI5BiYZC0MzsjiMhCyEAYmWVNgcAI8yLoquAyELIqBSdbG4Awfl4GQxTEwiYDSGyD4Q5PByWUgRAEYmESBGJxcBkJUDgYmUShWC04uAyGqFAOTqCKyLJeMcZotOLkMhKhKGJhE4TBLcHIZCFG1MTCJqsKIwcllIEQRwcAkqg4jBCeXgRBFFAOTqCb0FpxcBkIUNQxMokjQMji5DIQoJhiYRJEUq+DkMhCimGNgEkVDNIKTy0CINMXAJIqmmgYnl4EQ6QYDkyja/BNxwg1OLgMh0iUGJlGs+IPT7XZDluUywcllIES6xsAkirXg4ATAZSBE+sfAJNKKPzh9Ph9Dkkj/GJhERERhCBmYHDAhIiIKAwOTiIgoDAxMIiKiMDAwiYiIwsDAJCIiCgMDk4iIKAwMTCIiojAwMImIiMLAwCQiIgoDA5OIiCgMDEwiIqIwMDCJiIjCwMAkIiIKAwOTiIgoDAxMIiKiMDAwiYiIwmCr5Ps8Ep6IiAhsYRIREYWFgUlERBQGBiYREVEYGJhERERhYGASERGFgYFJREQUhv8HCl4zbHW0g4wAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def unit_simplex(angle):\n", + " \n", + " fig = plt.figure(figsize=(8, 6))\n", + " ax = fig.add_subplot(111, projection='3d')\n", + "\n", + " vtx = [[0, 0, 1],\n", + " [0, 1, 0], \n", + " [1, 0, 0]]\n", + " \n", + " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", + " tri.set_facecolor([0.5, 0.5, 1])\n", + " ax.add_collection3d(tri)\n", + "\n", + " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", + " xticks=(1,), yticks=(1,), zticks=(1,))\n", + "\n", + " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", + " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", + " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", + "\n", + " ax.xaxis.majorTicks[0].set_pad(15)\n", + " ax.yaxis.majorTicks[0].set_pad(15)\n", + " ax.zaxis.majorTicks[0].set_pad(35)\n", + "\n", + " ax.view_init(30, angle)\n", + "\n", + " # Move axis to origin\n", + " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", + " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", + " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", + " \n", + " ax.grid(False)\n", + " \n", + " return ax\n", + "\n", + "\n", + "def convergence_plot(ψ, n=14, angle=50):\n", + "\n", + " ax = unit_simplex(angle)\n", + "\n", + " P = ((0.9, 0.1, 0.0),\n", + " (0.4, 0.4, 0.2),\n", + " (0.1, 0.1, 0.8))\n", + " \n", + " P = np.array(P)\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ P\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=50, alpha=0.7, depthshade=False)\n", + "\n", + " return ψ\n", + "\n", + "ψ = convergence_plot((0, 0, 1))\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There's a sense in which a discrete time Markov chain \"is\" a homogeneous\n", + "linear difference equation in distribution space.\n", + "\n", + "To clarify this, suppose we \n", + "take $G$ to be a linear map from $\\mathcal D$ to itself and\n", + "write down the difference equation \n", + "\n", + "$$\n", + " \\psi_{t+1} = G(\\psi_t)\n", + " \\quad \\text{with } \\psi_0 \\in \\mathcal D \\text{ given}.\n", + "$$ (gdiff)\n", + "\n", + "Because $G$ is a linear map from a finite dimensional space to itself, it can\n", + "be represented by a matrix.\n", + "\n", + "Moreover, a matrix $P$ is a Markov matrix if and only if $\\psi \\mapsto\n", + "\\psi P$ sends $\\mathcal D$ into itself (check it if you haven't already).\n", + "\n", + "So, under the stated conditions, our difference equation {eq}`gdiff` uniquely\n", + "identifies a Markov matrix, along with an initial condition $\\psi_0$.\n", + "\n", + "Together, these objects identify the joint distribution of a discrete time Markov chain, as {ref}`previously described `.\n", + "\n", + "\n", + "### Shifting to Continuous Time\n", + "\n", + "We have just argued that a discrete time Markov chain \"is\" a linear difference\n", + "equation evolving in $\\mathcal D$.\n", + "\n", + "This strongly suggests that a continuous time Markov chain \"is\" a linear ODE\n", + "evolving in $\\mathcal D$.\n", + "\n", + "In this scenario,\n", + "\n", + "1. distributions update according to an automous linear differential equation and\n", + "2. the vector field is such that trajectories remain in $\\mathcal D$.\n", + "\n", + "This intuition is correct and highly beneficial. \n", + "\n", + "The rest of the lecture maps out the main ideas.\n", + "\n", + "\n", + "\n", + "## ODEs in Distribution Space\n", + "\n", + "Consider linear differential equation given by \n", + "\n", + "$$\n", + " \\psi_t' = \\psi_t Q, \n", + " \\qquad \\psi_0 \\text{ a given element of } \\mathcal D,\n", + "$$ (ode_mc)\n", + "\n", + "where \n", + "\n", + "* $Q$ is an $n \\times n$ matrix with suitable properties, \n", + "* distributions are again understood as row vectors, and\n", + "* derivatives are taken element by element, so that\n", + "\n", + "$$\n", + " \\psi_t' =\n", + " \\begin{pmatrix}\n", + " \\frac{d}{dt} \\psi_t(1) &\n", + " \\cdots &\n", + " \\frac{d}{dt} \\psi_t(n)\n", + " \\end{pmatrix}\n", + "$$\n", + "\n", + "\n", + "Using the matrix exponential, the unique solution to the initial value problem\n", + "{eq}`ode_mc` can be expressed as\n", + "\n", + "$$\n", + " \\psi_t = \\psi_0 P_t \n", + " \\quad \\text{where } P_t := e^{tQ}\n", + "$$ (cmc_sol)\n", + "\n", + "To check this, we use {eq}`expoderiv` again to get\n", + "\n", + "$$\n", + " \\frac{d}{d t} P_t = Q e^{tQ} = e^{tQ} Q \n", + "$$\n", + "\n", + "Recall that the first equality can be written as \n", + "$\\frac{d}{d t} P_t = Q P_t$ and this is the Kolmogorov backward equation. \n", + "\n", + "The second equality can be written as \n", + "\n", + "$$\n", + " \\frac{d}{d t} P_t = P_t Q \n", + "$$\n", + "\n", + "and is called the **Kolmogorov forward equation**.\n", + "\n", + "With $\\psi_t$ set to $\\psi_0 P_t$ and applying the Kolmogorov forward\n", + "equation, we obtain\n", + "\n", + "$$\n", + " \\frac{d}{d t} \\psi_t \n", + " = \\psi_0 \\frac{d}{d t} P_t \n", + " = \\psi_0 P_t Q\n", + " = \\psi_t Q\n", + "$$\n", + "\n", + "This confirms that {eq}`cmc_sol` solves {eq}`ode_mc`.\n", + "\n", + "\n", + "Here's an example of a distribution flow created by {eq}`ode_mc` with \n", + "initial condition `` (0, 0, 1)`` and" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "Q = ((-3, 2, 1),\n", + " (3, -5, 2),\n", + " (4, 6, -10))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "Q = np.array(Q)\n", + "ψ_00 = np.array((0.01, 0.01, 0.99))\n", + "ψ_01 = np.array((0.01, 0.99, 0.01))\n", + "ψ_02 = np.array((0.99, 0.01, 0.01))\n", + "\n", + "ax = unit_simplex(angle=50) \n", + "\n", + "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ expm(h * Q)\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", + "\n", + "flow_plot(ψ_00)\n", + "flow_plot(ψ_01)\n", + "flow_plot(ψ_02)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(We use Euler discretization to trace out the flow.)\n", + "\n", + "\n", + "In this calculation, $Q$ was chosen with some care, so that the flow remains\n", + "in $\\mathcal D$.\n", + "\n", + "This raises a key question: what properties do we require on $Q$ such that\n", + "$\\psi_t$ is always in $\\mathcal D$?\n", + "\n", + "We seek necessary and sufficient conditions, so we can determine\n", + "exactly the set of continuous time Markov models on our state space.\n", + "\n", + "We will answer this question in stages.\n", + "\n", + "\n", + "\n", + "#### Preserving Distributions\n", + "\n", + "Recall that the linear update rule $\\psi \\mapsto \\psi P$ is invariant on\n", + "$\\mathcal D$\n", + "if and only if $P$ is a Markov matrix.\n", + "\n", + "So now we can rephrase our key question regarding invariance on $\\mathcal D$:\n", + "\n", + "What properties do we need to impose on $Q$ so that $P_t$ is a Markov matrix\n", + "for all $t$?\n", + "\n", + "A square matrix $Q$ is called a **transition rate matrix** if $Q$ has zero row\n", + "sums and $Q(i, j) \\geq 0$ whenever $i \\not= j$.\n", + "\n", + "(Some authors call a transition rate matrix a $Q$ matrix.)\n", + "\n", + "Having zero row sums can be expressed as $Q \\mathbb 1 = 0$.\n", + "\n", + "As a small exercise, you can check that the following is true\n", + "\n", + "$$\n", + " Q \\text{ has zero row sums }\n", + " \\iff\n", + " Q^k \\mathbb 1 = 0 \\text{ for all } k \\geq 1\n", + "$$ (zrsnec)\n", + "\n", + "**Theorem** If $Q$ is an $n \\times n$ matrix and $P_t := e^{tQ}$, then the\n", + "following statements are equivalent:\n", + "\n", + "1. $P_t$ is a Markov matrix for all $t$.\n", + "1. $Q$ is a transition rate matrix.\n", + "\n", + "*Proof:* Suppose first that $Q$ is a transition rate matrix and set $P_t =\n", + "e^{tQ}$ for all $t$.\n", + "\n", + "By the definition of the exponential function, for all $t \\geq 0$,\n", + "\n", + "$$\n", + " P_t \\mathbb 1 = \\mathbb 1 + tQ \\mathbb 1 + \\frac{1}{2!} t^2 Q^2 \\mathbb 1 + \\cdots\n", + "$$\n", + "\n", + "From {eq}`zrsnec`, we see that $P_t$ has unit row sums.\n", + "\n", + "As a second observation, note that, for any $i, j$ and $t \\geq 0$,\n", + "\n", + "$$\n", + " P_t(i, j) = \\mathbb 1\\{i = j\\} + t Q(i, j) + o(t)\n", + "$$ (otp)\n", + "\n", + "From {eq}`otp`, both off-diagonal and on-diagonal elements of $P_t$ are nonnegative.\n", + "\n", + "Hence $P_t$ is a Markov matrix.\n", + "\n", + "Regarding the converse implication, suppose that $P_t = e^{tQ}$ is a Markov\n", + "matrix for all $t$.\n", + "\n", + "Because $P_t$ has unit row sums and differentiation is linear, \n", + "we can employ the Kolmogorov backward equation to obtain\n", + "\n", + "$$\n", + " Q \\mathbb 1\n", + " = Q P_t \\mathbb 1\n", + " = \\left( \\frac{d}{d t} P_t \\right) \\mathbb 1\n", + " = \\frac{d}{d t} (P_t \\mathbb 1)\n", + " = \\frac{d}{d t} \\mathbb 1\n", + " = 0\n", + "$$\n", + "\n", + "Hence $Q$ has zero row sums.\n", + "\n", + "Moreover, in view of {eq}`otp`, the off diagonal elements of $Q$ must be positive.\n", + "\n", + "Hence $Q$ is a transition rate matrix.\n", + "\n", + "This completes the proof.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "### Representations\n", + "\n", + "Both the semigroup and its infintessimal generator are natural representations\n", + "of a given continuous time Marko chain.\n", + "\n", + "The semigroup can be constructed uniquely constructed from its generator $Q$\n", + "via $P_t = e^{tQ}$, and the generator can be recovered from the semigroup via\n", + "\n", + "$$\n", + " Q = \\frac{d}{d t} P_t \\big|_0\n", + "$$\n", + "\n", + "The last claim follows from $P_t = I$ and either the forward or backward\n", + "Kolmogorov equation.\n", + "\n", + "The semigroup is, in some sense, more informative than the generator, since it\n", + "allows us to update distributions to any point in time.\n", + "\n", + "But the generator is simpler and often more intuitive in particular\n", + "applications.\n", + "\n", + "### The Inventory Example\n", + "\n", + "Let's go back to the inventory example we discussed above.\n", + "\n", + "What is the infintessimal generator for this problem?\n", + "\n", + "The intuitive interpretation of a given generator $Q$ is that\n", + "\n", + "$$\n", + " Q(i, j) = \\text{ rate of flow from state $i$ to state $j$}\n", + "$$\n", + "\n", + "For example, if we observe the inventories of many firms independently\n", + "following the model above, then $Q(i, j) = r$ means that firms inventories\n", + "transition from state $i$ to state $j$ at a rate of $r$ per unit of time.\n", + "\n", + "[improve this, make it clearer]\n", + "\n", + "## Jump Chains: The General Case\n", + "\n", + "In this section we provide a natural way to construct continuous time\n", + "continuous time Markov chain on our finite state space $S$.\n", + "\n", + "Later we will show that *every* continuous time Markov chain on a finite\n", + "state space can be represented in this way.\n", + "\n", + "Intro model based on $\\lambda$ fixed and $\\Pi(x, y)$.\n", + "\n", + "Build $Q$ from this model, and then $P_t$ from $Q$ in the usual way.\n", + "\n", + "Build $P_t$ directly using probabilistic reasoning and show that the two\n", + "coincide.\n", + "\n", + "\n", + "\n", + "\n", + "## All CTMCs are Jump Chains \n", + "\n", + "Start with a Q matrix and construct the jump chain.\n", + "\n", + "When does $Q$ admit the decomposition $Q = \\lambda (\\Pi - I)$?\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## The Gillespie Algorithm\n", + "\n", + "Exponential clocks.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Exercises\n", + "\n", + "The Markov semigroup properties lead to the KF and KB equations.\n", + "\n", + "When treating Kolmogorov forward and backward equations, do a first order\n", + "Euler discretization and link to the discrete case.\n", + "\n", + "\n", + "\n", + "## Solutions\n", + "\n", + "To be added." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/code_book/.ipynb_checkpoints/kolmogorov_fwd-checkpoint.md b/code_book/.ipynb_checkpoints/kolmogorov_fwd-checkpoint.md new file mode 100644 index 0000000..4dfb466 --- /dev/null +++ b/code_book/.ipynb_checkpoints/kolmogorov_fwd-checkpoint.md @@ -0,0 +1,508 @@ +--- +jupytext: + formats: ipynb,md:myst + text_representation: + extension: .md + format_name: myst + format_version: '0.9' + jupytext_version: 1.5.0 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# The Kolmogorov Forward Equation + + + +## Overview + +In this lecture we approach continuous time Markov chains from a more +analytical perspective. + +The emphasis will be on describing distribution flows through vector-valued +differential equations. + +These distribution flows show how the time $t$ distribution associated with a +given Markov chain $(X_t)$ changes over time. + +Density flows will be identified by ordinary differential equations in vector +space that are linear and time homogeneous. + +We will see that the solutions of these flows are described by Markov +semigroups. + +This leads us back to the theory we have already constructed -- some care will +be taken to clarify all the connections. + +In order to avoid being distracted by technicalities, we continue to defer our +treatment of infinite state spaces, assuming throughout this lecture that $|S| += n$. + +As before, $\mathcal D$ is the set of all distributions on $S$. + +We will use the following imports + +```{code-cell} ipython3 +import numpy as np +import scipy as sp +import matplotlib.pyplot as plt +import quantecon as qe +from numba import njit +from scipy.linalg import expm + +from mpl_toolkits.mplot3d import Axes3D +from mpl_toolkits.mplot3d.art3d import Poly3DCollection +``` + +## From Difference Equations to ODEs + +{ref}`Previously ` we generated this figure, which shows how distributions evolve over time for the inventory model under a certain parameterization: + +```{glue:figure} flow_fig +:name: "flow_fig" + +Probability flows for the inventory model. +``` + +(Hot colors indicate early dates and cool colors denote later dates.) + +We also learned how this flow can be described, at least indirectly, +through the Kolmogorov backward equation, which is an ODE. + +In this section we examine distribution flows and their connection to +ODEs and continuous time Markov chains more systematically. + +Although our initial discussion appears to be orthogonal to what has come +before, the connections and relationships will soon become clear. + + +### Review of the Discrete Time Case + +Let $(X_t)$ be a discrete time Markov chain with Markov matrix $P$. + +{ref}`Recall that `, in the discrete time case, the distribution $\psi_t$ of $X_t$ updates according to + +$$ + \psi_{t+1} = \psi_t P, + \qquad \psi_0 \text{ a given element of } \mathcal D, +$$ + +where distributions are understood as row vectors. + +Here's a visualization for the case $|S|=3$, so that $\mathcal D$ is the unit +simplex in $\mathbb R^3$. + +The initial condition is `` (0, 0, 1)`` and the Markov matrix is + +```{code-cell} ipython3 +P = ((0.9, 0.1, 0.0), + (0.4, 0.4, 0.2), + (0.1, 0.1, 0.8)) +``` + +```{code-cell} ipython3 +:tags: [hide-input] + +def unit_simplex(angle): + + fig = plt.figure(figsize=(8, 6)) + ax = fig.add_subplot(111, projection='3d') + + vtx = [[0, 0, 1], + [0, 1, 0], + [1, 0, 0]] + + tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3) + tri.set_facecolor([0.5, 0.5, 1]) + ax.add_collection3d(tri) + + ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), + xticks=(1,), yticks=(1,), zticks=(1,)) + + ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12) + ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12) + ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12) + + ax.xaxis.majorTicks[0].set_pad(15) + ax.yaxis.majorTicks[0].set_pad(15) + ax.zaxis.majorTicks[0].set_pad(35) + + ax.view_init(30, angle) + + # Move axis to origin + ax.xaxis._axinfo['juggled'] = (0, 0, 0) + ax.yaxis._axinfo['juggled'] = (1, 1, 1) + ax.zaxis._axinfo['juggled'] = (2, 2, 0) + + ax.grid(False) + + return ax + + +def convergence_plot(ψ, n=14, angle=50): + + ax = unit_simplex(angle) + + P = ((0.9, 0.1, 0.0), + (0.4, 0.4, 0.2), + (0.1, 0.1, 0.8)) + + P = np.array(P) + + x_vals, y_vals, z_vals = [], [], [] + for t in range(n): + x_vals.append(ψ[0]) + y_vals.append(ψ[1]) + z_vals.append(ψ[2]) + ψ = ψ @ P + + ax.scatter(x_vals, y_vals, z_vals, c='darkred', s=80, alpha=0.7, depthshade=False) + + return ψ + +ψ = convergence_plot((0, 0, 1)) + +plt.show() +``` + +There's a sense in which a discrete time Markov chain "is" a homogeneous +linear difference equation in distribution space. + +To clarify this, suppose we +take $G$ to be a linear map from $\mathcal D$ to itself and +write down the difference equation + +$$ + \psi_{t+1} = G(\psi_t) + \quad \text{with } \psi_0 \in \mathcal D \text{ given}. +$$ (gdiff) + +Because $G$ is a linear map from a finite dimensional space to itself, it can +be represented by a matrix. + +Moreover, a matrix $P$ is a Markov matrix if and only if $\psi \mapsto +\psi P$ sends $\mathcal D$ into itself (check it if you haven't already). + +So, under the stated conditions, our difference equation {eq}`gdiff` uniquely +identifies a Markov matrix, along with an initial condition $\psi_0$. + +Together, these objects identify the joint distribution of a discrete time Markov chain, as {ref}`previously described `. + + +### Shifting to Continuous Time + +We have just argued that a discrete time Markov chain "is" a linear difference +equation evolving in $\mathcal D$. + +This strongly suggests that a continuous time Markov chain "is" a linear ODE +evolving in $\mathcal D$. + +In this scenario, + +1. distributions update according to an automous linear differential equation and +2. the vector field is such that trajectories remain in $\mathcal D$. + +This intuition is correct and highly beneficial. + +The rest of the lecture maps out the main ideas. + + + +## ODEs in Distribution Space + +Consider linear differential equation given by + +$$ + \psi_t' = \psi_t Q, + \qquad \psi_0 \text{ a given element of } \mathcal D, +$$ (ode_mc) + +where + +* $Q$ is an $n \times n$ matrix with suitable properties, +* distributions are again understood as row vectors, and +* derivatives are taken element by element, so that + +$$ + \psi_t' = + \begin{pmatrix} + \frac{d}{dt} \psi_t(1) & + \cdots & + \frac{d}{dt} \psi_t(n) + \end{pmatrix} +$$ + + +Using the matrix exponential, the unique solution to the initial value problem +{eq}`ode_mc` can be expressed as + +$$ + \psi_t = \psi_0 P_t + \quad \text{where } P_t := e^{tQ} +$$ (cmc_sol) + +To check this, we use {eq}`expoderiv` again to get + +$$ + \frac{d}{d t} P_t = Q e^{tQ} = e^{tQ} Q +$$ + +Recall that the first equality can be written as +$\frac{d}{d t} P_t = Q P_t$ and this is the Kolmogorov backward equation. + +The second equality can be written as + +$$ + \frac{d}{d t} P_t = P_t Q +$$ + +and is called the **Kolmogorov forward equation**. + +With $\psi_t$ set to $\psi_0 P_t$ and applying the Kolmogorov forward +equation, we obtain + +$$ + \frac{d}{d t} \psi_t + = \psi_0 \frac{d}{d t} P_t + = \psi_0 P_t Q + = \psi_t Q +$$ + +This confirms that {eq}`cmc_sol` solves {eq}`ode_mc`. + + +Here's an example of a distribution flow created by {eq}`ode_mc` with +initial condition `` (0, 0, 1)`` and + +```{code-cell} ipython3 +Q = ((2, -3, 1), + (3, -5, 2), + (1, -4, 3)) +``` + +```{code-cell} ipython3 +:tags: [hide-input] + +Q = np.array(Q) + +def P_t(ψ, t): + return ψ @ expm(t * Q) + +def flow_plot(ψ, h=0.01, n=200, angle=50): + + ax = unit_simplex(angle) + + Q = ((2, -3, 1), + (3, -5, 2), + (1, -4, 3)) + Q = np.array(Q) + + x_vals, y_vals, z_vals = [], [], [] + for t in range(n): + x_vals.append(ψ[0]) + y_vals.append(ψ[1]) + z_vals.append(ψ[2]) + ψ = P_t(ψ, h) + + ax.scatter(x_vals, y_vals, z_vals, c='darkred', s=80, alpha=0.7, depthshade=False) + + return ψ + +ψ = flow_plot(np.array((0, 0, 1))) + +plt.show() +``` + +(We use Euler discretization to trace out the flow.) + + +In this calculation, $Q$ was chosen with some care, so that the flow remains +in $\mathcal D$. + +This raises a key question: what properties do we require on $Q$ such that +$\psi_t$ is always in $\mathcal D$? + +We seek necessary and sufficient conditions, so we can determine +exactly the set of continuous time Markov models on our state space. + +We will answer this question in stages. + + + +#### Preserving Distributions + +Recall that the linear update rule $\psi \mapsto \psi P$ is invariant on +$\mathcal D$ +if and only if $P$ is a Markov matrix. + +So now we can rephrase our key question regarding invariance on $\mathcal D$: + +What properties do we need to impose on $Q$ so that $P_t$ is a Markov matrix +for all $t$? + +A square matrix $Q$ is called a **transition rate matrix** if $Q$ has zero row +sums and $Q(i, j) \geq 0$ whenever $i \not= j$. + +(Some authors call a transition rate matrix a $Q$ matrix.) + +Having zero row sums can be expressed as $Q \mathbb 1 = 0$. + +As a small exercise, you can check that the following is true + +$$ + Q \text{ has zero row sums } + \iff + Q^k \mathbb 1 = 0 \text{ for all } k \geq 1 +$$ (zrsnec) + +**Theorem** If $Q$ is an $n \times n$ matrix and $P_t := e^{tQ}$, then the +following statements are equivalent: + +1. $P_t$ is a Markov matrix for all $t$. +1. $Q$ is a transition rate matrix. + +*Proof:* Suppose first that $Q$ is a transition rate matrix and set $P_t = +e^{tQ}$ for all $t$. + +By the definition of the exponential function, for all $t \geq 0$, + +$$ + P_t \mathbb 1 = \mathbb 1 + tQ \mathbb 1 + \frac{1}{2!} t^2 Q^2 \mathbb 1 + \cdots +$$ + +From {eq}`zrsnec`, we see that $P_t$ has unit row sums. + +As a second observation, note that, for any $i, j$ and $t \geq 0$, + +$$ + P_t(i, j) = \mathbb 1\{i = j\} + t Q(i, j) + o(t) +$$ (otp) + +From {eq}`otp`, both off-diagonal and on-diagonal elements of $P_t$ are nonnegative. + +Hence $P_t$ is a Markov matrix. + +Regarding the converse implication, suppose that $P_t = e^{tQ}$ is a Markov +matrix for all $t$. + +Because $P_t$ has unit row sums and differentiation is linear, +we can employ the Kolmogorov backward equation to obtain + +$$ + Q \mathbb 1 + = Q P_t \mathbb 1 + = \left( \frac{d}{d t} P_t \right) \mathbb 1 + = \frac{d}{d t} (P_t \mathbb 1) + = \frac{d}{d t} \mathbb 1 + = 0 +$$ + +Hence $Q$ has zero row sums. + +Moreover, in view of {eq}`otp`, the off diagonal elements of $Q$ must be positive. + +Hence $Q$ is a transition rate matrix. + +This completes the proof. + + + + + + + + +### Representations + +Both the semigroup and its infintessimal generator are natural representations +of a given continuous time Marko chain. + +The semigroup can be constructed uniquely constructed from its generator $Q$ +via $P_t = e^{tQ}$, and the generator can be recovered from the semigroup via + +$$ + Q = \frac{d}{d t} P_t \big|_0 +$$ + +The last claim follows from $P_t = I$ and either the forward or backward +Kolmogorov equation. + +The semigroup is, in some sense, more informative than the generator, since it +allows us to update distributions to any point in time. + +But the generator is simpler and often more intuitive in particular +applications. + +### The Inventory Example + +Let's go back to the inventory example we discussed above. + +What is the infintessimal generator for this problem? + +The intuitive interpretation of a given generator $Q$ is that + +$$ + Q(i, j) = \text{ rate of flow from state $i$ to state $j$} +$$ + +For example, if we observe the inventories of many firms independently +following the model above, then $Q(i, j) = r$ means that firms inventories +transition from state $i$ to state $j$ at a rate of $r$ per unit of time. + +[improve this, make it clearer] + +## Jump Chains: The General Case + +In this section we provide a natural way to construct continuous time +continuous time Markov chain on our finite state space $S$. + +Later we will show that *every* continuous time Markov chain on a finite +state space can be represented in this way. + +Intro model based on $\lambda$ fixed and $\Pi(x, y)$. + +Build $Q$ from this model, and then $P_t$ from $Q$ in the usual way. + +Build $P_t$ directly using probabilistic reasoning and show that the two +coincide. + + + + +## All CTMCs are Jump Chains + +Start with a Q matrix and construct the jump chain. + +When does $Q$ admit the decomposition $Q = \lambda (\Pi - I)$? + + + + + +## The Gillespie Algorithm + +Exponential clocks. + + + + + + +## Exercises + +The Markov semigroup properties lead to the KF and KB equations. + +When treating Kolmogorov forward and backward equations, do a first order +Euler discretization and link to the discrete case. + + + +## Solutions + +To be added. + +```{code-cell} ipython3 + +``` diff --git a/code_book/.ipynb_checkpoints/markov_prop-checkpoint.ipynb b/code_book/.ipynb_checkpoints/markov_prop-checkpoint.ipynb new file mode 100644 index 0000000..0af7d8a --- /dev/null +++ b/code_book/.ipynb_checkpoints/markov_prop-checkpoint.ipynb @@ -0,0 +1,1077 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Markov Property \n", + "\n", + "## Overview\n", + "\n", + "\n", + "A continuous time stochastic process is said to have the Markov property if\n", + "that the past and future are independent given the current state.\n", + "\n", + "(A more formal definition is provide below.)\n", + "\n", + "As we will see, the Markov property imposes a great deal of structure on\n", + "continuous time processes.\n", + "\n", + "This structure leads to an elegant and powerful collection of results on\n", + "evolution and dynamics.\n", + "\n", + "At the same time, the Markov property is general enough to cover many applied\n", + "problems, as described in {doc}`the introduction `.\n", + "\n", + "\n", + "\n", + "### Setting\n", + "\n", + "In this lecture and much of what follows, the state space where dynamics\n", + "evolve will be a [countable set](https://en.wikipedia.org/wiki/Countable_set),\n", + "denoted henceforth by $S$, with typical elements $x, y$.\n", + "\n", + "(Note that \"countable\" is understood to include finite.)\n", + "\n", + "Regarding notation, in what follows, $\\sum_{x \\in S}$ is abbreviated to\n", + "$\\sum_x$, the supremum $\\sup_{x \\in S}$ is abbreviated to $\\sup_x$ and so on.\n", + "\n", + "A **distribution** on $S$ is a function $\\phi$ from $S$ to $\\mathbb R_+$ with\n", + "$\\sum_x \\phi(x) = 1$.\n", + "\n", + "Let $\\mathcal D$ denote the set of all distributions on $S$.\n", + "\n", + "In expressions involving matrix algebra, we **always treat distributions as row\n", + "vectors**.\n", + "\n", + "We will use the following imports" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "\n", + "from scipy.linalg import expm\n", + "from scipy.stats import binom\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Markov Processes\n", + "\n", + "We now introduce the definition of Markov processes, first reviewing the\n", + "discrete case and then shifting to continuous time.\n", + "\n", + "\n", + "\n", + "\n", + "### Discrete Time, Finite State \n", + "\n", + "The simplest Markov processes are those with a discrete time parameter and finite state space.\n", + "\n", + "Assume for now that $S$ has $n$ elements and let $P$ be a Markov matrix (i.e., nonnegative with unit row sums) of size $n \\times n$.\n", + "\n", + "We write $P(x, y)$ for a typical element of $P$.\n", + "\n", + "(Most of the time, this is more convenient than using symbols such as $P_{ij}$, and it aligns better with the infinite state case.)\n", + "\n", + "In applications, $P(x, y)$ represents the probability of transitioning from $x$ to\n", + "$y$ in one step.\n", + "\n", + "#### Markov Chains\n", + "\n", + "A Markov chain $(X_t)_{t \\in \\mathbb Z_+}$ on finite set $S$ with Markov matrix $P$ is a\n", + "sequence of random variables satisfying \n", + "\n", + "$$\n", + " \\mathbb P\\{X_{t+1} = y \\,|\\, X_0, X_1, \\ldots, X_t \\} = P (X_t, y)\n", + "$$ (markovpropd)\n", + "\n", + "with probability one for all $y \\in S$ and any $t \\in \\mathbb Z_+$.\n", + "\n", + "In addition to connecting probabilities to the Markov matrix,\n", + "{eq}`markovpropd` says that the process depends on its history only through\n", + "the current state.\n", + "\n", + "We [recall that](https://python.quantecon.org/finite_markov.html), if $X_t$\n", + "has distribution $\\psi$, then $X_{t+1}$ has distribution $\\psi P$.\n", + "\n", + "Since $\\psi$ is understood as a row vector, the meaning is\n", + "\n", + "$$\n", + " (\\psi P)(y) = \\sum_x \\psi(x) P(x, y) \n", + " \\qquad (y \\in S)\n", + "$$ (update_rule)\n", + "\n", + "(jdfin)=\n", + "#### The Joint Distribution\n", + "\n", + "In general, for given Markov matrix $P$, there can be many Markov chains\n", + "$(X_t)$ that satisfy {eq}`markovpropd`.\n", + "\n", + "This is due to the more general observation that, for a given distribution\n", + "$\\phi$, we can construct many random variables having distribution $\\phi$.\n", + "\n", + "(The exercises below ask for one example.)\n", + "\n", + "Hence $P$ is, in a sense, a more primitive object than $(X_t)$.\n", + "\n", + "There is another way to see the fundamental importance of $P$: by constructing the joint distribution.\n", + "\n", + "Consider the infinite sequence space $S^\\infty := S \\times S \\times \\cdots$.\n", + "\n", + "Together with an initial condition $\\psi \\in\n", + "\\mathcal D$, a Markov matrix $P$ defines a distribution $\\mathbf P_\\psi$\n", + "over $S^\\infty$ such that any\n", + "Markov chain $(X_t)$ satisfying {eq}`markovpropd` and $X_0 \\sim \\psi$ has\n", + "$\\mathbf P_\\psi$ as its joint distribution.\n", + "\n", + "The last statement is equivalent to \n", + "\n", + "$$\n", + " \\mathbb P\\{ X_{t_1} = y_{t_1}, \\ldots, X_{t_k} = y_{t_k} \\}\n", + " =\n", + " \\mathbf P_\\psi\\{ (x_t) \\in S^\\infty \\,:\\, \n", + " x_{t_i} = y_{t_i} \\text{ for } i = 1, \\ldots m\\}\n", + "$$ (jointdeq)\n", + "\n", + "for any $m$ positive integers $t_i$ and $m$ elements $y_{t_i}$ of the state space $S$.\n", + "\n", + "\n", + "(Joint distributions of discrete time processes\n", + "are uniquely defined by their values at finite collections of times in the sense of\n", + "{eq}`jointdeq` --- see, for example, Theorem 7.2 of {cite}`walsh2012knowing`.)\n", + "\n", + "\n", + "To construct the joint distribution over $S^\\infty$, one first constructs a\n", + "finite dimensional version over the Cartiesian product $S^{n+1}$\n", + "via\n", + "\n", + "$$\n", + " \\mathbf P_\\psi^n(x_0, x_1, \\ldots, x_n)\n", + " = \\psi(x_0)\n", + " P(x_0, x_1)\n", + " \\times \\cdots \\times\n", + " P(x_{n-1}, x_n)\n", + "$$ (mathjointd)\n", + "\n", + "Then one shows that for any Markov chain $(X_t)$ satisfying {eq}`markovpropd`\n", + "and $X_0 \\sim \\psi$, the restriction $(X_0, \\ldots, X_n)$ has joint\n", + "distribution $\\mathbf P_\\psi^n$.\n", + "\n", + "This is a solved exercise below.\n", + "\n", + "The last remaining step is to show that the family $(\\mathbf P_\\psi^n)$ defined at each $n \\in \\mathbb N$ extends uniquely to a distribution $\\mathbf P_\\psi$ over the infinite\n", + "sequences in $S^\\infty$.\n", + "\n", + "That this is true follows from a well known [theorem of Kolmogorov](https://en.wikipedia.org/wiki/Kolmogorov_extension_theorem).\n", + "\n", + "Hence $P$ defines the joint distribution $\\mathbf P_\\psi$ when paired with any initial condition $\\psi$.\n", + "\n", + "\n", + "\n", + "### Extending to Countable State Spaces\n", + "\n", + "When $S$ is infinite, we cannot view $P$ as a matrix. \n", + "\n", + "Instead, we introduce the notion of a **Markov kernel** on $S$, which is a function\n", + "$P$ from $S \\times S$ to $\\mathbb R_+$ satisfying\n", + "\n", + "$$\n", + " \\sum_y P(x, y) = 1 \n", + " \\text{ for all } x \\in S\n", + "$$\n", + "\n", + "This is a natural extension of matrices with nonnegative elements and unit row\n", + "sums.\n", + "\n", + "The definition of a Markov chain $(X_t)_{t \\in \\mathbb Z_+}$ on $S$ with Markov kernel $P$ is exactly as in {eq}`markovpropd`.\n", + "\n", + "Given Markov kernel $P$ and $\\phi \\in \\mathcal D$, we define $\\phi P$ by\n", + "{eq}`update_rule`.\n", + " \n", + "Then, as before, $\\phi P$ can be understood as the distribution of \n", + "$X_{t+1}$ when $X_t$ has distribution $\\phi$.\n", + "\n", + "The function $\\phi P$ is in $\\mathcal D$, since, by {eq}`update_rule`, it is\n", + "nonnegative and\n", + "\n", + "$$\n", + " \\sum_y (\\phi P)(y) \n", + " = \\sum_y \\sum_x P(x, y) \\phi(x)\n", + " = \\sum_x \\sum_y P(x, y) \\phi(x)\n", + " = \\sum_x \\phi(x)\n", + " = 1\n", + "$$ \n", + "\n", + "Swapping the order of infinite sums is justified here by the fact that all\n", + "elements are nonnegative (a version of Tonelli's theorem).\n", + "\n", + "We can take products of Markov kernels that are analogous to matrix products.\n", + "\n", + "In particular, if $P$ and $Q$ are Markov kernels on $S$, then, for $(x, y)$ in $S\n", + "\\times S$,\n", + "\n", + "$$\n", + " (P Q)(x, y) := \\sum_z P(x, z) Q(z, y)\n", + "$$ (kernprod)\n", + "\n", + "It is not difficult to check that the product $P Q$ is again a Markov kernel on $S$.\n", + "\n", + "The operation {eq}`kernprod` is analogous to matrix multiplication, so that\n", + "elements of $P^k$, the $k$-th product of $P$ with itself, retain the finite\n", + "state interpretation of $k$ step transition probabilities.\n", + "\n", + "For example, we have\n", + "\n", + "$$\n", + " P^k(x, y) \n", + " = (P^{k-j} P^j)(x, y) = \\sum_z P^{k-j}(x, z) P^j(z, y)\n", + "$$ (kernprodk)\n", + "\n", + "which is a version of the discrete time Chapman-Kolmogorov equation.\n", + "\n", + "Equation {eq}`kernprodk` can be obtained from the law of total probability: if\n", + "$(X_t)$ is a Markov chain with Markov kernel $P$ and initial condition $X_0 =\n", + "x$, then \n", + "\n", + "$$\n", + " \\mathbb P\\{X_k = y\\}\n", + " = \\sum_z \\mathbb P\\{X_k = y \\,|\\, X_j=z\\} \\mathbb P\\{X_j=z\\}\n", + "$$\n", + "\n", + "\n", + "All of the {ref}`preceding discussion ` on the connection between $P$\n", + "and the joint distribution of $(X_t)$ when $S$ is finite carries over \n", + "to the current setting.\n", + "\n", + "\n", + "\n", + "\n", + "### The Continuous Time Case\n", + "\n", + "A **continuous time stochastic process** on $S$ is a collection $(X_t)$ of $S$-valued\n", + "random variables $X_t$ defined on a common probability space and indexed by $t\n", + "\\in \\mathbb R_+$.\n", + "\n", + "Let $I$ be the Markov kernel on $S$ defined by $I(x,y) = \\mathbb 1\\{x = y\\}$.\n", + "\n", + "A **transition semigroup** is a family $(P_t)$ of Markov kernels\n", + "on $S$ satisfying $P_0 = I$ and\n", + "\n", + "$$\n", + " P_{s + t} = P_s P_t\n", + " \\qquad (s, t \\geq 0)\n", + "$$ (chapkol_ct)\n", + "\n", + "The interpretation of $P_t(x, y)$ is the probability of moving from state $x$\n", + "to state $y$ in $t$ units of time.\n", + "\n", + "Equation {eq}`chapkol_ct`, which is known as the semigroup property of\n", + "$(P_t)$, is another version of the Chapman-Kolmogorov equation.\n", + "\n", + "This becomes clearer if we write it more explicitly as\n", + "\n", + "$$\n", + " P_{s+t}(x, y) \n", + " = \\sum_z P_s(x, z) P_t(z, y)\n", + "$$ (chapkol_ct2)\n", + "\n", + "A stochastic process $(X_t)$ is called a (time homogeneous) **Markov process** on $S$\n", + "with transition semigroup $(P_t)$ if\n", + "\n", + "$$\n", + " \\mathbb P\\{X_{s + t} = y \\,|\\, \\mathcal F_s \\}\n", + " = P_t (X_s, y)\n", + "$$ (markovprop)\n", + "\n", + "with probability one for all $y \\in S$ and $s, t \\geq 0$.\n", + "\n", + "Here $\\mathcal F_s$ is the history $(X_r)_{r \\leq s}$ of the process up until\n", + "time $s$.\n", + "\n", + "If you are an economist you might call $\\mathcal F_s$ the \"information set\" at time\n", + "$s$.\n", + "\n", + "If you are familiar with measure theory, you can understand $\\mathcal F_s$ as\n", + "the $\\sigma$-algebra generated by $(X_r)_{r \\leq s}$.\n", + "\n", + "\n", + "Analogous to the discrete time case, the joint\n", + "distribution of $(X_t)$ is determined by its transition semigroup plus an\n", + "initial condition.\n", + "\n", + "To prove this, one first builds finite dimensional distributions using\n", + "expressions similar to {eq}`mathjointd`.\n", + "\n", + "Next the Kolmogorov extension theorem is applied, similar to the discrete time case\n", + "(see, e.g., Corollary 6.4 of {cite}`le2016brownian`).\n", + "\n", + "\n", + "\n", + "\n", + "### Example: Poisson Processes\n", + "\n", + "The Poisson process discussed in our {doc}`previous lecture ` is a\n", + "Markov process on state space $\\mathbb Z_+$.\n", + "\n", + "To obtain the transition semigroup, we observe that, for $k \\geq j$,\n", + "\n", + "$$\n", + " \\mathbb P\\{N_{s + t} = k \\,|\\, N_s = j\\}\n", + " = \\mathbb P\\{N_{s + t} - N_s = k - j \\,|\\, N_s = j\\}\n", + " = \\mathbb P\\{N_{s + t} - N_s = k - j\\}\n", + "$$\n", + "\n", + "where the last step is due to independence of increments.\n", + "\n", + "From stationarity of increments we have\n", + "\n", + "$$\n", + " \\mathbb P\\{N_{s + t} - N_s = k - j\\}\n", + " = \\mathbb P\\{N_t = k - j\\}\n", + " = e^{-\\lambda t} \\frac{ (\\lambda t)^{k-j} }{(k-j)!}\n", + "$$\n", + "\n", + "In summary, the transition semigroup is\n", + "\n", + "$$\n", + " P_t(j, k) \n", + " = e^{-\\lambda t} \\frac{ (\\lambda t)^{k-j} }{(k-j)!} \n", + "$$ (poissemi)\n", + "\n", + "whenever $j \\leq k$ and $P_t(j, k) = 0$ otherwise.\n", + "\n", + "This chain of equalities was obtained with $N_s = j$ for arbitrary $j$, so we\n", + "can replace $j$ with $N_s$ in {eq}`poissemi` to verify the Markov property {eq}`markovprop` for the Poisson process.\n", + "\n", + "Under {eq}`poissemi`, each $P_t$ is a Markov kernel and $(P_t)$ is a\n", + "transition semigroup.\n", + "\n", + "The proof of the semigroup property is a solved exercise below.\n", + "\n", + "(In {eq}`poissemi` we use the convention that $0^0 = 1$, which leads to $P_0 = I$.)\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "### Example: Failure of the Markov Property\n", + "\n", + "Let's look at how the Markov property can fail, via an intuitive rather than\n", + "formal discussion.\n", + "\n", + "Let $(X_t)$ be a continuous time stochastic process with state space $S = \\{0, 1\\}$.\n", + "\n", + "The process starts at $0$ and updates at follows:\n", + "\n", + "1. Draw $W$ independently from a fixed Pareto distribution.\n", + "1. Hold $(X_t)$ in its current state for $W$ units of time and then switch\n", + " to the other state.\n", + "1. Go to step 1.\n", + "\n", + "What is the probability that $X_{s+h} = i$ given both the history $(X_r)_{r \\leq s}$ and current information $X_s = i$?\n", + "\n", + "If $h$ is small, then this is close to the\n", + "probability that there are zero switches over the time interval $(s, s+h]$.\n", + "\n", + "To calculate this probability, it would be helpful to know how long the\n", + "state has been at current state $i$.\n", + "\n", + "This is because the Pareto distribution {ref}`is not memoryless `.\n", + "\n", + "(With a Pareto distribution, if we know that $X_t$ has been at $i$ for a long\n", + "time, then a switch in the near future becomes more likely.)\n", + "\n", + "As a result, the history prior to $X_s$ is useful for predicting $X_{s+h}$,\n", + "even when we know $X_s$.\n", + "\n", + "Thus, the Markov property fails.\n", + "\n", + "\n", + "\n", + "### Restrictions Imposed by the Markov Property\n", + "\n", + "From the discussion above, we see that, for continuous time Markov chains,\n", + "the length of time between jumps must be memoryless.\n", + "\n", + "Recall that the {ref}`only ` memoryless distribution supported on $\\mathbb R_+$ is the exponential distribution.\n", + "\n", + "[XX why isn't this link working??]\n", + "\n", + "Hence, a continuous time Markov chain waits at states for an\n", + "exponential amount of time and then jumps.\n", + "\n", + "The way that the new state is chosen must also satisfy the Markov property,\n", + "which adds another restriction. \n", + "\n", + "In summary, we already understand the following about continuous time Markov chains:\n", + "\n", + "1. Holding times are independent exponential draws.\n", + "1. New states are chosen in a ``Markovian'' way, independent of the past given the current state.\n", + "\n", + "We just need to clarify the details in these steps to have a complete description.\n", + "\n", + "\n", + "We start this process with an example.\n", + "\n", + "\n", + "(inventory_dynam)=\n", + "## A Model of Inventory Dynamics\n", + "\n", + "\n", + "Let $X_t$ be the inventory of a firm at time $t$, taking values in the\n", + "integers $0, 1, \\ldots, b$.\n", + "\n", + "If $X_t > 0$, then a customer arrives after $W$\n", + "units of time, where $W \\sim E(\\lambda)$ for some fixed $\\lambda > 0$.\n", + "\n", + "Upon arrival, each customer purchases $\\min\\{U, X_t\\}$ units, where $U$ is an\n", + "IID draw from the geometric distribution started at 1 rather than 0:\n", + "\n", + "$$\n", + " \\mathbb P\\{U = k\\} = (1-\\alpha)^{k-1} \\alpha\n", + " \\qquad (k = 1, 2, \\ldots, \\; \\alpha \\in (0, 1))\n", + "$$\n", + "\n", + "If $X_t = 0$, then no customers arrive and the firm places an order for $b$ units.\n", + "\n", + "The order arrives after a delay of $D$ units of time, where $D \\sim E(\\lambda)$.\n", + "\n", + "(We use the same $\\lambda$ here just for convenience, to simplify the exposition.)\n", + "\n", + "### Representation\n", + "\n", + "The inventory process jumps to a new value either when a new customer arrives\n", + "or when new stock arrives.\n", + "\n", + "Between these arrival times it is constant.\n", + "\n", + "Hence, to track $X_t$, it is enough to track the jump times and the new values\n", + "taken at the jumps.\n", + "\n", + "In what follows, we denote the jump times by $\\{J_k\\}$ and the values at jumps\n", + "by $\\{Y_k\\}$.\n", + "\n", + "Then we construct the state process via\n", + "\n", + "$$\n", + " X_t = \\sum_{k \\geq 0} Y_k \\mathbb 1\\{J_k \\leq t < J_{k+1}\\}\n", + " \\qquad (t \\geq 0)\n", + "$$ (xfromy)\n", + "\n", + "\n", + "\n", + "### Simulation\n", + "\n", + "Let's simulate this process, starting at $X_0 = 0$.\n", + "\n", + "As above,\n", + "\n", + "* $J_k$ is the time of the $k$-th jump (up or down) in inventory.\n", + "* $Y_k$ is the size of the inventory after the $k$-th jump.\n", + "* $(X_t)$ is defined from these objects via {eq}`xfromy`.\n", + "\n", + "Here's a function that generates and returns one path $t \\mapsto X_t$.\n", + "\n", + "(We are not aiming for computational efficiency at this stage.)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def sim_path(T=10, seed=123, λ=0.5, α=0.7, b=10):\n", + " \"\"\"\n", + " Generate a path for inventory starting at b, up to time T.\n", + "\n", + " Return the path as a function X(t) constructed from (J_k) and (Y_k).\n", + " \"\"\"\n", + "\n", + " J, Y = 0, b\n", + " J_vals, Y_vals = [J], [Y]\n", + " np.random.seed(seed)\n", + "\n", + " while True:\n", + " W = np.random.exponential(scale=1/λ) # W ~ E(λ)\n", + " J += W\n", + " J_vals.append(J)\n", + " if J >= T:\n", + " break\n", + " else:\n", + " # Update Y\n", + " if Y == 0:\n", + " Y = b\n", + " else:\n", + " U = np.random.geometric(α)\n", + " Y = Y - min(Y, U)\n", + " Y_vals.append(Y)\n", + " \n", + " Y_vals = np.array(Y_vals)\n", + " J_vals = np.array(J_vals)\n", + "\n", + " def X(t):\n", + " if t == 0.0:\n", + " return Y_vals[0]\n", + " else:\n", + " k = np.searchsorted(J_vals, t)\n", + " return Y_vals[k-1]\n", + "\n", + " return X\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the process $(X_t)$ using the ``step`` method of ``ax``." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "T = 20\n", + "X = sim_path(T=T)\n", + "\n", + "grid = np.linspace(0, T, 100)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.step(grid, [X(t) for t in grid], label=\"$X_t$\")\n", + "\n", + "ax.set(xlabel=\"time\", ylabel=\"inventory\")\n", + "\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As expected, inventory falls and then jumps back up to $b$.\n", + "\n", + "\n", + "\n", + "### The Embedded Jump Chain\n", + "\n", + "In models such as the one described above, the embedded discrete time \n", + "process $(Y_n)$ is called the \"embedded jump chain\".\n", + "\n", + "It is easy to see that $(Y_n)$ is discrete time finite state Markov chain.\n", + "\n", + "Its Markov matrix $K$ is\n", + "given by $K(x, y) = \\mathbb 1\\{y=b\\}$ when $x=0$ and, when $0 < x \\leq b$, \n", + "\n", + "$$\n", + " K(x, y)\n", + " =\n", + " \\begin{cases}\n", + " \\mathbb 0 & \\text{ if } y \\geq x\n", + " \\\\\n", + " \\mathbb P\\{x - U = y\\} = (1-\\alpha)^{x-y-1} \\alpha \n", + " & \\text{ if } 0 < y < x\n", + " \\\\\n", + " \\mathbb P\\{U \\geq x\\} = (1-\\alpha)^{x-1}\n", + " & \\text{ if } y = 0\n", + " \\end{cases}\n", + "$$ (ijumpkern)\n", + "\n", + "\n", + "\n", + "\n", + "### Markov Property\n", + "\n", + "The inventory model just described has the Markov property precisely because\n", + "\n", + "1. the jump chain $(Y_n)$ is Markov in discrete time and\n", + "1. the holding times are independent exponential draws.\n", + "\n", + "Rather than providing more details on these points here, let us first describe\n", + "a more general setting where the arguments will be clearer and more useful.\n", + "\n", + "\n", + "\n", + "## Jump Processes with Constant Rates\n", + "\n", + "The examples we have focused on so far are special cases of Markov processes\n", + "with constant jump intensities.\n", + "\n", + "This processes turn out to be very representative (although the constant jump intensity will later be relaxed).\n", + "\n", + "Let's now summarize the model and its properties.\n", + "\n", + "\n", + "### Construction\n", + "\n", + "The data for a Markov process on $S$ with constant jump rates are \n", + "\n", + "* a parameter $\\lambda > 0$ called the **jump rate**, which governs the jump\n", + " intensities and\n", + "* a Markov kernel $K$ on $S$, called the **jump kernel**.\n", + "\n", + "To run the process we also need an initial condition $\\psi \\in \\mathcal D$.\n", + "\n", + "The process $(X_t)$ is constructed by holding at each state for an\n", + "exponential amount of time, with rate $\\lambda$, and then updating to a\n", + "new state via $K$.\n", + "\n", + "In more detail, the construction is\n", + "\n", + "1. draw $Y_0$ from $\\psi$ \n", + "1. set $n = 1$ and $J_0 = 0$\n", + "1. draw $W_n$ from Exp$(\\lambda)$ and set $J_n = J_{n-1} + W_n$\n", + "1. set $X_t = Y_{n-1}$ for all $t$ such that $J_{n-1} \\leq t < J_n$.\n", + "1. draw $Y_n$ from $K(Y_{n-1}, \\cdot)$ \n", + "1. set $n = n+1$ and go to step 3.\n", + "\n", + "An alternative, more parsimonious way to express the same process is to take \n", + "\n", + "* $(N_t)$ to be a Poisson process with rate $\\lambda$ and\n", + "* $(Y_n)$ to be a discrete time Markov chain with kernel $K$\n", + "\n", + "and then set\n", + "\n", + "$$\n", + " X_t := Y_{N_t} \\text{ for all } t \\geq 0\n", + "$$\n", + "\n", + "As before, the discrete time process $(Y_n)$ is called the **embedded jump chain**.\n", + "\n", + "(Not to be confused with $(X_t)$, which is often called a \"jump process\" due\n", + "to the fact that it changes states with jumps.)\n", + "\n", + "The draws $(W_n)$ are called the **wait times** or **holding times**.\n", + "\n", + "\n", + "### Examples\n", + "\n", + "The Poisson process with rate $\\lambda$ is a jump process on $S = \\mathbb Z_+$.\n", + "\n", + "The holding times are obviously exponential with constant rate $\\lambda$.\n", + "\n", + "The jump kernel is just $K(i, j) = \\mathbb 1\\{j = i+1\\}$, so that the state\n", + "jumps up by one at every $J_n$.\n", + "\n", + "The inventory model is also a jump process with constant rate $\\lambda$, this\n", + "time on $S = \\{0, 1, \\ldots, b\\}$.\n", + "\n", + "The jump kernel (or matrix in this case) was given in {eq}`ijumpkern`.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "### Markov Property\n", + "\n", + "Let's show that the jump process $(X_t)$ constructed above satisfies the\n", + "Markov property, and obtain the transition semigroup at the same time.\n", + "\n", + "We will use two facts:\n", + "\n", + "* the jump chain $(Y_n)$ has the Markov property in discrete\n", + " time and\n", + "* the Poisson process has stationary independent increments.\n", + "\n", + "From these facts it is intuitive that the distribution of $X_{t+s}$ given\n", + "the whole history $\\mathcal F_s = \\{ (N_r)_{r \\leq s}, (Y_n)_{n \\leq N_s} \\}$\n", + "depends only on $X_s$.\n", + "\n", + "Indeed, if we know $X_s$, then we can simply {ref}`restart ` the\n", + "Poisson process from $N_s$ and then update the jump chain using $K$ each time a\n", + "jump occurs, starting from $X_s$.\n", + "\n", + "Let's write this more mathematically.\n", + "\n", + "Fixing $y \\in S$ and $s, t \\geq 0$, we have\n", + "\n", + "\n", + "$$\n", + " \\mathbb P\\{X_{s + t} = y \\,|\\, \\mathcal F_s \\}\n", + " = \\mathbb P\\{Y_{N_{s + t}} = y \\,|\\, \\mathcal F_s \\}\n", + " = \\mathbb P\\{Y_{N_s + N_{s + t} - N_s} = y \\,|\\, \\mathcal F_s \\}\n", + "$$\n", + "\n", + "{ref}`Recalling ` that $N_{s + t} - N_s$ is Poisson distributed with rate $t \\lambda$, independent of the history $\\mathcal F_s$, we can write the display above as \n", + "\n", + "$$\n", + " \\mathbb P\\{X_{s + t} = y \\,|\\, \\mathcal F_s \\}\n", + " =\n", + " \\sum_{k \\geq 0}\n", + " \\mathbb P\\{Y_{N_s + k} = y \\,|\\, \\mathcal F_s \\}\n", + " \\frac{(t \\lambda )^k}{k!} e^{-t \\lambda}\n", + "$$\n", + "\n", + "Because the jump chain is Markov with kernel $K$, we can simplify further to\n", + "\n", + "\n", + "$$\n", + " \\mathbb P\\{X_{s + t} = y \\,|\\, \\mathcal F_s \\}\n", + " = \\sum_{k \\geq 0}\n", + " K^k(Y_{N_s}, y) \\frac{(t \\lambda )^k}{k!} e^{-t \\lambda}\n", + " = K^k(X_s, y) \\frac{(t \\lambda )^k}{k!} e^{-t \\lambda}\n", + "$$\n", + "\n", + "Since the expression above depends only on $X_s$,\n", + "we have proved that $(X_t)$ has the Markov property.\n", + "\n", + "\n", + "(consjumptransemi)=\n", + "### Transition Semigroup\n", + "\n", + "The transition semigroup can be obtained from our final result, conditioning\n", + "on $X_s = x$ to get\n", + "\n", + "$$\n", + " P^t(x, y) = \\mathbb P\\{X_{s + t} = y \\,|\\, X_s = x \\}\n", + " = e^{-t \\lambda} \\sum_{k \\geq 0}\n", + " K^k(x, y) \\frac{(t \\lambda )^k}{k!} \n", + "$$\n", + "\n", + "If $S$ is finite, we can write this in matrix form and use the definition of\n", + "the [matrix exponential](https://en.wikipedia.org/wiki/Matrix_exponential) to\n", + "get\n", + "\n", + "$$\n", + " P^t \n", + " = e^{-t \\lambda}\n", + " \\sum_{k \\geq 0}\n", + " \\frac{(t \\lambda K)^k}{k!} \n", + " = e^{-t \\lambda} e^{t \\lambda K}\n", + " = e^{t \\lambda (K - I)}\n", + "$$\n", + "\n", + "This is a simple and elegant representation of the transition semigroup that\n", + "makes it easy to understand and analyze distribution dynamics.\n", + "\n", + "For example, if $X_0$ has distribution $\\psi$, then $X_t$ has distribution\n", + "\n", + "$$\n", + " \\psi P_t = \\psi e^{t \\lambda (K - I)}\n", + "$$ (distflowconst)\n", + "\n", + "We just need to plug in $\\lambda$ and $K$ to obtain the entire flow $t \\mapsto \\psi P_t$.\n", + "\n", + "We will soon extend this representation to the case where $S$ is infinite.\n", + "\n", + "\n", + "(invdistflows)=\n", + "## Distribution Flows for the Inventory Model\n", + "\n", + "Let's apply these ideas to the inventory model described above.\n", + "\n", + "We fix \n", + "\n", + "* the parameters $\\alpha$, $b$ and $\\lambda$ in the inventory model and\n", + "* an initial condition $X_0 \\sim \\psi_0$, where $\\psi_0$ is an arbitrary\n", + "distribution on $S$.\n", + "\n", + "The state $S$ is set to $\\{0, \\ldots, b\\}$ and the kernel $K$ is defined by\n", + "{eq}`ijumpkern`.\n", + "\n", + "Now we run time forward.\n", + "\n", + "We are interesting in computing the flow of distributions $t \\mapsto \\psi_t$,\n", + "where $\\psi_t$ is the distribution of $X_t$.\n", + "\n", + "According to the theory developed above, we have two options:\n", + "\n", + "Option 1 is to use simulation.\n", + "\n", + "The first step is to simulate many independent observations the process $(X_t^m)_{m=1}^M$.\n", + "\n", + "(Here $m$ indicates simulation number $m$, which you might think of as the outcome\n", + "for firm $m$.)\n", + "\n", + "Next, for any given $t$, we define $\\hat \\psi_t \\in \\mathcal D$ as the\n", + "histogram of observations at time $t$, or, equivalently the cross-sectional\n", + "distribution at $t$:\n", + "\n", + "$$\n", + " \\hat \\psi_t(x) := \\frac{1}{M} \\sum_{m=1}^M \\mathbb 1\\{X_t = x\\}\n", + " \\qquad (x \\in S)\n", + "$$\n", + "\n", + "Then $\\hat \\psi_t(x)$ will be close to $\\mathbb P\\{X_t = x\\}$ by the law of\n", + "large numbers.\n", + "\n", + "In other words, in the limit we recover $\\psi_t$.\n", + "\n", + "\n", + "Option 2 is to insert the parameters into the right hand side of {eq}`distflowconst`\n", + "and compute $\\psi_t$ as $\\psi_0 P_t$.\n", + "\n", + "Let's try option 2, with $\\alpha = 0.6$, $\\lambda = 0.5$ and $b=10$.\n", + "\n", + "For the initial distribution we pick a binomial distribution.\n", + "\n", + "Since we cannot compute the entire uncountable flow $t \\mapsto \\psi_t$, we\n", + "iterate forward 200 steps at time increments $h=0.1$.\n", + "\n", + "In the figure below, hot colors indicate initial conditions and early dates (so that the\n", + "distribution \"cools\" over time)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + " α = 0.6\n", + " λ = 0.5\n", + " b = 10\n", + " n = b + 1\n", + " states = np.arange(n)\n", + " I = np.identity(n)\n", + "\n", + " K = np.zeros((n, n))\n", + " K[0, -1] = 1\n", + " for i in range(1, n):\n", + " for j in range(0, i):\n", + " if j == 0:\n", + " K[i, j] = (1 - α)**(i-1)\n", + " else:\n", + " K[i, j] = α * (1 - α)**(i-j-1)\n", + "\n", + "\n", + " def P_t(ψ, t):\n", + " return ψ @ expm(t * λ * (K - I))\n", + "\n", + " def plot_distribution_dynamics(ax, ψ_0, steps=200, step_size=0.1):\n", + " ψ = ψ_0\n", + " t = 0.0\n", + " colors = cm.jet_r(np.linspace(0.0, 1, steps))\n", + "\n", + " for i in range(steps):\n", + " ax.bar(states, ψ, zs=t, zdir='y', \n", + " color=colors[i], alpha=0.8, width=0.4)\n", + " ψ = P_t(ψ, t=step_size)\n", + " t += step_size\n", + "\n", + " ax.set_xlabel('inventory')\n", + " ax.set_ylabel('$t$')\n", + "\n", + "\n", + " ψ_0 = binom.pmf(states, n, 0.25)\n", + " fig = plt.figure(figsize=(8, 6))\n", + " ax = fig.add_subplot(111, projection='3d')\n", + " plot_distribution_dynamics(ax, ψ_0)\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the exercises below you are asked to implement option 1 and check that the\n", + "figure looks the same.\n", + "\n", + "\n", + "\n", + "\n", + "## Exercises\n", + "\n", + "### Exercise 1\n", + "\n", + "Consider the binary (Bernoulli) distribution where outcomes $0$ and $1$ each have\n", + "probability $0.5$.\n", + "\n", + "Construct two different random variables with this distribution.\n", + "\n", + "\n", + "\n", + "### Exercise 2\n", + "\n", + "Show by direct calculation that the Poisson kernels $(P_t)$ defined in \n", + "{eq}`poissemi` satisfy the semigroup property {eq}`chapkol_ct2`.\n", + "\n", + "Hints\n", + "\n", + "* Recall that $P_t(j, k) = 0$ whenever $j > k$.\n", + "* Consider using the [binomial\n", + " formula](https://en.wikipedia.org/wiki/Binomial_theorem).\n", + "\n", + "\n", + "### Exercise 3\n", + "\n", + "Consider the distribution over $S^{n+1}$ previously shown in {eq}`mathjointd`, which is\n", + "\n", + "$$\n", + " \\mathbf P_\\psi^n(x_0, x_1, \\ldots, x_n)\n", + " = \\psi(x_0)\n", + " P(x_0, x_1)\n", + " \\times \\cdots \\times\n", + " P(x_{n-1}, x_n)\n", + "$$ \n", + "\n", + "Show that, for any Markov chain $(X_t)$ satisfying {eq}`markovpropd`\n", + "and $X_0 \\sim \\psi$, the restriction $(X_0, \\ldots, X_n)$ has joint\n", + "distribution $\\mathbf P_\\psi^n$.\n", + "\n", + "### Exercise 4\n", + "\n", + "Replicate, as best you can, the figure produced from the {ref}`discussion on distribution flows `, this time using option 1.\n", + "\n", + "You will need to use a suitably large sample.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Solutions\n", + "\n", + "### Solution to Exercise 1\n", + "\n", + "This is easy.\n", + "\n", + "One example is to take $U$ to be uniform on $(0, 1)$ and set $X=0$ if $U <\n", + "0.5$ and $1$ otherwise.\n", + "\n", + "Then $X$ has the desired distribution.\n", + "\n", + "Alternatively, we could take $Z$ to be standard normal and set $X=0$ if $Z <\n", + "0$ and $1$ otherwise.\n", + " \n", + "\n", + "### Solution to Exercise 2\n", + "\n", + "Fixing $s, t \\in \\mathbb R_+$ and $j \\leq k$, we have \n", + "\n", + "$$\n", + "\\begin{aligned}\n", + " \\sum_{i \\geq 0} P_s(j, i) P_t(i, k)\n", + " & = \n", + " e^{-\\lambda (s+t)} \n", + " \\sum_{j \\leq i \\leq k}\n", + " \\frac{ (\\lambda s)^{i-j} }{(i-j)!} \n", + " \\frac{ (\\lambda t)^{k-i} }{(k-i)!} \n", + " \\\\\n", + " & = \n", + " e^{-\\lambda (s+t)} \\lambda^{k-j}\n", + " \\sum_{0 \\leq \\ell \\leq k-j}\n", + " \\frac{ s^\\ell }{\\ell!} \n", + " \\frac{ t^{k-j - \\ell} }{(k-j - \\ell)!} \n", + " \\\\\n", + " & = \n", + " e^{-\\lambda (s+t)} \\lambda^{k-j}\n", + " \\sum_{0 \\leq \\ell \\leq k-j}\n", + " \\binom{k-j}{\\ell}\n", + " \\frac{s^\\ell t^{k-j - \\ell}}{(k-j)!} \n", + "\\end{aligned}\n", + "$$\n", + "\n", + "Applying the binomial formula, we can write this as \n", + "\n", + "$$\n", + " \\sum_{i \\geq 0} P_s(j, i) P_t(i, k)\n", + " =\n", + " e^{-\\lambda (s+t)} \n", + " \\frac{(\\lambda (s + t))^{k-j}}{(k-j)!}\n", + " = P_{s+t}(j, k)\n", + "$$\n", + "\n", + "Hence {eq}`chapkol_ct2` holds, and the semigroup property is satisfied.\n", + "\n", + "\n", + "### Solution to Exercise 3 \n", + "\n", + "Let $(X_t)$ be a Markov chain satisfying {eq}`markovpropd` and $X_0 \\sim \\psi$.\n", + "\n", + "When $n=0$, we have $\\mathbf P_\\psi^n = \\mathbf P_\\psi^0 = \\psi$, and this\n", + "agrees with the distribution of the restriction $(X_0, \\ldots, X_n) = (X_0)$.\n", + "\n", + "Now suppose the same is true at arbitrary $n-1$, in the sense that\n", + "the distribution of $(X_0, \\ldots, X_{n-1})$ is equal to $\\mathbf P_\\psi^{n-1}$ as\n", + "defined above.\n", + "\n", + "Then \n", + "\n", + "$$\n", + " \\mathbb P \\{X_0 = x_0, \\ldots, X_n = x_n\\}\n", + " = \\mathbb P \\{X_n = x_n \\,|\\, X_0 = x_0, \\ldots, X_{n-1} = x_{n-1} \\}\n", + " \\\\\n", + " \\times \\mathbb P \\{X_0 = x_0, \\ldots, X_{n-1} = x_{n-1}\\}\n", + "$$\n", + "\n", + "From the Markov property and the induction hypothesis, the right hand side is\n", + "\n", + "$$\n", + " P (x_{n-1}, x_n )\n", + " \\mathbf P_\\psi^n(x_0, x_1, \\ldots, x_{n-1})\n", + " =\n", + " P (x_n, x_{n+1} )\n", + " \\psi(x_0)\n", + " P(x_0, x_1)\n", + " \\times \\cdots \\times\n", + " P(x_{n-1}, x_{n-1})\n", + "$$\n", + "\n", + "The last expression equals $\\mathbf P_\\psi^n$, which concludes the proof.\n", + "\n", + "\n", + "### Solution to Exercise 4 \n", + "\n", + "[To be added.]" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/code_book/.ipynb_checkpoints/markov_prop-checkpoint.md b/code_book/.ipynb_checkpoints/markov_prop-checkpoint.md new file mode 100644 index 0000000..1da8b28 --- /dev/null +++ b/code_book/.ipynb_checkpoints/markov_prop-checkpoint.md @@ -0,0 +1,1014 @@ +--- +jupytext: + formats: ipynb,md:myst + text_representation: + extension: .md + format_name: myst + format_version: '0.9' + jupytext_version: 1.5.0 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# The Markov Property + +## Overview + + +A continuous time stochastic process is said to have the Markov property if +that the past and future are independent given the current state. + +(A more formal definition is provide below.) + +As we will see, the Markov property imposes a great deal of structure on +continuous time processes. + +This structure leads to an elegant and powerful collection of results on +evolution and dynamics. + +At the same time, the Markov property is general enough to cover many applied +problems, as described in {doc}`the introduction `. + + + +### Setting + +In this lecture and much of what follows, the state space where dynamics +evolve will be a [countable set](https://en.wikipedia.org/wiki/Countable_set), +denoted henceforth by $S$, with typical elements $x, y$. + +(Note that "countable" is understood to include finite.) + +Regarding notation, in what follows, $\sum_{x \in S}$ is abbreviated to +$\sum_x$, the supremum $\sup_{x \in S}$ is abbreviated to $\sup_x$ and so on. + +A **distribution** on $S$ is a function $\phi$ from $S$ to $\mathbb R_+$ with +$\sum_x \phi(x) = 1$. + +Let $\mathcal D$ denote the set of all distributions on $S$. + +In expressions involving matrix algebra, we **always treat distributions as row +vectors**. + +We will use the following imports + +```{code-cell} ipython3 +import numpy as np +import scipy as sp +import matplotlib.pyplot as plt +import quantecon as qe +from numba import njit + +from scipy.linalg import expm +from scipy.stats import binom + +from matplotlib import cm +from mpl_toolkits.mplot3d import Axes3D +``` + +## Markov Processes + +We now introduce the definition of Markov processes, first reviewing the +discrete case and then shifting to continuous time. + + + + +### Discrete Time, Finite State + +The simplest Markov processes are those with a discrete time parameter and finite state space. + +Assume for now that $S$ has $n$ elements and let $P$ be a Markov matrix (i.e., nonnegative with unit row sums) of size $n \times n$. + +We write $P(x, y)$ for a typical element of $P$. + +(Most of the time, this is more convenient than using symbols such as $P_{ij}$, and it aligns better with the infinite state case.) + +In applications, $P(x, y)$ represents the probability of transitioning from $x$ to +$y$ in one step. + +#### Markov Chains + +A Markov chain $(X_t)_{t \in \mathbb Z_+}$ on finite set $S$ with Markov matrix $P$ is a +sequence of random variables satisfying + +$$ + \mathbb P\{X_{t+1} = y \,|\, X_0, X_1, \ldots, X_t \} = P (X_t, y) +$$ (markovpropd) + +with probability one for all $y \in S$ and any $t \in \mathbb Z_+$. + +In addition to connecting probabilities to the Markov matrix, +{eq}`markovpropd` says that the process depends on its history only through +the current state. + +We [recall that](https://python.quantecon.org/finite_markov.html), if $X_t$ +has distribution $\psi$, then $X_{t+1}$ has distribution $\psi P$. + +Since $\psi$ is understood as a row vector, the meaning is + +$$ + (\psi P)(y) = \sum_x \psi(x) P(x, y) + \qquad (y \in S) +$$ (update_rule) + +(jdfin)= +#### The Joint Distribution + +In general, for given Markov matrix $P$, there can be many Markov chains +$(X_t)$ that satisfy {eq}`markovpropd`. + +This is due to the more general observation that, for a given distribution +$\phi$, we can construct many random variables having distribution $\phi$. + +(The exercises below ask for one example.) + +Hence $P$ is, in a sense, a more primitive object than $(X_t)$. + +There is another way to see the fundamental importance of $P$: by constructing the joint distribution. + +Consider the infinite sequence space $S^\infty := S \times S \times \cdots$. + +Together with an initial condition $\psi \in +\mathcal D$, a Markov matrix $P$ defines a distribution $\mathbf P_\psi$ +over $S^\infty$ such that any +Markov chain $(X_t)$ satisfying {eq}`markovpropd` and $X_0 \sim \psi$ has +$\mathbf P_\psi$ as its joint distribution. + +The last statement is equivalent to + +$$ + \mathbb P\{ X_{t_1} = y_{t_1}, \ldots, X_{t_k} = y_{t_k} \} + = + \mathbf P_\psi\{ (x_t) \in S^\infty \,:\, + x_{t_i} = y_{t_i} \text{ for } i = 1, \ldots m\} +$$ (jointdeq) + +for any $m$ positive integers $t_i$ and $m$ elements $y_{t_i}$ of the state space $S$. + + +(Joint distributions of discrete time processes +are uniquely defined by their values at finite collections of times in the sense of +{eq}`jointdeq` --- see, for example, Theorem 7.2 of {cite}`walsh2012knowing`.) + + +To construct the joint distribution over $S^\infty$, one first constructs a +finite dimensional version over the Cartiesian product $S^{n+1}$ +via + +$$ + \mathbf P_\psi^n(x_0, x_1, \ldots, x_n) + = \psi(x_0) + P(x_0, x_1) + \times \cdots \times + P(x_{n-1}, x_n) +$$ (mathjointd) + +Then one shows that for any Markov chain $(X_t)$ satisfying {eq}`markovpropd` +and $X_0 \sim \psi$, the restriction $(X_0, \ldots, X_n)$ has joint +distribution $\mathbf P_\psi^n$. + +This is a solved exercise below. + +The last remaining step is to show that the family $(\mathbf P_\psi^n)$ defined at each $n \in \mathbb N$ extends uniquely to a distribution $\mathbf P_\psi$ over the infinite +sequences in $S^\infty$. + +That this is true follows from a well known [theorem of Kolmogorov](https://en.wikipedia.org/wiki/Kolmogorov_extension_theorem). + +Hence $P$ defines the joint distribution $\mathbf P_\psi$ when paired with any initial condition $\psi$. + + + +### Extending to Countable State Spaces + +When $S$ is infinite, we cannot view $P$ as a matrix. + +Instead, we introduce the notion of a **Markov kernel** on $S$, which is a function +$P$ from $S \times S$ to $\mathbb R_+$ satisfying + +$$ + \sum_y P(x, y) = 1 + \text{ for all } x \in S +$$ + +This is a natural extension of matrices with nonnegative elements and unit row +sums. + +The definition of a Markov chain $(X_t)_{t \in \mathbb Z_+}$ on $S$ with Markov kernel $P$ is exactly as in {eq}`markovpropd`. + +Given Markov kernel $P$ and $\phi \in \mathcal D$, we define $\phi P$ by +{eq}`update_rule`. + +Then, as before, $\phi P$ can be understood as the distribution of +$X_{t+1}$ when $X_t$ has distribution $\phi$. + +The function $\phi P$ is in $\mathcal D$, since, by {eq}`update_rule`, it is +nonnegative and + +$$ + \sum_y (\phi P)(y) + = \sum_y \sum_x P(x, y) \phi(x) + = \sum_x \sum_y P(x, y) \phi(x) + = \sum_x \phi(x) + = 1 +$$ + +Swapping the order of infinite sums is justified here by the fact that all +elements are nonnegative (a version of Tonelli's theorem). + +We can take products of Markov kernels that are analogous to matrix products. + +In particular, if $P$ and $Q$ are Markov kernels on $S$, then, for $(x, y)$ in $S +\times S$, + +$$ + (P Q)(x, y) := \sum_z P(x, z) Q(z, y) +$$ (kernprod) + +It is not difficult to check that the product $P Q$ is again a Markov kernel on $S$. + +The operation {eq}`kernprod` is analogous to matrix multiplication, so that +elements of $P^k$, the $k$-th product of $P$ with itself, retain the finite +state interpretation of $k$ step transition probabilities. + +For example, we have + +$$ + P^k(x, y) + = (P^{k-j} P^j)(x, y) = \sum_z P^{k-j}(x, z) P^j(z, y) +$$ (kernprodk) + +which is a version of the discrete time Chapman-Kolmogorov equation. + +Equation {eq}`kernprodk` can be obtained from the law of total probability: if +$(X_t)$ is a Markov chain with Markov kernel $P$ and initial condition $X_0 = +x$, then + +$$ + \mathbb P\{X_k = y\} + = \sum_z \mathbb P\{X_k = y \,|\, X_j=z\} \mathbb P\{X_j=z\} +$$ + + +All of the {ref}`preceding discussion ` on the connection between $P$ +and the joint distribution of $(X_t)$ when $S$ is finite carries over +to the current setting. + + + + +### The Continuous Time Case + +A **continuous time stochastic process** on $S$ is a collection $(X_t)$ of $S$-valued +random variables $X_t$ defined on a common probability space and indexed by $t +\in \mathbb R_+$. + +Let $I$ be the Markov kernel on $S$ defined by $I(x,y) = \mathbb 1\{x = y\}$. + +A **transition semigroup** is a family $(P_t)$ of Markov kernels +on $S$ satisfying $P_0 = I$ and + +$$ + P_{s + t} = P_s P_t + \qquad (s, t \geq 0) +$$ (chapkol_ct) + +The interpretation of $P_t(x, y)$ is the probability of moving from state $x$ +to state $y$ in $t$ units of time. + +Equation {eq}`chapkol_ct`, which is known as the semigroup property of +$(P_t)$, is another version of the Chapman-Kolmogorov equation. + +This becomes clearer if we write it more explicitly as + +$$ + P_{s+t}(x, y) + = \sum_z P_s(x, z) P_t(z, y) +$$ (chapkol_ct2) + +A stochastic process $(X_t)$ is called a (time homogeneous) **Markov process** on $S$ +with transition semigroup $(P_t)$ if + +$$ + \mathbb P\{X_{s + t} = y \,|\, \mathcal F_s \} + = P_t (X_s, y) +$$ (markovprop) + +with probability one for all $y \in S$ and $s, t \geq 0$. + +Here $\mathcal F_s$ is the history $(X_r)_{r \leq s}$ of the process up until +time $s$. + +If you are an economist you might call $\mathcal F_s$ the "information set" at time +$s$. + +If you are familiar with measure theory, you can understand $\mathcal F_s$ as +the $\sigma$-algebra generated by $(X_r)_{r \leq s}$. + + +Analogous to the discrete time case, the joint +distribution of $(X_t)$ is determined by its transition semigroup plus an +initial condition. + +To prove this, one first builds finite dimensional distributions using +expressions similar to {eq}`mathjointd`. + +Next the Kolmogorov extension theorem is applied, similar to the discrete time case +(see, e.g., Corollary 6.4 of {cite}`le2016brownian`). + + + + +### Example: Poisson Processes + +The Poisson process discussed in our {doc}`previous lecture ` is a +Markov process on state space $\mathbb Z_+$. + +To obtain the transition semigroup, we observe that, for $k \geq j$, + +$$ + \mathbb P\{N_{s + t} = k \,|\, N_s = j\} + = \mathbb P\{N_{s + t} - N_s = k - j \,|\, N_s = j\} + = \mathbb P\{N_{s + t} - N_s = k - j\} +$$ + +where the last step is due to independence of increments. + +From stationarity of increments we have + +$$ + \mathbb P\{N_{s + t} - N_s = k - j\} + = \mathbb P\{N_t = k - j\} + = e^{-\lambda t} \frac{ (\lambda t)^{k-j} }{(k-j)!} +$$ + +In summary, the transition semigroup is + +$$ + P_t(j, k) + = e^{-\lambda t} \frac{ (\lambda t)^{k-j} }{(k-j)!} +$$ (poissemi) + +whenever $j \leq k$ and $P_t(j, k) = 0$ otherwise. + +This chain of equalities was obtained with $N_s = j$ for arbitrary $j$, so we +can replace $j$ with $N_s$ in {eq}`poissemi` to verify the Markov property {eq}`markovprop` for the Poisson process. + +Under {eq}`poissemi`, each $P_t$ is a Markov kernel and $(P_t)$ is a +transition semigroup. + +The proof of the semigroup property is a solved exercise below. + +(In {eq}`poissemi` we use the convention that $0^0 = 1$, which leads to $P_0 = I$.) + + + + + +### Example: Failure of the Markov Property + +Let's look at how the Markov property can fail, via an intuitive rather than +formal discussion. + +Let $(X_t)$ be a continuous time stochastic process with state space $S = \{0, 1\}$. + +The process starts at $0$ and updates at follows: + +1. Draw $W$ independently from a fixed Pareto distribution. +1. Hold $(X_t)$ in its current state for $W$ units of time and then switch + to the other state. +1. Go to step 1. + +What is the probability that $X_{s+h} = i$ given both the history $(X_r)_{r \leq s}$ and current information $X_s = i$? + +If $h$ is small, then this is close to the +probability that there are zero switches over the time interval $(s, s+h]$. + +To calculate this probability, it would be helpful to know how long the +state has been at current state $i$. + +This is because the Pareto distribution {ref}`is not memoryless `. + +(With a Pareto distribution, if we know that $X_t$ has been at $i$ for a long +time, then a switch in the near future becomes more likely.) + +As a result, the history prior to $X_s$ is useful for predicting $X_{s+h}$, +even when we know $X_s$. + +Thus, the Markov property fails. + + + +### Restrictions Imposed by the Markov Property + +From the discussion above, we see that, for continuous time Markov chains, +the length of time between jumps must be memoryless. + +Recall that the {ref}`only ` memoryless distribution supported on $\mathbb R_+$ is the exponential distribution. + +[XX why isn't this link working??] + +Hence, a continuous time Markov chain waits at states for an +exponential amount of time and then jumps. + +The way that the new state is chosen must also satisfy the Markov property, +which adds another restriction. + +In summary, we already understand the following about continuous time Markov chains: + +1. Holding times are independent exponential draws. +1. New states are chosen in a ``Markovian'' way, independent of the past given the current state. + +We just need to clarify the details in these steps to have a complete description. + + +We start this process with an example. + + +(inventory_dynam)= +## A Model of Inventory Dynamics + + +Let $X_t$ be the inventory of a firm at time $t$, taking values in the +integers $0, 1, \ldots, b$. + +If $X_t > 0$, then a customer arrives after $W$ +units of time, where $W \sim E(\lambda)$ for some fixed $\lambda > 0$. + +Upon arrival, each customer purchases $\min\{U, X_t\}$ units, where $U$ is an +IID draw from the geometric distribution started at 1 rather than 0: + +$$ + \mathbb P\{U = k\} = (1-\alpha)^{k-1} \alpha + \qquad (k = 1, 2, \ldots, \; \alpha \in (0, 1)) +$$ + +If $X_t = 0$, then no customers arrive and the firm places an order for $b$ units. + +The order arrives after a delay of $D$ units of time, where $D \sim E(\lambda)$. + +(We use the same $\lambda$ here just for convenience, to simplify the exposition.) + +### Representation + +The inventory process jumps to a new value either when a new customer arrives +or when new stock arrives. + +Between these arrival times it is constant. + +Hence, to track $X_t$, it is enough to track the jump times and the new values +taken at the jumps. + +In what follows, we denote the jump times by $\{J_k\}$ and the values at jumps +by $\{Y_k\}$. + +Then we construct the state process via + +$$ + X_t = \sum_{k \geq 0} Y_k \mathbb 1\{J_k \leq t < J_{k+1}\} + \qquad (t \geq 0) +$$ (xfromy) + + + +### Simulation + +Let's simulate this process, starting at $X_0 = 0$. + +As above, + +* $J_k$ is the time of the $k$-th jump (up or down) in inventory. +* $Y_k$ is the size of the inventory after the $k$-th jump. +* $(X_t)$ is defined from these objects via {eq}`xfromy`. + +Here's a function that generates and returns one path $t \mapsto X_t$. + +(We are not aiming for computational efficiency at this stage.) + +```{code-cell} ipython3 +def sim_path(T=10, seed=123, λ=0.5, α=0.7, b=10): + """ + Generate a path for inventory starting at b, up to time T. + + Return the path as a function X(t) constructed from (J_k) and (Y_k). + """ + + J, Y = 0, b + J_vals, Y_vals = [J], [Y] + np.random.seed(seed) + + while True: + W = np.random.exponential(scale=1/λ) # W ~ E(λ) + J += W + J_vals.append(J) + if J >= T: + break + else: + # Update Y + if Y == 0: + Y = b + else: + U = np.random.geometric(α) + Y = Y - min(Y, U) + Y_vals.append(Y) + + Y_vals = np.array(Y_vals) + J_vals = np.array(J_vals) + + def X(t): + k = np.searchsorted(J_vals, t) + return Y_vals[k-1] + + return X +``` + +Let's plot the process $(X_t)$ using the ``step`` method of ``ax``. + +```{code-cell} ipython3 +X = sim_path(10) +``` + +```{code-cell} ipython3 +X(0) +``` + +```{code-cell} ipython3 +jv = (0, 1, 10) +np.searchsorted(jv, 0.1) +``` + +```{code-cell} ipython3 +T = 20 +X = sim_path(T=T) + +grid = np.linspace(0, T, 100) + +fig, ax = plt.subplots() +ax.step(grid, [X(t) for t in grid], label="$X_t$") + +ax.set(xlabel="time", ylabel="inventory") + +ax.legend() +plt.show() +``` + +As expected, inventory falls and then jumps back up to $b$. + + + +### The Embedded Jump Chain + +In models such as the one described above, the embedded discrete time +process $(Y_n)$ is called the "embedded jump chain". + +It is easy to see that $(Y_n)$ is discrete time finite state Markov chain. + +Its Markov matrix $K$ is +given by $K(x, y) = \mathbb 1\{y=b\}$ when $x=0$ and, when $0 < x \leq b$, + +$$ + K(x, y) + = + \begin{cases} + \mathbb 0 & \text{ if } y \geq x + \\ + \mathbb P\{x - U = y\} = (1-\alpha)^{x-y-1} \alpha + & \text{ if } 0 < y < x + \\ + \mathbb P\{U \geq x\} = (1-\alpha)^{x-1} + & \text{ if } y = 0 + \end{cases} +$$ (ijumpkern) + + + + +### Markov Property + +The inventory model just described has the Markov property precisely because + +1. the jump chain $(Y_n)$ is Markov in discrete time and +1. the holding times are independent exponential draws. + +Rather than providing more details on these points here, let us first describe +a more general setting where the arguments will be clearer and more useful. + + + +## Jump Processes with Constant Rates + +The examples we have focused on so far are special cases of Markov processes +with constant jump intensities. + +This processes turn out to be very representative (although the constant jump intensity will later be relaxed). + +Let's now summarize the model and its properties. + + +### Construction + +The data for a Markov process on $S$ with constant jump rates are + +* a parameter $\lambda > 0$ called the **jump rate**, which governs the jump + intensities and +* a Markov kernel $K$ on $S$, called the **jump kernel**. + +To run the process we also need an initial condition $\psi \in \mathcal D$. + +The process $(X_t)$ is constructed by holding at each state for an +exponential amount of time, with rate $\lambda$, and then updating to a +new state via $K$. + +In more detail, the construction is + +1. draw $Y_0$ from $\psi$ +1. set $n = 1$ and $J_0 = 0$ +1. draw $W_n$ from Exp$(\lambda)$ and set $J_n = J_{n-1} + W_n$ +1. set $X_t = Y_{n-1}$ for all $t$ such that $J_{n-1} \leq t < J_n$. +1. draw $Y_n$ from $K(Y_{n-1}, \cdot)$ +1. set $n = n+1$ and go to step 3. + +An alternative, more parsimonious way to express the same process is to take + +* $(N_t)$ to be a Poisson process with rate $\lambda$ and +* $(Y_n)$ to be a discrete time Markov chain with kernel $K$ + +and then set + +$$ + X_t := Y_{N_t} \text{ for all } t \geq 0 +$$ + +As before, the discrete time process $(Y_n)$ is called the **embedded jump chain**. + +(Not to be confused with $(X_t)$, which is often called a "jump process" due +to the fact that it changes states with jumps.) + +The draws $(W_n)$ are called the **wait times** or **holding times**. + + +### Examples + +The Poisson process with rate $\lambda$ is a jump process on $S = \mathbb Z_+$. + +The holding times are obviously exponential with constant rate $\lambda$. + +The jump kernel is just $K(i, j) = \mathbb 1\{j = i+1\}$, so that the state +jumps up by one at every $J_n$. + +The inventory model is also a jump process with constant rate $\lambda$, this +time on $S = \{0, 1, \ldots, b\}$. + +The jump kernel (or matrix in this case) was given in {eq}`ijumpkern`. + + + + + +### Markov Property + +Let's show that the jump process $(X_t)$ constructed above satisfies the +Markov property, and obtain the transition semigroup at the same time. + +We will use two facts: + +* the jump chain $(Y_n)$ has the Markov property in discrete + time and +* the Poisson process has stationary independent increments. + +From these facts it is intuitive that the distribution of $X_{t+s}$ given +the whole history $\mathcal F_s = \{ (N_r)_{r \leq s}, (Y_n)_{n \leq N_s} \}$ +depends only on $X_s$. + +Indeed, if we know $X_s$, then we can simply {ref}`restart ` the +Poisson process from $N_s$ and then update the jump chain using $K$ each time a +jump occurs, starting from $X_s$. + +Let's write this more mathematically. + +Fixing $y \in S$ and $s, t \geq 0$, we have + + +$$ + \mathbb P\{X_{s + t} = y \,|\, \mathcal F_s \} + = \mathbb P\{Y_{N_{s + t}} = y \,|\, \mathcal F_s \} + = \mathbb P\{Y_{N_s + N_{s + t} - N_s} = y \,|\, \mathcal F_s \} +$$ + +{ref}`Recalling ` that $N_{s + t} - N_s$ is Poisson distributed with rate $t \lambda$, independent of the history $\mathcal F_s$, we can write the display above as + +$$ + \mathbb P\{X_{s + t} = y \,|\, \mathcal F_s \} + = + \sum_{k \geq 0} + \mathbb P\{Y_{N_s + k} = y \,|\, \mathcal F_s \} + \frac{(t \lambda )^k}{k!} e^{-t \lambda} +$$ + +Because the jump chain is Markov with kernel $K$, we can simplify further to + + +$$ + \mathbb P\{X_{s + t} = y \,|\, \mathcal F_s \} + = \sum_{k \geq 0} + K^k(Y_{N_s}, y) \frac{(t \lambda )^k}{k!} e^{-t \lambda} + = K^k(X_s, y) \frac{(t \lambda )^k}{k!} e^{-t \lambda} +$$ + +Since the expression above depends only on $X_s$, +we have proved that $(X_t)$ has the Markov property. + + +(consjumptransemi)= +### Transition Semigroup + +The transition semigroup can be obtained from our final result, conditioning +on $X_s = x$ to get + +$$ + P^t(x, y) = \mathbb P\{X_{s + t} = y \,|\, X_s = x \} + = e^{-t \lambda} \sum_{k \geq 0} + K^k(x, y) \frac{(t \lambda )^k}{k!} +$$ + +If $S$ is finite, we can write this in matrix form and use the definition of +the [matrix exponential](https://en.wikipedia.org/wiki/Matrix_exponential) to +get + +$$ + P^t + = e^{-t \lambda} + \sum_{k \geq 0} + \frac{(t \lambda K)^k}{k!} + = e^{-t \lambda} e^{t \lambda K} + = e^{t \lambda (K - I)} +$$ + +This is a simple and elegant representation of the transition semigroup that +makes it easy to understand and analyze distribution dynamics. + +For example, if $X_0$ has distribution $\psi$, then $X_t$ has distribution + +$$ + \psi P_t = \psi e^{t \lambda (K - I)} +$$ (distflowconst) + +We just need to plug in $\lambda$ and $K$ to obtain the entire flow $t \mapsto \psi P_t$. + +We will soon extend this representation to the case where $S$ is infinite. + + +(invdistflows)= +## Distribution Flows for the Inventory Model + +Let's apply these ideas to the inventory model described above. + +We fix + +* the parameters $\alpha$, $b$ and $\lambda$ in the inventory model and +* an initial condition $X_0 \sim \psi_0$, where $\psi_0$ is an arbitrary +distribution on $S$. + +The state $S$ is set to $\{0, \ldots, b\}$ and the kernel $K$ is defined by +{eq}`ijumpkern`. + +Now we run time forward. + +We are interesting in computing the flow of distributions $t \mapsto \psi_t$, +where $\psi_t$ is the distribution of $X_t$. + +According to the theory developed above, we have two options: + +Option 1 is to use simulation. + +The first step is to simulate many independent observations the process $(X_t^m)_{m=1}^M$. + +(Here $m$ indicates simulation number $m$, which you might think of as the outcome +for firm $m$.) + +Next, for any given $t$, we define $\hat \psi_t \in \mathcal D$ as the +histogram of observations at time $t$, or, equivalently the cross-sectional +distribution at $t$: + +$$ + \hat \psi_t(x) := \frac{1}{M} \sum_{m=1}^M \mathbb 1\{X_t = x\} + \qquad (x \in S) +$$ + +Then $\hat \psi_t(x)$ will be close to $\mathbb P\{X_t = x\}$ by the law of +large numbers. + +In other words, in the limit we recover $\psi_t$. + + +Option 2 is to insert the parameters into the right hand side of {eq}`distflowconst` +and compute $\psi_t$ as $\psi_0 P_t$. + +Let's try option 2, with $\alpha = 0.6$, $\lambda = 0.5$ and $b=10$. + +For the initial distribution we pick a binomial distribution. + +Since we cannot compute the entire uncountable flow $t \mapsto \psi_t$, we +iterate forward 200 steps at time increments $h=0.1$. + +In the figure below, hot colors indicate initial conditions and early dates (so that the +distribution "cools" over time) + +```{code-cell} ipython3 + α = 0.6 + λ = 0.5 + b = 10 + n = b + 1 + states = np.arange(n) + I = np.identity(n) + + K = np.zeros((n, n)) + K[0, -1] = 1 + for i in range(1, n): + for j in range(0, i): + if j == 0: + K[i, j] = (1 - α)**(i-1) + else: + K[i, j] = α * (1 - α)**(i-j-1) + + + def P_t(ψ, t): + return ψ @ expm(t * λ * (K - I)) + + def plot_distribution_dynamics(ax, ψ_0, steps=200, step_size=0.1): + ψ = ψ_0 + t = 0.0 + colors = cm.jet_r(np.linspace(0.0, 1, steps)) + + for i in range(steps): + ax.bar(states, ψ, zs=t, zdir='y', + color=colors[i], alpha=0.8, width=0.4) + ψ = P_t(ψ, t=step_size) + t += step_size + + ax.set_xlabel('inventory') + ax.set_ylabel('$t$') + + + ψ_0 = binom.pmf(states, n, 0.25) + fig = plt.figure(figsize=(8, 6)) + ax = fig.add_subplot(111, projection='3d') + plot_distribution_dynamics(ax, ψ_0) + plt.show() +``` + +In the exercises below you are asked to implement option 1 and check that the +figure looks the same. + + + + +## Exercises + +### Exercise 1 + +Consider the binary (Bernoulli) distribution where outcomes $0$ and $1$ each have +probability $0.5$. + +Construct two different random variables with this distribution. + + + +### Exercise 2 + +Show by direct calculation that the Poisson kernels $(P_t)$ defined in +{eq}`poissemi` satisfy the semigroup property {eq}`chapkol_ct2`. + +Hints + +* Recall that $P_t(j, k) = 0$ whenever $j > k$. +* Consider using the [binomial + formula](https://en.wikipedia.org/wiki/Binomial_theorem). + + +### Exercise 3 + +Consider the distribution over $S^{n+1}$ previously shown in {eq}`mathjointd`, which is + +$$ + \mathbf P_\psi^n(x_0, x_1, \ldots, x_n) + = \psi(x_0) + P(x_0, x_1) + \times \cdots \times + P(x_{n-1}, x_n) +$$ + +Show that, for any Markov chain $(X_t)$ satisfying {eq}`markovpropd` +and $X_0 \sim \psi$, the restriction $(X_0, \ldots, X_n)$ has joint +distribution $\mathbf P_\psi^n$. + +### Exercise 4 + +Replicate, as best you can, the figure produced from the {ref}`discussion on distribution flows `, this time using option 1. + +You will need to use a suitably large sample. + + + + + + + + + +## Solutions + +### Solution to Exercise 1 + +This is easy. + +One example is to take $U$ to be uniform on $(0, 1)$ and set $X=0$ if $U < +0.5$ and $1$ otherwise. + +Then $X$ has the desired distribution. + +Alternatively, we could take $Z$ to be standard normal and set $X=0$ if $Z < +0$ and $1$ otherwise. + + +### Solution to Exercise 2 + +Fixing $s, t \in \mathbb R_+$ and $j \leq k$, we have + +$$ +\begin{aligned} + \sum_{i \geq 0} P_s(j, i) P_t(i, k) + & = + e^{-\lambda (s+t)} + \sum_{j \leq i \leq k} + \frac{ (\lambda s)^{i-j} }{(i-j)!} + \frac{ (\lambda t)^{k-i} }{(k-i)!} + \\ + & = + e^{-\lambda (s+t)} \lambda^{k-j} + \sum_{0 \leq \ell \leq k-j} + \frac{ s^\ell }{\ell!} + \frac{ t^{k-j - \ell} }{(k-j - \ell)!} + \\ + & = + e^{-\lambda (s+t)} \lambda^{k-j} + \sum_{0 \leq \ell \leq k-j} + \binom{k-j}{\ell} + \frac{s^\ell t^{k-j - \ell}}{(k-j)!} +\end{aligned} +$$ + +Applying the binomial formula, we can write this as + +$$ + \sum_{i \geq 0} P_s(j, i) P_t(i, k) + = + e^{-\lambda (s+t)} + \frac{(\lambda (s + t))^{k-j}}{(k-j)!} + = P_{s+t}(j, k) +$$ + +Hence {eq}`chapkol_ct2` holds, and the semigroup property is satisfied. + + +### Solution to Exercise 3 + +Let $(X_t)$ be a Markov chain satisfying {eq}`markovpropd` and $X_0 \sim \psi$. + +When $n=0$, we have $\mathbf P_\psi^n = \mathbf P_\psi^0 = \psi$, and this +agrees with the distribution of the restriction $(X_0, \ldots, X_n) = (X_0)$. + +Now suppose the same is true at arbitrary $n-1$, in the sense that +the distribution of $(X_0, \ldots, X_{n-1})$ is equal to $\mathbf P_\psi^{n-1}$ as +defined above. + +Then + +$$ + \mathbb P \{X_0 = x_0, \ldots, X_n = x_n\} + = \mathbb P \{X_n = x_n \,|\, X_0 = x_0, \ldots, X_{n-1} = x_{n-1} \} + \\ + \times \mathbb P \{X_0 = x_0, \ldots, X_{n-1} = x_{n-1}\} +$$ + +From the Markov property and the induction hypothesis, the right hand side is + +$$ + P (x_{n-1}, x_n ) + \mathbf P_\psi^n(x_0, x_1, \ldots, x_{n-1}) + = + P (x_n, x_{n+1} ) + \psi(x_0) + P(x_0, x_1) + \times \cdots \times + P(x_{n-1}, x_{n-1}) +$$ + +The last expression equals $\mathbf P_\psi^n$, which concludes the proof. + + +### Solution to Exercise 4 + +[To be added.] diff --git a/code_book/_build/.doctrees/ch1.doctree b/code_book/_build/.doctrees/ch1.doctree new file mode 100644 index 0000000000000000000000000000000000000000..78a7d658ecafabf4ca4d59dca9979b15b557a607 GIT binary patch literal 2462 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 GP5uGfDbw=+ literal 0 HcmV?d00001 diff --git a/code_book/_build/.doctrees/ch4.doctree b/code_book/_build/.doctrees/ch4.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1ccc76b740fc0e4c9ce35aa20f6066151670bfae GIT binary patch literal 112041 zcmeFZ+0OG=mL*n=?wSHU*l^o7Z5RQ=FfvnFNpTceKmq0?lHwqe5=BXkLW1)kj^Zr9 zfPLY+xO4ag{1kpX@1w}<%r19d`L=(=_y1o=q(mN`v-jF-t$qHtzx==cpTGT!@1LLk z&CumVv;HoKgq=%lxnMzy8Ocf0h63Pk%WUW0m~b zTR;74F%P;idH+cLD8dE&jE;l@|HU;~(G~oE-v2*-{$3M&=zsImUv&Xo#rSjnUr%B1 z(+|NozKd`g;V#fs|MMaq&=vl5R0YETFT(GC*#z}3zx_=-b$|MwFo<67Bt^$eKmGL> zWazD*^MCWxzo?2P`C0$3e)_9F4#3}Id0Qt~+2#$F<-Z@cCQ4!~Y}?m>4M|L3Njye> z7s0(?=&#?Scd#g@epkmo=l?GMms9xDzpA%k{CyMtamfBgOsdL4cmKyB|I?WL_NRY^ z-qo6J8vm1rz+nBWs(=v;s^5oI8@>MQL+<=P|BJsU>aKl{KQ>d{Z9fLXk4^W(A6}}1 zv8&p#D#G7&8~P2s-BsfcKdg1p{PxGS4%Q$4;m5zj_rKf!_DA&h58L;R?GJCz==C4r z?;n2nfyd#{ru$tm1n+mS{p#QU`~B}|`nNy+-TrsXKmPWIAOGne^!9Im-2aaH$AA3w z4?o07`eXX5^|wE6zyA9lzX!jQae6mD{s^D@zx?>iJHH$j!)*LLd`G){U;XWm!TRgJ z|DKX`16%_RmxI1+#((?cOu!3&_}uS{&Aa~PGKc;>{%Xd5^BdyF9UKP#{`z~s5Cv5N zhoH~GeuTrnuLiI}{_GonIp{avulNtY6aVo|2F+LmRT03P_=oFzN`CvxZT)c=f~w1d ze}LQnkI%}JApU)oG})NLn|p%(&9A;s;qTyK6wR;y$%lN8UW)jagK^@Y9Q?iXKYn3a zRMkHmgK9`%xYz7m#J>y#Oz@!#q6EIDXny<+3?Gc!_d9UYBwq6s$q3cef$b4bSDuT@chzx0={`}H4R-_YxSnrDA@ z!dOJF;a9)f|Mu5^I{2TwhAtC*N7}xBTz`b?``+m<(*wP>q1V1Q^UG^!bpBHl>W3e` zSDnKo`}Hp|>A(9gi|M~CrvI{-iunKMV)|18|0_s`9AxhNzlU_4{|}J&e}td^5q|zB z`1zk9UH|P`SAYMFPJlYPcQPdJ88FD-R6&zXL56-Ux^2wchWvTTf0ZBL6RG^4<^MeY zO}@*2t^dV8{q&!Hh#;B%zChXZ=itx33!P5DDgX9+>c7h|^f6PI{}vDkoN}JV|7-&O z?N9&qPlpIo6IaQ9l&OFEo8PzJ)4vepzimPYM38zR`;Q4i2Mx;nKmAMV5C8k8bAR>I zzleh|_&NVQ05O1JMGg0ibxrp3UH-rS*?RRLzm&3re`}sOn z=A(T)g}hKqvu!oab;_QMwz4Musq<+}#P;fLWNu-D*QIUG2g_qT(N*S-VX!;LP^5jv zK4#-EYI@*RER)h5Z)0ad+}+1?5ip7;;YDl_HmsC9dnec!95zVl*`^j8oq%oVH4^T_ z=9z72fG#+>C;rt_^!;+>0K-PnbtWldNB#ceI6r&770HUy!e; ztf{-mJg(Nv33O!&Z6))Wv~XBL?vDM*<@FK1*_IZTU(8Sus%)r6^>9kl6TuB(XoR@C zzvQ0G568g{iFF7{Cww!zd0{bALf6WR%WQDtK2083<@M|MekkLuweC2VZi=(zTzXlt zk~$l3t?7rw&Qi~0ZFAZZ700{e-aaq=<8rUy;>GOtFoXxC@^o}Reg^*)P1W8+-yM@K zUJP!z!)Dsig^P0$-E6p(3p?u@L%$=^`ee-1>vVFfc1_*i#9nhnjXHnk>+JIQG9cQDn%JWUfB%ICZ zm;I2x*lOXX^*I?mb8Z$+Tn2-MCt)6Q>3s{z;jLZvoPFgr(Rm5Hcg&v`=TNY-w%iSz z<~z>J%~HE;QF9Xc!D!j=ERUg&&(ih!VFliz4~GvSam>XoAA9R|eEQU=R~NG6cBNOJ zwsd8qD6KzNy&IZmMGpGB0d!H4|BWd4_(X}iDDHc z#AkJ52i;OW(Q+<(ote6R>YkoH+-w`$%ei;T23n%)=tW&(|f5VUY~(F@GpGJihl!$`DrZ$eai}U+Yt=^I1(EFqI0K`yzQk>DL{T zy0~?byZtVuhA2(hYX(Ubmg~B(lY26S%$$~`E7+Upz8*?AZWRB-&pDgeDrMU=1^?_6 zj^hqeM{~R4y|K1Y945jd;`~`X{X0dq!yMV^bdR?~ys&V$q&HcEA+%?KwAP3;s*kXT z&ueeyX)s|s^YCMBK3dy}btoB`|R8^$!id#Jc zWgT3FhB?M(_Fl%!eN#-_Qr3H)xHA;R=d^W0nAO*_4$P_v>l{B@pddM?2cE@1)jTghG|f*dh3W;LYb_M#xV2vI&b$mjzg-0+`fv& z>Shl`6V4rb7WgF@=9z(D$Vh&VD_*5tB)I5Y6M0^D^QHjIYrh z<+i$YjOI+=&)15+$hhU+txtqI{q35u_Z)Iou3bI+7}RZ_Cgf$G8&oPCU@$`mAD{Kh z>h(g)`J`zX=XDYfMr&WZ>IAb-U&c?QYQ0fl>OfopCf?p{EVZ)0I~mOR7@H5f4Pt=n zSDk)&Kp4)O$3h(i$9pL2DBW(}?JzQ2v1c*Nb(rQsGbOPQHTgCg^1$fffu{3;P3^)_ z>Kiv1(}BVuf{`W8SkQRTw57dAbv$%)9@i?SaNN!jWW-=<5(i^c8I zxcgWav3cD=__-0vcG=c$AVXXTeQJ8vZXMb8!57=R*!M?Y@9x?bRYFWgq+YbWcdVY` z4MHWEGf8V$&%(s)72|QB9Od>Ev17r%pY{&dtLro0DVfH@(sexL__z=CGm-iSXMYl-b9z=GzK3V&^x6`@R~IVYu?aR3*p7?x+SJk;S5&43x636wyOyE~$^anXMkw zdH>F<_9ag$pnjWTf+UUXYwO)y|Mt>e@~Eh6ywTB?jYfFq*7<|AH@#bw;3K=*C7abX zy1iwu$UJFEI`^Wv_ah!_05{tk-%@Y|f>z0ox8Vf40SByoVd_1@RLY0&SJ{09#hYR6 zOYdFUK*>iTZ%am2GQeWdxu;KsS5e8`sMu29GX1&*mt#Q8fLb=qOzvwUWRTGvLASV6}eD0-;G zq&AVLvyh?Z-vZ3xFRH2C{IQaZ|4#e|A zIBs&U=*J!3sVJ`i?A;*4U3nVv><)0y?hLq>5_s)$%oA0TKD+(F4_ha=T^59qFRxB_ zc}+MKK|ScIN-|VS7{xZUI=Y`1VAi4+Gwt-=MV9N_4=W|#mt8~lW|_Zx{}4}3P)Kx73(x#B8W_`7Y(7T*m4Xv$qFaTg4b^sJs_6cblzA$sd7N8tHd=e-N z^xR|4pUEmp7Z5FE-u*0XCJX~0Ygx!1!BHGu!(1r>1%Oh@T3Mxf%kE4G67H!obI3_| z`%@VtC-}$Wu}|1oaqB$A(v59(h~Ah`9j3#yZ|V$Rrj;unP}M@IN4O$ATlpK_!##Tu zx@0D4OG<6RI2<361b`LqUc;KgVAI;=)r)tLR-e9C0kR~}wH2s#$`(sXR0t3Q@s6y_ zG^LVFq?*niNlB#{rHI2@U$f-iJQqcTASa93W|k;sW${b;aIJvwvFnT+s->VnmJ6-W z7D%Y0rnpgb5wt7RjUx@UTSzP;8I!@G+18Jbb4i!8bY?2qLS1!UQl?`9r1!%2H~1+2x*8yq$S@g(KMvxpzP+10q$fv zI<2A=d~ulN@p_SSm^bhlqzdB!ll``_97i9Z!0()UPE9fyu@J(6tB}bzet1D)oIeBq z*Z`(JO=Ytq9(C7?!@>N#tBuZTh-c!Z%9x=vZD4jUQzbFhOuZo?$HP9B9OsBN%x*F~ zCO#{-TY_>Idk!rHE78kw%wb1BeKtDwaS{SP4D<(Lzpl>R4L@(RzE zPWNz9dZ65(WHu@Da*~%o82}^VXBkRiwz+m&mQuTOIXoaIZ2aMXVd|X1lsF&76^1mA zUZ)}~0K}*Te1@wWbL|3o>n+UWhwiUX8%qO|*pF!&O3joURP?IudzxQ>_kpXrw!kHb z!1)*`w?*fxCf{5rcg;*be>Crm#nYPdx7oq%&&~$?q%>0XStk`2wPKCb)0TZ}+*lQM zfSXpLH=atZttY_pJ4|H-e}91@-CAFk@;aLz^TVt3D4&frF-u4j2}Qqe&1Yp~z?=eb zU=+B+M4*OD~Pm*zbv%3hi~`zciH3;+lMgR4VeXlX>NPRCp0kp^--!FfwZ) zPT+3j3;%!%x|a+mR_EqJeffyMxCJo0<^r%=I&gT-^zVL~C(@`Tbnh}$(yNzS*TARk z{hUSbS}R*dxryD;K{RefFu9>`COl8MYf}m8As2_(c4V-$C6+-F4|YC^uV8C?O(e%p z0{BdUtn>@dklMCoty!w><9%#gr2{@=9Jcy5>AhjV-5#eKw-J|3b(?;dR`jkUphSKr zWW^k&>~-P{(i{zEznd0F-)r{t{UhB|;{)nN(UDrsQ_Mr`zi-Sd_Ja9ly*vjIt3vI_ zubDOh%PYRP5kyj4v)WxEN#x%y11te<^`9LXFdIPojQWKyO7F_f&83yyg@(>t3-NZT zj-d}x@zSF2z(f*m1BUxnNu16o*V>e{Ekl5KYER6{$|wi0w*48f@{k4l*S!C(gknj; z`qTw}^%j9WuTQS5hX(Um)t(e!B}mWdP=&1}!(s}RC9|Z^e^<})^b|Fq09i3}B!IlW zmoE5V`8Sx0cY);CG=KOfOV(D6Mm*~Nd{gNfT|sJyrAv70uYf* zyhE7-pUWG+I=7W@HiR?S^g~C?rRnhTbrh8HT9(dod`egEBxZwZ7tyUibGumL*xe`U zl3GXn{gkhnKx{V=(A#`Hyw5JsY*0=$`PO-F;B<&_&Ob09*Iu9A4h|Frir2eJvDI?X zfD^}yj3$K@Jtzlpjfm6hty@0=<&&A!3&@Zni>jAXEIx6#(3gv9AGNGry~9Ha**oy} z?hV+n{wUXX%2E5u>0dySGB+VPL$c+s)XwgU;mu#dj|Yh~Z_jGEX*875tX;9B!C~qm zI8YR|FJY+tV;3wyES*pKp-VD0CeN+!XzhDX+|xr_M@|CB9}{jC}?i8#9^ZA07m(xTn-d<%C~>I+ck>G}TLf3B9k@3hJ3R7hOq+D6tMp41&ahF=2m za`NJ*O&@%6Tx@C#R7F+8qX!WYM&u*odUv#d*AHzfX>lckT>fmgb6KGE!|ebMc%pV= zWnT_2Q~{-9l8^hKG}HE@i9!achI+9LdnD>t77$XXoQkY6;E6%ecX>c&Kl1V2$M25s zA5sYsgts0~-TkPGP!v%_>puV)7$}Av1@E@MFxYCk@)xg4wC4AFA91{hS`}eDTttt7 zsMa!j|8rltG*uel>`z}^!=<>ScJRk!ZBtT?2k&NI7w%8Dbr`d( zI&eKOXY@tCUFw+v4yqA2+u0*t0y1y)d?xv+y>T&=5*-1&$YS+753h0o&_+}UIK%`rTnrEu^Qc5M$Ca-Y8_>r48qDEx#k}Uko724 z2Oi~|B0l059vgUz5fF%*0T_dXB#7S}w@XhIlDdGH5VBqQW`N0aG7Xhvz|6Fcy6)^w zcU}d}z5{nR_dzA3_dO?Mk@~r|>Ss8d(Hd{7tF{fD{vtF6YFbz1_ut4Zp*ow`Z&I~P z#|s`Jr1}Nb1iFn7jpOOr8ag4+XqNpSM3(`+5H|&i7Yc(aAl6a@@O$&npCT zqwHC=#ncSX2DcFw5LiQnhJ3AUfNSdmUWk^*N93g8h)sJ9Sspruv-RjJw7Of;6edbj!-tig<-rm%X3<{=Dc@l-)|C`W@A z4>t!1v+co$dIyMvp*(-yLBLX*UJM3kMA&XR@OP}ZiCT9A(rPi0#^wW4lkN3BzK=577GJNa^(4c^2E@WW{3l4~2E#5lK zjd_3JQWYVo5;&5Yf8Y2GQRgUEoYizvB?PYEp=g)OD?d>Q6q4IXE{_>W6t3BPKac8l zaoo6si}{C7=Z}ZH6&y{|D-hQHx}1g2H_zTlj2okdWmAwPzjYTG%_Np~^R^+L=qYK> zS9b<>{Eifoqw6eZsn9z8@d_9ib!+U!P{ia%seo2~0Ii4wWlCD=-K7J}p$wt8m|8At zZNvo`zu(o$3i%|u%dP-LPyHm)ae6&D2e5>4dl%OyOGir(gFZo+cU-%BpHw_q-iq{% zAyijVtpQNI@qK)89xgq=`UCb<5t5CW%Kilsaf#}=86M`b=Zpr!ueY0blXG6)O>th3YtB80%0&=U3 z0Zl+9T!N(qka}2N@$G2z9pYEm1X9Y**kS2RapO2g$ssyFfSU`H>77B;?9#q<1$b6e zjB0P^9+Tq==PW|pA3(C!;pEp$@)^jJlEXj~h(kKl zTik@oHca|r@Vemi3V-brC(lay$8hZg6A;b@nIt-f2 zUtSAQD_BYIJh^^x&C5%MH$9N&57gCHUxEBG`9b48F60QZq{Huwn_C19w@Dt_2MYun-&rJ}X`hOr41VxKQ$l5`6)PCC?J1i2%xIxKa>HWyZTy=B2^0Uh-K8al*td!N6&l80h4KejW7C+N8Pq`G52 z-a4zNZ=4g-XS@A&!c+*4#nECA|OESn1ZTELmI3 zZs<>C4*C**y?D<9(#*UYom^)tK)ht7aIHihE!Sp@;M;Ah9T8u@^svgAl>-n0$7te_##*PHGK#;i6jb$Z09`_=m3i>E^}c{l;E2c7Kh3m-oy zp`Luu>@Mwy+I_Ie8D>!{S{#NQ$kUNePRDu^P@Jb#jYe}Yvfuk4{d{bU{UF(8P%(Hw zJ%0u<(a#7}duFXDfGOD+NL ziUJ?0d$v@`_wCCG@F%CT0M7$F=Xs^GL+S3V6cx85m%@ZPCTd3EN{iRs6h=q~xbhDP z5e~-;$L;r_jLPBlc2$I7P>!OK`CaV5=kb_nCi(yvw=kKMCoi8mNC#vh5Qj&PFl>GW z!Ku}YzBtB+2mJsxbl&5!9f3a#B%`>V&KrJo^^;)u_~<;2FOX%AU)@zen%tv)HUdzF zHmVP!)UL0Ob9w`PgE`M{XFnPRcf(1d|; z(Z$;vqC|nb5)n)!#N1ZhTi?yvN89ArQp+3YFAjr4zl1*B*0YqZQ>QaxhT!|tKZ5^f z0~1@&>EL;1vF{JTUY=w|qqP}Sv-)8XjC17)_!-{8%L{wUL;o<9#!CbL%=EnSL43_n zMo6`%q{CfYAMqglrp_}n`}uyU7w+6#i3SIV*4>_f3iha8AQWP|^}NX92hQyS0&AQG6@ zbUx5eDt=yc086Oue4XZS!vOCSE|kAg2~GjT?NRZi^GL+ak*`6Fi~FX#ft)BxCR9l$ z?A2U$2HdYa0RxAe>IGp=v)hw9br5V_GI{X(7wKjw^dl!ImJfDLm}__9L_5;YWs5wJ z+6Mrx23mOLfX73BzAQ_X)q)ZBT#|z=@9tA6#_mAjfLKFV(sK;y>i}BkwtaPAFl;|E z=J15@5Bx9#pwF%7ShXl=Cm&ClzH(LXfLTOwWY8llRKv#BYF#~4xrhAYeOy4gybXss z2Vct*VXrSyJ%F!(jbUsF8IateoEZ!~KUDW$?E{OLZ}LrZBKWpgWnxZSTpzbP}2$&<#U*GyTjAsX!Z2e41@NxOcr^VD=D~-YUBq79q=)J z9{7$Mt7d1v-)~IaGq*F#veY52*tEE3fL=p~v=$TeB11?yOkBme0h_KIz8}|Kf*kne z-@rHKF5Vhe-58=oO0k-j=)(fF|$h_GZ@dXGGDnJVXK}-lFRP?1rd~O z9aRFy7zy(AkpPb_35P;)MQ?8>+$0SRfR>iN85 zAGF?qCD0b0@AC+02XVdm0hBnf`~cC5TN(Z&*!TS!2{uns7Z(RtJV1-bVgoq@?70kL z(0;e~JC6f&14c#>>|@OEl@Jie2xh>S16cCA z!b*bjYh!r)3xYyoH{V<^!&^&q0q%eT9s&j_Rk^ovAulQ7?XHP>I?#Z;{E1f-Z)1Fb zxQ++1Sc>`=zH(ax91QsHoQo^Fa`3!@#U5yEOFNl{QEeEMW)_qRN5Fe|{!%b6kX*z~ zf*T=fvKED0sC3cj>!Y$Cz~6KS&DvDqT+a3J$$;Rd#gwiY2G-QO**QVdSy zBhInxS*HkhXWAa(@P)-9<`Wd zTFG@9&REuoze&*NjA9NvM&#G`>wC4QgLz-~*-I?vQ&E z`3W^Bl>EmTyaHW2ZUzUrA>g&=JR;x4!#Fd=t0eP^qqdsL%(mxSfU z9_xW0ju75Qf^`vx zjx>*+Rv%!gXqdSB_5-*p$34v}8-TY1`Ker(+vW>+?VUOv9>lG3A<0WlreB&9IDgT) zqT*>EG$qXiqwWyY33>y99Qt(pRHD*+q2dMZM>_*r%GZe!4bZK@C)U;b3wZ=t19}0< zc$-`(>t0_kQ#Anz(#;P|)csq>i&~o;T1FO-f$r-qR3CTQ+@d1~mYM6rl;&`Pwhz$i za`EI!LG?=A>#5M)O_Vq=G56jL0yIi))X1q2i(bpqJu62#OgK-4aP}oP!3?3jR)+2` zq(fs2`9(V&!B|4=t~s`Ydgx4@!HkHN6SRo{7oMbGg@sI*s7NP( zXTR5gU&kkgeTQf8U4i+t5`Z((aqX2c&r9kUjPA-l58XPhdCE=T*T7<(cOv-f31_)Y zQ1@z9H(ItoKrDxwR@Mx39o>RG4P3xGlSe3iw>!DeT657l3Hg1Y?pJRNm#iLm%l(Tx zc(Nu?m%*_dl5_SXF!b;o2n7nM#`i2MnlMH}zUiySLmQ4^xDLR9HJQ>p`%uyf-2Sw};{#+eZn$#n0O`JD28X6_x4JGspYc+One%cS66}F_<(htBEK~1 z#mg(G&uTDCW+&hhdf-Vl1E{#}+5zr|oB}S0`Z;}ls?Y`q}zBI_I`t=?myn>o#Eb#QKM6j%{i(KmtS*VExV?Ts-8A16~ zfvx{3v=CLHsiS;?5WzqhJ0EExJ}_(BgP?Vk6Wec8MFs3PO_hTs4;&+gH);kcP>q%fL59~Zz4!oL`z8l~s0?#wg8Su58dxcE-fLPPe zdw0XTn_xnJN{P6BWj4x*|`D$qoYGu1F=tZz$o_Q9RUPr-YzB7mF@MCUucjuJ|9BBxzI`(Q;Jx8HJ~T90jxT7 zHxBVF9`sT&`vPZhq_d*<1!k=lX$&$@&?We;jrj^r*!K47!1k~Q)6c@fgb6_Wg>ED8 zCxFtV3;aW&2K^{<1$gE#cp3%}y%31O&tM!56u6#oew`_9 z5A9|k-&&T0&WwGw%V#}s!wO3DTcy_5D){RWHBrK&0QW5b1o-!U8f)xUi-4aXZ!7$* zpO44~0pKYgK>Rs_wWin~ZXYlI%QV*4#`In>m& z610i*l%=%P5%qeY-c!hAy}2|v?LO6{|x9G0jzo!`YABLN%_HPGo3tuI z{$SqFwT{)m9q*d<;6yI;ZpkSAe0_BllnX5KYX@Z7S)<5-$IWOnzP|JoVC+Nso-PmX zaSg%}e9Xu63ZX)U89GDrWeFvZbrH_5<@l(;ywUYb>lsH@sG)&(8KAMyr&f74U7n-+ zxM2w`lPC%2@8YFUYXaT)*MTmEyM*eoL(IRS9|iibr`F78A(@)%37XaHPegoiEcBCl z$nz~;@f-3Td*HJPFCqiPLQtUITh=~pPK7Wmw50%32>l6umJe1w0X1-^kXA0Kw0Z-& zikm*q2Ybbk>ilM{gUC5v*JY}Kw7RBy<@yg^3 zb5$(x=*Xb8Hw$Vuy`jXBYp}>U;^?0Y;|cv1sE2%EOAP`RMP*|I?N|cXN#4*5UxeT% z*^eKnd|Rdl{uW_uP7%SFS6iyKIV>ZWQXV^ioT7@v{sJ8B`ssg zzB+qXw!w6fKlBoBB@AZXR9X>v!`JZk#@WR;UUg5UZ=5-R4epqoS0jfWt*}_N*VP>% z^*x;f>QzGgH_{DrzXw8p)}VRr1$!(cb9~`t3iK7|+k;f`X!JI2<{=oNREq_t3w{P0v#y+_`ZFA`~(GA&)=9b3GQ&33wQ@6h29-2ArbKiw!Q%{FL5)XrR~szi z&>sO^BzYR{eg7kaVQIuV2;c(vH^fIQZMV~Ct@_MjjtL`r*wI_IrAPygZmw$EL*Q$hl z@f2)^2LHxmGZNQ12F>}T2;iJ-K`J}X_czI0!9-NDApBa6o;ygAGtWUVw+hjBH>L9i z9eB&Vl|6JR&hz&pnGdK*$zk5 zZ?WDrO%zYI_&RkUx0qfp3zbw-#Dxo3f^-M|Nz7{K$8t`^-*+ z*~MRTGvYfBNaH%3VebprR7C!uxPkHuB0|vI$N~t8d-eQUuYiG9YB-zTMMhh2KzGa} zH8fbGfLnf@8LG(uCq<}bVF9ig{F*=!>GbQK2gpMT1v_ju0$zjX zeD$IWjT`av-0jZ@M{O{ny0h)RHH95_q^sl#^x(#^8N+;g80R7%V2htiXc1iN+aYk% z*rT&=hI<0P#(UGo(8GfotYNIR?q;{^KQRgXX!O+2L{}=U!W{bcB`{jd?FYCP3VhR41P=KpFn6%8$^O`# zlq1q180a85whad}w%jW{j{0%NQ9(BF`au3wUaGkhx0l=1b#BF;m|HK}@u zCh(`Q6AIYyXB;#-^9lx*`W6KW%!mEM(4A*@ALV-vP43oF$iruZy$^>|oTiz~!_E>6 z1G`#LuRS9l^C3Kf=51qJz>;zbJM4ou*-tnKKy1murx`@;>K>deUSHss! zgP+=JH<=^&`WF+dFD&G*qJd2T3I;ah5|$@;st(D6LYh6WXFU|U&~s5dh;!HNuON)M zU?kgLpfS~@ZLWIj1nl1h`52)S90*bEk~Ztk2c8;C9OUR75B?rxBvc5ZE+JmHTQP9V z4n$3(f&9)ulS@*{EEa;U)ij1kTmVc4Q)o&96MMRAK=cg=CRJ=8)vPXeiD31e>EvG)zj?0WD4!sDd|Hx>iZjd< z9%(MnwP8VT1M2CEK=11yal!6yNOOYT7K|&io`>lzp|?&=&7t36BZm{GK~EMmQq`Y$ zW<>Y%FbDnu+iT?-GM@tuUwIH&Kr;bm2|8v$H=PCN*j?fF9ONliV2;xd;2_NlV7tV; z=YS;S^)q#VredeHRoFhl%rco!YN$=ziAi8TnZa#gKL`=FML9lou%o>$#2)sv%C-*n z?J^-AqtFh#^1}$;_n-}EC|lW-hkOcplz?K*X672I&k6d<>_yltt$!T#Sa@4P&nD?v ziEG&GH@m-hF-=V3MePZeBA{1&J;8n(2LZI`!~aXvnRP3QZQb?<`9PtfK3dnPfFQns zB3J@~ivIfB=Z-wzeaM#QWXp`$p|I90#^^&upAwv~COD0K%}(v>{JCeQ!c@%NDEnPm zJ<9Ix>sngOpL!)8-9Cm^eD9n2a(3F*P6K}J`Wb@GX!NQ-zq7Z3Q|f0LlaGx~FTvOr zvLVg!JtHw+vorR!tua9}+;gzaHbwivJh?d*-@LQCc2L;#W*_I7B1IH$*U%}x+JJ+C zmtZ0X{?4zfQ35Z;le2OlHRqsEZe12X0j1aKix#Ffc_Eo_)Brw`f7kmj@s}Qhrxh|L zUZ?a$V>olV%$ha7sgD->6nVemq;ao|TdMp=;+5U>1E+z&{HN4r($qIP90=`;`2%~k zKkoq$j3#$&V9&)FYi>eJC}DG39B`>%6Vo-KCG`S zADUyU-q)JP>n(_P=V$YltP|6_J=)>3RcqIcRP`qbD=hRco$!l4x$HkXwz4l58BUkM zaktk;cSZ@@WaXsz=r34}hYw@Fe(`Zx+g`WlA;+wThZxVHniB0AA7`~&f~|1Ii! z`U4ncXw(N)5^c)vX?e;AJNQ1>_uhKo-iraFL179|XqM=-rocP`JbwU^YPtALcWzcLgPz^LIx{_X-@G5=CmNl@W$|rLB!43`NzkES zsod%#F@AMrX1wrzdECBTk*70`V8!uEYRW)7Lm6UiOgOC4(gi}-;*9 zvJf^xfe@@OcawPCWdPeqn_0vRaV~tTA)=F>ZTd47yR~>T^6PNtyVzEY=JEAm84!DLt_;h2up$L5ga49$rjIM0p3abc zw%z?Lo6NZA;H56@ov-1hcsP#c@pBqy*~iEoN;wcOXAj1kkJ<7#_fGH0xwq*JPF~J; zU<;$;?;YXf2+u16?t^tTdyILz@B6;*sD=F+ug+XDj4_sAD!c4P&JnfIr^!3LhYJwZ z!%jyxmZKBrNNjDE$n84JdVc%Xwef_jw7`F!uU^GV3MF~&itnq?RyQ@^oi*(XUINXy zP4|&j%(n9Hix*#HzG_snMh_%o;GJY1BrET~dB>i;xy!uZ($&p0ggY@FEUveX)P7SY zihpO7W2p}=z|FV=AJWP@Q7xL{b@T@4xGs!E+Gu&*anEKczTIZ`4KlLbJ`MToUidBlz_93(P$?H5mMlJf_v&@EXJl*jr#12#AzM$@Cw?jxE%gNTbUXCBH(mU+E zwwGwz>bQ@Y!vygH*I6NM& z&)KFa{=UZHY)zZz{oNl;XJ%R*qi=nKUIs{wuqfNL-SSU!CLUHfy$xmrW%%w@mW}4d z%zn83SJduVfYfh=aOCda>GlobBwUXQZS7#Nqb6b)JhD#T@T8dU&kAQZ=fr@uYMGm} z&7J=o@ljYQvfHVc#V=;rI@_8>?XV5~5HqoI(*ATYun%f`Za{2)hGU=m;wXp=GGlE8gRac`CVEs3-ulwk$N90oYn?9* z+In=kh?lCi*Ztm4cJGA7|Kd;P57Bco2VMCXDSLSE;D^ZWUVJ?fu=SX$HMYV~Ijw{Kx%)m1>Yc`M%4EjQH}>SC zjGWrgD0DCQSRgwJPlIJMSs=didP_DJle=MTfur_;R^V~5&vYwG3i|Cq~$ucYT3;R>2Im&dN&>?0i4DL%N zO2$^hBMTu=#GHenxrxB$6ml2)OfLpG-IMq%phS&|>-Iq5SkBk{RtW7g!DTA#)ur>E zF;Y0@0Y|BZ!H=2Um;V0}V#`24{!!02cH(THjfnTG@{85U_pe#I!iPOZR3jS!EFuaD@5&aFgm?VqC_qqfCC>vl$; z^VJiM;hIy5wq2_|rtNpl6CKs;@62U3b)?>08(Ulo(*Z~R;S_vp;pcaGzkxm$1L1#$ zNsIFRRd2P*;rh^$nWp$=O`lDUXh)4l-R{qwiqTuEbp}VoPSjVw<36%#hugFs6%ePB z!|(%L1XSXaY2tVw+6{g5)$2=5xC>Q!8w9F$b7u(o!gIZi8v~)YwtVZoV6$hev-V+E zHq7pHFqrwr#_I4;)BvBFnE<_EeIqqCoS5~8-7Ag;KbUx^E3R3p&VI5brTiGT*O$t# zIS4FPx9#oLxwJP;wbAjO16_IPc`Ev%M$~#aPt`^lx)wj|U2g$D*laOEKmV9ZqOX~n z{Zwk+FZJGiQ#Jd`(VO$~5ZL$Z%DNjA!8>a*yFj*DIB_y?w6+Riu7f||6VLnC+0Ly_ z27*qsy5A+Fp7%Z9jTuB04cV0lQ`F)6?1>=u0~`C<^9Q|@E@L}?daYrHIqFB=zsBmj z`_)F-`S{qn@F-!FI#3C+jADuT%!uO&jfi?2S$FMO92-&#Cm2+**RI1b#D4zSte!nX z&BVKnSNb&&A7Fi>4zEX$BH@+A6k5h{lmcB+N=IBh(Iv-zk_jNd3i}mszU!3FX z8>Ciaj}VIiL>suTC|qWJWxYW7Zz;jNn3#iM6+6dw{XRIoA9Y%0{f6TB^Mu>2my?ly z!6$~ATfAn@&kSpeCi~xyFfb7D+gRXb8`BvCBrB#ZTG09_iGso1Low zVZiYo#>|ghU@bLcB`xymZcf(|@5mf8UKIxG-?Qjl(DgjX-|@iOU`Bp8WgWtihDKjA zvBG2_jnkc)azBXGJ(%&0+rC`v{7u(V4HBHhA`bV5Imvws%8&R!vJjcio2nQPLq*w)o zX3Phi<9|%9_qADLm@@30t;HeqlZAW#%{|!>32(lKZ^=Kng{dTb5CL-)C=F@>>wo+) z9$$Ms*jR}j*a!GVJ5ds z7zOx*zJK#Y@dWFb^%&ZfNBiSkHPbs*AKA&veq=irKWe>9w)D{53&fBL7@K|!LoYN& zZCkXpviqvuwou9WsPRG%Kz%YoTyR}n zr=t1XY==FWnhIA|G>W20KBI@Q$GQ59^dn-PE<4KgsU6hobz?CCO)>2clTQ%R!%%am z`-A+h^F_4=auD#&-Il zGY3DXo}c&ETDv|gj78JOy{xalXlAvcrPWvUy?L8HuBR?KgK}W2_xbM{wS)=q*nbbl zRsM9iZQvv}(8POu7x%#?-Qo$Bmib$7`vLA_%%oADNPXEb{Y5tr-7K%^X*SS4Cz=0h z%wrHpW7nR#6HD zx4Yr3QlBh|*=l^dzuNHv_t{>*23_|G=k2A1idjD?7W1RMT1ln=g0I(`E2xhz>p(O` zB|c{O?X~m$I6k*G{W**g;oW8EHu)&)6Z}q>9ZbTbGyN>u^Wvup+cs_Plc=Jco?iAS z^z)f4r^e@U-#^5og)Tfi?ISD@l`!`!K5K8D4Z7PD2a*@fa>r@w>PE z?@ZN=^#SC9Baiej5q9GJ`f-Mn{Df*}(J2zWq1GEJdRO>4{P6<>h4*fmL@K0|4*S7- z9#q#LTh;1adp0QUOIjsb&pJQj{g<|D+=N)ckE7o7Hx_R-FeA_IZ0BhNMk}aVny>_9 zj+{|85WO-Fp|iJO1aDvn;HCH;m?A8vJR7$~5G3fX#&NY)|7Nb>2GC{14DoILO#2%( z!Z=ZFE4F_F_v*4Rn#u|PIgUCBW04Ps`0hZDaq`6$Q9vA$JLJ?)4dscHZp3cg}VKLZ`!tMdw<%nwofDo zPi7nC(qwzD?P+j*_YfY}N3&g1&M7N)jX^$sn^*q5uOo$B*Zt!xU-YHse$brts#>zK z!A3R9L#spH%O|9sHPcsvDzpz@ANi1I0b-e_CP}juGk)G;f@lp!<%KXhjeg)$!J7dZ=dQ(V6dW^}) z(R#+r8NRv=#_Z#Sp@Mhe3oI8GrQ@sTAo^LS8bj~w`PcjX%XX2|mIn1}cYaw_Y5T+S z!G6c$+**F|`GU{-EcU;fTED$hw&X_~Fqf%=vx;2{91w7*r`XR%qt&S<`45{-*Loi> z;t`kn;Y9;Ky=Cw@HGgj42Y2fm{nJjio!H&f>Y_Knwr#SzgegI+2z*Bij`Tn32B6!NJjeNx8Npi9_<|I3^#iAai zb$*{g@g|TZ{^Rv5#0PmHfdn4@5dui7RvV*zHh_pD9H9w@n9GboG!e-VcMik5K7z(p z0j$4-f$HJ>sv-7r#pchm)BE_SBM)k$jKW7^|$8s zQ(nBFGv6@_yD0C)uMGrxI376d@$j3B?N*O}vh-17o`ZvU#u>Q0gvL_dGH1ElPDz+} zKf#S?-m{W>OPKc43q?Qj;N8PYAH0Wwn~zHWFwVO*;m0z5Yeyf`zt?L0!9f45_&tk- z%~HkwbZ@xDCk|Q?EJ&?^Wq8;SBje@|7Xxw=E|0y8FqDbja*IE9sOZ4kYaGI|Ya>6Z zy^RK)BQ!_ZZ+nxgCxy6}Ai4u7csIt*f>r+>{M8z43i(B@`}L{CG@SoQtGwuLMAK{! zpby}mdplhH^I-}%@48{3O#c4Rq5Qdb&11vHRyRsLzS`{PI1?uP?Egw=b%Nbl!{ zne+?vg@Jud(Lap=H}(1EhV^i_^%(EPzgM$0x>Q=vb5q2j35;xZW3+KV^l$rX{5a!7 z?sG|?8!1{_-2<3;Ya+UI3^Z0<*b`a{J;9kavSS)5efe$ajZJUBgz(2;`vGRp{jLto z03L(*(;em*&uNTYO*xNe$=mKUY$vC`^O>ez_oHU@oW9>K@ zoz|kAXZ8mXb(@Z)^sFzcrurSt)Y{_gr{<@6bSwB zS}avi{GeQ7@l{dR>A6-a{Ut{bLn4PTS3}Z-ld% zqj#I<-P(0VTz{L;N;298Z5;L%+8mT^jji&^*);W-Hh=BcZ%sYmL&XB9_AlIYl(vjy zBZ{3`pV*;z&TCd+o0vJ%UUgHVWcqadaM=6tRP57hbJ;|_P;AJ47{9@(k}DxJIAb`h zi~hi0CT2s}^9r9!INA44$q|p6WDz-hNq7eQF@NlJeUVh3?{NND@c4)Maxom9uLrc$ z$4B=w+2ga38Pl%o@<86%F0gMK$+I824=>cO6Q3&{O4e+Pa^NpFL+2>Z$5_SNt5$65 zn-cK1atM;s7T5PGWfwLQww7cc^w^Yf-do9~@m>B86V24cQ(nO&;ulwqy~-Dyx zsdH~a!axj=_?!OtHn{ZnUw)uD^bN1-1w=1xT?Y?tKkYGib~mtH)!MV%tnKf!b?h%s z<4U63l1xfB{QKV_5lKoF?xwpX#+~n2W;Qa)sbr@^ckt-ZlHWDZn(A%WIEA=wFIHN= zpa*3fk!-0-l6aeTf{C%Q>``s|wVpL2-3RNROD2(pYr2_FAI+h2{&hxEhOxT~ct58^ju~m zhY@oOeUeaAwDKf;T0Ntf$+f{G6RymXTR`7dY&-xvP-^)G=#g2J%JGq5WiK0f4c7vQ*2R0Y{dhmfBsYpdR@ zy^B$XD)TU4Ul=;Oc7IbWY8`cWA67jygb8dP_mtCs5%W1rC)BYM(J%2my@95>TCfb_ zwftNm2mv%6|6^ybGv$5gj`t0-pKMU;un0kAl2Ks6wq&OyT1fr1S$fko(WTlepE2`# z_KjDZN|hA8%~R=L3G4fqcjHswEnsYLN4xl)u^_d^U9`NcV2alBk8N_+9t&?i+Qm(ft_q7W*ZO_Q!|DD62I5^p zOP(EJ5n{25EKHqK>3#ZS(}?#^e4X-lW3n;G8=aptvONpJMxU%Arg%F?T|?i_PvOnQ zYMkx1JG8MCZ;px%jYJR@c5euIE1n?WYLw58Liw~pxYKCewVB_%c2_?ZR7ZlMvh!5N zm+U6IR+ux|zvNQWjAV9y|1^TFku`PW_V|nf$@3d0Co<)mIiA?UmmJC^KWL*cdV?@+cJ4*Iyka@k?i>tc9h4e{U-7$kKz74xsNrITNxR;pH( z9N#{fpWCdXir!ff1+IZA}miV`6I9Au{MsBrISwO6buO%$E2x?@B~>U$8-? zcdo%I``Zie`O~#V`z9$b7$gyc<2gBEjbjo#8MHe0dizFD*zQN$efPCQznV4fik&ig z1>SXrGI}FgwhcasTva18nA`~hX^~!aG)L%i8%$5f81wpH-x+#VaI70!tIqW6a}+=4 z7|A?U5kW?`X|A|>tX1~*zR-1Y6uU-rPUG2wUXfTRJ^{p~FcJ5*XCl^$n`NQgn`aEp zEi_I|(aWr6e?AC4_VL^U#XGHJezQ33GvS!elTI(V_3yz|ffrkpU7}*npMGq(nUi?4 z=cj4btL;ogeX%g<{(Q_P^RmC0yRRtGZEZf6mCT)F&Yn*iLpZ+99ba`>zY~NBVV_!X zTqW6c8xQHJM*nI$^G0il#h@7t_-tLNLEhr?P;iu-yZr2-$XsN?=@V=A*52n@*nULJ zmpdnh z>uqj!%WI2QVN{zQm0CAy5y!Cd&&&sMy=Qd@$4pz2X+)9yZF$emOvx@=`x(BQ9V}93 z_U=+YjC%K~jt23x-A^!xJT2dN_^s6nZ@#R~qTRJA98}pO?(dB4-0tw?n``SH>>CD5 zKfKN|;}<C_qH)`ZnlwKOS0gB0v>Zs&eHO#gX$#hd@3)$IxF*xg*K z>U-Mp$MVspNe$2!FCOoz!z|f`7>D5+(FZ=G)p&9z>ubaEZJ>z<^SfI0sf>u25vKO# zg>69=e(mzb940e1cXX&*$qR$OG(&eqKGOg*_QhSseykW|RDSLLAKP{FHFkREXH57U ztd&y!F>9P=lUaldvg7yy7u7!_e7w#eu~|KR*!I!PDJHJXbNe|*6F&mpm)|U+O;lnG z(vLrDY`netbObfjv)R*L31OUGdYwKv(kgOltvlZIihYQA&9k8&a4tJ&TSP;gO*W&p z`!h!yVY(h!v!-+LNXg~*Eth%~#QEI5_YfsG`nGxbTq_2~=kB(j07?2TzcAC-LVS~v zT4{`V7O&oC1v4RN!?GaL7GH+h*jGrm_JEV`f8P&h3G+V^H{b3b&wl!&e zejv$m$_Eyvi`$GT@$dnAp{bN$X^;(=B_N!x=8?|kRmHB1##cpzTZy(Kk5e=iIaY6qrIBj!+lD29r6bs2AathClp z5$vI4WbsoVm?qzu4ak>7-%V^x{MHOzgF;${ak^C8ZRtSrKRJQ`v7a=(Y&3qH8=?0w z%{U_OGa4nr7LeIKwyWN^hoq8FtF=;Bapi{uBs|Zb^r>(2!L+qJ+tzBPoO}1>bAoDO z%sv2l3O&n}9mJ>ZM=R=EvwECGV-R!iHV)vBTL~Oy11Wu!HA)W8*<}`$Ff9_Q4QjT| zDzT1`S;tOX%d)sdaFZ(h8%u_*+k_#YkjAa6WVO^TEmO5DIV+OCe|Di4vc{o+(1l@t<0yoWH7s9Z+v*&)JCTBN%PpZG!1B`t93okXHPQ z{+6WXP5=5ae>5>ZlCWB=PG8t*>d0glLm_s9`JK*SyEUy}N4A7&^0AMT6s>}A z;Ow3Pb0%pd*qB%VD(PrNtMR8Nq7mtquk!jsUea*)uK895fNM5GJXFg3+~)kc6$bZ! zwm6l>W-8~(AA3Vs0gMir)nPFv?(v$1YKzN%8UGAnXb6)dJB|;tBM0bo0Au9Qah}L- z(1fzD*%u8U>wW!JsWGRP0|3h_krmvW zlRMOToy)jW)$>XVUdBA#;k*AGo6B#NkOMiALj;%K8t*qp&m`=7=IL{Ji3z<1WJ< zy2YC8r`rI;`Z5HmK8?0-Mk$#QxTI?%Tvxpf7KhpL`P4)4*d}=O{_v|O?^=U#pqi&$ zQ|a}< zir&N}*Ifi{OSps0Vs&&E4fS`_#qTa2<&Wgmibr&6!{NDylNkWEJNa+Zjn8xxUk-bz z8H_miL9$XXRuqAFrI|x^7*HFfw$?gRP33$R1x&sGA0%g>=(oj~Wlo}0N@U&T?l&c=6sSLfDbH%dNN(goeQhIokLw4dpGb#fd^9D17*;sa_?-EU5+_cR(Tn$s|n~u_bO?e6b9j&|=Xw`!I20pmVo9duL zVmdkfYd6J?jW@_!`B0wBXs#!RrYJctMY~x3H&(8ht9E=nKR_*?`57fH(jpUz) zVLiM@+bqkB-@yEKdEoH6Cg0t}<^k2@L{Z>afpTo8{-F zF+?z9B!cR$=qxYuzIYuuPp_OE6Lf#YOmvWTiOOg7DV^RnO9Zog*DRF}x9ip)9q78|C%u>RE1eiMDq z-P&`oJ8OPAqQJOs{4h4GLw5xq(6-n71dTHSFT5WsTSJAzQ+PN{&end3EMD{eo)M{i zm;EN3vsn5jnQMHnIS2sEz}xFsGu+L*kH33aWG z?8(&4(5T(Yz1m^JG*Lt@oK|Bc#03V#bAZUjB~R%Ck);0j8%s3U*!)GB|3a zNkB%Q2*-+$&yp971(C);4UQ8f`3~~vl!w&iEK`0B!hO6U7uVr01BEJa_d>tSL;$tr^EX-?7OeT z?IRSNEnumg!fMVuFZ1YYo$a^28=jl{d3L(oZkob*B@wJsWnM42jO#>oj|r2sNh~z+$a0y{vI%2tp&=UR=VjMPPOJ@&UmHu90SqS5v=o2K9DG`y{%MZNwg#LsQI@%xu8 z9;UWXhGRmh?BfjcuOYTw87qS@A zE|_xdC3sGwImiJ830Jm(ez13Sdy6bucwBI#1b<|${!e4eB72DERrr(^3$XpHmZNXI zD(OO@E0KBsvDP|lME4p!p9a+bU9I!!99VVC9Hdv-m&=HGh-YQ5`=o!c6N{OAE_p)K&xhOn5ug`tHhRl>`?opod-Cr4JA82Z zul6|Fhu_LO*jsA>B_p(dk=1RVw=U3I@dn87XA4j0?6LPkLjK#-(PJNu@m$M3aJlsP zCJY{gGjkRwFm%GhPBQBMcB{wO$^K=r<3(hv7fN1UvEUtPo83uxOJD44w+Nh)?rzjL zfjRpLubljjd6={@8@u!EEhFZDcaDeVm?HA#XE(+CGfGu;96m;9)$k*;up&D}cE>SF zATmAJ$(?G>;e7b=dz?vxg;g>n7>93txjAofRITGmvVdEJtrfq=5K+4`#};}vKEeQ@ z{ZJXP(o$mG{z23A^Ycv4zS`WGvX(3x${UXZA8%k<-EI8iI+0tAJv@= zYlqRoEGN;vcbU(#SNxl`*sG3G4!Y6hnsMF_N9#jKHfbWW14NCH6kY`=N_EQ;E@=E< zmDdhrJT)vYZ|_)%hcf~~n~`<1^P^SthJCdmyY}z(_S2k;u*N>5qfHlNP1Nch=mu@` zRqeCeBdFmd^Aowc?Q<4)5TI3s@LQzCqeVWBaqfTJzZ&O8lk>~SQh?<*-B#3e?~ySZ zESfg@rYkd_fm7lx!`}4){?mcax2;rMzU@$pvj7#&q z*C;+1KOXCc%j)tBviCTtD&ReovzO1D1k-oxc?);+G?W9?_y;g?r_)I8Z$0MBB-tW3!; zY(f3+RmOS`&gUgdWLSDb(Ng&{`QBxIT26||mfQw;r)P94-yRF(J_A5oto)1K%=|3; z`SWbOb|NHwZ2Q_Yzx_`qya>~;XxuvHD;FK)4#~Yr&%0c#dF$lZo1Pox@4mSH`EK?D z)Tpas7OuAGn0SGmzjw)hxG;nZgz0miaTRZ83#27Y0DRwBr29I?PV(Jv+xR}(#AEqu z?@R?sn~IKw^g*W2B^nM4Qe?Vi7X{AX7v7Wg?@W2XA&r5c&K3pt-Hv(j@lnL?G3|_F zcCri6XO_T4-Mpc-19m>Yq9ksQM`y*{{_oC*O%{)9I=seXJ$U>&!2XSMyu z3oxKM22|2_e0%9!nUY?D25b+(gPjBL`|U_(T!lf93VoS}g_TiGo4Nzg2gYDo7%tH< zST|Z8(|gkhX=gY)# zc>!b6k40$DUT=TPj#be_#g+q!nhcDQm)ErUNaA|Lc+tI}HEB!-T^1FPg0&L?6doqj z{zlF8gDHJ4X1-3Eo#Tt$>QXGI$7|e} zqj9Is-w4P$e0Yws7a}`YIaS^s)t7A_o^YZ`ua6MeLd=ji$MjryWZMCZS9hLxDmCAmfTdBLoL}?ZBmEry1JHr~i?U5}q{dhF-20Q)`BjRnxCruD0^Nd4bAgI6A^wH9N5uqrH`Ge@0{=BD41e6n};XRfIp3&Bl z>-sX_4$hdW5S7=*V@bSygjLz~A^?#~7U%7wsj+ft5CmOS!F%r>mZs>1B%|{)Y3JFy z+f>Z5d3~H-^~0L2j`o+$RCPmK)WWbQW_At-rWHKatn0I9AJG;`MtI|T6|WAOZtKP+ zpdQ6D%js(Snb~#GsjkSyyUBK+-4{7vh2#P4+s1)S04=5lac;JBv)b*-&bS%&EiF+x z)*3O>Nl3>l{6}GNE?}Gb%<{z`ZXe`|4>TG?V>t~G&kp1ki zRmq#Y75VV?x)taCyFXvW;{BKO`QOAR^L1a+G>$ByovYK4)pW(bAk%rfA|VeC-*TvEEF>x z!%?EY>}`B=%7FF_D&UfCV4t0D*N4r1fUgD+0~@n8b?hZJ=Rw92n*D>phbsmjQ+J9#Zgj(cVu*QPw&!*074laluQjC}EwmytW!J=k7{&!XIaP zN(MDMoXE_ReT+@JzHT@e^VSV~e(9tKWl4tBoC8CAeIy`nIxS%x%SBL3PVe1~0aUq5 z0LsgE*166<8q-bW25(9)5dZYj!S2<5qY03^dq>cB;?BbhHp}qYLsUJ7Dk9#I%#xf) z(Ft@%<>-l+ZuhUQmTiW-9e)~g*|(zOr%{@pTXVuJ{_@IR&%R{K#qV1p;T&Svu_R)6 z*>Ya(M*p^81Ke4;XvBnV7qGXogq1~2av?^bZul#OjKbZO`lW_z^-yfi_?Pp})=R$X zz-y`9=IhK(dCc?s`oVHX8h7^1ppr~6fLrB#y{q?ktJ!BIMLh`T&cfN3+a##mZ({+g zc?;760`+IftiAtSjx6?{u`sZ?$Ff=68FryOmduY+G%^zwxr6ynb*70qBbcm;_$6c? z-NPtbpON+O!bzDmQs=hB>)aFj{n4*jfSf8=d5_Vqg(<<%(BID>fZ61q<=U|XC58VK z2!7=4{$&yF$0SQUvVZeT;RghJdm#3SsuiA2AEwF!@#N%>W6{3yu!^tncNoatuMsut zMbE20uviF&XEP#MkzH6Tb(N^? z{Q1>N_Q2R!9$w7&92$_xw8I!-80Vn9-~+nsJdTMPMPyN-4_r}1szLL4Vjcc1xED_l z0t=&Yj0#WNa1XQXj*JT+8FpKi6G=t|mjH{J-5l&{Yo()G5O3UYW%RE^dZJebO#7U3 z3X-X5fip#8Irh8l8$v^rjm*^lzC%z!8@gLSWWxHmt8n+>iNcfZ=3TutX}q|Q{_{fj z(BbYHMKBdid(*0Bn|(#SI~LC*tHxXAUe`Bmkp9NE;McB$dx7^dJ#KlaszQV7Iu2C?2Z93gk@EFAx;ks*o{QC#@ z&(&)k-a5P8C7EeycXshUdwq}P=cxs4W?yIOtJvV(gNGIAqfH;m{|Ddx-`#a6t$22A zq|s#(_(Sn7f=nSK?uJ#wIIXYhehF}W{Xq+JaHw=o<@UBFYlE+tT!h6L*CQqCUnYy8 z8SgdK+}pShme1}-SoS$IN$))CZYh*YaLe2+siO0Tee^DmQt`6%>xK?vGvw%9AN zm$}>@-uP#~zH3K(G$@rMmz7=3R{Yv%kG8WWD@VZ zh8?b{+0Rs-7x~1y)JeXsde9-UxTBqI6?e0B?~i8}U(OG-J?lrkR*ND=QQ#Mdwf$pD zw9c(pZFM|$TFty|>}N~$&|^$8S`NI1cYG5;k=d8YC@3Dh_y6+oWG*9ll#}Z`QGsSB zJb?FC-o7^l=?j0kzP07=fBLvz*q;q&fy}+=L?+Ueesmu*P9#lYewIi8Xm5BY>@ylvYMpeB;w+}RCDH?4muv|4 zkM$uN80!1T$TGW&4WPlp`<1#|{HQ|$m4a-l+X0A&-L^*>RbQA-X!b4ed*VN4+DYK^ zWxv$mUXi1nT-!I?Jw)#6zgz43oLeL3*Bajsfgqw0XeG@)spPk_r6|5ZYMpUKL?F=YuHTcw% z!REP~6T)iu@v3M>jUVC~+UrGP=LgwcI(zQ1?3lgtHT=sP*8F4OlJp=t9ymadIrqio zN9cD@lT6MVUh`AR6$pci;qDaZUR);-Y*mdbM6K=jM4XpcL29V@cDvD{&S9O^kevFtlh^uitUhmL7 z-fP?K_4mv9(x@Jd)gUbiTb|^<-FCHv9Ys)&FZ-KWW@eq_n*7pn(_IG1rg8doj>l7@ z3D5O960RJ)Mbk9j@n+T@A6n#4MVDs--3`8q+L})Y0olCw8C$^yK8k35zIOGv$5mH( zk!kd{o0!2dgwLNJW3YF zD>^eP-b{MxvY_rJXJ~T$Y|n&3u75)qbWhz#|Gk8lbN|x|_mgZg`xS3An2AKYb;sb< zCUcAO{O<@Lg+pdVf9LO(n)5FU>v_8b+;yWIT~9l>5uw7)V4R-PI}jhbg4(x*ZsJ2} zG3y=bv)%=&%=F?O+_rpgG(GHbGLPlku;2OPZuzy^E4~n!RPOrC3FeUX3dxS>hL`Lt zd(_=MJ8=5chEgAvkvY@rZFE_dT*jBKusEZ?XesiS@#|mag^?7kE{wT#bA3!3t!cY> z-VX8L{_3nyC4(F8eU{>JAu7%~JIC^OE-p9rKc;Sg@ocRY^A|sfU$)%3UCw9QdC4W` zjlW%OEE#nrj%W75qr2w-9Nfndc0>DPIeR|R6_I>0lPG^L_Nw;XQSC!@#yFDtPOIKo zFim6@wO{_mcn8Y)cI8`a*BeX?8DhBYwahmJCqMpuXU*TaUVX1xqJ4A?ZOic1e*LjW zx>%MU?|n3li(q2uCYRc#gEu$L$sw@>%g8ijF)<${qmrJ3&W6=Jg`Q{;U++iJK1i4z z`9=3UyqA|V6u3u)^MQ5CnTLl~X3@ET#j&FXy@$UPA?y9l`8qCBLzu-FQO#ywlIjB+zg&l9HZ)Jn|RZRSGOxbDk2 zWeMGm+3>x(x5uh@4kRl;cD{cev~D9>4==aPs$RuYAPczLaD1TAcEuYi$E{zt^0o*S z^fC*YXf+#@!exCE)$e4PdH(OTZ3~~TjiDA@bVb5YH$FLvKI&FHu%}GxF}nGkfY}y1 z;cZZe9*cW^Wk|V4+BN@!?#Y)oBoi(F%O)d(67jXN-foqL0st8+2WtV*zDZy!M*JjZ z89i|R@?OpJ!|@JleUpT?p-BxXRZBlf_yY@UAuloZ24|=@Qd8(z+ZS*+X@w*W@3*ySJ#TkW03;Lv|<-J&0FgqzL=@3Z>LP5i45 zKLb5eKjJ&FG}9jbY5E1RDB@HiG%q@)l*g~t3L}Y8zBgc3f$gH?niXa_lbNQ-!eHH| zx#*we0A`4chE{si@A{&>uiI>zmt?@pBzReCo!$+imp#0YNHc`nDRz~?ZGEw>$H^xe zeOj}Y`nE*PRwu9V+OjipYstfT2C9inu{stte@|}apT;u-695>}uqi(^IZ#g%|I{!( zyYPL$R2pp~XTSa4oMGJiC1EERlkR<4*Q5QYH-7nnbFwVg-Qp!LXazTiCN`)R(8la3!f3AKv$+4i9}7b@L@=JdKVo8*k5 zphCc?FUxc+if zduq|V)oK|7>8ZlI@%n&tKdJN8n*d(fGnWfblO9%o4O*8Q?ps?kj5UIWh9cT5{LSsw zn{*XsLqFFmE_jw!&0;P-i&wTj#Mky6p+Z&MjFZ;Fo_l|7U_vv^nmm5JJ77j{ugy+Y zB~0Do^LcFI8Wy8|sJ55g)3v?>YG-&4O_$m%9H8({79%bDva%=t#(dR(`ft1W7{k9k zGOS1B`YbZO2RNEJN~x%N17#BK%lY@MaVt;j6TA-kuhYPPn_UJn>ytb9M+S#l5Hw3& zD*6bvh46BGJ`Yw_`b^FQ%yuom&=2d5i+D=BoMo14zf|-(;@7)I_Oo;33?0V+>xO(^ zVAbcR9~{u~FQ+VK-aAU=hagw&$SQg}Ha;vC?=t7t@2mNRQPrH8EfY!t+a&2Xoe!X& znCY`))<@8(Y3G8NFZ{N%9GoK?v4AWXaHEvpG$b9HQ8qUNV-v<^qdbSY6O>ghc_b02v z`81!kp1%JkmjYcUnIvXCiM~6vZZ%rLfV1lC6TA#7<`f*uTB}vBKUWP)o^zQ)UhCUo z`p)?1dda;-po6*}J6%@GtT6t1Cz++V{(8y`wcEgh!%O1KSIhVc+v(ssht65khDQQ` z4YY|(@wcICdi`Zpy`RmOW)IMqAJ%_d5O-wV`UJ#p{aYjpF2zw>h+1U@5}P%PJVIOA`*1ieckvV;?Gg$qTTZR^s8}k zW}VN_AOt$yXCIH&ed28T7riIm5!rh~62MU2ofuKOw=7TJvW*xn0Ya75Q37UgwnMbN%~S+d^G7~26oaFm%wCvKeHHYkw>+-6od<~4W5w~Fx!dG z1+R=&uc`U4<_{r*d>3rrvJi(^B)j`riH81vPd3I2`_Jl~L~ z-AC&6SW8Y;yV0EN@~GWk9Y+R9E1bulqKm`P@or^^N}!5Qe>+!Xt^DS;ryhn*mxp-6 zjXpr#bA5mAtIo9<+rabw{4*DB*V>BOqtW+gh7xw4d{T@w$6P2J7PrBR$20mCmj!UD zZ+Kitt}g0NyaVh5ZQ+iHKdJG&10tyUskzQ%mcqgvn4dehoMPA)rsgSO)QD!`s|Ie1 zyYSx`MXtc`;ndqiss$vEB8F>gcTcmAWFENG2kD3DlFSQ6J}neUXuaORyW6huKu??w z)VXlc(0IK~EuW0Xx5aUwpKmtl5;<8e&(XV%a^O|ADI|YHnKK1y-j0C=G9Inr9|N-L z9w)x~Bu~`x{{GGP|Zp;ADio=0*uX zc(=iI#R2TFj({Mqv_kTkK5bys-C?iR$WvXJq^kXo)$!-2x!j{NCj;Cc&(ql|fBm#S zZN}s<`MZtdm% zBvoWZN|E**nB~_N+TurAv;X*}4G_&$_i=R>y=q{+Q}i2G1c?_4_;h4NPmp6DAp*W= zAjW4sI+AFW2f^!%FM&VAc+i~>)Gt0!nwC)_vtqrU9Yelj()l)b%Cj0cU9;oc$EV}yY$-}w0fGsm*J!qV`^Q(od(&@pT?=`d#5QV=WrKlJ-U~))E2H z+bipgaCq6VL}alI0-e|F%b<_6j03Zv)+xn&y!r`zITl{ps3BV9b`+Xp;TeHRTpt)D^* zcCFRSXeB?*lD*?573&u;WNZ3e1&p7;?l6+b`lpAkfD$J!W^W&F_#H389h$A5qWz|# zRHy8~D$l-LsmX<(%A|5LoM@+7hUc))I=&Gxf9aT|e>={FWITd_PC8GoVuI)RlgE>p=_5k zUKlyI`~}|V|HsprHLI#-OY{f%AR>)EqA0o)vB3u3Y!O6kKoNg^jp;s76>+0(Mb+7R zEv1=X&diZrJ8Gtva5(e!r^c>iI*TWbhP7L5ZQnTg?Q|qC8^KlFLJ|}w2^9|)@(%d% zPak-rT4Vfq4UDLIUrxvG)$yY2XZ!cc6OYU%M|@^q0XKU#l)$xkNfz#5+Y7txT}%J| zokj;?TC(~*orQUhzHJ@Od2t&wM{pBm=es|edoT376n%BZ&*Kp;Y5sZz>0lhkk%T=N zO^%)GWyd>j$WQk=CULla9F?N85E7?$dP7g!uCKOd3w6fPCo$Y5_a zsGtxP%j!N(!bwp*B}wUwUK;yRu=Uu5AT&Dj(tli@&!9b6Zt`@i9=_w+u5sg?x((rh zskB%Hfx%*u&M3od&FsIskx16uKdkP{c6VxDgsZipd|IO!@UD{{c&)Cq+^+JSu(}}Q z%$I=V))ELFpXs`zZ8TDUdntOUzv6|O@d&o1kp2d*97%N~KG}UAJinm-oLq;9lsD?E+k?n1S8&iD~Iiq7970_(xTEPnUK3P2; zt3L{ZtWua{)(>|~e{(b+BdcrxxV4nMp3Xm`ZY z`O|IqbkC?Lx4y7qWuM5Rz>(*5@_8;~Un9!P&~DY6>X&l**@#a>Js12V+H?{YlbFdo z&X8#4*oDXYF|$GQ+Famq*} zc(Uh>!-}?u%eA*%>i%;@o?`CO*W9s6bkz;DpX>5nokv+KN7H*wiBh4hh_~q9F2Fkj z!d~3gc>IiHmN<7}8~*I;^o3h)G^U)c8jA)sF-Ck_c|e-@*WsQm=OvTTK&|_K9qjz$ zS^LCFAqA7&IHpR?!^>sx%j4+-1!$vNwQ(pp`{`HPa{$4=>PLJStNXO74KZ<@~k`L--PlX8bBw z+b_WTJB=Qr3ikEE9Byi1r`RbIU|OQbiPx8%XpQe|#}j?f`)=|g?EP*=$@q+J(;>bT z2qw8WYRqnsc+1IGU zgs#{#pKm~4%WpHQ*H0V1dXN~S{6Teeyj?EJ#x*-j=2>@bdw zm-A&Cb3ju+^ZtbA0~-ZxIr(+WuDbfF{>>inusR%MwgW%SMs=ty>8);>55HoNMn<`j z)q=}*QI4%q7{S5hPfTtBeMn@&B?y#D2io%me~brm+rA%$@e~)AoORlNM@2tM2khI9 zKeGZJDZ7gAakG33&};~*G{zH%H=&=zYXNs@iMp(QdN?il=HMB9EeLu^oe)k-@p7mY_FL!@M`$ISXMEl;T>IySk}o#XURYb)9awb z$HqAfE;0NB34sjwY!3h?Vc!WvsxyM!rtR<@(1N_k{|pWJs5jto9^J@Y4_?uQ8jC=4&!q(it~h`=UqSqjM+tgNNLo4wfHU9u|S{ zh-ZU#oyk`xhc`N4(qj!u5T_3{lzaHt)Mzm(KB6VLJwrUEMJMYo<2&e}{;aVdaZl4f zR^RXDlNCydw{)%v>ua~WZFSbWtby;tiVDyIoLimGg~Q-t6Mjy^PCa@M9tYMEa==l@ zh#7~xo7**-1+i6~e|tcqnB6%ZVMZENJ>6svon8)`DYc;nqE)cD^cNBr0-@Q*sjchi_ihnqDGKCXz21sh%EZ5t^b#v;q( zS1b{)}h{?`yM`Q!0=_Ly&jWH}nX3gCOU6<<+{wTdr39`y+nU|}^DL1RxE!Hdp= z2;Yt5MWp*#w7hp;^*22_taWFdMqBYZvnQM*E!U{uJZ7U>owqaE_VDx51=v8h7Tx2H z0eb*1GHHvr8vGc~7xqmtqwid@Sjc@rK6+U+yJ>NkEv$w73is;zr3|aY6sH&KlSy;k z=g8O67_vEcgjcqC;#p+;KjR%iR+0W-$vSvk_**q)2z%a)O%DfNf*{1$AzYh}`uLth z?5j=bs7%!}p7Zi0*#X{33Ec-bQ+le*3HXWfuxs8|txKvrnA0{7=&Vf7RtSlhdFQcf zLCS@DcEgrGkar69bS>gua(^7!HiU3s4T5tV&$ctkKg;RO`{glyWT0P%bN|;h&wo}M z#;Z4f>bV;>Lm-(wps4*%FbS7k<)ZlWhblbZu+wc9%p+0Gd&*HUcV@l~eaRv@@ywDe z+w9%#-=_yGbK5H0e~r+7zHmpLBc5MbvTeMB*~_n8wxp_8<*L?L)jogq=LU?1yQ}9s z&@bU*?hZR0@|F7m%di;1cXDqQ^Yv4AmxXO=nl*)8{jb28^UnM@CAYN3JEJum16{Y# zXxD9K_=J7(_m{DK^6*z+!w;-4ar{Iw4ee*X_ZwQvvSd#tHg_0|r-9@ww~K*)MUI=^ zu`dUl(PFd5WO2Tc%oKL!`Iq-#$Wztp#6g_%$i<;h5P^(_6EeSZwqbkcS9U2K(ZYTw zUvs0|+`$hwEkW?h!er)7UE%gonpJLRns~(Nz@!3%kvBOjrhd0uWV^KIM#*k%TY0L5 z8SGfa6ib#Yve?3vQHKmSWVWQ|J~)3zDg&%% zP73ed^!^5Ib@lx`#N^1u$!YdI8K{2Pjbe5tUYbg0DZsWHY9^56&~V!8a>V{+$psYC8N7~w`{rgoPH_stIW{+ zZCYt8X`)hFjj40|s;8tZ%er)-lxACNQ}VNy{0BxzzS(}Qw_4Ss=QZI>i`09`;T6-G zGCl7{eU_z_KHw!pPK00Rn5o8WFssOoIvmmo)Je8BksR}tz3#EetZwSL?^-+ zTE~PK3_+azx^~f@dg23GH>o)0%-Selg>er$YxZ)|wU-H>qQ{#MNEOV}fu+%KU5o_{ zBVCBMbc1hs*k*k4S3|B#INV3{whsZ%e|K-XX3AW1ja-ChAT-gH*393?5G#d)}{|9m_m+ zRK*@opF3P(pUX&l#WY+m7D3txa!voJqmTHiDMIHoIDNOx>nL3X6b{jI8L|IZ_g9VC z^LuUA_JLOF3E5I7o~3_>>)y(>mGBY%)v)L<^ReyLMN;c*hC4Snop`re(&2d^PFXu% zlY}f!ph~wQijlH`9Z-sxHs^ku`n>s*_;2-|8}DV)elV;;VseVxso8s+$zaeCoUGLy zo3Aq=HrbU3J5gBU-mdCwICNV<+KbL`Tw>ve{(-051g~s~4{*wccs0UJu(x@a2iw(A zy~XrIKIsIk!$IyR!iW^C<>yHzz<>`zDi3y)loN9F*_+Spv5nVnAsJk6Fh;XSA-H#U zSLLtCF_ z0v=jwwsQmW4F3M#qn*6V@o>sDxt@XXJZ4v-68#)JOEqoP#{F)~AAFkb@vuDA#suE3 zw!V`*EFaoRu5E4i)#O=7fgssU4jRU>QI}cMr*|eQG3Pn^V+3Gf{`YP^za5$VcSWVm z=we_6LMo&6o|8#H&%X}cSLJjt(}_13C$h#6t_>S=!#v7GG$5eK3 zk9=qxj*n%jec8Fbn!;u)H8{{83;z$)|BZtq15m=Zb;9(u>J8uh%6;=N2%R&bMQu-B z;`4hiBk$vflu{(_$6(g8)bLx_yCvdQHz*X24=ZuDIBxF1gkzeV%uJ!Ii;}s5>$C>sCEKqLp32@Cd?MdD&0)Rm zdQ{6qA-gdLJ8(x@yEDDoU=HF@8MOA^^=s&D3OniUp(o`+WzuXYTo&mG$flq7q&8kZ zSD576t5;14?DVdkOfu}f)0cNCr?l1l^@T%}8tb}YUY%1}n*l}_D@6(DwwGQvcl&kx ze!u#cWg{Kg_xrAOIwXUScVE&Cwc4!y@54q!1goC1sGAL z%%J;Thr9Oa`!-G?GbE2@O3tC3XA@h_sIRj&BGtH~3xn$;n(?y@#u801?%YYRI7*)J zS_A`hFu2m&H3u}f$pi&_CZX`_%a+a!@g!rFMr=^GRXI=_+hQ{ryP0XNn$c@|s=tG# zF<2Pruy2B7>FJd0pJ8nq)}~%RqBiG-Kr+XJ{@QlAy~#xabH>Ye?roDuIvNS85x83) z>roQ_MY;W1H^4Y2D?{sQ=ce}VcoSU=mE3CmT{Ww^SB)`z?w~$t;50K@)?HvZg z_1~^9pP_ijALH6sS)Y5-JN-EopN>819T0rFlb5>Ndw;#^RGO2^m)L~flOCf64@W&k z(0V^_8u%Cd)3+xeX_$!d#s^5O1!|Jl=bhTQQ7e8Oy*yx<4e`phHV6UldwuzM_0>MR zpxci>_V1l5XIIX^vr&5kK##vJi2L=S_MXn?pZ4c?-tOxW{XZX%HA*{qYeH{PM z9|4QLuqEI1(=`q?wy2xYZnOIvlv%Ie3RdH13#uc{Ms&RKAvjiC*`4;$CDAkcbyJB| zMT4_EoWu7PZrv|K_%XILdBoqRJFB>Cdn9}2%CfgY1B-@|r)H|4OTlq@BbdQFa)f;) ztf$$AtjX_l1-ATY!CaaRWw#>C1*GOZ62=vO*j{$9vnJ+PXC1`*72bB;Qz9PhLw9d( zc@ne^bNVHx;zE?^#-atwHh4MyyaB7wom?i~;}4j?p&9V!^jr>f#9?;S@H~UnqmBBN zLI68EFIUsYYg+3_S*I#!eAIPwYPnh`@4RlW8D1rDqUf&lXQ3L8o}LlhToMX3S+aRy zWtrCJ$0wp}X9axBCrZ@n6yek4>H0pz-%vwXE~^g4vLKkp&Cwd}5h1A-rKuIu)O&ER z?CtSN-1gGH9w#oH@~rzvb`RyLNR-o5K82poD7lShA3%GhjmNf7RV(;h9ye_vmT}D- zvy}??TCxKfteF{3tM6E{ULA?@<6Z~hiYGhZH)n`LqWjJM!o}SEdOZCm{@@k{wL{hB z4L7#(xZ*>*b`d}JUh1!%H5IsI&BU`Od#Zb0mDyc8N}EpTtkT<#BjZcEAd7yJWnf=g z*WOS$ddr?y32*ZEKEV;Q$wbWCkbz2B>YGK&uEw0{M)leTWo5Css?h>Dbvx?8ObW`D z_;H#DuI=%UeT;^Wv@{TQE4-U;Q`zB}IyP3Y)4|`)sXBV7QV|Tru zSq-l)?DTTptL=Sp#SQ(yMji|rnRaSUcBb$PjOoV1ykd}{)>GlPm}a!)jeL3fDhzC4684d4G1YdcdDojEjD=Uy zIARswzs`yWf>x}tgNgS3I8Be7&ZfhvUI`NM@bVW%5sTqKsTT;RYF~1y_Fl3J%*=Bg z?%2;m%8}XGS4ncYo~CM>YRqu>w;x{)M3Fmba>}S@b0LF0PX`tK7_I)Yd;-kc(C5@X zY*OQ@w+Ag(|H~G5x%P*rE*#z(&p6&4cqg#OBDW^-lrEC3dX)NOTsBK>xLMb(pVelb ztxv%<`pd1{0l!{^$KpD84R%WSjN|jcOdnN5>hd#_%dJJX;?`3LCymdPC)NDwXv3qB zMP-{#2KK>fdp^l}4zt7@l!PN~8=?s;2gY|)a$Im~Atu0Y2wtITtBc~s?r&m~w}IJc z(Fzpl9PmOp=ls~Fw4P7RnOe{xe|%Urd~!I#}bxzRHY=c}=>cZI1`b(ft=31-g^ zNt(}ejE9yEw@)PehOt|K>Fro@A0ce?dUT zdR_v~At_({WJTA6>m9@NwTn1YX4ZZY);Fy@8l;1h`CFHVL}$>?)>sKI#>3yA zhe7`v>W^DvhJ9ohD^%o_d{kuGwdkLNGy6-2p!Iq&O&FYwUZ0M57~8 z@H+lj3ZMyQ_I7ysj^FiiEW5m=^tp?7?Fyox_*x+mk|=rz4SKR=v}7r zBKtc-zvghhikS7*`TJC;+L7P?lB3an9TG3S1#Luf(6K&QY{&_{bA>3+&o8*rzxu#gm#+>^fQ-B~w^{JWG->TcRdP&mSoc}B@uuhh3J@&<9Gx-?1 zPK&eSMzVfDkdE46yQR4|D*xV3T$8=(dZ54WLP_f`nO%Cx<~mu7c?y?-NwS>Em^0lpbo$)#nl&uJFK*>EEByKI(y5AJJR2zujMb z7Bg<=;y!3_u+ALz*ah@h0B?GD@1$d3x%&9&5JL!{B+Qi9;%AqMZLDWw_qicV+#cgy zpnLa0;f3bO+37cP(ib`yvI#ok@odZ_HJT|$YZf^THB_=d}B&lQ$UE~o~&S$fa zr^6h5-ie|pTr)JXPPS^Dht*9^4;M4|(R+`Y z56QD;qsQfhzN&(KKg0e1)Er?ON(NRur=sKUy`Af@D_jWw=y4hh1431dT}XIDuwZ|; zI>vLQTzcu?x!UAE9>|HjIXo!HuxS$yACQ?+9mg#1{#Rj*}jyln~{XQX3&G z6Tk|hR5Y30d+ODdbF`j^s5A}i>ahh+AsQO=eV4f&9$D#a6lF1}e?D_Ef~YZ2fP#6L zjU4$bjdVdWd^%MQH+a&&S?qFMXa3`u%uWyA{~Dc4Z=Fum|4L3@r?H!+%&K?c?Q>zS zu%lI5YIPj@*?1@~h*zSWaK`%`mgm`V=Mlp@nAaYEO*9h?O!@=VyMH>uSg;bD72O#YAs5E_JU*a$Zz<2H zuYTN30_%LQr|*TmeNq!l@;%vF!1*PEkBsw7RkKG;8l|j%3kKQ!{c#4EoQmH$CXr$W zG+Ibk{fE5TuPh00EZJ4bBLw&m<&49Yd&{=(Y2RuIX$bh!sW0*aGz&}NJ+m&}wO_9D zh-a_u+kdqC3>eO`Xe}mQX8A2%hx)5={S2_sn|psTiLe)*BggXhc-G69+;|g_x!vxd z-&(?={qahsoDEN+2c@ZdsmU2kxOd`T_(+B{y1-SgQwmy3@GH74lWxif{t}`dhZnVY zlqN_8i2nFYmt-+h$83^OhmFIwgnM19vo_UYkY0hgrosfUIVXmxpVzL(Qs@0{vdA4q zcvQF#H(|@Jq2x!o%J! zkaChq|Ms!yQ0&?7Hq$Ij$x7P>Y}l)=8w_nZ>Piu)%HsMwr;r! z`X)~oNGH?8IOdgq=ok9xGBWa~i{YVDkv(jVUfWMck00BOCcG$YCilHrAHSRZM?#P0 z)s`Jn4P9TrzJmv|&+<<)XQTj&tW`fT0AP~8Cnta=6Z;VJ-rctt=4q&5dU#RIK3b=$ zztWc5_v)vAGtEcC_4!0M7!Z1%N9ABo=s8&p{$4SnqqQ|Q3;#O7E8TZk*PG``pHZ%x z3}8vU@a0)X&JmEJWPyV%We=39p%ysN%+#El+pLk~EQrq;V-v@A0N?bmiUn zPrql5n{wF)6KjZe@vMJeuUegR^M~{E5SH8R|IDg?-sj~*bdbTUGpib5^M*s@=i_GS z=8yNf_5m~Tdi!SiH_ejj?0sK0Hcu9#w7n`ch@%w>GICi%zi zdFk~SOiBz%_GR7&&d+IzweODaGI-k0Nv}1s#?SToESwEuq+?3!VRs;Ri!bh@UX$qX zh4DFj(yM@BN33fz<=6Ap<_#0#$a3QtD>kYe>+I(T&(WPTvB85#7?er$?GB^eu+QAA zgK3BY`r=-5c5k;lpDOq>ZK{CJv~X_5<=sx+Z3)=hw%qz=2d;V zgD9_zk#J{tA~b*dGtw9H`xbAE=IY({pS;I^IRnujrsBCX_uZR$eNXObphX05kP>zG z;!BR{m2aZqa?+NS3vVL&!Z{CpABWnN{2k{t>1z&DJpLWAqY%Kck_P=8BmaEii{KSo z?f;GE=P`V<>D?HYY`Hb9SQV*b1^9)?ny9i=+7EEgHhkh}Z*YTh{Y!7j`EU3(J*WLT zvP|pwk?camTUp+h&()_~7|W|&Zoa19d5AOqe8jWqo_L@M3+A{fKkh~^bPc# zCW!a$?GMkX41PG<@8_Y0?5vf@H+;;)B^?&OZ18wjTscv_*N#sY%C@p8kDt>oA;#0&5@LKAhlV0Od)*b-8`HEl6wU>?g%xj1@LH0QE7$$+bKGP32 z+dNPE^`^FS7qGT}dC1#otC{ZjkT>_=l6WhzC!RUNgmLGw)-5*@9um3762E@ku3EQ0 z;$4Hg+u|=Ab!CYzb2j^-4<9YfMw4+bZ9_xh3HR^b6kdgRP#1Fi<(i`>VavY4k-3MA zKF2iO>rTR3PjAA-* zUTfSC?rIq^qN+o@RhZ9vpF7xD(Ywh<`H&DJ%T+Wd2!H)h(v|czQx)eW{@Uj@rq6ye zdE~!_4y6Cv<(+nlVTVUEbr3A@O2eq0xxku*3!T4{LmM%v@d(oxAB4@r1p2R>!B+7c-Btb-sF3afAcSWBOTuB`i~V<_*~(!aeXiJ z-SzLWEyX)tL+A4w94#NeTZQksezczJHzUw%LoN4& zxCmZMM`qU5r8i&y9j5!n>dhC(bLNiY8QMT)jDP3O9?x#Blnzm(px9k3N!A)ZMm-dOtThLs-<-2ZDt^JE+bN+fA;+*;?;tA`1@oHU74kQ!so+e#PB_t)8m5uNSF zjVN-Nj(n+dW(O>OpT+(~ifQhRJ3Bw{+IhcC=hTf(nt?wux??|cL9YcMat`Gzl=Sx==JjmJ5FQkt`qbHV4dwmu)Vg`KWh+!uf!W?}ad^J-AsS^r-4!= zx_^Y=Exqjg0m}LJzXQ(>pQ;#lP##~8PbVGiJ$0=L4hRH~Nl?1Fze6h<}wUc-{Uz-jc7 zJ=iHI*7-(ge;Plxy(NxRuM-2*cCs7ZPwi+nhp_EXJV58Rj5hDqvb6gKTctxV*+c({4|Z%#J5%BJK%2CypR zjKX;U!@IkZ`E_G@dRY574>Brw_xsGP>YLB#@@fEALaT=vv-S;NWr3t0p9;+K=K8jb zotpQ;Ggm+EGIkVp$D#+=>~}cm0qzrxQ4HFL_ci{zyMN+6@h=63{aU>fb%m`u;Xu+uIQhEja>-A8a?B6hr>3Vj~on>wp5c0Z)F1 z{9soSm74@*pJK4@^zcf}_utB9H!y}vIUM^5_th7jXENWFccMTad z1OAvj+x|Lhs^~u2^-W9FFJTdPY5VFuSFh&4*1*b!x8}{?cmIZWuRe~2?RXyzPjfwM z9RNS+?T)skk1|by>EN*Gy-63XB@Lc?n^^;vP-pt8C*#wz zVtw76amTvnay`3dvkf|w)qe0S1JkFr4*>)6h>h|9h&!7As+_ zAHNpMfjj38sw7sK_o*Bdp^h;v??EBpN%8XGsn+Y`J<`<_5a~B+C&3!gXrg#;R?u8G zlZZW{*U#L6S*>QRX4Hy5#ZB@dzrQD^cbrAu{_E?}dKIeInKD)Sj1<%5FwnJu|Nf5R zZupQ@8d}9~P7c_sXe^Mkz%m+`8l7eH{Flb{yn`R+_S4hwBKM_JrZGLOmqFOC;_=lA z+GnD_1P83Y-~M@lKsm63xVvnrnqvFd^smCEzKw~)MUOmll+D5&eKqx{Iirum;d~(P zHPD8J^HnZ=e4VWqvrWx!4e~?C17N&psHa-s{y0mQUWw@U>*o`X*uMF8`$4DKdqrHr z&8td$-naTh*7})mF-t!hjkQ75&|j9=dGLG;9XUKfhe2bf_;^1-=!|QAPJ)fLVWft#tYKf+rO_GyXeAM-8~f zv%f;ywJ)99;+%h*%+4!}P=Ax|fT@(_qQ+$pXKH3YohxOSU%V?5klT2ik@pIdu|skL z(O|tsdx;ge2_5?Cr`Yk@(bs~B?H>OIK}mu1STau8uj_66{k9n07n1qMU-=09?zTrx zP`4eJeY2;Cdo1_8?1MW|%9Lf!U;k~>L4S_p-hl-V0Ha>)M)(EKmp=CW2I#{L@ZQ|3 zmF8vRXzrZeN-HO>y#H}2xR6*}PgCtLvR?kSybh<@RgbF9Oro>A!}}I@+vKba>+2~_ zr}d(CJ;?h-=H}y5J)UlDZBs<{=un7I6QLulz%yaer=-4rNPy%`)_?6A4i54*fH!j^ zcASyleN>ya+`k0}tKotUx^`t3e~%)(sg-p-D6D#WoOQpCWyITS;{3~|(G`BVPWLlC zQQttn&rja=zgn6t-{T;8IC1 zJy+NYa*kbrLyndRd|x`X7!_-pQiXhf(=xw;b1aQ+0<{hut?gjoJIUEATRmRA$0qs2 z)mzT9{`=0~&~BFlg{HK3?BExq6~&C zS>dL>+f>6**dTv^Uj8juJ2;? z9c^6g#S?XBJc%qXc7H6MIk?xNCG#SsF+0D2hfOCdK9nKiezmxLWmi7m=%7VNggnU0 z0!|8ic3SJ~>%kxI3O85V@}ag@=i&rMI^g^sS|Foi<*^!fnePy)TyWJWevLNl^^Ir> zL(UMtz3`e0e@@`zy7VqL0?i{!VotwKCefWaLhJd`Xmn19NF0oWC-zL0lWvPIeCRm#QCmN|^X}NB37KD1I*sbF)N?@uehqrRJT;3eQUFz((t#aF zglsHlVPg0AQJM?!4tyr?KoQ<5;;dIM0-;eTUQy9xFqMmG$il>dDpczVTd+l6+Y#+@ z|JwJ{HU5+s&LKF4-@SBtQ}p4;ZqA#X?$T8SAfe?<`H|mARaN!F>(UO=e1o#Lhp|eKV*n>U?A{7&=m6?vMog?XXB{o`rW3V&TC7I}^ujYx7{V-Bm1#yX1pezMun3xByw zXA1=jN0Fsz^oUw@MU9I2a$0}hF#Ek1#!9-u7e;i+xqi+{?V4}*=`%&rZ1gK#pY!bY+zG@t5v4ut{H*@+*(2yJIE8>`)ed-~I+J>92?j2)ijvj7UV zseXR5)#Wk*MPXZR?y8gJeet4;xWOsKsE*x6yhfs|#7Ety4|Z^L+9*hV6)eb|@}k)c zd-6_^a|cd)nEr}Atp8niGiJq6&Bs&6k}_Za(}{NZ)m3>qTr#zZy|#U&1gwLmz0ZW( zlw*rO-Cu`bIgZEG<(|)n$jTw26UXWWvw`di+Ot|p^&2ddsd)A!gIyf(hhx80RIHB} z>BJW=d+mbv%wiWe9i?#>R-W{bOWv?6y+Z9L#|Kz@&zwCQeSPBFy5r$ve(~aSy65L{ zm=g~FJc0*DC(xPfYc1<*-^RygS{c%j(#68_%sMyZuGj~RKC-4Pd(ah2#Kt*x!}q?2ok8zKHZ`+;+YjFk*~Kz1_xgL&fS#;>VAMps*UoggcCY{(2B$c_{rOPOc(p}C zY~yWp92Sm72o7r4dP)B^C^Vx{FW6L?-S&c>xT&I{KDH|uYOlW%aZnY*DMYULZ$oWR-@Mux${5f zmb}A?MZT3Kt>j%M&m)q8=eMR)>b=gIhyLqQ+w*vKo{h>FJgt5FY7*bNg~AWQTQIS0 z`jGlYn;iMii@??`yT4~?+>AELF=;lU7-0oSjGR|RB^F*mS3EYnHxAX%L`sU6f9Gr~ zyA+@7^1~mOo4#?pGh4ar_G`8EYVjTC?_`HY;=EVpds6Io>p}fk^~_y!{n_(b$LP=F z)28`sDZHvzcXkFld^Jd8oiCf@nIbxXFsC&1w6YDzZ((edy5ZkJP8^m({rq00launE z%^&G?eGeK9>OIJ*uoFCdHcJ+Gbobr6GFz-dD~=kJYiZMuG3n91{Ag5FFKp_)@mex5 z@S2BjJ1S=rz)80i4nX}7x7J>u6@R!CcwJJ{IQjYaq(gTD_fuKxKr*%CnKM`U%O+81 zMYn1Ya2Nc;d=|TZ+3@D^<1X$i^z%^ykki{#BzIVJ1M4HJ+@ERoG+^U39X4_!l~Nhm zJ(psFG6ox?$tpHl4^}<5s_`+-+KI1dQ?4B`S6315p+BzF!~Xin&70QPZVJ;g_)=9w zy`T#6Xc=d(Cm-8@H^rOo`00EdhOA7E&3UM_IYy1-pU=-7^hsEmP0CYaARo@5V|nIZ zwYsi9*v$`><5zQBq{H~RGHOOTa|8erZo8X(d$u^CQ3>_xL{$lPPGf^7;pfYj`BV7U zzy=uJW*a>{@7BM5;V!0$fW@|DU6yfAc21b-%puR!?iT+tq>?rsVx$C_^9w^>-bo6Mvo%Ow#`U(IH3q|oz7 zErP%NkkblQ!MGPPVSE59P{zkoUUZPP>Fjn+KMo@1tJ0f+Sfd*Im7KPlddsiZc-Y#O z$=(#)&^XiK>Ab`afna;?iHB2i&7HF`Jy%>Om+rfvPT=l5F}2sT`EY+ZI;}Q$|&B<_p0>os*`iT;R#TXv%Vcp6oHM? zg(Caoi>qfG$b^YHvXhdQ`GuPnjR23%c^fIUv?S_szMHdaFR8>+`brNfC?#^xfxs)8 z2gAQ~XVWYzZr_auqnYBTA;R#i?54rx1|jqURl1#%4cm@o4=tSwSxUlJzqg*zeJmCY z2|h@7x`pp+)26%GzpM)0dHaa}|3F>Hs?m5grti@ew$8z*otCe+B6}h}k2lVyZDI~C zRW5q-4R{-SdqwRl%1g3{w|tnbK1HI(Hc~ra1E|qI;3RUToBlp$JZ$ou_J{_g9pNU* zu339cLAzbUDo9te^Y>n0jgDY;uR3Mz)QPaBB9yVN`E}(kwbv=1-J}q*FS!csAb_gl zvxSyQV6x+jE0z9(akQf221kA1OGcgc!=GpC-_9ynpA&XO&$ByiD(`4@yY*3)7ol;= zKyKY%4L#IY8uzWbHNYo>FH3qK86&&Y7PT-2b#n)T$z$J%+6&)2tlf&Ptx%!wbdVL@ z#aH%>WFDcQZQhuC`-yQomVgr*4rfO5_;+cI@$B9n@LZ@0uT*_wasJ!bgb7p1WYM+( zx)Sv0H!6}Q)U)juWOKRvK_uhsY_}#9&DPgF#YuX+x064ENw0AjAAUMflYRsz{WL$$ zcs+IdT%%2%!0)|I%^`%R=p7(No)6#mciem*+`lsk0G>?nTi6F#7Q5hY)@l0R%IXE@?iUa z@40$YrKTAdjLshY^V4c&Z!FiQ@L{3J-1pwN*Ik;;3tM#*x{h^HT)yt&0nfH%c<$@f zdNiZ)(^mvpK25L7bI*!z%>eGT>(d2WcM&Cz)P0}?bS#d=c(2iw!uXh7@Fn`-i%Sf> zbQl%NmeRF@^@b;*<3lds*389^zM)I-*gOt+61GIk+c{|Slsi8?FS7l>J}ZVkpi*@j z(valA z{h-Rb!~EJz7tMMr&)+@h%GoF#i9gO7QR<*2r7qSu49JUtbwB?2KK;6^Fm5n=E-No; zF!RfPfx}+c;wQKtR`$;;Bf`z&Wu3g{mQ8bw#-VMJ+<#s%`Rw_%3;Fl@?yx3-JieQY zevFTs#`jJH@UEr(K3hVfJ}f*o`tQ|KP3%j=9N*5VeM13x7;c;2bg8)_a*%x9{8OY0;x9b=K>3^kjlv**xhoN8EV+4J1F5?%d8W zJY(_-giUySeFjo-74Hd8r8^A*Jg+9D7uc$062f;3jD!b>V`fYv;-P&_<07Aw!<^epkIy>b5= zv%iG=@W%jl-C_Loaz%?f?H7J&iVG&a;{*%%yfs_+>ia*Z@UDFFIG*juLe&T z6dN=$+d`tPtrnD#T&8I0xYDX{qSfAud%77bay{3)?QU0x!M%88-P+NNVBwY%vXH`n z=PA_x-F)ZA`?(Cu>bwzl!XrG=u=0{#FH3Y;`I*b(^dov}56^)9?fiC1;w2B9{y92m zrd-hSxt3N*_t2QyGb;hlK`(7=5#$Lqn{c>*V*I`Edb-<+WSWYcki zYo_Zu{Xp4pAq5d5eCir4A78)e_zZ4mJZ11J_;Hxcu6O^^(*928LroEFoaRuA9?Q!k zj>@}f?8p&z1Hv+2#E+4^iVwSgIe&pfQY_jFhlPQ?T5_V&l~UGrf5KxUyL!qL_c6Et zdYrBCw|{cw_F|wfE_^_b@f+vu_@LdQI!TuQo+>ZX%gG*Hr*3O9zd|j6S00fKv#&6b7?g!|B>^=#U-l%L z{a&;#-~LusTXvRBc>y`Ct#qXcdA1om)?*4snUYE|}{FAH6H?=hjmc9KrfxG_q7 zT;_K@LmR&&kY(4x=jH|4+tjCU%yqh<=UXa(u_d6CEIiv?+s>($nG71rcBlN=vv%#T z|9zHTxuN_-Cl|lF4(U1U^ZePjVe1XTdfMprcAd?>Qvy96tny>_+y+Z^m3BKE!5%0H zMId`6#=y;YHR-?-5oHEI-}+{tJI%cs|pXfoEa&+Cv} z8tnFWe26s)!&@iGq02#V=WJ{9$8`P-GBVZmein}Y<`1v4fn_Z|Qg4w>Xf=zwyqOLq zZ_=s9I6EPjwqv%y{#ZE4ygq>an8P=HdTU4|G}{2FVd#>cR^!mMM~0kBwYC?{+dH7B zUA*>XVN2H-?%2(M!3Chn4*jquzMa<{erZ>FbJ%Xywr=?yvD^Rd(xPkg%gu#>a8<#= zp;eQ=e|xUv;p4QE)eU1yf4XW6YYlc`x83gUi;n{L^Za{$6Q+@SPBPNbzMjo0V{f6ve#fQ&54D>{wg463gDLKm1GA`&&&V+z-EMJN1{MVepRDI%~IH`(-KN zC3LrWWK^h^=>-m#;dUBK)pPsqAZmN~f8c@#tH|?U%9*wnS zc1~wJU<$e9!)o}K|LJpip6u_&R(2V}5VYtrJ980Wcry<0k6?iY&iN5f^N~ot{3Pe{ zG5;z@W0c)-P2iUyyR_($ZL;u<_qf07_TkG2Z2bCb)+*<=1AF40pDHces4v!{&+$8c zDQ|Bln8geET{5?E2w_zX)Qv8A0&UNX{0YMwpy*a_J8QARuI1)3TW)5j-q?^Hr)+#H z)r;gES66ljb3isl+V5ZO8Xb_Y`si5mITjZr$bcjKHP8eYfTc?&|8c#q_h?J!OHExI z%j~9``Q;Qc<34^Il~HopFsEwA`Ziy!tY*<1DQE819{!uT2*M>ba5Y9l;GCm1kS9I2 zEAvl{PeZpwq(Pk1JV z((Mff_FkV)##Nb@lhY$&ZqkQ;p!1Q{@ z^@R6n#@<93_Xp<9E|Z2zJ)W7hnggxnIG6)^G?Py_b4~TubXscomuI~{+&(RhV4jVnLl;{oQ$I=;;`WEy+b8zq#mr5GWhPh83)2ra@XcWHPiOf zy5`fpDa_kQYFC%9_Q!VX+nR3Q!NpjUe}iWmig2q+ud|_B_eXJ z{V~%%`f6opFHbV6avoOC^d23Yn?`^7=TxhEdp=#YX?|C;HnlnkU$hLfH>e`w|$8r!e2WF&-0 zbsN7-2dynLL)Zm%fYTT8ndXb^l5wN_y5snT>Wiqk^}N!mjT&?P64yMkN@vLewEiO3 zvpJ)kxE`c3<4XU>L93t8SdHz#ThugpSISvob=|dXcVgY!lTXD~g{ReR5k&5AqH3!- z;7rO(V(B&=&Z;@_hG?biR!hkg&Xwx8IQ;g3l2bE?w6?s)wtYk_Aq~J;T+6G_)#6El zE6JZB@7_25y-41|SNDD8`PUi#)qRc32>lz#qkTM@=83kSWuJ^tWRQco$F&7Mp94sa z5&M*ROS0{&_c1sku1K15(EOGWk>~W<3nbr>*2m*%{hhn!@kKV3rmtzIv8t~1c7HH1 z)7AzSRJ4lnc}gB<#lCbnz*&~G?)AEoeWR?4UiIq>|HrwKE*Jg?^km1RN`=XJ z@E)%$vR^x4<0gpt|1r$uS);mp_-ytPd6mwZt$xB8DbKS5XD>Maypwoi>?x~y{w2rY zJu61l^vcT>U5<0yYctJuBV%|TJ(F#3JQAs3WlRhXA<^b8&tOdGT;a7bN0Nz(m>cKU_4~~ZVU&m!z!7!>J>X{W7Z|=*Jm_=L zAMGz7uy+VMgeC5MdY0K~Qq=qn_B+W1OV5vKg`3x^^zv2Yig!gmu$M`*>&@O=meVz? z$w2hbmIrfA;d?6XX|l2Z?(`VyEFgMAn@+a%&$A!4jD3E(mg3c4m)E~tub1~@c~%lX zoLP90KIkBoo33ez_KMGH9**ymb`MQ`)2|)C=S~iq3->*l)}VXW=;5x{{Y|ZPKh`xD zeJzx)H4n|Tx8ZcNX8u;cnI>8~olNntdvmvgV23L2b zUSWPU4rED}F|P*pMXl30wQj&D>t?-mfLLYMMrhvgk**2*=jZ+T7O}E<-}mk|%XgPG zH7<<`pH=RhuY<^_y~e%jKvg=TC+uwu?v3E|R!u+LG#R-a$%+0t2m}Ltxs4ZUWBqYs zdpX~Yp4aO=-b&XlJBb^t3{+>UGBbyBSme>SU4C1GP&o*j;5tA{q5S>)=t@_^uh-28 zQf8D1gix;iRKLz|iJU(qv)uiO`#2%tbB}U&SnMDBt3RaM2H|7lJjd^6ZgwTtNPzCp z>)?BNURsUr7E9Ow0sb+ci7#|%ze*BA6Licc52aPw@(*%<@ZYKXlOOFVpm@KP!+pC= zCyDy%Fp;y1tjFRJnn{nt&u=H*Fn!)oFzR0#xc2A@0N_75udVhB%R0B`?xMm#$+E0! zUbRopAFf{B`MHb4$eavIS3cL_f|_Y+Ecf9%4i98G7=gZ7u+eQZ@JBq1z_m#^wdiNU z*`nzgFKXlLjVGMqx#Ku20W(Qw8CeB<_njTxE6oAHHww&a`^wr#c{X{$&{zYihd)8o z0kjUwQYItlxrR>lV;ypn|&6jE%Kvs6E2d+({rWnhH!bZ?Tu3GUaa z;pe5_bxWn^-1}ixzgqtKrhQboy@l4~K<_bhfD ziraH4Z;97&KCj^!b?I@`<5KW0!Z}%5FgB!jig~!9G6%Gc?ZuF}V#ok|thpDZd3)ZA zUp`70i_e|;t~#~-jdkp0_a`=`u6!r+#|9p%0ag@`xc)KLPdD%41&aebp7-<75-+E8 z_~7Pu_3787eq}rpm8q#Xef++F%f_pMtY$P%TeGL+AGhq8?>pa?E~NUD7Y?$xeY^C; zGwzkI941lcOV1ZWE%FiGcCS>nl>-_~X&4GDlYOy%n`q!@ii#JkLZG%sCY%xH$fLFA|Mx) zuRm?Lv(AagI2BcyJJ(W}b6k3Fedc~0G>!V--OiqCC_U{Fci|NW`SF-%8!m-xiD>yG zedKVE?+TJw*K^fu*tc@%4z5tpzaMj=`gUwjr{w3BDONX=h)6=B_MXyGTIX8JFH1-` z#4P*WzoNP+)m#i7a&N=;6pxX3o_|s8a3%e98vpiq<3H}7q(c?F6P=P|^B!l@1`&*XVbVD;Vh~{tpGCLz zJL3&?x<4T0;_Qs;nxS@;!`BZij>%)&QQ*4)36hM4G;gG*W%gB9{9}2*W=LiD>P$?% zWpB!y`A;)CsN1b|ABO!qjWhMw#Jp;GZ3m)8AC~Lt!uJvMUoL@rOJ;WEIWJa&;b5?w zp7#2@G2IudubSQ;fAz(!Nv;HL_1gHBw(1)eN@ite3(e8NF z9DSM8mhHtly!8OI?hv-sBxHf8U}xk7joao<)@3|PHJOtR!4}QNpJzWT>NY+&tK=M8 zXRN~4Iz7OZ!`~6>hwRSQ5%J1UYzCWi773Y|aUvberC42Hp=g~*3 zk!TeD@#^H~*=E`XHf(h_`>xZlV9L^+kx4zdY@_ybTGZ5xZEZ>*OPH+4zeQ8gy$p?x zYnA;@b(%@N%eI2d&j63f8dL|Nc*)BiH8!GE_+>@Ko@36-#cDCDABU>4s=ubatNYV2 zFjQ4A#_BM?@?XA-=h?^gn{YToZHexS<>&lr23bGqdw!^W|GrknB(1}j`Hnt*Lnk}z z+=&~)aLzSsSKAJrq(kzq#5DI&++nvGe{v!VomzU{rIQ~IcE97EyUtK#gnE)RgWUx8 zZFY{nyHdGE+x?+K&e%ZMuD_k`xmm#Yn+d;Z`j}jyBl67SWBC4?cO#)7!y!qhBIJ5} zqqnON@Se7#)sfvvaOiWceolQ~@&QE)9L(#8M>OoRBi&9DD%PH&6DeGtl@)jk$~S6$8!M@8CO7P4AAFpmYk@OVK7eYk1t#}J_xXS=XNWw5Z%+4~P3ZrBc4DjYI19B;$kGH>U-D6;Rp_G@;2Xn6Db z!nGBwr<&Cs&Hehoa%J0U!*6ofcisi>2qD?ogzl{Z;e!o$|3d*>D~NDvhm?RWY&2St zY z(MUfrq*e#)$sWs9yYfvZU*v^dziEB4)WOlRs%+8}6vn;PS^}a>oyU=&nBh0s>1;`h z`fAjCkeyDPG!E)2(?)N%uW#AZ4<#C7cPxYzsG@KXzF*N?siGy29IpM0;Waa!nb@V} zcTSQWBky_dqn^9a5JsE0&N98swPy#|vfm#K>d%o~d;K)OFH`NN5lZRT1Q5ky+T4hj zTy|0a*zAl@a9KEuPRq0O>@->g?fY!9Ljxyu)3t3?N>EWE?~2=IM;1uwjSwBaSvnj| zuht;HQvWjq&;&hiiQYwk&#*aJ&54ElQ&TLp@K*HDGSwL!kbcyiPpF5O^7J_`w6LL`EuE6L;r$@9ncN>+GI; z_-Afk<;uVlR{GnkTNDLCBkd$Zwf zll=rSvt2L<1Kv&Rr)x&PFa+pI^r3i?PWEtSeT&B2XHmCkm1sKYf1H_vmzNz!HIE;k z{wTKmtv#Z6{ACp<%pigIjhTW>kEf2m{tyjw_!y5Uh@c^@TD!q?)92AbC$?qkW{U=8 zLAI^Fu#ZyCXla^7vqNMI-`~$~>|LpQ+h98V7m)RMI8qVaP1Cyl_b58HpT5?QC#tgD#E<(nR_)D2{b??GHLS8p%TAdkib%}pu7R4O5<1f#(`en_a zV0_@pcao+7EHLbO`-U)t9C)rfbXmoUi(zyu@~Jug#HUMo>5m@QB^0B_tRf>|*7~EV zpXi`=5m3K}6GrEbWo=gBX80jzoVl>Pep^qC*!^nOC#;yS93-$)?&4#+YZbfiLUKvT z585&nD)ss`=V8_9vCW{z!YPP}dHk?BWxML^uaeDxbzZeMQ8S0 zM&)fu_3w*{&@SVKJ2%_k}R<^n39$RJWbuusR;eE{tt*1J~$opr55~ zt+6MGd|JKK?nSD=b^lA!rX2 z!uPTq(tegj{ZZf*ZZ&>6-r`F_^!ioY$-82x8tXeWv3d|uPpx5{R8<(iqwbjI1{g>5 z0t0*8=qz~d>8X#?aP3Uyk>BpKXQJl19`Moib@%#4rA6O3_2Fe9TY<>NF zT!&VFcHG$vvYUU~HBr~|wF#`@^I2Rn#c0L1a22pWW!KU*3G(%}>2BnGPgAaWQ8ey9O=Cqhe+L!jERy8VAQA4C2paB&o#T~^?lG9AX(_yJnH_K*@^Yj0r#5k;|%OI zyD#QsaM2uc{nFc89X6Xcp8eHNH?a6~U*ub!Rzf#mF0@;Yo0_>~?&aBOD;Y$|eZFW* zK3*R*rDkrx9Vpsvj)r=7e2g@9K))Qs7|)RCk1C$1_A#jC}^ zSuzG1Cz=y_*TH(`zxK5h=>OEoe+;KzUyu0DtsdL%r~0w&W#`>|+1Jv@YlM|dt@wBLR4)@WgABiMRs&E~m&vG(`}h2hdfpKmjj$Aw{hqt%6q49-^Q&Q-x3Q| z2aa2-$g^a1^SArmW4Wyx*KpKM1%)R$uD|oV+#Wuu{h0WjdBYrWD_&1Xz(RBmbw)3@ z2{a<0H1kH2`9l7cH%SX4Pf*dudsk??tisSxueZNo2`8FoVRk-hNr_$z)*?^@C z`F{#IkixrTrZs6Pn}N+96JP0NDc=AyVS{F=iF$X_H1TMZ)!UoZjzNVXky+R{XF5xX8?)5xif&X{N7+l{6+Wj8Qt#j>L z+kFKb=FDDy;y)2RN%x{Q5qVD;c`z^DpqDBYXrt|#3p^}q7eOyPB9YQgk`Gj6*!c(9v{rd|uZ`sK~rg*YTI}h>~n~H|o{DT5ZYo3nA zyH8nXLM1+h#;^XC`nAq6*k#W4hMgmcK3`lpQ4w!GZciq@JnGC`lj{1hZ=XK?ux(WO zQ4N?Yug{O2GNQhG;u)=w!dqy}WK9y2WgiNA^zcKADBT-U!|=#FNA!)HZ#-2K9iOyE z{&KhWmTX*YygNOq$BfalXrW2jIOqqfKuf0MUli4hPo`3PfS?L6kWVdrgcov6~p zxCl?f1ZW9kz0qoVxvEyOUe|*3pT~-Q4nB#~wGG?wd~G84f?XC!V;CV_JnW8BOD|GtR_NeXyM5Hs9SOvs3ETI7J&gd1Xz? zCf$e4_34tyvhDbmnH7@h!x{j* zjc=zK8R;;Jd&+`=7G!tZYALH#x2rUpU%f%pqNcRXPJ0N${fZJxBkKZx`~$Ad_nCZb z_gb0T@)(f0_7N76jYLxPsVII%VLHydbo+MEjOA*P9fQ}eZ~6XhS$zH!T%x}ae=<9y z-Q#2-?G4*!NOklpX!Ug+u;yS$jdla8e!rpnvNqqXJZSgexK$$Jq!DDbTWYO;8^yb& zcmF7zPZai5&w31CpNykDg&DlaGmHj!8{dJV@zGk1fv`8|GvDHv(VDN#rpkx=1ocz8 zdN6~-qd-B--21yqYS+m$)YOBvHmbWm7j{!;@G1rXPX8tot7~TGrdM5&;I?nfRz}nE zv(~q~7s|wV*P1mL7fa9mH1DDGWiayhzkZ;dH65~60L3ZKfF1^P@-$f)?(wYse5Dt? z7OF~3-J|^o5_AQFM@N`&73tLg`gLo(JQ&h@{PX|m?;&h^Phd4bl<9L({@%tU<5?>Q zTvdlo+*!;k<#t;>_kZ=qUUuBA62=5n*q5`z#BcTHKgQpfGoWh(bCo`q`~x_CtQ>K!+f^L9!Ogl*}HRvF+jh^QE116@M3o zv10%60p<|4#4IKipMbBwHh)IzPcoFmSN7xEt$7b+7l+DxeDMQ=94m)Mj43i2&TF%C z{ZPNg$Y5XjpxhucR)(k2F4CETA8}*g{pe=r{qj3I`43~<`a__)cqGE3=>F}Qu#86G z5Pi=4IUer58)(#c5U*3~Go30ckGdyZqSZx@#`kh|I~)7lZtX?){mW&nRaSTj8w+nd zi52%!JCjap63RGUCy!7I_nKF#0BicwjpNqmNf7bq%r2XgQLt0%Q%5I1E(LoIx(jfF z^;9zC;l?K*pgCsDgIREo01NG=Q+OL_r6ki=wYRz(zfQ9YxtrFxF+T<1197DwIuTFp zC*zsk72X9|{3)tW(O!2xMRF=E*y>T~F|+)t)eL8+KJr=p#q$D~BnT z`__@Xo?l*)-+7L^9(3xKaZVL~gm!g&QlpgAP4Q2YVLRG{?{?l6z9~wde#7)g?9MI@ z>%2+#w0&7M6tCyYZbqiyJl`a|lo z6ElKOE}jFPwopx-8%PM-ZMW957*>@Hm?S^;$-46}_pX0_B=NN>wRvkrZs*)2vIIjH z!3TL~r5bNVJev-H$l?ht4474!z=2R4=>c(cCFS zHrFp(eCL!Ix0?l_rNXZQMUoyaY*jdP8}@}YVTs9ur#XKeRDH$*Ze3vmo)S%&Uc9@0 z=!{S3vJQ9ITfN5bUSI>+dQ85P)qDSnj#GLC2PuweX77ccw$IP~BObhEpNjhcp)=sn zw{IA-rs%io!{E`y%vQwEcmQ>;nUlp|@{9=yA{K4tXsofG&PtuZV8;f)fQ54;Rq@t( zM?#o7I>`j%zx89mT#n!WfoKCI*zV-ET*C2CI<1WIj_zp1rg$1xm*>a{ zrb%yat@&FJiDPa_Jk1`}x?j$n#r^hD8oV1=c*Fd#@m-pow{qd$3-g3jn zw$qO%#ILezfVtwcp6lglurZu+-n`uP72iCzlJ&DMI!NKz_78w6_(ST$R@d&5gk7)N zK8psw3uE%LVkQQ*|6BX@w=(YEn$r9n8p9RlYA2!q`@qjPKd|J_I3JqlUdzhf6rVsc7D*8@S z_ETsI9-@o-vBeoK=sZm?nTPwXIr#i#%DrMyze6khc#bBGk!~H1#V=P69dH-MP3`

2K<3N&(AYUUAr6V;V>V`WoIJ9S{6EO$xF} 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%0Ao4F!a91%9Qx{dVkvd_~pp+3Y72uHv@cIV*mgE literal 0 HcmV?d00001 diff --git a/code_book/_build/.doctrees/environment.pickle b/code_book/_build/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..94549f477dd7742f94dbe17a57a96b6e204b6dfc GIT binary patch literal 24930 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 MZyJj9l@0s<0q>{N5&!@I literal 0 HcmV?d00001 diff --git a/code_book/_build/.jupyter_cache/executed/086628f969d096c6a7153ec2afe0a4e2/base.ipynb b/code_book/_build/.jupyter_cache/executed/086628f969d096c6a7153ec2afe0a4e2/base.ipynb new file mode 100644 index 0000000..d800218 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/086628f969d096c6a7153ec2afe0a4e2/base.ipynb @@ -0,0 +1,203 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "\n", + "from scipy.linalg import expm\n", + "from scipy.stats import binom" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "α = 0.6\n", + "λ = 0.5\n", + "γ = 0.1\n", + "b = 10" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "@njit\n", + "def draw_X(T, X_0, max_iter=5000):\n", + " \"\"\"\n", + " Generate one draw of X_T given X_0.\n", + " \"\"\"\n", + "\n", + " J, Y = 0, X_0\n", + " m = 0\n", + "\n", + " while m < max_iter:\n", + " s = 1/γ if Y == 0 else 1/λ\n", + " W = np.random.exponential(scale=s) # W ~ E(λ)\n", + " J += W\n", + " if J >= T:\n", + " return Y\n", + " # Otherwise update Y\n", + " if Y == 0:\n", + " Y = b\n", + " else:\n", + " U = np.random.geometric(α)\n", + " Y = Y - min(Y, U)\n", + " m += 1\n", + "\n", + "\n", + "@njit\n", + "def independent_draws(T=10, num_draws=100):\n", + " \"Generate a vector of independent draws of X_T.\"\n", + "\n", + " draws = np.empty(num_draws, dtype=np.int64)\n", + "\n", + " for i in range(num_draws):\n", + " X_0 = np.random.binomial(b+1, 0.25)\n", + " draws[i] = draw_X(T, X_0)\n", + "\n", + " return draws" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEGCAYAAAB1iW6ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAOlElEQVR4nO3dfZBdB1nH8e+PxI4CMqiJb0khQQo1I0U6sRQBrbw4LagBxKEVy7udOpQ3ZaQ4jo7DH8DoIDJWMpkaXqRSClQNNVKZCoNYwGyhtrRQzRSkS4FuQeVFh5Ly+Mc9heu6yd4k9+7tPv1+Zjp7z7lnz31Os/PNydm9Z1NVSJLWv3vNewBJ0nQYdElqwqBLUhMGXZKaMOiS1MTGeb3wpk2batu2bfN6eUlal6655prbq2rzSs/NLejbtm1jYWFhXi8vSetSkn8/3HNecpGkJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6Qm5vZO0ePxysuvn9m+X/20h81s35I0S56hS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTUwU9CRnJrkpycEkFx5hu59KcmeSp09vREnSJFYNepINwEXAWcAO4JwkOw6z3WuBK6c9pCRpdZOcoZ8GHKyqm6vqDuBSYNcK270IeDdw2xTnkyRNaJKgbwFuGVteHNZ9W5ItwFOB3dMbTZJ0NCYJelZYV8uWXw+8oqruPOKOkvOSLCRZWFpamnRGSdIEJvkl0YvAiWPLW4Fbl22zE7g0CcAm4ElJDlXVX49vVFV7gD0AO3fuXP6XgiTpOEwS9APASUm2A58DzgZ+dXyDqtp+1+MkbwauWB5zSdJsrRr0qjqU5AJGP72yAdhbVTckOX943uvmknQ3MMkZOlW1H9i/bN2KIa+q5xz/WJKko+U7RSWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUxERBT3JmkpuSHExy4QrP70pyXZJrkywkecz0R5UkHcnG1TZIsgG4CHgisAgcSLKvqm4c2+wqYF9VVZJTgMuAk2cxsCRpZZOcoZ8GHKyqm6vqDuBSYNf4BlX1taqqYfE+QCFJWlOTBH0LcMvY8uKw7v9I8tQknwL+FnjeSjtKct5wSWZhaWnpWOaVJB3GJEHPCuv+3xl4Vf1VVZ0MPAV41Uo7qqo9VbWzqnZu3rz56CaVJB3RJEFfBE4cW94K3Hq4javqg8CPJdl0nLNJko7CJEE/AJyUZHuSE4CzgX3jGyR5cJIMj08FTgC+NO1hJUmHt+pPuVTVoSQXAFcCG4C9VXVDkvOH53cDvww8K8k3gf8BnjH2TVJJ0hpYNegAVbUf2L9s3e6xx68FXjvd0SRJR8N3ikpSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpiYmCnuTMJDclOZjkwhWef2aS64b/rk7y8OmPKkk6klWDnmQDcBFwFrADOCfJjmWbfRr42ao6BXgVsGfag0qSjmySM/TTgINVdXNV3QFcCuwa36Cqrq6q/xgWPwJsne6YkqTVTBL0LcAtY8uLw7rDeT7wdys9keS8JAtJFpaWliafUpK0qkmCnhXW1YobJj/HKOivWOn5qtpTVTuraufmzZsnn1KStKqNE2yzCJw4trwVuHX5RklOAS4GzqqqL01nPEnSpCY5Qz8AnJRke5ITgLOBfeMbJHkAcDlwblX96/THlCStZtUz9Ko6lOQC4EpgA7C3qm5Icv7w/G7g94AfAP4sCcChqto5u7ElSctNcsmFqtoP7F+2bvfY4xcAL5juaJKko+E7RSWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUxERBT3JmkpuSHExy4QrPn5zkw0m+keTl0x9TkrSajattkGQDcBHwRGAROJBkX1XdOLbZl4EXA0+ZyZSSpFVNcoZ+GnCwqm6uqjuAS4Fd4xtU1W1VdQD45gxmlCRNYJKgbwFuGVteHNYdtSTnJVlIsrC0tHQsu5AkHcYkQc8K6+pYXqyq9lTVzqrauXnz5mPZhSTpMCYJ+iJw4tjyVuDW2YwjSTpWkwT9AHBSku1JTgDOBvbNdixJ0tFa9adcqupQkguAK4ENwN6quiHJ+cPzu5P8MLAA3A/4VpKXAjuq6isznF2SNGbVoANU1X5g/7J1u8cef4HRpRhJ0pxMFHRJuqd55eXXz2zfr37aw2ayX9/6L0lNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNeH90Cc0q3sjH+6+yF1e73Cv2f315mGtv2bW2j3hz/B4GXRpRgzssbm7HN965CUXSWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1MREQU9yZpKbkhxMcuEKzyfJG4bnr0ty6vRHlSQdyapBT7IBuAg4C9gBnJNkx7LNzgJOGv47D3jjlOeUJK1ikjP004CDVXVzVd0BXArsWrbNLuCtNfIR4P5JfmTKs0qSjiBVdeQNkqcDZ1bVC4blc4FHVtUFY9tcAbymqj40LF8FvKKqFpbt6zxGZ/AADwVumtaBrGITcPsavdY8eHzrX/dj7H58sHbH+MCq2rzSExsn+OSssG753wKTbENV7QH2TPCaU5Vkoap2rvXrrhWPb/3rfozdjw/uHsc4ySWXReDEseWtwK3HsI0kaYYmCfoB4KQk25OcAJwN7Fu2zT7gWcNPu5wO/FdVfX7Ks0qSjmDVSy5VdSjJBcCVwAZgb1XdkOT84fndwH7gScBB4L+B585u5GOy5pd51pjHt/51P8buxwd3g2Nc9ZuikqT1wXeKSlITBl2Smmgd9NVuWbDeJTkxyfuTfDLJDUleMu+ZZiHJhiQfH97v0EqS+yd5V5JPDX+Oj5r3TNOW5GXD1+cnkrw9yXfPe6bjkWRvktuSfGJs3fcneV+Sfxs+ft88Zmsb9AlvWbDeHQJ+q6p+HDgdeGHDYwR4CfDJeQ8xI38CvLeqTgYeTrPjTLIFeDGws6p+gtEPVpw936mO25uBM5etuxC4qqpOAq4altdc26Az2S0L1rWq+nxVfWx4/FVGMdgy36mmK8lW4MnAxfOeZdqS3A/4GeDPAarqjqr6z/lONRMbge9JshG4N+v8PSpV9UHgy8tW7wLeMjx+C/CUNR1q0DnoW4BbxpYXaRa7cUm2AY8APjrfSabu9cBvA9+a9yAz8CBgCXjTcEnp4iT3mfdQ01RVnwP+CPgs8HlG71H5+/lONRM/dNd7b4aPPziPIToHfaLbEXSQ5L7Au4GXVtVX5j3PtCT5BeC2qrpm3rPMyEbgVOCNVfUI4OvM6Z/qszJcS94FbAd+FLhPkl+b71R9dQ76PeJ2BEm+i1HML6mqy+c9z5Q9GvilJJ9hdMnscUneNt+RpmoRWKyqu/5V9S5Gge/kCcCnq2qpqr4JXA789JxnmoUv3nWH2eHjbfMYonPQJ7llwbqWJIyuv36yql4373mmrapeWVVbq2oboz+/f6iqNmd3VfUF4JYkDx1WPR64cY4jzcJngdOT3Hv4en08zb7xO9gHPHt4/Gzgb+YxxCR3W1yXDnfLgjmPNW2PBs4Frk9y7bDud6pq/xxn0tF5EXDJcNJxM3e/22Ycl6r6aJJ3AR9j9FNZH+du8Bb545Hk7cAZwKYki8DvA68BLkvyfEZ/if3KXGbzrf+S1EPnSy6SdI9i0CWpCYMuSU0YdElqwqBLUhMGXetWkqvX8LXOSNLxDTFqxKBr3aqqtQzsGRzlOxyHm1FJa8aga91K8rXh4xlJPjB2X/FLhl9YflaSy8a2PyPJe4bHP5/kw0k+luSdw/1wSPKZJH8wrL8+ycnDjc/OB16W5Nokj03ywCRXJblu+PiA4fPfnOR1Sd4P/OFwf+zNw3P3Gu7Nv2lN/0fpHsOgq4tHAC9ldO/7BzF6F+37GL3t/K47GD4DeMcQ1N8FnlBVpwILwG+O7ev2Yf0bgZdX1WeA3cAfV9VPVtU/An8KvLWqTgEuAd4w9vkPGfb9MuBtwDOH9U8A/qWqbp/uoUsjBl1d/HNVLVbVt4BrgW1VdQh4L/CLw+WPJzO6x8bpjML/T8MtE54NPHBsX3fd5OwaYNthXu9RwF8Oj/8CeMzYc++sqjuHx3uBZw2Pnwe86dgOT1qd1/jUxTfGHt/Jd7623wG8kNEvJDhQVV8dbhL1vqo6Z5V9je9nNeP30Pj6t1dW3ZLki0keBzyS75ytS1PnGbq6+wCjW9L+OqO4A3wEeHSSBwMMdwJ8yCr7+SrwvWPLV/OdX6X2TOBDR/jcixlderls7MxdmjqDrtaGgF7B6HfLXjGsWwKeA7w9yXWMAn/yKrt6D/DUu74pyuj3ZD53+PxzGf3e08PZB9wXL7doxrzbojRjSXYy+obqY+c9i3rzGro0Q0kuBH4Dr51rDXiGLklNeA1dkpow6JLUhEGXpCYMuiQ1YdAlqYn/Bc7Qn0BUogrwAAAAAElFTkSuQmCC\n", + "text/plain": [ + "

" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "T = 30\n", + "n = b + 1 \n", + "draws = independent_draws(T, num_draws=100_000)\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.bar(range(n), [np.mean(draws == i) for i in range(n)], width=0.8, alpha=0.6)\n", + "ax.set(xlabel=\"inventory\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "α = 0.6\n", + "λ = 0.5\n", + "γ = 0.1\n", + "b = 10" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "states = np.arange(n)\n", + "I = np.identity(n)\n", + "\n", + "# Embedded jump chain matrix\n", + "K = np.zeros((n, n))\n", + "K[0, -1] = 1\n", + "for i in range(1, n):\n", + " for j in range(0, i):\n", + " if j == 0:\n", + " K[i, j] = (1 - α)**(i-1)\n", + " else:\n", + " K[i, j] = α * (1 - α)**(i-j-1)\n", + "\n", + "# Jump intensities as a function of the state\n", + "r = np.ones(n) * λ\n", + "r[0] = γ\n", + "\n", + "# Q matrix\n", + "Q = np.empty_like(K)\n", + "for i in range(n):\n", + " for j in range(n):\n", + " Q[i, j] = r[i] * (K[i, j] - I[i, j])\n", + "\n", + "def P_t(ψ, t):\n", + " return ψ @ expm(t * Q)\n", + "\n", + "ψ_0 = binom.pmf(states, n, 0.25)\n", + "ψ_T = P_t(ψ_0, T)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.bar(range(n), ψ_T, width=0.8, alpha=0.6)\n", + "ax.set(xlabel=\"inventory\")\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/1144ec2d237523ea87e2ddd3c1c2321b/base.ipynb b/code_book/_build/.jupyter_cache/executed/1144ec2d237523ea87e2ddd3c1c2321b/base.ipynb new file mode 100644 index 0000000..4373a7b --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/1144ec2d237523ea87e2ddd3c1c2321b/base.ipynb @@ -0,0 +1,110 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "xmin, xmax = -10.0, 10.0\n", + "ymin, ymax = -5.0, 5.0\n", + "\n", + "\n", + "A1 = np.asarray([[0.55, -0.6],\n", + " [0.5, 0.4]])\n", + "\n", + "def f(x, y): \n", + " return A1 @ (x, y)\n", + "\n", + "def draw_arrow(x, y, ax):\n", + " eps = 0.75\n", + " v1, v2 = f(x, y)\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = eps / nrm\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.4,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", + "\n", + "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 8)\n", + "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 8)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.set_xlim(xmin, xmax)\n", + "ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " draw_arrow(x, y, ax)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + }, + "source_map": [ + 14, + 18, + 63 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/13237bc72aeab9093aa6eaab60823fcb/base.ipynb b/code_book/_build/.jupyter_cache/executed/13237bc72aeab9093aa6eaab60823fcb/base.ipynb new file mode 100644 index 0000000..65d5488 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/13237bc72aeab9093aa6eaab60823fcb/base.ipynb @@ -0,0 +1,167 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.special import factorial, binom" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "t_grid = np.linspace(0, 50, 100)\n", + "\n", + "class Erlang:\n", + "\n", + " def __init__(self, λ=0.5, n=10):\n", + " self.λ, self.n = λ, n\n", + "\n", + " def __call__(self, t):\n", + " n, λ = self.n, self.λ\n", + " return (λ**n * t**(n-1) * np.exp(-λ * t)) / factorial(n-1)\n", + "\n", + "e1 = Erlang(n=10, λ=0.5)\n", + "e2 = Erlang(n=10, λ=0.75)\n", + "\n", + "fig, ax = plt.subplots()\n", + "for e in e1, e2:\n", + " ax.plot(t_grid, e(t_grid), label=f'$n={e.n}, \\lambda={e.λ}$')\n", + "\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "λ = 0.5 \n", + "np.random.seed(1234)\n", + "t_grid = np.linspace(0, 10, 200)\n", + "\n", + "@njit\n", + "def draw_X(s=1.0, n=1_000):\n", + " draws = np.empty(n)\n", + " for i in range(n):\n", + " Y = np.random.exponential(scale=1/λ)\n", + " if Y <= s:\n", + " X = Y\n", + " else:\n", + " Z = np.random.exponential(scale=1/λ)\n", + " X = s + Z\n", + " draws[i] = X\n", + " return draws\n", + "\n", + "fig, ax = plt.subplots()\n", + "draws = draw_X()\n", + "empirical_exceedance = [np.mean(draws > t) for t in t_grid]\n", + "ax.plot(t_grid, np.exp(- λ * t_grid), label='exponential exceedance')\n", + "ax.plot(t_grid, empirical_exceedance, label='empirical exceedance')\n", + "ax.legend()\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXhU9dn/8fedmUxWkkAIEAi7CIRAEBJWEawscXkAK1YRraJVqUv7+KsKVh+t1VZrrbVa6664AhZ3iwouiIIKQXaQHSSsCUsISSbLzP37IzEFzAYkOZnJ/bquuZI5c2bOZ0L45OSbc75HVBVjjDGBL8TpAMYYY+qGFboxxgQJK3RjjAkSVujGGBMkrNCNMSZIuJ3acMuWLbVTp05Obd4YYwLS0qVLc1Q1obLHHCv0Tp06kZmZ6dTmjTEmIInI9qoesyEXY4wJElboxhgTJKzQjTEmSDg2hm5MICkpKSErKwuv1+t0FNNEhIeHk5SURGhoaK2fY4VuTC1kZWXRrFkzOnXqhIg4HccEOVVl//79ZGVl0blz51o/r8YhFxF5QUT2icjqKh4XEXlMRDaJyEoR6XcCuY0JCF6vl/j4eCtz0yBEhPj4+BP+jbA2Y+jTgYxqHj8X6FZ+uw548oQSGBMgrMxNQzqZ77caC11VFwAHqlllHPCylvkGiBORxBNOUkvb1y3lmyevp8hbUF+bMMaYgFQXR7m0A3YcdT+rfNlPiMh1IpIpIpnZ2dkntbFDuzczaO9Mvv/6g5N6vjGmfh06dIh//etfFfd37drFhAkTqn3Otm3bSElJqe9oJ6UxZzteXRR6Zb8XVHrVDFV9RlXTVDUtIaHSM1dr1GPIBRzRCIpWvntSzzfG1K/jC71t27bMnj3bwURNR10UehbQ/qj7ScCuOnjdSoWFR/J9zGC6HVyAr7S0vjZjTKPz6quvMmDAAPr27cv111+Pz+djyZIl9OnTB6/XS35+Pr169WL16tXMnz+fs846iwsvvJDk5GSmTJmC3+8HYMaMGfTu3ZuUlBSmTp1a8frR0dHceeedpKamMmjQIPbu3QtAdnY2F110Eenp6aSnp7Nw4UIA/vCHP3D11VczYsQIunTpwmOPPQbAtGnT2Lx5M3379uW22247Zg9327ZtDBs2jH79+tGvXz8WLVpU4/v+61//Snp6On369OGee+4B4O2332bkyJGoKrt37+b0009nz549HDlyhMmTJ9O7d2/69OnDm2++CcDcuXMZPHgw/fr14+KLL+bIkSMALF26lOHDh9O/f3/GjBnD7t27K5anpqYyePBgnnjiiYosVeWfP38+I0aMYMKECfTo0YNJkybx49XglixZwpAhQ0hNTWXAgAHk5eXh8/m47bbbKt7X008/fTLfEj9RF4ctvgfcJCIzgYFArqruroPXrVrP/6H54s9Yt2QuPQefV6+bMuZ4976/hrW7Dtfpaya3jeGe/+lV5ePr1q1j1qxZLFy4kNDQUG644QZee+01fvnLXzJ27FjuuusuCgsLufzyy0lJSWH+/PksXryYtWvX0rFjRzIyMnjrrbcYMmQIU6dOZenSpTRv3pzRo0fzzjvvMH78ePLz8xk0aBB/+tOfuP3223n22We56667+O1vf8stt9zCmWeeyQ8//MCYMWNYt24dAN9//z2ff/45eXl5dO/enV//+tc8+OCDrF69muXLlwNlJfijVq1aMW/ePMLDw9m4cSMTJ06sdk6nuXPnsnHjRhYvXoyqMnbsWBYsWMCFF17Im2++yRNPPMFHH33EvffeS5s2bZg6dSqxsbGsWrUKgIMHD5KTk8P999/PJ598QlRUFH/5y1945JFHuOOOO7j55pt59913SUhIYNasWdx555288MILTJ48mccff5zhw4dz22231Sr/smXLWLNmDW3btmXo0KEsXLiQAQMGcMkllzBr1izS09M5fPgwERERPP/888TGxrJkyRKKiooYOnQoo0ePPqFDFCtTY6GLyAxgBNBSRLKAe4BQAFV9CpgDnAdsAgqAyaeUqBZ6DPs5Rd/eTu6yt8EK3TQBn376KUuXLiU9PR2AwsJCWrVqBcDdd99Neno64eHhFXvJAAMGDKBLly4ATJw4ka+++orQ0FBGjBjBj0OekyZNYsGCBYwfPx6Px8MFF1wAQP/+/Zk3bx4An3zyCWvXrq143cOHD5OXlwfA+eefT1hYGGFhYbRq1apir74qJSUl3HTTTSxfvhyXy8WGDRuqXX/u3LnMnTuXM844A4AjR46wceNGzjrrLB5//HFSUlIYNGgQEydOrMg6c+bMiuc3b96cDz74gLVr1zJ06FAAiouLGTx4MOvXr2f16tWMGjUKAJ/PR2JiIrm5uRw6dIjhw4cDcMUV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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "draws = draw_X(n=10_000)\n", + "empirical_exceedance = [np.mean(draws > t) for t in t_grid]\n", + "ax.plot(t_grid, np.exp(- λ * t_grid), label='exponential exceedance')\n", + "ax.plot(t_grid, empirical_exceedance, label='empirical exceedance')\n", + "ax.legend()\n", + "\n", + "plt.show()\n" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/155649bae18a3547616e22154fbf6a9f/base.ipynb b/code_book/_build/.jupyter_cache/executed/155649bae18a3547616e22154fbf6a9f/base.ipynb new file mode 100644 index 0000000..b724c4e --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/155649bae18a3547616e22154fbf6a9f/base.ipynb @@ -0,0 +1,284 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.special import factorial, binom" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "Ks = 0, 1, 2, 3\n", + "Js = 0, 0.8, 1.8, 2.1, 3\n", + "n = len(Ks)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(Js[:-1], Ks, 'o')\n", + "ax.hlines(Ks, Js[:-1], Js[1:], label='$N_t$')\n", + "ax.vlines(Js[:-1], (0, Ks[0], Ks[1], Ks[2]), Ks, alpha=0.25)\n", + "\n", + "ax.set(xticks=Js[:-1],\n", + " xticklabels=[f'$J_{k}$' for k in range(n)],\n", + " yticks=(0, 1, 2, 3),\n", + " xlabel='$t$')\n", + "\n", + "ax.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(1234)\n", + "T = 5\n", + "Ws = np.random.exponential(size=T)\n", + "Js = np.cumsum(Ws)\n", + "Ys = np.arange(T)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(np.insert(Js, 0, 0)[:-1], Ys, 'o')\n", + "ax.hlines(Ys, np.insert(Js, 0, 0)[:-1], Js, label='$N_t$')\n", + "ax.vlines(Js[:-1], Ys[:-1], Ys[1:], alpha=0.25)\n", + "\n", + "ax.set(xticks=[],\n", + " yticks=range(Ys.max()+1),\n", + " xlabel='time')\n", + "\n", + "ax.grid(lw=0.2)\n", + "ax.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "np.random.seed(1)\n", + "T = 10\n", + "p = 0.25\n", + "B = np.random.uniform(size=T) < p\n", + "N = np.cumsum(B)\n", + "m = N[-1] # max of N\n", + "\n", + "t_grid = np.arange(T)\n", + "t_ticks = [f'$t_{i}$' for i in t_grid]\n", + "ax.set_yticks(range(m+1))\n", + "ax.set_xticks(t_grid)\n", + "ax.set_xticklabels(t_ticks, fontsize=12)\n", + "\n", + "ax.step(t_grid, np.insert(N, 0, 0)[:-1], label='$\\hat N_t$')\n", + "\n", + "for i in t_grid:\n", + " if B[i]:\n", + " ax.vlines((i,), (0,), (m,), ls='--', lw=0.5)\n", + "\n", + "ax.legend(loc='center right')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "λ = 0.5\n", + "T = 10\n", + "\n", + "def poisson(k, r):\n", + " \"Poisson pmf with rate r.\"\n", + " return np.exp(-r) * (r**k) / factorial(k)\n", + "\n", + "@njit\n", + "def draw_Nt(max_iter=1e5):\n", + " J = 0\n", + " n = 0\n", + " while n < max_iter:\n", + " W = np.random.exponential(scale=1/λ)\n", + " J += W\n", + " if J > T:\n", + " return n\n", + " n += 1\n", + "\n", + "@njit\n", + "def draw_Nt_sample(num_draws):\n", + " draws = np.empty(num_draws)\n", + " for i in range(num_draws):\n", + " draws[i] = draw_Nt()\n", + " return draws\n", + "\n", + "\n", + "sample_size = 10_000\n", + "sample = draw_Nt_sample(sample_size)\n", + "max_val = sample.max()\n", + "vals = np.arange(0, max_val+1)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(vals, [poisson(v, T * λ) for v in vals], \n", + " marker='o', label='poisson')\n", + "ax.plot(vals, [np.mean(sample==v) for v in vals], \n", + " marker='o', label='empirical')\n", + "\n", + "ax.legend(fontsize=12)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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DsCLL77Irl278Pl81NTUcNdddwEQj8e5+eabqaioIBAIcP7559Pba7Zp6erq4kMf+hDl5eVs2rSJb3/72+P3/qu/+iuuv/56PvGJT+D1etm+fTtLWSc1n1JH9UD7hP93ABfmef+8r1VK3QbcBrB27do8by9E8YunMnQOx3jXurJFuf+GKg9vdARpH46Nbd8h8vb2zyGcx35aBx+DZBQSo5DbxDgZhaf+FrZ+8MzXempg8+lbts+kvb2dxx9/nHPOOYebbrqJhx9+mCuvvJJ/+Id/YM+ePRw4cACH49Q/eD796U/z6U9/mltuuYVwODy+Hca//du/EQwGaW9vx+l08tprr+F2m7V4N910E9u3b6erq4uDBw9y9dVXs2HDBq666ioAHnnkEX784x9z33338YUvfIE77riDF154YdavZy7y6UFNtWAj35WBeV+rtb5Ha71La70rt9+IECvB8cEoWa0XfP4pp7HMjcNm4diApJsvmugQ2Cctrra7zeML7Dd/8zcJBAJcdtllXHHFFWzbto0PfOADXH311djtdu6++25isRjPPffcadfa7XYOHz7MwMAAHo+Hiy66aPzxwcFBDh8+jNVq5V3vehc+n4/29nZ++ctf8vd///e4XC7OPfdcfv/3f5/vfe974/e87LLLuPbaa7Fardxyyy28/vrrC/6ap5NPD6oDmLincQMw9R7EC3utECvC0f4wJQ4rtT7XotzfZrWwtryEo/0R3rNFz6vG36qTb89m5IQZ1nMHTj4WG4G6HXDexxe0SQ8//DDve9/Jdv3RH/0R69atG/+/xWKhsbGRzs7O06699957+Yu/+Au2bt3K+vXr+cu//Es++MEPcsstt9De3s6NN97IyMgIN998M3/7t39LV1cX5eXleL3e8XusW7fulGG8yVvLx+Nx0uk0Ntvi1xrPpwf1ErBZKbVeKeUAbgQeyfP+87lWiGUvk9UcG4ywvrIUywJUj5jOhqpSQvE0/aHEoj3Hqta8B+IjJijprPk3PmIeX2STt3DXWtPe3j7lFu6bN2/mgQceoK+vj8985jN85CMfIRKJYLfb+cu//EsOHDjAc889x2OPPcb999/PmjVrGBoaIhQKjd/jxIkT894efqHMGKC01mngDuAJoA14SGu9Xyl1u1LqdgClVK1SqgO4C/iCUqpDKeWb7trFejFCFJuukRiJVJYNVfMrDjuT9ZWlKAVHJJtvcdS2wCV3mh7UaKf595I7zeOL7Prrr+enP/0pv/jFL0ilUnz1q1/F6XRyySWXnHbu97//ffr7+7FYLAQCprdntVp56qmnePPNN8lkMvh8Pux2O1arlcbGRi655BI+97nPEY/HeeONN7j33nv5+McXtlc4V3n10bTWjwOPT3rsWxM+78EM3+V1rRArXVt3kL2tvbx8fJhMJstVW6sX9flKHDbQ8O1nj/Afr3RQH3Czu6VGNjNcSLUtSxKQJtuyZQvf//73ufPOO+ns7OTcc8/l0UcfPS1BAmDv3r3cddddRKNR1q1bx4MPPojL5aKnp4fbb7+djo4OPB4PN9xwAzfffDMADzzwALfffjtr1qyhrKyMv/7rv+bqq69e6pc5JdnyXYgFltua3e+2caQvjFKKCo9zUXe/besO8uXHDzISS3HRhnISaZ3XNvKrkWz5Xjiy5bsQBba3tRe/247DaiGZ0awJuPG77extzSOdeR7PWRdw4bJbCcbS+N32RX9OIRabBCghFljnSAyvy8Zo3NTHC7jteF22Rd39tnMkRpXXicNmIRQ36+UX+zmFWGwSoIRYYPUBN6F4mnAijc2qcNothOJp6gPz26Rw5ufM4HHaCCdMYFzs5xRisUmAEmKB7W6pIRhLMRBKUOowQ27BWIrdLTWL/pwKiCUzDIUTi/6cQiw2CVBCLLDmOj+/e8k6NJBIa/xu+6InKzTX+bnt8vXU+FyEExksFiUJEmdQjMlhK102O/takYu/FFiIVai81MlFGyr4rfPqaVqi+njNdX4+e62Hbz59hAvXV0hwmobL5WJwcJCKigqpurEEtNakUil6e3spLZ3dz4IEKCEWQc9oHIBa/+KUN5qO02alotRB79jzi9M1NDTQ0dFBf39/oZuyathsNvx+P5WVlbO7bpHaI8Sq1hOMEyixL+juufmq8bk4OhBBa6nLNxW73c769esL3QyRB5mDEmIR9I7GqVvi3lNOrd9FLJlhNCbbwIvlTQKUEAssFE8RiqepWaTq5TPJDSt2j8oaKLG8SYASYoH1Fmj+Kaey1IndqugJyjyUWN4kQAmxwHqCCawWRZXHWZDnt1gU1V6XJEqIZU8ClBALrGc0TqXHic1auB+vGr+LvtEEmays9xHLlwQoIRZQNqsLmiCRU+d3kc5qBsKygaFYviRACbGAhqJJkulswRIkcnLPL/NQYjmTACXEAsoFhEIlSOT4XDZKHNbxBcNCLEcSoIRYQL2jcZx2C2Ul9oK2QylFrV8SJcTyJgFKiAXUMxqn1ucqigoONT4XQ5Ek8VSm0E0RYk4kQAmxQFKZLAOhJLUFnn/KqfO70Br6RiVRQixPEqCEWCB9oQRZrakp8PxTzniihAzziWVKApQQC2Q8QaJIelAuu5WyErsEKLFsSYASYoH0jsbxue2UOotnk4Bav4ueYEw26BPLkgQoIRZIdzBeNL2nnBqfi0giQyghlc3F8iMBSogFEE2mGY2lqPUXpv7edOr8bgB6ZcGuWIYkQAmxAHLzT4WuIDFZpceB1aJkHkosSxKghFgAPaNxLMpUES8mNquFKq9TSh6JZUkClBALoHc0ToXHgcNWfD9StT6XSYGXyuZimSm+nyYhlhmtNT3BRNElSOTU+Fwk01kGI8lCN0WIWZEAJcQ8jURTxFOZgheInU5u6w+pyyeWm7wClFJqt1LqkFLqsFLqs1McV0qpfxo7/oZSaueEY/9LKbVfKdWqlHpAKVWcP8VCzFEuAaHYEiRyAiV2nHaLzEOJZWfGFYVKKSvwdeBqoAN4SSn1iNb6wITTrgE2j31cCHwTuFApVQ98CtimtY4ppR4CbgS+u6CvQogC6hmN47BZqCh1zOKiVmh7FILt4G+E5j1Q2zLzsTlQSlHrc0kmn1h28lnyfgFwWGt9FEAp9SBwHTAxQF0H3K/NcvUXlFIBpVTdhOdwK6VSQAnQtWCtF6KA2rqD7G3t5ZeHBygvsXOod5TmOv/MF/a0wnP/DK4A+OohNmL+f8md5vh0x+YRpBKpDI++3sUrx4dpLC9hd0tNfm0VooDyGeKrB9on/L9j7LEZz9FadwJfAU4A3UBQa/2zqZ5EKXWbUmqfUmpff39/vu0XoiDauoPc88wxhqNJbBZQCu555hht3cE8Ln7UXDD4NrS/CP0HYegYPPF58zF0DAYOQbgH3AETrNoenVdbnzzYTzyVweu2EYyl8m+rEAWUT4CaamObyfmqU56jlCrD9K7WA2uAUqXUzVM9idb6Hq31Lq31rqqqqjyaJUTh7G3txe+2Y7daAEWNz4XfbWdva+/MF3e/DsMnQFmgtNJ8+BvMT5HCfG53w+AR8+H0muG+ebS1xufEZbcSS2bwu+35t1WIAspniK8DaJzw/wZOH6ab7pz3Ace01v0ASqkfA5cA359rg4UoBp0jMer8LvpDZq+lUqcNu9VC50hs+ou0hneehcQo2JxQtwMsYz+CsRGo3Hzyc5cfho/BaCdEB6F+5/T3zbOtDpuF8FhNPq/Ldua2ClEE8ulBvQRsVkqtV0o5MEkOj0w65xHgE2PZfBdhhvK6MUN7FymlSpTZYvQqoG0B2y9EQdQH3ITiaSKJNDaLwmmzEIqnqQ+4p74gm4GDj8E7v4KtHwRPFSTCoLMmIMVHTDJE8x7zeTwIZU3gqYVI39h5w/Nqa6nTRmQsQJ2xrUIUiRl7UFrrtFLqDuAJwAr8q9Z6v1Lq9rHj3wIeB64FDgNR4NaxY79WSv0IeAVIA68C9yzGCxFiKe1uqeGeZ44xEE7icVoJxtIEYyluOL/BnDAxE89bZ3pM2QysfzesuxR695+aqbfzlpNJEJfcefJY5WbYcSP07YeX/w1qtkPHvlll+OXaitbEkhmGI0lCifTJtgpRpFQx7hOza9cuvW/fvkI3Q4gz2t8Z5G8eO4DdZmHn2rKTmXETs/RsDuh8xfSK3n03tPzW3J4sOgS/+kc4/Auo2gLlGyA+au6bR4ZfW3eQB15sZ987w1y0oZyP7mqQLD5RNJRSL2utd01+vHh2VhNiman2ubhwQwXXnF3L1lrfyQNtj5rgZHeZhAiLBWrPNtl6c1VSDhYrlFRCqBscHvDWnny+GQJUc52fu3+jhHufPcZ7tlZLcBLLgpQ6EmKO+kJm4WuVZ9IeUMF2cPlg6KgZ1qvdYYbj5pGJB0CoBxreZYLf8FFIJ8zz5Hlfr9OG22GlTxbsimVCApQQc9QfSmC3KspKJlWQ8DdC8ITJvgusBUepGY7zN059o3z5G01iReUmkxE4eNgkU+R5X6UUVR4n/eHE/NohxBKRACXEHPWFElR6nFgsk5YBbrkW+t8ClBmGm5ilNx+5DL9UwgS+0S4YOT6r+1b7nAyGk2Rk6w2xDEiAEmIOtNb0hxJU+6bY4j0ZhrpzoWabmS9yB+Zdqggw119yp7mf1uCpNMkS5RvyvkW110UmqxmMSC9KFD9JkhBiDoKxFMl0lirPpArmsRE48ZxJJ2/57YV/4tqWk4Eu3Af77oMjv8i7F1XlNQG1bzRRdLv/CjGZ9KCEmINcBYnTelBHnjT/brpq8RvhqYa1F5m09qGjeV1SVmLHYbPIPJRYFiRACTEHfaEEFqVO3WJj6Cj0H4K1l5hSRUth3aVQUgGH9kJ65h1zlVJUehz0j0qAEsVPApQQc9AfSlDucWCzjv0IZTPw9s/BXQaNFy5dQ6w22HKNyeY79kxel1R7XfSHExTjIn0hJpI5KCHmoC8UZ2156ckHOl4yaeXnXG+CxlIKNJpisgd/auajcqnn05RBqvI6SbZnGYmmKJvNJotCLDEJUELMUiSRJpLIsDZ1FJ66zwzthXpg43uhYmNhGlVaBV2vmAoTay8640aH1WOJEv3hhAQoUdRkiE+IWeoLJagIv826Q/eaQJBOQCoGPa+bhIVCeOsJqNoKaBMsz7DRYXmpA4tS9Mk8lChyEqCEmKX+UILNQ0/h9JabnXGjA6a6Q2nNvHa+nZdgu1m86y6D0Q7QmWnLINmsFio8DvrDUvJIFDcJUELMUl8oTkW6F5s7YDYUtNjNLrizqIu34PyNJ8spZVKmF3WG8kpVXid9o5IoIYqbBCghZqk/lED7G81GgtEhU85IWRem3t5c5cogaQ1OHwwcNhscTrOAt9rrJJrMEElmlrihQuRPApQQsxBPZRiJpkhs+gAMHYNUHDw1C1dvb64mlkGy2swWH2e9f9rySicrSsgwnyheksUnxCwMjFVg8DZug76tEO41c1CTd8UthFwZJK3h5e9CpB+yWROsJskFqP5Qgg1VniVuqBD5kQAlxCz0jZU4qom+bRISLv2UmX8qJkrBukug9cfQd2DKoOm0WQmU2MdfjxDFSIb4hJiF/lCCUoeFkr7XwFcHvvpCN2lqlWdBaSWceN70qKZQ7XWN1xQUohhJgBJiFvpCCZosvaZqRP0u01spRkrB2oshMgADb095SpXXSTCWIp6SRAlRnCRACZGndCbLUDhJU/yg2SW3urnQTTqz6m0maeL4r6bsRVVPmIcSohhJgBIiT4ORJI7kMBWJdlP7zmItdJPOzGIxZY9CPTB87LTD45l8EqBEkZIAJUSe+kMJakP7KXE5zY65y0HN2eD0wvHnTjtU6rThcdqkByWKlmTxCZGngZEgdbG3ca25CJzLJDXbajPbf7z2/0ydwMToKZXOq7xO+kOyFkoUJ+lBCZGnVMdreO1ZVOMFhW7K7Fjt0Pmy2UzRV3+y0nlPK9VeJ0ORFKlMttCtFOI0EqCEyEM2k8HZ9xrWskZT2mg5OfRfUNYEmQQkI6dUOq/yOslqzWB45t14hVhqEqCEOJOeVnjqS6QeuJn1/U9R4qsodItmL9hu9qmy2ExxWxgvbFvtdQGSySeKkwQoIabT02qGwmIjJFMplM5S3fnzwu35NFf+RkhGTc3AyIDpSY0VtvW5bTjtFvpkHkoUIQlQQkyn7VEzFGa1k4kGGXU34vCUF27Pp7nKVTq3l4DOwsCR8cK2SimqPE7pQYmiJAFKiOkE281QWLiHZFaT9dRgcfsLt+fTXOUqnXtrAQ3JEFz0yfEafdU+FwPhBNms7A0likteaeZKqd3APwJW4Dta6y9POsFTQdEAACAASURBVK7Gjl8LRIHf1Vq/MnYsAHwHaAE08Hta6+cX7BUIsVj8jQwO9BDueIf2qINRnaKupJ+KigLt+TQfuUrnZ38E3vwR2Bzjh8KxFM+8PcChnhAbqjzsbqmhuc5fwMYKYczYg1JKWYGvA9cA24CblFLbJp12DbB57OM24JsTjv0jsFdrvRXYAbQtQLuFWHRHq95D5/G3UYkwIWsZ7kyIIyc6OVr1nkI3be7KN4LLb9LOgbbuID9t7SaRyuBx2QjGUtzzzDHauoMFbqgQ+Q3xXQAc1lof1VongQeB6yadcx1wvzZeAAJKqTqllA+4HLgXQGud1FqPLGD7hVg0P+kup9t3LglbKS4VR5UE2LfmZn7SXV7ops2dxQJrzoORExDuZ29rL1UeJyUOK7FkBr/bjt9tZ29rb6FbKkReQ3z1wMRB9w7gwjzOqQfSQD9wn1JqB/Ay8GmtdWTykyilbsP0vli7dm2+7Rdi0fQOjXCBNc1T5dfzi9Q5nN9UjlLQPRIrdNPmp+4ceOdZ6HqFzpFa6vwuShy28e3fvS4bncv9NYoVIZ8e1FT7CUyeTZ3uHBuwE/im1vo8IAJ8dqon0Vrfo7XepbXeVVVVlUezhFhc59g7SaVSvK2aKHFYsVoUoXia+oC70E2bn1wl9p43WeuzEoqnKXVaiSTSgF4Zr1GsCPkEqA5g4qxwA9CV5zkdQIfW+tdjj/8IE7CEKHrvCfQyoH0ci5VS4rASjKUIxlLsbqkpdNPmb81OyKTYUztIMJZCY7YT6RtNrJzXKJa9fALUS8BmpdR6pZQDuBF4ZNI5jwCfUMZFQFBr3a217gHalVJbxs67CjiwUI0XYtFEh6hTw2x/16VYrFZiqSx+t53bLl+/MjLcfGvAW8v6xFvc9u4man0uwokMFotaOa9RLHszzkFprdNKqTuAJzBp5v+qtd6vlLp97Pi3gMcxKeaHMWnmt064xZ3AD8aC29FJx4QoTj1vglI41pzNxcEQN17QSJ1/BQ17KWX2tDr4OM3uET53TTPfePowZzcEJDiJopHXOiit9eOYIDTxsW9N+FwDn5zm2teAXfNooxBLS2vobYWy9fTE7ViUotLjLHSrFl71NjjyJHS+gqWsiSqvk95RKXkkiodUkhBispETplZdbQu9o3EqPA7s1hX4o2K1Q+05MPA2xEep9rnoD0lFCVE8ZMNCISbreRNsDnTFZnrb2tlUvUw2J5yL+p3Q9hj8159ybiyDK+ZndN3HCGyQXCZReCvwz0Ih5iGdhP6DUNXMaFIRT2Wo8a3A4b2cYCf0HYChYzjL6nGmR+H5f1l+FdvFiiQBSoiJBt6CTMoM741tQVHjcxW4UYuo7VEobwKLFXc6SNrhJ6RKl1/FdrEiSYASYqLeVlOrzt9I72gcq0VRUeqY+brlKthu9ouyuVDhHkodVoJZ9/Kr2C5WJAlQQuTER2H4HVP1Wyl6RxNUepzYVmKCRI6/EeIhsxVHPIjXmiIdHSHrayh0y4SQACVEblt3/uN/wLFnQFnRWtMXiq/s+Sc4uZmhzQUaAvETOFIhRtbtLnTLhJAAJVa58W3dhyGbBYsNXrmf0XdeI5HKruz5Jzi5mWFpFVgULh3n5bqb6HJtLHTLhJA0c7HK5bZ1t1ghHYOKTWBzk2z9Cbg+RvVK70HByc0Mh45hf/0BHBE7faE4IBUlRGFJD0qsbrlt3SP9oCxQWgkuH+nhE9gsiorSVRCgcsqaUO5yNqQO0zuaKHRrhJAAJVY5fyPEgiZAucvAYof4KIPWaqq8TqyWqXaSWaGUgjXnUp3tJTzYQ0YqSogCkwAlVrfmPRDqNBl8JZUQGyEbH+FN3xUrf/5pKrVnU+pyUhE6wGBYelGisCRAidWttgXWXQrOUjMH5Q4weu4f0uPauDrmnyZzlOKua6Yq8ja9I+FCt0ascpIkIVa3TBrScbjgD6H5gwB0dY0CPauzBwWUNL0L1+u/JtLRCmuvLHRzxComPSixug0dgXQCaraNP9QbimO3KspLVnAFiTNQZU3YvZXortcK3RSxykmAEqtb735wlECgafyhvtE41V4XltWUIDGRUljqz0UFO0iP9ha6NWIVkwAlVq90AgaPQFUzWMyPQjar6Q8lVuf80wSla88lqyyMHt1X6KaIVUwClFi9Bt6CbPqU4b3BSJJURq/a+aecqopyhtzrSXS8bqq7C1EAEqDE6tV7wFQu99WffGh0FWyxkQev00awrIVoNGL2xxKiACSLT6xOibCpXL72QrNAdUxfKI7DZqGsxF64thUBpRSl1euJ9kThyb+FknKzqLl5j0nNF2IJSA9KrE79h0BnoXr7KQ/3jiao9jpRapUmSEzQlHkHz0gb2XCfqVcYGzGFdWW3XbFEJECJ1alvP3iqzMeYTFYzEEqs+uG9nLV9vyDorCdlcUKkD9wBE6hkt12xRCRAidUnNgzBztN6T4PhBOmsJEjkeOI9xOx+orYyCPdCNmMK68puu2KJSIASq09fm/m3uvmUh3MVvFf8JoV5cpSvxaOjBG2VJjhF+kzNQn9joZsmVgkJUGL16d0P/gYzZDXx4dE4TrsFv3t1J0iMa96D3xIhlkiCvcRU3YiPmEQJIZaABCixuoT7IDJwytqnnN5QnBqvSxIkcmpbGN5xOyN4yCgLaA3nXC9ZfGLJSJq5WF1695uNCau2jj/U1h3k8Td7ePJgH2fVeNm2xktznewmC9BfspF70h+mRitu4Cc09fbTsKnQrRKrhfSgxOrQ0wpP/R384m+g5w0YOgaY4HTPM8foHY1T6rCiteaeZ47R1h0scIMLr607yCOvd5NIZXA6Xbxj28gbr/6agye6C900sUpIgBIrX0+rWb8z0gE2J9hc4+t59rb24nfbsSiFUopavwu/287eVimSure1l/JSBz63nWgyQ7jibEps8PpLzxa6aWKVyCtAKaV2K6UOKaUOK6U+O8VxpZT6p7Hjbyildk46blVKvaqUemyhGi5E3toeNet3MgmwWKGsaXw9T+dIDK/LRiiewm5VOG0WvC4bnSOxQre64HLvjddpIxRPE7MHiHkacPW/DtlsoZsnVoEZA5RSygp8HbgG2AbcpJSaPMN8DbB57OM24JuTjn8aaJt3a4WYi2A7OD0Q6YeSCrDYxtfz1AfchOIpRmNpfG47oAjF09QH3IVudcGZ9yaN120nmc6SSGU5at9CtT1hMvqEWGT59KAuAA5rrY9qrZPAg8B1k865DrhfGy8AAaVUHYBSqgH4APCdBWy3EPnzN5oglU2Dp9o8NraeZ3dLDQPhBKPxFB6njWAsRTCWYndLTWHbXAR2t9QQjKUAjdaarmCMI7qODfU10PlKoZsnVoF8AlQ9MHHpeMfYY/me83+APwVkTEAURvMeGDlhFps6/aam3Nh6nuY6P7+xrRan3UosmcHvtnPb5esliw9orvNz2+XrqfW5iKWyZDX8wRWbqNlyEQwdhehQoZsoVrh80synWhSi8zlHKfVBoE9r/bJS6sozPolSt2GGB1m7dm0ezRIiT+UbTFmjRBBCXaZHtfOW8fU8dpuV926t5g8v3yBroCZprvPTXOdnU7WX/lDCBO7EuXD8Oeh6FTZdVegmihUsnwDVAUysbdIAdOV5zkeADymlrgVcgE8p9X2t9c2Tn0RrfQ9wD8CuXbsmB0Ah5q6/DUor4Yo/Be/pQ3edIzHqA24JTmdQX+bmcF+Y0XgKn8sLlZtNuv76y8EqlTfE4shniO8lYLNSar1SygHcCDwy6ZxHgE+MZfNdBAS11t1a689prRu01k1j1z05VXASYlH1tJoAlZt/miAYSzEaS9FQJkkRZ9IwljTSOTyW3Vi/E1Lxk3UNhVgEM/agtNZppdQdwBOAFfhXrfV+pdTtY8e/BTwOXAscBqLArYvXZCFmIToEo12w8T2nbEyYk/uFWy8B6owqPU6cdgudwzGa63wQWAfpBDz1RSiplM0MxaLIq9SR1vpxTBCa+Ni3JnyugU/OcI+ngadn3UIh5qO31QSmmu1THu4cieG0W6jySAXzM7FYFPUBNx3DUfNA737z3kaHoGzDyc0ML7lTgpRYMFJJQqxcWpvhvbImcHqnPKVjOCrzT3lqKHMzHE0RTqTN4ueydeAoMXtFyWaGYhFIgBIrV7Ad4kGomfov+nAizUhU5p/yVR8oAcaGRYPt4C4HT41ZAJ1JymaGYsFJgBIrV0+ryTCrPGvKw7nhqoaykqVs1bJV7XXisFnoHImaOaf4KPjqTU91tEs2MxQLTgKUWJkyKZNeXrUFbI4pT+kcjuGwyfxTviwWxZqAy/SgmveYxc7pBLjLzMLd2JBsZigWlAQosTINHoZ0ctrhPTi5/slikfmnfNUHShgIJ4mVN5uECHfAFOC12mHT+yRBQiwo2bBQrEw9rSYxIrBuysPRZJrBcNKkTIu85ebrOkeibKptORmQXrkfooOmyrlF/u4VC0O+k8TKk4yYIaea7dP+shxf/yRVy2elxufCblW0D0/ajqTxQpOQMnCoMA0TK5IEKLHy9B4AnT3j8F7HcAy7VVHjcy1hw5Y/q0VR63efrCiRU7EZSsrhxAsmaUKIBSABSqwcPa3w1JfgiT8zhUzD0++K2zESo87vxirzT7PWUOZmIJwgnsqcfNBigYbzIdRjKscLsQAkQImVIbet+2iX2ZDQ7h7f1n2yeCrDQCgh65/mqD7gRmtO33W49mzzvre/WJiGiRVHApRYGSZu664sZouNaSobdEj9vXmp87uwWdTpw3xWO9S/y2RQRgYK0zixokiAEitDblv3cK+ZC7E6pq1s0DkSw2ZR1Mr805zYrBZq/K7xQH+K+neZHqz0osQCkAAlVgZ/I4wcNwt0vXXmsWkqG3QMR6n1u7BZ5dt/rhrK3PSF4iTSmVMPOEqg7hxTSDYRKkzjxIohP6FiZWjeA8PHzV7PLt8p27pPFE9l6A8lZHhvnhoCJWgNXSPxKQ6eb7IoO19e+oaJFUUW6oqVwVNt0sozKZMoMWlb95zuYBytzS9YMXe1fhcWZeah1leWnnqwpBxsLnj2a/Dag6bquewVJeZAApRYGbpeBd8auPiTZphpGh3DUawWRV1A5p/mw2GzUOt3msKxk/W0mt5TIgx+q+wVJeZMhvjE8pdOQM+bUN18xuAEpoJEjc+JXeaf5q0+UEJPMEEynT31QNuj4F1jerWhLjPkKntFiTmQHpRY/npbzdDemvOmPaWtO8hP3+jhyYN9bK31ck6Dn+Y6/xI2cuVJpNL86sgAB3tGOavGy+6WGvOeBtvNNhyBteZrE+oBb63sFSVmTf6MFMub1mZ4z1tjhvim0NYd5J5njtEdjOJxWgHNPc8co607uLRtXUHauoM88kY3iVQGl81CMJY6+Z7m9opyB8Dlh+AJiA3LXlFi1iRAieUt2AHhflizE6bZtn1vay9+t52sVliUYk3Ajd9tZ2/r9KWQxJntbe2lrMRBhcdJKJHG77affE9ze0XFgqYXFQ+Z4r2yV5SYJQlQYnnregVsTqjeNu0pnSMxvC4rQ5EEXrcdq8WC12U7vVSPyJt5T22UldgJxdMkM9mT72lty8m9ohIhM9xXsQkqNha62WKZkTkosXwlI9B/yMw9TbNrLpjacT2jMeKpLHV+s/4pFE/LVhvzUB9wE4ylqCh10DEcYyiSxG23nnxPJ+4VFe6Dff9qKp1vfE/hGi2WHelBieWr+w3IZs6YHAGwu6WGruEY8VSGQImdYCxFMJZid0vNEjV05dndUkMwliKZ0bjsFjqHotO/p55qk2HZuc+knguRJwlQYnnKZk1yRNk6KK0846lba3201Pup9rkYCCfxu+3cdvl6yeKbh+Y6P7ddvh6/2w4oUlnNLRetnf49bXq3+Zodf25J2ymWNxniE8vT0FGzg2seQ0YD4SQOm5U73rOJHY2BJWjc6tBcZ1L1B8IJvvf8caxn2uq9pBzqdkD3a9B4PrjLlq6hYtmSHpRYXnKbEj56J5z4NaRTM17ydl8IpWBTtWcJGrj6VHqcVHgcvNU7Q3HYdZcACt755ZK0Syx/EqDE8pHblDDcA1qZ7TVe+PqUmxLmaK15uzdMfcBNqVMGDBbLpmoPnSMxIon09Ce5fFC/E3r3m6UBQsxAApRYPnKbEqZiZs1TxaYZS+gMRpIMRZKcVeNdwoauPmfVeNEaDvfNkASx9mKIDsJP74KH/9j0hs/wB4ZY3SRAieUj2A4ON4S6obTCrH+aZlPCnLd6ZXhvKVSUOigvdfD2TAFq6CgMHIZgJzh9JwvJSpASU5AAJZYPfyMMvG1Sy/1rzWPTbEqYc7hPhveWglKKzTUeOoajZx7ma3sUKjaA0wsjJ8Dtl0KyYlp5BSil1G6l1CGl1GGl1GenOK6UUv80dvwNpdTOsccblVJPKaXalFL7lVKfXugXIFaRTVebX2p2t/mYZlPCnIFwgsFwks0yvLckNlfnMcwXbAd3+VgJpBGIDMzYCxar14wBSillBb4OXANsA25SSk2uK3MNsHns4zbgm2OPp4E/0Vo3AxcBn5ziWiHyk4pA/S6oaobRTlNK5wx7DL3dG0Yp2CzDe0ui0pPHMF+ukKy3DhweGDoCsSEpJCumlM+4xwXAYa31UQCl1IPAdcCBCedcB9yvtdbAC0qpgFKqTmvdDXQDaK1DSqk2oH7StULMLBmFjpdgw+Ww/bfyuuTtvhBrZHhvySil2Fzt4cV3hogm05Q4pnjfm/eYOScwtflOvGjKVe2+dWkbK5aFfIb46oGJ/e+OscdmdY5Sqgk4D/j1VE+ilLpNKbVPKbWvv19SUMUkHS9CNg3rLsvr9MGx4T3J3ltam2fK5ptYSDYehMqNULHZLBkQYpJ8/rScag8DPZtzlFIe4D+A/6m1Hp3qSbTW9wD3AOzatWvy/cVqloxCxz6o2gKeqrwueWtseE+y95ZWpcdBWYmdt3rDnNMwTdWOiYVkMyl46TtwaC+c/z/Aal+6xoqil08PqgOYOEDcAHTle45Syo4JTj/QWv947k0Vq9Yse08Ah8eG9zwyvLeklFKcVeOlYzhKNHmGbL4cqx3O2m02NDz+q8VvoFhW8glQLwGblVLrlVIO4EbgkUnnPAJ8Yiyb7yIgqLXuVkop4F6gTWv9tQVtuVgdxntPW/PuPQ2GEwyEk5IcUSCbajz5LdrNKV8PtWeb0lXhvsVtnFhWZgxQWus0cAfwBNAGPKS13q+Uul0pdfvYaY8DR4HDwLeBPx57/FLgFuC9SqnXxj6uXegXIVaw8d7TpXlf8nbfWPaezD8VRJXHSVmJnbd7Z7G1xsb3moXXh/7LVD0XgjyrmWutH8cEoYmPfWvC5xr45BTX/ZKp56eEmNkse09t3UH2tvbyzFv9VJQ6aB+KyJYaBaCUwmmz8NC+dn55uJ+15aXsbqk589fCUQKb3gcv3Wu+5jpjUs+b90y7jECsfFJJQhSfXMXyf/84HHkKSs683xOY4HTPM8foHY1jtyqcdgv3PHOMtu7gEjRYTNTWHeTZwwPEUxkcVgvBWCq/r4XW0HcA+tqgpELKIAkJUKLI5CqWRwbMVhp2N7z6vRl/Se1t7cXvtpPKZFFKsba8BL/bzt7W3iVquMjZ29pLtddJoMTOUDSF323P72tx8DGo3gp2FwwdkzJIQgKUKDK5iuXJEKDNVuF5/JLqHIlR4rDSOxrH77bjsFnxumx0jsSWpt1iXOdIDK/LTpXHyWgsRSSRzu9rEWyH0mooazLVJYKdUgZplZMAJYpLsB0sVhjtgtIqsJfk9UuqPuDmncEIqYymocwNQCiepj7gXopWiwnqA25C8TQ1fhc2i6JjOJrf1yJXBsm3BkorYfgd83WXMkirlgQoUVx8DdD7JiirST+GGSuWA1y1tZoTg1HsVgulThvBWIpgLMXulpolaLSYaHdLDcFYikgiQ63PSXcwTt9ofOavRfMeU0A2FoTyTeax3v2w4YrFb7QoShKgRHEpa4LoEHiqwWKbsWJ5Tiqb5ZwGP2fVeOgOmmG+2y5fL1l8BdBc5+e2y9fjd9vJovA4bbTU+2b+WkwsgxTugfp3mQ0O+w5AOrk0jRdFRZbZi+IRHTJVyls+AukYBDtMz2nnLWdMNU6ms+x7Z5hdTeX89s6GJWywmE5znX88IP366CDPHRmkbzROtc915gsnlkECGDwCb/4QDj0O264zOymLVUMClCgOWsPBn5r5pwt+32xol6c3O0eIJjNcuKFiERso5mpHY4BXTozw/NFBrjt3cp3pGVRshPVXwNGnzRYday9clDaK4iQBShSHzldMj2nrtbMKTrne07qKEkmIKFIuu5WdawP596ImW3sRhLrh9Qeh9UeQjMgi3lVC5qBE4cVG4OhTYzXZzpnVpdJ7Wh52NAZw2a08f3Rw9hcrBWXroed16HoNSsplEe8qIQFKFJbWpv4amKrWs5hjkN7T8pHrRR3tj9A3Gp/9Dd7aCzVnm4Xb/YfAWSqLeFcBCVCiMHLljB64yVSKCKw12VuzIL2n5WVevahgu8nsrNoKqRj0vGkqTsgi3hVNApRYerlyRuE+M59gscPhX8xquEZ6T8vPvHpRuUW87jKo3maCVMc+U3lCrFiSJCGWXtuj4PRDqBPQULcD0gnz+AyT3rmK5W90jBBJZvjkezYuTZvFgtjRGGBvaw9//pNWvC479QH3zJXOwSREPPfP5nOXH/xrzYJunTWbHbrLFr/xYslJD0osvWA7RPrML5byDWZeIY9yRrmK5cORJMm0qZT98KtdUrF8GTk2EOZIf5ieYByfy5Z/pfOJi3hHOyHQCFf/bygpg1d/AJE5DBuKoic9KLG0tIZMEkZOQNVZZm0L5FXOKFexPJJIk87C9jUesto8LhUjloe9rb2sqyjhaH+EzpEYW2u944/nVWlicg+7Zju8/gA8+xVTHis2JCnoK4j0oMTSOvECOLzgKAWnb2yIJr9yRp0jMTSa9uEoZSV2vC67VCxfZjpHYgRKHNSXuRmJpugOxuf3NfRUw5pdcPw5aP+1+Z6SFPQVQwKUWDpdr5qKABuvhN/4OzNvMNpphm0uuXPGv3grSx20dgZx2ixsrPYAUrF8uclVOq/zuygvdXB8MErHcHR+X8N3noE155kF3r37TQ/d5ZcU9BVAhvjE0ug7CG89Yeactn7QlDSqOzvvyxPpDFYLxFJZzqp2Y1FqvGL5DedL/b3lYndLDfc8cwyADVWljESTHOoNc/2ueWypEWwHX71ZF9V/EAYOmV2Y4zI3udxJgBKLp6fV/BXb32YKwa67FLb/lglOs5DNava29uCw2bj76rN4vSNI50iM+oCbG85vkPmnZSRX6Xxvay+dIzHObQyQymQ50B1iR2OAEsccfiX5G82wnjtgKpGMdkDfIZN4M/yOqZAvliUJUGJx5NY6WewQGQI0DB2BgbdmPXn9y8MDHO2P8N6t1exoDPDeZtnjaTmbWOkcoCcY54f72nns9W5+e2c9NussZx5OSUH3mTlOf70pnfX6g1BSZbbvGO2UBIplRuagxOJoexSyGQgeB5sDGs8Hd8Ws5wX2dwV5+fgwOxr97GicXaUJsTzU+l28f3stnSMxnjzYh9Z6ljeYlILuDsAVfwrv+Ty4y+Hlf4UTz5khQEmgWFakByUWXjoBx39lApTLD1VbwOoElz2v0jS5xbhv94UYCie5dFMFV5wlFQNWsi21XgYjCR57vYv/butFa/JfxAtTp6ADRAehpsX0oHreAG+tSabIY1G4KDwJUGJhBTvMD7/WZqK6uvlkAdg81jrlFuO6bRZGokmyaA73R3ird1Tmmla4gNvO4b4wiXSWsxv844t457UzcrDd1Hn0rTHzUaPdQDcMHYNEyASr3FxpsF2GAIuMBCgxP7kf7pET5v82N1RugnffBW88ZDKpXD4TnOIjZnfcM9jb2gto2kdigOK8xgCJdFYW464CT+zvZWudj47hKEf6wjSWl+Bz2eb3tZ+YQFF5lqlA0XfQ1IB84VtmqcOJ58w8la/+5BBgHssexOKTACXmLpcIYXebLL1Iv6kwfd7N0LATPDWn/mU6w9bt0WSaF48NkslqSp02ttR4cdmtOGwWWYy7CnSOxKjzu/A4fRwdiHB8MEqpw8pQJDn3m05OoEglTFC67H+aUlvPf8MMSSsrWO0nK+rLEGBRkAAl5u6NB00PabTTDOPV7QCrA95+wgSo6eYFODnPZNLFXWyt9XF8KIrWUF7q4KwaL2psaFAW464O9QE3wVgKv9vOlhoPg+EkB3tGiSYzPH9kEJ/Lxs8O9I4vMchrfiqXQDHdH0qtPzZzpaNd5vvYUQolFRAbMMdl+K+g1KwzZpbArl279L59+wrdDJFzyg9pA9SdB4lR85epy296SoEGM7yns+YH/Te/Me3tcvNMfrcdp03R1h2iL5Tg/dtquHhjBQ/t68DvNmWMQvE0wVhqfvMQYlmY+H2R+9oPR5K01Ps4NhDhQNcoZ9V6qfG5Fu774qkvmWE9RwlEBswoQLjPjASsuwy6XjZzWCWVJ4epc8N/ErwWjFLqZa31rsmPSw9KGNP9sOWG8ZxeUBZ451dw8Kew/gqoHdvhtLTq5H0mJEKc2ks6+Rfv3tZeSuwWosk0b/XG0FqzoaoUgIs3VhIosZ9ynSzGXR0mL+Kd+LX/i5+0YrdZOD4YJZHOUu114nefnJ+a7ntt5iedMATorQV7ifme3vQ+OPAwRIchFQd7u/ljDAVvPmSSgJ7/F5O6PtXclQSvBSE9qNVkpiDkCkxIaBiGc26AN/8DQt2QTYPOgMNjCnKWr4dt1zHyi69xNGxjIOWk0p5ggydN4Kq7aNONp/013B+K854t1TzwUjtWBUopfG47GypLcdgsdAfjfOWjOwr9LokidPcPX6fK66BjKEZfKAGA06bQKG5793p+/GrXtL3uGYPXdD8XD/+xma+KDpkRiwV8awAAIABJREFUg8QoZNIm+6+00lRE8daZYUGbG1JRc34u6J3y8yQ9rzOZVw9KKbUb+EfACnxHa/3lScfV2PFrgSjwu1rrV/K5dqEdbX2B3l//CGuog4y3gZoLP8KGlotWxbEzHu9pPTWY9B5jQ9fXCFx1Fxx4hKGklXf6h8lE36HMGmONLURJ8KsQHyVsr6Aj7qYv68VeEmCTt4Sq0U7adCOPpj7A+fqX1Kk+BnQ196QuY49uZG9rDx6HFYuCrpEYQ5EkQ5EkD73cMTa0Z6GxvAS33ZQ9CsZSMs8kppWbn9pQ5aGxvIThSJKOkRipdJZ/fuoIOqvJBFxorSlxWAHbWEYo438o1fldU6aut+lG9qY/TGcqRn3azW5dQzOAv5HBwV7eCpYSijvwOmvZ6glRVumEoWOEE2mG+/abvclsVspLnZRaM9B/kNFonGO9KYKpAdwuNxsCDirGFqlP+3NY21JUv0/m83tooczYg1JKWf9/9u48Tq6yTPT476lT+9JVvaXT6YQkQIQsw2ZQNgEFNKARd0ABxxkngyPojHKvy+jozOg48/k46tVhdMIgiHBh0FEvMExQEQYQ0ARBDGmWAIF0ekmnu6u6uvblvX+c6k7RdKcr6aWWfr6fT39SdZY6T51011Pve57zvsBzwAVAD7AduMwYs6tsm4uAa7AT1BuB/2OMeWMl+07lSFtQL+58jAM//2eK7jBFTwhHJo4jG6PtrZ8GaOh1R2847TXv38rEcGZGaD1nC6E9v+CFV3oQlw+fI4/JpXFmoyxvCeBMHWBfwsJpObAcQkq8jBo/r2t1kokcy66X+zGeMG6ng2y+iGRiHLdqOTe5LmMklcXvdpLJFUnnC4wkMjjEwUA8jd9lTRQ6hLxOIn4XuYLhqnOOfk3rSq8zqUOZ6vpULJXjj89Yyb/c/wKW2F9yiqWPM8GQyRs6wh6KRUNrwIPHZeF0CIlMnuaAm09d8Dqe3x+f9nfRM9Q97d9b8KX/pvvFvTjcfgKSxeSSuDLDrGwL4koM0Bs3OC3BcgiFoiFfKNIVLJL3trJvOE7BHcZhucgWBZNPsbJrGWPLz2HksVvIu8MU3U2QS+LIjtH8lk+AODjwq+9QcEeq/llzqHVHmqSma0FVkqBOB75sjHlb6fnnAIwxXyvb5t+AB4wxt5WePwucC6yaad+pHGmCevSGa5FUFGdmBDE5AKx8krzTD4Azn6RQejzn68zBdePbWlPsN3ld6RZWHPkkBaev9JqpiceCwcqnKDi9ZcfzIRjEGPu55cF63QWY5+7FWUhhLA8OUwAMVjFD3uHBX0yQMD4cpXHOCuIkXXTic2QYsdqhkCPpaiEtPgpi4crFyTpD7PCdxfmxO0hbIRL48RYTeAtx/iv4PrqLRxH0HExCAG5LSOeLdIa95IuGtqCHoMeJy3JMVGj91QWvO/JrBmrRmu535pu/eI5YKjeRYNK5AkNjGRwOYf9oBrdTgIO/o8YYxjIFLljXwW9eHCJfLBLwOBERBEjnigTcFgi0JXZzZvYRWgoDDFsdPOo5g+HQGrrSL/Dm4TvIOkOkHAF8xQTuQpwHWi7hpMRDeLIxcHpwmhxOk8eTi2IsD5HCARLGi8dRxGHyOChiCnkCpEg6AjiLGQoOz0Ss43+/QGmdFyN216ajkCFv+SYeF532YwNY+TT50nNnIVX6vBpfl5r4/LI/W8o/o8rXTf78SpEvfS5Z+RRFpw8QMs3HIulRjC/C6X/69SP6v51NF18XUD4+TQ92K2mmbboq3Hc8wC3AFoCjjjqqgrBey4r3kA90YiX3YRXteydM0RBK9wGQdoRw5RMT28/LOmMIZsrWFex1xl75qnXOwsH9MIZAZmBinVVIlXKeUEDwZg5gENJWCAoF7F82ISMBvLk4/SZCaz7LqNWGEQdFsSiKRcEhePNRnnOspMmRJWE1kRMXRiz8hTjDRT+Puc7k/eanFI0hjxAoxvEzxn9aF7BXVuJqvYRTkg/Tmd9P1NPB46F3MsxRnNjkJZUtEPG7cTsdeJwO4uk8YZ9rYloFh9jfIidPjTF5wFClZjLd70z5FB4hr/2RFvS6JgouosksPrdFJlckXzTEUjl8boszj23jd6+M0O5zUzRQNPbfqcsSRpI5jAHjP4af+Y8t/S0aikVDbDTDgFlOOvQ+NqZ+TWtugCGrgx3Bt/F0ehmDxTfw/uJPSeSFqPjxmyQibn7kfBenFR6hxZkk6QhOxB9wjBIrelhS3E/S1YIlBqGIwxQRR4FgfgihSMpagkNAKNrp1lHAn48iGNJWGDFSSkGAWPiyMTvhWiGkYIAiAEWceDNDAGSsEBTsa3oCFBD8mf0ApB1BHIXURGo3ZZ9RGUcQq3Dw3sSiJ4Qz3jO7/+ApVJKgZIplk5td021Tyb72QmO2AlvBbkFVENdrFELLcaSipFvXHwwsFSVZuvlOUlGML1KX69KHWDfmi/CW92zh0RueQ0p3zVvYF/3cqSjGt4KRljezYu/NhDwOMpYPT2EMRyZN/4oPsDK4ht8PhTg58RCdmT7ink6eCLyH5a1rWQ7EUk087zuZ50vHTKRynFCWhICJ5DSehA5VkaXUXJrpd23rgy8hIhMtLMsh/PEZK1nbGeaUo5onWvbjYqkcaztdE48nrxt/HktF2ON7PXtK61ypHOf4XMASnhpq4uTEQ3SV/T2tal1LbqyFjr03U/R4yFjB0t9hlv4Vl+Ievh/PFH/fBZ/9pc49xbqU73UTj4uT1sV96yceT94vc4SfNalp1jnSUQqhuZ+XrZIE1QOUD6C2HOitcBt3BfvOmY43vs/uG4VX942e+1GAhl93qPcfaV3LXbE0p6Yfpi0zwAFrCdub3sbm084CYOuDSfa3H/vqfvgNHaV1B7+dHk4S0laSWijT/a7N9Ds6ufVV/vsN0//uz7xuur+njmn/Dj1DrTX1eXKk6+ZSJdegnNiFDucB+7ALHT5ojHm6bJu3A1dzsEji28aYN1Sy71RmU2ZeS9UsNVXFx/R9+LNZp1S9m4+/iyNdV0ufJwtZxXfERRKlnS8CvoXda/R9Y8xXReQqAGPM90pl5v8CbMIuM/+IMWbHdPvOdDy9D0oppRaPWSWohaYJSimlFo/pEpTOqKuUUqomaYJSSilVkzRBKaWUqkmaoJRSStUkTVBKKaVqUk1W8YnIIPDyLF+mDTgwB+E0Ij03U9PzMj09N9PTczO1wzkvK40x7ZMX1mSCmgsismOqskWl52Y6el6mp+dmenpupjYX50W7+JRSStUkTVBKKaVqUiMnqK3VDqCG6bmZmp6X6em5mZ6em6nN+rw07DUopZRS9a2RW1BKKaXqmCYopZRSNanhEpSIbBKRZ0Vkt4h8ttrxVJOIfF9E9ovIzrJlLSLyCxF5vvRvczVjrBYRWSEi94tIt4g8LSKfLC1f1OdHRLwi8lsR+X3pvPxtafmiPi/lRMQSkSdE5O7Scz03gIjsEZE/iMiTIjI+3dKszk1DJSgRsYDrgAuBdcBlIrKuulFV1U3Yc3SV+yxwnzFmDXBf6flilAc+bYxZC5wGfLz0u7LYz08GeIsx5kTgJGCTiJyGnpdynwS6y57ruTnozcaYk8ruf5rVuWmoBAW8AdhtjHnRGJMFbgcurnJMVWOMeRAYnrT4YuAHpcc/AN61oEHVCGNMnzHmd6XHcewPnC4W+fkxtrHSU1fpx7DIz8s4EVkOvB3497LFem6mN6tz02gJqgvYW/a8p7RMHdRhjOkD+0MaWFLleKpORFYBJwO/Qc/PeBfWk8B+4BfGGD0vB30L+N9AsWyZnhubAX4uIo+LyJbSslmdG+ccB1htMsUyraNX0xKRIPCfwF8aY0ZFpvoVWlyMMQXgJBGJAD8VkQ3VjqkWiMg7gP3GmMdF5Nxqx1ODzjTG9IrIEuAXIvLMbF+w0VpQPcCKsufLgd4qxVKrBkSkE6D07/4qx1M1IuLCTk63GmN+Ulqs56fEGBMFHsC+jqnnBc4E3ikie7AvH7xFRG5Bzw0Axpje0r/7gZ9iX3KZ1blptAS1HVgjIqtFxA1cCtxZ5ZhqzZ3Ah0uPPwz8vyrGUjViN5VuALqNMd8oW7Woz4+ItJdaToiIDzgfeIZFfl4AjDGfM8YsN8aswv5s+ZUx5nL03CAiAREJjT8G3grsZJbnpuFGkhCRi7D7iS3g+8aYr1Y5pKoRkduAc7GHvR8AvgT8DLgDOAp4BXi/MWZyIUXDE5GzgIeAP3DwesLnsa9DLdrzIyInYF/MtrC/wN5hjPk7EWllEZ+XyUpdfNcaY96h5wZE5GjsVhPYl47+rzHmq7M9Nw2XoJRSSjWGRuviU0op1SA0QSmllKpJmqCUUkrVJE1QSimlapImKKWUUjVJE5RSSqmapAlKKaVUTdIEpZRSqiZpglJKKVWTNEEppZSqSZqglFJK1SRNUEoppWqSJiillFI1SROUUnVCRG4Ska9UOw6lFoomKKUmEZGxST8FEflOad0DIpIuW/dsteMdJyIni8ivRSQpIr8VkaPm4DVbROSnIpIQkZdF5IPTbOcRkRtK28RF5AkRuXC2x1eLmyYopSYxxgTHf4AOIAX8qGyTq8u2Oa46Ub6aiCwH7gH+CWgFXgS+MAcvfR2QxT4PHwK+KyLrp9jOCewFzgHCwBeBO0Rk1RzEoBYpTVCqbonIVSLyXyJynYgcEJFeEblgjg/zPmA/9uy7h01EPisiL5RaFbtE5N1l6/aIyLUi8pSIxETkP0TEW7b+ZBH5XWnf/wC8Ux7E9s/A9caYO40xKeB24NQjibns+AHgvcAXjTFjxpiHsafwvmLytsaYhDHmy8aYPcaYojHmbuAl4PWziUEtbpqgVD07ATgd+0NzCfBvwGfKNxCRu0UkOs3P3RUc48PAzebVU09/rZQQf12a+vtQXgDehN2q+FvgFhHpLFv/AWATsLr0fv64FLcb+BnwQ6AFuwX33qkOICJNwMXAv5ctdgDpKbY9nPPxOqBgjHmubNnvgalaUJOP01Ha/+mZtlVqOs5qB6DULJwA/KMx5l4AEdmFnQwmGGPecaQvXrqGcw7wp2WLPwPswu72uhS4S0ROMsa8MNVrGGPKuwb/Q0Q+B7wB+H+lZd82xvSWjncXcFJp+WmAC/hWKTn+WEQ+NU2o55W2fUpExpd5yo5RHs/hnI8gEJu0LAaEDrWTiLiAW4EfGGOeOYzjKfUq2oJS9eyPgLvKnm/ATh5z5UrgYWPMS+MLjDG/McbEjTEZY8wPgF8DF033AiJypYg8Od5KKcXYVrZJf9njJHZSAFgG7JvUcnt5msOsAu40xkTGf4D7gW2Vvc1pjQFNk5Y1AfHpdhARB3arLwtcPcvjq0VOE5SqSyKyGrsHoLyK7mTgyUnb/fcUVXnjP/89w2GuBH4wwzYGkKlWiMhK4HrsD+rWUuLYOd32k/QBXVLWJAKmq8rzYCe38eOuBjZid31OjulwzsdzgFNE1pQtO5Fpuu1Ksd6AXVDxXmNMbob3qNQhaYJS9eoE4A/GmGLZspOxr5FMMMZcWF6VN+ln2jJoETkD6KKsek9EIiLyNhHxiohTRD4EnA3cO83LBLAT2GBp/49gt6Aq8SiQBz5ROtZ7sLsGp7IdOEdElonICuD/An9tjBmevOHhnA9jTAL4CfB3IhIQkTOxr3X9cJo4vgusBTaXCjWUmhVNUKpenUBZa0lEWoGl2C2UufBh4CfGmPLuLBfwFeyEcwC4BniXMWbKe6GMMbuwq+seBQawuyR/XcnBjTFZ4D3YRRMjwCXYyWIqv8Lu6nwOeBj4oTHm+kqOU4G/AHzYlYy3AR8zxky0oEotss+XWot/jn0Nrb+sVfahOYpDLULy6i5upZRSqjZoC0oppVRNqihBicgmEXlWRHaLyGenWH+8iDwqIhkRubZs+QoRuV9EukXkaRH55FwGr5RSqnHN2MUnIhZ23/YFQA/2BdnLSv3r49ssAVYC7wJGjDFfLy3vBDqNMb8TkRDwOHaf/VyWAiullGpAlbSg3gDsNsa8WLpwezt2Jc8EY8x+Y8x2IDdpeZ8x5nelx3GgG7sySimllDqkSkaS6MIeBHJcD/DGwz1QadDIk4HfTLN+C7AFIBAIvP74448/3EMopZSqQ48//vgBY0z75OWVJKipbio8rNI/EQkC/wn8pTFmdKptjDFbga0AGzduNDt27DicQyillKpTIjLlKCmVdPH1ACvKni8Heg/jwC7s5HSrMWa6+ziUUkqpV6kkQW0H1ojI6tIIy5cyxRAqUykb+qTbGPONIw9TKaXUYjNjF58xJi8iV2MP52IB3zfGPC0iV5XWf09ElgI7sAeSLIrIXwLrsO/2vwL4g4iM3/X/eWPMPfPwXpRSSjWQiqbbKCWUeyYt+17Z437srr/JHqaygTGVUkqpV9H5oJRSi0oul6Onp4d0+jXzOap5YlkWkUiEtrY2HI7KBzDSBKWUWlR6enoIhUKsWrWKV89mouaDMYZcLsfAwAA9PT0cddR0s8a8liaoRaK7L8a2nQPsi6boivjYtKGDtZ3haoel1IJLp9OanBaQiOB2u+nq6uLZZ6cc+H9aOljsItDdF2Prgy8RS+XoDHuIpXJsffAluvsmz+at1OKgyWnhHU7X3sQ+8xCHqjHbdg7gcznoGUnS3Rcn7HMS9rnYtnOg2qEppdS0NEE1oO6+GN/8xXNc+6Pf881fPMeOPcPsGUoQT+eJp/MkswVCXif7ojrpqVK1ZNWqVfzyl798zfKHHnqI4447bsHjOZzj3nTTTZx11llzenxNUA2mvDtvaZOHZ/pHeaY/zlgqx/plTQgwNJYlns7TFfFVO1ylVAXe9KY3Hfb1m3o+7jgtkmgw23YOEPa5CHqcPDcQJ5bKcXS7n3iqQNFAk8/J3pEky/FzyalT3bqmlJqKFhotPG1BNZh90RQhr5OhsQyxVI7VbQFOO7qN5S0+wj4XRWNfIH7PyV36x6VUhV5daOSd10Kj7du3s27dOpqbm/nIRz5COp3mgQceYPnyg18oV61axde//nVOOOEEwuEwl1xyyavu67r++us59thjaWlp4Z3vfCe9vQeHTxUR/vVf/5U1a9YQCoX44he/yAsvvMDpp59OU1MTH/jAB8hmswCvOe4//uM/cswxxxAKhVi3bh0//elP5/z9l9MWVIPpiviIpXLEM3lcltDR5CGWyrN+WZi/uuB1pHMFtj74IsVqB6pUDXjg2f0MxjMzbvfzp/tJZQuMpQ9OeZfKFvjGz5/jreuXHnLf9pCHc49bUnFMt956K/feey+BQIDNmzfzla98hfPPP/81291xxx1s27YNr9fLmWeeyU033cRVV13Fr371Kz73uc/x85//nPXr13Pttddy6aWX8uCDD07su23bNh5//HH27t3LKaecwiOPPMKtt95Ka2srp59+Orfddhsf/vCHX3PMY445hoceeoilS5fyox/9iMsvv5zdu3fT2dlZ8fs7HNqCajCbNnQQS+XYH08T8DiJpfLEUjk2begAwOuyWNUW4PmBODPNpqyUso0kc3hdr/649LocjCRz0+xx5K6++mpWrFhBS0sLf/3Xf81tt9025Xaf+MQnWLZsGS0tLWzevJknn7SHO7311lv5kz/5E0455RQ8Hg9f+9rXePTRR9mzZ8/Evp/5zGdoampi/fr1bNiwgbe+9a0cffTRhMNhLrzwQp544okpj/n+97+fZcuW4XA4uOSSS1izZg2//e1v5/wcjNMWVINZ2xnmw6ev5B/++xmy+SJhn4tLTl3+qu6813UEeWH/GPuiKZY3+6sYrVLVVWnLpmckRSyVI+xzTSyLpXKs97l4/8YVh9jz8K1YcfD1Vq5c+aruuXJLlx5sufn9/ontent7OeWUUybWBYNBWltb2bdvH6tWrQKgo6NjYr3P53vN8/7+/imPefPNN/ONb3xjItmNjY1x4MCBw3uDh0ETVAMK+VycfnQr79+4fMoEdHRbEJclPDcQ1wSlVAU2behg64MvARDyOomn7Z6J+Sg02rv34ATmr7zyCsuWLTus/ZctW8bLLx+c/y+RSDA0NERXV9es4nr55Zf5sz/7M+677z5OP/10LMvipJNOmteeGO3ia0B90TQOETqavFOudzsdrG4L8vzAGMWidvMpNZO1nWG2nL2asM9FXyxN2Odiy9mr56XQ6LrrrqOnp4fh4WH+4R/+gUsuueSw9v/gBz/IjTfeyJNPPkkmk+Hzn/88b3zjGydaT0cqkUggIrS32zOz33jjjezcuXNWrzkTbUE1oN5YiiVNHlzW9N8/jlsa5LmBOHtHkqxsDSxgdErVp7Wd4QWpfP3gBz/IW9/6Vnp7e7n44ov5whe+cFjXec477zz+/u//nve+972MjIxwxhlncPvtt886rnXr1vHpT3+a008/HYfDwZVXXsmZZ54569c9FKnFC+UbN240O3bsqHYYdalQNHz3gd1s6Aofsn89Xyjy93fvYiiRxeuy9L4OtWh0d3ezdu3aaoexKE137kXkcWPMxsnLtYuvwRwYy5ArGJbNMErE8/vjPNMfpzeaKpWi6wCySqnaogmqwfSWxtfrDE99/Wnctp0DdEW8uCwH8XSesM+lA8gqpWqKJqgG0xdLE/I6CXldh9xuXzTFsogPyyFEk/Zd4zqArFKqlmiCajC9pcQzk66Ij7FMAb/bIpktAOgAskqpmqIJqoHE0zni6fyM3XtwcMQJYwzJTJ5YKvuqESeUUqraNEE1kL6YPVhkJS2o8fs62kJeoqk8Prdz3u7rUEqpI6H3QTWQ3mgKlyW0BT0Vbb+2M8zVbz6WHz/ew3tO6dL7oZRSNUVbUA2kL5ZmSZMXyyEV7zOezA6MzTyis1JKLSRNUA0iVyiyfzTDsvDhFTn43BYBj8WBsew8RaaUmk/r16/ngQceqHYY80K7+BrE/niGojF0RrzQvxO674LYXgivgLWb7Y0mL1u6AYDWgIchTVBKVd2qVasYGBjAsiwCgQAXXXQR3/nOdwgGg9Pu8/TTTy9ghAtLW1ANoLsvxrd+8Ry/2DXA/zx4P9H7vgGpKATaYWwAfvE39s/YAISW2use+Y6dyIDWoJvhREYHjlXqUPp3wv1fg5/9hf1v//wMlHrXXXcxNjbG7373O7Zv385XvvKVeTlOPdAEVefGp6IeiKdpC7pYPfgrfn8AhhMp6NkOB56DgV2wf5f9uO8p8IXBG7FbVNjXoXIFw2h67idfU6oh9O+0v9SlotDU9ZovefOhq6uLCy+8kJ07d3LnnXeyfv16IpEI5557Lt3d3RPbrVq1il/+8pcA/Pa3v2Xjxo00NTXR0dHBpz71KQDS6TSXX345ra2tRCIRTj31VAYG7FFjent7eec730lLSwvHHnss119//cRrf/nLX+YDH/gAV155JaFQiPXr17OQ46RqF1+d27ZzgLDPyWA8TcTvpj2znwPuNg70vUJLxA3NKyHeDwb7D2t0H6RHwdtkd/dRXiiRJeJ3V/HdKLXAnv+l3bMwk2fuhmwSMqMwPlxlNgn3fxWOf8eh9w12wJrXTtk+k71793LPPfdwwgkncNlll/Gzn/2Mc889l29+85ts3ryZXbt24Xa/+u/1k5/8JJ/85Ce54oorGBsbm5gO4wc/+AGxWIy9e/fi8Xh48skn8fns69WXXXYZ69evp7e3l2eeeYYLLriAo48+mvPOOw+AO++8k5/85CfceOONfOELX+Dqq6/mscceO+z3cyQqakGJyCYReVZEdovIZ6dYf7yIPCoiGRG59nD2VbOzL5rC67LIFQx+t0Xc00mYOI70iN3FF1xqt5Z8ETtZOSwY67eTVNieubMlYP+SayWfUtNIDoNrUgGSy2cvn2Pvete7iEQinHXWWZxzzjmsW7eOt7/97VxwwQW4XC6uvfZaUqkUjzzyyGv2dblc7N69mwMHDhAMBjnttNMmlg8NDbF7924sy+L1r389TU1N7N27l4cffph/+qd/wuv1ctJJJ/HRj36UH/7whxOvedZZZ3HRRRdhWRZXXHEFv//97+f8PU9nxhaUiFjAdcAFQA+wXUTuNMbsKttsGPgE8K4j2FfNQlfER280CYDXZfF8y5s57aXv4HdkIdBWuhbVBgik4+Bvh+gr4HDCKVcA9gSGYZ9LCyXU4lNpyyb6iv235IscXJaKQueJcPKH5jSkn/3sZ5x//sG4Pvaxj7Fy5cqJ5w6HgxUrVrBv377X7HvDDTfwN3/zNxx//PGsXr2aL33pS7zjHe/giiuuYO/evVx66aVEo1Euv/xyvvrVr9Lb20tLSwuhUGjiNVauXPmqbrzJU8un02ny+TxO5/x3wFXSgnoDsNsY86IxJgvcDlxcvoExZr8xZjsw+SLGjPuq2dm0oYPhRI50roDb6eBFaxW7XccRal4C6Zj9B3Xe38B5Xyz9cRXB6YbXbZqo4gO7UGIooS0opaa0djOko3ZSMkX733T0YIXsPJo8hbsxhr179045hfuaNWu47bbb2L9/P5/5zGd43/veRyKRwOVy8aUvfYldu3bxyCOPcPfdd3PzzTezbNkyhoeHicfjE6/xyiuvzHp6+LlSSYLqAvaWPe8pLatExfuKyBYR2SEiOwYHByt8ebW2M8wF6zrwuixGElmWuFKcuipC6PzPwLv+Fd78OTsRLd1gP37fjbD+3ZBNvOp12oIeRhI58oVild6JUjVs6QY44xr7S97oPvvfM6551Ze8+fKBD3yA//qv/+K+++4jl8vxz//8z3g8Hs4444zXbHvLLbcwODiIw+EgErFbe5Zlcf/99/OHP/yBQqFAU1MTLpcLy7JYsWIFZ5xxBp/73OdIp9M89dRT3HDDDXzoQ3PbKjxSlbTRphqWoNJ65Ir3NcZsBbaCPaNuha+vgIjfxQXrOvjom46GPQ/DS17oWDf1xiJ2t8Tu+2BsEILtgJ2gisYwkszRHqpsqCSlFpXxL3oL7Lh8rP9rAAAgAElEQVTjjuOWW27hmmuuYd++fZx00kncddddrymQANi2bRuf+tSnSCaTrFy5kttvvx2v10t/fz9XXXUVPT09BINBLrnkEi6//HIAbrvtNq666iqWLVtGc3Mzf/u3f8sFF1yw0G9zSpUkqB5gRdnz5UBvha8/m31VhaLJnF19ZwwMPA2Ro8B7iEFfO9bDC/dD/+/hWLuvuzVo/7IPJTKaoJSqkj179ky5/N3vfjfvfve7Z9znlltumXKbyy67jMsuu2zKdcuXL+fuu++ect2Xv/zlVz1ftWoVxixc+6GSLr7twBoRWS0ibuBS4M4KX382+6oKxVI5Ij4XxPvsqqKO9YfewR2AtmPtZFa054Jq9rtxiHAgroUSSqnaMGMLyhiTF5GrgXsBC/i+MeZpEbmqtP57IrIU2AE0AUUR+UtgnTFmdKp95+vNLEaZfIFktkDE74KBp+zqvPbjZ95x6Ykw+BwM7Yb247AcQkvApYUSSqmaUVGdoDHmHuCeScu+V/a4H7v7rqJ91dyJJe3CybDHAft2Qesx4Jp5wkJajoZMHO77e/um3fAKVjlP57mxlTPvq5RSC0CHOqpz0VSO1rHn6frN38FTP4KXH6ls+JX9peGPRvsm7pc6/qWbcA3uIpMvzH/gSik1A01QdS677yk29t6CJ/4y+JoBqWyMsO67ILISXB5IDIEvgivYwprh+xlO6HUo1dgW8kK/shWLh38LiyaoOufbfQ8FdwirkIHgEvC3vGog2GnF9trbu/z2Db2ANxAhlOnTESVUQ/N6vQwNDWmSWiDGGLLZLPv27SMQOLxZu3Ww2DrnGO3B5Qrad7ePl5aXDQQ7rfAK+254T6g0npjBUxgj6VtGQsfkUw1s+fLl9PT0oAMCLByn00k4HKatre3w9puneNQCGXYtoTPXY9dIukuTmpUNBDuttZvtrkCAQhbiA8Tice7Ovo1d9+/myVeibNrQwdrOQ9xPpVQdcrlcrF69utphqApoF18dyxWKPN10Lv7cCOSz9hh7lY4RNj50S1MXZOIMp/Jszb2dHs9qPJYQS+XY+uBLdPfFDv06Sik1TzRB1bHRVI6h4Bqyy0+zK/FGew9vjLClG+CCv4P17+J/2Eiy5Xjagh7yRfC7LcI+F9t2VjBXjlJKzQPt4qtj0VQOTBGfxwPH/ymsOYLxsxwOaFpGvvsFQs1nMD5UYipbIOR1si+amtuglVKqQtqCqmPRZA5vfhSvo2jP2nmkQp10OUdJpNJ4nRYA6XyBeDpPV8Q3w85KKTU/NEHVsdFUjubiEE5LZpegmrpYs8SPifeTyhXAGIbHssRSOTZtmMXrKqXULGiCqmPRVJZ2oojDWZo19wg1LaM96OXD651E/G7S+SKWJWw5e7VW8SmlqkavQdWxaDLHahOFQDs4rCN/IU8QvGFWuWL81QXnsbLVTzpX1OSklKoqbUHVqWLRMJrMESkOz657b1zTMnu6DiDscxFL5Wb/mkopNQuaoOpUPJ3HlY/jlyyE5iJBddk3+KZHifhdpHMF0jkdNFYpVT2aoOpUNJUlkD2Ax2lBcOnsX7Bpmf1vvI+wzwWgrSilVFVpgqpT0WQOf3YIr9uyB32drWCHfR1rdB9NmqCUUjVAE1SdiqVyNOWHcIfawXLN/gUtp52kRnsnWlDRpCYopVT1aIKqU9FUjlaGkdAcdO+Na+qCeB8eh+B3W9qCUkpVlSaoOpUYjRIkDXOaoDqhkIfEfiJ+reRTSlWXJqg6ZIwhP9qP1zVH15/GjRdKjO4j7HMRTerEhUqp6tEbdetQIlvAkxosJag5bEFFe+CVx+DlR1jXdCKDjtPJF1bhtPR7jFJq4eknTx2KJrP4c0O4gi3g8s7Ni/bvhEf/xa7ks9wECglev+8WEq/8fm5eXymlDpMmqDrT3Rfjuvt30/PKSzzYK3M3oWD3XeCN2Ne08ilc/hBpZ4jirjvn5vWVUuowaYKqI919MbY++BKjo2O0OhKMOFrmbtbb2F7wNk1MG+8rpshYQYrRvbN/baWUOgJ6DaqObNs5wBrzMseN/Ixjsk8yEs+SjoTYttM/+4Fdwyvs6eLdAQCchSS+Yo5Rz1Ja5yB2pZQ6XNqCqiOFvj9wzoHbCWUPkJEAYoqcc+B2Cn1/mP2Lr90M6Shkk+BwIolBQiR4qf0ts39tpZQ6Apqg6siZuUeJE6AIFC03KXcLcQKcmXt09i++dAOccQ34IlDIgsArx32UHvfRs39tpZQ6AtrFV0eO98X4TdJHSz5N3uMjkyuQNj7e6JujQomlG+yf5adC3xM4OtYT64lhjEFE5uYYSilVIW1B1ZHmzqM5qV3wSpaEceNxWZzaadHcOcetnEAbFPK0WknyRUMiq9NuKKUWXkUJSkQ2icizIrJbRD47xXoRkW+X1j8lIqeUrfsrEXlaRHaKyG0iMkc37ixCazcTKsZoc+fYcNQSTu+0aHWk7OtHcynQDkCziQLoiBJKqaqYMUGJiAVcB1wIrAMuE5F1kza7EFhT+tkCfLe0bxfwCWCjMWYDYAGXzln0i83SDQwe814KDg+u/Jh9veiMa+xuublUSlBNBTtB6Zh8SqlqqOQa1BuA3caYFwFE5HbgYmBX2TYXAzcbYwzwmIhERKSz7Bg+EckBfqB3zqJfhOKOCGPh17P04s9DsGV+DuJ0gy+CPz+CyDJiOu2GUqoKKuni6wLK79bsKS2bcRtjzD7g68ArQB8QM8b8fKqDiMgWEdkhIjsGBwcrjX/RyY0dwOl04vJH5vdAgXas5AFCXh3VXClVHZUkqKnKt0wl24hIM3brajWwDAiIyOVTHcQYs9UYs9EYs7G9vb2CsBanfGIIfM3gmOf6lkAbJIeJeEQTlFKqKir5lOsBVpQ9X85ru+mm2+Z84CVjzKAxJgf8BDjjyMNVJjGMIzBPXXvlAkvAFGm3EkQ1QSmlqqCSBLUdWCMiq0XEjV3kMHkE0TuBK0vVfKdhd+X1YXftnSYifrFvpDkP6J7D+BcVUyxgUiM4Awsw+FCpUKKFKKlsgUxeS82VUgtrxiIJY0xeRK4G7sWuwvu+MeZpEbmqtP57wD3ARcBuIAl8pLTuNyLyY+B3QB54Atg6H29kMcgkYphCHldoAbpA/S3gsIiYGNBOLJljSZM1/8dVSqmSikaSMMbcg52Eypd9r+yxAT4+zb5fAr40ixhVSSK6HwBfuG3+D+awwN9CKD8C2KXmS5r0Fjal1MLRkSTqSCpmVzf6w3M4zfuhBNrx54YBvRdKKbXwdCy+OpIZPUDB4SIYalqYAwbaib7wO57s72fHnmE2rmph04aO2U/toZRSFdAWVB3JjR0g44rg9yzM94oXkl4efzlKKB/F77aIpXJzN0GiUkrNQBNUHSmODSP+lgUbWfzePQav08EK9xiZfJGwz0XY52LbzoEFOb5SanHTBFUvCnmKqSjWQpSYl7wYt7DcHloYJZsvYowh5HWyL5pasBiUUouXJqh6kY6SzRdwhhYuQXU1+xkhTMREMUA2XySeztMV8S1YDEqpxUsTVJ0oJIbI5ou4QwtQYl6yaUMH+4tN+LLDmGKRwbEMsVSOTRs6FiwGpdTipQmqTqRigxjA37RwCWptZ5jzNq4n4spTyIzhthxsOXu1VvEppRaElpnXifToIDnLRzAYXNDjrl65ilXDbexOuFmzdpkmJ6XUgtEEVSeyowdIOcOEvK6FPfDYIPLyw7wl8WvSiRMh+MG5nyBRKaWmoF18dSI/NkTaGSa4QPdAAdC/E7b/OxQLiCtAMRWFR75jL1dKqXmmCaoe5NLk03GMrwW3cwH/y7rvAm8E/K14yTAmAft5910LF4NSatHSBFUPUiNk80Ws4MKVmAMQ2wveJnAH8JgMuXyRvDtoL1dKqXmmCaoepIbJ5Iu4FrDEHIDwCkiPgsuHUwxOkyWbiNrLlVJqnmmCqgfJYTJ5gze0ADPpllu7GdJRKBZwCvgzB8gno/ZypZSaZ5qg6kB27ABJR4CQf4HnY1q6Ac64BkIdWIUxjMNi7/F/qlV8SqkFoWXmdSBTKjFfttAl5mAno6UbcHgjvNLrw+c7lvULH4VSahHSBFXL+ndC9524dt3DKrOM5viboOP1VQlFAu200Eu/TlyolFog2sVXq/p32vccJQ6Qd/gQUyDy5L9V7x6kQBthM8poKlud4yulFh1NULVq/B4ky03BQNrditNfxXuQAm34HQVS8RGMMdWJQSm1qGiCqlXj9yDlUuSLBofbh3jD1bsHyd+Gx2XhzgyTyBaqE4NSalHRBFWrxu9ByqcoFMFye+3n1boHKdCGx+nAlxshptehlFILQBNUrRq/BykxRMY4CRST9vNq3YPk8uHxN+HLRYklNUEppeafJqhaVboHqSgOpJDG4Q/b9yRV8R4kT3gJ/twwo2lNUEqp+adl5jWsu7icgfQx/Kp4BjnO40qzgrVVjMcKLSHCLoaTWsmnlJp/2oKqUd19MW76n26ymRR5d5hMvsDWB1+iuy9WvaD8rfgdBZLxkerFoJRaNDRB1ahtOwfocKWwHELCaqIt6CHsc7Ft50D1ggq04XFa5Eb3Vy8GpdSioQmqRu2LpmizEhSKhoQjiNtpEfI62RdNVS8ofxselwOTOEC+UKxeHEqpRUETVI3qivgoJkfIFyHjDGE5hHg6T1fEV72g3H7cvhDe7AjxdL56cSilFoWKEpSIbBKRZ0Vkt4h8dor1IiLfLq1/SkROKVsXEZEfi8gzItItIqfP5RtoVJs2dGCSIwwXvDidTmKpHLFUjk0bOqoalzu8BL/eC6WUWgAzJigRsYDrgAuBdcBlIrJu0mYXAmtKP1uA75at+z/ANmPM8cCJQPccxN3w1naG2XSMh6TVRDJbJOxzseXs1aztDFc1Lm+4A19+hJhW8iml5lklZeZvAHYbY14EEJHbgYuBXWXbXAzcbOxB2h4rtZo6gQRwNvDHAMaYLKCfbBVa6k6zrLOTj/3RMZx73JJqhwOAN7wEl8kxFh8BmqsdjlKqgVXSxdcFlA8A11NaVsk2RwODwI0i8oSI/LuIBKY6iIhsEZEdIrJjcHCw4jfQsHJp8ukECQkRqsY8UNOQUiVfJqaVfEqp+VVJgpIplk0eznq6bZzAKcB3jTEnY7eoXnMNC8AYs9UYs9EYs7G9vb2CsBpcaoRsvkja2UTYV0P3Uwfa8LocZLXUXCk1zypJUD1A+Qily4HeCrfpAXqMMb8pLf8xdsJSM0mNkMkXSDubaqoFhTuAyxugOKatXKXU/KokQW0H1ojIahFxA5cCd07a5k7gylI132lAzBjTZ4zpB/aKyHGl7c7j1deu1HTSUTKlFlRTLSUo7CGPnOlh0jmddkMpNX9m7DsyxuRF5GrgXsACvm+MeVpEriqt/x5wD3ARsBtIAh8pe4lrgFtLye3FSevUdFIjJPBhudx4XbV1u9owIQYHdnHtHU9yzJIQmzZ0VL26UCnVeCq6uGGMuQc7CZUv+17ZYwN8fJp9nwQ2ziLGxSk1wpgjRJPPhchUl/iqo7svxhPPv8ypqe2sG9xHNL6cu/adBW87X5OUUmpO1dZXc3VQaoQYAULeGiqQALY/9jCnpX6NlxxjEiQsCd46egfbH3u42qEppRqMJqhaVMhBZoyoCdTc9aeO3p+T87WRd7hxFtJknE0U3GE6en9e7dCUUg1GE1QtSkUpFA0xE6ytCj6gSw4QpQnjcOEo2APXxo2PLjlQ5ciUUo1GE1QtmigxD9NUS/dAAUtWHItk42TEg6uQJJMrINk4S1YcW+3QlFINRhNULUqNlErMa2sUCYAlp76fE9vAbTlwZJOESHBim71cKaXmkiaoWpQaIY2bguWlqcaKJFi6gch5n6Jr+Uo6vRmOX9FO5LxPwdIN1Y5MKdVgNEHVotQICUcIhwgBd40lKIClGyi86X/xYus5DB7zfk1OSql5oQmqFqVGGJUgIa8Th6N27oEqF2pdCkAq2lflSJRSjUoTVK0pFiAzSsyEau4eqHIerx/jDZON9lc7FKVUg9IEVWvSMTCGEeOnyVdbBRKTSXAJhbgOGquUmh+aoGpNaoSiMYwUa28UiclcTR0Uk0NQyFc7FKVUA9IEVWtK80ClanAU88k8kaXk8gUyowPVDkUp1YA0QdWa1AhpY5Fz+Go+QQVa7EKJsWG9DqWUmnuaoGpJ/054/Ae4Xvg5p+29nkj82WpHdEih5g6KYpEc1ko+pdTc0wRVK/p3wiPfsVtQniV48qMEH/+uvbxGRQIeUq5mMjHt4lNKzT1NULWi+y7whEGEjLgxnggOX7O9vEa5LAfG30Z+VLv4lFJzTxNUrYjtBZcbTJE0HjxOB3ib7OU1zNnUQT4Zh2yy2qEopRqMJqhaEV4BCfueopRx4XE5ID1qL69hnnAHqVxhInallJormqBqxdrNkDiAyaVJFl34i3FIR+3lNczX0km+aEjriBJKqTmmCapWLN0Aa95GwRXAlx3C8rfAGdfU/ECsTU0R8g4vyRFNUEqpuVXbQxUsNp4gY2su5heps7n4pGXQHqx2RDNqDnjY7WrWFpRSas5pC6qWJIdJWE0ANT8O37iwz0XK3UJudACMqXY4SqkGogmqVuSzkIkTlxBAzY/DN85yCBJcQjaTtq+ZKaXUHNEEVStSwwBEpQmvy8LjtKocUOXckVIl35hW8iml5k59fE1fDJJDDI6l+fGeBC+k+knnCmza0MHaznC1I5uRL7KUdK6ISexH2l9X7XCUUg1CW1A14uWevTz+coy+jI8lIQ+xVI6tD75Ed1+s2qHNKBwMkHQEyUR1yCOl1NzRFlSNeOq5Pbi8IYxx4XVZhEtFEtt2DtR8K6rZ7yZeyGKeuAX23GffXLx2c82XyCulapu2oGpEZnQ/OU8zhaKxhznCLpTYF01VObKZtY49z1Gx31JMDkOoE1JRe+DbGh7oVilV+zRB1QJjWOpKsT/vB8Drsgsk4uk8XRFfNSOrSODFe0i5WsmLG/Jp8EXAG6npgW6VUrWvogQlIptE5FkR2S0in51ivYjIt0vrnxKRUyatt0TkCRG5e64CbyiZOMe1u+nNBkjnCridDmKpHLFUjk0bOqod3Ywcoz0U/O3kCgYyY/bCOhjoVilV22ZMUCJiAdcBFwLrgMtEZN2kzS4E1pR+tgDfnbT+k0D3rKNtVKlh2oNeTjzuaLwui5FEjrDPxZazV9f89ScAwivwWUVyxgHZUoKqg4FulVK1rZIiiTcAu40xLwKIyO3AxcCusm0uBm42xhjgMRGJiEinMaZPRJYDbwe+CnxqbsNvEMkhALxN7Wza4OIjZ66uckCHae1meP5r7B/LMvJSD+khi6ODeSKnXFHtyJRSdaySLr4uoLyvpqe0rNJtvgX8b6B4qIOIyBYR2SEiOwYHF9kNn8kRsJwMZt1E/PUxxFG5brOCm4qbGSJCixlitOhja+7tdBttQSmljlwlCUqmWDZ50LUptxGRdwD7jTGPz3QQY8xWY8xGY8zG9vb2CsJqIKlhjK+FaCpPxO+udjSHbdvOAVItx3N302U80/QmnlvxfpItx7Ntp94XpZQ6cpUkqB6g/KvwcqC3wm3OBN4pInuA24G3iMgtRxxto0oOkXE3k80Xaa7DBLUvmqIt5GHYaiVXKBLMDtZNibxSqnZVkqC2A2tEZLWIuIFLgTsnbXMncGWpmu80IGaM6TPGfM4Ys9wYs6q036+MMZfP5Ruoe4U8pGMTg8Q212EXX1fERzpXJO8MMGY8BLODdVMir5SqXTMmKGNMHrgauBe7Eu8OY8zTInKViFxV2uwe4EVgN3A98BfzFG/jSY2AMUTFnmYj4qu/FtSmDR3EUjkQB/tpxkr0102JvFKqdlU01JEx5h7sJFS+7Htljw3w8Rle4wHggcOOsNGVRjEfLgawHFI302yUW9sZZsvZq/m3/3mRl2JN/JHvJbac2VUfJfJKqZpVf5+GjaZUYn6gECTiB4djqnqT2re2M8yfn3MMj20/wEmeYfxBvf6klJodHeqo2pLD4AkynKEuK/jKtQU9JNztJLMFGO2rdjhKqTqnCarakkMYXzPRZI5InUzzPp2WgJuiK8Co8UNcE5RSanY0QVWTMZAaJumMkC+auiwxL2c5hOaAmyFHC8T7qx2OUqrOaYKqplwKcmni4xV8dVhiPll70E2/abarE3N6HUopdeQ0QVVTqUBihNI9UIH6bkGBfR1qkGbyxaJ28ymlZkWr+Kqlfydsvx56Hsc/MMTSwHkE3GuqHdWstYc8jLnbSWQKhOP90HJ0tUNSStUpbUFVQ/9Oe8bZxCB4w+QzSd7Ydwsy8HS1I5u1tqCHgsPDqCMEo5NHxFJKqcppgqqG7rvsGWfFApePuATB29wQM9D63RZ+t8WQaKGEUmp2NEFVQ2yvPeNsNkHR5SedK+LyhxtiBloRoS3oYb9phkzc/lFKqSOgCaoawivsIY7yaXKWDwP4TKJhZqBtC3nYV2jGGKOtKKXUEdMEVQ1rN9sf3Lk0aTx48qP4C2P28gbQFnTjygyTe/Eh+O/PwP1fs6+7KaXUYdAEVQ1LN8Dx7wSXl3wqRsbZhOPMT9jLG8DS1Auc0nc7uaIBpxdSUbsoRJOUUuowaJl5tXj88LpN/L71Ep7tH+O05Y1Tjh15eRuvOEMkXUIgmwBfaVTz7rsaJgkrpeaftqCqZWwAgh2MJHJE/C5E6nMU86lYoz04fGHGCEAxB9mkXRTSAEUgSqmFowmqGgp5SAxBqIORZLYuZ9E9pPAKmiRlDxoLkI5CerRhikCUUgtDE1Q1JA+AKZLztTOWydf9NBuvsXYzIcYo5FIUHB77ht10tGGKQJRSC0MTVDWUSq9HnS0YQ92PYv4aSzeQPvXjZJxNZPNZu5vvtKv1+pNS6rBokUQ1jO1nf7LIdx4+wOOvRElk8rz39Y01RXq/92i+mX8vx8leLuK3tCXd1P9Ig0qphaQtqCro3beH+3pgKJEl6LHI5gtsffAluvti1Q5tTnT3xbj1N3spFIskfMvI5Apse+ixhnl/SqmFoQlqoRnDiy+9RNG/BMshuJ0OmgMewj4X23YOVDu6ObFt5wBhn4uWgIdYwUPB38ZyBhvm/SmlFoYmqIWWGiGZSlIMLCGVK+B1WQCEvE72RRtjgr990RQhrxO/2yKZzRPzdNFe3E/fiI7Lp5SqnCaohTY2QMjror8YJpHJE/TYlwHj6TxdEV+Vg5sbXREf8XSeJq+TooE+xxLyuRzH+TRBKaUqpwlqoY0NcGxHiJfTfpLZAj63RSyVI5bKsWlDR7WjmxObNnQQS+XAgDGGZ1LNpPOG8zsbo4WolFoYmqAWWnyA9o4u3rahC4/Lsmee9bnYcvbqhqniW9sZZsvZq2kJesgVDFlxceK641jpOFDt0JRSdUTLzBfa2AC0rMZnnJx7XDsfO+eYhhrmaNzazjBrO8OcuCJMd1+cjhXHQ89vIZ8FZ4Pd96WUmhfaglpImTHIJiC4lIF4mo6QtyGTU7nlzX6y+SJDrk4wRR2PTylVMU1QC2nMLrPO+9s5EM+yNOytckDzb7zw45VCMzgsGNlT3YCUUnVDE9RCKiWoQcIUjaGjyVPlgOZfwOOkJeBmbywPTV0QfbnaISml6kRFCUpENonIsyKyW0Q+O8V6EZFvl9Y/JSKnlJavEJH7RaRbRJ4WkU/O9RuoK2MD4IswkLS79ZY0NX4LCmB5s4990RTFQgH+8J/wkz/XWXaVUjOaMUGJiAVcB1wIrAMuE5F1kza7EFhT+tkCfLe0PA982hizFjgN+PgU+y4eY/shuISB0TQBj0XIszhqVLqafYSiz5J9ZhvkUuD26yy7SqkZVfIJ+QZgtzHmRQARuR24GNhVts3FwM3GGAM8JiIREek0xvQBfQDGmLiIdANdk/ZtfP07YddP4dl7YekfkfGH6OhY3/AFEuOWN/sZGb6fWKAVrztuzw3Veqy9UmfZVUpNo5Iuvi6gvPSqp7TssLYRkVXAycBvpjqIiGwRkR0ismNwcLCCsOpE/067pRDrA0+IQrHAsS/cyKrcnmpHtmCCHiethQFGin7wNZfmwzI6y65S6pAqSVBTfc03h7ONiASB/wT+0hgzOtVBjDFbjTEbjTEb29vbKwirTnTfBd4IOBwgQsLdTtoKcdT+X1Y7sgVlRY4iMxbFBNqgkNNZdpVSM6okQfUA5Z8iy4HeSrcRERd2crrVGPOTIw+1TsX22i2FVBRcPsYKFhkrSDDTX+3IFpSseyeu3CipnAFx2OXmOsuuUuoQKklQ24E1IrJaRNzApcCdk7a5E7iyVM13GhAzxvSJfZHlBqDbGPONOY28XoRX2MkpHQVvhEQmT4gkruajqh3Zgmo79hR2LLucqIQAgXwaTvsLvf6klJrWjAnKGJMHrgbuBbqBO4wxT4vIVSJyVWmze4AXgd3A9cBflJafCVwBvEVEniz9XDTXb6Kmrd0M8V7IJsEbJjs2TFiSi67l0OR1kW9fx47VV8Hmb8FRp4OrMUZvV0rNj4rqnI0x92AnofJl3yt7bICPT7Hfw0x9fWrxWLoBjj0f/vBj8pkxRmnCnHwFKxZhy8EY8//Zu/PwuM7y4P/fe86s0ixaLcuy4yVxHC/ZjBOyAQGS1AmEdIEsNAmlpWlKE2gDVyGFlvIWSvu7WNpCCg2EUJY3YXkhdSA4IZA0QDY7K7IVJ44dW/tiSSPNvj2/P85IkWXZmrFGmhnr/lyXLmmes91nNPat55zn3A/ff/ogv97j5l3RKKtdO1jefGq5w1JKVSitJLEQRODMa+m++Es8edJNhFadXe6IFlxHb5jfvnqISDJDsMbDQedJvPDCs3R0nUAjNpVSJaUJar6lYjDeB/Wr6AsnAGgOnPgljqbb3t7P0qAHr8siksgQr1tHrZVj586nyx2aUqpCaYKab6MH7Gd+GlbTP56kvsY1Oc37YtI9GqfR72AOyiUAACAASURBVMHjdDAaTzPuWQreAI7BjnKHppSqUJqg5tvIawzEc3zpqQjf+PU+drw2TEdvuNxRLbiJaeAb/R7CsTTpnKHTuYrVjn67l6mUUtNogppPxtD32m62d3kZiqbxOh0Y4M7H9i+6JDUxDbzHKeSM4bVDUfayktP8Udj+cbjvg1pAVil1GE1Q8yk+wv6uXhKBk7AcgoiwNOgl5HOxvb2/3NEtqIlp4FuCPjI5iKeyvO/MGhrCHTBy0J6KQwvIKqWmWBzltMtleD/jiTTppSsZHUvhEHt+JLDvySw2E9PAX7yumUf3DNLS8/18YhqBXBp8dfaKWkBWKYX2oObXyH7c/gYG0j6Goynqa9w4RBhPZCZnml2M1i0N2O9D/36oX2U3jvXa37WArFIqTxPUfMllYfQAJ5+6kb6xJOOJDPW1LsLxNOF4mq2bWsodYdnUuJ2saqqhO9eIyaSgttGutpFLawFZpdQkTVDzZawHMilWnLyJ809upMZtEU/nCPlc3PTm1axvDZU7wrLa0BpkV+hiouOHwBOCbAYGX9YCskqpSXoPaj70tcMTX4H+dnLZNLWJc7jh/LO44vTWckdWMVY31fKL+nU877yBi9JPwPCrkByDi27T+09KKUB7UKU3MUHhWA8ElhEZD7PxwLfZZB0sd2QVxWk5WNcS4PlUG8k3/S28+267gGxGn4lSStk0QZVax/3g9tv3oHz1DGW8pFxB2vp+We7IKs761iA9o3E+vW0XH93ex896AwzsfgzSiXKHppSqAJqgSi3cCakIYDC1zQxHU9QG67HGusodWcUZjaVo7xnj4HCc1pCXl9ybeHZfP6+9+Fi5Q1NKVQBNUKUWbLNni/XVM5Z1k84aml1JHZk2gwd39bMs5CWdzZHO5nCElmG5vPDY/wc/vlkrSyi1yGmCKrUl6+0elCfAofE4vuw4AaI6Mm0G3aNxTmqsQQS6RuI0Rl7hpOTLSHLcnkVMK0sotahpgiolYyA+DGsvIxc6idRIJ7XBRqwLP6Qj02bQVucjlTG0hnwMjidZOfAwI45GUjVL7UEmbh946+z7ekqpRUcTVCmNvAaRQfa1XML/ibyL25J/wbe976XD6OW9mUwUkA14LFwOwYx2MWp8NCxfByZnPxflCWhlCaUWKU1QpdS1g/6kxR27PHQOxwj5nIgszurlhZgoIFtf68HncTJgNXNqMEdjfT00nmw/tDu4R+/fKbVI6YO6pRIdgkOv8r+RVdT6vPSNR2iodU/W39ve3r/oq0fMZKKArDGGh345SvqVb5KJ1eCsbYZwD4zsg803ljtMpVQZaIKaq752+x7JwSfAGHpZScSXJpMzLAl4AQh4nYuyenkxRISz33gR9/aPccq+R2nKtpPzL+eUpSfTtO8ROPg4RPrt3tT6K/WenlKLgCaouZioGjHxYK7Hz1sP/Q93jWZpat5A0OcCWPTVywt1KJLkiWgrv5KrecMp9WRz0DT4JH8W+wa+UCss3/z6yL4LbtUkpdQJTu9BzUXH/fYos3QMMJjGtWTdIc5N/Jb6Gjc5Y7R6eRG2t/dzSrOfWo+TA4diBL1ONqbbOcAyyCYg3AW+kI7sU2qR0AQ1F+FO+3mdcCfUNDKQsEhYft60JEGj30NvOKHVy4vQPRqnrtbNysYaxhMZXhmI0JQd4CDLwL8ERg/Cob3g8evIPqUWAb3ENxe1zUT3/pbBpMUrYwHG0kOs8adZcfKp/M1bTy13dFWnrc5HOJ6mOeAlmzO8dijGK8l6VtYkoelUsDx2YoqNQGi5XWki3Kn3pZQ6QWkP6nhlkgxGMwyPjjBkLSGZE9zpMZKRYfY3v63c0VWlieeiwvE0S4JemgIeHsqdgyM5yjN7XuOhHjcd0VqSQ/uge4c9aCLYphUnlDpBaQ+qGBMj9kYPQnKc7hE37W1/wbJoB7WxTlKBNp5tfBvJ3gb+Rv+YL9rEc1Hb2/vpHo1zSrMfT+v5/NczcFl2B2s9w/RZy4kks2xklJqR/SAOqG2yh/n//G/tKeS1R6XUCUETVKEmRux56yCbgrEe3FEXA/5GfmZdjXeJxeltIQzQq0PKj9vEc1ETvvSLl3G1nc73x06lxm2xoqGGPzjwWXZmT2b5cBembyduByyxxvC43LDyQh3pp9QJQhPUsUz0mMKdMPIaYUeI3u5DuOIDJHxLOWi8tPY8THDZn7Gm2Y+IMBZP65DyEuoejbOqsZb6GjcHDkXZ0zfOK8k6THyU3JJ11HnCrBh5ing6ypjLz0u/24uztoFT63w07rjLHlyh96mUqkoFJSgR2Qr8O2AB3zDG/Mu05ZJffgUQA/7EGPNsIduWw772J+l/6kdY411kA8tpeeO7AQ5rW75uM4EDD7Mv4mQkZbE5/AqObAq/dylDnpN4Od5APJlhhWuA1pAXp0Mm759cc87yMp/hiWNi4ER9jZs6n4uB8STbBt/AdWYb2dgow94gS3ESM14iWT+rMvtJjR5k4JDBRzcvhy5iIFNDU/9+1vR8kfGVl9C159nJ37Nr6QbSfbuP+VloeeO7WdPkf/2PldAKaF4Pgx2HJz84fB1NiErNiRhjjr2CiAW8DFwKdAE7gOuMMbunrHMFcCt2gnoj8O/GmDcWsu1MtmzZYnbu3HlcJzRr8hE33kQ/ydoV5DwBHMlxPJGDIHJYW9voDgadS7F8ddRlh/CMHyBrYMzZTLv3bFyWg0ZnjKQV5HdrP0j3aJy2Oh9bN7XokPIS6ugNc+dj+wn5XAS8TsYTGX71Uj9vDQ1weuTXNGb6CSW6GaCBPquVDaEMfjPO0tEXyOayRPwryblqiRsPJjZMY26Q7tAWMt56nKMHaI3uojewiXRw5VE/C7WxTpoDXnocLQylPSw3fayM7+ZgzUY6aaHJleQU5xAI7E03MZT20ORKssafOe6EOL1toberhBh0u8qNYabt1mw673j+iQMgIs8YY7Yc0V5Agjof+EdjzO/lX98OYIz53JR1/gt41BhzT/71HuBiYNVs287keBPUvvYnGXroC+BwknXWYKUjeKM9iEOIe1vJuWppHnkGby5Gn38jWW89YrI0Dz+LkGMktBFnLokrG2VJ9GUSuBnzLGNEgvQnLNazHxdZXml6O43OJN7MOD8PvpuP3vhHRceqCtfRG54cONFW52NoPIHLaRH0OokkM+xvf5qr0z9hjFocvhA1JsYZsSd5kbXU13qpMXE8JkFd/ABekgzXrEEQfPFeLJMm6fARDpxKThzUhTswCMP1Z2LEgUFYEn6RdMbQV3c2TstB09guJB3BuP0MBE8nnTWsGHsOI9AVtP94SWcN3vEuWnPd9Pg3kXX5cUe6WJZ4hV7vqST9bYd/Pn2tZF1+rHQUb7QbcTjybbUzbHfkOqXcrhJi0O2q53cjgCM1RtNlHznuJHW0BFXIJb42YOpTkV3YvaTZ1mkrcNuS6X/qR4g7RE1kP1Y2CUBTxp5qfcjkIA6h3AhZhGWR3zGcbAXAb8YAw3i0n5S4GBMfhnpqSPCKZxOWy0VM0nSlDY1mmGWOYcZdrTxV9w6sxvXzdToqb/rAiYleFdh1DocDa/lR9A+4NvA8TZkBDjlbeDpxJmK5GXLVk8tBzhjOopdBQgyYZThNmlNMDwm8eHMJ0vFxHOTwmhgOckTGX//Y+jKj+DDEo/sACKb7SeHEk4oSD3sA8GeHAUPD+CuT29Wne/GSpDbWPfnaSZrWxCsMZyPAtM9n3utt2QK2y5Z8u0qIQbebebtKiGH6dmMt55BD6H/qR3PqRc2kkAQlM7RN73YdbZ1CtrV3IHITcBPASSedVEBYR7LGu8jUthJznGzPJwTUDo2AMYzX2YnEGk7hzKWwyBCu34QRC+dgnBzCSPMWRMAhQm+fg1W5AyyrzZK0fASJEhm1uMt/MytPOZfxRIZwPM1NWsJowU0fjr5xWZD+sU38tuHcycuAfdGd/Kn1U5y+FEnLjycbgaibYWs5vsY2jIHRgT68mQiHrAbGG88EwN0fAQyHGt+AYMDkcAzEcAqM1p8OGMxQCr+JMSI+xuo2AOAaiiAGxurWT37og0ND9Jm6yc9e7dAo49TjIc543Wn5tonP52mT5ze9rXZohHHq8JBYkO0qIQbdrpp+N0LOE8A53kWpFZKguoCpE/IsB3oKXMddwLYAGGPuBO4E+xJfAXEdIRtYjiM+ivHVTbYlpAYcYLz2X+CjwdNYOrqThKMWXD6s5DgxdyOI4EqN2fcdEmO4PS5+5r2RjaaLpmQ/Q64l/Kb5UgJLNtAbTtBW5+Oac5br/aYymalXNfUy4Dm/dwmPPuvnnMRv7N+ftYTH627g7OQTWIkwOU+AuHsJdelBRnwn43QYHMlxEu56EMGdiebvQcUYddTj97rwWVmSlp9hVysNqQ46XSfj9NjJb8RqAhE8TplMiGnxMOBqw5P/7EWddXgyEaLOeozX/oy+/vmc6TNbl9+ufkG3q4QYdLvq+t04EqNkA6UfHFZIgtoBrBWR1UA3cC3w3mnrbANuEZF7sS/hhY0xvSIyWMC2JdPyxncz9NAXyMHkDe54/j8ciY+S8wQQy82IZznJmhac0V6ygeWELv4AYF8idOZv+rVe/AEaGtcf9p/ee3UARMWanrAA1jRfwvb20w8bwOI5dNHk7znTcDJ9G64k07d78vc+02chfcYn+Pm+kclk11m7kjuyW7jIP8jyfPL7VdMHEBHeap48IiFOfPZi7mZC6QFGvGswueyMn8+Z2hZ6u0qIQberrt+NIxWmKf9vp5RmHSQBk6P0/g17qPg3jTGfFZGbAYwxX8sPM/8KsBV7mPn7jTE7j7btbMeb11F8JRhxohaf6T20U1tqebk/eljyAw5bx06IHRU32qqQ7SohBt2ucmOomFF85TCXBKWUUqq6HC1BabFYpZRSFUkTlFJKqYqkCUoppVRF0gSllFKqImmCUkopVZEqchRf/vmpA3PcTRMwVIJwykFjX3jVGjdo7OWisZfOSmNM8/TGikxQpSAiO2catlgNNPaFV61xg8ZeLhr7/NNLfEoppSqSJiillFIV6UROUHeWO4A50NgXXrXGDRp7uWjs8+yEvQellFKqup3IPSillFJVTBOUUkqpinTCJSgR2Soie0Rkr4h8vNzxHIuIfFNEBkSkfUpbg4j8QkReyX+vL2eMRyMiK0TkERHpEJFdIvLhfHvFxy8iXhF5WkReyMf+6Xx7xccOICKWiDwnIj/Nv66WuF8Tkd+JyPMiMjEdT7XEXiciPxKRl/Kf+fOrIXYRWZd/vye+xkTkr6shdjjBEpSIWMAdwOXABuA6EdlQ3qiO6VvYc2hN9XHgl8aYtcAv868rUQb4iDFmPXAe8Ff597oa4k8CbzPGnAmcBWwVkfOojtgBPgx0THldLXEDvNUYc9aUZ3CqJfZ/B7YbY04DzsR+/ys+dmPMnvz7fRbwBuz5+n5CFcQOgDHmhPkCzgcenPL6duD2csc1S8yrgPYpr/cArfmfW4E95Y6xwPP4H+DSaosfqAGexZ4JuuJjB5Zj/4fyNuCn1fSZAV4Dmqa1VXzsQBDYT35QWTXFPi3ey4DfVlPsJ1QPCmgDOqe87sq3VZMWY0wvQP77kjLHMysRWQWcDTxFlcSfv0z2PDAA/MIYUy2x/xvwt0BuSls1xA1ggIdE5BkRuSnfVg2xrwEGgbvzl1a/ISK1VEfsU10L3JP/uSpiP9ESlMzQpuPo55GI+IH/B/y1MWas3PEUyhiTNfZlj+XAuSKyqdwxzUZE3gkMGGOeKXcsx+lCY8xm7EvwfyUiby53QAVyApuBrxpjzgaiVOolsaMQETfwLuCH5Y6lGCdaguoCVkx5vRzoKVMsx6tfRFoB8t8HyhzPUYmICzs5fc8Y8+N8c9XED2CMGQUexb4XWOmxXwi8S0ReA+4F3iYi36Xy4wbAGNOT/z6AfR/kXKoj9i6gK9/LBvgRdsKqhtgnXA48a4zpz7+uithPtAS1A1grIqvzfzFcC2wrc0zF2ga8L//z+7Dv7VQcERHgLqDDGPPFKYsqPn4RaRaRuvzPPuAS4CUqPHZjzO3GmOXGmFXYn+1fGWOup8LjBhCRWhEJTPyMfT+knSqI3RjTB3SKyLp809uB3VRB7FNcx+uX96BaYi/3TbB5uBF4BfAy8CrwiXLHM0us9wC9QBr7r7Q/Axqxb4K/kv/eUO44jxL7RdiXT18Ens9/XVEN8QNnAM/lY28H/iHfXvGxTzmHi3l9kETFx419H+eF/NeuiX+b1RB7Ps6zgJ35z8x9QH0VxV4DHAJCU9qqInYtdaSUUqoinWiX+JRSSp0gNEEppZSqSJqglFJKVSRNUEoppSqSJiillFIVSROUUkqpiqQJSimlVEXSBKWUUqoiaYJSSilVkTRBKaWUqkiaoJRSSlUkTVBKKaUqkiYopZRSFUkTlFJVSES+JSKfKXccSs0nTVBqURORW0Rkp4gkReRb05Y1iMhPRCQqIgdE5L3FLC8nETlbRH4rIjEReVpETirBPgs+32O9r0oVShOUWux6gM8A35xh2R1ACmgB/hj4qohsLGJ5WYjIcuAB4F+xJ6bbB3yyBLsu5nyP9b4qVRBNUKoqiMjNIvIzEblDRIZEpEdELp3rfo0xPzbG3Ic94+jU49UCfwT8vTEmYoz5DfY02TcUsvwo5/BxEXlVRMZFZLeI/MGUZa+JyEdF5EURCYvI90XEO2X52SLybH7b7wPeGQ9i+wLwdWPMNmNMHLgXOKe4d+aI2Is636O9r0oVQxOUqhZnAOdj/6e4BPgv4GNTVxCRn4rI6FG+flrk8U4FssaYl6e0vQBsLHD5TF4F3gSEgE8D3xWR1inLrwa2Aqvz5/sn+fNyY08z/h2gAfghdrI4gogEgauAb0xpdgCJGdYt5v06nvNVak6c5Q5AqQKdAfyLMeZBABHZjf2f/SRjzDtLeDw/EJ7WFgYCBS4/gjHmh1Nefl9EbgfOBf4n3/YfxpgeABG5Hzgr334e4AL+zRhjgB+JyG1HOczb8+u+KCITbZ4px5gaTzHvV9Hnq9RcaQ9KVYvTgfunvN4E7J7H40WA4LS2IDBe4PIjiMiNIvL8RC8F+xyapqzSN+XnGHZSAFgGdOeT04QDRznMKmCbMaZu4gt4BNh+tLgKVPT5KjVXmqBUxROR1di9/T1Tms8Gnp+23s9FJHKUr58XediXAaeIrJ3Sdiawq8Dl089hJfB14BagMZ842gGZaf1peoE2mdIlAo42Ks+Dndwmjrsa2IJ9aXR6TMW8X0Wdr1KloAlKVYMzgN8ZY3JT2s7GvgcyyRhzuTHGf5Svy2fasYg484MRLMASEa+IOI0xUeDHwP8RkVoRuRD73s538sc65vIZ1AIGGMwf9/3YPahCPAFkgA/l4/1D7EuDM9kBvEVElonICuD/Ap8wxgxPX7GY96vY8z3a+1rg+SoFaIJS1eEMpvSWRKQRWIrdA5mrTwJx4OPA9fmfJ4ZkfxDwAQPAPcBfGmOm9hhmWz7JGLMbe3TdE0A/9iXL3xYSoDEmBfwh9qCJEeAa7GQxk19hXwp9GfgN8B1jzNcLOU4Bjnm++R7Z3+VfHut9VaogcvhlbaWUUqoyaA9KKaVURdIEpZRSqiJpglJKKVWRNEEppZSqSBU57LOpqcmsWrWq3GEopZRaAM8888yQMaZ5entFJqhVq1axc+fOcoehlFJqAYjIjJVR9BKfUkqpiqQJSimlVEXSBKWUUqoiaYJSSilVkSpykIRSSs2XXC5HV1cX0Wi03KEsGi6XiyVLlhAMTp+x5dg0QSmlFpWhoSFEhHXr1uFw6EWk+WaMIR6P093dDVBUktIENY86esNsb++nezROW52PrZtaWN8aKndYSi1qo6OjrFq1SpPTAhERampqaGtro6enp6gEpb+hedLRG+bOx/YTjqdpDXkJx9Pc+dh+Onqnz5qtlFpI2WwWl8tV7jAWHZ/PRzqdLmob7UGV0NQe08HhGC0BD5FkBgFCPvsfxPb2fu1FKVVmh09OrBbC8bzn2oMqkek9poGxBE/tO8RLvWP0hOMABLxOukfjZY5UKaWqgyaoEtne3k/I5yKYT0LpbA4EoskMsWQWgPFEhrY6X5kjVUpVqlWrVvHwww8f0f7rX/+adevWLXg8xRz3W9/6FhdddFFJj68JqkS6R+MEvE6Goym6R+KsbqqlrsZNKpsjmckyHE0SjqfZuqml3KEqparMm970Jvbs2bNojjtB70GVSFudj3A8TSyVRYDNJ9Xz2lCUA8MxIsksToeDm958kt5/UqpK6ajchac9qBLZuqmFcDzNSCyJyxLGEhksy8E/XLmBSze0cNXZbfphVqpKLeSo3B07drBhwwbq6+t5//vfTyKR4NFHH2X58uWT66xatYrPf/7znHHGGYRCIa655hoSicTk8q9//euccsopNDQ08K53vYuenp7JZSLCf/7nf7J27VoCgQB///d/z6uvvsr5559PMBjk6quvJpVKARxx3H/5l3/h5JNPJhAIsGHDBn7yk5+U/Pyn0h5UiaxvDXHTm1fz+QdfJpFJE/K5uOac5Zy2NMjT+0cYGk+WO0Sl1DSP7hlgsIB/mw/t6iOeyhJJvD5MOp7K8sWHXuayjUuPuW1zwMPF65YUHNP3vvc9HnzwQWpra7nyyiv5zGc+wyWXXHLEej/4wQ/Yvn07Xq+XCy+8kG9961vcfPPN/OpXv+L222/noYceYuPGjXz0ox/l2muv5bHHHpvcdvv27TzzzDN0dnayefNmHn/8cb73ve/R2NjI+eefzz333MP73ve+I4558skn8+tf/5qlS5fywx/+kOuvv569e/fS2tpa8PkVQ3tQJbS+NcQ5qxu4+S0n8zeXnsr61hAiQpPfzVBEE5RS1WoklsbrOvy/S6/LwUisuOd6CnHLLbewYsUKGhoa+MQnPsE999wz43of+tCHWLZsGQ0NDVx55ZU8//zzgJ3g/vRP/5TNmzfj8Xj43Oc+xxNPPMFrr702ue3HPvYxgsEgGzduZNOmTVx22WWsWbOGUCjE5ZdfznPPPTfjMd/znvewbNkyHA4H11xzDWvXruXpp58u+XswQXtQJZRIZ4mnspPPPE1o8nvY3TuGMUafv1CqghTas+kaiROOpw/7tx2Op9noc/GeLStKGtOKFa/vb+XKlYddnptq6dLXe241NTWT6/X09LB58+bJZX6/n8bGRrq7u5mYqbyl5fXBWj6f74jXfX19Mx7z29/+Nl/84hcnk10kEmFoaKi4EyyCJqgSih58gfMO/l/WDoVh/xpoXg+DHZzZsw9vIkRk9fUEVp1V7jCVUkXauqmFOx/bD9jPM44nMoTjaa45Z/ksWxavs7Nz8ueDBw+ybNmyorZftmwZBw68PkFtNBrl0KFDtLW1zSmuAwcO8Od//uf88pe/5Pzzz8eyLM466yyMMXPa77HoJb5S6WvH+dRX8GTGcNYvh6G98PCn4NCruBra8GTGME98Gfrayx2pUqpIE/eYQz4XveEEIZ+Lm968el4GPt1xxx10dXUxPDzMP//zP3PNNdcUtf173/te7r77bp5//nmSySR/93d/xxvf+MbJ3tPxikajiAjNzc0A3H333bS3z+//Z9qDKpWO+4k7AqQdgjfWB0MvAQKDHfhql5B0BolKimDH/bB0U7mjVUoVaX1raEFG4r73ve/lsssuo6enh6uuuopPfvKTRd3nefvb384//dM/8Ud/9EeMjIxwwQUXcO+99845rg0bNvCRj3yE888/H4fDwY033siFF1445/0ei8xn9+x4bdmyxezcubPcYRTnvg+yLxkiOdrDevcgDL0CDhfk0nDSeTyXaKXW7eBU3xj8/n+WO1qlFq2Ojg7Wr19f7jAWpaO99yLyjDFmy/R2vcRXKqEVZBNj1JAEhxOa1oKv3v5KRfC5LbLxMIRKe0NVKaVOVJqgSmX9lRAfpSYzCk4f+FshFYFAK6QThHJjmMQomXXvLHekSilVFTRBlUh2yUaebLkOl0MgE4emU+CST0PzqZAcx+P1sLP1eob9a8sdqlJKVQUdJFEiY/E0YW8bqbZzYfOVsDx/OXXtJfD4l7Ha3syhA80MRVIsCXrLG6xSSlWBgnpQIrJVRPaIyF4R+fgMy08TkSdEJCkiH53SvkJEHhGRDhHZJSIfLmXwlSQcT1OTHsHrsqC26fUFHj+4awlkhnE6RCtKKKVUgWbtQYmIBdwBXAp0ATtEZJsxZveU1YaBDwG/P23zDPARY8yzIhIAnhGRX0zb9oQQjqfxZUbw1lhQ23z4Qn8L/b0HePZgC79+ZZBnDoxoJWSllJpFIT2oc4G9xph9xpgUcC9w1dQVjDEDxpgdQHpae68x5tn8z+NABzC3x5kr1Gg8TSAzgstbC+7aw5YdSNXyXMeriMnithzzWglZKaVOFIUkqDagc8rrLo4jyYjIKuBs4Klit60G4XiaBhlDpveegP/tdlDjhFW+OOmcodZtEfK52N7eX4ZIlVKqOhSSoGaqblrU070i4gf+H/DXxpixo6xzk4jsFJGdg4ODxey+IoSjSepM+MjLe8Cr8VrcTgeNjAKQzOQI5KeGV0qpudi4cSOPPvpoucOYF4UkqC5g6tOly4GZy+vOQERc2Mnpe8aYHx9tPWPMncaYLcaYLRO1nqqFMYZ4ZJQaRxZqG49YXtfYQjzroC43AkAqm2M8kaGtzrfQoSqlKtiqVavw+Xz4/X5aWlp4//vfTyQSOeY2u3bt4uKLL16YABdYIQlqB7BWRFaLiBu4FthWyM7FnlviLqDDGPPF4w+zssVSWVyJQ/kRfEcm162ntzJkgrjjQxhjGImmCMfTbN3UMsPelFIVqa8dHvkc3PdB+/s8FX6+//77iUQiPPvss+zYsYPPfOYz83KcajBrgjLGZIBbgAexBzn8wBizS0RuFpGbAURkqYh0AbcBnxSRLhEJAhcCNwBv5QTQ8QAAIABJREFUE5Hn819XzNvZlMloPI0vPYLH6ZgxQa1vDXHBmetpcYSJJDK4nY55q4SslJoHfe3w+JchPgrBNvv74/M7O0FbWxuXX3457e3tbNu2jY0bN1JXV8fFF19MR0fH5HqrVq3i4YcfBuDpp59my5YtBINBWlpauO222wBIJBJcf/31NDY2UldXxznnnEN/v30PvKenh3e96100NDRwyimn8PWvf31y3//4j//I1VdfzY033kggEGDjxo0sZJ3Ugh7UNcY8ADwwre1rU37uw770N91vmPke1gklHLOfgfI0BME182W7FSetZkXiFV7NBVnR2qrJSalK8MrDEClgsNJLP4VUDJJjMDH4NhWDRz4Lp81SvszfYj+wX6TOzk4eeOABzjjjDK677jruu+8+Lr74Yr70pS9x5ZVXsnv3btxu92HbfPjDH+bDH/4wN9xwA5FIZHI6jP/+7/8mHA7T2dmJx+Ph+eefx+ez/6+67rrr2LhxIz09Pbz00ktceumlrFmzhre//e0AbNu2jR//+MfcfffdfPKTn+SWW27hySefLPp8joeWOpqjjt4wd/1mH68dPMD/dpujDx3325fzGs0o0VRmASNUSs1ZbPjIPz5dPru9xH7/93+furo6LrroIt7ylrewYcMG3vGOd3DppZficrn46Ec/Sjwe5/HHHz9iW5fLxd69exkaGsLv93PeeedNth86dIi9e/diWRZveMMbCAaDdHZ28pvf/IZ//dd/xev1ctZZZ/GBD3yA73znO5P7vOiii7jiiiuwLIsbbriBF154oeTnfDRa6mgOOnrD3PnYfkajCd7oHOeQWcNDj+2f+fJd/tJfvQnTmcyWIVql1BEK7dmMHrQv6/nqXm+Lj0LrmXD2H5c0pPvuu49LLnk9rr/8y79k5cqVk68dDgcrVqygu7v7iG3vuusu/uEf/oHTTjuN1atX86lPfYp3vvOd3HDDDXR2dnLttdcyOjrK9ddfz2c/+1l6enpoaGggEAhM7mPlypWHXcabPrV8IpEgk8ngdM5/+tAe1Bxsb+8n5HMRIIbXkUP8TUd/vmnoFejayYaXv8K6Dp1ZV6mqsv5KSIzaScnk7O+JUbt9nk2fwt0YQ2dn54xTuK9du5Z77rmHgYEBPvaxj/Hud7+baDSKy+XiU5/6FLt37+bxxx/npz/9Kd/+9rdZtmwZw8PDjI+PT+7j4MGDc54evlQ0Qc1B92icgNeJJzWM0+Eg5qqf+fmmiRusgMPy4EiGyc3zDValVAkt3QQX3Gr3oMa67e8X3Logs2NfffXV/OxnP+OXv/wl6XSaL3zhC3g8Hi644IIj1v3ud7/L4OAgDoeDujq7t2dZFo888gi/+93vyGazBINBXC4XlmWxYsUKLrjgAm6//XYSiQQvvvgid911F3/8x6XtFR4vvcQ3B211PjyHdnNF+F7W5vbR0OfgWf9baWucNmNkx/3grQNx4Iq+SsqqJeN24tbp35WqHks3leXf67p16/jud7/LrbfeSnd3N2eddRb333//EQMkALZv385tt91GLBZj5cqV3HvvvXi9Xvr6+rj55pvp6urC7/dzzTXXcP311wNwzz33cPPNN7Ns2TLq6+v59Kc/zaWXXrrQpzkjnfJ9Dva1P8nQQ1+A+DBBF4zWrMaRCtN02UdYs+m811e874P20NTYMPHudnbJyZy2ogV/sl+nf1dqgemU7+WjU74voDWDj3DSslYscRDDg/HVcfJJbawZfOTwFUMrIDEGTg+WQ3DmUmR0+nellDomTVBzEe6kNtRAk8+wtq2Z89c00tjQDOHOw9ebuMGaieMQ8KZHMLGRBbnBqpRS1UoT1FyEVpCNjeIwWSyXx25LjB3ZM5q4wVrTjCMdIedwc3DdB/T+k1JKHYMOkpiL9VfCQ/+KlUtiWc7Xh55uvuHIdfM3WB2+Orq6nThqT1n4eJVSgD1U2y4VqhbK8Yx30B7UXCzdRN/J7yHr8OBMhQsbeuoJ4Ceh1SSUKhPLskin07OvqEoqHo/jcrmK2kZ7UHM07mkhXPcGlr/jNggum30DTwA/3exPaoJSqhzq6uro7++nra0Nh0P/Rp9vxhji8Tjd3d20tBQ3g4MmqDnKJMbxWA7E7S9sA0+AGuJEE/oXnFLl0NTURFdXF3v27Cl3KIuGy+WipaWFYDBY1HaaoOYoE49Qawm4awvbwBvC48iRSkTJ5QwOh14HV2ohORwOTjrppHKHoQqg/ds5yiUjONw14LAK28ATwG05cGeieh9KKaWOQRPUHGUTEcRT4OU9AE8Al9OBOxMhltKq5kopdTSaoOYqFcHyBGZfb4InaPegslEiOlBCKaWOShPUHKSzORzpKJa3iB6UuxaXy4knGyGqCUoppY5KE9QcxFMZXNk4Ll8RPSgRXL6g9qCUUmoWmqDmIB6P4zAZnMX0oACHN0hA4kR1Zl2llDoqTVBzkIyOAeCuKW5sP94gfmJ6iU8ppY5BE9QcJGP2NMmemiIu8QF4AtSaOBF9WFcppY5KE9QcpOL5BFVbZA/KE8TjMKQSkXmISimlTgyaoOYgHR9HOJ4eVBCX00E2Fiabq7wZjZVSqhJogpqDbGIcy+lEXDXFbZivJuHKRIlpNQmllJpRQQlKRLaKyB4R2SsiH59h+Wki8oSIJEXko8VsW80yiXHEXQvFziszUU0iG9WRfEopdRSzJigRsYA7gMuBDcB1IrJh2mrDwIeAzx/HtlXLJCOIp8AisVO5a3G7XHiyEX0WSimljqKQHtS5wF5jzD5jTAq4F7hq6grGmAFjzA5g+rC0WbetZrlkFKuYOnwTRBjJeHitu4/PPdDBl37xMh294dIHqJRSVayQBNUGdE553ZVvK0TB24rITSKyU0R2Dg4OFrj78jKpCA5vkQMkgI7eML/pTOLKRAh6nYTjae58bL8mKaWUmqKQBDXTDZZCh54VvK0x5k5jzBZjzJbm5uYCd18+2WwWScWKriIBsL29H4c3SL2VJJ0zhHwuQj4X29v75yFSpZSqToUkqC5gxZTXy4GeAvc/l20rWjwWQTA4i6nDl9c9GsfhC1FLjEzGHiQR8DrpHo2XOkyllKpahSSoHcBaEVktIm7gWmBbgfufy7YVLRG1L8d5jiNBtdX5GM16cYnBkbGT0ngiQ1udr6QxKqVUNZs1QRljMsAtwINAB/ADY8wuEblZRG4GEJGlItIF3AZ8UkS6RCR4tG3n62QWUipqV5FwFfuQLrB1UwtDaTdZk8NKjxOOpwnH02zd1FLqMJVSqmo5C1nJGPMA8MC0tq9N+bkP+/JdQdueCCbKHHmLLRQLrG8NUXOak9Qjv6M59ioO50Za3vge1rSGSh2mUkpVrYISlDpSKmZXMvf6i09Q9LWz8uCPidRCQprZsNTCevluaPLD0k0ljlQppaqTljo6TpnEODmHC6/nOO4bddwPNY2IqwaLNGlXELx1drtSSilAE9RxyyYiGLcfh6PIMkcA4U7whhCXByuXJp3LgTdotyullAI0QR23bDJi1+E7HqEVkBjD4fRgmTTprIHEmN2ulFIK0AR13HKJCHI8ZY4A1l8JiVEsk8HKpsjFRiAxarcrpZQCNEEdv1Tk+OrwgT0Q4oJbsWrq8WVGSDiDcMGtOkBCKaWm0FF8xyObIZdO4PQdZ4ICWLoJx7l/xsHIT4if9hcsX1poeUOllFocNEEVq6+d3Is/4KSBR8k5x6Bv1fH3fNy1uCxhNDZe0hCVUupEoJf4itHXDo9/mWxkiKRVi8uk4PEv2+3Hw+3HZTlIxzVBKaXUdJqgitFxP4dyPl7oSzASS9MRdnEo5zv+55fyCSobHyttnEopdQLQBFWEkd597OjNkk4lsRxC0ljs6M0y0rvv+HborsXlEDKJSGkDVUqpE4AmqCK8FA9RJ3E8kgPA5fZQJ3Feih9nDT13LU6nE5McJ5crdIotpZRaHDRBFeG3rvMJEMWdGSOH4MtFCRDlt67zj2+HIlieWpyZOIn8vFBKKaVsmqCKYLWezv82XUtaXHhJkHYF+d+ma7FaTz/ufTprArizMWIpTVBKKTWVDjMvwtZNLdz5WAy35zyMROhech3heJqb5jCPk9MbwJ3tJK4JSimlDqM9qCKsbw1x05tXUyMpxrNuQj4XN715NevnMI+TyxfAldMelFJKTac9qCKtbw2RaXGzzGrm4ktPnfP+PDUhXNkEsWSqBNEppdSJQ3tQx8GkYliempLsy10TQDAktZqEUkodRhNUsbIZTCZZsgQlngAuS0hpglJKqcNogipWJk4mm8M63rmgpnPX4rQcpLWahFJKHUYTVJFMKkY6a3B6S5egXJaDbEJ7UEopNZUmqCKlElEM4PKUKkH5cVlCRgvGKqXUYTRBFSkVjwLgmstcUFNZThxuH7mk1uNTSqmpNEEVKZ0v7OouVYICLG8QSUVJZ3Ml26dSSlW7ghKUiGwVkT0isldEPj7DchGR/8gvf1FENk9Z9jcisktE2kXkHhHxlvIEFloqbicoj680o/gAnF6/ljtSSqlpZk1QImIBdwCXAxuA60Rkw7TVLgfW5r9uAr6a37YN+BCwxRizCbCAa0sWfRlkElEyDg9et6tk+3Tmq0louSOllHpdIT2oc4G9xph9xpgUcC9w1bR1rgK+bWxPAnUi0ppf5gR8IuIEaoCeEsVeFplklIzDi89llWyf7pqQ3YNKpku2T6WUqnaFJKg2oHPK665826zrGGO6gc8DB4FeIGyMeWimg4jITSKyU0R2Dg4OFhr/gssmY6QtL96SJqgAYnLE47GS7VMppapdIQlKZmibPrvejOuISD1272o1sAyoFZHrZzqIMeZOY8wWY8yW5ubmAsIqj2wqBi4flmOmUz4+npogACl9WFcppSYVkqC6gBVTXi/nyMt0R1vnEmC/MWbQGJMGfgxccPzhll8uaSeoUnL5AlgOIRXTBKWUUhMKSVA7gLUislpE3NiDHLZNW2cbcGN+NN952JfyerEv7Z0nIjUiIsDbgY4Sxr+wjMGkY1ilekh3gtuPyyGktR6fUkpNmnW6DWNMRkRuAR7EHoX3TWPMLhG5Ob/8a8ADwBXAXiAGvD+/7CkR+RHwLJABngPunI8TWRDZNNlMGstduiHmAHj8uCwHGb3Ep5RSkwqaD8oY8wB2Epra9rUpPxvgr46y7aeAT80hxsqRjpHJmtL3oCw3lstFNqHVJJRSaoJWkihGOk4ml8NZoqk2JnT0jbFrKMfTL3fypV+8TEdvuKT7V0qpaqQJqggm34NylaqSOdDRG+bOx/YTNV5CkiAcT3HnY/s1SSmlFj2d8r0IqbhdydzpLV0dvu3t/aw1BzgrtQNfvJ+BgTFe9L+Z7e01rG8Nlew4SilVbbQHVYR0wq5k7vaVrgeV7f0dbxm6F5fJksSNOzXGW4buJdv7u5IdQymlqpEmqCLYhWIFj7d096AuTD/BOLUkXUEcGOKOGsap5cL0EyU7hlJKVSNNUEVIJ6KkHV587tJdGT3NF2bU+Egae5+ZZIJR4+M0n96DUkotbpqgipBJRslYnpLW4atvXcM5rRYuj5dszuCWLOe0WtS3rinZMZRSqhppgipCNhkj7fDidZXwbVt/JY2OOJtbvTTUuFgXTNHoiMP6K0t3DKWUqkKaoIowMdWG11m6HhRLN8EFtyL+ZrwmShIXXHCr3a6UUouYDjMvQi4VA/dSHCWsZA7YyahlI919SSJNZ7FCk5NSSmkPqmDGYFIxHKWuwzdBBIc3QDah9fiUUgo0QRUukySbzZa+UOwUDk+AXEIrmiulFGiCKlw6RjprsEpch28qpy+ASUawa+8qpdTipgmqUJOFYktcyXwKyxfAlY0ST2fn7RhKKVUtNEEVKh0nkzU4S1godjp3TQgrlyYWi83bMZRSqlpogipQLhUlm5vfBOWpCQKQiGgVCaWU0gRVoHTCrmReykKx03lr7erliagmKKWU0gRVoFQ8ihEHHrdv3o7h8dsJKhXTBKWUUpqgCpRO5gvFeubv2WZPTRCHQCqmQ82VUkorSRSirx13+/dZO9RJYKcTzvrDeSlFJC4vlstDJq4P6yqllPagZtPXDo9/GRJjxFz1uFJj9uu+9nk5nHj8ZPVhXaWU0gQ1q477wVtHVixyDhdWTT146+z2eeDwBjVBKaUUmqBmF+4EbxCTTZMTJ06HgDdot88DyxvAaIJSSilNULMKrYD4KCabAcuNiEBizG6fB5YvgKQi5LK5edm/UkpVi4ISlIhsFZE9IrJXRD4+w3IRkf/IL39RRDZPWVYnIj8SkZdEpENEzi/lCcy79VcSHu5jJDzGwZEkz768n9GRwXmbUNDtCyImSzwenZf9K6VUtZg1QYmIBdwBXA5sAK4TkQ3TVrscWJv/ugn46pRl/w5sN8acBpwJdJQg7gXTYVbwndTFJHDRaEUJm1ruTL+DDjM/PShPrV1NIhYdnZf9K6VUtShkmPm5wF5jzD4AEbkXuArYPWWdq4BvG7sM95P5XlMrEAXeDPwJgDEmBaRKF/78297ejyO4glfGzuLJ0OUsWbGWWDzN9vZ+1reGSn48T76aRDIyBi0l371SSlWNQi7xtQFTRwR05dsKWWcNMAjcLSLPicg3RGTGWkEicpOI7BSRnYODgwWfwHzrHo1T50yTM4as064iEfA66R6Nz8vxJsodJbXckVJqkSskQc00v/n0CYuOto4T2Ax81RhzNnaP6oh7WADGmDuNMVuMMVuam5sLCGthtNX5SCci5Azk8glqPJGhrW5+Sh75/HUApPRhXaXUIldIguoCpt5wWQ70FLhOF9BljHkq3/4j7IRVNbZuaiEZGyeZNRjLSzieJhxPs3XT/Fx/c3s84PSQ0XJHSqlFrpAEtQNYKyKrRcQNXAtsm7bONuDG/Gi+84CwMabXGNMHdIrIuvx6b+fwe1cVb31riMtODZK1fIzGM4R8Lm568+p5uf80yePXckdKqUVv1kESxpiMiNwCPAhYwDeNMbtE5Ob88q8BDwBXAHuBGPD+Kbu4FfhePrntm7asKjR7sixrbuT2res5ZYl/3o/n8AS0moRSatErqFisMeYB7CQ0te1rU342wF8dZdvngS1ziLHsMokIGcuLz20tyPEc3gBm9OCCHEsppSqVVpIoQCYRJe3wUeNamATl9AUwySiY6WNRlFJq8dAEVYBMMkp6AXtQLl+IbDZDNqnVJJRSi5cmqNlkM+RSCbLOGjzOhXm73DV2NYl4RKtJKKUWL01Qs0nHSGdzWO4au1DsAphIUImojuRTSi1eOqPubPIJyuGd/9F7E/yJXpaHn8H7yGuw8g12Ydp5mMFXKaUqmfagZpOOkckZXJ4ZKzSVXl877LybeCzKCwPY1dN/+cV5m8FXKaUqlSao2aTsHpTLtzA9qIEdP2TXiIMYPnzOLGOmlheG7HallFpMNEHNJh0jnTW4FypBde7FeILkLDdWLo3HZWHcAQY69y7I8ZVSqlJogppFNhEhkwOPt2ZBjtdtmghInKzDjZVNAhCQON2maUGOr5RSlUIT1CySiQhpy0eNZ2HGk/QvuwwrFcZJDkc2iSc9hpUK07/ssgU5vlJKVQpNULNIxyNkHD58C1RF4pzzLuKh4NWMOQLU5MYZNx4eCl7NOeddtCDHV0qpSqHDzGeRSUQWtIrE+tYQ/N4lbHvYoqt7O+MrruHKN5w+v9XTlVKqAmmCmsVEHb6F6kGBnaTkvA2MPPYbNp1ZT0CTk1JqEdJLfLOYqMNX417YXF4TqAcgPn5oQY+rlFKVQhPUsWQz5FJJslYNXtfCvlW1tQGy4iIxPrKgx1VKqUqhCepY0lG7zJHHt2B1+CYEfG5SzlrSUS0Yq5RanDRBHUsqRjpncHoWrg7fBLfTQdYTJB3THpRSanHSBHUs6RiZbA7Lu0B1+KaxfPVkY+GyHFsppcpNE9Sx5CuZu32BshzeVRsim4xBJlmW4yulVDlpgjqW1EQdvvL0oFw19aSyOUjovFBKqcVHE9QxZJNR0kbweBamDt90nkAD6azR+1BKqUVJE9QxpBPj9kO6C1SHbzqf334WKjY2XJbjK6VUOWmCOoZUPGoXil2gMkfT1QZCGHGQ1GehlFKLkCaoY8gkImQc3gUtczRVwOciaflJRLQHpZRafApKUCKyVUT2iMheEfn4DMtFRP4jv/xFEdk8bbklIs+JyE9LFfhCyCSiC1oodjq/x0nSGSCjD+sqpRahWROUiFjAHcDlwAbgOhHZMG21y4G1+a+bgK9OW/5hoGPO0S6wbDJC2lG+S3xOywHeEBl9FkoptQgV0oM6F9hrjNlnjEkB9wJXTVvnKuDbxvYkUCcirQAishx4B/CNEsY9/zIpMukUGcuH11meBAXg9IXIJschmylbDEopVQ6FJKg2oHPK6658W6Hr/Bvwt0DuWAcRkZtEZKeI7BwcHCwgrHnU1w6PfJbQwYfYOPRzHAO7yhaKy19PKpODpD4LpZRaXApJUDNVSTWFrCMi7wQGjDHPzHYQY8ydxpgtxpgtzc3NBYQ1T/ra4fEvQ/QQaYcfDyn7dV97WcJx19aRzOQgofehlFKLSyEJqgtYMeX1cqCnwHUuBN4lIq9hXxp8m4h897ijXQgd94O3Dlw+skDWW2+/7ri/LOH4Ag1kc4ZkRIeaK6UWl0IS1A5grYisFhE3cC2wbdo624Ab86P5zgPCxpheY8ztxpjlxphV+e1+ZYy5vpQnUHLhTvAGIZciZwyW022/DnfOvu088AXqMQhxfRZKKbXIzFoiwRiTEZFbgAcBC/imMWaXiNycX/414AHgCmAvEAPeP38hz7PQCoiPQiZFLmewXB67Fl5oxezbzoOAz02vVas9KKXUolNQDR9jzAPYSWhq29em/GyAv5plH48CjxYd4UJbfyU8/mVMfIS0sfBko5BIwuYbyhKO3+sk6fST0od1lVKLjFaSmG7pJrjgVrLixGkSiK8OLrjVbi8D//BLrBp5grrd34VHPle2wRpKKbXQNEHNoMOs4OHker6T28pXzHvoMOW5vEdfO44nv4JLcqTwQGy4rCMKlVJqIWmCmqajN8ydj+0nFw9j3H4S6Sx3Prafjt4yVHPIjyg0vgZyxoDbV9YRhUoptZA0QU2zvb2fBo/BKxniDj8NtW5CPhfb2/sXPphwJ4MZN6+NGfrHEjz3ai+DGXfZRhQqpdRC0gQ1TfdonEZXkmzOEJMaXJaDgNdJ92h8wWMZsJrZvb+bBG4cIphUlN37uxmwyvggs1JKLRBNUNO01flIx8L2w7GOGlyWMJ7I0FbnW/BYtmfOJSRRglaKDBbB7CghibI9c+6Cx6KUUgtNE9Q0Wze1kImGiaezZFwBwvEM4XiarZtaFjyWFzPLeWH5DaRdIVykyQIvLL+BFzPLFzwWpZRaaOWZy7yCrW8NUXN6kOd/7WA44+ZUn4trzlnO+tbQgsfSVudjf3w1PStvQlIrOcvTzX5rFW0B94LHopRSC017UDNYWZujpamBD7zlVP7m0lPLkpzA7s2F42kS6SzjjhCpRJxEdKwsvTmllFpomqBmkI2PMm5qCHjL28H8/9u79+C47uqA49+z79WutKuXZUWSn5hYQYEGHOdByARIiAmYUAZKKBAKpSYDoYGBYYDO9PEHpX/QTIHhUTdAYWDCQICQMNQJ0LQkhTh2bGJkK04cO1iSJVlWtKvVal939/SPXQdFlvHaXueutOczo7H297tXe/aMdI9/9/e79/Z3x9h27VriTQFO0IKI8MFXRV0rmMYY82KyU3yLyKWT5L0R1wsUlItUf3eMHe0eugZ38pJI3u2QjDHmRWEjqEXk00nyvggtIb/boTyvpSVGuuijmDrudijGGPOisAK1UCFLPpch543WxQjqpPZoiDl/K+mEFShjTGOwArVQLkXeKZH3RogG66dAtUb8ZHxxckkX7mhhjDEusAK1UG6GnFPC29SCz1s/6WltCpANtJKbm4V82u1wjDHmgqufI3C9yM2Qd0oEI61uR/ICfq8HiXaSKRRhbsrtcIwx5oKzArVQLkWuqISiLW5HcoqmeBeZfBHSJ9wOxRhjLjgrUAtodoZZDdIcDrkdyimaY22kix7UCpQxpgFYgVogP5cgIxFa6mgF30ltkSBpb4xM0lbyGWOWPytQC+Rmy9dANdfRNVAntUb8zPlbySRsJZ8xZvmzAjWfKoW5JDlvfY6g2iNBMv5WcukkFLJuh2OMMRdU/R2F3eRkyeey5L3RuhxBhQNemjVFaOQ38JPboPNi6N8KKwfcDs0YY2rORlDz5VLknBKlQJSQvw5TMz7IwIkHKRWyEGqGTAJ+82UYH3Q7MmOMqbk6PAq7qHIXCX8kjoi4Hc2phu5Ho53kJFg+xReOQygOQ/e7HZkxxtRcVQVKRLaIyEEROSQin16kX0TkS5X+fSLyykp7n4g8JCJDIrJfRO6o9QeoqWySnFMiGIm7HcniksP4I3FyEqKYTZXbQi2QHHY3LmOMuQDOOAclIl7gK8ANwAiwS0TuU9UD8zZ7I7Ch8nUF8LXKvw7wCVXdIyLNwOMi8osF+9aPXIpcsUQ4WqfPW4r14YweYyTjpzAyxnTmIjbES7S397kdmTHG1Fw1I6jNwCFVPayqeeD7wM0LtrkZ+I6WPQrERaRbVcdUdQ+AqqaAIaCnhvHXzvggpd3fomfyYTYe/Gpdzusc7nwtYxPjOCXwUSIwN84zR0c53Plat0Mzxpiaq6ZA9QDzzyGNcGqROeM2IrIGuAzYudibiMg2EdktIrsnJyerCKuGxgfhN1/GST/HnK+NcDFVl4sPfjrWxu6L3k3Sv4JgKU3A52H3Re/hp2NtbodmjDE1V80y88VWC+jZbCMiUeBHwMdUdWaxN1HV7cB2gE2bNi38+RfW0P0QilNMTFD0+vBH2oB0ub2OlnCPJjJ0t/fzs1wPmZkO4vGVZNo2MpbIuB32uictAAAO3UlEQVSaMcbUXDUjqBFg/iRHL3Cs2m1ExE+5OH1PVX987qFeQMlhCEQoFTIUPCGCPk9dLj7oiYdJZR2aQz5G6SCaHSeVKdATD7sdmjHG1Fw1BWoXsEFE1opIALgFuG/BNvcBt1ZW810JJFV1TMprtb8BDKnqnTWNvJZifTA7QbFYouBtIuDzQHam3F5Htgx0kcwUEIHj0kl2Lk1xdpItA11uh2aMMTV3xgKlqg5wO/AA5UUOP1DV/SJym4jcVtns58Bh4BDwH8CHK+2vBt4LvE5Eflf5uqnWH+K89W8lNTXKVGKGQ9Mlfvf0sySmJ8t3aagj/d0xtl27loviYf7gtKPABwa89HfX6apDY4w5D1Xd6khVf065CM1v+/q87xX4yCL7PcLi81N1ZUj72J+7lI1M0+VLkdRetheuYav20e92cAv0d8fo747x3ZYQ3cN7WOufdjskY4y5IOxefMCOwQnWh5r4bfR69rbdxIauZuYyBXYMTtTt6KSnrYnRo+0MJIbtdiDGmGXJjm3Asek0cZ1mUuM0BbwA5YUIdbw6rjceJuHvIj3zXPmefMYYs8xYgQLWRQtkMjkS3lailcdspLJOXa+O62kNMxNcSSrjQHLE7XCMMabmrEABb1gNc3mHiVIL4YCXZKZAMlOo69VxTQEfK70z+EYfhQc+Cw99vu4uLDbGmPNhBQpYH56jpy2CJ9LBZCpPLOxn27Vr63b+CYDxQS4fu5uMI6jHb4/eMMYsO7ZIAtDUBLlAG+98+Vq2DHS7HU51hu4n1NzG9JxDITtFIND0fHs93f3CGGPOlRUoIJcYY9rTyqpY/c45nSI5TNbTyjPpIN6ZNIXCM6zsXU1nnd39whhjzpWd4sunSacSzPnbWdkScjuaqh33dvL08BhZCZH3hAlkJzlwZJTj3k63QzPGmJqwAjU7wWzOIRvqoCMacDuaqu1wNhOTNJ2+DFPEaS4laNdpdjib3Q7NGGNqwgrU7HFmsw5Nbd34vEsnHfucXp7ofS/FYAwPBXKEONZ6OfucXrdDM8aYmmj4OahSapzpUpjO1la3QzkrPfEwRzJrmVx/G3uOJri++Ai9+Wl6uoNuh2aMMTWxdIYMtTY+CA99HufhL7Fiei+rCkfcjuisnLyz+WyuSHvEz55cD8Vsirf01e/dL4wx5mw0ZoGqPEGXuSnylUFk79BdS+oaopN3No+F/SjCZLCP9c0l1u+7E+79sF24a4xZ8hrzFF/lCbp4vBScErlQB4Fo65K7hujknc0BHvjlL4nsP4jmS8i61/zxwt2rP7qkPpMxxpzUmCOo5DCTToDBw0cZTWQYSXs54QTr7gm6Z+OyzCNM+bvJ4YP0FITj5SI8dL/boRljzDlpyAJ13NvJgcMjBDLHyXgiOBJY8tcQtTsTTHtaeSoBB586wM5nJph0Aku66BpjGltDFqgdzmY6dYqm4gzTnjY6fBlikl7S1xBN+VYwl0pwuLSSkKdIOD2y5IuuMaaxNWSB2uf0MhF7BbMaJigFisEYT/S+d0lfQ7TD2UyXP4Pfo0zSRkfhGB2lqSVddI0xja0hF0msbgZnMs1PQm9jvOsa1rRHSGYK9DT73Q7tnO1zetFVt9Ix8iDpzCwO0MI0G5/9Djy0D/q32mIJY8yS0pAjqK1dJ0jOZRnyrGNlS3BJPP/pTHriYY741jJ08Yd5sOUdHC+1QDFPxO+1R3EYY5akxipQ44Pw0D/T+9jnuESepT+aYSpdWBrPfzqD+Rfu3uB5jGFt5+lsDE9qhL1Hn2OqFLYVfcaYJaVxTvGND5L41Z2MJLJ4EjmmPM38je9ndLzmk7DypW5Hd95OXri7Y3ACX2qUmVILWX8vK30jxGefZjgVpenYTsLJYYj12Sk/Y0zda5gCdXzXDxmaVNpLszjiIxHqYf9zWfp3/ZAVW5fHgfrkhbu/PbqKizMJpkpNDOXWcGnxSdZnn+BEpoUh8dI7vIe1v7+XcOc6WPlyK1bGmLq0rAvU4cFHmdh5D97UCJ2zB+n0teLDYczbSWs0hOP4OT58iBVuB1pj/+e/ijdm7sEf8DChAUrJNHPqJU2Ai/P7CWYnGXU8FGeHSc8085LDf0/LitVQzNnoyhhTN6oqUCKyBfgi4AXuUtV/WdAvlf6bgDngr1R1TzX71trJohQ8MUgsN4Yvsp5icw+BxB7iziRP+i4hE+sh5vEQlllGSx0st0Oxt/tS/jfg47L0w6wqjeGXIg/zKoKibE4P4ikVCEkQKRZI5dKkJp8iMXmMJ6OX03l4N12P/pAp/0pmWy/Bv/ISCuMH8KZGKEoAEcVTKlBs7rU+67M+66PY3EvXFW9n3cCVNT+Wiar+6Q1EvMBTwA3ACLALeJeqHpi3zU3ARykXqCuAL6rqFdXsu5hNmzbp7t27z/rDHB58lBMP/iulQIyWxH6aijP4cJjzt1PIZ4mRIuWJk7joGoLFNJ5ckn19t3Lrn7/prN+rng2NJdn+6yPEwn6aQz46dt9Ji85COM7LUo9QVIgzC4DP46FQKiHiYbJpA/G5IzjqwROKccLTSffcEMeiAzi+MN3JvaAw3vpKvPk03en9jDUP4Hitz/qsr1H78Ibw5JN0vOET51ykRORxVd10SnsVBeoq4B9V9cbK688AqOrn523z78D/qOrdldcHgeuANWfadzHnWqB++41PIpkEofQwvZkhCvjwUCJPgP3Rq3GyaS4uPk2242Wc8K5gV+gatt54/ZJevXc6Q2NJdgxOMJrIoOODvLNwL75IK76JQaLMUdISz8hq+ktPIZQQwEMJL0WKeAlSIE8AHzkcgiiChyIARXwoECBHniAKeCkiz/cpAfIUnu9zEMCpDNhP7of1WZ/1Lfm+kd6bkGwKDce56q+/wLk4XYGq5hRfDzD/hm4jlEdJZ9qmp8p9Twa4DdgGsGrVqirCOpU3NYIT6Safj5HItSIKWU+YoGaJtXaQmxH2Fq/msRUfoiceZutA17IsTvDCO50Pja3h/gdCXJ59hIivmYiT5g/e1fja1pI+MU5E0wz6X86GwgHyBAlKnhn10ESGtDYRIgtAliYQCGoOAdJECJIHqPziCgFyAGRoImB91md9DdAnlILN+FIj1Fo1BUoWaVs47DrdNtXsW25U3Q5sh/IIqoq4TlFs7sWTSVCMreKEN8SK5BMES1ly3giSSdCks2za8iH+YuAV5/Ljl6z+7hjceD07Bi9lfziJb/IANwcfp1enOOJbT8yZpKUlQi7ZTLiYRgSOBjfS4wwTdGZJ+srLSLylcmHKeOIABJ1Zpn1tL+hLe1qf70tbn/VZ3/LvEw+ebIJic+1vFVfNhbojQN+8173AsSq3qWbfmum64u148kkkk6DU1M5UeB0iSj7Qgobj53WOdKnr747x8Rteyl3vu5w73v1Wntx4O99e8Ske2fhZHujaRt7XAqEYJVUO0Ycn2sFcoJOQzjEXWsFMZDWhUppgMU0qusb6rM/6rI9UdA2SSeDJJ+m64u01P25VMwflo7zQ4fXAKOWFDn+pqvvnbfMm4Hb+uEjiS6q6uZp9F3Ouc1DwwqXlF3J1yXIyf76qL/8MA8lf05wfr7uVQtZnfdZXn33ne5w95zkoVXVE5HbgAcpLxb+pqvtF5LZK/9eBn1MuTocoLzN//5/a95w/RRXWDVxpBekszZ+vglcAb3MzHGOMAaoYQbnhfEZQxhhjlpbTjaAa62axxhhjlgwrUMYYY+qSFShjjDF1yQqUMcaYumQFyhhjTF2qy1V8IjIJ/OE8f0wHcKIG4Sw3lpfFWV4WZ3lZnOVlceeal9Wq2rmwsS4LVC2IyO7Fli02OsvL4iwvi7O8LM7ysrha58VO8RljjKlLVqCMMcbUpeVcoLa7HUCdsrwszvKyOMvL4iwvi6tpXpbtHJQxxpilbTmPoIwxxixhVqCMMcbUpWVXoERki4gcFJFDIvJpt+Nxi4j0ichDIjIkIvtF5I5Ke5uI/EJEnq782+p2rG4QEa+I7BWRn1VeN3xeRCQuIveIyJOV35urLC8gIh+v/A0NisjdIhJqxLyIyDdF5LiIDM5rO20eROQzlePwQRG58Vzec1kVKBHxAl8B3ghcArxLRC5xNyrXOMAnVLUfuBL4SCUXnwZ+paobgF9VXjeiO4Chea8tL/BFYIeqbqT8YLAhGjwvItID/C2wSVUHKD/X7hYaMy//CWxZ0LZoHirHmluAl1X2+Wrl+HxWllWBAjYDh1T1sKrmge8DN7sckytUdUxV91S+T1E+2PRQzse3K5t9G3irOxG6R0R6gTcBd81rbui8iEgLcC3wDQBVzatqggbPS4UPCFeeEN4EHKMB86KqvwaeW9B8ujzcDHxfVXOqeoTyw2w3n+17LrcC1QMMz3s9UmlraCKyBrgM2Al0qeoYlIsYsMK9yFzzb8CngNK8tkbPyzpgEvhW5dTnXSISocHzoqqjwBeAo8AYkFTVB2nwvMxzujzU5Fi83AqULNLW0OvoRSQK/Aj4mKrOuB2P20TkzcBxVX3c7VjqjA94JfA1Vb0MSNMYp63+pMqcys3AWuAiICIi73E3qiWhJsfi5VagRoC+ea97KQ/HG5KI+CkXp++p6o8rzRMi0l3p7waOuxWfS14NvEVEnqV8Cvh1IvJdLC8jwIiq7qy8vodywWr0vFwPHFHVSVUtAD8GrsbyctLp8lCTY/FyK1C7gA0islZEApQn6e5zOSZXiIhQnk8YUtU753XdB7yv8v37gJ++2LG5SVU/o6q9qrqG8u/Hf6vqe7C8jAPDInJxpen1wAEaPC+UT+1dKSJNlb+p11Oez230vJx0ujzcB9wiIkERWQtsAB472x++7O4kISI3UZ5j8ALfVNXPuRySK0TkGuBh4Pf8ca7ls5TnoX4ArKL8x/cOVV048dkQROQ64JOq+mYRaafB8yIif0Z54UgAOAy8n/J/Yhs9L/8EvJPyyti9wAeBKA2WFxG5G7iO8iM1JoB/AO7lNHkQkb8DPkA5bx9T1f866/dcbgXKGGPM8rDcTvEZY4xZJqxAGWOMqUtWoIwxxtQlK1DGGGPqkhUoY4wxdckKlDHGmLpkBcoYY0xd+n/ew5AhmBPX7gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def binomial(k, n, p):\n", + " # Binomial(n, p) pmf evaluated at k\n", + " return binom(n, k) * p**k * (1-p)**(n-k)\n", + "\n", + "θ_vals = 0.5, 0.2, 0.1\n", + "\n", + "n_vals = 50, 75, 100\n", + "\n", + "fig, axes = plt.subplots(len(n_vals), 1, figsize=(6, 12))\n", + "\n", + "for n, θ, ax in zip(n_vals, θ_vals, axes.flatten()):\n", + "\n", + " k_grid = np.arange(n)\n", + " binom_vals = [binomial(k, n, θ) for k in k_grid]\n", + " poisson_vals = [poisson(k, n * θ) for k in k_grid]\n", + " ax.plot(k_grid, binom_vals, 'o-', alpha=0.5, label='binomial')\n", + " ax.plot(k_grid, poisson_vals, 'o-', alpha=0.5, label='Poisson')\n", + " ax.set_title(f'$n={n}$ and $\\\\theta = {θ}$')\n", + " ax.legend(fontsize=12)\n", + "\n", + "fig.tight_layout()\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/1a87139d76e35cf6c6e219fd11b23fe6/base.ipynb b/code_book/_build/.jupyter_cache/executed/1a87139d76e35cf6c6e219fd11b23fe6/base.ipynb new file mode 100644 index 0000000..44bcdf5 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/1a87139d76e35cf6c6e219fd11b23fe6/base.ipynb @@ -0,0 +1,110 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "xmin, xmax = -10.0, 10.0\n", + "ymin, ymax = -5.0, 5.0\n", + "\n", + "\n", + "A1 = np.asarray([[0.55, -0.6],\n", + " [0.5, 0.4]])\n", + "\n", + "def f(x, y): \n", + " return A1 @ (x, y)\n", + "\n", + "def draw_arrow(x, y, ax):\n", + " eps = 1.0\n", + " v1, v2 = f(x, y)\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = eps / nrm\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.4,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", + "\n", + "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 8)\n", + "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 8)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.set_xlim(xmin, xmax)\n", + "ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " draw_arrow(x, y, ax)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + }, + "source_map": [ + 14, + 18, + 63 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/38d016ea183021056401c56a91fed34a/base.ipynb b/code_book/_build/.jupyter_cache/executed/38d016ea183021056401c56a91fed34a/base.ipynb new file mode 100644 index 0000000..10ecb9f --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/38d016ea183021056401c56a91fed34a/base.ipynb @@ -0,0 +1,50 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/67e995718e020ecec2d9b516aeb5aebd/base.ipynb b/code_book/_build/.jupyter_cache/executed/67e995718e020ecec2d9b516aeb5aebd/base.ipynb new file mode 100644 index 0000000..6a73304 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/67e995718e020ecec2d9b516aeb5aebd/base.ipynb @@ -0,0 +1,162 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.linalg import expm\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "Q = ((-3, 2, 1),\n", + " (3, -5, 2),\n", + " (4, 6, -10))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcwAAAFUCAYAAACp7gyoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5yU5b3//9d13feUrbCgCAiigGJHjwULqIgiAscIKioKAiqoaNSIDQ2KStFj18TvSUyi0Z/mnGhMOYqAio3EEnsHFBSkL2XLtLtcvz/umWVZF9gyu/fcM9fz8Rh33WVnPjA793uuLpRSaJqmaZq2c9LvAjRN0zQtCHRgapqmaVoT6MDUNE3TtCbQgalpmqZpTaADU9M0TdOaQAempmmapjWBuYvv6zUnmqZpWqERjX1RtzA1TdM0rQl0YGqapmlaE+jA1LSAufnmm3nwwQf9LuMnjj76aL744gu/y9C0NqMDU9MCZMOGDfzxj39kypQpAGzatIlRo0ZRUlJCr169eOaZZ5p0Py39uUcffZQjjzySSCTChAkTtvvetGnTmDFjRrP+PpoWJLua9KNpWg554oknGD58OEVFRQBMnTqVcDjMunXr+PjjjxkxYgT9+/fnoIMO2un9tPTnunfvzq233sr8+fOJx+Pbfe+MM87gsssuY82aNXTr1q11f1FNy0G6halpATJv3jxOPPFEAGpra3n++ee58847KS0tZeDAgZxxxhk89dRTO72Plv4cwOjRoznzzDPp3LnzT74XjUY54ogjWLBgQcv+cpqW43RgalqAfPbZZ/Tr1w+AJUuWYBgG++23X933+/fvv8txxJb+XFMccMABfPLJJ62+H03LRTowNS1AtmzZQllZGQA1NTV06NBhu+936NCB6urqnd5HS3+uKcrKytiyZUur70fTcpEOTE0LkIqKirpgKy0tpaqqarvvV1VV1QXqjrT055qiurqajh07tvp+NC0X6cDUtAA59NBDWbJkCQD77bcftm2zdOnSuu9/8sknu5y409Kfa4qvvvqK/v37t/p+NC0X6cDUtAAZPnw4b7zxBgAlJSWMHj2aGTNmUFtby+LFi/nb3/7GuHHj6v78hAkTfrL8o6U/B2DbNolEAsdxcByHRCKBbdsAJJNJPvjgA0499dTs/8U1LQfowNS0ABk/fjwvvfRS3ZKOX//618Tjcbp06cL555/PY489tl1LceXKlRx//PE/uZ+W/txdd91FUVERc+fO5emnn6aoqIi77roLgL///e+cdNJJdO/ePdt/bU3LCUKpne6vrjdf17QcM336dLp06cI111yz0z+XSqXo378/n376KaFQqMn339KfGzBgAL/73e84+OCDm/wzmpajGt18XQempmmapm1Pn1aiaZqmaS2lA1PTNE3TmkAHpqZpmqY1gQ5MTSsASilc1/W7DE0LNH1aiabloUxA2rZdd5NSEg6HMQwDwzAQotF5DZqm7YCeJatpecJ1XRzHwbIsLMui/mtbSolpmkgp675uGAamaSKE0OGpadvTy0o0LZ8opXAcB9u2SaVS23W5Sil/EoJCCD777DP69u1LWVlZXXAKIepanVLqURpNYweBqbtkNS0g6gekZVk4jlP3PSFEoyG5fPlyFi1axOuvv86yZcvo378/M2bMoLy8vO7PKqW267bVXbaa1jjdwtS0HNVwHNKyrLqvZ8JxZ6FmWRYTJ07k+OOP5+STT+bAAw/EMIydPl79j/VbnTo8tQKju2Q1LdftaBwyE44tCa5kVRWxqhirN7gcPmDvJv2MUkp32WqFTAempuWa+t2hlmXtchyyuapWrmT9F19y04MbeeP9Wl7522COOrl5x3jVD0/dZasVCB2Ymua3XY1DZnPGqpNKsfLNN7nvqa18+GWSEwbswcI3V/Kv9y6kpLy4RbXX/6i7bLU8pveS1bT2lgnIZDJJTU0NW7dupaamhng8juu627XYsh08rm3zxJ/X8triLVx3TidO3t+hU5nJjNveadH9ZcI8U6fjOKRSKZLJZF3reBdvwDUt0HRgalqWua5LKpUiFotRVVVFdXU18Xgcx3HqAjKzJrItW2b/9/Jqnnwxzs0XdqG81MS1HS4d3oHnnl/OK6/80Kr7zgRnZkzTtm2SySSpVArbtnVwanlJd8lqWis1Ng6plNrhUo/28M9/ruGCCxbwy8m92N1ai5VIYEYiFHfqxOrifbnr7n/y73+fz267FWXtMXWXrZZH9BimpmVDe45DtsQ332zm9NP/wZ13nkJPZyW169cRKikBx8GKx9l78GAe++M3bNiwmeeeG9Emte5olq3f/zaa1kR6DFPTWsLPccjmWrOmllGjXuLqq4/jmGN6Ei4vx0kmqf5hJbXr1iGl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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def unit_simplex(angle):\n", + " \n", + " fig = plt.figure(figsize=(8, 6))\n", + " ax = fig.add_subplot(111, projection='3d')\n", + "\n", + " vtx = [[0, 0, 1],\n", + " [0, 1, 0], \n", + " [1, 0, 0]]\n", + " \n", + " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", + " tri.set_facecolor([0.5, 0.5, 1])\n", + " ax.add_collection3d(tri)\n", + "\n", + " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", + " xticks=(1,), yticks=(1,), zticks=(1,))\n", + "\n", + " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", + " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", + " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", + "\n", + " ax.xaxis.majorTicks[0].set_pad(15)\n", + " ax.yaxis.majorTicks[0].set_pad(15)\n", + " ax.zaxis.majorTicks[0].set_pad(35)\n", + "\n", + " ax.view_init(30, angle)\n", + "\n", + " # Move axis to origin\n", + " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", + " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", + " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", + " \n", + " ax.grid(False)\n", + " \n", + " return ax\n", + "\n", + "Q = np.array(Q)\n", + "ψ_00 = np.array((0.01, 0.01, 0.99))\n", + "ψ_01 = np.array((0.01, 0.99, 0.01))\n", + "ψ_02 = np.array((0.99, 0.01, 0.01))\n", + "\n", + "ax = unit_simplex(angle=50) \n", + "\n", + "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ expm(h * Q)\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", + "\n", + "flow_plot(ψ_00)\n", + "flow_plot(ψ_01)\n", + "flow_plot(ψ_02)\n", + "\n", + "# Add stationary distribution\n", + "P_1 = expm(Q)\n", + "mc = qe.MarkovChain(P_1)\n", + "ψ = mc.stationary_distributions[0]\n", + "ax.scatter(ψ[0], ψ[1], ψ[2], c='k', s=30, depthshade=False)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 13, + 46, + 58, + 86, + 90, + 98, + 166 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/728d1e87fa1ac3b9f9fd564f8c4c4cbd/base.ipynb b/code_book/_build/.jupyter_cache/executed/728d1e87fa1ac3b9f9fd564f8c4c4cbd/base.ipynb new file mode 100644 index 0000000..1a9a8f7 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/728d1e87fa1ac3b9f9fd564f8c4c4cbd/base.ipynb @@ -0,0 +1,209 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.linalg import expm\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from mpl_toolkits.mplot3d.art3d import Poly3DCollection" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "P = ((0.9, 0.1, 0.0),\n", + " (0.4, 0.4, 0.2),\n", + " (0.1, 0.1, 0.8))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def unit_simplex(angle):\n", + " \n", + " fig = plt.figure(figsize=(8, 6))\n", + " ax = fig.add_subplot(111, projection='3d')\n", + "\n", + " vtx = [[0, 0, 1],\n", + " [0, 1, 0], \n", + " [1, 0, 0]]\n", + " \n", + " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", + " tri.set_facecolor([0.5, 0.5, 1])\n", + " ax.add_collection3d(tri)\n", + "\n", + " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", + " xticks=(1,), yticks=(1,), zticks=(1,))\n", + "\n", + " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", + " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", + " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", + "\n", + " ax.xaxis.majorTicks[0].set_pad(15)\n", + " ax.yaxis.majorTicks[0].set_pad(15)\n", + " ax.zaxis.majorTicks[0].set_pad(35)\n", + "\n", + " ax.view_init(30, angle)\n", + "\n", + " # Move axis to origin\n", + " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", + " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", + " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", + " \n", + " ax.grid(False)\n", + " \n", + " return ax\n", + "\n", + "\n", + "def convergence_plot(ψ, n=14, angle=50):\n", + "\n", + " ax = unit_simplex(angle)\n", + "\n", + " P = ((0.9, 0.1, 0.0),\n", + " (0.4, 0.4, 0.2),\n", + " (0.1, 0.1, 0.8))\n", + " \n", + " P = np.array(P)\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ P\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=50, alpha=0.7, depthshade=False)\n", + "\n", + " return ψ\n", + "\n", + "ψ = convergence_plot((0, 0, 1))\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "Q = ((-3, 2, 1),\n", + " (3, -5, 2),\n", + " (4, 6, -10))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "Q = np.array(Q)\n", + "ψ_00 = np.array((0.01, 0.01, 0.99))\n", + "ψ_01 = np.array((0.01, 0.99, 0.01))\n", + "ψ_02 = np.array((0.99, 0.01, 0.01))\n", + "\n", + "ax = unit_simplex(angle=50) \n", + "\n", + "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ expm(h * Q)\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", + "\n", + "flow_plot(ψ_00)\n", + "flow_plot(ψ_01)\n", + "flow_plot(ψ_02)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/8e6b7cdf0f12f455a1fb52750d3b082f/base.ipynb b/code_book/_build/.jupyter_cache/executed/8e6b7cdf0f12f455a1fb52750d3b082f/base.ipynb new file mode 100644 index 0000000..646abb5 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/8e6b7cdf0f12f455a1fb52750d3b082f/base.ipynb @@ -0,0 +1,48 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.linalg import expm" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/991403d0081f09586073fda07f892489/base.ipynb b/code_book/_build/.jupyter_cache/executed/991403d0081f09586073fda07f892489/base.ipynb new file mode 100644 index 0000000..c6b6ecb --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/991403d0081f09586073fda07f892489/base.ipynb @@ -0,0 +1,163 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.linalg import expm\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "Q = ((-3, 2, 1),\n", + " (3, -5, 2),\n", + " (4, 6, -10))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def unit_simplex(angle):\n", + " \n", + " fig = plt.figure(figsize=(8, 6))\n", + " ax = fig.add_subplot(111, projection='3d')\n", + "\n", + " vtx = [[0, 0, 1],\n", + " [0, 1, 0], \n", + " [1, 0, 0]]\n", + " \n", + " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", + " tri.set_facecolor([0.5, 0.5, 1])\n", + " ax.add_collection3d(tri)\n", + "\n", + " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", + " xticks=(1,), yticks=(1,), zticks=(1,))\n", + "\n", + " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", + " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", + " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", + "\n", + " ax.xaxis.majorTicks[0].set_pad(15)\n", + " ax.yaxis.majorTicks[0].set_pad(15)\n", + " ax.zaxis.majorTicks[0].set_pad(35)\n", + "\n", + " ax.view_init(30, angle)\n", + "\n", + " # Move axis to origin\n", + " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", + " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", + " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", + " \n", + " ax.grid(False)\n", + " \n", + " return ax\n", + "\n", + "Q = np.array(Q)\n", + "ψ_00 = np.array((0.01, 0.01, 0.99))\n", + "ψ_01 = np.array((0.01, 0.99, 0.01))\n", + "ψ_02 = np.array((0.99, 0.01, 0.01))\n", + "\n", + "ax = unit_simplex(angle=50) \n", + "\n", + "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ expm(h * Q)\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", + "\n", + "flow_plot(ψ_00)\n", + "flow_plot(ψ_01)\n", + "flow_plot(ψ_02)\n", + "\n", + "# Add stationary distribution\n", + "#P_1 = expm(Q)\n", + "\n", + "#mc = qe.MarkovChain(P_1)\n", + "#ψ_star = mc.stationary_distributions\n", + "#ax.scatter(0.2, 0.2, 0.6, c='k', s=20, alpha=0.2, depthshade=False)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 13, + 46, + 58, + 86, + 90, + 98, + 167 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/b19efb60339c53c4699e1e5f5057071a/base.ipynb b/code_book/_build/.jupyter_cache/executed/b19efb60339c53c4699e1e5f5057071a/base.ipynb new file mode 100644 index 0000000..35a0788 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/b19efb60339c53c4699e1e5f5057071a/base.ipynb @@ -0,0 +1,110 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "xmin, xmax = -10.0, 10.0\n", + "ymin, ymax = -5.0, 5.0\n", + "\n", + "\n", + "A1 = np.asarray([[0.55, -0.6],\n", + " [0.5, 0.4]])\n", + "\n", + "def f(x, y): \n", + " return A1 @ (x, y)\n", + "\n", + "def draw_arrow(x, y, ax):\n", + " eps = 1.0\n", + " v1, v2 = f(x, y)\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = eps / nrm\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.4,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", + "\n", + "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20)\n", + "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.set_xlim(xmin, xmax)\n", + "ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " draw_arrow(x, y, ax)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + }, + "source_map": [ + 14, + 18, + 63 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/ca484b75c9e681c89cc70bdfd6b7cfb6/base.ipynb b/code_book/_build/.jupyter_cache/executed/ca484b75c9e681c89cc70bdfd6b7cfb6/base.ipynb new file mode 100644 index 0000000..52b1d9d --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/ca484b75c9e681c89cc70bdfd6b7cfb6/base.ipynb @@ -0,0 +1,33 @@ +{ + "cells": [], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/cc54771f9a1a14e35bc8d1a6c3f137fa/base.ipynb b/code_book/_build/.jupyter_cache/executed/cc54771f9a1a14e35bc8d1a6c3f137fa/base.ipynb new file mode 100644 index 0000000..7f79d81 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/cc54771f9a1a14e35bc8d1a6c3f137fa/base.ipynb @@ -0,0 +1,162 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.linalg import expm\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "Q = ((-3, 2, 1),\n", + " (3, -5, 2),\n", + " (4, 6, -10))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def unit_simplex(angle):\n", + " \n", + " fig = plt.figure(figsize=(8, 6))\n", + " ax = fig.add_subplot(111, projection='3d')\n", + "\n", + " vtx = [[0, 0, 1],\n", + " [0, 1, 0], \n", + " [1, 0, 0]]\n", + " \n", + " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", + " tri.set_facecolor([0.5, 0.5, 1])\n", + " ax.add_collection3d(tri)\n", + "\n", + " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", + " xticks=(1,), yticks=(1,), zticks=(1,))\n", + "\n", + " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", + " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", + " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", + "\n", + " ax.xaxis.majorTicks[0].set_pad(15)\n", + " ax.yaxis.majorTicks[0].set_pad(15)\n", + " ax.zaxis.majorTicks[0].set_pad(35)\n", + "\n", + " ax.view_init(30, angle)\n", + "\n", + " # Move axis to origin\n", + " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", + " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", + " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", + " \n", + " ax.grid(False)\n", + " \n", + " return ax\n", + "\n", + "Q = np.array(Q)\n", + "ψ_00 = np.array((0.01, 0.01, 0.99))\n", + "ψ_01 = np.array((0.01, 0.99, 0.01))\n", + "ψ_02 = np.array((0.99, 0.01, 0.01))\n", + "\n", + "ax = unit_simplex(angle=50) \n", + "\n", + "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ expm(h * Q)\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", + "\n", + "flow_plot(ψ_00)\n", + "flow_plot(ψ_01)\n", + "flow_plot(ψ_02)\n", + "\n", + "# Add stationary distribution\n", + "P_1 = expm(Q)\n", + "mc = qe.MarkovChain(P_1)\n", + "ψ_star = mc.stationary_distributions\n", + "ax.scatter(0.2, 0.2, 0.6, c='k', s=20, alpha=0.2, depthshade=False)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 13, + 46, + 58, + 86, + 90, + 98, + 166 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/cf5f20299b6a4f96f931e28c5af3911e/base.ipynb b/code_book/_build/.jupyter_cache/executed/cf5f20299b6a4f96f931e28c5af3911e/base.ipynb new file mode 100644 index 0000000..7e875c0 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/cf5f20299b6a4f96f931e28c5af3911e/base.ipynb @@ -0,0 +1,162 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.linalg import expm\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "Q = ((-3, 2, 1),\n", + " (3, -5, 2),\n", + " (4, 6, -10))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def unit_simplex(angle):\n", + " \n", + " fig = plt.figure(figsize=(8, 6))\n", + " ax = fig.add_subplot(111, projection='3d')\n", + "\n", + " vtx = [[0, 0, 1],\n", + " [0, 1, 0], \n", + " [1, 0, 0]]\n", + " \n", + " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", + " tri.set_facecolor([0.5, 0.5, 1])\n", + " ax.add_collection3d(tri)\n", + "\n", + " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", + " xticks=(1,), yticks=(1,), zticks=(1,))\n", + "\n", + " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", + " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", + " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", + "\n", + " ax.xaxis.majorTicks[0].set_pad(15)\n", + " ax.yaxis.majorTicks[0].set_pad(15)\n", + " ax.zaxis.majorTicks[0].set_pad(35)\n", + "\n", + " ax.view_init(30, angle)\n", + "\n", + " # Move axis to origin\n", + " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", + " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", + " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", + " \n", + " ax.grid(False)\n", + " \n", + " return ax\n", + "\n", + "Q = np.array(Q)\n", + "ψ_00 = np.array((0.01, 0.01, 0.99))\n", + "ψ_01 = np.array((0.01, 0.99, 0.01))\n", + "ψ_02 = np.array((0.99, 0.01, 0.01))\n", + "\n", + "ax = unit_simplex(angle=50) \n", + "\n", + "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ expm(h * Q)\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", + "\n", + "flow_plot(ψ_00)\n", + "flow_plot(ψ_01)\n", + "flow_plot(ψ_02)\n", + "\n", + "# Add stationary distribution\n", + "P_1 = expm(Q)\n", + "mc = qe.MarkovChain(P_1)\n", + "ψ = mc.stationary_distributions[0]\n", + "ax.scatter(ψ[0], ψ[1], ψ[2], c='k', s=20, depthshade=False)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 13, + 46, + 58, + 86, + 90, + 98, + 166 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/d0d7abff15f3f3fd52e5de620b2bd3a2/base.ipynb b/code_book/_build/.jupyter_cache/executed/d0d7abff15f3f3fd52e5de620b2bd3a2/base.ipynb new file mode 100644 index 0000000..0268785 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/d0d7abff15f3f3fd52e5de620b2bd3a2/base.ipynb @@ -0,0 +1,162 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "from scipy.linalg import expm\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "Q = ((-3, 2, 1),\n", + " (3, -5, 2),\n", + " (4, 6, -10))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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BZcfahKPx6quX09dOz0xUi8cSmCtJd/fx+l3jzLw+gFGPzxOfnSYMAjw29tJdW7GS7cyFl/L7n89xn/u/1suvnjtpP92Ddg8GhSY80/BKSILpXSH95mmtit3cFduHJuq3rra2rTnOWVhnEz6JOIuK7wRVgU9rMwcJ2UGsS0rMSs24LSu4X97VpEJLK+88tVJu7UbsLUXTBGY6ic1B47j4Ps+nucRBIGCU0TmTTSNGR2Z2dGxONOZhR3elfXNZWvMI1mGe3sZ7T9F3vjkEivZEng4DuTzeVwXuru7eeqpp9i5cydXXHHForz2xVA3gbl79246Ozu58847l/qllLn88st55JFHuOCCC6Z8juM4xGIxfN9XcIpIw3Ich3g82onc3j7dMyeXkvT29vLwwz9j7969pFIpvvKVr3Duuecu2GtdCnXxbt7X18djjz3G7bffDsBPfvITLrvsMhKJBLfddlvN9+nv7+eGG24gnU6zZcsWnnzyyTlfd9ddd7Fnz56a7lMIzpaWlmKRbhiGxcPdRUSa1QMPPIC1lieeeIJ9+/Zx66230tbWVjyruxnUxRrmD3/4Q44ePcqDDz4IwNNPP43ruuzfv5+xsTEeffTRmu6za9cujDE89NBDHDx4kC996Uu89NJL044Oz3RdJpOhq6uLI0eOsGHD1LVG1VhriyNOY8yUjapFRJpBIU8Kp/t4nofv+/i+32izbVXfqOviN3j22We58sori1/feOONXH/99axevbrme4yMjLB3717uueceWltb+fznP8+1117L448/PqfrkskkO3bs4Pnnn5/x71U54oRoAfwM/0gREWkohQ2Qhdm0eDxOOp2mpaWl0fpgTqsufovDhw+zbdu2Od3j6NGjeJ7H1q1bi49t376dI0eOzPm68847j0OHDs36tZUGZ6EWScEpIo2sWki2tLQ0XUiWqotNPwMDA7S1zbyLd6nTp0/TXrFK3d7ezvDw8Jyva2tro6enZ06vD6beHKSpWhFpBIWp1sJhBPF4vDjduhzew+oiMFeuXHnGYDuT1tZWhoaGyh4bGho6YxDXct3w8DAdHR1zen2lFJwi0igKAVlQWJP0vOY9LnAqdTFmvuiiizh69Oic7rF161aCIODtt98uPnbo0KEzbvip5bo333yT7du3z+n1VVNtjTMMQ03VisiSstZijClOuXqeRzKZJJ1O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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def unit_simplex(angle):\n", + " \n", + " fig = plt.figure(figsize=(8, 6))\n", + " ax = fig.add_subplot(111, projection='3d')\n", + "\n", + " vtx = [[0, 0, 1],\n", + " [0, 1, 0], \n", + " [1, 0, 0]]\n", + " \n", + " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", + " tri.set_facecolor([0.5, 0.5, 1])\n", + " ax.add_collection3d(tri)\n", + "\n", + " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", + " xticks=(1,), yticks=(1,), zticks=(1,))\n", + "\n", + " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", + " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", + " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", + "\n", + " ax.xaxis.majorTicks[0].set_pad(15)\n", + " ax.yaxis.majorTicks[0].set_pad(15)\n", + " ax.zaxis.majorTicks[0].set_pad(35)\n", + "\n", + " ax.view_init(30, angle)\n", + "\n", + " # Move axis to origin\n", + " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", + " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", + " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", + " \n", + " ax.grid(False)\n", + " \n", + " return ax\n", + "\n", + "Q = np.array(Q)\n", + "ψ_00 = np.array((0.01, 0.01, 0.99))\n", + "ψ_01 = np.array((0.01, 0.99, 0.01))\n", + "ψ_02 = np.array((0.99, 0.01, 0.01))\n", + "\n", + "ax = unit_simplex(angle=50) \n", + "\n", + "def flow_plot(ψ, h=0.001, n=300, angle=50):\n", + " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", + "\n", + " x_vals, y_vals, z_vals = [], [], []\n", + " for t in range(n):\n", + " x_vals.append(ψ[0])\n", + " y_vals.append(ψ[1])\n", + " z_vals.append(ψ[2])\n", + " ψ = ψ @ expm(h * Q)\n", + "\n", + " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", + "\n", + "flow_plot(ψ_00)\n", + "flow_plot(ψ_01)\n", + "flow_plot(ψ_02)\n", + "\n", + "# Add stationary distribution\n", + "P_1 = expm(Q)\n", + "mc = qe.MarkovChain(P_1)\n", + "ψ = mc.stationary_distributions[0]\n", + "ax.scatter(ψ[0], ψ[1], ψ[2], c='k', s=30, depthshade=False)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 13, + 46, + 58, + 86, + 90, + 98, + 166 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/e180333dbedfca98ea3dea6dd1e90cef/base.ipynb b/code_book/_build/.jupyter_cache/executed/e180333dbedfca98ea3dea6dd1e90cef/base.ipynb new file mode 100644 index 0000000..7afeeb3 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/e180333dbedfca98ea3dea6dd1e90cef/base.ipynb @@ -0,0 +1,94 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "xmin, xmax = -10.0, 10.0\n", + "ymin, ymax = -5.0, 5.0\n", + "\n", + "\n", + "A1 = np.asarray([[0.55, -0.6],\n", + " [0.5, 0.4]])\n", + "\n", + "def f(x, y): \n", + " return A1 @ (x, y)\n", + "\n", + "def draw_arrow(x, y, ax):\n", + " eps = 0.75\n", + " v1, v2 = f(x, y)\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = eps / nrm\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.4,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", + "\n", + "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 8)\n", + "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 8)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.set_xlim(xmin, xmax)\n", + "ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " draw_arrow(x, y, ax)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + }, + "source_map": [ + 2, + 47 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/e60cf8228dbed3fa42cb364fc6b655db/base.ipynb b/code_book/_build/.jupyter_cache/executed/e60cf8228dbed3fa42cb364fc6b655db/base.ipynb new file mode 100644 index 0000000..cb5d9f0 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/e60cf8228dbed3fa42cb364fc6b655db/base.ipynb @@ -0,0 +1,219 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import quantecon as qe\n", + "from numba import njit\n", + "\n", + "from scipy.linalg import expm\n", + "from scipy.stats import binom\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def sim_path(T=10, seed=123, λ=0.5, α=0.7, b=10):\n", + " \"\"\"\n", + " Generate a path for inventory starting at b, up to time T.\n", + "\n", + " Return the path as a function X(t) constructed from (J_k) and (Y_k).\n", + " \"\"\"\n", + "\n", + " J, Y = 0, b\n", + " J_vals, Y_vals = [J], [Y]\n", + " np.random.seed(seed)\n", + "\n", + " while True:\n", + " W = np.random.exponential(scale=1/λ) # W ~ Exp(λ)\n", + " J += W\n", + " J_vals.append(J)\n", + " if J >= T:\n", + " break\n", + " # Update Y\n", + " if Y == 0:\n", + " Y = b\n", + " else:\n", + " U = np.random.geometric(α)\n", + " Y = Y - min(Y, U)\n", + " Y_vals.append(Y)\n", + " \n", + " Y_vals = np.array(Y_vals)\n", + " J_vals = np.array(J_vals)\n", + "\n", + " def X(t):\n", + " if t == 0.0:\n", + " return Y_vals[0]\n", + " else:\n", + " k = np.searchsorted(J_vals, t)\n", + " return Y_vals[k-1]\n", + "\n", + " return X" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "T = 20\n", + "X = sim_path(T=T)\n", + "\n", + "grid = np.linspace(0, T, 100)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.step(grid, [X(t) for t in grid], label=\"$X_t$\")\n", + "\n", + "ax.set(xlabel=\"time\", ylabel=\"inventory\")\n", + "\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "application/papermill.record/image/png": "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\n", + "application/papermill.record/text/plain": "
" + }, + "metadata": { + "scrapbook": { + "mime_prefix": "application/papermill.record/", + "name": "flow_fig" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "α = 0.6\n", + "λ = 0.5\n", + "b = 10\n", + "n = b + 1\n", + "states = np.arange(n)\n", + "I = np.identity(n)\n", + "\n", + "K = np.zeros((n, n))\n", + "K[0, -1] = 1\n", + "for i in range(1, n):\n", + " for j in range(0, i):\n", + " if j == 0:\n", + " K[i, j] = (1 - α)**(i-1)\n", + " else:\n", + " K[i, j] = α * (1 - α)**(i-j-1)\n", + "\n", + "\n", + "def P_t(ψ, t):\n", + " return ψ @ expm(t * λ * (K - I))\n", + "\n", + "def plot_distribution_dynamics(ax, ψ_0, steps=200, step_size=0.1):\n", + " ψ = ψ_0\n", + " t = 0.0\n", + " colors = cm.jet_r(np.linspace(0.0, 1, steps))\n", + "\n", + " for i in range(steps):\n", + " ax.bar(states, ψ, zs=t, zdir='y', \n", + " color=colors[i], alpha=0.8, width=0.4)\n", + " ψ = P_t(ψ, t=step_size)\n", + " t += step_size\n", + "\n", + " ax.set_xlabel('inventory')\n", + " ax.set_ylabel('$t$')\n", + "\n", + "\n", + "ψ_0 = binom.pmf(states, n, 0.25)\n", + "fig = plt.figure(figsize=(8, 6))\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "plot_distribution_dynamics(ax, ψ_0)\n", + "\n", + "from myst_nb import glue\n", + "glue(\"flow_fig\", fig, display=False)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + }, + "source_map": [ + 13, + 78, + 91, + 563, + 600, + 604, + 617, + 1041 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/ea07c70b3aaf779f8ff59260f515e811/base.ipynb b/code_book/_build/.jupyter_cache/executed/ea07c70b3aaf779f8ff59260f515e811/base.ipynb new file mode 100644 index 0000000..f81f0b8 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/ea07c70b3aaf779f8ff59260f515e811/base.ipynb @@ -0,0 +1,217 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import quantecon as qe\n", + "from numba import njit\n", + "\n", + "from scipy.linalg import expm\n", + "from scipy.stats import binom" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "α = 0.6\n", + "λ = 0.5\n", + "γ = 0.1\n", + "b = 10" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "@njit\n", + "def draw_X(T, X_0, max_iter=5000):\n", + " \"\"\"\n", + " Generate one draw of X_T given X_0.\n", + " \"\"\"\n", + "\n", + " J, Y = 0, X_0\n", + " m = 0\n", + "\n", + " while m < max_iter:\n", + " s = 1/γ if Y == 0 else 1/λ\n", + " W = np.random.exponential(scale=s) # W ~ E(λ)\n", + " J += W\n", + " if J >= T:\n", + " return Y\n", + " # Otherwise update Y\n", + " if Y == 0:\n", + " Y = b\n", + " else:\n", + " U = np.random.geometric(α)\n", + " Y = Y - min(Y, U)\n", + " m += 1\n", + "\n", + "\n", + "@njit\n", + "def independent_draws(T=10, num_draws=100):\n", + " \"Generate a vector of independent draws of X_T.\"\n", + "\n", + " draws = np.empty(num_draws, dtype=np.int64)\n", + "\n", + " for i in range(num_draws):\n", + " X_0 = np.random.binomial(b+1, 0.25)\n", + " draws[i] = draw_X(T, X_0)\n", + "\n", + " return draws" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "T = 30\n", + "n = b + 1 \n", + "draws = independent_draws(T, num_draws=100_000)\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.bar(range(n), [np.mean(draws == i) for i in range(n)], width=0.8, alpha=0.6)\n", + "ax.set_xlabel(\"inventory\", fontsize=14)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "α = 0.6\n", + "λ = 0.5\n", + "γ = 0.1\n", + "b = 10" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "states = np.arange(n)\n", + "I = np.identity(n)\n", + "\n", + "# Embedded jump chain matrix\n", + "K = np.zeros((n, n))\n", + "K[0, -1] = 1\n", + "for i in range(1, n):\n", + " for j in range(0, i):\n", + " if j == 0:\n", + " K[i, j] = (1 - α)**(i-1)\n", + " else:\n", + " K[i, j] = α * (1 - α)**(i-j-1)\n", + "\n", + "# Jump intensities as a function of the state\n", + "r = np.ones(n) * λ\n", + "r[0] = γ\n", + "\n", + "# Q matrix\n", + "Q = np.empty_like(K)\n", + "for i in range(n):\n", + " for j in range(n):\n", + " Q[i, j] = r[i] * (K[i, j] - I[i, j])\n", + "\n", + "def P_t(ψ, t):\n", + " return ψ @ expm(t * Q)\n", + "\n", + "ψ_0 = binom.pmf(states, n, 0.25)\n", + "ψ_T = P_t(ψ_0, T)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.bar(range(n), ψ_T, width=0.8, alpha=0.6)\n", + "ax.set_xlabel(\"inventory\", fontsize=14)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + }, + "source_map": [ + 13, + 41, + 50, + 425, + 430, + 440, + 478, + 488, + 504, + 509, + 536, + 572 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/f17685b4e22655fb8eade8a9c339e2a9/base.ipynb b/code_book/_build/.jupyter_cache/executed/f17685b4e22655fb8eade8a9c339e2a9/base.ipynb new file mode 100644 index 0000000..aa9b0c7 --- /dev/null +++ b/code_book/_build/.jupyter_cache/executed/f17685b4e22655fb8eade8a9c339e2a9/base.ipynb @@ -0,0 +1,209 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import quantecon as qe\n", + "from numba import njit\n", + "\n", + "from scipy.linalg import expm\n", + "from scipy.stats import binom\n", + "\n", + "from matplotlib import cm\n", + "from mpl_toolkits.mplot3d import Axes3D" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def sim_path(T=10, seed=123, λ=0.5, α=0.7, b=10):\n", + " \"\"\"\n", + " Generate a path for inventory starting at b, up to time T.\n", + "\n", + " Return the path as a function X(t) constructed from (J_k) and (Y_k).\n", + " \"\"\"\n", + "\n", + " J, Y = 0, b\n", + " J_vals, Y_vals = [J], [Y]\n", + " np.random.seed(seed)\n", + "\n", + " while True:\n", + " W = np.random.exponential(scale=1/λ) # W ~ E(λ)\n", + " J += W\n", + " J_vals.append(J)\n", + " if J >= T:\n", + " break\n", + " # Update Y\n", + " if Y == 0:\n", + " Y = b\n", + " else:\n", + " U = np.random.geometric(α)\n", + " Y = Y - min(Y, U)\n", + " Y_vals.append(Y)\n", + " \n", + " Y_vals = np.array(Y_vals)\n", + " J_vals = np.array(J_vals)\n", + "\n", + " def X(t):\n", + " if t == 0.0:\n", + " return Y_vals[0]\n", + " else:\n", + " k = np.searchsorted(J_vals, t)\n", + " return Y_vals[k-1]\n", + "\n", + " return X" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "T = 20\n", + "X = sim_path(T=T)\n", + "\n", + "grid = np.linspace(0, T, 100)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.step(grid, [X(t) for t in grid], label=\"$X_t$\")\n", + "\n", + "ax.set(xlabel=\"time\", ylabel=\"inventory\")\n", + "\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "application/papermill.record/image/png": "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\n", + "application/papermill.record/text/plain": "
" + }, + "metadata": { + "scrapbook": { + "mime_prefix": "application/papermill.record/", + "name": "flow_fig" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "α = 0.6\n", + "λ = 0.5\n", + "b = 10\n", + "n = b + 1\n", + "states = np.arange(n)\n", + "I = np.identity(n)\n", + "\n", + "K = np.zeros((n, n))\n", + "K[0, -1] = 1\n", + "for i in range(1, n):\n", + " for j in range(0, i):\n", + " if j == 0:\n", + " K[i, j] = (1 - α)**(i-1)\n", + " else:\n", + " K[i, j] = α * (1 - α)**(i-j-1)\n", + "\n", + "\n", + "def P_t(ψ, t):\n", + " return ψ @ expm(t * λ * (K - I))\n", + "\n", + "def plot_distribution_dynamics(ax, ψ_0, steps=200, step_size=0.1):\n", + " ψ = ψ_0\n", + " t = 0.0\n", + " colors = cm.jet_r(np.linspace(0.0, 1, steps))\n", + "\n", + " for i in range(steps):\n", + " ax.bar(states, ψ, zs=t, zdir='y', \n", + " color=colors[i], alpha=0.8, width=0.4)\n", + " ψ = P_t(ψ, t=step_size)\n", + " t += step_size\n", + "\n", + " ax.set_xlabel('inventory')\n", + " ax.set_ylabel('$t$')\n", + "\n", + "\n", + "ψ_0 = binom.pmf(states, n, 0.25)\n", + "fig = plt.figure(figsize=(8, 6))\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "plot_distribution_dynamics(ax, ψ_0)\n", + "\n", + "from myst_nb import glue\n", + "glue(\"flow_fig\", fig, display=False)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": "0.9", + "jupytext_version": "1.5.0" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/global.db b/code_book/_build/.jupyter_cache/global.db new file mode 100644 index 0000000000000000000000000000000000000000..a57f701f188578401d4aab42d93b1cb0334d502b GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/code_book/_build/html/.buildinfo b/code_book/_build/html/.buildinfo new file mode 100644 index 0000000..3005264 --- /dev/null +++ b/code_book/_build/html/.buildinfo @@ -0,0 +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: acc147b02162f445beb0ab2df4e0e3f4 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/code_book/_build/html/_images/ch4_1_0.png b/code_book/_build/html/_images/ch4_1_0.png new file mode 100644 index 0000000000000000000000000000000000000000..1efe62508250859334b9c3339302efad5338b758 GIT binary patch literal 80306 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 TNBgfx@}v0(oZfCIuW~%8k7sf=!M0~ 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 literal 0 HcmV?d00001 diff --git a/code_book/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css b/code_book/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css new file mode 100644 index 0000000..fc14abc --- /dev/null +++ b/code_book/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css @@ -0,0 +1 @@ +details.dropdown .summary-title{padding-right:3em !important;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}details.dropdown:hover{cursor:pointer}details.dropdown .summary-content{cursor:default}details.dropdown summary{list-style:none;padding:1em}details.dropdown summary .octicon.no-title{vertical-align:middle}details.dropdown[open] summary .octicon.no-title{visibility:hidden}details.dropdown summary::-webkit-details-marker{display:none}details.dropdown summary:focus{outline:none}details.dropdown summary:hover .summary-up svg,details.dropdown summary:hover .summary-down svg{opacity:1}details.dropdown .summary-up svg,details.dropdown .summary-down svg{display:block;opacity:.6}details.dropdown .summary-up,details.dropdown .summary-down{pointer-events:none;position:absolute;right:1em;top:.75em}details.dropdown[open] .summary-down{visibility:hidden}details.dropdown:not([open]) .summary-up{visibility:hidden}details.dropdown.fade-in[open] summary~*{-moz-animation:panels-fade-in .5s ease-in-out;-webkit-animation:panels-fade-in .5s ease-in-out;animation:panels-fade-in .5s ease-in-out}details.dropdown.fade-in-slide-down[open] summary~*{-moz-animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out;-webkit-animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out;animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out}@keyframes panels-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes panels-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.octicon{display:inline-block;fill:currentColor;vertical-align:text-top}.tabbed-content{box-shadow:0 -.0625rem var(--tabs-color-overline),0 .0625rem var(--tabs-color-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.tabbed-content>:first-child{margin-top:0 !important}.tabbed-content>:last-child{margin-bottom:0 !important}.tabbed-content>.tabbed-set{margin:0}.tabbed-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.tabbed-set>input{opacity:0;position:absolute}.tabbed-set>input:checked+label{border-color:var(--tabs-color-label-active);color:var(--tabs-color-label-active)}.tabbed-set>input:checked+label+.tabbed-content{display:block}.tabbed-set>input:focus+label{outline-style:auto}.tabbed-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.tabbed-set>label{border-bottom:.125rem solid transparent;color:var(--tabs-color-label-inactive);cursor:pointer;font-size:var(--tabs-size-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .tabbed-set>label:hover{color:var(--tabs-color-label-active)} diff --git a/code_book/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css b/code_book/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css new file mode 100644 index 0000000..adc6166 --- /dev/null +++ b/code_book/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css @@ -0,0 +1,7 @@ +:root { +--tabs-color-label-active: hsla(231, 99%, 66%, 1); +--tabs-color-label-inactive: rgba(178, 206, 245, 0.62); +--tabs-color-overline: rgb(207, 236, 238); +--tabs-color-underline: rgb(207, 236, 238); +--tabs-size-label: 1rem; +} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch1.ipynb b/code_book/_build/html/_sources/ch1.ipynb new file mode 100644 index 0000000..2a4224f --- /dev/null +++ b/code_book/_build/html/_sources/ch1.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1 Code\n", + "\n", + "No code in this chapter." + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 14 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch1.md b/code_book/_build/html/_sources/ch1.md new file mode 100644 index 0000000..994a069 --- /dev/null +++ b/code_book/_build/html/_sources/ch1.md @@ -0,0 +1,18 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 1 Code + +No code in this chapter. diff --git a/code_book/_build/html/_sources/ch2.ipynb b/code_book/_build/html/_sources/ch2.ipynb new file mode 100644 index 0000000..a12e0f5 --- /dev/null +++ b/code_book/_build/html/_sources/ch2.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 Code\n", + "\n", + "To be added." + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 14 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch2.md b/code_book/_build/html/_sources/ch2.md new file mode 100644 index 0000000..06f989a --- /dev/null +++ b/code_book/_build/html/_sources/ch2.md @@ -0,0 +1,18 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 2 Code + +To be added. diff --git a/code_book/_build/html/_sources/ch3.ipynb b/code_book/_build/html/_sources/ch3.ipynb new file mode 100644 index 0000000..e43d556 --- /dev/null +++ b/code_book/_build/html/_sources/ch3.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 3 Code\n", + "\n", + "No code used in this chapter." + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 14 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch3.md b/code_book/_build/html/_sources/ch3.md new file mode 100644 index 0000000..7af94f4 --- /dev/null +++ b/code_book/_build/html/_sources/ch3.md @@ -0,0 +1,18 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 3 Code + +No code used in this chapter. diff --git a/code_book/_build/html/_sources/ch4.ipynb b/code_book/_build/html/_sources/ch4.ipynb new file mode 100644 index 0000000..5f298e1 --- /dev/null +++ b/code_book/_build/html/_sources/ch4.ipynb @@ -0,0 +1,120 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4 Code" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "

" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_1_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "xmin, xmax = -10.0, 10.0\n", + "ymin, ymax = -5.0, 5.0\n", + "\n", + "\n", + "A1 = np.asarray([[0.55, -0.6],\n", + " [0.5, 0.4]])\n", + "\n", + "def f(x, y): \n", + " return A1 @ (x, y)\n", + "\n", + "def draw_arrow(x, y, ax):\n", + " eps = 1.0\n", + " v1, v2 = f(x, y)\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = eps / nrm\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.4,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", + "\n", + "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20)\n", + "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.set_xlim(xmin, xmax)\n", + "ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " draw_arrow(x, y, ax)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + }, + "source_map": [ + 14, + 18, + 63 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch4.md b/code_book/_build/html/_sources/ch4.md new file mode 100644 index 0000000..d12033c --- /dev/null +++ b/code_book/_build/html/_sources/ch4.md @@ -0,0 +1,65 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 4 Code + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt + +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + + +A1 = np.asarray([[0.55, -0.6], + [0.5, 0.4]]) + +def f(x, y): + return A1 @ (x, y) + +def draw_arrow(x, y, ax): + eps = 1.0 + v1, v2 = f(x, y) + nrm = np.sqrt(v1**2 + v2**2) + scale = eps / nrm + ax.arrow(x, y, scale * v1, scale * v2, + antialiased=True, + alpha=0.4, + head_length=0.025*(xmax - xmin), + head_width=0.012*(xmax - xmin), + fill=False) + +xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20) +ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20) + +fig, ax = plt.subplots() + +ax.set_xlim(xmin, xmax) +ax.set_ylim(ymin, ymax) + +ax.set_xticks((0,)) +ax.set_yticks((0,)) +ax.grid() + +for x in xgrid: + for y in ygrid: + draw_arrow(x, y, ax) + +plt.show() +``` + +```{code-cell} ipython3 + +``` diff --git a/code_book/_build/html/_sources/intro.md b/code_book/_build/html/_sources/intro.md new file mode 100644 index 0000000..c40b3cf --- /dev/null +++ b/code_book/_build/html/_sources/intro.md @@ -0,0 +1,35 @@ +Economic Dynamics Python Code +============================= + +**Author**: [John Stachurski](https://johnstachurski.net/) + +This lecture series provides a short introduction to the field of continuous +time Markov chains. Focus is shared between theory, applications and +computation. Mathematical ideas are combined with computer code to help +clarify and build intuition, as well as to bridge the gap between theory and +applications. + +The presentation is relatively rigorous but the aim is towards applications +rather than mathematical curiosities (which are plentiful, if one starts to +look). Applications are drawn from economics, finance and operations +research. + + + +```{admonition} Computer code + +The code is written in Python and is accelerated through a combination of +[NumPy](https://numpy.org/) (vectorized code) and just-in-time compilation +(via [Numba](http://numba.pydata.org/)). + +QuantEcon provides a fast-paced [introduction to scientific computing with +Python](https://python-programming.quantecon.org/) that covers these topics. +``` + + + + +``` + + +The code book is written using [Jupyter Book](https://jupyterbook.org/intro.html). diff --git a/code_book/_build/html/_static/__init__.py b/code_book/_build/html/_static/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/code_book/_build/html/_static/__pycache__/__init__.cpython-38.pyc b/code_book/_build/html/_static/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..67c02498246b2bca7c13f27380fe499263de9fbe GIT binary patch literal 176 zcmWIL<>g`k0;3hT6F~H15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_$enx(7s(w~} zMxK6RUSe{7UP_{|eokhRenDkPMt+{Lo`rsKW=X1UL1J=tVtQ(^esMuYW?n^nQht7R sd`U(sP;+rfVo7GQetdjpUS>&ryk0@&Ee@O9{FKt1R6CG$pMjVG0Ez)EUjP6A literal 0 HcmV?d00001 diff --git a/code_book/_build/html/_static/basic.css b/code_book/_build/html/_static/basic.css new file mode 100644 index 0000000..616111c --- /dev/null +++ b/code_book/_build/html/_static/basic.css @@ -0,0 +1,855 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 270px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +dl.footnote > dt, +dl.citation > dt { + float: left; + margin-right: 0.5em; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dt:after { + content: ":"; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0.5em; + content: ":"; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/code_book/_build/html/_static/check-solid.svg b/code_book/_build/html/_static/check-solid.svg new file mode 100644 index 0000000..9cbca86 --- /dev/null +++ b/code_book/_build/html/_static/check-solid.svg @@ -0,0 +1,4 @@ + + + + diff --git a/code_book/_build/html/_static/clipboard.min.js b/code_book/_build/html/_static/clipboard.min.js new file mode 100644 index 0000000..02c549e --- /dev/null +++ b/code_book/_build/html/_static/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.4 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n + + + + diff --git a/code_book/_build/html/_static/copybutton.css b/code_book/_build/html/_static/copybutton.css new file mode 100644 index 0000000..3a863dd --- /dev/null +++ b/code_book/_build/html/_static/copybutton.css @@ -0,0 +1,69 @@ +/* Copy buttons */ +button.copybtn { + position: absolute; + top: .3em; + right: .5em; + width: 1.7rem; + height: 1.7rem; + opacity: 0; + transition: opacity 0.3s, border .3s; + user-select: none; + padding: 0; + border: none; + outline: none; +} + +button.copybtn img { + width: 100%; +} + +div.highlight { + position: relative; +} + +.highlight:hover button.copybtn { + opacity: .7; +} + +.highlight button.copybtn:hover { + opacity: 1; +} + +/** + * A minimal CSS-only tooltip copied from: + * https://codepen.io/mildrenben/pen/rVBrpK + * + * To use, write HTML like the following: + * + *

Short

+ */ + .o-tooltip--left { + position: relative; + } + + .o-tooltip--left:after { + opacity: 0; + visibility: hidden; + position: absolute; + content: attr(data-tooltip); + padding: 2px; + top: 0; + left: -.2em; + background: grey; + font-size: 1rem; + color: white; + white-space: nowrap; + z-index: 2; + border-radius: 2px; + transform: translateX(-102%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); +} + +.o-tooltip--left:hover:after { + display: block; + opacity: 1; + visibility: visible; + transform: translateX(-100%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); + transition-delay: .5s; +} diff --git a/code_book/_build/html/_static/copybutton.js b/code_book/_build/html/_static/copybutton.js new file mode 100644 index 0000000..c4a9f92 --- /dev/null +++ b/code_book/_build/html/_static/copybutton.js @@ -0,0 +1,196 @@ +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copié dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +const path_static = `${doc_url_root}_static/`; + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for two seconds, then changes it back +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + setTimeout(() => el.setAttribute('data-tooltip', oldText), 2000) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + img = el.querySelector("img"); + img.setAttribute('src', `${path_static}check-solid.svg`) + setTimeout(() => img.setAttribute('src', `${path_static}copy-button.svg`), 2000) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const codeCells = document.querySelectorAll('div.highlight pre') + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + const pre_bg = getComputedStyle(codeCell).backgroundColor; + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + return formatCopyText(target.innerText, '', false, true, true, true, '', '') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + +runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/code_book/_build/html/_static/copybutton_funcs.js b/code_book/_build/html/_static/copybutton_funcs.js new file mode 100644 index 0000000..b9168c5 --- /dev/null +++ b/code_book/_build/html/_static/copybutton_funcs.js @@ -0,0 +1,58 @@ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} diff --git a/code_book/_build/html/_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css b/code_book/_build/html/_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css new file mode 100644 index 0000000..655656d --- /dev/null +++ b/code_book/_build/html/_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v4.5.0 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:540px;--breakpoint-md:720px;--breakpoint-lg:960px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;line-height:1.5;color:#212529;text-align:left}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;background-color:transparent}a:hover{color:#0056b3}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\00A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:540px){.container{max-width:540px}}@media (min-width:720px){.container{max-width:720px}}@media (min-width:960px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1400px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:540px){.container,.container-sm{max-width:540px}}@media (min-width:720px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:960px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1400px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:540px){.col-sm{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:720px){.col-md{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:960px){.col-lg{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:539.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:719.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:959.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:540px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:540px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:720px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:960px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat 50%;background-size:100% 100%}@media (max-width:539.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:540px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:719.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:720px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:959.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:960px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0,0,0,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255,255,255,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:540px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:540px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:540px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb,.breadcrumb-item{display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:540px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:540px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:720px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:960px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:540px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:min-content}.modal-sm{max-width:300px}}@media (min-width:960px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:540px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:720px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:960px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.85714%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:720px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:960px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:540px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:720px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:960px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:540px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:720px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:960px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:540px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:720px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:960px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:960px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}html{font-size:var(--pst-font-size-base);scroll-padding-top:calc(var(--pst-header-height) + 12px)}body{padding-top:calc(var(--pst-header-height) + 20px);background-color:#fff;font-family:var(--pst-font-family-base);font-weight:400;line-height:1.65;color:rgba(var(--pst-color-text-base),1)}p{margin-bottom:1.15rem;font-size:1em;color:rgba(var(--pst-color-paragraph),1)}p.rubric{border-bottom:1px solid #c9c9c9}a{color:rgba(var(--pst-color-link),1);text-decoration:none}a:hover{color:rgba(var(--pst-color-link-hover),1);text-decoration:underline}a.headerlink{color:rgba(var(--pst-color-headerlink),1);font-size:.8em;padding:0 4px;text-decoration:none}a.headerlink:hover{background-color:rgba(var(--pst-color-headerlink),1);color:rgba(var(--pst-color-headerlink-hover),1)}.heading-style,h1,h2,h3,h4,h5,h6{margin:2.75rem 0 1.05rem;font-family:var(--pst-font-family-heading);font-weight:400;line-height:1.15}h1{margin-top:0;font-size:var(--pst-font-size-h1);color:rgba(var(--pst-color-h1),1)}h2{font-size:var(--pst-font-size-h2);color:rgba(var(--pst-color-h2),1)}h3{font-size:var(--pst-font-size-h3);color:rgba(var(--pst-color-h3),1)}h4{font-size:var(--pst-font-size-h4);color:rgba(var(--pst-color-h4),1)}h5{font-size:var(--pst-font-size-h5);color:rgba(var(--pst-color-h5),1)}h6{font-size:var(--pst-font-size-h6);color:rgba(var(--pst-color-h6),1)}.text_small,small{font-size:var(--pst-font-size-milli)}hr{border:0;border-top:1px solid #e5e5e5}code,kbd,pre,samp{font-family:var(--pst-font-family-monospace)}code{color:rgba(var(--pst-color-inline-code),1)}pre{margin:1.5em 0;padding:10px;background-color:rgba(var(--pst-color-preformatted-background),1);color:rgba(var(--pst-color-preformatted-text),1);line-height:1.2em;border:1px solid #c9c9c9;box-shadow:1px 1px 1px #d8d8d8}.navbar{position:fixed;min-height:var(--pst-header-height);width:100%;padding:0}.navbar .container-xl{height:100%}@media (min-width:960px){.navbar #navbar-end>.navbar-end-item{display:inline-block}}.navbar-brand{position:relative;height:var(--pst-header-height);width:auto;padding:.5rem 0}.navbar-brand img{max-width:100%;height:100%;width:auto}.navbar-light{background:#fff!important;box-shadow:0 .125rem .25rem 0 rgba(0,0,0,.11)}.navbar-light .navbar-nav li a.nav-link{padding:0 .5rem;color:rgba(var(--pst-color-navbar-link),1)}.navbar-light .navbar-nav li a.nav-link:hover{color:rgba(var(--pst-color-navbar-link-hover),1)}.navbar-light .navbar-nav>.active>.nav-link{font-weight:600;color:rgba(var(--pst-color-navbar-link-active),1)}.navbar-header a{padding:0 15px}.admonition{margin:1.5625em auto;padding:0 .6rem .8rem!important;overflow:hidden;page-break-inside:avoid;border-left:.2rem solid;border-left-color:rgba(var(--pst-color-admonition-default),1);border-bottom-color:rgba(var(--pst-color-admonition-default),1);border-right-color:rgba(var(--pst-color-admonition-default),1);border-top-color:rgba(var(--pst-color-admonition-default),1);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);transition:color .25s,background-color .25s,border-color .25s}.admonition :last-child{margin-bottom:0}.admonition p.admonition-title~*{padding:0 1.4rem}.admonition>ol,.admonition>ul{margin-left:1em}.admonition .admonition-title{position:relative;margin:0 -.6rem!important;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(var(--pst-color-admonition-default),.1)}.admonition .admonition-title:before{position:absolute;left:.6rem;width:1rem;height:1rem;color:rgba(var(--pst-color-admonition-default),1);font-family:Font Awesome\ 5 Free;font-weight:900;content:var(--pst-icon-admonition-default)}.admonition .admonition-title+*{margin-top:.4em}.admonition.attention{border-color:rgba(var(--pst-color-admonition-attention),1)}.admonition.attention .admonition-title{background-color:rgba(var(--pst-color-admonition-attention),.1)}.admonition.attention .admonition-title:before{color:rgba(var(--pst-color-admonition-attention),1);content:var(--pst-icon-admonition-attention)}.admonition.caution{border-color:rgba(var(--pst-color-admonition-caution),1)}.admonition.caution .admonition-title{background-color:rgba(var(--pst-color-admonition-caution),.1)}.admonition.caution .admonition-title:before{color:rgba(var(--pst-color-admonition-caution),1);content:var(--pst-icon-admonition-caution)}.admonition.warning{border-color:rgba(var(--pst-color-admonition-warning),1)}.admonition.warning .admonition-title{background-color:rgba(var(--pst-color-admonition-warning),.1)}.admonition.warning .admonition-title:before{color:rgba(var(--pst-color-admonition-warning),1);content:var(--pst-icon-admonition-warning)}.admonition.danger{border-color:rgba(var(--pst-color-admonition-danger),1)}.admonition.danger .admonition-title{background-color:rgba(var(--pst-color-admonition-danger),.1)}.admonition.danger .admonition-title:before{color:rgba(var(--pst-color-admonition-danger),1);content:var(--pst-icon-admonition-danger)}.admonition.error{border-color:rgba(var(--pst-color-admonition-error),1)}.admonition.error .admonition-title{background-color:rgba(var(--pst-color-admonition-error),.1)}.admonition.error .admonition-title:before{color:rgba(var(--pst-color-admonition-error),1);content:var(--pst-icon-admonition-error)}.admonition.hint{border-color:rgba(var(--pst-color-admonition-hint),1)}.admonition.hint .admonition-title{background-color:rgba(var(--pst-color-admonition-hint),.1)}.admonition.hint .admonition-title:before{color:rgba(var(--pst-color-admonition-hint),1);content:var(--pst-icon-admonition-hint)}.admonition.tip{border-color:rgba(var(--pst-color-admonition-tip),1)}.admonition.tip .admonition-title{background-color:rgba(var(--pst-color-admonition-tip),.1)}.admonition.tip .admonition-title:before{color:rgba(var(--pst-color-admonition-tip),1);content:var(--pst-icon-admonition-tip)}.admonition.important{border-color:rgba(var(--pst-color-admonition-important),1)}.admonition.important .admonition-title{background-color:rgba(var(--pst-color-admonition-important),.1)}.admonition.important .admonition-title:before{color:rgba(var(--pst-color-admonition-important),1);content:var(--pst-icon-admonition-important)}.admonition.note{border-color:rgba(var(--pst-color-admonition-note),1)}.admonition.note .admonition-title{background-color:rgba(var(--pst-color-admonition-note),.1)}.admonition.note .admonition-title:before{color:rgba(var(--pst-color-admonition-note),1);content:var(--pst-icon-admonition-note)}div.deprecated{margin-bottom:10px;margin-top:10px;padding:7px;background-color:#f3e5e5;border:1px solid #eed3d7;border-radius:.5rem}div.deprecated p{color:#b94a48;display:inline}.topic{background-color:#eee}.seealso dd{margin-top:0;margin-bottom:0}.viewcode-back{font-family:var(--pst-font-family-base)}.viewcode-block:target{background-color:#f4debf;border-top:1px solid #ac9;border-bottom:1px solid #ac9}span.guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}table.field-list{border-collapse:separate;border-spacing:10px;margin-left:1px}table.field-list th.field-name{padding:1px 8px 1px 5px;white-space:nowrap;background-color:#eee}table.field-list td.field-body p{font-style:italic}table.field-list td.field-body p>strong{font-style:normal}table.field-list td.field-body blockquote{border-left:none;margin:0 0 .3em;padding-left:30px}.table.autosummary td:first-child{white-space:nowrap}footer{width:100%;border-top:1px solid #ccc;padding:10px}footer .footer-item p{margin-bottom:0}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px}.bd-search .icon{position:absolute;color:#a4a6a7;left:25px;top:25px}.bd-search input{border-radius:0;border:0;border-bottom:1px solid #e5e5e5;padding-left:35px}.bd-toc{-ms-flex-order:2;order:2;height:calc(100vh - 2rem);overflow-y:auto}@supports (position:-webkit-sticky) or (position:sticky){.bd-toc{position:-webkit-sticky;position:sticky;top:calc(var(--pst-header-height) + 20px);height:calc(100vh - 5rem);overflow-y:auto}}.bd-toc .onthispage{color:#a4a6a7}.section-nav{padding-left:0;border-left:1px solid #eee;border-bottom:none}.section-nav ul{padding-left:1rem}.toc-entry,.toc-entry a{display:block}.toc-entry a{padding:.125rem 1.5rem;color:rgba(var(--pst-color-toc-link),1)}@media (min-width:1200px){.toc-entry a{padding-right:0}}.toc-entry a:hover{color:rgba(var(--pst-color-toc-link-hover),1);text-decoration:none}.bd-sidebar{padding-top:1em}@media (min-width:720px){.bd-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports (position:-webkit-sticky) or (position:sticky){.bd-sidebar{position:-webkit-sticky;position:sticky;top:calc(var(--pst-header-height) + 20px);z-index:1000;height:calc(100vh - var(--pst-header-height) - 20px)}}}.bd-sidebar.no-sidebar{border-right:0}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:720px){.bd-links{display:block!important}@supports (position:-webkit-sticky) or (position:sticky){.bd-links{max-height:calc(100vh - 11rem);overflow-y:auto}}}.bd-sidenav{display:none}.bd-content{padding-top:20px}.bd-content .section{max-width:100%}.bd-content .section table{display:block;overflow:auto}.bd-toc-link{display:block;padding:.25rem 1.5rem;font-weight:600;color:rgba(0,0,0,.65)}.bd-toc-link:hover{color:rgba(0,0,0,.85);text-decoration:none}.bd-toc-item.active{margin-bottom:1rem}.bd-toc-item.active:not(:first-child){margin-top:1rem}.bd-toc-item.active>.bd-toc-link{color:rgba(0,0,0,.85)}.bd-toc-item.active>.bd-toc-link:hover{background-color:transparent}.bd-toc-item.active>.bd-sidenav{display:block}nav.bd-links p.caption{font-size:var(--pst-sidebar-caption-font-size);text-transform:uppercase;font-weight:700;position:relative;margin-top:1.25em;margin-bottom:.5em;padding:0 1.5rem;color:rgba(var(--pst-color-sidebar-caption),1)}nav.bd-links p.caption:first-child{margin-top:0}.bd-sidebar .nav{font-size:var(--pst-sidebar-font-size)}.bd-sidebar .nav ul{list-style:none;padding:0 0 0 1.5rem}.bd-sidebar .nav li>a{display:block;padding:.25rem 1.5rem;color:rgba(var(--pst-color-sidebar-link),1)}.bd-sidebar .nav li>a:hover{color:rgba(var(--pst-color-sidebar-link-hover),1);text-decoration:none;background-color:transparent}.bd-sidebar .nav li>a.reference.external:after{font-family:Font Awesome\ 5 Free;font-weight:900;content:"\f35d";font-size:.75em;margin-left:.3em}.bd-sidebar .nav .active:hover>a,.bd-sidebar .nav .active>a{font-weight:600;color:rgba(var(--pst-color-sidebar-link-active),1)}.toc-h2{font-size:.85rem}.toc-h3{font-size:.75rem}.toc-h4{font-size:.65rem}.toc-entry>.nav-link.active{font-weight:600;color:#130654;color:rgba(var(--pst-color-toc-link-active),1);background-color:transparent;border-left:2px solid rgba(var(--pst-color-toc-link-active),1)}.nav-link:hover{border-style:none}#navbar-main-elements li.nav-item i{font-size:.7rem;padding-left:2px;vertical-align:middle}.bd-toc .nav .nav{display:none}.bd-toc .nav .nav.visible,.bd-toc .nav>.active>ul{display:block}.prev-next-bottom{margin:20px 0}.prev-next-bottom a.left-prev,.prev-next-bottom a.right-next{padding:10px;border:1px solid rgba(0,0,0,.2);max-width:45%;overflow-x:hidden;color:rgba(0,0,0,.65)}.prev-next-bottom a.left-prev{float:left}.prev-next-bottom a.left-prev:before{content:"<< "}.prev-next-bottom a.right-next{float:right}.prev-next-bottom a.right-next:after{content:" >>"}.alert{padding-bottom:0}.alert-info a{color:#e83e8c}#navbar-icon-links i.fa,#navbar-icon-links i.fab,#navbar-icon-links i.far,#navbar-icon-links i.fas{vertical-align:middle;font-style:normal;font-size:1.5rem;line-height:1.25}#navbar-icon-links i.fa-github-square:before{color:#333}#navbar-icon-links i.fa-twitter-square:before{color:#55acee}#navbar-icon-links i.fa-gitlab:before{color:#548}#navbar-icon-links i.fa-bitbucket:before{color:#0052cc}.tocsection{border-left:1px solid #eee;padding:.3rem 1.5rem}.tocsection i{padding-right:.5rem}.editthispage{padding-top:2rem}.editthispage a{color:#130754}.xr-wrap[hidden]{display:block!important}.toctree-checkbox{position:absolute;display:none}.toctree-checkbox~ul{display:none}.toctree-checkbox~label i{transform:rotate(0deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label i{transform:rotate(180deg)}.bd-sidebar li{position:relative}.bd-sidebar label{position:absolute;top:0;right:0;height:30px;width:30px;cursor:pointer;display:flex;justify-content:center;align-items:center}.bd-sidebar label:hover{background:rgba(var(--pst-color-sidebar-expander-background-hover),1)}.bd-sidebar label i{display:inline-block;font-size:.75rem;text-align:center}.bd-sidebar label i:hover{color:rgba(var(--pst-color-sidebar-link-hover),1)}.bd-sidebar li.has-children>.reference{padding-right:30px}div.doctest>div.highlight span.gp,span.linenos,table.highlighttable td.linenos{user-select:none!important;-webkit-user-select:text!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important} \ No newline at end of file diff --git a/code_book/_build/html/_static/css/theme.css b/code_book/_build/html/_static/css/theme.css new file mode 100644 index 0000000..3f6e79d --- /dev/null +++ b/code_book/_build/html/_static/css/theme.css @@ -0,0 +1,117 @@ +:root { + /***************************************************************************** + * Theme config + **/ + --pst-header-height: 60px; + + /***************************************************************************** + * Font size + **/ + --pst-font-size-base: 15px; /* base font size - applied at body / html level */ + + /* heading font sizes */ + --pst-font-size-h1: 36px; + --pst-font-size-h2: 32px; + --pst-font-size-h3: 26px; + --pst-font-size-h4: 21px; + --pst-font-size-h5: 18px; + --pst-font-size-h6: 16px; + + /* smaller then heading font sizes*/ + --pst-font-size-milli: 12px; + + --pst-sidebar-font-size: .9em; + --pst-sidebar-caption-font-size: .9em; + + /***************************************************************************** + * Font family + **/ + /* These are adapted from https://systemfontstack.com/ */ + --pst-font-family-base-system: -apple-system, BlinkMacSystemFont, Segoe UI, "Helvetica Neue", + Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; + --pst-font-family-monospace-system: "SFMono-Regular", Menlo, Consolas, Monaco, + Liberation Mono, Lucida Console, monospace; + + --pst-font-family-base: var(--pst-font-family-base-system); + --pst-font-family-heading: var(--pst-font-family-base); + --pst-font-family-monospace: var(--pst-font-family-monospace-system); + + /***************************************************************************** + * Color + * + * Colors are defined in rgb string way, "red, green, blue" + **/ + --pst-color-primary: 19, 6, 84; + --pst-color-success: 40, 167, 69; + --pst-color-info: 0, 123, 255; /*23, 162, 184;*/ + --pst-color-warning: 255, 193, 7; + --pst-color-danger: 220, 53, 69; + --pst-color-text-base: 51, 51, 51; + + --pst-color-h1: var(--pst-color-primary); + --pst-color-h2: var(--pst-color-primary); + --pst-color-h3: var(--pst-color-text-base); + --pst-color-h4: var(--pst-color-text-base); + --pst-color-h5: var(--pst-color-text-base); + --pst-color-h6: var(--pst-color-text-base); + --pst-color-paragraph: var(--pst-color-text-base); + --pst-color-link: 0, 91, 129; + --pst-color-link-hover: 227, 46, 0; + --pst-color-headerlink: 198, 15, 15; + --pst-color-headerlink-hover: 255, 255, 255; + --pst-color-preformatted-text: 34, 34, 34; + --pst-color-preformatted-background: 250, 250, 250; + --pst-color-inline-code: 232, 62, 140; + + --pst-color-active-navigation: 19, 6, 84; + --pst-color-navbar-link: 77, 77, 77; + --pst-color-navbar-link-hover: var(--pst-color-active-navigation); + --pst-color-navbar-link-active: var(--pst-color-active-navigation); + --pst-color-sidebar-link: 77, 77, 77; + --pst-color-sidebar-link-hover: var(--pst-color-active-navigation); + --pst-color-sidebar-link-active: var(--pst-color-active-navigation); + --pst-color-sidebar-expander-background-hover: 244, 244, 244; + --pst-color-sidebar-caption: 77, 77, 77; + --pst-color-toc-link: 119, 117, 122; + --pst-color-toc-link-hover: var(--pst-color-active-navigation); + --pst-color-toc-link-active: var(--pst-color-active-navigation); + + /***************************************************************************** + * Icon + **/ + + /* font awesome icons*/ + --pst-icon-check-circle: '\f058'; + --pst-icon-info-circle: '\f05a'; + --pst-icon-exclamation-triangle: '\f071'; + --pst-icon-exclamation-circle: '\f06a'; + --pst-icon-times-circle: '\f057'; + --pst-icon-lightbulb: '\f0eb'; + + /***************************************************************************** + * Admonitions + **/ + + --pst-color-admonition-default: var(--pst-color-info); + --pst-color-admonition-note: var(--pst-color-info); + --pst-color-admonition-attention: var(--pst-color-warning); + --pst-color-admonition-caution: var(--pst-color-warning); + --pst-color-admonition-warning: var(--pst-color-warning); + --pst-color-admonition-danger: var(--pst-color-danger); + --pst-color-admonition-error: var(--pst-color-danger); + --pst-color-admonition-hint: var(--pst-color-success); + --pst-color-admonition-tip: var(--pst-color-success); + --pst-color-admonition-important: var(--pst-color-success); + + --pst-icon-admonition-default: var(--pst-icon-info-circle); + --pst-icon-admonition-note: var(--pst-icon-info-circle); + --pst-icon-admonition-attention: var(--pst-icon-exclamation-circle); + --pst-icon-admonition-caution: var(--pst-icon-exclamation-triangle); + --pst-icon-admonition-warning: var(--pst-icon-exclamation-triangle); + --pst-icon-admonition-danger: var(--pst-icon-exclamation-triangle); + --pst-icon-admonition-error: var(--pst-icon-times-circle); + --pst-icon-admonition-hint: var(--pst-icon-lightbulb); + --pst-icon-admonition-tip: var(--pst-icon-lightbulb); + --pst-icon-admonition-important: var(--pst-icon-exclamation-circle); + +} diff --git a/code_book/_build/html/_static/doctools.js b/code_book/_build/html/_static/doctools.js new file mode 100644 index 0000000..daccd20 --- /dev/null +++ b/code_book/_build/html/_static/doctools.js @@ -0,0 +1,315 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { + this.initOnKeyListeners(); + } + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keydown(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' + && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/code_book/_build/html/_static/documentation_options.js b/code_book/_build/html/_static/documentation_options.js new file mode 100644 index 0000000..93b7c24 --- /dev/null +++ b/code_book/_build/html/_static/documentation_options.js @@ -0,0 +1,12 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'None', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '', + NAVIGATION_WITH_KEYS: true +}; \ No newline at end of file diff --git a/code_book/_build/html/_static/file.png b/code_book/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/code_book/_build/html/_static/images/logo_binder.svg b/code_book/_build/html/_static/images/logo_binder.svg new file mode 100644 index 0000000..45fecf7 --- /dev/null +++ b/code_book/_build/html/_static/images/logo_binder.svg @@ -0,0 +1,19 @@ + + + + +logo + + + + + + + + diff --git a/code_book/_build/html/_static/images/logo_colab.png b/code_book/_build/html/_static/images/logo_colab.png new file mode 100644 index 0000000000000000000000000000000000000000..b7560ec216b2d1b6f77855525fe966c741833428 GIT binary patch literal 7601 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 diff --git a/code_book/_build/html/_static/jquery-3.5.1.js b/code_book/_build/html/_static/jquery-3.5.1.js new file mode 100644 index 0000000..5093733 --- /dev/null +++ b/code_book/_build/html/_static/jquery-3.5.1.js @@ -0,0 +1,10872 @@ +/*! + * jQuery JavaScript Library v3.5.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2020-05-04T22:49Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.5.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.5 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2020-03-14 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem.namespaceURI, + docElem = ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " +{% endmacro %} \ No newline at end of file diff --git a/code_book/_build/html/ch1.html b/code_book/_build/html/ch1.html new file mode 100644 index 0000000..254234f --- /dev/null +++ b/code_book/_build/html/ch1.html @@ -0,0 +1,263 @@ + + + + + + + + Chapter 1 Code — Economic Dynamics Python Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
+
+ +
+ +
+

Chapter 1 Code

+

No code in this chapter.

+
+ + + + +
+ + + + +
+
+
+
+

+ + By John Stachurski
+ + © Copyright 2021.
+

+
+
+
+ + +
+
+ + + + + + \ No newline at end of file diff --git a/code_book/_build/html/ch2.html b/code_book/_build/html/ch2.html new file mode 100644 index 0000000..1310395 --- /dev/null +++ b/code_book/_build/html/ch2.html @@ -0,0 +1,258 @@ + + + + + + + + Chapter 2 Code — Economic Dynamics Python Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
+
+ +
+ +
+

Chapter 2 Code

+

To be added.

+
+ + + + +
+ + + + +
+
+
+
+

+ + By John Stachurski
+ + © Copyright 2021.
+

+
+
+
+ + +
+
+ + + + + + \ No newline at end of file diff --git a/code_book/_build/html/ch3.html b/code_book/_build/html/ch3.html new file mode 100644 index 0000000..a8cdd14 --- /dev/null +++ b/code_book/_build/html/ch3.html @@ -0,0 +1,258 @@ + + + + + + + + Chapter 3 Code — Economic Dynamics Python Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
+
+ +
+ +
+

Chapter 3 Code

+

No code used in this chapter.

+
+ + + + +
+ + + + +
+
+
+
+

+ + By John Stachurski
+ + © Copyright 2021.
+

+
+
+
+ + +
+
+ + + + + + \ No newline at end of file diff --git a/code_book/_build/html/ch4.html b/code_book/_build/html/ch4.html new file mode 100644 index 0000000..c677f2f --- /dev/null +++ b/code_book/_build/html/ch4.html @@ -0,0 +1,306 @@ + + + + + + + + Chapter 4 Code — Economic Dynamics Python Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
+
+ +
+ +
+

Chapter 4 Code

+
+
+
import numpy as np
+import matplotlib.pyplot as plt
+
+xmin, xmax = -10.0, 10.0
+ymin, ymax = -5.0,  5.0
+
+
+A1 = np.asarray([[0.55, -0.6],
+                 [0.5, 0.4]])
+
+def f(x, y): 
+    return  A1 @ (x, y)
+
+def draw_arrow(x, y, ax):
+    eps = 1.0
+    v1, v2 = f(x, y)
+    nrm = np.sqrt(v1**2 + v2**2)
+    scale = eps / nrm
+    ax.arrow(x, y, scale * v1, scale * v2,
+            antialiased=True, 
+            alpha=0.4,
+            head_length=0.025*(xmax - xmin), 
+            head_width=0.012*(xmax - xmin),
+            fill=False)
+
+xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20)
+ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20)
+
+fig, ax = plt.subplots()
+
+ax.set_xlim(xmin, xmax)
+ax.set_ylim(ymin, ymax)
+
+ax.set_xticks((0,))
+ax.set_yticks((0,))
+ax.grid()
+
+for x in xgrid:
+    for y in ygrid:
+        draw_arrow(x, y, ax)
+
+plt.show()
+
+
+
+
+_images/ch4_1_0.png +
+
+
+ + + + +
+ + + + +
+
+
+
+

+ + By John Stachurski
+ + © Copyright 2021.
+

+
+
+
+ + +
+
+ + + + + + \ No newline at end of file diff --git a/code_book/_build/html/genindex.html b/code_book/_build/html/genindex.html new file mode 100644 index 0000000..69e7cb0 --- /dev/null +++ b/code_book/_build/html/genindex.html @@ -0,0 +1,205 @@ + + + + + + + + Index — Economic Dynamics Python Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + +
+ + +
+ +
+
+
+
+
+ +
+ + +

Index

+ +
+ +
+ + +
+ + +
+ + +
+ +
+
+
+
+

+ + By John Stachurski
+ + © Copyright 2021.
+

+
+
+
+ + +
+
+ + + + + + \ No newline at end of file diff --git a/code_book/_build/html/index.html b/code_book/_build/html/index.html new file mode 100644 index 0000000..3157386 --- /dev/null +++ b/code_book/_build/html/index.html @@ -0,0 +1 @@ + diff --git a/code_book/_build/html/intro.html b/code_book/_build/html/intro.html new file mode 100644 index 0000000..81c6b67 --- /dev/null +++ b/code_book/_build/html/intro.html @@ -0,0 +1,265 @@ + + + + + + + + Economic Dynamics Python Code — Economic Dynamics Python Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
+
+ +
+ +
+

Economic Dynamics Python Code

+

Author: John Stachurski

+

This lecture series provides a short introduction to the field of continuous +time Markov chains. Focus is shared between theory, applications and +computation. Mathematical ideas are combined with computer code to help +clarify and build intuition, as well as to bridge the gap between theory and +applications.

+

The presentation is relatively rigorous but the aim is towards applications +rather than mathematical curiosities (which are plentiful, if one starts to +look). Applications are drawn from economics, finance and operations +research.

+
+

Computer code

+

The code is written in Python and is accelerated through a combination of +NumPy (vectorized code) and just-in-time compilation +(via Numba).

+

QuantEcon provides a fast-paced introduction to scientific computing with +Python that covers these topics.

+
+

+
+The code book is written using [Jupyter Book](https://jupyterbook.org/intro.html).
+
+
+
+
+
+ + + + +
+ + +
+ + Chapter 1 Code + +
+ +
+
+
+
+

+ + By John Stachurski
+ + © Copyright 2021.
+

+
+
+
+ + +
+
+ + + + + + \ No newline at end of file diff --git a/code_book/_build/html/objects.inv b/code_book/_build/html/objects.inv new file mode 100644 index 0000000..6f41c93 --- /dev/null +++ b/code_book/_build/html/objects.inv @@ -0,0 +1,7 @@ +# Sphinx inventory version 2 +# Project: Python +# Version: +# The remainder of this file is compressed using zlib. +xڅ +0 OpPiWaOе +```SKW0'wvdT`:4hN!ddUfddufZ2-fafybXur~>'HCoD}gh)r@GǸyG^Olod 3޷ꕌr \ No newline at end of file diff --git a/code_book/_build/html/reports/ch4.log b/code_book/_build/html/reports/ch4.log new file mode 100644 index 0000000..835cda1 --- /dev/null +++ b/code_book/_build/html/reports/ch4.log @@ -0,0 +1,70 @@ +Traceback (most recent call last): + File "/home/john/anaconda3/lib/python3.8/site-packages/jupyter_cache/executors/utils.py", line 51, in single_nb_execution + executenb( + File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/client.py", line 1087, in execute + return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute() + File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/util.py", line 74, in wrapped + return just_run(coro(*args, **kwargs)) + File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/util.py", line 53, in just_run + return loop.run_until_complete(coro) + File "/home/john/anaconda3/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete + return future.result() + File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/client.py", line 540, in async_execute + await self.async_execute_cell( + File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/client.py", line 832, in async_execute_cell + self._check_raise_for_error(cell, exec_reply) + File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/client.py", line 740, in _check_raise_for_error + raise CellExecutionError.from_cell_and_msg(cell, exec_reply['content']) +nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell: +------------------ +import numpy as np +from matplotlib.pyplot import plt + +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + +ax.set_xlim(xmin, xmax) +ax.set_ylim(ymin, ymax) + +A1 = np.asarray([[0.58, -0.6], + [0.65, 0.3]]) + +def f(x, y): A1 @ (x, y) + +def draw_arrow(x, y, ax): + eps = 0.0001 + v1, v2 = f(x, y) + nrm = np.sqrt(v1**2 + v2**2) + scale = eps / nrm + ax.arrow(x, y, scale * v1, scale * v2, + antialiased=True, + alpha=0.8, + head_length=0.025*(xmax - xmin), + head_width=0.012*(xmax - xmin), + fill=False) + +xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 12) +ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 12) + +fig, ax = plt.subplots() + +for x in xgrid: + for y in ygrid: + draw_arrow(x, y, ax) + +plt.show() + +------------------ + +--------------------------------------------------------------------------- +ImportError Traceback (most recent call last) + in  + 1 import numpy as np +----> 2 from matplotlib.pyplot import plt + 3  + 4 xmin, xmax = -10.0, 10.0 + 5 ymin, ymax = -5.0, 5.0 + +ImportError: cannot import name 'plt' from 'matplotlib.pyplot' (/home/john/anaconda3/lib/python3.8/site-packages/matplotlib/pyplot.py) +ImportError: cannot import name 'plt' from 'matplotlib.pyplot' (/home/john/anaconda3/lib/python3.8/site-packages/matplotlib/pyplot.py) + diff --git a/code_book/_build/html/search.html b/code_book/_build/html/search.html new file mode 100644 index 0000000..aa069a6 --- /dev/null +++ b/code_book/_build/html/search.html @@ -0,0 +1,224 @@ + + + + + + + + Search — Economic Dynamics Python Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + +
+ + +
+ +
+
+
+
+
+ +
+ +

Search

+
+ +

+ Please activate JavaScript to enable the search + functionality. +

+
+

+ Searching for multiple words only shows matches that contain + all words. +

+
+ + + +
+ +
+ +
+ +
+ + +
+ + +
+ +
+
+
+
+

+ + By John Stachurski
+ + © Copyright 2021.
+

+
+
+
+ + +
+
+ + + + + + \ No newline at end of file diff --git a/code_book/_build/html/searchindex.js b/code_book/_build/html/searchindex.js new file mode 100644 index 0000000..67d30df --- /dev/null +++ b/code_book/_build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["ch1","ch2","ch3","ch4","intro"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["ch1.md","ch2.md","ch3.md","ch4.md","intro.md"],objects:{},objnames:{},objtypes:{},terms:{"0001":[],"012":3,"025":3,"import":3,"return":3,"short":4,"true":3,The:4,acceler:4,added:1,aim:4,alpha:3,antialias:3,applic:4,arrow:3,asarrai:3,author:4,between:4,book:4,bridg:4,build:4,chain:4,clarifi:4,combin:4,compil:4,continu:4,cover:4,curios:4,def:3,draw_arrow:3,drawn:4,eps:3,fals:3,fast:4,field:4,fig:3,fill:3,financ:4,focu:4,foo:[],from:4,gap:4,grid:3,head_length:3,head_width:3,help:4,html:4,http:4,idea:4,intro:4,introduct:4,intuit:4,john:4,jupyt:4,jupyterbook:4,just:4,lectur:4,linspac:3,look:4,markov:4,mathemat:4,matplotlib:3,nrm:3,numba:4,numpi:[3,4],one:4,oper:4,org:4,pace:4,plenti:4,plt:3,present:4,print:[],provid:4,pyplot:3,quantecon:4,rather:4,rel:4,research:4,rigor:4,scale:3,scientif:4,seri:4,set_xlim:3,set_xtick:3,set_ylim:3,set_ytick:3,share:4,show:3,sqrt:3,stachurski:4,start:4,subplot:3,than:4,theori:4,thi:[0,2,4],through:4,time:4,topic:4,toward:4,used:2,using:4,vector:4,via:4,well:4,which:4,written:4,xgrid:3,xmax:3,xmin:3,ygrid:3,ymax:3,ymin:3},titles:["Chapter 1 Code","Chapter 2 Code","Chapter 3 Code","Chapter 4 Code","Economic Dynamics Python Code"],titleterms:{chapter:[0,1,2,3],code:[0,1,2,3,4],comput:4,dynam:4,econom:4,python:4}}) \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch1.ipynb b/code_book/_build/jupyter_execute/ch1.ipynb new file mode 100644 index 0000000..2a4224f --- /dev/null +++ b/code_book/_build/jupyter_execute/ch1.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1 Code\n", + "\n", + "No code in this chapter." + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 14 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch1.py b/code_book/_build/jupyter_execute/ch1.py new file mode 100644 index 0000000..937cd26 --- /dev/null +++ b/code_book/_build/jupyter_execute/ch1.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Chapter 1 Code +# +# No code in this chapter. diff --git a/code_book/_build/jupyter_execute/ch2.ipynb b/code_book/_build/jupyter_execute/ch2.ipynb new file mode 100644 index 0000000..a12e0f5 --- /dev/null +++ b/code_book/_build/jupyter_execute/ch2.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 Code\n", + "\n", + "To be added." + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 14 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch2.py b/code_book/_build/jupyter_execute/ch2.py new file mode 100644 index 0000000..3904fd4 --- /dev/null +++ b/code_book/_build/jupyter_execute/ch2.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Chapter 2 Code +# +# To be added. diff --git a/code_book/_build/jupyter_execute/ch3.ipynb b/code_book/_build/jupyter_execute/ch3.ipynb new file mode 100644 index 0000000..e43d556 --- /dev/null +++ b/code_book/_build/jupyter_execute/ch3.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 3 Code\n", + "\n", + "No code used in this chapter." + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + }, + "source_map": [ + 14 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch3.py b/code_book/_build/jupyter_execute/ch3.py new file mode 100644 index 0000000..bb1d3c0 --- /dev/null +++ b/code_book/_build/jupyter_execute/ch3.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Chapter 3 Code +# +# No code used in this chapter. diff --git a/code_book/_build/jupyter_execute/ch4.ipynb b/code_book/_build/jupyter_execute/ch4.ipynb new file mode 100644 index 0000000..5f298e1 --- /dev/null +++ b/code_book/_build/jupyter_execute/ch4.ipynb @@ -0,0 +1,120 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4 Code" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_1_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "xmin, xmax = -10.0, 10.0\n", + "ymin, ymax = -5.0, 5.0\n", + "\n", + "\n", + "A1 = np.asarray([[0.55, -0.6],\n", + " [0.5, 0.4]])\n", + "\n", + "def f(x, y): \n", + " return A1 @ (x, y)\n", + "\n", + "def draw_arrow(x, y, ax):\n", + " eps = 1.0\n", + " v1, v2 = f(x, y)\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = eps / nrm\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.4,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", + "\n", + "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20)\n", + "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.set_xlim(xmin, xmax)\n", + "ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " draw_arrow(x, y, ax)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst", + "text_representation": { + "extension": ".md", + "format_name": "myst", + "format_version": 0.13, + "jupytext_version": "1.10.3" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + }, + "source_map": [ + 14, + 18, + 63 + ] + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch4.py b/code_book/_build/jupyter_execute/ch4.py new file mode 100644 index 0000000..3eb6d3e --- /dev/null +++ b/code_book/_build/jupyter_execute/ch4.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Chapter 4 Code + +# In[1]: + + +import numpy as np +import matplotlib.pyplot as plt + +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + + +A1 = np.asarray([[0.55, -0.6], + [0.5, 0.4]]) + +def f(x, y): + return A1 @ (x, y) + +def draw_arrow(x, y, ax): + eps = 1.0 + v1, v2 = f(x, y) + nrm = np.sqrt(v1**2 + v2**2) + scale = eps / nrm + ax.arrow(x, y, scale * v1, scale * v2, + antialiased=True, + alpha=0.4, + head_length=0.025*(xmax - xmin), + head_width=0.012*(xmax - xmin), + fill=False) + +xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20) +ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20) + +fig, ax = plt.subplots() + +ax.set_xlim(xmin, xmax) +ax.set_ylim(ymin, ymax) + +ax.set_xticks((0,)) +ax.set_yticks((0,)) +ax.grid() + +for x in xgrid: + for y in ygrid: + draw_arrow(x, y, ax) + +plt.show() + + +# In[ ]: + + + + diff --git a/code_book/_build/jupyter_execute/ch4.txt b/code_book/_build/jupyter_execute/ch4.txt new file mode 100644 index 0000000..6ff6d6c --- /dev/null +++ b/code_book/_build/jupyter_execute/ch4.txt @@ -0,0 +1,39 @@ +print("foo") + +import numpy as np +from matplotlib.pyplot import plt + +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + +ax.set_xlim(xmin, xmax) +ax.set_ylim(ymin, ymax) + +A1 = np.asarray([[0.58, -0.6], + [0.65, 0.3]]) + +def f(x, y): A1 @ (x, y) + +def draw_arrow(x, y, ax): + eps = 0.0001 + v1, v2 = f(x, y) + nrm = np.sqrt(v1**2 + v2**2) + scale = eps / nrm + ax.arrow(x, y, scale * v1, scale * v2, + antialiased=True, + alpha=0.8, + head_length=0.025*(xmax - xmin), + head_width=0.012*(xmax - xmin), + fill=False) + +xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 12) +ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 12) + +fig, ax = plt.subplots() + +for x in xgrid: + for y in ygrid: + draw_arrow(x, y, ax) + +plt.show() + diff --git a/code_book/_build/jupyter_execute/ch4_1_0.png b/code_book/_build/jupyter_execute/ch4_1_0.png new file mode 100644 index 0000000000000000000000000000000000000000..1efe62508250859334b9c3339302efad5338b758 GIT binary patch literal 80306 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 TNBgfx@}v0(oZfCIuW~%8k7sf=!M0~ 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 literal 0 HcmV?d00001 diff --git a/code_book/_config.yml b/code_book/_config.yml new file mode 100644 index 0000000..b5981e6 --- /dev/null +++ b/code_book/_config.yml @@ -0,0 +1,32 @@ +# Book settings +title: Economic Dynamics Python Code +author: John Stachurski +# logo: logo.png + +sphinx: + config: + mathjax_config: + TeX: + Macros: + "Exp" : ["\\operatorname{Exp}"] + "Binomial" : ["\\operatorname{Binomial}"] + "Poisson" : ["\\operatorname{Poisson}"] + "BB" : ["\\mathbb{B}"] + "EE" : ["\\mathbb{E}"] + "PP" : ["\\mathbb{P}"] + "RR" : ["\\mathbb{R}"] + "NN" : ["\\mathbb{N}"] + "ZZ" : ["\\mathbb{Z}"] + "dD" : ["\\mathcal{D}"] + "fF" : ["\\mathcal{F}"] + "lL" : ["\\mathcal{L}"] + "linop" : ["\\mathcal{L}(\\mathbb{B})"] + "linopell" : ["\\mathcal{L}(\\ell_1)"] + +execute: + execute_notebooks: cache + +latex: + latex_engine: "xelatex" + latex_documents: + targetname: book.tex diff --git a/code_book/_toc.yml b/code_book/_toc.yml new file mode 100644 index 0000000..2fe4e4c --- /dev/null +++ b/code_book/_toc.yml @@ -0,0 +1,7 @@ +format: jb-book +root: intro +chapters: +- file: ch1 +- file: ch2 +- file: ch3 +- file: ch4 diff --git a/code_book/ch1.md b/code_book/ch1.md new file mode 100644 index 0000000..994a069 --- /dev/null +++ b/code_book/ch1.md @@ -0,0 +1,18 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 1 Code + +No code in this chapter. diff --git a/code_book/ch2.md b/code_book/ch2.md new file mode 100644 index 0000000..06f989a --- /dev/null +++ b/code_book/ch2.md @@ -0,0 +1,18 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 2 Code + +To be added. diff --git a/code_book/ch3.md b/code_book/ch3.md new file mode 100644 index 0000000..7af94f4 --- /dev/null +++ b/code_book/ch3.md @@ -0,0 +1,18 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 3 Code + +No code used in this chapter. diff --git a/code_book/ch4.md b/code_book/ch4.md new file mode 100644 index 0000000..d12033c --- /dev/null +++ b/code_book/ch4.md @@ -0,0 +1,65 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 4 Code + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt + +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + + +A1 = np.asarray([[0.55, -0.6], + [0.5, 0.4]]) + +def f(x, y): + return A1 @ (x, y) + +def draw_arrow(x, y, ax): + eps = 1.0 + v1, v2 = f(x, y) + nrm = np.sqrt(v1**2 + v2**2) + scale = eps / nrm + ax.arrow(x, y, scale * v1, scale * v2, + antialiased=True, + alpha=0.4, + head_length=0.025*(xmax - xmin), + head_width=0.012*(xmax - xmin), + fill=False) + +xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20) +ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20) + +fig, ax = plt.subplots() + +ax.set_xlim(xmin, xmax) +ax.set_ylim(ymin, ymax) + +ax.set_xticks((0,)) +ax.set_yticks((0,)) +ax.grid() + +for x in xgrid: + for y in ygrid: + draw_arrow(x, y, ax) + +plt.show() +``` + +```{code-cell} ipython3 + +``` diff --git a/code_book/intro.md b/code_book/intro.md new file mode 100644 index 0000000..c40b3cf --- /dev/null +++ b/code_book/intro.md @@ -0,0 +1,35 @@ +Economic Dynamics Python Code +============================= + +**Author**: [John Stachurski](https://johnstachurski.net/) + +This lecture series provides a short introduction to the field of continuous +time Markov chains. Focus is shared between theory, applications and +computation. Mathematical ideas are combined with computer code to help +clarify and build intuition, as well as to bridge the gap between theory and +applications. + +The presentation is relatively rigorous but the aim is towards applications +rather than mathematical curiosities (which are plentiful, if one starts to +look). Applications are drawn from economics, finance and operations +research. + + + +```{admonition} Computer code + +The code is written in Python and is accelerated through a combination of +[NumPy](https://numpy.org/) (vectorized code) and just-in-time compilation +(via [Numba](http://numba.pydata.org/)). + +QuantEcon provides a fast-paced [introduction to scientific computing with +Python](https://python-programming.quantecon.org/) that covers these topics. +``` + + + + +``` + + +The code book is written using [Jupyter Book](https://jupyterbook.org/intro.html). diff --git a/code_book/logo.png b/code_book/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..06d56f40c838b64eb048a63e036125964a069a3a GIT binary patch literal 9854 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 L>8MsHTOs~GC;Fmw literal 0 HcmV?d00001 diff --git a/python_code/ar1.py b/first_edition_code/ar1.py similarity index 100% rename from python_code/ar1.py rename to first_edition_code/ar1.py diff --git a/python_code/cpdynam.py b/first_edition_code/cpdynam.py similarity index 100% rename from python_code/cpdynam.py rename to first_edition_code/cpdynam.py diff --git a/python_code/ds.py b/first_edition_code/ds.py similarity index 100% rename from python_code/ds.py rename to first_edition_code/ds.py diff --git a/python_code/ecdf.py b/first_edition_code/ecdf.py similarity index 100% rename from python_code/ecdf.py rename to first_edition_code/ecdf.py diff --git a/python_code/fig1point2.py b/first_edition_code/fig1point2.py similarity index 100% rename from python_code/fig1point2.py rename to first_edition_code/fig1point2.py diff --git a/python_code/fig1point4.py b/first_edition_code/fig1point4.py similarity index 100% rename from python_code/fig1point4.py rename to first_edition_code/fig1point4.py diff --git a/python_code/fig1point5.py b/first_edition_code/fig1point5.py similarity index 100% rename from python_code/fig1point5.py rename to first_edition_code/fig1point5.py diff --git a/python_code/fig4point1.py b/first_edition_code/fig4point1.py similarity index 100% rename from python_code/fig4point1.py rename to first_edition_code/fig4point1.py diff --git a/python_code/fig4point3.py b/first_edition_code/fig4point3.py similarity index 100% rename from python_code/fig4point3.py rename to first_edition_code/fig4point3.py diff --git a/python_code/fig4point6.py b/first_edition_code/fig4point6.py similarity index 100% rename from python_code/fig4point6.py rename to first_edition_code/fig4point6.py diff --git a/python_code/fig4point7.py b/first_edition_code/fig4point7.py similarity index 100% rename from python_code/fig4point7.py rename to first_edition_code/fig4point7.py diff --git a/python_code/fig6point13.py b/first_edition_code/fig6point13.py similarity index 100% rename from python_code/fig6point13.py rename to first_edition_code/fig6point13.py diff --git a/python_code/fig6point4.py b/first_edition_code/fig6point4.py similarity index 100% rename from python_code/fig6point4.py rename to first_edition_code/fig6point4.py diff --git a/python_code/fphamilton.py b/first_edition_code/fphamilton.py similarity index 100% rename from python_code/fphamilton.py rename to first_edition_code/fphamilton.py diff --git a/python_code/fpi.py b/first_edition_code/fpi.py similarity index 100% rename from python_code/fpi.py rename to first_edition_code/fpi.py diff --git a/python_code/fvi.py b/first_edition_code/fvi.py similarity index 100% rename from python_code/fvi.py rename to first_edition_code/fvi.py diff --git a/python_code/genfinitemc.py b/first_edition_code/genfinitemc.py similarity index 100% rename from python_code/genfinitemc.py rename to first_edition_code/genfinitemc.py diff --git a/python_code/kurtzbellman.py b/first_edition_code/kurtzbellman.py similarity index 100% rename from python_code/kurtzbellman.py rename to first_edition_code/kurtzbellman.py diff --git a/python_code/kurtzvsigma.py b/first_edition_code/kurtzvsigma.py similarity index 100% rename from python_code/kurtzvsigma.py rename to first_edition_code/kurtzvsigma.py diff --git a/python_code/lininterp.py b/first_edition_code/lininterp.py similarity index 100% rename from python_code/lininterp.py rename to first_edition_code/lininterp.py diff --git a/python_code/p2srs.py b/first_edition_code/p2srs.py similarity index 100% rename from python_code/p2srs.py rename to first_edition_code/p2srs.py diff --git a/python_code/polyclass.py b/first_edition_code/polyclass.py similarity index 100% rename from python_code/polyclass.py rename to first_edition_code/polyclass.py diff --git a/python_code/polyclass0.py b/first_edition_code/polyclass0.py similarity index 100% rename from python_code/polyclass0.py rename to first_edition_code/polyclass0.py diff --git a/python_code/quadmap1.py b/first_edition_code/quadmap1.py similarity index 100% rename from python_code/quadmap1.py rename to first_edition_code/quadmap1.py diff --git a/python_code/srs.py b/first_edition_code/srs.py similarity index 100% rename from python_code/srs.py rename to first_edition_code/srs.py diff --git a/python_code/testds.py b/first_edition_code/testds.py similarity index 100% rename from python_code/testds.py rename to first_edition_code/testds.py diff --git a/python_code/testfpi.py b/first_edition_code/testfpi.py similarity index 100% rename from python_code/testfpi.py rename to first_edition_code/testfpi.py diff --git a/python_code/testgenfinitemc.py b/first_edition_code/testgenfinitemc.py similarity index 100% rename from python_code/testgenfinitemc.py rename to first_edition_code/testgenfinitemc.py diff --git a/python_code/testsrs.py b/first_edition_code/testsrs.py similarity index 100% rename from python_code/testsrs.py rename to first_edition_code/testsrs.py diff --git a/matlab_code/README.txt b/matlab_code/README.txt deleted file mode 100644 index 145c408..0000000 --- a/matlab_code/README.txt +++ /dev/null @@ -1,6 +0,0 @@ -The following files are left untouched (i.e. no modification) because they are written in a standard way for Matlab coding. -- ar1.m -- ecdf.m -- fphamilton.m -- polyclass0.m -- quadmap1.m diff --git a/matlab_code/ar1.m b/matlab_code/ar1.m deleted file mode 100644 index bce6d6e..0000000 --- a/matlab_code/ar1.m +++ /dev/null @@ -1,12 +0,0 @@ -% Filename: ar1.m -% Author: Andy Qi -% Date: December 2008 -% Corresponds to: Listing 8.1 - -a = 0.5; -b = 1; -X = zeros(1, 101); % Create an empty array to store path -X(1) = normrnd(0, 1); % X_0 has dist N(0, 1) -for t = 1:100 - X(t + 1) = normrnd(a * X(t) + b, 1); -end diff --git a/matlab_code/cpdynam_rev1/README.txt b/matlab_code/cpdynam_rev1/README.txt deleted file mode 100644 index ab7c407..0000000 --- a/matlab_code/cpdynam_rev1/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Listing 2.2 is divided into two functions, evaluate and differentiate. -def __init__(self,coef) in the python code is omitted. -Instead, "coef" is just dealt with as an input in those two functions. \ No newline at end of file diff --git a/matlab_code/cpdynam_rev1/T.m b/matlab_code/cpdynam_rev1/T.m deleted file mode 100644 index 009ee1d..0000000 --- a/matlab_code/cpdynam_rev1/T.m +++ /dev/null @@ -1,22 +0,0 @@ -% Filename: T.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: T in Listing 6.7 - - -function t = T(p, x, W, P, D) - -global alpha - -% Computes Tp(x), where T is the pricing functional operator. -% Parameters : p is an instance of lininterp and x is a number. - -y = alpha * mean(p(W)); - if y <= P(x) - t = P(x); - return; - end -h = @(r) alpha * mean(p(alpha * (x - D(r)) + W)); -t = fix_point(h, P(x), y); -end - diff --git a/matlab_code/cpdynam_rev1/cpdynam_rev1.m b/matlab_code/cpdynam_rev1/cpdynam_rev1.m deleted file mode 100644 index e078c2d..0000000 --- a/matlab_code/cpdynam_rev1/cpdynam_rev1.m +++ /dev/null @@ -1,46 +0,0 @@ -% Filename: cpdynam_rev1.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: Listing 6.7 - -% Note: All of the code is wrapped in a class definition so that it can -% be put in one file. See the comments in kurtzbellman.m. An example -% of usage is given below. - -global alpha a c - alpha = 0.8; - a = 5.0; - c = 2.0; - - W = betarnd(5, 5, 1, 1000) * c + a; % Shock obs. - P = @(x) 1.0/x; % Inverse demand function - D = P; - - -% The following test shows how to use the codes. lininterp_rev1.m must -% be in the current folder. - -% gridsize = 150; -% grid = linspace(a, 35, gridsize); -% tol = 0.0005; -% vals = zeros(1, gridsize); -% new_vals = zeros(1, gridsize); -% for i = 1:gridsize -% vals(i) = P(grid(i)); -% end -% while 1 -% hold on; -% plot(grid, vals); -% p = @(z)lininterp_rev1(grid, vals,z); -% f = @(x) T(p, x, W, P, D); -% for i = 1:gridsize -% new_vals(i) = f(grid(i)); -% end -% if max(abs(new_vals - vals)) < tol -% break -% end -% vals = new_vals; -% end -% hold off; - - diff --git a/matlab_code/cpdynam_rev1/fix_point.m b/matlab_code/cpdynam_rev1/fix_point.m deleted file mode 100644 index ff6291f..0000000 --- a/matlab_code/cpdynam_rev1/fix_point.m +++ /dev/null @@ -1,14 +0,0 @@ -% Filename: fix_point.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: fixpoint in Listing 6.7 - -function fp = fix_point(h, lower, upper) -% Computes the fixed point of h on [upper,lower] using fzero, -% which finds the zeros (roots) of a univariate function. -% Inputs : h is a function and lower and upper are numbers -% (floats or integers). - -fp = fzero(@(x) x - h(x), [lower, upper]); - -end \ No newline at end of file diff --git a/matlab_code/cpdynam_rev1/lininterp_rev1.m b/matlab_code/cpdynam_rev1/lininterp_rev1.m deleted file mode 100644 index e1dc413..0000000 --- a/matlab_code/cpdynam_rev1/lininterp_rev1.m +++ /dev/null @@ -1,17 +0,0 @@ -% Filename: lininterp_rev1.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: Listing 6.4 - -function g = lininterp_rev1(X,Y,z) - % Uses MATLAB's interp1 function for interpolation. - % The z values are truncated so that they lie inside - % the grid points. The effect is that evaluation of - % a point to the left of X(1) returns Y(1), while - % evaluation of a point to the right of X(end) returns - % Y(end) - - z = max(z, X(1)); - z = min(z, X(end)); - g = interp1(X, Y, z); -end diff --git a/matlab_code/ds_rev1.m b/matlab_code/ds_rev1.m deleted file mode 100644 index 3631d8e..0000000 --- a/matlab_code/ds_rev1.m +++ /dev/null @@ -1,25 +0,0 @@ -% Filename: ds_rev1.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: Listing 4.2 - - -function [ X ] = ds_rev1(h,x,n) -% Inputs: -% h -> an arbitrary handle function; -% x -> the initial state; -% n -> size of length; -% -% Output: -% X -> trajectory - -% Set the initial state -X(1)= x; - -% Generate a tragectory of length n, starting at the current state -for i = 1 : n-1 - X(i+1) = h(X(i)); % Update the state of the system by applying h -end - -end - diff --git a/matlab_code/ecdf.m b/matlab_code/ecdf.m deleted file mode 100644 index dcd580f..0000000 --- a/matlab_code/ecdf.m +++ /dev/null @@ -1,2 +0,0 @@ - -% Please use the MATLAB built in ecdf function diff --git a/matlab_code/fphamilton.m b/matlab_code/fphamilton.m deleted file mode 100644 index 79850cf..0000000 --- a/matlab_code/fphamilton.m +++ /dev/null @@ -1,13 +0,0 @@ -% Filename: fphamilton.m -% Author: Andy Qi -% Date: December 2008 -% Corresponds to: Listing 4.6 - -pH = [0.971,0.029,0.000; % Hamilton's kernel - 0.145,0.778,0.077; - 0.000,0.508,0.492]; -I = eye(3); % 3 by 3 identity matrix -Q = ones(3); % Matrix of ones -b = ones(3,1); % Vector of ones -A = transpose(I - pH + Q); -solution = A \ b; diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/README.txt b/matlab_code/fvi_rev1_and_fpi_rev1/README.txt deleted file mode 100644 index e659426..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -Listing 6.5 is divided into four functions, U, f, maximum and bellman. -In order to run test_fvi_rev1, you need, in the same folder, m files for the four functions and lininterp_rev1. - -Listing 6.6 is divided into four functions, maximiser, T, get_greedy and get_value. -In order to run test_fpi_rev1, you need, in the same folder, m files for the four functions, U, f, maximum and lininterp_rev1. diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/T.m b/matlab_code/fvi_rev1_and_fpi_rev1/T.m deleted file mode 100644 index f47f6e3..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/T.m +++ /dev/null @@ -1,32 +0,0 @@ -% Filename: T.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: T(sigma,w) in Listing 6.6 - -function [t, t_func] = T(grid, W, sigma, w_func) - -global rho gridsize - -% Implements the operator L T_sigma - -% Inputs: A grid array, grid; -% A shock array, W; -% A policy array, sigma; -% An instance of lininterp (see -% the file lininterp_rev1.m), w_func (a function handle); -% -% Returns: An output array for LT_sigma(w_func), t; -% An instance of lininterp, t_func (a function handle). - -len = gridsize; -vals = zeros(1, len); - -for i = 1:len - x = grid(i); - Tw_y = U(x - sigma(i)) + rho * mean(w_func(f(sigma(i), W))); - vals(i) = Tw_y; -end -t = vals; -t_func = @(x) lininterp_rev1 (grid, vals, x); -end - diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/U.m b/matlab_code/fvi_rev1_and_fpi_rev1/U.m deleted file mode 100644 index 397dd32..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/U.m +++ /dev/null @@ -1,13 +0,0 @@ -% Filename: U.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: U(c) in Listing 6.5 and 6.6 - -function [ utility ] = U(c) - -global theta - -utility = 1 - exp(-theta.* c); % Utility function - -end - diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/bellman.m b/matlab_code/fvi_rev1_and_fpi_rev1/bellman.m deleted file mode 100644 index 486f3dd..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/bellman.m +++ /dev/null @@ -1,29 +0,0 @@ -% Filename: bellman.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: bellman(w) in Listing 6.5 - -function [b, b_func] = bellman (grid, w_func, W) - -% The approximate Bellman operator. -% Inputs : A grid array, grid; -% An instance of lininterp (see -% the file lininterp_rev1.m), w_func (a function handle); -% A shock array, W. -% -% Returns : An output array for T(w_func), b; -% An instance of lininterp, b_func (a function handle). - - -global rho gridsize - -len = gridsize; - - for i = 1:len - y = grid(i); - h = @(k) U(y - k) + rho * mean(w_func(f(k,W))); - vals(i) = maximum(h,0,y); - end - - b = vals; - b_func = @(x) lininterp_rev1 (grid, vals, x); diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/f.m b/matlab_code/fvi_rev1_and_fpi_rev1/f.m deleted file mode 100644 index c325977..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/f.m +++ /dev/null @@ -1,13 +0,0 @@ -% Filename: f.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: f(k,z) in Listing 6.5 and 6.6 - -function [ prod ] = f(k, z) - -global alpha - -prod = (k.^alpha) .* z; % Production function - -end - diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/get_greedy.m b/matlab_code/fvi_rev1_and_fpi_rev1/get_greedy.m deleted file mode 100644 index 49a65c5..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/get_greedy.m +++ /dev/null @@ -1,19 +0,0 @@ -% Filename: get_greedy.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: get_greedy(w) in Listing 6.6 - -function [new_w] = get_greedy(grid,w_func,W) - -global rho gridsize - % Computes a w-greedy policy, where w_func is an instance of lininterp_rev1 - -len = gridsize; -vals = zeros(1, len); - -for i = 1:len - x = grid(i); - h = @(k) U(x - k) + rho * mean(w_func(f(k, W))); - vals(i) = maximizer(h, 0, x); -end -new_w = vals; diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/get_value.m b/matlab_code/fvi_rev1_and_fpi_rev1/get_value.m deleted file mode 100644 index 5e91244..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/get_value.m +++ /dev/null @@ -1,32 +0,0 @@ -% Filename: get_value.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: get_value(sigma,v) in Listing 6.6 - -function [new_v, new_v_func] = get_value(grid, W, sigma, v_func) - -% Computes an approximation to v_sigma, the value of following -% policy sigma. Function v is a guess of v_sigma. - -% Inputs : A grid array, grid; -% A shock array, W; -% A policy array, sigma; -% An instance of lininterp (see -% the file lininterp_rev1.m), v_func (a function handle). -% -% Returns : An output array for v, new_v; -% An instance of lininterp, new_v_func (a function handle). - -global gridsize - -tol = 1e-2; % Error tolerance -err = 1; - -v = zeros(1,gridsize); - -while err > tol - [new_v, new_v_func] = T(grid, W, sigma, v_func); - err = max(abs(new_v - v)); - v_func = new_v_func; - v = new_v; -end diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/lininterp_rev1.m b/matlab_code/fvi_rev1_and_fpi_rev1/lininterp_rev1.m deleted file mode 100644 index e1dc413..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/lininterp_rev1.m +++ /dev/null @@ -1,17 +0,0 @@ -% Filename: lininterp_rev1.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: Listing 6.4 - -function g = lininterp_rev1(X,Y,z) - % Uses MATLAB's interp1 function for interpolation. - % The z values are truncated so that they lie inside - % the grid points. The effect is that evaluation of - % a point to the left of X(1) returns Y(1), while - % evaluation of a point to the right of X(end) returns - % Y(end) - - z = max(z, X(1)); - z = min(z, X(end)); - g = interp1(X, Y, z); -end diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/maximizer.m b/matlab_code/fvi_rev1_and_fpi_rev1/maximizer.m deleted file mode 100644 index 16a5f4e..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/maximizer.m +++ /dev/null @@ -1,14 +0,0 @@ -% Filename: maximizer.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: maximizer(h,a,b) in Listing 6.6 - -function [max] = maximizer(h, a, b) - -% Inputs : a function handle, h; constants, a and b -% Return : a maximizer for h in domain (a,b) - -max = fminbnd(@(k) -h(k), a, b); - -end - \ No newline at end of file diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/maximum.m b/matlab_code/fvi_rev1_and_fpi_rev1/maximum.m deleted file mode 100644 index 2b949ca..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/maximum.m +++ /dev/null @@ -1,11 +0,0 @@ -% Filename: maximum.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: maximum(h,a,b) in Listing 6.5 and 6.6 - -function [ m ] = maximum( h, a, b) - -m = h(fminbnd(@(k) -h(k),a,b)); - -end - diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/test_fpi_rev1.m b/matlab_code/fvi_rev1_and_fpi_rev1/test_fpi_rev1.m deleted file mode 100644 index 1940ed1..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/test_fpi_rev1.m +++ /dev/null @@ -1,40 +0,0 @@ -clear all -close all - -global theta alpha rho gridmax gridsize - - theta = 0.5; - alpha = 0.8; - rho = 0.9; - gridmax = 8; - gridsize = 150; - - -W = exp(randn(1,1000)); % Draws of shock - -grid = linspace(0,gridmax^(1e-1),gridsize).^10; % Grid for state space - -len = length(grid); - -vals = zeros(1,len); - -sigma = get_greedy(grid, @(x) lininterp_rev1(grid, U(grid),x), W); - -[new_v, new_v_func] = get_value(grid, W, sigma, @(x) lininterp_rev1(grid, U(grid), x)); - -v = zeros(1, len); -v_func = new_v_func; - -tol = 0.005; -err = 1; - -while err > tol - hold on; - plot(grid, sigma); - new_sigma = get_greedy(grid, v_func, W); - [new_v, new_v_func] = get_value(grid, W, new_sigma, v_func); - err = max(abs(new_v - v)); - v = new_v; - v_func = new_v_func; - sigma = new_sigma; -end diff --git a/matlab_code/fvi_rev1_and_fpi_rev1/test_fvi_rev1.m b/matlab_code/fvi_rev1_and_fpi_rev1/test_fvi_rev1.m deleted file mode 100644 index be9c146..0000000 --- a/matlab_code/fvi_rev1_and_fpi_rev1/test_fvi_rev1.m +++ /dev/null @@ -1,35 +0,0 @@ -% Filename: test_fvi_rev1.m -% Author: Tomohito Okabe -% Date: April 2013 - -clear all -close all - -global theta alpha rho gridmax gridsize - theta = 0.5; - alpha = 0.8; - rho = 0.9; - gridmax = 8; - gridsize = 150; - - -W = exp(randn(1,1000)); % Draws of shock - -grid = linspace(0,gridmax^(1e-1),gridsize).^10; % Grid for state space - -len = length(grid); - -vals = zeros(1,len); - -v_func = @(x) lininterp_rev1(grid, U(grid),x); % Initial input - - - for i = 1:10 - [w, w_func] = bellman(grid,v_func,W); - v_func = w_func; - hold on; - plot(grid, w); - end - -hold off; - \ No newline at end of file diff --git a/matlab_code/genfinitemc_rev1.m b/matlab_code/genfinitemc_rev1.m deleted file mode 100644 index 0ccc813..0000000 --- a/matlab_code/genfinitemc_rev1.m +++ /dev/null @@ -1,26 +0,0 @@ -% Filename: genfinitemc_rev1.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: Listing 4.4 - -function [ path ] = genfinitemc_rev1(p, X, n, len) -% Inputs: -% p -> stochastic kernel; -% x -> the initial state; -% n -> # of periods; -% len -> # of states; -% -% Output: -% path -> series of the finite Markov chain - -% Set the initial state -path(1) = X; - -% Generate a sample path of length n, starting at the current state -for i = 1:n-1 - psi = p(path(i),:); - path(i+1) = randsample(len,1,true,psi); -end - -end - diff --git a/matlab_code/kurtzbellman_rev1/Gamma.m b/matlab_code/kurtzbellman_rev1/Gamma.m deleted file mode 100644 index 6ad9b86..0000000 --- a/matlab_code/kurtzbellman_rev1/Gamma.m +++ /dev/null @@ -1,32 +0,0 @@ -% Filename: Gamma.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: Gamma(x) in Listing 5.1 - -function [ G ] = Gamma(S) - -% The correspondence of feasible actions = a (M+1) x (B+M+1) matrix -% Gamma = [Gamma(0), Gamma(1), ... Gamma(B+M)] -% where Gamma(s) (s in S) is a (M+1)-column vector s.t. -% Gamma(s) = [0,1,...,M]' if s >= M -% Gamma(s) = [0,1,...,m*,...,m*]' otherwise -% m* denotes the maximum value of the feasible action in the set. -% The latter equation is for a matter of convenience to generate a grid for -% consumption. - -global M - -e = ones(1,length(S)); -Gamma = [0:M]'*e; -for i = 1:M-1 -for j = 1:M+1 - if j > i - Gamma(j,i)= i-1; - end -end -end - -G = Gamma; - -end - diff --git a/matlab_code/kurtzbellman_rev1/README.txt b/matlab_code/kurtzbellman_rev1/README.txt deleted file mode 100644 index 478c556..0000000 --- a/matlab_code/kurtzbellman_rev1/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Listing 5.1 is divided into four functions, U, phi, Gamma and T. -T is the core function of the program. -In order to run the program, kurtzbellman_rev1_test.m you need, in the same folder, m files for those four functions. \ No newline at end of file diff --git a/matlab_code/kurtzbellman_rev1/T.m b/matlab_code/kurtzbellman_rev1/T.m deleted file mode 100644 index 04a91ab..0000000 --- a/matlab_code/kurtzbellman_rev1/T.m +++ /dev/null @@ -1,62 +0,0 @@ -% Filename: T.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: T(v) in Listing 5.1 - -function [ Tv ] = T(v) - -% Set parameters -global beta rho B M -beta = 0.5; -rho = 0.9; -B = 10; -M = 5; - -S = [0:B+M]; % State space = 0,...,B + M -Z = [0:B]; % Shock space = 0,...,B - -% Call phi.m to define the probability mass function, uniform distribution. -p = phi(Z); - -% Call Gamma.m to compute the correspondence of feasible action -G = Gamma(S); - -C = ones(1,1+M)'*S - G; % Generate a grid for consumption -C = max(0,C); % Replace negative values with zero -u = U(C); % Call U.m to compute utility - -% An implementation of the Bellman operator -% Parameter: v is a sequence representing a function on S. -% Returns: Tv -for i= 1:size(G,1) % Compute the value of the objective junc for each - for j = 1:length(S) % a in G, and stores the result in y - a = G(i,j); - v_new(i,j) = sum(v(a+1:a+length(Z)).*p); - end -end - -y = u + rho*v_new; - -for i=1:length(S) - Tv(i) = max(y(:,i)); -end - - -end - -% The following test shows how to use the class. Put the code in a -% separate file, in the same directory as kurtzbellman_rev1.m -% -% clear all -% close all -% -% w = zeros(1, 16); % 16 = B + M -% err = 1; -% while err > 0.001 -% v = kurtzbellman_rev1(w); -% err = max(abs(v - w)); -% w = v; -% hold on; -% plot(w); -% end -% hold off; \ No newline at end of file diff --git a/matlab_code/kurtzbellman_rev1/U.m b/matlab_code/kurtzbellman_rev1/U.m deleted file mode 100644 index fba0421..0000000 --- a/matlab_code/kurtzbellman_rev1/U.m +++ /dev/null @@ -1,14 +0,0 @@ -% Filename: U.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: U(c) in Listing 5.1 - -function [ utility ] = U( c ) -%UNTITLED4 Summary of this function goes here -% Detailed explanation goes here -global beta - -utility = c.^beta; - -end - diff --git a/matlab_code/kurtzbellman_rev1/kurtzbellman_rev1_test.m b/matlab_code/kurtzbellman_rev1/kurtzbellman_rev1_test.m deleted file mode 100644 index 8e83539..0000000 --- a/matlab_code/kurtzbellman_rev1/kurtzbellman_rev1_test.m +++ /dev/null @@ -1,13 +0,0 @@ - clear all - close all - - w = zeros(1, 16); - err = 1; - while err > 0.001 - v = T(w); - err = max(abs(v - w)); - w = v; - hold on; - plot(w); - end - hold off; diff --git a/matlab_code/kurtzbellman_rev1/phi.m b/matlab_code/kurtzbellman_rev1/phi.m deleted file mode 100644 index ef8a5e9..0000000 --- a/matlab_code/kurtzbellman_rev1/phi.m +++ /dev/null @@ -1,25 +0,0 @@ -% Filename: phi.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: phi(z) in Listing 5.1 - -function [ dist ] = phi(Z) - -global B - -% Generate Z1 replacing zero elements with one, -% and more-than-B elements with zero for the subsequent line. -for i = 1:length(Z) - if Z(i) == 0 - Z(i) =1; - elseif Z(i)> B - Z(i)=0; - end -end - -% Probability mass function, uniform distribution. -% length Z(Z>0)) counts the number of positive intergers in Z. -dist = unidpdf(Z,length(Z(Z>0))); - -end - diff --git a/matlab_code/kurtzsigma_rev1/README.txt b/matlab_code/kurtzsigma_rev1/README.txt deleted file mode 100644 index cc346b4..0000000 --- a/matlab_code/kurtzsigma_rev1/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Listing 5.2 corresponds to kurtzvsigma_rev1.m. -In order to run the m file, you also need, in the same folder, m files for the two functions, phi and U that are employed for kurtzbellman_rev1.m. -You can run a sample program, kurtzsigma_rev1_test.m in a folder that contains kurtzvsigma_rev1, phi and U. \ No newline at end of file diff --git a/matlab_code/kurtzsigma_rev1/U.m b/matlab_code/kurtzsigma_rev1/U.m deleted file mode 100644 index fba0421..0000000 --- a/matlab_code/kurtzsigma_rev1/U.m +++ /dev/null @@ -1,14 +0,0 @@ -% Filename: U.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: U(c) in Listing 5.1 - -function [ utility ] = U( c ) -%UNTITLED4 Summary of this function goes here -% Detailed explanation goes here -global beta - -utility = c.^beta; - -end - diff --git a/matlab_code/kurtzsigma_rev1/kurtzsigma_rev1_test.m b/matlab_code/kurtzsigma_rev1/kurtzsigma_rev1_test.m deleted file mode 100644 index e297c80..0000000 --- a/matlab_code/kurtzsigma_rev1/kurtzsigma_rev1_test.m +++ /dev/null @@ -1,5 +0,0 @@ - clear all - close all - - sigma = ones(1,16); - kurtzvsigma_rev1(sigma) \ No newline at end of file diff --git a/matlab_code/kurtzsigma_rev1/kurtzvsigma_rev1.m b/matlab_code/kurtzsigma_rev1/kurtzvsigma_rev1.m deleted file mode 100644 index 047f10c..0000000 --- a/matlab_code/kurtzsigma_rev1/kurtzvsigma_rev1.m +++ /dev/null @@ -1,61 +0,0 @@ -% Filename: kurtzvsigma_rev1.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: Listing 5.2 - -% Note: See the comments below for an example of usage. - -function v_sigma = kurtzvsigma_rev1(sigma) - % Computes the value of following policy sigma. - - - % Copy of kurtzbellman_rev1 - global beta rho B M - beta = 0.5; - rho = 0.9; - B = 10; - M = 5; - S = [0:B+M]; % State space = 0,...,B + M - Z = [0:B]; % Shock space = 0,...,B - - - - % Set up the stochastic kernel p_sigma as a 2D array : - len = length(S); - p_sigma = zeros(len,len); - y = S; - for x = S - p_sigma(x+1,:) = phi(y - sigma(x+1)); - end - - % Create the right Markov operator M_sigma : - - % Set up the function r_sigma as an array : - % Initialize r_sigma into a column vector - - r_sigma = zeros(len,1); - for x = S - c = x-sigma(x+1); - if c <0 - c =0; - end - r_sigma(x+1) = U(c); - end - - v_sigma = zeros(len,1); - discount = 1; - for i=1:50 - v_sigma = v_sigma + discount * r_sigma; - M_sigma = p_sigma * r_sigma; - r_sigma = M_sigma; - discount = discount * rho; - end - - % Example of usage (put this in a separate file in the same - % directory as kutzvsigma_rev1.m / U.m / phi.m - % - % clear all - % close all - % - % sigma = ones(1,16); - % kurtzvsigma_rev1(sigma) \ No newline at end of file diff --git a/matlab_code/kurtzsigma_rev1/phi.m b/matlab_code/kurtzsigma_rev1/phi.m deleted file mode 100644 index ef8a5e9..0000000 --- a/matlab_code/kurtzsigma_rev1/phi.m +++ /dev/null @@ -1,25 +0,0 @@ -% Filename: phi.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: phi(z) in Listing 5.1 - -function [ dist ] = phi(Z) - -global B - -% Generate Z1 replacing zero elements with one, -% and more-than-B elements with zero for the subsequent line. -for i = 1:length(Z) - if Z(i) == 0 - Z(i) =1; - elseif Z(i)> B - Z(i)=0; - end -end - -% Probability mass function, uniform distribution. -% length Z(Z>0)) counts the number of positive intergers in Z. -dist = unidpdf(Z,length(Z(Z>0))); - -end - diff --git a/matlab_code/lininterp_rev1.m b/matlab_code/lininterp_rev1.m deleted file mode 100644 index e1dc413..0000000 --- a/matlab_code/lininterp_rev1.m +++ /dev/null @@ -1,17 +0,0 @@ -% Filename: lininterp_rev1.m -% Author: Tomohito Okabe -% Date: April 2013 -% Corresponds to: Listing 6.4 - -function g = lininterp_rev1(X,Y,z) - % Uses MATLAB's interp1 function for interpolation. - % The z values are truncated so that they lie inside - % the grid points. The effect is that evaluation of - % a point to the left of X(1) returns Y(1), while - % evaluation of a point to the right of X(end) returns - % Y(end) - - z = max(z, X(1)); - z = min(z, X(end)); - g = interp1(X, Y, z); -end diff --git a/matlab_code/p2srs_rev1.m b/matlab_code/p2srs_rev1.m deleted file mode 100644 index 44f4af0..0000000 --- a/matlab_code/p2srs_rev1.m +++ /dev/null @@ -1,30 +0,0 @@ -% Filename: p2srs_rev1.m -% Author: Tomohito Okabe -% Date: March 2013 -% Corresponds to: Listing 5.3 - - -function F = p2srs_rev1(x, z, p) - % Given a kernel p, takes p on S = {1,...,N}, - % and reurns F(x,z;p) which represents it as an SRS. - % Returns : A value (NOT a function!) of F - S = 1:length(p(1,:)); - a = 0; - for y = S - if a < z && z <= a + p(x,y) - F = y; - return; - end - a = a + p(x,y); - end -end - - -% Example of usage (put this in a separate file in the same directory). -% -% p = [0.971,0.029,0.000; -% 0.145,0.778,0.077; -% 0.000,0.508,0.492]; -% x = 2; -% z = 0.7; -% F = p2srs_rev1(x, z, p) % should return 2 diff --git a/matlab_code/polyclass0.m b/matlab_code/polyclass0.m deleted file mode 100644 index 5f0572c..0000000 --- a/matlab_code/polyclass0.m +++ /dev/null @@ -1,7 +0,0 @@ - -% Filename: polyclass0.m -% -% The MATLAB version of the Python code in polyclass0.py is omitted, since -% polyclass0.py is not real Python, but rather for illustration purposes -% only. Please see polyclass.m -% diff --git a/matlab_code/quadmap1.m b/matlab_code/quadmap1.m deleted file mode 100644 index d5f72d0..0000000 --- a/matlab_code/quadmap1.m +++ /dev/null @@ -1,12 +0,0 @@ -% Filename: quadmap1.m -% Author: Andy Qi -% Date: December 2008 -% Corresponds to: Listing 4.1 - -datapoints = zeros(1,200); -x = 0.11; -for t = 1:200 - datapoints(t) = x; - x = 4 * x * (1-x); -end -plot(datapoints) diff --git a/matlab_code/srs_testrs/README.txt b/matlab_code/srs_testrs/README.txt deleted file mode 100644 index 76b78c7..0000000 --- a/matlab_code/srs_testrs/README.txt +++ /dev/null @@ -1,2 +0,0 @@ -Listing 6.1 is divided into two functions, update and sample_path. -In order to run testsrs_rev1, you need, in the same folder, m files for the two functions, update and sample_path. \ No newline at end of file diff --git a/matlab_code/srs_testrs/sample_path.m b/matlab_code/srs_testrs/sample_path.m deleted file mode 100644 index bf0438b..0000000 --- a/matlab_code/srs_testrs/sample_path.m +++ /dev/null @@ -1,22 +0,0 @@ -% Filename: sample_path.m -% Author: Tomohito Okabe -% Date: March 2013 -% Corresponds to: sample_path in Listing 6.1 - -function path = sample_path(F, phi, X, n) - - global alpha sigma s delta; - - n = n-1; % Ajust the last period of path such that - % length equals n. - - path(1) = X; - - % Generate path of length n from current state. - for t= 1:n - X_next = update(F, phi(), X); - path(t+1) = X_next; - X = X_next; - end - -end \ No newline at end of file diff --git a/matlab_code/srs_testrs/testsrs_rev1.m b/matlab_code/srs_testrs/testsrs_rev1.m deleted file mode 100644 index c0115b9..0000000 --- a/matlab_code/srs_testrs/testsrs_rev1.m +++ /dev/null @@ -1,32 +0,0 @@ -% Filename: testsrs_rev1.m -% Author: Tomohito Okabe -% Date: March 2013 -% Corresponds to: Listing 6.2 - -clear all -close all - -% Set parameters -global alpha sigma s delta -alpha = 0.5; -sigma = 0.2; -s = 0.5; -delta = 0.1; - -% Define F(k, z) = s * k ^ alpha * z + (1 - delta ) * k -F = @(k,z) s * (k^alpha) * z + (1 - delta) * k; -lognorm = @() lognrnd(0,sigma); -X = 1; -T = 500; - -P1 = sample_path(F, lognorm, X, T); % Generate path from X = 1 - -X = 60; % Reset the current state -P2 = sample_path(F, lognorm, X, T); % Generate path from X = 60 - - -% The below are commands to plot the paths as figure 6.1 -% figure(1) -% plot(P1); -% hold on; -% plot(P2); \ No newline at end of file diff --git a/matlab_code/srs_testrs/update.m b/matlab_code/srs_testrs/update.m deleted file mode 100644 index 00b83be..0000000 --- a/matlab_code/srs_testrs/update.m +++ /dev/null @@ -1,12 +0,0 @@ -% Filename: update.m -% Author: Tomohito Okabe -% Date: March 2013 -% Corresponds to: update in Listing 6.1 - -function X_next = update(F, phi, X) - - global alpha sigma s delta ; - - X_next = F(X,phi); - -end diff --git a/matlab_code/testds_rev1.m b/matlab_code/testds_rev1.m deleted file mode 100644 index 60049b6..0000000 --- a/matlab_code/testds_rev1.m +++ /dev/null @@ -1,25 +0,0 @@ -% Filename: testds_rev1.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: Listing 4.3 - -% Clear all existing variables -clear all -% Close all figures -close all - -% Define function h as a function handle -quadmap = @(x)4 * x * (1 - x); - -% Set the initial state for T1 / the length of the trajectory -x1 = 0.1; -N = 100; - -% T1 holds tragectory from x1 -T1 = ds_rev1(quadmap,x1,N); - -% Set the initial state for T2 -x2 = 0.2; - -% T2 holds tragectory from x2 -T2 = ds_rev1(quadmap,x2,N); diff --git a/matlab_code/testgenfinitemc_rev1.m b/matlab_code/testgenfinitemc_rev1.m deleted file mode 100644 index 22103e0..0000000 --- a/matlab_code/testgenfinitemc_rev1.m +++ /dev/null @@ -1,27 +0,0 @@ -% Filename: testgenfinitemc_rev1.m -% Author: Tomohito Okabe -% Date: February 2013 -% Corresponds to: Listing 4.5 - -clear all -close all - -N = 1000; % Number of periods - -pH = [0.971,0.029,0.000; % Stochastic kernel - 0.145,0.778,0.077; - 0.000,0.508,0.492]; - -psi = [0.3,0.4,0.3]; % Initial condition -len = length(psi); -rs = randsample(len,1,true,psi); % Use randsample fuction returns i with - % probability phi[i], where phi serves - % as a vector of weights. -T1 = genfinitemc_rev1(pH,rs,N,len); % T1 holds Markov-(pH,psi) - - -psi2 = [0.8,0.1,0.1]; % Alternative initial cond. -len2 = length(psi2); -rs2 = randsample(len,1,true,psi2); -T2 = genfinitemc_rev1(pH,rs2,N,len2); % T2 holds Markov-(pH,psi2) - From 801ab9f687913216b4dbff4767886941eb06d35a Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Wed, 4 Aug 2021 10:21:40 +1000 Subject: [PATCH 02/24] misc --- .gitignore | 2 + code_book/ch2.ipynb | 34 +++++++++ code_book/ch2.md | 166 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 code_book/ch2.ipynb diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..58b0815 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.ipynb_checkpoints +*/.ipynb_checkpoints/* diff --git a/code_book/ch2.ipynb b/code_book/ch2.ipynb new file mode 100644 index 0000000..d0135ad --- /dev/null +++ b/code_book/ch2.ipynb @@ -0,0 +1,34 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 Code" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def τ(z, S, ϕ):\n", + " " + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "formats": "md:myst" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/code_book/ch2.md b/code_book/ch2.md index 06f989a..2d4a49b 100644 --- a/code_book/ch2.md +++ b/code_book/ch2.md @@ -15,4 +15,168 @@ kernelspec: # Chapter 2 Code -To be added. ++++ + +We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting. + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt +``` + +### Bisection + ++++ + +Here's an implementation of the bisection algorithm. We will test it on this function: + +```{code-cell} ipython3 +f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1 +``` + +The implementation: + +```{code-cell} ipython3 +M = 1000 +ϵ = 1e-8 +α, β = 0, 1 + + +i = 1 +a, b = α, β +while i <= M: + c = (a + b) / 2 + if abs(f(c)) < ϵ: + print(c) + break + i += 1 + if f(a) * f(c) < 0: + b = c + else: + a = c + +if i > M: + print("Failed to converge.") +``` + +### User Defined Functions + ++++ + +Here's the basic implementation of the function $\tau$. + +```{code-cell} ipython3 +def τ(z, S, ϕ): + """ + Evaluates the function τ(z) given data S, ϕ, where + S and ϕ are assumed to be arrays. + """ + a = 0 + for i, x in enumerate(S): + b = a + ϕ[i] + if a < z <= b: + return x + a = b +``` + +Here's a more efficient implementation. + +```{code-cell} ipython3 +def τ(z, S, ϕ): + i = np.searchsorted(np.cumsum(ϕ), z) + return S[i] +``` + +And here's a closure that generates the function $\tau$. + +```{code-cell} ipython3 +def τ_factory(S, ϕ): + Φ = np.cumsum(ϕ) + + def τ(z): + i = np.searchsorted(Φ, z) + return S[i] + + return τ +``` + +We generate a function $\tau$ that acts on $z$ alone by calling the function factory: + +```{code-cell} ipython3 +ϕ = 0.2, 0.5, 0.3 +S = 0, 1, 2 +τ = τ_factory(S, ϕ) +``` + +```{code-cell} ipython3 +τ(0.1) # Should be 0 +``` + +All of these functions work as expected. To illustrate, here $\tau$ is used to generate draws from a given distribution $\phi$. + +```{code-cell} ipython3 + +size = 100_000 + +draws = np.empty(size) +for j in range(size): + W = np.random.uniform() + draws[j] = τ(W) + +# Compute fraction of draws with each possible value +frequency = [np.mean(draws==j) for j in S] + +``` + +Let's check that the empirical frequency approximately coincides with the probabilities in $\phi$. + +```{code-cell} ipython3 +fig, ax = plt.subplots() + +ax.bar(S, frequency, + edgecolor='k', + facecolor='b', + alpha=0.25, + label="histogram") + +ax.stem(S, ϕ, label='$\\phi$') + +ax.legend() + +plt.show() +``` + +### Object Oriented Programming + ++++ + +Here's a class that implements the function $\tau$ as a method, as well as a method to generate draws from $\phi$. + +```{code-cell} ipython3 +class Tau: + + def __init__(self, S, ϕ): + self.S = S + self.Φ = np.cumsum(ϕ) + + def τ(self, z): + i = np.searchsorted(self.Φ, z) + return self.S[i] + + def draw(self): + W = np.random.uniform() + return self.τ(W) +``` + +```{code-cell} ipython3 +τ = Tau(S, ϕ) +``` + +```{code-cell} ipython3 +for i in range(5): + print(τ.draw()) +``` + +```{code-cell} ipython3 + +``` From c09eec90edb34bb43476d4b5a443c1e06c3ff023 Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Thu, 12 Aug 2021 10:27:33 +1000 Subject: [PATCH 03/24] misc --- .gitignore | 2 + code_book/_build/.doctrees/ch2.doctree | Bin 2438 -> 23601 bytes code_book/_build/.doctrees/ch4.doctree | Bin 112041 -> 413247 bytes code_book/_build/.doctrees/environment.pickle | Bin 24930 -> 33971 bytes code_book/_build/.doctrees/intro.doctree | Bin 8123 -> 11117 bytes code_book/_build/.jupyter_cache/global.db | Bin 36864 -> 90112 bytes code_book/_build/html/.buildinfo | 2 +- code_book/_build/html/_images/ch4_1_0.png | Bin 80306 -> 0 bytes code_book/_build/html/_sources/ch1.ipynb | 3 +- code_book/_build/html/_sources/ch2.ipynb | 391 +++- code_book/_build/html/_sources/ch2.md | 164 +- code_book/_build/html/_sources/ch3.ipynb | 3 +- code_book/_build/html/_sources/ch4.ipynb | 1626 ++++++++++++++++- code_book/_build/html/_sources/ch4.md | 743 +++++++- code_book/_build/html/_sources/intro.md | 53 +- code_book/_build/html/_static/basic.css | 26 +- code_book/_build/html/_static/doctools.js | 14 +- .../_build/html/_static/language_data.js | 6 +- code_book/_build/html/_static/pygments.css | 8 +- code_book/_build/html/_static/searchtools.js | 36 +- .../_build/html/_static/underscore-1.3.1.js | 999 ---------- code_book/_build/html/_static/underscore.js | 37 +- code_book/_build/html/ch1.html | 9 +- code_book/_build/html/ch2.html | 247 ++- code_book/_build/html/ch3.html | 10 +- code_book/_build/html/ch4.html | 932 +++++++++- code_book/_build/html/genindex.html | 15 +- code_book/_build/html/intro.html | 70 +- code_book/_build/html/objects.inv | 5 +- code_book/_build/html/reports/ch4.log | 68 +- code_book/_build/html/search.html | 16 +- code_book/_build/html/searchindex.js | 2 +- code_book/_build/jupyter_execute/ch1.ipynb | 3 +- code_book/_build/jupyter_execute/ch2.ipynb | 391 +++- code_book/_build/jupyter_execute/ch2.py | 181 +- code_book/_build/jupyter_execute/ch3.ipynb | 3 +- code_book/_build/jupyter_execute/ch4.ipynb | 1626 ++++++++++++++++- code_book/_build/jupyter_execute/ch4.py | 765 +++++++- code_book/_build/jupyter_execute/ch4.txt | 504 ++++- code_book/_build/jupyter_execute/ch4_1_0.png | Bin 80306 -> 0 bytes code_book/_toc.yml | 4 + code_book/ch2.ipynb | 34 - code_book/ch2.md | 50 +- code_book/ch4.md | 743 +++++++- code_book/intro.md | 53 +- 45 files changed, 8400 insertions(+), 1444 deletions(-) delete mode 100644 code_book/_build/html/_images/ch4_1_0.png delete mode 100644 code_book/_build/html/_static/underscore-1.3.1.js delete mode 100644 code_book/_build/jupyter_execute/ch4_1_0.png delete mode 100644 code_book/ch2.ipynb diff --git a/.gitignore b/.gitignore index 58b0815..b6643e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .ipynb_checkpoints +/_build */.ipynb_checkpoints/* +*/_build/* diff --git a/code_book/_build/.doctrees/ch2.doctree b/code_book/_build/.doctrees/ch2.doctree index ace2bd99f4f3400e30cd8f219ffbbfd2ef3403ff..b6e681c765f9ce25343ebfc0617a3d48af3b413b 100644 GIT binary patch literal 23601 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 diff --git a/code_book/_build/.doctrees/ch4.doctree b/code_book/_build/.doctrees/ch4.doctree index 1ccc76b740fc0e4c9ce35aa20f6066151670bfae..3ee30130ae2c8c31e870850d09922158f670c1c4 100644 GIT binary patch literal 413247 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 z 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

Q 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 &69Y|5xI%B|_751(s7p>9ns~sL4f$_f( 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 literal 112041 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

2K<3N&(AYUUAr6V;V>V`WoIJ9S{6EO$xF} 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%0Ao4F!a91%9Qx{dVkvd_~pp+3Y72uHv@cIV*mgE diff --git a/code_book/_build/.doctrees/environment.pickle b/code_book/_build/.doctrees/environment.pickle index 94549f477dd7742f94dbe17a57a96b6e204b6dfc..2e0ca92fa0dd451fd91ea6bfb37b32d3aa671aa3 100644 GIT binary patch literal 33971 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 delta 6924 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 MZyJj9l@0s<0q>{N5&!@I diff --git a/code_book/_build/.jupyter_cache/global.db b/code_book/_build/.jupyter_cache/global.db index a57f701f188578401d4aab42d93b1cb0334d502b..aed6d40a0cf6f8a83f0ffd94021c4632af192a51 100644 GIT binary patch literal 90112 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 delta 341 zcmZoTz}m2YX@V3R<3|Pt2F{5Jb|99X`-+VzbM!Y&U}qFGR4_8OGBva^G14&oG4S8v?cux0znwRo?;oEl zzXyLV-xgjcer3LXzAQck-i^H1cz^Rx+AJs_!pow8kK+XL;^rwZGEKhmPi0d8ivSM~PbdRVD9==$tGuF{MG_8jPn^&)`D(WH z<_S54!u(7(8CaO48Tc16RWV8PJ8f*_X5x(HW@l(*6y$ZB+&IB(@`W6h$!h)8EDQ`h fnLwwf@=RXXAI}!c2~smTuu@{O!gAHg$NOXeH&$aI diff --git a/code_book/_build/html/.buildinfo b/code_book/_build/html/.buildinfo index 3005264..4a2d398 100644 --- a/code_book/_build/html/.buildinfo +++ b/code_book/_build/html/.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: acc147b02162f445beb0ab2df4e0e3f4 +config: adefb9d0404b8de0f3ac54731ae36c39 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/code_book/_build/html/_images/ch4_1_0.png b/code_book/_build/html/_images/ch4_1_0.png deleted file mode 100644 index 1efe62508250859334b9c3339302efad5338b758..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80306 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 TNBgfx@}v0(oZfCIuW~%8k7sf=!M0~ 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 diff --git a/code_book/_build/html/_sources/ch1.ipynb b/code_book/_build/html/_sources/ch1.ipynb index 2a4224f..7344a3e 100644 --- a/code_book/_build/html/_sources/ch1.ipynb +++ b/code_book/_build/html/_sources/ch1.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "c783256b", "metadata": {}, "source": [ "# Chapter 1 Code\n", @@ -43,5 +44,5 @@ ] }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch2.ipynb b/code_book/_build/html/_sources/ch2.ipynb index a12e0f5..d312353 100644 --- a/code_book/_build/html/_sources/ch2.ipynb +++ b/code_book/_build/html/_sources/ch2.ipynb @@ -2,11 +2,366 @@ "cells": [ { "cell_type": "markdown", + "id": "e5556182", "metadata": {}, "source": [ - "# Chapter 2 Code\n", + "# Chapter 2 Code" + ] + }, + { + "cell_type": "markdown", + "id": "40231c74", + "metadata": {}, + "source": [ + "We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6aa68cab", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "6fa2772c", + "metadata": {}, + "source": [ + "## Bisection" + ] + }, + { + "cell_type": "markdown", + "id": "e35e3054", + "metadata": {}, + "source": [ + "Here's an implementation of the bisection algorithm. We will test it on this function:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "04b3f103", + "metadata": {}, + "outputs": [], + "source": [ + "f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1" + ] + }, + { + "cell_type": "markdown", + "id": "30e470e4", + "metadata": {}, + "source": [ + "The implementation:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "47d97ea8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.408293504267931\n" + ] + } + ], + "source": [ + "M = 1000\n", + "ϵ = 1e-8\n", + "α, β = 0, 1\n", + "\n", + " \n", + "i = 1\n", + "a, b = α, β\n", + "while i <= M:\n", + " c = (a + b) / 2\n", + " if abs(f(c)) < ϵ:\n", + " print(c)\n", + " break\n", + " i += 1\n", + " if f(a) * f(c) < 0:\n", + " b = c\n", + " else:\n", + " a = c\n", + " \n", + "if i > M:\n", + " print(\"Failed to converge.\")" + ] + }, + { + "cell_type": "markdown", + "id": "147c2a03", + "metadata": {}, + "source": [ + "## User Defined Functions" + ] + }, + { + "cell_type": "markdown", + "id": "8018f1c2", + "metadata": {}, + "source": [ + "Here's the basic implementation of the function $\\tau$." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6d5d5fd0", + "metadata": {}, + "outputs": [], + "source": [ + "def tau(z, S, phi):\n", + " \"\"\"\n", + " Evaluates the function tau(z) given data S, phi, where\n", + " S and phi are assumed to be arrays.\n", + " \"\"\"\n", + " a = 0\n", + " for i, x in enumerate(S):\n", + " b = a + phi[i]\n", + " if a < z <= b:\n", + " return x\n", + " a = b" + ] + }, + { + "cell_type": "markdown", + "id": "e5948a66", + "metadata": {}, + "source": [ + "Here's a more efficient implementation." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1f72ee83", + "metadata": {}, + "outputs": [], + "source": [ + "def tau(z, S, phi):\n", + " i = np.searchsorted(np.cumsum(phi), z)\n", + " return S[i]" + ] + }, + { + "cell_type": "markdown", + "id": "b4c1ae69", + "metadata": {}, + "source": [ + "And here's a closure that generates the function $\\tau$." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7071228b", + "metadata": {}, + "outputs": [], + "source": [ + "def tau_factory(S, phi):\n", + " Φ = np.cumsum(phi)\n", + " \n", + " def tau(z):\n", + " i = np.searchsorted(Φ, z)\n", + " return S[i]\n", + " \n", + " return tau" + ] + }, + { + "cell_type": "markdown", + "id": "221398c1", + "metadata": {}, + "source": [ + "We generate a function $\\tau$ that acts on $z$ alone by calling the function factory:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bee09a7f", + "metadata": {}, + "outputs": [], + "source": [ + "phi = 0.2, 0.5, 0.3\n", + "S = 0, 1, 2\n", + "tau = tau_factory(S, phi)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "54226172", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tau(0.1) # Should be 0" + ] + }, + { + "cell_type": "markdown", + "id": "88f28c1f", + "metadata": {}, + "source": [ + "All of these functions work as expected. To illustrate, here $\\tau$ is used to generate draws from a given distribution $\\phi$." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "ca3380d6", + "metadata": {}, + "outputs": [], + "source": [ + "size = 100_000\n", + "\n", + "draws = np.empty(size)\n", + "for j in range(size):\n", + " W = np.random.uniform()\n", + " draws[j] = tau(W)\n", + " \n", + "# Compute fraction of draws with each possible value\n", + "frequency = [np.mean(draws==j) for j in S]\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "e2850786", + "metadata": {}, + "source": [ + "Let's check that the empirical frequency approximately coincides with the probabilities in $\\phi$." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "107915f7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "

" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch2_21_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.bar(S, frequency, \n", + " edgecolor='k',\n", + " facecolor='b',\n", + " alpha=0.25, \n", + " label=\"histogram\")\n", + "\n", + "ax.stem(S, phi, label='$\\\\phi$')\n", + "\n", + "ax.legend()\n", "\n", - "To be added." + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "95a5d3a0", + "metadata": {}, + "source": [ + "## Object Oriented Programming" + ] + }, + { + "cell_type": "markdown", + "id": "646ff165", + "metadata": {}, + "source": [ + "Here's a class that implements the function $\\tau$ as a method, as well as a method to generate draws from $\\phi$." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "6a1cb12e", + "metadata": {}, + "outputs": [], + "source": [ + "class Tau:\n", + " \n", + " def __init__(self, S, phi):\n", + " self.S = S\n", + " self.Φ = np.cumsum(phi)\n", + " \n", + " def tau(self, z):\n", + " i = np.searchsorted(self.Φ, z)\n", + " return self.S[i]\n", + " \n", + " def draw(self):\n", + " W = np.random.uniform()\n", + " return self.tau(W)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "13694498", + "metadata": {}, + "outputs": [], + "source": [ + "tau = Tau(S, phi)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "6d09cfc5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "1\n", + "1\n" + ] + } + ], + "source": [ + "for i in range(5):\n", + " print(tau.draw())" ] } ], @@ -36,12 +391,38 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.7" + "version": "3.8.5" }, "source_map": [ - 14 + 14, + 18, + 22, + 25, + 29, + 33, + 35, + 39, + 60, + 64, + 68, + 80, + 84, + 88, + 92, + 101, + 105, + 111, + 113, + 117, + 129, + 133, + 147, + 151, + 155, + 171, + 175 ] }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch2.md b/code_book/_build/html/_sources/ch2.md index 06f989a..915a0c8 100644 --- a/code_book/_build/html/_sources/ch2.md +++ b/code_book/_build/html/_sources/ch2.md @@ -15,4 +15,166 @@ kernelspec: # Chapter 2 Code -To be added. ++++ + +We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting. + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt +``` + +## Bisection + ++++ + +Here's an implementation of the bisection algorithm. We will test it on this function: + +```{code-cell} ipython3 +f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1 +``` + +The implementation: + +```{code-cell} ipython3 +M = 1000 +ϵ = 1e-8 +α, β = 0, 1 + + +i = 1 +a, b = α, β +while i <= M: + c = (a + b) / 2 + if abs(f(c)) < ϵ: + print(c) + break + i += 1 + if f(a) * f(c) < 0: + b = c + else: + a = c + +if i > M: + print("Failed to converge.") +``` + +## User Defined Functions + ++++ + +Here's the basic implementation of the function $\tau$. + +```{code-cell} ipython3 +def tau(z, S, phi): + """ + Evaluates the function tau(z) given data S, phi, where + S and phi are assumed to be arrays. + """ + a = 0 + for i, x in enumerate(S): + b = a + phi[i] + if a < z <= b: + return x + a = b +``` + +Here's a more efficient implementation. + +```{code-cell} ipython3 +def tau(z, S, phi): + i = np.searchsorted(np.cumsum(phi), z) + return S[i] +``` + +And here's a closure that generates the function $\tau$. + +```{code-cell} ipython3 +def tau_factory(S, phi): + Φ = np.cumsum(phi) + + def tau(z): + i = np.searchsorted(Φ, z) + return S[i] + + return tau +``` + +We generate a function $\tau$ that acts on $z$ alone by calling the function factory: + +```{code-cell} ipython3 +phi = 0.2, 0.5, 0.3 +S = 0, 1, 2 +tau = tau_factory(S, phi) +``` + +```{code-cell} ipython3 +tau(0.1) # Should be 0 +``` + +All of these functions work as expected. To illustrate, here $\tau$ is used to generate draws from a given distribution $\phi$. + +```{code-cell} ipython3 + +size = 100_000 + +draws = np.empty(size) +for j in range(size): + W = np.random.uniform() + draws[j] = tau(W) + +# Compute fraction of draws with each possible value +frequency = [np.mean(draws==j) for j in S] + +``` + +Let's check that the empirical frequency approximately coincides with the probabilities in $\phi$. + +```{code-cell} ipython3 +fig, ax = plt.subplots() + +ax.bar(S, frequency, + edgecolor='k', + facecolor='b', + alpha=0.25, + label="histogram") + +ax.stem(S, phi, label='$\\phi$') + +ax.legend() + +plt.show() +``` + +## Object Oriented Programming + ++++ + +Here's a class that implements the function $\tau$ as a method, as well as a method to generate draws from $\phi$. + +```{code-cell} ipython3 +class Tau: + + def __init__(self, S, phi): + self.S = S + self.Φ = np.cumsum(phi) + + def tau(self, z): + i = np.searchsorted(self.Φ, z) + return self.S[i] + + def draw(self): + W = np.random.uniform() + return self.tau(W) +``` + +```{code-cell} ipython3 +tau = Tau(S, phi) +``` + +```{code-cell} ipython3 +for i in range(5): + print(tau.draw()) +``` + + diff --git a/code_book/_build/html/_sources/ch3.ipynb b/code_book/_build/html/_sources/ch3.ipynb index e43d556..bd65333 100644 --- a/code_book/_build/html/_sources/ch3.ipynb +++ b/code_book/_build/html/_sources/ch3.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "07367896", "metadata": {}, "source": [ "# Chapter 3 Code\n", @@ -43,5 +44,5 @@ ] }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch4.ipynb b/code_book/_build/html/_sources/ch4.ipynb index 5f298e1..8c83204 100644 --- a/code_book/_build/html/_sources/ch4.ipynb +++ b/code_book/_build/html/_sources/ch4.ipynb @@ -2,26 +2,53 @@ "cells": [ { "cell_type": "markdown", + "id": "1a899127", "metadata": {}, "source": [ - "# Chapter 4 Code" + "# Chapter 4 Code\n", + "\n", + "Let's start with some imports." ] }, { "cell_type": "code", "execution_count": 1, + "id": "acdfa84d", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from numba import jit\n", + "from quantecon import MarkovChain" + ] + }, + { + "cell_type": "markdown", + "id": "3977386b", + "metadata": {}, + "source": [ + "## Introduction to Dynamics\n", + "\n", + "Here's the code that generated figure 4.1." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ea812370", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_1_0.png" + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_3_0.png" }, "needs_background": "light" }, @@ -29,38 +56,99 @@ } ], "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", + "def draw_arrow(x, y, xp, yp, ax):\n", + " \"\"\"\n", + " Draw an arrow from (x, y) to (xp, yp).\n", + " \"\"\"\n", + " v1, v2 = xp - x, yp - y\n", + " eps = 1.0\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = 1.0\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.5,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", "\n", "xmin, xmax = -10.0, 10.0\n", "ymin, ymax = -5.0, 5.0\n", "\n", - "\n", "A1 = np.asarray([[0.55, -0.6],\n", " [0.5, 0.4]])\n", "\n", "def f(x, y): \n", " return A1 @ (x, y)\n", "\n", - "def draw_arrow(x, y, ax):\n", - " eps = 1.0\n", - " v1, v2 = f(x, y)\n", - " nrm = np.sqrt(v1**2 + v2**2)\n", - " scale = eps / nrm\n", - " ax.arrow(x, y, scale * v1, scale * v2,\n", - " antialiased=True, \n", - " alpha=0.4,\n", - " head_length=0.025*(xmax - xmin), \n", - " head_width=0.012*(xmax - xmin),\n", - " fill=False)\n", + "xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10)\n", + "ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "#ax.set_xlim(xmin, xmax)\n", + "#ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " xp, yp = f(x, y)\n", + " draw_arrow(x, y, xp, yp, ax)\n", + "\n", + "#plt.savefig(\"sdsdiagram.pdf\") # Uncomment to save figure\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "41487816", + "metadata": {}, + "source": [ + "And here's the code that generated figure 4.2." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ab7e131d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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oU+fPpVe9/T0xNPTk8LCQjZt2sSFCxe4cOECAKNGjRK+xNWguLiYnTt3Sp8bgJ+fH8bGxgwfPlzad+DAAUJDQ2nXrh1DhgyRviRVqZY1TUJCglRyLpPJpHxrQd1FZZGsToRQa4guXbqgUCj4999/0dHR4ZlnnrnnGGNjY6myUbXIpHpM9vDw4IUXXqjStrWholQqOXbsGP/++6+0r1mzZgwZMkSaTjh06JD02rp167h06RI9e/YkMDCQ8PBw9u7dS+vWrSuJeU2QmJgoPSEBvPPOO0+cay3QDtq2bcuWLVvIzc1VWwceIdQapGvXrigUCvbt24eOjg69evW677EeHh4EBwdTXFzM1q1buXTpkmSr+fLLL+Ph4VFbYWsd8fHx/PXXX5IFrYGBASNHjqRZs2b3Pefnn38mKyuLwYMH4+XlxY4dO4iIiKBr16707t27xmK7fv06S5culbanTJnyyMZMAu1GtX5x5swZevTooZ57qOWqgmrTvXt3FAoFBw4cQEdHh549ez7weENDQ1566SXgfwtRa9euBcDNzY0hQ4aoNTtBW8jOzmb9+vUkJydL+/r370/Hjh3vO6eclJREaWkpX3zxBbq6utJi7bJly7h27Rr9+vWjc+fONRLfjRs3Klnevv3225KHsaB+curUKSHU9Rm5XC5ZqOro6BAYGFit89zc3AgODqa0tJTt27dz4cIFvvnmG6DCF9nT01OdYdc6paWl7N69m4iICGmfr68vffv2xcDA4KHnL1myBEdHR8LDw+nVqxfHjh1j9uzZ6Onp8corr9CxY8cnjjEpKYnFixdL25MnT8bW1vaJryvQbtzc3Lh69arari971LZA1aFjx47K06dP1/h16zuqha1evXoREBDwWNf471xos2bNGDZsGKampjUUZe2iVCo5ffo0f//9t7RtY2ND37590dfXJz8/n4KCAvLz86v8d0FBgXStY8eOMXr0aJ5//nkKCwsJDg4mPT0dFxcXzM3Nn2huOjk5uVKHn0mTJmFnZ/dkb15QZ1CtId2d+vmoyGSyCKVSWeVoQYyotYigoCAUCgX79+9HR0eHbt26PfI1XF1dCQ4OpqysjF27dnHmzBm+++47oCIlrX379jUcdWXKy8slgXyYiObn51NYWFjldXJycjh//nylEnsvLy+sra3JysqSikOqg6mpKSYmJnh6emJra8ul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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_5_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ "\n", - "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20)\n", - "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20)\n", + "def draw_trajectory(x, y, ax, n=10):\n", + " \"\"\"\n", + " Draw the trajectory of length n starting from (x, y).\n", + " \"\"\"\n", + " for i in range(n):\n", + " x_new, y_new = f(x, y)\n", + " draw_arrow(x, y, x_new, y_new, ax)\n", + " x, y = x_new, y_new\n", + " \n", + "xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3)\n", + "ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3)\n", "\n", "fig, ax = plt.subplots()\n", "\n", - "ax.set_xlim(xmin, xmax)\n", - "ax.set_ylim(ymin, ymax)\n", + "#ax.set_xlim(xmin, xmax)\n", + "#ax.set_ylim(ymin, ymax)\n", "\n", "ax.set_xticks((0,))\n", "ax.set_yticks((0,))\n", @@ -68,17 +156,1426 @@ "\n", "for x in xgrid:\n", " for y in ygrid:\n", - " draw_arrow(x, y, ax)\n", + " draw_trajectory(x, y, ax)\n", "\n", + "#plt.savefig(\"sdsstable.pdf\") # Uncomment to save figure\n", "plt.show()" ] }, + { + "cell_type": "markdown", + "id": "462efab8", + "metadata": {}, + "source": [ + "## Chaotic Dynamics\n", + "\n", + "Just for fun, here's a little class that allows us to simulate trajectories\n", + "from a specified dynamical system:" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, + "id": "ba3dd140", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "class DS:\n", + "\n", + " def __init__(self, h=None, x=None):\n", + " \"\"\"Parameters: h is a function and x is an \n", + " element of S representing the current state.\"\"\"\n", + " self.h, self.x = h, x\n", + "\n", + " def update(self):\n", + " \"Update the state of the system by applying h.\"\n", + " self.x = self.h(self.x)\n", + "\n", + " def trajectory(self, n):\n", + " \"\"\"Generate a trajectory of length n, starting \n", + " at the current state.\"\"\"\n", + " traj = []\n", + " for i in range(n):\n", + " traj.append(self.x)\n", + " self.update()\n", + " return traj" + ] + }, + { + "cell_type": "markdown", + "id": "fc200a36", + "metadata": {}, + "source": [ + "As in the textbook, let's plot a trajectory starting from 0.11." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bfedf943", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_9_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "q = DS(h=lambda x: 4 * x * (1 - x), x=0.11)\n", + "t = q.trajectory(200)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(t)\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "25f68db6", + "metadata": {}, + "source": [ + "Now let's generate a histograms from a long trajectory, to address exercise\n", + "4.16." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4396e4de", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_11_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "q.x = 0.11\n", + "t = q.trajectory(5000)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.hist(t, bins=40, alpha=0.5, edgecolor='k')\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "fae3feb8", + "metadata": {}, + "source": [ + "If you experiment with different initial conditions you will find that, for\n", + "all most all choices, the histogram looks the same." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ce4a0a89", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_13_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "q.x = 0.65\n", + "t = q.trajectory(5000)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.hist(t, bins=40, alpha=0.5, edgecolor='k')\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "7af01fd8", + "metadata": {}, + "source": [ + "What we have learned is that, although the trajectories seem very random, when\n", + "we take a statistical perspective we can make predictions.\n", + "\n", + "In particular, we can say what will happen \"one average, in the long run.\"\n", + "\n", + "\n", + "Here's the set of maps." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d924f394", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_15_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "xgrid = np.linspace(0, 1, 100)\n", + "\n", + "h = lambda x, r: r * x * (1 - x)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(xgrid, xgrid, '-', color='grey')\n", + "\n", + "r = 0\n", + "step = 0.3\n", + "\n", + "while r <= 4:\n", + " y = [h(x, r) for x in xgrid]\n", + " ax.plot(xgrid, y)\n", + " r = r + step\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "944ea062", + "metadata": {}, + "source": [ + "Here's the bifurcation diagram." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "9548b412", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_17_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "q = DS(h=None, x=0.1)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "r = 2.5\n", + "while r < 4:\n", + " q.h = lambda x: r * x * (1 - x)\n", + " t = q.trajectory(1000)[950:]\n", + " ax.plot([r] * len(t), t, 'k.', ms=0.4)\n", + " r = r + 0.005\n", + "\n", + "ax.set_xlabel(r'$r$', fontsize=16)\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "d402f68e", + "metadata": {}, + "source": [ + "## Markov Chains\n", + "\n", + "\n", + "Our first task is to simulate time series from Hamilton's Markov chain" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "dd7f3988", + "metadata": {}, + "outputs": [], + "source": [ + "pH = ((0.971, 0.029, 0.000), # Hamilton's kernel\n", + " (0.145, 0.778, 0.077),\n", + " (0.000, 0.508, 0.492))\n", + "\n", + "pH = np.array(pH) # Convert to numpy array\n", + "\n", + "S = np.array((0, 1, 2))" + ] + }, + { + "cell_type": "markdown", + "id": "1dae9dff", + "metadata": {}, + "source": [ + "We'll borrow this code from Chapter 2." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "db2e4615", + "metadata": {}, + "outputs": [], + "source": [ + "@jit\n", + "def tau(z, S, phi):\n", + " i = np.searchsorted(np.cumsum(phi), z)\n", + " return S[i]" + ] + }, + { + "cell_type": "markdown", + "id": "e4b044b0", + "metadata": {}, + "source": [ + "(We have targeted the function for JIT compilation via `@jit` because we need\n", + "fast execution below.)\n", + "\n", + "As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`.\n", + "\n", + "Here's some code to generate a trajectory starting at $x \\in S$, using\n", + "stochastic kernel $p$." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "c1e29b48", + "metadata": {}, + "outputs": [], + "source": [ + "def trajectory(x, p, S, n=100):\n", + "\n", + " X = np.empty(n, dtype=int)\n", + " X[0] = x\n", + " for t in range(n-1):\n", + " W = np.random.rand()\n", + " X[t+1] = tau(W, S, p[X[t], :])\n", + " return X" + ] + }, + { + "cell_type": "markdown", + "id": "c9944b49", + "metadata": {}, + "source": [ + "Let's plot a trajectory." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "40bd805f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_25_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "X = trajectory(0, pH, S, n=500)\n", + "\n", + "ax.plot(X)\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "5fbbd05e", + "metadata": {}, + "source": [ + "Another option is to use existing code from QuantEcon. This code is\n", + "JIT-compiled and very fast." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "6833bc8a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_27_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "mc = MarkovChain(pH, state_values=S)\n", + "X = mc.simulate(init=0, ts_length=500)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(X)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "edae1cc7", + "metadata": {}, + "source": [ + "Here's a solution to exercises 4.23." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "0e04b296", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.59744" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "@jit\n", + "def compute_marginal(n=100_000, T=10):\n", + " X_vals = np.empty(n)\n", + "\n", + " for i in range(n):\n", + " X = 2 # start in state SR\n", + " for t in range(T):\n", + " W = np.random.rand()\n", + " X = tau(W, S, pH[X, :])\n", + " X_vals[i] = X\n", + " return np.mean(X_vals == 0)\n", + "\n", + "compute_marginal()" + ] + }, + { + "cell_type": "markdown", + "id": "f9815ab5", + "metadata": {}, + "source": [ + "The answer is close to 0.6, as expected.\n", + "\n", + "\n", + "Here's a solution to exercise 4.24." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "c840f550", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.5999" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "@jit\n", + "def compute_marginal_2(n=100_000, T=10):\n", + " counter = 0\n", + "\n", + " for i in range(n):\n", + " X = 2 # start in state SR\n", + " for t in range(T):\n", + " W = np.random.rand()\n", + " X = tau(W, S, pH[X, :])\n", + " if X == 0:\n", + " counter += 1\n", + "\n", + " return counter / n\n", + "\n", + "compute_marginal_2()" + ] + }, + { + "cell_type": "markdown", + "id": "c92cfaf7", + "metadata": {}, + "source": [ + "Here's a solution to exercise 4.29." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "7da9bf60", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "885.347632676323\n" + ] + } + ], + "source": [ + "T = 5\n", + "psi = (1, 0, 0) # start in NG\n", + "h = (1000, 0, -1000) # profits\n", + "\n", + "for t in range(T):\n", + " psi = psi @ pH\n", + "\n", + "print(psi @ h)" + ] + }, + { + "cell_type": "markdown", + "id": "3ad32b81", + "metadata": {}, + "source": [ + "Now let's see what happens when we start in severe recession." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "05c25dbe", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "217.74304876607997\n" + ] + } + ], + "source": [ + "psi = (0, 0, 1) \n", + "\n", + "for t in range(T):\n", + " psi = psi @ pH\n", + "\n", + "print(psi @ h)" + ] + }, + { + "cell_type": "markdown", + "id": "5ce8822d", + "metadata": {}, + "source": [ + "Profits are much lower because the Markov chain is relatively persistent,\n", + "implying that starting in recession increases the probability of recession at\n", + "date $t=5$.\n", + "\n", + "\n", + "Here's a solution to exercise 4.30." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "19a34421", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Profits in state 0 at date 1000 equals 788.1599999999967\n", + "Profits in state 1 at date 1000 equals 788.1599999999974\n", + "Profits in state 2 at date 1000 equals 788.1599999999972\n" + ] + } + ], + "source": [ + "T = 1000\n", + "\n", + "for i in (0, 1, 2):\n", + " psi = np.zeros(3)\n", + " psi[i] = 1\n", + " for t in range(T):\n", + " psi = psi @ pH\n", + " print(f\"Profits in state {i} at date {T} equals {psi @ h}\")" + ] + }, + { + "cell_type": "markdown", + "id": "dbb94562", + "metadata": {}, + "source": [ + "Notice that profits are almost invariant with respect to the initial\n", + "condition.\n", + "\n", + "This is due to inherent stability of the kernel, which implies that initial\n", + "conditions become irrelevant after sufficient time has elapsed.\n", + "\n", + "Here's a solution to exercise 4.31." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "899df564", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "385.45189053788556\n" + ] + } + ], + "source": [ + "T = 5\n", + "psi = (0.2, 0.2, 0.6) \n", + "\n", + "for t in range(T):\n", + " psi = psi @ pH\n", + "\n", + "print(psi @ h)" + ] + }, + { + "cell_type": "markdown", + "id": "96a6d8f0", + "metadata": {}, + "source": [ + "Here's a solution to exercise 4.32." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "5f72d86f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0008410000000000001\n" + ] + } + ], + "source": [ + "def path_prob(p, psi, X): # X gives a time path\n", + " prob = psi[X[0]]\n", + " for t in range(len(X)-1):\n", + " prob = prob * p[X[t], X[t+1]]\n", + " return prob\n", + "\n", + "psi = np.array((0.2, 0.2, 0.6))\n", + "prob = path_prob(pH, psi, (0, 1, 0))\n", + "\n", + "print(prob)" + ] + }, + { + "cell_type": "markdown", + "id": "824ca72b", + "metadata": {}, + "source": [ + "Here's a solution to exercise 4.33." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "ce450db8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.704242\n" + ] + } + ], + "source": [ + "counter = 0\n", + "recession_states = 1, 2\n", + "for x0 in recession_states:\n", + " for x1 in recession_states:\n", + " for x2 in recession_states:\n", + " path = x0, x1, x2\n", + " counter += path_prob(pH, psi, path)\n", + "\n", + "print(counter)" + ] + }, + { + "cell_type": "markdown", + "id": "c13139d3", + "metadata": {}, + "source": [ + "Here's a solution to exercise 4.34." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "94054878", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.7085" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "counter = 0\n", + "m = 10_000\n", + "mc = MarkovChain(pH)\n", + "\n", + "for i in range(m):\n", + " x0 = tau(np.random.rand(), S, psi)\n", + " X = mc.simulate(init=x0, ts_length=3)\n", + " if 0 not in X:\n", + " counter += 1\n", + "\n", + "print(counter / m)" + ] + }, + { + "cell_type": "markdown", + "id": "528fa1d5", + "metadata": {}, + "source": [ + "Next we turn to exercise 4.36." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "643329b7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_47_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "max_T = 12\n", + "T_vals = range(max_T)\n", + "profits = []\n", + "r = 0.05\n", + "rho = 1 / (1+r)\n", + "\n", + "psi = (0.2, 0.2, 0.6) \n", + "h = (1000, 0, -1000) \n", + "current_profits = np.inner(psi, h)\n", + "discount = rho\n", + "Q = np.identity(3)\n", + "\n", + "for t in T_vals:\n", + " Q = Q @ pH\n", + " discount = discount * rho\n", + " current_profits += discount * np.inner(psi, Q @ h)\n", + " profits.append(current_profits)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(profits, label='profits')\n", + "ax.plot(np.zeros(max_T), '--', label='break even')\n", + "ax.set_xlabel('time')\n", + "ax.legend()\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "07b8029a", + "metadata": {}, + "source": [ + "Here's figure 4.11." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "e03f0611", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_49_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00),\n", + " (0.05 , 0.92 , 0.03 , 0.00 , 0.00),\n", + " (0.00 , 0.04 , 0.92 , 0.04 , 0.00),\n", + " (0.00 , 0.00 , 0.04 , 0.94 , 0.02),\n", + " (0.00 , 0.00 , 0.00 , 0.01 , 0.99))\n", + "\n", + "p_Q = np.array(p_Q)\n", + "states = 0, 1, 2, 3, 4\n", + "dates = 10, 60, 160\n", + "initial_states = 0, 4\n", + "\n", + "rows, cols = 2, 3\n", + "fig, axes = plt.subplots(rows, cols)\n", + "\n", + "for row, init in enumerate(initial_states):\n", + " psi = np.zeros(5)\n", + " psi[init] = 1\n", + " for col, d in enumerate(dates):\n", + " ax = axes[row, col]\n", + " ax.bar(states, \n", + " psi @ np.linalg.matrix_power(p_Q, d), \n", + " alpha=0.5,\n", + " edgecolor='k')\n", + " ax.set_title(f\"$X_0 = {init}, t = {d}$\")\n", + " ax.set_ylabel(\"prob\")\n", + " ax.set_xlabel(\"state\")\n", + "\n", + "plt.tight_layout()\n", + "\n", + "#plt.savefig(\"dds2.pdf\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "d6d5856d", + "metadata": {}, + "source": [ + "And here's figure 4.12." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "622c25b4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_51_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "dates = 160, 500, 1000\n", + "\n", + "fig, axes = plt.subplots(rows, cols)\n", + "\n", + "for row, init in enumerate(initial_states):\n", + " psi = np.zeros(5)\n", + " psi[init] = 1\n", + " for col, d in enumerate(dates):\n", + " ax = axes[row, col]\n", + " ax.bar(states, \n", + " psi @ np.linalg.matrix_power(p_Q, d), \n", + " alpha=0.5,\n", + " edgecolor='k')\n", + " ax.set_title(f\"$X_0 = {init}, t = {d}$\")\n", + " ax.set_ylabel(\"prob\")\n", + " ax.set_xlabel(\"state\")\n", + "\n", + "plt.tight_layout()\n", + "\n", + "#plt.savefig(\"dds3.pdf\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "93f0a81b", + "metadata": {}, + "source": [ + "Next we turn to exercise 4.42.\n", + "\n", + "First here's a function to compute the stationary distribution, assuming it is\n", + "unique." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "4004571d", + "metadata": {}, + "outputs": [], + "source": [ + "from numpy.linalg import solve\n", + "\n", + "def compute_stationary(p):\n", + " N = p.shape[0]\n", + " I = np.identity(N)\n", + " O = np.ones((N, N))\n", + " A = I - p + O\n", + " return solve(A.T, np.ones((N, 1))).flatten()\n" + ] + }, + { + "cell_type": "markdown", + "id": "a111a149", + "metadata": {}, + "source": [ + "Now let's apply it to `p_Q`." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "7addc2f4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_55_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "psi_star = compute_stationary(p_Q)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.bar(states, psi_star, alpha=0.5, edgecolor='k')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "5b305033", + "metadata": {}, + "source": [ + "As expected, the distribution is very similar to the time 1,000 distribution\n", + "we obtained above by shifting forward in time.\n", + "\n", + "\n", + "Now let's look at exercise 4.43." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "c91e4b92", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "788.1600000000004\n" + ] + } + ], + "source": [ + "psi_star = compute_stationary(pH) \n", + "print(np.inner(psi_star, h))" + ] + }, + { + "cell_type": "markdown", + "id": "615c9dcb", + "metadata": {}, + "source": [ + "If we compute profits at $t=1000$, starting from a range of initial\n", + "conditions, we get very similar results." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "a13b5567", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "788.1599999999779\n", + "788.1599999999786\n", + "788.1599999999784\n" + ] + } + ], + "source": [ + "pT = np.linalg.matrix_power(pH, 1000)\n", + "psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1)\n", + "\n", + "for psi in psi_vecs:\n", + " print(np.inner(psi, pT @ h))" + ] + }, + { + "cell_type": "markdown", + "id": "5c48edc5", + "metadata": {}, + "source": [ + "This is not surprising, since `p_H` is globally stable.\n", + "\n", + "\n", + "Here's the solution to exercise 4.57, which computes mean return time.\n", + "\n", + "I'll use JIT compilation to make the code fast." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "ac42e418", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1.22771, 6.14, 40.60528]" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "@jit\n", + "def compute_return_time(x, p, max_iter=100_000):\n", + " X = x\n", + " t = 0\n", + " while t < max_iter:\n", + " W = np.random.rand()\n", + " X = tau(W, S, pH[X, :])\n", + " t += 1\n", + " if X == x:\n", + " return t\n", + "\n", + "@jit\n", + "def compute_mean_return_time(x, p, n=100_000):\n", + " counter = 0\n", + " for i in range(n):\n", + " counter += compute_return_time(x, p)\n", + " return counter / n\n", + "\n", + "\n", + "[compute_mean_return_time(i, pH) for i in range(3)]\n" + ] + }, + { + "cell_type": "markdown", + "id": "b95f0859", + "metadata": {}, + "source": [ + "For comparison:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "0f54da65", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1.23031496, 6.1515748 , 40.58441558])" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "psi_star = compute_stationary(pH)\n", + "1/ psi_star\n" + ] + }, + { + "cell_type": "markdown", + "id": "8b15692a", + "metadata": {}, + "source": [ + "As predicted by the theory, the values are approximately equal.\n", + "\n", + "\n", + "Now let's turn to the inventory model." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "b520cd38", + "metadata": {}, + "outputs": [], + "source": [ + "def b(d):\n", + " \" Returns probability that demand = d.\"\n", + " return (d >= 0) * (1/2)**(d + 1)\n", + "\n", + "def h(x, q, Q):\n", + " return x + (Q - x) * (x <= q)\n", + "\n", + "def build_p(q=2, Q=5): \n", + " p = np.empty((Q+1, Q+1))\n", + " for x in range(Q+1):\n", + " for y in range(Q+1):\n", + " if y == 0:\n", + " p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q)\n", + " else:\n", + " p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y\n", + "\n", + " return p\n" + ] + }, + { + "cell_type": "markdown", + "id": "7cd17bfd", + "metadata": {}, + "source": [ + "Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the\n", + "one shown in the text." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "e52e7d00", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.0625, 0.0625, 0.125 , 0.25 , 0.25 , 0.25 ])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p = build_p()\n", + "compute_stationary(p)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "86922d14", + "metadata": {}, + "source": [ + "Yep, looks good.\n", + "\n", + "Now let's check that the optimal policy agrees with $q=7$, as claimed in the text." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "4ded625d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Q = 20 # inventory upper bound\n", + "C = 0.1 # cost of restocking\n", + "\n", + "# profit given state x, demand d, policy q\n", + "def profit(x, d, q):\n", + " stock = h(x, q, Q)\n", + " revenue = stock if stock < d else d\n", + " cost = C * (x <= q)\n", + " return revenue - cost\n", + "\n", + "# expected profit given x and policy q\n", + "def g(x, q):\n", + " counter = 0\n", + " for d in range(1000):\n", + " counter += profit(x, d, q) * b(d)\n", + " return counter\n", + "\n", + "def profit_at_stationary(q):\n", + " p = build_p(q=q, Q=Q)\n", + " stationary = compute_stationary(p)\n", + " counter = 0\n", + " for x in range(Q+1):\n", + " counter += g(x, q) * stationary[x]\n", + " return counter\n", + " \n", + "def compute_optimal_policy():\n", + " running_max = -np.inf\n", + " for q in range(Q+1):\n", + " counter = profit_at_stationary(q)\n", + " if counter > running_max:\n", + " running_max = counter\n", + " argmax = q\n", + " return(argmax)\n", + "\n", + "compute_optimal_policy()" + ] + }, + { + "cell_type": "markdown", + "id": "cf28ff4c", + "metadata": {}, + "source": [ + "Here's a solution for exercise 4.61. From preceding calculations we have\n", + "the stationary probability assigned to normal growth:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "9c2374fa", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8128000000000003" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "psi_star = compute_stationary(pH) \n", + "psi_star[0]" + ] + }, + { + "cell_type": "markdown", + "id": "060d3023", + "metadata": {}, + "source": [ + "The fraction of the time a long path spends in this state can be calculated as\n", + "follows." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "16ca34ba", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.810454" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "T = 1_000_000\n", + "mc = MarkovChain(pH)\n", + "X = mc.simulate(init=0, ts_length=T)\n", + "np.mean(X == 0)" + ] + }, + { + "cell_type": "markdown", + "id": "5ad51e47", + "metadata": {}, + "source": [ + "As expected given the LLN results for stable Markov chains, the two numbers are approximately equal.\n", + "\n", + "\n", + "Finally, let's look at the expected profits question in exercise 4.63.\n", + "\n", + "Previously we calculated steady state profits via" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "a7a2a773", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "788.1600000000004\n" + ] + } + ], + "source": [ + "h = (1000, 0, -1000)\n", + "psi_star = compute_stationary(pH) \n", + "print(np.inner(psi_star, h))" + ] + }, + { + "cell_type": "markdown", + "id": "7635d1dd", + "metadata": {}, + "source": [ + "To check that we get approximately the same results when simulating a long\n", + "time series, we can calculate as follows." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "889200b3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "785.87" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = [h[x] for x in X]\n", + "np.mean(y)" + ] } ], "metadata": { @@ -111,10 +1608,85 @@ }, "source_map": [ 14, - 18, - 63 + 20, + 25, + 32, + 77, + 82, + 112, + 121, + 141, + 146, + 157, + 163, + 173, + 179, + 189, + 200, + 220, + 226, + 242, + 251, + 259, + 265, + 270, + 280, + 289, + 293, + 301, + 307, + 315, + 320, + 334, + 342, + 358, + 363, + 372, + 376, + 383, + 393, + 402, + 412, + 420, + 424, + 435, + 439, + 449, + 454, + 466, + 470, + 497, + 502, + 534, + 540, + 562, + 570, + 580, + 584, + 592, + 601, + 604, + 609, + 615, + 624, + 646, + 650, + 654, + 661, + 680, + 686, + 692, + 698, + 734, + 741, + 744, + 750, + 755, + 765, + 769, + 775 ] }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch4.md b/code_book/_build/html/_sources/ch4.md index d12033c..4a4207b 100644 --- a/code_book/_build/html/_sources/ch4.md +++ b/code_book/_build/html/_sources/ch4.md @@ -15,39 +15,53 @@ kernelspec: # Chapter 4 Code +Let's start with some imports. + ```{code-cell} ipython3 import numpy as np import matplotlib.pyplot as plt +from numba import jit +from quantecon import MarkovChain +``` -xmin, xmax = -10.0, 10.0 -ymin, ymax = -5.0, 5.0 +## Introduction to Dynamics +Here's the code that generated figure 4.1. -A1 = np.asarray([[0.55, -0.6], - [0.5, 0.4]]) -def f(x, y): - return A1 @ (x, y) +```{code-cell} ipython3 -def draw_arrow(x, y, ax): +def draw_arrow(x, y, xp, yp, ax): + """ + Draw an arrow from (x, y) to (xp, yp). + """ + v1, v2 = xp - x, yp - y eps = 1.0 - v1, v2 = f(x, y) nrm = np.sqrt(v1**2 + v2**2) - scale = eps / nrm + scale = 1.0 ax.arrow(x, y, scale * v1, scale * v2, antialiased=True, - alpha=0.4, + alpha=0.5, head_length=0.025*(xmax - xmin), head_width=0.012*(xmax - xmin), fill=False) -xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20) -ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20) +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + +A1 = np.asarray([[0.55, -0.6], + [0.5, 0.4]]) + +def f(x, y): + return A1 @ (x, y) + +xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10) +ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10) fig, ax = plt.subplots() -ax.set_xlim(xmin, xmax) -ax.set_ylim(ymin, ymax) +#ax.set_xlim(xmin, xmax) +#ax.set_ylim(ymin, ymax) ax.set_xticks((0,)) ax.set_yticks((0,)) @@ -55,11 +69,710 @@ ax.grid() for x in xgrid: for y in ygrid: - draw_arrow(x, y, ax) + xp, yp = f(x, y) + draw_arrow(x, y, xp, yp, ax) + +#plt.savefig("sdsdiagram.pdf") # Uncomment to save figure +plt.show() +``` + + +And here's the code that generated figure 4.2. + +```{code-cell} ipython3 + + +def draw_trajectory(x, y, ax, n=10): + """ + Draw the trajectory of length n starting from (x, y). + """ + for i in range(n): + x_new, y_new = f(x, y) + draw_arrow(x, y, x_new, y_new, ax) + x, y = x_new, y_new + +xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3) +ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3) + +fig, ax = plt.subplots() + +#ax.set_xlim(xmin, xmax) +#ax.set_ylim(ymin, ymax) + +ax.set_xticks((0,)) +ax.set_yticks((0,)) +ax.grid() + +for x in xgrid: + for y in ygrid: + draw_trajectory(x, y, ax) + +#plt.savefig("sdsstable.pdf") # Uncomment to save figure +plt.show() +``` + + +## Chaotic Dynamics + +Just for fun, here's a little class that allows us to simulate trajectories +from a specified dynamical system: + + +```{code-cell} ipython3 +class DS: + + def __init__(self, h=None, x=None): + """Parameters: h is a function and x is an + element of S representing the current state.""" + self.h, self.x = h, x + + def update(self): + "Update the state of the system by applying h." + self.x = self.h(self.x) + + def trajectory(self, n): + """Generate a trajectory of length n, starting + at the current state.""" + traj = [] + for i in range(n): + traj.append(self.x) + self.update() + return traj +``` + +As in the textbook, let's plot a trajectory starting from 0.11. + + +```{code-cell} ipython3 + + +q = DS(h=lambda x: 4 * x * (1 - x), x=0.11) +t = q.trajectory(200) + +fig, ax = plt.subplots() +ax.plot(t) + +plt.show() + +``` + +Now let's generate a histograms from a long trajectory, to address exercise +4.16. + + +```{code-cell} ipython3 + +q.x = 0.11 +t = q.trajectory(5000) + +fig, ax = plt.subplots() +ax.hist(t, bins=40, alpha=0.5, edgecolor='k') + +plt.show() + +``` + +If you experiment with different initial conditions you will find that, for +all most all choices, the histogram looks the same. + + +```{code-cell} ipython3 + +q.x = 0.65 +t = q.trajectory(5000) + +fig, ax = plt.subplots() +ax.hist(t, bins=40, alpha=0.5, edgecolor='k') + +plt.show() + +``` + +What we have learned is that, although the trajectories seem very random, when +we take a statistical perspective we can make predictions. + +In particular, we can say what will happen "one average, in the long run." + + +Here's the set of maps. + + +```{code-cell} ipython3 + +xgrid = np.linspace(0, 1, 100) + +h = lambda x, r: r * x * (1 - x) + +fig, ax = plt.subplots() + +ax.plot(xgrid, xgrid, '-', color='grey') + +r = 0 +step = 0.3 + +while r <= 4: + y = [h(x, r) for x in xgrid] + ax.plot(xgrid, y) + r = r + step + +plt.show() + +``` + +Here's the bifurcation diagram. + + + +```{code-cell} ipython3 + +q = DS(h=None, x=0.1) + +fig, ax = plt.subplots() + +r = 2.5 +while r < 4: + q.h = lambda x: r * x * (1 - x) + t = q.trajectory(1000)[950:] + ax.plot([r] * len(t), t, 'k.', ms=0.4) + r = r + 0.005 + +ax.set_xlabel(r'$r$', fontsize=16) +plt.show() + +``` + + +## Markov Chains + + +Our first task is to simulate time series from Hamilton's Markov chain + + +```{code-cell} ipython3 +pH = ((0.971, 0.029, 0.000), # Hamilton's kernel + (0.145, 0.778, 0.077), + (0.000, 0.508, 0.492)) + +pH = np.array(pH) # Convert to numpy array + +S = np.array((0, 1, 2)) +``` + + +We'll borrow this code from Chapter 2. + + +```{code-cell} ipython3 +@jit +def tau(z, S, phi): + i = np.searchsorted(np.cumsum(phi), z) + return S[i] +``` + +(We have targeted the function for JIT compilation via `@jit` because we need +fast execution below.) + +As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`. + +Here's some code to generate a trajectory starting at $x \in S$, using +stochastic kernel $p$. + +```{code-cell} ipython3 +def trajectory(x, p, S, n=100): + + X = np.empty(n, dtype=int) + X[0] = x + for t in range(n-1): + W = np.random.rand() + X[t+1] = tau(W, S, p[X[t], :]) + return X +``` + +Let's plot a trajectory. + +```{code-cell} ipython3 +fig, ax = plt.subplots() + +X = trajectory(0, pH, S, n=500) + +ax.plot(X) +plt.show() + +``` + +Another option is to use existing code from QuantEcon. This code is +JIT-compiled and very fast. + + +```{code-cell} ipython3 + +mc = MarkovChain(pH, state_values=S) +X = mc.simulate(init=0, ts_length=500) + +fig, ax = plt.subplots() +ax.plot(X) +plt.show() +``` + +Here's a solution to exercises 4.23. + + +```{code-cell} ipython3 +@jit +def compute_marginal(n=100_000, T=10): + X_vals = np.empty(n) + + for i in range(n): + X = 2 # start in state SR + for t in range(T): + W = np.random.rand() + X = tau(W, S, pH[X, :]) + X_vals[i] = X + return np.mean(X_vals == 0) + +compute_marginal() +``` + +The answer is close to 0.6, as expected. + + +Here's a solution to exercise 4.24. + + +```{code-cell} ipython3 +@jit +def compute_marginal_2(n=100_000, T=10): + counter = 0 + + for i in range(n): + X = 2 # start in state SR + for t in range(T): + W = np.random.rand() + X = tau(W, S, pH[X, :]) + if X == 0: + counter += 1 + + return counter / n + +compute_marginal_2() +``` + +Here's a solution to exercise 4.29. + + +```{code-cell} ipython3 +T = 5 +psi = (1, 0, 0) # start in NG +h = (1000, 0, -1000) # profits + +for t in range(T): + psi = psi @ pH + +print(psi @ h) +``` + +Now let's see what happens when we start in severe recession. + +```{code-cell} ipython3 +psi = (0, 0, 1) + +for t in range(T): + psi = psi @ pH + +print(psi @ h) +``` + +Profits are much lower because the Markov chain is relatively persistent, +implying that starting in recession increases the probability of recession at +date $t=5$. + + +Here's a solution to exercise 4.30. + + +```{code-cell} ipython3 +T = 1000 + +for i in (0, 1, 2): + psi = np.zeros(3) + psi[i] = 1 + for t in range(T): + psi = psi @ pH + print(f"Profits in state {i} at date {T} equals {psi @ h}") +``` + +Notice that profits are almost invariant with respect to the initial +condition. + +This is due to inherent stability of the kernel, which implies that initial +conditions become irrelevant after sufficient time has elapsed. + +Here's a solution to exercise 4.31. + +```{code-cell} ipython3 +T = 5 +psi = (0.2, 0.2, 0.6) + +for t in range(T): + psi = psi @ pH + +print(psi @ h) +``` + +Here's a solution to exercise 4.32. + +```{code-cell} ipython3 +def path_prob(p, psi, X): # X gives a time path + prob = psi[X[0]] + for t in range(len(X)-1): + prob = prob * p[X[t], X[t+1]] + return prob + +psi = np.array((0.2, 0.2, 0.6)) +prob = path_prob(pH, psi, (0, 1, 0)) + +print(prob) +``` + +Here's a solution to exercise 4.33. + +```{code-cell} ipython3 +counter = 0 +recession_states = 1, 2 +for x0 in recession_states: + for x1 in recession_states: + for x2 in recession_states: + path = x0, x1, x2 + counter += path_prob(pH, psi, path) + +print(counter) +``` + + +Here's a solution to exercise 4.34. + +```{code-cell} ipython3 +counter = 0 +m = 10_000 +mc = MarkovChain(pH) + +for i in range(m): + x0 = tau(np.random.rand(), S, psi) + X = mc.simulate(init=x0, ts_length=3) + if 0 not in X: + counter += 1 + +print(counter / m) +``` + +Next we turn to exercise 4.36. + +```{code-cell} ipython3 +max_T = 12 +T_vals = range(max_T) +profits = [] +r = 0.05 +rho = 1 / (1+r) + +psi = (0.2, 0.2, 0.6) +h = (1000, 0, -1000) +current_profits = np.inner(psi, h) +discount = rho +Q = np.identity(3) + +for t in T_vals: + Q = Q @ pH + discount = discount * rho + current_profits += discount * np.inner(psi, Q @ h) + profits.append(current_profits) + +fig, ax = plt.subplots() +ax.plot(profits, label='profits') +ax.plot(np.zeros(max_T), '--', label='break even') +ax.set_xlabel('time') +ax.legend() plt.show() + ``` +Here's figure 4.11. + + ```{code-cell} ipython3 +p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00), + (0.05 , 0.92 , 0.03 , 0.00 , 0.00), + (0.00 , 0.04 , 0.92 , 0.04 , 0.00), + (0.00 , 0.00 , 0.04 , 0.94 , 0.02), + (0.00 , 0.00 , 0.00 , 0.01 , 0.99)) + +p_Q = np.array(p_Q) +states = 0, 1, 2, 3, 4 +dates = 10, 60, 160 +initial_states = 0, 4 + +rows, cols = 2, 3 +fig, axes = plt.subplots(rows, cols) + +for row, init in enumerate(initial_states): + psi = np.zeros(5) + psi[init] = 1 + for col, d in enumerate(dates): + ax = axes[row, col] + ax.bar(states, + psi @ np.linalg.matrix_power(p_Q, d), + alpha=0.5, + edgecolor='k') + ax.set_title(f"$X_0 = {init}, t = {d}$") + ax.set_ylabel("prob") + ax.set_xlabel("state") + +plt.tight_layout() + +#plt.savefig("dds2.pdf") +plt.show() +``` + + +And here's figure 4.12. + + +```{code-cell} ipython3 +dates = 160, 500, 1000 + +fig, axes = plt.subplots(rows, cols) + +for row, init in enumerate(initial_states): + psi = np.zeros(5) + psi[init] = 1 + for col, d in enumerate(dates): + ax = axes[row, col] + ax.bar(states, + psi @ np.linalg.matrix_power(p_Q, d), + alpha=0.5, + edgecolor='k') + ax.set_title(f"$X_0 = {init}, t = {d}$") + ax.set_ylabel("prob") + ax.set_xlabel("state") + +plt.tight_layout() + +#plt.savefig("dds3.pdf") +plt.show() +``` + + +Next we turn to exercise 4.42. + +First here's a function to compute the stationary distribution, assuming it is +unique. + +```{code-cell} ipython3 +from numpy.linalg import solve + +def compute_stationary(p): + N = p.shape[0] + I = np.identity(N) + O = np.ones((N, N)) + A = I - p + O + return solve(A.T, np.ones((N, 1))).flatten() + +``` + +Now let's apply it to `p_Q`. +```{code-cell} ipython3 + +psi_star = compute_stationary(p_Q) + +fig, ax = plt.subplots() +ax.bar(states, psi_star, alpha=0.5, edgecolor='k') + +plt.show() +``` + +As expected, the distribution is very similar to the time 1,000 distribution +we obtained above by shifting forward in time. + + +Now let's look at exercise 4.43. + + +```{code-cell} ipython3 +psi_star = compute_stationary(pH) +print(np.inner(psi_star, h)) +``` + +If we compute profits at $t=1000$, starting from a range of initial +conditions, we get very similar results. + +```{code-cell} ipython3 +pT = np.linalg.matrix_power(pH, 1000) +psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1) + +for psi in psi_vecs: + print(np.inner(psi, pT @ h)) +``` + +This is not surprising, since `p_H` is globally stable. + + +Here's the solution to exercise 4.57, which computes mean return time. + +I'll use JIT compilation to make the code fast. + +```{code-cell} ipython3 +@jit +def compute_return_time(x, p, max_iter=100_000): + X = x + t = 0 + while t < max_iter: + W = np.random.rand() + X = tau(W, S, pH[X, :]) + t += 1 + if X == x: + return t + +@jit +def compute_mean_return_time(x, p, n=100_000): + counter = 0 + for i in range(n): + counter += compute_return_time(x, p) + return counter / n + + +[compute_mean_return_time(i, pH) for i in range(3)] + +``` + +For comparison: + +```{code-cell} ipython3 +psi_star = compute_stationary(pH) +1/ psi_star + +``` + +As predicted by the theory, the values are approximately equal. + + +Now let's turn to the inventory model. + +```{code-cell} ipython3 +def b(d): + " Returns probability that demand = d." + return (d >= 0) * (1/2)**(d + 1) + +def h(x, q, Q): + return x + (Q - x) * (x <= q) + +def build_p(q=2, Q=5): + p = np.empty((Q+1, Q+1)) + for x in range(Q+1): + for y in range(Q+1): + if y == 0: + p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q) + else: + p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y + + return p + +``` + +Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the +one shown in the text. + + +```{code-cell} ipython3 + +p = build_p() +compute_stationary(p) + + +``` + +Yep, looks good. + +Now let's check that the optimal policy agrees with $q=7$, as claimed in the text. + +```{code-cell} ipython3 +Q = 20 # inventory upper bound +C = 0.1 # cost of restocking + +# profit given state x, demand d, policy q +def profit(x, d, q): + stock = h(x, q, Q) + revenue = stock if stock < d else d + cost = C * (x <= q) + return revenue - cost + +# expected profit given x and policy q +def g(x, q): + counter = 0 + for d in range(1000): + counter += profit(x, d, q) * b(d) + return counter + +def profit_at_stationary(q): + p = build_p(q=q, Q=Q) + stationary = compute_stationary(p) + counter = 0 + for x in range(Q+1): + counter += g(x, q) * stationary[x] + return counter + +def compute_optimal_policy(): + running_max = -np.inf + for q in range(Q+1): + counter = profit_at_stationary(q) + if counter > running_max: + running_max = counter + argmax = q + return(argmax) + +compute_optimal_policy() +``` + + +Here's a solution for exercise 4.61. From preceding calculations we have +the stationary probability assigned to normal growth: + + +```{code-cell} ipython3 +psi_star = compute_stationary(pH) +psi_star[0] +``` + +The fraction of the time a long path spends in this state can be calculated as +follows. + + +```{code-cell} ipython3 +T = 1_000_000 +mc = MarkovChain(pH) +X = mc.simulate(init=0, ts_length=T) +np.mean(X == 0) +``` + +As expected given the LLN results for stable Markov chains, the two numbers are approximately equal. + + +Finally, let's look at the expected profits question in exercise 4.63. + +Previously we calculated steady state profits via + + +```{code-cell} ipython3 +h = (1000, 0, -1000) +psi_star = compute_stationary(pH) +print(np.inner(psi_star, h)) +``` + +To check that we get approximately the same results when simulating a long +time series, we can calculate as follows. + + +```{code-cell} ipython3 +y = [h[x] for x in X] +np.mean(y) ``` diff --git a/code_book/_build/html/_sources/intro.md b/code_book/_build/html/_sources/intro.md index c40b3cf..733444e 100644 --- a/code_book/_build/html/_sources/intro.md +++ b/code_book/_build/html/_sources/intro.md @@ -1,35 +1,38 @@ -Economic Dynamics Python Code -============================= +Economic Dynamics Code Book +=========================== -**Author**: [John Stachurski](https://johnstachurski.net/) +**AUTHOR**: [JOHN STACHURSKI](https://johnstachurski.net/) -This lecture series provides a short introduction to the field of continuous -time Markov chains. Focus is shared between theory, applications and -computation. Mathematical ideas are combined with computer code to help -clarify and build intuition, as well as to bridge the gap between theory and -applications. +This code book provides code to accompany the second edition of the +textbook *Economic Dynamics: Theory and Computation*, published by the MIT +Press. The code recreates figures from the book and gives solutions to +exercises. -The presentation is relatively rigorous but the aim is towards applications -rather than mathematical curiosities (which are plentiful, if one starts to -look). Applications are drawn from economics, finance and operations -research. +The only code provided at this stage is Python. A Julia version is lacking +only due to time constraints. If there are readers who would like to create a +Julia version, please get in touch via email or the [issue +tracker](https://github.com/jstac/edtc-code/issues). A MATLAB version is also +welcome --- although I'm not personally familiar with the language. +The Python code contained in these notes is accelerated through a combination of +[NumPy](https://numpy.org/) and just-in-time compilation +(via [Numba](http://numba.pydata.org/)). For those who require it, QuantEcon +provides a fast-paced [introduction to scientific computing with +Python](https://python-programming.quantecon.org/) with background on +these topics. -```{admonition} Computer code -The code is written in Python and is accelerated through a combination of -[NumPy](https://numpy.org/) (vectorized code) and just-in-time compilation -(via [Numba](http://numba.pydata.org/)). +```{note} +To run the code contained here, please install the latest version of +[Anaconda Python](https://www.anaconda.com/). You will also need the [QuantEcon Python +library](https://quantecon.org/quantecon-py/) and the [Interpolation +library](https://github.com/EconForge/interpolation.py). +Follow the links for installation instructions. -QuantEcon provides a fast-paced [introduction to scientific computing with -Python](https://python-programming.quantecon.org/) that covers these topics. +If you encounter errors, please open an +[issue](https://github.com/jstac/edtc-code/issues) and copy and paste your +error message. ``` - - - -``` - - -The code book is written using [Jupyter Book](https://jupyterbook.org/intro.html). +This code book is created using [Jupyter Book](https://jupyterbook.org/intro.html). diff --git a/code_book/_build/html/_static/basic.css b/code_book/_build/html/_static/basic.css index 616111c..5d8ae08 100644 --- a/code_book/_build/html/_static/basic.css +++ b/code_book/_build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -277,25 +277,25 @@ p.rubric { font-weight: bold; } -img.align-left, .figure.align-left, object.align-left { +img.align-left, figure.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } -img.align-right, .figure.align-right, object.align-right { +img.align-right, figure.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } -img.align-center, .figure.align-center, object.align-center { +img.align-center, figure.align-center, .figure.align-center, object.align-center { display: block; margin-left: auto; margin-right: auto; } -img.align-default, .figure.align-default { +img.align-default, figure.align-default, .figure.align-default { display: block; margin-left: auto; margin-right: auto; @@ -319,7 +319,8 @@ img.align-default, .figure.align-default { /* -- sidebars -------------------------------------------------------------- */ -div.sidebar { +div.sidebar, +aside.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; padding: 7px; @@ -377,12 +378,14 @@ div.body p.centered { /* -- content of sidebars/topics/admonitions -------------------------------- */ div.sidebar > :last-child, +aside.sidebar > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; } div.sidebar::after, +aside.sidebar::after, div.topic::after, div.admonition::after, blockquote::after { @@ -455,20 +458,22 @@ td > :last-child { /* -- figures --------------------------------------------------------------- */ -div.figure { +div.figure, figure { margin: 0.5em; padding: 0.5em; } -div.figure p.caption { +div.figure p.caption, figcaption { padding: 0.3em; } -div.figure p.caption span.caption-number { +div.figure p.caption span.caption-number, +figcaption span.caption-number { font-style: italic; } -div.figure p.caption span.caption-text { +div.figure p.caption span.caption-text, +figcaption span.caption-text { } /* -- field list styles ----------------------------------------------------- */ @@ -764,6 +769,7 @@ div.code-block-caption code { } table.highlighttable td.linenos, +span.linenos, div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ user-select: none; } diff --git a/code_book/_build/html/_static/doctools.js b/code_book/_build/html/_static/doctools.js index daccd20..61ac9d2 100644 --- a/code_book/_build/html/_static/doctools.js +++ b/code_book/_build/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -29,9 +29,14 @@ if (!window.console || !console.firebug) { /** * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL */ jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** @@ -285,9 +290,10 @@ var Documentation = { initOnKeyListeners: function() { $(document).keydown(function(event) { var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea + // don't navigate when in search box, textarea, dropdown or button if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { + && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey + && !event.shiftKey) { switch (event.keyCode) { case 37: // left var prevHref = $('link[rel="prev"]').prop('href'); diff --git a/code_book/_build/html/_static/language_data.js b/code_book/_build/html/_static/language_data.js index d2b4ee9..863704b 100644 --- a/code_book/_build/html/_static/language_data.js +++ b/code_book/_build/html/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,8 @@ 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"]; -/* Non-minified version JS is _stemmer.js if file is provided */ +/* Non-minified version is copied as a separate JS file, is available */ + /** * Porter Stemmer */ @@ -199,7 +200,6 @@ var Stemmer = function() { - var splitChars = (function() { var result = {}; var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, diff --git a/code_book/_build/html/_static/pygments.css b/code_book/_build/html/_static/pygments.css index f346859..691aeb8 100644 --- a/code_book/_build/html/_static/pygments.css +++ b/code_book/_build/html/_static/pygments.css @@ -1,7 +1,7 @@ -pre { line-height: 125%; margin: 0; } -td.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } -span.linenos { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } -td.linenos pre.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #eeffcc; } diff --git a/code_book/_build/html/_static/searchtools.js b/code_book/_build/html/_static/searchtools.js index 970d0d9..1a90152 100644 --- a/code_book/_build/html/_static/searchtools.js +++ b/code_book/_build/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -59,10 +59,10 @@ var Search = { _pulse_status : -1, htmlToText : function(htmlString) { - var htmlElement = document.createElement('span'); - htmlElement.innerHTML = htmlString; - $(htmlElement).find('.headerlink').remove(); - docContent = $(htmlElement).find('[role=main]')[0]; + var virtualDocument = document.implementation.createHTMLDocument('virtual'); + var htmlElement = $(htmlString, virtualDocument); + htmlElement.find('.headerlink').remove(); + docContent = htmlElement.find('[role=main]')[0]; if(docContent === undefined) { console.warn("Content block not found. Sphinx search tries to obtain it " + "via '[role=main]'. Could you check your theme or template."); @@ -248,7 +248,7 @@ var Search = { // results left, load the summary and display it if (results.length) { var item = results.pop(); - var listItem = $('
  • '); + var listItem = $('
  • '); var requestUrl = ""; var linkUrl = ""; if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') { @@ -273,9 +273,9 @@ var Search = { if (item[3]) { listItem.append($(' (' + item[3] + ')')); Search.output.append(listItem); - listItem.slideDown(5, function() { + setTimeout(function() { displayNextItem(); - }); + }, 5); } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { $.ajax({url: requestUrl, dataType: "text", @@ -285,16 +285,16 @@ var Search = { listItem.append(Search.makeSearchSummary(data, searchterms, hlterms)); } Search.output.append(listItem); - listItem.slideDown(5, function() { + setTimeout(function() { displayNextItem(); - }); + }, 5); }}); } else { // no source available, just display title Search.output.append(listItem); - listItem.slideDown(5, function() { + setTimeout(function() { displayNextItem(); - }); + }, 5); } } // search finished, update title and status message @@ -379,6 +379,13 @@ var Search = { return results; }, + /** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions + */ + escapeRegExp : function(string) { + return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string + }, + /** * search for full-text terms in the index */ @@ -402,13 +409,14 @@ var Search = { ]; // add support for partial matches if (word.length > 2) { + var word_regex = this.escapeRegExp(word); for (var w in terms) { - if (w.match(word) && !terms[word]) { + if (w.match(word_regex) && !terms[word]) { _o.push({files: terms[w], score: Scorer.partialTerm}) } } for (var w in titleterms) { - if (w.match(word) && !titleterms[word]) { + if (w.match(word_regex) && !titleterms[word]) { _o.push({files: titleterms[w], score: Scorer.partialTitle}) } } diff --git a/code_book/_build/html/_static/underscore-1.3.1.js b/code_book/_build/html/_static/underscore-1.3.1.js deleted file mode 100644 index 208d4cd..0000000 --- a/code_book/_build/html/_static/underscore-1.3.1.js +++ /dev/null @@ -1,999 +0,0 @@ -// Underscore.js 1.3.1 -// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. -// Underscore is freely distributable under the MIT license. -// Portions of Underscore are inspired or borrowed from Prototype, -// Oliver Steele's Functional, and John Resig's Micro-Templating. -// For all details and documentation: -// http://documentcloud.github.com/underscore - -(function() { - - // Baseline setup - // -------------- - - // Establish the root object, `window` in the browser, or `global` on the server. - var root = this; - - // Save the previous value of the `_` variable. - var previousUnderscore = root._; - - // Establish the object that gets returned to break out of a loop iteration. - var breaker = {}; - - // Save bytes in the minified (but not gzipped) version: - var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; - - // Create quick reference variables for speed access to core prototypes. - var slice = ArrayProto.slice, - unshift = ArrayProto.unshift, - toString = ObjProto.toString, - hasOwnProperty = ObjProto.hasOwnProperty; - - // All **ECMAScript 5** native function implementations that we hope to use - // are declared here. - var - nativeForEach = ArrayProto.forEach, - nativeMap = ArrayProto.map, - nativeReduce = ArrayProto.reduce, - nativeReduceRight = ArrayProto.reduceRight, - nativeFilter = ArrayProto.filter, - nativeEvery = ArrayProto.every, - nativeSome = ArrayProto.some, - nativeIndexOf = ArrayProto.indexOf, - nativeLastIndexOf = ArrayProto.lastIndexOf, - nativeIsArray = Array.isArray, - nativeKeys = Object.keys, - nativeBind = FuncProto.bind; - - // Create a safe reference to the Underscore object for use below. - var _ = function(obj) { return new wrapper(obj); }; - - // Export the Underscore object for **Node.js**, with - // backwards-compatibility for the old `require()` API. If we're in - // the browser, add `_` as a global object via a string identifier, - // for Closure Compiler "advanced" mode. - if (typeof exports !== 'undefined') { - if (typeof module !== 'undefined' && module.exports) { - exports = module.exports = _; - } - exports._ = _; - } else { - root['_'] = _; - } - - // Current version. - _.VERSION = '1.3.1'; - - // Collection Functions - // -------------------- - - // The cornerstone, an `each` implementation, aka `forEach`. - // Handles objects with the built-in `forEach`, arrays, and raw objects. - // Delegates to **ECMAScript 5**'s native `forEach` if available. - var each = _.each = _.forEach = function(obj, iterator, context) { - if (obj == null) return; - if (nativeForEach && obj.forEach === nativeForEach) { - obj.forEach(iterator, context); - } else if (obj.length === +obj.length) { - for (var i = 0, l = obj.length; i < l; i++) { - if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return; - } - } else { - for (var key in obj) { - if (_.has(obj, key)) { - if (iterator.call(context, obj[key], key, obj) === breaker) return; - } - } - } - }; - - // Return the results of applying the iterator to each element. - // Delegates to **ECMAScript 5**'s native `map` if available. - _.map = _.collect = function(obj, iterator, context) { - var results = []; - if (obj == null) return results; - if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); - each(obj, function(value, index, list) { - results[results.length] = iterator.call(context, value, index, list); - }); - if (obj.length === +obj.length) results.length = obj.length; - return results; - }; - - // **Reduce** builds up a single result from a list of values, aka `inject`, - // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available. - _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) { - var initial = arguments.length > 2; - if (obj == null) obj = []; - if (nativeReduce && obj.reduce === nativeReduce) { - if (context) iterator = _.bind(iterator, context); - return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator); - } - each(obj, function(value, index, list) { - if (!initial) { - memo = value; - initial = true; - } else { - memo = iterator.call(context, memo, value, index, list); - } - }); - if (!initial) throw new TypeError('Reduce of empty array with no initial value'); - return memo; - }; - - // The right-associative version of reduce, also known as `foldr`. - // Delegates to **ECMAScript 5**'s native `reduceRight` if available. - _.reduceRight = _.foldr = function(obj, iterator, memo, context) { - var initial = arguments.length > 2; - if (obj == null) obj = []; - if (nativeReduceRight && obj.reduceRight === nativeReduceRight) { - if (context) iterator = _.bind(iterator, context); - return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator); - } - var reversed = _.toArray(obj).reverse(); - if (context && !initial) iterator = _.bind(iterator, context); - return initial ? _.reduce(reversed, iterator, memo, context) : _.reduce(reversed, iterator); - }; - - // Return the first value which passes a truth test. Aliased as `detect`. - _.find = _.detect = function(obj, iterator, context) { - var result; - any(obj, function(value, index, list) { - if (iterator.call(context, value, index, list)) { - result = value; - return true; - } - }); - return result; - }; - - // Return all the elements that pass a truth test. - // Delegates to **ECMAScript 5**'s native `filter` if available. - // Aliased as `select`. - _.filter = _.select = function(obj, iterator, context) { - var results = []; - if (obj == null) return results; - if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context); - each(obj, function(value, index, list) { - if (iterator.call(context, value, index, list)) results[results.length] = value; - }); - return results; - }; - - // Return all the elements for which a truth test fails. - _.reject = function(obj, iterator, context) { - var results = []; - if (obj == null) return results; - each(obj, function(value, index, list) { - if (!iterator.call(context, value, index, list)) results[results.length] = value; - }); - return results; - }; - - // Determine whether all of the elements match a truth test. - // Delegates to **ECMAScript 5**'s native `every` if available. - // Aliased as `all`. - _.every = _.all = function(obj, iterator, context) { - var result = true; - if (obj == null) return result; - if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context); - each(obj, function(value, index, list) { - if (!(result = result && iterator.call(context, value, index, list))) return breaker; - }); - return result; - }; - - // Determine if at least one element in the object matches a truth test. - // Delegates to **ECMAScript 5**'s native `some` if available. - // Aliased as `any`. - var any = _.some = _.any = function(obj, iterator, context) { - iterator || (iterator = _.identity); - var result = false; - if (obj == null) return result; - if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context); - each(obj, function(value, index, list) { - if (result || (result = iterator.call(context, value, index, list))) return breaker; - }); - return !!result; - }; - - // Determine if a given value is included in the array or object using `===`. - // Aliased as `contains`. - _.include = _.contains = function(obj, target) { - var found = false; - if (obj == null) return found; - if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1; - found = any(obj, function(value) { - return value === target; - }); - return found; - }; - - // Invoke a method (with arguments) on every item in a collection. - _.invoke = function(obj, method) { - var args = slice.call(arguments, 2); - return _.map(obj, function(value) { - return (_.isFunction(method) ? method || value : value[method]).apply(value, args); - }); - }; - - // Convenience version of a common use case of `map`: fetching a property. - _.pluck = function(obj, key) { - return _.map(obj, function(value){ return value[key]; }); - }; - - // Return the maximum element or (element-based computation). - _.max = function(obj, iterator, context) { - if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj); - if (!iterator && _.isEmpty(obj)) return -Infinity; - var result = {computed : -Infinity}; - each(obj, function(value, index, list) { - var computed = iterator ? iterator.call(context, value, index, list) : value; - computed >= result.computed && (result = {value : value, computed : computed}); - }); - return result.value; - }; - - // Return the minimum element (or element-based computation). - _.min = function(obj, iterator, context) { - if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj); - if (!iterator && _.isEmpty(obj)) return Infinity; - var result = {computed : Infinity}; - each(obj, function(value, index, list) { - var computed = iterator ? iterator.call(context, value, index, list) : value; - computed < result.computed && (result = {value : value, computed : computed}); - }); - return result.value; - }; - - // Shuffle an array. - _.shuffle = function(obj) { - var shuffled = [], rand; - each(obj, function(value, index, list) { - if (index == 0) { - shuffled[0] = value; - } else { - rand = Math.floor(Math.random() * (index + 1)); - shuffled[index] = shuffled[rand]; - shuffled[rand] = value; - } - }); - return shuffled; - }; - - // Sort the object's values by a criterion produced by an iterator. - _.sortBy = function(obj, iterator, context) { - return _.pluck(_.map(obj, function(value, index, list) { - return { - value : value, - criteria : iterator.call(context, value, index, list) - }; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }), 'value'); - }; - - // Groups the object's values by a criterion. Pass either a string attribute - // to group by, or a function that returns the criterion. - _.groupBy = function(obj, val) { - var result = {}; - var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; }; - each(obj, function(value, index) { - var key = iterator(value, index); - (result[key] || (result[key] = [])).push(value); - }); - return result; - }; - - // Use a comparator function to figure out at what index an object should - // be inserted so as to maintain order. Uses binary search. - _.sortedIndex = function(array, obj, iterator) { - iterator || (iterator = _.identity); - var low = 0, high = array.length; - while (low < high) { - var mid = (low + high) >> 1; - iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid; - } - return low; - }; - - // Safely convert anything iterable into a real, live array. - _.toArray = function(iterable) { - if (!iterable) return []; - if (iterable.toArray) return iterable.toArray(); - if (_.isArray(iterable)) return slice.call(iterable); - if (_.isArguments(iterable)) return slice.call(iterable); - return _.values(iterable); - }; - - // Return the number of elements in an object. - _.size = function(obj) { - return _.toArray(obj).length; - }; - - // Array Functions - // --------------- - - // Get the first element of an array. Passing **n** will return the first N - // values in the array. Aliased as `head`. The **guard** check allows it to work - // with `_.map`. - _.first = _.head = function(array, n, guard) { - return (n != null) && !guard ? slice.call(array, 0, n) : array[0]; - }; - - // Returns everything but the last entry of the array. Especcialy useful on - // the arguments object. Passing **n** will return all the values in - // the array, excluding the last N. The **guard** check allows it to work with - // `_.map`. - _.initial = function(array, n, guard) { - return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n)); - }; - - // Get the last element of an array. Passing **n** will return the last N - // values in the array. The **guard** check allows it to work with `_.map`. - _.last = function(array, n, guard) { - if ((n != null) && !guard) { - return slice.call(array, Math.max(array.length - n, 0)); - } else { - return array[array.length - 1]; - } - }; - - // Returns everything but the first entry of the array. Aliased as `tail`. - // Especially useful on the arguments object. Passing an **index** will return - // the rest of the values in the array from that index onward. The **guard** - // check allows it to work with `_.map`. - _.rest = _.tail = function(array, index, guard) { - return slice.call(array, (index == null) || guard ? 1 : index); - }; - - // Trim out all falsy values from an array. - _.compact = function(array) { - return _.filter(array, function(value){ return !!value; }); - }; - - // Return a completely flattened version of an array. - _.flatten = function(array, shallow) { - return _.reduce(array, function(memo, value) { - if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value)); - memo[memo.length] = value; - return memo; - }, []); - }; - - // Return a version of the array that does not contain the specified value(s). - _.without = function(array) { - return _.difference(array, slice.call(arguments, 1)); - }; - - // Produce a duplicate-free version of the array. If the array has already - // been sorted, you have the option of using a faster algorithm. - // Aliased as `unique`. - _.uniq = _.unique = function(array, isSorted, iterator) { - var initial = iterator ? _.map(array, iterator) : array; - var result = []; - _.reduce(initial, function(memo, el, i) { - if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) { - memo[memo.length] = el; - result[result.length] = array[i]; - } - return memo; - }, []); - return result; - }; - - // Produce an array that contains the union: each distinct element from all of - // the passed-in arrays. - _.union = function() { - return _.uniq(_.flatten(arguments, true)); - }; - - // Produce an array that contains every item shared between all the - // passed-in arrays. (Aliased as "intersect" for back-compat.) - _.intersection = _.intersect = function(array) { - var rest = slice.call(arguments, 1); - return _.filter(_.uniq(array), function(item) { - return _.every(rest, function(other) { - return _.indexOf(other, item) >= 0; - }); - }); - }; - - // Take the difference between one array and a number of other arrays. - // Only the elements present in just the first array will remain. - _.difference = function(array) { - var rest = _.flatten(slice.call(arguments, 1)); - return _.filter(array, function(value){ return !_.include(rest, value); }); - }; - - // Zip together multiple lists into a single array -- elements that share - // an index go together. - _.zip = function() { - var args = slice.call(arguments); - var length = _.max(_.pluck(args, 'length')); - var results = new Array(length); - for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i); - return results; - }; - - // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**), - // we need this function. Return the position of the first occurrence of an - // item in an array, or -1 if the item is not included in the array. - // Delegates to **ECMAScript 5**'s native `indexOf` if available. - // If the array is large and already in sort order, pass `true` - // for **isSorted** to use binary search. - _.indexOf = function(array, item, isSorted) { - if (array == null) return -1; - var i, l; - if (isSorted) { - i = _.sortedIndex(array, item); - return array[i] === item ? i : -1; - } - if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item); - for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i; - return -1; - }; - - // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available. - _.lastIndexOf = function(array, item) { - if (array == null) return -1; - if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item); - var i = array.length; - while (i--) if (i in array && array[i] === item) return i; - return -1; - }; - - // Generate an integer Array containing an arithmetic progression. A port of - // the native Python `range()` function. See - // [the Python documentation](http://docs.python.org/library/functions.html#range). - _.range = function(start, stop, step) { - if (arguments.length <= 1) { - stop = start || 0; - start = 0; - } - step = arguments[2] || 1; - - var len = Math.max(Math.ceil((stop - start) / step), 0); - var idx = 0; - var range = new Array(len); - - while(idx < len) { - range[idx++] = start; - start += step; - } - - return range; - }; - - // Function (ahem) Functions - // ------------------ - - // Reusable constructor function for prototype setting. - var ctor = function(){}; - - // Create a function bound to a given object (assigning `this`, and arguments, - // optionally). Binding with arguments is also known as `curry`. - // Delegates to **ECMAScript 5**'s native `Function.bind` if available. - // We check for `func.bind` first, to fail fast when `func` is undefined. - _.bind = function bind(func, context) { - var bound, args; - if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); - if (!_.isFunction(func)) throw new TypeError; - args = slice.call(arguments, 2); - return bound = function() { - if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments))); - ctor.prototype = func.prototype; - var self = new ctor; - var result = func.apply(self, args.concat(slice.call(arguments))); - if (Object(result) === result) return result; - return self; - }; - }; - - // Bind all of an object's methods to that object. Useful for ensuring that - // all callbacks defined on an object belong to it. - _.bindAll = function(obj) { - var funcs = slice.call(arguments, 1); - if (funcs.length == 0) funcs = _.functions(obj); - each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); }); - return obj; - }; - - // Memoize an expensive function by storing its results. - _.memoize = function(func, hasher) { - var memo = {}; - hasher || (hasher = _.identity); - return function() { - var key = hasher.apply(this, arguments); - return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments)); - }; - }; - - // Delays a function for the given number of milliseconds, and then calls - // it with the arguments supplied. - _.delay = function(func, wait) { - var args = slice.call(arguments, 2); - return setTimeout(function(){ return func.apply(func, args); }, wait); - }; - - // Defers a function, scheduling it to run after the current call stack has - // cleared. - _.defer = function(func) { - return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); - }; - - // Returns a function, that, when invoked, will only be triggered at most once - // during a given window of time. - _.throttle = function(func, wait) { - var context, args, timeout, throttling, more; - var whenDone = _.debounce(function(){ more = throttling = false; }, wait); - return function() { - context = this; args = arguments; - var later = function() { - timeout = null; - if (more) func.apply(context, args); - whenDone(); - }; - if (!timeout) timeout = setTimeout(later, wait); - if (throttling) { - more = true; - } else { - func.apply(context, args); - } - whenDone(); - throttling = true; - }; - }; - - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. - _.debounce = function(func, wait) { - var timeout; - return function() { - var context = this, args = arguments; - var later = function() { - timeout = null; - func.apply(context, args); - }; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - }; - }; - - // Returns a function that will be executed at most one time, no matter how - // often you call it. Useful for lazy initialization. - _.once = function(func) { - var ran = false, memo; - return function() { - if (ran) return memo; - ran = true; - return memo = func.apply(this, arguments); - }; - }; - - // Returns the first function passed as an argument to the second, - // allowing you to adjust arguments, run code before and after, and - // conditionally execute the original function. - _.wrap = function(func, wrapper) { - return function() { - var args = [func].concat(slice.call(arguments, 0)); - return wrapper.apply(this, args); - }; - }; - - // Returns a function that is the composition of a list of functions, each - // consuming the return value of the function that follows. - _.compose = function() { - var funcs = arguments; - return function() { - var args = arguments; - for (var i = funcs.length - 1; i >= 0; i--) { - args = [funcs[i].apply(this, args)]; - } - return args[0]; - }; - }; - - // Returns a function that will only be executed after being called N times. - _.after = function(times, func) { - if (times <= 0) return func(); - return function() { - if (--times < 1) { return func.apply(this, arguments); } - }; - }; - - // Object Functions - // ---------------- - - // Retrieve the names of an object's properties. - // Delegates to **ECMAScript 5**'s native `Object.keys` - _.keys = nativeKeys || function(obj) { - if (obj !== Object(obj)) throw new TypeError('Invalid object'); - var keys = []; - for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key; - return keys; - }; - - // Retrieve the values of an object's properties. - _.values = function(obj) { - return _.map(obj, _.identity); - }; - - // Return a sorted list of the function names available on the object. - // Aliased as `methods` - _.functions = _.methods = function(obj) { - var names = []; - for (var key in obj) { - if (_.isFunction(obj[key])) names.push(key); - } - return names.sort(); - }; - - // Extend a given object with all the properties in passed-in object(s). - _.extend = function(obj) { - each(slice.call(arguments, 1), function(source) { - for (var prop in source) { - obj[prop] = source[prop]; - } - }); - return obj; - }; - - // Fill in a given object with default properties. - _.defaults = function(obj) { - each(slice.call(arguments, 1), function(source) { - for (var prop in source) { - if (obj[prop] == null) obj[prop] = source[prop]; - } - }); - return obj; - }; - - // Create a (shallow-cloned) duplicate of an object. - _.clone = function(obj) { - if (!_.isObject(obj)) return obj; - return _.isArray(obj) ? obj.slice() : _.extend({}, obj); - }; - - // Invokes interceptor with the obj, and then returns obj. - // The primary purpose of this method is to "tap into" a method chain, in - // order to perform operations on intermediate results within the chain. - _.tap = function(obj, interceptor) { - interceptor(obj); - return obj; - }; - - // Internal recursive comparison function. - function eq(a, b, stack) { - // Identical objects are equal. `0 === -0`, but they aren't identical. - // See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal. - if (a === b) return a !== 0 || 1 / a == 1 / b; - // A strict comparison is necessary because `null == undefined`. - if (a == null || b == null) return a === b; - // Unwrap any wrapped objects. - if (a._chain) a = a._wrapped; - if (b._chain) b = b._wrapped; - // Invoke a custom `isEqual` method if one is provided. - if (a.isEqual && _.isFunction(a.isEqual)) return a.isEqual(b); - if (b.isEqual && _.isFunction(b.isEqual)) return b.isEqual(a); - // Compare `[[Class]]` names. - var className = toString.call(a); - if (className != toString.call(b)) return false; - switch (className) { - // Strings, numbers, dates, and booleans are compared by value. - case '[object String]': - // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is - // equivalent to `new String("5")`. - return a == String(b); - case '[object Number]': - // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for - // other numeric values. - return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b); - case '[object Date]': - case '[object Boolean]': - // Coerce dates and booleans to numeric primitive values. Dates are compared by their - // millisecond representations. Note that invalid dates with millisecond representations - // of `NaN` are not equivalent. - return +a == +b; - // RegExps are compared by their source patterns and flags. - case '[object RegExp]': - return a.source == b.source && - a.global == b.global && - a.multiline == b.multiline && - a.ignoreCase == b.ignoreCase; - } - if (typeof a != 'object' || typeof b != 'object') return false; - // Assume equality for cyclic structures. The algorithm for detecting cyclic - // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. - var length = stack.length; - while (length--) { - // Linear search. Performance is inversely proportional to the number of - // unique nested structures. - if (stack[length] == a) return true; - } - // Add the first object to the stack of traversed objects. - stack.push(a); - var size = 0, result = true; - // Recursively compare objects and arrays. - if (className == '[object Array]') { - // Compare array lengths to determine if a deep comparison is necessary. - size = a.length; - result = size == b.length; - if (result) { - // Deep compare the contents, ignoring non-numeric properties. - while (size--) { - // Ensure commutative equality for sparse arrays. - if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break; - } - } - } else { - // Objects with different constructors are not equivalent. - if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) return false; - // Deep compare objects. - for (var key in a) { - if (_.has(a, key)) { - // Count the expected number of properties. - size++; - // Deep compare each member. - if (!(result = _.has(b, key) && eq(a[key], b[key], stack))) break; - } - } - // Ensure that both objects contain the same number of properties. - if (result) { - for (key in b) { - if (_.has(b, key) && !(size--)) break; - } - result = !size; - } - } - // Remove the first object from the stack of traversed objects. - stack.pop(); - return result; - } - - // Perform a deep comparison to check if two objects are equal. - _.isEqual = function(a, b) { - return eq(a, b, []); - }; - - // Is a given array, string, or object empty? - // An "empty" object has no enumerable own-properties. - _.isEmpty = function(obj) { - if (_.isArray(obj) || _.isString(obj)) return obj.length === 0; - for (var key in obj) if (_.has(obj, key)) return false; - return true; - }; - - // Is a given value a DOM element? - _.isElement = function(obj) { - return !!(obj && obj.nodeType == 1); - }; - - // Is a given value an array? - // Delegates to ECMA5's native Array.isArray - _.isArray = nativeIsArray || function(obj) { - return toString.call(obj) == '[object Array]'; - }; - - // Is a given variable an object? - _.isObject = function(obj) { - return obj === Object(obj); - }; - - // Is a given variable an arguments object? - _.isArguments = function(obj) { - return toString.call(obj) == '[object Arguments]'; - }; - if (!_.isArguments(arguments)) { - _.isArguments = function(obj) { - return !!(obj && _.has(obj, 'callee')); - }; - } - - // Is a given value a function? - _.isFunction = function(obj) { - return toString.call(obj) == '[object Function]'; - }; - - // Is a given value a string? - _.isString = function(obj) { - return toString.call(obj) == '[object String]'; - }; - - // Is a given value a number? - _.isNumber = function(obj) { - return toString.call(obj) == '[object Number]'; - }; - - // Is the given value `NaN`? - _.isNaN = function(obj) { - // `NaN` is the only value for which `===` is not reflexive. - return obj !== obj; - }; - - // Is a given value a boolean? - _.isBoolean = function(obj) { - return obj === true || obj === false || toString.call(obj) == '[object Boolean]'; - }; - - // Is a given value a date? - _.isDate = function(obj) { - return toString.call(obj) == '[object Date]'; - }; - - // Is the given value a regular expression? - _.isRegExp = function(obj) { - return toString.call(obj) == '[object RegExp]'; - }; - - // Is a given value equal to null? - _.isNull = function(obj) { - return obj === null; - }; - - // Is a given variable undefined? - _.isUndefined = function(obj) { - return obj === void 0; - }; - - // Has own property? - _.has = function(obj, key) { - return hasOwnProperty.call(obj, key); - }; - - // Utility Functions - // ----------------- - - // Run Underscore.js in *noConflict* mode, returning the `_` variable to its - // previous owner. Returns a reference to the Underscore object. - _.noConflict = function() { - root._ = previousUnderscore; - return this; - }; - - // Keep the identity function around for default iterators. - _.identity = function(value) { - return value; - }; - - // Run a function **n** times. - _.times = function (n, iterator, context) { - for (var i = 0; i < n; i++) iterator.call(context, i); - }; - - // Escape a string for HTML interpolation. - _.escape = function(string) { - return (''+string).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g,'/'); - }; - - // Add your own custom functions to the Underscore object, ensuring that - // they're correctly added to the OOP wrapper as well. - _.mixin = function(obj) { - each(_.functions(obj), function(name){ - addToWrapper(name, _[name] = obj[name]); - }); - }; - - // Generate a unique integer id (unique within the entire client session). - // Useful for temporary DOM ids. - var idCounter = 0; - _.uniqueId = function(prefix) { - var id = idCounter++; - return prefix ? prefix + id : id; - }; - - // By default, Underscore uses ERB-style template delimiters, change the - // following template settings to use alternative delimiters. - _.templateSettings = { - evaluate : /<%([\s\S]+?)%>/g, - interpolate : /<%=([\s\S]+?)%>/g, - escape : /<%-([\s\S]+?)%>/g - }; - - // When customizing `templateSettings`, if you don't want to define an - // interpolation, evaluation or escaping regex, we need one that is - // guaranteed not to match. - var noMatch = /.^/; - - // Within an interpolation, evaluation, or escaping, remove HTML escaping - // that had been previously added. - var unescape = function(code) { - return code.replace(/\\\\/g, '\\').replace(/\\'/g, "'"); - }; - - // JavaScript micro-templating, similar to John Resig's implementation. - // Underscore templating handles arbitrary delimiters, preserves whitespace, - // and correctly escapes quotes within interpolated code. - _.template = function(str, data) { - var c = _.templateSettings; - var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' + - 'with(obj||{}){__p.push(\'' + - str.replace(/\\/g, '\\\\') - .replace(/'/g, "\\'") - .replace(c.escape || noMatch, function(match, code) { - return "',_.escape(" + unescape(code) + "),'"; - }) - .replace(c.interpolate || noMatch, function(match, code) { - return "'," + unescape(code) + ",'"; - }) - .replace(c.evaluate || noMatch, function(match, code) { - return "');" + unescape(code).replace(/[\r\n\t]/g, ' ') + ";__p.push('"; - }) - .replace(/\r/g, '\\r') - .replace(/\n/g, '\\n') - .replace(/\t/g, '\\t') - + "');}return __p.join('');"; - var func = new Function('obj', '_', tmpl); - if (data) return func(data, _); - return function(data) { - return func.call(this, data, _); - }; - }; - - // Add a "chain" function, which will delegate to the wrapper. - _.chain = function(obj) { - return _(obj).chain(); - }; - - // The OOP Wrapper - // --------------- - - // If Underscore is called as a function, it returns a wrapped object that - // can be used OO-style. This wrapper holds altered versions of all the - // underscore functions. Wrapped objects may be chained. - var wrapper = function(obj) { this._wrapped = obj; }; - - // Expose `wrapper.prototype` as `_.prototype` - _.prototype = wrapper.prototype; - - // Helper function to continue chaining intermediate results. - var result = function(obj, chain) { - return chain ? _(obj).chain() : obj; - }; - - // A method to easily add functions to the OOP wrapper. - var addToWrapper = function(name, func) { - wrapper.prototype[name] = function() { - var args = slice.call(arguments); - unshift.call(args, this._wrapped); - return result(func.apply(_, args), this._chain); - }; - }; - - // Add all of the Underscore functions to the wrapper object. - _.mixin(_); - - // Add all mutator Array functions to the wrapper. - each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { - var method = ArrayProto[name]; - wrapper.prototype[name] = function() { - var wrapped = this._wrapped; - method.apply(wrapped, arguments); - var length = wrapped.length; - if ((name == 'shift' || name == 'splice') && length === 0) delete wrapped[0]; - return result(wrapped, this._chain); - }; - }); - - // Add all accessor Array functions to the wrapper. - each(['concat', 'join', 'slice'], function(name) { - var method = ArrayProto[name]; - wrapper.prototype[name] = function() { - return result(method.apply(this._wrapped, arguments), this._chain); - }; - }); - - // Start chaining a wrapped Underscore object. - wrapper.prototype.chain = function() { - this._chain = true; - return this; - }; - - // Extracts the result from a wrapped and chained object. - wrapper.prototype.value = function() { - return this._wrapped; - }; - -}).call(this); diff --git a/code_book/_build/html/_static/underscore.js b/code_book/_build/html/_static/underscore.js index 5b55f32..166240e 100644 --- a/code_book/_build/html/_static/underscore.js +++ b/code_book/_build/html/_static/underscore.js @@ -1,31 +1,6 @@ -// Underscore.js 1.3.1 -// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. -// Underscore is freely distributable under the MIT license. -// Portions of Underscore are inspired or borrowed from Prototype, -// Oliver Steele's Functional, and John Resig's Micro-Templating. -// For all details and documentation: -// http://documentcloud.github.com/underscore -(function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source== -c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c, -h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each= -b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e2;a== -null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect= -function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e= -e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck= -function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;bd?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a, -c,d){d||(d=b.identity);for(var e=0,f=a.length;e>1;d(a[g])=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e=0;d--)b=[a[d].apply(this,b)];return b[0]}}; -b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments, -1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)}; -b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"}; -b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};b.mixin=function(a){j(b.functions(a), -function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+ -u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]= -function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain= -true;return this};m.prototype.value=function(){return this._wrapped}}).call(this); +!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n=n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ +// Underscore.js 1.12.0 +// https://underscorejs.org +// (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. +var n="1.12.0",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,g=isFinite,d=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u=0&&t<=m}}function $(n){return function(r){return null==r?void 0:r[n]}}var G=$("byteLength"),H=J(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:K(!1),Y=$("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e":">",'"':""","'":"'","`":"`"},Kn=Ln(Cn),Jn=Ln(_n(Cn)),$n=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=0;function Zn(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var nr=j((function(n,r){var t=nr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a1)er(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var cr=nr(fr,2);function lr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o0?0:u-1;o>=0&&o0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),C))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a=3;return r(n,Fn(t,u,4),e,o)}}var wr=_r(1),Ar=_r(-1);function xr(n,r,t){var e=[];return r=qn(r,t),mr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Sr(n,r,t){r=qn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,o=0;o=0}var Er=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),jr(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Br(n,r){return jr(n,Rn(r))}function Nr(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;ao&&(o=e);else r=qn(r,t),mr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Ir(n,r,t){if(null==r||t)return tr(n)||(n=jn(n)),n[Wn(n.length-1)];var e=tr(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i1&&(e=Fn(e,r[1])),r=an(n)):(e=Pr,r=er(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u1&&(t=r[1])):(r=jr(er(r,!1,!1),String),e=function(n,t){return!Mr(r,t)}),qr(n,e,t)}));function Wr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function zr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:Wr(n,n.length-r)}function Lr(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=er(r,!0,!0),xr(n,(function(n){return!Mr(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);ir?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o=function(r,t){e=null,t&&(u=n.apply(r,t))},i=j((function(i){if(e&&clearTimeout(e),t){var a=!e;e=setTimeout(o,r),a&&(u=n.apply(this,i))}else e=or(o,r,this,i);return u}));return i.cancel=function(){clearTimeout(e),e=null},i},wrap:function(n,r){return nr(r,n)},negate:ar,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:fr,once:cr,findKey:lr,findIndex:pr,findLastIndex:vr,sortedIndex:hr,indexOf:gr,lastIndexOf:dr,find:br,detect:br,findWhere:function(n,r){return br(n,Dn(r))},each:mr,forEach:mr,map:jr,collect:jr,reduce:wr,foldl:wr,inject:wr,reduceRight:Ar,foldr:Ar,filter:xr,select:xr,reject:function(n,r,t){return xr(n,ar(qn(r)),t)},every:Sr,all:Sr,some:Or,any:Or,contains:Mr,includes:Mr,include:Mr,invoke:Er,pluck:Br,where:function(n,r){return xr(n,Dn(r))},max:Nr,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;ae||void 0===t)return 1;if(t + @@ -37,7 +37,6 @@ - @@ -53,7 +52,7 @@ - + @@ -84,7 +83,7 @@

    Economic Dynamics Python Code

    @@ -233,7 +232,7 @@

    Chapter 1 CodeEconomic Dynamics Python Code + Economic Dynamics Code Book Chapter 2 Code diff --git a/code_book/_build/html/ch2.html b/code_book/_build/html/ch2.html index 1310395..3c9ae63 100644 --- a/code_book/_build/html/ch2.html +++ b/code_book/_build/html/ch2.html @@ -22,8 +22,8 @@ - + @@ -37,7 +37,6 @@ - @@ -50,10 +49,12 @@ const thebe_selector_output = ".output" + + - + @@ -84,11 +85,16 @@

    Economic Dynamics Python Code

    diff --git a/code_book/_build/html/searchindex.js b/code_book/_build/html/searchindex.js index 67d30df..3b19353 100644 --- a/code_book/_build/html/searchindex.js +++ b/code_book/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["ch1","ch2","ch3","ch4","intro"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["ch1.md","ch2.md","ch3.md","ch4.md","intro.md"],objects:{},objnames:{},objtypes:{},terms:{"0001":[],"012":3,"025":3,"import":3,"return":3,"short":4,"true":3,The:4,acceler:4,added:1,aim:4,alpha:3,antialias:3,applic:4,arrow:3,asarrai:3,author:4,between:4,book:4,bridg:4,build:4,chain:4,clarifi:4,combin:4,compil:4,continu:4,cover:4,curios:4,def:3,draw_arrow:3,drawn:4,eps:3,fals:3,fast:4,field:4,fig:3,fill:3,financ:4,focu:4,foo:[],from:4,gap:4,grid:3,head_length:3,head_width:3,help:4,html:4,http:4,idea:4,intro:4,introduct:4,intuit:4,john:4,jupyt:4,jupyterbook:4,just:4,lectur:4,linspac:3,look:4,markov:4,mathemat:4,matplotlib:3,nrm:3,numba:4,numpi:[3,4],one:4,oper:4,org:4,pace:4,plenti:4,plt:3,present:4,print:[],provid:4,pyplot:3,quantecon:4,rather:4,rel:4,research:4,rigor:4,scale:3,scientif:4,seri:4,set_xlim:3,set_xtick:3,set_ylim:3,set_ytick:3,share:4,show:3,sqrt:3,stachurski:4,start:4,subplot:3,than:4,theori:4,thi:[0,2,4],through:4,time:4,topic:4,toward:4,used:2,using:4,vector:4,via:4,well:4,which:4,written:4,xgrid:3,xmax:3,xmin:3,ygrid:3,ymax:3,ymin:3},titles:["Chapter 1 Code","Chapter 2 Code","Chapter 3 Code","Chapter 4 Code","Economic Dynamics Python Code"],titleterms:{chapter:[0,1,2,3],code:[0,1,2,3,4],comput:4,dynam:4,econom:4,python:4}}) \ No newline at end of file +Search.setIndex({docnames:["ch1","ch2","ch3","ch4","ch5","ch6","intro"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["ch1.md","ch2.md","ch3.md","ch4.md","ch5.md","ch6.md","intro.md"],objects:{},objnames:{},objtypes:{},terms:{"000":3,"0000000000000002":[],"00016193241347650655":[],"0002742339641272906":[],"00046441762625448746":[],"0007864953280325437":[],"000841":[],"0008410000000000001":3,"001":4,"0013319367441120278":[],"001993285071660904":[],"002255646571679648":[],"003819957275620567":[],"005":[3,4],"0064691311887052905":[],"010955530472493535":[],"012":3,"01654164":[],"018553287053961753":[],"025":3,"029":3,"0314201545393793":[],"03992042":[],"05321030760788403":[],"0625":3,"07489":[],"077":3,"09011212316537609":[],"0x7efe082073a0":[],"0x7f11e35c3cf0":[],"0x7ff29c16a3a0":[],"100":[3,5],"1000":[1,3,4,5],"10000":[],"100_000":[1,3,5],"101":[],"10576923":[],"10_000":[3,5],"11447938":[],"11721":[],"120":5,"1234":5,"125":3,"140":5,"145":3,"14793":[],"151":[],"1515748":3,"15260567184870055":[],"15316":[],"1599999999779":3,"1599999999784":3,"1599999999786":3,"1599999999967":3,"1599999999972":3,"1599999999974":3,"160":3,"1600000000004":3,"161":[],"17307692":[],"17606":[],"18738265":[],"18831":[],"1_000_000":[3,4],"1e6":4,"1mcannot":[],"1mdef":[],"1mdure":[],"1mfunction":[],"1mno":[],"200":[3,5],"217":3,"22069":[],"22507":[],"22634":[],"22771":3,"22948":[],"23031496":3,"23363":[],"23583":[],"24237":[],"250":5,"257":[],"2573668687016468":[],"2584390462574362":[],"26923077":[],"27675704":[],"30769231":[],"30786961":[],"31bb48ad890c":[],"347632676323":3,"348":[],"348918583534985":[],"38364422":[],"385":3,"399":[],"400":5,"408293504267931":1,"40890000000000004":[],"4307552":[],"4376689170549888":[],"45189053788556":3,"452677519879636":[],"485294":[],"492":3,"500":3,"5000":[3,5],"508":3,"54393759":[],"5454545454545455":[],"561947083724931e":[],"574149295173548":[],"57721679":[],"57957506909223":[],"580073017568804":[],"580438090144735":[],"58077722400634":[],"581797714223395":[],"582834547440143":[],"583700457424992":[],"584047845416478":[],"584270880794744":[],"58441558":3,"585132380423516":[],"585429646857868":[],"585610757622973":[],"585623467767324":[],"586192661727864":[],"58620934357645":[],"58622753202279":[],"58688502361491":[],"5870486350557":[],"58821129295589":[],"588635070943365":[],"5889967549357":[],"5894964410824":[],"589688766648738":[],"589729149671975":[],"589966898503196":[],"590254532158383":[],"590662763178187":[],"591314768634113":[],"591641383948783":[],"59208130750371":[],"59244549621402":[],"592698097634074":[],"593526011462384":[],"59384855119963":[],"594002773544617":[],"594108812997444":[],"59417396319573":[],"59418":[],"594306141702873":[],"594324746801778":[],"59442":[],"59468":[],"59524":[],"59547":[],"59551":[],"59572":[],"59573":[],"59575":[],"59576":[],"59577":[],"5958":[],"59592188452932":[],"59597":[],"59612":[],"596256581354048":[],"59626":[],"59632":[],"59636":[],"59643":[],"59647":[],"5965":[],"59652":[],"59657":[],"59664":[],"59665":[],"59673":[],"59678":[],"59682":[],"59689":[],"5969":[],"59694":[],"59696":[],"59699":[],"59701":[],"59708306148999":[],"59721":[],"59722":[],"59725":[],"59726":[],"59727":[],"59743":[],"59744":3,"5976173289395574":[],"59767":[],"59782":[],"59784":[],"59786":[],"59787":[],"5979":[],"59803":[],"59835":[],"59839":[],"59841":[],"59844459132463":[],"5985":[],"59855":[],"5986":[],"59873":[],"598760688848813":[],"59876741687965":[],"59887":[],"59921":[],"59948":[],"599827925768675":[],"59983":[],"5999":3,"59994":[],"59996":[],"60006":[],"60017":[],"600241134164218":[],"60039":[],"60069":[],"60289226645117":[],"604403489151945":[],"60528":3,"65674":[],"6974":[],"6978":[],"6997":[],"7003":[],"701":[],"7023":[],"7027":[],"7036":[],"7037":[],"7038":[],"704242":3,"7043":[],"7055":[],"7056":[],"7057":[],"706":[],"7073":[],"7085":3,"7087":[],"7089":[],"7106":[],"7109":[],"7124":[],"741211643809562":[],"74304876607997":3,"74859245":[],"755385627224534":[],"76023069":[],"765952576028187":[],"76842124":[],"771791832189983":[],"778":3,"783566021708202":[],"78392571817897":[],"7845":[],"785":3,"7864":[],"786629644578571":[],"786887567273336":[],"787263242364544":[],"7875":[],"7879":[],"788":3,"7881":[],"7882":[],"7884":[],"788530452127345":[],"7888":[],"789088119446838":[],"7894":[],"7898":[],"7901":[],"7902":[],"7904":[],"7905":[],"7907":[],"7909":[],"7911":[],"7916":[],"7924":[],"792420262623354":[],"7925":[],"79259299707508":[],"792679842182636":[],"7928":[],"7931":[],"7934":[],"7935":[],"7936":[],"79373472932633":[],"79375327340642":[],"7939":[],"794":[],"7941":[],"794525859512465":[],"7946":[],"7948":[],"794913611993831":[],"795":[],"7951":[],"7952":[],"7954":[],"795411829975743":[],"795475321837419":[],"795499058935107":[],"7955":[],"7956":[],"7959":[],"79594977677184":[],"7960":[],"796194915393714":[],"7964":[],"7966":[],"796621250134683":[],"796640975632467":[],"7967":[],"796872157971862":[],"7969":[],"7971":[],"7972":[],"7973":[],"797423615732392":[],"79743275120846":[],"797597406645487":[],"7976":[],"79771834889823":[],"79775638724711":[],"7978":[],"798":[],"798025330587468":[],"798063058345683":[],"798155508869135":[],"7982":[],"798254682186514":[],"7983":[],"798457753580564":[],"798459581995443":[],"798692163840483":[],"798771820437212":[],"798838837528892":[],"798945817539316":[],"798992517200068":[],"799":[],"7990":[],"79901492468194":[],"799093984397995":[],"799143863013667":[],"7992":[],"799213278278414":[],"799274126883487":[],"7993":[],"799313514269278":[],"799437190914343":[],"7995":[],"799528942923308":[],"7997":[],"799726097272123":[],"799837583453888":[],"799885737054286":[],"80006243832455":[],"8001":[],"800125716523665":[],"800142388698992":[],"8002":[],"8003":[],"8005":[],"8006":[],"8007":[],"800826197338846":[],"801017229490652":[],"801145703383265":[],"8012":[],"801241795836075":[],"801278011828773":[],"8013":[],"8014":[],"801571341432496":[],"8017":[],"8019":[],"8020":[],"802009267225108":[],"8021":[],"8022":[],"80231517289431":[],"802369279211504":[],"8025":[],"802595225647261":[],"8026":[],"80285063097791":[],"802877532340284":[],"803":[],"8030":[],"8032":[],"8034":[],"8036":[],"8037":[],"8038":[],"8039":[],"8042":[],"804283806256231":[],"804372466716575":[],"8047":[],"8048":[],"8049":[],"805323740995263":[],"805417402138465":[],"8056":[],"8057":[],"8058":[],"8059":[],"805961022647994":[],"806025038362739":[],"8061":[],"8067":[],"8068":[],"8069":[],"8072":[],"8073":[],"8079":[],"8083":[],"8085":[],"8086":[],"8088":[],"8089":[],"8091":[],"8096":[],"810188245133942":[],"810454":3,"8113":[],"8114":[],"8123":[],"8126":[],"8128000000000003":3,"813188":[],"8139":[],"885":3,"8f72536c7a30":[],"94290651":[],"950":3,"971":3,"977e2f1abbaa":[],"981843":[],"\u03b1":1,"\u03b2":1,"\u03b3":[],"\u03b4":[],"\u03bc":[],"\u03c6":1,"\u03c8":[],"\u03c8_0":[],"\u03d5":[],"\u03f5":1,"break":[1,3,4],"class":[1,3,5],"default":5,"final":3,"function":[3,5],"import":[1,3,4,5],"int":3,"long":3,"return":[1,3,4,5],"true":[3,4,5],"try":[],"while":[1,3,4,5],And:[1,3],For:[3,5,6],Not:5,RHS:5,The:[1,3,5,6],There:[],WITH:[],With:[],__init__:[1,3,5],abl:4,abov:[3,5],abs:[1,4,5],acceler:6,accompani:6,accord:3,act:[1,5],action:4,ad_data:5,ad_sdla:5,address:3,adtssim2:[],adtssim:5,after:3,agre:3,ahead:5,algebra:4,algorithm:[1,4],all:[1,3,4],allclos:[],allow:3,almost:3,alon:1,alpha:[1,3,4,5],alpha_0:5,alpha_1:5,also:[5,6],although:[3,5,6],anaconda3:[],anaconda:6,ani:[4,5],anoth:3,answer:3,antialias:3,append:3,appli:3,approxim:[1,3,4,5],arang:4,arg:5,argmax:3,argument:5,arrai:[1,3,5],arrow:3,asarrai:3,ask:5,assign:3,assum:[1,3],atol:[],author:6,averag:[3,5],axes:[3,5],axs:[],back:[],background:6,bar:[1,3,4],barplot:4,basic:1,becaus:3,becom:[3,4],been:[],befor:4,behaviour:[],bellman:[4,5],below:[3,5],beta:4,beta_0:5,beta_1:5,between:4,bifurc:3,bin:3,binomi:4,borrow:[3,4],both:4,bound:[3,5],brent_max:[],build_p:3,c_bar:5,c_star:5,calcul:[3,4],call:1,calle:[],can:[3,4,5],candid:[],capit:5,carlo:5,certain:4,chain:4,check:[1,3,4],choic:3,claim:3,clear:4,close:3,closur:[1,5],coeffici:4,coincid:1,col:3,collect:5,color:[3,5],column:[],combin:6,comparison:3,compil:[3,6],complet:5,comput:[1,3,4,5,6],compute_margin:3,compute_marginal_2:3,compute_mean_return:[],compute_mean_return_tim:3,compute_optimal_polici:3,compute_policy_valu:4,compute_return_tim:3,compute_stationari:[3,4],compute_time_at_st:4,compute_value_funct:4,concern:5,conda:[],condit:[3,4,5],confid:5,constraint:6,construct:4,consumpt:5,contain:6,continu:4,converg:[1,4,5],convert:3,copi:6,core:[],correctli:5,correspond:4,cost:3,counter:[3,4],creat:[3,6],cumsum:[1,3],current:3,current_profit:3,darker:[],data:[1,5],date:[3,5],dds2:3,dds3:3,decor:5,def:[1,3,4,5],default_param:5,degre:[4,5],delta:5,delta_n:5,demand:3,densiti:5,deprec:[],depreci:5,describ:5,detect:[],determin:[],deviat:4,diagram:[3,4],did:[],differ:[3,5],discount:[3,5],discuss:3,dispatch:[],distribut:[1,3,4,5],dobrushin:4,doc:[],doe:4,down:4,draw:[1,3,5],draw_arrow:3,draw_tau:5,draw_trajectori:3,draws_from_margin:5,dtype:3,due:[3,5,6],each:[1,4],earlier:4,ecdf_val:5,edgecolor:[1,3,4],edit:6,effici:1,elaps:3,element:3,elid:[],elif:4,els:[1,3,4,5],email:6,empir:[1,5],empti:[1,3,4,5],empty_lik:[4,5],enabl:[],encount:6,ensur:5,enumer:[1,3,4,5],eps:[3,4],epsilon:4,equal:3,equat:5,equival:4,error:[4,5,6],estim:5,evalu:[1,4],even:[3,4],exact:4,exactli:4,execut:3,exercis:[3,5,6],exern:5,exist:3,exp:5,expect:[1,3,5],expected_consumpt:5,experi:3,experiment:5,extra:5,facecolor:1,fact:5,factor:5,factori:1,fail:[1,4,5],fall:[],fals:3,familiar:6,fast:[3,6],feasibl:4,feed:3,fig:[1,3,4,5],figur:[3,5,6],file:[],fill:3,find:3,finit:4,first:[3,4],flatten:[3,4,5],float46:[],float64:5,follow:[1,3,4,5,6],fontsiz:3,foo:[],forceobj:[],forward:3,found:4,fraction:[1,3,4],frequenc:1,from:[1,3,4,5,6],fun:[3,5],gamma:[4,5],gaussian:5,gener:[1,3,5],generate_ad_t:5,generate_solow_t:5,generate_t:5,genexpr:[],get:[3,6],get_greedi:4,give:[3,4,6],given:[1,3,4,5],global:[3,4],good:3,greedi:[4,5],grei:[3,5],grid:[3,5],grid_max:5,grid_point:5,grid_siz:5,gross:5,growth:[3,5],guarante:4,guess:5,hamilton:3,hand:5,happen:3,has:3,have:[3,4,5],head_length:3,head_width:3,henc:5,here:[1,3,4,5,6],high:[],higher:5,highest:4,hist:3,histogram:[1,3],hold:4,home:[],howard:4,html:[],http:[],ident:[3,4],ifels:[],illustr:1,immedi:5,implement:[1,4,5],impli:3,incom:[],increas:[3,5],inf:[3,4],infer:[],inform:[],infti:5,inher:3,init:[3,5],init_k:5,init_valu:5,initi:[3,4,5],initial_st:3,inner:3,input:[],instal:6,instanc:5,instruct:6,intens:5,interp1d:5,interp:5,interpol:[5,6],interv:5,introduct:6,invari:3,inventori:3,ipython:[],irrelev:3,issu:6,iter:5,jit:[3,4,5],jitclass:5,john:6,julia:6,jupyt:6,just:[3,6],k_0:5,k_1:[],k_b:5,k_bar:5,k_draw:5,k_t:[],kde:5,kde_factori:5,kernel:[3,4,5],label:[1,3,4,5],lack:6,lae:[],lae_factori:5,lag:5,lambda:[1,3,5],languag:6,last:5,latest:6,law:5,lead:[4,5],learn:3,legend:[1,3,4,5],len:[3,4,5],length:3,less:4,let:[1,3,4,5],lib:[],librari:[1,6],lifetim:4,lift:[],liftedloop:[],lighter:[],like:6,linalg:[3,4],line:5,link:6,linspac:[3,5],littl:3,lln:3,locat:5,log:5,logist:5,lognorm:5,look:[3,5],loop:[4,5],looplift:[],lower:[3,5],m_sigma:4,make:3,map:[3,5],margin:5,markov:4,markovchain:3,mass:4,match:3,matlab:6,matplotlib:[1,3,4,5],matrix:[],matrix_pow:3,max:[4,5],max_:5,max_it:[3,4,5],max_t:3,maxim:5,maximizis:5,maximum:[4,5],mean:[1,3,5],messag:6,method:[1,4,5],might:[],min:4,min_:5,minim:5,minimize_scalar:5,miss:[],mit:6,mode:[],model:[3,5],mont:5,more:1,most:3,motion:5,msg:[],much:3,mutation_ess:4,nconverg:[4,5],need:[3,4,6],new_:5,new_k:5,new_param:5,new_sigma:4,next:[3,4,5],njit:[],none:3,nopython:[],normal:[3,5],note:6,notic:3,now:[3,4,5],npydecl:[],nrm:3,numba:[3,4,5,6],numbadeprecationwarn:[],numbawarn:[],number:3,numer:5,numpi:[1,3,4,5,6],object:[4,5],object_mode_pass:[],observ:[],obtain:3,omit:5,one:[3,5],ones:[3,4],onli:[4,6],open:6,oper:[4,5],opt_savings_data:[],opt_wealth_dist:4,opt_weath_dist:[],optim:3,optimal_polici:[],optimalsav:5,option:3,org:[],os_reward:4,our:[3,4,5],out:4,over:5,overload:[],p_h:3,p_q:3,p_sigma:4,pace:6,packag:[],param:5,paramet:[3,4,5],particular:3,pass:[],passag:5,past:6,path:[3,4],path_prob:3,pdf:[3,4,5],perform:5,persist:3,person:6,perspect:3,phi:[1,3,4,5],piec:5,pleas:6,plot:[1,3,4,5],plt:[1,3,4,5],point:4,polici:[3,5],policy_iter:4,posit:4,possibl:1,preced:3,precis:4,predict:3,prefer:[],press:6,previous:3,primit:4,print:[1,3,4,5],print_skip:[4,5],prob:3,prob_exited_recess:[],probabl:[1,3,4],problem:[],produc:5,profit:3,profit_at_stationari:3,provid:6,psi:[3,4],psi_star:[3,4],psi_t:5,psi_vec:3,publish:6,put:5,pydata:[],pyplot:[1,3,4,5],python3:[],python:[1,5,6],quantecon:[3,6],question:3,r_sigma:4,rais:[],rand:3,randn:5,random:[1,3,4,5],random_binary_distribut:[],randomdecl:[],rang:[1,3,4,5],rate:5,rather:[],reader:6,recess:3,recession_st:3,record:4,recreat:6,refer:[],reject:[],rel:[3,5],repres:[3,5],reproduc:5,requir:[5,6],resolv:[],respect:3,restock:3,result:[3,4,5],revenu:3,revers:5,reward1:4,reward2:4,reward:4,rho:[3,4,5],right:5,round:5,routin:5,row:3,run:[3,4,6],running_max:[3,4],running_min:4,rvs:[],s_bar:4,sai:3,same:3,sampl:[4,5],sample_frac:4,sample_s:5,save:3,savefig:[3,4,5],savings_r:5,scalar:5,scalar_maxim:[],scale:[3,5],scatter:4,scientif:6,scipi:5,sdsdiagram:3,sdsstabl:3,searchsort:[1,3],second:6,section:[4,5],see:[3,5],seed:5,seem:3,self:[1,3,5],seri:[3,5],series_length:[],set:[3,4,5],set_titl:[3,5],set_xlabel:[3,4,5],set_xlim:3,set_xtick:3,set_ylabel:[3,4],set_ylim:[3,4],set_ytick:3,sever:3,shape:[3,4],shift:3,shock:[4,5],shock_siz:5,should:1,show:[1,3,4,5],shown:[3,5],side:5,sigma:[4,5],sigma_hat:5,sigma_star:[4,5],sigma_star_pi:4,signatur:[],sim_from_margin:5,sim_length:4,sim_siz:5,similar:[3,5],simul:[3,5],sin:1,sinc:[3,4,5],site:[],size:[1,5],slightli:5,small:5,smooth:5,solow_ecdf:5,solow_golden:5,solow_t:5,solut:[3,5,6],solv:[3,4,5],solve_model:5,some:[3,4,5],sourc:[],space:4,specif:[],specifi:3,speed:[],spend:[3,4],sqrt:[3,5],stabil:[3,4,5],stabl:[3,4],stachurski:6,stage:6,standard:5,star:5,star_data:5,star_g:5,starseq:5,start:[3,4,5],state:[3,4,5],state_action_valu:5,state_valu:3,stationari:[3,4],statist:3,std:5,steadi:[3,5],stem:1,step:[3,4],stochast:[3,4,5],stock:[3,5],store:[4,5],str:5,subplot:[1,3,4,5],success:4,suffici:3,suggest:4,sum:4,sup:4,surpris:3,surprisingli:5,system:3,t_date:5,t_val:3,take:[3,5],target:3,task:[3,5],tau:[1,3,5],tau_draw:5,tau_factori:1,techniqu:5,templat:[],termin:[],test:[1,5],text:3,textbook:[3,4,6],than:4,thei:5,theori:[3,6],thi:[0,1,2,3,4,5,6],those:[5,6],though:4,threshold:5,through:6,tight_layout:[3,5],time:[3,4,5,6],tmp:[],tol:[4,5],tool:5,topic:6,touch:6,tracker:6,traj:3,trajectori:3,transit:5,ts_length:[3,5],ts_lenth:[],tupl:5,turn:[3,4,5],two:[3,4],type:[],typeerror:[],typer:[],typic:5,uncom:3,under:5,uniform:[1,3,4],uniqu:3,unitupl:[],unknown:[],until:4,updat:[3,4,5],upper:[3,5],use:[1,3,4,5],used:[1,2],useful:5,uses:5,using:[3,4,5,6],util:[4,5],v_arrai:5,v_greedi:5,v_max:5,v_new:[4,5],v_sigma:4,v_star:[4,5],val:[],valu:[1,3,5],vari:4,varianc:[],vector:5,verbos:[4,5],veri:3,verifi:3,version:6,vfi:4,vfiv:4,via:[3,4,5,6],visit:[],w_vec:5,wai:4,warn:[],warn_msg:[],wealth:4,wealth_opt_pol:4,welcom:6,well:[1,5],what:[1,3],when:[3,5],where:1,which:[3,4,5],who:6,width:4,without:[],work:[1,5],would:6,write:4,written:[],x_0:3,x_data:5,x_grid:5,x_init:4,x_new:3,x_ob:5,x_val:3,xgrid:3,xmax:3,xmin:3,y_grid:5,y_new:3,yep:3,ygrid:3,ymax:3,ymin:3,you:[3,6],your:6,z_bar:4,zero:[3,4],zip:5},titles:["Chapter 1 Code","Chapter 2 Code","Chapter 3 Code","Chapter 4 Code","Chapter 5 Code","Chapter 6 Code","Economic Dynamics Code Book"],titleterms:{"function":[1,4],The:4,bisect:1,book:6,chain:3,chaotic:3,chapter:[0,1,2,3,4,5],code:[0,1,2,3,4,5,6],defin:1,demand:[],dynam:[3,6],econom:6,equilibrium:4,expect:[],first:5,foobar:[],given:[],introduct:3,iter:4,markov:3,object:1,optim:[4,5],orient:1,polici:4,problem:4,profit:[],program:1,restock:[],save:[4,5],select:4,state:[],step:5,user:1,valu:4}}) \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch1.ipynb b/code_book/_build/jupyter_execute/ch1.ipynb index 2a4224f..7344a3e 100644 --- a/code_book/_build/jupyter_execute/ch1.ipynb +++ b/code_book/_build/jupyter_execute/ch1.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "c783256b", "metadata": {}, "source": [ "# Chapter 1 Code\n", @@ -43,5 +44,5 @@ ] }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch2.ipynb b/code_book/_build/jupyter_execute/ch2.ipynb index a12e0f5..d312353 100644 --- a/code_book/_build/jupyter_execute/ch2.ipynb +++ b/code_book/_build/jupyter_execute/ch2.ipynb @@ -2,11 +2,366 @@ "cells": [ { "cell_type": "markdown", + "id": "e5556182", "metadata": {}, "source": [ - "# Chapter 2 Code\n", + "# Chapter 2 Code" + ] + }, + { + "cell_type": "markdown", + "id": "40231c74", + "metadata": {}, + "source": [ + "We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6aa68cab", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "6fa2772c", + "metadata": {}, + "source": [ + "## Bisection" + ] + }, + { + "cell_type": "markdown", + "id": "e35e3054", + "metadata": {}, + "source": [ + "Here's an implementation of the bisection algorithm. We will test it on this function:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "04b3f103", + "metadata": {}, + "outputs": [], + "source": [ + "f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1" + ] + }, + { + "cell_type": "markdown", + "id": "30e470e4", + "metadata": {}, + "source": [ + "The implementation:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "47d97ea8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.408293504267931\n" + ] + } + ], + "source": [ + "M = 1000\n", + "ϵ = 1e-8\n", + "α, β = 0, 1\n", + "\n", + " \n", + "i = 1\n", + "a, b = α, β\n", + "while i <= M:\n", + " c = (a + b) / 2\n", + " if abs(f(c)) < ϵ:\n", + " print(c)\n", + " break\n", + " i += 1\n", + " if f(a) * f(c) < 0:\n", + " b = c\n", + " else:\n", + " a = c\n", + " \n", + "if i > M:\n", + " print(\"Failed to converge.\")" + ] + }, + { + "cell_type": "markdown", + "id": "147c2a03", + "metadata": {}, + "source": [ + "## User Defined Functions" + ] + }, + { + "cell_type": "markdown", + "id": "8018f1c2", + "metadata": {}, + "source": [ + "Here's the basic implementation of the function $\\tau$." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6d5d5fd0", + "metadata": {}, + "outputs": [], + "source": [ + "def tau(z, S, phi):\n", + " \"\"\"\n", + " Evaluates the function tau(z) given data S, phi, where\n", + " S and phi are assumed to be arrays.\n", + " \"\"\"\n", + " a = 0\n", + " for i, x in enumerate(S):\n", + " b = a + phi[i]\n", + " if a < z <= b:\n", + " return x\n", + " a = b" + ] + }, + { + "cell_type": "markdown", + "id": "e5948a66", + "metadata": {}, + "source": [ + "Here's a more efficient implementation." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1f72ee83", + "metadata": {}, + "outputs": [], + "source": [ + "def tau(z, S, phi):\n", + " i = np.searchsorted(np.cumsum(phi), z)\n", + " return S[i]" + ] + }, + { + "cell_type": "markdown", + "id": "b4c1ae69", + "metadata": {}, + "source": [ + "And here's a closure that generates the function $\\tau$." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7071228b", + "metadata": {}, + "outputs": [], + "source": [ + "def tau_factory(S, phi):\n", + " Φ = np.cumsum(phi)\n", + " \n", + " def tau(z):\n", + " i = np.searchsorted(Φ, z)\n", + " return S[i]\n", + " \n", + " return tau" + ] + }, + { + "cell_type": "markdown", + "id": "221398c1", + "metadata": {}, + "source": [ + "We generate a function $\\tau$ that acts on $z$ alone by calling the function factory:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bee09a7f", + "metadata": {}, + "outputs": [], + "source": [ + "phi = 0.2, 0.5, 0.3\n", + "S = 0, 1, 2\n", + "tau = tau_factory(S, phi)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "54226172", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tau(0.1) # Should be 0" + ] + }, + { + "cell_type": "markdown", + "id": "88f28c1f", + "metadata": {}, + "source": [ + "All of these functions work as expected. To illustrate, here $\\tau$ is used to generate draws from a given distribution $\\phi$." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "ca3380d6", + "metadata": {}, + "outputs": [], + "source": [ + "size = 100_000\n", + "\n", + "draws = np.empty(size)\n", + "for j in range(size):\n", + " W = np.random.uniform()\n", + " draws[j] = tau(W)\n", + " \n", + "# Compute fraction of draws with each possible value\n", + "frequency = [np.mean(draws==j) for j in S]\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "e2850786", + "metadata": {}, + "source": [ + "Let's check that the empirical frequency approximately coincides with the probabilities in $\\phi$." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "107915f7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch2_21_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.bar(S, frequency, \n", + " edgecolor='k',\n", + " facecolor='b',\n", + " alpha=0.25, \n", + " label=\"histogram\")\n", + "\n", + "ax.stem(S, phi, label='$\\\\phi$')\n", + "\n", + "ax.legend()\n", "\n", - "To be added." + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "95a5d3a0", + "metadata": {}, + "source": [ + "## Object Oriented Programming" + ] + }, + { + "cell_type": "markdown", + "id": "646ff165", + "metadata": {}, + "source": [ + "Here's a class that implements the function $\\tau$ as a method, as well as a method to generate draws from $\\phi$." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "6a1cb12e", + "metadata": {}, + "outputs": [], + "source": [ + "class Tau:\n", + " \n", + " def __init__(self, S, phi):\n", + " self.S = S\n", + " self.Φ = np.cumsum(phi)\n", + " \n", + " def tau(self, z):\n", + " i = np.searchsorted(self.Φ, z)\n", + " return self.S[i]\n", + " \n", + " def draw(self):\n", + " W = np.random.uniform()\n", + " return self.tau(W)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "13694498", + "metadata": {}, + "outputs": [], + "source": [ + "tau = Tau(S, phi)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "6d09cfc5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "1\n", + "1\n" + ] + } + ], + "source": [ + "for i in range(5):\n", + " print(tau.draw())" ] } ], @@ -36,12 +391,38 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.7" + "version": "3.8.5" }, "source_map": [ - 14 + 14, + 18, + 22, + 25, + 29, + 33, + 35, + 39, + 60, + 64, + 68, + 80, + 84, + 88, + 92, + 101, + 105, + 111, + 113, + 117, + 129, + 133, + 147, + 151, + 155, + 171, + 175 ] }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch2.py b/code_book/_build/jupyter_execute/ch2.py index 3904fd4..e658d9e 100644 --- a/code_book/_build/jupyter_execute/ch2.py +++ b/code_book/_build/jupyter_execute/ch2.py @@ -2,5 +2,182 @@ # coding: utf-8 # # Chapter 2 Code -# -# To be added. + +# We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting. + +# In[1]: + + +import numpy as np +import matplotlib.pyplot as plt + + +# ## Bisection + +# Here's an implementation of the bisection algorithm. We will test it on this function: + +# In[2]: + + +f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1 + + +# The implementation: + +# In[3]: + + +M = 1000 +ϵ = 1e-8 +α, β = 0, 1 + + +i = 1 +a, b = α, β +while i <= M: + c = (a + b) / 2 + if abs(f(c)) < ϵ: + print(c) + break + i += 1 + if f(a) * f(c) < 0: + b = c + else: + a = c + +if i > M: + print("Failed to converge.") + + +# ## User Defined Functions + +# Here's the basic implementation of the function $\tau$. + +# In[4]: + + +def tau(z, S, phi): + """ + Evaluates the function tau(z) given data S, phi, where + S and phi are assumed to be arrays. + """ + a = 0 + for i, x in enumerate(S): + b = a + phi[i] + if a < z <= b: + return x + a = b + + +# Here's a more efficient implementation. + +# In[5]: + + +def tau(z, S, phi): + i = np.searchsorted(np.cumsum(phi), z) + return S[i] + + +# And here's a closure that generates the function $\tau$. + +# In[6]: + + +def tau_factory(S, phi): + Φ = np.cumsum(phi) + + def tau(z): + i = np.searchsorted(Φ, z) + return S[i] + + return tau + + +# We generate a function $\tau$ that acts on $z$ alone by calling the function factory: + +# In[7]: + + +phi = 0.2, 0.5, 0.3 +S = 0, 1, 2 +tau = tau_factory(S, phi) + + +# In[8]: + + +tau(0.1) # Should be 0 + + +# All of these functions work as expected. To illustrate, here $\tau$ is used to generate draws from a given distribution $\phi$. + +# In[9]: + + +size = 100_000 + +draws = np.empty(size) +for j in range(size): + W = np.random.uniform() + draws[j] = tau(W) + +# Compute fraction of draws with each possible value +frequency = [np.mean(draws==j) for j in S] + + + +# Let's check that the empirical frequency approximately coincides with the probabilities in $\phi$. + +# In[10]: + + +fig, ax = plt.subplots() + +ax.bar(S, frequency, + edgecolor='k', + facecolor='b', + alpha=0.25, + label="histogram") + +ax.stem(S, phi, label='$\\phi$') + +ax.legend() + +plt.show() + + +# ## Object Oriented Programming + +# Here's a class that implements the function $\tau$ as a method, as well as a method to generate draws from $\phi$. + +# In[11]: + + +class Tau: + + def __init__(self, S, phi): + self.S = S + self.Φ = np.cumsum(phi) + + def tau(self, z): + i = np.searchsorted(self.Φ, z) + return self.S[i] + + def draw(self): + W = np.random.uniform() + return self.tau(W) + + +# In[12]: + + +tau = Tau(S, phi) + + +# In[13]: + + +for i in range(5): + print(tau.draw()) + diff --git a/code_book/_build/jupyter_execute/ch3.ipynb b/code_book/_build/jupyter_execute/ch3.ipynb index e43d556..bd65333 100644 --- a/code_book/_build/jupyter_execute/ch3.ipynb +++ b/code_book/_build/jupyter_execute/ch3.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "07367896", "metadata": {}, "source": [ "# Chapter 3 Code\n", @@ -43,5 +44,5 @@ ] }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch4.ipynb b/code_book/_build/jupyter_execute/ch4.ipynb index 5f298e1..8c83204 100644 --- a/code_book/_build/jupyter_execute/ch4.ipynb +++ b/code_book/_build/jupyter_execute/ch4.ipynb @@ -2,26 +2,53 @@ "cells": [ { "cell_type": "markdown", + "id": "1a899127", "metadata": {}, "source": [ - "# Chapter 4 Code" + "# Chapter 4 Code\n", + "\n", + "Let's start with some imports." ] }, { "cell_type": "code", "execution_count": 1, + "id": "acdfa84d", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from numba import jit\n", + "from quantecon import MarkovChain" + ] + }, + { + "cell_type": "markdown", + "id": "3977386b", + "metadata": {}, + "source": [ + "## Introduction to Dynamics\n", + "\n", + "Here's the code that generated figure 4.1." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ea812370", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAADQfElEQVR4nOydd1gU9/f9X0vvRXpHEUGwgWAH7L0n1lgTjSZRU0xMMYlLTDRGTYyxJLFFTew19hIV7IpiRayAhY4gvc/vDz4zYWGBBQHJ78t5Hh91y8zs7syZ+7733HNlgiBQj3rUox71qLtQe9UHUI961KMe9Sgf9URdj3rUox51HPVEXY961KMedRz1RF2PetSjHnUc9URdj3rUox51HBo1sVFzc3PB2dm5JjZdj3q8FDIyMtDX13/Vh1GPepTClStXEgVBsFD2XI0QtbOzMyEhITWx6XrU46Vw6tQpOnfu/KoPox71KAWZTBZV1nP1qY961KMe9ajjqCfqetSjHvWo46gn6nrUox71qOOoJ+p61KMe9ajjqCfqetSjHvWo46gn6nrUox71qOOoJ+p61KMe9ajjqBEddT3qUQ9FxMbGkpubi7q6eqk/ampqaGtro6Wl9aoPsx51FPVEXY961AL27dvHs2fP0NLSwtTUlIKCAulPXl4eenp6TJ8+/VUfZj3qKOqJuh71qAVMnDiRa9eucebMGQwMDAgICMDR0RGAq1ev8vfff5OWloahoeErPtJ61EXUE3U96lEL0NDQwMfHBy8vL65fv87u3bsxMTEhICCAq1evArB48WLp9d7e3nTq1IkGDRq8qkOuRx1CPVHXox61CHV1dby9vWnZsiU3b97k77//Jjk5mRkzZqCnp8fly5cJDg7m6tWrEoEDeHh44O/vj7W19Ss8+nq8KshqYmaij4+PUG/KVI+6iLpmylRYWEhKSorSyDkvL4/Q0FCCg4NJT09XeM7FxQV/f38cHR2RyWS1dbj1qEHIZLIrgiD4KHuuPqKuRz1eIdTU1BRI+tatW1y4cAETExPpz+DBgzExMcHQ0JC7d+8SHBzMw4cPefjwofQ+Ozs7AgICcHV1rSfu/w9RT9T1qEcdgp2dHdra2ty6dQt3d3cyMzMJCwsjJSWF1NRUdHV1mThxIg0aNEAQBO7du0dwcDDPnj1j06ZN0nbMzc3x9/enWbNmqKnVt0v811FP1PWoRx2CqakpY8aM4ebNmxw9epRmzZoxcuRItLS0SE9PZ9GiRejo6AAgk8lwc3PDzc0NAEEQePz4MUFBQTx69Ihdu3axa9cuAElp4uXlhYZG/WX/X0N9jroe/6dQ13LU5SEzM5OjR48SERFBv379uHfvnjSQw8zMjBEjRmBpaVnuNmJiYjh9+jRhYWEKj2tqauLv74+vr69E/PV4tSgvR11P1PX4P4X/ElGLePToEfv37+fFixdMnDiRmzdvcvHiRel5FxcXhgwZgoGBQYXbSkpK4syZM4SGhpZ6rlOnTrRv375+VNkrQj1R16Me/8N/kaihSAESFxeHvb299NilS5e4cOECCQkJqKurA+Dj40OvXr3Q1NRUabtpaWmcO3eO8+fPl3rOx8eHTp06YWJiUi2foR7lo56o61GP/+G/StQlIQgC69at4/Hjx6irq2NkZCSpQIyMjNDQ0KBHjx506NChUiqQrKwsLl68SHBwMIWFhQrPNW/eHD8/vwrTLfWoGuqJuh71+B/+fyFqgPz8fPbv38/jx4/p1KkTL168ICoqilu3bvHgwQMcHBwwMzMDYPjw4Xh4eFR6H3l5eVy5coXg4GAyMzMVnnN1dcXf3x8HB4dq+Tz/11FP1PWox//w/xNRQ1FkfeHCBc6ePcuwYcNwcnIiPz+f1atX07JlS3R0dNi7d6/0egMDA0aNGoWdnV2V9ldQUMCNGzcIDg4mOTlZ4TlHR0f8/f1xcXGp13JXAfVEXY96/A//vxG1iIcPH7Jr1y66dOmCjo4OO3bsAODdd9/F0tKSgoICgoKCCA4Olt7j4ODAa6+99lI5aEEQCA8PJygoiNjYWIXnLC0t8ff3x8PDo17LrQLqiboe9fgfKkPUgiCQlZVFRkYG6enppKenS//OyMigsLCQfv361Rkf6aSkJLZs2UJKSgr+/v78888/0nMTJ07EyckJgOzsbA4cOMDNmzel55s3b06/fv1eWqonCAIREREEBwcTGRmp8JyxsTH+/v60bNmyXsutBPVEXY96/A+VIeo9e/Zw7do1ZDIZ9vb2GBkZYWBggL6+PgYGBhw4cICZM2eip6dXswddCeTk5PDs2TMaNWoEQHR0NIsXLyY0NBRzc3OmT59Ox44dpQg3JSWFnTt38uTJE2kb/v7+BAQESEqSl8WzZ88IDg7m7t27Co9ra2tLWu66crN7lagn6nrU43+oDFFnZGRw+/Ztbt68SVJSEp6enjRv3hwHBwcyMjJYtGiRwuvV1dVxdnaW/tja2lYb2b0MBEHgzz//ZM2aNejr65Ofn8/48ePp2bMn5ubm0uuePn3Kli1bFAygBg0aRKtWrao155yQkMCZM2e4fv16qef8/f1p165dnbr51Rbqiboe9fgfqpqjTk5O5ubNm9y8eZO8vDwcHByIj4+nW7duREZGEhkZSXR0dLnbUFNTK0XktZUCEASBXbt2kZCQwIMHD4iLiyMuLo6uXbvSr18/mjdvrvD6sLAwtm3bJv1fU1OT0aNH07Bhw2o/thcvXnD27FkuXbpU6rk2bdrQsWNHjI2Nq32/dQ31RF2PevwPL1tMFASBuLg4bty4gY2NTSmCK47s7GyePHkiEfmzZ8/K3bZMJlMgcjs7u2ol8oKCArZu3YqWlhYBAQH88ssvPHz4kOTkZJYuXUrjxo1LvUcQBM6dO8exY8ekxywtLRk+fLhCNF6dyMjIkLTcJdGyZUv8/PxqbN+vEvVEXY96/A91SfWRk5OjQORPnz6t8D0liVzVDkQReXl5/PXXX5ibm9OmTRsWL15MWFgYrVu3BmDUqFGSyVNJ5ObmcvToUYpf225ubgwcOLBG285zcnIICQkhODiYnJwchefc3d3x8/OrstywLqGeqOtRj/+hJog6Li6Of/75R+mEcfFP69atKz1WKzc3V4HIixf8yoKTk5NE5Pb29kqJPCcnhw0bNpCQkICdnR0RERFkZ2ejpqZGTk4OCQkJfPDBB3h7e5e5n7S0NPbs2aPgid22bVt69OhR4+mc/Px8rl27RnBwMKmpqQrPOTs74+/vT8OGDf9zWu56oq5HPf6HmiDq5ORkjh49yp07d7CxscHb2xs1NTUKCgooLCzk6tWr+Pj40KZNm2rdb25uLk+fPiUyMpKoqCiioqIqfI+joyPOzs5YWVkhk8nw8PAgKyuLBQsWAEUSugMHDkivfe+996RouyzExcWxbds2kpKSpMd69+5N27Zta4UsCwsLCQsLIzg4mPj4eIXnrK2tCQgIwN3dvc4Tdz1R16Me/0NNpj7i4uIk/XD79u0l2VlgYCBQFO36+/vTqFGjWiGNvLw8nj59SlRUlBSVl4enT58SHx9PdnY2bm5uPH/+nMTERJydnZk8eTI+Pko5RAEPHjxg06ZNCj4h5aVTagKCIPDgwQOCg4NLrUJMTU3x9/enRYsWdUKRUxz1RF2PevwPtZGjjo+P5/Tp0zx69IimTZty9epVLCwsiIuLU3idlZWV1Ln3KqK9/Pz8UkSel5fH6dOniYmJwd7eHg8PD4KCgsjOzsbU1JQePXrQpUsXnJ2dcXBwQFtbW+m2BUHgypUr7N+/X3rM2NiYkSNHYmNjU1sfUcKTJ08IDg7m/v37Co/r6uoSEBBA69atK53vr27UE3U96vE/1GYxMTExkdOnT+Ps7IyXlxdQRGCPHj0iODi4VKrCxMRE6tx71dHesWPHWLBgAY0bN6Znz57cvHmTv/76CzMzM7S1tXFxcVFqxmRnZ4ezszNOTk44Ojqio6NDQUEBJ06c4OzZs9LrnJ2dGTp0KEZGRrX5sSTExcVx+vRpbt26pfC4mpoa/v7+tG3bFl1d3Vo9pnqirkc9/odXrfoQddgWFhaYm5ujq6vL06dPCQ4O5t69ewqv1dHRkaK9V9G5d+7cOebPn0+zZs24e/cuXbp0YfLkyaxfv56YmBgKCgpo2rQpDg4OUkReUFBQ7jbNzc2JjY0lJSUFExMTNDQ08PLyonfv3mVG57WB5ORkzp49izLeat++PR06dMDQ0LBGj6GeqOtRj//hVRP1vn37uHLlikRKGhoamJubS3+cnZ1RV1fn9OnTCl4cUKSzFjv3aiPaEwSBzZs3c/bsWcLCwhAEgalTpzJy5Ehyc3ORy+VcuXKFpk2bMmjQIDp37qyQwikoKCAmJkYi8cjISPLz86Xns7KyCAsLIy0tTXqsdevWdO/enYYNG+Lk5FTrUa2I9PR0zp8/r7AKEOHl5YWfn1+lVTwVoZ6o61GP/+FVEzXA7du3OXToEF5eXrRu3Zrk5GQSExO5d+8eGRkZvP322wqvT0lJ4ezZs1y+fLnUttq1a0eHDh1qLIWQmZlJdHQ0jo6OTJkyhYiICBo3bsyqVatIS0vjxx9/5ObNmxgYGODs7EynTp3o3r27Sjn3goICYmNjiYyMJCQkhIMHDyropJs2bYqlpaXCtqytrSUJopOTU621mmdnZ3P58mWCgoIUbjYAHh4e+Pv7Y21t/VL7+M8QdVhYGJaWlq+86+jSpUu0bNnylS7FRMP2du3avbJjgKLCWEJCAp6enq/0OK5du0aDBg1wdHR8qe28DFFnZWWxZ88e+vTp89LjqdLT09m3bx8pKSkMGTIEa2tr5HI5AB9++GGZLdPPnj3jwIED3LlzBwMDg1K57FatWuHn5ycNDFAGQRDIz88nKyuLrKwsMjMzS/275N/iv8PCwqR5jUOGDEFTU5N27dqRnp7OmTNnaNCgATo6OrRt25bevXtXukgqCAK3bt1i586dCIJAeno6mZmZNG3alPT0dHJzc5W+z9/fn65du1ZqXy+DvLw8QkNDCQ4OVvBGee2118rtVi0P/xmilsvlGBkZ8dFHH1X7MVX2OF5//XWaNWv2yo7h0aNHbNiwQbp4XxXkcjnq6up89dVXr+wY7t27x6ZNmxgxYgRNmzat8nays7M5ffq0yhFfcfzzzz+cPn0agM8++6xaJncLgsCNGzc4evQoHh4eXLhwgby8PPLy8sjPz8fHxwcHBwcuXLjArVu3FJ6zsLCgSZMmZGVlkZ+fT3R0NFFRUaVyxObm5jg5OVVbflVbW5ucnBw2b96MTCZj4MCBNGjQgGnTpnHz5k2Cg4NRV1eXyKt169b079+/SqqWwsJCzpw5w4kTJ6THbGxsGDZsGA0aNKCwsJC4uDgiIyNxcnLC1ta2Wj5jVVBYWMjt27dxdnau8nddHlHXKVPYRo0a8ejRo1d9GECRw9erRExMzCvdPxQRCcCAAQNe2TFkZGSwadMmbGxsKk3SYmdfREQEERERJCQk0KhRI6KionB2dq7w/YIgEB0dzdKlS8nLy8Pd3Z327dtz/fr1cqPOkm3OFSE7O5t169ZhZmaGlZUVT5484eLFi+zYsQN1dXU0NTWxtbWladOmWFtbSxalWVlZABgaGtKqVSs6dOiArq4u2traPHv2jHv37pGbmyuRuYaGBo0bN6Zr1664urq+lJn/xx9/zCeffMKlS5ewtLRk9+7djB07FmdnZzZt2kSvXr2IiYnhypUrXLlyhRYtWjB48OBK7VNUYPj7+5OTk8Phw4cJDQ1l6dKlQFHKYcCAAbRv377Kn6O6oKamVuVIWhXUKaL29fWtM0SdmJj4SvdfclrGq8C5c+eAIiOcVwFBEFi4cCFAqbxtWUhLS+PKlStEREQQExODtbU1DRs2pEePHtjb27N9+3b++OMPlfZ969Ytqduuffv2REdHs3PnzgrfK5PJ0NPTQ1dXV/q7+L+L/62jo0NsbCxnz54lPj4emUyGq6srzs7OREdHU1BQQFpaGubm5piZmUk54MoQnhjtBQcHExcXx+bNm6XnbG1t8ff3x83NrVJRr4GBAb/88gvffPMNwcHB/P777yQlJaGtrU1aWhp2dna0b9+eIUOGsG/fPoKDgzl58iR+fn68/vrrlb5JaGtrM2jQIAYNGkRqaiq7d+8mLCyMsLAwADp27EjXrl1fuayxplCniFrsXnr+/Hm1V1Qri1cdUdcFoj527BgaGhqvrPX2119/BWDWrFkqH0NaWhphYWEkJiZiZGQkTeTOzc0lIyMDDQ0NNDQ0cHV1VUqeurq6JCYmsnPnTjw9PenXrx9t27at1s/1/PlzTpw4UUrD6+rqSrdu3aSGkLi4ODZu3IiNjQ2FhYXs2rWL27dvs2XLFqysrHjvvfewt7evcH9itCdGfIIgcP/+fYKDgyUPahENGjQgICCA5s2bV0imGhoaBAYGMm/ePM6dO8eWLVvQ0dGhZcuWGBgYAEjpEQsLC5YtW8aJEycICwujSZMmjBgxokrEamRkxPjx44GilefWrVs5e/aspNDo168fPj4+db5lvDKoUzlqKMqJdujQgZ49e1bzUVXuGNTU1Pj666//zx5DXl4e3333HePGjZOmhdQmLl26xMGDB3njjTdwdXWt9Pvz8/NJTEyUfJfFP3Z2dnh5eeHu7q70PUuXLiU1NRUtLS0++eSTaulWy8nJ4fz585w6dUrhcRMTE3r06FFuZ2JSUhIbNmyQWtIjIiLYv38/e/bswcfHBwMDA1q2bEn//v2rfKyCIPD48WNOnz7NgwcPFJ7T19fH398fb2/vcre/du1arl69Sl5eHnfv3kVPT4+dO3dK8rrU1FR++uknaRUhrlQaNWrE6NGjq8XI6e7duwqrBZlMxhtvvKHUvrUu4j+ToxZx+fLlV0rUpqampSYsvwq8ilZbEaL/8Ksg6cTERA4ePEjLli2rRNJQFO1ZW1uXkkydPHlSKUlfu3aNPXv2AFT55iBCEARu377NsWPHePHihcJznTt3pn379ioriszMzJg4cSIbNmwgJydHcobr3LkzM2fOZPfu3Vy/fl2allKVY5fJZDg5OUkzFaFoRXf69GlJSnjo0CGgaIpNQEAAbdq0USiovvnmmzg5OXH69GkaN27MgQMH6NOnD6tXr6Zx48YYGRlhb29PixYtOHfuHN26dSMvL4/g4GC+/fZbHB0dGTt27EvdGN3c3JDL5QiCwKVLlzh06BB//vknULRSGDFiBFZWVlXe/qtEnYuot23bRlhY2CtVO/z111/cv3//lR6DXC6ndevWr6yQJ5fLMTc3Z9q0abW634KCAubOnSsdQ3WjpDwvMzOTH374AShyi5s4cSJQlELR09NTOdKLiYnh+PHjCrafAM2aNaNr164vncpLS0tj48aN2NnZERoaKj0+efJk7OzsuHLlCvv27ZMeb9y4Ma+99lq1NYw8f/6cs2fPcuXKlVLPdejQgQ4dOmBgYMDNmzfZuXMnampqnDlzhry8PAYPHsz06dO5ePEi8fHxdOnShQ0bNuDh4UGXLl04ffq0pOywtbVlwoQJ1daJmZ+fz/Hjx7lw4YL0mIuLC4MHD67xTsPK4j8jzwOIiIhg/fr1r5Qkjx49yrlz5145Uffr1w9fX99a33dGRgYLFy7k3XffxdLSslb3HRgYiCAIfPnllzXiaywSdWFhITt27JAMh0QNbnJyMikpKchkMnx8fOjVq5fS7WRkZHD69GkFAoCihowePXrUiENeZmYme/bswdPTExcXF4WZjYWFhXh4eNCxY0cuXryokP8eMmRItReE09LSOH/+vFRwLg4nJyfCw8MpKCggKyuL2NhYmjdvzoABA/jnn3+YOXMm2dnZbNy4kUaNGkmr53PnznH06FGgaIrMm2++WS0ySBEZGRns27eP8PBw6TEfHx969uxZJ4br/qdSH6JsKiYm5pUt/V91w42IV/X5//77b4BaJ+nDhw8jCAJTpkypUfP5xMREFi9ezPnz57G1tcXb2xs7OztsbW0xMTHBxMSEo0ePcv78eTIyMrC0tKRBgwbExMRw8eJFhaYLDQ0NevToQevWrWvcMF9PT4/Ro0dL/5fL5Tx8+JCNGzcSGRnJgwcPePz4MY0aNWLatGlkZGSwbt06du/eze7du7GxsWHUqFHV0sVoaGhIz549JZLNzs7m0qVLBAUFERUVhZqaGhcvXiQjIwM7OzuePXvGvn37CAsL48GDByQnJ5OamkpKSoq0TTEy3759OwcPHiQ+Pp4GDRowefLkalkZ6OvrM3LkSKDoHNi+fTshISGSv0ePHj3o0KFDnSxC1jmiFr+ky5cvM3DgwFdyDK+aqEUv39omShF3797FxcWlVvcZFRXFhQsX6Nq1a43doARB4Pnz5yxbtgxtbW22bt1KdHQ0d+/elUjbzc0Nd3d3EhMTSUlJYd26dQpeFFC0PHdyckJbW5v8/HwOHTrEsWPHsLS0xMLCQuFvY2PjGr3wXVxckMvlHDx4kF9//ZWwsDDs7OxYt24djRs3ZsaMGRgbG3P06FEuXrzIjz/+CEDPnj1p3759tR2bjo6OpHmGomL0xYsXCQwM5NGjR8THx5Obm8v9+/cZOnQoPj4+NGzYkNdff73UthwdHXFycsLd3Z3w8HAWLFiAkZERU6ZMqbaRX+bm5rzzzjsAREZGsmnTJo4dOybVZoYNG/bKu3GLo86lPuDf3OSrSj2Iecs5c+a8krtrfHw8K1aseCWfPzExkWXLljFz5sxay+Hl5OQwf/58DA0NmTlzZo3sQ0ypubm50bhx41Ippby8PK5du8auXbsICQmhoKAADw8PySipe/fu2NvbS6OqxD9ii33JomFF0NLSwsLCohSxGxkZVfmci4+P56233qJJkybo6urSvn17bt++TefOnaXpMnFxcaxfv57MzEygSOo2bty4GgtOBEEgMDCQkJAQDAwM8PDw4MSJEwiCwJMnT3B3d2fo0KH4+/vj6uqKTCYjKiqKbdu2IQgCY8aMISEhgd27dwNFq4p3331Xkv9V97Fev35dKipDURQ+atQolWSQL4v/VI4aYO/evYSGhr4yohZPrtokq+K4ceMGu3bteiWf/9dffyU2NrZW9y3uqyZujPn5+SxZsoT09HTJg6JLly5AETlfuHCBf/75R+E9enp6+Pr64u/v/9INFNnZ2aVIPSEhodSsv4qgra2tQOrivw0NDRW+s9u3b7N7926ys7NJT08nIiKCuXPn0qJFC4XtCYKgUMSDoqaRbt26vVTHYllYvXo1f/75Jy4uLqxYsYJnz54xe/Zsrly5Qvv27WnYsKH0WhMTEx49esTbb7/NsWPHmDx5MgYGBty6dYsdO3YAoKmpyfTp02vMjKqwsJDg4GAFSaW9vT2vv/76S/u8lIX/HFFHR0fz+++/v7KIForIY/z48QonUG3hVRYz5XI53t7etZZ22rhxIw8fPuSjjz6q9ovu6tWrUr59zJgxuLi4cOTIEe7du8fz588VXuvn50fHjh2VFq/S0tLIy8uTBtWqqakpDK6tznM0KytLKbGXTL+Uh7t371JYWEhMTAzPnz/HwcGByZMn06NHD3R1ddm8eTNt27alSZMmQJE7319//SU1eamrqzNx4sRqjyIPHDjAwoULsbKyYsuWLQiCwMCBA0lPT6dnz54MGzaMc+fOERERwYULF2jRogXx8fFkZmby0Ucf4ePjg4aGBuHh4VKTjkwm4/33368x8oSim+2hQ4ckCSRA8+bN6devX7UWO/9zRC1GtBMmTFDJk6EmIJfL6du3b7UPJFUF69evJyIiotaJOioqinXr1vHFF1/UShVclHK9jOOYMoiqFSjSz5qZmUkjmNzc3Lh79y5NmzalW7duKi35N2zYwKNHj1BXV0dXV5eCggKFP8bGxsyYMeOVtC9nZmaWIvbY2FguX76MpaUlmZmZXLhwgYKCAuzs7GjdujWPHj0iOTkZBwcHGjZsiJqaGrq6upibm5OWlsatW7fQ19dHX18fX1/fl2qmKYmzZ88ye/ZsdHV1OXToEDk5OXz66adER0fj4eEhnQtbtmzB2tqa2NhYduzYgaamJk2aNEEmk6GlpYW/vz+mpqZs375d2vaMGTNqvKM5JSWFXbt28fjxY+kxf39/AgICXvr3/88QdUZGBrq6uqipqSGXy/H09GTYsGHVfnwVIT09nUWLFtGmTRv69u1b6/tfsGABWVlZfPzxxzWSiysL33//PdnZ2Qo3CEEQyMzMrLYijojU1FR+/PFHGjduzJgxYyp8fW5uLgUFBRVW//ft28e2bdt48uQJvr6+0nFbWFjQo0cPoqOjK21zmpubS0hICOfOncPY2JhevXpJdqtPnjxhzZo1NSYnLAnRKCo1NVXlydoPHz5k9erVnDt3jvbt20v5dD09PZKTk3F2dlYYRgtFnzksLExBldGiRQuJCPX09LC0tMTX17fSRbfLly/zySef0KBBA3bs2MH58+c5evQoDRo0IDk5GXV1ddq1a4e6ujrNmjXj0qVLhISEMGHCBK5du8a1a9ekbUVHR5OQkICjoyOmpqYAvPfee1hYWFTqmKqCZ8+esWXLFoXVzrRp06qc7//PyPPWr1+Prq4uEydORENDg9u3b78Sol60aBFxcXGvzO8jKysLHR0dFi1aVGtRtSAIZGdnS/lbEQcOHODGjRt88cUX1bovUX2gCkkXFhYyb948OnfuXIpkCwsLuX79Ort37yY4OBgomtvXuXNnevbsia+vr0I0GB0dXenj1dLSws3NjUOHDhEeHk5MTAyurq4EBARI0q5vv/0WKMqd+vv74+vr+1LL4ry8PB4+fEh4eDh37txR6sin6srHxcWFTz/9lCVLlpCUlISxsTFhYWH07t1bIsJBgwaV6mgUBIGMjAzOnz/Ptm3bSExMJCoqCl1dXRo3bkxmZiYaGhqVHs7r6+vLvHnz+OKLL3jrrbdYuXIlx44dIzk5mbfeeos1a9awZ88e1NTUpN906tSpWFtb4+zszODBg4Gim/3y5cu5d+8eY8aMwcfHh3Xr1rF8+XIA3nnnnRrtRLSzs5OK33fu3GHfvn0kJSXVSGG2ThG1ra2tdLf09fXl/Pnzr+xYnj179kod9GxtbXn06BGCINRKnl5skPDz81N4PCQkpFrzcIBE0p9//nm5rxMEgbCwMObNm4e9vb10bE+ePOHYsWM8fvxY8nROTk7G2tqaH3/8sVp9ifPy8lixYoUU6X3//feYmJhw9epVtmzZQlZWFuPHj8fIyIgzZ84QGhrKP//8o1Cg7NSpE+3bt1e6KklLSyM8PJzw8PBSXY3F4ejoSNOmTXFzc6vS8t7ExITZs2fz3XffIQgC7dq14+DBg8TFxdG5c2f27dtHy5Yt6datm/QemUyGgYEBPXr0oEePHuTm5rJ3715u374tvaZFixZVOj87dOjArFmz+OGHH/jkk0+YOXMmf/zxBw8ePGDOnDmsW7eOGzdukJubi7q6OrGxsaXsAIyMjOjUqRMGBgbExcVhb2+PXC6XVjkrV64EipwXa9qrumnTpi/llV4R6hRR9+rVi2vXrpGQkICPjw/nz5+nsLCwRqrQ5cHMzIyMjIxKFXCqG/b29jx69IiCgoJaWVKL9p3KvusOHTpU236Cg4NJS0tj4sSJZfpdCILAgwcPOHHiBNHR0WRlZSEIgtRaLkJHR4e4uDjJlMjHR+mqsUoQBIGDBw9K469K6mrbtGmDt7c30dHRODg4IJPJGDRoEO7u7pibm6OhocGFCxc4f/48p0+f5tChQyQmJpKYmIixsbE0obs41NTUaNq0Ke7u7ri6ulb7DVJTU5M5c+awdOlSnj9/jpubG9nZ2fzzzz/cu3ePnJwcBaKGok5NbW1t9PT00NLSYtiwYQwbNozIyEj++OMPdu3axa5du7C1tWXUqFGVUkn17duXp0+fsmnTJlasWIGrqytBQUG0a9eON998k2fPnrFq1SrJAva3334rtQ1tbW0aNWpESkoK586dw8/PDwcHB+RyuSRK+P333wGYNGlSrcjsagJ1iqjF/OOePXuYPHkyUDTdQ5mJTk3C19dXamV9VRCbPrKysmpcIijmJ4cMGaLwuKi1ra429tjYWE6cOEG7du0UDICK4/Hjxxw/fpysrCw6derErl278Pb2Jj8/H11dXXr06EGzZs1YsmQJmZmZ2NjY8OGHH1ZbsQuKRsJt27YNKPrsffv2VRo1amhoKIwGy8jIYO3atURFRZGamoqOjo5ktaqrq4tMJiMzM5P8/HzU1NQwNzfH2NiYFi1a4OfnVysNTqJK4sCBA+zfv5/c3FxMTU2Jj48nLi6ODRs2MGbMGOmGvX//frKzsxk3bpzCjdXZ2Rm5XE5BQQFHjhzh0qVLLF68GCgKuNq1a6dSpP32228THR3NpUuX0NLSIj4+ngULFiCXy7Gzs2POnDmsWrWKTZs2MWPGDBYuXKhwHDo6OuTk5NCvXz9+//13PDw8pDFktra2yOVy4uLiWLlyJatXrwZg4sSJZZ5/dRV1iqihaAlx584d6f+XL1+udaJu2bIlenp6pYZY1ibEZV5tELXo11BSa3vp0iWAamnfzc/Pl/yle/fuXer52NhY/vnnHx48eICnpydt2rThl19+oaCggLFjx3Lq1CmmTJnCw4cPmTdvHgBjx46t1g7KpKQkfvnlF6DIQfHdd99VegNIT0/n7t27hIeHS2oSEWpqamRlZaGmpoanpydmZmZoaGiQmpqKg4MDX331FS4uLuTm5nLlyhWCg4O5efOmwsRxV1dX/P39cXBwqLbPVhL9+vXD3t6e+fPno62tTUBAgDQV5ptvvpF8Zho2bMiJEyfYvHkzb7zxRqnvQ11dnb59+9K3b19iY2NZv349R44c4ciRIxgbGzN27NgKc7Zff/0133zzDeHh4djb23Pv3j1CQ0Px8vJCJpPx9ttvc/fuXa5cucL8+fMVPHC0tbXJzs7GxMQEPz8/9u/fz7hx4xRuElZWVsjlchISEli+fDnr1q0DeGUWvlVBnSPqvn37cufOHZKTkzEwMCg3b1dTEI3kX4V5vxjFirpQ8f81iePHj6OpqVkqAlJmuFNViMW2smYv3r9/n9TUVOzt7cnKymLHjh28ePGCQYMGkZeXR6dOnfjpp5+QyWQ0atSIsWPHVlvuvngeGmD69Ok0aNCA+Ph47ty5Q3h4eLnngpiuEDsCCwoKOH78OOHh4QwfPhwbGxvJ6zovLw8oKlC2b99eGiNVUFDAjRs3CA4O5v79+wo3AEdHR/z9/XFxcanWekXLli35+eefWblyJYIgYGVlhbq6Ok5OThw4cIADBw4wZMgQGjRogKGhIdu3by/X7N/a2ppPP/0UQRCkiS7Lli0DivL0Xbt2VZpaU1NT49NPP2XBggU8ffqUjIwMvvrqK/bs2SOl/WbNmsWKFSuwtraWju2zzz6TZjgWFBRgZWXFyZMnuXfvnjSEpDjCwsLo06cPjRs35pdffmHDhg3Ay9va1gbqHFGL0eO+ffvw9fXl5MmTr+Q49PT0iIiIqPX9xsXFAf96nohz8WoKInEUN/sRkZubWy365l27dgFF0qWyLnI/Pz+pWChK98aMGUP//v05fPgwFy5cQCaTVav0ShAE9u3bx/Hjx0lISMDOzk4aMVUShoaGEiE7OTmVq5lVV1enV69e2Nvbs3HjRrp3705OTg6pqals2bKFUaNGlSISdXV1vLy88PLyko7tzp07BAcH8/jxY8lXGYo8YAICAmjatOlL12+srKwkkhRVHqmpqXz44Yf89NNP7Nq1iytXrrB27Vr++ecfdu/ezdChQ8vdr0wmIyAggICAAJKTk/nrr784c+YMZ86cQVNTkwkTJmBnZ6fwHl1dXd59911WrFhBkyZNOHjwIH379uXIkSPIZDKsrKyQyWTExsbyzjvvsHLlSr7//nt8fX2Jjo6W6hedOnUqMw/95MkToqOj8fLyQi6Xk5KSwtKlS/nrr78AGDlyZK2v3lVFnSNqKJITPXz4kCFDhnDy5Eny8vKqNQep6jEUr27XFkoOta1pohZz8SU7MMW89csWEu/fv8+NGzfo16+fyrIlURXSpk0bSZ7Yvn37Mi1HBUHg2bNnhIaGSoW4ksjMzOTu3bs8f/4cuVxOfHy8NG/Pzs5OaqYQh8iKRcGXiWA9PT2xsrJi69atJCcn89prr7Fr1y5pComtra2kyS65H5lMhoeHBx4eHtJnjIiIIDg4mMjISIVGD2NjY/z9/WnVqlWVmi50dXWZM2cOgYGBZGZmEh4ezsWLF5HL5YSHhxMWFsbXX3/NwIEDSUhI4MCBAypPFjc1NWXatGkIgsCVK1fYv38/q1atAsDLy4t+/fpJUbOlpSUjRoxg69at0t/vv/8+ixYtQktLi7Fjx7Jx40bpeLdv386lS5dITU1l5syZrF69mpYtW5ap+c/JyUFbW5uQkBA6dOiAiYkJX3/9NampqSxbtkzqdnz99ddp1qxZpb/HmkSdJOoBAwawZMkS6f+3b9+mVatWtXoMAQEB/P3339L05tpCySV2TRP15cuXlUaoomfvyzjZZWZm8tdff2Ftba1yQXLnzp0IgoCtrS0rVqwA4JNPPlF68WVlZXHjxg2uXr1Kbm4utra2nDx5kpiYGMLDw5Vqpl1dXTl16hRmZmb4+vry5ZdfYmxsXOXPWBHMzc2ZPHky8fHx2Nvb07x5czIzM1mzZg2HDx9m06ZNtGjRgnfeeafcBhYx5VM8p/rs2TOCg4O5e/cu+/btkwYHiE52Pj4+KneYymQy5HK55CK3fv16nJ2dcXd3Z9asWezevZtLly5JDTAeHh6l6gNi2kJZ2kH09/bx8SEjI4Nt27YRGhoqDUEQ6w1NmzbFz8+P06dP4+XlRWhoKN999x0ffvihtL/ff/+djz/+mOHDh0t559WrV/P48WMFIUJJ5OTk0LVrV44cOaKgrzcyMuKLL74gLS2NlStXsmPHDnbs2FEjPt5VRZ0kajE/e/DgQaCITGqbqMXCmujvW1uoTaJOT08HUNpUJA4KrSoEQZAmp0yZMkWl98TExBAUFERmZqY0FNXb27vUdqOiorh69Sr37t3D1dWV3r174+zsTFJSEsuWLZMIWl9fX4qO7e3t+fXXX1FTU6Nz585Mnz5dUgfUNLS0tBSW43p6ekyfPp0JEyYwbdo0oqOjpU69GTNm4OXlpVJkbGdnx6hRo6T/JyQkcObMGa5fv87Ro0cVlEv+/v60a9cOPT29crc5evRoGjZsyPz585kxYwabN2/GxcUFU1NT9PX1OXPmDPb29vzxxx98+umnCp2z9+/f5/z587zzzjtSl6Ay6OvrS5N0RIXNxo0bAWjSpAlDhw4lKiqKyMhIWrduzbVr11iyZAlvvfUWgwYNYu/evVJ0bGFhgVwulwb//vXXX7zxxhtKP2d2djaOjo44ODhw5coV2rVrp/C8oaEhs2bNIiMjg99++03y8R4wYACtW7cu93uradSpFvLiWL16NU+fPsXc3JzExMRXYlDUuXNnJkyYwIQJE2ptn3K5HJlMxpw5c2p8HNemTZu4d++e0u9WLpdjZWUlefZWFr/99hsxMTFlRsMlkZubS9++fcnPz6d///588MEHSlcy+/fvJyQkBJlMRuPGjTE1NUVHRwdtbW20tbU5ePAgH3/8sXShltRDt2vXTqnq5FVBVEo0bNiQM2fOSE08H330EQEBAS+17RcvXnD27FlJvVMcbdu2pWPHjmUaYUVGRkrn/cGDBzl37hwWFhbs3r2bgoIC6Ubi6urK6NGjkclkXL58mePHj2Ntbc2ECRMqlTbKyclh7969UjoKiuo1hYWFmJubS9HvkCFD2L17Nw4ODrz11lsK24iKimL8+PG0bduWfv36Sd7YIubPn8+HH34omVDNmDGj3JRqVlYWq1atkgy8atr75z/TQl4cgwYNYvny5TRr1qzU9ObaxKVLl2qVqEEx3VCTqo979+6VO6G5Y8eOVdru5cuXiYmJYfTo0SqR9OXLl5HL5eTn5/P7779Lrm7K0KlTJzw9PcnJySE7O1v6OyMjg6SkJLy8vKSL7/bt21Iut02bNvTp04egoKAqfaaagrW1NX379uXkyZMsWLCAsLAwfv75Z7777jtOnDjBu+++W+U2aGNjY0k6B0U674sXLxIcHMzFixe5ePGi9NqWLVvi5+cn1RGcnZ3ZtWsXQ4cOpW/fvuzZswcTExN0dHTYvHkz06ZN4969exw9epTAwEAGDhyIvr4+zs7OZGdnc+HCBUnRogq0tbUZPnw48K93uKWlJUFBQZw6dYohQ4bg7e3N7t270dfX58mTJwo3DCgaAda5c2dSUlI4ceIEJ06ckPxyBEEgNzcXLS0tzM3NMTU1JTQ0tFzi1dXVZcaMGWRnZ7N27VoOHjzIwYMH6dmzZ7U2gamCOkvUYt5UVEFkZ2dXe6dWRTA1NX0lbeTFW2VrKvUhfi7RN6E4RI+Tqky4SEpK4sCBA7Ro0aJcwoV/za8SExPR1tZm8eLFFb5HHJVVHsThB1DknvfOO+/UejG6MmjevDnPnj1j165d+Pr60qhRI1q3bk1ycrLUBt2vXz/y8vJeaiqLvr4+Xbt2leZD5uTkEBISQnBwsMIkcwB3d3f8/f3Zvn07w4YNY/z48fz4449S/nnZsmXI5XLatm3LunXr+Pvvv3nx4gVOTk6MGzdOmj5eFYVOw4YNpRt3y5Yt+emnn9iyZQtRUVEEBAQQExPD9evX2bt3L0OHDlV4b+PGjXnw4AEzZsxg6dKlLFq0iICAADp16gTA4sWLpfFqqhqN6ejo8O6775Kbm8v69eultFLXrl3x8/OrFYuHOkvUUETWYvPLtWvXSuWUahq2trZERUXV6j6hdohajDSVufOJ+unKKggKCwslaVvJC6gkDh48yKVLlygoKEBPT4/u3bu/tDQqNzeXFStWSAWvknno/Px8aViAqM2uK/PxevTowYYNG9i5c6fU9KWnp8f48eNZuXIlmzZtIjQ0lG7dujFr1qwy2+8rA21tbTp27CitnPLz87l27RrBwcGS/wgUTVI/ffo0n332GdOnT2fatGksW7aM8PBw3N3dmTRpEikpKcyfP5/Dhw8jk8nw9/dn9+7dTJo0qcoSQg0NDYYOHYqfnx/vvfce169fx9nZmdTUVKKiovjxxx8ZPHiwwvb79+/PkiVL0NTURC6Xs3//foKCgggKCmLkyJEYGhqyatUqxo0bV2lnSi0tLSZPnkxeXh4bN26UonZ/f3+6dOlSo+dSnSbqIUOG8Pvvv5Ofn09ISEitE7W5uTl37twhKSmp1gpPoJj6qCmijouLK7NAEhoaWqWLS2xqmT17drn7FaPEjh07cvbsWfT09KqcC4eiPPSBAwckJ7vhw4fTtGlTXrx4wa1bt3j69ClPnz4lLi4ONzc3cnNzuXz5Mh07dqwzRK2urs7o0aPJzs7G2NhYwVhIdGibNGkS58+fZ8iQIYwfP57hw4dX6/FraGhIygwouvGGhYURHBxMcnIyN2/eZNasWVhbW6OhocEvv/zCsmXLkMlkmJiY8M033zBr1iyeP3/OwYMHefHiBefPn1eaQouJieHp06cqqYEsLCz45ptvmDp1Ks+ePZOmk+/cuRMvLy9++OEHevTogZqamoIQYcSIEfTv359OnTqxZMkStmzZIkXWV69eLZXDVhWampq8+eab5Ofns3nzZoKDgwkODqZDhw706NGjRs6pOkXUp0+fRltbW8obiY5XqamptSqR27FjB+3bt8fExITCwkKuXLkiTVuuSYjaZSsrKwoKCmrs5hQZGQlQpi4Z/tVPP336lNDQ0AoLmkeOHKGwsJApU6YoTTMIgsAff/whrVBmzZrFjRs3gCJVSEUn96FDh7C1tS0llyo+nqlt27b07t0bmUwmRexQtBwOCAjAycmJc+fO0blzZy5fvsw333xT7j5LHv/du3eJjY1V8LmuSeTn53PmzBlOnTqFp6cnpqamUuPM559/TlBQEB06dGDEiBE1ktpRU1OjWbNmNGvWjHfffZdFixYRGhpKSkoKz58/JyEhgfHjx0sdflpaWlhaWtKkSRN27txJWloaW7ZswdbWtpROPyIiguPHj+Pq6qrSdBZ3d3c++ugjfvzxR549e8bixYuxtrbmt99+Y/78+Tx+/FiS5Tk4OCjYUJiYmCCXyzl8+LD0fYrDB14GGhoajB07loKCArZt28a5c+ckaWR1o04RdUxMDGFhYfj6+koXrrGxca23ct+6dYv79+9LkqrLly/XClEnJSUBRSe82CVWEzlyUdivTGMr+h63bdsWKIqur1y5Ui5RP378mPPnz9OlSxcFMynRI+T+/ftS99egQYPw8vIiPT2dw4cP06JFiwq12nFxcVy8eFFBilY8D21mZsbUqVMVyMrPzw8nJycpmt62bRsNGjTA1tZW0u6+9dZbFa4ccnNz2bNnD0+ePMHW1pYuXbrQt2/fWnN0fOedd9i8eTPR0dE0adKEp0+fMmLECPLz81mxYgUnTpzg/v37mJqaMmnSpBodNDFz5kwCAwPJyMhAT0+PO3fuYGtrKxX1ZDKZFFG6u7vTqlUrbt++zfr16wFFPXxOTg6ampqcOXOG/v37q7T/gQMHcuTIEVatWoW/vz8zZswgLS2NuLg4njx5QkxMDDY2NgwaNIhly5aRmZmpINPr3bs37du359q1axw9ehRvb+9qUQCpq6szatQoCgsLa2yFVqeI+rXXXiMsLIwzZ85I7cRDhw5l9erVFBYWkpaWVivDZnv06MGxY8cwNzfHwsJCarOuaRS/IclkMjQ1NXn27Fm17kMcECAWlEri6tWrwL+t/BVN187JyWHt2rXo6+tLcrKLFy9y6NAhBg0axOHDh8nJycHY2Jjp06dLK6NFixYBFeeyASlVIqYtli9fLh1XWeOXDA0N8fT0lAqiBQUFxMbGcu3aNR49eiRpq8u6sNLT01m9erWU7+7bty/dunV7JamSjz/+mJCQEPbv38+TJ0+IjIxkwIABLFiwgF9//RUnJyfu378vfafvvvsuJiYmCIJQLblsETKZjM8//5z58+dTUFBA06ZNCQoKYsmSJVJ6RlwNX758mWvXriGXy3n69CmrV69m4cKFuLu7M2LECHJycmjTpg0hISH4+fmp3HS0bNkyunTpwtixYzl06JA0tV1LS4vffvuN4cOHS92cR44cKeUIaWxszHfffcf333/PhQsXuHDhAh988EG1zFysyZt37Ro9VwB1dXVsbGwUTNdFX4XIyEiJRGoa4rI/KSmpxg3Hi6Nk+7i2tna1T5kRBwSIubqSKNnoUtG07Pnz5wNFZAJFgwbOnz/PqFGjpMaECRMm8OGHH0okvX//fgA++uijCo9X/M3ff/999u/fz7x583jx4gUjRoxALperbKKvrq6OnZ0d+vr6vPbaa4wcOVIp6SYkJCCXy1m0aBEpKSn0798fuVxO9+7dX2k+28fHh2nTpmFra8vPP//MuXPnWLp0KSYmJgwaNAi5XM4bb7wBwIoVKxg9ejQrVqyguvsktLW1mTp1qjQmy8PDg3379pU6b0aMGAEgGW3J5XK6detGeHg4gYGB3LlzB1NTU7y9vSvVXCWTyaTmmJkzZzJ58mRkMhkjR47ExcWFbdu2ERQUhKWlpYKKpTjc3d1xcXGRmm6WLFnCgQMHqvJ11BrqFFEDjB8/HkDB9lFHR4fHjx9LTQs1DfGCDAkJke60JUm0JlAyxVORVK0qKG9AABRFksVbgMsjatEo6MMPP0QmkxEaGkpwcDDjxo3Dzc2NXr16YW5urtCVFx8fT0hICN26datw6rggCPz9998IgsDPP/9MSEgIbdu2Zc6cOdU2TSM9PZ2///6btWvXMmbMGD766CMiIiJo3Lgx3bt3Jy8vr9TE8lcFc3Nzvv32W8zMzAgMDOTZs2fEx8dLKSxXV1fkcjnvvPMOurq67N27lzfffJMrV65U63FYW1szcOBAbt++zeTJk7G0tGT27Nns2bNHeo1YfBcNuaAoHfXVV19hY2PDuXPnWL16Na6urty8ebPCgKA4HBwcpNW36IG9ceNGxo4di5+fHydPnpSuYWUjzEQ1k9js5e/vL2n568pvXRJ1jqh1dHSkiq6I1157DVNT00r9mC8LsQ1VEAQEQaiVm0RJohblaiUHj1YV4nbKSjeI0VdxMX92drbSQtWtW7d48OABQ4cOxdjYmBs3bnDixAnGjh1LSkoKe/bsISgoCFNTU+nCEARB8u8oOfJLGdasWcOpU6cQBAEzMzNmz55Nnz59qjWyvXHjBuvWrWPDhg08f/6cIUOG8NZbb2FnZ0d2djbXr1+vtZWcKlBXV2fLli1MnjwZW1tbrly5wnfffafwGisrKz788ENGjRpFUlISGzZsQC6Xc/To0WqLsL29vfH09GTv3r18+umnNGnShKCgIBYuXCjto3nz5lLhuvjxT5kyhW7duqGhocEff/zB48ePOX36dJn7iouLkwrPIt577z18fX25fPmyFEzFxcXRrVs3XnvtNeLi4jh79izHjx8vc7viNd21a1dpRbh06VL27t1b2a+jxlHniBqQpFrij+zq6oqdnR1Pnz6ttWNwdXVFU1OThw8fkpeXVysXa2ZmpkIOXpz4ce/evWrZvqiPLsu6VPT+Lj61BCgV+aamprJjxw4aNWpEixYtuH37Nnv27MHKyooNGzZw7NgxrKyseO+993jjjTckYl27di1Q8azE3NxcFixYwJ9//omzszMffPAB06dPrzZlgyAInD59WiKvtm3bsnz5ct544w0iIyPR0dHBz8+P7t27Exsby5kzZ9i7d69U7H3VkMlkvP7664wePRoPDw+CgoIUbFChKPpWV1fn559/xsbGRopiAwMD2bRpU7UMxRA9Yvbt2yedqxkZGQQGBpKbm0u/fv2AInvRktDQ0KBDhw7Ex8cTHh7OqlWryrQ0vnXrFgcOHFA4ZjU1NSZNmoSLiwtRUVE8evRIqmU0b95c0m8vXLiQgoKCUtt0d3cnNzdX+r+BgQFyuZyuXbsSGhqKXC6vM7831FGiFgsLf/zxh/SYmZkZjx49qtUvz9LSkmfPnpWSFtUkije7iKqJ6ormjx8/jpaWVpkRqUjkJZ8vTtTFJ4iPGzeOlJQUdu7ciZGREba2towbN44pU6bQvn17hZvOw4cPefLkCa+//rpCgat4hCf6Q8+bN4/Dhw/j6enJH3/8UaVhrspQWFjIixcvCAwM5J9//sHGxobPPvuMzz77DE9PT9544w1GjBjBw4cP+fnnn6UJ2JqamoSGhvLLL78gl8uRy+Vs3bq1VtJh5cHNzY0vv/wSNzc3Vq9erUB0okeOs7MznTp1Ql1dndmzZ+Pr68u9e/f49ttv+eWXX8jIyHipY/j666+BomKtkZGRVKSeN2+etO1NmzaVel+nTp1wdHTE0tKSjz/+mDFjxhAUFIRcLi/VZCZ6fpScpuPm5oaNjQ3JycmYmJiQkJAgrbrt7e2l4qpo31ocZem3/f39+eSTTwD45ZdfFFI3rxJ1SvVRHFOmTOG3334jISEBCwsLhg0bRlBQEJcvX641U50RI0awfft2zMzMePbsWa1MBC8uVdPV1UVLS6taptyI0UNxiVtJPHr0SKnrWXGi/umnnwD47LPPgCKN6ttvvy0ZuytDfn4+GzduxNjYWMHn9+nTp2zevJlOnTphaGgo6aFdXFwQBEEq9rwscnNz2bx5MxEREbi5ueHh4cFrr72mtPNSdKSLiYkhODgYPz8/aeBrXl4eS5cuJSIigmvXrilodRs1aoS/vz9OTk61WnQ0NDTk119/ZdiwYZJ0rn///ujp6aGmpkZ6ejodO3bkyZMnHD9+nH79+tGvXz8uXLjA4cOHpYizf//+kiSzMlBTU+Pjjz9m0aJFhIWFIZPJ+PLLL6UbgaurK/fv3y917YhpvaNHjxIWFsbMmTPp168fCxculEZlzZo1Cz09PeLi4mjXrh03b94sVZv45JNPmDdvHnFxcdy5c4fFixcTGBgIFEXWfn5+REZG8sMPP/Duu+9Kkb/oiKlsurm+vj5yuZwzZ85w/Phxbty4Ua0DK6qCOhlRw7+EtXz5cuBf34niBYuahmhQc+bMGYBS+baaQPGTRk9Pr9pUJ2UNCCgJZV1kIlGfPn2a1NRUJkyYoOC7Ym1tXS45iXan77//vvTYo0eP2Lx5M126dOHIkSPs2LEDc3NzZs+ezcOHD5HJZDg7O6v8+ZQhPT2dJUuWMG/ePCIiIujYsSM2NjYMHz68wvZ4GxsbRowYoTCVW0NDg+bNm2Nubo6+vj4uLi60aNECU1NTHj16xB9//EFgYCByuZxVq1Zx9+7dalddKINMJmP79u04OTmxaNEi5s+fjyAIWFhYcO3aNebNm8fdu3cV3tOuXTvkcjmjRo0iKyuLTz/9lA8++KBKU40MDAyYOHEi7u7uPHjwgH379iGXy6X5h+KNTRkaNmxIWloaUBSYfP3117z55ptA0Xnz119/kZmZSfv27Xn48GGp4qCWlhZ9+/bFysoKJycngoKCJEmleGziOb9ixQopKhfP1/JWq506deLTTz8Finho27ZttfJ7KkOdJWpAkhulp6cjk8mwsLCQ/AdqC5aWltLJWxsFxZKpD/GG9bJa7pCQkHKnXIsntzKjdCMjI2n4bNu2bStFoFeuXCE3N1ehuSQsLIydO3cyfPhwfHx8CAgIwMTEhHfeeUf6jsXiTlUg2uKWlNj16NGjytsEpIYOb29vbGxs8PT0JC0tTdIET548mVGjRmFvb8+zZ8/YvHmzRNy//PIL169fr7bCsLJjW7FiBd7e3pw/f57AwEDs7Oy4c+eOdO706dOn1Pvc3NyYPn06Pj4+REVFsX79euRyudQUpCqcnJzo2bMnMpmMf/75h9zcXCZNmkTnzp2JioqSUiQloSwF4ejoiFwulzpIL168yMOHD3F2dlZYxYgQtdvieTlu3DiFwrlMJuOrr77C3t6ev/76i/Pnz0vvrUgRo6uri1wup1evXoSFhREYGCgZxdUm6jRRiyOVxNE948aNA6pPBaEKmjRpQmZmJpmZmQpeudUN0dOjeOpBV1dXyue+zFiw8gYEiBBPXmUFOz09PWmCuLKLvSxkZWWxb98+3NzcpInaoaGhHDp0iDFjxqCpqcnJkye5e/cueXl5ZGdnc/ToURo3blylDruoqCjkcrnUsTh69GjkcrnkXVEdkMlk9O/fHyMjI+7du8fYsWN5++230dXVZfXq1ejr6zNp0iTkcjlz5sxh4sSJuLi4kJSUxO7du/nmm2+km8ilS5eqtZlKX1+ft99+mxYtWhATE8O5c+fo1KmTFPCUZZmbk5NDixYtCAgIYNiwYRgYGLB3717kcjnHjx9XOYrs1KkTXbp04datWyxcuBCALl268Nlnn5GWlsbXX39dqrAnSkGVyeI6d+7M8OHDsbOzY+fOnZw+fZoLFy4o3ffHH3+MTCajZ8+epKamSh7rIoecP3+eSZMm0bZtW44cOcLu3bsrNYykffv2Urpv5cqVbN68uVaj6zpN1FDkhvXixQuFKnLxhpiaho6ODjk5OTWurxSlecVTCGIxEV4umhflRuXl2Ip7E5eEqNYoa4J4WViwYAFQNDQUioqVe/fuxcLCgs2bN7Nz507y8vLo27cvM2fOlBz9lA3aLQ83b95ELpdLuc23334buVxeIzp0KMrLDh06lPz8fPbu3YuxsTGRkZEIgqBQY5DJZBgaGuLr6ysVIadOnYqHhwfp6ekcPHiQ7777DrlczrfffktwcDDZ2dkvdWzu7u40a9YMGxsbLCws2LZtm9T4Ibbxl0ROTg56enr4+fkRGhrKxx9/zOeff46TkxNnzpwhMDCQrVu3qqQUefPNN/H09OTYsWNS5Nm7d2/atm3Lo0ePmDt3rhQ4wL+a5rIGjSQlJdGuXTt0dHSIiYlh69atLFu2rBThGxgY0L59e3JycmjVqhXh4eGsXr0aKPq9RJlenz59GDBgANevX5ckf6oSro6ODnK5nH79+nH37l0CAwNrraBc54lajIY2bdokLZ3XrFlTa/s3NzenYcOGNGjQAEEQaiyaV+ZnIhK1ubn5S7WS379/X+nA15JQZqIeHh6OtrZ2uRPElUHMib///vvIZDLi4+M5duwYDg4OuLi4MG7cOKZPn07Pnj1xdHQkIyODyMhI+vTpo1IrbnGJ3c6dO9HR0eGDDz5ALpfXSjepuro6I0aMIDk5mT///FNSKsydO1dBSREVFcXWrVslIrK2tmb48OEScc+YMQNvb2/y8/M5ceIE33//vfTcsWPHFEhNVYg3xoSEBPr378+tW7d49OgRT548UUpK4lirVq1akZCQwNOnT9HW1mbixIl8/fXXeHt7c+fOHb799ltWrFhR4TCLn3/+Gfi3OxGKVBhirnjRokWlJHtlEbWXlxdOTk5kZ2fTq1cvZs2aRWJiInPnzpVUOSJ69eqFTCYjJiYGKysrqYD62muvAf8ScuvWrZkwYQIFBQWcOnWq0nl5X19fSWL622+/sXHjxhqPrus8UUPRkioyMpLCwkJcXFyIjY2ttWWHhYUFjo6OUvW5ZFGmulAeUb/MvDaxBX3QoEFlvkaMlEpO5Lhz5w6xsbEMHDhQ5QniULSMPXfuHH5+flIqx9LSklmzZvHWW2/RsWPHUtsTO8yUKQ/S0tL4448/OHDgAIWFhfz9999KJXbV4ddQGWhqajJ69GiMjIyYPHky06dPB2DhwoXSJBlxYO3Jkycl+WNxNGjQgIEDB0rkPHPmTOl3OHv2LIsWLZKe27dvH8nJySodm0gkQUFBTJ8+nYYNGxIcHCwpa4pDJGp1dXU6deqkQIBqamoMHDiQOXPm0KNHD+Lj4/nyyy/56quvypTKamhoSOlKsRln5MiRqKurM3PmTAwMDFizZo20SmzatKmCprk47O3t6dy5M1BUK+nTpw9z5szBw8ODEydOIJfLFUh/2rRpuLu7k52djampKWfOnJG4oviq1NnZWSpuf/bZZ5VeyWhrayOXyxkwYAAPHz4kMDBQ6TDl6kKdIuro6GilJ6JYed+3b5/k4laTRcVHjx5JP5y5ubmUjggPDy/zzv+yULaEEu/0oqStKsvi8gYEiBCXxsXz45mZmfzxxx/o6emVki+VB0EQWLp0KYCCYgIUUznFIcoP33777VLPRUVF8fvvv2NqakpQUBDffPMNV69excPDg6+++oopU6bUyuQfQRAIDw9n9+7dClGujo4OgwYNws7ODjMzM+RyOV5eXpw8eRK5XE5BQQGNGjWiY8eOXL16Veq0LAuGhob06tVLIudPP/2ULl26oK6uzpUrV/j555+l4mR5qzsxIk5LS+POnTt8/fXXGBkZsXz58lJprpycHF68eMGuXbsIDw/n/v37pc41mUxGx44dmTNnDlB0vv7yyy+SxWlJuLq64uvry7Fjxzh9+rSUdtuzZw8ff/wxXl5eHDhwgO3bt6s8oV50kpTJZAwfPpxZs2YBRStsMR1qbm5OkyZNiI+PJykpicaNG7Njxw4p1VQcDRo0wN/fn/j4eL7//vsqpTdbt27NF198ARRNR3+ZWlJ5qFM66tOnT3Pnzh3mzJmjkKuVyWR4enoSGhoqXcw7d+7kyy+/rJHj2LBhA9ra2nz++efSCTZy5EjOnTtXSnRfXYiPj1f4zIIgSPaW4oVdlSk38fHxFRbTSpriiBPEc3JycHFx4Y8//pCKMxVBzIOKsiZVsHHjRrS0tBRSFoIgcOHCBc6cOcOQIUP4888/JU+LkudHTSEhIYHjx4+XWkVVpOMfNGgQ/v7+/PzzzyxatAhra2uePn3KxIkT2bBhAzk5OZJCoiLo6uoSEBAgORPm5eVx5coVkpOTKSwsLDdN5OTkRNu2bSXf561btzJx4kT+/PNPrl+/Lhka2dvb8/TpUx49egRQ7s0vISEBY2NjWrVqRbdu3cpNyc2dO5dJkyaxevVqHB0d8fDwkArygwYNwtHRkb179xIeHo4gCJJNqTKoqamVIlI9PT3kcjmRkZEK+fPRo0cTHh7OuXPnGDJkCA8ePCAtLQ1tbe1Seu7io82WLl3K+PHjK93gpqWlhVwu5+7duyq7AFYWdSqiFj0olBU9xOcePHiAs7NztbvKFceYMWPIyckhLi5OWqK7u7tja2tbJZ2pqigeucpkMvT19bl3756kCKlsNC/qvivy0n7+/DlOTk5ERESQn58vLVtHjhwpdQWq0hH6+PFjHjx4wKBBg8qMnktCjISKO+nl5uayc+dObty4wYQJE8jLy+Px48c4ODggk8mqlLdVBdnZ2Rw/flyKZpcvX87du3cxNzdn1KhR0mR4VT6bqakpcrkcX19fnjx5wm+//UZ2djYTJkzgyZMnpaK74sjJySkzWtbU1KRdu3b06dNHpWEaokpn5cqVaGlpSY0m0dHRBAYGkp2dTZMmTRg3bpxEUOX5gz99+hR3d3eePn2KmZlZucNhdXR0GDhwILGxsaxdu5YuXboASOTu5eXF22+/TUFBAUFBQQqyuZIoL/Xm7OysMKRZJpMxadIk1NXVWbt2LXPmzMHa2pqzZ8+W0nOL3vdff/015ubmrF+/vsqrZjc3t0qtPiuDOkXUmpqa9O/fnwcPHpQiYnV1dWxtbTlx4gSOjo5ER0dLEUB1Q/zRV65cKRFVQUEBHh4ePHnypMb8qUv+yJMmTQKKlv92dnaVHiKwefNmQPmAABFitC5qTL/99luio6MZNWoU+fn5UrRRkd60sLCQtWvXoqOjg5eXl0rHl5+fz+nTp2nRooUUwSUlJbFq1Spu375NQUEBv//+O4sXLyYnJ4cOHTrw/vvvV5sneWFhIdeuXWPhwoXI5XK+//57qbmpR48ezJ49G7lczrRp03Bzc6tSFN+vXz8++eQTjIyM+Oqrr1i/fj0vXrwo97cUNdfVBVGtM3fuXCZPnoyZmZl0bn3//fdSIVSVFMSTJ09wcXHBycmJBw8eVPj6YcOG0a5dO65fv87y5cullaIIW1tbKYWxdOnSMgOwytRIoGg10a1bN2kIiJie+PDDD5Vu9/79+0ybNo1WrVqxf//+Omd7WqeIGv5VeYgdicUh6qiTk5NJSEhQcNirboiFBjEX/vz5cyZMmADUXONLyUhGzBmvX79e5TyeCEEQyMnJKZUnLgnR6ComJob+/fvTvXt3oOjmUHxoQEWfWWwtF30SVMHvv/8OoGDunp6ejrm5OT169KB///7MmjULe3t7+vTpQ/PmzV+6YJiXl8e6deuQy+V888037Nmzh4yMDFq1asWHH34oRdMdO3asNhMoExMTvvzyS7KystiyZQv79u2TpKbKkJ2dTXBwcLUpjNTV1SWjM1GStnXrVubMmYORkRHr1q3j2LFj5WqaRTx58gQHBwfc3NxUMguTyWT06dOHZs2akZubS1RUFOnp6Qp5ej09Pel6W758udJ+haq0b4tNUzNnzpRSmYDUE1Ac4vk9ePBgevfuzeXLl6Xzsy6gzhE1/HuxHz58WOFxHR0ddHV1SUlJwcHB4aUNZcqDqakpDRo0YMeOHQiCQGJiotTZV1PyQGXLpmbNmpGXl4eLiwtQsZG/CNHPW1lLeHGcPXuWjIwM4uPjadasGb6+vjRp0oTY2FhpXx4eHuWuIm7evElaWhrjx49XWcL3/Plz4uPjpc4xEU5OTowYMYIOHTrg6OgodUwOHjy4wm1mZGRw+PBhli1bJqWL0tLS2L9/v0TAiYmJREVFYW9vz8SJE6XHBw8eXGP5RSjq+Jw9eza7d+8GivKoJc9vKFq5CYKAsbGxgif7y8LKyopu3bpx8eJFvL29SUtLo6CggI8++ojOnTtz9uxZfvjhBwRBKHPpn5mZSVpaGhYWFjRp0oT79+9XeDPJysrC19cXDQ0N8vLycHJy4vbt26U+W5s2bejcuTMNGzZk27ZtHDlyROH5ykbUUHSDCgwMJC0tjWvXrtGjRw+aN2/OzZs3JfkoFN0oiq8O2rVrx5gxY4iOjkYul7+ytvHiqJNEra+vT8eOHblw4UKpfOTUqVOxsbGRBs/WpPWpGIUUT8U0bNiwWkySiqP4UNuSMDc3Jz8/X5JVqdraK7p+VaRJDg8PJzExER8fH168eMHq1asxNDRk9OjRElGL0XxZGtydO3fi5ORUqSKMqAxp0aJFua9TRbWSnZ3NiRMnWLZsmTR+asGCBcjlchYvXkxISAg6OjoMGDAAGxsb5HI5kyZNwsnJSeXjfVloaGjQuHFjTE1NWbNmDdbW1hw8eBC5XK7gTSFK5QICAqo1qoYiD3ADAwOuXr1KQUEBf//9N1DUAThp0iRycnIICgoq0xv66dOnGBoacvXqVcLDw1FTU1NqYSpCEAR+/fVXrl27xoQJE6TrOiEhodSKWSwkBwQE0L17d86fPy+lSqBqEbW4PYAPPvgAmUyGmZkZubm5nDt3Tpp2pGy12rhxY9577z0Aybb1VaJOEjUg+TKIVoUijI2N0dPT4+bNmyQlJdWoDaGmpibe3t48e/ZM6rIS0x/V2ZEkLjXLmm/n6upKVFSUygMMxItbFPqXh7y8PLS1tTE2Nmbt2rW0bduWAQMGoKGhIRG16KGgTOstjuISvxdVIC5txQuhPMTHx5epI8/Ly+PMmTMsXbqUtLQ0pkyZQp8+faQaQ/v27Zk1axZyuZzPPvvspfTo1QkXFxeaN2+Ovr4+giCwZMkSaTyZSNTOzs7o6+tXu9xLnG0YHh6uYMZvb2/P559/jrm5OadPn1a63wYNGmBmZsb+/fs5ePAg7u7u5Ua6YvosISFBOofOnTvHoEGDuHv3roJipLhJUqdOnRg3bhwJCQkEBgaSn58vTYypyo1LTHVs3LiRLl26YGdnR5MmTdixYwcxMTHSeVFy1WhhYSHlz8URcK8KdZaoAamBoKTuc+rUqUDRMrGmW7tF3bbo2ic2ZIiTlasDFU1ZF4d15ubmqqR4EOV2xS1FlSE9PZ2YmBipSDtixAgFKV9GRgZqamqlnMZyc3MRBIFTp04BRU0GqhbaBEFg27ZtmJiYVBgliaqVXr16lXouNDSUn3/+mVOnTuHh4YGpqSkhISEcPHiQhIQENDU16dGjh8IU6rqEDz/8EG1tbRo2bEhAQAAhISHI5XJiY2PR1tZGJpOpHFXn5+ervDyXyWR88MEHuLu7c+vWLYWBGNra2vzwww+YmJiwfft2tm3bpvBeUf0iFqcHDBggTRVXhuvXr9OoUSNpNSoqe8Qo9/PPP1fQa2toaEg3iEaNGvHBBx8A8O2330rdkMVXH6rC3d2dRo0asXHjRsmFs23btqipqfHbb79J6TpluXE9PT2pGPvTTz+Vu4KoSdRpojYzM8Pd3Z1Dhw4pLD2sra3R0tKSvtiadLOSyWS4ubkRExPDixcv0NHRUbnirSoqis6zs7OxtraW7CArwj///CNd7OXh4sWLREdHY2try+TJk0tNdgFFL+qrV6+Snp7ODz/8wOrVqzl16hRt2rSpVP5QrKarEk2Xp1p58eIFjo6ONGvWDDU1NWllYGZmhqurK6NHj67RqdAvCw0NDQYNGkRkZCQeHh5S4eu3337j1q1bUvNXampquam2nJwc5s+fX6kUoImJCUOHDiUlJUXycRHRsGFDWrVqRYcOHQgLC0Mul5fy+FBFnpiXl8edO3fo2rWrRNRGRkbY2Njw999/M2DAAB4/fsz3338v3WRK6v3FIiwUkWRKSkqllU8i3n//ffLy8liyZAlQlBoUCXjhwoUUFhaWuVpVV1dnzpw5GBoasmbNmmpV5KiKunsm/w+iX4DoaSxi/PjxqKmpkZOTU+Me1U2aNKGwsFBSNjg7O/Ps2bNqK/ZUFFFnZmYyduxYzMzMeP78ebmaZlUGBIg4d+4cHh4eTJgwocxBs+Lj3t7eQFHh0MPDQypuVsb/JDc3VxpQW5GiQlStiBNDSkJ0Vhs8eDB9+/alW7du+Pn50bZtW7y8vKR8eV5eHjk5OZWKOmsLooxx5cqV0iiogIAAwsLCGD16NNu2baNDhw4Kw4FL4v79+xQUFFTaC8bLy0vBB0SEeHPPzs6WVrTffvutQjCkClGHh4djb28vzZ4UI+e33noLKArCOnToQG5urjQxSCTq4ueThoYGc+bMoUGDBly7dq3McV0VoWXLlpJMUF9fn4yMDGQymaQEuXz5crk3O5lMxsyZM/Hw8GD37t0cO3asSsdRVdR5opbJZLz55pvk5+crtI0PHDgQKCpw1LSDlYWFhZTHioyMxMHBgaysrGqTB1ZE1FlZWejr6yOTybhx40a5gnyxmq2KZ3RBQQH+/v7lNk6IRO3r64sgCFy9ehVvb2+6du1K7969uXnzpsqFll9++QWouLMPkAo9nTp1UmnbZWHv3r3Mnz+fb7/9VnI7++677/j+++9ZuHAhy5cvf2nHupeB2MG5b98+oEiquG/fPjw9Pbl06RKJiYnlEuOdO3dwcHCoks+EKIl78803S93Erl69ipmZmRR1rly5UrIYVSWddP36dVq2bIlMJpPGgkER8bZr147IyEjU1dWlleKhQ4eklVlJ2Z9MJmPGjBnY2dlx8uTJMl0AK0KfPn0wMDDgxYsX5OXl8eTJE7S1tZkxYwa2trYqNboMHz6crl27cvbs2WpNf1aEOk/UUGQkbm5uzpYtW6S7raGhIU2aNEFTU7PGc9Xm5uYYGhoik8n4448/8PX1lfLGygZnVhYZGRnlqhpEqZkYjYhNGcoQEhKiVD1SEuL3WHziuDKIRG1tbU16ejpxcXE4OTkRHBzMhQsXeOutt1Ty2oiPjyctLY1Ro0aplM8Wb4Ivm77o168fnTt3Rk9PjxYtWmBhYcEnn3zC+++/LxWsyovuT5w4IeXiawJii/iVK1ek4q2+vj6//PILjRo14uLFi8jlcqWNIHl5eTx48ICuXbtWyV1RJpNJZljidHhAoWFJXV0duVyOt7c3hw8fZuXKlRX+3mlpaURERKCjo0N0dDTGxsbEx8dLz4s1h8ePH/P8+XN69uzJxYsXpaEAZaUgXF1dadq0Kffv30cul1e6sOjv7y/pv8+ePStJJRs0aMBHH31Eenq6pISpaDsjRowgIiKCuXPn1spK7T9B1PCvVO63336THrO1tSUhIYEbN26o9AVXFWLRS8wjpqamYmlpSU5OTrVdxOW17YpE7eDggIWFRZknsioDAkSIRZvypr7Av0Qtk8mkyH///v3cuXOHt956S2XZlEgEYlNFeSg+neNloaurS+fOnZkxYwbm5uYkJSWxb98+0tPTJd+WuXPnIpfLWblyJbdv31YggNjYWM6dO1ehtefLQGytFlMAUHSDcnR0xM/PD1A+Curhw4fY2tri5OREWlpalVYGrVu3plmzZhw7dkwqLIopiOL7GjhwIKNHjyYuLo49e/aUq6sXW9X/+usvfv/9d6KiohTqDOIUdXt7e7KysmjUqBFOTk5s3boVmUxWbk5eW1tb4oJvvvlGujZUgUwmo1WrVjg6OmJjY6NQPPT09KRRo0b8/fffCmqYstC0aVOmTp1KQUEBgYGBNdatLOI/Q9Tq6uoMGzaMuLg4KZdkbm6Oqakp6urqNerBIS7J9PX1adiwIf/88w+CIJCamlqm5rSyKMsjQENDQ6GYM3LkSLKzs5WauIu5elWKe8osN5VBJOr8/HwSExO5cuUKL168YMKECSq3covab7GKXxFE1Urz5s1Ver0q0NHRwd/fH0tLS6ysrPjjjz84d+4cgwcPZuzYsTg5OREXF8f27dulKSxLlizh3r17GBgYlDtYoTogpiFKGmTduHEDuVxO7969S42CunPnDk2bNkVNTQ1ra+sqpwD79euHpqYme/fuJSUlRdI0l5wR2qRJEz7++GM0NDQ4e/ZsmdectrY2w4YNk1ZDs2bNKqVAatasGZqamly8eJHNmzdLg4wjIiLKjJT19fXJzs7GyspKmrayYMGCClOHxTFw4EAMDAywtrYmPDxcYSXi6OhIQUEBu3btUum7tLa2loK37777TuVif1VQp4i6oiWEKK1ZvXo1giDg6+tLw4YNadKkCXfv3lW5a6+yxyESnyAIjB07FiiKSMXHqyPaUkbUgiCUyk+K7dYbN24s9foHDx6oPNVElOVVBENDQwRB4N69e1haWmJoaMioUaPK1HwXP/bNmzdz+PBh9u7dKzUpqQJlqpXqGtogk8no1KkT77//Pv369cPT0xMXFxeFLsVJkybRpEkTUlJSCAkJ4e7du8ybN4+5c+dy/vz5GlnqmpqaSpGtOMC1eEdou3btFEZB/fXXX9y9excLCwtevHiBpaWlSumPEydOlIoYe/XqhaenJ1FRUZIqApSbgBkYGDBlyhS0tbVZv359qQ7C4igsLCx3xfbOO+/g6OgoEf5XX32FjY0NwcHBSiPU4gGIjo6O5KL466+/qhQFQ9FKxcnJSQpAig9cFlcnGhoa/Pbbbyp1PhsYGEjKlMWLF9dYvaxOEfWePXsqtNMUq7Q7duyQihXNmzcnNjZWKsi8LJYsWaJAhGL+OCsrCzU1NTp37kxhYaGUnxZHXb0MlKU+AgMDSyk81NTUMDMzK3WBiDlMsciqCipqL4ciYgsMDEQmkzFy5EiVzYkSEhKIjY2VviMrKyuVbmhlqVbOnz8vufpVB7S0tPD09FSan7a3t5fmLfbo0UOawvLw4UOOHDmikpNgVSA2KIlNRCU75oqPgrp//z4WFhasX7+en376iZs3b1b4uzx//pwzZ86UIhM1NTWsrKykuZaLFi1S0DSXhJ6eHu3bt6dr164V6orLc5OzsrLCzc2NGzducPv2bdTV1aXi6ty5c0u9vmSaTSaTMWfOHNzd3RVy4BXhjTfeQCaT0aZNGxITEyXVi/h9z549GyiS7alSgxKVKTY2NpWK7iuDOkXU4iQHZYZMIrS1tenZsye3b9+WLnwnJyeMjY2rTTLTs2dPHj58KFW5xQtArFx37twZW1tbLl68KEXzVYWYVyxu2i/Czc2NsLCwUrlHDw8PYmNjFfScYnOCKkNhxZOpadOmZb5GPEHFqHvr1q3069cPmUym0ud98OABrq6u9OvXj6lTp3Lz5k2VLqayVCtqamq1Np+uOHJycrC3t2fWrFl4eHhI3Xs1AZlMxuTJk4GiFZv4HZT83OIMxrfeektaZX7++ecV3nhPnTqFoaGh0rTZuHHjUFdXp3v37mRkZJS7YhJVH/7+/pILX1moyPZTbIIRO5BNTExo3rw5165dKzVqq6zvfeTIkZKZmCrQ0tLCyMgIDQ0NNDU1+fXXXxEEQfou09PTJbc9ZTcMZZDJZEyZMkVl58jKok4RtampqVSJL89mUFQqiH4RoaGhdO7cmcjIyGoxavL09KR169YcPnxYQVtZXGw/bdo08vLyJH/fqjbdKBtqK2LUqFFoaGhw4cIFheW2r68vampq7N69m5s3b3L79m0SEhJUdtgT89PlKSrEwqSamhrTpk0D4NKlS4Bq7oEPHz7ExcWF9PR0duzYQbdu3VSSDIaEhChdLosTo2tTSidqubW1tdHV1cXS0lL6DirC9evXq9ScYWdnh7W1Ndu3b5dSPeV936qm++Lj43n48CHt27dXStRih+Hx48dp164dCQkJpKenK003qeo1DuUXycVt9enTR/JCh6JcuLGxMSdOnFDIg1fnDfLtt99GS0tLCrQ2bNggFTxDQ0PR0tKS0iLFFTGvCnWKqKGodbRXr15cvny5lMl3cYh34rS0NJKSknj33XcB5RaGVcGAAQPQ1dVl9erVUuReXCIlErRYqS/usVsZVLRUElMAYrMNFBG1j48PgiCwadMmySs6NjZWpaLqjRs3Kmw4KU4A4nijgwcPoqurW6EPuKhRtba2ZsOGDTRv3rxCGSCUr1oRJWHlnRPVDZGkFixYwA8//EBBQYFKZPHkyRP27NlTZcMwcYqRSBDF27xLQlWiPnnyJB07dkRfX7/MaeJvvvkmUBQI6enpERISIknmikMVohYDC1WkoqKfhqjZ9vX1xcXFBVNTU9avXy8V6apqzKQM4sozNjYWa2trIiIipGBLvDGKgWN8fHy5gx5qA3WOqKHITMfDw4M9e/aUWSAxMjLCx8eHjIwMqX24QYMG1Zanhn9PINH+sWSE1LZtW6Kjo3FwcKiSBwFUTNRGRka0atWK1NRUSRFgY2ODnp4eSUlJXLp0ibFjxzJ79myJIFVBRcRZkgDEG4Yqo8iioqIwNTVl27ZtNGnSBH9/f5WOScz1l3dB1pQXuDKIPs5iEDB48OBy00VQdJPau3cvWlpaVfYZUVNTY9SoUSQlJZXblQiqEXV0dDRPnz5VsBtVBtFC4I8//pBIU9m4O1WIWrweVPkOxDrT+fPnyczMpGXLlsC/N6zFixdTWFgoFQDFYuvL4r333sPV1RUDAwNycnJYuXIlDRs2VFBvNGrUiJ49e3Lp0qVX0jouQiWilslkvWUy2V2ZTPZAJpN9VtMHBUUdQNra2qxatapMI6L+/ftjYWHB2bNnSU1NZcGCBUD1Db6VyWRSceP06dOlmg58fHzQ0tKSJmQoM3WpCBXlXXV1dTExMaFNmzYcO3ZMIc9rZWUlXXh37tyhsLCwQgIWUwfljVCC0gQgdohaWFiQmJhYrm70wYMHxMXF4ejoSLdu3Soscj169IhHjx5x//59XF1dy3ydnZ1djRXyyoIoAQXVRqGdPHkSKysrzMzMyjUsqghubm5oampy584dBEEoU2kiCEKFdYmTJ0/i5eWFhoZGKblnSfTo0UNqHmvWrJnSaFIk6vLUL5Utqokige+//17a/o0bN6Rc8TfffFOqVvSysLCwQEdHhytXrkhqKWWp0w4dOtC0aVN2795do5PGy0OFRC2TydSB5UAfwAMYJZPJPGr6wABJjrRo0aIyq69i/nTr1q3SRf7NN99U2zHo6ury9ttvS8NWi8PX11eaufbw4cNSbmOqoKLcthiR9O3bFyhaDhcUFKCpqUlycjKampqSTGrw4MEVztETyaYiElFm6ejo6IitrS23bt0q1+ckNjYWb29vevfurZJCZMeOHVIhWJyPqAyVnXJT3aiIqJ88ecKNGzfo27cvGRkZL0XUUDRAw8DAgFu3bpXSNBdHWT4tIiwsLDh9+jSBgYEcOXKkXCWDeKPfsmULWVlZNGjQgEuXLknBCCC5zZVnHVBZora1taVly5aEhYVJwcvly5fR0tKSVjRbtmwBqo+oocie19jYmLt37+Lv709sbCw5OTmlOp1HjBiBtrY2v//+e43N7CwPqkTUbYAHgiA8EgQhF9gCDKrZwyqCTCaTpDJltWpaWVlhYmLCtm3byM/Pp1u3bkRHR1dKrlMRbG1tadOmDbGxsQp6TScnJ9TV1XF0dMTAwIDCwsIqaX3Lq4wXX2aKy9C5c+fi6+tLXl4ebm5uHD58GG9vb5V00SUbKspCWUtq8aIp3kVXEm+88Qb9+/dXiaQLCwvJzs5m8uTJfPLJJ+Tl5ZW5IhKr8tWll68MKppyk5eXx549e+jbty96enpkZma+tMWqlpYW/fr1IykpSRoCrAwVEXXPnj0lj+6+ffuWOwZMJpPh4uLC1q1bsbW1xcHBAT09PdatW1cq5VCe3LIqCh0fHx8SExP57bffFGaEWlpaMmTIEMLDw4mOjq7WwdbOzs64ublJZmFqamqcP39e6U1ZlcCxpiCrSLwvk8leB3oLgjDpf/8fC7QVBGFaide9DbwNYGVl1Vq8+1UHCgoKiI+PR11dXaki4Pnz5yQmJmJsbEyDBg2IiIjAwMBAJeJSFcnJyTx//hw9PT0sLCykyDUmJgZdXV0yMzPJzMzE2tpaJYmcCPH9ZTWD5ObmkpSUJFXP8/PzSUhIQEdHh7S0NLS0tEhPT69wv+INJC4uDh0dHaVywOIQ0xvKqvbPnj0jIyODhg0bvvRcwcLCQhISErCysiInJ4cXL15gYWFRJsnHxMRgaGhYqe+4ONLT06v03pK/Q0mkpaWRm5uLmZkZgiAQFxdXbROpRZMiZc1MMTEx6OvrV0jWMTExkl66IoieLnp6euTn52Nubi7lnMXPHxMTg7m5eZm/f1xcHIWFhRWqPoqjsLCQmJgYBEGQuhCLvz8lJYX4+HhMTU2rtbCYlZXFkydPMDc3x9jYmIcPH6Kjo6PU9lcQBGm1UJnPpgq6dOlyRRAEH2XPVTxvHpRdMaXYXRCE34HfAXx8fARRE11diIiIYP369ejp6dG/f3+F58LDw1m5ciWmpqaMHTuWffv2kZyczIoVK6ptYvWpU6ekYsLdu3f54osv0NLSkhp0BgwYwOeff07r1q2lhgVVIJfL6dOnjzSQoCTi4uJYuXKlQgNIcHAwJ06c4M6dO1JL9NOnT8ttFlq7di0xMTHk5eXRoEEDyXe4LPz444+kpqYqtUu9ePEin376KZ07d5a6w6qK+Ph4tm/fzqBBg1i5ciUDBw6ULFSVQS6Xo6+vX6khusVx6tQpqnJuCoJAYGAgAQEBSgOAGzducOzYMW7evImnpycxMTGMHDlSpW2fPHmSFy9elDkXMiUlhSVLlvD555+XGqIgl8vp3r17hS6DFZ1nIhISEli3bh0vXrwgNDQUT09PmjRpwvDhw/npp5+kxie5XE6bNm3K/K3kcjm6uroq2e2WfN/t27dxd3dHTU2N/v37K1zDXbp0QUdHh927d6tkBqYqxBXgvn372L9/P6GhoRw5ckSpnjw5OZmff/6ZpKQkKfVa01Al9fEUcCj2f3ug1jPqDRs2pE+fPoSEhJSaG9ikSRNMTU1RU1Nj48aN2Nvb8+TJk2qdIizKsr7++mugaDSPIAiS/Wnr1q2lynVljGJA9dSHCH9/f/T09CR1haj3LJ5HLAmx/f3999/H2dm5Qi/t8tILLVu2pFOnTuTl5b201auYIjh69CiNGzcul6ShaIxVTQ41LgvizaisPHWLFi2k39HBwUHlm8Hp06cJCgoqN03i5+eHvb09586dU/rZK4qmxd+yomaMwsJC9uzZQ9euXfnggw/Iy8tDX1+fZ8+eYWxszODBgwkPD5dSUxWd51VZUYiFO3V1de7fv19Kmujv709WVpbCwIHqwKRJk0hLSyMjI0Mi33nz5il9rampKePHjycxMVEaoVbTUIWoLwOuMpmsoUwm0wJGAjVnVVcO2rZtS7Nmzdi7d6+CRlVs3BBJs7CwEDc3N168eFFtQylFolZTU5Pmzi1btkzBaezDDz8EYN26dSpts7yhtiLKqrB/8sknGBkZERwcLEUc5e1XrPYbGhry8OFDlYikrNWIjo4OGhoaODo6cuvWLZKTkyvcVlnIyMjg+fPnPHr0iJ49e1b4+uLf96sYOFqepvn+/fs0btyYdu3aqdShduHCBUJDQzE1NS33BmVmZkbjxo1JSkpi4cKFpZ6viKhFQyllk3KK4/z586ipqdG6dWvMzMzIz89XyDW3atUKBwcHtmzZQm5uboVEXZXUQLdu3SSTqejo6FIFfAsLC6kDs+Q81ZfBoEFFZbdvvvmGRo0a4e3tTXp6eplt9A0bNqR3795KA8eaQIVELQhCPjANOALcAbYJglC9Ezcrgddffx09PT1Wr15dyq3q6tWrDB48mOzsbAwNDXn8+DF//vlntey3+HBNQ0NDxo8fT1JSkvRDRkREYG9vL+mHVYFIcOUt4cRceMlClmimDkXt4+PHjwcosyItEvWVK1cUfB3KQ0UEIBLlzz//XOG2ykJGRgZpaWkMHDiwQqOnyMhIqQFj7ty5LFu2rMr7rQrEKTfKIBa4ykpflERISAgXLlxgxIgRZGZmqjQRXfRAL6klr+h3UrWArKurS2JiIoGBgRw6dIhWrVphbm5OQUGBJOsUm2LKiu6LoyoRtagoiYmJwdTUlKCgIIXnxbz4W2+9RUZGRrkdzJWBTCbD1dVVuqkZGRmRmZnJ9u3byywctmvXDk9PT/bu3VslP/DKQCUdtSAIBwVBaCIIgosgCN/V6BGpADE/uXjxYkkT6unpSUFBgZR3vXr1KoIg8Pjx42pxXROLJiK5NmzYkC5dunDmzBmSkpKki2flypUA5bqKiVClMi4uuZVFLwEBAbi5uSlMWdmwYYPS7WhoaJCVlcWZM2ck/+OKUB4B2Nvbk5SUJHWIVnVEkoWFBV27dqVRo0YVvvb27dukpaUxfvx4pk+fXuMewCUhygOVLbm3b98OqOa1cv36dYKDgxk3bhxJSUk4ODhUKKs0MDAgPj4eV1dXDhw4QF5ennQcqtRhVJnA7u3tLdmR6uvr89prr6Gpqcnt27el+oxMJpMawXbt2lXu9qpaTB08eDAymYyxY8eSmZmp0EwmFhEdHBykDuaq9C8og6iqEq9dUbggXtPKMGzYMHR1dVm1atX/HZtTVVFctvftt99KlqdQdBF9+umnNG3alJycHARBqBZ3OxHFNZwBAQGSAbm4/LG2tsbY2JglS5ZUmEOrjNZUGVEbGhpiY2MjWYq2b9+e+Ph4pTcmTU1Nzp8/j4ODg8pL0vKIWvy+jYyMaN26NUFBQZXOzUPRDU/VzsX27dsTFxcnHX9FEXh1QyQeZZrm+Pj4UsNZlSEyMpIDBw4wZswYGjRowIMHDyTpXHkQv+/Ro0cDRc5uojyuPOWNGA22b9++wn1AUbRuYWFB586d6dSpE97e3jx//lzB40RPT4/mzZsTFxcn2RcUhxg0VNWbQ+xMbNCgAaCYKy6+zfbt29OwYUO2bdtWLY1QTk5OmJiY8Ndff+Hl5SUVThMTE8vU9sO/HczFA8fqRp0i6rCwsFJLnbKgqakp5YSXLl0qLR2jo6PR1dXl9ddfl4jw+vXrlSo8nDlzpsx20ZIazilTpmBra8uFCxeki2LKlCkqzVSsiKh37NghtYSXR4JiGuPcuXMIgqA0mtfQ0CAuLq7CaDokJITVq1cDcOXKFf7++2/Wrl1bSpcuLsNTU1MZMGAAgNQZWhOIj4/nl19+ITIyku3bt5OdnV3rRC2ubkquhETiViXHbmBggIWFBStWrODatWuSeVVFENMu169fZ+jQoeTm5qqkJxaLxqqQppjKGD58uPRYv379MDQ0LOWxYmZmhrW1tVLLBvFcqeoYNZlMhp6eHqdOncLHx4fo6GjJX6akLE9M+VWXHLht27Y8efJEyue7ubmhoaHB2rVry+SQ4oHj8ePHq+U4SqJOEbUgCJw8eVJltYaxsTETJkwgOTlZOmHEFIRISOKoLFVvAFB0wu7evVvpSaisK0osagQGBgJFF6yTkxOnTp0q15egotRHYmIia9asISIiokyiNjc3JyYmhk8++QSZTMbjx4+VTiMxMTHBy8urQv1pUlISFhYWDBs2jF69enH79m0iIyNZsWIFW7dulU5WMYoTi2vieKSaKqyYmpri5OSEgYEBGzZsYN68eRw+fJhly5Zx48YNpasIQRCIj4+vVnXAp59+WkriJhpyVVSsg6Lfq7jBlK6urkokamBgQEREBL/++ivq6urMnDlTJc8LVSf5gHKvFXV1dZo2bap0PFaLFi2k1FdxVIcdrbhy0NHRITY2VkrpFR/iIeLrr79m3LhxL71P+LcD8fz580DRTViMmLdu3Vrm+zQ1NZk9e7bKq8PKok4RtaenJ2PGjCE6Ohq5XK7SBebs7Ezfvn25evUq0dHRCnd+0R8gMzOzUrMNe/XqRZ8+fbhy5Qo//vijwnEoI2orKyvatGlDUlIS69evR0NDg4YNG3Lr1i1p8rYyVNRmPHXqVDp16kRUVBS///670u9DXBLr6+szcuRI7OzsiImJKZW38/f3V2mogK2tLdnZ2Xh6eiIIAu7u7nzzzTf07t2bO3fuKIyCgn9vjFZWVjg7O7N3794aWf5pamoyYcIEfvjhB6ZOnSqlcBITE9m1a5c0PmvRokVcunSJvLw8rl27xq+//sqaNWu4f/9+tRC2rq6uVPCCf61Qu3XrptL709PTefjwIb169WLChAlMmTKlQh16QUEBe/fuJSYmhvj4eNzc3DA0NFSpQzM+Pl6lwjEUNdYoS8OIHXklz6msrCyl6bHqMM8XzagyMjKkG+OZM2ekm2FxiwM1NbVq65do1KgRrVu35vHjxyQlJRESEoKWlhZ9+vQhPDy83BSLpqbmS3ejloU6RdQAjRs35r333gOKIlRVJFht2rShRYsWpKWlKfyAfn5+WFpa8vz5c/Lz8ytlkdm2bVvefPNNUlNTFYZXlrXc1NPTw97enoiICM6fP8+gQYNo1qwZaWlppcg9PDxcktJlZGQQHBxcJol0794dLy8vXrx4QWBgYKmChZjPy8rKwt3dnebNm0v+ulWBnZ2dVMEOCwuT3OJKjoLatGlTKU2zuAwtPs6pJiBqabt37y6Nz5oyZQoeHh6kp6dz8OBBvvvuO/bu3UuvXr1o164dx44dY9WqVVLdorogphZUmZYD/66+xJxxRSSdk5PDpk2byMzMpEmTJpI0EpT7sSiDKscmnqPKVCtirviHH35QeLysFvLqmnLi7OxMYWEhmpqauLi4cPz4cWnlVJ1+HyWhp6dHZGQkt2/fllRd4s2ivMCrJlHniBqKll7icmPevHkqnZBDhw7F1dWV0NBQKdKQyWQ0bdqUBw8ecPHiRWn4q6pwdHSUNNPfffcdampqZS43DQ0NycnJwdfXlyNHjmBmZoa5uTmPHz8uJSNLTExEV1eX3r1706NHD06ePFmu1MnY2Fga07R48WKFCSslfZpHjBiBj48PFy5cqNLJbGpqSl5eHnFxccTExCjkT4uPgrp37x4XL15UuHGIlXoxaqwpWFhY4OHhobAasbGxYfjw4RJxizd7Dw8PmjVrxjvvvEOnTp1ITU3l999/Jzw8vFoIW1Q+qJKPFb3CK5qKIiItLY1169ZhYmLCiBEj0NTUVFBSVBRRi05vqkx+r0i10rJlS6KjoxXO07LScdU1iee1117DxMSEzMxMKZUp5qKr0+9D2X59fX2xsbFROL/FQbbVNUmqMqiTRA1FdzXRE/enn35SyWdZzBF/+eWX0vK7X79+eHt707p1a+Lj4ys0vS8JQ0ND6TiuXr1a5tJHTEH069cPfX191q5di7q6upTvK240ZGFhQX5+Pu3atcPY2JhGjRpVKOsqKChgzpw52NnZsXnzZnbv3q3wfHFtrVglr0reTiaTYWtry8mTJ2ncuLFSRYGvry+ff/45ZmZmXLlyheXLl0uk5+LigoGBARs3bqyRIbAihg4dSu/evct8XltbGw0NDVasWMGiRYv46aefOHbsmOTVsGXLFg4fPvxSxyBGd0OHDlXp9evXr0ddXb1Cj2koilZXr15N06ZN6d+/P0+fPsXZ2RlDQ0NJ01wRUYv6aVVa/OPi4sqV8Pn4+JCbmyut1LS1tcv8fQsLC6vFi8PQ0BCZTMatW7e4evUq3bp14969e+Tl5dVoRO3u7i4FAVeuXJF+ZwMDA9q2bcvZs2drvTu2zhI1FBUy5syZg4GBAWvWrKnQuFsmk+Hn50d0dLSCbM/IyAhtbW3CwsL4448/qnQccrkce3t7bt68qTTfLVbl8/LypDtvcnIyurq66OjoKFSlLSwspIjg+vXrUvqiPGRlZUkz9fr168f169eRy+UUFBRgb2+vYMuopaXFrFmzyMzMrJK+2dbWlvDw8HJN8mUyGcOGDcPNzY3t27czcOBAqRnlgw8+AIqIqaagrq5eLgEZGRkxa9YsZsyYwdSpU3nrrbcYO3YsDRo0YMqUKUyePFmlqTPlQSTC5s2bV/ha8ZwRz42KoK6ujrGxMSdPnuTRo0dcu3ZNstQVV0/lEbUgCISGhqrkhyGqVkr6iBSHj48Pzs7OktlSRcMDqsuQqm3btmRmZnL16lX8/PyAoo7OmoyoxfNKvNkUlyD26dMHQGmHaE2iThM1FH1pH3/8MR4eHuzevbvCZYeurq7kS71kyRLpS1dTU8PHx4fLly9X2QJ17NixODo6curUKdauXavwnBgR37p1C5lMxmeffSa1eIuzAkWrSnE59/z5c548eSKN9SoPxZeZvr6+0tJ+7ty5SgtAffv2xc7OjuXLl1d6nqOtrS0aGhrlmviHh4dz8OBBevbsyaJFi8jPz2f16tWsW7cOdXV1Bg0aRGRkZJVnSVYHtLS00NXVxcDAQHJW1NDQwNraGjs7O4yNjQGk3+Hhw4eEhYVx7do1Ll26xJkzZzhx4kSZvij//PMP2traKhUDT506hYeHh8rzBrW1taXfddu2bdy8eZMWLVoA//qNlEXUOTk5bN26levXr6t0MxKDiPJUK25ubjg5OZGZmcnRo0drjah79OiBjY2NtJIdO3YsBQUFKo2cexkMGTIEExMTBEEoRcritVeb04bqPFGLGD58OF27duXs2bPlRmq+vr5oa2szceJEXrx4wZ49e+jWrRuCIDB58mSysrLKNFupCObm5jRq1IiRI0fy+PFj5HJ5KVmY+OPp6OgwZcoUjI2N2b17N82aNeP06dMUFBSgpqaGmZkZJ06cwN3dXSVZV8l8oIWFhdRJ9c8//xAdHV3qwn399ddJTExk5cqVlfLPdXV1ZerUqeXqlMW8Z0BAAD4+PvTp04dBgwYRFRVFYGCgJKMqr6urLiAvL48VK1Zw+PBhzp49y82bN4mIiCAqKoqTJ09y7tw5pYQoFrlVcYcTdenKZkGWhdTUVE6cOEHr1q35+OOPmTJlCgYGBtjb20vL/vz8/FKEmZSUxKpVq7h16xaWlpYVDlsQBIHs7OwKVStqamrIZDIKCgq4cOFCrRG1hoYGtra23Lx5E0EQcHFxQUNDg9OnT1fL9suCeFN0cHAgPj5eYaiyhYUFjRs3ljpEawP/GaKGomr/iBEjiIiIKHOQgJhns7e3p1+/fly7dk0iQjU1Nby9vbl27VqVzOfFpZC7uzvTp08HiiSAYr7KwsJCYVSPjY0NH374IXFxcRJxiakXS0tLbt26VW7aIycnR9LBxsfHc/z4cQXC1tDQQC6X06pVK+7du1dqtP3AgQPx9/fn6dOnKo+9F7dbkbZXW1ubdu3aSRdMTk4OrVu3Zvbs2WhoaLBmzRosLCwQBKFa51hWJ0SLgfz8fDp06MC4ceMYPHiw5Gnu5eXF+++/r1Q1cfToUYAKJ6unpKQQExPDoEGDKmUHKw5mGDBgAJqamtK5V7L7sbg87t69e6xdu5aWLVsSHx+PjY1NhYR669YtQHXViiiDK6tWI16T1UXU8O/NUIyiRZlpRQ6QLwPxtxIVNiWDwzfeeAOoXmOo8vCfImqApk2bMnXqVAoKChRkcyJEKdHdu3fx9fWlVatWHDp0iBcvXrBr1y6pe05s0KgMxJM0OzsbMzMzaZ7bwoULpeGhJREQEIC5uTkLFy6kXbt2PHnyhPT0dCwsLDAyMir3Qn/06BHnzp3D09OT1q1bc/36daXmL6+99hqenp5cu3YNuVwuKVPU1dUxMTGRhhJU9yTlNm3acP/+fZ4/f05OTg7a2tpoamry5Zdf8vrrr5OQkEBkZCT//PPPK5nKogwFBQXs2LEDuVxOYGAgGzduBIoI68KFC/zyyy8kJSUxadKkUl7IxRESEqJ0iEVJiFJFVdz0RIhKEmX5bHHKjahGMDIyQhAEgoOD2bdvHyNHjkQQBLKyslRaqYnds6qoVsRuVCh72S8qtF52DFlxiMGXaLDm7OyMrq4uO3furNGCdd++fbGxscHZ2ZmnT58qrEplMhkTJkwgJydHGuxQk/jPETUU3a3Fk/i7775TaoYinkiDBw/GyMiIpKQkUlJS0NTUZNKkSTx79qzSjlclh2tqaWkxZ84cyc1PVJqUTFO8+eabZGRkSG3mixYtwtvbmzfeeKPcKKthw4bk5eUxePBg+vbtS05OTpmKgfbt20vR1vz58yWVzJtvvomBgQEtW7YsNfvuZaGjo0ObNm04deoUgiAoNII0a9aML7/8kqZNm3Lt2jVGjRpFQUEBKSkpNXpxlURubi5BQUGSbC8+Pp5bt25hbGzM66+/zpw5c5g+fTr37t0jIiKCsWPHMnToUOmGrwyiQ2HxVmtlEJU+4vgyVRATE8ONGzfo3bu3UiVQyY5QIyMjduzYwb1793j77bextbXl8uXLWFlZVVjkrKxqRQxEpkyZgqamplJ5XnVpqItDJpOhpaXFiRMngKIUpHiuv6xypzyIaVRdXV0SEhJKWUI4OztjYmLCpk2bqsX4rTz8J4kaiop3Yo528eLFCtpNQ0NDhWLDhx9+iJOTE+fPn+fhw4eMGTMGqFpUDYoaTtFNrGXLlhw9elQqRhVHz549CQgI4Pnz56SnpyMIAsnJyRWORdLR0cHW1pZHjx4RFxeHiYlJmVV8Hx8ftLW1mTNnDvr6+qxZs4YTJ05I0fT169cxMDBQOvvuZdC2bVvu3buntKimoaHBZ599xvz588nIyKBbt27MmTOHBw8eVNv+S0IQBG7fvs2SJUuQy+XMmzdPUr507twZa2tr5HI5H374Ic2aNUMmk2FmZsZnn33GqFGjVBpVJerxzc3NycjIIDw8nOPHjysobwRBYMuWLRgYGKgUeYvv+e2334CiBqPyIAYiRkZGZGVlkZycTHJyMrdv36ZBgwYYGBhUWEgU02qqqFbg3zSPIAhoaGgo9eauCaKGoiIiFKXYLCwsUFdXx9vbm4sXL9aYEZJ4PoeHh6Ourk5YWFipIENMga5Zs6ZGjkHEf5aooYgI5syZg6amJr/99pvU4loyBSGTyZgzZw5QVLEVBIFZs2aRmppapXSAMg3nkCFDGDhwIPHx8dL0l+LHKZPJJPXBpUuXpAJTRWjSpAl3797lyZMn5bYCi/P0EhMT+eSTT/D39yc4OJgffvhB8k0QI7vKjAqrCLq6urRp06bcwuOzZ8/w9/fH1dWV9PR0fvjhh2qNQGJjY/nzzz+ldMb27dtJSUmhWbNmzJgxQ4qmO3fuXOYKRpXZjwUFBURHRxMUFCSNY1q6dClbtmzh2rVrCl20YqQneoargl9//RVAMvgpCy4uLlJUb2RkRJcuXcjIyGDt2rUcPXpUujFU5JJ4/PhxtLS0VM6dF59y0717d/Ly8kqlHqur2aUk+vbtC8C+ffuk+oloBrZq1aoa2ScUDTLQ0dGR9lnSdEldXZ3XXnuNZ8+eKdSnqhv/aaKGf52rGjVqxLZt2wgODpY0zcUvHA0NDaZNm0Z2djY//vgjffr0wcHBgfXr11d6/HtZYntvb2/69+9PWloagYGBCpFr//790dLSYvz48bRq1YqHDx+WOdapONzc3Lh37x6PHz8ul6jFHKOo+ezatStvvfUWmZmZbNq0iZycHP766y9J41ydw4c7dOhQ7nzA1NRUvLy8+O2333jnnXeIiIhALpdXObLOzMzk8OHDEgH/+uuvPHjwACsrK8aOHcucOXOQy+W8/vrr5aYwKoOUlBS+//57/vzzT9LT0xk+fDhDhgzBwcEBJycnpkyZIhXQ8vLyuHjxIj4+PirliaGophIXF8eoUaMqvGkUD0R0dHRYs2YNOjo6fPTRR3Tu3FmllJ54bYg38crg6tWr0jVWsvGqpiJqMzMzjIyMOHnypCSrzMvLY9CgQcTFxancTl9ZdOjQATs7O54/f07Dhg2VDmEQVyRl+fFUB+oUUb948aLKX/i4cePw8/PjxIkT0hwzsaItYsCAAXh5eREdHc3u3bsZMmQIcXFxpXSSsbGx5dqKlie279mzp7TknD9/vkTqYkEkJiaGPn36kJKSwvr168v8YQVB4NGjRxgaGqKrq0t4eHi5RC0e74ULFzh48CBxcXE4ODjw+eefA0VR7fXr1zE2NmbQoEEKs+/KQ2FhIdevXy/3d9HR0Sk3ZTBmzBjS0tLYuXMnXl5eDB8+nPz8fP7880+WLFmiknQwJydHSmf88MMPXLhwAXV1dXr37s2XX36JXC7nnXfewcXF5aWG7ZYFfX198vLyKCgowM3NjUaNGrF7924sLCwYN26cQtFx+fLlQFGXqirIy8tj8+bNWFhYqNTuLa6eMjMzJT3/rFmzMDIykmxBK0rhiP0IFalWSkIkaF1dXSwtLUsZNb148aJah84Wh4eHB9HR0dIggaSkJKlIW1MyUHV1daysrLhz547kg6KskCr64Ii9EtWNOkXU169f56effqq0J4eIbt26MXToUMLDwzl79qyC2TkUScqMjY3R0tLixo0b2NnZ0aZNGyIjIxVee/z4cRYsWMDu3btLEalMJlPIRZaEh4cHWlpaUuS6bNky7ty5IxVEjh49ir+/P/379+fmzZtljgqTyWRs2LCB7777TjKGKSs6TEtLY+HChejq6mJqakpsbCz379+XPrNcLsff359bt24hl8vx8vLC3t6eLVu2VNgKm5eXx+7du/npp5+kCHbXrl2V6gzT0tJi9OjR5Ofns3XrVpo2bUrbtm154403SElJYe7cuRVWzsWCsY+PDzNnzkQul/PVV1/Rrl27CqejvCwuX77Md98VDTaKjY2lbdu2bNy4kW7dutGrVy+FImpCQgIpKSkMHz5c5RuGuG1Vi45qamr06dOHBw8eoK2tzQcffFBKtVGR3O7y5csq586LQyzi6erq4u7urlR/XZ3SvOIwNzcnOTlZGnUnnoPvvvuulBqpCXTt2pX8/Hzu3LmDiYmJ0vFfOjo6jBkzhoYNG9bIMdQpovb396dbt26SzKwq/fwtWrRg0qRJaGpqsmXLllLRWsuWLdHW1sbb25tDhw5hbm4uOa6Jy8ExY8bg5+fH9evXCQwMVIgaKtIXi6QRGhqKXC7HycmJrVu3cuzYMUl7mZOTw5QpU3BwcGDNmjVlRu9yuZy+fftiaGhIbGwsgYGBSgnSwMAAMzMzXnvtNd5//30sLS1L5YwnTZpEp06dJAWE6HS3cOHCcpdrItF/8cUX9OzZEx0dHW7cuMHy5csl4t68eXOFy20NDQ2GDx+OlpYW165dIzw8nEaNGvH1119jZmbGpk2bWLx4MQUFBSQlJXH+/HmFPLa5uTkffPBBuZK56oQgCBw9ehS5XM6BAwcwNTXl448/pnnz5jx48IAJEyZIY6uKQ4ymi0vZSm63OMThrarYnRaHpqYmz58/l4yLRIjnhyjjUwYx1VeZBhwRYt47Pj4eNTU1qa27OGqKqH19fbG1tZXSKyI/WFpaSg0qNYGAgACgSDsvGmopCywaN26s0hCIqqBOETUUWZOKznnLli1jx44dld6Gvb29JN+bO3eugh2j6GfQoUMHTExMSE1NxdXVldjYWIUUSLdu3Zg9ezYNGjRg27ZtyOVyoqKipOjp5s2b5WqDxfzzxIkTpY7KQ4cOAUh/i1an5Q1EbdOmDQsWLJAidJEgi7vTyWQyAgICCAoKkvyRlRX3Zs+eLflmf/fdd0ycOBFApUENWlpadOjQgc8++0yKZgcOHIiJiQl3795l1apVEnGvW7eOhw8fliIldXV1hg4dipOTE1lZWURGRqKmpsb06dMZN24caWlpzJ07l+XLl3P58mUOHjxYq1I+KCoYbt26lcDAQM6dO0ejRo2YPXs277//PgYGBrz55pu88847SqPRGzduAKULiLm5uYSFhbF7924WL14sLd3T09M5fPgwzZs3r9TE7rS0NDZv3oyxsXEpfbao5Cge5ZeEsgEBqkK8mYjNJsp+n6pMH1cF3t7euLi4UFBQwPPnz2vU76M4NDQ0MDQ05OzZs5JkctOmTbWybxF1jqihyDlPLpfTs2dPableWX+ODh064OfnR15eHj/88IP0o4rG3nv37uX999+XZEZaWlrk5eUpWIhqamoyY8YM3nvvPfLz85kwYYLkiRscHFzm9IzGjRsrpBT8/f0ZM2YMsbGxXL16VZI1aWhoMG/ePHJycir0uXV1dUUulzN16lQANm7ciFwul4qHHh4eZGVlERERUSZR6+rqoqenh6mpKVB0o2jWrBkxMTFKZ9+VB1Ee9cEHHyCXy/n6668ZNmwYVlZWREVFsXHjRgIDA6VinyhtUlNTY8CAAXTp0kXBZL1Ro0aSS6GRkRFTpkwhJiamxnJ+JZGdnc2vv/7K3LlzuXPnDq1bt5YmhxQv7qmpqSlNtQiCwK5du7C0tKRBgwakpaUREhLCX3/9xeLFiwkKCuL69es0a9ZMKoaJXW2iha0qEASBxYsXk5OTo7SJJjQ0tMLI/P79++X6uFQETU1Nqb6hTOpZUxG1oaEh6urqJCQkcPPmzRp10CuJnj17Sp912rRpADWq8iiJOknUIjp06MCnn34KUGoUVEXQ0dFBXV1dyl0tX75cytu6u7vz5MkTZDIZX375Ja1bt+bGjRsUFBSwefPmUtIxCwsL5s6dS9u2bXFwcEBNTY20tLQy0yDKOhQbN27M+++/j4eHB8HBwdKwzA4dOuDp6cnOnTtVGpsk6oBnzpyJkZER+/btQy6Xc/z4cfz8/AgKCiqTqAEmT56MmpoaH3zwAS1btuTWrVvExsby999/SxPWqwI1NTU8PT155513kMvlzJkzRzKxio2NZdu2bRJx//zzzxgaGpaKSsUIu3v37mhoaPDGG29w9+5dzpw5U+XjqggpKSnMnz+f77//ntjYWLp3786cOXMYMGBApWb+ieqHsWPH8vvvv7NixQqioqJo1aoVb775Jnl5eXTp0oVevXohk8mkgrc491NVLF26FKBclU15+WkxYBk0aFCl9lscxc/v4qtVUapX1aG2qqJBgwYIglBrETUgrT7v378vfT5VRwZWB2q2ClMN0NXVRS6Xc/HiRQ4dOkRgYCBTp05V+a4dEhKCXC5n1apV/PXXX/Tq1Yt+/foRHh5OSkoKJiYmfPHFFwwYMIDz58/TqVMnVq1axZQpUxS2I5PJ6Nu3L6mpqaSmprJ582bJT8HOzk7htWK0kpiYqHDSmpqaMnfuXHr06MF7773HsmXLcHJyYs6cOXz44Yds2rQJe3t7HB0dK/xchoaGfPTRR+Tm5rJ582ZpsG1kZCSNGzcuk6jFY12yZAnNmjWjTZs2XLp0iVOnTlFQUMA333xT5aGkxSGTyXBxcVHI2T19+pTg4GDu3bvH33//zd9//w0U/cb+/v60bNmSgQMHcvnyZQ4dOkTz5s3p2bMnBw8eRFtbu0KDocogOjpa4UJ77bXXVG78KIns7Gxu3LiBn58f6urqJCcn8/rrr+Pi4kJCQgIbN26kU6dOtGnTBigiy5CQELp27SpF16rg7NmzJCcnM378eKWT0MWIr+RMx+KoaECAKmj9/9o777Ao7vyPv5YiTYoCgohIUcAuCCoIiw1bjGKL0SR2k3gxpp+XcroaY9RcksuZaBKNGks0GmPPRVFAUEBFsIsFVERUmoBI353fH/xmjqUJUpPM63l4kN11Z3Z39j3f+ZT3p3dv6Xgrm18Rr3qrC7vUFSsrK9LS0jAyMiI5ObnBtlMe8f1avXo1X375JTNmzGDDhg2ShjQ0zXpFXZa+fftKJTDffvstW7dufeLqun379tIqcc6cOfTp04dDhw5JReviqsbU1JQvv/ySkpISdHR0uHfvXqXJsW7dunHlyhWee+45PD09MTExYe3atXz66ada7lqi0FVWJ62vr8/bb79NcXExGzZsIDo6mjZt2tCzZ0/JVKc2puRibfbChQvx9vbG0NCQo0ePsmnTpkpHJZV1HdPT0+PRo0e88847+Pv7c/z4canbsyGwt7dnypQpUiz7b3/7G927dyc/P59Dhw6xcuVK9uzZQ1JSklSmduDAAQoKCvjtt9+kGHBdKCwsRKVSSSI9Y8YMVCrVU4s0/M9AadCgQYSEhJCfn8/mzZu5efMmP/74I0OGDJFEWhAEKeFYm0GoqampBAcH4+3tjZOTU6X5ETGkVl2yNTU1tYKxU22xtLQEShciZYW6oZpdyiJ6cpuamjZoh2tl2NjYSBVYHTp0ABrPHfIPI9Twv1FQo0aN4vr16yxevLjag6P8ATly5EieffZZzp07R0JCgtYH7eHhgZubGyEhISQnJ7N27doKJ4LWrVvTqlUrYmJisLS05OOPP+all16isLCQ5cuXs2/fPq3/U5VxzYgRI+jXrx/29vb8/vvvbN++nfnz5+Pj48PNmzf57LPPat25p6Ojw6hRo1i9ejWTJ0+WOgDLV88kJSXh5eWFSqXC19eXtLQ0TE1NWbJkCX5+fkRGRkrC09C0adOG8ePHS8L95ptv4u3tjSAIxMbGEh0dTVZWFikpKZSUlFSYrh4dHU1YWFi1Ne8ip0+fRqVSSaWV8+bNk6py6kJKSgpFRUX07duXxYsXExMTQ9++ffHw8GDr1q2MHj1aqyJBTCCL9e1VUTb2W1JSwurVq4H/1WZXJtSVNWOURVyFDx069MkvrAakpKRovfcN1exSFtFtUiwKqMlM1foiMDCQoqIiKeQyYcIECgsLa3T81ZU/lFCLeHl5SQf6d999x6ZNmypdXYslSmWbNXr37s306dOxs7MjLCxM64BfsGABbdu2pVWrVmRlZUkuZmXp1q0b4eHhUkOBi4uLJHqxsbEsXryY+Ph4unXrhlqt5urVqxUSoWJy6t69e1Ld94oVK+jcuTPt27dHEASWLl36VO+Nrq4ur7zyCh9//LEUx/z6669RqVTcvHmToKAgrl27xrVr12jdujVZWVmo1WoUCgVLly5lxIgR7Nu3j48++qjRKy4sLCx45plnJOF+77338Pf3p1WrVujq6nL37l3pvj179nDo0CEyMzNZtWoVISEhFa4gBEEgODhYq8TOxsYGlUpVb3HUf//734SFhXHy5EksLS358MMPGTFiBKNGjeLNN9+UmlOg1A0xKSmJCRMmVBqaKiws5OzZs2zatInPPvtMurISjwUx2QqVC3Vubq7W9sqzbds2oPoBATXF1NSUhw8fNrpQi800YkK3IU2ZyiPG/sWQnVie2ZCTjET+kEIN/6vvHTNmDImJiSxevLhCzEr8MMubxzg6OkpJylmzZklhC2dnZ9zc3Lh+/To5OTmcPn26QoKta9eu5OfnV+j8Gjp0KB9++CHm5uYsXLiQr7/+moKCAkJDQys9mEaMGIFaraZ79+68+uqrCIIgjbJq3bo1Go2mgltXbXF3d0elUvHyyy8DpQfUZ599RpcuXdi7dy+PHj3CzMxM6zUuWLAAT09Pjh8/zqJFi5rUntTExERr0vj777/PkCFDpFpsQRAYN24cc+bM4fHjx6xatYojR46Qk5MjJS9PnDiBk5MTH3zwAW+88Ua9xN+hdCX35ptvcurUKXx8fJg/fz6vv/66dBLW1dXVigOr1Wo2bdqEmZmZVv21eDLfuXMnX3zxBadOnSIxMZHAwEBMTEwkUXjttde0Yr/lPxfxpFpVIlEs23zSgICaIl6tNrZQiyQlJWFqalqpMVRD4ebmhpWVlVZl2JAhQ7h//36DGUOJ/GGFWsTDw4MPPvgAhULBunXrWL9+fYWVYGUhiNatW/Pcc8+RlpbG8uXLpUvioKAgevbsiZ2dHdHR0RXCAKampvj5+VU6/kpfX5+33nqLQYMG4ezsjKGhIenp6ZV6N4gxy1OnTmFra8uCBQtQKBTcv3+fO3fuEBgYyIULFyo48T0NdnZ2qFQq3n77bUxMTIiOjubq1assWbIEMzOzCmVOn332GX5+foSHh/PFF19IJ5CmxsDAAD8/Pz744AN8fHxwcXHh7NmzJCcn4+Ligo+PD2vXriUoKIj9+/fTvXt3Fi5cyLRp0+plFQlIgxA++eQTzp49y9ChQ/n000+f6Cki+qCL9fAajYaDBw/y+eefExkZiZOTE7NmzaKwsJChQ4fSt29fEhISiI2NZdiwYRVqngsLC7Vekzi0uapEtFj3XNMBAU9CbCUve8IoKSmR4tcNib29PYWFhXTp0gVBEKS69IZGR0eHTp06abWxi+9nXRdVT9x2gz57IyH6Qo8dO5akpCQWL14slb917Nix0qQalMaYAgICKC4u5j//+Q83b96kV69eKBQK2rdvj4+PDxEREZIPrsjgwYOrnST97LPP0q1bN4YPH05ycjJ79+6VOtBEFAoFurq6UvOLkZERCxcuxN7enpiYGLZs2ULXrl3Zs2dPvc0dNDMz47333uP999/Hx8eHu3fv8uOPP/Lzzz9rrQh0dXWZP38+AwYMIDk5mQULFjx1KKahcHV1xdzcnJs3bxIXF8fSpUv56quvKC4upl+/fgwYMIBhw4bV2woaSr1jFi9ezJkzZ8jLyyMgIEBKcFdHbGwsRUVFzJo1S9qfoqIiLl68yIgRI5gxYwbu7u7s2LGDXr164evrKyUkLS0t8fHxqfR5y053edLEcTGMV1/vh5iwLN+h11DNLmXx8vJCT08PIyMjioqKpEqWxsDAwICUlBRpapFCoaB3795cuXKlQUOFfwqhFunZs6c0Cmr9+vWsXbu22gx3mzZtUCgU9OnTB0tLS3788UfOnDnDgAEDuHfvHv/4xz9o27Yty5Ytq1XCoF27dtjY2KCnp8e0adOkpKFKpdJKfoq+2GJCREdHB5VKxdixY7ly5YoUklmzZk29ekgbGBgwa9YsNm3ahKurK5cvX2bp0qWsXr1aep0WFhaYmppib2/PmDFjOHbsGP/85z8b/BKvpjg5OeHt7c25c+dITEzE1dVV8iFZtmwZs2bNqlMJWlnS0tJQqVT88ssvWFpa8sYbb2BiYlKjE0F+fj779u3D1dVVy1RLTELt2rWLtLQ0Nm3aRLdu3fD390cQBGkFLjZXVEZZoU5MTJQamcpT2wEBtaH81VZDNbuURcw9FRYW0qFDh1oPAKkLXbp0wdzcXKszWEzwPmnwdl34Uwk1oDUK6u7du2zbto2srKwqi+OtrKyIi4vj9ddfp1evXuzfv19K4hw5ckSasD116tRa7YdSqeT48eMUFBQwcuRI3nnnHaA0+bly5UoKCwslA5dDhw5p/d833ngDFxcXfvjhB2kS8qefflrvZ2xDQ0OWL1/Ot99+S2BgIKmpqaxYsYKPP/6YI0eOUFJSwltvvcWsWbOYOHEiDx48YOnSpY3aaFAZ169fR6VSSSb706dPr7LETqPRcPjwYSIiIrh582at3sOioiK+/PJLqZxOjEN/9dVXADWa8C0Krjj3TxAEdu3axZdffgmUhu7WrFmDq6ur5CkhOuK9++671XYZlhXq6vZHXG3XpQSxMoyNjSskyhtDqMsm48V4f2V15Q2Bt7c3rq6uCIIgeabo6Ojg7Oxco4a1p+VPJ9Qi4igoIyMjzp49y+LFiysteRs7dixQ+qUMCgpi+PDhnD59mgcPHnDhwgXs7Oz45z//SVpaWq2yu+3bt8fS0pLY2FgMDAwwNTVFpVLxwgsvkJeXx6effsrBgwextbXlzJkzJCYmak2l+fLLL+nVqxdXrlyhuLgYjUYjCUR90qpVK1q1akX//v1RqVQ899xzqNVqoqKiiImJYc2aNTx69IghQ4bQo0cPqQ64vDNhYyA2L23duhUoTbCpVKpqrTqLioo4deoU+fn5hIaG8uDBA9asWcP+/fuJi4sjLS2tgniLcehly5aRnZ3NpEmTUKlUtG7dWhKEWbNmPXF/xRXWG2+8gUKh4O7duyxevJgLFy4wePBgVCoVzz77LDNnzmTw4MEoFApiY2O5c+cOkyZNeuIVgSjUYry0V69elT7u6NGjlU7gqSt2dnZSN6L4HjZG6EOkbKxYPCYaGnFeo2jkJiKeiKsqya0rzaoz8cSJEwQHB9epS6ws4iioO3fucOnSJZYsWcLUqVNxdnaWHiN26oWEhDB8+HD69etHVFQUoaGhUqfikCFD2L9/Pxs2bMDX17fGPgkBAQGsX79eqxRL9Oz473//y+HDh0lMTMTBwYHDhw+Tl5fH22+/DSAV9GdlZUkTJtq3b8+hQ4ekGtKGoEuXLqhUKu7evcv333/PpUuXpLhpRkYGnTp14sGDB4SFhWFqaoqnp2eD+D+XJzs7m7i4OAwNDfH09KRFixbSSrcmiLXDYWFheHh4EB0dLfmb+Pr6SvdfuHBBSgz169dPavkWuX79Og4ODtV6gwNkZmZy4sQJ/Pz8MDc3Z/Xq1dLq8/3335eOCR0dHSnf8fDhQ/bt20eXLl3o3Llztc9vYWEhHcdi/qOypLUYVhOFpD6xtbXl9u3bCIIg2dCW9W9pSFxcXAgLCyM9PZ0xY8ZUyAE1FOKxUFhYqOWqqa+vT7du3eotn1SeZiXUPXv2JDIykl27drFr1y6CgoKqXCXUhoEDB2JpaUnLli3ZtGkTlpaWvPbaa1J80dTUlOjoaIYPHw6UDiF4/PgxmzdvZvbs2bz88sssWLCAWbNm8dprr7Fjx44atY06ODjg5eVVqdPaiBEjKC4u5u7du5iampKSkoJGo0EQBBQKBQqFgu+//54333xTqga5evUq4eHh/Pbbb4wbN44+ffpgZGRU5/enMtq1a8fixYvJyspi0aJFnD9/HkNDQwwNDfnuu+9ISEhg586dFBUV8dZbb2FoaIhGo5H2vSEQ35vaIJotRUVFkZycjCAInDx5Ent7ewYOHIi9vT3t2rUjLS1NEn4rKytpgGt5hgwZ8sR9EARB8uRo27YtS5YsAUqH4VZlf1r2iulJQ3Phf6t0oFqROnz4MFD7AQE1QU9PD19fXxQKhZR7aYyTNpSGIH744QfS09Px8PCoF52oDeL3Lj8/X/r3hAkTGiyhqGiIJ/by8hJqMmaqKvLy8vjuu++kRpVRo0bVqe319u3bbNiwgQ8//JCLFy9KNo8vvvgiHTt25NatW2zcuJGPPvpIyxnt4cOHDBo0CB0dHQIDA8nLyyM0NJSAgAC++OKLOpd85efns2bNGvz8/Pjtt984fvw4kyZN0qoO+P3334mOjuaDDz7gP//5Dzt27KC4uJihQ4dqibSvry8+Pj4N5tWcnJzMe++9x7179+jbty/e3t4EBgZKsdZnn32WkJAQOnfuzKhRoxpkH54GtVrN7t27MTIywt7envT0dAYNGiQJSlFREV9//bVUZjZ//vw6j+/aunWrVAWgr6+PjY0Nr7zySrWJx2XLllFUVMQHH3xQ6+NKpVLRp0+fSs3zVSoVbdq0qdUk9JqyfPlyCgoKUKlUHDt2jNDQUFQqVb1vpzI0Gg2BgYH07t2blStXNso2Rfbt2yfVb3t4eNTJ4KosCoXijCAIlQpds1pRixgbG/PWW2+Rn5/PunXrOHDgAAcOHJBCE7UhISFBiht98sknGBoa8tFHH7Fq1Sq2bNmChYWFNEk4IiKCgQMHSv+3VatWTJkyhYMHD6JQKKRqjgMHDnDhwgU2btxYp4kORkZGPPvssxw8eJD333+fDz/8kGvXrrFkyRJGjhxJnz59GDZsGNHR0Xz77beScf2nn37KtWvX2LBhA6dPn+bEiRNERkZqJTM8PT3x8/Ort5mB9vb2bNiwgYMHD5KTk8PFixe5ePEitra23Lt3j/379zNy5EhOnTqlNVOvqdHV1WXChAnS32FhYSgUCikOLX7hnn/+edzd3eu8vaSkJGlobNu2bZkzZ04F067yHD16lKKiIubMmVNrkRarcCor4ROTXTVZoT8NRkZGUmVSYza7QGnIyMTEpFGtRkW8vb2JjY3F0tKSuLi4ehPq6miWQi1iZGTE66+/TmFhIevXr+f333/n999/JzAwsMaF+4mJiRQWFjJ37lzMzMz48ssv0dPT46233uL69ets3bqVjz/+mJycHI4dO6Yl1ACvvvoqubm5UjnVypUrWb16NcePH2f27Nn4+/vTtWtXxowZ81Qr7E6dOuHs7Mzhw4fp2rUrSqWSiIgIfvvtN3777Tfmzp3LhAkT+OWXX3j48CHDhg2jbdu2zJ8/n6CgIEJCQggMDARKL/NPnTpFeHi4lu81lJY0+fv71ykrb2hoKHknC4JAREQER44c4dSpU7Rv355OnTrh5OTEhg0bsLGxeaJANRXl49DDhw9HrVYTGRmJQqHAwMAAQ0NDrd8GBgYYGRlVO/YrMzOTqVOnoqury7x58wgKCnpiKCA5OZmIiAiUSuVTvV/nzp0DqLQ0Txxp11C2o0ZGRlJXa2MYMpXH2Ni4SYRa/A55eXlx6NAhioqK6q2hqiqatVCLGBgYMHfuXIqKiti0aRPBwcEEBwczcOBAlEpltV+Gfv36sXr1amk4afnE3sKFC/nmm29IT08nMjKS4uJirdikqakpCoUCQ0NDOnfuzL59+/Dy8sLc3JySkhIyMjK4dOmS5Ko1adKkJyaCyjNs2DDWrFmDWq0mLy+P6dOnk5OTwxdffMGaNWswNTVFrVbz1VdfMXPmTBQKBWvXrmXOnDmMHTuWbdu2YWxsjKGhIUqlUnJlKy4uJi4ujmPHjmntI5QmY5RKJQ4ODk8VV1QoFNK2vvnmG3bv3s3rr7+Ovb09Q4cOZceOHbz88suYmJjU+rkbirS0NO7du0dYWFiFOPTDhw8JDQ2ld+/eFBYWUlBQIJ2cRRHy9vaudGCtWHK3du1aoNRKtCZXMkVFRaxbtw4DAwMGDRr0VK+pupKwGzduVOv9UVfKht6ysrKqtNZtKLp27droK3n4Xxz+zp07QOkV0YgRIxp0m38IoRZp0aIFs2fPpri4mK1btxIaGkpoaCj+/v5acceymJqa0qNHDyIjI/Hw8KhwMImjoBITE5k5cyavvvoq7777rpbY/u1vf2P16tUMGDCAtm3bEhISQmJiIjY2Ntja2jJ06FDatGnDli1b+Pnnn4HS5M3EiRNrJFQGBgaMGTOGH3/8UarhNjMzQ6VScfXqVX766SeSk5MpLi5m165d5Ofn8/bbb7Nq1Spef/115s2bx9KlS7Gzs9N6Xn19ffr06SO1q6vVai5evEh4eDgJCQlaRfv29vYolUo6depUa+F+7bXXeOmll6TKmFu3blFSUkJeXh7vv/9+vXYHPg1FRUWsWrWKR48e4ebmxvz58zEzMyMxMZErV64QHx8vNfoEBARIK8W4uDji4uJo3749np6elc4hTE5OZt26dTx48IB27drxz3/+s8bhpmXLlgFIvjNPQ0ZGRqWJwvoYEPAkyieyG6OGuiy+vr4cPXr0qZLMdUVfX5/Lly9jamrKyZMnZaGuDH19faZPn05JSQnbt28nIiKCiIgIfHx8GDp0aIUPrX///qxZs4YOHTpUedZ3dnYmICCAmJgYfv75ZwwNDXn33XfR09OTqjbWrFmDSqXC2tqa4uJiIiMjsbW15fDhw0ydOhWVSkVxcTEHDx7k7Nmz0gzGZ5999ollbE5OTgwZMqSCp4ObmxsTJ05kxYoVmJiYkJWVhampKbdu3aJ79+4sWLCAzz77jJUrVzJt2rRKxzOJ6Orq0rNnT8kqUhAEqZIkOTlZaw6clZUVSqWSbt261UhozczMeOGFFxg3bhwhISGsWrWK4OBg4uPjmTNnDv7+/tLrf/z4McbGxg3+5RIEgR07dnD06FHS09Oxs7PDzc1Nqsgoi729PcnJyURFRXH37l3u3btHjx49eOmllyqt2lGr1axZs4b09HTUajWWlpa4uLjUOGexfft2gDoZRVVnxCRO6m7IK5qmFmrxOE5JSWn0MJu3tzeRkZGMHz+ejRs3UlJSUm1YrK78IYVaRE9PjxdffBG1Ws3OnTuJiooiKioKLy8vnnnmGUkIRMeyY8eOSTaJlTFhwgQUCgVTp05l3bp1LF26lAkTJtCtWzemTZvGjz/+SE5ODp07d2bevHkkJycTFhbGyJEj2bRpE2+88QatWrUiKCiIoKAgkpOT2bhxI/v372f//v1YW1vzwgsvVFna5+fnV+ntrq6uDBw4ECsrKy5fvszly5eJi4vju+++Y8SIEcTHxxMZGcnOnTtJSkqq8SpKoVDg7u4uJdEEQeD27duEh4eTmJjIr7/+KnlEmJqaolQq8fDwqPaANDIy4plnnmHo0KFERUVJQhkSEkLPnj3p168f33//Pe7u7gQFBdXL5bIgCDx48ID4+HiuXLnCgwcPePDggdTebG9vT48ePaQQ1rhx4+jUqVMFoTl58iTx8fF4enoyefLkKl/nxYsXpaHLkyZNkq6ipk+fXqP9FVfxY8aMqbLtuyaIbpGVGYSlpaXV60ScyihfM92YzS6AdOUSHR1dq7mT9YE45Uaspw8PD3/q8FVNaJbleU+LRqPh119/5eLFi0Bpp9bo0aPR0dEhOzub//znP7i5uVWaBS8sLOTSpUuSraSOjg7m5uY8fPgQfX19/v73v/PJJ59gYmLCe++9B5Rm1cVSNB8fHwwMDCotr9JoNBw9elTL2H3QoEFaq8wnUVBQwMaNG3F1daVVq1bSRPGOHTsyZcoUlixZwt27d7Gzs6Nly5ZPbD+uKSkpKURERFTwdNDX10epVNKnT58niq1arWbPnj2Sg9vgwYPJyckhMTGRSZMmVbpirYySkhJu3rwpCXJlZluPHz/m/PnzWFlZ4erqyj/+8Q+t/QsLC2PAgAE12l55CgoKWL58OYBU0REREUFoaCivvfZajaZ65+bm8q9//QsHBwdmzpz5VPshsn37duLj4yuUxImTZT788MNKa8Hri+joaMnDRvX/g5cbe1U9YMAAvLy8pEHBjYlKpWLSpEns2bNHmhxUF/5w5XlPi46ODhMmTGDcuHHs27ePs2fPcvbsWbp168a4cePo1atXldnZK1euEBwcTGBgIN26deOnn35i7NixFBUVsX79ej755BO6du3KpUuXpOGxLVu2ZOfOnUycOJH79+/TunVrli1bxqJFi7REUqzDDgwMJD09nc2bNxMSEkJISAjGxsZMmzatgr91eQwNDXnppZfYsGEDHh4eDBgwAA8PD06cOMGSJUsYNmwYhw4dIjs7G4VCweLFi5+qJrc8dnZ2TJo0Sfo7IyOD48ePExcXx9GjR7WmhPv5+eHj41PhcltXV5fx48fTs2dPtm7dio+PD3p6epw7d46NGzcyfPhwrSkojx8/5urVq8THx1dwZyu/b507d8bd3R1TU1OpYUX0h66v0kRAqhMWBIHBgwdjZmZGWFgYmzdvplOnTsTExFBUVERRURFdunSpNJ4tCIIkKOKw1LoQHx9faSegOCCgIUUa/hf6ENvIa3Kiqm/atm1bpTtmY3D69GnGjx/PTz/9hEajabB8zJ9KqEV0dHQICgpizJgxHDx4kJiYGC5evFjlahpKM8jh4eFYW1tjbm6OgYGB5M61aNEiNmzYwKVLlwgLC8PW1pZXX30VKD04X3vtNdasWYO1tTVpaWksW7aMDz/8sNLtWFlZ8dZbbyEIAlFRURw+fFiau9a3b1+GDh1a5XBQExMTpk6dyvr161Gr1VhbW7Nw4UI2bNjAoUOHyM3NRU9PDxcXF2JjY5k7dy6fffZZvQqWpaUlY8aMkcIrOTk5REZGEh0dzfHjx7Umhnt5eeHn5yeFerKzs9HT0+OHH36gXbt2mJiYYGNjwyeffCLtd2UHupubG507d8bV1bWCMAmCwL59+4iLiwPqrx5a5OHDh1LHoIeHB3379mXt2rV0796dnTt3oquri5+fH/fu3ePKlSu0adOmyjbqVatWAUje4/VB+fi0IAgUFRUxZMiQenn+6hCFWkxcNuRQ26qws7MjPT29SRKKpqamJCYmSoZtUVFR9eb3XZ4/pVCLKBQKRo0axTPPPMOhQ4eIjo7m448/pmPHjjz//PNaMUh9fX1GjRrF3r17cXR0xNDQULIWVSgUzJw5k+TkZG7dusX27dvx8vKSuiUnTJjApUuXOHfuHM7Ozty4cYNt27ZV66+gUCjw9fXF19eXnJwctm/fzsmTJ6W5gDNmzKh0np+ZmZkk1omJifTq1YtZs2aRlZXFv//9b1JSUti6dSve3t5cunSJjz/+mLlz5zZYmZaZmRnDhw+X2u/z8/M5efIkx44dIyYmhlOnTpGVlUV6ejp6enpYWVmRnp7OqVOnyMnJ4dGjRxQWFqKvr0/r1q2ZN28eHTt2rNGX/vz581IM3cfHp149UARBYOfOnZKfw9tvv41arebo0aOo1WrS09Pp1KkTL774ItHR0WRkZDB27Fi6d+9e6ckmMjJSqrOuj7Z/sZmld+/eWreLA4Br4uxXV8TX0RQlciKmpqYkJSVx8+ZNLQ+fxsDLy4vQ0FDp7+DgYFmo64JCoWD48OEMGzaMo0ePcvz4cZYuXYqjoyMvvPCCdIno7OyMo6MjoaGh0oq6LPb29qxfv55x48axcuVKunTpIoUX5syZw9q1a7G3t+fMmTPs2rULBweHGn1wZmZm0riss2fPsmfPHmkIardu3Rg9erRWCKN169ZMnTpVa/K5hYUFCxcuZNGiRdy9e5fi4mJGjx7NuXPn+OmnnwgICKjQzFOf5OXlce3aNeLj44mPj5duFwSBx48fk5qaSklJCZmZmVhZWWFtbc3AgQMJCAjAwsKCu3fv8vDhQ2n6OJSGQCqrWkhNTZWGvVpbW/PKK6/Ua8Y9KSlJumpp27YtqampWpN+Hj16REhICF27dmXv3r0olUo8PT2rPLmkpqZy+PBhvLy86k1MRPfC8snx3bt3A/U3IKA6RKFuimaXsuTl5XH69OlGF2pPT09CQ0MpLi5m/Pjx7Nq1q8FW9n8JoRZRKBQMGTKEwYMHc+zYMcLCwvjkk0+wt7dn6tSptGjRgmHDhrF69WrMzc21hFBER0eH6dOnExERgSAILFq0iAkTJtC7d29sbW1JTk7m5Zdf5vPPP0elUrF69eoau+1BaQK0V69e5OfnS4lRMTla9rK+qgScm5sbjo6OGBsbc/nyZW7fvo2HhwfHjh0jISGB2bNnP8U7V4ogCGRkZEhVC9UZtru6uuLu7o6bm5uW2KrVas6dO0d4eDg3btzQmgTv4OCAtbU1Li4u3L59m40bN0plkx06dKCwsJBVq1ZJq0mxyqa+KCkpYeHChcTGxlJYWIifn5/keBcQEICvry8tWrTg7bffJjMzk4CAAPr06VNtHkCtVksnlfr0QKls4rho49tYFRBiiKcpV9RQWgjQFOPiRF+dixcv0qtXL3bt2kVMTEyDVNs0K6EWxyoNHz68Qe0SFQoFAwYMYMCAARw/fpwjR46wbNkybG1tmTFjBnZ2dvzyyy+0bt260jc9MDBQGq567do1tmzZwv79+1mwYAErVqzg+PHjLF++nFdffZU5c+awc+fOWidaDA0NMTU1lVzpLly4wL/+9S+MjY3p0qULL730UoXVpo6ODi+88ALHjx/n5MmTPP/885IlqY2NDUVFRahUKv75z3/WOJ5YXFzMv//9b6kRpyzGxsa4u7vTuXNnnJycarSq1dXVxdPTU/IC0Wg0xMfHEx4eTlJSElu2bJEe27dvX2xtbdmzZw+6urpcv34dCwsLpkyZorXyrgsPHjzgyJEjHD9+XPqyd+vWjYCAAAYNGlRhBmBwcDDm5ubs37+/Rsm6jz/+GNCeIF4fqNXqCjXzYn6g7PDchkRczTdFG7dIq1atGr0ssDwxMTF4eHhIfuINIdTNqjwvISGBzZs3S3/7+voyaNCgBi0kFxFLjaA0/nf9+nWsra0lr+D27dujVCqxsrLi66+/xtbWlv79+5OQkICurq50KdqlSxcuX77MzJkzMTc3l5Juu3fvrvXqLzg4WGvlpFaruX79utYKxs3NDVtbW+lyy8jISDopnDt3jh49enD58mV0dXVRKBTcuHGDbt268d5779VoVFVJSQlHjhzBwMCAzp07Y2Nj06BJG0EQSExMZPPmzUyfPh1HR0fUajUnT55k3759uLm5ERAQgJOT01PtR0hICMXFxURFRQGlJ6ITJ05gYmKCj48P77//frUnsYyMDHR1dWtkc7t//37OnDnD3/72txqXINaUe/fuYW1trfXdUKlUGBoa1miOY31x9+5d1q5dS+vWrZk/f36jbVdk69atXL16lblz5zaJYH/99dekp6ejUqnIz8/n8ePHT+2tUl15XrMSapH79+/z888/S4YvUDqXzMvLq8EzuzExMRw4cABBEDA3N2fAgAGcPn1aisNpNBrOnTuHo6Mjs2fPJi8vjwcPHvDss8/y888/S6tDHx8fli5dSmFhoZRo27FjR719Ya9du8Z3331HTk4OeXl56Orq0rFjR60pNkVFRVy5coWHDx9iZ2eHoaEhN27cICkpCSsrK/z9/TEwMEAQBPz9/WnTpg3W1tZS5UJjZ9HL7vfKlSuxsLBAV1dX+hGnpKjVajw9PRk9evQTn0uj0RAXF0dwcDAFBQW4ublx9epVdHR0aN26Nampqejo6PDKK6/U6xc9MTGRTZs2MXTo0EZJ7BUVFbFs2bIqk9ANiUqlomvXrkycOLFRtwulY+yioqIazV61PCdPnuS///1vvWz/DyfUZbl27ZpWazPACy+8UKu479MgJvWgtCxu7ty5mJiYcPPmTQ4fPszu3bvp2LEjLVq04MaNG5JBlJ2dHWvWrJEsUxctWiQ1xojDAOpz3ytrphk8eDB+fn4oFAo0Gg3h4eHExcURFBTE/fv32bJlC2FhYeTn59O2bVvMzc2xs7OrdrK6iImJiSTmZX8bGRnVq7Dn5ORQWFiIWq2u8KPRaDA1Na1SWG/fvk1wcLDUuSfSu3dvTExM6NWrl9RGXlPBrw35+fmsWLGiUVeZ4uq9KQRLpVIxePBg/P39G33bsbGx7Nu3r8mEWmyCWrBgQZ2ref7QQi0iCAKnT5/WmlPWqlUrnn/++Sc2i9SFspaYBgYGzJs3T5rIsmXLFgYOHMi//vUv3N3dJaESBIHo6GhSU1MZOHAgS5cuJScnhzlz5qCvr897771XqX9wXUlLS2Pz5s2SCb6JiQnTpk2jTZs2FYrxY2JiePfdd+nSpQsODg4ATJs2jbZt22pVaqSlpUm/09LSajWNHaBly5ZVCnt9kZ6ezokTJ6RaapEOHTowZMgQqc1XEAT27NkjWYO+88479T5oQRAEFi9eDFCh8akhUalU2NjYMHfu3EbZXvltN8biqTLECp2mEmooff1P45Vfnj+FUJelpKSEo0ePSnFGKC2tGzt2bINNOLl8+bJkdKOrq8v8+fNJSkoiJCSEwsJCZsyYgbW1Nenp6URERHDu3DmCg4O5e/cujo6O2NvbExAQwJEjRzAxMWH06NEEBQU1yL6WbaYR6devH4GBgVL89b///S/Xr1/H0dGRM2fOkJqaip6eHp9//nmtuxnFiczlhT01NbVCieOTMDU1rVTYy5ahFRcXc+rUKYKDg8nIyODixYuYmZnRvn17nnvuOfz8/CqUp4lTftzc3HBycqrzl6oq1q9fT1JSUoOcBKri0aNHfP7558ybN6/BvKerQjwxvfvuuzXKedQ3eXl5rFy5slFPiuVRqVRYWlpKA0ielj+dUJclLy+Pffv2adXu9u7dm2HDhjWImffVq1elFl2A7t27c+HChUoH8ubm5rJ06VIiIyNJSkrC2tqajh07cu3aNan6YcWKFZibm9f7fopkZ2ezfft2rVrXmTNn0r59e65du0ZoaCgKhYLi4mKpamD58uUNMmNPRBAEcnJypFV6WWEXh7GWf3xGRgaJiYkV2oUdHBwYNmwY3t7eUsu5WI3i5uaGjY0NX3/9NVlZWejr6+Pr69tg9eRxcXHs3bv3qTzJ68LmzZtJSEhoklWl6JveVEIpniga88RYnnXr1pGcnCx7fVSHsbExzz//PFCakd+5cydnzpyRJkwPGTIEX1/femsAcHNzQ6VSSRUq58+f59KlSwwePLjCY0W3vnfeeQdjY2O+//57nJ2dUavVJCUlceHCBcaMGUNAQAAKhYIePXrg7+9fr54J5ubmvPLKK8D/4u7r168HSk8yM2bMICEhgdDQUHx9fdm9ezcrVqzAxsaGv//97w1SJqlQKDA3N8fc3LxS5zcoDeMcPXpUOgG3bNkSFxcXrKyscHR0pKioiNTUVIqLizE1NcXV1RVnZ2d8fHy4ePEiMTEx7Nixg8TERPr06cPUqVNxdXUlLCys3l8PlLaa7927l86dOzeqSENptVRDDgioDrECqalWs+J209PTm0yovb29K+RD6ps/vFCXxdLSUvLguHXrFtu2bePIkSMcOXIEgIkTJ1ZqlvM0uLi4oFKppMG4okFR2VKsrKwsunTpwqhRoygsLCQmJgY3Nzf09fVJTU3Fw8MDQ0NDkpOTcXR05Pz581ILMJSeFJ52RFNllG2m2bVrFxcuXJAc7SZNmkRxcTEKhYI7d+5QXFzMypUr6dq1KxMmTODGjRvcuXOHAQMGNEjXW0FBQQWvECj9TAMDA3Fzc6tUDH799Vdu3rzJF198wePHjzE3N8fY2JjY2FiMjIzw8/Pjww8/bFAfirITxMsaWDUGYkNOY8ztq4ymbnYRSUtLq9P80rrQtWtXdu/eTU5ODmZmZg2yjT+VUJfF0dGR999/H0EQOH/+PLt372bnzp3s3LkTY2NjJk+eLCWZ6rodlUrFnTt3+OGHH6QutFdeeYVJkyaxY8cOduzYwcSJE7G3t8fNzY2BAwciCALHjh3D3t4eFxcX1Gq1NHlE7Ny7evUqV69elbbVoUMHlEolzs7OdVrBGBkZ8eKLLwL/q6opO5lm5syZuLu7S45x4giv9u3bk56ezvjx4+ssfBqNhvPnzxMcHFyhmWbIkCH07du3Rg0loiNhq1atMDMzIzQ0lIiICNzc3BrNdnPFihUAfPDBBw2+rfI0xoCA6mguQp2ent5k2xZr2WNjY5/aQvdJ/OFj1LVBLFUre/nbrl07JkyYUG+tyGIDgMjMmTM5efIk+fn5uLq6cufOHane9Ndff5XKxEQ/62nTpmmtDDQaDVeuXCE8PJwHDx5obcvW1halUknnzp3rfOlZXFzMgQMHpIoIKF2lde3alWXLlklGVrt27aK4uJhJkybV2kYzOTmZI0eOcOvWLa3be/XqxcCBA+sUq8/IyJDc6by8vKps166LH3VlhISEEB4ezuzZs2tU3ljfqFQq+vTpw8iRIxt92wBfffUVDx8+bPKqC2dnZ8nFrqn2oaxX/dPwp04mPi2FhYX89ttvWsLUrVs3Ro0aVe0UmJpy//59vv32W6A04dG+fXsKCgrIzs7m73//uyRy169fZ86cObRq1Qo7OztMTU0ZP358lW2ogiCQkJAgtVyXxcLCgoCAAHr06FGnFe+dO3fYsGEDGo2GrKwsEhISePPNN/H29qZly5bs2bOH7OxspkyZUu3QgEePHkkuemWxt7dnyJAh9ZKwFASBbdu2Sb7VVSWVrl27xt69e3F2dpbsVW1sbLC2tn5q32bxpOzv719pjqKhEZtqGnpAQHWoVCpatGjRJFcTZffB1NSUd955p8n2YcuWLdy4caNOJyxZqJ9AdnY2v/76K7dv35Zu8/f3Z8CAAXW+xBed3gRB4MaNG9L06y5dukiPuXTpEsuXLyc1NZW7d+/i4eHB5MmTa7xKunPnDhERERVM9o2MjFAqlfTu3fupKmDUajWHDx/mwIEDpKenk5GRgaenJ6NGjeLmzZsUFRXx4osvSjXRJSUlxMTEEBwcjFqtlp7H0NCQwMBAevXqVa+xYjE/ADBy5Ej69OmDRqOhoKCA/Px88vLypN9xcXHo6+tjbW1Ny5YtpXFdGRkZWFhYYGNjw5AhQ2p8ZSV2AjalSH3yyScUFxc3+Wq2PqbV1IVly5ZJPjZNRXx8PNu3b5eFurFISUlh+/btUtMI1Gw47ZNIT09n1apVJCUlYWFhwbx583BxcQH+J+aFhYXk5eURFRWFi4sLgwYNYs6cObXeVmpqKhEREVKiUERHRwelUknfvn1r3XCSmprKjz/+yJ07d0hPT5cmerds2RJLS0syMjK0Hu/j44O/vz/Gxsao1Wry8/O1xLO8kFZ2W1mxL4tGo+HkyZMUFhaiq6uLr69vjU4A+vr69O/fH09PT27dusXNmzdJSEhAEAScnJwYNGhQjTw8AOkLuXDhwiaZsi6WpQUGBjaYB3JNaOrQC8D3339PSkpKkwq1RqNhyZIldapll4X6Kbly5YqUZIPSRpcXXnihTr63ZSeGAEyePJlbt25x9epVZs+ejbGxMR999BHx8fGkp6fTr18/Pv300zqdJLKysjhx4gSnT58GSr/kGo2GkpISevToIZndP0lI8/LyyM3NJSYmhsTERKmlW7QmdXFxoaCggNzcXBwcHOosYPr6+hgbG2NkZCT9TklJITY2Fj09PcaMGYO7u7t0n5GREYaGhpVu98qVK/z222+0b9+eW7du4ejoiJOTE05OTlhaWtbq/d2xYweXL1+ud5vV2iCWWjbViUJEpVIxZsyYCk5+jcmvv/7K+fPnm1SoofS96Nevn+TtU1v+MHXUxcXFFBcXN6jFaU149OgRarUad3d3VCqV1BJ+6NAhNm3aBJSO1Jo0aVKta55btWqFSqUiOzubVatWsW3bNjQaDQ4ODnz77beMHTuWefPm8cMPP3D79m0OHz5MTEwMb7zxBiUlJZWuQmtLcXExycnJJCUlaXV3QmmC0sHBQeszSEpKIjExESg9WRkYGNC3b186d+5MSkoKeXl56Ovrk52djb6+Pl27dqW4uJigoCCcnZ0xMDCoc7KzsLCQTz/9FCgdaDp9+vRaPaeLiwsDBw4kMzOTiRMnPvX+xMfHc/nyZUaPHt1kIg1IPjRNKdIijT3QtjxNMauxKmJjY59aqKujWQl1dHS01rDUvn370r9//warTayK/fv3VzpU1cLCAnt7e+7du8edO3f4+uuvUSgUdOrUiTFjxtSqhdbc3JyPPvqIR48e8c0335CcnExmZibffPMNw4cPx9HRkeTkZLp06cLx48d5/fXXCQoKqvTSXFxNll1Zll+Jlr9PX19fEqvCwkJOnTpFeHi4NKhUxMXFhUePHjFgwAAGDhyIj49PhXi3IAicPXuWvXv3AvDuu+9y4cIFDh48iLe3N/7+/nWOTWdmZmJkZMT06dOfytulRYsWeHp6EhYWVqeTRklJCb6+vpKfdlMhlmk2NW5ubk0ulF27dtUKVTYVU6ZM0XL8rE+aXejj8ePHREVFVWh8gNIyLn9//wpm7g2BIAhkZmZy+/Ztbt26xa1btyocDEVFRVy9elWKzxoYGODt7c3o0aPp2LEjrVq1qrEo5Obm8u2335KZmUl8fDz29vY4ODjwxhtvkJ+fLzm8vfjii8yePZvMzEzMzc0bpJGjpKSEuLg4wsPDefTokdZ9zs7OKJVKOnToUOG1ffPNN3To0IFu3bphZWWFRqNh3759PH78mLFjx9a7J/PTUN/leTIy9cUfOkZdWFjI6dOnCQ8Pr+AD4e7uLlmLNjaCIPDw4UNJyC9evEhUVJSWF4WLiwv29vaSoJmZmeHo6Cj9VCbkeXl5fPfdd1y6dImEhASmT5/OtGnTEASB1157jcuXL2NpaUnHjh0ZMmQIgYGBDf5aNRoNly5d4tixYxUaC9q1a4dSqcTV1ZVLly6RmJhIeno6aWlpCIKAlZUVaWlplJSUMHToUPr27dvg+1sdslDLNFf+0EJdnupWe05OTiiVShwdHZvMewBKvRd++ukncnNzyc7OJisrCycnp2prjqHUOU4UcRsbGzZv3iwNBRBtFD/88ENOnDiBp6cnGRkZLF68uEENlCpDEASuX79OeHh4BY8DS0tLlEol3bt3p6CgQBJt0YuhMUz0q0MWapnmyp9KqMsjrvbCw8NJS0vTuq9t27YEBARU6RPR0AiCQFxcHPv27ZNuMzU1ZfLkybRt25bs7Gyt0Epl8a2SkhLOnj1Lbm4uarUafX193n77bRQKhWRVunbtWslTuikQBIGkpCTCw8NJSEjQuq9ly5YolUo8PDy0mjLEkJGXl1eDuBxWhSzUMs2VP7VQl6e61V7r1q2l1V5DmvRUhlqtJiwsjIiICOk2BwcHxo8fX2XrdFkhv3HjBiEhISQnJ5OTk4OzszMeHh78/vvvaDQaOnfuTJ8+fXBycqJDhw44OjpibW3dZFcW9+/fJyIiQvIJEdHT00OpVBIbG0vr1q158OABPj4+eHt7P/GKoz6QhVqmufKXEurKEFd7N27c0LrdxMQEpVKJp6dno7bgFhQUcPDgQa2GlJ49ezJy5MgnilVxcTEbNmzg2LFjpKSk0KtXL27cuEFWVha6urp4eXlVWX1ibGyMo6OjJORt2rRpNCHPzMzk+PHjxMbGSrctWrSItLQ0IiIiSExMpG/fvvTp06deWvirQhZqmebKX16oy1PVak9XV1fq3GtIsSjLw4cP2bVrl9bqf8CAASiVymprZEtKSli/fj1HjhwhNTUVBwcHaYCtq6srkydPJjc3l3PnzpGZmUlSUtITHcaMjIwkERfj5A0h5NHR0Vy+fBmlUikNrn348CEnTpwgJyeHfv360a9fvwb5DGShlmmuyEL9BDIzMzlx4oQ0bKAsvr6++Pr6NsqYoTt37rB9+3Yt28+xY8fSo0ePKgVTrVazbt06Dh8+TPv27XFwcCA7OxuFQsGgQYMIDQ2lR48eBAUFVXiO3NxcrRh5+Rh/eQwMDLSqVmxsbJ6q4eLmzZtER0dXOrhW/Jk4cWK9TgUXkYVaprkiC3UtefToEVFRUURGRla4z9PTE39//wbvSrt06RI7d+6U/m7RogVTpkypssJDo9Gwe/duLly4QElJCdevX8fd3Z3p06cTGhqKra0tI0aMqNUK+fHjx1pCLprUV0WLFi20hNzW1rZZdM6VRRZqmeaKLNR1pKCgQOrcKykp0bqva9euKJXKBpuErtFoiIyMlKbUANjY2DBx4sRKzV/EJpO1a9dibW3NM888wzPPPMPmzZvp1KkTgwYNqrd9y8vL0xLy8n7Z5dHX19cS8rZt2z5RyBMTE8nJyaFz5871kmyUhVqmuSILdT1TXFxMbGws4eHhFaaTuLi4EBAQ0CDlckVFRRw6dEgrROPu7s7o0aMr+KMcOXKErVu38vDhQ2xtbfHy8iIvLw8vL69Gq2XOz8+XhPz27dtaA3YrQ09Pr4KQr1u3Dj09PVJTU+nYsSM9evSgY8eOT121Iwu1THNFFuoGRq1Wc/HiRY4dO0ZmZqbWffb29iiVSjp16lSviblHjx6xZ88erbplHx8fBg8eLI0GKikp4erVq2zevJmYmBhMTU1RKBQsWLCgyTsEoVTIk5KSJCFPSUmp9HH/+Mc/0Gg0XL58mfPnz5Oenk6XLl3o3r07Dg4OtXpfZaGWaa7IQt3ICILA1atXCQ8PryA+1tbWKJVKunbtWm/x2/v377Njxw6tk8SIESPo06ePJGI5OTls3LiR33//nby8PMaPH8+rr74qlSVmZWVhbm7epB2d5UlLS+Obb75hxowZPH78mNzcXHJzc0lJSZFKLX18fBg2bFiNn1MWapnmiizUTYwgCNy6dUuqFy6Lqamp1LknroTrwvXr1/npp58o+7lOmTIFV1dXoDSGvXfvXs6ePYtCoaBdu3YMHjyYzZs34+7uTlBQUKM0ntSE3Nxctm7dip6eHi1btsTExISWLVtq/bt169a1GuwqC7VMc0UW6mZISkoKERERXLlyRev2Fi1aoFQq69ypJwgCMTExHDx4ULrNwsKC559/XvIPPnHiBMHBwQCMHj2a5ORkkpOTmTx5cpN6LTckslDLNFdkof4DkJGRQUREBGfPnq1wn5+fHz4+PrVaOZalpKSE0NBQTpw4Id3m5OTE2LFjuXbtGlFRUcybNw9AciocP3681jT0PwuyUMs0V2Sh/gOSk5NDZGQk0dHRFe7z9vamf//+NZ7vV5a8vDwOHDjA5cuXAUhOTqaoqAgvLy9cXFzo0KEDgiBw6NAhaWXfnOLWdUUWapnmiizUfwLy8vI4efIk4eHhlP/MevTogb+/f60nbWRkZPDLL7+QkpLCo0ePyM7Oxt7eHiMjIzQaDUVFRfTu3ZtRo0b9acRaFmqZ5oos1H9CioqKOHPmDOHh4RXmJrq6uqJUKrG3t6/x892+fZtt27ZRUFCAIAg8fvwYT09P2rdvj7+/v/S4vLw8jIyM/rDCLQu1THNFFuq/AGq1mnPnzhEeHk5WVpbWfR06dJBm7D1JYAVB4MKFC/z666/SbUZGRkyePBlDQ0NWr16Nq6srzzzzTJX2rM0ZWahlmiuyUP8F0Wg0xMfHEx4ezv3797Xus7GxQalU0qVLl2qFW6PREBERQWhoqHRbv379MDY2Jjo6GqVSSZ8+fZqdn0d1yEIt01yRhVoGQRBITEwkPDyc27dva91nYWGBUqmkZ8+eVbZmZ2dn8+WXX/Lmm29iYWFBeno6Bw4coKioiNGjR0slf80dWahlmiuyUMtUSnJyMhEREVy9elXrdkNDQwICAujdu7c0Jis5OZn169djbW2NhYWF9HPz5k1u3LiBj48PAwYMaNQBDE+DLNQyzRVZqGVqRGpqKsePH+f8+fNatysUCmnFXVhYSFZWVqU/I0eOpGfPnk209zVDFmqZ5oos1DJPRVZWFpGRkZw6darCff369cPX1xczMzMAqWRQjHmr1epGn0tZE2ShlmmuyEItUy88fvyY6OhorQG9Ir169cLf3x9LS0syMzNZs2aNZPnaEJNanhZZqGWaK9UJdd1dgGT+MpiYmDB48GAGDx4MQGFhITExMRw7doyzZ89qtb937NgRR0dHfvrpJ9q2bUtAQADt2rVroj2XkfljIwu1zFNjYGBA//796d+/P1DqKXL27FkOHDhAp06d6Nu3L15eXsTGxvLzzz9jY2NDQEBArRpxZGRkZKGWqUf09PTo3bs3R48e5cKFC1y7dg0dHR10dXWxs7MjISGB69ev06NHD8aNG9fUuysj84dBFmqZekWhUDBr1ixyc3MrTBbv3LkzarW6USa6y8j8mZCFWqbesbKyqnTwroyMzNPxx+n9lZGRkfmLIgu1jIyMTDNHFmoZGRmZZo4s1DIyMjLNHFmoZWRkZJo5slDLyMjINHNkoZaRkZFp5shCLSMjI9PMaRD3PIVCkQbcfuIDZWQaHysgval3QkamEjoIgmBd2R0NItQyMs0VhUIRU5WVpIxMc0UOfcjIyMg0c2ShlpGRkWnmyEIt81fj+6beARmZ2iLHqGVkZGSaOfKKWkZGRqaZIwu1jIyMTDNHFmqZvwQKhWK4QqG4qlAobigUin809f7IyNQGOUYt86dHoVDoAteAQCAZOA1MFgThcpPumIxMDZFX1DJ/BfoANwRBSBQEoQjYDoxp4n2SkakxslDL/BVoB9wp83fy/98mI/OHQBZqmb8Cikpuk2N+Mn8YZKGW+SuQDLQv87c9kNJE+yIjU2tkoZb5K3Aa6KRQKJwUCkUL4HlgXxPvk4xMjdFr6h2QkWloBEEoUSgU84BDgC6wXhCES028WzIyNUYuz5ORkZFp5sihDxkZGZlmjizUMjIyMs0cWahlZGRkmjmyUMvIyMg0c2ShlpGRkWnmyEItIyMj08yRhVpGRkammfN/DdKEV1k6PCAAAAAASUVORK5CYII=\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_1_0.png" + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_3_0.png" }, "needs_background": "light" }, @@ -29,38 +56,99 @@ } ], "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", + "def draw_arrow(x, y, xp, yp, ax):\n", + " \"\"\"\n", + " Draw an arrow from (x, y) to (xp, yp).\n", + " \"\"\"\n", + " v1, v2 = xp - x, yp - y\n", + " eps = 1.0\n", + " nrm = np.sqrt(v1**2 + v2**2)\n", + " scale = 1.0\n", + " ax.arrow(x, y, scale * v1, scale * v2,\n", + " antialiased=True, \n", + " alpha=0.5,\n", + " head_length=0.025*(xmax - xmin), \n", + " head_width=0.012*(xmax - xmin),\n", + " fill=False)\n", "\n", "xmin, xmax = -10.0, 10.0\n", "ymin, ymax = -5.0, 5.0\n", "\n", - "\n", "A1 = np.asarray([[0.55, -0.6],\n", " [0.5, 0.4]])\n", "\n", "def f(x, y): \n", " return A1 @ (x, y)\n", "\n", - "def draw_arrow(x, y, ax):\n", - " eps = 1.0\n", - " v1, v2 = f(x, y)\n", - " nrm = np.sqrt(v1**2 + v2**2)\n", - " scale = eps / nrm\n", - " ax.arrow(x, y, scale * v1, scale * v2,\n", - " antialiased=True, \n", - " alpha=0.4,\n", - " head_length=0.025*(xmax - xmin), \n", - " head_width=0.012*(xmax - xmin),\n", - " fill=False)\n", + "xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10)\n", + "ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "#ax.set_xlim(xmin, xmax)\n", + "#ax.set_ylim(ymin, ymax)\n", + "\n", + "ax.set_xticks((0,))\n", + "ax.set_yticks((0,))\n", + "ax.grid()\n", + "\n", + "for x in xgrid:\n", + " for y in ygrid:\n", + " xp, yp = f(x, y)\n", + " draw_arrow(x, y, xp, yp, ax)\n", + "\n", + "#plt.savefig(\"sdsdiagram.pdf\") # Uncomment to save figure\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "41487816", + "metadata": {}, + "source": [ + "And here's the code that generated figure 4.2." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ab7e131d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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oU+fPpVe9/T0xNPTk8LCQjZt2sSFCxe4cOECAKNGjRK+xNWguLiYnTt3Sp8bgJ+fH8bGxgwfPlzad+DAAUJDQ2nXrh1DhgyRviRVqZY1TUJCglRyLpPJpHxrQd1FZZGsToRQa4guXbqgUCj4999/0dHR4ZlnnrnnGGNjY6myUbXIpHpM9vDw4IUXXqjStrWholQqOXbsGP/++6+0r1mzZgwZMkSaTjh06JD02rp167h06RI9e/YkMDCQ8PBw9u7dS+vWrSuJeU2QmJgoPSEBvPPOO0+cay3QDtq2bcuWLVvIzc1VWwceIdQapGvXrigUCvbt24eOjg69evW677EeHh4EBwdTXFzM1q1buXTpkmSr+fLLL+Ph4VFbYWsd8fHx/PXXX5IFrYGBASNHjqRZs2b3Pefnn38mKyuLwYMH4+XlxY4dO4iIiKBr16707t27xmK7fv06S5culbanTJnyyMZMAu1GtX5x5swZevTooZ57qOWqgmrTvXt3FAoFBw4cQEdHh549ez7weENDQ1566SXgfwtRa9euBcDNzY0hQ4aoNTtBW8jOzmb9+vUkJydL+/r370/Hjh3vO6eclJREaWkpX3zxBbq6utJi7bJly7h27Rr9+vWjc+fONRLfjRs3Klnevv3225KHsaB+curUKSHU9Rm5XC5ZqOro6BAYGFit89zc3AgODqa0tJTt27dz4cIFvvnmG6DCF9nT01OdYdc6paWl7N69m4iICGmfr68vffv2xcDA4KHnL1myBEdHR8LDw+nVqxfHjh1j9uzZ6Onp8corr9CxY8cnjjEpKYnFixdL25MnT8bW1vaJryvQbtzc3Lh69arari971LZA1aFjx47K06dP1/h16zuqha1evXoREBDwWNf471xos2bNGDZsGKampjUUZe2iVCo5ffo0f//9t7RtY2ND37590dfXJz8/n4KCAvLz86v8d0FBgXStY8eOMXr0aJ5//nkKCwsJDg4mPT0dFxcXzM3Nn2huOjk5uVKHn0mTJmFnZ/dkb15QZ1CtId2d+vmoyGSyCKVSWeVoQYyotYigoCAUCgX79+9HR0eHbt26PfI1XF1dCQ4OpqysjF27dnHmzBm+++47oCIlrX379jUcdWXKy8slgXyYiObn51NYWFjldXJycjh//nylEnsvLy+sra3JysqSikOqg6mpKSYmJnh6emJra8ul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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_5_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ "\n", - "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20)\n", - "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20)\n", + "def draw_trajectory(x, y, ax, n=10):\n", + " \"\"\"\n", + " Draw the trajectory of length n starting from (x, y).\n", + " \"\"\"\n", + " for i in range(n):\n", + " x_new, y_new = f(x, y)\n", + " draw_arrow(x, y, x_new, y_new, ax)\n", + " x, y = x_new, y_new\n", + " \n", + "xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3)\n", + "ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3)\n", "\n", "fig, ax = plt.subplots()\n", "\n", - "ax.set_xlim(xmin, xmax)\n", - "ax.set_ylim(ymin, ymax)\n", + "#ax.set_xlim(xmin, xmax)\n", + "#ax.set_ylim(ymin, ymax)\n", "\n", "ax.set_xticks((0,))\n", "ax.set_yticks((0,))\n", @@ -68,17 +156,1426 @@ "\n", "for x in xgrid:\n", " for y in ygrid:\n", - " draw_arrow(x, y, ax)\n", + " draw_trajectory(x, y, ax)\n", "\n", + "#plt.savefig(\"sdsstable.pdf\") # Uncomment to save figure\n", "plt.show()" ] }, + { + "cell_type": "markdown", + "id": "462efab8", + "metadata": {}, + "source": [ + "## Chaotic Dynamics\n", + "\n", + "Just for fun, here's a little class that allows us to simulate trajectories\n", + "from a specified dynamical system:" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, + "id": "ba3dd140", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "class DS:\n", + "\n", + " def __init__(self, h=None, x=None):\n", + " \"\"\"Parameters: h is a function and x is an \n", + " element of S representing the current state.\"\"\"\n", + " self.h, self.x = h, x\n", + "\n", + " def update(self):\n", + " \"Update the state of the system by applying h.\"\n", + " self.x = self.h(self.x)\n", + "\n", + " def trajectory(self, n):\n", + " \"\"\"Generate a trajectory of length n, starting \n", + " at the current state.\"\"\"\n", + " traj = []\n", + " for i in range(n):\n", + " traj.append(self.x)\n", + " self.update()\n", + " return traj" + ] + }, + { + "cell_type": "markdown", + "id": "fc200a36", + "metadata": {}, + "source": [ + "As in the textbook, let's plot a trajectory starting from 0.11." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bfedf943", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_9_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "q = DS(h=lambda x: 4 * x * (1 - x), x=0.11)\n", + "t = q.trajectory(200)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(t)\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "25f68db6", + "metadata": {}, + "source": [ + "Now let's generate a histograms from a long trajectory, to address exercise\n", + "4.16." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4396e4de", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAQiElEQVR4nO3df6zdd13H8eeLjV8Kyma7UdrVTlOUbnGAdSyiZjjjxgSLCTNFgYaUNMQhmJiwbn+4EFIy+YMQgwtpJqGoMBsBV4iCozjRsFE6Kdu6MVcZbjft1naiKJqRlrd/3C/JXXvvOd/2nnPvPZ/7fCTNOefz/XzPeX/S29f53s/38/02VYUkqS3PWuwCJEmjZ7hLUoMMd0lqkOEuSQ0y3CWpQecudgEAK1asqHXr1i12GZI0Ue69997jVbVytm1LItzXrVvH/v37F7sMSZooSf59rm1Oy0hSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIa1Cvck3w7yf1JDiTZ37Wdn+TOJI90j+fN6H9jkkNJHk5y9biKlyTN7kyuUH1NVR2f8Xo7sLeqbkmyvXt9Q5INwGbgEuAlwBeTvLSqTo6s6lPc/P4PMPXE8Vm3rXnxCt5703vG9dGStCTN5/YDm4Aru+e7gLuAG7r226vqaeDRJIeAy4G75/FZA009cZxLX//2Wbc98NnbxvWxkrRk9Z1zL+Dvk9ybZFvXdmFVHQHoHi/o2lcDj8/Yd6pre4Yk25LsT7L/2LFjZ1e9JGlWfY/cX11Vh5NcANyZ5JsD+maWttP+o9aq2gnsBNi4caP/kaukJg2aNobxTR33CveqOtw9Hk3yGaanWZ5MsqqqjiRZBRztuk8BF83YfQ1weIQ1S9LEGDRtDOObOh46LZPkR5O88IfPgV8HHgD2AFu6bluAO7rne4DNSZ6b5GJgPbBv1IVLkubW58j9QuAzSX7Y/xNV9fkkXwN2J9kKPAZcB1BVB5PsBh4ETgDXj3OljCTpdEPDvaq+BVw2S/tTwFVz7LMD2DHv6iRJZ8UrVCWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkN6h3uSc5J8vUkn+ten5/kziSPdI/nzeh7Y5JDSR5OcvU4Cpckze1MjtzfDTw04/V2YG9VrQf2dq9JsgHYDFwCXAPcmuSc0ZQrSeqjV7gnWQP8BnDbjOZNwK7u+S7gDTPab6+qp6vqUeAQcPlIqpUk9dL3yP1DwHuAH8xou7CqjgB0jxd07auBx2f0m+raniHJtiT7k+w/duzYmdYtSRpgaLgneR1wtKru7fmemaWtTmuo2llVG6tq48qVK3u+tSSpj3N79Hk18JtJrgWeB/xYkr8AnkyyqqqOJFkFHO36TwEXzdh/DXB4lEVLkgYbeuReVTdW1ZqqWsf0idIvVdWbgT3Alq7bFuCO7vkeYHOS5ya5GFgP7Bt55ZKkOfU5cp/LLcDuJFuBx4DrAKrqYJLdwIPACeD6qjo570olSb2dUbhX1V3AXd3zp4Cr5ui3A9gxz9okSWfJK1QlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDRoa7kmel2Rfkm8kOZjkvV37+UnuTPJI93jejH1uTHIoycNJrh7nACRJp+tz5P408KtVdRnwcuCaJFcA24G9VbUe2Nu9JskGYDNwCXANcGuSc8ZQuyRpDkPDvab9T/fy2d2fAjYBu7r2XcAbuuebgNur6umqehQ4BFw+yqIlSYP1mnNPck6SA8BR4M6q+ipwYVUdAegeL+i6rwYen7H7VNd26ntuS7I/yf5jx47NYwiSpFP1CveqOllVLwfWAJcnuXRA98z2FrO8586q2lhVG1euXNmrWElSP2e0Wqaq/hO4i+m59CeTrALoHo923aaAi2bstgY4PN9CJUn99VktszLJi7rnzwd+DfgmsAfY0nXbAtzRPd8DbE7y3CQXA+uBfSOuW5I0wLk9+qwCdnUrXp4F7K6qzyW5G9idZCvwGHAdQFUdTLIbeBA4AVxfVSfHU74kaTZDw72q7gNeMUv7U8BVc+yzA9gx7+okSWfFK1QlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDRoa7kkuSvIPSR5KcjDJu7v285PcmeSR7vG8GfvcmORQkoeTXD3OAUiSTtfnyP0E8IdV9TLgCuD6JBuA7cDeqloP7O1e023bDFwCXAPcmuSccRQvSZrd0HCvqiNV9S/d8/8GHgJWA5uAXV23XcAbuuebgNur6umqehQ4BFw+4rolSQOceyadk6wDXgF8Fbiwqo7A9BdAkgu6bquBe2bsNtW1nfpe24BtAGvXrj3jwvv6+oEDbH3Xe+bcvubFK3jvTXNvl6RJ1Dvck7wA+BTwB1X13SRzdp2lrU5rqNoJ7ATYuHHjadtH5f++f4JLX//2Obc/8NnbxvXRkrRoeq2WSfJspoP9L6vq013zk0lWddtXAUe79ingohm7rwEOj6ZcSVIfQ4/cM32I/mfAQ1X1wRmb9gBbgFu6xztmtH8iyQeBlwDrgX2jLFqSlpKb3/8Bpp44Puu2A/c/wKWvX+CC6Dct82rgLcD9SQ50bTcxHeq7k2wFHgOuA6iqg0l2Aw8yvdLm+qo6OerCJWmpmHri+JzTv1/Z944Frmba0HCvqn9m9nl0gKvm2GcHsGMedUmS5sErVCWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDzujeMpK0HA26SAkW70KlQZZ9uA+6sZg3FZMEgy9SgsW7UGmQZR/ug24s5k3FJE0q59wlqUGGuyQ1yHCXpAYt+zl3SZrE1TDDGO6Slr1JXA0zjNMyktQgw12SGmS4S1KDDHdJapAnVAcYdGsC8PYEkpYuw32AQbcmAG9PIGnpclpGkhpkuEtSg5yWkbQsDLoKdRKvQB3GcJe0LAy6CnUSr0AdxnCfB1fTSFqqDPd5cDWNtHS0ePOv+TDcJTWhxZt/zYerZSSpQR65S1oyhk2teB6rP8Nd0pIxbGrF81j9OS0jSQ0y3CWpQUOnZZJ8FHgdcLSqLu3azgf+ClgHfBv47ar6TrftRmArcBJ4V1V9YSyVT4BB6+DnM3fovKSkYfrMuX8M+DDw8Rlt24G9VXVLku3d6xuSbAA2A5cALwG+mOSlVXVytGVPhkHr4Oczd+i8pCaVa9EXztBwr6ovJ1l3SvMm4Mru+S7gLuCGrv32qnoaeDTJIeBy4O4R1asexnnl7KB/nP7GoGHmuxZ90M+2XwzPdLarZS6sqiMAVXUkyQVd+2rgnhn9prq20yTZBmwDWLt27VmWodmM88rZQf84F/M3BqeqlodBP9vL7SKlYUa9FDKztNVsHatqJ7ATYOPGjbP2kfpyqkp6prMN9yeTrOqO2lcBR7v2KeCiGf3WAIfnU2CrlupNx5wTnRxOkWmQsw33PcAW4Jbu8Y4Z7Z9I8kGmT6iuB/bNt8gWLdWbjnl/jskx6O/qz9/3Tqeplrk+SyE/yfTJ0xVJpoCbmQ713Um2Ao8B1wFU1cEku4EHgRPA9ct1pYy0mOZ78OBvBZOvz2qZN82x6ao5+u8AdsynKI2XKw6eyZOxp1uqJ87Vn/eWWaLGGcCLteJgqYbocjwZO+ycz6CfsaV6vkjPZLgvUZO45KtPYLz5pg/Nub3FEJ2PcZ7cHjZtM+hnbNi+g+b7l+NvhovFcNfIzCcwdLpJPbk9iQcmLTLcNRFcoimdGcNdE2GpHsXO9zzCoP39wtJ8GO5aFsZ1gnq+J2MH7e8UhubDcNeSsVRXCLl0VJPIcNeSsVRPxI3riwH8ctD4GO7SGLmCSIvF/2ZPkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAaNLdyTXJPk4SSHkmwf1+dIkk43lnBPcg7wp8BrgQ3Am5JsGMdnSZJON64j98uBQ1X1rar6PnA7sGlMnyVJOkWqavRvmrwRuKaq3t69fgvwqqp654w+24Bt3cufAR6ex0euAI7PY/9Js9zGC455uXDMZ+Ynq2rlbBvOPft6Bsosbc/4FqmqncDOkXxYsr+qNo7ivSbBchsvOOblwjGPzrimZaaAi2a8XgMcHtNnSZJOMa5w/xqwPsnFSZ4DbAb2jOmzJEmnGMu0TFWdSPJO4AvAOcBHq+rgOD6rM5LpnQmy3MYLjnm5cMwjMpYTqpKkxeUVqpLUIMNdkho0MeE+7HYGmfYn3fb7krxyMeocpR5j/t1urPcl+UqSyxajzlHqe9uKJL+Q5GR3TcVE6zPmJFcmOZDkYJJ/XOgaR63Hz/aPJ/lskm90Y37bYtQ5Kkk+muRokgfm2D76/KqqJf+H6ZOy/wb8FPAc4BvAhlP6XAv8HdNr7K8AvrrYdS/AmH8ROK97/trlMOYZ/b4E/C3wxsWuewH+nl8EPAis7V5fsNh1L8CYbwL+uHu+EvgP4DmLXfs8xvwrwCuBB+bYPvL8mpQj9z63M9gEfLym3QO8KMmqhS50hIaOuaq+UlXf6V7ew/T1BJOs720rfh/4FHB0IYsbkz5j/h3g01X1GEBVTfq4+4y5gBcmCfACpsP9xMKWOTpV9WWmxzCXkefXpIT7auDxGa+nurYz7TNJznQ8W5n+5p9kQ8ecZDXwW8BHFrCucerz9/xS4LwkdyW5N8lbF6y68egz5g8DL2P64sf7gXdX1Q8WprxFMfL8GtftB0Zt6O0MevaZJL3Hk+Q1TIf7L421ovHrM+YPATdU1cnpg7qJ12fM5wI/D1wFPB+4O8k9VfWv4y5uTPqM+WrgAPCrwE8Ddyb5p6r67phrWywjz69JCfc+tzNo7ZYHvcaT5OeA24DXVtVTC1TbuPQZ80bg9i7YVwDXJjlRVX+zIBWOXt+f7eNV9T3ge0m+DFwGTGq49xnz24BbanpC+lCSR4GfBfYtTIkLbuT5NSnTMn1uZ7AHeGt31vkK4L+q6shCFzpCQ8ecZC3waeAtE3wUN9PQMVfVxVW1rqrWAX8N/N4EBzv0+9m+A/jlJOcm+RHgVcBDC1znKPUZ82NM/6ZCkguZvnPstxa0yoU18vyaiCP3muN2Bkne0W3/CNMrJ64FDgH/y/Q3/8TqOeY/An4CuLU7kj1RE3xHvZ5jbkqfMVfVQ0k+D9wH/AC4rapmXVI3CXr+Pb8P+FiS+5mesrihqib2VsBJPglcCaxIMgXcDDwbxpdf3n5Akho0KdMykqQzYLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBv0/vuuzHCkdbXUAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_11_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "q.x = 0.11\n", + "t = q.trajectory(5000)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.hist(t, bins=40, alpha=0.5, edgecolor='k')\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "fae3feb8", + "metadata": {}, + "source": [ + "If you experiment with different initial conditions you will find that, for\n", + "all most all choices, the histogram looks the same." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ce4a0a89", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAQlElEQVR4nO3df6zdd13H8eeLDQYKyma7UdbNTtOp3eIA6yCiZjjjxnQWE2aKApWUNMQhmJiwbn+4EFIy+YMQg4Q0k1BUmI2AK0TBMpxotlE6Kdu6MVcZbjft1naiIJqRlrd/3C/J7XrvPd/2/Lg7n/t8JM35ns/3c855f9rb1/nez/l+PydVhSSpLc9Z6gIkSaNnuEtSgwx3SWqQ4S5JDTLcJalBZy51AQArVqyoNWvWLHUZkjRV7r333qNVtXK+fc+KcF+zZg179+5d6jIkaaok+Y+F9jktI0kNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDXpWXKE6rJvf+z5mnjg6777VL1nBu29614QrkqSl1US4zzxxlEuvfeu8+x74zK0TrkaSlp7TMpLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktSgXt/ElOSbwHeA48Cxqlqf5Bzgr4E1wDeB366qb3X9bwQ2d/3fUVWfH3nlkjQFFvsaUBjfV4Geytfsvaaq5la4Fbijqm5JsrW7f0OSdcBG4BLgpcAXklxcVcdHVrUkTYnFvgYUxvdVoMNMy2wAdnTbO4DXzWm/raqerqpHgQPA5UO8jiTpFPUN9wL+Icm9SbZ0bedV1SGA7vbcrv184PE5j53p2k6QZEuSvUn2Hjly5PSqlyTNq++0zKur6mCSc4HdSb6+SN/M01YnNVRtB7YDrF+//qT9kqTT1+vIvaoOdreHgU8zO83yZJJVAN3t4a77DHDBnIevBg6OqmBJ0mADwz3JDyd50Q+2gV8DHgB2AZu6bpuA27vtXcDGJGcluQhYC+wZdeGSpIX1mZY5D/h0kh/0/3hVfS7JV4CdSTYDjwHXAVTV/iQ7gQeBY8D1nikjSZM1MNyr6hvAZfO0PwVcucBjtgHbhq5OknRavEJVkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDeod7knOSPLVJJ/t7p+TZHeSR7rbs+f0vTHJgSQPJ7lqHIVLkhZ2Kkfu7wQemnN/K3BHVa0F7ujuk2QdsBG4BLga+FCSM0ZTriSpj17hnmQ18OvArXOaNwA7uu0dwOvmtN9WVU9X1aPAAeDykVQrSeql75H7B4B3Ad+f03ZeVR0C6G7P7drPBx6f02+maztBki1J9ibZe+TIkVOtW5K0iIHhnuQ3gMNVdW/P58w8bXVSQ9X2qlpfVetXrlzZ86klSX2c2aPPq4HfTHIN8HzgR5L8JfBkklVVdSjJKuBw138GuGDO41cDB0dZtCRpcQOP3KvqxqpaXVVrmP2g9ItV9UZgF7Cp67YJuL3b3gVsTHJWkouAtcCekVcuSVpQnyP3hdwC7EyyGXgMuA6gqvYn2Qk8CBwDrq+q40NXKknq7ZTCvaruBO7stp8Crlyg3zZg25C1SZJOk1eoSlKDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUEDwz3J85PsSfK1JPuTvLtrPyfJ7iSPdLdnz3nMjUkOJHk4yVXjHIAk6WR9jtyfBn6lqi4DXgZcneRVwFbgjqpaC9zR3SfJOmAjcAlwNfChJGeMoXZJ0gIGhnvN+p/u7nO7PwVsAHZ07TuA13XbG4DbqurpqnoUOABcPsqiJUmL6zXnnuSMJPuAw8DuqvoycF5VHQLobs/tup8PPD7n4TNd2zOfc0uSvUn2HjlyZIghSJKeqVe4V9XxqnoZsBq4PMmli3TPfE8xz3Nur6r1VbV+5cqVvYqVJPVzSmfLVNV/AXcyO5f+ZJJVAN3t4a7bDHDBnIetBg4OW6gkqb8+Z8usTPLibvsFwK8CXwd2AZu6bpuA27vtXcDGJGcluQhYC+wZcd2SpEWc2aPPKmBHd8bLc4CdVfXZJHcDO5NsBh4DrgOoqv1JdgIPAseA66vq+HjKlyTNZ2C4V9V9wMvnaX8KuHKBx2wDtg1dnSTptHiFqiQ1yHCXpAYZ7pLUIMNdkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchwl6QGGe6S1CDDXZIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNOnOpC5CkaXfze9/HzBNH59237/4HuPTaCReE4S5JQ5t54iiXXvvWeffdtedtE65mltMyktQgw12SGmS4S1KDBoZ7kguS/GOSh5LsT/LOrv2cJLuTPNLdnj3nMTcmOZDk4SRXjXMAkqST9flA9RjwR1X1r0leBNybZDfwe8AdVXVLkq3AVuCGJOuAjcAlwEuBLyS5uKqOj2cIi/vqvn1sfse7Fty/+iUrePdNC++XpGk0MNyr6hBwqNv+TpKHgPOBDcAVXbcdwJ3ADV37bVX1NPBokgPA5cDdoy6+j//73rEFP8UGeOAzt06wGkmajFOac0+yBng58GXgvC74f/AGcG7X7Xzg8TkPm+nanvlcW5LsTbL3yJEjp1G6JGkhvcM9yQuBTwJ/WFXfXqzrPG11UkPV9qpaX1XrV65c2bcMSVIPvcI9yXOZDfa/qqpPdc1PJlnV7V8FHO7aZ4AL5jx8NXBwNOVKkvroc7ZMgD8HHqqq98/ZtQvY1G1vAm6f074xyVlJLgLWAntGV7IkaZA+Z8u8GngTcH+SfV3bTcAtwM4km4HHgOsAqmp/kp3Ag8yeaXP9Up0pI0nLVZ+zZf6F+efRAa5c4DHbgG1D1CVJGoJXqEpSgwx3SWqQ4S5JDTLcJalBhrskNWjZfxPTYguLuaiYpGm17MN9sYXFXFRM0rRyWkaSGmS4S1KDDHdJapDhLkkNMtwlqUHL/mwZSRrk5ve+j5knji64f9/9D3DptRMsqAfDXZIGmHni6KLfxXzXnrdNsJp+DPdFLHaBE3iRk9SKaTwyH8RwX8RiFziBFzlJrZjGI/NB/EBVkhpkuEtSgwx3SWqQ4S5JDTLcJalBhrskNchTISVNjcXOR/e6kxMZ7pKmxmLno3vdyYkM9yEMcwXroCviPAqRNAzDfQjDXME66Io4j0IkDcNwH6PFjuynca0KaZot9ttyi/8fDfcxWuzIfhrXqpCm2WK/Lbf4/3HgqZBJPpLkcJIH5rSdk2R3kke627Pn7LsxyYEkDye5alyFS5IW1ufI/aPAB4GPzWnbCtxRVbck2drdvyHJOmAjcAnwUuALSS6uquOjLbt9i03p+GGrWjXM0ruDTnBoceplMQPDvaq+lGTNM5o3AFd02zuAO4Ebuvbbqupp4NEkB4DLgbtHVO+ysdiUjh+2Tg/Pijo1wyy9O+gEhxanXhZzunPu51XVIYCqOpTk3K79fOCeOf1muraTJNkCbAG48MILT7MM6dnNs6K0VEb9gWrmaav5OlbVdmA7wPr16+fto8nzSFNqw+mG+5NJVnVH7auAw137DHDBnH6rgYPDFKiTjfPr/zzSlNpwuuG+C9gE3NLd3j6n/eNJ3s/sB6prgT3DFqkT+fV/kgYZGO5JPsHsh6crkswANzMb6juTbAYeA64DqKr9SXYCDwLHgOs9U2byluqLvZ3SaYcLdE2/PmfLvGGBXVcu0H8bsG2YojScpTqyH3ZKZxoDZZhT94Z97nH+nYxrga5x/n3pRF6hugwNsyzCOJdUeLau+DfosvU33vSBBR87zOl3g94s/+I9b5+6N8NhTnXUqTHcl6FhlkVocUmFPkeTCwX4sGMe5s1ymGshluo3Do/MJ8dw17K3lEeTS/VmOc4xL7c1XJ6tDHdNjJeHS5NjuGtihrk8fNgzgJbbVME430h9k54OhrumwrBnAC23qYJxrrPiGi7TYeCSv5Kk6WO4S1KDnJZRE5wHlk5kuKsJzgNLJ3JaRpIaZLhLUoMMd0lqkOEuSQ0y3CWpQYa7JDXIcJekBhnuktQgw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ1yHCXpAYZ7pLUIMNdkhpkuEtSg8YW7kmuTvJwkgNJto7rdSRJJxtLuCc5A/gz4LXAOuANSdaN47UkSScb15H75cCBqvpGVX0PuA3YMKbXkiQ9Q6pq9E+avB64uqre2t1/E/DKqnr7nD5bgC3d3Z8CHh7iJVcAR4d4/LRZbuMFx7xcOOZT8+NVtXK+HWeefj2LyjxtJ7yLVNV2YPtIXizZW1XrR/Fc02C5jRcc83LhmEdnXNMyM8AFc+6vBg6O6bUkSc8wrnD/CrA2yUVJngdsBHaN6bUkSc8wlmmZqjqW5O3A54EzgI9U1f5xvFZnJNM7U2S5jRcc83LhmEdkLB+oSpKWlleoSlKDDHdJatDUhPug5Qwy60+7/fclecVS1DlKPcb8u91Y70tyV5LLlqLOUeq7bEWSn09yvLumYqr1GXOSK5LsS7I/yT9NusZR6/Gz/aNJPpPka92Y37IUdY5Kko8kOZzkgQX2jz6/qupZ/4fZD2X/HfgJ4HnA14B1z+hzDfD3zJ5j/yrgy0td9wTG/AvA2d32a5fDmOf0+yLwd8Drl7ruCfw7vxh4ELiwu3/uUtc9gTHfBPxJt70S+E/geUtd+xBj/mXgFcADC+wfeX5Ny5F7n+UMNgAfq1n3AC9OsmrShY7QwDFX1V1V9a3u7j3MXk8wzfouW/EHwCeBw5Msbkz6jPl3gE9V1WMAVTXt4+4z5gJelCTAC5kN92OTLXN0qupLzI5hISPPr2kJ9/OBx+fcn+naTrXPNDnV8Wxm9p1/mg0cc5Lzgd8CPjzBusapz7/zxcDZSe5Mcm+SN0+suvHoM+YPAj/D7MWP9wPvrKrvT6a8JTHy/BrX8gOjNnA5g559pknv8SR5DbPh/otjrWj8+oz5A8ANVXV89qBu6vUZ85nAzwFXAi8A7k5yT1X927iLG5M+Y74K2Af8CvCTwO4k/1xV3x5zbUtl5Pk1LeHeZzmD1pY86DWeJD8L3Aq8tqqemlBt49JnzOuB27pgXwFck+RYVf3tRCocvb4/20er6rvAd5N8CbgMmNZw7zPmtwC31OyE9IEkjwI/DeyZTIkTN/L8mpZpmT7LGewC3tx96vwq4L+r6tCkCx2hgWNOciHwKeBNU3wUN9fAMVfVRVW1pqrWAH8D/P4UBzv0+9m+HfilJGcm+SHglcBDE65zlPqM+TFmf1MhyXnMrhz7jYlWOVkjz6+pOHKvBZYzSPK2bv+HmT1z4hrgAPC/zL7zT62eY/5j4MeAD3VHssdqilfU6znmpvQZc1U9lORzwH3A94Fbq2reU+qmQc9/5/cAH01yP7NTFjdU1dQuBZzkE8AVwIokM8DNwHNhfPnl8gOS1KBpmZaRJJ0Cw12SGmS4S1KDDHdJapDhLkkNMtwlqUGGuyQ16P8BbtG6e6s5sXoAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_13_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "q.x = 0.65\n", + "t = q.trajectory(5000)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.hist(t, bins=40, alpha=0.5, edgecolor='k')\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "7af01fd8", + "metadata": {}, + "source": [ + "What we have learned is that, although the trajectories seem very random, when\n", + "we take a statistical perspective we can make predictions.\n", + "\n", + "In particular, we can say what will happen \"one average, in the long run.\"\n", + "\n", + "\n", + "Here's the set of maps." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d924f394", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_15_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "xgrid = np.linspace(0, 1, 100)\n", + "\n", + "h = lambda x, r: r * x * (1 - x)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(xgrid, xgrid, '-', color='grey')\n", + "\n", + "r = 0\n", + "step = 0.3\n", + "\n", + "while r <= 4:\n", + " y = [h(x, r) for x in xgrid]\n", + " ax.plot(xgrid, y)\n", + " r = r + step\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "944ea062", + "metadata": {}, + "source": [ + "Here's the bifurcation diagram." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "9548b412", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAELCAYAAADJF31HAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABYYUlEQVR4nO29f3iU1Zn//34KTEueuGgh89GKmHFtq6SgGH4Tg7FVWazBImjajhGCm6QNQwODGNo020+UEi9MujsjOFEIGKMdKUZEpfHbXepoZWWMItvBaqszae2PzQQq/exMuDronu8fk3M4c/I8k8mPSUK4X9c1V2bmOc95zgTyfu65z/1DY4yBIAiCOPf5zEgvgCAIghgaSNAJgiDGCCToBEEQYwQSdIIgiDECCTpBEMQYYfxIXXjKlCksOzt7pC5PEARxTvLWW2+dYIxlGR0bMUHPzs5Ge3v7SF2eIAjinETTtN+bHSOXC0EQxBiBBJ0gCGKMQIJOEAQxRiBBJwiCGCOQoBMEQYwR+hR0TdOaNE0La5oWMDmuaZrm0jTtA03T/kvTtOuGfpkEQRBEX6Rioe8BsCTJ8X8C8MWeRymARwe/LIIgCKK/9CnojLFXAfw1yZBlAJpZnDcAXKhp2iVDtUCCIIixRjgcTsu8Q+FDvxTAR9LrP/a81wtN00o1TWvXNK29q6trCC5NEAQxugmHw4hGozh+/DiOHz+OUCiEO+64Iy2iPhSZoprBe4ZdMxhjjwF4DABmz55NnTUIghiTPPPMMygoKMB7772H733ve5gxYwZaW1sBALfddhs++eSTtFx3KAT9jwAuk15PBfDnIZiXIAhi1BONRhEOh6HrOgDg5z//OVatWoXLL78cnZ2dOHPmDK666io89dRTeP755/G73/0OLpcLVqt1yNcyFIJ+AMBaTdO8AOYB+Btj7C9DMC9BEMSoIxqNiseJEyfwxBNP4LnnnsMll1yCcePGYeHChViyZAn+/Oc/46KLLkJlZSV27NiBhx9+GB6PB93d3Whra8P06dPFTWCo6FPQNU37KYAbAEzRNO2PAP4FwAQAYIx5ABwEsBTABwC6Aawe0hUSBEGMIOFwGFarFdFoFB0dHXj00Ufx5ptvoqOjA6dPn8Ytt9yC2267DQ6HA7t27UJVVRW6urpQXl6OhoYGHDhwAAsXLsS3vvUtNDc348iRI9i9e/eQizmQgqAzxr7Zx3EGoGLIVkQQBDFChEIhId7RaBQAsHr1auzevRt1dXV48cUXcckll+DRR+PR2X/9619RWlqKr371q8jIyMCECRMQjUbR2tqK5uZm6LoOh8MBAGhsbITT6QSAtLhbAECL6/HwM3v2bEblcwmCGEmOHz+OrKwsdHV14YMPPsDatWtxww034NixY/j4449x0003YdKkSVi3bh2KioqQk5MDXdcxfvx4HDlyBI8//jhOnjyJqqoq5Obm4syZM5g0aRKcTiei0ShWrVqF+fPnw+l0Qtd16LoubhYDFXVN095ijM02OjZi9dAJgiCGm40bNwIALBYLotEoHn/8cVxxxRX48MMP8cknn+C2227Dr3/9a5w4cQKPPvooGhoasGPHDui6jnHjxsHpdCI7OxvhcBh33XUX7rnnHlx//fWYMWMGYrEYfv3rX2PevHkAgJaWFuzYsQNZWVlobGzEhg0bEI1GUV1djaNHj2Lv3r1Db6kzxkbkkZubywiCINJJJBJhkUiE+Xw+lpubyxAPqU54NDY2smuuuYZ95StfYX6/n1VWVrKioiLW2dnJ/H4/q62tZZ2dnWz16tWsurqadXZ2MsYY8/v9LC8vT5yzadMmFgwGxfHOzk5WXV0t1sDXU11dzYLB4IA/E4B2ZqKrZKETBDFmUEMIa2pq8Kc//QkvvvgiACA3Nxc33HADuru7sWfPHpw+fRqf/exn8dRTT8HlcuHAgQP4xje+gdtuuw0TJ05EMBjE7t27EY1G8R//8R947LHH0NjYCLvdjn379sHj8aC5uRkWiwXl5eWwWq2oq6tDVVWV4aYn96mny4dOFjpBEOc0kUiEBYNBFggEWGlpKZs6dSqbO3cuu/3225mu62zixInswgsvZN/5zncSzgsGg2zPnj3sH/7hH9iKFStYXl4eCwQCLBgMsoqKigRrmzHGfD4fKygoYH6/n23atIktWLCABYNBYXHX1tayQCDANm3axCKRCOvs7BTWeW1tbcJzed7+giQWOgk6QRDnDMFgUDw6OztZMBhklZWV7Atf+AK7+OKL2dy5c5nf72f79+9nkyZNYvv372d79uxhU6dONXRzRCIRtmLFCjZt2jTW1tbGKioqhLDLrhHuKvH5fGzTpk1C1IPBoHCnBINBlpeXx9avX88CgQDLz88X6+Rj+Dgu8AMhmaCTy4UgiFFLOBzGz3/+c1x88cUAgFWrVuHMmTMYN24cvvCFL8BisaCpqQn33nsvACArKwvvvfce/u3f/g0HDhzAxIkTUVlZiaeeego2m63X/NFoFF1dXXjyySfx3HPP4e2338aMGTOQkZGBSCQiQhatVisikQjuu+8+fPrppzh8+DC2bNmCNWvWwOv1Qtd1dHd3Y+HChSguLobX68XMmTPhcrlw9OhRbN++HTk5OQiHw2hpaUFZWVla4tApbJEgiFGDnIXZ3d2NZcuW4cMPPwQATJw4EZdeein+9Kc/4YorrsCMGTPw4YcfYu7cuQCACRMmYMmSJbjrrrvwzDPPYNasWbjjjjuwZcsW5Ofnm16Tx57X1tbi1ltvxUsvvQSLxYKSkhJ0d3fj0UcfxUMPPYRoNIr6+nqUl5fjxIkTaGtrg91uh9VqRTgcxo033oi9e/fiwIEDcDgcIkSRJxk1NzejqakJJSUlhjeXVEkWtkgdiwiCGBH4BiZ/vPnmm6itrcXNN9+MhQsXwm6346KLLsK2bdtgt9vx05/+FDfeeCOKi4uxY8cO/OUvf8HDDz8MAHjzzTfx2muv4fvf/z6mTZuGQ4cOIRqNIhaL4aWXXhJJQkZraGlpEWNrampQXl6OkpISNDU1ob6+Hi0tLejo6ICu66ipqYGu67j//vtht9uh6zoaGhpgtVpx6NAhTJ8+HQCE9d3Y2IiMjAxxvVgshqamJtP1DBay0AmCGDa4kHV0dGDnzp04fPgwYrEYPv30U/zhD3/AE088gR//+MfIycnBhAkTkJGRgQcffBAdHR0oKyvD//7v/+Lxxx9Ha2srlixZgqeffhpnzpyB0+lEd3c3du7ciXXr1glBra+vT0jqSbYm+XljYyOWL1+O5uZmrFixAtOnT0dDQ4NwlUSjUSHmZWVlAM5mf/Jj8nM58gbAoNwtZKETBDEicCs8Go3i1VdfRXV1NRwOB5YuXYoTJ04gJycHALBw4UIcOHAAhw8fxpw5c7Bq1SpYrVbhG29tbUVjYyP279+PnJwclJWVYd++fTh8+DDefPNNfPTRRyJ8UNd11NbWora2FuXl5dB1HXV1dUmtYn5c13Uh5jt37gQAUUTLbrfD7Xajrq5O3CA2bNgAACgqKkIoFAIAQ+Hm4q8eH2pI0AmCGBKeeeYZHD9+HMBZIb///vtx++23o6ioCF/72tdw8OBB/OY3v8Fjjz2G999/HxMmTIDFYsH48eNx1VVXIRaL4cyZM7jnnntw0003weFwIBqNoqysDK2trQmWb01NDbxeL77yla/g7rvvRnd3N8rLy9HV1YXnnnsOP/vZz+B2u/tsJMHX6na7EY1GYbfb0dzcjPb2dnFD4K4Zh8MhYsz5DUDXdezatQstLS2m1+Liz89LV8ciClskCGJA8PjvYDDIXC4XA8AsFgvzer2stLSU2e12lpuby26//XZ2wQUXMJfLxaZOncra2tpYMBhkCxYsYH6/PyGWm8d/yw+OnKGZnZ3N/H4/6+zsFGGEPDOThxfOnz+fBQIBVltba5qZGYlEWEVFBZs2bRrz+/2surqabdq0iXV2dvaKFefhh/wnjyfnIYj8cySLMY9EImzTpk0sLy9vwLHoSBK2SD50giBShluWXV1dqK+vx0svvQQgHmFSVFSEn/zkJxg/fjw0TcNnPvMZXH755fjc5z4HIO42qaurE/VOTp8+jePHj8Pj8SAjIwMulwt79+7FN77xDdxzzz1YsWIF7rjjDjzwwAMAgIaGBtjtdqxZswZlZWV45JFHMHt23JWcmZmJkpISYTHruo5QKASbzYZQKISWlhZhIctEo1HU1dWJwlvhcBj19fWoqakRY7hVXVdXh0gkgqNHj2Lbtm3CFcNdOdXV1Thz5kzC5im/hnxd+RoDcb8k86GToBMEYQj3CZ84cQIZGRno7u7G2rVr8fe//x1//vOfoWkasrKycPXVV+Nzn/scPB4PfvWrX4lY7SuuuAKdnZ2YNWsWqqqqRFnarVu3Yt26dQCABx54AL/73e+wcOFC3Hrrrdi7d69ww/DNSFkYgfiG6ne/+11cddVVYt5wOIxvfetbyM/PF2LMNyz5xqhZur0suNz14nA4UF9fDwBCePn1f/WrX6G8vByHDh0S4YfhcBjLly/HtddemyDo0WgUDQ0NCTcTPs9Afem0KUoQRFJeffVVvPrqq+L5M888g/nz5yM3Nxfz5s3DnDlzcPPNN+P06dOYOXMmLr74Ytx66624+uqr4fP5cOjQIYTDYeTl5SE/Px8WiwXvvPMOHnjgAVx44YUJG5MWiwUulwsulwu/+93v4PF4sGLFCtxzzz34zne+I8T+wIEDvSJQGhoakJ2djT179iAjIwNNTU0AIEraFhcX99qwPHz4cEq/g2g0CrfbLSx9/h6HR6s89NBDeOKJJ2Cz2cRxq9WKJ598EjU1NSKqhke28HXw+Wprawf6z9QnJOgEcZ7idrvhdrvxve99D4sXL0ZBQQHcbjcWL16MoqIinD59GqdPn8aVV16JyspKnDp1CpdeeikmTJiAiRMn4pZbbsEbb7yBSy+9FD/96U9hs9mg6zqcTidaW1vR2toq4sG7urpEDHZxcTEyMzOxefNmPPvss8jOzkZbWxtefPFFZGVloaWlBU6nU1jJPNGosbFRhA1arVZkZmaKBB6r1Yrm5mZ4vd5eIjx79uykIYtyBIwcJ15cXIxAIICOjg4x1uPx4KGHHoLP50M4HEZDQ4OI4uFx6263G6FQCEVFRcJF1dDQID7HG2+8IeYcaij1nyDOA9xud8LrV155RXShB4Dly5fjhhtuEN11Tp48KWp5nzp1Crt378a2bdvw05/+FF1dXbDZbKiqqsIjjzyCK6+8El6vF7m5uYhGo7j77rsxZ84cWCwW/O1vf8PRo0dx7Ngx4Svn0SKyC2TJkiXIzs4WbhLuRnn99ddFMwj5fV61UBZqOQ5cTrHPzMxM6XfEXSUdHR1wu92IxWLYtm0bHA6HuFG89tprACBcOHa7Xdxo+O+Or2XXrl1iTdzlous6duzYIeYc6qqLJOgEMQaRBVwVbw4X8Q8++AAulwv79+8HAOHy+PznP49oNIrFixfjvffewwcffAAAsNls+OMf/4gf/ehHaGhowIwZM8Scuq5j0aJFotWa2+3GI488gilTpgj3iOzSAOJdg2666Sa8/vrrvTYu58yZI3zRvGztqlWrMHPmTGRkZMBisYgwQi7y9fX1OHz4sGgBZ1bKlq9XPh6NRuFwOOB2u+H1ejF9+nRRq2Xr1q2YP3++KJPLrfKioiK43W5EIhEA8eYZTqczYSNWvn5OTk5axBygTVGCGDNwETcScC7eMrJFyf3n+fn54vlll10mapk899xzuO2229DZ2Yn//M//REFBAV577TU8/fTTePrpp3Hs2DE8//zzwoKWmyrz5slcmD0ejxBiIC6qx48fR3Z2trDGuSuEp+Nzn7TVakUoFBI1Ubq7u5GdnS0+Bx/HN0J5p6BUNyC5W0ROCALim5533nkntm/fDq/Xi6qqKlHbBQCKi4vR3NyMWCwGi8WCmpqaQbWZSwZFuRDEGMbtdpu6UDiyePcX7sI4ceIECgoK8LnPfQ7bt29HZWUlDhw4gHXr1uGaa64R4iZHl8RiMdx7773wer2IxWIA4n7qzZs3A0BCa7b6+nocOXIEu3fvTthwlMMGS0pKxE2jvr4eL7zwApYsWSKsdTnckNMfMeehkUZhjqFQCLquiygY/o2B36BUF5BRows1hHEgUE9RghiDqEIui/hgBFxFju222Wz47//+b9TV1WHq1KkAIJoj87F2u11YuseOHcO9994rxC4cDgvXC7ei+WdxOp3o6upKEFN5gzMSieDb3/425s2bJ1L89+3bh3379iEWiyEWiyVsnnLh5etK5XOWlZWJ82W4ewWA8P/zNRrVijEqM5AsHn7IMMs4SveDMkUJYuDwzEwAbPny5czlcqXtWrxxQzAYZH6/n82ZM4eVlZUxn8/H8vLymN1uFw0kOjs72dy5c9l1113HSktLmd/vZ/n5+ayyslJkdfIszPz8fJF1yTMs5axOOQuTr6OyslJkkPIOQDxLU244wTMy+SOVrEyeBapmgsr9QI0e8hrVsZzOzk7xOxwsoExRgji3WbZsWa/3vva1rwEYWmtchcdNv/LKK5gzZw4uuugiFBYWYt++fQDiGaOTJk3CmTNnRM3wm2++GZqmYeLEiXjqqadw4sQJ7Nu3D8XFxaioqMDevXuF9c19zDy8j9dMkS1s2W8eiURw5swZvPXWW3j66acTxn788ccIBAIJLhvZz22Wmcmt6draWrz22mu4/vrrhQ+c70vI9Vt4xqjqK+fH+KYqXztfx/Lly/Hkk08OqhY6kNzlQhY6QYwiCgsLez0mT55s2K3+y1/+clrXwi1W3q+zuro6oTaK3+9nixcvZoFAQFjA3GrnNVp43ZK1a9eyyspKFggEhPUs99zkPTq5lc3rskQiEeZyuVhBQYF4v7S0lC1YsCDBeubzGrWOk+cy+oz8WGdnJ1u/fn2CNa9a2owx8U2Dj+WWPL8OP87XwecfbOs5DqgFHUGMLows7tdffx0nT540HD958mQsWrRIvH7//ffx/vvv49Zbb0VBQQE2btw4pOt788038cQTT+Dtt98GAFx33XVwOp3weDwoLi4WrdW2bdsGr9cLACgsLERhYSGeeeYZtLW1YcOGDcKC5Yk6FosF5eXlog56ZmYmqqqqUF5eDgAoLy+Hx+PBmTNnUFVVhaeeegrr1q3Dli1bYLPZEA6H8f777+Pxxx8HcDZC5utf/7roFhQOh7F69Wps374dra2t2LBhQ9LQRcA4Hd9oA5NH2jidTmG9828IwFn/Ov/cfGMYiId7ylmj6YAEnSDSjCre/RFuzvPPP9/rvVtvvRUHDx7EwYMH8ctf/hIFBQUAMGhxf+yxx+B0OmGz2bBr1y6cPn0aP/jBD9Dd3S2E2GKxYPv27cjOzsbll18OXdfx4osv4q677kJeXh7y8vIS3CrRaBTPPvus2Dzkz7mQtrS0iPjuWCyG9vZ2RKNRfPTRR9i2bRteeOEFfPOb3wQA7N27FwBE/Hdrayv27t2LtrY20Wlo3bp1aG1thd1uB2C+KSrHrvO2c3xTlEfg8HGhUAhr1qzBrl27YLPZRKTLhg0bxKavGu4IxOPSeTIUr4uero1R8qETxBDRH6u7P8KdjIcffhi//OUvcfDgQfHe0qVLhbgDqQn8yy+/LJ4vWbIEF110ES699FIsXrwYx44dEx17uADzqA9ufV533XUoKirCypUrsXv37oTCVDwM0G63J4QjAmcrKPJwQB7fDUA0qnA6naiqqoKmafj3f/93HDx4EDk5OSJqhGeQcoua/wyFQgkx78nS//l11HkACL84b3zBrX55jJlI85DPb3/72xg3bpxIdhpMfDqFLRJEGpAFvL9Wd3+F24yNGzdi48aNorcmF3dZ4GXrXT0XAH784x/jBz/4AQCgra0NbW1t+PznP48NGzbgnnvuAQDhyrBarairqwMQdy90dXXB6/Vi7ty52L9/P2bOnJkgalzMlyxZglWrVmHHjh2is5DD4cDy5cuxevVq7N69GwASUvY5XV1dePnll3HJJZfgq1/9Knbu3IkHH3xQpN7LIg6cjVs3y0xV4QXDjKxrjlxkSxZu/lNtTSefZ7Vacf3112PFihViTX25gAYKWegEkQKpuE2GyuoeLFzcAfSy3mWWLl2KL3zhC9i5cye2bNmC3Nxc3HLLLeL48ePH8c///M8YN24cGhoacN9992H37t0JkRtr1qzBj370I/zwhz8UNUp27doFAPB4PADifnGXy4VPPvkEGRkZOHPmDBwOR0LUCk8Ikq3g5cuXi6xMucMPvwG4XC60t7dj9uzZwhcvi6pc1MvMxcG/RXArnxMOh3u5XJKNlZONjK4lf5sAkDYLnQSdIAxIxfpWBXy4hTtVZIHnqELvcrl6hT9Go1Hcf//9+M53voPs7Gzce++9uPLKKxN8zkVFRWhubsaZM2fwwAMPIBwOw+Vy4ciRI5g5cyYmTJiADRs2JFjhHo8HNTU1CIfD8Hg8iEajuOiii4S7pbGxEYsXL8aPfvQj4a+WBZYLtpw5Kq9ZbR7RV3am6qqRXUVWq7VXcwruYzcqUcBRN1flBtOD9aEPOmwRwBIA7wP4AECVwfFJAF4AcAzAcQCr+5qTwhaJ0URfYYKTJ0/uFU54rrNt2za2bds25nK52Lhx40Ryks/nE2GJc+fOZevXr2c+n4999rOfZT6fj3V2dopEITkEkbGzLdZKS0vZ6tWrRTKNnEDEQxNra2tF2zd+Pg+TzM/PF+GQcpKPjJxwxOeurKwU7d360+JNTRCS29mpYYZyKKIceskfRufIr9MZtpiKmI8D8CGAKwBYekR7ujLm+wAe6nmeBeCvACzJ5iVBJ0YKWZBTFfCxjizqANjnP/95lpWVxaZPn85KS0tZMBhkpaWlLBAIiNhyNV6cwwWfx6PLx+Xem4FAQIzh5y1evJj5/X7RJ7SgoCAh3ly+Bp8rOztbxKFzkQ0EAmzx4sUpi7pRvLks2PJ7/MYRDAYT1sdvOurnNfo5GAYr6AsAvCy93gxgszJmM4AdADQAth5L/jPJ5iVBJ4YLM+tbfX4+CbgRPp+PMcaY1+tlVquVTZkyhVmtVjZjxgxWWlrKfD6fSPDhoswtdRk1hd7Igt+0aRMLBAIsNzdX3BwCgQCrqKhgixcvZm1tbSJpyWjuvLw8ce2KiopeVn5+fj5bu3ZtSgIqlx4wet/ohiVb6PJ49afcSFotZTBQBivoKwDslF7fDeARZcwFAH4J4C8AIgBuNZmrFEA7gPZp06YN6kMRRDJScZ/I44hEuGj7/X6Wm5vLLr74YrZgwQLm8/mENcszRdV6JzxLkgsefy1nU8o3BC7k2dnZzO/3i/ovFRUVvYSUC2NlZSXbtGlTglUuizJ3w6SCumb1mkbukv5Y/upPo28c/SGZoPe5Kapp2koAtzDG7u15fTeAuYwxhzRmBYBFADYA+EcAvwBwDWPs/5nNS5uixFDDNzLVTcxzZfNytMJbrHV3d4vmzEA8W3X79u3IyspKiAjhMd1AvIpiUVFRQv9PdSMTiMd6FxYW4sCBA2KMHK8t10nhm5EAEmLBa2trRXKQHJ/Oz08lUxQ4W/4XQELUiry5KX9evg6jOY0yTVeuXIn58+eb1pbpi0FtiiI1l8tLAK6XXh9CXPTJ5UKkFTNLXHahEENHIBBgCxYsYPPnz2d+v19YxtwPzq1dv9/PKisrWWlpKcvLy0uosijXOeHIPnGzKobcIpfh83F/Pl8Przkj+7dTdb+o3yrkY6qlzd1H8rG+rplOCz2VxKI3AXxR0zQbgD8BKALwLWXMHwB8FcBrmqb9HwBfBhBM+ZZDEP0gFUucrPD0kJOTg/3794vEnVOnTiEWi+HOO+/EoUOHYLVaceLECdx+++2wWq0oKCgQ2ZG6rqOjowMWiwWFhYUoLi4WJQB4zZOjR4+KWHe1JrnFYgFw1vLlTS5eeeUVvPLKK7jhhhtQXFyMWCwGr9crSgNUVVWlFCYoN9Hglr78bYCHG3L4mi0WS0KLvDVr1sDr9YowRXn+wWaJ9omZ0rNEC3wpgN8iHu3yg573ygGU9zz/AoD/D8CvAQQA2Puakyx0or+QJT66kMMLubW9f/9+tmjRIlZSUpIQ2lhdXc1KS0uFn7yyspLNnz8/YeOUb4xWVlYKH7lslcuWu+xPDwaDbP369SKyhc+zadMmVllZaRjBYoTsS+dhlfJGpupLlytG8vcYS7TQ+fOh2hBlbPAWOhhjBwEcVN7zSM//DODmwdxYCMIII2ucLPHRgc1mw549e0QXnh//+MeoqanBs88+K2q1cwu1pKQEHo8HL774IrKzs5GZmYmnn35a1DoH4slNAHDkyBHMmzdPVF4Ezlq3oVBIWNtyFqeu68jKysK8efMAAN/97ndFYlNf2aIcXddFchCfn3cxMjpPLhcgf1ZugfMqjLzeDd9XGIo2dKaYKX26H2ShE8lIZo0To4tIJML279/PALDNmzeL9xg7a61WVFQkWOz8wbsh8Trm3OI26mQUCARYdnZ2Qq1zOTJFfqj1yQdqGZvVUpevo1re6nOjOun9SXpSQRIL/TPpuU0QxMBYtmwZpkyZggMHDuDkyZOYPHmyqLN94sQJsshHIbquY9myZdizZw/eeOMNhEIhNDQ04Pjx4ygqKsKvfvUrvPDCC+ju7sbWrVtRXV2NcDiM2tpa1NXV4fTp08jKyhK1WJqamhI6BfH+nTk5OTh06FBCNyIACT5uHokCxC1lXl8lGeo88vv19fWIRCK93q+rq0voXyqXGeDH+O/GarWKzyaX6DXqOzpozJQ+3Q+y0AkZo6QfssbPPeTkHp7aX1BQIDoYVVRUsAULFrDKykpWUVHBrrvuOjZ37twEq1yOdjGaW0744Za9GmVi1OfTCNUnbxTFsn79esNsUfkbgXzMKBrH6PczUDCYxKJ0PUjQCcZIyMcyqjhXV1eLzUuens8zRnmpAJ5oxBtLyyLN0+z53EaCqyb+pLoZqv6Ubxhm4ZJ8rHojSNburrS0VKx7oG6gZIJOLhdiRDBzrZBbZWxRV1cnEopuuukmTJgwAc3NzaipqUF5eTnKy8uRlZUFi8UimlF4vV7s2LFDhCkCcdeF1+sVG458IzQWi2HChAkAzlY15BURw+FwQlMOM9T2c7quo6qqCiUlJfB6vThz5kyv8W63W2xuqvXRefcilXfffRd79uzB0aNH8frrr6fF5UINLohhZ8qUKb0iVkjExx5cGIG4mBUWFuIXv/gFMjIycO+992L27HiyY319PQAgKysLTqfTsOtPXV2dmEsmMzMzQUB5yVs5EiZZREk4HMadd96JvXv39ooPb2pqEi3tzFAjVrjYGzWwmDNnDn7xi18gNzcXixYtSkukC1noxLDCxZws8vMDLlptbW34xS9+gcsvvxzNzc2YOXMmNmzYINrYlZeXw+12i83QVOfmm6ZAXJyLi4sTmmH0JZq6rmPWrFkJJQTU42rHI26FAxDfCFIhHA7D5/MBwIDT/vuCBJ0YFriLhYs5Cfn5A7eUp0+fLlwVR48eFcKYmZkpIkGM3BVcuFMRwE8//VS4XlJ1aWRmZvY6R24erd4keHRLNBoVsebyeUYt74wiYtKCmXM93Q/aFD1/UDc9ifOXSCQi6sHweHKzuHJ5U1QtVcvfkxtfyBEmRmVtk62J/zSKIZfXwZEzVeU1q5u3ZtcZTNYoaFOUGCmMXCzE+Us0GoXX68VVV10Fj8eDUCiENWvWiGxReVx7e7uIN6+trcWdd94pLGXuu7bb7cJaljM9udXMY+KTWeuyxcxjyOUN1czMzF7ncD89/2bBz1U3b+UYd7nN3WBa0CWDBJ1IG+RiIWS426GoqAjvvfceYrEYuru78dBDD6GlpQXhcFi4VnRdx8KFCwGcTcnfu3evmIf7rpuamnoV8eKEw2GsXr0adru9X+LJo2TsdjtaWlpMXShyZAsAkeIvJxnxdao/KfWfOKfgbhZysRAyPC5906ZNzOfzsalTp7Lc3FzR1EJNLpILY3F3Bo9rl5tl1NbWiqYZcgneVOK9VbeO7MYxSv1XXUPye2Yt6OTywIMt0gVyuRDDybJlyxIsc4LgboxoNIo1a9aguLgYPp8PTz31FCZOnAgAuO666xCNRlFdXY3a2lp4PB5hfTc0NEDXdezatQstLS0J1n5TUxPsdjuamprQ1dWF1atXJ7hg+mpsIVvP3B2SSolb+VwAhhu33M3idrtRXV0t1pouC73PjkXpgjoWjV14hURysRAAhA/81Vdf7fV/wmq14vjx4ygrK0NOTg4mTJiAY8eOwePxiAQkOaRQ9kOHw2FRzbCmpka4YHgd81RFU/Vvy+/zDkVq5yN1DcBZQZfn4euW18arUw5U1JN1LCILnRhSli1bJtqIEQQQF+Hy8nKMHz9ebHKuXLlSbEBmZ2djzpw5yMjIgK7raG5uRnZ2dkKmKBDfdFT9z1VVVSgvL0c0GkVLS4toUdefsEV5neprWXhli1wulVtVVZVgncvja2trUVVVhaamJjgcDthstrRtiAIk6EQaKCwsJOucSMBms6G5uRlNTU1oamrCww8/nCCAmzdvxubNm+F0OkU1RTUmPRaLJUSvFBUVoaOjA6tWrUJ9fb3IEgXQS4jNSCVmnd941Kga/lCtevlnLBbDO++8g5KSEjGG4tCJc4LCwkIGgIprEQJ141DdeJQ3NysrK0V/Ul6cy6inJ4/j5vHrvPa5GhfOz+lrE9KsKiO/lrwByq/BryPXa1d/qrXZ+abvYAFVWySGCxJzgiNXLVRFTk4e4u3neHXDgoICtn//ftEMwqxMrdl7sqCn2tzCKEnJrPWcHF1jVKlRXot83mAqLMqQoBMEMSIYWehyZ6K8vDxWUVGRMM7n87Hs7GxRZle+MajdjIxK1XJRDgaDplmbRqhlbc1uGvK3CfW4Ok49dyhIJuhUbZEYNFOmTBHPKUyR4MgRIQBEVEgsFkN9fb0omev1esXxaDQKn8+HvXv3Ijs7W1RZLCwsREZGBlasWIGMjAw8++yzokCWfD0eIlhUVITW1la43e6UQhD5+UeOHElYtxrBIleQ5Ncz6lrES/vKqL72dPjSSdCJpMhibQQvgyuPJ1En+GYjz7bkG5Zutxvl5eWwWq1C1HgmJn9dVlaGxsZGXH755YjFYnj33Xfxta99DUuXLkU4HMZTTz0FXddRV1eHWCwGi8WCoqIieL1exGIxnDp1ChUVFdi+fTtaW1uRlZUlxDjZeltaWrB9+3Zx42lsbBQbs/w9+ebAQyZ5pchIT6u6o0ePYvfu3b2idNTfTTqiXSgO/TwnmWCrYp2MyZMnAyALnUiM9ODWckVFBbZt24Z9+/bBYrHA4XAIEWxvb0dzc7OIz+bn6rqO2tpaZGVlwev1Ij8/H9/85jfR1taWYBGHw2GsWbMGu3btAnC2jrnNZkMoFBL1zPuq2CjHtfM1yqV5i4qKRGLThg0bxOfj3xTk51arFaFQCDabzfD3E41GU/7moJIsDp186GOUyZMni4f6mj/QUwGxr4fRuer8BMEYE5ubchp8Z2cnq6ioYIsXL+61kcj91nLKP98M7ezsZF//+tcZALZlyxZxHr+G7L/m86pp+3I0TSrIUSkq8hrlz2u0eWpWdVH+fOmotkiCfo6STGBTFepUBJsgUkWttcJYYi0Ts81JWXjlmwAXSZfLlTDvpk2bxE1ADROUz5PFPRlGm57yGuRjRpEw8mtZ2M1K6PK5B0oyQSeXyyhlKFwhshvEbL6hdpEsW7aMkorOU55//nlceeWVyMnJSXg/WQo9R3aN8NR9+Rx+vLCwEPv27Uvww8vz8U1MOSkplVousj+b12bhrfHkejDct87XJW+g1tXVIRKJIDMzM6l7Z7AbouRyGaUM1sIebZY1JRadv+zfv58BYDNmzDB0caiNIIySf+QEITkBiZ9TUVHBpk2bxsrKyoSVXlFRwRYsWMAWLFggrHbuxkm1sqFsLctWP7+GURy60bzcFTQUyUPJALlcRobBukVGm2CnQmFhIQn6ecr+/fuZz+frlZ1plIyjCl+yhBz5uVw6l88px6szFhfWRYsWCYFPhppAJGegGvnF1eQodZ50izljJOhpJV1W9rkKt9LP5c9A9A8ubIFAgE2aNIn5fL4EXzb3SQcCAbZ48eIEMTYS/WSp+Iwlboqq1jIX1kAgkNSXbTQvH2u0YZksk9RoHvU9+bzBQoI+SM43K3uw8N8NWepjH1VQfT6fqMOipu3zDU0u9tydwUVfdnEYWfnces7Pz2fr1683FH5V5JP1+FTP4c/NIlDU6/QlzvKa8/LyhAtosFY8CXoKpEO0z2fI9TL2kV0nskgFg0HxMPKly92F+kqzV6/H55AjWuTrGrlEkoUt8hsLF1yj6xqdo95szM7j68zLy+tVRGygDFrQASwB8D6ADwBUmYy5AcA7AI4D8PU150gIOon28EGul7EP3ziUXSlcIOWNSjNftJEPPRnqHPn5+WJ+LpqyKKu+cbNrdHZ2srKyspQsc/k9NTwymbvIaON1oO6XQQk6gHEAPgRwBQALgGMApitjLgTwLoBpPa+tfc2bTkEn0R4dUF/RsQu3znm1xMrKygSLmBff4j9Vi9ZoQzGZG8PIhy1b3p2dnWzRokW9hFM+3wx+c+A3A/WYkfjK61Ejd1KxwgfjSx+soC8A8LL0ejOAzcqY7wJ4sK+52BAJejLhJdEeXZCoj01kIZOFWLVYKysrRYYoP89MII1EW72mWndcPlcVeLVyYl+fR8UockW+lpFVLjesHmwzaDMGK+grAOyUXt8N4BFlzL8C2A7gFQBvASg2masUQDuA9mnTpg3owwzG2iZGBhL1sYValtbM1y0LH2PGrhb5HNnHHAgETIWfz8X99zyVXt50rKysZAsWLEgIk0zFN57sPflbCb9JqbXXCwoKmN/vN51vKEgm6Km0oNMM3lPTS8cDyAVwK4BbAPxQ07Qv9TqJsccYY7MZY7OzsrJSuHRvTpw4gcmTJxs+GGPi54kTJ3o9iJGB/5udPHkSU6ZMEU2kiXOPcDgMj8cjCmHJfTaNaGxsTKheqGaL8kdtbS3uuOMOAIDdbofD4YDdbjfs88nP5fBqiy0tLaJol8ViwYwZM9DU1JRSb9FUWtHx0rkPPvgg9u7dK/qJyv1F3W437r///l69T9VrpQ0zpWdnrepUXC5VAH4kvd4FYGWyeUdblAuRfuRvV2Stn3tEIvEOQ3l5eczv94v6KmrCjZw0JPuUZR+1HKrIx8ghjckiU+SaMYzFvzHwzFAjC55fry/Ubw5G7iF5fjOXitk3EP5zsK4YDNJCfxPAFzVNs2maZgFQBEBt6/48gOs1TRuvaVoGgHkAfjPIew0xxjhx4gQKCwsTrHXi3IBblZmZmfB4PGhra4Pb7UZLSwt0XU+ohSI3cwbiVjqvi84tciBeb8VisYg6406nE263G7W1tQDONmdWsVqt8Hq9opm0y+XCa6+9BpfLJc6RredUaqfwRhVybRijxhUNDQ0IhUIJx9Q1qmVxZetf/V0NOWZKzxIt8KUAfot4tMsPet4rB1AujbkP8UiXAIDKvuYkC/38RvarU7z66EZNCOLvMWZujaohhvL7cus43kOUj5HroaTq95atc3UDM5VStX3tBahjk1VcVM9LdVO2P4ASi4jRCLlgzg2CwSCbP39+QmgiY6nFUxu5GOTIGC7G8lg5giaVtH216Jc8X2VlZdI5Ojs7e9Vp5+cmu6Y6h7wG1f1kFq45UJIJeiouF4JIC0YuGNowHV3wTdDZs2fDYrH06kZktHHJj/ONUtXFILswjhw5klDmlrsx+EZrUVGR6YYrP0d2rUQiERQXFyMcDiMajeLo0aN9bnTOmjULHo9HuGt4KVyz88w2avlzI5cKn7Ouri7p5xk0Zkqf7gdZ6ISMaq2TG2bkCQQCImlIjbuWwwWNXBU8nV6teKgm3qjHuHUrx63zYypGyUnBYJBVVFSIY6nEg8vfCPhcZmVwkyU+JXtf/saRzk1REnRi1FBYWEjCPkrw+Xxs2rRpbPXq1aIQluzSUF0jKmpcOR/L/edmrdu4mKtx7kZ+aiNXDnehqLVlkgmu0U3JaH3qNZO5aIxcU0NVcZEEnTinIGEfWbxeL5s6dSrzer29KiCqIYhGgqiKoFkdcX5MDS/k8/flrzfzTavJTPn5+Wzt2rWmNx6j9Rs13DATdyOhN6qxPpg+ojIk6MQ5CQn78OLz+ZjP5xO/67lz5zK/3y+sa7NOQurGn1z/XHbRqPCxcqld/r6Z0Krnq1EzjPWOU5eLhxlhFs2ibtImu6Goc8tr4d86SNAJgpGwDwcul4uNGzdOiHogEGAVFRXCDx6JRERKO2O9C1+pQhcIBETdctW6VoVbtXz5TzM/tiyw3JI3cpnIkSdmYm5UMle9eRl9ZnmsekORxxcUFIjQTLO19hcSdGJMQMKeHnw+Hxs3bhxzuVwJ73PLkgv0pEmTRCegZN17ZF+7bKnyn1yoZetXncfomwA/n/vXVV+7unb5W4LRmGAwyLKzs0XdGFW8VQvd7NtGMpFWM1/l7NiBQoJOjClI2IcWbpWryCIWicSbNKuFtlQLmx8zawKtpvur1q2Zz122xo1uFEbwTkGlpaW9YujlMfynkU9cvvHwG0RfHZDk359RAa/Bul5I0IkxiZmwk7inDrfO+xJ0xnpvTKpiyxhLiIDhY9SfRhuj8jWNzvf7/aK1XSrZn/zcyspKVlFRwebPn5/Uh56sObQqxnJNGrM5eVjnggULEsIoyeVCEH2gCjtZ7anhcrmYy+UyFHOO7BIxK5jFXR+yr5gx8zA/oygQMz+63EeUu3uMxprBbxiyqJp9TrXWupFP3Gjz1cgFw9ddWVkpvh0YbawOBBJ04ryAW+dktSfH5XKx5cuXi9/RunXrDMfJPl8zf7WRj1w+Jj/UptEcsygS+RhPUFIrNiarmS7PwXt6quNUq1x2BakNMoxi4eVYfPUz8Z/9abSRCiToxHlHMqv9fBV3VciXL1/O1q1bZ+py4QKqNoJWfdtmm5KqxStvhppZ60ZzcOGtrKxk2dnZCVmkqmvESOT5DUF9r7S0tNemqOw7TxY2qe4L8NBLefNT3UwdKkjQifMWI6udizs/fj6gCrkc0WK0KcoTcrh1rsadc5GSj3m93oQ5zNwjRiKsvq8e5+Ipizn/xqCOMbKYI5EIczqdCZ9v/vz5zO/3m64xmQjL1+D12OUbA286bVRWYLCQoBME6y3uagnfsSjuslWuCjnHLGxR9Z9zVNdEZ2cn83q9DECCqCezvo2Om2VkGl1fXp8akcK/VciWsdPpZACEqO/Zs4fNnTuXtbW19RLevnzdso+cu2ZkCz0YDLKLL76Y+f3+Xt9S0u1D1+LHh5/Zs2ez9vb2Ebk2QSxbtgzPP/88pkyZgpMnT4r3J0+ejEWLFgEAnn/++ZFa3qBxu9145ZVX0NraCgBYvnw5nn322aTj169fj0OHDgEALrvsMlit1oT2cXIVQV49MBaLwel0wmq14plnnkFBQUFCgwdesbChoaFXFUJ+TG0SIc/b2NiICy+8EKdOncKGDRvEcbn1mzwPX6vdbhfr4OM2btwIALj++utx++23w2az4eTJk7jjjjvAW2JaLBZUVVUlnGeE3FJPrbYYCoVw/fXX47XXXjNsdqG+1180TXuLMTbb8KCZ0qf7QRY6MVpI5pY5Fy33ZO6VZMip/1arla1fvz7Bh85Yb3eJ6ndOluijvjZLq5djtxsbGxkA1tjYKM4z8m3LPnI5dFKeV7bS9+/fzwKBQK/ImVSs51RcRGpkC98cHQp/OsjlQhCpkYq4j2aB78u9kgpc2OVoDzVzUsYousMMeWyyioZyNMuePXt6zaFeMz8/33CNqng6nU62efPmpCGHfa0/lU1co30Cs4zV/kKCThADwEzcR6v1Lov5YOAp8XzDUI74UBOHjM5lzLzglRy1YnZzMPI1q89VS9fIx65emzHGNm/ezAAIUZfPUUVX3itIZY1m107lWH8gQSeIQSJb56PRNTNUYs7x+/0JrdnkkEO1aYQc7TFt2jQR7aEel8Mf5QQkjlk5AdUlkyx93ug9NYZ+8+bNvc7hn4u7ReRwRLlSo+pGSYa6FrVWzEAhQSeIIWY0uWaGWswZO5s2n6w5tBxnzVPiFyxY0Gs8F0jVzy0jR4Lw81QRl99Xzzc6J9l4r9fby8I3i7c3WpN6s+prLfJNLNleQyqQoBNEGhlJ10w6xJzDRVjNdOSbkLIFr4YSynNwsTdqpMznVGup8HPl43xuM9+7LMbq55DhIZY33XRTwvn85tVXyKL83Kh0rnrzk7/BGJXl7S8k6AQxTKTqmhkKgU+nmHNk94aRsBqJGRdw1UVjZOnL10kWsy1v0MqleeUIErl2uzqver1t27axCy64gLW1tYlxcmcms3UavVZ98arbSBZ9s3n7Awk6QYwQqVrv/RV4l8uVdjHnqFawLFhGKfW8MQZvLs3YWcs9WdiemWUrHzdag7w2IzE3soaDwSDLyspiU6dOFTXT5bK+RjeVZC4dow3WZOWFB5NgRIJOEKOAZNb7QAR+oGGJ/UXd1FStT1XgeBq8kWWv1j6XzzO6brK2b32tua8wwWAwKEoeyJ/JLOxRHmMm0H1tfBrdAPoLCTpBjEKGWuDTgezfliNA1Lop8ngj9wIXMKPSukabjfJ86lpSEfW+vg3wtcjFvvh5yW4u/KZk1ANVrS/Tn0ic/kCCThDnAP0R+OGyzhlLjACRfdqqf1weL1uyst9bju5I5qYwgvvtzW4CZj+ToXY/6qv2jLxWI4tetuyHusoihwSdIM5B+hL44XS5yC3c1I3KQCCQsKGolpOVXR9mYYnytczEVN74lG8a6o2lP/5pvl65xIGZGBu5lnhkTbIuTUbXHIzQJxP0z6ReEoYgiOHk+eefF48TJ06gsLAQhYWF+PKXvwwA+Pvf/z4s64hGozh69Cii0agoyhUOh6HrOmKxGB599FEcPnwY0WgUuq7D4XAgMzMTJSUl0HUdVVVVoiCV1WoV4+TCVnJxroaGhoTXQLzoVU1NDZ599llRtItjt9vR1NQkCnKpRcD6IhaLwePxIBaLifNisRiAeBEuvr66ujqxrmg0itdffx1bt24FAJSVlcHtdiMUCon1G62BzyPPNaSYKX26H2ShE8TA2bZt27BeT7aw5YQjOc5cHW8Wo23U6i1Z/RUjuJXL18K/EQzE8pVdOfy16iKSv6Xwcbzphpw4VVlZ2et3keq3kFQBuVwIYuwx3KLO3Qy88bJZSzl5vFGNFfnmYFTLPNn1ZYLBoGFyk9HYZKibmfJc8lr5tdSwTT4mEAgkxMKnsi8wEEjQCWKMsW3bNgZgWEWdW65+v7+XX9ysGbQaumhUB4Zj1LdUHpcsu1RdZ39FVP62Ie8XqGNUsTf6fH1F7gyWQQs6gCUA3gfwAYCqJOPmAPgUwIq+5iRBJ4jBsW3btmG30n0+H8vLyxOZoLJ7grFEMVUFT3WzGKFGy5iJf19C2Z9IF3ndPp+vVzEuo/UYuYmSbaIOJYMSdADjAHwI4AoAFgDHAEw3GXcIwEESdIJIP9xKX7p06bBcLxgMsqlTp7JZs2axQCAgXBBm9V7kPqBq1mRfFrQqmPw9+Viy82XffKrCyr8h+P1+MYfaS1UNc1THGa3DbH0DZbCCvgDAy9LrzQA2G4yrBFABYA8JOkEMD0uXLhWiPhzWus/nEyn93DWhVlLk8GNqqdxU3RBGm6l8zmS+e9Un3p/rcHeSGl8v7x/IRbySfeswq6po5FrqD8kEPZWwxUsBfCS9/mPPewJN0y4F8A0AnmQTaZpWqmlau6Zp7V1dXSlcmiCIZLz00ktYunQpDh48iPvuuw+33nprWq4TCoUQDofxwx/+EGfOnEkp5E7XdVitVni9XthsNgDxsL2GhoZeY43mU3t1btiwAdFoFEVFRQiHw6bhf7quw+v1Qtf1PsMX+Xqi0SjC4TA2btyIjz/+OCEMkodoOp1OWCyWhPXIYZJquCX/7GqP1ZaWFuzatWvQvUUNMVN6dtbyXglgp/T6bgBuZczPAMzveb4HZKETxLCybdu2tFnrgUCAZWdns0AgIEL1KisrWV5enkgqMrLQzTCy5M3O72tz0mguNcGor3WpfnLZTRQIBER7Oz421YQhs+eDcbcwNngL/Y8ALpNeTwXwZ2XMbABeTdM6AKwAsEPTtNsHdIchCKLfbNy4MS3WejQaRXNzM26++WY0NzcDADIzM7Fu3To0NzfD6/XizJkzKC8vN0wSUp8bJdzwJB3V0laTeTjcGubPVWTLGTBOVFLnk5+73W40NTVh+fLl8Hq9yM3NFWO41c8TjtT18mvJCVjhcDjh/cbGxvQkFQEpWejjAQQB2HB2UzQnyfg9IAudIEaMobLWg8Gg2PSULXG5xRz3nxs1r1Cf80Qj1UI1s9D7a7mbbYL21yKORM7WelcTjuR9AbW+u1qwjP++5Fh1s7X3BwxB2OJSAL9FPNrlBz3vlQMoNxhLgk4QowAu6v0V9ra2NtbW1samTp3KcnNzWUVFBdu0aVNCxUU5bFF1NajiJY8ziwgxC03sb/anmQsmlRBHeb3V1dW9kqfkapNqFI38UEM1h7pI16AFPR0PEnSCSD+ytS4LuyruXMTb2toYAJaRkcH27NnDNm3axPx+v7CUudXOfehyViRjiXXIuaDl5+cbFvdSMRLfZNZ1fyz3ZHMYfYuQi3XJn8usQbYs4mYt6eTxg4EEnSDOc1Rhl8V9y5Yt4r22tja2Z88eZrVaWW5uLvP7/Sw/P59VVFSwYDAoxJlb7EauFe5m4IIoN7swQxVI/jxZYpFZ96D+ulzMBNfINWT2vlnjDqNxg7XYSdAJgmCMnc0uVcV9y5Ytor8mY/F4bB7FIpfH5e4G1d1iJIpyga5kMeFmfnd+TB3DMZrTSMz7E/Nt5BNXj6v7AKla3Ua/q4GQTNC1+PHhZ/bs2ay9vX1Erk0QBPDwww8jGAzi0UcfhcvlgsPhSDh+/PhxlJeX45prroGu6ygvL4fVakVdXZ0oLxuLxWCxWFBTU2NaLpbT0NCAsrIyUUIXQEJkTDQaTSivazSXPL6urg4AUFVVlTTePBwOpxTzzaNUeFx5OByG2+1OmD8ajaK6ulp8Zv65eEQNxyiSR557MGia9hZjbLbRsfGDmpkgiHOWjRs3AgCuvvpqrF+/HgDgcDjw6quvIj8/H1lZWZg+fTosFguKi4uxcuVK/OxnP0NVVZUQZF4PPBwOi+QhFS5gZWVlaGxsFLXD+fW4iBcVFSUk4qjCruu6eI/XWZfnN7sRpJrAw5OF5BBF9bNFo1FYLBZxQ+PnAEBtbS0AwGKx9LrJqHOnepPpN2ame7of5HIhiNGDy+Vi48aNEz+3bdvGVq9eza699lq2du1a5vP52IQJE1hpaWlCDXRefVFOvuEYdfKRH2oEiFweQN185Ocn6z06VOGBsttFTtOXOzSZNcfm44zmk38vI5n6TxDEGMfhcODQoUNwOBz4yU9+gvvuuw9PP/00/vSnP6G7uxuXXXYZZs6ciXXr1gGASI8vKSnBvn37EpJveBq92+2G3W5HY2NjQnINTxaSLVieEs/PXbNmDex2u6GVC6BXwhFPTqqvrxfuGzmZJ1X4eXy9PH2fJxx9/PHH8Hq9cDgcvb4NWCyWXolD8jo4RiUBhgryoRME0YuXX34ZzzzzDN5++22MHz8eDQ0NmDhxIvbt24dYLIb29nY0NzdD13XU19fD6XQK10ldXR0ikQgAYN26dbBarcJdAsRdE9wtAfR2mcj+dCP4NVS3Bq+5omasyr77VJDXoc7vdruFm0gez39yl5J6PNk6+0syHzoJOkEQhkSjUXR0dMBut+PDDz/El770JeTm5uKBBx4QIrV169Zem6LhcBhbt25Fd3c33n//fezdu9dQAGWR56/D4TAaGxsNNw/VTVF+Tl8km7O/vw/Zh8/fkzdnk92I+FpWrlwpfo8DWQ9tihIE0W90XUdOTg5efvll8OqoFRUVeO+99/DSSy/h1KlTePfdd0WNFw4X2wsvvBC7d+82nJePkzcSHQ6HsHC5uMsbpDxKhItqXV1dL2vZiL4aR6vXkdcofyYe3SNvevKm2Hx8XzcOq9WKPXv2oKmpKemaB4yZcz3dD9oUJYhzD7/fz6ZNm8bsdjvLy8tjfr8/YQOTZ4auX79eVC00q4fONxnleHKerGRWR11+X27QnCxDNNnmqDxfX4k/ZjH3ZslPZuvpa1xfgBKLCIIYKniUh9/vZxUVFWzx4sXM5/MlHJdL0PKmEbKIyzVhOMFgMKGcgFwETEZtfWckwnJiUF+1XPgc8o0mFYwyR82E3SghaaCQoBMEMaTwKot5eXls//79LDs7mwWDQebz+diCBQuY3W5n8+fPF2Iud/mRrXC1/yjvhmSWqclRU/TNSgfIP83gIYdGmarqOPm5esMw6mKkXsOsAXV/IEEnCGLI4XHavBGEy+ViF1xwAbv66qvZxRdfzK699tpesdlq6V1ZRFXXSV81UYzqyMilBmTrv6/PodZi6cu1Iq9PFXPGjPuMBoPBhAbUA4UEnSCItBGJRNj+/fsZANHZiLtdVPcI91eryTWpWtN8jFExLNllUllZKb41pPoZ5Hn4twozAVfP7euGZOSeGSjJBJ0SiwiCGBS6rmPZsmXYs2cPpk6dioyMDLS2tiIajcLtdiMcDiMSicBqtWLXrl2w2WwJyTVy3LeaDGTU/Yin/auJSbyLkdVqxebNm3Ho0CHTcgQq8rV55ApPFJI/p5x4JL/PI3PkJCI1tDFt6f4SJOgEQQwJ99xzD5599lnYbDaUlZWhqakJp06dQl1dHdrb29HR0QGPx4NwOCyEkzd75q95WCIXQH5MzbiUxbKhoQEdHR0iXJDfSOQ492TZonw8F2UgflPgYZSqqPPsV74unlAEwDRkMRaLwe12p6/1XA8Uh04QxJDBLVAuiFu3bsU777yDhoYGPProo3j77bdN+4rKYvzxxx8nHFeLW8nvL1++HF//+tdx6NAhcf1IJIL6+noR365WTTRCPWYUvx4Oh9HS0oKysjIAZystyjcDo3l5ZcbBVlrsEzNfTLof5EMniLEP92kHg0G2YMECEfUi+9fleHQe5sg3D1ON6+Z+ee7LlvuBqj73vuYy85XL86sRNn2FRg4lIB86QRAjAc+m9Hg8YIxhypQpcDgcCUWsZKu1rKwMbW1t2L17t6gBY4TsguG+abmOisPhQEtLi1hDqta5WpzLqE4L95WHQiHhRjErVWC29nRBtVwIgkg7XHibmpoQiUTQ3t4Oj8eD1tZW4b6QBVMtjmXmpuno6IDD4RAVEdWNUqD/bg6z4lzy63A4jPr6esRiMWRmZhpu0hoVEDN7vz8kq+VCFjpBEGlH13XYbDZUVVVh8+bNWLhwITIyMhKaXfAGGMBZ4TPaEOVEo1HhH1crOnKMzktlrbKoy+/LWCwWbN68Oak4yxunw4KZLybdD/KhE8T5C49J5+UD1JosRrHmRin23E/O3zNL/kmGWVw5Lwlg1LCiryxWxlhCmQM5EzWdiUVkoRMEMezYbDa43W6sX78eb731FgoLC1FfXw8AIsab10sHIFrUHT9+PMHP3dTUJEIc5UgYsxK9Kkax7zyunLuHeNMMDj+uVmhU57NaraiqqoLT6RQx7XV1dekNXzRT+nQ/yEInCIJHwGzatElEweTn57NNmzYlFM1iLF42QK6MKFu8cvSJnHZv1MpORS0/IL/f2dnJ1q9fb1oGwCjF38gCl0sCqGUF+gvIQicIYjRitVphs9ngdDoxb948HDhwAA8//DCcTieamppEM2YAyMnJgdvtFq3qeGMJq9UKu92O+vp6VFdXo76+HmVlZYhGo4at7FT4Zir35/NvCPyct956q5eFzhOgGhsbxfzcylctcD4uFAqJyJ6B+PZTgQSdIIgRx2q14sEHH0RJSQnuv/9+/P73v4fD4YDT6UwQSx4Voyb7qOKv67ooL5Bq+r+u670yOq1WK372s58ZpuxzMW9paUnIapXhm6tlZWUiIamvhhuDwsx0T/eDXC4EQRjBm2isXbtWVGuUy+rKBb3Uwlhmm6ep0pc7JFm1Rb7xKa9PrgQ5VIlHIJcLQRDnCnPmzMErr7yCH/7whwCAnTt3Yu/evaipqcG7776LO++8M8EtojZl5puY/XVtGPULVX/yDVh+bX6Mh16qCVNyiQC5oFe6IEEnCGLUYbPZoOs63n33XfzgBz/AZz7zGRw5cgTf+9738OUvfxldXV1oaGjA8ePHhX+ai+bhw4cTin2lAhfrUCgkXvNsUPmmEIvFUF9fj1AolFDh0eFwiEbZ/JpytUm73Y41a9aIwmTpggSdIIhRia7r8Hq9cLlcuOyyy5CXl4d/+Zd/wYQJE1BeXo4lS5bA4XBg+fLlCf7phQsXJvinU7XSI5EIVq9eLUIgZb83t9ydTidisRhWr14tUv4BCL87vxavAMnn1HVdVIBM14YoQKn/BEGcA4TDYXR1dWHp0qXIz8/HpEmT8NBDDyEcDsNms/UqE8DjwPnrZBuQclaokdvFzAXDa7kDQF1dHRwOhzg3FAph9erV2L17tzi/qKhIlCgABl55cdCp/5qmLdE07X1N0z7QNK3K4Pi3NU37r57HYU3TrhnQSgmCIAywWq3IycnBvn370NHRASAurDyEUa2XUlRUJHzWfSUWyfXYASSUHFDH1dbWor6+PqHZBYCE2un8ZjJr1ixYrVbx4A09gIGVJEiFPgVd07RxALYD+CcA0wF8U9O06cqwEIDFjLGZAB4A8NhQL5QgCGLOnDlobm7GRRddhGg0mhDCyAWciydvoFFUVCR840bwcEfu845EIkLAZbHnYZQWi0Wcy8MP5Vh4fk5mZmbCdbiYm9V2HwpSsdDnAviAMRZkjMUAeAEskwcwxg4zxnhF+jcATB3aZRIEQcSx2WwoKSnBqlWrRESLKty6rqO2tha6rmPXrl3CkjfCYrGgo6NDiHZmZqYoucsLb/HoFf4+AGGdA/GbQVNTE4C4tc7T/lV3DSdtjS7M4hn5A8AKADul13cDeCTJ+I3yeOVYKYB2AO3Tpk0bkphMgiDOT+TY82AwmFAqoLOzk+Xl5YmY8GTNogOBQEJDabN4caOGF/L7Zg05IpFIQsPpwcajY5Bx6JrRfcBwoKYVAFgD4H6Tm8djjLHZjLHZWVlZKVyaIAjCGO7CqK6uxo033ogTJ06IY7quY+HChYhGowiFQiJk0IicnJyE9nXJWslxSzscDqOxsVE0wpBfA0jwwUejURw5ciQhNj5tMelmSs/OWtULALwsvd4MYLPBuJkAPgTwpb7mZJQpShDEEBGJRFggEBAlb2WrfMGCBaLQlxmptpHjJX15QS7VouclgQOBAKuurk4oLCZnrxoV9OoPSGKhpyLo4wEEAdgAWAAcA5CjjJkG4AMAC/uaj5GgEwSRBnj6fV5enhD2vLw85vP5TMWTj5FvBIwZu0XkGu1moizXUE+1hEB/SSbofbpcGGOfAFgL4GUAvwGwlzF2XNO0ck3TynuG1QCYDGCHpmnvaJpGAeYEQQwrVqsVTqcTs2fPhsfjARDfuLz77rtFdUQjPv30U7hcLpEcJIcyysi9Sc0KbMluGx5lY0S6NkUpsYggiDEF7/dpsVjgcDhw9OhR1NTU4IUXXuhVNTEUCiUkEnE/eW1tLWpqapImKJn1PJV950VFRdi1a1fKFR9TgXqKEgRx3mC1WlFTUwOHw4H6+nrU1NSgo6Ojl8UdCoVw4403mmaS8lBIXn9FTjiS0/z5xqg8f0NDA3Rdx0MPPZQQMpnu3qIk6ARBjDm4W6SmpgaPPPJIQjKQzBNPPCFKB6jRJ7yWDLfQY7FYQnao3ORCTnDidWDC4TDuu+++hAYYcrXGdECCThDEmEXXdcyZMwevvvoqtm/fju9///sAgMceewzz5s3DypUrRTJSWVmZSN/njS5ky91isfTK8nS73b3K90ajUWzduhUejwezZs1KmENtoDHkmO2WpvtBUS4EQQwXTqeTIZ4/w2w2GwPAxo8fz3RdZ36/X0Sv8AePVJFRI1PkqBe5gUVnZye79tprE5Kd1KYcgwHU4IIgiPMZ3qc0NzcXoVAIM2bMQFFREX75y19i+vR4aSrZl15VVZWwGQokJhbx17wMgFz35fe//z3effddfPTRR2hqakIkEkmwytOW9g+QhU4QxPnF0qVLGQA2adIk5vP5GGPx+HHe7o63tGMsMQnIKPlITueX3/f7/QmWu3q+av33B5CFThAEEeell17Cli1b8D//8z9YsWIFjh8/Do/Hg9deew3AWV86T+eXG1zI/nN1I1WuqT59+vSE4l38+IYNGxAOh7Fy5cq0bI6OH/IZCYIgRjnf//738Y//+I8oLS3FyZMnUVxcjFgsJoTbbrf3Sh4yikMvKysT/URLSkrg8XhgsVhQVVUl+onW1dUBgHDPNDU1ITc3Nz2uFzPTPd0PcrkQBDHS+Hw+tmjRIjZ37ly2du1a1tnZyQKBACsoKEhI35c3QBmLu2IKCgpYMBgULpTq6mpWWVnZqzaMWgags7OTXC4EQRBDTX5+Pp588kksXLgQ48ePR1VVFcrLy0XIolwCgDfCAOLJSzxpiL+Wa6nLzaIbGxvFebyJRrpCF8nlQhDEeY3NZsODDz6Ijo4OLFmyBDfddBOysrISsjt1XRfJSTw79P7778euXbsSEorkpha8lovstpEjY0aqYxFBEMSYRtd15OTkoK2tDVlZWdi6dSvq6upQUlIiLGyHwwEg7hNvampKqNHC0/+Bs2GO4XAYd955p+iBKl8rXaGLJOgEQRA95OTkwOl0AgDefPNNQ9eJw+FAVVVVgpjzjFHgbANoXdfxla98BRUVFSk1rB4KqNoiQRCEAg8/tFqtCIfD4ifvHSr3Gq2rq0MsFkNNTY14T46MkedpbGwUN4iBWulUbZEgCKIf8OJecvPp+vp6fPvb3+6VLepwOOB0OhP85PJxucl0WVlZQqXGoYYEnSAIwgSr1Qqv1wubzQan04nrr78+YeMzGo2ivr4+oTkGf5//5L51u90OAL2qMw4lJOgEQRBJ4DVdeDletaaLxWJBSUkJAIjyuLIffcOGDejo6MCqVatQW1vbqzrjUEKCThAE0Q/q6upQW1srfOolJSUJTSyMSgQ4HA488MADCAQCaV0bbYoSBEH0A97iLhqN4tixY1i4cCGcTiesVmvChijfTFU3RgEMykKnTVGCIIghgjejvuiii+DxeISYA0gQc76ZytvRcfj76YAsdIIgiAHA48+BeGEuHpfOrXS5CqOu6wiFQrDZbAiFQmhpaUlwy/QHstAJgiCGGKvViqqqKpSUlGDVqlUIhUIJIYnRaBRFRUWIRqMIhUJYvHixEPWBinlfkKATBEEMEB6vft1118Hj8QA42zy6paUFu3btgtVqRXd3Ny699FLDWPWhhASdIAhiEOi6js2bN8NisQg3S2Njo6ipHg6H4XA4sHPnzl5t7YYaEnSCIIhBYrVaUVJSgjVr1iAajWL58uXweDyora1FNBqF1+tFTk6OCHWkTFGCIIhRjM1mg9frBQDcdddd+Nvf/oZTp06JcgG8+iLvdEQ+dIIgiFGM1WrF0aNHcfz4cZw8eRITJkxALBYT/vV58+ahq6uLGlwQBEGcC9xyyy1oa2tDXl4ewuEwXC6XiFUvLy/HqlWrkJubm5Zrk6ATBEEMMbfccosotcsJh8PQdR179uxJW5MLSiwiCIJIE7xMQCwWw+HDhzFu3DjMmzcPmZmZCVUb+0OyxKKULHRN05YA+DcA4wDsZIzVKce1nuNLAXQDWMUYe7vfKyUIghhD8AqN0WgUW7duxbe+9S1Mnz49oebLUNLnpqimaeMAbAfwTwCmA/impmnTlWH/BOCLPY9SAI8O8ToJgiDOSWT3yn333ZdQ3GuoScVCnwvgA8ZYEAA0TfMCWAbgXWnMMgDNLO6/eUPTtAs1TbuEMfaXIV8xQRDEOYau63jwwQeFiB8+fDgtVnoqYYuXAvhIev3Hnvf6O4YgCOK8hZcJ0HUdCxcuHLE4dM3gPXUnNZUx0DStVNO0dk3T2ru6ulJZH0EQxJhC13XR+WioSUXQ/wjgMun1VAB/HsAYMMYeY4zNZozNzsrK6u9aCYIgxgQjWZzrTQBf1DTNpmmaBUARgAPKmAMAirU48wH8jfznBEEQw0ufm6KMsU80TVsL4GXEwxabGGPHNU0r7znuAXAQ8ZDFDxAPW1ydviUTBEEQRqQUh84YO4i4aMvveaTnDEDF0C6NIAiC6A9UnIsgCGKMQIJOEAQxRiBBJwiCGCOQoBMEQYwRRqzaoqZpXQB+PyIXN2YKgBMjvYgkjPb1AaN/jaN9fQCtcSgY7esDBrfGyxljhok8Iyboow1N09rNSlKOBkb7+oDRv8bRvj6A1jgUjPb1AelbI7lcCIIgxggk6ARBEGMEEvSzPDbSC+iD0b4+YPSvcbSvD6A1DgWjfX1AmtZIPnSCIIgxAlnoBEEQYwQSdIIgiDHCeSPomqZdpmnaLzVN+42macc1TfueybgbNE17p2eMb7StUdO0SZqmvaBp2rGeMcNa2VLTtM9pmuaXrv9/DcZomqa5NE37QNO0/9I07bpRtr5v96zrvzRNO6xp2jXDtb5U1yiNnaNp2qeapq0Ybesb4b+VVP6dR/RvpWcN4zRNO6pp2osGx4b+74Qxdl48AFwC4Lqe5xcA+C2A6cqYCxHvlTqt57V1FK7x+wAe6nmeBeCvACzDuEYNQGbP8wkAjgCYr4xZCuDnPWPnAzgyyta3EMBFPc//aTjXl+oae46NA3AI8UqnK0bT+kbB30oqaxzRv5We624A8DSAFw2ODfnfyXljoTPG/sIYe7vn+f8A+A169z39FoBWxtgfesaFR+EaGYALNE3TAGQi/p/0k2FcI2OMRXpeTuh5qDvromk4Y+wNABdqmnbJaFkfY+wwY+zjnpdvIN5ha9hI8XcIAA4AzwIY7v+HqaxvpP9WUlnjiP6taJo2FcCtAHaaDBnyv5PzRtBlNE3LBjAL8bu6zJcAXKRp2iuapr2laVrxsC+uhyRrfATA1Yi3+Ps1gO8xxv53mNc2TtO0dxAXml8wxtQ1jmjT8BTWJ7MGcStpWOlrjZqmXQrgGwA8BqennRR+hyP+t5LCGkf6b+VfAWwCYHbNIf87Oe8EXdO0TMStnkrG2P9TDo8HkIv4XfUWAD/UNO1Lw7zEvtZ4C4B3AHwBwLUAHtE07R+Gc32MsU8ZY9cibtnO1TTtK8qQlJqGp4sU1gcA0DStAHFBv3+41sZJYY3/CuB+xtinw702IKX1jfjfSgprHLG/FU3Tvg4gzBh7K9kwg/cG9XdyXgm6pmkTEBfKpxhjrQZD/gigjTEWZYydAPAqgOHeMOtrjasR/6rLGGMfAAgBuGo418hhjJ0C8AqAJcqhlJqGp5sk64OmaTMR/yq8jDF2cnhXdpYka5wNwKtpWgeAFQB2aJp2+3CuDejz33hE/1Y4SdY4kn8riwAU9vz7eQHcqGlaizJmyP9OzhtB7/Gj7QLwG8ZYg8mw5wFcr2naeE3TMgDMQ9yPPZrW+AcAX+0Z/38AfBlAcHhWCGialqVp2oU9zycC+BqA95RhI9Y0PJX1aZo2DUArgLsZY78djnX1d42MMRtjLJsxlg1gH4DvMsb2j5b1YeT/VlJZ44j9rTDGNjPGpvb8+xUBOMQYsyvDhvzvJKWeomOERQDuBvDrHr8bEN8FnwbEe6Qyxn6jaVobgP9C3O+1kzEWGE1rBPAAgD2apv0a8a9s9/dYSMPFJQCe0DRtHOIGwV7G2Iva6Gkansr6agBMRtzqBYBP2PBW50tljSNJn+sbBX8rqfwOR/pvpRfp/juh1H+CIIgxwnnjciEIghjrkKATBEGMEUjQCYIgxggk6ARBEGMEEnSCIIgxAgk6QRDEGIEEnSAIYoxAgk4QSejJ4psw0usgiFQgQScIiZ5mCLs1TfuOpmm/AXAGBrVgCGI0QpmiBNGDpmkWABEAJxBPx3b1vH5zJAt4EUSqnE+1XAiiL76CeKOE3wL46kiVriWIgUIuF4I4y6yenxtJzIlzERJ0gjjLLAB/Zoy1j/RCCGIgkKATxFlmAXhzpBdBEAOFBJ0gAGia9hkAMwEkaxlGEKMaEnSCiPNFxDvDvz3SCyGIgUKCThBx+IYoCTpxzkJx6ARBEGMEstAJgiDGCCToBEEQYwQSdIIgiDECCTpBEMQYgQSdIAhijECCThAEMUYgQScIghgjkKATBEGMEf5/osl3mE+ME3UAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_17_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "q = DS(h=None, x=0.1)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "r = 2.5\n", + "while r < 4:\n", + " q.h = lambda x: r * x * (1 - x)\n", + " t = q.trajectory(1000)[950:]\n", + " ax.plot([r] * len(t), t, 'k.', ms=0.4)\n", + " r = r + 0.005\n", + "\n", + "ax.set_xlabel(r'$r$', fontsize=16)\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "d402f68e", + "metadata": {}, + "source": [ + "## Markov Chains\n", + "\n", + "\n", + "Our first task is to simulate time series from Hamilton's Markov chain" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "dd7f3988", + "metadata": {}, + "outputs": [], + "source": [ + "pH = ((0.971, 0.029, 0.000), # Hamilton's kernel\n", + " (0.145, 0.778, 0.077),\n", + " (0.000, 0.508, 0.492))\n", + "\n", + "pH = np.array(pH) # Convert to numpy array\n", + "\n", + "S = np.array((0, 1, 2))" + ] + }, + { + "cell_type": "markdown", + "id": "1dae9dff", + "metadata": {}, + "source": [ + "We'll borrow this code from Chapter 2." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "db2e4615", + "metadata": {}, + "outputs": [], + "source": [ + "@jit\n", + "def tau(z, S, phi):\n", + " i = np.searchsorted(np.cumsum(phi), z)\n", + " return S[i]" + ] + }, + { + "cell_type": "markdown", + "id": "e4b044b0", + "metadata": {}, + "source": [ + "(We have targeted the function for JIT compilation via `@jit` because we need\n", + "fast execution below.)\n", + "\n", + "As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`.\n", + "\n", + "Here's some code to generate a trajectory starting at $x \\in S$, using\n", + "stochastic kernel $p$." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "c1e29b48", + "metadata": {}, + "outputs": [], + "source": [ + "def trajectory(x, p, S, n=100):\n", + "\n", + " X = np.empty(n, dtype=int)\n", + " X[0] = x\n", + " for t in range(n-1):\n", + " W = np.random.rand()\n", + " X[t+1] = tau(W, S, p[X[t], :])\n", + " return X" + ] + }, + { + "cell_type": "markdown", + "id": "c9944b49", + "metadata": {}, + "source": [ + "Let's plot a trajectory." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "40bd805f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_25_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "X = trajectory(0, pH, S, n=500)\n", + "\n", + "ax.plot(X)\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "5fbbd05e", + "metadata": {}, + "source": [ + "Another option is to use existing code from QuantEcon. This code is\n", + "JIT-compiled and very fast." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "6833bc8a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_27_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "mc = MarkovChain(pH, state_values=S)\n", + "X = mc.simulate(init=0, ts_length=500)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(X)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "edae1cc7", + "metadata": {}, + "source": [ + "Here's a solution to exercises 4.23." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "0e04b296", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.59744" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "@jit\n", + "def compute_marginal(n=100_000, T=10):\n", + " X_vals = np.empty(n)\n", + "\n", + " for i in range(n):\n", + " X = 2 # start in state SR\n", + " for t in range(T):\n", + " W = np.random.rand()\n", + " X = tau(W, S, pH[X, :])\n", + " X_vals[i] = X\n", + " return np.mean(X_vals == 0)\n", + "\n", + "compute_marginal()" + ] + }, + { + "cell_type": "markdown", + "id": "f9815ab5", + "metadata": {}, + "source": [ + "The answer is close to 0.6, as expected.\n", + "\n", + "\n", + "Here's a solution to exercise 4.24." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "c840f550", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.5999" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "@jit\n", + "def compute_marginal_2(n=100_000, T=10):\n", + " counter = 0\n", + "\n", + " for i in range(n):\n", + " X = 2 # start in state SR\n", + " for t in range(T):\n", + " W = np.random.rand()\n", + " X = tau(W, S, pH[X, :])\n", + " if X == 0:\n", + " counter += 1\n", + "\n", + " return counter / n\n", + "\n", + "compute_marginal_2()" + ] + }, + { + "cell_type": "markdown", + "id": "c92cfaf7", + "metadata": {}, + "source": [ + "Here's a solution to exercise 4.29." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "7da9bf60", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "885.347632676323\n" + ] + } + ], + "source": [ + "T = 5\n", + "psi = (1, 0, 0) # start in NG\n", + "h = (1000, 0, -1000) # profits\n", + "\n", + "for t in range(T):\n", + " psi = psi @ pH\n", + "\n", + "print(psi @ h)" + ] + }, + { + "cell_type": "markdown", + "id": "3ad32b81", + "metadata": {}, + "source": [ + "Now let's see what happens when we start in severe recession." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "05c25dbe", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "217.74304876607997\n" + ] + } + ], + "source": [ + "psi = (0, 0, 1) \n", + "\n", + "for t in range(T):\n", + " psi = psi @ pH\n", + "\n", + "print(psi @ h)" + ] + }, + { + "cell_type": "markdown", + "id": "5ce8822d", + "metadata": {}, + "source": [ + "Profits are much lower because the Markov chain is relatively persistent,\n", + "implying that starting in recession increases the probability of recession at\n", + "date $t=5$.\n", + "\n", + "\n", + "Here's a solution to exercise 4.30." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "19a34421", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Profits in state 0 at date 1000 equals 788.1599999999967\n", + "Profits in state 1 at date 1000 equals 788.1599999999974\n", + "Profits in state 2 at date 1000 equals 788.1599999999972\n" + ] + } + ], + "source": [ + "T = 1000\n", + "\n", + "for i in (0, 1, 2):\n", + " psi = np.zeros(3)\n", + " psi[i] = 1\n", + " for t in range(T):\n", + " psi = psi @ pH\n", + " print(f\"Profits in state {i} at date {T} equals {psi @ h}\")" + ] + }, + { + "cell_type": "markdown", + "id": "dbb94562", + "metadata": {}, + "source": [ + "Notice that profits are almost invariant with respect to the initial\n", + "condition.\n", + "\n", + "This is due to inherent stability of the kernel, which implies that initial\n", + "conditions become irrelevant after sufficient time has elapsed.\n", + "\n", + "Here's a solution to exercise 4.31." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "899df564", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "385.45189053788556\n" + ] + } + ], + "source": [ + "T = 5\n", + "psi = (0.2, 0.2, 0.6) \n", + "\n", + "for t in range(T):\n", + " psi = psi @ pH\n", + "\n", + "print(psi @ h)" + ] + }, + { + "cell_type": "markdown", + "id": "96a6d8f0", + "metadata": {}, + "source": [ + "Here's a solution to exercise 4.32." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "5f72d86f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0008410000000000001\n" + ] + } + ], + "source": [ + "def path_prob(p, psi, X): # X gives a time path\n", + " prob = psi[X[0]]\n", + " for t in range(len(X)-1):\n", + " prob = prob * p[X[t], X[t+1]]\n", + " return prob\n", + "\n", + "psi = np.array((0.2, 0.2, 0.6))\n", + "prob = path_prob(pH, psi, (0, 1, 0))\n", + "\n", + "print(prob)" + ] + }, + { + "cell_type": "markdown", + "id": "824ca72b", + "metadata": {}, + "source": [ + "Here's a solution to exercise 4.33." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "ce450db8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.704242\n" + ] + } + ], + "source": [ + "counter = 0\n", + "recession_states = 1, 2\n", + "for x0 in recession_states:\n", + " for x1 in recession_states:\n", + " for x2 in recession_states:\n", + " path = x0, x1, x2\n", + " counter += path_prob(pH, psi, path)\n", + "\n", + "print(counter)" + ] + }, + { + "cell_type": "markdown", + "id": "c13139d3", + "metadata": {}, + "source": [ + "Here's a solution to exercise 4.34." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "94054878", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.7085" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "counter = 0\n", + "m = 10_000\n", + "mc = MarkovChain(pH)\n", + "\n", + "for i in range(m):\n", + " x0 = tau(np.random.rand(), S, psi)\n", + " X = mc.simulate(init=x0, ts_length=3)\n", + " if 0 not in X:\n", + " counter += 1\n", + "\n", + "print(counter / m)" + ] + }, + { + "cell_type": "markdown", + "id": "528fa1d5", + "metadata": {}, + "source": [ + "Next we turn to exercise 4.36." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "643329b7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_47_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "max_T = 12\n", + "T_vals = range(max_T)\n", + "profits = []\n", + "r = 0.05\n", + "rho = 1 / (1+r)\n", + "\n", + "psi = (0.2, 0.2, 0.6) \n", + "h = (1000, 0, -1000) \n", + "current_profits = np.inner(psi, h)\n", + "discount = rho\n", + "Q = np.identity(3)\n", + "\n", + "for t in T_vals:\n", + " Q = Q @ pH\n", + " discount = discount * rho\n", + " current_profits += discount * np.inner(psi, Q @ h)\n", + " profits.append(current_profits)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(profits, label='profits')\n", + "ax.plot(np.zeros(max_T), '--', label='break even')\n", + "ax.set_xlabel('time')\n", + "ax.legend()\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "07b8029a", + "metadata": {}, + "source": [ + "Here's figure 4.11." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "e03f0611", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_49_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00),\n", + " (0.05 , 0.92 , 0.03 , 0.00 , 0.00),\n", + " (0.00 , 0.04 , 0.92 , 0.04 , 0.00),\n", + " (0.00 , 0.00 , 0.04 , 0.94 , 0.02),\n", + " (0.00 , 0.00 , 0.00 , 0.01 , 0.99))\n", + "\n", + "p_Q = np.array(p_Q)\n", + "states = 0, 1, 2, 3, 4\n", + "dates = 10, 60, 160\n", + "initial_states = 0, 4\n", + "\n", + "rows, cols = 2, 3\n", + "fig, axes = plt.subplots(rows, cols)\n", + "\n", + "for row, init in enumerate(initial_states):\n", + " psi = np.zeros(5)\n", + " psi[init] = 1\n", + " for col, d in enumerate(dates):\n", + " ax = axes[row, col]\n", + " ax.bar(states, \n", + " psi @ np.linalg.matrix_power(p_Q, d), \n", + " alpha=0.5,\n", + " edgecolor='k')\n", + " ax.set_title(f\"$X_0 = {init}, t = {d}$\")\n", + " ax.set_ylabel(\"prob\")\n", + " ax.set_xlabel(\"state\")\n", + "\n", + "plt.tight_layout()\n", + "\n", + "#plt.savefig(\"dds2.pdf\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "d6d5856d", + "metadata": {}, + "source": [ + "And here's figure 4.12." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "622c25b4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_51_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "dates = 160, 500, 1000\n", + "\n", + "fig, axes = plt.subplots(rows, cols)\n", + "\n", + "for row, init in enumerate(initial_states):\n", + " psi = np.zeros(5)\n", + " psi[init] = 1\n", + " for col, d in enumerate(dates):\n", + " ax = axes[row, col]\n", + " ax.bar(states, \n", + " psi @ np.linalg.matrix_power(p_Q, d), \n", + " alpha=0.5,\n", + " edgecolor='k')\n", + " ax.set_title(f\"$X_0 = {init}, t = {d}$\")\n", + " ax.set_ylabel(\"prob\")\n", + " ax.set_xlabel(\"state\")\n", + "\n", + "plt.tight_layout()\n", + "\n", + "#plt.savefig(\"dds3.pdf\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "93f0a81b", + "metadata": {}, + "source": [ + "Next we turn to exercise 4.42.\n", + "\n", + "First here's a function to compute the stationary distribution, assuming it is\n", + "unique." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "4004571d", + "metadata": {}, + "outputs": [], + "source": [ + "from numpy.linalg import solve\n", + "\n", + "def compute_stationary(p):\n", + " N = p.shape[0]\n", + " I = np.identity(N)\n", + " O = np.ones((N, N))\n", + " A = I - p + O\n", + " return solve(A.T, np.ones((N, 1))).flatten()\n" + ] + }, + { + "cell_type": "markdown", + "id": "a111a149", + "metadata": {}, + "source": [ + "Now let's apply it to `p_Q`." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "7addc2f4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_55_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "psi_star = compute_stationary(p_Q)\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.bar(states, psi_star, alpha=0.5, edgecolor='k')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "5b305033", + "metadata": {}, + "source": [ + "As expected, the distribution is very similar to the time 1,000 distribution\n", + "we obtained above by shifting forward in time.\n", + "\n", + "\n", + "Now let's look at exercise 4.43." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "c91e4b92", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "788.1600000000004\n" + ] + } + ], + "source": [ + "psi_star = compute_stationary(pH) \n", + "print(np.inner(psi_star, h))" + ] + }, + { + "cell_type": "markdown", + "id": "615c9dcb", + "metadata": {}, + "source": [ + "If we compute profits at $t=1000$, starting from a range of initial\n", + "conditions, we get very similar results." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "a13b5567", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "788.1599999999779\n", + "788.1599999999786\n", + "788.1599999999784\n" + ] + } + ], + "source": [ + "pT = np.linalg.matrix_power(pH, 1000)\n", + "psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1)\n", + "\n", + "for psi in psi_vecs:\n", + " print(np.inner(psi, pT @ h))" + ] + }, + { + "cell_type": "markdown", + "id": "5c48edc5", + "metadata": {}, + "source": [ + "This is not surprising, since `p_H` is globally stable.\n", + "\n", + "\n", + "Here's the solution to exercise 4.57, which computes mean return time.\n", + "\n", + "I'll use JIT compilation to make the code fast." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "ac42e418", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1.22771, 6.14, 40.60528]" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "@jit\n", + "def compute_return_time(x, p, max_iter=100_000):\n", + " X = x\n", + " t = 0\n", + " while t < max_iter:\n", + " W = np.random.rand()\n", + " X = tau(W, S, pH[X, :])\n", + " t += 1\n", + " if X == x:\n", + " return t\n", + "\n", + "@jit\n", + "def compute_mean_return_time(x, p, n=100_000):\n", + " counter = 0\n", + " for i in range(n):\n", + " counter += compute_return_time(x, p)\n", + " return counter / n\n", + "\n", + "\n", + "[compute_mean_return_time(i, pH) for i in range(3)]\n" + ] + }, + { + "cell_type": "markdown", + "id": "b95f0859", + "metadata": {}, + "source": [ + "For comparison:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "0f54da65", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1.23031496, 6.1515748 , 40.58441558])" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "psi_star = compute_stationary(pH)\n", + "1/ psi_star\n" + ] + }, + { + "cell_type": "markdown", + "id": "8b15692a", + "metadata": {}, + "source": [ + "As predicted by the theory, the values are approximately equal.\n", + "\n", + "\n", + "Now let's turn to the inventory model." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "b520cd38", + "metadata": {}, + "outputs": [], + "source": [ + "def b(d):\n", + " \" Returns probability that demand = d.\"\n", + " return (d >= 0) * (1/2)**(d + 1)\n", + "\n", + "def h(x, q, Q):\n", + " return x + (Q - x) * (x <= q)\n", + "\n", + "def build_p(q=2, Q=5): \n", + " p = np.empty((Q+1, Q+1))\n", + " for x in range(Q+1):\n", + " for y in range(Q+1):\n", + " if y == 0:\n", + " p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q)\n", + " else:\n", + " p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y\n", + "\n", + " return p\n" + ] + }, + { + "cell_type": "markdown", + "id": "7cd17bfd", + "metadata": {}, + "source": [ + "Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the\n", + "one shown in the text." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "e52e7d00", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.0625, 0.0625, 0.125 , 0.25 , 0.25 , 0.25 ])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p = build_p()\n", + "compute_stationary(p)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "86922d14", + "metadata": {}, + "source": [ + "Yep, looks good.\n", + "\n", + "Now let's check that the optimal policy agrees with $q=7$, as claimed in the text." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "4ded625d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Q = 20 # inventory upper bound\n", + "C = 0.1 # cost of restocking\n", + "\n", + "# profit given state x, demand d, policy q\n", + "def profit(x, d, q):\n", + " stock = h(x, q, Q)\n", + " revenue = stock if stock < d else d\n", + " cost = C * (x <= q)\n", + " return revenue - cost\n", + "\n", + "# expected profit given x and policy q\n", + "def g(x, q):\n", + " counter = 0\n", + " for d in range(1000):\n", + " counter += profit(x, d, q) * b(d)\n", + " return counter\n", + "\n", + "def profit_at_stationary(q):\n", + " p = build_p(q=q, Q=Q)\n", + " stationary = compute_stationary(p)\n", + " counter = 0\n", + " for x in range(Q+1):\n", + " counter += g(x, q) * stationary[x]\n", + " return counter\n", + " \n", + "def compute_optimal_policy():\n", + " running_max = -np.inf\n", + " for q in range(Q+1):\n", + " counter = profit_at_stationary(q)\n", + " if counter > running_max:\n", + " running_max = counter\n", + " argmax = q\n", + " return(argmax)\n", + "\n", + "compute_optimal_policy()" + ] + }, + { + "cell_type": "markdown", + "id": "cf28ff4c", + "metadata": {}, + "source": [ + "Here's a solution for exercise 4.61. From preceding calculations we have\n", + "the stationary probability assigned to normal growth:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "9c2374fa", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8128000000000003" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "psi_star = compute_stationary(pH) \n", + "psi_star[0]" + ] + }, + { + "cell_type": "markdown", + "id": "060d3023", + "metadata": {}, + "source": [ + "The fraction of the time a long path spends in this state can be calculated as\n", + "follows." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "16ca34ba", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.810454" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "T = 1_000_000\n", + "mc = MarkovChain(pH)\n", + "X = mc.simulate(init=0, ts_length=T)\n", + "np.mean(X == 0)" + ] + }, + { + "cell_type": "markdown", + "id": "5ad51e47", + "metadata": {}, + "source": [ + "As expected given the LLN results for stable Markov chains, the two numbers are approximately equal.\n", + "\n", + "\n", + "Finally, let's look at the expected profits question in exercise 4.63.\n", + "\n", + "Previously we calculated steady state profits via" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "a7a2a773", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "788.1600000000004\n" + ] + } + ], + "source": [ + "h = (1000, 0, -1000)\n", + "psi_star = compute_stationary(pH) \n", + "print(np.inner(psi_star, h))" + ] + }, + { + "cell_type": "markdown", + "id": "7635d1dd", + "metadata": {}, + "source": [ + "To check that we get approximately the same results when simulating a long\n", + "time series, we can calculate as follows." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "889200b3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "785.87" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = [h[x] for x in X]\n", + "np.mean(y)" + ] } ], "metadata": { @@ -111,10 +1608,85 @@ }, "source_map": [ 14, - 18, - 63 + 20, + 25, + 32, + 77, + 82, + 112, + 121, + 141, + 146, + 157, + 163, + 173, + 179, + 189, + 200, + 220, + 226, + 242, + 251, + 259, + 265, + 270, + 280, + 289, + 293, + 301, + 307, + 315, + 320, + 334, + 342, + 358, + 363, + 372, + 376, + 383, + 393, + 402, + 412, + 420, + 424, + 435, + 439, + 449, + 454, + 466, + 470, + 497, + 502, + 534, + 540, + 562, + 570, + 580, + 584, + 592, + 601, + 604, + 609, + 615, + 624, + 646, + 650, + 654, + 661, + 680, + 686, + 692, + 698, + 734, + 741, + 744, + 750, + 755, + 765, + 769, + 775 ] }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch4.py b/code_book/_build/jupyter_execute/ch4.py index 3eb6d3e..a3d23dc 100644 --- a/code_book/_build/jupyter_execute/ch4.py +++ b/code_book/_build/jupyter_execute/ch4.py @@ -2,42 +2,92 @@ # coding: utf-8 # # Chapter 4 Code +# +# Let's start with some imports. # In[1]: import numpy as np import matplotlib.pyplot as plt +from numba import jit +from quantecon import MarkovChain -xmin, xmax = -10.0, 10.0 -ymin, ymax = -5.0, 5.0 +# ## Introduction to Dynamics +# +# Here's the code that generated figure 4.1. -A1 = np.asarray([[0.55, -0.6], - [0.5, 0.4]]) +# In[2]: -def f(x, y): - return A1 @ (x, y) -def draw_arrow(x, y, ax): +def draw_arrow(x, y, xp, yp, ax): + """ + Draw an arrow from (x, y) to (xp, yp). + """ + v1, v2 = xp - x, yp - y eps = 1.0 - v1, v2 = f(x, y) nrm = np.sqrt(v1**2 + v2**2) - scale = eps / nrm + scale = 1.0 ax.arrow(x, y, scale * v1, scale * v2, antialiased=True, - alpha=0.4, + alpha=0.5, head_length=0.025*(xmax - xmin), head_width=0.012*(xmax - xmin), fill=False) -xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20) -ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20) +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + +A1 = np.asarray([[0.55, -0.6], + [0.5, 0.4]]) + +def f(x, y): + return A1 @ (x, y) + +xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10) +ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10) + +fig, ax = plt.subplots() + +#ax.set_xlim(xmin, xmax) +#ax.set_ylim(ymin, ymax) + +ax.set_xticks((0,)) +ax.set_yticks((0,)) +ax.grid() + +for x in xgrid: + for y in ygrid: + xp, yp = f(x, y) + draw_arrow(x, y, xp, yp, ax) + +#plt.savefig("sdsdiagram.pdf") # Uncomment to save figure +plt.show() + + +# And here's the code that generated figure 4.2. + +# In[3]: + + + +def draw_trajectory(x, y, ax, n=10): + """ + Draw the trajectory of length n starting from (x, y). + """ + for i in range(n): + x_new, y_new = f(x, y) + draw_arrow(x, y, x_new, y_new, ax) + x, y = x_new, y_new + +xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3) +ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3) fig, ax = plt.subplots() -ax.set_xlim(xmin, xmax) -ax.set_ylim(ymin, ymax) +#ax.set_xlim(xmin, xmax) +#ax.set_ylim(ymin, ymax) ax.set_xticks((0,)) ax.set_yticks((0,)) @@ -45,13 +95,696 @@ def draw_arrow(x, y, ax): for x in xgrid: for y in ygrid: - draw_arrow(x, y, ax) + draw_trajectory(x, y, ax) +#plt.savefig("sdsstable.pdf") # Uncomment to save figure plt.show() -# In[ ]: +# ## Chaotic Dynamics +# +# Just for fun, here's a little class that allows us to simulate trajectories +# from a specified dynamical system: + +# In[4]: + + +class DS: + + def __init__(self, h=None, x=None): + """Parameters: h is a function and x is an + element of S representing the current state.""" + self.h, self.x = h, x + + def update(self): + "Update the state of the system by applying h." + self.x = self.h(self.x) + + def trajectory(self, n): + """Generate a trajectory of length n, starting + at the current state.""" + traj = [] + for i in range(n): + traj.append(self.x) + self.update() + return traj + + +# As in the textbook, let's plot a trajectory starting from 0.11. + +# In[5]: + + + +q = DS(h=lambda x: 4 * x * (1 - x), x=0.11) +t = q.trajectory(200) + +fig, ax = plt.subplots() +ax.plot(t) + +plt.show() + + +# Now let's generate a histograms from a long trajectory, to address exercise +# 4.16. + +# In[6]: + + +q.x = 0.11 +t = q.trajectory(5000) + +fig, ax = plt.subplots() +ax.hist(t, bins=40, alpha=0.5, edgecolor='k') + +plt.show() + + +# If you experiment with different initial conditions you will find that, for +# all most all choices, the histogram looks the same. + +# In[7]: + + +q.x = 0.65 +t = q.trajectory(5000) + +fig, ax = plt.subplots() +ax.hist(t, bins=40, alpha=0.5, edgecolor='k') + +plt.show() + + +# What we have learned is that, although the trajectories seem very random, when +# we take a statistical perspective we can make predictions. +# +# In particular, we can say what will happen "one average, in the long run." +# +# +# Here's the set of maps. + +# In[8]: + + +xgrid = np.linspace(0, 1, 100) + +h = lambda x, r: r * x * (1 - x) + +fig, ax = plt.subplots() + +ax.plot(xgrid, xgrid, '-', color='grey') + +r = 0 +step = 0.3 + +while r <= 4: + y = [h(x, r) for x in xgrid] + ax.plot(xgrid, y) + r = r + step + +plt.show() + + +# Here's the bifurcation diagram. + +# In[9]: + + +q = DS(h=None, x=0.1) + +fig, ax = plt.subplots() + +r = 2.5 +while r < 4: + q.h = lambda x: r * x * (1 - x) + t = q.trajectory(1000)[950:] + ax.plot([r] * len(t), t, 'k.', ms=0.4) + r = r + 0.005 + +ax.set_xlabel(r'$r$', fontsize=16) +plt.show() + + +# ## Markov Chains +# +# +# Our first task is to simulate time series from Hamilton's Markov chain + +# In[10]: + + +pH = ((0.971, 0.029, 0.000), # Hamilton's kernel + (0.145, 0.778, 0.077), + (0.000, 0.508, 0.492)) + +pH = np.array(pH) # Convert to numpy array + +S = np.array((0, 1, 2)) + + +# We'll borrow this code from Chapter 2. + +# In[11]: + + +@jit +def tau(z, S, phi): + i = np.searchsorted(np.cumsum(phi), z) + return S[i] + + +# (We have targeted the function for JIT compilation via `@jit` because we need +# fast execution below.) +# +# As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`. +# +# Here's some code to generate a trajectory starting at $x \in S$, using +# stochastic kernel $p$. + +# In[12]: + + +def trajectory(x, p, S, n=100): + + X = np.empty(n, dtype=int) + X[0] = x + for t in range(n-1): + W = np.random.rand() + X[t+1] = tau(W, S, p[X[t], :]) + return X + + +# Let's plot a trajectory. + +# In[13]: + + +fig, ax = plt.subplots() + +X = trajectory(0, pH, S, n=500) + +ax.plot(X) +plt.show() + + +# Another option is to use existing code from QuantEcon. This code is +# JIT-compiled and very fast. + +# In[14]: + + +mc = MarkovChain(pH, state_values=S) +X = mc.simulate(init=0, ts_length=500) + +fig, ax = plt.subplots() +ax.plot(X) +plt.show() + + +# Here's a solution to exercises 4.23. + +# In[15]: + + +@jit +def compute_marginal(n=100_000, T=10): + X_vals = np.empty(n) + + for i in range(n): + X = 2 # start in state SR + for t in range(T): + W = np.random.rand() + X = tau(W, S, pH[X, :]) + X_vals[i] = X + return np.mean(X_vals == 0) + +compute_marginal() + + +# The answer is close to 0.6, as expected. +# +# +# Here's a solution to exercise 4.24. + +# In[16]: + + +@jit +def compute_marginal_2(n=100_000, T=10): + counter = 0 + + for i in range(n): + X = 2 # start in state SR + for t in range(T): + W = np.random.rand() + X = tau(W, S, pH[X, :]) + if X == 0: + counter += 1 + + return counter / n + +compute_marginal_2() + + +# Here's a solution to exercise 4.29. + +# In[17]: + + +T = 5 +psi = (1, 0, 0) # start in NG +h = (1000, 0, -1000) # profits + +for t in range(T): + psi = psi @ pH + +print(psi @ h) + + +# Now let's see what happens when we start in severe recession. + +# In[18]: + + +psi = (0, 0, 1) + +for t in range(T): + psi = psi @ pH + +print(psi @ h) + + +# Profits are much lower because the Markov chain is relatively persistent, +# implying that starting in recession increases the probability of recession at +# date $t=5$. +# +# +# Here's a solution to exercise 4.30. + +# In[19]: + + +T = 1000 + +for i in (0, 1, 2): + psi = np.zeros(3) + psi[i] = 1 + for t in range(T): + psi = psi @ pH + print(f"Profits in state {i} at date {T} equals {psi @ h}") + + +# Notice that profits are almost invariant with respect to the initial +# condition. +# +# This is due to inherent stability of the kernel, which implies that initial +# conditions become irrelevant after sufficient time has elapsed. +# +# Here's a solution to exercise 4.31. + +# In[20]: + + +T = 5 +psi = (0.2, 0.2, 0.6) + +for t in range(T): + psi = psi @ pH + +print(psi @ h) + + +# Here's a solution to exercise 4.32. + +# In[21]: + + +def path_prob(p, psi, X): # X gives a time path + prob = psi[X[0]] + for t in range(len(X)-1): + prob = prob * p[X[t], X[t+1]] + return prob + +psi = np.array((0.2, 0.2, 0.6)) +prob = path_prob(pH, psi, (0, 1, 0)) + +print(prob) + + +# Here's a solution to exercise 4.33. + +# In[22]: + + +counter = 0 +recession_states = 1, 2 +for x0 in recession_states: + for x1 in recession_states: + for x2 in recession_states: + path = x0, x1, x2 + counter += path_prob(pH, psi, path) + +print(counter) + + +# Here's a solution to exercise 4.34. + +# In[23]: + + +counter = 0 +m = 10_000 +mc = MarkovChain(pH) + +for i in range(m): + x0 = tau(np.random.rand(), S, psi) + X = mc.simulate(init=x0, ts_length=3) + if 0 not in X: + counter += 1 + +print(counter / m) + + +# Next we turn to exercise 4.36. + +# In[24]: + + +max_T = 12 +T_vals = range(max_T) +profits = [] +r = 0.05 +rho = 1 / (1+r) + +psi = (0.2, 0.2, 0.6) +h = (1000, 0, -1000) +current_profits = np.inner(psi, h) +discount = rho +Q = np.identity(3) + +for t in T_vals: + Q = Q @ pH + discount = discount * rho + current_profits += discount * np.inner(psi, Q @ h) + profits.append(current_profits) + +fig, ax = plt.subplots() +ax.plot(profits, label='profits') +ax.plot(np.zeros(max_T), '--', label='break even') +ax.set_xlabel('time') +ax.legend() + +plt.show() + + +# Here's figure 4.11. + +# In[25]: + + +p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00), + (0.05 , 0.92 , 0.03 , 0.00 , 0.00), + (0.00 , 0.04 , 0.92 , 0.04 , 0.00), + (0.00 , 0.00 , 0.04 , 0.94 , 0.02), + (0.00 , 0.00 , 0.00 , 0.01 , 0.99)) + +p_Q = np.array(p_Q) +states = 0, 1, 2, 3, 4 +dates = 10, 60, 160 +initial_states = 0, 4 + +rows, cols = 2, 3 +fig, axes = plt.subplots(rows, cols) + +for row, init in enumerate(initial_states): + psi = np.zeros(5) + psi[init] = 1 + for col, d in enumerate(dates): + ax = axes[row, col] + ax.bar(states, + psi @ np.linalg.matrix_power(p_Q, d), + alpha=0.5, + edgecolor='k') + ax.set_title(f"$X_0 = {init}, t = {d}$") + ax.set_ylabel("prob") + ax.set_xlabel("state") + +plt.tight_layout() + +#plt.savefig("dds2.pdf") +plt.show() + + +# And here's figure 4.12. + +# In[26]: + + +dates = 160, 500, 1000 + +fig, axes = plt.subplots(rows, cols) + +for row, init in enumerate(initial_states): + psi = np.zeros(5) + psi[init] = 1 + for col, d in enumerate(dates): + ax = axes[row, col] + ax.bar(states, + psi @ np.linalg.matrix_power(p_Q, d), + alpha=0.5, + edgecolor='k') + ax.set_title(f"$X_0 = {init}, t = {d}$") + ax.set_ylabel("prob") + ax.set_xlabel("state") + +plt.tight_layout() + +#plt.savefig("dds3.pdf") +plt.show() + + +# Next we turn to exercise 4.42. +# +# First here's a function to compute the stationary distribution, assuming it is +# unique. + +# In[27]: + + +from numpy.linalg import solve + +def compute_stationary(p): + N = p.shape[0] + I = np.identity(N) + O = np.ones((N, N)) + A = I - p + O + return solve(A.T, np.ones((N, 1))).flatten() + + +# Now let's apply it to `p_Q`. + +# In[28]: + + +psi_star = compute_stationary(p_Q) + +fig, ax = plt.subplots() +ax.bar(states, psi_star, alpha=0.5, edgecolor='k') + +plt.show() + + +# As expected, the distribution is very similar to the time 1,000 distribution +# we obtained above by shifting forward in time. +# +# +# Now let's look at exercise 4.43. + +# In[29]: + + +psi_star = compute_stationary(pH) +print(np.inner(psi_star, h)) + + +# If we compute profits at $t=1000$, starting from a range of initial +# conditions, we get very similar results. + +# In[30]: + + +pT = np.linalg.matrix_power(pH, 1000) +psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1) + +for psi in psi_vecs: + print(np.inner(psi, pT @ h)) + + +# This is not surprising, since `p_H` is globally stable. +# +# +# Here's the solution to exercise 4.57, which computes mean return time. +# +# I'll use JIT compilation to make the code fast. + +# In[31]: + + +@jit +def compute_return_time(x, p, max_iter=100_000): + X = x + t = 0 + while t < max_iter: + W = np.random.rand() + X = tau(W, S, pH[X, :]) + t += 1 + if X == x: + return t + +@jit +def compute_mean_return_time(x, p, n=100_000): + counter = 0 + for i in range(n): + counter += compute_return_time(x, p) + return counter / n + + +[compute_mean_return_time(i, pH) for i in range(3)] + + +# For comparison: + +# In[32]: + + +psi_star = compute_stationary(pH) +1/ psi_star + + +# As predicted by the theory, the values are approximately equal. +# +# +# Now let's turn to the inventory model. + +# In[33]: + + +def b(d): + " Returns probability that demand = d." + return (d >= 0) * (1/2)**(d + 1) + +def h(x, q, Q): + return x + (Q - x) * (x <= q) + +def build_p(q=2, Q=5): + p = np.empty((Q+1, Q+1)) + for x in range(Q+1): + for y in range(Q+1): + if y == 0: + p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q) + else: + p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y + + return p + + +# Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the +# one shown in the text. + +# In[34]: + + +p = build_p() +compute_stationary(p) + + +# Yep, looks good. +# +# Now let's check that the optimal policy agrees with $q=7$, as claimed in the text. + +# In[35]: + + +Q = 20 # inventory upper bound +C = 0.1 # cost of restocking + +# profit given state x, demand d, policy q +def profit(x, d, q): + stock = h(x, q, Q) + revenue = stock if stock < d else d + cost = C * (x <= q) + return revenue - cost + +# expected profit given x and policy q +def g(x, q): + counter = 0 + for d in range(1000): + counter += profit(x, d, q) * b(d) + return counter + +def profit_at_stationary(q): + p = build_p(q=q, Q=Q) + stationary = compute_stationary(p) + counter = 0 + for x in range(Q+1): + counter += g(x, q) * stationary[x] + return counter + +def compute_optimal_policy(): + running_max = -np.inf + for q in range(Q+1): + counter = profit_at_stationary(q) + if counter > running_max: + running_max = counter + argmax = q + return(argmax) + +compute_optimal_policy() + + +# Here's a solution for exercise 4.61. From preceding calculations we have +# the stationary probability assigned to normal growth: + +# In[36]: + + +psi_star = compute_stationary(pH) +psi_star[0] + + +# The fraction of the time a long path spends in this state can be calculated as +# follows. + +# In[37]: + + +T = 1_000_000 +mc = MarkovChain(pH) +X = mc.simulate(init=0, ts_length=T) +np.mean(X == 0) + + +# As expected given the LLN results for stable Markov chains, the two numbers are approximately equal. +# +# +# Finally, let's look at the expected profits question in exercise 4.63. +# +# Previously we calculated steady state profits via + +# In[38]: + + +h = (1000, 0, -1000) +psi_star = compute_stationary(pH) +print(np.inner(psi_star, h)) + + +# To check that we get approximately the same results when simulating a long +# time series, we can calculate as follows. +# In[39]: +y = [h[x] for x in X] +np.mean(y) diff --git a/code_book/_build/jupyter_execute/ch4.txt b/code_book/_build/jupyter_execute/ch4.txt index 6ff6d6c..236bb8c 100644 --- a/code_book/_build/jupyter_execute/ch4.txt +++ b/code_book/_build/jupyter_execute/ch4.txt @@ -1,39 +1,499 @@ -print("foo") - import numpy as np -from matplotlib.pyplot import plt - -xmin, xmax = -10.0, 10.0 -ymin, ymax = -5.0, 5.0 - -ax.set_xlim(xmin, xmax) -ax.set_ylim(ymin, ymax) - -A1 = np.asarray([[0.58, -0.6], - [0.65, 0.3]]) +import matplotlib.pyplot as plt +from numba import jit +from quantecon import MarkovChain -def f(x, y): A1 @ (x, y) - -def draw_arrow(x, y, ax): - eps = 0.0001 - v1, v2 = f(x, y) +def draw_arrow(x, y, xp, yp, ax): + """ + Draw an arrow from (x, y) to (xp, yp). + """ + v1, v2 = xp - x, yp - y + eps = 1.0 nrm = np.sqrt(v1**2 + v2**2) - scale = eps / nrm + scale = 1.0 ax.arrow(x, y, scale * v1, scale * v2, antialiased=True, - alpha=0.8, + alpha=0.5, head_length=0.025*(xmax - xmin), head_width=0.012*(xmax - xmin), fill=False) -xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 12) -ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 12) +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + +A1 = np.asarray([[0.55, -0.6], + [0.5, 0.4]]) + +def f(x, y): + return A1 @ (x, y) + +xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10) +ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10) fig, ax = plt.subplots() +#ax.set_xlim(xmin, xmax) +#ax.set_ylim(ymin, ymax) + +ax.set_xticks((0,)) +ax.set_yticks((0,)) +ax.grid() + for x in xgrid: for y in ygrid: - draw_arrow(x, y, ax) + xp, yp = f(x, y) + draw_arrow(x, y, xp, yp, ax) + +#plt.savefig("sdsdiagram.pdf") # Uncomment to save figure +plt.show() + + +def draw_trajectory(x, y, ax, n=10): + """ + Draw the trajectory of length n starting from (x, y). + """ + for i in range(n): + x_new, y_new = f(x, y) + draw_arrow(x, y, x_new, y_new, ax) + x, y = x_new, y_new + +xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3) +ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3) + +fig, ax = plt.subplots() + +#ax.set_xlim(xmin, xmax) +#ax.set_ylim(ymin, ymax) + +ax.set_xticks((0,)) +ax.set_yticks((0,)) +ax.grid() + +for x in xgrid: + for y in ygrid: + draw_trajectory(x, y, ax) + +#plt.savefig("sdsstable.pdf") # Uncomment to save figure +plt.show() + +class DS: + + def __init__(self, h=None, x=None): + """Parameters: h is a function and x is an + element of S representing the current state.""" + self.h, self.x = h, x + + def update(self): + "Update the state of the system by applying h." + self.x = self.h(self.x) + + def trajectory(self, n): + """Generate a trajectory of length n, starting + at the current state.""" + traj = [] + for i in range(n): + traj.append(self.x) + self.update() + return traj + + +q = DS(h=lambda x: 4 * x * (1 - x), x=0.11) +t = q.trajectory(200) + +fig, ax = plt.subplots() +ax.plot(t) + +plt.show() + + +q.x = 0.11 +t = q.trajectory(5000) + +fig, ax = plt.subplots() +ax.hist(t, bins=40, alpha=0.5, edgecolor='k') + +plt.show() + + +q.x = 0.65 +t = q.trajectory(5000) + +fig, ax = plt.subplots() +ax.hist(t, bins=40, alpha=0.5, edgecolor='k') + +plt.show() + + +xgrid = np.linspace(0, 1, 100) + +h = lambda x, r: r * x * (1 - x) + +fig, ax = plt.subplots() + +ax.plot(xgrid, xgrid, '-', color='grey') + +r = 0 +step = 0.3 + +while r <= 4: + y = [h(x, r) for x in xgrid] + ax.plot(xgrid, y) + r = r + step + +plt.show() + + +q = DS(h=None, x=0.1) + +fig, ax = plt.subplots() + +r = 2.5 +while r < 4: + q.h = lambda x: r * x * (1 - x) + t = q.trajectory(1000)[950:] + ax.plot([r] * len(t), t, 'k.', ms=0.4) + r = r + 0.005 + +ax.set_xlabel(r'$r$', fontsize=16) +plt.show() + + +pH = ((0.971, 0.029, 0.000), # Hamilton's kernel + (0.145, 0.778, 0.077), + (0.000, 0.508, 0.492)) + +pH = np.array(pH) # Convert to numpy array + +S = np.array((0, 1, 2)) + +@jit +def tau(z, S, phi): + i = np.searchsorted(np.cumsum(phi), z) + return S[i] + +def trajectory(x, p, S, n=100): + + X = np.empty(n, dtype=int) + X[0] = x + for t in range(n-1): + W = np.random.rand() + X[t+1] = tau(W, S, p[X[t], :]) + return X + +fig, ax = plt.subplots() + +X = trajectory(0, pH, S, n=500) + +ax.plot(X) +plt.show() + + +mc = MarkovChain(pH, state_values=S) +X = mc.simulate(init=0, ts_length=500) + +fig, ax = plt.subplots() +ax.plot(X) +plt.show() + +@jit +def compute_marginal(n=100_000, T=10): + X_vals = np.empty(n) + + for i in range(n): + X = 2 # start in state SR + for t in range(T): + W = np.random.rand() + X = tau(W, S, pH[X, :]) + X_vals[i] = X + return np.mean(X_vals == 0) + +compute_marginal() + +@jit +def compute_marginal_2(n=100_000, T=10): + counter = 0 + + for i in range(n): + X = 2 # start in state SR + for t in range(T): + W = np.random.rand() + X = tau(W, S, pH[X, :]) + if X == 0: + counter += 1 + + return counter / n + +compute_marginal_2() + +T = 5 +psi = (1, 0, 0) # start in NG +h = (1000, 0, -1000) # profits + +for t in range(T): + psi = psi @ pH + +print(psi @ h) + +psi = (0, 0, 1) + +for t in range(T): + psi = psi @ pH + +print(psi @ h) + +T = 1000 + +for i in (0, 1, 2): + psi = np.zeros(3) + psi[i] = 1 + for t in range(T): + psi = psi @ pH + print(f"Profits in state {i} at date {T} equals {psi @ h}") + +T = 5 +psi = (0.2, 0.2, 0.6) + +for t in range(T): + psi = psi @ pH + +print(psi @ h) + +def path_prob(p, psi, X): # X gives a time path + prob = psi[X[0]] + for t in range(len(X)-1): + prob = prob * p[X[t], X[t+1]] + return prob + +psi = np.array((0.2, 0.2, 0.6)) +prob = path_prob(pH, psi, (0, 1, 0)) + +print(prob) + +counter = 0 +recession_states = 1, 2 +for x0 in recession_states: + for x1 in recession_states: + for x2 in recession_states: + path = x0, x1, x2 + counter += path_prob(pH, psi, path) + +print(counter) + +counter = 0 +m = 10_000 +mc = MarkovChain(pH) + +for i in range(m): + x0 = tau(np.random.rand(), S, psi) + X = mc.simulate(init=x0, ts_length=3) + if 0 not in X: + counter += 1 + +print(counter / m) + +max_T = 12 +T_vals = range(max_T) +profits = [] +r = 0.05 +rho = 1 / (1+r) + +psi = (0.2, 0.2, 0.6) +h = (1000, 0, -1000) +current_profits = np.inner(psi, h) +discount = rho +Q = np.identity(3) + +for t in T_vals: + Q = Q @ pH + discount = discount * rho + current_profits += discount * np.inner(psi, Q @ h) + profits.append(current_profits) + +fig, ax = plt.subplots() +ax.plot(profits, label='profits') +ax.plot(np.zeros(max_T), '--', label='break even') +ax.set_xlabel('time') +ax.legend() + +plt.show() + + +p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00), + (0.05 , 0.92 , 0.03 , 0.00 , 0.00), + (0.00 , 0.04 , 0.92 , 0.04 , 0.00), + (0.00 , 0.00 , 0.04 , 0.94 , 0.02), + (0.00 , 0.00 , 0.00 , 0.01 , 0.99)) + +p_Q = np.array(p_Q) +states = 0, 1, 2, 3, 4 +dates = 10, 60, 160 +initial_states = 0, 4 + +rows, cols = 2, 3 +fig, axes = plt.subplots(rows, cols) + +for row, init in enumerate(initial_states): + psi = np.zeros(5) + psi[init] = 1 + for col, d in enumerate(dates): + ax = axes[row, col] + ax.bar(states, + psi @ np.linalg.matrix_power(p_Q, d), + alpha=0.5, + edgecolor='k') + ax.set_title(f"$X_0 = {init}, t = {d}$") + ax.set_ylabel("prob") + ax.set_xlabel("state") + +plt.tight_layout() +#plt.savefig("dds2.pdf") plt.show() +dates = 160, 500, 1000 + +fig, axes = plt.subplots(rows, cols) + +for row, init in enumerate(initial_states): + psi = np.zeros(5) + psi[init] = 1 + for col, d in enumerate(dates): + ax = axes[row, col] + ax.bar(states, + psi @ np.linalg.matrix_power(p_Q, d), + alpha=0.5, + edgecolor='k') + ax.set_title(f"$X_0 = {init}, t = {d}$") + ax.set_ylabel("prob") + ax.set_xlabel("state") + +plt.tight_layout() + +#plt.savefig("dds3.pdf") +plt.show() + +from numpy.linalg import solve + +def compute_stationary(p): + N = p.shape[0] + I = np.identity(N) + O = np.ones((N, N)) + A = I - p + O + return solve(A.T, np.ones((N, 1))).flatten() + + +psi_star = compute_stationary(p_Q) + +fig, ax = plt.subplots() +ax.bar(states, psi_star, alpha=0.5, edgecolor='k') + +plt.show() + +psi_star = compute_stationary(pH) +print(np.inner(psi_star, h)) + +pT = np.linalg.matrix_power(pH, 1000) +psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1) + +for psi in psi_vecs: + print(np.inner(psi, pT @ h)) + +@jit +def compute_return_time(x, p, max_iter=100_000): + X = x + t = 0 + while t < max_iter: + W = np.random.rand() + X = tau(W, S, pH[X, :]) + t += 1 + if X == x: + return t + +@jit +def compute_mean_return_time(x, p, n=100_000): + counter = 0 + for i in range(n): + counter += compute_return_time(x, p) + return counter / n + + +[compute_mean_return_time(i, pH) for i in range(3)] + + +psi_star = compute_stationary(pH) +1/ psi_star + + +def b(d): + " Returns probability that demand = d." + return (d >= 0) * (1/2)**(d + 1) + +def h(x, q, Q): + return x + (Q - x) * (x <= q) + +def build_p(q=2, Q=5): + p = np.empty((Q+1, Q+1)) + for x in range(Q+1): + for y in range(Q+1): + if y == 0: + p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q) + else: + p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y + + return p + + +p = build_p() +compute_stationary(p) + + + +Q = 20 # inventory upper bound +C = 0.1 # cost of restocking + +# profit given state x, demand d, policy q +def profit(x, d, q): + stock = h(x, q, Q) + revenue = stock if stock < d else d + cost = C * (x <= q) + return revenue - cost + +# expected profit given x and policy q +def g(x, q): + counter = 0 + for d in range(1000): + counter += profit(x, d, q) * b(d) + return counter + +def profit_at_stationary(q): + p = build_p(q=q, Q=Q) + stationary = compute_stationary(p) + counter = 0 + for x in range(Q+1): + counter += g(x, q) * stationary[x] + return counter + +def compute_optimal_policy(): + running_max = -np.inf + for q in range(Q+1): + counter = profit_at_stationary(q) + if counter > running_max: + running_max = counter + argmax = q + return(argmax) + +compute_optimal_policy() + +psi_star = compute_stationary(pH) +psi_star[0] + +T = 1_000_000 +mc = MarkovChain(pH) +X = mc.simulate(init=0, ts_length=T) +np.mean(X == 0) + +psi_star = compute_stationary(pH) +print(np.inner(psi_star, h)) + +y = [h[x] for x in X] +np.mean(y) diff --git a/code_book/_build/jupyter_execute/ch4_1_0.png b/code_book/_build/jupyter_execute/ch4_1_0.png deleted file mode 100644 index 1efe62508250859334b9c3339302efad5338b758..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80306 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 TNBgfx@}v0(oZfCIuW~%8k7sf=!M0~ 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 diff --git a/code_book/_toc.yml b/code_book/_toc.yml index 2fe4e4c..df2ca7f 100644 --- a/code_book/_toc.yml +++ b/code_book/_toc.yml @@ -5,3 +5,7 @@ chapters: - file: ch2 - file: ch3 - file: ch4 +- file: ch5 +- file: ch6 + + diff --git a/code_book/ch2.ipynb b/code_book/ch2.ipynb deleted file mode 100644 index d0135ad..0000000 --- a/code_book/ch2.ipynb +++ /dev/null @@ -1,34 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Chapter 2 Code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def τ(z, S, ϕ):\n", - " " - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst" - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/code_book/ch2.md b/code_book/ch2.md index 2d4a49b..915a0c8 100644 --- a/code_book/ch2.md +++ b/code_book/ch2.md @@ -24,7 +24,7 @@ import numpy as np import matplotlib.pyplot as plt ``` -### Bisection +## Bisection +++ @@ -59,21 +59,21 @@ if i > M: print("Failed to converge.") ``` -### User Defined Functions +## User Defined Functions +++ Here's the basic implementation of the function $\tau$. ```{code-cell} ipython3 -def τ(z, S, ϕ): +def tau(z, S, phi): """ - Evaluates the function τ(z) given data S, ϕ, where - S and ϕ are assumed to be arrays. + Evaluates the function tau(z) given data S, phi, where + S and phi are assumed to be arrays. """ a = 0 for i, x in enumerate(S): - b = a + ϕ[i] + b = a + phi[i] if a < z <= b: return x a = b @@ -82,34 +82,34 @@ def τ(z, S, ϕ): Here's a more efficient implementation. ```{code-cell} ipython3 -def τ(z, S, ϕ): - i = np.searchsorted(np.cumsum(ϕ), z) +def tau(z, S, phi): + i = np.searchsorted(np.cumsum(phi), z) return S[i] ``` And here's a closure that generates the function $\tau$. ```{code-cell} ipython3 -def τ_factory(S, ϕ): - Φ = np.cumsum(ϕ) +def tau_factory(S, phi): + Φ = np.cumsum(phi) - def τ(z): + def tau(z): i = np.searchsorted(Φ, z) return S[i] - return τ + return tau ``` We generate a function $\tau$ that acts on $z$ alone by calling the function factory: ```{code-cell} ipython3 -ϕ = 0.2, 0.5, 0.3 +phi = 0.2, 0.5, 0.3 S = 0, 1, 2 -τ = τ_factory(S, ϕ) +tau = tau_factory(S, phi) ``` ```{code-cell} ipython3 -τ(0.1) # Should be 0 +tau(0.1) # Should be 0 ``` All of these functions work as expected. To illustrate, here $\tau$ is used to generate draws from a given distribution $\phi$. @@ -121,7 +121,7 @@ size = 100_000 draws = np.empty(size) for j in range(size): W = np.random.uniform() - draws[j] = τ(W) + draws[j] = tau(W) # Compute fraction of draws with each possible value frequency = [np.mean(draws==j) for j in S] @@ -139,14 +139,14 @@ ax.bar(S, frequency, alpha=0.25, label="histogram") -ax.stem(S, ϕ, label='$\\phi$') +ax.stem(S, phi, label='$\\phi$') ax.legend() plt.show() ``` -### Object Oriented Programming +## Object Oriented Programming +++ @@ -155,28 +155,26 @@ Here's a class that implements the function $\tau$ as a method, as well as a met ```{code-cell} ipython3 class Tau: - def __init__(self, S, ϕ): + def __init__(self, S, phi): self.S = S - self.Φ = np.cumsum(ϕ) + self.Φ = np.cumsum(phi) - def τ(self, z): + def tau(self, z): i = np.searchsorted(self.Φ, z) return self.S[i] def draw(self): W = np.random.uniform() - return self.τ(W) + return self.tau(W) ``` ```{code-cell} ipython3 -τ = Tau(S, ϕ) +tau = Tau(S, phi) ``` ```{code-cell} ipython3 for i in range(5): - print(τ.draw()) + print(tau.draw()) ``` -```{code-cell} ipython3 -``` diff --git a/code_book/ch4.md b/code_book/ch4.md index d12033c..4a4207b 100644 --- a/code_book/ch4.md +++ b/code_book/ch4.md @@ -15,39 +15,53 @@ kernelspec: # Chapter 4 Code +Let's start with some imports. + ```{code-cell} ipython3 import numpy as np import matplotlib.pyplot as plt +from numba import jit +from quantecon import MarkovChain +``` -xmin, xmax = -10.0, 10.0 -ymin, ymax = -5.0, 5.0 +## Introduction to Dynamics +Here's the code that generated figure 4.1. -A1 = np.asarray([[0.55, -0.6], - [0.5, 0.4]]) -def f(x, y): - return A1 @ (x, y) +```{code-cell} ipython3 -def draw_arrow(x, y, ax): +def draw_arrow(x, y, xp, yp, ax): + """ + Draw an arrow from (x, y) to (xp, yp). + """ + v1, v2 = xp - x, yp - y eps = 1.0 - v1, v2 = f(x, y) nrm = np.sqrt(v1**2 + v2**2) - scale = eps / nrm + scale = 1.0 ax.arrow(x, y, scale * v1, scale * v2, antialiased=True, - alpha=0.4, + alpha=0.5, head_length=0.025*(xmax - xmin), head_width=0.012*(xmax - xmin), fill=False) -xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20) -ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20) +xmin, xmax = -10.0, 10.0 +ymin, ymax = -5.0, 5.0 + +A1 = np.asarray([[0.55, -0.6], + [0.5, 0.4]]) + +def f(x, y): + return A1 @ (x, y) + +xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10) +ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10) fig, ax = plt.subplots() -ax.set_xlim(xmin, xmax) -ax.set_ylim(ymin, ymax) +#ax.set_xlim(xmin, xmax) +#ax.set_ylim(ymin, ymax) ax.set_xticks((0,)) ax.set_yticks((0,)) @@ -55,11 +69,710 @@ ax.grid() for x in xgrid: for y in ygrid: - draw_arrow(x, y, ax) + xp, yp = f(x, y) + draw_arrow(x, y, xp, yp, ax) + +#plt.savefig("sdsdiagram.pdf") # Uncomment to save figure +plt.show() +``` + + +And here's the code that generated figure 4.2. + +```{code-cell} ipython3 + + +def draw_trajectory(x, y, ax, n=10): + """ + Draw the trajectory of length n starting from (x, y). + """ + for i in range(n): + x_new, y_new = f(x, y) + draw_arrow(x, y, x_new, y_new, ax) + x, y = x_new, y_new + +xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3) +ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3) + +fig, ax = plt.subplots() + +#ax.set_xlim(xmin, xmax) +#ax.set_ylim(ymin, ymax) + +ax.set_xticks((0,)) +ax.set_yticks((0,)) +ax.grid() + +for x in xgrid: + for y in ygrid: + draw_trajectory(x, y, ax) + +#plt.savefig("sdsstable.pdf") # Uncomment to save figure +plt.show() +``` + + +## Chaotic Dynamics + +Just for fun, here's a little class that allows us to simulate trajectories +from a specified dynamical system: + + +```{code-cell} ipython3 +class DS: + + def __init__(self, h=None, x=None): + """Parameters: h is a function and x is an + element of S representing the current state.""" + self.h, self.x = h, x + + def update(self): + "Update the state of the system by applying h." + self.x = self.h(self.x) + + def trajectory(self, n): + """Generate a trajectory of length n, starting + at the current state.""" + traj = [] + for i in range(n): + traj.append(self.x) + self.update() + return traj +``` + +As in the textbook, let's plot a trajectory starting from 0.11. + + +```{code-cell} ipython3 + + +q = DS(h=lambda x: 4 * x * (1 - x), x=0.11) +t = q.trajectory(200) + +fig, ax = plt.subplots() +ax.plot(t) + +plt.show() + +``` + +Now let's generate a histograms from a long trajectory, to address exercise +4.16. + + +```{code-cell} ipython3 + +q.x = 0.11 +t = q.trajectory(5000) + +fig, ax = plt.subplots() +ax.hist(t, bins=40, alpha=0.5, edgecolor='k') + +plt.show() + +``` + +If you experiment with different initial conditions you will find that, for +all most all choices, the histogram looks the same. + + +```{code-cell} ipython3 + +q.x = 0.65 +t = q.trajectory(5000) + +fig, ax = plt.subplots() +ax.hist(t, bins=40, alpha=0.5, edgecolor='k') + +plt.show() + +``` + +What we have learned is that, although the trajectories seem very random, when +we take a statistical perspective we can make predictions. + +In particular, we can say what will happen "one average, in the long run." + + +Here's the set of maps. + + +```{code-cell} ipython3 + +xgrid = np.linspace(0, 1, 100) + +h = lambda x, r: r * x * (1 - x) + +fig, ax = plt.subplots() + +ax.plot(xgrid, xgrid, '-', color='grey') + +r = 0 +step = 0.3 + +while r <= 4: + y = [h(x, r) for x in xgrid] + ax.plot(xgrid, y) + r = r + step + +plt.show() + +``` + +Here's the bifurcation diagram. + + + +```{code-cell} ipython3 + +q = DS(h=None, x=0.1) + +fig, ax = plt.subplots() + +r = 2.5 +while r < 4: + q.h = lambda x: r * x * (1 - x) + t = q.trajectory(1000)[950:] + ax.plot([r] * len(t), t, 'k.', ms=0.4) + r = r + 0.005 + +ax.set_xlabel(r'$r$', fontsize=16) +plt.show() + +``` + + +## Markov Chains + + +Our first task is to simulate time series from Hamilton's Markov chain + + +```{code-cell} ipython3 +pH = ((0.971, 0.029, 0.000), # Hamilton's kernel + (0.145, 0.778, 0.077), + (0.000, 0.508, 0.492)) + +pH = np.array(pH) # Convert to numpy array + +S = np.array((0, 1, 2)) +``` + + +We'll borrow this code from Chapter 2. + + +```{code-cell} ipython3 +@jit +def tau(z, S, phi): + i = np.searchsorted(np.cumsum(phi), z) + return S[i] +``` + +(We have targeted the function for JIT compilation via `@jit` because we need +fast execution below.) + +As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`. + +Here's some code to generate a trajectory starting at $x \in S$, using +stochastic kernel $p$. + +```{code-cell} ipython3 +def trajectory(x, p, S, n=100): + + X = np.empty(n, dtype=int) + X[0] = x + for t in range(n-1): + W = np.random.rand() + X[t+1] = tau(W, S, p[X[t], :]) + return X +``` + +Let's plot a trajectory. + +```{code-cell} ipython3 +fig, ax = plt.subplots() + +X = trajectory(0, pH, S, n=500) + +ax.plot(X) +plt.show() + +``` + +Another option is to use existing code from QuantEcon. This code is +JIT-compiled and very fast. + + +```{code-cell} ipython3 + +mc = MarkovChain(pH, state_values=S) +X = mc.simulate(init=0, ts_length=500) + +fig, ax = plt.subplots() +ax.plot(X) +plt.show() +``` + +Here's a solution to exercises 4.23. + + +```{code-cell} ipython3 +@jit +def compute_marginal(n=100_000, T=10): + X_vals = np.empty(n) + + for i in range(n): + X = 2 # start in state SR + for t in range(T): + W = np.random.rand() + X = tau(W, S, pH[X, :]) + X_vals[i] = X + return np.mean(X_vals == 0) + +compute_marginal() +``` + +The answer is close to 0.6, as expected. + + +Here's a solution to exercise 4.24. + + +```{code-cell} ipython3 +@jit +def compute_marginal_2(n=100_000, T=10): + counter = 0 + + for i in range(n): + X = 2 # start in state SR + for t in range(T): + W = np.random.rand() + X = tau(W, S, pH[X, :]) + if X == 0: + counter += 1 + + return counter / n + +compute_marginal_2() +``` + +Here's a solution to exercise 4.29. + + +```{code-cell} ipython3 +T = 5 +psi = (1, 0, 0) # start in NG +h = (1000, 0, -1000) # profits + +for t in range(T): + psi = psi @ pH + +print(psi @ h) +``` + +Now let's see what happens when we start in severe recession. + +```{code-cell} ipython3 +psi = (0, 0, 1) + +for t in range(T): + psi = psi @ pH + +print(psi @ h) +``` + +Profits are much lower because the Markov chain is relatively persistent, +implying that starting in recession increases the probability of recession at +date $t=5$. + + +Here's a solution to exercise 4.30. + + +```{code-cell} ipython3 +T = 1000 + +for i in (0, 1, 2): + psi = np.zeros(3) + psi[i] = 1 + for t in range(T): + psi = psi @ pH + print(f"Profits in state {i} at date {T} equals {psi @ h}") +``` + +Notice that profits are almost invariant with respect to the initial +condition. + +This is due to inherent stability of the kernel, which implies that initial +conditions become irrelevant after sufficient time has elapsed. + +Here's a solution to exercise 4.31. + +```{code-cell} ipython3 +T = 5 +psi = (0.2, 0.2, 0.6) + +for t in range(T): + psi = psi @ pH + +print(psi @ h) +``` + +Here's a solution to exercise 4.32. + +```{code-cell} ipython3 +def path_prob(p, psi, X): # X gives a time path + prob = psi[X[0]] + for t in range(len(X)-1): + prob = prob * p[X[t], X[t+1]] + return prob + +psi = np.array((0.2, 0.2, 0.6)) +prob = path_prob(pH, psi, (0, 1, 0)) + +print(prob) +``` + +Here's a solution to exercise 4.33. + +```{code-cell} ipython3 +counter = 0 +recession_states = 1, 2 +for x0 in recession_states: + for x1 in recession_states: + for x2 in recession_states: + path = x0, x1, x2 + counter += path_prob(pH, psi, path) + +print(counter) +``` + + +Here's a solution to exercise 4.34. + +```{code-cell} ipython3 +counter = 0 +m = 10_000 +mc = MarkovChain(pH) + +for i in range(m): + x0 = tau(np.random.rand(), S, psi) + X = mc.simulate(init=x0, ts_length=3) + if 0 not in X: + counter += 1 + +print(counter / m) +``` + +Next we turn to exercise 4.36. + +```{code-cell} ipython3 +max_T = 12 +T_vals = range(max_T) +profits = [] +r = 0.05 +rho = 1 / (1+r) + +psi = (0.2, 0.2, 0.6) +h = (1000, 0, -1000) +current_profits = np.inner(psi, h) +discount = rho +Q = np.identity(3) + +for t in T_vals: + Q = Q @ pH + discount = discount * rho + current_profits += discount * np.inner(psi, Q @ h) + profits.append(current_profits) + +fig, ax = plt.subplots() +ax.plot(profits, label='profits') +ax.plot(np.zeros(max_T), '--', label='break even') +ax.set_xlabel('time') +ax.legend() plt.show() + ``` +Here's figure 4.11. + + ```{code-cell} ipython3 +p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00), + (0.05 , 0.92 , 0.03 , 0.00 , 0.00), + (0.00 , 0.04 , 0.92 , 0.04 , 0.00), + (0.00 , 0.00 , 0.04 , 0.94 , 0.02), + (0.00 , 0.00 , 0.00 , 0.01 , 0.99)) + +p_Q = np.array(p_Q) +states = 0, 1, 2, 3, 4 +dates = 10, 60, 160 +initial_states = 0, 4 + +rows, cols = 2, 3 +fig, axes = plt.subplots(rows, cols) + +for row, init in enumerate(initial_states): + psi = np.zeros(5) + psi[init] = 1 + for col, d in enumerate(dates): + ax = axes[row, col] + ax.bar(states, + psi @ np.linalg.matrix_power(p_Q, d), + alpha=0.5, + edgecolor='k') + ax.set_title(f"$X_0 = {init}, t = {d}$") + ax.set_ylabel("prob") + ax.set_xlabel("state") + +plt.tight_layout() + +#plt.savefig("dds2.pdf") +plt.show() +``` + + +And here's figure 4.12. + + +```{code-cell} ipython3 +dates = 160, 500, 1000 + +fig, axes = plt.subplots(rows, cols) + +for row, init in enumerate(initial_states): + psi = np.zeros(5) + psi[init] = 1 + for col, d in enumerate(dates): + ax = axes[row, col] + ax.bar(states, + psi @ np.linalg.matrix_power(p_Q, d), + alpha=0.5, + edgecolor='k') + ax.set_title(f"$X_0 = {init}, t = {d}$") + ax.set_ylabel("prob") + ax.set_xlabel("state") + +plt.tight_layout() + +#plt.savefig("dds3.pdf") +plt.show() +``` + + +Next we turn to exercise 4.42. + +First here's a function to compute the stationary distribution, assuming it is +unique. + +```{code-cell} ipython3 +from numpy.linalg import solve + +def compute_stationary(p): + N = p.shape[0] + I = np.identity(N) + O = np.ones((N, N)) + A = I - p + O + return solve(A.T, np.ones((N, 1))).flatten() + +``` + +Now let's apply it to `p_Q`. +```{code-cell} ipython3 + +psi_star = compute_stationary(p_Q) + +fig, ax = plt.subplots() +ax.bar(states, psi_star, alpha=0.5, edgecolor='k') + +plt.show() +``` + +As expected, the distribution is very similar to the time 1,000 distribution +we obtained above by shifting forward in time. + + +Now let's look at exercise 4.43. + + +```{code-cell} ipython3 +psi_star = compute_stationary(pH) +print(np.inner(psi_star, h)) +``` + +If we compute profits at $t=1000$, starting from a range of initial +conditions, we get very similar results. + +```{code-cell} ipython3 +pT = np.linalg.matrix_power(pH, 1000) +psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1) + +for psi in psi_vecs: + print(np.inner(psi, pT @ h)) +``` + +This is not surprising, since `p_H` is globally stable. + + +Here's the solution to exercise 4.57, which computes mean return time. + +I'll use JIT compilation to make the code fast. + +```{code-cell} ipython3 +@jit +def compute_return_time(x, p, max_iter=100_000): + X = x + t = 0 + while t < max_iter: + W = np.random.rand() + X = tau(W, S, pH[X, :]) + t += 1 + if X == x: + return t + +@jit +def compute_mean_return_time(x, p, n=100_000): + counter = 0 + for i in range(n): + counter += compute_return_time(x, p) + return counter / n + + +[compute_mean_return_time(i, pH) for i in range(3)] + +``` + +For comparison: + +```{code-cell} ipython3 +psi_star = compute_stationary(pH) +1/ psi_star + +``` + +As predicted by the theory, the values are approximately equal. + + +Now let's turn to the inventory model. + +```{code-cell} ipython3 +def b(d): + " Returns probability that demand = d." + return (d >= 0) * (1/2)**(d + 1) + +def h(x, q, Q): + return x + (Q - x) * (x <= q) + +def build_p(q=2, Q=5): + p = np.empty((Q+1, Q+1)) + for x in range(Q+1): + for y in range(Q+1): + if y == 0: + p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q) + else: + p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y + + return p + +``` + +Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the +one shown in the text. + + +```{code-cell} ipython3 + +p = build_p() +compute_stationary(p) + + +``` + +Yep, looks good. + +Now let's check that the optimal policy agrees with $q=7$, as claimed in the text. + +```{code-cell} ipython3 +Q = 20 # inventory upper bound +C = 0.1 # cost of restocking + +# profit given state x, demand d, policy q +def profit(x, d, q): + stock = h(x, q, Q) + revenue = stock if stock < d else d + cost = C * (x <= q) + return revenue - cost + +# expected profit given x and policy q +def g(x, q): + counter = 0 + for d in range(1000): + counter += profit(x, d, q) * b(d) + return counter + +def profit_at_stationary(q): + p = build_p(q=q, Q=Q) + stationary = compute_stationary(p) + counter = 0 + for x in range(Q+1): + counter += g(x, q) * stationary[x] + return counter + +def compute_optimal_policy(): + running_max = -np.inf + for q in range(Q+1): + counter = profit_at_stationary(q) + if counter > running_max: + running_max = counter + argmax = q + return(argmax) + +compute_optimal_policy() +``` + + +Here's a solution for exercise 4.61. From preceding calculations we have +the stationary probability assigned to normal growth: + + +```{code-cell} ipython3 +psi_star = compute_stationary(pH) +psi_star[0] +``` + +The fraction of the time a long path spends in this state can be calculated as +follows. + + +```{code-cell} ipython3 +T = 1_000_000 +mc = MarkovChain(pH) +X = mc.simulate(init=0, ts_length=T) +np.mean(X == 0) +``` + +As expected given the LLN results for stable Markov chains, the two numbers are approximately equal. + + +Finally, let's look at the expected profits question in exercise 4.63. + +Previously we calculated steady state profits via + + +```{code-cell} ipython3 +h = (1000, 0, -1000) +psi_star = compute_stationary(pH) +print(np.inner(psi_star, h)) +``` + +To check that we get approximately the same results when simulating a long +time series, we can calculate as follows. + + +```{code-cell} ipython3 +y = [h[x] for x in X] +np.mean(y) ``` diff --git a/code_book/intro.md b/code_book/intro.md index c40b3cf..733444e 100644 --- a/code_book/intro.md +++ b/code_book/intro.md @@ -1,35 +1,38 @@ -Economic Dynamics Python Code -============================= +Economic Dynamics Code Book +=========================== -**Author**: [John Stachurski](https://johnstachurski.net/) +**AUTHOR**: [JOHN STACHURSKI](https://johnstachurski.net/) -This lecture series provides a short introduction to the field of continuous -time Markov chains. Focus is shared between theory, applications and -computation. Mathematical ideas are combined with computer code to help -clarify and build intuition, as well as to bridge the gap between theory and -applications. +This code book provides code to accompany the second edition of the +textbook *Economic Dynamics: Theory and Computation*, published by the MIT +Press. The code recreates figures from the book and gives solutions to +exercises. -The presentation is relatively rigorous but the aim is towards applications -rather than mathematical curiosities (which are plentiful, if one starts to -look). Applications are drawn from economics, finance and operations -research. +The only code provided at this stage is Python. A Julia version is lacking +only due to time constraints. If there are readers who would like to create a +Julia version, please get in touch via email or the [issue +tracker](https://github.com/jstac/edtc-code/issues). A MATLAB version is also +welcome --- although I'm not personally familiar with the language. +The Python code contained in these notes is accelerated through a combination of +[NumPy](https://numpy.org/) and just-in-time compilation +(via [Numba](http://numba.pydata.org/)). For those who require it, QuantEcon +provides a fast-paced [introduction to scientific computing with +Python](https://python-programming.quantecon.org/) with background on +these topics. -```{admonition} Computer code -The code is written in Python and is accelerated through a combination of -[NumPy](https://numpy.org/) (vectorized code) and just-in-time compilation -(via [Numba](http://numba.pydata.org/)). +```{note} +To run the code contained here, please install the latest version of +[Anaconda Python](https://www.anaconda.com/). You will also need the [QuantEcon Python +library](https://quantecon.org/quantecon-py/) and the [Interpolation +library](https://github.com/EconForge/interpolation.py). +Follow the links for installation instructions. -QuantEcon provides a fast-paced [introduction to scientific computing with -Python](https://python-programming.quantecon.org/) that covers these topics. +If you encounter errors, please open an +[issue](https://github.com/jstac/edtc-code/issues) and copy and paste your +error message. ``` - - - -``` - - -The code book is written using [Jupyter Book](https://jupyterbook.org/intro.html). +This code book is created using [Jupyter Book](https://jupyterbook.org/intro.html). From 8bb74fb944f4cada80f9ecd8b9a1bdd790826c19 Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Fri, 13 Aug 2021 07:58:18 +1000 Subject: [PATCH 04/24] misc --- code_book/ch5.md | 395 +++++++++++++++++++++++++++ code_book/ch6.md | 679 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1074 insertions(+) create mode 100644 code_book/ch5.md create mode 100644 code_book/ch6.md diff --git a/code_book/ch5.md b/code_book/ch5.md new file mode 100644 index 0000000..98b91cd --- /dev/null +++ b/code_book/ch5.md @@ -0,0 +1,395 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 5 Code + + +We will use the following imports. + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt +from numba import jit +``` + +## The Optimal Savings Problem + +First we set parameters and construct the state and action spaces. + +```{code-cell} ipython3 +beta, rho = 0.5, 0.9 +z_bar, s_bar = 10, 5 + +S = np.arange(z_bar + s_bar + 1) # State space = 0,...,z_bar + s_bar +Z = np.arange(z_bar + 1) # Shock space = 0,...,z_bar +``` + +Next we write down the primitives of the problem, such as the utility function. + + +```{code-cell} ipython3 +def U(c): + "Utility function." + return c**beta + +def phi(z): + "Probability mass function, uniform distribution." + return 1.0 / len(Z) if 0 <= z <= z_bar else 0 + +def Gamma(x): + "The correspondence of feasible actions." + return range(min(x, s_bar) + 1) +``` + + +### Value Function Iteration + +To implement VFI, we first construct the Bellman operator $T$. + +```{code-cell} ipython3 +def T(v): + Tv = np.empty_like(v) + for x in S: + # Compute the value of the objective function for each + # a in Gamma(x) and record highest value. + running_max = -np.inf + for a in Gamma(x): + y = U(x - a) + rho * sum(v[a + z]*phi(z) for z in Z) + if y > running_max: + running_max = y + # Store the maximum reward for this x in Tv + Tv[x] = running_max + return Tv +``` + +The next function computes a $w$-greedy policy. + +```{code-cell} ipython3 +def get_greedy(w): + sigma = np.empty_like(w) + for x in S: + running_max = -np.inf + for a in Gamma(x): + y = U(x - a) + rho * sum(w[a + z]*phi(z) for z in Z) + # Record the action that gives highest value + if y > running_max: + running_max = y + sigma[x] = a + return sigma +``` + + +The following function implements value function iteration, starting with the +utility function as the initial condition. + +Iteration continues until the sup deviation between iterates is less than +`tol`. + +```{code-cell} ipython3 +def compute_value_function(tol=1e-4, + max_iter=1000, + verbose=True, + print_skip=5): + + # Set up loop + v = [U(x) for x in S] # Initial condition + i = 0 + error = tol + 1 + + while i < max_iter and error > tol: + v_new = T(v) + error = np.max(np.abs(v - v_new)) + i += 1 + if verbose and i % print_skip == 0: + print(f"Error at iteration {i} is {error}.") + v = v_new + + if i == max_iter: + print("Failed to converge!") + + if verbose and i < max_iter: + print(f"\nConverged in {i} iterations.") + + return v_new +``` + +Let's run the code and plot the result. + +```{code-cell} ipython3 +v_star = compute_value_function() + +fig, ax = plt.subplots() +ax.plot(S, v_star, 'k-', label='approximate value function') +ax.legend() +ax.set_xlabel("$x$") +ax.set_ylabel("value") + +#plt.savefig("vfiv.pdf") + +plt.show() + +``` + +Now we can compute the $v^*$-greedy policy, which is approximately optimal. + +```{code-cell} ipython3 +sigma_star = get_greedy(v_star) + +fig, ax = plt.subplots() +ax.plot(S, sigma_star, 'k-', label='optimal policy') +ax.legend() + +plt.show() + +``` + +Even though value function iteration only guarantees an approximately optimal +policy, since computation of the value function is only up to a certain degree +of precision, it turns out that our policy is exactly optimal. + +This becomes clear in the next section. + +Before that, let's check that the Markov chain for wealth is globally stable +by calculating the Dobrushin coefficient. + +Here's a function to compute the Dobrushin coefficient. + +```{code-cell} ipython3 +def dobrushin(p): + running_min = 1 + for x in S: + for xp in S: + a = sum((min(p[x,y], p[xp, y]) for y in S)) + if a < running_min: + running_min = a + return running_min +``` + +Now we construct the stochastic kernel at the optimal policy and check the +Dobrushin coefficient. + +```{code-cell} ipython3 +p_sigma = np.empty((len(S), len(S))) + +for x in S: + for y in S: + p_sigma[x, y] = phi(y - sigma_star[x]) + +dobrushin(p_sigma) +``` + +The Dobrushin coefficient is positive so global stability holds. + +We'll borrow some earlier code to compute the stationary distribution. + + +```{code-cell} ipython3 +from numpy.linalg import solve + +def compute_stationary(p): + N = p.shape[0] + I = np.identity(N) + O = np.ones((N, N)) + A = I - p + O + return solve(A.T, np.ones((N, 1))).flatten() + +``` + +Now let's compute it. + +```{code-cell} ipython3 +fig, ax = plt.subplots() +psi_star = compute_stationary(p_sigma) + +ax.bar(S, psi_star, edgecolor='k', alpha=0.5, label=r'$\psi^*$') +ax.set_xlabel('wealth') +ax.legend() + +# plt.savefig("opt_wealth_dist.pdf") + +plt.show() +``` + + +### Policy Iteration + +Now we turn to the Howard policy iteration algorithm. + +In the finite state setting, this algorithm converges to the exact optimal +policy. + +To implement the algorithm, we need to be able to evaluate the lifetime reward +of any given policy. + +The next function does this using the algebraic method suggested in the +textbook. + +```{code-cell} ipython3 +def compute_policy_value(sigma): + + # Construct r_sigma and p_sigma = M_sigma + n = len(S) + r_sigma = np.empty(n) + p_sigma = np.empty((n, n)) + for x in S: + r_sigma[x] = U(x - sigma[x]) + for y in S: + p_sigma[x, y] = phi(y - sigma[x]) + + + # Solve sigma = (I - rho p_sigma)^{-1} r_sigma + I = np.identity(n) + sigma = np.linalg.solve(I - rho * p_sigma, r_sigma) + return sigma +``` + +Now we can implement policy iteration. + + +```{code-cell} ipython3 +def policy_iteration(max_iter=1e6, verbose=True): + + sigma = np.zeros(len(S)) # Starting point + i = 1 + + while i < max_iter: + v_sigma = compute_policy_value(sigma) + new_sigma = get_greedy(v_sigma) + if np.all(new_sigma == sigma): + break + else: + sigma = new_sigma + i += 1 + + if i == max_iter: + print("Failed to converge!") + + if verbose and i < max_iter: + print(f"\nConverged in {i} iterations.") + + return sigma + +``` + +Now let's compute using policy iteration and plot. + +```{code-cell} ipython3 +sigma_star_pi = policy_iteration() + +fig, ax = plt.subplots() +ax.plot(S, sigma_star_pi, 'k-', label='optimal policy via PI') +ax.legend() +ax.set_xlabel("$x$") +ax.set_ylabel("savings") + +# plt.savefig("wealth_opt_pol.pdf") + +plt.show() + +``` + +Let's check that the two ways of computing the optimal policy are +equivalent up. + + +```{code-cell} ipython3 +np.all(sigma_star == sigma_star_pi) +``` + +Success! We have found the optimal policy and both methods of computing lead +us to it. + + + + +## Equilibrium Selection + + +Here are the parameter values. + +```{code-cell} ipython3 +N = 12 +u = 2 +w = 1 +``` + +```{code-cell} ipython3 +@jit +def reward1(z): + return (z/N) * u + +@jit +def reward2(z): + return ((N - z)/N) * w + +@jit +def B(z): + if reward1(z) > reward2(z): + return N + elif reward1(z) < reward2(z): + return 0 + else: + return z + +@jit +def update(z, epsilon): + Vu = np.random.binomial(N - B(z), epsilon) + Vw = np.random.binomial(B(z), epsilon) + return B(z) + Vu - Vw +``` + +Plot the function $B$ as a 45 degree diagram. + +```{code-cell} ipython3 +fig, ax = plt.subplots() +state = np.arange(0, N+1) +ax.plot(state, state, 'k--', label='45 degrees') +ax.scatter(state, [B(x) for x in state], label='$B(x)$') +ax.legend() +ax.set_xlabel('$x$') +# plt.savefig("os_rewards.pdf") +plt.show() +``` + +Now we barplot the fraction of time sample paths spend at $N$ as epsilon varies. + +```{code-cell} ipython3 + +@jit +def compute_time_at_state(s, epsilon, sim_length=1_000_000, x_init=5): + X = x_init + counter = 0 + for t in range(sim_length): + X = update(X, epsilon) + if X == s: + counter += 1 + return counter / sim_length + +epsilons = np.arange(0.001, 0.1, step=0.01) +sample_frac = np.empty(len(epsilons)) +for i, eps in enumerate(epsilons): + sample_frac[i] = compute_time_at_state(N, eps) + +fig, ax = plt.subplots() +ax.bar(epsilons, sample_frac, width=0.005, edgecolor='k', alpha=0.5) +ax.set_ylim(0, 1.01) +ax.set_xlabel('$\\epsilon$') +ax.set_ylabel('fraction') +#plt.savefig("mutation_ess.pdf") +plt.show() + +``` + + diff --git a/code_book/ch6.md b/code_book/ch6.md new file mode 100644 index 0000000..cf65a41 --- /dev/null +++ b/code_book/ch6.md @@ -0,0 +1,679 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 6 Code + +We start with some imports. + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt +from numba import jit, vectorize +from interpolation import interp +from scipy.interpolate import interp1d +from scipy.optimize import minimize_scalar + +``` + +## First Steps + +Here is the code that generated figure 6.1. + +```{code-cell} ipython3 +alpha = 0.5 # capital intensity +sigma = 0.2 # shock parameter +s = 0.5 # savings rate +delta = 0.1 # depreciation + +default_params = alpha, sigma, s, delta + +@jit +def f(k, params=default_params): + alpha, sigma, s, delta = params + return k**alpha + +@jit +def update(k, params=default_params): + alpha, sigma, s, delta = params + w = np.exp(sigma * np.random.randn()) + new_k = s * f(k) * w + (1 - delta) * k + return new_k + +@jit +def generate_solow_ts(init=1, ts_length=200, params=default_params): + " A function to generate time series. " + k = np.empty(ts_length) + k[0] = init + for t in range(ts_length-1): + k[t+1] = update(k[t], params=params) + return k + +fig, ax = plt.subplots() + +ax.plot(generate_solow_ts(init=1), label='$k_0 = 1$') +ax.plot(generate_solow_ts(init=60), '--', label='$k_0 = 60$') +ax.legend() +ax.set_xlabel('time') +#plt.savefig('solow_ts.pdf') +plt.show() + +``` + +Here is a function to generate draws from the time $t$ marginal distribution of +capital. + +```{code-cell} ipython3 + +@jit +def sim_from_marginal(t=10, init=1, sim_size=100_000, params=default_params): + k_draws = np.empty(sim_size) + for i in range(sim_size): + k = init + for j in range(t): + k = update(k, params=params) + k_draws[i] = k + return k_draws +``` + +Now we generate some draws for date $t=20$ under the default parameters and +take the mean, which solves exercise 6.2. + +```{code-cell} ipython3 +draws = sim_from_marginal(t=20) +draws.mean() +``` + +Here is the solution to exercise 6.3. + + +```{code-cell} ipython3 +new_s = 3/4 +new_params = alpha, sigma, new_s, delta +draws = sim_from_marginal(t=20, params=new_params) +draws.mean() +``` + +Not surprisingly, mean capital stock at this (and any given) date is higher, +due to higher savings. + + +Here is the solution to exercise 6.4. + + +```{code-cell} ipython3 +init_values = 5, 10, 20 +for init_k in init_values: + draws = sim_from_marginal(t=20, init=init_k) + print(f"Mean capital from initial condition {init_k} is {draws.mean():.2f}") +``` + +Higher initial capital leads to higher mean capital at $t=20$. + +This is as expected, since the law of motion for capital is increasing in +lagged capital. + + +Here is the solution to exercise 6.5. + + +```{code-cell} ipython3 +dates = 50, 100, 200 +for date in dates: + draws = sim_from_marginal(t=date) + print(f"Mean capital at {date} is {draws.mean():.2f}") +``` + +Mean capital is slightly increasing, although it stabilizes as $t \to \infty$. + +The initial increase is due to the fact that the initial condition is +relatively small. Hence we see growth on average, as shown in the time series +plot starting from $k_0=1$ above. + +For exercise 6.6 we compute the 95% confidence interval as follows + +```{code-cell} ipython3 +draws = sim_from_marginal(t=20) +n = len(draws) +k_bar = draws.mean() +sigma_hat = draws.std() +c = 1.96 + +lower = k_bar - (sigma_hat / np.sqrt(n)) * c +upper = k_bar + (sigma_hat / np.sqrt(n)) * c + +print(f"Sample mean is {k_bar:.4f}") +print("The 95% Confidence interval is ", [round(x, 4) for x in (lower, upper)]) + +``` + +For exercise 6.7 we approximate steady state consumption at a range of savings +values using the method described in the exercise. + + +```{code-cell} ipython3 +m = 100_000 +min_s, max_s, grid_size = 0.2, 0.8, 20 +savings_rates = np.linspace(min_s, max_s, grid_size) +expected_consumption = np.empty_like(savings_rates) + +for i, s in enumerate(savings_rates): + params = alpha, sigma, s, delta + draws = sim_from_marginal(t=100, sim_size=m, params=params) + w_vec = np.exp(sigma * np.random.randn(m)) + c_bar = np.mean( (1-s) * f(draws) * w_vec ) + expected_consumption[i] = c_bar + +fig, ax = plt.subplots() + +ax.plot(savings_rates, expected_consumption, label='expected consumption') +ax.legend() +ax.set_xlabel('savings rate') +#plt.savefig('solow_golden.pdf') +plt.show() + +``` + +Exercise 6.8 asks us to compute the empirical distribution of $\psi_t$ when +$t=20$ at different sample sizes. + + +```{code-cell} ipython3 +fig, axes = plt.subplots(2, 2) +axes = axes.flatten() +sample_sizes = 4, 25, 100, 5000 +grid_points = np.linspace(0, 25, 100) + +for ax, n in zip(axes, sample_sizes): + draws = sim_from_marginal(t=20, sim_size=n) + ecdf_vals = [np.mean(draws <= x) for x in grid_points] + ax.plot(grid_points, ecdf_vals) + ax.set_title(f"$n={n}$") + +plt.tight_layout() +#plt.savefig('solow_ecdf.pdf') +plt.show() + +``` + +Our next task is to simulate from the "threshold exernalities" model. + +The following code generates figures 6.5 and 6.6. + + +```{code-cell} ipython3 +alpha = 0.5 # capital intensity +s = 0.25 # savings rate +sigma = 0.14 # shock parameter +delta = 1.0 # depreciation +A1, A2 = 15, 25 +k_b = 21.6 + + +@jit +def A(k): + return A1 if k < k_b else A2 + +@jit +def f(k): + return k**alpha + +@jit +def update(k): + w = np.exp(sigma * np.random.randn()) + new_k = s * A(k) * f(k) * w + (1 - delta) * k + return new_k + +@jit +def generate_ad_ts(init=1, ts_length=400): + k = np.empty(ts_length) + k[0] = init + for t in range(ts_length-1): + k[t+1] = update(k[t]) + return k + +fig, ax = plt.subplots() + +ax.plot(generate_ad_ts(init=1), label='$k_0 = 1$') +ax.plot(generate_ad_ts(init=80), '--', label='$k_0 = 80$') +ax.legend() +ax.set_xlabel('time') +#plt.savefig('adtssim.pdf') +plt.show() + +``` + +The next piece of code computes an approximation of the first passage time +above $k_b$ using simulation. + + +```{code-cell} ipython3 +@jit +def draw_tau(): + tau = 0 + k = 1 + while k < k_b: + k = update(k) + tau += 1 + return tau + +def tau_draws(m=10_000): + draws = np.empty(m) + for i in range(m): + draws[i] = draw_tau() + +print(np.mean(draws)) +``` + +Here is a solution to Exercise 6.11, which implements a kernel density +estimator and tests it on some data. + +The kernel density estimator uses a Gaussian kernel and is implemented via a closure. + +We use the `vectorize` decorator from Numba to ensure that the function can act +correctly on arrays as well as scalars. + +```{code-cell} ipython3 + +k0 = np.sqrt(1 / (2 * np.pi)) # for Gaussian kernel +@jit +def K(z): + return k0 * np.exp(-z**2) + +def kde_factory(data, delta): + + @vectorize + def kde(x): + return (1 / delta) * np.mean( K((x - data) / delta) ) + + return kde +``` + +Now we produce the figure. + +```{code-cell} ipython3 +Y = np.random.randn(100) +deltas = 0.01, 0.05, 0.1, 0.5 +x_grid = np.linspace(-2, 2, 200) + +fig, axes = plt.subplots(2, 2) +axes = axes.flatten() + +for delta, ax in zip(deltas, axes): + f = kde_factory(Y, delta) + ax.plot(x_grid, f(x_grid)) + ax.set_title(f"$\delta_n = {delta}$") + +plt.tight_layout() +#plt.savefig("kdes.pdf") +plt.show() + +``` + +Next we turn to exercise~6.8, which concerns the STAR model. + +We will use a `jitclass`, which requires us to set up parameters. + +```{code-cell} ipython3 +from numba import float64 +from numba.experimental import jitclass + +star_data = ( + ('alpha_0', float64), + ('alpha_1', float64), + ('beta_0', float64), + ('beta_1', float64) +) +``` + +Next we set up the class, which implements the law of motion and the +stochastic kernel. + + +```{code-cell} ipython3 +@jitclass(star_data) +class STAR: + + def __init__(self, alpha_0=-4.0, alpha_1=0.4, beta_0=5.0, beta_1=0.6): + + self.alpha_0, self.alpha_1 = alpha_0, alpha_1 + self.beta_0, self.beta_1 = beta_0, beta_1 + + def G(self, x): + " Logistic function " + return 1 / (1 + np.exp(-x)) + + def g(self, x): + " Smooth transition function " + a = (self.alpha_0 + self.alpha_1 * x) * (1-self.G(x)) + b = (self.beta_0 + self.beta_1 * x) * self.G(x) + return a + b + + def update(self, x): + " Update by one time step. " + W = np.random.randn() + return self.g(x) + W + + def draws_from_marginal(self, t_date, init=0, n=10_000): + draws = np.empty(n) + for i in range(n): + X = init + for t in range(t_date): + X = self.update(X) + draws[i] = X + return draws + + def phi(self, z): + " Standard normal density " + return k0 * np.exp(-z**2) + + def p(self, x, y): + " Stochastic kernel " + return self.phi(y - self.g(x)) +``` + +```{code-cell} ipython3 +s = STAR() +x_grid = np.linspace(-10, 20, 200) + +fig, ax = plt.subplots() +ax.plot(x_grid, x_grid, '--', label='45 degrees') +ax.plot(x_grid, s.g(x_grid), label='$g$') +ax.legend() + +#plt.savefig("star_g.pdf") +plt.show() +``` + +Now we use a closure to produce a look ahead estimator of the time $t$ +marginal given a stochastic kernel and a set of draws from time $t+1$. + +```{code-cell} ipython3 +def lae_factory(p, x_data): + + def f(y): + return np.mean(p(x_data, y)) + + return f + +``` + +This code solves exercise 6.12. + + +```{code-cell} ipython3 +dates = 1, 2, 4, 8, 16, 32 +y_grid = np.linspace(-20, 20, 200) +greys = [str(g) for g in np.linspace(0.2, 0.8, len(dates))] +greys.reverse() + +s = STAR() + +fig, ax = plt.subplots() + +for t, g in zip(dates, greys): + x_obs = s.draws_from_marginal(t) + f = lae_factory(s.p, x_obs) + ax.plot(y_grid, + [f(y) for y in y_grid], + color=g, + lw=2, + alpha=0.6, + label=f'$t={t}$') + +ax.set_xlabel('$x$') +ax.legend() + +#plt.savefig("starseq.pdf") +plt.show() +``` + +Solutions to exercises 6.13 -- 6.15 are omitted. They can be solved using +techniques similar to those described above and immediately below. + +We complete section 6.1 by solving exercise 6.16. + + +```{code-cell} ipython3 +ad_data = ( + ('alpha', float64), + ('s', float64), + ('sigma', float64), + ('A1', float64), + ('A2', float64), + ('k_b', float64), +) + + +@jitclass(ad_data) +class AD: + + def __init__(self, + alpha=0.5, + s=0.25, + sigma=0.14, + A1=15, + A2=25, + k_b = 21.6): + + self.alpha, self.s, self.sigma = alpha, s, sigma + self.A1, self.A2, self.k_b = A1, A2, k_b + + def A(self, k): + return self.A1 * (k < self.k_b) + self.A2 * (k >= self.k_b) + + def f(self, k): + return k**self.alpha + + def update(self, k): + w = np.exp(self.sigma * np.random.randn()) + new_k = self.s * self.A(k) * self.f(k) * w + return new_k + + def generate_ts(self, init=1, ts_length=100_000): + k = np.empty(ts_length) + k[0] = init + for t in range(ts_length-1): + k[t+1] = self.update(k[t]) + return k + + def phi(self, z): + " Lognormal density for N(0, sigma^2) " + a = k0 / (z * self.sigma) + b = np.exp(- np.log(z)**2 / (2 * self.sigma**2)) + return a * b + + def p(self, x, y): + z = y / (self.s * self.A(x) * self.f(x)) + return self.phi(z) / z + +``` + +Now we use the class to generate the figure. + + + +```{code-cell} ipython3 +sigmas = 0.1, 0.12, 0.14, 0.16, 0.18 +y_grid = np.linspace(0, 60, 140) +greys = [str(g) for g in np.linspace(0.2, 0.8, len(sigmas))] +greys.reverse() + +fig, ax = plt.subplots() + +for sigma, g in zip(sigmas, greys): + ad = AD(sigma=sigma) + x_obs = ad.generate_ts() + f = lae_factory(ad.p, x_obs) + ax.plot(y_grid, + [f(y) for y in y_grid], + color=g, + lw=2, + alpha=0.6, + label=f'$\sigma={sigma}$') + +ax.set_xlabel('$k$') +ax.legend() + +#plt.savefig("ad_sdla.pdf") +plt.show() +``` + +## Optimal Savings + +Optimization routines in the Python numerical tool set typically perform +minimization. + +It is useful for us to have a function +maximizises a map g over an interval [a, b]. + +We use the fact that the maximizer of g on any interval is also the minimizer +of -g. + + +```{code-cell} ipython3 +def maximize(g, a, b, args): + """ + Returns the maximal value and the maximizer. + The tuple args collects any extra arguments to g. + """ + objective = lambda x: -g(x, *args) + result = minimize_scalar(objective, bounds=(a, b), method='bounded') + maximizer, maximum = result.x, -result.fun + return maximizer, maximum +``` + + +```{code-cell} ipython3 + +class OptimalSaving: + + def __init__(self, + U, # utility function + R=1.05, # gross return on saving + rho=0.96, # discount factor + m=0, # shock location parameter + b=0.1, # shock scale parameter + grid_max=4, + grid_size=120, + shock_size=250, + seed=1234): + + self.U, self.R, self.rho, self.m, self.b = U, R, rho, m, b + + # Set up grid + self.grid = np.linspace(1e-4, grid_max, grid_size) + + # Store shocks (with a seed, so results are reproducible) + np.random.seed(seed) + self.shocks = np.exp(m + b * np.random.randn(shock_size)) + + def state_action_value(self, s, a, v_array): + """ + Right hand side of the Bellman equation. + """ + + U, R, rho, shocks = self.U, self.R, self.rho, self.shocks + + v = interp1d(self.grid, + v_array, + fill_value=(v_array[0], v_array[-1]), + bounds_error=False) + + return U(a-s) + rho * np.mean(v(R * s + shocks)) +``` + +In the last line, the expectation is computed via Monte Carlo. + + +Now we write up the Bellman operator. + +```{code-cell} ipython3 +def T(v, os): + """ + The Bellman operator. Updates the guess of the value function + and also computes a v-greedy policy. + + * os is an instance of OptimalSaving + * v is an array representing a guess of the value function + + """ + v_new = np.empty_like(v) + v_greedy = np.empty_like(v) + + for i in range(len(os.grid)): + a = os.grid[i] + + # Maximize RHS of Bellman equation at state a + c_star, v_max = maximize(os.state_action_value, 1e-10, a, (a, v)) + v_new[i] = v_max + v_greedy[i] = c_star + + return v_greedy, v_new +``` + + +```{code-cell} ipython3 +def solve_model(os, + tol=1e-4, + max_iter=1000, + verbose=True, + print_skip=25): + """ + Solve the model by iterating with the Bellman operator. + + * os is an instance of OptimalSaving + + """ + + # Set up loop + v = U(os.grid) # Initial condition + i = 0 + error = tol + 1 + + while i < max_iter and error > tol: + v_greedy, v_new = T(v, os) + error = np.max(np.abs(v - v_new)) + i += 1 + if verbose and i % print_skip == 0: + print(f"Error at iteration {i} is {error}.") + v = v_new + + if i == max_iter: + print("Failed to converge!") + + if verbose and i < max_iter: + print(f"\nConverged in {i} iterations.") + + return v_greedy, v_new +``` + + +Let us put this code to work. + +```{code-cell} ipython3 +gamma = 1.5 + +@jit +def U(c): + "The utility function." + return c**(1 - gamma) / (1 - gamma) + +os = OptimalSaving(U) + +sigma_star, v_star = solve_model(os) +``` + + + From 7bc7ce2c39f0be5455f550a52f328bab943ebd38 Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Sun, 15 Aug 2021 05:01:28 +1000 Subject: [PATCH 05/24] misc --- code_book/_build/.doctrees/ch1.doctree | Bin 2462 -> 0 bytes code_book/_build/.doctrees/ch2.doctree | Bin 23601 -> 0 bytes code_book/_build/.doctrees/ch3.doctree | Bin 2472 -> 0 bytes code_book/_build/.doctrees/ch4.doctree | Bin 413247 -> 0 bytes code_book/_build/.doctrees/environment.pickle | Bin 33971 -> 0 bytes code_book/_build/.doctrees/glue_cache.json | 1 - code_book/_build/.doctrees/intro.doctree | Bin 11117 -> 0 bytes .../base.ipynb | 203 - .../base.ipynb | 110 - .../base.ipynb | 167 - .../base.ipynb | 284 - .../base.ipynb | 110 - .../base.ipynb | 50 - .../base.ipynb | 162 - .../base.ipynb | 209 - .../base.ipynb | 48 - .../base.ipynb | 163 - .../base.ipynb | 110 - .../base.ipynb | 33 - .../base.ipynb | 162 - .../base.ipynb | 162 - .../base.ipynb | 162 - .../base.ipynb | 94 - .../base.ipynb | 219 - .../base.ipynb | 217 - .../base.ipynb | 209 - code_book/_build/.jupyter_cache/global.db | Bin 90112 -> 0 bytes code_book/_build/html/.buildinfo | 4 - ...-main.c949a650a448cc0ae9fd3441c0e17fb0.css | 1 - ...ables.06eb56fa6e07937060861dad626602ad.css | 7 - code_book/_build/html/_sources/ch1.ipynb | 48 - code_book/_build/html/_sources/ch1.md | 18 - code_book/_build/html/_sources/ch2.ipynb | 428 - code_book/_build/html/_sources/ch2.md | 180 - code_book/_build/html/_sources/ch3.ipynb | 48 - code_book/_build/html/_sources/ch3.md | 18 - code_book/_build/html/_sources/ch4.ipynb | 1692 --- code_book/_build/html/_sources/ch4.md | 778 -- code_book/_build/html/_sources/intro.md | 38 - code_book/_build/html/_static/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 176 -> 0 bytes code_book/_build/html/_static/basic.css | 861 -- code_book/_build/html/_static/check-solid.svg | 4 - .../_build/html/_static/clipboard.min.js | 7 - code_book/_build/html/_static/copy-button.svg | 5 - code_book/_build/html/_static/copybutton.css | 69 - code_book/_build/html/_static/copybutton.js | 196 - .../_build/html/_static/copybutton_funcs.js | 58 - ...index.c5995385ac14fb8791e8eb36b4908be2.css | 6 - code_book/_build/html/_static/css/theme.css | 117 - code_book/_build/html/_static/doctools.js | 321 - .../html/_static/documentation_options.js | 12 - code_book/_build/html/_static/file.png | Bin 286 -> 0 bytes .../html/_static/images/logo_binder.svg | 19 - .../_build/html/_static/images/logo_colab.png | Bin 7601 -> 0 bytes .../html/_static/images/logo_jupyterhub.svg | 1 - code_book/_build/html/_static/jquery-3.5.1.js | 10872 ---------------- code_book/_build/html/_static/jquery.js | 2 - .../_static/js/index.1c5a1a01449ed65a7b51.js | 32 - .../_build/html/_static/language_data.js | 297 - code_book/_build/html/_static/minus.png | Bin 90 -> 0 bytes code_book/_build/html/_static/mystnb.css | 183 - ...-main.c949a650a448cc0ae9fd3441c0e17fb0.css | 1 - ...ables.06eb56fa6e07937060861dad626602ad.css | 7 - code_book/_build/html/_static/plus.png | Bin 90 -> 0 bytes code_book/_build/html/_static/pygments.css | 74 - code_book/_build/html/_static/searchtools.js | 522 - ...-theme.12a9622fbb08dcb3a2a40b2c02b83a57.js | 18 - ...theme.acff12b8f9c144ce68a297486a2fa670.css | 5 - .../_build/html/_static/sphinx-book-theme.css | 1 - .../_build/html/_static/sphinx-thebe.css | 120 - code_book/_build/html/_static/sphinx-thebe.js | 96 - .../_build/html/_static/togglebutton.css | 90 - code_book/_build/html/_static/togglebutton.js | 76 - code_book/_build/html/_static/underscore.js | 6 - .../vendor/fontawesome/5.13.0/LICENSE.txt | 34 - .../vendor/fontawesome/5.13.0/css/all.min.css | 5 - .../5.13.0/webfonts/fa-brands-400.eot | Bin 133034 -> 0 bytes .../5.13.0/webfonts/fa-brands-400.svg | 3570 ----- .../5.13.0/webfonts/fa-brands-400.ttf | Bin 132728 -> 0 bytes .../5.13.0/webfonts/fa-brands-400.woff | Bin 89824 -> 0 bytes .../5.13.0/webfonts/fa-brands-400.woff2 | Bin 76612 -> 0 bytes .../5.13.0/webfonts/fa-regular-400.eot | Bin 34390 -> 0 bytes .../5.13.0/webfonts/fa-regular-400.svg | 803 -- .../5.13.0/webfonts/fa-regular-400.ttf | Bin 34092 -> 0 bytes .../5.13.0/webfonts/fa-regular-400.woff | Bin 16800 -> 0 bytes .../5.13.0/webfonts/fa-regular-400.woff2 | Bin 13584 -> 0 bytes .../5.13.0/webfonts/fa-solid-900.eot | Bin 202902 -> 0 bytes .../5.13.0/webfonts/fa-solid-900.svg | 4938 ------- .../5.13.0/webfonts/fa-solid-900.ttf | Bin 202616 -> 0 bytes .../5.13.0/webfonts/fa-solid-900.woff | Bin 103300 -> 0 bytes .../5.13.0/webfonts/fa-solid-900.woff2 | Bin 79444 -> 0 bytes .../_build/html/_static/webpack-macros.html | 25 - code_book/_build/html/ch1.html | 262 - code_book/_build/html/ch2.html | 493 - code_book/_build/html/ch3.html | 262 - code_book/_build/html/ch4.html | 1188 -- code_book/_build/html/genindex.html | 214 - code_book/_build/html/index.html | 1 - code_book/_build/html/intro.html | 279 - code_book/_build/html/objects.inv | 6 - code_book/_build/html/reports/ch4.log | 34 - code_book/_build/html/search.html | 234 - code_book/_build/html/searchindex.js | 1 - code_book/_build/jupyter_execute/ch1.ipynb | 48 - code_book/_build/jupyter_execute/ch1.py | 6 - code_book/_build/jupyter_execute/ch2.ipynb | 428 - code_book/_build/jupyter_execute/ch2.py | 183 - code_book/_build/jupyter_execute/ch3.ipynb | 48 - code_book/_build/jupyter_execute/ch3.py | 6 - code_book/_build/jupyter_execute/ch4.ipynb | 1692 --- code_book/_build/jupyter_execute/ch4.py | 790 -- code_book/_build/jupyter_execute/ch4.txt | 499 - code_book/ch6.md | 354 +- 114 files changed, 344 insertions(+), 36272 deletions(-) delete mode 100644 code_book/_build/.doctrees/ch1.doctree delete mode 100644 code_book/_build/.doctrees/ch2.doctree delete mode 100644 code_book/_build/.doctrees/ch3.doctree delete mode 100644 code_book/_build/.doctrees/ch4.doctree delete mode 100644 code_book/_build/.doctrees/environment.pickle delete mode 100644 code_book/_build/.doctrees/glue_cache.json delete mode 100644 code_book/_build/.doctrees/intro.doctree delete mode 100644 code_book/_build/.jupyter_cache/executed/086628f969d096c6a7153ec2afe0a4e2/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/1144ec2d237523ea87e2ddd3c1c2321b/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/13237bc72aeab9093aa6eaab60823fcb/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/155649bae18a3547616e22154fbf6a9f/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/1a87139d76e35cf6c6e219fd11b23fe6/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/38d016ea183021056401c56a91fed34a/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/67e995718e020ecec2d9b516aeb5aebd/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/728d1e87fa1ac3b9f9fd564f8c4c4cbd/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/8e6b7cdf0f12f455a1fb52750d3b082f/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/991403d0081f09586073fda07f892489/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/b19efb60339c53c4699e1e5f5057071a/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/ca484b75c9e681c89cc70bdfd6b7cfb6/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/cc54771f9a1a14e35bc8d1a6c3f137fa/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/cf5f20299b6a4f96f931e28c5af3911e/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/d0d7abff15f3f3fd52e5de620b2bd3a2/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/e180333dbedfca98ea3dea6dd1e90cef/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/e60cf8228dbed3fa42cb364fc6b655db/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/ea07c70b3aaf779f8ff59260f515e811/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/executed/f17685b4e22655fb8eade8a9c339e2a9/base.ipynb delete mode 100644 code_book/_build/.jupyter_cache/global.db delete mode 100644 code_book/_build/html/.buildinfo delete mode 100644 code_book/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css delete mode 100644 code_book/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css delete mode 100644 code_book/_build/html/_sources/ch1.ipynb delete mode 100644 code_book/_build/html/_sources/ch1.md delete mode 100644 code_book/_build/html/_sources/ch2.ipynb delete mode 100644 code_book/_build/html/_sources/ch2.md delete mode 100644 code_book/_build/html/_sources/ch3.ipynb delete mode 100644 code_book/_build/html/_sources/ch3.md delete mode 100644 code_book/_build/html/_sources/ch4.ipynb delete mode 100644 code_book/_build/html/_sources/ch4.md delete mode 100644 code_book/_build/html/_sources/intro.md delete mode 100644 code_book/_build/html/_static/__init__.py delete mode 100644 code_book/_build/html/_static/__pycache__/__init__.cpython-38.pyc delete mode 100644 code_book/_build/html/_static/basic.css delete mode 100644 code_book/_build/html/_static/check-solid.svg delete mode 100644 code_book/_build/html/_static/clipboard.min.js delete mode 100644 code_book/_build/html/_static/copy-button.svg delete mode 100644 code_book/_build/html/_static/copybutton.css delete mode 100644 code_book/_build/html/_static/copybutton.js delete mode 100644 code_book/_build/html/_static/copybutton_funcs.js delete mode 100644 code_book/_build/html/_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css delete mode 100644 code_book/_build/html/_static/css/theme.css delete mode 100644 code_book/_build/html/_static/doctools.js delete mode 100644 code_book/_build/html/_static/documentation_options.js delete mode 100644 code_book/_build/html/_static/file.png delete mode 100644 code_book/_build/html/_static/images/logo_binder.svg delete mode 100644 code_book/_build/html/_static/images/logo_colab.png delete mode 100644 code_book/_build/html/_static/images/logo_jupyterhub.svg delete mode 100644 code_book/_build/html/_static/jquery-3.5.1.js delete mode 100644 code_book/_build/html/_static/jquery.js delete mode 100644 code_book/_build/html/_static/js/index.1c5a1a01449ed65a7b51.js delete mode 100644 code_book/_build/html/_static/language_data.js delete mode 100644 code_book/_build/html/_static/minus.png delete mode 100644 code_book/_build/html/_static/mystnb.css delete mode 100644 code_book/_build/html/_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css delete mode 100644 code_book/_build/html/_static/panels-variables.06eb56fa6e07937060861dad626602ad.css delete mode 100644 code_book/_build/html/_static/plus.png delete mode 100644 code_book/_build/html/_static/pygments.css delete mode 100644 code_book/_build/html/_static/searchtools.js delete mode 100644 code_book/_build/html/_static/sphinx-book-theme.12a9622fbb08dcb3a2a40b2c02b83a57.js delete mode 100644 code_book/_build/html/_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css delete mode 100644 code_book/_build/html/_static/sphinx-book-theme.css delete mode 100644 code_book/_build/html/_static/sphinx-thebe.css delete mode 100644 code_book/_build/html/_static/sphinx-thebe.js delete mode 100644 code_book/_build/html/_static/togglebutton.css delete mode 100644 code_book/_build/html/_static/togglebutton.js delete mode 100644 code_book/_build/html/_static/underscore.js delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/LICENSE.txt delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/css/all.min.css delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.eot delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.svg delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.ttf delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff2 delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.eot delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.svg delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.ttf delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.woff delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-regular-400.woff2 delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.eot delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.svg delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.ttf delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff delete mode 100644 code_book/_build/html/_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff2 delete mode 100644 code_book/_build/html/_static/webpack-macros.html delete mode 100644 code_book/_build/html/ch1.html delete mode 100644 code_book/_build/html/ch2.html delete mode 100644 code_book/_build/html/ch3.html delete mode 100644 code_book/_build/html/ch4.html delete mode 100644 code_book/_build/html/genindex.html delete mode 100644 code_book/_build/html/index.html delete mode 100644 code_book/_build/html/intro.html delete mode 100644 code_book/_build/html/objects.inv delete mode 100644 code_book/_build/html/reports/ch4.log delete mode 100644 code_book/_build/html/search.html delete mode 100644 code_book/_build/html/searchindex.js delete mode 100644 code_book/_build/jupyter_execute/ch1.ipynb delete mode 100644 code_book/_build/jupyter_execute/ch1.py delete mode 100644 code_book/_build/jupyter_execute/ch2.ipynb delete mode 100644 code_book/_build/jupyter_execute/ch2.py delete mode 100644 code_book/_build/jupyter_execute/ch3.ipynb delete mode 100644 code_book/_build/jupyter_execute/ch3.py delete mode 100644 code_book/_build/jupyter_execute/ch4.ipynb delete mode 100644 code_book/_build/jupyter_execute/ch4.py delete mode 100644 code_book/_build/jupyter_execute/ch4.txt diff --git a/code_book/_build/.doctrees/ch1.doctree b/code_book/_build/.doctrees/ch1.doctree deleted file mode 100644 index 78a7d658ecafabf4ca4d59dca9979b15b557a607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2462 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 GP5uGfDbw=+ diff --git a/code_book/_build/.doctrees/ch4.doctree b/code_book/_build/.doctrees/ch4.doctree deleted file mode 100644 index 3ee30130ae2c8c31e870850d09922158f670c1c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413247 zcmeFZS5@!KE%qV=9#^=O0W#~=O( z?+ETm9=1{W_K5p+XaOK{u_3HcYj>SLSMg4!?ed&6y?Y}&e z{{E%IslFsdUA2Ap{nxSi$3J|*+y1YA`M>=wZ~W~b(KzMz_rG)hyZ2w}_wRI!)BQij z;N1TyM)?c={R02~Q~dkSaO3xH@4vc#r~P~PU*0F=O37gl|A)U{j9vfh(*Jpa|9l?h zxlZQl=LPcf4B!9x4}YJ$xGn2P|F3?>U;Oa*^90lF<-hjxD#(84Gk!?F-sqR|QPkrX zulrKg-~9Ba!t3k2>hr|^z8=X>Z`Q%-b5DxcEBFn7i+^Kl;N@|KXbe6Z7kY%*>D8A5QxWhy3H8rv1PCI__H7kD zJ~87?{{KH%R!<+nvxXFL=(@kdBg@5^*Yxw0RY9nmC z{vLfH_kkb0{>v>Yu}=Fa{1PX(M;m?Nzh{242Y*El`E0`fHwXRpO8+}t>3{QYwjckK zpRf7r#N7XjpRfDpusZ+!KioGz|L*?pfA^36D2(DSAp-cXy|%5M-@bnJW&G8bSB-D@ z=e@rBt8c#G>leTH#pnA1@BHGGUp{aC^4VRVL%t(Z^X=EezWe_74jGtVeHqvdlmGh5Uotq;ufCA~zZpL-j6b~~kiUPy|KEHwWxkG>*I^*M@!Nm#FL3R`ufF^x z{k`}%zkd&(+b1vo>I?ln|2Kbw^O3oazs}!ZeI183>K|?S!6km~_Uo!Ae;di)KKJwWZ)6z1u5(=KPlNZH8U5Qf5^m&kXWkIuUcdcC z7j|Jnl6>)f9mc=-?#q{d_QfuPsvzKsY^M(I{3*74^EvX4{rTNbaqr*m-G94xe_nq7 zcJKcGW$*qr(G!gKKmToz<|w0RMeNN|}=2ydVCa z{?o6&J@(rl{y6k{@5lT90r-KMF)4sksk*%V=>DJo`0xBt;>-@_lh)R^YKkx2vhPd# zhM&&l_XR(nUdZ>=)O*JGVR~@Q)p=u{eD+F*>}tFoXZpo8pZ;2*{dJyfH`hEU_1b6o z_bxp?_Q~_+ZA?1Y?8V)v^uPPwU7?KEQEqP&m7HWccW2wPyT?!63IFYu&*ikJpLlI? zjF!=w~n-}6Vn@~_X~d;0%};i`S<0#p3ROMRg!yQb61#Aes@wgUMG^oaT`6q zC9`A7wRZKAm}b`>BgNj>TSa8FeWX~oSh3CU>+1ruF`T7)`TAODz8Q1H8c}bho6-(` z?|rk1>73O&;EWj?7J`~y@fnT0T5QLCzi=6ja_-F9i0ackw|aMZb7tLY!Ma=e*!zd~ zeq7$Sr}Im6Tbmc1r`R9sLm59Ptun}UYSZ)eG`l)XX)w)C*Q0o8+RWqTb3Mbk;>BAj zmOtIs;ZUiQ`s+RYo4jwf48s%G*hgjc+WYIQe)x&hh*6VKUQsvR8l{AI&K0jRx|hJL zejcCcj+Me;)3LEZ>pSb&pX_|A&8LstaC1J2%33_B@`Q5i_=t0J>>?ImX`V!qtb`T|GA zo7pH2J5h)SS$c4O_u8K@rt|sdGp6l~m(ROe38jcDPYtup)(f+do9yr~U(DQaHg5G2 znfbGY$5TgoHJ{&jT|Lo? z8||gl>*!E1CkGpoHOI4sYf71Bx!GQK+xC_$cy04|7>)M8l8mWl2{`3P@#J(Z|7i}$s9 z1rKxE?=0F{D#le=CuWpZ;&gh;ud3)b?z7Y?b(%hu9d%?3_V9-DY5Q|tJY-}`j7 zOwD3edrtY#3pKfB!MoHlU+*I0 zR4rqC@+4j*ukf?pi+4B#!v^=03#(V)-fz$Aty<5H7uUD4TH_I~_Pn*e*H^L459O&f z@d3ib(X;lLGA1MLBTCk(%uDXpbZM<#(Pr>jMbVSo5+Xi0Ea&rMrecY-)5#*`>BHc* z+>y+g=l8XDE`kFW9pp)D2v=}S!7hSjs{+^UZVaVhp7t9?wglKZA0c81G5Uc)d$YYHo2R9qNe`iWD8)5TdZ$*VQ>J9oA9u z@M!Pn`uZJg7dO5*oboGw%8@B!nTi?A?z(0;)t$y)a|t!2sNuC{l5JpYB(-HmQ49~o zJgxY{0fB3JScIWMt>|8}Zq;^vt29J0{*d=l${!X}Pn;-9z7;&I`}tHh)bUm&dU`o; z-EudldpRbzYb+{8+O@}BllWDn#J5<>4EvVMkNMSEnb~D6A}H5dR9X~u828Do+s%(y zrXpizvFKTuy1RC)t>Plu2{lMEz9_ofpHx~}jzOm05Ip=TmfC)y7jGy4|Cn{ggkb>BQMal@d|crxaGqb+NrF zSkUWPcDQWBgn&eoXn^cR{s=Thv=Y+cUevftTsMfN^sHWJf_a~Mp;$^B{dW5a# zV?bhYUSa8-sXq1C{Nl4dy`L>NxA&W(a6_IRrL8C&;!>t~IWlV2-+0}Bf-gl*Muk@2fyIFs==gX-zbN!yhrawNn`^|z+ zcFDMZ>?-l$`h(RnGF7DE&<+c++fAQ+!TIXI#5Qv{VY_T-3A4vmRDTZ!w_LE&D#LNL zEw&l!hwZUD>zj1T>J7(I;gS1_wT7p$WBUCH=YH&Nyx))f?ZWCOtC(xN)Jf|xGB#PV zjFB#6O5^8oOP zgB=`adu&BHdR^owdyUV2XJ(Ulcc1GkF~nqUv)w6B!}WNz2bnTnjjvCJqRv0Tj zn;7EscrcCfE%x$)&J*YDEV82+xw$|YuImbkUnp3UW_R8(!v4IvU0UbC&5DKHtk%}( z=&Eq=i(oia_N9(l7BhBx28Z2j&C0?Xv1yCgem^XdOQ}ACdlUyq&M%odv|T?wcg;F# z4!xODle=2o#9bmDVoDOsNwEy#l|f>-_GZo+c80@mw#h4&$4bM}(3gUNB$73%F%Qc7 z6Wg@LnYQz=1R6tr%&u&d*3ET&%J>7xFR`(h&A7W136W4r7Ofk8$9l#s30c;6dQmyt zO@2}Y7%REWS;;Js3p4;pmJD%(_$r#!V+42#&M!agSfpgD-iM+x z5p-6%_8xC{z(I(Z-ER9v(8o1Ih`+7I_VeRy`_wrkc>WZkWccK2TG#7TO8Cb%qud2R z2A#7`e!I+P$JK!o$uMB<({r-chuu>yQ$ewE)6Qp>1NdB?1fuC>+u$^MGR%u9C; zZOyb_Kh-waZ~b+hrq#p{C?JA2!Ba_by7nVLnX|)9C)>x)=8`bKo*ia~z|?38g}iNN z7Lq``!44{uOQAl2wKq2;A|BJ#r6gO}j0&jcw#VA;+)`zcnrF}Bs`t;6f}Po$+gRJJ zq)#Z9Yxk_4Trx}FTnat4nJ%^i4Y}uQY^H#Q<`vb7kIGukX4B7_7Pz5hrLT3tu%wvv zh13AA4A*m-7@f2o-TW0E&Gj5(L?_rkyrZ@A*WO%;J&LSw6Ln`}bKcEv(+k$VcrD+8 z1ejKw21*j=Zy*ZEVtN;d%~>_C!Yr?R^zPm|A_?Gs+9Z_-AY?CRDlG>5;eG9tT}$qB zjiJ;KTg}!LItv#SIIqcI)(EF!9nX2_j~>ZG{hISvITLbDrPO7Uv{|4~Rp_>HbqvEB zK$LgE^rwwD>}WAG=12Y@V4FqHX2A8EnWrg^vKGRL6dWSoDCr3Tpy*qIp-2rZ?){tj3*z0kR8*(+2KCj#$eV>ebM5JKUs1?fB^ z`}1A%O7h-CUO$-_Ca!3YHzH1@;?FUNx;v)93?(N$HoH8@Ol^Iyyh45W7B>mXD`PrL zTq>BNdCmv6X1!PGzVHourNPDfaA0_b0dM!e}^$2NWiki@u)h zGGTRUZI9h5xS4k?Q>`@BmWNG_s1cXUBzI0vr@H=(i&xI_?M{(4xq}OgzY-$1H6Pry z&4l&QTD}gL2RT}s*>x~Dmc<;MFr-*A*Nz#HS4z9@8^)sniSM8yw&!DU&D9X)8mgSb zNzKOlCE3nr6;R>WI9|WC=plWfl0tq!odiI1Sad*R<*DW>4vXJPOO9YhvS*UZh+++i zg5>J4t!lMn{Y#VAo;&ZGv2QI~t?I+c7Fnh!5Josdkc%@y>(=(u%M>MTG%*J0!ZJPO z?4-$FK8DWyvR1uw-b`e1l3KO>z(y&@+>%!2-e5`LHTY_J({}UoQk_o;9%?B1pb4l8 zJrtzO6U$U?B3Az3r}Oy*ycJD`Q!OjIvn=1pt}h z9}UNf%)7h0KX3jh8`$%5my)V%^CD33iS4#arv$I8RPl`rc(bni;<|S7>^g~0sFU>7 z3Pq+fzJOtb^d=k}$B%QzKMRil>7Vr#aeta$Q+_|6>Fe}(TVwf_o41g$BtIb@MDD2d zjHvjuq)aHQY0l41oxkg+@Z__TDxNm}`qix$*KSP;F%3yco%4^yE!mFxD?k;*^d5Uo zh179om-9Zw$bWb(drN7S#bP3zzW zktK5vh2k0c(t3IM*~zcd*$tGO);Ly&w3|%ZhJRqYc*bU6(+!ejz4nXoVLmS2dRBdM zTFZzc|7e>@u9g&uCGU9@$9r6-5PblzGLgb`MoTLa6W&(qedn!6ce)lSAMjY~Od*#J~mj82;lC zady!IS}e?tt(PbV`qXD7U72wHWOCRWd3;qw<lE)tx=x|b#g82OyKv` zvAn1K>=_G`37Rs*n@1?%qT;Wr16-mgkZH9 z?|cXOR(iCrOrkAfRJW#LqtX_)cP_|@IYDp%iPE;YFMJN!v&el@d#(^hG3&4{XAU9+wCm?TNPh0PNQvj_vI(N5Dr*C>T~F%AlPFzy{z{I z6&YV^z4Oi)j&!)bUxNpfgWF}gOzS0Z{anBrmpv6^$9DdFK#BmunB87g)-FAe!7l?8 z6~9jMC_cANCq$Ij)jDVw5fl~*>d+VRVWCy_J8!goqlOQ}x+||ljQ_SB_pwGH!x*V3 ziWK#J2@ArLbNJds#yY(oihFo0b~!7)_UpxrE7SB8K1281E5`7aDR9Nh(T-IVbleqd zo_ZP*CWiA|_JLY+<~k#+JO`FWH}m5<+oEIh@~ZtsB!bj-E1xLQ4~ERf!P zOK6$nx!6!Mu&5y`+?NY?7HL|-E zBOt41)6TB>{&nw%LEG3vYd`pOa;jd}7XVc5(5($sqNuG)H#{3T$*=y>+fg9jZ(@M@ zXv#;%G6nEtTT@q2Ycba|^Ki3l42?~0X?7lC(dmXeu+!B^5Rw^q4q!M*(n&3VXp-Cm z^-cJq8W>hdsy69R2&gwcu*i5lZz#bwLFKpHE_?6U_;5AwkzlW&_2UvDGHhtuN~&Qfi{g#L@os+#xU168o_`iO)O^#2e<-aERL(iA7tdk;KAbk3#80jJmlOjbz?(B>(!X7;G$fDTjAKo&)KHNS0aCK8I zFd{87_4HzFx;KiMgMh`85a@#v(z+j!KOc)bZ?BO8X`W!J`T&y1ck*X-RGH9I3t*r( z;m4)?$zOJKfm(Ua1AmLs>(m(yj^yyQOYT;jk;ExH&)z~QW{Ou;*__RV)hFdbv>U4jnkGfx~pmf1n z1ov!TzU26jI*kxp66mQbt_JIBHLd0e{4k^*x09tFU5g7`x7hEYK?+oN#hm#4p;L)?96-YiVH;6@KKeTwmWOBCX(VCH>x$IaeGGt@+6i-Xc z2GaTCbya!4rJB&%h-#;Sa1d%6b&A3~d3NhiF2J)S`TWdNC*|V)l+*cCJ=GZyOl%0G z=3gaB^u}og2?;uI3Acph)OY?Fg7axJd+n`dMMDw*_YHn!+_xatHFI`*`ap^1Q;t+p zj_*j`i@?<#$zC`Q!G5J6#!-Nm;f}(-5Kb?7qJHqTg?mv+to-Oz7hu=(&g<8J&cK&` zk0tk@qBn_q5`gA;13qx$(4A8uA#Z_26!p5(fk6toadxvQYIDGrwD zJ%BHEhc&6WNv+Gv$RFde1gYp1gvhEI`h?^GJxMv>S~kgXV$?kJP%H-U10F6%JPhp~ z0nO4D)kaSM?7REcT3Z9gW0P_ft*sWN^_nwj0Vpxapt=lu4jj`e92eTeYnJxFDOF+J zR|uNWGlO&P48e6}y3m0-SJYAW@?2O=%^6STV0`)gjX+%RhCQQ^8aSL#QEsO`(fC3T zoXh+EWZAiT2@&Uxb+lT|X=4)-DFU?x_}I6@C&mmfV7>yxtV+s@T!5OXq?S-wViFrhMAG2ze_Hs9b{Up*&Uu3qTyYWO^9K5@+{!l)&z4 z47weu37+z1dIs8`W{7OIc-=R?XSx&M$`++s+D!>3-xcLatq`|H-?>)6d6cg`xb?1* z#oTx-V(wtIR?2RppaX99h_z9k-- z*Fs4Wj#H~*wfcAf0HLb8^;*BOs}mPN0v%isS&nN|FdIHpgVq{KM)JWOouc?qdTzZh zu~a_%l(c^@$D4JiupUN!ed`aica#C}+!i7w|;G1)6NjkJbHZw0)H|6O9j|{Tj+-A0_9QQZUD(&Fby-tc={F z8LyAjD20jjx^@+)jm=5Di7F~60V+MP2V}>u-274@9*K$3qBx@lO4;fwttr2CMj@l6vO_4X$f(fk%>4&*i1lHuM>LZ;3n=btm7K zs1G(O7B68>G&$lAxOBjDmuUrVe~dwPvco>r8r0=r7T432<(-w`#14cW1I|!idCAnE+iGD0?UcI^Lvr7K|+g7y;@J!r!bvH^g(W(8T^-?rCl8 zcbdO;PrHeImwHZORN~RtpQa>3AhHDO85H>v;`V02nM@cK$O$^BWpYv%9Mz@7p;n?S zn~A)lZQlBe@60A0x5j3XPM?*%>wImzbdU3n;4g3=QyPqs7?LsHuixH2n8XLdCp<6q zZpDI^xVcE&;2sKpr0pOEl1*i7p38b>>&*|Xp&EMHN6$(5B96ZU@OgKTb@QyI0V z2yo^~_W3|5Z*$J9``NxYtrlt~E{m-i?~rV;c5Fjk*()%}gF0@Ls`u0b6q5v{8Z%&q z7|OQpPLOXjB|RK2`zmQxR%*S4hSa=i0j8MS-6drd2;Y2u9V#U`S-Ub&ApnL7i~+ zknF%gZBQU}iHf|38uL*@Pb2=I4*Z`K9~lMVm62nYArQPNv~|sMcLTd`I%kTCagh-;*PfRjM-}Fk30UqRtRSrl8K^X; zT=ZNzU_j_W2p2RAJkS`q6&vQ4i+Sr;fCSvCxNl{Czp|8%k)v; zjnsRzq8Q$i*%T}|yWa@%BoGKs3A{pYF^_8((t1enL?k}aRxeUFCHM${Ww~D?z<$kN z3_NC;Z#x?ki4U44^uPn=@iHBZIEon18mki)OEbU96X-zT87kL#wvduzJAu0wb&a({UY z4x7UQV4;`gz;+qG8f=%n&9e;P=rZ~WXf=5M+-;o^jS(9|IkbpLiuOh619LB;UP+0@+9jero4w{)W1xzOG;2)8(_B;Y%@weN6lEz;p?;DT|3gq1h!hE4gN9JJkz zOWW2DA;@oY;?>x`;kolMH&utZ^Pbql5fOiDU7^L^stFIuPawY?AS-}}DJTvw^zqSL zNS-IW#hpVOYgh8b-A=g@UuN5zI}0-KLE|{o>1$&4qBGTU9c#U2Pxm!La%{MZX;fi3 zh3MZ-UKfn4q+}I{VqjDkX<)XVZ*@~EbD_&%Lz5YuhZvXDs}?Sx*^;i23raw^*M52P z5$=gz!$+{RFtop%M8;tQ<#jK|1FQz6iLfTEN!-~WQglwOB(X8dIV$_gwnZ14J&vHL z-ia~JL5#Y>#B*Lj1y1F7J8o}?Z~PI!L^CK#u9*2v(ye+40<>o$QOok3H3BZFZ=klB zku4mDWdfd7~n;2~Tm z&00s~mr4C}J*87@#EM0@DiP+UgH{i&~8d67Q>`1JJ(qqR&w{5oN6Umj`%39`%CB_0;X&H(JghfA*SQ@fx+_`F579zl=W zYZ|fmpeu@;ftxAYRl``VIvqfHaD3Yz8PtKKHm;WzWL%=PJ>j54iWQ2RbW;AEq{IE6={P?2=zzyvN-2gNbxzR@B&7j>{r(n95f z{o30-0a~!{c~>q*5mc;`8|)2Lk%FN+MXjGChCWDwi1 z{>9~*2)maKXpmqS7M?s+G44mu@V)yve-|>d{BS?PXVHtDAPCqp&e51gXlQ;Bz zD&XMYKH0cL9s(3RKtvzeui>#i6zjo7NNKfq_sTfGe$Ug;y|QK@xJ!Wu8^FsT2a!W} zD^Xt0Z`y;@>tGjaqGPita!pRJ!84OJ@iC9xfLW8dJ4)+!#~NSvaeLNCMA@IQvu6nF z8ccBu6wVJ~HJT6Z8znNuz{UHN>%}UAY{iZThg2iU8JS;&_p*g8mM8n`Do`Pm!K6v< z-ZXy+G9QZZ#N9EI2WYnk>u=FpSc~=LdSMcOd3A(-xkG`&%q))^YC1Vjy`qfYa3bZ@ zn3KBIjaq@=JZdP*4H(sE3vc%r_H28)=ZrF`JV4gnDt&RghM5<|NiFBZJ6)V$bid6& z+lf7MleAhpW=JCWN?dG@@dn;a#ffe@;2c#FP4>QxHWmw?%9$|LhzZ`B*geR($T9)9 zlNU%)xF|+f7Dj-?(UJ&l(Bon8KzUp|JM#sk<5C8v5Z_F*^9|>|QznDE;CeBF z>j`Q!3+Mf8dRrVFp$2DOujK0;HS|7#juBsmP4@Ps_seX`;fQrx`hqf1plLHo0$bg6 z;CRL4`G5}+bNd1h@&@~?-?Tuw#xX@R9QS^I%3g*R&{GrlA+n z+CC4tGb=5lAzW7Qhz}crA>T`sPd8k1cv^0`%;gY72SlF~z#35ONNq@x&-{4Vud{39n#8~qr*$n%j^p`Ad%d+K zoRX6ds3va_LNt7B83NRNIx+6N)T37BfSYz@d8?Dha?#D_&q_ONB>8Yatp=I}swfJd z0g8D=tN@jk&!K}W(K^u`d$pJn?umGOg#n89v*M=E7)=T;0^&9D%5#)~yFpzwi6A!l z*c;H7FVNiYKJp_hWziT!#`A1rc) zc)F(WCe6&-^$cPQb@Idgc<7h)A|(*Ef*r~r_b8xGGcEv4Z`>4J79Ml+o6TyyqoczF zF_AFexqvdYog8_Ra}qG+jo~V<&RtDoMJ%iPTRtOXmP=cwI*{29|2%S{fOs6o97NZ38jM~nQ&blw@J+wR3MFUzlqq?In+gMMX2oD+FGb~nE{GF@k?cu z)W6|hoK1rbv9w?0++ANP`7+(Yos@e0A>T3Vq=P>t%kHMLX%GqAH_u;USyX*67Em7Sp8-E0ep*szdKFHMq97Y}wL&f0mV?J1-GC2ANQ* zF|<~+4Yb?bHeIXEXy3X@7ZNM>39})7LKfzv`_@}q)tS#a7=R8Z%ykw~7 z8Dy$K3IeaW9Pe_XnZepcy1?>-BG9S{@fND^!^%pHv0cHhFVu5XVMtfmXo%0)>$tI5FmT`TsjS08$}|ZSUbb=9UKUKc3oc!Qg*#z2VM!A zop7->_ZMuzo$mtr>%`|o#988(nU1xwN&`keyU-1?EqptU#vrakt3`(Hr`=*V@;$V_ zTDAQ{URyRI!Rtouf$k~Pe)5Fqg~zPlB@%L*q`r9CucKXvj}YMj3Aa$CQPqss7OYTF zLjxDQdJ<6TXoDjV9>)xJOX4+wJ5$B=DLN6)Eb#Z)y8)Y}C}CJL&FfnGa2I4&s2-}> z^ojaypIOM+=&70%@UoqIx7x#Y5AOr8oU)^ZzMhYk!=B(5MD}oV+pDS~9b(-gtR}s6Ag=IpPxWom^g1=`pzu+HavP$rkS)D-q z-z}bk)6`@yoN@;B0rD_P$)O#EYZzY&M4N+aoM)&B0`^L@|X7|fWaQ1RdwdhG8o?GN^!0HKwA$ndm$x?tK!B4a@x{Sqf z6gHY5%r%bq_rH2#AqyzL%TR)bYfrdhb#a=a#Z1h_o1U<96arY$`)>a)aep`+gYqm`WU+c^k#|Nuv(@@FF59v&b)L9 z-@xK_^yb^sy78O6J1-vT0NuShfnEehy|IBF)hVyF7Wy@=)1s!4H8S)S%7{5%g{|V+ zT0yt8FSKv54aiFOGwaNAFeheXY}7Qc(dFrf6-{CoIubz3pdF`l~58md5 zMN)|;Y=UDJ9Dt#{PoE(esKCjW0|;#JKT2>w%us@s@Ka_*ILgr=r_NrNr|0V|wSEQm zisV_vaKS?w#e(?l2k?3?MV_E&o!2Zu#j!x)IEm;#y_Jj8k?3)jpws5o)nD*&P0#RN zPIKs*d`|R@aev>Q;h%Z?PRk%;T&FqwG4}cPyyzEbii4w~r+0O~InPJ_^pOuSHo$@K zRcLT+vSI3>-hhW0pNIx3hi#pKf`Zn38HwFGnnj2-4e_p0@aIL{Z;U2Ar zvS2k3%+83q4HVkB@EMTCL({$F3sebu3Bl*`+=3-%>mH7AVS_681wUWF*78P=;4gph zA+j6&P|&3rrq{C#TMamlmQs{E>E&GIX19kj2~HB15eKF57DI}HekJdh8!Hb+3>!FX zgeQEq`GAM!v}AO`_dP?RD*}Vs(DSFa569wK_q;b3Jvf0=Q#QiNnK@8<;jcUr4~MnH zBIP(57QfllnlO_2bI(ey4$eLxdQwd&>B9CdwgZcATT%haoOjMi_a{Viz=W3di5FM2 zeH7oVMtm(DDBv3#N>1u(X;rg1%I(z|7a(gn{wGD>-}*>HSSIOxp+)yS!4PayI*aL{)kr_lZoTWF>LXR0q z`_@iEY-E}3qo=Xh;031n2yJiECiXl$-{Z{a?gyU$uI!N|iK;z)#)BkWaTY1SSO0!5YJa4z<$n{Yk1JPYk%%sXeWpI zj79W78IPW|P(nII$sQ?k#l1?UM8n zWX5YG+9#wImxQkOp3_m-GwSI`_p5h;EaqGT;M_C%5hT=WP6bH!-aaqz428&3lFi<{ zVt&X5`_c=xvm|{ypo_)uY@VhVTRQin)9TDRtv1;AIFU?UT=M8BJ~i3Mqp9sHuOK1Z zd1~;i9O~^M^Slg`>5-S=RbBbQW}`abbWisgv&hOJJ{%^L9i?j#uDNJfzyyeXVA7XH zG)}sKUzTaW2Qy>P?(7-ah;IsuL5<*F+>vo5bx9sw7XtW#HTKsa>atthzN16me*?8Cs7FaG8rtBKItU;#>nXmxQ8 zJGs~tRKC^ZeD8Vao3b5MYbw+!wic_e!m zJ)s(CS@=+ZcOO*0I5zq_a#vP=wx(w|zRHU9WO+_9ZT9R#!!N|c@+5r_N+JYeY%AKC z^tyu>(czKW=2%H^1|I30P-7`@aPu75iQG=nAK;(hF`XxUN%|}#6k}!!nQm=S&zpU6 zwg4LyU2+_|M#XSqV}f15^LikqXHO2jQV_iA<;Smtd@N8OzYgiqQmC*beq@**=q9MF z;|;p^aclfB~XejY~kz`!TyBYE!tIi#gdx<`{q_P39Zud z8{*BC$=V`)o3sJ~Bk7kCQ1S_Rpnsytzo?m8ZB%M1HuD1d++(LnXjw;rc}5tr*jH1W zK$W&7+85wdywhknLcdE4F;HuQIUgm4VF5qG{L^EwB2!VB=TIs5 zoY-cG9E)dmydUmcfDsH7{_|~W?4#`@>|H1T;9v;n^>jcDtP>yRD+_{Je3g^q_5z+l zK=$H8SEN=g@f?k}XZ0A?>-)tvi6aWVha+%Ibk%`RLBF3reDo4^#e0rDx66>CNt?X9 zr$H6XT0oJ=;HU$MMNtf1JOW7th5T4O)Fj$KTML@zvIGtP<_TX_VDD%h^bz=9GZ<(d zCj5*e68>SiA?x!7uTxQNj~AFPm+=X94bnM;Vgt1W(M7hIdnR@I?&>a_`Ky~6jhGWt^t9R)S#;QFYj`52 zfS8x+blRhSn*xVF@2xY#)we6ck=*90V=e7c5m6fxPTivOe5~+Di5wXNB}h;Eh5and z=ymL8&%=D0PRF27iGP6h;o}*BO}i(Gs@F+Mh23U=4VR11&&4?Mu6S4^KXV3@Zt`G( zW>t$pNtj9dVeC-^P^Wwb)Pu?aoiWL5$z*+PqK7vn)Q`R%&gllvMod^NCIyyz~B(Pe~&TkqU!nPnm;^)Hn?z~d|-wTAu~A9*m~H@FcEYhpBF(^}!| zN}e$RKkzM$fr(A{-6Gk?X&$e>^@|?(^Fm4TwP=9iyV4H&)T+m5OTmy1k>Ooxj>uJ zTS2gR1*`p7l5`4)+FPLgZpVx9lm|Rx;KYW6Q>I0Al{_1UCH^M|z1gePEXgnO0?0EMSo}_M0s)f&L*I0^0jV`Ya3hEcQid)w3!@ zV-?i>=Y0CaV+Z#4>4}~g2k595v@K{a7k&HMb+uZH4+;IOxeY;U0yP3Q-sfs%xG%z& zkv$n4+{2oDb|alA;%yEd@a+&%pd$VXnE-`-IYd!%Tu zx4O}S&*6}f5DI{92|l}{%TGT!XS|hek=%&I} z3QSV<B+GV(({ZSW)``}3S0h<2WCV!tFNBHlyn zbo9|N1#anVOA}b^M#O;9kyNj+J~cm@mX@FAY)sHoJAvW&%5PGyQX^?+Q5ILkhi#4~wiZ0SqeS_J=f_E=2YHnkp7R$y5R^hY9XuNZ5 zktyAyOdlBD>0OcK<(he~MzC7& zQJ9tDJZA(pcmDcmpY(9$@-FnuL^aoy$G2OGdAN`N6vX9<&nFM&_t;Z{Epn^Nnd#oa0qtcZ?ndY!mezE?K0(8Shu+sWQN>*1 zS)f0>X|;)6=o$)|JB-EGwE_Od15?o>|M&(}-ziTTK5PBViQBajMEd##4>Ag8(B`30 z*4E>4w$u0W$Ye@N8lZ+9TMD9F53Z>)X>&(Qx|Jo3xMdgt-UA&bf>tT!@~%5F4jvb^ zJbH;!(5715{oG4z_ysQxU;3JrMqAnmUwclHCh5r@DLHAp~#GdVZAZU_1={`df)O)?)2P+z0h z1m($=Xy)^@uYg;He0P7Ku0affB#dm=0Nn&j#E>_dFkvThIWbgADM5XaJzHbj3zGCE zCP)^#S23=ZZ(>d}(Wl0_<4<)|;fS zd{ZW~<_K?7l1|HT$$5|b@@FKV#i{zYb4{rSij{*Mi z++K$!F?QWUL&8LdoRTVIW?a^B~B`DTt-`D&$PPgR(40oap z#Fy4#NP}MB`6o*Dk>DUa84XMt;bcCdmws@oR*K|UBUJep8~fhh8ZVG4o*X8iT14c9(Zw{GpKefC;&Dtw`j-dktL zxGn%;{9Wbj%)D%7=S6}&eZm2)@Os|jV-E*g@j+I{Lx~rDW?8dQfez4+K~{?&>}981 z(D69RorL#&@6O}iidoUEx>=1E`h|L8vr~ti5PRp+A>*ApX7c`N6n(U2t-N?-MU{O6 zae?rkCCn(`0u9d7oCXg;?N%F|EVX)umH7BEv6lwEsn?>{$8a!9RL)1@!;0%{4q+Oy z8x6{b_xh6WNiW>lijAW_yfiry!!#&?qS?0Z~g zy5(UC+7lGDr#nn_IliGzM|KcPeE)IyLVFPwotcg!tRS}n1?(RS(kR}_3OF#etW$MtT=Zd-)(bt9-SG9@7Dxo zuh*`pw>Zo4+0EjY$sD79%KA@XNU)HUP5+_C_`sImZG-#l+mXApUvh-_N_P*{U5ME1Ati z{xPe`A4L$voeJmccP5)KkBbTQX!hPr>V7z8Vp}--;<>&kc|;bL?P5~T2^Q?2^ z`?&Av=-b^+(^D8RGysHR5f}~$hH>TZ?wRZLX>2T6AzrVl5k9NOCDCzo zlN_ysIITO}FE4WT%<_YchctJ%TMR`1Yi_QDwkB>W`R4F|r!CYQDERgI^IUYrpF;!+ z$&O6JPBiE1e8NvV=Suj%I`!>y|33@)Y+h`W?_a%M!%*>EWFz*RHQ5Aaf)Uv;n0H#Z z)@y5?HHHAEh#>%Pe7hPnd)v5p!E-o&_#fRtm$++0!~P$>zGpTKC5+P?fALJqI*pL|=PFB3dSa#uWHXy^!65XRc*q^Z*YP>E8L%uxT%`KCU3J~8+}Im;6x zyFYK2+Uu;a4*c#uZ%)Y!ZmW(LHHbo#<5is5?_O>CKtI|)M}O@OOaJy6#h2LH*Eqv$ zM^25SsI{KCb~;$!I1uVBZwb9phfbPm*^I@a6-oG5Wh}>*%)n(crTCv=fb?>=Z%*bw!8L~gm z+q(lM=#04Z?e^cVu!B={M~n?|g-bf$@JTZGElN4KeZ9`&EMrc$oQ`D%$6=%U8L@s$ z0dS2+d?p{iY=$2>Lr2-+U}(#Qepw5vse=#X!+%F?wf1*rFJZv51)vDCjX%GSC8NFf z+mF>Va9^C!F3j8;iEu}LzG>1JHDhFWodzN53h{E9;K&r^pUnn4J?aS`Y;Ifw?S6fHjq_oQ>7jK+FvXJR zJk(r0a)x1hZXV;OBd{!t^KeAP5XDHnKPDjYCR!BFnVoxo-Sa(2+{|Ng&xK&g7sS!2 zdfcZ4?ns%GN_wP^FG$By<{q@Eurk0A!RS<9yM9d=aLj8iUwc{M*w>gy4*qVv-S}?m z=S`1%v+!RFyqrpp8IENC;HB1%tHTN{5N*1-e(?xaThdcqnbF%*U%lhMKeA0c!8{h@ zk}1|#40YEB9DcqK;{u;qmR)h%1-&lPK1Z!CU3$x0<+KxaF;c_-%2PdE+lX8{v8$Q?Dd(XGd) z@N@7k-Lq{cm?uBWDd_>OcHLq!NUc%~mtT7pT z_c3uNBW&CkPhH8nv$>2>s?C?ffdxj-j`1|F=DyIbk%Up_6D*aoUzKPqd?IPZYz?_q z7R#D0E|9wSC8=!!}Z@kr-45`$hm5;s&k*Ahr*A4!5v%2&Qaj<_Q0KPwrZBw+vR>+g&)M z!q4h(0o+t9(xdTE*bMz;cD*VyvPa_8863*n@am*9zdCB&L#?;y^L5|hJ8#iuui+b^ zJxBlP`R}77n^c)?tY79Q=OzS3E&TbSL14a;vxZ-jOQ0_@ygviZyzT+?tOPW(>_zb^Ss1= znT^G!r4_xYa-5dSEy9Q1LHJ^}uUbMe<2m-lC;NfDb&}g-Z~0XkJ#MTfYX*5==H%Jv zJIIFZ$h7+GPs)_pz4_de@oaZ?=n+Q^la4_$34;ki)gRjx7UPrrh)}Wc#+M*(m5Ck- za|BEiDMnuda&z65b5;m3X#4`oGUlD!vih7nnC$`-M-} zGQ-DZ;C8g#?vpjhR-6=$kPH<6QuJzMN@3otVBU1PZu;T+SG;4%mEK?)m8In|qF62^ zo3$dFwOL}jxb!HU`ppt$-@>8azA?o`!p<|ozkVg+weYS2R z5+!iD8m2Nh{*G_t@PC2&*&WMxWUR}9tz%v04vKr=G$ctLD0={`xdUi>HMttf@7!@^ zqsST@d6$%wjP_t@A{^snxboBt3Aw158`TN^d_kG*S2LDPOSs5UQbm3(ylS!0eD1Ca z004&_rykU>+H@_yBpqY7310@2&9R|J}#D5|Tue_<>)A|dz(-%*EDbAM*$!%R+ z{vLJd7V!IE7rIKj^QpA(hUrn98m>Dh1S1snlb+QZ0#U=mt`g3suuIK7B zUi#Zp`y(hoUFg8<`RPv$3c z#)X3n0hiUah?-INVNMFAic zXJd9-ty=vqUbeVg-=24Vm$jWHIc!Uw^i&7Z0K0YD;vT-4Gow=_m+rkbN~q2*&un<~ zcJ;+;5`9KN+X7IRz0zorO^cOc#^{z^-k2$Hir7-DYvP&CVjU1ko+I#NT8XUYq%!q= z%{QA?9a`yn?mh1As$Y4A^~=&SZ-+WMpPYUtqCe5Z28JH&{LbNE%{Flvo%#J|n1?j> zRD5)DA0M^2*5!etkFpP$2lkGAR@*E;^30y_I*uB*bUnvrzslMxI94X^Ycn*C-1c8{ z(aN3taA}-Ur09GKd!g0LSa0IAkT*k#M?etdc(44&& z&5>uwJ?1@NUjjwfUri(%DEV5|i|bHl3emY!MJ!gA!q~76=(A4#N&u8x!;Mos|LQy9 z4gRs(#PkoXf(j{~qJ$r!b}<=QU3ZdoQ{$k?%L8sm@9Nv*fq|q_Pgw?Bd++mrDEeBd z1Q+a`Pp9>S+~oIFt2`4*^s|ny&3PF2SMqP49|t%b8MtyL_!IA0J?|bbewx($5ss&y zM!X%5wzE@S-=ZrB~fZ?ZLickrykqlo-eA@CxlOMxMX0D$-8gUmBPM*sh->aV1 zpJflV$$Rjd;g7S~QyACcH+pmOnqbFW)ND>Ia1#pxV78(B%b&>dwPA?Nu!BRBe=Hm3 z@QL6BUHajh+7kd^z2(XNn;YHd7bclsKP!q-%Q_cZDM__xsbazi<3)e`-fv;+@hdC+ zOfPOlwVz`XmDs*84JKs4WENHIJI#ytnMw9g7=V*(#L272b3%HbSDuhO*?df*;+y@# zfd`;?cwiPn_hN?o;pihE$M=a#@qc; zp5^ljoU8p8Y?Jl5`Pccv)NlC*n8Lg)n{p7>^bhgZbim|cy z_@l43GVV#}-{<0!7q6x5s5xw|75*sE$M-8s^YEF%6W2YUn@>~_7zf&x#~9nsCiVSd zwfI}kPL?oHac6(O)dzDk??(%^2?j#GV7Im7cOWCW3Q3qILZOxoV0Z$(d;tWHQ8)Kf z_?9@)@8;yN6hEu|yO#uiN*C|M7w>b*Om@u>F{{2j)8P%v1kd*a7VD18=!g9^?=aHWm!%7j zm=Kzlffse#a!-^qkbz@Te560kPjvVh5q-Gs+;N8wQ?hW!rgMBE?e<&5qS|EN=4WhW zr=sNAho4iCb8}VphRFX1r%cpyBhNYjQD*)L-aTn zp0^A>z9-RbipanMcxKN?zZ-!B8a96x>&Rg_FE-OCPm8OZr6DhZ5Nli{cPV_h6#Smc z8QitW85N(Yw+fUK+gmNR@hBX523rQK*6_Js#sr%im;v9KDLK{8;i<^HJs&z`4OrP! z*~5PWQt<#`*TjpXi{a43qs0Z@9@m^y+GQYn#S(WwzlW zO8!a~_?wE|n0~*IQQ4zG7(aPV#J|E^J(9cBRhT}71x||_o?s(g;?$5-$P>akIG9s! z)U@hfo0-wxuvK4p#i(jLE7z)6?E0n0#-a1OTZWOnn7>>jf1VhyftD9*ePNEK!rN0y z*JOa1Jz*X%Lb&@lf3J#nv+eZIZHR6lb1(5zpZE~6#tq;MY^;NT=TS)w=h<@?id*Js8QNRdBY= zD-@QjvE%Sp|2q)jaC~*)Fee|p_W`tgyf%_o_F?zQS-U~@b@i`zM)K!b7HOKyf{g9v z#|>MYR`2RzYx(TdY~a~iwo*ob32fcTWTN=bK^&F2KqXvpZVcGP&*YL>--{0ivd|=V8ALCtk2xnw1yNz9WQBWDCWuj{o=& zSKSD`t9iQGUBWARz7xB&3)i-tuW&KXKe;vC{B1VxhuUs9{$eg!kySpMJc(6u182i> zQBw?farGXSPS3<*-;*=HRp)v2Yu&A$1X&+f>G5fysk6K{801{OaR)dgUo+FUpC{Qq zEYN_W`!ZhSn8e-J3&aCl=KDi@m-ud;Etm0#k;2V($vN&#uQ)GVzv*nwi{{LEFc0yc zXr@~L)b<=7Vw?R;Ju4dkH!idElf~E)CjRo{Ely9D9Fu4}b2*#;{Nqg3!v1XgilJiHhcM-+6(wSdUJ}*WVKxCAB8O_g-~R-+0=r z&z~Qd7yZpj{cz&}Fw2k1qb*#|PUJ1aeL0b}O7?UCpUmOESTkgzhl^yot}JkJ#RVO) zn2B^Pa~^vPaL&Q@a4f zoMv!3=``pJ0=U^YA+oRhcbson$oLx3M;BX7-mO!2b;=JO+^jQe@&&Jv^jWM&v2;!7 z_!Gqi*)j+9SHmUmbJ69Bwgu%wAWNTic^P;Qg4tTJopV{!@!otRVUNy|myzrH0h>;# zz#kei7WmO`7#I&6FqJuR`jf_cn*YuqU*Ws`z0UFIZI6uknnfDT z(}%Yzn2vwHxA?PyFP*ozi2M@&WQ#K2qG ztGQA^1M%h#w(B>H3IK!RQ;{Igy9Q{mF7)=c{+H(JvH|s`ziN?*_$csHI?3vsZl77N zRz2wODfQ*_28YAtygJ{({qv0C53F|SuYTje(Y?MY)|+C+aoX)Or$cAjkQ__Ob;nyi zi5*H@q7Si7_e=Vgj9yXmBO7v(ARDGkJ~(xu9Uiek@DhChKcShOZRr+j1fOvB5KZ-u z9o_bDrYy?gr;z!>Ga9(|ZsXu@Uncef?+3PM*RJvOa1N8aEeNReqd7w!gL95QVK@{G zMOfQ%Hhtf*yd8t{pN|;L-RwD6e~}9D0Z#DnH5vFGM`M=Z-pO@TL$NSFmwB_yx5=bE z1kr^aPX0>Pb=I`OvN`dFZj6p+qfpafaRNm5c}e-r6*zIkPG9_ZtWo(>xN_)VxK`!FZ??TL|WllLNxtDj=+adG7(@?m*GS3vI zneb@bqG%Pfswpg~?LcPajbXLhHGOhP)3bM~xrXNFULrjt4LFD$nI8z3_pr$)G8amA zEPHG=G`4ha;MhNPzZFhX^BkC$OZ^Ir$naIit4@o>M|XBlx33)E zg*sa0+;832JfE_0z@NV5dQzCN?v;GWa+ZqUg3F#F_c?NYq|dLY=w5N>%wWyLmOI^+ zEQKv0;DZeG_v{dJ=jf|da}&ozBQu&N?7h)94q=oN>K{>E^4!;MUg=Hj#cg)k^w`37 zyS$YU-qRQ-ME3~>g;4Dre&?sMv^&$4-}*RBHTxBdweXT8g)_luHaw|@KL7zJM&mNO zE<$<+7WPO}C6qFvjBr-QJ8W0#N!AkaI{Tv&ZOA1LX|tOJ`EyBHQ*@(?&qpDwuI-F` zBp7~Y`qMIF&4L`{H8I$p9It&2tN!SD*kZalPxL-E3K#^En${c;vFy#P6= z22A&kx7VZ!xZnMubY3COzWfRshv!@m%iqs(WgIT1tbx5L$miG)859w z_6}@mk?2$Q{i5Ds#Xf{>^*6^;HUQIJWY0i`@w{^D7xSi?|LhpKbFhp2y!~SSC+OJZ z+!*gEuB^z$mN_Oo#5GnuRB9_oKq zk=JN1_I|_9h1FT;R2p)(mGkq=qVL-RNXl9NmbO=9&f(~V3($n%UCEj>WE_15w`}_d zTgeNq^rp;>Unx1a+d~7DN+j197jK+$6QY1>9J+Inl0S<%%Q2^@S?P|N;gnS|+{nzW zTDg^QK)K+YuGQyKwv4cCbBC1?WpNw(abWhI5d3vu+4K2fb*JwL~HoTth zAdwlUZ8ycE=Yg8^oz3B}#y97~HP@KE7VFt5<+Qa6Z_N&EK^zFUKxf&}VA^v`Ge6T? z;XphA_=+fEI%FT|kXvMpAt6V64-LfP2?xY`09=r(5dCt}7Zm>TzpO^va=Al`{!%5! zc}8+Rtxd7~Yev&mTK7EAR2);#GnrR*o!&2iBkz;+ll0cJ{UG4q!u^i(glyDLd+(DY z&i>3AFt<%v=8J66-|RZt>(cA}827?N7Y_(ji^t|d>U}?j z@BAI}<<-s4=3c?)bZP9+jxegq&E1 z8$WN7Nt3Ns?jKWJ+)?IlXEIAIWOjt1@sNTl(lAA?Oi-TaWWoilw)6&~vDPDxj7G2- z1ohhU{`!M_dypQL*exe3%{v5a0HO^bIFut*v`4&pxsOi2VR(NOou!lOC`2+`2)z@z zsGp2Nx_CvQ$hNz**7!vRhRrjKw9EK-d?~m0$G8#s_~D3~$^AsU>q}<)=1Qwu1Ghv= z{xMl4e`16O-b(<-+~Kicl*{9dG-^+m41a`oO#6fGi62xW9&*V__;*fa;4zm|p4FXg ze;jSo05P(Oo*I&1wlR+V{JvEDk-oZNW`C2V#hdW-48|S(?ZTLjowB{pU(v2NGlGvg zZF)E6OHKcHYm{;hdLQsi$mN`Y`3=k2`3n$>{ZsgJA>7hCLvOy0fME?|vuB2X9G^1N z0hkHWagj|Pc%*W0MXCX9^zfWdCz2nKb=&E*#!u##6FRk)DW+`;G+K@M!<*i^<8xk= z!ioRGU*~1^L2G2n+isP%KK-(M&lYkRqHm15=Ha+!&1*@%HYFJ(2LYODhE$l}XL7vG z@R{p#6ruy4@>@D5jI)mR{P&L)Rq-xen20giACI%u{Nt+c&U7dqD%eBY%X;$JZ=C?L z87FGKLqvs#_oTLyqz{=dnOODQr=R>WP$@b|H%}<-HJTx+WRnhMMpX|}em3$?=@?#7 zJA-u6tyQ0D>Rj=7{W@@x#BdhDysXxdhhD(_$*a6#mbN&w2bg(NZR~5~5eBaKdXCqq>0~wIWBP})k z+ram`myhMbD|?mA#+Tg+HPT^RWhc3;Fumi`oz6?_&P#@`ksH-Vne#9%Qh| zg~apn=$c)^do z5mrL9BPt0%Zny;6~c<@oJlUg{%IJlr7m7@!;;)FT5jYsuAxG{IWgZ zjn~DAT>fvtj2aj8p>4zB8wK&%{W}UXs}WIiMgVqN1%6V;^+rB(RzVU2fqeoPVIV~= zi;dCyZywP}ta-Qv%5vijbR?5s9fkd~F|Tii_{RmG-_3PR_uit4<*f7#b)$T&2aM2< zWT$_53h9qFroq?WZniXvJzGir_d9S@e|tAj{t!*2>rVZ1_S@@fY^2Nh6RryB$qIMM zY(1T;<@_ZYaYJ4v^dM~ahk@isZmjZy)hjr6=@e{pSWa8MSw@vlJ05rc=CY_gSCUQR zs{3fs@uQ;7&SR||+?zw`q~YwB!kty|Z#`TmIh2s# znhz1*_W_A%vpY#{W8pTG1D*}4y5k-k5t;re2WNfs2kmZosfib)jgNLrMw95A^RSb+ zCNxMGR^844tqQE_@oF?0?UL}+u1cp2{OHNI}BPMzh4osD$FMF#{+w#eH1Z43pKE?ug( zQ;H7T!G5IJ(ahh^=%ZU(^hp1*s@{`I;ju>K)ZUgr_3!>Y^iA8Fa!%Xc7E5(BYr_7d zjCcI&uB+&XlQpu4%u;gZ#)S*6*BN5*KFhfwN7vYNr|Ty(Rv=rg@J=@(AaVi(VDRExocRF8n;+PR7kmnwQ33T%PFy47$gx_GVQYbIn~ar0*<# z=T1NvpT*f6Gl-yf`n@QFR!10+%`m#g*TGs_&TIFLGi~B0+;oj|-d5jxBXLG=mCUGU zFA;3WjUirl$Hqh6!md}4Jz#TYqSHur;uFz%-YZ>$FJ$jI&7UUIS!Y}3eME^EH}N8mVkn&i>oX+J{lIumZWOt?x>LD+({%sA@EP>!7bA=HV|nYx{p&8UvT^ zcHp4np;L#!F0+zyDwm{*jUhzw@1uu5dQb&{h+Hp5nn(P0)!e{~dNadJSD(qv#e;CI z_TL2~C^Nf{>&ve2at`obb>lj7Cj(-8X!}?ot~!HmEfcOR!Rgm>Mvo9P z*khYt9yyc})2Eee=(Z#~wehMJO1ZlxDGR{ce;_(|-oX;Rvc%gF6$`CvqALr4cRu2! zxl*OT?2K83H)&3GUGcLxI2vS@mt9T@-|d(6&v5jMl`q#q(c-%NyC*i7WR5+}9yoFiR5MG5GyMCN(lSRYH z?|ba%11%P>6`Qa!kUL}5mj2}?-7!H`5mfUNl$#`n0hb{b{Mm^y+qsDnSGj{MtgsJ2$%lQR=pni2CRZFS-^-RTklzEC% zgVA@h7u5w>)wTD1B&a`iRr)Un@;tvE`e!WM$dsVhW>YkPdaQnT9zvr7<&Z1uS=Csn z_PFI%2WO;s!@u`%vDL||tY^3GdpOe1H@Ws}Rf%*`zq+!AI`&_02}aIqedl6FuO#>6 z^p~4Ngb27E&%YgO|I*oAR%LFO`$wF>g`(5Aila#k{0srA^s;Jy#&U-$?#^z!j#K~p zn35CTCeuv4NbshsC2;*jP;Qh>m<{rNi~nEduQ&WYRDG@Hz7}uvYF!R1{~G8nrNLUM z1Bu@ooN>@dQCP%f%#h4uG%$SAbaPT!|BJv`jt=vU+j*dk;tj&fb#}NFP2mz4DVgQT z(OAQ+_Dn$u{(OljZ)SQOjmKl<8~WF|KMM0(M9ru#EP`pg^-*?T{PW*$jrY$sT@vq6 znd64rC&%W1ysAm|yk@?7jRD<~Z!Y|oY*jP~ohBo>CyDpr*ntZ*ey>Z8_&X|iPsy-9 zJz23jIE^R9Eqqty7|*zi%Mq8VgzqS4qv=sJ{)#(!(d73-%AujeAWmRQ_oSSKCK8;m zimvPM)($xL1#06!Gr(J$;F#9RC;)QYc?Ur&GOB@eZ~i56Kazp8s0M^_h?Jr+;k3)YNs5q<1$ZR&c>B^a<#@FCy&4>YxI ze_<3w#T7pI2EH}cPE*6nI}0!kUv$O;5kBi&H6EOl8}{>AV%JefRU47r0iUU>n$knL6{oVE_~W z6XulfQy9ftbY$QO1v5QiM5#(&=GYfypKRnRzL>l4`N(dhj1#}YTId#!?Q4Ti_Ly$z z0eiOplumwU#)apa5jlk#+qYyC8a>wCRtC7y|JT{Gx}LudKod9VJZ1l-V;9!=em;Ev zI_IU+w5gi|@woRNXm%wTX%qyPCJ@lp`E<(U@YpfeU-aWzik3snmkcXChjPy}Le6KX zAn$I8&oJ&#^6>X9@$yl5y-z&&(p^CBj&C_#0h*8*B`tRMKi!8#fujB#=Q{4W;Yqlz z&S^FL-8G57EGTt&X_qV3TYi=qe(a0_58(gvizB0hY?1~G=3ub{yX-X)FK;j_HS)Qy zLNu$`=}y$JNsfW%5D+#Ib%vMk6Kabmue#)%-Y-Tr^{a5Z(@%0#f@v4ArES!WpVyM@ zDlc2d*5+?nm$UwdPPsYH#!|e$M)Nz7d=H7`c|73Xb|2}8&j#cCNqEBIfmwG^Cv2FN zsZ)^mXO48ilh+M}|8D&GQKLD8K05XG<8$k;{X8|#>r&1}6mihqD_0&Tf~_VzB*FK= zR9gPmX(`b)?vkzYpe0}6%iJ9=&r>u3#ym_MxWT_?pt}0md8Q8sR347ytXStaAKR!* z=eDT>UL0ONlK*8CIBy*;)O^+-{fB0nKCDU%PcBe0W!GvnqvuvT6Hyr_?2~BST_=vT zkMCNYrg?fL-zd4S=V&gFX4?ZSKHfaL^na`_T|67hMjHggaSjc4pwP|W)o-EEDKDQx zt;#R-uE5DbUk@$B!r9+ajZdfP-@wK=~X zd!TR!hA?B3){1SYtue9BXKj;bO*DkF?LM;A$@ z|AdU*Jx3F6y!F}e>|cFnl76aoMEzxqc*_}?%I)tIHbA>Qy7(-&J6I-7-N9Neteqn4z7iu=`JJ+~ZP00f zVXce6b(lecq?(oXlW%_zRFjRAP#Ds&_3N2o@kVZ+24Ub?zjLtTmU2E*HT4e)=eV0r z?lr654F5*tOVp70!RvK_fzY6isr_&R*6|{H42GOjOPlDCVqk5KEX|*qR!kAgaJd?q z`{8b@pR(~_`rY472fVHyQ7`aAHkCtFwo73u$rb3r&b;IDF$u2y+C*jkkzF6hs$H9p zmXhfHozsq zKSLWu9gZ!3nOtgzCoWZ=(?>f|?Gaw!>Da-aJv6&%20X0o-8RD;c@u}|C??U-$%Yfk z(e~ySF=ww8eJRWd?%t(k!iDXcd6lExoO1Ewy+JQ!!V1xX>t}~(*s2W>ZD;l^J$&`e z$Q|!sCHwxf6biuwW){akj)+zD-aoL2PMF`h^&OhZJtHe_SYu=vx~fKRe+0f6zBaSn zW!>+NX2ozatv>^%eQD};afLegnNOkJW+84G`1||PhutbZfxR;I#E?R`Z8|1CMyU^e zR31emOWqZLohqDh<{OPSdYUp69Qmx-C5@Jy*9~-`l&u4#SZ-MTRe>j&eqBld#R))Q*EFyQ*z@IRzut2~RJ336Gi^lYQ zQDZJ^qbi*|qjCUp`PAk9UJecr15UwXZ7_)9Hp+?Kzd-K|>htj7`XuEZuRqb5jI2CZ zhmkrEe)MwIjxr?6Ioz8Pp5E#+SC`=%jOol70z$8w)J)y+jPSNOO6XmttJ`@QdNY5@ zIt3iPwK#9K%)_Bb$o^lr`-_7x?!;rysyonx3ggnsUz8cWFejo$aSANFK6&@8n$px89x5| z8Co{x>CdU*FE=}@_F3$fBU)AUPuR84imAG#cY*2VzbQ5IJN#=vF`+3(JrD?b1T*;RfWbp9+vd;O< zY3T+zv@bo=#r@N2gj)1X(4H?N7+p^~osPU8CeoxxAQ~co1v^#n-d#;)F z!i+43jmzWDA`MC;sW*-$c}krE@y7i`F0kq!=Z98(bIY1Lr$C;h8pvxdLZDs4)6xnz z@rufx`c*n^G6o^rS%mgQzpMdwraDw?x02x9xMp*m{3pPWto zSK)B(F&a5tQt)|Bx~g_7^1+;&P_vo}JnDx%mx3+2= zd5%t9^RMikM;TeUTbid>CQlX#o{?Fv)sh!eklTW1($)8U(|7)q)7*HeqN5Rd+(kuW zt;%evl{VGG$Jh4YxZ+A?&>Hg|KfM*IT~D;53AbPXZ8`p!z2>@R?kB$r*2ctkY2UfX z*}>=i|5}K8c3tS8-XplEnmZ+v_HdJHkC zX+4R77Y~yo^O`zkI$d_Wp}^APVTQ!PJuz-}WlsKYcF!{l5alS4BLPaPPGOP8TxZ?v zP5;UgP`T4zY4ae>zTFE$)GF)l=H+7155CcfW2%wPYAZTSj_IYPev&t{$emv@rec15 zvTyi5lowK|c&7=AO>=l2!YFycahX*8_Q){{f;&$8c+PUKYags%2a+Nh^J&F6)b=6h zh%Ym?8Rrt5&5XZlC~TXJT7Wdf2UmwxT0OG#aB1!Q*Dtp3WlLAxhCy}KfGUqyGqKYe20v@i(-Eoh=(A3=$Syd;2ZDtJcFg!IS7_MfU#_CkOj&7#^ISl zMlipR_Tehbm&U91%r=zjv=07ax*ETqZhNI8Cj9!`T?2*mIeb6X_imvBPm5sv^`L%! z6~aZVnE0$QlN`Qi`Xdg^&y}3PJTc@p@m6&Xl0n@LHl^>Ihx~?5BWAA-x05=<^N;@d z*p72ZmGz{+qaod|#S{&>&>GXi?cJS(2A}=qTCNRdnaS;y;8{|vqgmYvT$C5u;IPgv zD7uS9oRD1q9z9^cxn{oJtj!4`^RvzQOj2RSX1F{$_g3;+jBols7Mzh~y<~q`;~z-N zYxv`qp@wh##&TpC2jkb9wL6ratY;Ud|98>VF9FJNf#OnP)1mMu=wAmhh!-O|1 z{H($oBp&lTf}zdp`R(H~K~y3JK?hSHTEMS^xzRnY)yos|o^%ICjUEXwYN^J~J^Krb zpQb9aFX?+Km!`fG3%2BQg_$I1e|RJ=p%`ZE?cS#&dY1Q`&ounopQwD(EgDm{Iwx{G zj3m1PBlz91^-uCW^kn9IIg)`PCJu}w^VGt2)k~YR;|>HwYqDM4W%@Y zh{Q+73mN|OTDZz*;gK^pahMF*Nke&+>8Hl6ui4;Jc0`x@1gl2RboK|2PP1bZ5YU7{ zBjCc%f-G0TAA4)m29s8xV40z-Xs2@WuB+B==P$iWxgalQ4_URpflVU|-aG|Q^&$L@ zRD|YDz&Wl*MvR;Mqu1ya%}8dU6@gc$ughJk>n4)lh?Ivucc=5;{G3wdL9mzC?^nQ^J7&fog=acEYU9ezyzppaSd zjrdluYog$!d4gcb{c|Z?TVO8rHH>7sO~|HZ^2q9q=G*qRuWsb~QGK;eI``7=uYsKD zd;3! z(bZarqjWgnJpMyV9Bwa{!nIgysw1zGjwX60*_S{L znaRn14QCHqMQ{J(m6rHcPw#$hsFe&OsQf6Eqj>^iW~U$6E_ci$+c)QYuT8(%ZVxtM zd;gcGD?P)5F|XphbJv;WxMPWY`Sm#Jhj07aX&J%@IK%d4M!&v3UG5c!{j(h|?+?rO z8+AAyoEJfJ#wF9TYF2Wl=_Vs*F6)Pc4AMvD*!#t#yg#jytK;K$jmD{$1xW1GFwc7{ zw)6b+w=`bMlc^9)%xsvt21LQaE9G$2?EAxAmiV%3;P8g z_TSzl9n%$AGW@ygZ;S7nq7-_6RtzDU!mpMoc&PhV$KTFzBhnEY_@Dh`Xw7xZ7Fgk! z@6OJAh@A?4;Vea{;U-Pl`quySI4Vfq=ksF&<10>-BP(O#@HNp<=Mj*J!?3xH6};_qXKXA9sz;u3Xbq zD0iC`u7<-i;7MC&_N4^T%xt&CdGV-E<=pTNe={vY8qYDeT)4-~WpAdjRG-C|8I5wb z%ce%hW`k@8nR!rmis4_jwbi;Hllcz!Io*q`WebMDvX2M+H}@tEfU3@x{mZn8-v6dM zBXIoC?`M5>9W_4K`e4tT|1-o1(=Ojv^x(rmm(hx39q@{;<+}@^T9(J4L~ZGZjS-zC zC}CuI0bI%Gff8DBp1{R);)FLY2xckFM}- zDaF>x)m!H8w|n=1btX(9!SHDNzh2#6URSBDR=`#CY%Ipx2XTqU%f!3budBwCq^I{W z3cu`eVExERZR=06J6*|h9;CP7JL1o}!6(vCzDiQ!>iCACU9uF?^VWtdIE7;(TnfvR zj&}Cw=ASvZKgUPHoQNanI?8bi9O=i*VIRrP#WZ@a>oe&*zTE1vKg(Rln6Ipp9$)W* zjcX#kN=74XBo@(tChn-nVN@m62yzA|$w$V3>#|9|gq^by!PYd?NNF-UZ#d@Z z4<;8Zx9(yLr*{FPCn5B6{c#J#$A4>D%{^WOZ#y(}5&evReK?ZuGf0gaZ{_miRtZ=2 zVJLpj?A>>#e(%A~&=nR!#5;O-<{y-wZIk8^yNj3XVa@RnCY)1QP_$;(ZF+&%U)7hM zRwZ_r6}Hv2%=h~9_-Otz*-YMFe09TB9$Z#=|26*8F4$5z`!25B--f^rV>{hbzx=5;Sacn5}hH+Ya^hHCYWD&lju(u=o1a^HEb62sZgfE|N z3a71`ihL(r1g55qgY2T{cZ=lKwyt$L;3=*z+L$~^#xr}~*U=KA;9^q6Fo;V=*;u;U z+vO8RhvBcul6W%vvSYk&gUZdAO-1{4ouLSstp;|0Qx6Lh&A^v`J%s(&?RG={B`ry= z3|JP?JZNA>PL1ivV(o#KDV}Yax5=Dsq~#iJNp)QR!mR24(0Jl)_OhP#kvmwaHb%OJ>0ux?%(aF zKaP7Xr(Zr)r8QBrPqLT=kvS2j#o|_Wo^t=aEob8crEY)XJ=o7fkkD6G>6f=DQIeQW zQZyO8I?QL!kCoQX>#6H`?WnD$^#td(;zs0%uW5otSfBBsYcgjO-?N;X!=;fr?x!~> zzYfWfEN-zTY|>9i^=Y+lu6@1qTy^#9evw0jGizUj^Y?zdb{Bb;jP>3y9_&SuBJe(v z?XQs;cjS90F2+f8!N$vOa?k8n8~>}rvCV(N31_$MeM#Vp9%phUE4d7I4#ymC_%L5; z(9H(X0%T7=Enz~o%}47jfXYIZyEl%$Vi^=43QL)5)3xo*oZT4kbfNGUDlvu2zIYe9z0qrdz1t`e&?|M(X;WI%K}uT$mQKgQwD`$Fea+e>__ z+LFrVwl3buxA17%=U#7j1PVeviM@YA*30+LDO9}DwmwtI6eDC_3b;bS)h|lzF(G#v z%b89x4l!Zs{$3+9LLwpQH7!vp=y{tIRFd415bCwgN@ZSF^&hdzg7W5o9b2g6 zjg!aQ2UUhU@tGc33SU+-+q~yHas`~PNe;1T8Yl0#eZib2liL}iFwmwm+$NmHW+A>4 z@fo;ymlrqkJYDFDOjKs0*xO7`UZYi(rMf${zcOEDZ-Bczz`8Y-y^l>#HG(bs#9e&K zA9lEl@K^@Xb{guP^-sE3p(85D?@6H{1fL=$ymv#Wo^!1KbhZKx``t~bdeNo7v3Pl% zEU!k+jMVuFUY26{=F}%sEl3XgQWO!Etl{F+zDm#GkEO#gnA(FzRx{@qOLcu6j0&10 zi=pn?|GF>H(t4B%FRsdNJ0^(Qn4;1D*w^(*dr-j?(oY<7<553tSX%F8oQLIY48!Xw ze3=i+;mK_!{PkJyLy2Qdh`0A&R#k^bA zIN+d$T?FCz&C!gCEc?S5ZR{+!O*|yyjJv`&ZlP0;vsPnUTGwM9-A)9om?vKS6mDchsAKgND5gbdMJqKxk0f(7Az*=~iW``hb2f_8ZlzF^Cm020T>Ji`n zpVGSV6qX-6uPr3=NwIBw_ugxcL^#3!e`);qN@%TgH2vKg!ZD9+vceO>*k(^Yt1WIl;xS zClA4DXRg@lQ{k~rPjj+n&zDSohvY+yezc;1NIHplXE*&i`>qmg-$uUjGH}AH9V!TnX{`S)mqc$9CRj9=Qb=+q4WYrNNex2N40?hIv=ET=$bBGq@YnFPG z20r#Vie_uODqRiPHOJ2EV-Q>9Lqi~9nw3SOmvT-Ke$h%8O=AaN z>C4;>s7Bc{W{a+SHyeateXXI(5m}M*M30}b4t2tujE?(Z!?%0#Tw!s8nE|_UN-bR7uz=mbfWrS>Zy$s&3X?8$IopoTa-7Bw z#fcD|Z!&@l`Qyz>1enZ;imm)=z2&^&T>juDfVwo}_fX~>0ekGdMP{k12jd>k&EFBw zlgiO`)(f|)XkPN&a@ok=bZ?%e=>4Yl2IRk3C&db~w;t-J#Ky$k3-NWUs$#x{NOoIzo}FHL>KgZSOe9-N22;v8gbT*T2Ja4?pe!2% z#xypr?jqnEA)d!?#u=)@1)O@$z9f?)3I=vaMej=koO?|3b8@E z07pM@Y<2LAh$Le_XU|#FPdbX+UmM)terJcAS<=_qV@Mqt52}RQs~)QLy=1m+TGcn{ z9_2*cd)_j;&bsZqR^$fAyU9FrcJ*lTg!b}!KC@9-jDZlh3UsOY_t`ct6Y+>NUh1E$ zHRn-|)YLMlO(95OIG0RMQbLY%~UAlRv z21j{dh2Wfe;fx=3sV|!1W!RlSyUj&E9b4~(ubm>}p%E;z;4PO1@6=qFX>uRka}Hf_ zA-TYd;240O$1*yjqxkH@qaMJn5z!X_2v{6M+`H@_>sB7sH{ffxqsWgHo@z@x(e! zQ`x?+ZdlM?*FEUN&9pmr+QOOK7l)hnQ0x7@7Yx|uryrJGDXd-)2-)AW4%+82SgBQu zea&jk*o#);H*PY(($Mg)|F|b;?t?R!@R^)vH|D3a5a_JrECLt^^NYGRWloX8Kpl;q zp`mnh>ogv5R*fAcSahYglZ*#0YB;&Y6~7vX(!MrikR58XeIZqO}H|?*Q<0H@e_6q*`YgQ zBOmC?8nevf^Axwv-PxbTqQNXcrVz~~R$e~?wzz?7<;Z+Dq(AJ-^L4g=Y#hL@75SZ{ zpi*5lS@>*|&)@ee`%SU!@w@L=Lm0V9GrB5PbGj3sx&^#NA0`KVdP;gP)(NWu%|0G; z$4_5uWOmS&ehBj~yZiy?J2Wclu2c#&r{Gy6_6I|F&n&(HJ5q?FLfW%nSq_w}85REY z3e2TRkN}M=} zovRbuNu*-SNu0#76JO$7rIMh5gi5=)XwU~FkZ2%8hcAN!;sYQd(d9QX_de(BqY|P+ zua>mdoNLba&70VdpJ$B!_+Jot5+P1DSVOd6T_m^3`*mCO(!iRLLZ-Ur_1Hl>t?ho(7BwSFf-;?kmP#rPZbM#;|CJZ1;xw1h^k*Mz3pAOXhb(i(nPCbvB8EE%aQ%#qh)sV%;Kznh_o zfgJ*Tay~?V8Rp7e&S}RXM_~f)K5t{mzWe4X)Up9!bs#+tlm>)Y8(S;o8E!_`lLjvo zN8_Y|b!#UAdqJbt!s8hGhSsh(7`(~Q!?H`$niRIrHBt{x{O!JeMo22#nj3=r6f#p@ zlT^`O0qsSr&Sv!W!&oddfCU?0sOWj3?zz0KX36}9A5`#8Y*>~7$Jc z2B+0dRYkv>__#L~X$wy@8;+lsAx$%<(bXAB9OYQ2H$^7cPrz?i^biK2XXu_{r6AjJ z_b%=lS)YUrM@#V7%?cw=Q*wz*Te-ioS>hXt?6w%b1U{?ZU~6IUxFzI=@|g=;q1>3i zm3P;oj0e7Nj0JaOYa4W$9FKeJ`DvqFx_2d}79f`sGQCAw(gAyWo5Hpw_XMu4WU5i0 zfM=H5%R1I_wkMRl6mdoHS@CPP-Pz_Rz!t&u2!S* zBmOXxus_x-Oe&L&ob6z?h_czds9`acUEG}E{j1@nf1Y*w{YvZED%JOb+c>4wIXfOX z_pe`X8`%f0B5NBlYi{Cyyc(l2?6gyFTMC10Ah=GG6Z|2=9%Q&lW+wD)?iLWt#5OmO zb(grDt_d`wOLWY4wU#<@M@B_6tj;cWR7er{dvqejH}tp_-*&HE`BBRX*P*jk{XQMP zDHs5R`cBTmIOfX+4{s9-{km%-weD213T(`Y%x`SC{kt+V`#IM=0&LJbyn#AdZM8kR zcYUSTv4cz9@(eG5@{(Sz02ohfe6OaG!3TAY#IS*3JWk^xs|oM0}SgXt$~oRC%GogGS-$X_C$xYBFGiPpvj6=QWEwTbvV zu5WTZ(K4*}w@N-YWv(e+%vSle6J+DtUzOmeeP4f*-ufz7>f+0LkLWYkY6TChEA@wW zmbAsMZc}{QV&J-Qn?91rJ<=gxf?cfWQQX0>f<;9sT{3!=I`}b=EP~ITp8lyg3a!x~M*S_m|f;>*$p8M8F zS=fjHj;}N=t#*0huUqymx&eW9(Aq^erGJ^t7#X#JIE~xzX1Hv{m!vbS)~km>`E@yG zj_IVcu~v<1(L_}@)lIc^t{zI8Wi_qtAKL1eU(}|ZSHWl+564*0m$v{sh_(j$Mb>of z6!AD<%P!c@t&np35R9@r8je;m%y!~G zeqcG*_EN{1c7PH84JRaX&Yq1+G^RfE=gNI>KsdfK8Fs>79zZ_u0_06~v2+lf(mH_a zu=;2kW~_}k3l+olOsxVDxGdgx6MET~@b!jp{4Zy)ltTY(l(OksyGnYu!|h?KpXLvN z*ZPX2=8`LN10GMKl+Y_z9qbu6AQ$7$zjXt{xyE;Y^REnK`_H1W2MFL<3O|i)wcO~7 zX63!Zw6VqK(g>(=t*-_{xbX4fvcKaEM>eniIKvq(Mg2i%Z?PfUOw$&NVN1?xSI=Fi zc2mmZR@>i$EvyCB)ekH@`Zh*FBt*~3%&-*Z_omS!Q>SMI#`>c4#n(LTw0DH}R*SQE z!I5XxTlR4qsJx{{E!Nh{sZ_wQ=Do#!M28lEg)I!tQtmMbBs`3B&oT&}f8~$Qhwd~a0*Jphs zyPFKQS6LFMz=vR%PfDfhfqGsD&CMALkwmG{Y~};vGr&DRF%?YI5J{K^z6{QF?2d3m zW+o%xif1e`=6kJR#r04qJYgo|`3{FhB5Ld?*Ae!R%RTK2uXWKJwaEW^)Zm++;pW3& z?)T8`E!_2S=t1M?k+-R1EIWA|c0_)?$c!X4GJIOuI3BBqB$S*Tbnl@RFq(k>_|4_6F42!T z<=D{iI)-jNKWKXn=NG)2%Ny`+ePacKynb;Sd_4B}>NdX0{jpZ-9B%z~NBZy7<Y zt8~UUcm~YBA5d?J_rB&%OB3nF^Ty|`pV;#e`n<~Q16qqqz1)#KwoELt8Nmu(;J#{w z(aV_|<%%s8K8r{6ZP+}B7No)X$KolKaAUCEf+f9b^)$YkQ=`NgS8dJ?%$)g5ckqzw zi2R>w`k+>8UAu{*!=L|5FeXS`6mchV-;Zz=0BpgVnoBOwx*t2KyR8l!ymuSb8hyr! z-nSRA}yl9t6gY|7W(LKuTTMtCDdm2D8_eu zZ^64?m3ijsRh+o9hS$1fpDjmlGE30jqKu!QJf+8)0o)QqkDn3LnjxU_5T=-0V}oS{)X)K9EL>Ax1dQ8~C!a4Pu>ypX9A|>5*j( z`j#^UZk06hcR7EMy_|8s#%E0JCzZ=FE>_g5)x8qLAmK7w?WXgCBl92|e*H>xWUx2} z=c+E;JnchB;i&zUAY<@a{$%iH>bY~p02njpTzN2qYm{d)>qw3CMn(!4VvU%i?f4sK z4e0@QE;6#Uc~l>t%|(kQBJA+{<+qOY&{{iw>oqBz_H+xfH|*~4gG7^R9uaJEF(HcX zI|O*s;D*O(&e~(7o58KPY}`jh4Z0%=DzMV(=hb1Oxh~jNHi$@j9geqW|I#`dQG9`@>i(Ci!L_3cuGwBaMUA*tNT&7C#Y(8@rphf(6sOaRRH+ zx_xJA5*cWCx25=Ru#S%HlQZhbGw6*#2G<_0an326FtjhvcC_$zoNoIvqfDJgD9@B| zkwV4~1394W6$K234q=uh*U`#ot=K-11ZE@g@Tdi!8?fSO$P`}NxZ0$4e7#lbx^Eu( zUGL0`xz*u$tzwSH97i1B-b1kHcT#IEm5EThGdyvsSIROO+Yj;lW~Jl5ee<@+#o?gq zV(?q7R{FAUCyT+UJTu5<8Jczd^15-}c13~RsMXryL-LaBfYTpqvf7u!2*y}}nh-h( zZc=FH4_`li7RwIQhwVG13XO-y7rF7|7koK4Ey{-SRZ-a6HJ!wsjQ#o0_Rniy=Hzd| z&Y}8jLeAix{4oDZLBYTBut4Z?kkc@PSM<$1wcYG`WZP-DLG%fgyPx(7<6K=$5TQFQ zeXBcL{m2okGYe|{kmt!){#x)IORwGQP`{88qRrAGmu=XBN?c)nDdUtb z4^D40oaHyHYSz>Ix>&a4yjAF}CpBm*N}X}3DbKJwEpTUUCx-ACoyT+}J)-2Qz9w+N z=_&g7ppza1HVl-6_tayj>?e4C)!1{Z_nEYX3?Icp>+opasSV(ne?F}|pL6K0yv?i% zPx0H@kYP4w&75DVW%;KaSo~`bFl)j~eaYPC0Aca*&6twUmy$7a;N6dhAb7Q{TX|xk zo2zGoGC}&yO_MwnF>`_@uru}p!9P(Y7$4ffMJqeVxhZ~FZ_bXP_|QMMqB;Oa?{}G$ zXb?)#Jvb31O(6>|JJ|KNQm+O?evl432E%@w>fv+5zM-n!$>_p{@i6tJ(j*jSe5UcV za1KSCi@nQGXZB??m^JjoCl9eDRS_BjXKEat*~z%W=hb$Ke#znVdw7!HD-|N`1>on9 zbA)o$p|fAmdo&$9!Mj&N!r-e=R}UWL+UwK8pJUCGU|nSDN>7AOM~_^w^lRD-r1qhX zFsyWMT72+QrO%NhGP$~Iy~G!s(Qkd7INyA-sL~3e;}+4*Q@EnSt2v>kw6IiKRS_v;Jvr%N^^H3QzDG23HY3Jp>tuYSB+Narwf} zgZ07`lCg)!9F>^@C*ZQ#yxksOO~P#rK;D6FV4Zu4K~QXiEQ{(_fB9BzIP7pi*zKg| zllN!~W_n;&t%&zPWQ@)mA~83c#9^a1=l*4vE-P%vg+FK_kM2&kcZ|=UEyG@WN@jFV zYBFnE(MWXbPuAVax_!Lf=Q+DvpZmC4bDoi!bRF2QRC<-qwn!>8RnIIe!Sw_n4r`CI zXwy;^XyK052F-PirU-pIj_GjK3)^q3NfZi}kV%DmIDd*Brb?9dz;7!h!aeJ3U9=H# zyZ-H`((=B^9(?S=a>G#(ZA&GBB}921=Z{TAJg}zh0p%&W#nPfeU@=f@=2L~PEuJ%N zJye3JV^C+t%zbxoO}Eo;UTzoIe9bA9uB*Opv^O%-vNh>lw&(%KcyEk)OR&`)rod~o zS;PDUp5PbN+cYHjm;sbI$~Ld*xi`UJ)Lnsd`AuE1^7Fa6e6@Sr39t$De#eV*x;H## zbX{Qz)OE6@?-oUb)=*dLO?+Bq+5`Wm4t_x*_wy=CnoajefRbfm>(%9fqlcX;e~*}8S6N7 zviqGRyZ&-SNpYpUJFXb=65ob4c|j(ImsQ?(;^27b7fL!3Jp`ojr+7b2Jzbxj^;vi9mXg6ggy05ck-5K0 zojY$*oqw{43(jhVqK#S$pJn;tJUDXJFt1g1vuv)_9$hGZ?{;NWsqXJ5Cs}TFUM$V> zWi|?v$ zhS!5GKfM^Zz)<4J=VXUa>cy`Q#fx2NjGaQ`(4QS6(e{2LinEtJV%EhmR;CajiB5^f zODN3GwWQLCz~C^DEUNCJO~S!mc>GJVpv-NSzW&zz0{)Nq9A)UAMH5MN1hzH%@@___ z)W!l-#4fcPj8Ew&r0z?yYg!4qrEckK+Im5}Fcp11?zH#@;vu$OEb`qY9Id)iI?#^Q zdf;=T!)05V<=TQ=t2^-mi{pn!dO!0Yk;ibgH6?GfTQItPP9*M{?r3gOOf|*3WrOZd z-H)p!IQ) z8Q`x%6f}IF;|uQCKMZ!INz zex0F&OrI08pTLL4rH_&-GmdwmwA8-XW(IjnbSTm%e|=YLPwJ@}SU`HDvUBR_hQ^%G ze)GVg`ygv44JBJfI3I&Z2>x=fuXi%$r42ob9vdQ*+uUzB3-N*+p883BP7qXzP@m7)H(Rq;b4D3buO!`IR2`kk<0Z6=eZcnnL9PFQU{_i!a1Uio%+-oP1Ai70PZUFM_+jIGr{qiwZr3CldK*k zOQxk6w^Tf=?miwRjpK~F-2DJw$bv9Kp7DJaZWrjP;G3RnlX~G%tCGWj+5QVY8764h zij;xSc|?yJ>$VqOV#SNh_IwKd{=pYAd8N^yUh5ZbK0)W&pfSRXnY#J`Kbkg{LKp4ypEhWiyPqwO7GUVi!Tf}t#O&wPQp$FbqK<2gFT*IX-2VE=y` zpu^%;MGDU>1aJ0i??f##BRf7uSesaK1`MFeomqzBU+QkvNBS8m{Ue3NdhpfZ5)ZMO z+>(kdeBSo~JOu91WN8vZa?_JlC~GjDr~8|l+Tn{DvOM$f(6F!d@=SVD?#!{><_4J^ zz1P4@i;SD_#FhVgy(E6KFb0E$WZ0q6nxGS9lbiG+=r^#1=HtQQQK||L9kMf81N;p% zlT$+lv8#+2v+JH6y1a>eD0USXbF5_USJZ)RC;{ z&8?3HTUl|SZG***kOUxZOEUMq*`Cxy*V48Z+LIoyo0&_}R+iNlX}x(-zjVMcdB3bv zc~5oxXOK#UFEZTmf%>VTD5_`S?0hC*MklKIES|X2M<)KN-U?0eb%Dh*c|1o)52NX5 z)i_Bet+Yll(S!l1H|m@AM?E5!1Z_ z&`g%iiChQg;x5)?iOu`siL>mbM!&ElugTknm{~Q%_fh8C!D$9pDD>u`8gBZ_o^Yq> z@#*`yW~BqyuzZz<&ioMXfhlCE2EJs^$q+Na(;$@4_DTKz&3e+{4SwgX1r1#0oHcXY9K{=H8Q;E6p{?n)qT3!*=K_?(Xv8LZVHTE~t#Me7#at)hh{#Q5y!0Uttc4 z+ec**))s5qFSqN=I^&l%X`iGQ)w0Sd3p2lP^^yGW@c_tbNWocf1lcp;U-tOVS3gLm zbzHbab;EZ4HhY(-<{z%T>P_?z*UP2S8q()p(XA6IWQO@ZjD%pO1Ifzg`|fXKv{N0u zo41jeI!Iy@mAS>uzbxt&BU!W*=G)ib=gFXDkqDbs~Lj@OYwU@BY!?$uEnrE zzpU$ooXn|-q9$B4^i>lJlEL-TX8>7+CW2+yRQ$MvQ?uDg4xQ8tcSam%r<6xqLX(t< z)WphO<^#rbw&Y$n0YNJ<($>J}tZ_)ih}W#_YIGzc-Ck!h>Qcy1Sn7Msr3|I3tL3XaSzt1kYEA}pY}~*$xL#e&nLR8(Q3dm${$gCTZAw^Vj9@Z`vv-%fJLB#N0=k$2g{oO8j3oQ^v6FxC;5(!Rd zTBqlDcsVm_T=wcn+}{588Re;Jh2+#S##t>7asf(7_& zO0MojIAnrB%P4T$m`J{9a44&)aG+k;^(-3w&#g7lR#yrVIMmu=3S0c)`Z&NoU{VtO z!Gj+AHX2Q;*CcilGBs1jFEJNjMjTAx3TsR2B3`BpejI7;P7N?$pqSNqFguEIKfQDA zSvH-!V6tD`!UyTN#Qkh~xvSOYfLxEsA;Eab9$HPWcJH3WQ!qiM))M>0cvm}dQKw8V zwf#4fr6c$8^r*4&;_;Rha#;p03(*vvDXdFJzxtb4OI&M3jVuTA^+@QpSSdjXWy z*=97}vp81uvglihL#MohzmJaQ-WBeePxh)(ClBDtVU5Uw-Q>GZ@<#h;)Ol>*_S0J;PY>74tfAa6MDl<2c3CYtnB$8gdLhJMl zPle!vljklXq^k(syRSwh(5Z6#^abN@C2_pvIxML{$Js(pYX~@Tl|eTG>4Gd02oI6z zxhJW%d7!Jl;E<9+rnjZvJey7~0wVY|*6TAhwJ8+ne1bn?lsU{$v&}FPE~o$0b~I(K zoDae&Q|TN&crpjmzG1w+*?H6-{qKFPO*==)^!()OBt(nxruKHW6`W**Ebk_ik0rCvH#zY6I#oRW?uKrSC*TdmO+i3#N;u zZ^lal9Aqx@G@$2tEINAO!^E7SX2HJo2`T}u5tB2{FyOb3&D59#HuGc z0?dCOw+}c)!1hgZ0Fi0kTnqtU2QQww{!jiA1Nkg#E>bITyT`_z)wsv6Kj`vo-R0?D zvS$xvPGu2kCHq~1?up*^na%w6gdVfTjPQCHB#LFgvT)7$i9CvEgl{Y3LPYt(N10)h z)Hu$K&VDtjZ-FWRlu=&Fm~doUwoXuk}$ecCSeiJ3p2tK?$VN@VT0VVT6;;)v?T84X|Uq(4@K@2Ac}EX}gUW!YNyYGg>>QhYVK)pFJ}+=*{OJ|r97&SqfM ztuk%^MyPbsv_*!7k5C6D()4rR!o0c88e#qJdVXiY$vq{S9uj))lXop(opQIoz0WBrS|bMb=)F@IvVpeIG%GLwmLc;n@$GN__GF#N3fykZap zyBY3(6_P%t4~!lb_N>o7gb@RJ?KpgGo-!?#{au@|4mPuGw{#cHpC!3e#`4LaVWlcT z>P{@tLS92!Yl=wjU1f1>J(v!VXG=c2=tLJNFWhY!VpT*f!h@7Q;dkRz6W`IvlrLpy zouc2X!4H3*%cbVLRFuVQqCzkym_;S7Lleb#XM|pT-EkD&LeHTm*F!Wl8~^NYw0dcK zX=e0l^P7(BZshP(t^aY8nS0|Z$ZkYwS#aOO)En#VJ& zHGR>gP;3>e7_g1JFlKX4#us44z+?MhN}p2?Wqu?$!x#8EH|q7yl-#+h^~I{D{g-G0 zHdE#f4*XyfuPxew`_)C1qi$a^k8N-%GQ2z``xj2nbw@iSv}T;t7VR^FRW3dw?_=Il z16&L^PttUASl{}+uJBDUY<{-etXDMn({UfY-)$`%Qi}Zj@C<#c=IT#bvvq7>@?BHr ziAyt47KenH*t9E;TMww|)q*D3@Gd9VR~WIJYoy-nm^Zui0}t#^9&T{~4o*OUs~pPd zv$3y%NPc$o!KY^qx^t$h`*IkX>@({ANdjzni{x+sl zhnAjCu!q~e>ErRg7OW|a*?KWc`(D_dZF4lheOjawvsQqSMb^|JJ20Vc;HX{%$Ei+F z;y8X8#HBZR4E?GVW|y*$red2ei_5wShS|UN&#&@q`6;(fJ(k?I)BKn%E9;R@0N5e; zw&>|NbfL8|o71U*jC1UtQfu5qJp#W7*N3y@ZwZyUKGswM@j{Mg1X^$@o?vxNVzSc> zeG{c)#i!oAVH>Q%5kEB}^zSX7jGYql zLp*O*ow@L0(n#CCg>$5G7P_ac*O)v>b!4%e+X!(7Z}dR6U`yOfLt4{%1Q$TV-)OUW z%rhL?omlq7XgAEopMoLgm%H;haMU&s6kdyZfGbh`9T-7QMi>XJQksH;Xh+eWOKq|4 zPtH$v--A9X_7#ULM0ia<@2{(FJ$>B1=uhcgY9ZO-vy6~xzYcJ5Qb&Vi2#=N^($-}~ z{o&$mrR^oRPx?02CfvLOIOdF^^e!{E%lk~@%Td^N&Oxp0c1nj(8McoOSLuai_Z%0Y zl6KM!=%%~L-JVyp>?vHF*|O4F*cQk>nonj5i-b8KtwJlGJ7Nav(+`D!Di*Ws`(&nEuZIRVtEJQ%qleowmrrV*Nx>HN z^_mnd5O_f7T$kn zJ~@*D?vz%Qdl|5940Jb)L{~8suRwXuI2&WfmHb8Vyode3caTdfJ@tEx#X8x*_6wW> zq%l{pVaO_I5g1B?A)>2ap+~GY)#13hI}AYNTMoGBTK2n*b$GUzoz*y30y!(E@Q!Hy zS~HUFqUERof3E;H@+iqbr5gsHql8t%F1iTQB+IAwb7ND!Z7$!w(945SyVl8T_t(m8 zE?0^@k9VOA?IcIgeKkv)$!K0WFf$&#Ymd1CrKM5o9@oYt(Q2licx-jk-Zx86IF38? zpSuk*y>)gbdK7VhuJ4Ce9CY5}L>qIkkdu^T+GqyZAj7`3US}WlzkJ3!S8bR$E72A| zTO6E?ezhn;N?dY;YzC=Sm=X9{qr{uP$TWAR2)AMo| zH(7P@01UaLa8Dc0gXp^x&kiEy+xYw6p!5r`0I%|S<*H51MSremxfh)# z%Z=B6V0I1v#j>=r<2TnWYZ04w2G)Xi3&)bU&=TA{4WYnLmznuxMLv%rJtFvCC7+G( z+|LkE;n5=Ju@|;e5D(x!;nb*2DO?q^jXP7?N>cL_d>`G|4Bu4IWjv}S><)mr_rr0dqE_P%~ZIQT5`<)v;9B{5ZbofaHvmrLx6aEQ{{x?%*)^r+f zEjjAqThu$bddt}qIT{8D(M~jpy6`Gij&m6ARM|@}&Sm?|FURGhHU&R`Dh%uhH=B8E z4Vt%-#u41dFPYZtP!n!UAfeZrA(5p=Db_{$iR$GAK<5oZCY|Ld=v~Ql0iL6raw80Xx&r#TKBLhyXK_9nq zn5X(rGDN0cxc9|gQVj27_mk52*Pi%}wicx^I4;}_XEbV56(?CC$)q+6>BZV34#)CU zBH$qfG@JEdoB`EzztgqUUc6@h=?A>R%H#o|M>}V)QmD{cR6s?ksXD+xcx7%C)>RyRqn zUFHR7eFKOJ%?q_1G7{m};i=e_HPqbKA;Y+dYq;P$G0!CWdDfs{f!x|NW;$k{871K? zJTN+NUh<1$vPGaNBN#asgidVK8PJBmvQKi_-539Y*mL&UJy@bN@`sFL7{$N?E zpd(Z3t9-oh({DclK-(-YYU_v7%~qo4&zil@{lf*YaW!anI=ybYI;kA!<@)ejRosau z>7?eEPE za}jkQ9#P=!^`CeYf3GPid9PT1A(2h6PI|SVTLuHsjlrJZ4cX7|*UYW*r&Wd|I_|aS zof*IPI7yFHuH0r(cTB?C2BXH~AT{OdHtMvIi>*qhKHgDh*QflN5gHvl=F6*cKPz@y zl8AU_aAKZ=L2lz0R0&roo?mZq&b)8lz^wZ{6Hzvxzv$bd)e#N5f+buBO6kIfqphq<};)Gdcl^%!fXvYHXEPG`J7;H$fF0-|O{F@fO zn(%GH#qzRQHMit_Q`}s z09q8zdfvSByvtknpc2hDl{`2!=JQa&22L=IvUiEm)NyjlJg~IbRl?T7xTXG@5l;UD zH*#6ehoax2?VJwAA=sMpsN!R1`n?5xDgNIlqTj}wDL!or%4?I%s?&$(E91;;wm|k( zq&cnU%E6wpGDBBY!R%5)=gT^bDqkI!vCdzZ+=syojc|!3c7DUWzSdrv_-}7Pv{4KA z2r*OVQdZCzfo)C(KKZuwjjLaaR&bFdhbac4EAr^)Q$&$6ZIw z-Q^mt*2%DUt6d3Ry5uW}XA-CTYt2k*bG08=6{C&EeJXlQJ#*4pygU?e`ms#kW%(!8 z5(>}OH_O9Grn`=nGxVDb4l}TxCV9tNx%04se13ku2o1mAKPxNP&#SVZ<(U57Vq+HG ziQ;o1OLAq~N*E9tws*{3Eb}_?zx4O3yJRq5D%7fHZ%CRC^;-}daiuNXhMjm(ILV+X z1K*q(kqfWzE!RH(&Jn09F%+N=@UPl>hxza(++JFT#vviYtP*?#AJ5%2%jL7g86y5MdM9jfiC>FWaDrk6Ykck2F>_;_QeoU=75{fQ`&nbyw zFV@UQ;P!^;H9Y#wroG1eBv(_AYW>wXxQhXLnU`ds%naR+_9fubfUKCXDK%`pq8kP?lb4u`*-0u2jW<#P6DLBt!!!804|J?AcPY?`A)Fe6lGKlU9wJvv}nD zn8Y+wW${Rb5O3NzQT`j$pABMhq;g^J= z(eXZ5)@LBRU1#(bTa#vS%+XOb+%G4h0)kt1cq6!*v2G|`xP-)&!NTPN8H{u z7HF~}*3_~m_o=~>m`e>VTnKHSsn(04ecGi1M3MpugDFCP(mSs_h2wqhJ$m}NwUh|= zs`1$|lpJ~) zG?}iOpCYThFWc+d2ACOTtyxontuH(b%wU40!~92tFUQLJyhJTx9w<5R!V;oCHRlvN zsF`FlR<^8drs<;yS^DH`M)*wV-bTxly)>eNo0S*=qiDDn#y$whe2m_Zmz((Eioc$4 zJq43M_Vig-#QTFYkzVFh?F#KksD)~uTwzNhLZ>7>o&(ap9`{f`laICA9jxz9$l6{u`l8H z5>}$^?$~hq*PtcYDkMF;dh@bYVWD0wMYlWmyW)GT_nI^FN&Q(*@V)j3IE$SK^OUrj zAEtuBeK?871Hho6Wx!tmi-|pE(NWxYb2e_@VyJfFt)Q`p)-Y8r8{w7jretja@k(yQ zYo~YGrJDnZboe&AI}K{z!%AP~5IqpgPsUXE_P&Z% z<=Fw}b=)o}*mh=RUtL=BYUJ6qlK8Jxc|Ut1G``G2Ddtv9$x8KZBZk4Zs^Fk*pb+So zzS$3356V7IYa>hUGfV>{I_5*x!bP~e_qY89up&E+S%Y||&4J541ueCL7Ny>dy-GsH zGfCC$W8uD6FEE)S_pU8^c|(}VCH#$l&Mwfi^<{4m4n#1UO(sOewXzL$4?eNm=>UHE zP5NEuUY#F%Jd9Cv4=t2ai^)!JB31Mdmptw6nZ-G#?c1+Am#CaXqepKfoiI0Z3< zDz5d6V)m6zKM<2z={d7by-ktP3E&Tna8XZbc+a+J?3Np*zoHr3x3EfSUMuUJcn*Qx z`je^oenDVswVCr*@YT>Pdi833bC)cR&DWR1E4@0wzIwDf-#WZCQnWW`Z4}P#Xq9?5 zMxL00P5_1AxO za=@dy9LMC92q`>}vlNdDd-am+#>IJMgAB(s?_Xll*~p4GZ45-;ExDdh(!kbBul2cC zZg)HI>dxS9m#&>nA#CaGG89zt86zH9&TQfpnR`&yiAE+}8SGdQg5T56c|aX)T_tU9 z7H*||_T$B%`hMf{#~xEH(FDx0t*Z_tn|5Q)&Ku}m&|9h9xAg#BlriLOBA(n9PB9*; z{b#MQnZS=~eSIC|Oct*8a|^Glis!+6P%=xttYPtYq0y$(K(5NLa`N?G*scPXHjTRr z@6!q$Dp30gb{AdAZ&CB=N*99%OK^}kK012^H{JT~666R*Z4oZHq-$xWWk25*u5KXwAm^sRUD%14a z3P67^wN4xTE~OQ3xPO|Tm(ON<8jbFf>J|E%Tc~-dgsh$EQL5&|pXPJDDg4XUOh&iS zGeh(+IbqopV^4*Zfi=w(g{v$1rEKwY%Rg1hn#H2nF}QK z)_Mv_pir)?=^he>Q|jJZ&CI30ub>l9Bm+$B4(MISxG_1|#WpMNE9lSQ*{h}d zzW#74q3(GgBB5jUq;Hg-L?@}?yt}|lYFJ|LdQlfNJ&Tq$2}m(q7LNKTjRz~*iFbyR>7|@nm0?r2^7s#$Am1!9MyNx`quHx^)j^dPAFUenOogF z%DFS=h;ZeuUvBJ|XD1#s%^kYaYL{6Ufe$#=2!ye1pnoNI)ZBRY`K1_%Z-WGz%QFCN zp*p`@bcNCQJh*)py%d=y=rxmi#wU#BbmoN=ccuDRd{2I2DGyALD*N-63S6`R8JLEN z$VbPB13iHd40a9Xd=z9d6E*ZB0BH(w%l2n}!2IqebdpH;mEyNMd#p$-6Hjn3ZO5Mt z3N;!Y)#2=HPpthgJTI&B;{2M7{rk&;II^y{AgABY-W*qdXg_M+btJ!3$?4gie!leI zmS7A(v5v|)(H8E#c;+<&IU~rLygwXfZ2Ku>7_i`1vB*w)CK%*w&mP%O_+-tUg6@LP z(|cWLdGJ0PGZfv;UicG60dqOx-?bfPX@Gv^!wOG0gbVl!4fn%R0gIUvk$^jue814B45-LiVe*W~WtHB@dOl{SJ%rQEflEqC4P_7$SzN zHN#O*odAuNuikX&?Wy>%2O1Mcyq_NMDT>9qkmgnELDGh-zqDme!+mO|;31-s5Gin}dT6m29A~Croz=;|? zfU9pKd0q~J&mflB4=?P}3;deU2BI<&e=8W14ICI&qY4pc&Q<0(UoTSO0dz4Mp4f?y zZ1%MRSmEXPy37P2I%m5j0SDrtIO>C4)^n%oj# z>(32ZBx?Gv7Ym!cFZ}JL3GlEI{K({Br;<3M^YyCxjj{7YTyG+Ioj-;qGUBD8OjEam z#iRncBU2$rwL55HzFA15Kv>B~o1fh5az9wB9#Z0-u@?uKoifVzukoBS&N5S|6iH)y zB>f1p=I(LsR~SGr1NoTm`WV$>{NDioefAC_P=z|$gb|kYk@q9r?$GmVskknk^QiU=rNd@1P$O*tZ?-3$V-(;6y zYpql*d1Hg`M=ijMLssna8Aii) z<39Lny~wm1Q2Ksml68pxA$=G*Do#wRJzNf`BhJHT)UyxgdRsZwMU#U0>7jFpoiLi@ zn8!8so*)r;{RgPOs~To@$dMwQrPiC4sOew~RzY zdh;A3kLns)F!eJ!SHVdwxSvdF5jHDY_e6rWtaI^|)7!K$IN;s-co^Y82FG2_Eldpz zcNI>nlh-b{PxX?0D#Ps>cSnoNh0wb-HFR)ae2iH&p3(WqE1MCyXjW@^bXE~u)ijSn zz3LRQx5}38h+kyv*FKb-y{eo8+s7j34cUT?XioXkuoK~^M(^}?GrLKv{|w47>zISi z@toDg%eZ;iV}~V&=2HApnco#d1s>(Zp>E>dtEoOpbH`P_ncT{0^6}Jsv)PX|*S6(; z`_^b;tEotiruohycv#tH5Ai~=%$3zi@4dV*uy%isV{7ZQY2hnf=nA+$ecW;ne}9#+ zkUT4sF$1LMNBB9+;5LshXGH4!EZ?{2kVnc3Qo*&csqY8u5W7W_EbYptZofN}Q%%52 z-vC4+(CG4ZzR%BMINC2&9ARVyqkrY8HGCgK$e3sb`8JKElJ6WzG(d7@;ll(E)6FVmJDHdDr2~bNjCc4F!UI3Pm$zQx zE{9RwT9~>qg8-ej1^`dvU6~;e0g0xfF*JZv^nxbK-pG42}tqr8V7?_kBoS+-S8m&~h z2$ii7POj?DvndQe&T{=EH=1+Zxo704jD)+Qj-qRxEb}L$IrZz&+)PT17z5IwAv40H zyFlrN@7j$wyDr3c0_2Jj%K5#Pxp%G9fUUyB!Wt{rVgX3VfK9lOGLw*ecHu4#7v#+p z8LcgliLdtW&kTQ)@lJ6(4H!u3bm{iFz;C?YfEUrWfa_?jcWUyM1=kfWqBF`T!qush zrnPzuaZnwEoiXV9T<85%;Mdua;HH=5tG-K7gfFqf`_>QpC^^)+5*I#a7Sq9j@S3Sl zVk-}W4@M?zSksOFo%KjoBKu-(xUZ7(z3j;uafkHR7f#}i8OO8L-i66-R@Iv7d8y2v z_csTr;$nAKK4P_4#}$^0Mu?QQ5i~y3Sa{-=OOs9G;ns=B>^@-up4;NwfzK{N2-Mo` zBM3u_j_U(|yayEBc}j2Pd#l5BI`Z&X{ni(94-ZeC^~bO#+%g=Q=C5!CNn2JfBl97({hX=vAmfFpKV78eP>~xACSQe=~D5O)D?9lARt= zS9iV{f8@_=6FL7dfcY%VRV5!Q8_(z13b_}vrt#PLBp)8TR%3OiuzKNa<0u(5C@w;t zHe(_57|@=QY+y5qkxXQPw;6ScKbvIOZnFJVp%U&53q^esbCUGuwuqXZ5qYUQDN_BG zdR=?{j+0#ghf9IGWuL;4pjkpQSRRSSEd;meNWDuBxl6ut3;;HTOiWbffBC-0g|lF* z9)Ix~=}D-wzFO`fiPHF$QRYzBBK*1X4AIJZ6-*pFqeVGVkJwc4r4(+3@QD1$ywmNK zD4cOBx7|(FcQd;W7IdS3D;;E3=@;*tqhGE>3L_VlEZhtx4tQ)T&ql=f zPqF+a-;x_4ybS11Z+v=MS+Q+NHn%O-12AP$Q!*Nzg87wXcer_SuB@U%OlfpiKL!Ub zey@^&@y(G`yO^R=1sajCblXzAeZ5feS6mQ-VT+T< z?p9|*SC8h~9lWRR#+&fSjS9xt7Jg)rwKj=!=Mo}3{j1w7W+m$AoB z50alUJ}Ns|6S9UpdL^Ezrg}J+v~AGl{Z+!zfOQIgc;QbEmgVs~JM%Ykum0+@WShrR zdLOGc&-xsW?PMDso$%UZeg=h~gqW$bE9n3{vwC=!Tg}U`JRQtC)OOn@ z^6K;sGEo{|n`>DErNw>T9nBxj#;z4j%w7q2#Hkcq({0_VwtdZ_X)~XW9yu75#K+ZZ z_K0dPLZFOXJ5}Zp!7P$%C^%2E*6AK~?YTPXy@gU~dLKTTv%XV@{NetDr!IbC{Y`v1 zb0%=7eX_Goj4!&%$x1wpG{H z!{I;r)qnZFUjNpg$v?mR{#OMaHRUw+!|N}<|M&i5BRt;o;Kwce1V3uk%B#|B{&4*BG{R(dX_?P=X{pI(6_jh=BCeLf|{N=y6ZGZo-U4jC4*24eg^gsUQKl|m^zyCL` zL9oC5ZtL%`P)_dG{V%`&+i`e26@2R=iy;49@CtVK zf-gALepmgS@>_Y~8}In^zsURid&#{>@5S$mcN+Zi`+t2O-uT$>-+kZtAHT@w!{xzs zALK#)%kTfrJ~;UISl;*V{`5os;WbZx`}D7#{?0%7<@9g=(_eml`gi%w5B~jg{{8p) z_dob2{Fp!d&>h#I_{I8L_tURW|J~^~)}NpL!Krlmw@&}<>2IC><@?tElUMlt-`fRo z{JWpu`iuY9Ur@gPzvlb?nS9^(HGX6L*?k-Q$@iavKlz^D|K0D){ruejid?;4Y%6W8HCy!|Ln!4LU1e&ZKEj=?p^{UX@^IQ(2Kwcl2L z`^)z-{F}d5{`hVG+kg6B{eSz$|NNIf{K(V)!5jMDf4-r~={J+Vc~$=AW%vs&oNHC^$$Nle#q;0JX8F1`Q^ty`f>RA?ceW~zy7{a zKhKlrAKv3%|9W}Hzxm5AmCwK{{Pi#R%fI{8>zIdo{`Q*wHV&^a#&*H4Ul-odKlq{i zwpIU&AFqr5`pf^R{^nQjf6g}$r}0D~CKlzhWMZTxQ7QFn!7W{w8 z_p$~5H-Fq=|8O+^_kZ~R|A7yJSj(?Q+kYPTO?$es4R2uMlf6;)6$97*&Sbr^pQx*qZJ(@}!6s&EkZvor z&j`?bjQNfaSh^dGH9GR*uYc|6(t2;+&HPxRLFFHP)fsv#B)09_lK+f)&tChIBED#M zuI*k-#G75aPAmI>dbp18tx*{q=1ylmiOJuvdp$$3V@H3gpXFSAzun1Od44RlxS^&~ zE6t}jLZMTg?Fyy!>QoH_d5XPp+xBL&>EQuYFE`D{hs082vpIIE57aUbYd789KJDt~ zG7HKLtPBS!D)kD<%J(ukCz8I6z8RVuw=%?m2WraC@w6Whn0m(=FKKJDS8^FA4EIO z4yQdY{7nck<#rn_hh%+&p1?2!p=*m>$ka zjlR?G!=c5GHy!htd4c4ZwOts)=dXHWylg)cl0NNpv5J*P8Q%v_oamphgC1Hn9k($8 zIdw2*YkPf~$q`6WWaG+toJ;qsW3I=*yw_O^+Wl4V0Mc~%tDT|_thn8OVWVz$owitb zpy#c0dU(N>8U8&6qJBnnH4dGhG5+3jKLMublgy(wXGfCDJE%{WyP3cu0-&UIur_Ek!U%2i1LJE~ZNwyEJC?;| z#^o&a?kMsv(TLWYOuxha-U+F{jL zdSw_kKb1lZx_u2fv`y^Np?sg zL>=cWS~f~K)?;@y7Uwdc%*=4xFAEoHT)t3K=*-0)B%hlSG%ykM$#I^a9#Is^0wQOh6bJSZ*viW)%n$f|LbURUT^3qU8Y)aeqTb}o;NGkY@4YFOb;dNinkNRq7qKvYkz_iJ zx?conA!Bc(Z03@2TWh6VtG=v%aj(X9;-jdGTGw8m)VA4~pkk>#H@H2%ZHe0`Rba&R zpGw~tOx6fFmP2vdSX|E-Bs=V9WI9f|0j_HE0>xCPGew71wJY`2P?O<3iS$bCyXHD| zcquq|qxOplid&LyMBshV38&c%t~~N9lnw=|{dp&mL5(DTy~ck32CGL6YLMzI)-x0N zLX!4aUUzFXt@-wm=Vj2wBM*0Jn<{A1;1gV`w&WobjH?z$?&>#FGBFt*DP^cW#EYV!Y62+CkV!JP(hD z@?c8QsHf*nCy4Bbba9!K9)v+V4;cQQ!)oz?Bh zQ8Gi~73QZ8~` zNr&8~qCjJIq^m}13`X8*UNzOh_xnV-t*vl~YaY%_dz0Ea^c&}>KAq2*XivovsZqTY zqMqEtSX~BV_nNPe;aJJZZI2Mg02)?F2*EKA#=pDItHRo;p@@e8o^%Ex8)`o4t5MmI zyb`Ru+jx(wiNcxJZ-)=^-C)MYVy*w2Ju8>{!(ToJ!MGI6_9(xedq{^j#8>q(%InE( z>sM^a$)e#2`uHyvyvIpf5gB?fSBFs1mf>|3lQ7w5y6` zTl5Ff08~($mZ(^uD1|-i3XsD3*T-0#jL6r>FJETHz2_+Gy^1-0C80gu9fogN_mcpkng_W zAB7mG?1Pb6OtuKFhHJlBt;se%I5mg@P7J zjQ<2-6yzTKwqYgNJUTaEEZ`k?*4cZSIceI<)%!N?kd%en$ZI}dD2^oQZ}8*r3M=EY zAAUfyZZ3g1`5T8P=SQ|~k*(Y{j+@m(bCzt7aBtpp8~!s6c(<7+NU&PK%oM+)y-ej- zZ2QO!$tge_*e(a);5XYfGzV5D|4%uEkLz8UZciE!Ujp<=< zs(Hw(UkF)*_Ho>dl&I;o<#`H{0b46s`JY>JVzmIlHk+gIZF=mzr%;7$$mXIBy<7Ze zalXoW8Si+rL*QDPU$CJw{Wx!gItxET;O@OgaF!$7< zMDmf zi{H7t+uR9FxboG-Lp`dE4H@ZU=ws1ueMhO_-dgR|Y_B-hb@TdEEgQ84ZmT($hT?PP zKK=7>-t#gs^q|zor_r>3i$mqMg?I&hIMpu&-xtA2UbIagOMZq6-?5?AvdwnZ8Q?(f zF4&E2_2QWhsW73}FW-_Z=>FoLP!f;s=Uf@@UxRm>cUH&b4qCi|ed++l(AbHKc&OB= zB4$@aE6QWp#y~(_%h6GFn+0mg%?*XD;%#&Jhlp9m;L_{2TR0sQIfC`0v26ybILJjQ zW;}32m8!cQ8zjUZZA_sGv~mMg+&%{Zx?Yf=X>&xPuG6LwMNX?n(v}T{r@C?WJI&N; zX|5h~T~y#GXEU!?84MpSI6TGJ-=5$1^-^a&{SIYu+pZfk(%~g`qX*XPf5vsVYT28lYI^0XC*3u~HnW=pr-E^J5k}H$D+ffsaW~!OAGwMM*>YLc!Uo$p>Am>&WW&@!(eS)^C_hPi-3sk* zWfSDNEb9fK_DK+Af$Alz+bciP&*L(*j`#bTy6<`RO*h1jzbe`wO88Os?rQn!qvCC* zF)J7pv3(bw!;K3Y8_JjzmbeRp$38(}Ufgf6B)`Ys_wsyc;}Q1$-Lz=*-L)bjiF;qp z^Yyy=G%p`eHn`*TSVZwF646NP0e0ZeyqDQ3%#y|I72Jxe-K8yq7w#$rL9T!y$69m{qes|Wv#m(S1P3N zSpx`dma{!{u^TJu4u}4@bQ6j*SkLX^Z7tT?Vsq#7x2Q#^L!?&Q{7%_vi>d&>p16@y z>)RLMjAlm5^ov(hp0Qt~s@IQ*wIT_Vmp)d6-=ZK9(#VAOdDS;a=kc<@Ei(Ilhs?De zR&=)9r#A$HPyL`4C;_c4FG&_klJ?rZ4ksN{IlPXW+#Bl6oFPd+wSDfQEYHpKk>{bZ zQVyKCd{zw-!pyIA|BUXPFG}^lv<#_fJB``*_fy84H9K;_jIS}zM1tfl9&LVr1cKSY zAzz{sBy6bJ;ucQ`-&`ZKgVUvtJK`F+tqXd(bUg~(2|8OS=AiXqPja~-7M%1-;;-__ zuz(K7oK)*;yQp^0lx$VM=le>!(rn~>$PKgE^|Sow^feNUf_?b2oD{jJ+8oGx$~0Iv zJs$}QD)q&i8SkJhhgyM4?JW-n49~0+0Hn80c>#JNMolaBF znL$X1JifQ+<1~gds6arE`C_8_f#HDaTrLpT_m-guML-nZm)APJYMp&APQ73DxKH|d zl}OnWExi2`)HlV#D_cDpPHX*~tfp_u?1_N7av)*Ym1y5O{@EH6KhuLg8i&aLRua(XC z>XJm6sPjt)|00{XQF|K!nJvI^ZKQq#`-wttAWH1btM~IR`ssD-b~@E_{h+Z{X_lnE z_1dVl?I?ZcjK3lw#P>;?z#B`KQM&u(F3C~yew%qu$mP5oMZ8@;=p!fYS7~}PfBA*> zwfmlM7Y)04C7q9O-_&1?v3c4?Bq>66JK%0Vhpibk@e+!CiMid5+F`lWbijLNmh>Z^Xr{O1OBddZ=ysIk<0T3*Asxjo^&+L}Hb8xn=&*`atM zB`W$IOM5wB|R^{o=E=RbB39}IhOKs@u_w!)&)k;^1%%1RR;?Cyz6$;FSX521bTwB$1pDdYM;jk$&xWYmPbds@dhtn-?}gMd2JZs*kfO-~*Y zlk|up%jXjguJ5mOlDIs3ZM*eo5{8AdK%dV0=KW1@cJ2jWDo~&HYWWu-hTPgTE|Pp* zsld<* z#tC(<-DePj>N=sEb{~FY!u_Lmsrw*-3RsAl3Q{F!t)hrVkkBI`vgQ(%+yeceP$t8vB;g57P(~jg6f75j6WwGWG#{jP>+NvA^%k9H-@5S}^O0wr zzgm779^G1>6dUa2uQdXAO}&VcQ0BZVoKuqYt&!R=Y#Ks4$sX&zIT$VM5$?^c?|^$q z=)cFzR1%&6FlZlS&63=+ZujrwDo3&)WCa@9nhT~*p6vn!`0~!9yUUk2n5G|`=+r46 zEpS8sUiCYP;9#`u7feRe2?&HbG+fMT(%*;!nC#5#l4EPcmN(ooUpn$dZz1^>P(%}~ z%qM(*(PsqH`2r;xvfK|a9fkIt#I1<*)~GUmK;a^GS-Y*Tab``RRDDAdFKQ>A)l|iH zZz`W{v!U>+eN*ebgVy@d6JPVP6GzT(D2dzI>wWD%=1&nrH_7^b4iI!j-Sgf#)TD&n z(eJe+Nh-NQ^w|lKiKcly6}n+7ArYyu_SoX`UgMl4*Z53q7lS9{!9Pk&4X4eq`F78C+HmG4Lj3 zdK@0wqqILtC#dMd2{#SNd-tsNU@of!l2%u`fJL<2nhHgEkBBVyYOQ_lU$`5fVa_hx z`=^p1Q5$z&6L~kwq+w_)!$N|gKElg@K7UKfH0_XtJcTbFqYU#+KG}F-opyj*O+M5` zPkC)ga$zvHUvlcYn_6ssk}G|gP!fyaST$7H2e2pj>z74|DpQ9E$!(R^dRyIGy?Ly& zm)Lm2`BQ5ftG;PZxl~YYXY2}^F%av$^n&jDL1Ur8_j7JvaeD~$o{8~7l1Mrzfghu` zee3hAF}pf@y7Tm&g(TX1CGxkXc+oR#Lk6(bDVUwKyON5Go`HdaxZG=vmZ(KzPLWt6;Ncx+(~d1} z5)jMxjKlz|hgwoI`D&{&SM-z$!cLo|3Lx0*3ESb^zDKDH7`q)Nt7r&?3P-WmA7}cJ z690R9j-MOugj%a6iO^aY-_(K5EO5*Vce6fWR)nD)H(lKI!|W<{ZMRpOjZXYC-?_+2 zcZco7BC;;&MG%)dtLbrZlo_eae#moJ+zpqNN}i85r+$ueqaPgVyZ24|LI$0^JMwro zP*?FX*nRoqCB?GUZ$c*zq_%Z0#}nV(@8fnVr?#^iNPqWwT`%mIxF@z-rFPd(z&UNs zx9era&nBrqyH0;T<9BMGC`J!KFP>j&nGGU>iFU%;1=p41E0;xTnYCa8#mhG{Ez!Ck zW;kZ)np{@D`*POI;&fJV7@C4dAUqI&20uZ+bO&^|!+!K^tFjCA&f}c1N9T-zj~s!~ zjvx^^JKv4!^vc)x`%O`v65=C2VePq0udLGr#QauXD+Jg1;+V0Y%BLe}X+t8v`rj5q zw0prwjMzyW8bV~(M)1>#xWD~`_|rS>25l2v@3)p|?*%8rK#^ozIp4VW3~8pXZ8Ev( z!$Ui{sw3tZMGR@?6&CSoER>n4h3j=pI-GfbG*kIJd{DlxN^2S@!+Em$2+8Gb9mpZC zO}p+YAql|}W4YX~)vCPzW1#|VNC)R5CHXR(F5K)smi_5#OmzjqMk)NpSD;_#A+xf| zBL}CxCF;+2EWzx0R(xJPUW)_u$Io*lXMTETJ58Me|Kewa23xVi0~NKtIfp!3H4G-} zp=~96TLp7y%sS(!O(j2amZn0xAmerQI~DQt2%6=m&ciMPH3)hTl{99P72`gG+Hijn z0e={ctoCq-KAg33joBLqNIw#bkHbsWUuvnS-CRZFe(mHR`!L0N!@fNq7(k zwg#!oH%KmCF^xHwNzagE>AuiFPgnCi8_Ev%F%Bga`}t1ni0Q|Brp_*d)%`YFG<2M3 z{GYnHyQ~G3E=>t(UW|sMBfX$wN2)lJTy5o);s#^!JNE<_^knxm?zIb`hAn zUrU!2SQ>6YqIc-cuYQmY@`lt9Su#E>jD+w~*5cj*NO>K7gpg6W2@V!uMX}#J3ChZmeH4xUZ}2%mJNAFTMIpr zxyG;kW!zwqm>pV#CFJX{J=Zw@oUR+&53=GO-3v2CTK@4k=%uGRk*%G)*Y@rBIgoqa zONgDICrV^y(pI{BUyX#JfLGoXL>61b7ry4!^FHgJ;7biZpQhRc9m5BgkN2A_%res( z>EXKOnrjw|+GSR|JKG^c_JJ&J0)DQc&}iQKlemY(FTO3VzlowTrp3MmmDF(&w3qtM;7M!CYJZOB_uxCW3nG& zcqBVBnMvo}ZHEE=%Dte5-&&4TIcCf%tMeVPFoW~uKYqlhV||%b)>Yrya3L=ove163 zU1vTm3HL0clD1L%2{Ek+d~7jeHn_)mJ5O1})Na&o-G>GBuK!QGJV-FM|wx7IlsDTb||Q`4|#Pe#dU2;7}q4IsadyPc^XUAUy~SFXFvIQ*C`|) z14)vxSW3-WyyGQ3tzaIy7@DW$Qey!i_$JV^QAcN1x?X{Pp6h}x?kuQbI#x^XB==)> znS5m71;VIUYAM*QySI0v!^Ss%BrdD1>1x)#WHQ^2nxQSd14Fo8+hJs?9HfUoOAR5e z)5X1USW?H=x7h7no4Ru6k8aPF>@TDS5!zEp&B=IHYYUYdj})XJI=x9uZsQ8b^5b`# zT}D;U&ZZE@kJI61c|o%yyPAjlb@djs_EhRYgEhmka+LkMfZdc=DfZ-Yaz7O~Sayr=R4I7Ox9bjy@bv;!TX++D?v zro8keiW?blMRu(1rk0*yzvubrFcJ%Hx5hNPA0v;|>>heP?cWcQtBp6<_Qvo0 z1?*y{Yi2C*c$C!36%UI_@F0zcxCto;Ff~-FsL+_nKYMwO#75$p$|q;r*T+lCz{n;BwTj_%vH* zBoBq4%Z{`9TE5@U?l1zD`kqMaZ8*tR_MCa7=gTNDY)m1~ssfj%T04(BSLPu$1`*MN z*tQmIoR=1iG}p{uNwla3pOrp$NDc7+Tb~s^w_JX zPaDPZo|1CL%-DqfIt1=wf=QiDosIGhs!b9S?~Ft4e4icG6RAyD_bLeO=ZhjK~heLtq9BWxwadCneSk=nv9uqid*T8jMX}G@(a-!7DLgXj!J99n54s_ z%Tj0bdG7-2EZQwe5sp)4Wa@aa_%uge;Agw!**?H^D4zCy->kKV%uyCj+VM_NB|uJ? zRi$=$<(YDuo3wp>UpoWREbUl3<;E-S+xZQwM7a>l)HpL{=#@lY7vDdE97llo&(ii zTSz`MQ0#4l()rEUSAFH}Ye}3D^R?qw?)e^0p6`KY^wVVW3+!3aNE-*VLA$KJXM@j> zc-mnm)oZ64H_km%L0_|bDs6=a)4RysH@EzcE&(NFy2*Wl*=;r3pogo$lWuZ5{}!nR z-aWPFH^wiG7>rw)8n5*o+a};ffzH$-@*I78n+HwI*MA4J!FhS+Y-G5 z5C;ryBr^-!Oy+%UL8|iA4Q2+?Ogl2+{U@ZG+=GKwSam1%CdJ7*m>FLl`1>j#MxxF2=r#xXK&-7)X zFIx2Bn-wqqUDw_pkmtF&9Ax>^me3&~zRSKB%v|eahm*>#BrVH%bmP@vBdItK2EY4} z5nnJXmiw$-w*X7DyOb$XKs0x${l&vu3_DWqQcV_;Sl@}#DcFl=T%z68PkU)u7vYC+zNqH>c?d#SZ1Ps)6wBfK0;&f z$)45fj&APAR|^P($pa^MC}bkzgeTq+-Qh;rciE}YmXIfYM2+{V>Ym2ukzDh9yCcPC z*duTo{`j60mctieTwtU@HcZg15_;BuE(H$_vWjzY*ha1pS!Rsql=ZG8GPK4}Q%*%o zNT-j*`Jtl(c&;7xe#oYPvq?|M$LW{zH(4n9Q))3op?}9y*__Eh<{Q4oHB~4% z0#+G*i~B_gu!3b0GW~5Au~1APCO~LK*HIrpJd@^lzT&7N5$MdB#+Hi&+La_6PH-zP z$7@6Y_a+w`^6uG<7%1-Nf}-aQ;&}fYK_$KKvJmi+xk2x+X>3S@d<;cD^b3{z?e}w{ zW6`W>{dY;-M7(j_PnPH#_P){UF1+7SNE+L^sjJ#kbW)-#$adpr zy51jF$)nNLIQkueball|ND>iBeFN((6F^9|yBTSZq$*Inm8s|?{l#OPj0ktTprRjt z&x$r^YbGNjswVS z?LNg<+GkbVv`7t{SajC1@wt1Kt{&74$F5_2xl;CDTW+)hhUXhO>N zpj#XRFm0qkS(2P|A^!y_jLgM2>mI(-NHD4n*yi4rGGNz(dDxtr%qju2j?bG96Tfvi zi=9FHLXA}>+i}4)=j-aJto4}`0il!~-4Ei*dBKzm8dbxgAqFu*3ZLvw1ts$)p(t!z zr@xIyLsJX6wJ-7>aLG4!gFS8esJ~?Me`dxJH*M%-q){CJV<-d$)B;*Kp+A)U zCmM|E%n~x%MUvh`4-v^OG8qshXL0uQ?;U3XbSGF>@%GQTvh8p72W|z9~5C!&ZO(NWk!Ow+YFEmE`ewsEMBGHi>V)J`q$4=G`1ka8;R_d~TPn zXtX(OPxIyzIF2k=>Zr!!+&IPRDr-Z8*jeRFLZVZou#-gHAsYW4sfJ7DY_Nofmr>Vl zn6Hb}v-EWz{PWY$=2JG{q>6(wbJ57Fy;ziKHqS4`y7ZuRYpxp*}#My0%lwG&cgK z;DFeHr$L8#B>)Sm)jh8gnpyP-@S#B3m9x#Oq=YSnEKgj@0tLm4_;LR_qV#2$^d5HW zmzQ7J?u**-$Yh=FUCRM3C)AH!5)=F22PtdkJ)9~Oe5%8Inpu;%sAqY&B z>}Fl*1x|qysda!1yaJ`4K$2Ifp`zU1L`L1mv@L&VMA{}ih1G}p+Nn_*FCptKp;7@T zXQ12_gp3e`_z^!f)0%dhZeJcoDu*`0NmLZmrJVbcx_*&&<62h~YvPY1hP>gl5=6Cw z5Nk`%fgsgVwwx;)-7SFDL$=B$n@4-YJirTsVo%QFJ-eW&ySGs<#@k+QXJbq;wm88=doHuXOWiQ^nAL&YH zKN~6|8bMCabLN=Q@An3km&HYMv7SgRE%d8ob3oLPvoAs6;kb}HCb6Us{zl9_C9TGU ztZ}0q&eo)Tuc4Gf`=-e@q(=B zL)w=o^XU`ZXZC;lpZ^frspu+3Xf)hP?&ntW@AKQ$hc|@iI#<0x_Jm)#<~qKd((&#c z^XRur#;e}rMLo9{8S9l2LUDmQqb|E_ZPHY}>DDw7I`6vP2Q2T`uH_!GX-U&x- z6K@d4(94Zmjd{H!k~c#34!<(d_%c)+gZEv1c7)cmFya1-Sx3eb#-UQJe#40TAv9v7 za$kJW*Gkf8=@Ah}e@Shj4eJ7p48-kmS-cEMG^yon_5$;RH_NF3sbOB0)SxbBTlBN- zX)oUQ0r`fv!RNayca8K3e%5>q@IF+#8bEi^u5CaUFVG-SNg^SsY{T6QZSvqeN1s35 z@rYMQJ1nSY)uQ|!#N$=&V^8#ZPnRCdFtUE-o@XozepS8S=UNpIEh#xrI?$@uCqlVI z+xr>*m`_RQOkAxx%Z5JnJhPSDTsbr6%xl-nBTyc&!g0K7UR~NcicSV z=a@jV)X3+VJQ2)HSt9Mmc}kQ@e<7sI{jBmhu!rNPqrGFhy&@t)_sgIs{L`ZP6E7;snx+3_N>|E_r_ zC(o;!hL2TqzJ9s8~m1$lk%F1(f{N~N~-e^+Sj3L5>t0uc>fAVJGej$(k(`23zi55h9k~{t- zcR=YG0bUM*5%Px+*G~K1K^ahAb*o+Omz&qI_$D*kUO@1-d_yyS0%6vAx4=A0_^X&a?)#KgI4o)@lDVRxOh0F+#B)RxRW_DX~ zUUjW0w<5iKt#|8YF4=K&8Vd`P6jAZ^@+OHxJ{~QnPvVui7tODbtu*EVX@#@s%#Vcy z(=1TaR`r#6{4ucLF%bM#&~JPCA&}XN%q2SW0?8*8Plq}LqG+1TusP<_W_ zuHwy*9!T^97YN3ybx2| zg9zdA?r)O_mx34RJFY<}&?ygm^X~S~^1EI#qqoTlFY?E}sm^Leia(*H^$Ge7iEdQBi z_Go<;i<#(Yjw%Fa{BXf@$xDmHMeY~wYHfoSNV^*~dCs;M^ZBsx5H>jwU>P?a-Ma^b zeo>u@!mLdChMH(E2vNF@Uezm_a;HC#^`_i)pN2f>dk9q7R%J%6q9H^~`5R5$Y~c;O zex>g*Y}i}UbLtzOgK9LazfPLh($`gEzFS+8MA$u_s#p089%${-Ms569(@%(WLi&8o z_^Jqo-Notf!JIg)N^2oBDP|8%V^>^fQ!xti!EVKC^H@>qFofM9A((9#r|mMUOV$-S z7pvNAGPV1F>a)(W6BFvOCcYsR&CG5_+U4O^AM$p#m#L4Aa5}TNW6i}ZclpKYb;1{C zGn3izhmiK~t0coNdh;IT{b5Pje?pJFmp*%Vo{Vm#kb>PPvq~Vbq0*d|`l4b!6#Z2l z%ih4)R+MRq=CS9!io2tnc^3U(Pu?7`w`{N`=XtZAT4s?^d{#{V9;ZLvOI*RQZU57& z@&0H~-@`Kbjw19Y=OKtS?rZ4kfxJ72=+yyrVxzm8{irUok-DC^Laa~VGY+b1V-iq? zJQ>pH$8U4kRl$1C#A6`y!}Ceoejdn_q>tPUtj{fU{WbSAU(rb7SzbR)LmpWj$5cCp z+3^_M)}cc-LXP%Nmku89n|Quu&78$48_n)#j41bcW*TkQ8IEIOER zkh%%3zqR;Pn7tx}__6S@PYVuHCwhGs95F0VErkEH^!nJ0$IOOOf5#3Gl@tcWdYMFq{E(aLt+PKneCUpaSQ>4fK`)Z-uB6Emhp-nvz91JQsp&0o zI;1fuEmkJ)=QF6QGkNyK+l$vLaMcYE;MzWW^>#;+Nhi&W{+CRi@o!bzzRh7JyVHgT zQ{V8Wi<>2hbTxog{_kYsIU3h%JAI9QAMK3zJQXA3jCVpOd+S%`ZF(*|L zQ@y2SlLXU?TaQVIOg;J{xo|lhmFL=f~ZSe$Y4`+!uZ5U3NA#E2$g$UgFP3q}7%dfxW z3!$j`Bn4kLv+Gdq;t4&#qNfsan9edrnoZMXkKH_+=M)$vA$K4epo{2mv}lVG@yBvU3?I9BbZDL$vG$Iw zcdj9X^m1;j=H=N+bURI)@3GdbwW=pHX9VRox>v9nR5R;gxALg&lXjCzfhjBn-sY8b zGhd-gVRT8o^JkWg2usF0#&5bO)w?aE+`GC`*qfs|p%fSm(AnPWd~UZT^NOVLa(=dZ z&)$zEO9EN|4RxZqN~r-zV4r_2=5{;j+l1P_OF$P=ytnu~D+tT|?DohLgCXCm_3@53 z84}$ajo;eFlhk}tCa?sD&d+>T_M3q6Hlh#4-sVnMXBuPf7u~OGh9wb0)B({Ykp8yHJ+p1caKg7B{)xjj8qvaV5ng?Qb|=;_S7N(XuF4lQZvf) zPQ*j6V)HPXNUX0XNpBZ-b1qa_nX{3c z@-i~!ti>1|yQEo>ip^g}h51MsN62isOd&~_pRP$=GYvceYYP(mQGF1m!rEvkkwnmVJ|vBf?NRbUyj!MUW&@W7~P1wAEW z^uPOqb!(2O{KV|wug{+(c(dfaf4$hZ@RF&??E^u^l08*TlIZHFl8Wc1d-E@|VwQ{; z5ia^gGVf@Xg^yA8(CbsndsWWWNNp*dsW;?}9ZV}O^INw0J&7cP1;WM9^5$Qt;Kr`9 z(Tfim?wROa4Q7h?c9Km#$@UtsN znbVYs;xc;?&Df4UJH&hTx|M$T3Y6`yg7mm4e#!&a)rs$lD|>f`Qd5jE3*z!8WTXdB zqLGikCAyyko)}QhO^UXN+Ub3kR1w*yNV?@UuW+}PXHOt~FD>S6)LvmgLUd|TI}OEm z8a5lwPu}UPXyp8g(pcM77ND%1=>HgzAD#|W5YlgbU;jC) zel$OhWrj3mGN^KUtvXNddmWu7d28@&xrO)5yw%}8G111WPiVimXj+$o@>rRP{y}KE z`E-1IHyJn5vVY3niFBz$aXehA-esDTM|W8-CmR_ek2(H=LG{soc2Y@d{z%UN*P-9# zS|m2%{p)PqWcDiR9KwW2=iil!g2fWekB8FNDb-Bjs$k?j|J()EE+w?sCpx zvyu6l%v&#_QC{H1cIzaJUk*RH@QUmHJ)L_{!oZUpx~p z$3MeiQu0jTFOUd-f1l9p>32U+vl!=t`pljE*1V83rdla8u<<^8Rq_8cnmeiDkAx8| zJUS$WlPu}Td4lOzH{K5 z<@{z>@jM(IeBy8B0#YAnd+z5tmwQm2nR2fs!vc;nrldO^pT++8Vdq|~hocp<+L=$qeOV!A z2SuLI!?NPz6+}(Nu}9gs%`Gq&tMoy`UXlS zznL0Wud586ze+0ivz*}$Wc;nUma|$XOgUp;3XdYRC_DK%f9u;zE=PQqg3qr%Ruy7d z@aWMq?r0ucElHYq^Bu%72S>So?iX8ME42)=a}ZlRCSbZ)&V={L>6&|XM=Tdk;dl33 z0-(?a;%l7~WIaR6y}15ZVmLClo0CpG60a3>0t!O3|0^`H=bq2sz?X7NC6%^UZ#sQK zdixo5zxFtuW%kiv@05zR&p7k%7!aK`{a9Pn-e7&@=@tUlgOk*%aTBV;+NqW*j}=`s^8&>Dp> zZP zmqh`0m$sE&PG(7BiLXh*nsSwq@T0tR7d@I=HW9b2E8b2H%4vUFTl2f`%kx~GuXAhJ z`#RBgjDAc29ICRHcbtlG(qMj$kTY#Zp7MBRWAP^6(AAqxmtBzZ5l!XhhC7_!qBc7w zUS;x`E*Goi_pO`jagETZ=B1zatFDvFey)M1sjd~%?NjvrwwN-zr|13ipGQZ*7rJwp zD9)npsK6IsfN3Afu+97&Sup&ix7y!(&UY*eKC-r6$LCM9wzmh{3DZNIGeCCb5iJE7 zoJe7=IAeQ3Q_x30(#7k=hl9sYYH#tIm%6$My1L!-9quM~`%C88@Pr3nwp@+lPjqK8 zzuQ=i*XS$yi8?++w6*F?=H-)a?^9c|E54vj9d%_t{u4d>3L5>V?9XYjajP5xVEXJG z#V3;8)`NiXGcSqhb<+*-H;gKDur6L?RP|rw*){+WEeE`(k$06iPOq!V2jjTD14>}T6e%Tf>sbe~HCZ0Q4w0P);XGzYIT3`IT=;8>hpnj1(KvW;a;>RjIh1KN4 zS(#U7pW%qGt)`jUk-Dscwx^Fay%!eE@Bzzj-tnsGQMmL=?K{cbOdByCjF+dI?m542 zR&f6FS&s++531>O+__|J!NXVLMT49}_0-A`cK?WFE$8Ucs?EAZeW&8X-TeqM#=_E> zbN*G?M^L6`HVc=;?KKW3i$Em_R~pCoFzr4Ck%Y}G(5|VD_%10v?mc0vOen9(34ke; z?dM#o)g9cD<4a5fZDAZ>F`73eRT`U>)3Z=zbAYAVWebL?OL;PE@5a$_d?>E_^bj+e zT>Z@_AMSlaO1f~Uge@4%ro3~m_FdV=Pk#UQHs>v?FVCYK-wn|q-^M4l^SpW8RIa2) z_0D39AIV%t<~23?7#~4e-)a+JMk48%bQm=E!q1CV;aR+l!WEd1QnG0AF=R_$5j)xX z#?Kzopv@P;V7Rs$YVr`RoJK+V+EC+g9$^A90FYyC>|Nz|>PT-QDF<-_OR;dOCdrtH z>~f|gJ+jo(mm0|f;+LY?zfca$SApxoovI`p^4 zQkyG7lGF-&=BH}AyS@$*}-`z1xzeoRu%Grx<#4Azi4lDi54*Z!EmhfrFVByLE* zBRclYbFuLCmd-f2YM617#A7@^Rnc0`i4p7{2x6sEWO2OW&F`L0{LGl_+V2%Rr{2JR z-pT+kM7kIme&HNRVBG7qKBGD)Bz7UxSk< zf7_&fobD$9GYyHDHrP<*deVJVuk0FjqSFcO`twI!s2e=|xp%uhPox)DqoBSs3-q78 z6UrPFM(j*?zEdw~oJ;L#a_H%{{6NFY_|lweT;IoxaE-k0U3%^N#?GpZPIEaBwxM`O zM@z79lAft@fVEDOuKnY8CbN`;V)Lv1aRHF$BTg9zt3gtRc+m#~<3?(zsrO&-hd5vN z^7~G>zmy#eP1GV3v2tfMo+OPoK^9hyqmGRhqfsyQaByQRpn}E9>48TT6_n@)cp4u; zWf}FShxa9Tjnb}f7&A-|^SQRlAbc=$FyXav7M|aW>+|#=Q^k5>Ae2kL7IpyR%sz z-9h=J!%bJ0pw0m^U@m>b>2|(K<1NWM3Ms)=Woit2YA3tT48mEvCqJt)azy>m6%NTh z47_2Vh&rCpD86ggYgT99?jbzD@Vi~FiMrbN&Su{B$M!SjpJA-ad^=`mYp7#9(JH!t z-LdK%L#dlXR)Qr@Pj+mbmLx;Vd1qJL7OmcarL|P*Kdf8{L*jg@Icn-4_5DA~4Ft6jS*<_V-Vo9+d0m0xZ{O(9{9LxJK zS8lJWjcNwO!1itl;;=Gb5VqFTd7M_^b!8%uUj zh@Mv^t{FCA4l|L%lDP@VxlbM%K24tYD+C2* z--kX1NU$-smSJ48nfSdD(zcis9@On_Zv;Dm9>T6tWhPdN_hml5w|5Wb{WJ9cKTEuH zbi!!r?@F6rIvsTy4!t?Euq;GsH|-vAD9M&u{8+a%X7YnbUp7Ewp!M#yXD7&(rC7N@%_FT z-)k?CIsasjOFgyrXBTu_3%}*Sa?$(dyE{KWvVNzCG;Y;=#t@vVRCcRg>#WB-mFxQ? zYu0&T8YIyEkyx%W-iv!@ zhM51*2d&!_rpJ*8X1v|{LhR+Ic!v)2pVv}m9^&UQr<4Qu@vb;~-}3_k zy_n9+Qly@f{ck8Uy7jwxFyPQtngTpPQ(laDe0bm_UpCMDEFLZxdCTs2?u=F^$ZoF| zf7H1}RWEVW+Ivc5I{I={JupN?#;&1B0o9km$ea%=cblJ@`+K^wl>RfJ#E*vU6U>dC zaKz`6?9txW{z zi9o%Q3!(@A;XY5sD!-`}v^QkbK?j`&T8QahdaXdKRWw$;iZ*gX2-V(i2TmXRQu?mqLLY8e@`iMG+x^7_cnRW=*1qH(yp$K zzvbE)zYd+3ry7RO->dP^)j8jk9>3>;P37L)PVh=aC8uWGf5N@4?Fa@zg)+#tO96jlAUcE|(U1^& zt3(8hc6XK%@7Aq-|A-Gq5-G`mhB1Q9sk!3}9Nr*-0?XZ1J(c)cPM6l>m+!vz-CvaZ zIpU_ep?Y{k`svUTjkahg034m>-BHdjSurwL98am;)rj9!$zr!RHqUDs#p&T#XWJtd zc16PUVrf5QR^}w@t51^HTQsadRKYjW9>;DYXi_d;(Q)uz#aoQ!Zz9d`?M}`oVGf9b zQn-gM?MV#>JGA?Foii#pKfPe~$Zo9G)H5|-wMf+r-C%u$9vh6LiL4BMzw9ML7;P0o zG=0_KXKs9ekHNQ-haa7El~^BU>~NaxX^5&6W^%h-JHDLzq13 z09|v#F1&Cl>rIh=pF{)ou&4`}8|PZ4Eb}q5Z}vbQJYR;}uP9U-_36*W+q3Tf&CnPV zO5b0vzNqGAiTE*RCPQ~52Sz^1Db4sC%HYOCdde9ZtWEss9hmR+=56Ntntr#39n>v_ zzdY4vB6g}Y;az+QY^*&W6&1L{kk}=fCGDwH@l%;$Cv0Y?X}P-&geRf>YsO(v^?AZO)ks#kUJ;M7c%#vjc>3tY#zg}(=spS z$y(eurAF<c-yiAM%vA$&0;A z)g;D#duq<(^|A*~I+cozM<=K^W^f6%c3Wy>k@nW~YcrQ#aCB1+KLU?m!wv-(xd!*z zreBF$a5rWEcG+QocD@d8w_{yA?&tw{zc-_P%r0@_GdJ&nfrISiwcG0`GU;Z=PiJY6CB zz{B8KzZv*hZF=f^-eNTRn{|cN%OP=dxh@9IOKt3A_rBs< z#TZy4g;=%a4t%pH=UwdBv3q%wgc18EJF#(GrD)#1oGIXL@J8Gjmbki%O@nqGGIyhRce=n(E{wVK=pJ3kD&mOUBj9dkKg=OG0H&oc=_y@)Gy8V+>Kkh#)44rY$&sqoJD)VQ&79c<21+?3O(!43KGx}8QAL_(}odbqL z?Ni@CR$dbX+B?N|v#+EBRz4Ud$OGOUk8OflI+eRGd(FZcV5@=!O%e?HfbqBXoZs55 zmM{oi=xXCliamtA#H+hnX-YcLm+hl}U8Z;4QitR0#h~=@yPReZ4*1?Ro`G0tFTJ+t z4p@s$hFq(s`tfi$0ZsoN6!9j(KLN!@h*?pAB*x48!tGm!dve?lrpHdcT~+Q)Z4A(A zYGePdyd3fiYOVREVPUR5hc@Xa)G>7pPbgUdiV_zs=at-U+Aa(B3Ov!*+xb3@^FtM} zD0Zt}`(*{*yw3BAn0!K1Hg)xxf*@@7gT!wk%)6z&_gON!>P^|PCulW;?hhrk=nQ*d zi(}?`xh+1bg;;%`)mjQO_R#z&r{%Kqx@2An9+2WNlYXBx_BKI@L! z#{=A=#S6uj`)9yJH_!4R-y!mcN-ur=yy@xFX0rWpMaV4r z_-hqp*;Z@z#5&B#W;sZ2{rTx2g~PN5mv%B>_VHngA4;V8NNRq@%@xrks@uW$3oE<& zHcvfo0BUuzQvt;?Ke z2nU_)>VFfNt-E8+1uVt z=6?Ymf;eCSmPrVH?3;?Dd!DB-=2m%*H8-kXD$b>nZ|1tg$+%SKKkwnKpPU8WA;Z7K zTwLVa(qF-IL;)BxLL2tFoq27>H&NTII(^oL?;SzOBqcnfEBp#$f>|E1854trelOSr z@1ov4;>McRh=Q+jJi{&?cT!D7M%<37hsjv9&ZW@L}zR9mxe z5%kZ(#4&7-N>-Rnd99)iAET~-RFDJ>@0{t;`#z^E;%pP%`2-CN+q*vhr2kVs2L!Qd zARL9B-rL%zc5+=^o@h-Z--y*?8$ArP0a#I2`^Ef$JOngSO-DTD+d4C9Sw1|)e?H@! zYg2A&Rbi}T_0Lm2Ba1t+D>ctiJR@p$JQw5(%vcQ`lEQx!Jo6#8_a&cj z%`EmqGjsNrYhgJ99FQHuvrdD6-neC*^ykO45XrQv%U3n6vJ6|;gQcCl3!dg3YpNRC z8S}V&_>VyRjPdeO9rNG4B@^mJf^~h&tB0S8`~>;${Vo2aWqv%}I;8L>qi~1kY0g5x z84TpRa_x9q)?wWLzb`GIA(tvsJz9FHjWJR5JI0B90t~8E?Cfm?&6is4EUg5>e!)Xf zgw{!h75&Tz=%O}obKNGpXI*`)LTZ~6gCcbo%l8YnAqit<_R^DKDCr!mvVPK0P)Tmf zAFECFgZw`m`}z3daixe}T~e=Ka%|G|TsWyQy4z7y>O4iue=}r`4FgY98$Q~?(%*`r zYEj9LuIdpt&HpuzjY_lE5U?#1GUJRSz#TgdONj8Z+K3-{0$ZGG-fknz9JoVC|KR<- zk4}Alhm!k5-85x_PLCs+xbOiB9o5mSzKP$T{k}#brc1 z^3=+Lv)fwf?*q@tk0Da`#9@If9WCs6NVHKx7Kmhi)CTHvpYbmCI;SZmpyD8nvgpC; zMrE8h;!Q4#>T%1e-YvRp#9N0zb|B&iM|%zfDk(?E5 z*+kbN0x3Q>7rj>%RDHKqRDUvG=q+}^f=~SQcmCq1XhhWQ>``|C!2x?=K;9F&8rG$G zWT(c6{!X&6a6lwa=!TE?$Q!#Ou|5x(s9YGmwb9rDoM28c?T30Xy{jVzp{%~y_c?La zj6U7WDwdl{dZ+5%lzAzVU2s(KNQzI#=N5i3OxVeV%>L|MF}+HAKSvhWD7bG8oUR%J z)uLLH0Y5cI(#pQ##pBTZR4;PU>*K(0lkO&j0GW&h#7Uf=+Y$kv%-}r~69ss}{n7D7|l+ zZsfc%joWSVkd|ejJC(n#pb2fx#EZh1w)CRR5BFW#g1?oH(R?(@*nv<%zqnoG`nx6x z3+MpM2|7|V#>%0)&Bpx3XDY<8{Nj30J5IK+>ap$aV{~g`G$XT)W!wLl@nliRZtd^` zdh+sn&#t@9I4k;<~g1X4F7fjGx+)QrHh|J zphiW)HatP+Q?fRwQ{Bqtf%NYaUd;ZhTWQ|VzKz>JB(`L|{jny>EIXI1LllJHwIl3i zYQyJ1*pi>87}CUdyxY}>M}vL7rcTk>61rthKDWL(Tq`EdvV6m2A~;` zkFJbQwP8njU5%2DApdN)jVFZ>5fN$!U+vxxgGasW#dP4g{cAMspQppnH6zijt}OYP z;nx|g{pVrHZI%2&K*IDxS%kl!vFS5JF)rO`JcVawvn}Y@nHPw4N>(fj$woU~`70VJ zOh0!qAk^84GIcdw8UC(ov5SKo?GB^(CVF4sWq=*DXPQVy*K1J7QfXo_KN_Uhw>byiOmt%1-Z;4~yO@dW?-SzXR<(sfd0M zjyFaV45LOY#%Cfk$R4PiH#4*69*^k()5{v}?nI63Lsz38 z&eiqqcf_`a-b=L3Lu~(v_%Pm+HzwNCYs_N==b+>mupfEE{TCnsm`O8+SK3DAldW%- zb@!_eNUWgWpdMAVzBjsbmW)M>wXrA~APdihAS;@9_s57s;XhAlquy)zvPE9UmrapD z(VTh*6yDm0KK{nFGrxjTK}v$(tYkN~Y~+dyTlq}=a;}(Av$$zvdm6DBZE#^qW=8be z>=oGC!j-9TxSw@=bKk}5!mw-|>Px&pr)cpV!xc^kpM1X8$tC3!grT{qosipR0@5$f zGx@n{Yvu`gl2{gniAh@h79{Z?oisr!)rPAe$gb`qXILIdHqMq(jJwfPv|Oir!ZSX( zxtk@6K66BzXpYyb&c9y_sbj+1gsQsXwBKc>lAO2hb97i$=0s)Q9ggqPN2e*f&9^%5 zKF~A3$sBvHAv#RYe?v&x&o`+>10=aG@;ufKe>Kv}H|zDDtfCml|MfUJ-P|((Nf*0V z#mD2Z+;3ig8~Vjw>TlHvg1{K|a~YnwXvVVge62bMVjQZCn2Tmi75@)=@ACV;o~L`aZHW~>QNF!7dnF!5PFGcT&or}PGpBUwcfP-GuD*OO@Avb(9(h3k z6L-aZ0ggZhY(Ksb&LzV`e*z~6wVW*ld4Ss0u>cp~rmZ@9-+D7o<#R(oS6SXT{%yGL z`>VF+b<4~so_UBC^rtDf#v|`@&4PwLmb zq2xsj*et_virn~XBJ65M0Zvvty*O{f-QGrBF4wE;UdmblI%#%wH@0sdnp~JO_-Nkj zNwe>6zuayl5j}p|h^|qHT9yl$GyJHw_K#m4irHTc#`5CJ z<}oK`6Mb^)MsL~!Q0oBXl;i$9Zj{T}jW4Bj9m^K} zx^lBZoqDDa%y5Mmbqi)`CI@=v8P5Atlq;KugtJk|@Y21o&sy;1=8!`v$BPdqj9hQ# zY~^=vyk}kC3(3dEf+PZ%~xiUR}YQVMw|PUk0F8w2hI^@=*~c<2LGL{^XNs1eq?<;6Lo zlv6GWWebt{Q^mTW*v?v4AW(|!tYLqB`I;&}DXyu7e42Ln^6|~Of%%@9$8)a5*hF3A z6Q-R5B=C;BP7Xd*&FjzawYP77=BIaaXKap$gll67cXUmm#`IuIc!TS?ul54-59z5- zl=wJ&WDkZANQ~z~ZDP-CrkNonI4QQDix+l+wDU9{x+n^B4de9y;KZ`&`&<*8o#Kv) zx&xIg$yMaV41Fg;v%;Q!Qj=&^_gcXy#rx)2=X zUsqV9)Km#_vg5l2;`1J1^pT8Xr5_J-WQK_JuDl1%EWA)?dTaCeCx8P2nR_x*uYDcs zgoPP6w(wS<4W2W+Xz=A3E$PJaqn;UT&l>lvqqb!3_u=l~tk#!JfP9>f0=-LLT|soa zy{{zhAq2`IPS%fL9$U<5V(&_|qtomA`xPt69eALqu0d-udjMn+-?m$vRL-?7&q%vC zhc~iH4-l@PnE=KbwxP(cBcyR2XFnJF^O_fQU;f7Cg;knHLci=|Kg-=}tL^8#$GmPa zbDzG#f86D#^EQP`{3`JKG;sjp*7nlAg7rX0@%aI+9&&lmmauyeadeq4UhO>Q%=;1j zaHpyPV+ZiX3;3PwW4c1INB@dVMRNcxJ^elAPDlX686zL*ff`i1nf2bj%F&p{IS3l- z%gi%4iIvAp#eMdA#%~KiQV4F80#&eWUGoSCH9o)s$c8P`&I!5!ZLZVIdtu4)Nxwk% zV!c9|s5er;Fk{y;ujLHn(n+(Qf7U2`Y3@iY#03%x0jomK3Dsd~GmkqTsifgAp0gLm zRJ-`bS56x=G&kk#G_a_g@Y+#5XkFGl!CJT>&jy^_!wUd>WNJmitR!ztEWkO}< zzW>~J4lD|>2!tOib3Nd|CF<o0rf6FdN{50BVWJ!dw)%%_iQJjUWYPt;K*OVoo8$T*s{JW=lQSc##%aK+4|&zBAyqfz!9H@K#o~vH zio{-^k%WdP`gO$2cId!^34#`|qZ0Xo^NQ#O{B(i>(VW>ivwRF$eQv(*pVuB20uINVjZsu)=ErEN z=VNyo5>FJCTyhELCTo2=R*?sd;cMn9RT4B%UjaPT%oj^>wCApF6U_U5x@%u+jBl8D z(aP{+$e|DZ^(53Fsq0u5lH>Br^Pp~^Usm4rIhpxLF>;O#1P`LV+1<1P|0Fb7E_ADVthow^=+0}mzn`%VG!fthL^C>q zyXs|*Z{*a?>a6Qg!6FhlMe~OFGWROcz@k86c?__qz6v-u@6K0G3;APS3xC|~TQf*7 zGL{16i~g)E1m_0J8>I*`YIEOOS(-fUSwFcz;q5y6iuyRD=do{w_@_p}d$;rV(k|yK z-xO`};!F~3!>{i`tgiRh*@XL*ar%O+3v?gzuB?q}w=o@i9)SjQFOHzvZhaSers?c6 zIMGk1%RkLS&X~vShx{75HHSvUcX62aCI$Pvr!jJ?{ZbpfCsV$m6_s#)N6uSuPJC3p z7)^8U4O;I^X=r-h=ssZ}wWM7L^e#4P^@2n@W`@(OBUDt^XS`l{04i1cK1a~}^1g4E z_fq)c6octD2(LL;2leR1^755aFy|p*&ca|>MFBJGVD>ij_-IZs;TG8&%=&=%u{CNh z&-Lt{n|)6L{%@UC6Eq)Tf98uY!fp**s&KF7q1{3QXd~GzXOpkIof5sw47}sPDCJOW z@BW6_VVAmop@)iMo?Jn>EzM&AfMLj8*XB$)5p{_ZWJ@m!kj7e^`-HRZ+pP+$o4~~w z;I%NN?2XZOW;>xx?p*}^w6S2cJEvQ9*8aK=n4eyN7+@CILpRvWn)&DXYmF$Lu=>Kj zYyP}%jPo}7>H5hTr3&NcZkYE4n6+u?x`kf0>rO=(ZSJ;@$nE!b7DWO@-aIVSjSYD7 zwnr>cI;UfCi_b6@F}aaVOyAKbJv+#3^R@hFAr`o9_nU>~Z=1|?M2H7rOG8<*{dN0hE?{Xu3yhKzeRSs$j+kd8$lv;-s7`AgD+P_H?=--$`UW*f zqB0Z%7|+%0m$l{$@LB&b&r!L2Zf3p7T<3ef^(gUSQ2)v;9POFmiu@yJ9N=f`nD@fJ z?^X?UPvPE}^A;> zrXJ(9b+J|h&o`_KT#Z`3h?bx0Ri|pyO(jp^lq2T zDUlDar0Wd}_0Z^^Vg7oZXZ`cJ?@-e_V7~1ib5wbt6GSnyt3TR>&3u$z=Gqs+GcE&(%rOhdBvl^(ilv=6l)qvN&f(}p|Gb9?PRDlUGt*}R%Qe-p(srZ`G34V0= zzYiJVjo@@wRzDZ-&FD=Dnhg+om5g*b=JYoRJ}X%zD^fu zXq}AmY`yQ2eyy})XCR}Af6QK`IinIfvmW|eU@%9)!!;^>?(q(FfO}fYG@5<0M$f*6 z=}xzT(?)>CeRZc~W&UovRk?Q$i<5s?uW(;}fUKUctZlwQ$!oK+5Ca$C zuXv_$kT&XRby!QNionV~qqbpzZHG)~cH0lvJ~#WS)GQP^?=MKS0%^KHM}a(AY2|YA z5$K8jHaZnvv%W&R{+GQsj=1aFx~YrT;*DI?=h|kt8=)jt}6Ur*U9zwD@++E z!!p&{TCS#0g5*QHVst3a*A4Y?Gz}aE`*OPDjW+Uq1HGg_^%Y5m$F=Ni4ltRd<)(oR zD4U*uE#v+}ocZCnl8uO=_*MAyv!`>9_viVT`>S`jinv@u2lw?Ho-6fZ2Ks5V;reZX zwT|HuZtt2US}Xjso>Pi< z_49}=!JqxvPrgh4`(OR*|F#6dTOEIEvMK(yV3`4pmT#Y|O~29KRzuwUo$tE8_g(rw z{QV|K|Ht&d`T2kJ-Otkh=~sUv&+cjaUHU)cSO3eeE@WE1V)9X@1$j?@*^EUPM<5lI z&j!Ef5%FR5Qt#r?bH z$9Mi;fAt4Z)>OGa{t|^@|HqHyr~g~}zo-Al*XR26r~Dh~KcD^!fA_oeU-^6ZsQ()N z;~W0{DgOO8@bAC*cfb49A0V6zPO)ExWmmM{DZk&PKTH41^yiA5{!vP#fB5*DzyEu` zm;QeG&vt?T+b{Be`M>!(^V9x|^bgbjXMXJ0Q-7}fUKhl_{hau>p7X1JF^u#4m+e@^ z-~H;Jn-9i!^UM4hUgr5%z09xv<*aDy65*+6tQ3FJmVXkBh5yRJ<~#q_-|e>_^Q|qv z{l;T{_}=py{RCh055NDK=^uRm9n-&wb2=ZYACBA4(!cfVzxdVP+N6HjX5qK(uix?O z$o}oW2g%}ikDq^Q#-@#5fBN10)qa-#?O$Om{@wTezyHI3@K5^A z-~D)Cex>}y7yc*yLf_#C>pxtl=^yFo&-E_AXaD`5{Q3LgHuy^)^V7e^vH0^3{nvT) zU-CY`a~J&1dH-Xa_x3l=`wv&*-}&{q|KSea{LatvuYdOb)qm#qe((DWV0-@4pZw$- z{)yt`+b@5a6(8J6>DS}t$Nu!EKQ&RHe#IDhnm_%P ze#_?5i_7fm7W?KG(YN92?}~3fJ}1uO7a}CSmC3jBw>qxsxWSKEamO`?tFf!=`L|7r zOYawW{U4t^Ur+wJo72DjPcM{zdZ8r0_(xtS zKMr+Y<7NJjnYB_k_0ns4n`f^*#=Y#vF&ImSulfIX)(rptZ_WSn)7E(0fAGWLm;CVb zzc5k$b(al~dD{H#mBVjLq5saRneVar=4@jaCb91NW8BFtrkx5@k>9?_f4r~1<_GE* zH2sSo?xJ6<{)*T6niv0iuk_<#e*7o%C;r37-~aK0e?NQu&T;!oW{m&zA3J0GEd48| zj9;}sd1DCLp0V1>{Z|nA--bW^w)pl(80r7$+t284fAVek`8-w3U;O7kY4OR_^d4R3*_7_bT%wN9w+0TFC55JiI^Jgs{^z|#a$nn>|K7jxKy!nsE z{Oi*G&vC&2!gcl=hxvCe?SJs&3HtwZX@B>_S^Cd@cskZ4|M1uI_7C&=fAz!9|1}om z-|r~?+aLb?@4SEbfBxR@WtX*a`cMjLQS+`vhihZ!0LQ%Y=3NZpTvylmPvMr*z_qSc zhIf)&`D6zS@Jft?!o*s?dZ!OkjVQzxf<%AIA#|+*W-+M`tJAX2-N&XHj`bx1McUtd ztojni8<6gI;yAy_YU8aBt_Szi3Unlt6?dQA>Q$j;vDySjD&JX`)1ojy%L?wzcySWq z&^28j6Oatkb^(=+`xz$u4pa z^ZC=$L>1D?e|UVa@BZq~OFS>jU2qk-$3rg8d(+@XGuiJ=eHyBif7ts(4}Aed&dB@q z_fJm8?NcRj{q$#fB2U2Xwmm5x4(o)KU+mX0@`vZqF;Iw-0)G-Vi(|1ny24&C#O5#n z*sNLCkN}{ueguQ`R#{LiuVYrnozz}#0~RirMRJPu|Uy6AXmX3yj|axV=O z5#!ns^Kt9C{RASdm?6w6S}yqpGB1>7K4YwpZ@_2M3OLBOlc-MzCUYs=#>a<9iZats z8%?vt@}U;`UN(cq)eD<{HqHb7+TBYaVN%9l0EP?-`3f+e6n#62 ze~8P&D~hE3WeZj1c8~0HG`2sIUfdQc!5E?-KgelKhE1JNh0U;!0?^Lwb5aMFXfjTD zx5Wb*UO^)JY;M@~2%Qo?K9zK5(56^~9y_dnPDk{35K60t0hjpl0|j>+gNQ=?8KK)c zLezP4(ig1BfAHYPk|kds_VJqJ)6u+ig1S@EJ>g8z_2&Bwfo=+y)d8C$tI(PBOQecz z-UzMvX7)VbSY&jv6Omh*S625=Z{jws>%3h-`{w&153o3|Z1~ZiHo*$P)j9)`lwv0F z*02n?uMbio0OUdrYL^f-_2`H})nD-?z_D88!ogQ9679Vsxw2*QvymU&P@vUT9Vzby zC9yv3Dw1eqzB!o*@#tU;%P(i~={@nT9Z3i>yY3Z@HdqS=cpYL!1tv!0SVInXEL&^2 z3)db}DafH*J;o(cu(b>cz=CX&_x>jC0SHSg_4uySZdpD20-+{qekgcKPUu~hc}UD? z2Lef${^>{r244skw4d(Q*f{Pb2?eluS)3j1kgO{tuDn^b@XQXI4Dtyvep!-@-fqb# zF%D64W2S}_0i(E@2x#(6K1t((ecat-dh)EWoYL|&ypSRJh{)xnXwki6?D*t7$Z+xEa4P|PdbM^-PE|4y3HCO^ zb`OZuX|3Y3hH^%p&g>aYnk(P~#{@-oFmhy9_h00?OCUWYg=>*3=IM2%5Z@^RU%zAd=EOSgrTasE1zLP-`LmO(DEl zD|oRWLGNU6f?=w@qUd%a<5;wpeI#ZSr=;9r-*;f=2XtA5O&-xIxj@jF)-Jxn_7P9 zm{!`qcMiiHU-DU^(8tpnAI>M1&M!B*saSHUCW|~UStTKI8aOST->=HgRNpS$2T3V# zJ*lt0&7)ur$Z2)_nJ`S71TiT6Y%7X4pI~n_pBQa>CI-6V?Oj=!C{67@g4jezTH}qY z^BAV&(^ID#v%Or0pciEj@idp8kY1x#_Cmji%Q!VjHX!(|Cyq2{0C7OmG58REs<>jOSb{cit@Qh$JmK>C58Zu*fAm2T%;ai=MM^l)i@tn6fi570n zrKj7Z(&Y<(189f+2;&kWJ9}4$!ouzo{=qW)CoFEKSG<)oNslaQ4Zj32upF%#9W|ZM zD28k4VD`XdHvuPUIy@q6h(>hoj1zp!464FVd=bvQHeAY zmLUJvFP#4-7F70C(ufw75|;1~}u zN)=@|wfq>d^lC_sy^6Yc=blRPG;welh$~t6#9^`pqny17=`& zV_g|;s{8OTkv_q|@YkoU2L-I8T{CWxctP!44wIAFH}TZ^Hk_eE&NbIe`+oucC_bnwgxKDTJphz>Jx*oZQ0E!r%v^<<8r!k zav=TW&+TxV3^yIn_2{}mmUH>H5&swFzZOxi2 zu}#X6+{X_DjcoTj(>ROp6d0=`P}(D!rV!h2WpbG&yfqac!#o+Oy2!T^RS;SD#Pr)- zk;R1Z0@Nu)+AD{4J1tKk(L!s?3prykc^_WR-qw_k{JPwqiIxkr`@RdCDF_K*%MMe# zfxl)07tX$1je!NQKoOh1)|YomeeC4Q8n_nVWW^gu)>p>C+ai1FuEnlUH9V1oP?L)p zNiZG-F@8lZDAz+?U2rEi2TKrWP__{ed?ZiOQ9jV8bcKinCdJ^hCkg5$>3ni(r+&8( z<-!Y061HT*7}#wiu1-Da*L5jIr3owID00vigW5s0sfS$#zX(PjQ0dSvUJQP*d?>MJ zN0;YrZ7?k5+`Xth^g6xK)xLLxJ{7T2sBOQKPvXPQGCewZbm5N2k`w~(431CD=Fc++ z0b978h$*uPu%=JYO-1X<`8Xfta#YnIq#fGd?q=XUZ2N?S`>i~Y2FA~46;t9~J}*Bc z)|8hHlJV(Pieu&>g>@-Y$Iwmz9~JAfVvuiYr#-_pMMjUC$MdV%oNp5h*h?wx=7)#n zzK}R9__s{A7PmLAyi4kx(?fLsAochdM4wmUlut~&W34Es$hmELHUZpv3q%r|WWmDR zIS)=ny!PQb?v|T$S3!GW;@m5iKakL_cvF;%LXCOzE(kT$*M%eX>-6nROin z(1B*;2_vbA9j-ba-|>1_CiUY{8xy<^(K5EjOZ^(s5k zCp)Z8uDp~m`OhUv{aiF#`|taNWr)Oeb9ChIX+lT>`r(srO?yAx9e*?o z=eAXlTGMaseC;7cJ0eKUv1Z)Ea&!fit4@#{74p^RE~?j7?W4(AurRTY#C}IO@G?{L z&@U3mi~$m4$vw6OjJ2Lirt%o@||1yiZh;vc+E6`{U`YhwEYso;PsY(tJ<5II-koG-8;B z&iJYb5=G8M^Qd#7TAF6Lf?k?6b(U#f*um~MOxE+T0@@6b|_f96+_V9>vPJgi7j@)*;sT)k+Nv>M<++N;h^#5AoDej|29VXvTsK6JfWB90{EumO ziuc~_1MBE6j;~=`KzC86X|mdxcqt*$DC<-`r|1pT2IsHx$v*3koA_E^Z7dEyJBZb_ zgj-&*VrvX3K@fQ&E>Xne#k3MZ#ev$>T#PNbD8)~lDizO|ih zxQ*f$vdv77Ex|Q@>DlX}YlGCMg9Zig#f_XC&PD|FGhgb!Lt_9v-|f`LEK1QzYfNs{ z3d`xT&W(0D_?_Mc6jhVv8MS~LNwm{LDRJx3Mj?duadTUU8tt@*t@2cab+6*++f?{dnUQaNi#;MPL7+LExgSLteJAtKh1bt+!mW%jIzNQ>jlc{`Q>n}OGh{5TGL#J*l)jSAe`&5^UG}`t@5UXTntBx zkV4Mi6-dCCl7*wh=5RuZL0OD|d>X%RIrFL&FaW!n|VT}}+$*U{9g>jdw8~E3H z|8Znt$_rVn=U${-l=1Nrcy>^{O<+r5`k)=Lcw~-8+zd^6Ef$wO|=_r}j6qUtixd5hPn z-AG3>%tZ6?YR5aL4yz@WH@5}FEC;`RHXx_$sg}Tc#;4O;f+CU=K$*uv?>RA3_t_iq z{c_zan&J%NC%;M$2DuG^+fj;6`^2SH95`tZb(Y*Ch9jfh5(VvA zV6{~t_S4S0Q}x~-02kvL*zIe70h^t0zG$zjKFS4+pqlg3Ty{$*UQ|`kh#`h_?Nqg| z=O%hz-yv&X=x%>I-Zs?rVb^K6^h}HlPS{96(Ax^woT_|(T1MNq$K>e7uH=fN<8qfH z*wUsMydCRW*)+ydZDT{V`ZBw&p7J@ zrOM<`lHGQ)h0i4=7L22YsFookG8=aZ*iNUzCW09;?iUCfy1IA6qTx*H2E_SxlUF3j zK!2`f{t3?E>O_dV-z~ZI!ak`-mu3;3tzAzB=~-0na}>9{Vfgpj#Hf(L~{6mWIlw1_2(FJ0O-kx7Q17|AU(sf7HqejE0qMbN8N zy#jpJva{mYEJ3DX!Uab2=Qv{JR_*BJ`OO-6ku_InoR8ggz!pEpF0`oR)ruRirde>| zfmycc0;1teiH7%*xb3*hCR*Mf-T3sJckM#zn_hxMHj}QMI+MIEUF*3sM0uHFxJ@0@ zNc4Bmbx@Rgi_K$2_vM;DGG6OUm+5ro;z97kU3ZJPDFps+o-Isn}>wuURC|P5~Vv-lz zO3xG~{9fIq(#KYzH?Dxp-l^~GxHqM7dyad=f!%T^N+KT;O}i`e?Q)9K7z=Q11L4^6 z^9V02VuBWXS1L<^1=76jSGCMG2oU8ZB()_sVX+7tPF-!A?T%U>E}}h80fxne@q4pd z?GlY{Lew4McS$egqG7vf>|$4bvTySpP1qio`Gt1-e7P)pW8m2vH^Mm%8LFzou7=*Ykd(@<{35~WcZNgiGN z>Erg;DcMyFWJG{&9rCW6Ix%>ZhnUJaB}T=bv;|pNtkk2jVOBZ5MO2t)S zrR^;YA6p*A8IZ+F+D$GUVWcD;I{VU4UoW( z2zdI2=J(6Jx(OHZ!^T`z?)TI|gCSx0ynb3?G^~Y*g6zeKw)8$r?Nww+H-5VCxx1lz z&A&90YrjmxZ{Ma&FBh3t$A8B*2!UWbl5k*q~wRp z>^rM$3982yH}2$qZ>R`6I%odtdHcF%}Lsk%ciN4ZFq&_;0j zF!_eYPx8_|r_rWJ^>r(CA--4My~T>WELLQW($mC)06cMeZ3=UP+e>cAjo1uB!oKOjdjw1u$W&ax zuNy6*!h8jn_2`+;D;JkhurS`t^#&vwlbO%Nlbr~i3SPFCmAmJJU`zn+-YydA8n9+W zcZ=3|&+%!7ZC_tjE-yhQfSqe)MLyy1Haej#ap*sk&?gknfXA7N>;>Etb?dc6Sh-~w zHfu>(6McL*@kO~8GBh)Kx#C=Civ_VSU6L@47=sId0QDFVor-s>RSoP#Kl&sm(i+ww zjg$;j3)M3w5N20Dh%HY|T0yO;ci^}ID5OX<1BN8qvghacdTagC-=6*TnR&vczNI)_Lk=?S-W>Aq2CSd#XfQ0tUV!-lz2sP(H0Rz&=87eQb;je{zOWVzp z#U^VpbUOr=S;QLr=St><1gQL*L8wF&IwN)r+wgkDd_A;7jh+#LXc%dz9*GtPVNi}7 zH2~>;?R!5%|7kfkAJk;>=tN!Jep}{~vU0E2&w9Ol7RQP#NFM>6+RZ;|rG)kcING-< zW&G}7fwv=2uf59K?un&QF+n`eR$Uf}Ks;jOyrC4VZ=XOI9w($9?J`?_S2?~70&JpS z0$(MQ96nkWXJvo!ubz7}dg?Lg!%`a7(_1sSz3gr6n)TVol-xm&N;`f>H`CmQ4YAXN zwHkclu?cI>xpLAKiK-cwQ1rVQVH;{OPnBpl^9X475f*LYj!y`npsMLP)@uEk+5wrx zZ*ijwz6Q0t`dK$?c7?d)#b?kLy~^JCyC4RB{*f2PeMMdu!_8yY$%@_Ord6D@*a5!O z)unM^D~F@pC0P6}ty4jiR#$T6+hgv~)K7LWeT*wH59x!;>k21s>ZCrOLin<<&nK|+ z@SbnOF$i(AaXq=~b+-sX>PIdjEq#y^v8*j@MpW%iBQrLswpHKig6}pHI^4y}Mt?A_YYM!K(&e5hVD7d6y=z5o0_=b(8GpF>E74n;I zI|C%biw*>jMroyVW_(t9;c>DD&O;u0bl)9W|^DuPn1GZ?6h2WFnjD z_#*fZG(UyTk`Hbt-FzE|?zK7!>u~L^@{ftMGE-ZJd$U&Ai(7PRoA~ZHq6M~Jdlt73 zgApM+wsE=fPJM0=18_!C97Vr+YJEmOriOhP3sj@GO9aU{nPEKyWdU3zDaLmz zK8AgYbXJCXh@azPr2$~sno_6TrE;XsftPgGC-qPO+Pga(xJ|$VY<*|CVqsl+?>Q;T{dQ^u2{`&&Q7jXynJI#`Xy z3RQ@AL1Fc6Gsj0Iww>)^D1EcYZucbR7A;r+4LaxH1y7b&0$I@^A<@ggZaV%|Fyuu9 z;5=yZ)AA^+LPZ<65|Mq$(_O6vi)JyP>EZUim0z3ts>eV^9vWS~?yB=!OSbGEq) zfZ(h$E$}ySSrVz*xohlcI%)@6p&py8tCyGj&}E*|-(@g5$}skTx4M}?2!y55lXii1 zk4xXsJ2Rgr>fLbrz0O;KH@)=`(xO1GDg6$|^H3Tw3^*DsIs!kkZI zVR3A!Aw9jEGwlE(6#3%jOdan#1QgNs*j#)U*UNgbGFJf-d1c}QtyA@*E(OJsU9+wq z04S`?^s(BCS?$qp_eQ;*S2$*{&UgyS;gy^yH0@>0F zc2pL8lh1v2sVDE-#89zw_(;WeV)d(RnWVgGz%!W}rhp9J_wHcGhBF?OT;JreQalw? z*(|wNavYpTPNBz*>bTBU2k4=7%_ z1~Rd5JpZFz>F4MGKFSm@7 z5&SAbOik&nQ-+>6-!rtn?%R)>4A9GH(eM!$NIY6b`QvG4okw!)fG|K~@&;%iodchm zhRLouL^MHEMJHS1(%-Q(7UJ6nkcMnZH}=xrIYTovijl@dw7nYCCt2LJV6<*`>>Udg z2`%g=e77~sjMy(2QlS^}^M2?<^X+LL#yg-z=R{{meDOpjplrEjsWWrEi0g}{9sv$f zw`=zPLOex(3K2?&q(`#cljpR`-esiGTHA`2ca2jvmvqpMhZ1cR zcMoSZE~nR+`St2*0{%m-SMp<|4-k1k^|U$G_G57(B1FR3@l|!7pvQMx6M=WOsNAoM z(W(1H9?P-dhbi?Mi9PcE(&PU zm{1%`uf8+xUX6KtR{+A)lS5o4y*hB?Qc;*}D~nI+suW@tJfpI>OU9L9ph9qBSjXJt z>hLG`c0~U_DJ4bFK8K#6PS;dsyY8r|clxq@Le<-LM+7z|q>D95PiYzxAJ2CCl2pDOKI-l*z2E4D@NT@#W52^VG7{8~cl}g?#510~g#fGnAyg;rG z;wbjRu#{U^5%q*=07Unnufwp~Jd_m_vh1c2qS3MKVp6Z?=fd>4SNg*4!du?s^nPYs zSFulP<@Kt3UV{H}6{hiRbBBp?JM@p!r36hwUeoX?cYtxO() zhDb1#H}@OrMFrVm<$HnrP>jgAH&gpT#`(b#f z+KcXf_<*<4vy|)YekY2ibwls}igk=JY=e+70#&-zVYtsVyTJUDyaJODjwP^hhJL)>ud#JHs#*_y4WzkG$ibZ3=%atnK4M%;CP>#@)2zUl1mJ0vm$uLOuMSK_vse3gmWVuHfN+t&yv>uED*8*>zDVI` zVVmVx^0@s#9p{_zL1Fs8EyJ*U?f65GMu|9Y5+hxp_gqBB=4!CbCS_9edN+D)T)=g+uJ+~?sD0dL<82T{tNG=b>f zCRf`#gc<_Vo8$8yLxckRWyx{K~#O!;j)*D*#Yf z51J$;xLbbuL@&E!H=d~;rE=O)=jTmI#UMLFOS-_KNY=I&KDuu|nj_OG?&am%Jre-R zp;lS#>He&HE83(4 z$3y7P2$Pn?>vGhy_xKrZ_pP(m!MuB%$@^0uHg^qWW5Odp(&rq#>TTvl(tRzs=gVt1 zsr$}Ekvn`P{us#`^a_p1-+{$r`g^-lvbO7XNJV;+$)3Bp%hBA>1MzWSuDI>CKD5-> zQJ31GuvBp*xfJs@(Q4EcSnmu)zql!yPbt&SU@gL>ayPqnaBo4GY%}S-FYbpC+xbFt zkVUM=EXPu`>NO9Y7uyg$#NqaGdEo&~po3#y?*{cTS`KBCx1o}Xjo<;A^A*NfxjI&NOIy1!p3pau``)d5ky3cW2)^u~rd zO*97x9WOTf-k*7qyHrO`;h(z<#4>b;xb;#Q%@Q&jSC!*OI$S^CabJm{4u<{LF>&;O zI3UA=rBCk`IW@=SUg~90M6=m4P}3WI)Z0-nq3ac+)WdPVAZ0mTA*ru6mY3wx-T?$M z>P-^vX;WE3(I+l&_pRf58c8~H=0i6uANdr~wae(D5m!q=zwDT8@$8M;5?C0wIXT$k zt%{9Q6?BC)B{CWnag7*32E${xyKEH+F(Vtaf-!qtx1W77^~c=-DEpQEc-I>=AWTUuUR2kODs*E;>%D!1E4jF zv&k9CCvZfbEAp6nIeWUz$r}ljQ+gcEU?W8pVV{#3({+nS`9MN6{|WBb3o+a_$d$Yn zhqd+27sL4w95iyxu(6w-b+KJ;91XjJ+`0m+a_@aZ-zfX@vz1@jQ!GY@1)eATe3ZQ| zoVVoT9QYckp|4?BxGnRoz`#4g0+cuZ?%U$1iw?_l0T!5AIW2< zT_@hYF4qbn-+`nYl)Y+SwtRiT{j6^Fjr-7IN-bICY+_M75sQw&$%W*I*==1I8QwTA zly0wbP?~huP$KpUaW6=MgMbF=)+0e;xWaMr^7g@3B;;kkhI$r#hjv;8}I1eO+N_ctUgMvDd7A zbZ|iR4H~xK*zek1wNm`n(vE~7X?K}loz8U|`$qIWdim?xp&J(ER26K@;Bf-irfY0n z>Jk{S=pr`^e8(5ILI+C00eT?6$3t(=8n&D41D}?7*{4Bu_et(`_G8D1b7orPpW8bT z*IPN_c~(lhC!_1RS6$#BXtpSZT*?qT!T{Wg9ev+%(DxUATEjWUe9|9d==y~Vehl^>%Hw?j;Y?odC4Ne zGS$cEEb8ZdL17!)TFP%KaTKC{6yUQ9H^MJXFQ2QaYtoFm&qKU)c`JUk+8HA8T$ySNV2%N zysPV?bp6e6I+i-^v9JG^qcho3REvV>2QdJpA1bYYA|Qy)=oFA%K;Y{uvZk-rtE|kF z%eiqPb_~QFC?MDmr|k5$E(y8Q!;xB53x+_smUhV=g$#POAE;{^f2he57%M;XWnlXg zxKUKu7W8RVcmbw24R`4UDQ{JX>5 zL$|D>nU{>)L`(lzuW^G5G`kX_vkS4j!@+{6?)}xnO~xut1D%S1-3gtF5TC;XCO3~D zwVB*%o;h=j8mJ|^(HrU+TN~w6sz+MkURb`sy=r_7wi`^rZDBQTSl%L;=*zPs*Mv~@ZKKuaXHALYX zXW|vcKJN7KsJaEeB+LktxYRA3-rJWWr5~7&e%+F;uGd`35KVJlm+s0Kbz4R+e;ENZ zV*iC%6V;B7Jk`Y_`SsM(81e4kE-7KVGGpFP;rEVO)cis0tXishL|sPF!Zq%SfYXr;NRm3{iM>YBGMWZK!yt?Uc>~@pP8XD~PQsTPO z{I&UM^z@rc3-bQ1Z}L$BZO9 z$8|ABOpm+SGAwRh-1`?Mp3JaYx&3s-SfnrtDq8C9h*K-KygTsdl(w^n+kQ^p^ZsR) zQori)8K-yV0Dxw-QaN|I;m;rT(Q9~_w4wcXcP9`9+OTLty3s!Z(%hU=i(v!Lmww=y zUs8=Io+f`^&khs3iZTxC@bqxqBiT@IE3o!;{7fBN)a-ksOm!uK(2tKvH8++W=3ms1 ze9~lpb%oG+b!9MObCL}z^R=4Kmpr~$dmAQ4tf#*~$9ni3G$91LQ}v!cckq}1^W3Qz zDyC4W*Du8{Rexy>ESvw(magxMcb;d@Hkl zy50T1D!vwpRpBh*Y;2Vr@+iCOp75+sqpBu%zYM}`6raR;i*IiQ)q)OWD1x#m1!?TH za9zH3&=H`DFQt8tQk>!bD-C|)9@czW(553e4peA^!p3}GDR@(t;W%G&`#2nRhqoKH9slQi z5uLlIt6r|gy9<1@IM&aCV*z#6Yf(>4aA&@QwmRcHzU(@0X9{lCKY=<>!p1GXM{Yq; z^&{db1W|d>Vf?AxEhk$sUgi4sPW++Qf2K zPvx^?`RAeYk6zv4erJEa3$lDVQHFMbaPjSK1{*SHxqe~ez&YEKBpEUe@WU?!3t?*o zo-qa?N4ySfgjDeeD>v9 zIN6>2AP)4B-zwlr&}QOfkNTWK0oxAP6UY{kmHS^gZw)#nYQJEnwfAN14Ab>YCE57% zC{)s4%~#4Wr+b@`8#5y0?_XYcUm}Sg1Bthk(Z+}XL|0#P4oR< zsbs3kXz#0^ZY1HAs4^$74%rNT{h?6w<6U;N1ns$UoIs96|59+p^fQ&~n<)d$+f=QM zT0+;{^o_{J)JPV6mEfr;{9CJPM6@P;n)$MqOP$4_-B|Cn7TA0adL&Beeo{XiobSq+9}`(>(L>WyG&DQ*3^L zvz=PTwWtlleH>>aLQYyk1rHnBpK#b0^(wk*6}aL@@!CmSKJ{jD(?qCUG0DyE4$nhGY>z}4d5txNG2SK>10du6C$Vf0Pz2IIdD zP5)@sn-kn&pHeKCb5D!meZqV^@cE7Dwb{XKk zBvmLaBhTQQT8~37UgA)XvmT*W8Or2U)uN|irt;f05JsZ>e9}gGpx*6w5W z@-t=cEa=yYd5o0?cSS>;-4G!hZ-jr>1yP7!L3#}p1t?T`hxF~6fQpAtjSs(ZjC@XZv*xbt}iglCdW>fj=YZirbYV2r=oc{R@b#K58%4!~u z?{}^5pIZF}J-a%-}tdGs*H(Zz$HY#r4~VW`t$;~Y?ft8t3JR#JiPXp$XL4tKuZXzvyH z1TL0}pDnYcE|k<;^>7A9?cDHq@bg>lxG=&yMd}9g#RNFeJ~`R7Ar2HeH(pkbj5sSy zHXNP=8KjwgGM>6?$qj*^l=gRTa-Y9~yOk7q<8;7CqAfLKPVra+Sfa{ao(LEODKs{u zHP{|G+0U{VJM^UF(%5>ah=8)*Y%9C!3mOC?tIM*iW?-e+2THTXQwo}|T(d`-52~K~1Q$V|0=lcv? z)3WWbFn2p~n`J%_`Uho4ku#Mdjy}fN-yV0N$RGTXfgd}Vf06W6*qTM9YU-oF&3-v@ z_Hv4)(D}J7&Q!bW_T}^b^_70g>DLvGLXQl)hL|CXSGh!cntnGN<(|*EK)3}V5+6h0 z)@fb}`Z_zMhT>BX9SI-kC+g(A3owXX#pC2pStg1CxlG0T)RU%VsfBSkYSmD^~t|c9uXRJbmOH_*<3%hm!}>kZokT%o_XKqXjvO7 zN|+T`kL8e8PD1q9Kakru<(Z^fw&-^*9&rhL3NrAc(E7JWp6s+ct*rR^Lh;-kI|)^V zm)H2k)p|;bk~43G(8ndsJVMl*XFG&r6b`keS~HBW!bJ5@Mg3>N4G66w&iwi)EXhqJ zGufZOk}ec>s;Ka*@waYT?>GaUkjKa>Y7!Ri^CiRk{0UF#6~#jiy9!XG$cG`W^^6`R|wy;#m0j&fH1yxaO_etfh#a}hjF1UDT4(3WO4Aq_~<)%bc( z1cOSfeRm2_q;V@Kw3D3#El+8^l~1=H5=YqOXoW*lh#V6+9M=<8Ci{&l%wG}Ye|pn{ z(VdMC{(Pvy&&{`S(^18GJ=^Owd>Pcjmhk+^;J~;*e95WIWCcGKtQDs_xdY8%{gO;{ zdkzPeu!_M+amd(>1TtwT~YhUu7t0 zitmmH%0fw9;lJB@GY!foDy>fgU?){&%E@iJi;i}(*SBXaSI{2GN2_rk6?)i#6`@#&*%+J|<8Rpftxyh>gbBz?-B(BIWXAbAaREz2* zj<;^kwKAs+|6d|3qieq>&b^^5D^R~wsp(T#_$DZMzP;)wR%V6|-?8KbU0H1+Pfl}A z0mzNoSJ!)Uj^2c5i?hyPi-G6y6FmI2IAd-XC8$>C4^p?4eTyMjs^tJ>^*(z{61ocSteXrlYPDSssvBrjzBr zx}m8JH`Aw^F`vk{2alRx9uB?C+Gv-L2PkgO4<(wfB28tKGYsH3D6rHCwBb+ivT&3hm{~c-CGulR3$aV-p7b z=cYs|;Ys}*37v+DsRAoUKZ4#2J!#YWaxUxYkH9 zl1$v)p>gg#^L*H6J3iLZRTZ!TEVg1G&cKui*b82onwE}YsuO7Q4O=>#?Sm)p-d~3{ z?N&xR&VTQ5a>!J0RSE#t+|S{OoQ3|=e`mOuEz=7N)Ks7sE%(pTtC3;oGC+IKBxE;( zWs~gMvlau99hLyu<7SJ_*{>m3-k&abRT9np4yVu_9)fkfX5O2|5OVP@j_ALzpU_a0 zfUihMc4D8BP8S{{ws>~3!H}D{Ca#Fd@Ez_$jL@ZYX1my2rYudo(zy45L!@IKC=)-j zesKEk?VwI1n0d4Hq|qfM-~HVpUig&eCZU!&G_XH|7k|nz*~EL zL}@M_S>vNc`a46d3#47g#Vd@kM}sEm8NF32eRyCc;Y%#|C`3 zZby)Q8el_*t)U-Gfgw&S&Qqd1zCZqLIS1lo@~Ce+z8=i)sqN1;{J7>pPsXvI2=8>u zD(^g^0Wjk)pWi;11L5`jP(BI}LwIf#MFz}^I%1>#{lM0W4l>O@hezN`X{Z>xdvOI* zzB9yk$ZU@kXjkQNxV^7n&)E#MAP7gkaMuwFw%l|<64cM(@;JV}9Tk_Xrr_cT5rjZSN6tzciW%$7y9$U zosZk3D)MjQ0^r}L5lZt2we3Y-T$zmUxqm$9AH1DECpDboqxyO1eUNY-0FIsWeZ z3Ft@2?`SzE2Y+Ip6S77>f6Ht5VDv4IG&Re8HNfBV!~?h20$x09X#V{H*s`xzQd(gL zVsd6i{xdJkn}hTI+75kj51ULg4&_Tdc4AO{6Z6#XpW1Yy2Z~7*;8mqheM^Sufd}RA zL1bf_J_jE4HJ$&>lhdi}-oy86sCPKVY)m2C4b|1TL9oVkfy5GWx+VGsS%tPne#K~J z2=DrNo@6Cd3xF`->2X!rgsp|P41X$kKW@Lv_*iyD!~A+ZF{`8Z$E^Dy732#rf@@!2 zb-gPKzx1L5KdK=k1Gdy-qKaa69P^D%}>gKbq#JxKd<>Wui5cVil$tEMHW5L%jJ0 zoy|q?)yY(WMX+|;HgyOT#w=X?q;up zTo-QIY!C1f7Dv-o?Tc{hscVf3SKmQrJ+q2EkT#8h*h8QkP~sRXbN5*ua5-Jxqx>AJ^7s{htU%3BFO z|LqX8P;$HhuG26HP1Ajx#F_Hp0fP~}|19EF-`)W2wcPH*!c}qFUw&ld>oBjDmTHmp zcGy&o$4;N{g`=&FSN#qXAL5@B1~2ooJul3wLyKRLQyH!{8b_njRKwZY+Sl-4b8DX9 zCYiu5F7W2)^sZS95yfAE`B{!P3QHpHq?JR5eHzSY{ij`yNUh#&wuZ@f28?Q#`e zCS2sAq)(mUqcazWk$p~pQ|0GuZ9Uwbm9FsbYGNc`#wke}S_|*@j&YgxN$xRc|2A+V ziica6{HW8ShuKXn{zkguecrOJV7l6<2$QWzj(rj*%gk;LeS5pqhhGGwzk({kfjpBZ zo^!~14`1S7rH|e_FzW{*$9f;~rthBMcSVPr_;uXK?_jad3ubeMiN74&WevW5gq-{~Pk-X-p2-vI`EtPX4D^7cPi!rD zmhFN;Y#53%OCBmZ&vjqTdq;VjU&bF#k+zfhZS|A#jK>+g zaA#*ymaStYoj^j>=?9a~C6$HumWh&0c03>=X3%gYQW}~|b%j0LK44d};a#U2ivMVM zIw6;Kzc`{TIfcr@b#0dog7|v>qH57C>NKm{8JAFg;W*=y*l#h6K{X;H z2fl#i5{0`YGv?uecYj<+pG2>1SI-rFYxax;D$?{eUw1dr?%A`8zHEMPY$%rQt6I3| zNYSDGbh;ZIPQ$&vr*lrcRhVHSz6Otn;Se%~GG^|hOS0>O{45wTs=FeAMK#tqsZo8% zlmm%jb*kRu&7V5!%;jGkFU{lBy$`66q?nLIJ?g~YO?|i8_k%@Z2{>WT{<)23S~gqy zi0f7;{lqv`E4qkbDx^e*|7;aI2-KMF+=o2MoN>E&v3a$hXIAUu7no?MZ7b3%J*Ua& zc(+$?V58~O0>FoGnfoqxxXJm9?E0>6o+~cUVV2b<%Y9%m&>8&A zS#p`_>;Ap|*p>YzSaiXr2i@;NUnBA*oewl)70P{9>@+Q`7vwD7Qr?_POHygPKGP1!+;nx=TU|ZG zbMB&aMlrA(!3BH_mPD6(a;9LDIujad=V5@sCFXbssPfOLfh}yk;J)ya@HJ-yTBBix zG*XyFrMy>l60RMZxqHC1PozWT1Utu4rQ5MAe9yj!s5Z8jmhT7|5XhP7BA}z~@Eezc zkM~hNd%q7&*Y8iM^jK+p)EgZ|?2z!1A2-l~(Ir?KfAOnst(8eFR@=(Tuj;e(cH%po zTsQLNU`H%7=D=I~uJ(nlTM54lu#DEdnl4T|F9*N zUORx{J3D919dp?YPpdz*lBeH5&CUnn+j8iq?4yg!CIm-w&9_d#bxI!>lu6Qs9E|8d z7w+7owx5mS`&;TE%J#iUaL_~GHK;+M12=-nbut^^H7nu_&8@nFfw_L}$B92aM~+@_ zXE>f|paLJKF9BC}DvRqr+gB#ifN#LUi;ff@^VS9FO8GFkSdNtK2Z>E@+p<_WaxC=;cl2+qc2drfJUPa{?x&LD zZ_hmC&*Vlb1C4^god2DgHHv^~%c6*VJVw5v>@Y0E>28+F&iNEYMoFdA^y=X}Bd}Rq zj+dWyj@X#KEMT8kRhk^u12qbzVmJ=j8BfdM8>MmpkK9NX6^OynDbQNB?<3ZnClC~k zZ<3a;`Cfx1W2gDCn4-f$usr#CqO?7|Tqat@o`}qE3qG$og$p*{YpYBh=IeZk{&KK5z+H!lflG!}^ zY!~I;niwUGx>1B%Stn!mupQycH^Ip}3u~0uSX;PxY9d(Q!+2JYvRUZe?#5pJeAmvi zq>bg3ZO+}*UNDfIucHD8655E5lRoLtdOL;E%zy>eTz=Irv} zf}^Pl-uVWbp)Om&z>|F(&c7tIa?c0+?swZ1N?T057*{_5104Ogw;kq>{3>MPw5O6JQtyYlVE>LuV;39`oEd(eVm{+b z*#uKx{r9aZ6Rmt{hZmmr`sez!MTF-<2L^4;-N3*#BIeHGzO82LER1IHweU}58Q5;O zY9C<8yfKVJzOjFJhvyP;ZqyJoMQ@)z*yB^?ck0$`D?uj3`UMWXtV?~sXB9i*8nI#~ zUDijC*F36O8h80!r%?KAlkeX9w^cq&>gh^gveRtMpEE7b@r)p*(pm>HMkwQ;z%6Fkj#V}U!6%IxnhFk%r7IJa!Nv>deJ^z ztLobi_3IOyU)QpCU`$2G+dN%f&x{&tByL;&EAtvT1a5%5y!6ef7o5{84jAH z&jO;L9u#apJ>qZYt?#Xi3u_ZRe6P#-vs(NZG~)MJw6|uK@Id)Fk|JckulCmK-s&_R zMpQ)`&xiPHyvLETE1UE@2y3K|%Gw=9EgERD0syBp`eT@@zK@7MVoL&sV6@GFSc_5I2(DWLl)0KMqn8T`OF$=q})_>SK0hCxqQQya4k0c}!rl`Rv;+ zR>oSMk3C{&M};-O@A^#51=rEDCl6k++9SB=@DFscyYS`_3lRczuQN#LX{!1KxRdC0atI zPQ!GuQYt}PI&Q%%Ke8f7Vy)+8XI34I9Hoyqyl5TkTCGo~4t)?)5kn zpLye-uLlr(gerI9Sl!p;3ZDRh<;czIYkv4a+$$|zdH|1by+49=ix@%jcF&~Df~>rk z0>Ue0AP*&9{YIt0_XYj5vIM5vP(xI{n_U?kBT>#Da6%%VTkwgL*z+Mn@W1^KEwZBv zj88%Qb$}Q>PrLY3S||K`f`L3Y;Bd*4?k=wE{evN=fLptbJu=Vuc z4L`g|CH`dZ>u#EL{( zZQS7vX<{x`w^nK0#Zg1}$Ju<~K8WOM>!_V$VvK#_&_llF2Se$Fe z0X$O643qXN#^(O>?6+bZfIq`MO@jrcXtB+x+ioz#t$If<{Rm0uN`E-m4Wd&LM-i>^ zyXvI>ZWwk>oeDILP^A`8x2MyOb_e0Z7W!P$KSAF)>_y=yT$Yv7{CDjTJo?Up&#~Kr z*Q30A81JFMRjyE9;rj$ru+xfE&fTN{%knMA8s60XgHIXhVgtw5xtcPfW?atSoNz4* z{Ji=TIq_mQ@BN0psTMv~HF}?;dOoe8);!6$RzP&rR#*N!S_G;-<$O;*x6L#HUjFTr zT*;ee`Fv@1ps#Is<{s+rfk;Ms`{NI&_fuoONqD=P>U2E6vX`!YhX6-AY`817&OM_d_fz!XY38s-RUVcH$iO+$8%3W{#)N%;{gmMZZ_L~~i6e}dE z;35=_?HU7#@b!=VZfalg$ej_XztA_Sqs{1dy5LUiTHm2a4~2ER$GCGsRJU6oTN)To z-_fD22xEE9`F1e*rG3YhvE{pysfD_A3}s*m4cLHLrrP=CiC_3cb*hhy(x=E%Y7$%- z;tNXVt%Ksif9_swU)J`z-OG4*zW~VZaG2cp)sg8{A*6PMg65J(bY_4lI98l?2PKh= z3z1nBzz(BBo|cXB{61TO{C(j5rtP0D-=v;uPsGDxbi-`x8Mx34Zh7W@kX`PbrgHfs zlIm^0-;WrrC!T7}i&YnE49@i?b^BIfhqs(zN3RBBO=-<~#Qy7^3g-u*JcRB7sK|mw zdm5mYXE8I|LB=`%h#dgFPt3+$_4vE5QA$F}t|SUJv0ioDC_Rr4&SbRAd^iY5$e~r| zlmhYh_?C(B`OJHJCWvg~OT-C42{((|UNq`w!0YQ^ z)_SK_<{sha+Mhi(@JA8#GiJQ!p;M4%c+tM>^?3F%!E95p$-P#RDYqLF#?NYyz=mic zW*m~LPX4CsJ5-4FbzET&Q15TniFjal7iA zI?Aep)R|^56XH;x?ty5cNpR^$N%PO~&W0@p%Gi#7V3YNYbEXHg5p*rs?~UWr5NJkt zd{|czqjw!6XR4a)6egLxG=cE`aV~!xDetm@I4c}35Uiy$c`ux5|Bh3r+Uu>q5yp19 z^bx`SI^r1%@Y8!6p6ezs43FTLbfAA{;uAL4%X&1noz9=Kz{|An6M++kvgVJ1y{ogP zT-gv)5k%{0fx+$r#>b5dPOfS?`|xTuZl)|aHS+L{iY)u05eOa@3Vs&F=b`|%uFCV_ zNP@$a<037I0QjaleL@`kZf9xvmw~J6>`@$Bq=%#QYMlgg-3$2bH^K3K>FEuO+@f8IxH;?T5U`>(Q0ipdqn|f-4^?fS7`zHfTG3)to zo*9nhi?_x?!25W@z35BMPxTu8?V=E1;}(=Rxq$n1u2d_o88H39l$ZcGMensZ#+c}c zH>p$PLd5MF`E?xLdYQ5v{u}gU+~iD#B|p`nV@(#7Rv4vn_^=K0tVl9beo;iLAFVt@ z(*Mda5R1e^cDZ;m6%Lh#2pN&t+*QUEsuxo(+8UNN%pI*=h6Wc}=2c@@^$Ja*r0a;9 zMazx8KieIaOD2bvt+*c80tzy&8G&uxS0K(oTH|+F`FNDT=X=x7dI0Tj=o_%NSGpHo z=v<1`Lyl)VWc;xoL9Wr>IKL6A3>rwUM;h3ro%3DYUB z_a(=D>n6Xt+>T)0kM;ZmAh+n^Wvs(z$P7gCrxS?B=w3ehFnGnEYkDzmrW={i8?Jy+ z&pJk+--EoAGcA2ul^e1CxcdwmNy^gWkPOW~qjJAq8;2ITy(x_{eBLyWE@M~yt@EFtC3$4@b-Gkd_b!k|O;DER z8;jv6eGhRh#T#OoB6ysfXgJlW%6ClD*{#9C!U$dPb^PA+`sIL4Bx^SX{55|ch!O0U zA08*^go*Se+IiT22h4UK;~1gC0%mjs>yFeFv&s4~<6go`E^EB`3O1wZ@JGPnn>%o5 zlXkpxs5E?;PJ`mLnyqV|gQ_Q|RqMAq%u!*y?JotOYnS90>zq_TG^p+Trsyq&B$GSXaWR2rlB=8;?kz&C%Gzna_K}UBGM|t}S=T%FbvLps78=JcQ`EU|9gS)@A)W z2|dp_ejl*@SVc63tUfX z|K8qkKbo;v(YGgEv;kbISL9~iZd3q{h38mEDg}J)i@zV-6?+45z_aq=cksjN5i4U) z(xa;m@NFi#Pbs|Ea{1}2%cCm}r$ZQC7=N)XtlD;#+(`>FHHH#>8+3-eO>^}yZW4rz z$r!=8<6MxiS-017TgA;2jYfK!=Q$*4BUiCIqR&q8OOt**y|g%p^y^#i)D!K7x6}F< zp(~tE{Uds8vP+2hN7wUVA11Dcj3_cf(=NP;qHmx5 z3Gnu~3zc4}JtU#u@0#N;N!hC*Rz=MBWKwJCt6)-&biGLZWm{p{LGl66S^o=>rFR%gQOkH+L9E;Lf3df5{ffLW3>f44hD*BK2w(byLtr4l(5h-czCr zpuug#WzWC4ehpk{p`FXV$moJ>`~v&P#niWAcVvmpCt>jZ3XQp8NI!DMRmqOB@^<9A zLx(BUYHB;gz8Q(sX_h^E1N)vd&qph+~A!%^Puio$lAbE zD>tiFy$EydzqjXpAKef;O0_-#bdY$Z9qq!9khLy^E=+7`D25H2|HumsupYDIy47Ft zko%Zn;BSXv7%oY#2&!qWQNw2CJMX;f-{a5s$AiK=v{s__I|xqjD@{2Ts|uh~xDri4 zChaW#4U{Gy!N~ddtfb`Dl_p+GaB(z9eWi}Y-IhkT6mj-=FPJ%|e%(*N2a+&64=^eo z7z%)m2Ou{j>cC!Dj<#R-80vMsU#6!N2erBm3crDCOaYJg%}oTedq4g;LZI5H?jk=p zH^btZiO~gfY(;C{!IqE-4l>){`|P2W7VAoz^X{vJLoFf>>b5gO;YIW~p0}Sdm zSQy?q?EB|@DR-C0u2Sz13M4{kgC<5X=N29op>y?26`RX7GQ(T3>1W68Kn#qO;`llS z8!spzJ__E}t1hSh#0&dMU$i=1>t4bnQJ(fjrE$|&KKk?a4yQVK0J!u{wRR4<3omuM zg|n;_N+OiZk2c=XW-1RXq!P-I-RB8I;vR*W^%0Z``MvB(Vvca*6379_f!oe-pB;Ab zo4pf`J^V(?*`oIJRisYC%m?0T9@BC={&`)K7#wT-{C_}9>|ST#>7zG!4tKvW4b^8U zsb=SYeikaXO7mj#Ft-d%AsiM!erD)vDJ)*E=+DkSp>6`k!q1Tl+A02CmWG>rpx;t% z2DG|rjHlN#OW$cOK0ptlV0?Z4pacchp2SgHVz}GR>9vVq=OMybOMwKb{+6if>ni(c zcpC-%1sgtjSxFU{uqQixjQJ&=V>SX0*n-Do$$?CHeX-67l2JGH$XSuOI-Pd>&FJEF z>xJu{j>+4a+C=(d64+b4;d$4!BbteI)N0)>kdKp&D{KJP=eR6%0)WHx{MQ&qsIMq31Ha61$^5#Rp2eaqJJN!mRkqc4WK$gS zYOc<0Ne+suqR%>1If=@CL@xfY)t?N3J+bF3*@_N6-b4W-4L^Mrj4Zj1{nLGzQKqDI zB~9i#clY_r=6?wJ_XPg`W030O$PcKIgZ~_R6~d^%>I4n^HNaw* zTNE#bLhKyU!*+gx`GG#NBiIOyT_4ZMS=z}-e&cq|A$!guAbtCb{>pObWP`9vBio)SP*Isk5B`)a^3W{%*K|^eSFlsBYd3n2teJ{WaO{fIxU=Mzo!H z0B3adXm}9G^h8Enul~AmVz`N;C%`@bjQaHxlnucxY9yc>isJG!vL+WD3`F_LcemYp z_Q!zHVq(-tEo#Sab9hd*Y}m!S)W2Ph`7 zKpfY7a4J7m2p$11(1J`H)ggWc{i=3+&xd;z40P+6rfF5xDjh62iE4z3MYO=dYWGV8 zccbYtv3hu>VN|C1jfhM-h|gkFNF3J8#7lQiM9h8pt<-nnt?}v&`{Uz0-XJIRryuif z=xcdB_h5H}lyxu~Y;9S<2%8UO1!w=6=?A;SKf=Jzc@tk$#>!^D2ffLCs83Dto_rE^ z%7?BHr786BbF1ak{)z&^_cVeKh{s(OiEDQ!>g02=AQ}Oj=U4}A-QXDh0AZ2Tm*?6V zP)>9&I?VTZ2j)U~DQlIriTj7*AyBs!cRu{_g@7_&YMOI6u9gCai9LyVu~3 zFB*;}$5)gLd5!zamR%&$Cy;qjx+^m_YwHkC%RxzW*4D~^+3fW%JwI9c$<8&if5)a;iGD;51wAK>O23lEG= zHA>FjeLqUbvy7iAkI{jlH1O7G?Dai=TWxdcxP9U)kw*s2U>F~ll>+;|rJHU?;Ua7E zB(to445PkwU}D#Bl^L@)c%YYb4{&W0#n&GecrTOXU?ju3{IX7x-hAE99~pcv`BXeGqqJ%a=EG#_s(pOtGc(#*Mh3eeBTOgosAz2NFyrqWfNk(*>P}gS(%f zH~$35E_q$N;bnrFHrF+NFEaaS-2~tsBYpOvE1ZgVs4~N;k?G=-m7AH_ck-Ts&rv3J zS|%nFJJ?ob-!B-4xHSE7JLu=QNm@;!y!_RK)$uD`C#K)+hvi-pZC(K7;UbsUjq26z~35VU9 z3q3y~AkkJ4Cgbt(Nh5aVtTpAYXZPX~Wfa2YVM03+O!Q6I#%RB&wMYwa#llCvc5TT!gX`TSCLuH)i_f^Mp`(S+yi$on( zwy2-Im*n-brLhXzd<1aqtDne|7{jO)#M${K>`FWH57HmTcH)h*^c>^Iu*(i1jD=c% z3@#V2KE`mES9x%WCIKwqNq5g9biD$Uh132(a5iWvv+E1rq>h43v&ycIgmC&31q;~a z+YVQVpBW=zhE=@2n$FgDetO~o!Y@u`=lt#UP_9+2@)Ybg@w&fnx?Y3K3(PL<9?M`? z?FYmor*H8ps>^PQ1hAEq7uv4!(FgOoZch4)>ti&09&<`1NMD(Q>a}7#x}W)nWrnz6 za>*F>d-U$Z_x(iq702bmHwWbSaJdt=szUyr=*oK~#L;dl*dt0>j%rDyY20tiAwJOQ zWiLF~Qn#Mf&FrXmnT`mcf6B?$L3em*@ZA?YMSD`EF%3303Ho%tg^SM!>69s%j#ukq zChZXFmzVkA{sPagWrm!;D4$%ZhUv0UZ~BFe*o7d50&&)MHQ@D0&aArr#>( z+i~yZj#^tOF^UD~+MTu=zBO}?0vM-o0lI|-i({UQ5j$aDv~ra?qldYqE!H7hIR@BX zkPxtY;Ue2%TU1m9)q#5R$VS~id+_PO`ds{NFqaTTchPa>p84KAt$XifyAqRG(8$Ld z{NM-#6t@ZcT$meoUN>MP;U)Br6?}#^FFq;6=XT_IL6P<=OF@f~17+ zWDN&giseMy_~WkXC7h#ey0Pq?5?i|WZf{se8?^)v<49gN-FnwAH1s7yjMgU3=6>}A z3|i2P2-(6p-JpReTHx1w-bM{x;OlP^-$n@C5_FLxdLbu;;|}A|T;00{^*PqANW*4w znuT4aR|owf3FSq9Usi~G&`#!MsPtGJeMo!=VW`_so;qA7cCX70o&<@uRWf;tTKRZ% zdTnX01%7I_Bz4YEu!Y1x+-V*}Q4(uQk|(h+vsg{SVv4*RjXFa!klVW1iE zgn#RAPTkx&NG|Xai>Vxrbb8=$U>Fa)=_itk_g+{P2%UyLq`Ohp*;A9wE(GCjYh zdv&9&xY*-8QRGv^Ud!}eIaDR7fNNvwm`bIRROMKK?IOp@p>n8H&agoTf`c{u6dXBm z4-^DNL{LNoK^;0096E9=2oAmK>$SRj^#OLn2E`BF_j}&=eV%&iN&fjC?)$oaS0nF* z$$7ighRtF0p^8`1WKR_WXQSAD?zxd9q&)6F=V!L3i^{zYqq#fX%UeDv0Kr@x(D)tn z62a?4A~&&~?fBpq2jisgj*iavEPpsR>-{ZOY(ypv4S3z~;i{Lr9tZS=*rgYQ6^E#Q zn+J7x5Z<*mm(vBZmxN}vuibGP;s$l?2e3%sH9ITpB2!K(0F!?!Ym-#AzAu5|I|Ph< z>xlw<_PoG^Ys~fTpaJX}K5X*Ij&Q3Y?-8kYW=c)*!M)Be7BvkcGal^a-bCixAa<6S zpn=mQ6-pv*b-+^lkzySjg$RWC6Pt$;KbkKFlR1K; zf&|JT{Ddh~INKuwgvsNLj_)Lrw=KFyfzchJj0Kzs{npnRdiUMEeQ@!$fn|UhBqu{q zxlG><2xbS101+wksOd?{hI{$uvLN^DQ6Y8=s5Yhw=`*Kn%h5-wb6Lbb9;nKm<@0IS zGBDBJK3xvLKF1E&pMWN00va%Vrc?VS#ri7ichmqfqF@c1_l%@E3@rF8c#e@3KDH;z^Tnvr$i*pH#D`#+a^@&ieOw*GnD7Ci4Ha?ZPVKUy6cPXAG9hG zcZHQvFYn=z>!E-_!whKQ2Ji!4-3D`YX@bXA>=}r&oCXK+DLw1RcGi>%dgEbO-n-SF zz9+rlQ#gf!)pW5mb^AQra)iny9#~My;YLqSkSnso>Sdm2@f!A`!hCllEQ19w`RWHH z>}+t5o{{|qFnbsw?0O?*IyOfs^YHIP7T}Bw`z**)Ljl{r7>qpqOs{JsHYrx$zlwQtuj7 zXhXc>*!QvTBp2B_H`<{_IQk(7HmFQFA9(YzhA{KkMa!!$%=l=(mhlYE$;;w4 ztWjL1O)6N5K6M^GUeA$ro?^wPPS{e&$;Y9QKOzuNCbh zIt^N(*uPz%EJk-=4tASW)z%diOKaNB_j1WYkSHKJD9d16@CqFaG(6 zV50JZUfttdKDE!}A)4KYcMt6C;=uuD?c|^foEFahF4j~KQg0U|SIOGO%N|5VF1)>S z(fnlH^>t?u89mKdf}o*PUF6$lo0)Pd!wlfpaTJ(7s-1`Ffp^0;VPBOqYDlB*eZ)cd zuvA*%Nz@@jx*G8rnHF1RHH36QL_#P-J37TZ9104Oy6Aeh1HWLnrD)J;l1|2sJ>KCB z$JTl(!oHqZn&T%X4Xpcx862g?A~w#uuY-4Jo4te*kunp2ckK)CZZ;G%LC z1oShfBW2}UwCZ&46c}zSTF$QTez$n#{*{%3k7KbNmq&uST;%P$K?ejm@llOhHFE~K z3%uWPxAh3B*-9fX`kX5r*L9HPKPV|n)g8XQE#0KE3oSV|4LU?T| zeiE0HdGMKOdE|sXh;%(%y^DR2WtN486y~9YYiT4{^S1l}%FAu*ESgo&&~!+Edh{=r z*a=guIO5&RC{|w%a>Y?`SKc+RIP*KsCiKr;x$Xz}E|BH!Jgn~8A2ofqy9&cDbFV>v zrPg`4I~=L~OO09eSi);}u1s!a-M85csgne@o|z)492v9PAT&+wy4PxCFRS%<*Hu@j zVY)*krGv&x;Rs_N)#R&buYM2vSvqc(MHS{3sxZP}W*-y_IbZ||d4h{|JjB>C(?jwG z1vI;OC>|M+?PW#*^qq-K=4O9y^=Mi;6Odu~imi;=gODD4RxAGT$jE~s;y!5asR3Ky zFl3z=AU)*C&I%xt2j>H2GvH3gYZ;jE6>%R+sVjH;5{2E@?JBT)Ybwz1q4u_X5hx3M za-4j6`F(yiuCc$i*O9eYb0x=*N0@enCar_@c%ip8I|~ncO}ST%AmG<&&aZoI$*l}n zro4{%k++@QV6go`$f2MG11U$kDf}NmJTVVWHWKN{$L@i!GIjCERhy7zdoQjWHQd1J zSlr?vybcyipF2}x2*Ey*q`tf0@noLwu~N+ZhUqf8e^^1^A4PAEHO42L-DqtQllhGo zxgzrv{GpN6`D3lZ^FrLtsXfmF_vq#_I37~@R=k|`ZVd~7VM_Y-VZd0=_NM*JLcl|b zsCOL%jjA{f3;d^NyILHOvFT0>1s&3$7j|lB?8A6B4DcY@V}Z6YR!QVEknp0cE?zvg zvrn&)3v)HGQUoQap``v07@EC+Ji#zf>%S1t4rrbOY9Lmd2A3&5pFOBfQ+`^hr(?NK zoz2T9Z;iV_q!ONrZSs~(zl*r_jVaUZGrhgn=zGeaU~iD#%f+$sbxluJMo(eVUhXjm z)GW9rWF$OJ_Omg3C)f=z1PGDJOJBwZ$0R*#tcX0@fyzy8d+#I+rFv#Ll$>n!Lz?$7 zUMB@^hgL^q_TmK?!S~p)QDRRX^e%*S?Yg!b5%OVKiKVBqam}wa)f2~WHO7=P)0c%Ovw!`+(f9zLE%&07!U?CTIo_jHeRW$zx)9v~E()BM`2t)kqg3nV6y<#pwW zi-|^v+=<-l)^;PV-)tqAXY`kdJLui$mLpl-x*J^!J#d*jGS$kroL-0P zSd%m}lo1~TYIYEpBxxofW8Z`0ufvWiOOI_xzTMhl!toSp1^ZN+P$OlaKDy%^H47C= z=kO)K_l^u3mfiP(d7STZ+M)S}4Eg7|_cl;`1MvVSN0%tbQ#iDB+I*&!e2ezZntlM= za$TCx_X!lnk0)#PLI-=Ncqa#z$jOJ{@MaFsXyH9hYThh!J+1)b*S4=M9V)G-y)95xpmtcccs55 zyyRKpl1r1Tc86VTv21z2METuR_m{Z$ZpvY|2Bj^e10?BvJf#!mTjS>pX&|#E6GYQb zu0G1w#|Frm%MP`*2e>DLyXjK;2s_miPOIZ5CmKpSMynZw*gU{~pJ6SjN*!gj*0a~O zJSR`4dWfk%A8U=(&tMv#+JkdJ6+85~x$9`GnMb>rxay*B@PwOwylPGK%J52w;4sbw z`ECv@{f5HMiH1)O>PZrl_mf|pmm{rB`LZ4o@>gd69f!Bdo)cRaro z-A2u!uL?%*ViG$H)Bv95Ehwz5IpV-fgcB{9=$W2BL)jkV#E>=nX&8qPE_ESq_s8*- z+;9}=Z{)Ut*jj=unc30@M6nn#Au(>M+WD%|-j^4gqaJCOanr(2RDl4EC&?3r1SVK= zOD1}!Y@)Vu+4iH6bS!<&XdeyE_<|81`X6ybQoPHVKCdW!5l%JM&H;*nSSEM%gsw{i z!fehc1lm^>-&`#W3vrgBt$(v2GM-njM)M3FJz|F9lLBog_I}!LUArl>?2}q-bC_0D zd2-#mB=>KNJMH4f#y(rmewPa5aZU624owZ`Q@$qh&8kmWWZ9_k6H2`z5E~US>0Bh7 zrklG-{|p3k%~3ZEogOCt73TLNz3}Dh(jbHsNq#V<>jGQS-{#AC-S3B(R-Df^c+fa8 zQNVpG?djngMK1(oFBnpjSZ}*N?X2RZ^z~2*;IW$Mq{r|5E(52=BI50$- zldNv7);BsKQ{<9%tCL)I14tto4uLc5!H5gDP5320@HkQ6Fe9BVj5F-);l5n(5%rFz zU^f@6>Ej^?xG6%!t%aUKb)uU2X`jy&g)B?RSOEXm{Hc)Y8*%wu%mG#GJxcP&CBesFg!M{Vc>7kdczV!yB(gdsr7E@FSFvlj^AkzSU_ zDNx(vOHWXb^k}EAtKx|8GI>Hc4oxbJeaj9ikEE)PNjjq)S6iZS(Y3iO2ewN#Qhc^( z|6CJqq~bLi;u@g;k}h`?6Dxd-bQM_P28)xD1~~l z=DRYFcl#jbEjb|0d!bPtPr|(put9qkM0khbuUE+>B3ZvK8S+)2uZlWqVzN7dd+pm0 zo%8ddCm>>6CqYi4q(KG6ooK+3Xw|X-r*$9tj~<*bVS?i5{o0UxtX@5#Lr+S1Y!>8d z3%1P42yQ?fHvlVsx1L}}JD41yyZ#2}K3Yy6*8pb8a^G|i_bfPe8{?F04@5H&(@S|7 z@$Cfe8k_II>pkJ>0rT<%=Q_n2yqM(hXrGm5-@K-okt-ZGdsnDlVh6ggQi2bCN}#8$ zGBIyl?Sjxm7{vEg2A1$HA|En;^tE!e0yIsVFc$B&K77K?na%CcyK%4OWy|@WPYPPb@swdRIGoFq0(}G=`$A(-kLwroOkmwbeINT-Weu*w zWeQu~+$jJQta3ym??yk}3Oq<4jjEu1OOXEd|QQxGv^K!;*>rp zNx3`owZ=2sd8ho;P^5BZYJ)nljR^N$bqOoS(U1r_nlP>&GC@Ra(lO8|%C z;5m8@&m|dmK0zl=*(X5)HqwaNgEOv@=m1`h(TSqLUs-@`kBnt7LKumc6p+Pp<)d5X z`ny5esD0T(R1x2rukwD2nA?jQ-at!d!CvOO4cx_zha6tmdlKH--4S}EB{pn;sO^+* zTU>D&m`FS{Ai-=IQv}WD86hfzc8{|?^aw`I5zg%`km2-3J?CMYDRSOkW0B76K4ctf zhvrO9-`|ei_8;dI2xnA5P>@OVLy>2XO*FP}{fPR9+>lHKM8pJEt_}(N#(zl2#9p2J zD`*CfkE62#yywX0C`MwiN zO_~ZaY7ygpJY*`PKuxy2de7}Wy;85{Ju(O8LEhQB(7Z$c0HxqaDipz6XWc%pn$rhu zyLT|~s7LL@dx!EGYNMrmV~+>L{%jdB?6DCI)FY4@5-%M0;q}f3)8PRd_0w*PwDjVe z=MRso!EHm#D-}Y&;th5ShW4};e;a}|KxJnF_I~PRA0bT00~}STt)pC=nIF+I$)+Ji zwap>>3)p%$_nVp`(yypyAe_%vnj{whdCl@%|pbt}lCF3db zn(E$9reU1HdLMmdXv^pD@V!7iYsbkHR@Z5nfG9!WPJDX`&B9*bR7gq>C7+!jea{uz z22NY=2Gmmkf1Ctkx*Y1}-Q+XBLh%Ov2{;a0uHqkoy>L>6T9A3E5w8tiaBr^m_3gMQ zh_Bx;gp1_#&#D4CkAE9dxT-FQoUr`&F?_@!;=Ul-$SFYWl;KO=&8~+O2OVA?56`bu z%M2e60hte?3-{O)bd$VA-6MgQ9ET^tOZE}CIFhM7UPpC*pk(WfkPrwix3US_TDgOE zcf+RWDBdoya(sk0aa}!LwGlMPjBJvbv7AuL)zu97>2gFg@_XgY9?Mqfe9pBth0xku z;jqjhGFBKF8q_C@=4QA#HK1Qm*GAY&Xt$o%;he&`MpQ=*n9ai~pGenCEa%!>f~>~q z=)AqVJEQKI-PpdEn zI^Io&38>sL8h2n}VykiWeMaz%Lb!u`k2Bb~YOL4x@yOwdQkpq@we71;=trWSY@4PH zr3TJun&X>K4N%FK@^1Cf2*K@-tPva?y0t7_JiluU|ETAm!I8T6PibVgvXCE8o8n-Z zHgxgw>{ck`lErdrxm)iSNi(ch^oWpd1gup~vqycZn~eRf*r~;0aexDMIL|iT+etU( zZHGEgCvG^lK955N&!SgW5cMThyFnVZORcW7aIX6Gaem_P{v1U}tyo?q(F+34I+~K8 z3(|8#qK|0_jcuuLtMHll8h`6-XuW(N3 zCiBfHVEVeo3Qr!{Ko1hW@4!cr&kMTrz=Lh3n==r_? zb)i$S_)_+Uy}`WUZCQa0BsB~I2zFpSXwgu6=TA|!|CD1?GrRm52+mBTrWCm{el9gz z3s#IYd4jBPnmZdle}1WyI#xIw6f#`?dy_m>SYdbArt*tbB)2NsaIW7}8?`a@`M4)= zu3+K|(ZxrZ+P=Ve_;7T34NpsEe(K9-)0WV6bb$I^+0PrgKND{xo_Ab1d`mf>tIcBU z@yK_ERF!x`7qDLvKiXdHm(@LL6QtyXXLSW+aN|R)HH!i*33(N~s_I3V$bB{iZ+2~V z2P@?;r)}luWUbpdwGdpKy9+r4F2yY~t6`33BLI((U?5fVL)?PTZ$JPi0moF7hg*q` z2RttK2q3IwDRvZsC?=(f$m0EG-Y1y2n;=;LMexP(ey}VfoVP84FV=!|THo%+-AW+y zfygQsrz>5)fZbXQ($u#yG@*}uzub#-c^raxh)b%@d23*n%hr1Gcsg3IaVq4KytUIn zOdV@Kg{|PCR#w5+M3Yl{co@V8|CpUrpS!C5q9BWM{Zi{V+50K4s7l|Y7T zGW)B)*21$(Xg)=*&|J2;#N3^|*@njk`(_SlD*~!n0!uw2_nDyoXb~AuuiUG-aA4v| z0P0<{k~{YAT^4UUjy~`4xO3)*_5FBer#ol9<%5;!V6<5n=t8zz-#qhu6F5;O1&0y*9kZT&%G zgEJ{ft1nt&%H6KCPcMxFgB-;_S%xiF1)@gTNEA2;RYkk_Hb*!_obFuQkC?=PlT!GR z);CUVksJg$BKrTn&c#cYDg@+@!FAk=+oTh^%SLqs*}HIyzf$)GEDERKnnHevmieVP zyODN4_MuO_H>nYMAmiVaHv;33Eo8Q4hSfsX9G?8*+b%v%Y6&>xKvk*;U|vJmBtp#<>Eo*FmAzw z;2X%Au3ne$c`)n6CTN5}z`OolJnkVrcPd!V4tqkiR}`Q5xI!(0R_5*v57vtp24I27 zioOWxx2<|%J;Yw+=o#7a^R$l52Y;!KYpCE=MamD0eClslD^L20C7F0VGk>{^vm38X z5Bjb70>(}9z9av}GdU<7^)wz;Kilrum_Cis0i7WljI-_j?8MIqK+fhQJ9-lmRy-tx z6rxCF4iD7tHfM*LL#Htkv&Ij^j1rmG$O`Xm{cTRI&+Oq=8$JEcX-_zW*k06sLz z!1pqXgPn^O?b+-J{)jAdWB_cCVL^`J@vcrVBN=8xJJX|AL~{VwAZ+3(PG$7W+GcBb zRp9A5qEDXvMzdZ>9FlIzZrADBozqQQ6n*bt70#?b-_Ky3H3IUA?u<}853jVP+TuMlj)ExB8{)x!>8 zhpBsRdC66|dBh&TlFHUxFTtZxCr2jW`aGtNaD1IZB*U)Hq`NJT2lk3$A@qIQ9LaKe za~`3rN;#UG)uVaXrwBe4H{0WuxjUhLjh6u$pKZB;on`$A^Fzg}Iw5DtN@m$Suj9BW z64tytQLnMt$#`jQH=Y-kWTC`89^g&X_~h`GNSxqE7*|Kn4i5>aNYKXSX9S!L>UWB` zZ+q+6h7(RcjtfYpj=k1N!B+l6DAf?x@Q8)YwVdIvQE}XvBU?Qg;5tX`DZ}%jCJ+}G z(WdEV9+(If=V1AkxKO&xmRC<$D&kzGr?ipyHt7bTHSMY3bKHF?y zO|`mSxo0yS*!21)7w!9XrBX^A;K6Tb>#^aj^=H@vb?NPQBJ#poaTT9!dTIhgO8l61 zj~8nXBay>j*H&5i`^J58R_V33t$8l=xXNomyluny^X!Q1aF-1D*KNDzb)z_?`-K;H zeTwUhN8XkTj7EYCxa-O9$JYe!S>sn~`o8r=@wH#gS1tK^tTFG_UK?Bqh)#nwZsNW^csYy+d9ideJwkEMWbz^xdWN8<3hN& zXPb4mu*ea)@OIc##d(OY=ovRRvz<(aaTu`}<#zt;G}HsGmPXvB?fGGW7dR@}opf<) zpevs?cl0PQ(@v@L9i54&R1gsD+r)5ojXs5g{P}UnaqQAS#e$jfV zYj_qprl0Ki8pPUzSx8!8QVz+ZKrUP#m0g29-gx#P#XTdQgR1 zCk(Xq-mzST8}b<22+)yIPJ`DOO>vm0Jt&uZ4NFXIY&Zilhrxs!!w}wNiU1Y~>L9LS zi1($Qq+pCdt6qhV6W?oUl;K3P;USeda*kr zX5(CIEn;H|cDqM+cf8_R&@?Bjyi^1K&hWBG-q@iL_Nj`Vna$t`fNb=w3Va5WscX)( z-1m251X1;bc%FXnDJhmng&7i)hXkN)YXmAjM(_0qy?5`M zyN#HxD|P7=0s<9*Ys4_g8_PJ|kHI{qTWU825inPwTnzFM1`6r{~TJ@ci~h3sn9$6q@R23y7f_8hS@fd?nnuF zo}?OyB1=PynHk*kX7(P^6t9KTc5^H0S1i@@h^$WHZh^7WpA;L$fVGKjJ-HkoFCOBq zmC+VdV7k`)vA4|btZ??Ya|7|r8Cb)E?GuHak)W>k__MxyHIewpnLk2kUPo#f#)}2X z1TS2++&)4x^~OS$RqlEcp88cgG&th}(L}?DDs`* zIwUT*LG5Y3F59!G@3?CJUbEOJiGG)7Lc8B9jg9vOjGj*j_`~_{p%f&-F|%|qmn=Qz!{)df%w%mE9DNK6NiEF zqFVbLrMkuILKi3RSDWbyxjI$Ijfh+lq^jHH%cjn8FC*o~vXy&}ymiZO#FS3GgDCUX+!ztWBoTVkL3d$b0UwT0( zWnq=~hoMfxj0lDUkduXJHt5|=#P!v=Tix@ubk(5%9)GX9Lr-pKUKo*?k?+yv=Qna* z2E8_gIT1f%ctTjf^QCs}TAozoQ7CmC@;7If(^7_RxI!P5vd5X~?4EX|wi{myMclRO zRNZ-OZz65YxM!RJ?8)Zd8-!bu_vdR+)HZhK@B7hr@jiGTm}d;f<_*ibCFG#@?brdi zmL1IE>L8iSoOe|ra@?^(aade<`XG$@XZtD|;pq2zdrlNS-&lG;Q~fM}IA>yv1Xt%g zgGp^x8&l9J_o$p@aNus5_o#Ykv;1h@JZ&wP%-jm*yV!qnu?)|ULoA^)o+TO%3x`uI z)#zgm3}uq0z|<`pUV|=8f&RI;_aMKZ|1!Lm&DQzUXaG#;r_`{cZdTE~J|PTT{6d15 zw>C83sT(E+j|u{1&6&WlTwvZ8Xc-plJrV#DqHkgDM2*iKR)`-T^{n9{hCpov3X4^r z=pvAWI&W0g2J35JdUT5eb%9!bps*n;nWG4^;(WHnJlLfNcMX3nh=SO!TXV(qX>t7^ zEjF6^3=)kb@MfaS|9y3vs`0 zspoW~?#)ujNVR$M+pFmnvb}>n2AmS6i8O&Fw+4tUudRT7ih_6z@J)?HDDP;_P>4j_ zucY}^rMKmNF{Pw}zUTT?&GI%WyVNK%diA*-iH*Ns_qFm^=;1jNr({f(%+fgHv98uNUyc9t_PlmriZF`>^vP;14!hB9aa%l(($05DgROe2r z1o{9QY)G6C)Cl^KX-})o;}|)p0XWF1=q>kzTu-zON&q3-cf@@1=jLPftI71Cwn`n!!d3ArHGOt!n%d`}czW&&*Yv%O;Eh|N$5NC7iC+yvx)ury1 zhF6EOg~^S{;ftjt(wi{u;<&qeD`^jW6|lGS zl$gOf=&O8W5yBQx-3;*9$Nh4-h^w5-Pl!ip-ThsZd{-E;yn_saVlQdL_7DgvM@`=(d?S> zFB}+h5WV7jrEoQ0mDxH-7pq67pFQ7|dJ7Y|z@hr1S8SEZk9sbt&X1%BZEG+`;8=Ol z1Yb)&?aZ$f_*cw9D)g}W(S~XolHizL*2$MiV{Kmy_6c^+Mu@3~R6Rppj_hXr-YK<5 z)r|GD4nfVoBv6Py9>D_ICSuzPm_4c+o*o5QPVRv6?k3WLQZ?u{?T-{B`a4{OHiGR3 z`@lSUp@yJ_52=mYrKq+(iyJUukFK;3EhGYmz>|HQkig+ChsGxt^+hAZ2b^7DgzovU z)+hsK769ABRi4Dh2zB&BY7nly%bQ`yQMZ(EL=&U}eP;sP=bllYHgws$o&Kr8x=@r0 z!a6G5L2VDtlHvKrCSG?#7s22A%cgk+Ju;$uN|!dt7HUS;CFdA3k&qWq+D&WW894Xx z(f6)6ziu)RZ;&ck_C&;@wo=a7Dpx6Gvz0h@f(XN<+pWj080UOLBX{gIJRbbuTb30t zxbX=uainX(j*%80C!>@0xgpe>muN=(ATt27A)&;s?K7W{1GBl42pnD2raK(=33cV1 zS;K~uO=eJ1vymM<+%uo2a}clRnArpnbA4=_3`XxKMg*KB!%RfIRAZVqaa5E{$Zo>YJ} z>$W963CPVwlRhtzZjwl&+^7gHDZd#Gb+U4ov8%zI+BXympMy;b@|C?B!!oS!c*e2U z5uCo#pOi>w$YWHPF&b>_aW}2MlK63xOv{iY&qzA2ccDY8?6 zLrTYv&s{@l;YrY|E^xaS$-!Uw7+kGH|@hO2;KmkYhn1$MOj( zBEoOLT6`B*E4=2V2AH@#r)@^s69zAg8H`1dMY-_9hq~f8^WJ;n7J~Mg8OXRG@Ak`k zNw&$Y<4fzV)EwRZ3a!}Vj4XvdR!~^lo;UGoqr4Ns6dAlIL75Qa96WF~OM<3nou%h7 zpd-W(!krtZu84GaG7;{nmIgiHy+!o5)J?ECLq-geXA3n3)SZL6c@pFrOD9q{v8Hu# zgp%cMY6VjusdKjo$d_3|ebKvoCWF%kE35rDP3WdXLwAhAXiQ>KsNNrN55wqcrwKyU zUGEUh!O7^Q1tp_dC|X zq5nwoYMsYwX;83cphSk)Rc@6IxF_^Fo#5y9S(d!m{6ZcEJu(xlV?Ujv5l`Ae5^5Zj z`}#O4R7-;`6P?-CZZF0QT0Mm0S=a*;yBp#$OBFydAA!VZo**96U)JLK!jy#_?llRr zWn^?Y;p<|zXD~OS`4jmLSYst_Lf5w93EXy} zkPYajteTn=rF5JRnZftI*^tm=v2g25!pEke&}p1cbFugG(dGsL-w*HA8>`PtsV{&( z;}3HMcwFuO_VwH%yR03ez?XSDx5~UMq&Auh_)eZbk8A%54CvTm{jeF2J}^dc>*|!eq{&5X$}>>GeTsvf8W2=I#yA~ zlasd0?e){oTN|IFjtla;>(GZ*pZ_IY9a`PQ>eO9hPY3&Db#nACI|qpRfz78^F6GiG z0m2e=i>f|t5Q?n#J|1ufAlwOh1s(S-L2f0p5_}<6cqmL6rNL3R8L0{6kZ?JcU-{nY zqLEy_8A1Ce1S{%%?IDm(=bVxo9@D(w|GxMpf0iG&}%JW zE(nrYRGX8BfjV&l5XnuhcQTQ@Kx*gC$!p0m;d?y0r&jE0_=vhliU`RK#Aw>&Lo>^d zt=kP7Vy}tuPx`t&!qbRbmsUa#&YI8X@8;6Kp=VTD0Ya)V|g=L%+;XKMh6M^cY6 z)wf`>9H#73f+D#ghNdh(sy$3Pv@v8$0?&=D@*V)shx^j&4>B7Uu6R7SwX_jyk>o27 zgqSW)<~XE|UA?amOH1HB3ZFgkKpm?4#OuZ)$Yc%$aZpNPJ8W`IfM{!DO1_!s{Q$iO zK`dkdvnoXx2^d>*W#+h1wyOxfN_pn zk|+`R#n^mA6%K z#nr>1;=QG}&n=+>D$!9Y_T^QNd`l$ey1oYwF26#oYqLuBJw}hTMwBEBlghw5Go~&; z@Z*@=Yuj$!y_akGkjY?gX@PekQ4RRrS|FtD>${eTJAE!%uU3_+rmle;j`M zZ|u7K{W<<0cdbhna)mzBXumSqyoulcP@>cB7k2kJpMUkUAOF4oB}$_Lltge@y?U^nd>8ef{oT{!#kRr2p(c_%Zz#{vqD#zlaZhz^{K9zy1~c`d9zK zkH7glb>B68_iH4qRNar4KkU<=r~h&Ki_4Gczm^i|KcD|+fA|M~kp5x%PxXQS`!Djp z`hW3tzF+nq;nV;9-+uZ}U;T^AAM`=|`(GCS-k1I6p9|yH>(|}f#6SM#pZ;EtAHT2k zE4m$*e-9V@`*Zx!Z*FQm{_u*sKmPpijH|c>67C28hcx?i^|STM&ks1-m-w4k zT|Iy3T0f7&u5RZ)`Jt5MO*?;NQ{e@xky-9z9QSu-Dc9i_?X5n4@{omcBKOK2LPj|on7pe5SKmTTU|8n}_ zS3gj{r0Jh^_~8A^KfhH!XDN#M#m|10WY0hO!T)|*^Xh(y7Etr5yU)*m@iTw=<@bL7 zy!(?M0we|hYE9wuUQO!%iuxt{CqKl|GY;!l-Tvy2i$BKe{PfjnJ>n~Wy4AQ^|8IT! zKfCll-J<^+xACt$Tz}zGr%vjoNJ#iz@)K^-|Mh3L9na@aPuO32F#pZpd&0h7w#DcD zqu<`C|MRzBjyv^_es?2&J4gH{zy0%nimBmG=eGaixBvey-T&q9{=pw)_Ex)()aCT7 zztgB{Sn0uf;v+Z2Z~OHQC7JJ^EZ>v9A879V=ty@nU_2^fjj`AvV$#EJ30Bi=V5MP^r$F_DRS;eUqKLJv;6d-{oWCH>8jp z#IhN`{|1xO>u>}8yV6!s!YxrmqbU{ReEoIEl|FApt!=(EE2vIlWPq!j!({M;2?*NS z=fk(u>n$ziYz!)5eK?+H;&Ht_#|~(>Q+-7YslCp2^^)H|#{+kXdhTk6UI2G2UHRy} zz3;C!B3C<9yj`@{BiJ1(eb7CUPw)-27z>iS=&?(}%8{_E54qZq6k|WE0={BpUX zD07cb6|25pBkBcr*r7LW)V$g`%?%4fgkH&o_CIgQZRw0=PTrZa(9#kFKDPsV?n+w0 znci*fL4wSfKk`uQd39|h0PmNyHdCqb9H*7xyl-oRmG`C+%KmGcwx2=`)A7Y25k2M% zdbi)Z-r1*j1Bjp_KPR-j&w%*nov0#AO+E`$P9!QPVP{mRGKyHU5M-CvY^pfU$bN4{j&i*s}`N-1E?juW=ijgJQhRn)`4sJtXzDe%0N>#x7Sd-%h)Z z#gS|{3DL>uaQ#^Fu`kzR+hd#fRC@8mw+zD#Z$IAO<#P;N>WRm8$`dI{2)#*hNs@7b zP(bM`mN@)p{1ZuSO|0A9S1imkG6D^YAGXY207yShI~X^)5hxuAbrZm8$%71CnnrMg8j30e_A-tDNWSbkou~!>%{;5m7W!f2p99zqc*hf=)^#wM z_tk1Q#BZ$|QPo||C*Q9ekG+20?{}Wvz3qMJ`T`;*IMov*0LSMWqzB63w7++IO$)Si z%_$z*Q>?bxoD=}{+TX%@}x;q&s|J%@5!Y}2ZT>GCr z)jFN}`9{yu&TT*n<{QO2U)88co1#B-f2;B7DSyMW^0#L1+VPl%7ju*Zs4F0({!SdmVcY|?k#o{g0UuWP$3n5Zgvrg|v zsTa{zhrxXZ(K@_$Q$+DT%&bg8l|%~@izIiM$rr>(M*Z?Aqeo}lo2RcltN2cj-KFjM zq>R5q)GT|9@t1w#y7wBqj?1biI>SKaLgg_i>5bgU?bC_3Ws-rcTW2aGKQY{mUOw#^9HbniDHGE^3w2b|1;r?~>WpAU}xPUC^Xe@L3a z&OUoOK6OMrp^kS!_uOK`hE$Yr-^)k*OzV9sUfTCVR-*B&!#T9)-g%8lpne%BFd)#t zrR|mIMysV+?~ss`twiBDEka!wPJ&#Z+yCdr*57)(-)o;QN@)A;Nl|WqA<2uuMupI- zdQ-=&yUOESqQ5opdJa{&P5BD&N4X)OS<}}POpSJQuh6vHfifS8%o>9eT||V%VQ?0w z$6oyoPBlDXaBjR?Ki`{u@qNw%kmFz@0=h%Y(agZyilse3%{_RkearRbJ5F!w?QtaL z_xWW!bh-rAE-W|$+ROX;${`^Ii?D4)V*HF1BIDZe0WFS%n5Br}s;)QqGdU+HxuKi- z7&D_e>R4VdCt^&(3gw7$SoQ8*6gCT7$J&P7a0p#Zk;4=Bu3EOv;brJdOgV2Knk{g{u?ZtpE!8N``M#Jj!KZsZ*19U}WUCScyXZcPB4?N%moXyt$+P^3P;*vL=5)&) z0k-?#z+-*AxgybT69Wn%_DqdRArNom%vV9XH z5O2k`Xitd^R*}W83*YqiBhS3~ry5_afwwkWJA`rdJ63t(r?Gnc|Ib)0dSf{2m>}SA{-*J|ZZUt{G(ZEu z_2I_7`#f%tc0RsqUKF;GSUjelT_sJ-tbvj^LG7Hc@^KhAqCV^cz_nv! z^uddNysYxUbk*U--DP@@JrWOd7l0C5+ND>w<#y0QA45pkAn!cCKi}zyMdz8j;lPc+hgr z3l006AQvXQu9!1fA|)K(d%Tx{@Z1JZ>e zH0!nA_l!t}~<2yXI|dNJa-nTH6K z&Uejeal4b9vMD7HJ;1GnQ^6C~>tkC6{!jO-5=uDAspn-VnNuizPS-fHN`nPX<{xMO zu=F_qr58#P8B8{X!&8^n&GUpFaPE)yTphjZ;W-N+Y&tyfI5+Q3_D^R0VT;vKK2UE~ z_$zyk4*0qi#?yf|_xqE^8E9?Du1GDpdY%9J{fk)HV)%$opWQ}(9E#@Ak1IyJ1!0Ne zxPCrWO$fvLpY37T*(rkCXOFf_1X=xUyZV2~dzYT)`8>}{uxzm(AvU*WGd<&;aT1?f zu!!x%j^k4jCw7cj`0UuR6Q3P#m@QJTSi>7YNUV?$8zdx>!n>`T3<`4xJIMNzG-ATM#rja z_UdJo*w#oma-=zKKKn4M+>_SFefo4}nG4|1d5KxH$hJ0b#;f;X4wZI~rgOo%tcqXH z3JB!+z%JrVizDo@bSn|CcgC*Z+x?bdlMyxV58`Z#DppJZ3> zH{7jqUvXvdeCwZ59;_6D5}WUG6QfFK)Va&?i7+qX(8r}WZ=D+S&Cd_6Wh+H!V`TjX z@%oLE0lYaM+;gnP!g)c&BDXmv(nCopcY8?d>qcsy1F{UvCO69PRK_o-7=QCHwo~fvxWC5NRYmp7&O_b9l?`K;QpmpND>1eC@rU9TD zRwr&vU8~LZ#f$4{e_cnra-er=cDA=d1bW&1v#Kng<1KL%eQR7mdouaW%my!p82D|B zx#aPHyyV0tAK#ka>j6F3XvIcY5O+>N3#{xr|~==G>#B{ILATyM4WEMZwBgxiFv*LcN38%gJ{v$`R)jiJIyam|NNj?CoJ z-Oiq*KUX(2VE*R++w*}!A&AOHy-X_>hwND;T@K@(+~5H9cXY=1{e2*~Qt<~R@-}GB z7qzUWbWOyEvZSeJE!t7WO>Z77%@eh)aL81QxW1r2#ANA0;0N)$*0=Z!+x3>~l&4XD zZW=DOCK$m_05Eg_G?409Apw-)LnWrO5F+E)L)eVzgoZF`R|Ow@32=Df&^VJ)M?1iNa0c{KVr=m_4e>AElzc8!(5Lg4w z^4F)AvNtZ7NM|i-RtN2|O>?}zs<=AbyRcmFdgWBM!u6%>#G8{gG|JhTOhgAk3IK3t z3$t-_E$4j`To>>S$pfv)dmkJeOXXP!hhl}ZAX#6+9@rmi zyX)s*^?6;_{P+nT2uD=|y3WcPhc1egOrzCUdM{@x`5{l(LOP8Fhu^lQC77qV5+yJ@ zYF0;|DZ;Wzzt88i0z6HaR1(I6Hh5PaI!e&aOV}ZA6Z^-7V5$T~aC!59)3_5gJ9|b_ zFdvM}i?HPg=QqfLHHy6Q*XkH!Z`Pca`@hc2XI#PF00mqsA&Ory8vdKw-=9eGbN|GW z-+KLbqxt<-Blr*g{Xa_c`>mw#?^yHu&kyO3&uf5g_fBw^N$UO=Wj21KX@bO0|Km|V z`bY5m5xwdd|Msf8pWiS&p3fh!+QmQmJb+x3zS=(v@JH3F>meE8>+=_SU^=LSdGb3E z5#k{<+n;~d1y%Aph4A<%d?LTo>;CFb`mhj+*x$U1`9JxW>w|ybYp8#dm*!VV>#zQe zzWon8+kdt8_}~3$v`3ctJJlZlU;gpGzEMB5M+cY4AEP~`=QV?3YG{opkU}=04cBCyEaa20kx9=n zSI{HDXR||j2~60~|FHhzf0*_5v~5ACe3|a(0*&aG#reje=^B z%?Sh(v&EqdkbWiZ#2zYPe^~t+=s(^Y>G~bp0*6a1OjQ>d%YopeuWNAtSp#YH7UJo1 zjZ&axnP-4K#xxmtV&-T-@eoA}Fz@0V%pQj;ysOLOyVQbt^| z7DSmzPDF}jn~?GZaGf_$iqq@OO;xIXmc?nmAG_cx7U_*vl24y@V-PgVGoUf6ESm2j zuywf zX`8p2o$M`hwfN%UU<8k?BhD6ws1h!rzY3H1w!SD^ZVaP#T=TTOV+z=Jj}ztcK6vZOzcVtKugaW6PfvbJFPw%x`1s=7JvS7wg=HbDXD?WZ34GL-($xm4ItGU2W335~&`$`Q zjBZx%GDma|s!*9vRA!hzO`r@v@u7FSoCI$JNMs5srPsn!%CqJ3;%%Z$VA~C?rqIkx zUR|;?N(Z!5EX(KZ7GDbOIEd4l;*~*>EqWcv;wtug>HLn+$_1W!1Fm=A-EM7VZ!+P~ z--N55?LjeTxw|&#R7hpF4lkoyzL4*aqy(9O;c|PQAaYPSD(<-5=c8aCg5i1AjOffg zmAoWkAm0!T4L;4WL_LG=NMq0rqQ!MRc-!sslTlbnH>eo<&V5Rx=`YW}|62MlbFSUb z&n$GH?vftYnmxeh(YN*|)wr*&uE+I4)kbkGEf`0De)9@c-52#8?O}%UMv-ZJjVR`Js=8MuV!3paR$M?OOVGN8$vC9`gr^e z!UDogn2fOwJpMSSNB9mVxzE-ZMk0T%KK9My?~jkes;#%gNM+!qOCpf!BAO}#Sr`;y zb+Da4Iw!lY=jp`s42^C#ShUX zJv2yaKQHFpAnG4raE>5cY@)-19Gelmk+e&=eg7ee$F)uD*pvvugUYn}NO$k0UbD2evR+?H`zCzX&owM*EEBl&X`}=BF^ zkdW#&Haj>$pe62g6)nir1BSQDF>t02M$VH5uKj*_hZF4rai=3X2h&4b^J-lc%LKMnwUbA{tgIA9l*-{wglf+i5;3 z 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

    Q z7*hLyjJ)etO()LxFH;7@KF$TeX26A&)>X^{{Ib|gJk`zl7F{luYWqoJ;cwKQfzBcK z>5(`-FtJeQ)5+t6V9iL>N$#$Vm;M}UC4*L-Zl)h@r8mZ&N0{{d7?Bxlj&N2x>ax70 zzCTx|Z@y%=;*zaKHq|G1VYHnr(OL1EkZEtv;KlRn;a80rGE3L&bQ7Xid@mLwb=`*J zYbw0KG3s6K0=juyF^Inu&N1JvY8Ag!wb%E{d{wtlP&09PK3N>%xgWqZ_>0=TL1h`G z&V350=WWv91LRKh+rwph9)HY0Y5fan(wMJf=F;m`+zo9`fg*b0cZgzvCYwqd^&zaJ^VMv4@+aT}){*LLW$r zMRG=wv_dkMuBjK+Ob0T?i>HKD{|q@O7TAm0t-;?e6Jl2xPUQP!M`@#Dfm&fmc4Pvm zmAw&r?VgY5G7CJ=?kZO4RmQ^PAq$I=9R_4=Iq>(107zkI&7b|JS;e=uXA34lqY+!4 zw;n3^(^8)Nd3)ga4A5Htn;f1&*8 zmeSd9`Zw&KB;g$0vlK;lQM7;k4XXHO@Z^>svuSRP8GN>a>&nBf^vAw0e;C>xIQlZD zRtP7Hm89}m++FE<@0!CZ8}KvYdH+GslyCi+UDL5jfpEYHZ8#aywDd5l$CZY7$SaECQub@rC_wjiGZDzrY#ZDvaV^sHgw2a><96Y+OEw9{LJ7ndy z08V6rPy~&nYRDR$3vZUfj_#!Af%U*WB5IH&hi7>z6`PuY>$8 z!I(#Sjw0vbIei`bpe}P4Jo62{{UQ1!#ik6zf%ze(FMAQK?1X+7!&b|jiq{8*-1JF) zf_aZe^oDHy!E@ufe5wj9UvB`}r?8A`>?ftR);fhBrXeYzdEX8hNnPZ3Y?W;$JWH$+)Es^p;Zd@*3hgWfSNeGW$VP3ff z=Jj?eum9eE8)R8$Vhm2E8R{ zx9e!1!)6xjEUjrL(vKAMY0~z)$k$PfB|LiYK%#2+ywk{+?w)ZdZ-KE)Z%&Hz?Rs9b z`C^7Ky0~yOiN*6u`YD1&=8c+jax$k)UVhFu)JHV0(5E;&KL6N4yzSMLxuDb}c63hI za_KUt_^g1DZ;;kbepzi&Ak7U~2Dgw*p1wy#X3iBwKG9H>lgsHc^yRxjch)F8m9$}A!`Uz+o4x#ke_N6xWKb8IV)pHcLYj}RK^(bg07MoFXp@orPPU&j%(Z>0Kn+aOGt$tXnQ0PYXf3O3TY` z`AiIi&L?JXmj-Ns@ZRLtQT$W5Aw9j{t=UubfOIG~jiElNc3QO4AOGU*LBnHXW`tqu zMniZ{#y83c!1cKyHE_o@x4z=DHn7A#dkFR*3RpZJpH_HkvWOG}NG0tC0LHC>1`erqH+*Xu$hZ=&6clB<)U;Ke^|qDMb7uo zguLwjH8Q*gb_DsQzouE3?>~>5;8)7lR#ourf~#I(C70RO>#^PLAs4NXF@y(K0>!c_M{zCEpWPGWTI&}xEK$K2%~ugjaU zkLr&>1O4_YBop~fJLqQig@pvERRBEsQcE4{c-_)SN_%YU@ zLc@-Yj(5t~32&ykAL2zjWDWn4suL8!@$$eLO@hsJW1JuRn-HbqJFJJ#l>Gjl;~J0T zWZOL_TKX~Q#e`e~Pm%ukzUe}{*wBAa9GAJ*qp5$dUMEpWcvodZB3c-E-{w;|y~7l+ zPSqTofd060T{VDIZ4ly*BzZb`4@ZdPPo2fF@MJlqcFNlCAb%lhD5@B|D8URrD;70> zO&6fgiJX)G(z;Gkf)Ts!@4o+bOc97N07yS63_jV@zTROtD35qCiCpBW**R&HFqDdY z>>bw8EZ;*${|R<6{^Lbp6)L1*Y6WG8BO<$KXKcwLbX=D?Wz zC0eGn=OG--p96n~>D zyKxa;O^F8;+l>@*iSIGfprwznU$%*Zg&$V{%30cQH5~K#y1~FVN&=O9Toh7m!c%z7 zf(g67)FQ0+l~WgDrgIe@&vFF5@hv3a?LynyO~N5hNt@6llFSYLD@i*frGoEz(Wrr) z7#>;1L$+UvpsA$GjVSl+(WlMtsn}jsMUEeFkHI5Bkd2Kry5A6(b05c#;Ju}QexL62 zU3Xrz7rqYrn*7SQux=w+2a+~V4yV&WU$4}8_Zdv13m0)4{p;!Br`0uW{BLvZ@J{!; zOVEw#cMLl!oC3j_Lu_ph*VhM=mglB_2Eq0f%)dV`m)N>%ASo6+_lRq5rHLxOz{?)hrm6)vUef<0!WR1y<619@h#2w0Jl0-j` zfh}e?B01EgDsU)%`LOGX8nL+pOIcQi)AwFv`-;n|*qy2)n8qht~1p92;#pdUS1f{iYpavs3hr^oqtNNb^*g=7DS}5M< z7GAr{x(fOnC~ERcph=xSUG1Ilt^GG7;3~flt3I^A zY7Wtl^|91s5)o4rJ`3PFP#Dr8Yj4*`Wh{zB?-FB)_z83NLNB-$lS+>| zXs2LrFLSP&`)!aMZFwX;G`dHv*xrm5Gs+H5 zl&<^Y)K>!(z5nCDsHdJ3^|7(gJ}dr2*nTUpbPF)ar4s5Q!CdgHh*;Psm2QtS_S;tr z@@Wk4Jf17(QI=q$2ydz%%s-#s-D$OBKccN~{DEGI{{29z&HrQ1+6nkh_QOx1!M$r(OKhgsESFWR;2T*Twsi!2VjH$e(h`O=o_p zsKC|8%+>K(7mH6arwe}Q5ou#gX7XCpUvHNZSwkB;C?9=!zNOBYFSevw>mfvd0Vb@= zyT|%Lf-iMRU=(_Q9$b8CUc;xEFqa9RYe~R1=qdB{NIDxKO&PmLleu4|0fAe|5$&bx z9oHhVNFjC#t** z9d8?U0JXd-A{^{`p4Idu*MqHz)ga?w1Sn(BnHIA{*Z5 zww;aFRy^`TkS6TZQh-w0C2yI*I(Ftn1L5CtO>t^-Q1v2j0FN z3%%w+&+>rJ{=-G57ur9Mf4-89hPqIAt>A=>vdapO^02-4jd}4}`8X4wA$z({ABCMT z7^;UcV_9Ck;hyaudY|iv65hq*r(O8eF>u;wFWXc2JA2RfFLot)a*vnNz6qCWZm&Lk zI-_Xn-Cxi33ujpHZ?DhHnpQnB1@4{Hs7<@?3&#g3=Avls*n4|aEc14u0j%;AXj8F`=v=5qY_=P#XFr}4@+ z2T+9(@0?iOns!L-H}^P_osj$vp%5SgW9|Q3j&w2$m8=hRF=zli;N4~^cAO}~s`OEA2I8x+A?;EALNwYr7j$0R{1B6bZ9iMYv zT2!dQ9U71DgyO3Go;WC4!u8}kU&hp{OTxDDZWnd2|kF#$o_!`Qh zmk!x)0km7vMsjR~+3SW*MgrI-Nyq0t8{kO1gKDX<4y8BgGZR$s){HkX29oXmT-<*V z!&^u};IG{*zHS#f?H!&E+ET9T`}`|cmyK^R%jSg9HvXB~!u;DGK8_&Uzi(iCID#S` zVFA}`E}%`>zz!5PQeE5s?bp&L=%u?Ed)&_WV|j5lDkgERzzF9balhXfz;N;VqXveE ztpZqc^P&ZkyWgDM1n$M8gSvY~f20}ENr+ita{Go7CvyX#MUicEWqMczn5yYbgYHsa z{k`2qbz$!H=f)w>^deU9PQEg15IrWsbiClGNl!-_8sNt{vX%qydxHpb$u4hxi9V>M zVCQAVqd2ut7q-`h%zje)I-bH4<&BALDuB)Jf5@x0G9lq~y4S!HpKsfm7a4EjK>Sxu zvY$@U`FqyTvFJZx2GjZg`{FFeq3aChjkl^s!F(ju)g@+G8j4W9r1SU&{*{?f|A=+= zW}CtJ`pH>0yn0fBC5d`y+x%#PACc&)qQ#O5d5%bq`@1o!r@GC2`ixuE5sW^jP;@@Z zk1rJb^;ZORZYdAg4B8o-FrlC?Hy_L_4lfXIeA5|btyivVZGlx)JKP?YscbyO`jUfY`r-fiR>n7*U55H4nbNn>a=t9T^xqDj zEBwIAhmgXD;Ca$Ca<}N%JK)yBj)V8%527V`%8>ZwDfT;vE1XBy&x0H%DAj+rHr^Ym z_|oRRm31sjkYbdSSq3D?hO?me2z~i-jex#Vjv4*F@VXlx=-J+o<<(c9{7(}B+xj~u zZirgnkx31Etyf-$@s36gXqdq=2{}G?Q%4oTXWN|oqoRO5+ePgWRV*1cm`m5`IGx2` zDRlb_wbaiiNcJB(Eie4 zmm^HkQpWLs>r3MS1?pQ@;1Tl|7>jN+S_29ehBgPfh>q_>IG@n!7(_bQn{QjMXyfnO z1G7+w&qSrNphsciVTU>Yf$xJ-8C%lYDe(-#pc5!?ckUi16L+s=z2L}uyl9=Qt$2Q; z@kH+1q+s7r+&@GZ=*Ew@RN8rk-p15CUnnJ+?>CIVt4=lnEv5I-{Ev5R#t9If3VeZ{ zi?8N>{h>t``Vh-%pAJ#0zh@G@o=1e1?$CmExpwr-DPz#R;91Vbc+BfwN5p~mng>9+ zS8Zy#bWo>;9Qe*ZA@?(l#HHuZ%g2*l7}^RL@Hb2_z$pX6T&ib@+PxKeNz7AtU9B#? zvZle)&&0ml9q-<`;=zB(18u@da&~Vs2h)*HW3>ZN4FtJU^MTV7*bHg9XvyhItF4UT z9QUaFBg;y(ku1Dum7yd9-yec47r+|-GYfF}?|QE3VDisqNpkq$y~lLraM9yzXRx=svd zBK%A@Q84sM&(kD096?Cu$lH}axI1hW)Q5hI*nv5{6rEI~fzg2ViUS2nzB)xm3{-6xmZpg)Ne+XQCw>frpB z5qn41LAm9<9S`D7Id^yBGliYMO3H&sDASX zvZ`mhl(cv0arL>9)GH)Dqc-&a@E9kFyx47#&41?z?v58|P9FJihYX z5DV<~VF$azzK@lR5~u@0u(CIOcDG|XM(9CG*U{KqwwX3|w1h3Z00&tCv%elBXP7~R zHJ=Z$BU`||Z`e~z3c0hB^1v)R!4ed8b4xBN=F_d}Kr8Ez>ffZqepb{`f^CUJIHHAS7wUGYvvP6PZg`q(w4 z_oZTdV0dr3ZuLr_Xg~sy3-TV43xPo?G$sJNaIT2*i*)Z(;cwn8zS)gBZ`f}!AaoB_ z-}mo4=>8<0tLiS`tlysJWXHV9m+^Ugj-;4s^fcqfLJ9p=Hth(#?0KbecrZPCqaQ-= z)E5PQQ069Kxh%0IjpSXJHU^&M&WC49BdgGvQ-1%LDB;b1pKIAaUw&zt*ZHU)f1JCu zxWUtyytJ&V9+1tjwU!0gD*UiS#7gw)=xOB@=Psd9*TEhx-O-Y= zReIYawInk~xaTGT=UNgO6A8rPw(=9RJ3k7XnrycGoiWbn-Qk>kFlPpMfumuwd6m<+=w=3d;j$@KhG^ex}H({Z{`TA7_ z2kYlNd{e{U>UgX{;~&*B3ikS+Cd;1NbDP&Q?!sEPj-Rm&vYRB6xkB+RQ!M0slbFwl zI1j0uT<}(4+rLokO{V{4>$KL95pV$xh(cWBBA5qCE+TRw)*0Bx6~30zMW}`E?i%t= z`c)L-PCz8GlgN8bZx)$Jcg#7P$@20S$6obW+LwJ#DMMW1T3Xk^`FAa+uMr0T_vA=W zSwuxA+3ia{bb>@amk~K6Ou7zNwo2%sbSF8bGNyT8`f;qO_o zq*IjtnFRIVN9_b(`NI9z9!`%ATZ#%OoSNTLx9?5aeeI*Q>pU?xNWA<{{J}uAo&p-_ zeyhXF6H2(8GQ=6pQ-M0A;d%x$EZVOZa1wH?+}>fk?}PN;yW@|=gdK794I{I8%m7*_ zHd$S1KS-Hsu|AQcJp9WZ@12q(hNKuj%*!8a4m`RclwWmdn5i(@yZ=ST=z z-Mw_~m!~+qP|+Y^*`PaXtl?n&4vwpx)ae1ATZryo^+S2qJP9D2pt+)Ik8Acqp3f@| ztaz{rv-&vG`}5-g+$Esu3SIZPF(~Jj>FO(8XNycLfi)H^ee@Dlbq6X&-wg{fs&ilK zTLBv7=pPXTCG}XfZudQ+7ve{7>jR#hQX1TWkX`b38<6C9>tyI~TPeyv`T#DtfWnUx zEAnzrLlLq3xQV`&;(o0&UUD|RBp*PmjfVr%P!?<2lq7B!#i9Cn_CNE29b|TZPNx#i9khF*5Uf2Kx`foml2AYa!Q~MY2;h$uulz`+IG4+o z-{A!IO(w95Wh&%5tBE|%3oKsKe}#_yq5`>mLSNEz%&XH)+tS_SvTSb(piucso;p=- z-k6KQ#;{l%GL^m{;WK!q<&U{|ViZV^NIf7rny}y7Jy8WbGhaz_J{TM}NE2T4N%D$P zfvsvR6kc)TtvQ{&@HqNpF2e3+p~hF7%l=H_^a~-7@o(RRq{Zms4Naz^>4EGK-@Nah z2W*y)U?7aXQhSZ}O>kN#S=zqz$=J^@sXqix5nrfX0>8}spd-&Yba65wRsDsj&6uuk zJ$5_nv~>UXn1dg-NWVXP-eYOr1Af(Wqdk5{T}Y}Muwv|QAaCm|eVpAoN;e4NIz>5+ z-6?K&$AKNFlf!e_?crC=MixRI0=-_|x`|Q1bI~SRyle^e&@q^RU2ip?YPf%7zK;Gn*|KYf4M!ZR+{t@|ON-;uJjn}}<@!%HNZ5*}S?Q`pr_Nn5<4dP_0^U$2^S2cA13X7L z71_4K(*iUqnkA*|`6wTs``uzCN33NNXns)I^#}LYJ(rEQeOOz#?w@Phpx;Dz9veDT zo#uWsV{SF(-%u*dESst>f-8(|+6El%U7TTF8d7`0QQ?Z*eY^k4&-V$@DExYyf+v3c zs=2v-m|uK~)zCq>Okszo9?sU5J~x2((E$gkSAa#-Kvx^6+xGK@BhDaPib2#L2^KlR5af<}!%Ql~!$2J#Apv=g-d+4`qM) zfM@YpI4M3)Dn8RNQH{jK~39Q^(hP`l|jo-_*42qu#*6Ud9e_t3jG2L6XCW(TJ+UKW3ZNU?}e zyG@~uYtGLJ0?v(U&NZ@%y7sq&oZeIb)KdxTxYY@*oxe6Pfjj}$(wBp_T3blqvsbSE zzxUjD_Iy@dA)x+ca*j%!6h3=guqOWcOnW_#F5)EguC|vo@~$!_K6To(K>;m@!n(%Wph`o;NlS9xgjG=xSN_oV2X`2D zCGO0e9eW|0aOgljB2?GbpoeRLGi1%|<&E?G%r>4Bok^1cW&^s_X)+KC0ar47e~| z4kzlB;(5x0Na`-nBa!a^t~1@~$m`|cKA9QMYvl*2mq=N#1AS9}^Y8lpFL+VER4=fhX{ zHT>iR?RdI=^p;i<&6kgh@k7_HTnOBS0f%+(UhDRv7jxpj_4PRB(0kK2LQHQ-TC?by z!6`+6`k?T@Ju>=&I7z8y> zVsDRd#VO>K6hxmVkfXpe3iuw+=p>q8#@Rq(zQx4;1a8reUy<%q*YwnxxlJ9LXr|1<$BkQQIk~&auyfX51~uU}en@gVRCz z+6sDOnL(e}><0&c(O*W5SJ9&zzec#Xr0E9!^V4%{79`2R%=So8_`mhxWWi57eZp=M z?sY8xRWOm|FUbq=bf2{~^^EAF;IYErT)Ph!?F)Ug4fc;Vf=P}2wDE`?@*bGKC3|%( zZ@~T*-In`XA&41LZrW;B}f_|@&6Dr`!Z3l?6phH;<3Kn z84Q~a@oM{cJOp9FL*`W(rObCn^t-%}DdD>rCfN%%vrp{qvq47@U^rBOiIq6mP5tPDZA%WWx-9x{gR z(1uq)(hxHuFk${mbUH1+7Ci&dcm8;=tp;tarn@(^CD@6NRs-%1jZ5(e59q!~wEl;a z?TeNN{Nc(wx!vg(3qNEvFxiE59`jCx^%>{1@N}$!QU@8gIfA*ifpg+Cnnipb%M)|V zif%sCri+IL56n^^R&2!xM-%7EXPyB-12dJ9KalRG>#<^_LquDEyCJ92)_{HN zyx)w)c(LM`B$A)B`QzZ=rkSpLChkbV3~(zBjDZYQ!qgDP+5L5m??RHDH^)FRHson)|_rj2UfD{wT9C!E5eJ7~6PQL6#x;E%JWT1LZ#-VIOcY1=5wm z3qo&xvFhh+`APis#D6X}(1CFfbw-m~;a4lEFZKrhWznCZNpg94`DN(bdZY&NkRJxR zF%11PeWb&62QZc&jnU&kUDf*op}vQ3K5JL0yMBX*syxkArWeASUWtgk3CSa)^*agg zgQSR``A+nba#aQO-J)B7fUO(ugqEG;h7;5^G64v++q(|e(+U{gUheL0w%kBR?N+At zl5vupQ(joXqQO1}2^A2Czj8W_9z)Drwnk+Qi+)ASJu_!@_Q~{b;_0%|`10e4K$^R$ zx16yBze4M{=lXjF-Sl7oDVA|d?i?O}eXl3u@Zd){*zy%UeN-5P-|FeUfCxWQ%Io@* z`v+zD`cn{yRb^5Xw#V2>U0zQgM#gXVt#Ky(_;!hk?bmIVKE|^l)yFJP!j=rH@NDU|T;t#Oh&g!MVwm#W3s1Srgnyu+!4N|KxdCO&#=75H4#zaQ6DarjQe5=rv|a! z>)rcr7IQ)aJ_Dp`*5shg@OBM@6PCl5%|a7Q128lLuKu)IAK80<7fe>R3kWlJ@p>K^ z{LkG4?1g}qEfc0|X(9hHAwT79I8{{0D2|sR+XC)3KVPQRVEJEAihhT=%K8S542`-N z>)RJAzR!z$jL9Pz(4fS+D@7#7ss4=AAQ=Ly=PZ?)nb%>tCeZ=6n)(VGx(?w2L0!`| zjBMIIv${0=fST4pd;0KvpW|agU)@hdllDQbtcqOolBe>u z1O~ym>kRe`Z{OgeO!@NyNE(>64PFvQekR^I7x(#3;^Ag7r6UUpS=8h%+C_}MKQQA3 z@i`{P8x+|h8Yr#{otmtNHAkmOtDOo@Rq=JaZyVO-T0&9*s#5$8HMQnFs_$hpQCE6ZY^7cA z(*VqrgoXB^_mib z0^Z^kaTN*N4%lEjdRz_aLlgb|OMQ@&X7{D6OJ=ZPuX8Q%E++_rRMxW1pJ(YfNln8L zI0VnikXrM+`k`o$)f?3EKnm8iO3G47#lz9>!L0SdY>MBzJOaP@cX@PEjPc9#?2TGSEYME41B5hPFNn_by#QiH(Q3eknksSdh;WQh&+k( zXLEvA@B>N&)8o_gL*aibw^{q{P=juPLgsjNB~IrmFw|1*_{EEO}+73 zHy9o(J3=hfM`3N&gKc)h1q%G1FK=ak#8yLBMSxGg0A3hvlCzH8-uEOKQWxIT` zF978~yk=@ed5r~>=R#c4@Lz3?LM%X9Sog3tgd$Oy*HqYhseWBS~^H{Nr4F@9M6Z&`U;MW}=H{>wo1T^F1VwAY(@ z_%u!es`?G9R8L`_?Ct%`WrX&2BPH)oE2kw)S7 zez%^pa0VcRp7?UIqtAk#XtsZ}oo*YcxI+y0OP}=|Z4xxNe(&|PFZ(O^8-?$CJZ`g#(eeq7!mr(|{8++)x^>|m`W1(W6bC7w?QIRA((tT4PFCE*iVjW( zMo|S;0pZ{@k^ThEsbf#tWIc?0QDAh3?_>l1YOk@5ff4DK>I#p3AmwoH5RKQ=#1hzw zOK?a0)>*U1ZoS&j>;!-$rGdfgL7j(2X^)W-S}fKQj<+1ZEu1TUn}Yd_bm^^Uc*05Q z?u;kG%MKrD(CNN-U(zD@A`fXpUetg@d7ATEe#2c*IZsjOo>uu;DK1jok4J(D3j1_f zyh_a5H4w|hv#=BM8~WP19ZC4TVb zFu!fYfl@92Ziy-zU;j-vqpL4U!Iu)6H_Kd)-XZm1fBR*+gmBUS{xc7*P9EELj0)gc zBO~&Q%rRwF-x2zc8Wk*O;4M za8M+}`XQXoKlB?El^l~B{rCnWeo`-2?uB22+Gagh(eS)Sa*@{e2hyTv`Zn=6{Vpjn zQ+I4t7Tho)aWFo}(JS1%pkQYU$GTu{cEQD~T79+y!FTjNB&S_LBaA$wro3aYRR#0O z+s`{qpfv(epkTvOiq@Xd8{rJbmHDLlVk@iw{{b4=h-XKrT^wUO_KSMSe|z`BBgR-F ziF*R7^Y5`tp5P|?U9b>;BUD}5dt4=s7+{72vWCH*>+>%c_d`+$wnW$RVQDy$Kzd~d$@HL(vScjHD!GV)a} zb6j6vbbk)SEUiNCU6N;I#nl0^Pv34Q*B{e1y&(SrGflK`vXuQPS-%n3b61e70B+N} zmTE)!^%W9KLdi3F!!Bk#hHAWgnV8t7>(v-qjfnyW!JRp3fU2t1&99| z$a+}r+yxFY7X=xYPu3WzJ|!0p(3VvM=$-jREaQZD_YloB;d4fI<88sI7&UNL?SXx( zgmdOydvBvq6i2QwnQ+m{z`m?AM!#T$j15oZzHUz!j)lM65W*?;x|k49TyYLrKOoiB z16#(S(}zv?;hrP+_rUNb=LJ(6u^n&y^fybEBi{$?N{uM^Tt=5@JNOCPoeh+ zNPOfZhW1+cJ&Xr|Ql+&uc5Jf)X-uO&u^bN7fA5PNj5;t|-!gd|j;-N;{_8$2&~ee}zC%ZPC-CqlH7S zjHic2`|Nx@<_}~AKwAP$^tOWl^AbHEfQqlj50*_!MS7C8qlHpQojU?Zm-Fa%`8*KE z1v}+Oj#c<#K`a`m!Hu$U{Cr)*Apf4Xw|GB+)`UJ&dUd}10;Asi+W#8i+g}9LmvY~_ zvr5bd?O{z0AKmalyu&||l#-QyN;RN|&i`_^7(e5T|GTHa$5Tc*v?vp3{`^W1G>n~1 z$tO%9u=Cp6dq5_ER>fWRli5G8$;!Uq!$W)R_D_T*Gesfdd$88zHms9^6J8gVIEz1T zR&aY6e!Ihiz&l!J#WgOntFp$j&)b;~U47-v#x2mBq=04%zDkWEY+&KSe9E4n3i1!? z-i+2392pYMJ%wSBGn|!A=;>0*YpCNVw|OGt;$iEZ_mWz1P$nmUkE2_Jy(PsqXpEKX)vLSjxvRLQ7I@)xip*6qf(G}*YN0aI_RN-6Z(W&+XZC7ZMxclvU$fOPQLVe6BUH#Cmi@UYVgZs zn|%b^FSc?TX_DN0d>s9mMn9T8=th+I({gYTem-HR|0Zl{I{Jw@jc3=AlZIv5bWYn=9$YXh_YbP^lMz5M!xO!xT>k9eV zM&_9|yW5MQ9~mEq+9qS?22b-y$66oiL|0w4%#;Q!$o#?_;12*+{`Ewuv2*dWd2|r; zxmM3z53cugI1o!GN$I!NC%nCfBj{y$r>VWRzgT) zoL`1(uJznVQK@9AI{=*#O%UB^@T%o5Z9M*mA0md?EqIG zWh*1nPepT|d*jv8dK%Ey6?$-B>~+rhu}Vhcx!-J?+)g!sg64p*CK@u-U8_1&D47qJ z%-3o`B-rJR|GQ+_t+^lz*UW*2qKZ;^m-w@DLs5Au%d>d%*NXyHCPpsU^6Fnsar`k9UU`Af1n_4Gt8+`sclLGMV_T1_G8*BRlfE7Vxq zsVtlM93AI3uIBM~_>S~kwBX-F1lO5*SQ&TQ)X)A2=LLL!il!T44rS;wT!WD+`*^&c z&ChGS;X6kk*RFuZGp9#=|JUQW8_}{NL(8tuG`df0IZ0&33vzjP=DdDlc1daTo05Ad z5B9?q=ft}%8BTEIWrY!!dk4P3g3&SY+JA@82;$ly?-9>fSXH_YPtJ=JtB_N#e;z=3 z8YF?Sm~NcX8dpGOs0B}9G944T;c=g?+Y68R*m$Ssqkm@xBbe^@=5itBQ3n#Jd+qwC zQJn@%nZpbHT^}38IE4XpUJ1F8M5Q{WjlVD9@t5w03Ps=zU+D;2&lVGP3RDor;Z|FU z-ncuD4v3*&q~N`0bKIugAtvS*3>Z%I*|Ap!);<2#Mpor|dU02B)!R$n`K@P0(ph76 zjiwJH_hdLJU#mK=fb)~E>wK4nF#eDU`^7u` z1Xv1%Z@WW~V*g}A!X7ph$$x)$aQ0H|VJC4i)rdb(b$<8a=cjo71foy7=Z`bLGmuRX zUD(!Nh!;zr;cv5D?0m`h{nXW6?x(vW+I>nXot%(|LJ>Y90l{ZlDN$EA7Ql*e4vzX% z3F+~D7ry2E0=t0@zU&@JH57KKc<2eKekDtDPZXq|Xf7~(^@l^lSNuSxEQ8hKDo+B#WVlQZ@z(47#;m6MV zD@tvTy?d~5p>4ka51*UU0h~S~df*@Ey{6sz0g`8oKt5d-so9s}K{FT=AKS_HwebP= zBJ6fjb!U1OKQR6cKh|;%z)$@9T{(O|eY9JI`p){k5#rND_xDwyrZO#3f4;m^TzX(7 z^6R4?%1=Q90);)fmE+@%N4FH8PKqtFwKW=7_s|YvmEDZgR>>ouE|7mNvFM?yCI#(fsaor~6av57C=emg6F4^Pz&rl#x>FHKFv0@XA1#|NJe0%K~kk;e-HV;?wP~RVEbR zxwU^B4cnKVtlkzl{dBJnm$m_AU;p|?7p1x-4;+oFA{94@J21!Xp7Tbq{NK3~FKIdE zfEjbglJTqswl^H34ilzQn#CPq06#+z>sDmcGDF zUWE{sZbk?V$p3fQnSK5yuQyAuAduZ@VKE`PzryN>eid5CY7`&e@v?hTN%td=f5xQj z#!g>HT3;!3TgnG&ACu)4Xf;0Fiq(_K+25?g=Z|9qs=&jNmS%fw43g@+bDLx4=j|}C zjg8xCDYN>a#^Zp@a`eVijteeZ7;YA!&>XNv41{pI8_GzcFh zxR^@0zCOlY&iT#?bQIQ6YF0;J^wr4_3=LLN{NF}ZhmE|PAcgtG$T5z?i;3?y79|7B z?em~I^agzo^#or()`j=?dGUCiI*)IBnY}_m?u}nf0aWtBNpY*Q4~YI~&$2W-tbD=$ zaIXeWq#_yUffthBC;axzWlu6Xk6B@NiKnwq28)hYVPTP|kHN5HK?r}txUr4&?ZXSZ zjmv+H6+dyeV=T=cB4urSy-v{=_(ccx=Z1X%D6eVZbo{qpUPw+PM3Qp9Q+cqE%C4N~ zyj+94zP{6({ry#~z!p~X;osl;6ilAua?gyTY>h+5p*!wL;et0J*l_4df}<4tWt-dD zsJ9W}AHEA($dBBiSE68GrrMF@rw=C^WNQ51?+bI;CItH)ND`$77!;}GHj&fl%sW%Gok;^1}Qvb?2CcxG9PXps2^WHKrkr^1UPT37*`FH~*M`4QUJabpLp z^<}(-e1G;*_vQYZE8ZwQl5JTO?mPF!4Ml?b`fv9V{RXp(@Jj}V7mng)iQRFGW<4_$ z`ql+-b|P-Hal)E(ProG23ZzBKZQ)Mg1MPa4j3sOk3y9k;{_XzP(J`Z2?<}cY#TlDE zF3H(031BGy?@D5TXv&1|sMsWRljJ$PIIez@( z%|Om^Jmm8TeL7AdLq~O84I;g`e^aPx6zEhBS~Bunv@)Ryp^-F^7`-=Z`&N;$=8nLcw2$p z0N!qnZhDFNa@4zc-;o7!+)8-&S)73cX~*dZjxjD~9h#5dMd`J!glxT0+`r#Ju|nxp zIfk6o&!N{n+>QD}U(s)bU}H*opV#&xU1d%z^u<>A({8XXsGtg*bfk_heQ1!;Gyh5# zD9)nOxsDiF=_n;4Lj+2Ly2L1fcc+Z%tRKauwAaXX@8IMbW+peT&CzQez*#%VzC7f< z(DOZ{*_ST9`lBLYZK0Z9o<%11vJ8TKp);k|cOWaM)ci&gVH?lD7Q_)R|8=wyY8e0` zsPVo=hF#@={3+|#bmPu;G6L;o7iSZL6E=GxVXB4K17o(MiCl2592OZU22_TkVfcP` z8Hz|Gj%zfRIcg5!{8=hZxHB=lv80R$K4A0PD0ZJ{aNrM@m)aaqwaw4?@m3)}?B?D1 z*Uy|t8tp+w?EoR3b&nCf8uUA9yCVB>n1d5kWwKh(_n*Jw!BR@^1>b!8?@p0)_tzBs z26N%%H0h&4f7f20)665GHbFApyF0BqnPl`0h_UK)O?U^H$prc^*p?lGnTW~Lv+LyD%ThTJr?vjNXv$TsiJF)tsd=|_ z@MGTSumwOQ|BR9Y)T^-`jZPgK#7fr)l#xH4tc=CN4*S&$rxp$SE2VEGofQQg9}XP+ zqihBjXlQQ_H}<|M>sMa;bbp^g+%z$R#s0b<&XzaFeWU|V@Eu3Q2(6bluvHPPcev(D zc?@4C*bRN+4GfRc(7$YtK^`TU}>8WD+Pp?~a^SMUl^IKb(_IO(&@S_yshRbEUhAr51DSRSZdpMlH_ z6y_H&dMXDzm7fpKV<)@n`6+_YkyS>c-0HlTY5QNW59QW9p6zQX1>&Q=NE!VeWjhH_Fn<5o`0t$e z@7+FL@E5-!Mh1LpqPVZS9EFz}U6rf%=^y$B@NA3f@@#Zvx-OiteC7=?cZ7??-tpY);RvvrL=cFi~?|jq~sGt@xA61p>)YY$+sHmYBi#oMUhqw zM28?~X&-ib;$pK0^zq@5KUnw*r(IS;56o~duVJA8}mun$af)4wUoq-=; z{MQe74W779pYxA6zqwmWe-0x+cr3HJ`x*Wb#6-i{1k zFZ=v8x;Wpa*7xvc4n6t3{)k(`-)54&oh0kb)_m{lDGtpYqoE=g%q*Z;N8B@nFrOtb z#6<1`mZ->T9P?U7<@?ZYh!#unM7H-|;_SX>ZuEOD{4@yf+;;Jb(auZY*c6z>M%fAD zJp6D;{I*aiBl)Jerpasf-(wE(RwjnTWOd|n`6OoGGY#z5)SWo+ohnQQg1gZ^uR;um z=l){~y?FC+_kQ|#qHp}h?nxgBB$I+;UhOiLah%=4a0|!c>;S2!4!`hyeGrJid_d0? z;+!y2te8d5A%S1s#M%igugBV46~w+a60!$Pu%F5vNtuLvevI~ePm5fRaX}U;}dzu z9`|5`&_o%krtNO4TA0~y*cTs#F!H)B482bu= z6c)t35pWv=F0brbyv5?qja_j5i(EZ_(9*iiPi~KLaj{MQj%uh*_N{f; zzmTDfF33a>LI?!K62rk}g2R#C%D=8d@KC{nPR8S9Z0Pebp>s%5l6zn^866)!Uvq z-6R_GL+|p2zf(MPUwiOJjI`N1=I$mAAIxcYdTC;c-Rh&ia0=7Zr4b|P_P$}fr8@Om>Gm{2Wz2pCSIh(TMWiGkfCr)uQ zSjBR1H1>YRoF?f_^C$P^9C!44SKhBn!mCuTz02KEBNHi?uo#!FnY@4EJjr}-6yg^* zuiJlj>hbt5tJOiMIoP<}OW1uhx+j=N zTc2w*zpw$f5CLqR-QLEc_yKM=5S#PSI?m-00r2xeH#TgAk64|3yH}&zF6i2qs)^oo zqkGW21y>WgY>^ancJ|B>y{2zY$-hT2wa`51Sp1uer>FDczpU#NHM2o@kH2mzIuZjWji3TK7JZ9Ri761MdQ{Ra8Fl@Yp8?n7F2{;Ani4+tB9%}}B)?eTocMgSLk_Mi%o zWLmh}v=uFQfB%j@I-dTz?$Eop`TNhEMLI#4SF|JDAB^)tTJM+a1 z68b?7#UG8qEb{^VoW=i`azdP4=6a9%0M60y(LUZse1!uv$fmvGp;a=PuijEm=IQW3 zcj&1f$k2_+6()N ziezwLL<$aCw-zoxWXJg3sl)i1b3IK+NCR`RkLk;t;`clc=jfMjWZ~F$udg*E6|*gy zS{sN@-76%hZnVGEF}b-^F{Z_e5*AHt9_ciBIGrCzmbn_}*s zoHj>RKTG(X{hv&5CBx6AEObA(r68Z4dz?`nr{kJ73@z*ksRoRuR>j&d?mFGsB+`MB|9HKGhCN+^bYXu@t=jbcQm6AiOhsr`{~@Y4QZfuGi1^&nX_9A@W%&zqi5?S`|#b_ zGHyMlHt{J`>o73e(hk2w@_KmwuK5;emQ6}VVMol)KvBE5ymLyvT7J+kaCNXhmmk2M zk{@>(!_ED@>hD|ORzf>&HxQ&rMOXU-|1Xm?kl`7XEr#EiK2IiT#`q`IT`b&zUZ7Kt z#uIb?%2vGc17r{1_krAd%&+`Y1zz8Ozd6L$-!I{GI5=Rr|D2O%lZM(}cxHNk<_rg_ zBYdHu3OhqRZ)UQ4z~qVM=lz^&>CJjV&UFX=pxOU9I~s&T0ULkfD2KbhjH(fUe(K_t zVW_@`Zj)X6i!fokf1=j(+iP%dPOn#q&)4Ufx_N)uX`qj}mK2~-hkK_+x3Lbz^FG8l z;6eLe;A~P(vEV0th&+?+>k(3U>WTvNWe#N#Yuotm9ewTaZ6L1mnP7&)X?~lnoyy;H z`UZ9yr&!$|Rss!Pcb1AGrai8k)GOp$mP|E?mAO0m+OV9ahs~-;~IG z**mtEWcEO~xoIx;?vin5>1(I+MbUF*x*&vZJgXZ?apprKjKj|UFxCiz?eRFckU7w8 z)B4RvVIOw$>O}vxy1KD@uteE&$aY-E$es+h`?-It**`w?92~MIiyT>elieneUpti@ z0FErg%mP?xaMK@Or*+Bz_+OFjAF?IHz7pepfaMRtZS6u5ddb z?s9obJ;r_S;7Y4<7lgwelaGi<%mzJ{aBkAL2is4)b|F0Bf-{phmNYEy1j4aa^A@u6_`F4~H+Cf$3qPEwpHV=Wr98VdCT9{UBfL__u0! zIhy@a`}a0VEOxYC^Z*L|mN!g{-_W(9uAAH*cHwWXAYJHSNx+$Fx&86C{xX@iA`sU% zc_-9zzTka}f5qo_bivAH?n(pP5Br5+6$p95UzAmC2}-1N9>Hm$Iz`?YThtQNcY$so zdcC#hTXyo9^Fy0HI^fd#^>@pPoef>E-b^C?egM(CM@ydb7rZS`R~lOXeW`aYdZ7LK z-EhOoE|8)OerJNA7{x-N{W8H2cQz+h6qN0~7BOSz z$z9LruxvYUZl3NUjq&d(b#tWhkFU5qODDK51IwFY^Y)>Os%Jb(ySmf#u11!Sv7wwm zWjsEVvcK5OX@2P(9voO!X|;e@;CMS1x0?SxI1@a8gga<5mww}$sDPcm|Mfu?1c#rt zD!}1avXTl_Slj|8R|wMu1wjX2Cb0lSlLb^YFMm}e@S6I#8cf3#HTOm<@Wxofv&B;x zmVkvbFbzw~^s*GdYc|&I;y-TRjfs}sZ#eVsus3J^-C#CD#|1vyz@QoAp4&HlQ|Yhz z_j$U{`XQf_=ye(d_*@^9dF?9f11cVNl@9}Mzv}yuN>aG^dkLbq3dY%Xzx--?wP+bHsFl>HrD}h!0E#)(O{O37!lst%7PZ!2@Xsu zJ&SAo0Z3N7^QdNqC?(^BxZgkUi-L7*5%C;@-P5>=DC>OO&JstAh?oQC1-6;*g0J~2 zCc9DAgi7aAW<-=p-=K=r=@^#{)0D68r&E1zf)m(b7QyHB##pu@j%QlE6*nL4nrp~U zL~(3JPz8vU3clhi2QZ~v@ASsmZ)fDXYJ7oSgo}enV_G}yyK^lNL{8t%`#d3V(;2tW z`1@YmqV+0~32x(o_c@T0g6iZhFxT5xqp(#o|K@Y&u6AVi>`;-}o|iJXn6V2z^(DLB z*~@dOqUd8tg4@GNcoH92uAFvzOt?ZJzq$}Q-5MJG;PGl_r&kG!s<3$X?5|4*uoe`P zmA3qBrQB6I`Wch-0}1%)Ub(y!_T>ri8$v3XXVUo!*P_u<|4berb!+e+Ajo;g*ET8qNmdSg6-&R6SwfJrTCX&D$R=MA=o;7 z|JJ!Fvv7Pg2x)!4hg1`Bn%cl#hu{$=2TqyBM?|XHIa-}wY%3xU*<{yJLk!!)~P z?VsZGD!ihDSq&#;xe?06a3qSU-Rs>W5KbEWE8-a+1E~4as`9%4?@LBKQj{;+i*vj}sW-nw~#?=dE4ezx0VSJbt84Xe9R5bfW;fP}r~b zN@Lvc$Xy=9k2C0ro-l!f2z&as$rY4TEUc~YW4UO@VXQ8%eVha{h%x}-91q@oHcl^H z%Fmoj^Y%jl4AC*4CLBV;<%7poBf9-A-d&EThgn+o8idgu1E`za4Zi*%UFPa%ckBk@efczk=0Lwc3ZQdrMw{h-pu?*plmu@c24q-auLJ4QI9Oc9H8$o zsl_vp)gJaT5Yr{X9vxOv1uUvup#!&5huf;de*D1ixZuIj zDoO3{5!}2-z3KD^B|X2>#rd%ZMo|i8c4X|KxWoqH>om%6RId4=F3r*@&)0=DU)2?} zpKs*tf6LgrS?JMHQw0z}{Lp$aKYI^@*6Vf3L`sE1>kJ@(0{OA^rsJ}1+1nH?ga!Vo zbwzH|kPy>%$&|Bk(9PqNW%%H^56^gpKT198!rME4Jr1_o#qANE3Jvrb5&t3Yxr;CN zx7u(M`Q+LL%nmjOY=bN?b9}!_&;4nlv<5c!{e3t=Dg6Q~?cMYcL=b455X=DuKwVIX zrfCtbNATH*qSXU!IjOZ%NAV%_y7gB`Rf6Wg{k;C{WRt2o-81WP3+n63LO7WmuDBGF zEBduAL6#TgPIg12>Hm&4Win`4|)94lGd_%*)tI~WXVLqPtJ?3w-UJ|WrYK}R%f z>@9<3(~vab9G9TaG{%dJTk+0pJ-R%fZ&xu15aDs`Kuog`2JMc*)V+)cs=BB~zxDA}?Ytl34RQvyDOI~3>0XutinlWdW(Vx+faK!KH^V?WKQPQ3 zReVA3Nzr+u4EHZa!CoTDl*Lm*eE8s#J~wAA`Mi#c1kSJ~4X@>Kw6B8%ddKJXQ@xx% zt?RwmU9+YQpYVGhh{-N`;*heGL0&=zQ`^|Yj{TH0Z z4L*ZxMK*{+DXSJsoGO4G6G(Oa-jSzvFiJ3IqzUL-;Ho<2#|C2|TXVDsdb_mW*S;X$ zuAu&!8{9lh{DncihDDpf6RGrpGOSCQdS7J7zxZ8RTc9}6IO7qK7H*48$B+GqZ$2kQ zKfs6E3ToNp6Upq-!N7Ltmp;m)aneUxE&8RboS|Wh7Y|9gw(+|SAo7K!oJ{5U0sfcC?I;_ zx;vfr!=s4?xGZiKJ3OoHIqTo-^BSz5%hrpAqzb-QLfqayYP}vl@oj~7aXd>c&ct7_ zNX_4lx~vphLZ12K2=DJKgohDAlRLGUl9y%x(%AT9{5P;vK#CG;e(`P^n&uMEgAyMZ z(?sN7MLs*>TMRP4^<{_0y7D7dw_;ZxQe_uDz^}t@2s3OoUQwd>!2+a=IGCxYn)FBK zj$`Bk)}&|+p*-2pbSe#5AZw=E?)5XlBs*nrQe8+dx)^evLxv))ieEpFe3s)1*N{(s zkn=`bo`?MmFXEJc?}YAom&5mccHE}|kYRxCP?I;>k7%%fJGaNjIylvBMw}Y7;(iTX zV49bG1_T@b5qJwGr>Z_68BQz2bhle-?5!3IUL_xcrhGZlsq>XqpSM%}U%imk0 z#_|hMy=*j0VfK~Xaw-Q&O>U>-T;OY|o`iV0YsLkJb_7ey1!cYEh>L-+Zr}h zd0BqTS6$Cb4Z0UKGfqT{Jr=8j!@p6ynhd;qNs1Mof*uGD>z--YhW6GVexLSQ;h(@L zZi4)Ky&ufCHL%F$A2?6&$YqkoUl!tw{W{ViljA0I*_z3fkOqxmaH4IO%0b{w>NGA9 z-oZu9YlGO4i~4R}AoWGq2~Wp-E>hXN;=AQ>(tRDL2W$6o`pl>UjxxWr2YBe#Oa*PR zHhuVePDJaVk8p~3A_3?uC|mi#-^kvq;b!RDubBR}O#>&j zJ)8HFhWpPpxcN@PARyx(+f715G(_z+=o0i3*GS|9lwup`e3B(eSQJBcgtkFUBjfvV zch{jBzgsbH$@``pak!s84M;1G>9W$uO~U2?me^ls21A3xQaocQHUOd6Ref5px^mb} zho@79GJq-yth@BNIy;(;CF?*w%s?cMH3aQxcS4u7=lV&tq*;idBfKyVyMWBP=^psp z`HN=TyRkNnq#swYnn9lj8yPkW05~K^?$joFo-JO_J9cxH`5nAIcm4FLZ|6)m6)P7&}r@H-VrxGQV%&El7 zgw&)usyY~WW3)M8(RZGh#Ex$~cT15B#nD9fi}|Ku@UzC)Lr^`6FyB2wO%Kh{F85P- zKWoo;NBBaWzYG#PA+RJpbcSmAHMH7v-JL3Xo;AU5L7LjE-8P8HUneZ#TFC;iiYnS!b)kV7w^R7bmmTXH6 zyUV`VKj`+}8Sk_6dpV=23%~Rl_d;2A77Y#_?llsos&(jIf9;+`R4wBr4iGX(VATEV z2`RD;%7zGr)^kO7%baBP+TDYEBu?1oE_8;v^LH!`;y@%#5|Z)?0vB>JORg?sxorMb1q18k&#ish4biPd2ibyw1nyT&{^=J;vB>$j6ty z{&xNzZVc|iE&h&RPKvSIarnlgr9PR%S3gLMl;OXh@{xXuSWoV!{--Z3SnX+&K0YXA zF=BEO`_t-3{`wZvd7j!dEjxKrckb(v%+ckEiejZiVvc8Vy26@sLOC~Zap7?NzkTmt zUza-irn$$q6WDXx^$ ze&U}R?Z@YM?k`EoBqz&1Js{jBUIozVFALWX7HpJF7$tNa?o)R-=%t_B?8CDXO~;3h z8Y5>C#jo=b0xh(RzPOn`O7TyYBYHQ~mJmD$?T4V8-87yN)iYv>DnzdE-`Df!^4%cL zrkm$*a`(edsXAiQplyEf{{He2%n@JF{SW*~SR2ZHf}fb(?odF)-l~)BtM1p`E#1Ur z(QV?yw;<`h%=AOrdqDWC4jU$6(;%XG**GW0{rdYNlfD)o4A{k^K`w>3CxGKX-2GnO zKG`WEj{NI>Yx2^;U#|kPCCBjcMx{22plmCPd^#5~CkF~X#PCJ$$N)6&aLH?l8LLLp_Gb;TGi)qe#*`5%~j3 zAS0Oj(4aXZcTX=<4J$1*8sDJ4KxPJT4H>=PZsDhv%*;FNpL=sk$@Y<-4$L0Zz1k%1 zN9U2<0$>HiOR}C%{`d8*5crwj$>WU@`v|;l8r&%>B9MB%zJA5%Hh;m~kIp-xZ^6ip z$@;UkeRFsCba+bEdyZi{FRRAz(%;}8SUY9ir;2TS=psv#IWRmOgzDioTp zX6wA@Ey(K*POKy{B-A5mM0UGw!J&l1EYI}E9TfeWr~P#FFp784d61UpYGM!5*gx&08Tr|OWh=kYIP9pdC1AdKS7@!DG z^mSQCi4sfvzTYO_QFRJ()YeOwtt_|cbOwgjz(=q|q|6&89=KPz#U^2Bt7VfTF!^62 z)og2dJIedreE6u#VZOJ<3LjDxEB@h|tC!nwcifFV3@gEH8 zjgt=$3Q~PO&Jv*H5BYoN)~uYBXHTk3;kZ7teyCkK0gBjrQG-yi^4+dH{Dn+YdFA^* z^4{#_nSWjL+HKp4i#`@%Yx}k|?zOshubQW(S3`}d3^gT{q$sx<1#@ ze%x!1p1i}Jq2ts&mM?HcVf{RZv{N9}>+88dqh4w^g)f*wUQ)z zXGqQz-DY`>Xnk{IFp)<2@6Gylkf8_FzT7FeY7EtQQcbcnYe652>Ix&LEDM|j#MugF z_N;}Y5FMCofhUpoHXo7D5~;?PXmjaL2_puGb<63KYaNaC##|rNG7WYzT3MxqKI;VL z_iM|aI^=O^DN(-e1N4SLN-Mb%SsmKe>lLT(pGHh~adS08lhi|CCG|&4Vd4_qnLC(C za1S@nRjKS$C+UGj=mJD&eeXxOM;4J*q%ie^w?-%U#Jg|c?`oFPoKrA9so4AIyE|zM zPB4n*M+&*8YaQ0ZbB|b9wB!R)DzZB?*j*)nEP+n$AT%);BQ}5d=F}f};MrpOJYZc| z!(7e=6%o}DxQ|Ir2I&i9Q*F+m3D=`djm+j0nM%9Mb}Jv>Tiwl_Q!E%GSXpdh$&Ydg z+Gv!c#Voh@P!ex_9J|lLd46PlM9-6+tpNho{(g-RX8~*NG4a5VY$Y7wj>~e-J>KNQ+eLEla|`|CO0|Iw{LYWA2!?q+ z5e0s>b|&z)jx}I;USoZXUbzJTw?Ie6fjWOR%^AeRAfzdNvFG!Hwms~??A#+wVh5r; zYh<2sXa{G;&g7jjFXD5&UjrG#Q)>SbSp8&hsK={pS{q62S!=6*t*vaFW*iKsCBLQg zgUwEn93(q024uqGAVP{6U&B2|mH9SO0aDFDTF0*+8mE zz&zgd+}w!KuAp`8$ps(@{wzP_M^>8FxdKQ<>d;Ur-{+!Cmgqz7Ass%2ytZ($IndkP zYmz-IZR_2^2J@uVlrixUb|lhwKCRKkPfr<#_I~#Q4zTe$jXrS!1UeBNL^>$V{Rtfb zv(dZD358D5y!oIFMWjFvgnO!}1ZkF9H!51!1?5I94i?pzZxY1naDxF?;y|B{tk9dj zkfMAx{pYu)J|JVGNYS%f$DY55zdOI#hiiv;ueR$U-f95J>oPVAIvGb&3b<8dKu?)g zx1flA2*P16_$IY&ZMX9Q(FqnN`IBg8LDL?Uun_^%g*OS9i2nYQ!iP z<|q4XA&8xqmfYVNEYb+;fXz!nr_8E12D$Uk+bsfzp8~^nH0zzUI3JF?{B5t(yW`|bH=O4kTjP2Ym3|H=`&(Z?mg z9qx##RsfnzSDFft7s-i2)r7|5{Xy8xn(WPZFS#$~{Ft8%wqsZgjOA{~{j{x6z18zP zxHmr7O+?=X6EFCHvXPbxKA!0z+6o57?CQ>)unD%DP__3aA}fu%=Oj05fF@g3;Xyc* z@x4E!O~-AZtB97wDPKz`6^#In(`p02QiQTyLQ~N5Nlo=Rifh+xFB49zE~>kSFUk*d5k#zYhKx;9yHmwxA?yW=4>t|1(A(XoIB75R_(z9qahBs)v+vI1g5 z=|w*6;vg&8l#bTZxqcsm$6`Dq7kJ^68+vecsWfAs!NumSHv%SV_I!|p!pO4Vv^y9r zU)u4?FtHaJAw8hXzZem)A|lmP~rQu1#O?L|ELieYY_^30(08kMD^DFcw91 zc7LGWTl*6`giW~$vknl=>~kugBKnY1eBr+)Mf=t$}JoZ57Z3MSa>5vr9$w8F=L!*fC!*>>9L#XEfuKefm#_pRdRK zi@XjVH5cpgdzpDjV-YlSenLbPZ&rq*dvXbhF9Mme(|)!Ob%;E!#Gl*iZbENCS)q*x zo8i3++C{l?`;*A6y(=GKv5Iww(Z_9nRN*D^{O1`6gi&qd#BQT%e0Cyi*AIwN@$qC! zDcGmU9s3zf`@NC^lK+0mED$o8`Ib0SW~r{pD*t|JdF3s#}w|yP>DQk<*{1sVq-z|%wPORP60)3!sS3` z^ZCHwY~NMg{+zmn)5EV(L}v?NnUAx6g6J^cgU=EjMtkNT$DtHiy7mikNa35D+~$j3 zYI}HmpVzeL-Ug;PU<69_{awL9l`v{7$w%NEIVs$7E6#h013GHg$B{PDAuPI6{}e!D zOrq#hJ=AO<&v#iRZkPzN_;mZ4xd~R;pfWd> zp3#cQsaHCEKW*|JvU}}0x zOnY#^Sg($}I*8GwI`L{PaOUmA(`9s$%qq2R0E|;O1uZm&D`Uv~QZ~^`Q zGsIUSKJb!=W6&ne4~ewC&ytbIzN^>mOFx&}7c!FGJH_#pR)|@e3Mu-o9$^B?<_F6{ zFo2U6_~{3FFdkfuFV=gS>T5EjMq02p1;=mFsGI;P;qrJR!svtMIx%fLcc-Dbh=$c| zK=O03+U;Wsy@}hj-*Ybwp3NI3b-r~F@Nzh~fQ^edtahe`#>wFUw&RDpQ&LJfTcPdK z;u~>19jvG5JMrE?X!@LP!J0SiaCN>m(o=8ykzHd@91=ISj}=T?y6*njo^V0f)<%D( z084mZ-7z2($u0dte;33$yk_$u4sRxhZ9gxm>{D)sv?!JrggbAmA1l7GsuzCwpg_@Qeh77PI^?iP$-6c$~Gjh+v__2rxi)@j8{$=(OX)DyXsAnd- zjm?SGXPBK&nD|$VR?e%~Em<$lTz@&qi3w>yB!Z)uPhBS>Nost$=cyBbbqi<&PQ|eb zD+)1E_+bP z>8vC zsJ5=#C|_#y;~3IZqLA&f!D>qH?Ut_CWXKS{v^@|8VmK+68e_$ zx;NSmL49=bmcBlGxhCz)<7{5$yofvm`GSOvoON-#ZJ~9fmhGCM=H;PJ(fMnnHL6w3 znzfK=Hv|!HP57>HX+K_}t%s(a2?uPV4s^YOx%?~_{&}8a^4vi1FJHEAbDX&VMSn+e zL7px23poJzPBVe;oP4BK1Iqk4aeFddB`tk;`wPWwkWMT%7#i{#sg47ZsNCR4p>2{* z8>hKoUu?R*zP7~7xm6AA_7_rC1rw5AKP6Ou(}*99U$R23^KaYsfkG2avn*H_2lNu1 z8c35?wHmc?;Q7_A)G&&-z&q29&XC`0_)|1b=CoTJDr=}~AYHmekyBM+gdHCpS2eeK z%60c--qRz&r0aY`5K!{m#_f@AF5sHJmtN(rx*zk1->EIb_0RO?sD=JFyNmPxE)5?D9m!&n8r?cB=*StsE!1KW1(Jqi1U*_ORs%j@#W z>Tas7rFGZ5o7y|ri^Jl`!<<5shVIVFE^L;`x8bw??r&xs`_QN~)b5P3(S*xdeKMQI z#)9G!59|~7uTFcQAkPgp!9vrYqRH|{3EZ1G63hEWuxIv0lRAasXn!|V>E5}ILo^p9 zEIvqO7($?3>tmpiNJe-A`)Hfnq7L38E>y}1Lb^)oH!@1tJ!i`pn+DiSR`26sCVs`64PSk;d9Pfb6$dj-zlxCX+Q61 z!Cvsrm%DX~hIs^U^K*X0V6V}bVq&oIF36Aiuz~2y7~>&);0mR0>#tVdXwu*?r61Kk zarVkv>FyysM`Q2o5#t~)8$o!S;3c}sCO=--orR_&frTO2N9ft1 zfd=>AcaMAZsZ|RJfV~$#6+%+3gxF1I_KDmGRh0Vf@SN3)RGz2=)>m7Sig(qzyQY#` z%v5GHx`Dx>K!Du*LmWl4Xj9>D%$GmG;*uk0hn1sRTbo)bz3OjmZLRG&wO=M zfh0E;==9~8Uc%v7>~GYO>yHSYNwC)v^%lcO-47IflMCGbGSZYH66m&vNjm|0@=(4H8y6hhq>K=Vhw+`w?>Aq!~<=fL2-+l((f2=98bf#j_ zH^4zCR~EZGxbR44m_WJ$`ncO?FPtfV$U7)4R}tvc5>xPJly%%qs4^WapJRVGLZPrr z+7p78py!{bXgB0oe0-2#(vUdqNj4=s+qz6J$5#5g;U-}7OGbnu%@ly!tuya2g2zu< z7qvw6D4=e;LEhtDmdDPB0xQJm+v{Zld}{V}^UgjWuGwtW1iYlZLUvz#oV8$M4(HSc z>}YHM@jfS#SU*Nka@=N;(pgW|4ZQ5nfQTR6bvgzX0xx8uMG{Ct&Hb9(*H#Z)SWxta ziu_fdbEh@L9xoy#NIfg`a`h3e)N|8!NA>bj+uO>2o~pgyAqC}dLZh_D_2;33I=ylQ z7^@<2se~N(O-7@lI@J3L=5$tFAiCO{EVaR!0FXd@J|b`Y(8Jq0?Eop<8eUcocec)R zbtf4{`#Kyvb+@*C(AzGc{q<5|KEgiUjHDkA)}De_^JC^Raz!2L!->0npT6#2X5fim z@#B7@e*Nj^<{&RzR6&a{q3CeoFM{=HIv7;8v6{0h+j-$bdQ0tISHys4D$98rm_0n( z15|AQH4<*q=~f)|#sCPgIvuw=cc}_|N((!Z``6q020Tp7Qb2U3Ft zabtZDB7Y=EMm=7zieKI&ciNu^LKVp+H7Uwds?&N1z13UWixL(9jn z7MWAayqODpq#A&J1Nd|>V<3Dmyx#M5N2a&i=Y1yEJjHHT`#asxBv#s|We};q7njkS zk&6Vp{DKu51Dr7V)Whq+k9 zYyJ+u^_-+o`yA`uf&6A=Rp@>kiYw=pLf41TNpYT6D#MH!BP&c{4EaB#aNBkhOUg(` zvaf4?U@_|pP=pguX=4b3C$>L9%>w^nJ1`GyZ!OIyN3_*OujNyfq zo)5ETxj~8zg#m5amYeT8TYqK2eZ97br^7x`(w=6r3s=%@v--f5>zw!rrYL@l-L1h7 zPw2s3Y7-nT8dutf`+f@o2x2r>syv(h2O5kqd?RRWW|iA{3;8`#9zHKe=0o)ZH8Kv)M&U7mJL~CdLxz-2rvE`2Zf;OY*KmF+iKW8FW_*h z#Ni|I=zwAJenFkpsSMI0>lQ2a&!5+}@H@oPXOk7PK0Nf*xiCC&xiV{H+an4CcyL+O z^XNNA)*B7p7^pvk>vZO4^{%)(KT+St@LgJ}nGX%F?PUPyF)>S6b=D+&n5` zytXC(?6!0-F7Al^(cUd!#$1Z1ILvx!9Yxz^vR5~c^`gKp^&V8!l}Z{3?-m+RhP6fF zcWTdsnPYQNgy*sqImMQiPT)n1^qSqcrPLYxtJwt0@6}5A(5wIrR7iEVVCXIFW_>N! zb|7MuVb}Ki;;vbw#~VMxIJuyVZklZ9`^K^9~;320g2Y|ISD%! zjkT%=1K7D7H^v*t?dtaY#LKY*KzKz51rjH24?k?%-r{y^!rU=x9qjZ%SNQ!t*4wwla!&dfa=roSt|uq8H@opqp3TB z3!P`41hR9F6;DA1MnbREBT28u&?MOBsd7Xh7>~Fesfypt>H~jlxX}!L zi&0-crygE=^C;dI@uq$~h*q^aAHa=8n&rZ?ApWP{vE3} z;=F$6JHw6F_ZX!m`@;jdUVGc#*j4v_V+7ZYp^q5cbbl1cmnBkqUhQHqb-&j!nB>l> zKC%`J;>ZpW)fk`6!#myV^W$-IuwO|P=kDG{@x>|_7+)bn+IJ7QSD+Rjk0I1#5_g?r zhk>bLGh$YTN}NhVE_;$B+0wsX=iyRZ=I!;^p}8+0n*7FTX1u%anH@>ZIs0G@eW5qR z)$^#`lQP!GW^v|x?8#x|$q{Xy9`%)0# zF;kWt_@{GwX$Ksj?&TtvNJbm74tdf5ltQj>>m|LLFNS&G+1EMwP9+I~9+_4^8%Op& z;$=jrA=S{Bq)1f33G%^fh`4xdyyK0NRbU%RSPHik8mBFpnFBfT8DhlVEB!Jn5v29; z@d=eqe(_Ho<^tS)e@E(BSnkN|hK%e-wFYKTzLS;|)(i5-?S}~%w}rLVLmkzWCul~% zWChtXAht&FY+7v~tHzn`38D%&SL}Qhs@ok7%D7!ijbqIad5^Sn7gkPVNA~wza-GYo zS#3_XuTRay*_zrbS68WYg}W3O2uo(1HDg4_v@((VB?x>P^Ix2w1s8>*+h*jgG-3)d zPDStT-h!$cky}rzuy*uqa9b+St1v%c6Na4f{KBHC0eK^M!79uPD{r?do^6twG^C`R ztMz~;8s@fxxdvzLe%`9SoYK(uEMoak=_NfMTM>ZW*fyd%*ppbU3UYU3R=dNw4X+n6 zywj+8No}~jwZuq2!tG2R*fCHRz}wf)q_7nLh|>oQYMQ`5x68IFnM5s{>Lptv5bc^upY+3pNIuCG=MpFRtdl{FlAD z0&gIMO_M>xy`@XKGdJoRr3BjQJ$b^vy^CZxlMQO3qFw@CTrIH58yF@=J7^kP-X7NG zgS;8Y66wn+JxFT>IRN!L-@IP(27H=`3Zo(Ow-1{tvm`~z?Sp|VFd5d01HWX=G1kU9 zfx9~7A=4%aXe)m2X8fyNdGzu@cCfJTom2ige^lKE-)^(=*Cl5oEYEoE;C0;hwCqBU z&@#wUlrBv8mSK`4z{Hu2QG}mD=5P22izD#zob5%`;ysRL{FXa594(WIjAeV$WbkL7L$KDG>!JdQ5Z1-ltG% zw%09EbAj}sg=J0&cmkb`TrHbD#wgcO&H58b1(>zo+8ZhB^`R2IuC_RKTcVkI5RbUV z>!rWCVCvTIYJZ76u#6(=Y>LO005_crF0*iz#p83FdgerkEi!ji>4wphI#aoQO=HZj zbYfL0OBLGyA-11d>=&8^3~r^52r0YhcE4x&d!Gyd)7^u|aEYj_g{SxY**sp`ny!n2 zrs^}(=IiGHLb$_c^4u3Z{fHL0v-&4uruj%zW(+ha+7)LEI@A<{H@JoKGfZ zKkn|Xb<4oD7dQ1%eS=~*b6Lk@kVFiF^<52i-luANF0NYK zEb5%(x3fGF%WD!IM@J`TUA5Lvn%k@o@B0Wi!FDcDJ*2^Qb6)3_zAe2)4vMmXgJ;+| zZ+=AT!qL(?2?8f1vOn&jx;^!~^77ci?yJA^$J2)#og46;24%a^6jF9P?qdM2x#TK{g=bpcNb|_S)bF%Aa0%iq%wS{%zfx=o?#^rj{Wi}R*y1YZLl_UreP`1<|GagBQ zr_?s@rN;{S%VE)O9uAtb)?lI(PrY4dY888yxmyT7>QeRkZTQMwFFw-l+- zXLIxTz}~np@i}G~b};$bhYnpIMT5yi^L;@c1KA`i^2!1bM$ea*&0HbJZ6GRs3E!ZZ zF=xf1d|)iB<0HAUlUFNGK^ilpQF&fuo<8ymR*_rZ3QQ%1-o+6C;XDVO1c*2ecYQqK z$ixu0Za2Wb6-I0{EA`4;fo%3!WZPJW`TUsnWxj11xHr93nH+B{XYanHwGREgnssL{ zG?~1EgB?+`DTyQjb0}Dhe@cvqCvJ6=>K&;ypY4QQ^F@CspL`K!p+MssgU1pmRe5>? zZF_j6*M9b9X~=d&>AXeRkc+-x!n(MgnK%6^lhB@``vc8zDMf(t%J#;@ULKGpReDzP z2v1C*ieWGo#b8W#g)&5f+r=zj+}l6szy(CYv-jn=H?h=s9c*-t5n30yx5dLUGZC2! zGn@7e;K|Hghx{UV`sO1rYN!<(|B8w`Y-xQS=hb%8P2^R)Kea{)Iylwr3*w@gnL%~9 zg0Ae$?1JDmRq01mDT9M@c|v_?u~imV5TGG02jud0`cVG0Xkws|7|acY{EAHiX$r{J zI#GQWSkF+M zyL3gb5?ZgemT}!3?#_|XnpL%yDn@5Hl)onkFiXM(#uofDKi@s-oWy<-aP*aNO(y;- z3T^fF@|(N6tyh6DSD-(Iv`O&_^eED+9W?<+L-9u2Ez=oKW~hNc>roX+q{1ILE?90J zR{^zinqk?jK+Heydz?qHv!;(97HPA2T zn#4DK+d1cveGkJ8Aa#9irt`6f95BA@XmQP=`IIfIreBozY7pb`7K~Am(aDVM-bY*C z`WI%_?FBZ0eRp=E7Fn?7+@$jJsv-wxM5{3WKx|G?&Nv4982W&sdzE6cRLZCSd>)7{ zO|cJj`yx(E`rIne`OmNFLWznnpJYVCwIB2RgaM%(uD7zD`^9dqSj2iFhqbHV<=PvgX{P7^#3SB5wIf6309rh3#=H&8a zCIjA6H=d&Ey_HUpq_1pkFY7~#Z5cYaBVU1svYaXY{_GO!%-o+yb&tOOn=>v>t>D4< z6ov@cvpvPj%TMzzDRGBqbzaMPpJ@|*aKCCgchDmK*Ee|8VQ&a)(=^~!N z5~zqBWK&!41>^(jUa4(M?Zcv(AYzyNT*ezPO49{d}9&uOiUkIz9Hrv29(89Imt-xTw@0sYPZTT1zE>7E+$?1l@2@b%#V z(Sx;yk?h^q>oj^hD`%4Z_w_tbObJq2HRg~)o?NN;d{lhqtDaOpN!R(3QmP+DPd@p2 zf7y*o^0cR6!-&S#V=5ka4wh+=G(S&5;;rg){3r*KUpRxER!od^Dy4nZNdmd2%g*ef z;lArwk%b~-p6Ocf=>5mM1ZkBaBOE5V*?6Kit`QA_95Td!IJzXxa~Iq=L&?9mshgJuH}D7I0NvPZv8mX)J=Q1h1+(4)9YnK#@0z#uh}HNpv99m3&;2+#YY1T5>1>;9 zwu=vF7_9e;S6%7H=c7!~LCQB$>|e0a%jMevbh?(JcZETJpnsTk&fNqMD*-hLje7Ah zq4os9<7$*JT(1F0{JIk(n2&_IyMEbTFFiP{W&2`&40p<>n?i@uMv3UHJ*uZnxL{#% zL0Dp*;tYeg0mw_@v(<{>)iBS)mBmDY{JOt_icJPqxkox;64~*pCo!`cuY3c7{}YAU zt1WCq049mNzG^H}C1T}e`FL9n?XLx271U)sh8w*|B5A4HmE4M-0 zpB!`<#LJ&+L`M|g`VQT^1sL;r!}D;Unw#zE@+nGVdoQQ6bT409NXzv3K)GY$-TWB| z2j)lV}N5GR+#L`>-B1nl+Yo`gjKNN-SQ&q zW^94_8}{0&e3VbC({u@bi!(IwpRGG}7h~ql{&GsTZarhKwAPN;2veKm-j2TSaVXzT zgl;qOQv<8*aHGt%wmYB8-OiQi=1_!ka{91Qm0vR^e5e>zUe*tr)v_5-Xm6q;BFC8( zMiu54Tgp5!ms`lJ`4dq1dc zTgs&^3@?hjFWjNij&HZUE;A{M@U#fEkkhQaLDT?^bJnFkh14!rPNS9B5q3vUdhol3 zIX3xAdrHB>e_u|=OLbjsbd!r+0W3`TaqWNjRd)3i~m8`>6EG1i%t9 zM6@+uA%SIF$JT3Yu05T6qy5>--r0+eJ#vh4yp`tqv_5FxLTI&Y>&Sl1bIGj z79uXVRz$pZp^}`O6!{$-F5;T__gyh!uHfRFLFxc`X$G}iXXSW5j{fy=-8&mpB&(Fg z$v-`&s_!|^1Z)LawHSWZq0y9RMPHW{-_oZ^VXKbdXX?E;YXHiPiW`hqa*f4n_2o`d zwVYV(y&zZGy+t-)djUgr1O$T8!AnU`PoOBydkMh1obx`D6XkW8+}k*yFTUxoWIho9 z6i0pmgu}av_U!#Qn$+o~e2!-Z#1jQ+vzu9)KjV$^iw0LJ9Fe_ZiNpFE$(No7*#uQO zKO!}dcbLGz4jR^Y|GT~*J)*=f!$HZk`So- zcDvC}q?0_$tcpGRV)akS^!On^VvJ;K%d+l9L7~7hZi*`==qVsd?)}uO2!AWcyx165 zySOaQ{4k#|93l_sGq6_FZ#Vg^m}duuttF6c{n{T^OKe<}wUS=_yK!(TesOl$4ZB|8 zFvG$0_YXwTHr1XeA6{~ots#1%9mV=cO1}6Qe~=H4VR&eyk}zGB-{)C(;=#;fw%(YhWAE(OBO1f^#PSScEGf!h)`n)ZNfOgMdGjuPS;SefiR?)~_F;mm0&xvO^ zetP^>?3KF$G=f3y)z@ySw=lo6xZEKt88J`^(@eGbKCP~)v&KM>d%CK?BjEW6yLfUt zeg?r-b#uie@oO8nv^}2}!H>TkRy)UQnZuek`+R>gR>_!~dN?2UbUNAf zx!3tV*N)9@hNa?V?371)H1^UZqa-=+1q_S|?pjYf<1^-@x>sSDBioyIjTjA#@+Qyv z*Q8SL=+igynG5oX@<>|fX+(tTR^I?Vi+Hu@+O1x1a17R`Zd)z5QU-$`of@z|4w3DP zpV+Ow{2?4BhH)bLvaW*FX>~u=JLeK2Lu{xph_t%~omC6q0g>HBjnWCwI&!$vf7IzED6TvbmnevIu*+#s zDFSM)ZMnKoHfT#xTe2MAWJv?tr6R=(iG1*zKtSp&2MkJ!w{YgJXmGD;)CNvg`Ork& zc4qVCU?alP-!2wqP^#zewOT!zF9la1dM3J$)t6Cfp?$B9>Eyw|{ehvtZIMg1!DxDK z+RXPgdjL}~3F4Z;9^=9Ok=UXo_L6!}v@t#O%7`QziW45g&yUAO(}E%9b^(|!uo)^4 z!SpAx^!>vA;51_gjK{!wFrLa#&f4GKCtYXP6&pzyyaaOo}X|dw36~qsL8tFMymbD1C|wd!BXB#jpeC)@K&% zYoTJq@B0fGEqUk96aI;x5fPb%yppV`DEu7GPwt~?zV`3}E9)u(CsC<2X*2C+4XehP0#~& zRL0@D-@}@0Qhq%suE-xRH<%b@b48_U0uMJBAk02N-;zOg-}-4G8|RoMa7@&cK-@O<9QgB=-8G|88FYt8!BEXbQ z8-a2#b5Fp}WXu^)=OPeHvnC-NWq{SLa%o2*a%ba|lV&Krtu$i&nN&z6<)vIprG}QM zpO#0}wJHRqiz^9f%-#*zOJ+jYUCOCBp34InCGY@b%!DS(k#pB)>dXREDX&7y#Nfb) z@Fx3^{`;$u=K5#gh%b#a5!f6xFb2$*^l%xn(i0WeR!ro@tY0^CZ>~p>^G=gt76-m- zmF-y>48_A&P<ARt*KhQ8kd8n4r_5-#OT%uWDf(ZK6kQ?i2*X zUfP{|d0n!CaqpUeL6M86!zrDs*q@wlM|N{d4j|XSscIO$(wSW6zVGzByHgV@WZ4)C z?j~DpK7uyRk}4@4vDJg9IqyK5@Ul}8@y!JLEcR6EN2?lEq}_e}G^qhtsPlvpmX{!o zc*uqN;X+k2EQZyMo`OUYlSX=v6L3G4j;nz2uy#O!RE)Eb7ULag?rDi6%!Je3=(+p) z_v>9eDg9SSi8VyR!gKpBJm2*rbzi_p{=5!{7$d70aL2fg>~8v?Ov3Ni{1fib4m(_pwyT5U(%WC|o z`tR|r|KWFM5;VJ6|6A(UkGA}2_=|`BC%^lfxb!}5@%y(~JjQ?VoZ{+# zs{ZHdfBE@|{rS`U8`Zy1{fmG0Q}wU@V?5Wtg}?m3*S~?Uzk{!T^Ur?z-QVnBb)3fE zrrp$zKW+coRQ-U(!GR-jC&1Ki_7=EuO!IdaTLQ5y<^t(iBDg>L1BG_4ohm=NrV!ufLD< z%YW4W8SZ+^+h2~q`qLldpZ@rh>#zUhPk-D8JU{ODKkNHM`X9s(>em#-|Kb<8=a7%T zU2ZW(dcW-dBVT%t&?F5iQ0h1>t}UmT`5Pk%ns{$D5Pzx9{SwC~+i-0uJS!?F6W{Ne66R{!Ha zKNSD4R{W=b`1gN?CF1vs+<*CpKmV)nKb-&QkLr^O`2)}>=osUdb2wJU5ury)=;Jp7 z=KTnN>Kl`#E&N4s;bA;m`ygR1RK{S8>8nl@f@`{xsbqDl;k>v(b@WIW4!J`}Dy?5- z3Nv7kmd0Q+?%h z6hje5qn7Qd85-9#)~l_ZZI2h@QCKMC9^K`9w%6mV#?Rps=ZyF9eas3Ld(!)^ouuN* z+K5SBgKiHA$Z^Ys5Vf4J6?0RtoJv?6CV@wEmmUGBjG|R@!FKo<<&2OJwCTPi3}u62 zc%^AU_q~WmFaMCic~|QO{tLlfwvVRFvJS&$djnw81%vaU@t&bTu`{Ek$q-qzUT&Dx zB=*rlW0zk6;UFF`sa-2g-5NnKIs}@pZm6M{T(F5%H&m(Nh5BoFDHVU&fB)-MYb(w5 zJJtR^i9J#6sUUM>SXXywd7f<@(18oa;V>mA6pNAN9E|R?f&>5srD}x2zU~kNHfV?) z2_;Rk&-wm+SN5-*+~M_T+bt<;ZP)C~P$^#Y`=Z{I&EwMQsS<9h2UDLgqt;N;)yuvC z1PE!~K4I$f5-59l*L!3v(XY{=AiE4;o^iH}{1nDs(|G6m8Yax{UtG27J{9Z_wfp65 z9<|zV34vR`ncAxk=;iln&RsHlshZ|xa=N14KRoZW0RlLxI`BNtwjmJO+NvnRl_|39 zob%-py)IzH461@!BdZ32$PdA2F68IXUN!d)yIp(;y*K!`yJ+=u_<}NoyWxQD?{ReW6fr3E z9vWjgCv(64-2L*Ye3o9kEUdBWR=f4->icNzXcaPR)|t4ERbLsbo{pzaKJQ053s0Ps z9>X-f-fo1xhd_VNgrqFc^8S2#ZhKawpHj1a+Zqhlw%;6+Ju^NLC~~kc3D!f11P9UupG;vH~B)6}pWo6udJ`VfsYsg^r=72i(1|0{&xV&Bz!mLsJ zk`2dk@`7tM8)XQWJk>13vRimF{VQ+lVU{B6e&H?K)fyBHav64uyFm43mu8zz?2%*B)(k{|0Bh z*5G4ByAJIgt0krMv@FX$OD)!G5>{CZar^C=vCDrF#&;}Q!O+t zLL3I`k!frAHs&f-E0zt9q1d-AdOjpsoDtz_W3XaG#SF$KK4WcV@D7Ls}g96qxaXbFw{uXkk1LQ~!*! z@WR+b6iMVP?=)!+`1dEy>^n3jtEI5q&y_!iCu*bz9R@Ty`$RjHTPq~c+6Xk+_Lr>@ z;269g4IBN_$5Yy-0EJ#b;zuh90Z|T+iL9mQ6JofBa{<=kizxO_bdi@%$)-9bZ zrSv^u6my~k4rY2$!G_`uTWyT*>0(6mO4^g8w3p$dvMdTXFKstxO$&(eU^P;#@zef# zt^tnX^YiQcWIC*w`U!6V7e_4u%-T14WhRVmhMQ8~_fUnh)GSNm45aGzGJx{`OprY@ zO(e@O{CyIb&)2XtyvhNCK9c{m>ETm;Gc!J3+pvR0ij@T~g?Yf`{RZyl%hz^lX%F3V zTbKJDu)I~FbHx_xY-Hi{U|4|UuHzZi#rLrz0B-0pe*2mZAvYT%s$j3V^B}6hIR~gK zNjG2;i$q!bXScix{$6i&+boazOTe}9Vyo5lhNDPS#)43`BH?a#%s23lZwvIiMVXM> z>-*wFn0$y3U&(0O9fizw!u&Qrx5KOjj2)&#n#jftL7QDG*S)1n0RX?Eckwi)( z#3DT^rHRvZLI7J}M-IcK^Q@UWNv(%i`-RK{W)cT9`rh{uoiowM!*qJ183e9?U0%Xl^RrHqVP z`SjceB`{_b%XZ)EOi_P>fKnZB`|Dx90cpVbAafzUZZ-$NKbkx|Au)8kmf$*JK~*hI ztuN&4wfDPFk9`_CuyH|J3b!vlq@SY=tpIcO2?|J(r*x>>sTQM^rsdTxN&m5*B zWZgdADn%ernoZdZ$44E8Jzd_^9+?RN)jSVLbSJ`F^9|2V zI?R>uR9LuZf;hiMl#QZPFR54_F9@mCCw;&K^prrtA&MOl%kYk>K zJr{h>HyvSyjsrCJe*fM`M<@F^EUbeI%$%@pXDV&sv9sfSj9NaW*<-~wBP*7^ay$mR zqz6PLjGG?S0IMlDcd=p9%IEgF?o7-Vp%MOnm^!m2Rnc?{{~#_DnJ@nu>0zNpVNM2!o~^ceZ=9kPjvWd@!13A z1PmUEQ3;C4-S0l~=lyHy8;`v%t8sTgB(gP;K@jPX(9y_8KXC;L z&)>M#F=M8V`o6L1W=0^u4#}RM@V4s3Zc}DLQBqzv5BOgOx4Kgn4^lZK`(zBGP}QAn zEC&{1zw0-@?g-5~TV4Oox%id?_qwD764CCJD$@p?pbmS+-NMM=Ro}Da`g6LUdD(qP z!h9{fUX4A6}2)-UjP8M*tb8+PnwgL8j${OEMd z&FPw)0aw26e&2XKSEMQK)-%hVweZ8=H}goqF{33_LRo7a!4gZSYMNrpXYAZpYB!PZ z9ep2^KgdRa(TqzaR04Gmv-{136k)Ubt2J)-X8Vc)V4kj6Y3I);#03lIy zv7jIs5a-Ue!^Ij#^H5(P@4Lv%7K7x=v+PlekoU$Q@G@E7dCud2sMtUST5Yquj}ss{ z1&W8%f}r@6Lf;p;(6KogMF-$+n=eWLuV(-xQ zHRBlK<+j9$W9Wb(Ka;1PqUaA(zKJ+*=iyZ}2m*8b9n2i1*xH=r~`m zms!qGg5U4iXO`=2h;qmQY{pAHyAwp{Y_^79JFa@fOEd@uyKNf6WPr**CPK9^^U58~ z7p8-%M=lr8$SjLk`@nO2#!+v!93B5AG^;zB=n=x1+e~^c96k2rI71-xMcLRBzt)+< zU?T;gDjs5hk$>zTHRgo>-N${@;ZF~24mCi$L;nGse(U{2(My#PI`0wd89Q8#&e~JF zkH`o0NKSaI_n~D0o+Ii?dj(J{5`+es=?k4I&E~OtY^658nU_h}py77ej)w$A&d$bh zT_W#NcWQ*tK;}EI6h3KPjOO{ycKiX&Lila3W6mxDfD`A3k|x~i-VRUvnTAXdWEy=Z z;xZlQklu#Ve9Dp7gMRRNKtWcI2oXB*m$Yw~KhS>tgO!A!G@ZsX{3^Zgqo7`} zK8slRJ$86hFITj#sFuCBXZShMsl^?%<=2#9d&2C=(_rg7q0fjPqx0fsA&*E5D{vb= zpk}%mCDN$vCu_OAI-buskBI}B6-eZ)T({Yw=4y7aO%a4~w9PhO`)N4nLIx8TMdVRm zAS-o=FX$pFfUn-nb=uDlFVIjYTBG8nmsH}iQ+rhBoT`YtV(6j7%xe3&e&4(xOiO>p zxIvKd#>H&+wAr|dx)%e6<2)ZBxE|(Z=vSx%c9U1j!eJ$B?1ITpSGjNtPnH;UfBHqQrm zl4{Z8vkAd&K`DO|0PzS94QaeZ{a6<~r|x=^j3Lm$^7o9gk!~l6M(Z?0_{d)b+#6>o z?b-foD5}Lg7BDw6BxP*q9fPvyNSeGrU<5{ChVfFsl3o7hLPa}q9l9|ah>H$+BUH<){Z0X8ae2zbbIMR6md$-tF^c@>2T+UtD`)))E- z2Mpuu881Id`gm65o~ZG&BM2>NK5=F$uc&A+*&1nNuW%ONf;`~j2oY^gG9b{sy83Y! zdFBh@etKWXZWrFM>|^K^)m+YY(_#MaalC{ObPVZ=?e{PJn@SF*g{TmIZUWA<$=rGvj>_wbS)oeA{s z$766u7!)y+n3t4oG=hUjAxEVL6}R@T_$Np|n9?CZr{k!FNNH_l1z(y<3=-j&_<+8~ zI?H<6ekULr9w1DnOsTeeJ1-?m=014tofz;E?y@Z<)U}el&-&Ya?tEiwQOcxv!ZHW=s70_uZpfcio~aQjGq&p%w)Eybsf=MggIx4Q7f>8!3h`uH<#HcKnz14VEh&t1oIUy@O3nS-|_mWR-5y%NptNK zzc8Gi%TK|^qEcPtOChz{#>FIfz$Ql6v_tSiljtAhiBrZH;hrhJ?^8#di!YuubXWv} zM~MCQ{LvOTy<2i-Q@cWD!=~8Ff_$egJ7uRC6NV5w4hWT{yWx!C&(S@f=(-!|1_8J4 z;~Ks*^Mih&q!zmZtbv9e=gRV4xQ~NCzU|9~2ThtaVMunaVYz?3y6{2|_sg;~WJflV z5-`u=EJ$0%y|OvrQq1_CxEjAU-fhFOrVvhe)xb%+lReaF1VT!X?|a^*)Z~>4lA;dU z(-)t(_6WNzcL?jT6W8#}bq+om*Fl2@Z#vtELDv12?z6TgT}U*&X)n76w&!f#xEDI= zhvy5+CVxl)0CVy~wrv7zCmu3piTpeh8}mp5v!E*~Np6)3D}W2~2R&Q`I?6Y6vKyokIMiNLo3L&YsJ`gWNWih;|+ITWx%< zd4WNtK;grql{I|sa%`Sj=0J{e-Hfy9Jl+$>SC`EO?^f&pByc%y6n^)JVTxm^^Neic zP~djc1D9^n???l~;j5bNQPIAlI+y|y772An!zi@eUo?NU>Nfqr&6Cht)JEPmg65v5 zC)^Cnh87(O0+KZpg#7)hy?A`x?Ewv6FFNuQ3C!2_`f8i;w7`7%y8927kg_JW49zzHA4i$BEhzLUt)0APqZ z9FIx4e+~16ws9k|MW`q!%smqw4XaGfR$quHk?AaCc8B1j7pSB4sDyMs3`%?Lv1ZJe8v#UsT;b;D#oUZhnO=2 zr|bBcMMP>?T%{kJb>7TCX|%)T;>lC{-s=t{``8q=nMC~X_FG8 zSLCml88`)fCBl6Yn?K9~jRr4y7r0C6`a#*~Mt%@BTo9#W+s8}V`03uY$h_Pm16H^y z_W3iqBa{N%Xd~BK3dUSLiYkq?-bG9i0Y@;6H$Jb&t?%Y>Y+w$#=~e8y+SdB*mbIVi zc1&g9o_$XA)}5hFt8i-^QzAbnIOW@2irjB}#_c&zJQhzW=1%n&TE;h=z}jNo6XUWS z670cR*E6h2ks%tuEP3}+cgvly9|R(MFsmRmC;b|Bah%5Kob^~xAa0Xlx5Ux%T)r@~&Gi-rxZn3>d~{ysB~3KOeVn~rt}o0FF^U;meX@OqOao~-G7zI2 zx46HPy{G2VRJ`z7vS5hcfKKrZ1I*^oe>3=5|LuIf=!Z=dBroeZTLGJn$U~c0+nk6f z`_QNl^ySISWHuZNW)pGlk-I!lpPU3OmkD%|9%fTHc!Ow zmLoMSb4JUyl`EL$U&+5BPygxih3yZa`ecTRu& z2<&-J>#x}%PdcKocz@uYXh1sotAjq+d|coa4vT&;M?THgJ@PjTP_81D6EB_QcX{Yd zIniVG+tkljaAWNwEnM^Tg0P~*+dKQ$P#dG%l`7upndm0zsEP;rNJ~5fEBoGB$LWg5 zJ?!MWWn+tdpIlcyUeaWv)AUp6wSwD3Y`BIy{>_cr1P!M7;Wr<}O1s6q2ka5By7yyM z@ROC#*VJC(-Wckl0^U%sO+Bcf@elFEmv(skFVXF%mENQD``2=$M)o4XqCtLOTYnEs zyy?GojjZd|>SR|BG9LD`9hc-M1 zm33kI*QCm_wU~jIPD_$o^Y3)LwZN?00SH{s(uP!o`3a@3H6=z;&(ob02mSl<@hWi! z!MhFUa~xuMiEK-N^6l``W6%*Gnf${s(C=i(QW(MK;`$h$mM)%Zv`! zr=nN~eZL161#@cKu9n@M7)azr{YHCf$oqg}%y@MzZZL!-qtV&+b@wWwb9T_}N?VYo zn(E*D$y4gaE_u6M-UY$kz59)*skwavs!%R>^1!zm0rK}5)3pGgZG_fN?sjodW$=4L zG)EJ{t;4wI)pQRqHV7Z%KHoo)A(bSuVs9U+->0oDZ{NqW_t>D%qX(r5u%B7`J>qaa zBgmxoAp|yY=Amzq?pRL{JM6EqAHp5K1KYNRj-(#f*%$L2--wYCQuujHI3jrBVO&?Wm($P_=#R#Y7~8;;GoC7h$j;?X&o{VfzwClS970>W^&`(NGJmCt*WB8Fqzs};AlF)JOK z-^AJ3ztI!6RasG<%jWjJY%T3`i%@+6Y{ASL4#kcUL`)Fvm-uQeIK% zbSl2K`Ai=nR)D$N0b$21s^m=zUuCWpA*u(DfR1gc3)LXBnfBNxcVh^{mMNGqV;I1qg1}ai~&I>;Rb-;V=hdS#!_T%`H=*H{d-)YDNowW)S7YP_~qa{P&f3u+` zTbx_x;@nrlCHh{FTWW4R``i0lXF^iR?=vP}2o4^P6ErgTy_0inA3k#fr{CI#cir=# z-S%5vEt3z#d81w1&{*bc#L7t0SibdgL>`($VE_A0YSziS?q=Hv zC_j9;YeZu6CD$U&gS3Nl z?nxHBm6NA-6+pqA)%p4R_K22~v2PEo4JeE(#glQ|+J50kX#%ZQIyc1=4Ot(5wUxyw4|e~coMPnRq9=xbB$RmRMN!I1dsi}zn2q(uyW zrf5}uN^dE>gN8R~cWo%=-CEcm$H&wy)q_ zDAUBG8Uhm$+5x?l9u1p^dV)Xp2}|!tosA|=NruG@ zxqI=H6P$DCD-vX;&lrnz-sf`wrn+IA>EM|FF^ldOu9oJ*?ygwRlCHh?7P zvbPy}@UgbB+P+LIk{P^J7?I0-1o7r(IYME~XKHH1p9I^>w{}8YecG!hcU(u#!G(^> zBY6$oPcp=;yQ8!APQSB*Yg+p{=(5|K`SFjVN1zK0=@Xp<%Gq31ncVntD!lS@wCZr! z?ttJ#W9bh#%AvLi(jk9OzkJ>+ANLdd-t6wUSuTd2pAY{F7E(U)8e@ zMe`{_WEA0dTdj_u&k3-X+NuSg$*Tr-)$+Ww$<2a^%eY>*SOS`q5T6_UHMOYkIjpGC zZJD(16qAqVWVsBkaIys*KbWg&g)M)>iaL$Xx3ziy>a-XBR_ zBixrBUJy&F)s0yE>6KOu$f|MU?|WHhAxv?iXR5yFpmOgM4=U!UrCwU)J(Ud~q^Y;x z{`#rvfX@tN+yRf@Zm;*Y7b3zu);q5Qu@II1_k{HlG_B|fGkrKtSo~h=jgg1>*+9tR zGnqS>A8m;dwrpZ8=N$1i*pYB%N~w!WDo4xw>Sj#A<5deS!o(4OaSLBfoTQH`3(kfR z+_E!wil@r}s=aTcdyaoBko8D;|7{<^jM=_C-vASy^e&~%$E}{Q%c(JUyh0@Pi0vvmg+r?!I*VRyNn2hb#b>mC8>c7X&yL>+|%q^D2c zU9XAw6gT{;XW{Z-GkySL8~)Ch*4SDo#^}GEcQvGr8S)`S=Y77qj_^K1*QL744eO2f zm4>zO&XcZ+DCq$srA0=J3Nu?IqI44{$tybRLz2I?{)k)pXpyF*o0avcPEfXY+t6=(Ve2l%E-&IdoAUp{! zkHOrgTkVY`5c*g9_bl&}fT=Q|P@*Tk)!3K8F9?$0QKdt%*4`-aFyn-73HoyR_v}!O z|KJ^cvxO&? z<>+4qb?*oDb=5YbarTcwexq~{yPOMMSQjbyRCw4(<8j@T5^RWTsNW6bM1p^yg$0UD zqkqy7_mPBvV(p=STg5q&G%4S+ql5Jl)Ct>Q5T5FDmz5-qt>M# zR&DuDIgQP9YVRf2HBzn5X8?FL1i(ahTzGWDS0h zC!Fybc)nc4a|g^`CO0WF;&d%ApPURbI=b@XDt}8b=$mJGOR?=53`)vF`uwJa`}_n! z>*?PTCAQS_$J+xA@6X6vdAPc>R|4hHsc#F{cMCfneAQhvU1i6pc;c|0K{|FeAqh4S zK2KMH*s+98P}iVa8?l6)7nD3d@|W)f8n^$ysoHyQBeL|^?zdJCyPr#muX61v^c9z2w^DS{lZGGQ zCsxv~z$hhopRkKXke%Hl__H|t@)J2X0rR38!_`ck9vp81KH2nUw{4=owJ`}GR7cyR>SccZ)Ip zHVKw|r-eXPreO>GiOZHQQPJPvj1|pf9rsR$me4qJ^WoX=m!R~mcWHJ1@@}xZE0-PE z$>BG=2M4rNpZfQHNqNm)JPos}?CbB3-NT1G^oQ8T__g&qo;-$8QGP}-x+EwykX^85 z>P-qM%I?`;7+ba75-3S-)_S*azskseeh{RS25TG4ep>@`m__saEDd#hcF$o=Dt_L- z3J6Kp)4OiZKHMZgO{7^C2J@*xh~Z-sBFNsQt`={(0^v@?fQJMqMfffTyy6B-cgfQl z0}5h(-yxxj1h%`)5AUpy(;xO+$B=lCzbMdMH9{UMK)Za{|NY*0z0LI{K)RX><9!#N#L&dz zu7#t2dVk2SQ9CpJg*HcMIL6rRZAn$n@n_#YiYD?D>)XD6gLtu%D(9m0MPAZAF1eK$%oV@t52`^s) zHuYQGG-RPiB84kE_;^f`E5h;2Ye1W(vd#Bck%L#N_svmiLQeg%NHyJoN zX0^@f`~tyjk^OBi0GK=aL4L2W7tY~D?l^nd0V=>^dUId`=4g}PkJ~V(S$Zi0rS6mq zXdnE>oS)(kTfvx@qS^rVYm2Yb1<%~QgKgElA1dVK)5$iyIBGlTNp+xLaep5 zwp8A=|Kp#XiH&!`PR+d*m=1B(1gT%J@ru@$oMKZ*CW$U(s-HvaQds%#sMxk!H3u8R%kYR;-3GJdo=9(2dq<+v zddqZQr%N|)!ScrWa~t&Q*&^#R8#&IKeH?%Qcwm(7h~`5(iQg9@i5}i)*88u0C4PCj zyJ6&AZC(2As{o=SrgVXV948;F2^aIT&vUvEf|rog&Y~q6Z|l#QyiwmjpNLz(L*c2O z2x^=VxFb@?FpWX@G+0t8?xZn|kG!}{NLRw#ls6G-QJh7L`(thduGS!!-CjIqh50<* zl`Kl6y4aF$JvpnP86Z9h#Kt(TZC=3ig;YXr_X(?eYL{t{A*(YkVHM&1I(>)myQqO# zWZmI2E?4=a8N{O%&$A!>c#Gbv=705B zJ1=k2O*l5UD3Tz^`BEvIB;N2RB3w`9?LQ@7!ANOM0;|!944qDLz=X(HYF- z#|f(0Li!wzxrh8PoV=d#%o^>Aq=q}@<5b_DPiIk=@5l&}=@@@4a*VJlo5}ah3&4Ey zdaO%6KwtqhS2&^ZLc81qFd}}3Y1_WB>v}wdp1T_x@bw3zqX9U@wb-MTtl$X&+-utf zr$N=?-5*Izfcg1*xYKH^h3EZB&QF6!khX7}pO}~Nw~c(FeqMAc9dECoXoeS0|I*h!yW#plTgK8`7W*gY z2T_&%9Qka0?qLUWBY$Xw`uo|=L?m5V0!aPbJf&8;fr~V`1Dg}BbBV(1885|-Zn-ss8VDD314q%L-Fo_ zo`hRiR!J=BY!0U|>5D6dB!dZ~Nk>!fvtKZWw!V6ez+8VR<;y1~xcnmOhoFn%O$KRj z63lx5BP1-A`8-}RTdDp8RoU6oH3=+~@&SO*HTWHNP>ZH~ zw1eE}u7jP{ahVW&86t(T3UnQA)X1ECs}0TgNBx++>Rtsc8+lwkyvifi5uioogh&3a4a@wBws|TZgwMR_sqMLKP7aMgp#1=(Ofo;TN@7T)`#u|!Rr`%uOmZ% z0+4HdwS-&cA-mCss$4kq+K)DZ85X8-hfJ(RXHui$u<^n&jG5lsr$#Eq8Q|iU753zT%qP@>o0sG60#|HsHhyLKV6H6`e{MBZ^+Q-Lz0ByRC>!dvR zA(vn!0zr0s&pvUC@Y!}(cX^YpQn_GoLENMilKpN+BAU8g>wa%`)R0%*Df{K(tJ}i( zeABbLF@fOtv>*_Dj2}{~(DtCuk*n<4m_hk|eEO|V9j^zfv63@$)u$ABoI#o(v&?%{ zx~Ame>Q7)+&s)2C0|etGH9B;s4ieEXFl1gfZwL^}cF7m-Ivl;f^J)3*+VEpd zY$3QENy(yjpU+PV@2vg&m@<%dpukpK7;z-F`am8?8?HUrXP4_RmZH)kb+t z`;zWgUBnp)jSoc=v89S6d18;Q;u`1OS&&HL>pY?1QoK7#D>kTu+b>#}b-DX{%_DWh zGySb#ce-PI&-kY@6Ee3HlIqiC@3TAM@~L{^c;=ZDp6LaYnUixevIAVFhY6t&PiQ!U z@rW@5c74P4t9-B)&K`+Ha*0ZCH=~*>a<1_#M-_6QQ44RX&9DmaxxTtFA#H+{ERM5@ z9l|!cYih^`&T!`t8;P)t@I-EqjrBskguFbd)OUIs-o9ZwOM3W9FE@ezaUR=emJLvU@0Z@d#VR0z1`oY*W4Vxg4af2|5a^DD;6@vG7LiK z5DA~da~p$v2bT|=OzkYLoW9>BKQNJjDKYdK!p7~ZsFhFo5xc-8=R&t2M*=S!|NBD{ zH;N>}g|bf7TkCagKNrp(qaWM!mfs*fV}FIpw4Pp&R>ryQFFf*XueS?OY+gMb%EPG{ zKott801hsbgp#`YoYjT%%1@!r_Smv?@WZeVsePy0 z(AXMj?WOILY`g0{Wwc8{eFUm@n8g|k_hobg{8J3V8DDUQOpSCt-Hcd=)Hz+6yOapS zX24^N-Svm1r;k&>b|#ZMtm?!a&)#5Yk4@=sPQuQ>usy20yA*v_hP?#Cw2AqMkO(-P z@5CKtBJJVC2t_~V%db>pJQVpr--3trzv?$-CWn zLrS(d_8d1x64O^_zA>ZD6qTIWAUVCh8_XoiD{$_}0C@6De4`LTSKZHL|0;$eF&hR` z>j|-~(_18eMQohth5t~dUFpnSH8L>8u<<~S`G`;)W21k9OUICI>T2J&B=G6M`EC#> z0e!6Wea8p@*jG;0Vf&PV`>&~oY=z0%!^ z6N8>&L5}H6#*l14IR#dN5L|>@pI9ba{oU4QlP#jC`w5n-TARi50gMfaSWVSIo&a!q`-OMGS3HVC2Jc&^`1594hgUbPTf<}+l)h@fMB z`>9$28QX*L9E%XBr&yWsIJ0V(@lsyV1-D2W6^N6zJQY!pfY)5=sGshmm z!k}o>|5Y2|kQ^s@KR#0Mao4t07O76nHS@2Fg!)rdzxAE|a>T|H( z0)2J6eFHb`eI(&G#n!u1qji+*GRHR&Y`+zEDU+U zq%qE7V%<1LbctHijvGI^lK={MWc0}P4gU_qfh<^jHVCe5;iIN@h>GS>dWxf=)Y*L8 z9Fg|w9zLhf_CWsfeR~(}+FW@$g<@!7FMEIi=jF=+x3vE9)uRwbJvtforGH=14jy^7 z{9aHI62pTUe`%o(1LR{N-EWNKO^Q~~UN&B}ePR3nOwUuUM0@KJXKh}drCGqSp5L1$ zCr6BK`?>oGx1wisrisVLF#MK~mXHAN)ls}*n_*X&Q>fFw?AOnSz5@nugvRm2?1`sI z)6s>QB?6lsUd#0?O zZ||n}o)5@0md?k?-Y%@0DRuk+CFf0KS+3GNbc8H~ap-R|Bgo&U?*sIr^?%01^ z9afNloV-5j`H6Vwm2LAeCT-6^LyW+fYDDJJ!|xkT#%%b3>7ciIVPJoA+C-Snk>joy~r__I)E)tPVoOzmhMl7kyJqJn&rHu%J{me%&z|SbsweU+<4`{ z-MB9?+bcbCAlbfXruOsLzW(&~B)l{b`yDSqnZgeFI{8vvks7<(FEdPy*USHCLOhtI zG1KPuna5p621e0y%A|*o59=M}voA8)xPH+eQJ(O|MsXH}{|5InL~HEJxD0GGrnlw$ z#C#$^JGaZgEzTOSi=92{UOnzd0D{aj<;*;PJ0_Qx~~H%I9*s>gQv8x02r39keSY-+*{eZjv-SWN`*lYJnt6qoMppR9h_a$MYM(P+RO{o*{Tq zOW3d4*|`!ZIeZ4C`Q|mNY3`FxxqIz{3G(u}5Sidt)OXXShwP%2{J>2c-MwMXopocw zeru!@G&28I>?9l~zuV{1McBaAi2z+|JJTvcmBs4gc-Q0`HlOm^v&ol(W_+E6et@@0 zOhnZnmA$W=ulxl02lainA;O;1 zddO3UXwWCRt(c}hKJ~+c@*2gJ&$N0vS8fN3DhisD5sE?Qmy>pPiioHIPpFXS^-=lF zda-PXv!r0ZaIeo_fV-tReAJ}$*j$BL6h1p(lF+HSrWbA;{mB9<1j#h=-#h4e(uLYJoWE8vT zbQAI1-%l(=$e_jAV5D`2J85rKWgd{P{ml+S&(ysAIZ(~&%@7=BhFi-E zo~zPiorSFyY&AU7WXgL5PCEWG9HpRmrgHJzq$nK+2d@_8iyx|hmT2LFs5wt)bJ zxV1JR-4*$GlmYJFf<-WbY5VOpu%yZNnVX8J_G|Gv#{2>l;3RFS?zXw&_U}HWyFX+% z3U_`eV8rykeyv8;DIWYJ^2vR5k`=KN+aka8B3)!+{#|IZpW8k{fe!z4EFQ1!J3WAD zR$=1=Zjg=r7AN`8vz!sLJO?kg04qfAuX2fb+f5yy*mcc3u@W+$7b-d6Z4vj*3rV*X z-*?U}?&uFRADK5jXv~N%@;N2lC+5P!%*2>7?sh+@3KE{r5+r1VAp^p-&228@#%6?d zzJ*+Wr^ga_*46ypJdg;) zuGMGX*P(SjzCGEwdY9L5T`rMr0{8Zy#npdSuC`wIFus$wELY3V)QLIoXV}ci^GD{d z#noW@61&?0jfUb_)BL))48xtY*Hw5X#m&6AU9QOxsXShXb6B|W$UdZg7`{!b5*rY) zA^a#t3@MO}gxxd=Cn-|Sa}VpVNB_s(N&CRqoTtjhY%oZCCsAp8{h3~b^F&(g;}2|v zoq}pcG6BuPYoFqy_TO{^_gdexNGOd$XkhR;yWe9gj?5W$+Px~=0A?apocPJ)00Sdp z27kM3#S#8A97V_GaE5fn{#v{1C*$gzIq1)qrO7i6w$kWS#+Dx2LM z;V#TzGdtZmDkQi|VJXS0EHF^dL$Ad5+;9(wYkR3<=2#@poYRV3wrp_L_8me?0C0?8 z8BeS<|IqaEc~fw~F%=+6t8W<}`&o8s-@=e+p=YcoQM=;o5ildzZa2fFvRO#%ryfmn zoB$Q}AB#s5FFHRMmuf$NL#BL>18R0*N9;8C!w>P!Dx6BUyy8#{ueM$V=k zW|@d?-ACh7g;lc|+9~g~<&zxAh{m>Cun)WZ2q@6TJ{;C}=E`FlZnU+YLs4DId{NWx z3#s7`L?OE;1!MClqUZ#WiAA;;j0ASj8$lEYHpWMOPWrHxi}%>nZ%E}^-|u&sgy{_; zSQ%SHgWQ()$lZdG1*eq-&c_WNvGjNsJNK>#<4?@p-6t)GyJXW=Z~@7jU}`Mb=9c4v zqa4*KH$c0Fv=?+6lrWdfk+rQiOKiLOuwZZrbmsF777@P5{j~34Oat#}qm&%CJ!T%D z2f#Q?w4=A6ObAH^_~6Ra!w=1T%hiWcG3?JP*3?|Z$Pf5$42$?0iqw035Qs?`hlVobfe|rcsIAU z@lkGuJ}<%Z4EEf~(ALSS;wi~5hgxQ=jxS#&$jE-Ae7*gs@i@EuPN5JZcD??a1)i?n zh@|t?n%jYQC75!@ea29BvfD!3U((*`V>~aAHG%lC)BF48D&tsW*bHMz&Vi$k429 zu)JepQ=mf4tmg^L-DRDZ>khI@DX~;H3|z z;oAUmhp(+3^$nI@^wHedI%0Z{l8%&I^~dJ)Wo3Lg&Ujo|6*9B-u2p=KuRcx`pwZq( zbTD_PT+w+gUM?V;IT`>fc$Z4Ef@hFpuwe`(oQDVIwA^0)bTgi{qpS?HS9Fx~%h{oY zotM{sthLJ4RY`d*%MD%dCyG78g5f97i>8=iHW`=w@g`h8Py6n3^V&%jd2cCJ-HeEOhEeb2K9 zuPDS6;ZyKnf-yOn2e=G*mwAVd)4HC%D`Gp$BQGVu& ze9F!5%7ov=Y!uqWCviXv^mGda6GI7SfxG{qhX-+riw@|^zqRx7J%{?y=T%cp{*sWs zvCcj?{fbZY`Sulfdhh_dVxZhZEI{PV4TK-MTxOOM>B4T=3`2|4suh2J`|Yz16xrgS zxOz84ApP+-weo$!SDm<{fA@Lt$1;`r>wLFfFy zd=04@(FmVlcfFC@HDI#!4<4X*0M1Z%&p%>i!uXH4n+(A~HY2ypeT7W047v~i75V`4 z3x=~+A2vMXrpLO@#H|NM_O_zM^@z&Z%!*z~`VmVy^q5Mij4)l`YgT(esh-G}snR>g zU{8kH^C@6b)gc+k)A#INwi`Hea_o+dWP@QYiBKh}P$^`Wl-o{fG`z7NgYLXiVAotU z&tGtws>fZfr<*{7#P}RV5xRd_S~iNbsXJcTwx;7b9 zCM^NZ<90qbWN1*_u4DM*+fU0W6u|4O^y@cze%K#gUq0TXp8=Y3dF-aGx5;EM^T7Bn z_8(Z?;l>OxzxHRMH4q-_kL42{jO@Gprrc5eknW8Gu0XKchrY_k!9CFTCxE7FD55uDaf8AEMqA{ftv-CW4VYMHd)8e%cB3#bD5>08pKjwf3XjIf zu3&TOowU5x@B5%GVk9FqQFg%QI)HuoTppAvexHao3;y1(%WDJgv5wp@abGe_dY8T% zra}IcvIT|J+Af@98I(cWFUkT(yk)pU>{DL*go_`ItuD^+biz{$7UPxWc74Ss#jzz}ECO?LqQ$N7 z(6!)*&c}WP_bum6q8ZDCl#1I?<$dA2Wz%Lmb=6Fy>xf%3Wk?>a+7y)^2JP4y7!ol7&0tV^;C%>716t26Bjm#^fIA# zsn=d=<#xHs#Wa5NKbiIOy4FIdZz$!d=ljAOK zFd+^sPoX6Uv^Z~529$ic|B4HDqMz_R@uC45bxBgGoPps_=+vB@p+$`MJMm1d?8)2v z`#d3-;Or4z%p*nbmzg!%wgJAl=dSGf6g?UKUKQOr_&>>xsVIXN|PHNElPk%h#$GWS~ zW6Uc5n8fRQb$qGL>-gU4ue3VOicmqS+?CU1=~B5lPhFsF$L~HDx5YU6SplaVlY)S3 z70mCHm7hzuIfp;rgmt-tPVW?(_P#&9F$(v_?~OwP>U=LxSy9%yb_ELU#qzcb+x(1&> zie;ptIKDL+EKOHy2?TPReZAV0v#;bX(DHusT;wikv-T8}x{TT@#Xzy^) z>awRF&}i|NkgW^GVeO($e3%ez)kC&BOyDY*qP!E>489RBXT6UP?oxISrC-s8B_7Ll z8aiv_$=C4GCWssFy4U8i3Ev10^qWGuz{Vd{2`GvH!S?a?k;{4xg3%TmWsvBP(}(xw z+h@nZu9Rq)~?u9XT z>H#oS8}s#Hyc{2J3-XxRh$YZw1YN#b#S^aEqmi{H?P0}7=6NeyDrMdu;PNG>bLqXJ zCDwtBwAew$>|T>m!Tkb{1UOXsfm$`xZ&qhsh1xr`A9|g(VgxB%>y-ZSJI#P_U&TzN{3APi~E@mmeJ&QKj zoAE>S{_gY8{XPjrL0XKZq5f($B#?Gyt{(g7LeHSHg1<0sAmI-*Ei6PC8U{&EcmF@=j-5p`AVZ5j|9tvsEd*fCDpZ3Xd26VvvM zd8K!4z-s9@J6U`C-XyEbEoslU!&{3&RHXxhXCYD6=G&)RJ-&;I=e<0cM>8bNYjX$B zLa_;D{MskrT|1q>KJtH5hg){o3B1@=JL#s>w%Y`LF&^}R76qttb4HMJ#$GO7@6x?cfG1v~+HKZR z7c1V{$8pJ-2>Vv>x(HfZsv1l&{wlAAwyUMgCH;r{l;4~a*Xly*?Ic;jPkN2H0jm+{ zG=~R#1P`ZNP4}CZGLBNRyy*jibBM?kk(?1iJKq@Ck9I?Dv8ahu*yXF{;%`1YIg^ep``k)EK1{anR3k8Np;`*KD7I-= zGb{kQw>J>rrGsKO^yV=~{k-=#tekp{n?KeUm_Kk^svE#CDxjMjP7`9AXYTLG!; zEw5&;ey_&y+ehy06|ad8;A;*JH3W~T$xhOTPDmmTvyb-2rVkX6RgV4s?a_W|Ho6ch z#8z;wUyCr_^3Nppn_yWjDJ0J=QEdItnGV4kl`>Zm^}lJaXxl61Phz>`H`PK^yaEt!Vk_u3KX6Q z4-Nmebq6JVN~R;EWgg!F00Of~lTe-?cd&?D!8-fEGjlBa-w=d%jT?;gVfqB0^Vi#J zZ4b*C=XT?3i>S5qWA@}fo|!#{zqa>y`lE* z?4QnCJ3)0lmGVAVj*C?f3&QoQYJ5u8g$FzaklVkrhNw9Aqx^0|q&76FNVvEWz#k3q zAE86rQF${L&U*xINd3TMdve)tly>9$_+5B;rIae%CS1`)y8 zlvYkKH5 z>rUDW5A>$5?CV)9$06ZYo-6S@d5ksD;bCFnl$w^T^}WH)q7(L=dDLJ8y`;rH)RC(v z*2hl~9Tez>X8Kr7`Cvj*b=G`a%?{JMSXY@itLmA%A- z8l9Mz6ACL&PjYQ{XT*IW;=Xy)WB+XH0gH?r;Y~!o$s(MzvQL-8Y|Ij^2OWnOW=hMu zn&v_)FzH?e4+a!lu|4O%=e%cf$Q*BKjt3#8)xC9P#rWc4>ojpZS}P}{$hWoBX0s~%o`IUtqtQZM=(Kwv=w5FojO zCqVJOJ_BQjiw|$IbK)+eb}cmV=Jm|8TLlxl7hs+v*0Wrr+xgBA?!l6%ph8^*){wD0 zl_jT-<3xF&F7xYq(0V3-(;%M2Mw%oI_GGRDTO>d|4j95U?co~O14`qlb>d{OUglBW z2@fVD&+$<{FMq&-Q^d$NtK#8>=!5Upz?w5#sV&--JiaWyDzmj*^q>#K+3`GBXW58WuEsl`C0O1vPfzUE zrRiYrbV^>Y&ZhxFl1=y*LUMdT5amYxC1+zMfyL zZJf^BSjT1j0w<(8nwwdxzQ+dmP_KA`$5tCQ>*Pv+-FgBUk1tz<?+S3%EC+c!7Q z0ynSs>t>$&=jPdpM1Ol(P0Sy8%1vp)Y^lUp0obyj3;jCBelMKT`AdhJJH7Gzt7GSHdGIVfRhkUMA5k_TuIqv$*9k?~J0W1Ue#@r4g;9 z3;NqpLoM6A+00GuxQ74JT^*Q9d~*2p?4%pieq2t{(0Rx{2sHFx!ni;2N{2j=MQpA# zP+KPql-w0HEu}#LS-4w04*B-6sbR!NCCJ-g9OD&P7-)i_S`UTP^i1pp;@PF;xFiwn zUZ^b2VmqlDi0WquBaTDDB$IGk?zsDy%&r^m5<-Vmuyt`iN_^Ne+JS?>(Q6z6>4XbG zdMJ0}V;~l<%FPj>kH{ZqJeRN}dtF6BfWzy;x~ZH?nn+ssUNwh*Ym@9-)LtS9Q(mZ$ znQNMbn%Qmp#BM;MFzW%^xpUYEQeZyJ&X`9S6v#G5U^FvxQxCz4ctRl#US$i0&uy57 zE!;_~!a&K{x)+8u3~yI~q_5<145WxXyq+bSq4qFHOirW?g1S$@j!6iuO|9cK}jJ>#Ok58;u<{W8>J8*W9?X$*)^3A6J)6Fe#a#ku-~3iA9LMz#_-Q$^ViHV zY4c7xBLZ-%CsdjYB<9(csas5UEeyF2NY`K0)LRtd9`k$L8<;0&nCCV^bH;q7l83rT z1?W4_7ablf@aU!lxC4U{7Sw_L#%H>P2NUOT>32@9TQXdBI<9Q!Rw}HbcgqYQlf$X70Q; zO4yCbH_}e~h%-}Dm!IolJxsI>+hcs!JKh(bSPNIsP(R;9na^|E*D*9QNxz0)`muL` zcsKjVhwu_Yv5)q7NA_RZ9E+5y&FMlSG>JZeg22N-_iR|Z1#X4Q}-yZ3gzjwX)RhM4>D14QEkzU(B_dgTLzr6P8 zJFk61Eq}v|e*&0s^EJ%)_RoJ!D8K#g_esWI-G1-$Km77v(ER3J4WGoDpO)=s_Vf?_ z^$U?XOW)1)_p$^(ejSwgeIoxNPUQdmhN>KXy#G6(av3GDpW?J>yHB0p-an-vkyqf$ z7k%z`(WfpgK%0*mtZYBU2n;?cXobA1O0dnpIbpO=T7EuX<*#|T4+Q%64*2b*j$dDD z|NikCVbA}s?_BgZH{b`@^It;sh_Eqo$`H79Q{qotbaCDqBj{5n={Iha7U%JHy zll(vWOS=CLndJZBmp=3xG0Fe$Z#vSy|INpL<%x^Fhcf@=-@PJf`wzQU9sT()fBRa6 z(VxGc!#~0E`hNbt?!=!@;5*OazvV>#AkRMqphs5Yr|yPl@%`biA3Tf;br&_C=0E>@ zOTTg=JT`xo4}58~>>t0s|L;KKeWdA!^ z+WiF9W*B7pucn`UvVZoezNJ6?}LP zUs0!+2HyWRr2eO0yzk;KJ_XU$2Nvhk7=0?EDEvw6WAcce(Y610XAtGp`17v^p099! zmVeD}`|~gN;IDrOboKxB%f0xztKa_aFMkJhyiw!lfBql;`IqVUx8K+Hxl4Wh$CvN_ z=mY=9503MLJNo@cCi~ys@BXRwd!O&<=d%F6`uBhNdp~T#?_BDyzV>6+@cX~~t)G1R zp^x+X{0+B%`T-aaujvx8XZ-b)G0niVJh%XoWd62`!{?V5P{>Oa# z36c-^leFk>X^Af9cb^bEyhpX4eM;kZf4Vl&JL>Si?Tf#_fbok@eVdlacSc0N3_pQ0 zi{o^k`Z7g_Ek1!&GPa-4RsRsPAN6N{__Ox`(YwES;Ujwah5d{7Npwvb^zUwu%u@xr z;rrOtr(a;C`Nh|x>$~5=5&y4q!r$JOzxEN(`v2T-f1W44zMI+qjt=#uE&nze<#S*C z`2EWr{pbq6`-2bvmAdM`{JE=s{_2me`t#qc>A!RFzv(A`iuf9K=o ze!lo`{`&sqfBKCs|6hN<`={EEU;e-HW1Z+b7y09_|H!3$|Ni}!{rLj$+xJhN{*6xl zn_=e1PyP@7;;#Pfm;UnCz3VT%kiU&b=JTa|{Qmumk^kl{=C^+SopZ(?KXPh+`3Uu; zoqlwL`ZFbJBCKm#7;=6ccwtaTq7qZZ$C%VLa2mRHRrC7PV&X)?F8PEZ><^!x{#^`b zHU^xJVd^JsS7BIdv1`9z zz(0H$S$^l6i}`$0zx@6E8+-e~L4N%R^UWjnuYMk3KA*zJ2=hDNG~0Ks?#n;@$mwEW z{*|fk^YOkj_5Dk~dK13$1wZ!ck9^nno94Ib&y9lLzTX`G!QWhSe7B!xm-lgh^_KnR z9sNsFf2X7W)tA2i(?_8GrMG|eM6mu5vX_5CVfFjRKlx@I`{~o=>&QKVZtV3{`Lj>q zd(HDFY1w@pt-lwpmp>){4DWh=`OG`I?A`%D1{bsFj`Fz{{S-Y(7_rd=RedSly z3*U)Kf4D~ZPrvlp-)N2U2cI9}|Kyv`|H^m%&8$)WwSClKEUxpaLpb>D(EDZe`v-W# z$0+(EZ~4+P*?<4_6ZGGGx!AwzdiU>tzRth+3Hs{SWRDJUn*8jO|3oLP^X}(uAG}Yq zMMwV0`hjZ{e0&zrTzu|xFaD=+MFbt(JhhzOAJbRaNnDxX~=kJVjjilIE zTkDpEx4cA+(nj{+FXs#7JagDJFz*ZjLss}G(xEn)hau39>(KOv0LY5ed&rg1)gG}k zWY#J)uaFL#{aGkT4_-s5bYa|seR!b&QQ}p51IuP+_UPfca50)-Ky_CHLD>w#Uex$E zejS9TCAfL0n~YNfHPSa$enJfoIGcl7kz*zkGF2d=0p<3ou4s<2W!g2i+oPC(^-2~M&%}OKGS(<+yj&E^ z=Aew>fn5kIace0DAH*m=%+}Mfa0xVF;p>F8(w_T<5Lsn5iWCQDXmeRAE|+mL_Cj!N zL=UaFEC=A#Bx--X+|JA_odI3QllNQTUNdr(=CpZ|;$f{qS4+ADX!Ph@7ph_PR{4j-mntTV^v+WGN(X|&-LU=b=|!(D#%>T{8|F#)^e z0j4#xKFat=n+-&y^Qy3KX6=*TtS<|08N8aJS?%*c0ar03W+E7?+0~E&Esa?5;4MJV zQdV*pD2a23V`8?_^qAq>8LcWAESE(v>e-@)9NG&YFZ5&nBCLfvExNVgq=qZ>Ldh$j z6N|H^$ab^wZaVAT;!bNOinvHZ%Roh?cfJW^7>`=wOE^c>JU=@oUhCuOxq$V_U$Sat zMmr}|O{TxzGPXTm@N5o>vOHU*CXL55*Oe+QD(dihI~LQcrTccs-nv!!ysqbbmmJ$A zdq?fyfE|Ao4$#CDDy)#bWIlzhVeq(t9HzK}QkbP*>g1fC-6~n3CZz(6)Evn~X@y1< z)5YmP!cp3P-+zcg?efO&AW>Kgb_RC>fw6C}98Of|3*ay#DEJb3sg1%O<~ANRnl9f9 zHope24+;{7+su7?$4afx@tVsAn`5!G-Q@|q!W*h?4E-wcyS*)PAJ2$K*sk-vEI&j3SKGcV5alQ4Ur~)-KLZP`O61be~ zrx-=#ctCEbh_JawQ&@8&l|?k95YFm+Cz`CaxmoOfD_RP0O=(2FazPpGC#pqHtV~}P z;?bbTg*=g))jU=d%MxC!=O^d+M4H~V5?``ZCZ-ThRnBfSz3}(A!STUYZYQ|xt7^W| zPnQbjg8`W{+MesoY-VTqGV`7p;8nd*Zm6g6MML0t z(|xX`?l5yICwMeF8lGZit?|p^Sj<4bmB~1;0MkoC-msW@vwuA}erHog z$i)$CKPObFRlZOznwDRRGk;HPU;O$y_w&sjgoB&-*juO}u1SU-g5~RwM#O8}LY!5l z#(~WiGz(+yM5HB7cGSGStW1is*4EYnm-7T4jiNrKt^{je^5w1uj2-=1HRgac3&PDa zlU{^@9ZGN4D~a&u5gwe32}YPiHK~|}gvSAf^zHb;tO9sjvFpJqpZBUh*zzVmO!p#6 zilIZvFK*5LXiw{-2_M8@$)n`5)iCwj)$x``o11!8tgi6g*4AA0ns~l(@wtT@?`MOR z95~4%c?Kf}O`$OTEk^ob zua*LU>5yj?d@`G?d9@GJFVuMPqx+p>kBtY*EvA()|G zQt%RJxTach>ZvEJ@%ld2Lyx?rat#FsZl6m<*w5`cOUspdgL$brIF;M9n~W?$Kn__d zNNzCC-N3p8=7gNhEaA&DvrlvPejg(H@|rE*?SlHMeHft>dg-15Kpj}iR{2qH7KeaI zdxGXVL%h@|l#SA*DePWz(!br?=j^yRQsp6oe|{YA3A(iQBudSkMN?VXnLVsm$b1?R}v;(gVOPYKMxZ4O~S1HZU6^)Lpg=H4yKdpc)=+oDNzCoh-VH8(Ga zod)hu)X#!SeQuzU;;F-BIoqb*!~mcH(7L2cE{x)Z3$*fE*vY2OEx)ha`PNyJ%nR`4 z`Q*tQIo~%I*`xNi{9G2Mx}@*VA>A$6na|*~>vG^5arSKF3j#S|TK67tNcjT8!Q&!b zQKSz?bpiT7E1CP7WpJ{`xv1osK&P1*h8yMJ<=hgJs*qQB1X2MFkoQ|wqb)o}2*-xy zQY{@1CFU?ItnO7()Ceor>r(^W;C8xHTpguTe_u7;6Kd&_p53ObGOa7T=K>nk8j;jj z3Zqzsd4pL#xD}`pkIz@Fh7<5>HF`x^tcx^Op4Wq^Z&HhVw!Z%2@H~XO^cm-+Fgvjx zM-z#z@5dvzin*&V(sdD68}EX)q?2s|s$+N9WkB7a81L{*0?wTD6P|tja?hhul<+L& zZn!?ilFuDcEJz>AXuL%^FgjD_I-GO_;H}!V*4}#bsSCr{w}adc0Y!7gbXJRi=SkS4gQ8w~7+Gm~mNsh9wFZRd}9qNwQGqjcis8({Lu`hBZ) zUVE(|1XpyIx<+ztBp$9$0cLRisvor1wo;-* zv&ckuSE)<4DAPO>go+ZnrDII)Q?E&3q^x_8?n=~J-ecnNl){;e637&?+QrASMfp|{ z9X(c_FKC)NCe~(H)vFtsPtNl=@cYl>+wMMp`VXBx?ld6ixsYsOHMqQ%+T83qDH^kJ z7-Fw`#~{koB{0?8G>msiv;BGB9`!j$WJ9C|Ww-Q#q-KEia$Ie$?0~oq40G0=^1}r0 zpS`+|*C@WrIOfLhkCXjkSoZ43jFQCy$H45xtqFFI%HUQSE=o4cSqt!E%r)bgzh3>v zlqJfu6oq2Lwx{0K^6AFTW-`a=V|}o=akC-UzF-t*m5!40PGleiwCP&P7bo#>v{)K_ z=@Rv)3jQ4O=E}NH`oM|~o#yn3oyL|0Sozk@nD~N%{ywz~*safJ!6WHZ$5Ti0W_qec z(fOQ!1qipGH=$CQ?hb1~^DLgthnXy|R|%|T;0v&peUfnxSF~u3Dni&!9NCp(z+&vW zYB%i3<}0ax+GhzhT%x%|f22E5-pZ#{HbGsdqEC?atGS$9ce>P5Hp8KM&aDrJnd7xy zQQP;(zM3#&A?-lp7cpF%Z7_@K+1m1S#3P_zZcn#`@779;m9k-i_{IW8YMfZ9h}s!@ znC2=wsx}2ze5`{-4P&Q~-Voo%i&X9IFf~m56cC86XR_*m^+L%c#qsE`*2ShTW)Q{h zpRW~vo-^mU6R7!o=RVkbEbL~loD~X}^^QmO9rh^Ap0f}9MH}>YO-Y{cw9i!-2kmE3 zKC+9Y7?oZ&ci%kpv+ZNQTCI93+EDjok4lRdY@J{iXCAd!i1^vbnA0m-o5)kVBxP67 zpId63v1ML`=GHM|)1sa09?odHYi1r^Ta-T&V-A)N^ICKS+%o3bY_xf2aWU71Fju>J zXBqt__BJYYQ>?8Z>&H8#Z=8ig32#h@D_&8AK03)xrkDEm+N}49w00Mp`$RVYZ8{vKNiCk11*eBi_98WFOjx~Nd3tF^jZYfmjycJ+ZJu@#3`FqptdHt5x^O}nxP-GV4s$td1W+B5;=Vs(^bAFWoIKyF zK1vDvagF**p#XaeC6^*hf^W90OE2YgardAj?amb~u0$H^-sL{FZ@T&7yfWt~bzrC}0qs$*A|H7Xc4UK>56$0Z33_;wpxxUxk%I0aY*Cy}(48S~bD-)NS3vFg%*Nu9Yiz+vQ6^|i-F-M^adbz{jjJd_G*P7O6|dF) zfjOEG-WjMeTP8QfhF?OFwo45beBoA+Y@V+=c_}zuoz~_XDK+0L9N9N52QD*dhAC&? z<(AzsPWc)9wjk^ zH@*lzRKbKb7s?f?_g}}|AtiHG+wb?X6opCQ=4Uulhr_xKMPOrxL@=i#nB`ez!nkx_K18MIHs$FhGOJD7PkH+0J=_uZ7h$JVF$&sr zF$MG1Ppqlduffe2Rz)_f2AE{g@3HN;6EUo~XJxrRtF8KM7AF+Oy>kbIEuEJS2Q`q- zXT>tAMc(RA-iwuGs5hf9r7hLBC-9aKre^hcCp4$mMF+MdE@E+&TVj;gq({@d*FEAR9_!v0ymvtd7IHe#yc`yj7QxMC>kSi4dfnTZjE{xoB#$wA2yMMB1^C zW6>hcng^TczFjTf-&^fMVuJe{V=1)C^yFFBqGM$*VI$mB^y7HeV6>DYR8=|^lcZMh zr|XUUhuah6j%a@ zmrkWnv`^LPQT1mBl0PRiFHQP5k$(wxk45 z#Jpbc{4L^)e&Wp|WooaI6-(AqxOf?|>s>AwtF$W4>oC8s8Kb=psX|LS3?<(AP2@(3Wq>4lu;J;9Hs^V%gAsOr0{&M|Fb zDV!}iOPLs2*PAYE$w__9=7Xwo*CvL@NMY3aZF#y+bwZ`V@1td1((N zV2fCr00EQa0$RK8q40!(}XE}}y< z{;69NCgTDoyUaGzRipCVq|D}ep-(VPrDjMnEQ8K)#RdlLTT~RW76X&GKvKueGG8qg zi0cFPI@659{n$t9mk%O?Ck<@H%E|1&A zOb&@b^V@8=?>VquKppvFJm0ak2OPj0L^>?I6Cyz5=Q#M^`3=DO|;Zhu&eB$3C7qdRTUNjLdjO)PR#rFjINT+vEtpJ7J$|#Ga2v zSrfx@ur8<9S*A9Yzs2zLXq1^N+^tSiBBSj$qU~FDRL&8QtJD=$^}4)fE$Y!1bZX}& zqft?@B!wrk9T$q-x2u=2TLy&w)NXPF;xccsC^(&Iyz=(b9hEEUHf6~s%PIrJ1O>3p zU8Y+7l*9DN^JQt_Y>Rw;c7s<@!wQ{~Gd5+{{VoaAk%~Z|?#|5oq!3cNo!WGW#_sW) zl|~xLOuCts?q25*e~RUaRpB<6pj7I7<1H*eFT9@U3Fy6ah1IQaMJcwDY_CGRhDGq5 zlHM3W)O@>%N^8S@E}O8lW9rbI+%OZD@Gb(_rI@$t91CjB6HZ8x5PocdAW}>G!aTzt zgR{L1&bj=V=^nGi_|8`xwz)%P3`bTHeV(GLJQqqqo*Eaczm>Y&=tu{KHkG&81b3fq zJNTrLWuB+h+q^Dt{PQ07v&|G|*;#4>PxEE6R@tTx;&>BocX~q-rnDI-Flq$jvB6d< z$OzqpZ37|@QNWin-9+ixiP5iGQJIsw**w=yG_UqEi)<{w%}l%XFVVxcYxs!8E-S%i zH#j8T@l1xNZ9eC2u!9)Socc@+YP5zZd(8J2Yx_i*s>TMvOue$rwi?J+*Y(w6hmn+D zQnPxS-dA^b+9FG58wtEJI0D0SUIwz0??;cRp42@TGw_31*18^aZj)Y-(qWV6u|9H` z!qg?3Mk2|1us%W(_{w9K5d7~Zy)awV@DibMxgf?-h+E?Wb|%%UiG z?G-7NUE;Mv%ER-PH+1oYqf+7&owTVCf56FQ#Ma+Z-q8l!;4HmIP}!~NyUx1Q<*M|A z%E9{aIfr%WQQ5CKfGM2fdU(fy zavt>^1}M_a8D4HbZ!TC(8lGN0I*vYXG*X>TO_^?%40f->^KSDhl+gOxEHoNphabChm zIjyv2d91SyG8i(mBbwI;2i<#uNG5rqW_Phs&PNt?p6tnZcu^ys>l1y}VJke^CCLKe z-7T2QjdLDSo;3PNm>r*`LLOpwY8-7s>ycpk+>LPeAS*ZP_}d1^=E|jE-hP+eUgnB) zCn@^yxW~+$)`z5{CUxF3{MMZ{#?|K=oM_v3t+lZo$bLHcK72 zd(|JgO7zqNkVvVS&|AXYdiUcbV>cee_qghHO$VBtU2U!_7Szr;;?#?!aXV)lTZ^4; z`kdH#x&ml{cMHx+Ajw*J_KCgItfS$%u;|wd;sUc?a$u#3cQOGT@KL^6ED|sFnq5k4 z;G0YoCs;68w^av01aI%Ib=HAScZxih@HZRXS4~B>L~_~tTsk|;y9xMW8t!PS$06QV z2XQyXCT+R)B`=QcaBtH_^hbEE3`E{_JNZ%cYTJY`_zyM@t6Q1P_kgEeOv^4wCiWeuyEznBz2YF~%#Bu|z1 z!g@X68l*3Gxc|t#*$p1idtl4!w%ROB_WY{#)}=S%g|ZpX(f2g7*akwkq3K7DJv8S z!7v~h<2XIRz}{|l?UV~6b8eEhV11^sdGQ=?o~tABZLz(__ciz1eKAMNlX^V^AoNm8fQP;Df(E`bUf}k14LaYGH-4@j4{~>U9L}Bfkl;2JCJ(7gdh@JfQvrJm>$3)QfNHHFNjMeQQH)QTEvtzm zVsO?%%^z&Jca}C5S_LB2%i0BqFTr-|CRs>VO4w;5%}y<(Hg}M!fhTb;;YHl}$_xN! zo#d5lZ>=`U-8;|Qw548drf7bk_%QAjhKz3{8FqmsIeF{|&REVKQ;X7a5L>L8Q%(^{ z@)LzkMpmh9iVUtH=CD_A=RNVE_k~g*x6epdbZ+gy2gT*SlrAKuFNT;87mnX7%0*@F zs3*cd!3sP1&JQp`r>EFUqH%sByG)xKf&Kui(f~QwAy)z8AlaacxFsigo@5s?KXTir zTE!%H1?JT}F7(Nj#W32Jo`;cd{@k|nWsq3uT#sw8WLNyOAF&1Fb@Zj_RwKy=-P!?t zZ}c7-yru-?$aW2KKHzW)>ab^J@odP*(=U%bO%knrfBNUykv9}QZlsNmM?E?$K&Q$& zlJcuL_vn-2@{Bg;rRzC!?BNXFJNa;RobB1F#k*mHObG7#R53LX&oKvc02~BKwHZ!U z`mE+f-)qa@KB@hE_dwXtAGJ9)2`+|Xpys}hfD;al3qjw!NE{y1x;~`A;tFb2OKsp5 zrwzg017%`PfgsxNGRx<{b-3mScu{1T;OKN#a|egBtJloM&d~ubPhIjFjJZ%KMs4(> z1DEd#xW@FJ`+MFxJMo6SFFT_PWz#z~r(?vD)WSS1rta(G1>4xEv5GsV8Vx4ex$c~q z@;r5X3E{xBv&6Ol0-`+ar~r|6RBxdIIZ$++Nu_KPXTR_gb)mlQ8~sw>5rr>K#46

    1Dm+`h7*kgna8b)7w?WJW$$mZtO+>Ee$$gLQ`QZ4R2~+s=CYb z5+tt065t&j8js!>R13p?1^IgAyk&_`Y;YWXV?Z8!Is!eoCf(vP}2 zLASuEmhT6pERs&UaOWIbO6k#9lww_HVG>}@C5FyfzsNI2v0cL)!Yo*Jq*0$BZIb2H zc7JeYyAALm;}Q$JYR;yfTNIRlKrPfUvxsI#kdOHPM z?31ry2D47DFpp++Xo5~esBOQcx?S;PE70yyZ zyl{{a?4-o?{O_VGx4Ge zELNtB#9KS8d@h$FFI}&J@3p))XTe3}@^`*|nU&!dlLqe~B3~dk38z2F7=lsjF?mvX zZ&LG&dy(?twv8U1YcF(*OJ(E`qv@c~cTe0AtyUMW>2jUD1EDF)Pd0Mk*c*m!bA|Z@ zs)w}B2ofIks;Dlj8F4w&^L{=@Ao}QU#Hn7ga@Wgq{ZgKob+;P8@ZIdL(u-cL*mHLo z0E&!uIrgi!#S|Z(@cq3X0BMR2qNU~Gy7`FX{C2cXRtCL|vJzQ|bIbwQRedsFW7qd) z5$Bv9a815P{JzG5y4xsx>g%j6-(mbC6NS@CL{PY8nj;t9aAm}W1*ajOK)E+d)Q8Pv z&I9Rv?+^-Z-rpIx-1wSjnyL7hv%IWPva!T zCnr6PR_(*r;lr~qsT%}B`93EIEwo*>Tbm@-XPYtYZ*;7~f+zQvzB<7Xny0T#X@(Mu zy@V~xOKD#_DxFWy{soN`G>Z1ghSo|yZoS9($mLk^IpgIpvO9J%IYF?g^F!&rm#%wlR3+MaV$BtDuw-#lzai#SE00}&|ukKi#0_U0B@|!|BUMK}z&hZlF z=uCsVvBHP1dZkm-b^!cwySOdf^0^u$ds_8*aH-}JC|&2nUL)-gc}@A;D8VBJ66kDX z@9mI$nHw2*dVw(S&fBr1uUFfnh2y*iowK=cq&Ht|H|1E-LB0BZ-1MlH$iM9;^J#PD z)#3NX)|WQka_I{%j7f<}0_$dUdOw0hZa%>U$c=K&8pm_7Mnzaip0Rw5PCH$B8Bt3- z&7L9S$-sn5TB(P=mC{ovJoGDZ+7XzJ$E|xf9ic@@j08qf`lDT9?a=I$2D^~Aa|rUw zi+<5-WXPoIWx65h6?5sRbA|Lk@E|PaPc|~JiyF_N(vvRJo-nJN9u z8|_X#ZI_O$&epSQRBOo8z!h-IN)_LYk_&;JRRq@~=|e*l0q)1I`I^bAP0Qc-O}iMN zbD`(+8VaIdB+lAVHm><;+H(T`O5teNc5`V~?FD7Ad>rOUi5v?{@#Lv}2Cq{psLGz| zn7-@AyBnWKciU|*#8Y)s$IhxG0Drma=Rreb0!BV;ue2f87q3BVMZJ5HAjF9*sr#F* z2-ITk?IxJ8&!3N0$>kekZI%=@VP9td0Opbb3i_Ud6S^jDVt(9|bXF}6W7evs zW0x^(ic<+&E_1XqEMUX@b=7vx#lFAF-IaOLC!yu`9%zrQ4^{6O!!N}2Fn~4>n-|~i z8;ppznFpbnsfKtD(VlIj*iYfBZ(tt1+;wHOBc9OwQ0;L+YWmS$k@A^PIr`=OzWF=qmX;8p<&{EsII;36ecN2&gWSGIYoZIUHr+9W$a_l z9PCn7Rp2pGSJ5o5ZAYdL+x>RyOir+=``JR%k?-(4J4swPIh#&{NW0=hg|T7Qv>L9n zi+a5eY`$~xR;V(zZMXLmUnQB_!2oHcu*1u zJ`B}I5PN0d_xN%se785OI2(J&Y1F8@>uPq0Yx)*?+c6!oX*D;`$KaA3Z<%t!sMRGB z*pAn=bz5lg9))xtVbey(AP*~8T6`U+JIQ8SJJ+ta+JmKjdr#Qy;TGR~j5Mwtx#45} z@?FS9Lm`{6K<fOh1U@lGc4(p*;RGBI3H_MIFfQW_5x}Zmf`l?O3+n6o-V)S0P(g@bP|Nt*zc@T z7S5c5Rk4M4>W%KH=t>iCTLZ>_uMCEZw?`L8v4wgMUe+!Uvl8|qE!NUoy;LA6a0j)c zw`pHhPc^8~oHHXIUrpIJZvN&ilCrOjfmKCpI8(%mZBv0<^u z(U%szwLH1pap67B19vT=M=m8ju8N z+&WLOATCndrhdIStcLMX%Js#UnrlhR%dP#uj*9D_GP$=f8MuMaI}2FVLftA7${hg; zP*Gby)bxuJTW&BMHV+x%j6+R!zH7o@lt8HDLbLmDTW#^MxipCsuomaR%se$@565}% zW{-WG%3ce}vUb1TQg==a2TmdVpbAfY4se>}lSS2Hk-=ZBi|0INS6%8vnhn8GFa5lo zBj#E^_tp%tfgkLjkq3}Mi0Hn9duf6Marv}cdhc5@Jc_r(wT(8fCG*thQ3`5@0AUvw zx@$qddOC=p{R>ju0qfsAhAImaB+tSYP@Hd`OS<3sYt%X+p}?g`_#iYepji?$e#0AA zJZfCAD6U#pw$<77O3O>e+2W8d$9Ts_U zNk*YQO)hua9D133I4CLV42*G>l3wl0amsd$wU}xwjKL*p*VU31CS@tEt~3&tUko@_l|X8W>J-|?=j+lzJvW3QPL2oOAschngKir5;I zc+2`k@%v8U%)H!Xc@M2~=E&C^4ybaN$?L;FQC@tIP)p#XC+wpgPPU0WV#trMUGb;oV8+Y-g13YCG!ITOL?j`D(g(}Z@6IPf`&skGUKUF3^kdAtJg zaXjQY$Y=Ita#N&*ON&GD)zxkN0X5~Oq^t-jriWLamnwEjHdqRP=vz% z!uw;87lk@!TN`LXdg)Q_eKlQ?0&EA@pbf0AYfFCxB14X^lUQ5W3{i+Q_Jf){xRYNy zkSy&tSSTxQD^yN_DxYWz$toX?=ou5#O+j?L+pul}3y((8mJHoL^#6QkYEb?Hq$lWP zP<#A-DNi~#)bKi5g+VoL5HvaPOA&`hVDax1ZVZbiXTG$xfseB0)$X z*eEP=fS!2v_L8GJsKT`t>YS9xnoiG&bR`m(v;h8wOB7lA7z zq6i^Hg1{eugv3pRxCS9{&9~mQ*4sTZy=Qmt%xEW4mb%yBeO>jI55M2<`906~`Fyw5 z0naDY<`uM-6E}c$HA^{)aD%#`$d`V$8ZVAkO_}7lsC;9GU0Ds|YM2LfSC^5l^|3Y| z)LD1CK{;PuT36ch)sUvQCm)g+-&wq z8`m*%17WvCIZooz{#4nU8u?X!e_6ls+a(_i%{_z1A?Y7to8M6n(?OupJ)qq}zF@`O zQ^-LU7mfEyX0v^)9kAD}^LaH_Z>Yk~(oB-t?5;n!$F^|*XvGOUeQ9?Wko5v<*9Q%LP5D+T6Yevki!Y`I+YFea(L+F{7S%G z&N8TFMx6<*x~{4XtS(@ufc4vv3+HIStEp56xSwJSU-@L%ou*rA^FV8d3~X*PTiZLC zrTB1g;^{a)Q(A3YjcYz9TmG;_if8i}>sKGfl}NRErzB8Am(&g#qKYzb?fdM&HOPyh zbXC|zxD=D3V64m z#&-O+=>m7llv~GBw;J7-_6Ai8y4}KnOWaIr*^1ZLWSyp}DOZ{F(we$x&8r34P{v}# z914Pf3`M5^;7uW!_GQ(%Z;$$^S7s8@5YK&~XDgbr+y=rqbRoX-FO5&E{7Anb%@(x# zGZl5Y#r7L0FdC5#!@NlDYQjWIG=igXWZB%0O)%eV1-j;6`DO}F8dC3Jw=d8gwPWV+ zxJnpp*fW&_?>$^bNPvsgN_2nvbi&?U#eU59i%a$F4zJn$4 z^`(7|?X4IgOGIfv@Pqnq`+H1U%ra5B{MBDXqo;Z~g=TS!xyWx4^aLk20F*#~E zN@XWU+VU_5K%Wg#LaPb0Qu=yb&m*j}+A8<=sZj)h(8KkOVzY8lxjh*gq9eI4-PmQl zqNQ_(K6RPlraeh&oyn6dIN}<|iN^|T1Dhp_IoU_@{ds3u>j14@rqTRk@C|uX=LsRJ zG0W{{%|S%2eQr18eIKI@`4LENyHkzPnmgEp!wt#lSDc)4#WQSHQSYdaaf!^et~N(V zmJ_`*R(Elfx#=7pXLp`Z^J-;cY`%JggqP$D7OKKDm>zfJ*4Qh$>aUDzt;W;+WKUVQ z`E{7Xbn!+VRBajIBRSK7UzW;Zs4mdSbQK{0l6BCS16!SmW*c z3A=*}Q~A;WhNB2sKDx(je=)2&0j_%^RBa4tzzES5DI1lEUHd8<61wb#4Y z6)f(wJr|X}@6vN&Jm2S1ql{g&9u0l)NhmMxgNVNKF%VGNcb`RTulUEAy49{57Ina` z2!WC}eb`;#!F$^m_{cL=Sg#fKfC~QpxQ{28zRFnMGf^l`3^ai`k{QR`G%=(Zw>rV_ zlZG4LcD8}*pg@M(`NTvuNjaR5*n943$dZkC!pt^ORXh@vy2$*+;u>%pCMg=w_mA0b zP|v7St7e3TTg9Gq(6alQJIte8*!1IMiaP!+RO3qkW0b|UKvuJYYeN>L+ld-Xu@M^} z=th6;vbx^cSIgE%QQND}xK|!1JajdxN3Wl^xgHq;TV}k$bPfv|MKuo5SRflQneUIu zes4)MIrt-mUpE<$Tq{?w2VSt zPMta!BODhguToQu%=gc+Dl8nFAf?q#)`h~e6XF7g5G8T}U3g3HA+t1o|U-`2loTzSv4fApHAT_J`HFM zlvnXq(BZ+gOCsm6dlY_{LX!;v&xFA-(lD1+J*H%qQ&2w}uc%x=Qc@?zP7)i#lt&3T z3u=N6vbc}9F}Z7K=Y6fCGq4 z=@O}nplFfA=Z(D!>)X6UTQ+piSx-xI35JP8YeaGlBcAJ(7_TCR^LW<=%qR95y)9^> zv2B`WSsnQcf`A#J#N8}Hs%J{paqAO&Y;PA}VD>O`F^SXXI(&fAp3}LmJ zPc;HwVHa)6&KL81z+REc;4injJ|Fu*MyDfc0`+7%>0oQ$^ga*+%HF@i?;(P&Cu}T_ zz`dF%8mZv4Cf*a0AcmM|N_*1X*Xm$TMH>#i?Fkta?2q17E-=lSa5w6;Y{+78eiSu8L=oQE1qY49Va~u z8dt+s!95yxWLg(5ebF=3$yP!BL?Nb+3eT>Zu68*oEhRKwD#EHWuB10%*nPoLHS&na zAWx;RgU1V+VV8Iom1ufORT2)+(_wbS`5EbJjJZrqjFg2Pqc*ufJVTC_K&~S2R-geP zgdKSyo4_BY{Yzkb(-$EgYszX!h$fIPmlJk{7u1ZwpaI)P zMLOs;_SgI16Jv(UQ5)D#wFT^9AaOzSZjJ`-*D)i^-P8fWj8bI6q;? z_6uN@fA=F+`9+@v#TG30=Z6=k_ZvW@^6U6X-w+DF`t`gYID~)Uw|^c=`&}%??>Odn ze$`38v&X*rm4|)DPydCx{4GM+i>Li!mXn_mV}Cq`+wYeFP;DPg2|!=ZDj@lP{6c?r z(a(DCa*x`dnm>BOxs}0BK079SnN?Z$Q$XFi_Gf5?PrCG{AE|DCC=l*Dac`e#Z-1hn z;r-scap8V~yZ=MDaK!u5@`Jc={O6nY<)_#GKrYDPc*cty}m|5 z{xn`eLwO+bQu|2btTuFMcCS!fMtSb8V??hL>@%0&bt*+It?%!?+njl{ZJD#4Vf?V= zLOtD65RfPa)Joj4iK02=bdJAxt>DS3A0{YCx5>BhC!8 zoR`7qFU>x01M)N&{@_2!0sY^btpt)!d=6m*21lWrj)?fAU1FqO9}i7ztJshzX?99X zX3H9Z(%aI+NmkkgUXE~07LcEwkNSW{4P9(tO~%IY;sGxw=Cm_*x9NW529gj3T_QPt zMQBa@((fT{`ydvEA%!Ht&ss^k(u^$Wb#)ntsHpq|5jvS~AKtzn?B&RNYI>*p8x;`5 zDV*o#^`KQ2>gksYs3|;8R5eKsY|kxNaxb12w+DQKs|)Zm>z%}Dk{%G#(P8d_es(xQ zp<`Yor6;&JF@YjN-Dj#&y6FkTfk0U$sJ*p>g!YpF75sZ!(R|%?B<^10jxY&5Qt?Ai zohKW@yc!5K;xsBM%DcA>tjL7eH=>J9Z=%$Ch{XsGK$noL2oBd20<8X`MK^VPsMR>zsq~eZu!Bvwi190NQxl%7;^IDW*WM@hWRSN zE->Y0)*x4kf4f;tvb#?g(QHy$G(_P+uo>iKNR7hHC^}N4pB^Yx)TVb`s$x4ZfV4;n zHSrv7j3f;<<8tW$L45nEN zHV_Nm<+;#<3Z?cPHCx6Is&1a+Ro;n?oI8ipY(l_3 z2lItDA!Bs7?7%*JtWjX;`bZH%;q5#WIirrY+Gk;m{Mlr|;&2uAubz!^!_NQqdt9G) zv0hi@qG7E0Arz)WYV?PFf5f)oSBGgu7l{b?UZHE$r@{*nCnMqXPHPnNKCO-2vrXW;f`(yOh|r z!~e%z7Z*ly;%1}<#?M*3L<@#yiwmC-9>nTAvd+Ck=CX#u5wUI!M_;h*c%N>Bb4Qcw zE|~7pQ&T|Y@jbdx2~vs0|r*I;{k=7?(zCb1QArNz}T^IcI0vj$t&iJZ87KVu!vyhF@aU8yk2`5_amtDZ`9OA#lU zH7m=g&E3;}BEPlt8tNhrVwWJ>u8dgi{42=LjLwf}wb0Spq zK6qYLhV4^YlZ{-pCxK_jF#Mx0RA!w97YGij-Jr(MsM-E5O~}I%(vE41w7e*5PROU$ zDh;_Q0r~RoaUD7^H*xPVkK@Otuje&0a+%K-73)`ws!b{6OJC!jLr1v5vzo{}`2+pf zwh;#9O29G#*PKr0{#7_xohf7|5p&u%V{GCxo5@LoXyAA~o-pTp zYy2IDi#KjJ{r$Oulj04hkneSBN;aB$ecH}G^#&i(y7}{*sQuoc9?zSGwP&_snb8L} z4D)vsuTJ{pwffe&Sr+p<>#8WJny9on7a2$t8t(3?e<-N7g0eiPc^@^A5|R;L&I9GH$DQ|EbphHwnA%mJlnAu-q@qr!vh-Y!RazHD0$F&O`NJpB27@uIn@QyPll|*KDS3x ztKr|BYUIe&u@Vz$DwuA&R*kG{PgFl$bEn?rE%Y@U zvLZRs>@i*HeSJCd%UN=l>rJ>G_BvTFSfrjLoa+g8h~}e)qwNl6um_Kd6(> zH}Nbl+5RBwviI~mPA^Ih%khyhb39s8sD;X1K|q`ikYogc;IML*`qaBUw)aFp8a$aQ zb?zp-Lk-zQ18*=pL^o|4K3P!`HzWN-Lmg0g%t+3SS-K2ceUb!@$Jf?I+8xeY(hV=> z&L$7~ii8q-FYZ_3{A@j)Gl^f>p}Uw}9;FMT^Ka|)YkV8~ zaT%7=LR=-c!3HqU97qffol?ma$sf@S4ChnG13PudEwstM7QdVwq5k0BZhxj4Sav7) z0OWj~3#aq$zA!po>WEv|IkUHMKhta&Dz8^w$IfFR6{P;i&xp<2T0K8E*XPl>SxGTR zdbt@-h4xw>g~f7Z6gx$P*l^m`OLd?Mq^FNL{b|7W3HeE$i(?LVCtEKb;m#)=B>S= z)bC{@}BpVxX=E6ys4+%bpAk0F@^f z{E~lJ7AIRPFH+&$#&osWQ88K35tZ2wXy>=YZCgaoW4LV$tjiU(@mW)uoITv%j&4Ja zl6w>lLZQ9n6x?h@TF!}Gq|k1EzHth8ROhNY@s*2eJ`;%ZQm>r-MQ+Ny1y$N83Y;~I z!Vo*4JU?mlTa2%B>w@koG8#9Wwh(1lhnL)|i|yF;LAx&7a`aKKOSk$Fec-|@Jl7Va zveGI*6w5$)jdSR{NCxe@@wP;{ujh!(>*0DofpRoc^H#qT5sau&r&EWg>mP^bDDCrj zmlLkOJA%p}o|}0lWQB5d9uQNWZFhxo`>LPT=AKwtLu!?~3$e%6VXP^U^a%#cF<#!W zgs=`vW#Yf)&u-CXi7F|z*vk`LI$j^%){$oo47(WTuDfGsh%S~lfZ&#TF==yAbluBA58COmWJ%{* zCCY33dc<4ooF7Q=S1BjCa>QwCiw{eNu&u)m%jw4KzQEX<%Cq*oTvYT?^!(kT$ByH& z+74cU1--7IVO7%%3OUt+B!-|Pnc3EKAV}=T7{E5H{0w=e8ZED^*@l^NeL-4x7Ec3i_YkqK`Hsh;2*;4`;%$5Q+I{Wog5v}nxAuL!@ zLu!vqi|JL?1Y-kadfgQ3m?|;<`0d3&!}VPh(Om^Baor{U0zRs%Hb2X~s|Z2#&AgKm zpy$ctu0?@7olr?V?8Q|6c1)2{)ch>A4S)px{ zM1IoyER)yzB?fMF@}kUewK+5WL}X(x9d0z5DQt;+kS!rwlir9SC9c_V(u=P5l-SL>Tn43q&dprbLs}549z~7pD%+`@%U<1t(ywhLz@`d4D0`||3 z5oM_pqS?Uf+Y)-6NrnSxU6#VCP?5H(e@-!Yj7YkpN$t57% z>|=jt*k#cK9GH6aeez&bG#>A0FY00=YJt{0o5pm3J;c$ugfld^RG^oUkIcCnx$CL3 z9w^`t@(^VdY)}pa)N{$ctMW>D(zC07O1wbN*+Ska9Ji4|Xgn&PP!>D@@=};sBfFA> zC{SlHgXvZnNr}t-)i~8_o``Fk?e*KmF&vraol|~9f7dBT5+v;T&9>voZRhf2C8(hx z0XIL2tBR`Q=lv44O*8BqvM*bCq)r@KRrkGd)={rFSxz+ciimG)Md)#lP|Q&qnl*}Q zhVPyD2dQ)a>g79cBe6gVyn(KANFd$;x z%Af15JPu9$kXtq!^R$S=x|dVYAW=hW4xTEGC0A4tn+I-B)Na7^ zA3XuK@fE7P*@)(tvA)~!^9hLiBmgFY)Cz-yqqiK}=0vaLAK-OQcr4t#MP zoOL0ujk6`5j^sL4fgbd;{WcvKwX(TGS}r)ZCivr%NQA68<|37cly!MJt8hP5@wMA% z*yDGINjcjEr(4M%7xyYD;jr>IC#v=Kkiz&WLY;hLS+?h7a$u!;mYhsZ2mD=K?*;&s zwECho2a;*;$EEVnBfowuU-P)WTP!xK#_G0?)F1ItF$ z&RvEz_bp*vW|~CQX)^`(QlCF(vLN_;V;JG$Txe4 z#;#lQbZehXz01#f&&6wP#j*$a($4^n$|Ncq!6bSx8?@01h7pZTvngAoMC@%#E6XEa zSr*om?GswLMUVb~2RNOvTGRU6+roS1)kdrFhevSAc#sJJmI2^OAvv$?m0$saGO4Uf z`UK1ZrhGmSW^LiQR3}hq^gnnz6-Zv3e1eUqe(>e{D@QkM*Ols1PZs(>4Ory;Q1e0p zff9i&%0vjm`)1}m7n>W?xv3>Q(TH&`F&kp(aAZ?-t9UcZo~8_9v5dS$c(t+r``QY z+%x4Q#@7l&U}_PsLuJNX&%UiO3a<9|iHow0uI|EC4K* zS*!VTgvfgTT*TV>Vocxfbr}FsD{n+~d);0)i$%rrk?o_)E(Rm!yf2L_hv(*5$>pR4 z2)nOxPjjr;Z3v)hNOpn#tXX~4A5XS)4u@lizQ7xDo|TQ8bJY;<3n!zIMl{XK4P}yO zEjd{#@}moPt;I98fsnRXZ8oOBcoM)p$h92=7Yl?M?w56oG@*Fz25tuaYnTxE-FpbL zc|C5?Q~A0Esk!6*Q<<-oBjDiH&V`7BxY{9Qhnw+;d=5>LGp#XJ=Q~FBnD-BJ%XyKz zUIELwow3XUL=CidC!sgaZEQ@4=zKGbG;!^5hGl*TX|b+h{4qMmIYlxv0AcC%G8&Gw zH*Un+F5XNtvDbN}rfWQ__d+p``$y^Qz{q208=4sbU8AQR2&>ce_85>YRuf4^RmXn@Eb_m1U=Jk2N*U=;kc134m2LAMRJ>7#KBd&OEQ#M+6DKT|7urQFzX-no0 zL6LmsLOo_GQ-XXJ6f0!YvO;(?tht$=Sac({Y z^VHo+8?Cf!2eOe&Uk$zHN>byC|4R7mvvco8=T#tij*o*iH<)i{#1IZbR$4Z1!n*8J++Y=lVe ziS4{-lif0h`^oCO#53XbHSqo`IL07;KQeu_;%?J)JD{z=^x3r~q)}=EY!y1^H&By9gP|h_UHvU;^L6;0maRp45k2`;$UWsa@ zd(5~5I>j<7Pp4N`bkGfka^cz;<*HbpB$HQ;zD9v~2mOC4F!h9CW);64?*`!J`HVqg z$f~-{y5FTJgDNL zZ7vsSwsz2IvJgaU!L|+k+|HBC#hf?RbYyD>f99DX%4(wKFB~%rlx~>R!=Me(1-!CEE6Vp)TTg`Z()A9` zp49h`Cl;XBsxcQQqp~X)gADg`aToN2nHduhP5zj2! zG}|>K>Q-lqOM*W&s0#QaP>0jH+nT}P&t^=n#H(gsuc+t!c?4-f5Ce137b*Hq(_|qvJ^Da#`FY`%X^%eV&gzrZpGLQ1gBHHG^ALh+n(lgu?-lciQXD5PxPwfN$BEtY*1(?e*D$FA5k4qS?^(amXM<MzJVZ6RPZANd7do%NFPdCp%jtQ(Wn5_@#j|EgevGZGriRgs<}TH%g6^t~ z7w|WmI-d?{Az3yMLYHT`46ZlEwPgkEx-M6b)$?MPw$^gH?p{wG$OhJh{>bj8&WJHRrQOFi ze1E?U8iwA+o!eN}00+gTQ=EhvvC9qoMPdm_f!?+XjOFS&fWcqshy0Xt1qzSdxCV{X z3X$tQgp1si&B||hi@IzN;vkZ&t1zzum^-;GZ^XE}FHN^$J?nJNiu`aops(lDH{m$$ z4;n#q`?INeR=!rRkpo|`a&~K^XBf>b6Eu58ns_q;e3zm!o6=&AjBy;@-iP@E*=^>R z)RBZkYa2~$9V&lYFC6MT?DE=KFQ)W#@SXO$R_5MN_YQ!lc-EhfgNS*JeA+5L?9bPI zo=%SHZp2jgeRn#Zla?8m8^>6&9S@AyP3_>)Fl$04gAtU4b<>?!TlibZ2Qu>_=FsvD z6RP!MA*jJ5muwrNm8NJOOR7RlQX5nkySsq!d$u;MZ)wbzp(M-qMB&T z<09mj1JX3T68kN*y8;5@K}@l`A2WCIJP1hP0DwQL3(~YzY8%VjCt7?6Zt9e7c^M}0 z6c}DkPLn#k5E`WZZjSX?7J@6RXN zOKw6k>~TAvQ|e80?Puhv+ukL3+dZpIdts^-E?t5u+j-G96acmdk7Es8o}LN4%~n;a zAIot0yge9Rt0dFCOYRiS7E>|rHad^FpzJaj)7_^?_aC|Q@@$|U>D*UTEbWZRi1h!| z<&>sbOz6|rXuPC1smSeY;Wm>zoecd~Z8WhN%ps}z6t+7KrFLG{7ma|_BIF&~!{d17 z?6+tHapg7nFjTBR4gogXehAtiu(qSWV0&^MO%)r@^o*gd$Hy~XRc?XegWz9Pr)@U( z19T$%={g0+G8)H+iJ;$~`&Y>kyOE(^{N-7F0b#fh^p6s2M+ub?4 zC){jT&O`rVKhS1Hjm)kyMLbUc}M>$ttUnq6mQD(H1zPbIJ-1i%NGUZ~MyZ9Bq&D;%dXj4c<`7DY__ba;uNy zBi-DulLNYgpR8caHi*_4%vhIAb*l)hx0|@5r+I(a)ijtxix5zi>E1>#R0fBY=Lx3} zHFBgZfb7+S>cYD|Vz!ee@A7WRXFTR!1!ElsKCgJEbA?+A-oYf?T)pN_6>bO5H44yg zDu-6b4puP=1zlMecC3L-0ST8qrAB&@Vol2~Bll_@4sOy(Hq0#*PnoGHw!AqBQd9H2 zWWH~%bicQzwy|~gS`z0P{YZA2i@HSPF6+XFgHy&taBsYr?vBO25RR;s^Ohq>PpC_%{gDR3V0pc5F1wPu=ZKjXYVOnoBi(YAXOM63 zn0%QlPVtN%J_L1<5ym%Q_?X27#;wt8i^afn9?W6!46@7>_xEdW*3)S}EF^gTo?wZ< z_)M>!+(cZC8kd&G;FUl7m`^JGTWIELZ4T^mb6H2%V7oaG>Xez!UwMkhu+q&sDD#oM z>Qar(O5>4Fb|ix>@-EtK*6#1|CSoKG)QGK-d8a!ZbhD2z0y=aj zMb*r2i)zr*3{RGolYwi^-18w{*igRF^YN9q8b~~_omK62<58;La+Y^%r4M9_OH3-!#Qs~>pTVa)VstSzqW8I)18l}aCjI4nLAK^l_ zxDYUzKFV9{L5?xpuwlZy%)C#fg3+CQR#mxP~(2u@&Z9iYxgO)@-tvpV|(VJm;2m{-80sap4-A`ZWQau z74}+*FuJD+8vG{odH@cN-Uhox(&)%dNJ%EIfD(Z&SX~xC^3#I{g|m4G;9DC?|JZRQsgAc3XXKkRbb9OE0Zp(G zEE1;DfYF?Y<$XEsd?A?O}n6(lJTx;v}7+3{N>mx_i+Qeq@h)A{iEP&p`F(igLY0co;-w>47+1 zuK>$<02E**=+oLGm*B>R`OW^l%S8yAL0zgK3q@meMaSCA>$qHnLmjrP=X-&DX}1H8 zIrdhYeW_;jJUwVwFRdK7%~G>Y)~SFCsZ5ukpd`MUwQu9cMyod}?FVF~_AWNu7H@Nv zmNj5X(-}#f*3)d&tX|EDjw^s@pw!*Eu=8Sx_TKQks2%_?$&WMkEwxIUlX?e6$Ae9` zi#Rve=0Wex!`xNYw~D`1=Ji5KrwQtRV$BqJ;}@(|Tj;$;DiXb5RVEnYp*;#8=ik@0 zq=w=)G|TCY$N`H%`F3@=R`cb<;nyWlSK96l+TSu$A4%0tP(w$&EFL7p5VqN&-r^#; zikJwPfD^&qu)d3X)Q|IXHtAsDqHXdU5pL!Ztmq!hLSv=!bnM+HEn(dxxB@wgpg7*w zTg8N-)-9Z_s>k-IxL)o(!u+L`kum4DBE-fwbvbPj%kdAT<9Ex$)JLpPW!mu5Vs?3eIC*`l zaWjO6p{ShU()u)~DefJ)lhDbly1rhm=@KF9ndpvSt4LCMUSzT*>e&1QI${YhZ!d7e z4CpOPS#`LIgNv(M-6_lXV6C9GFv6=#fInW?7Sv6qE;X=u1|(bX?559n$rU3$b=<*AL^!r88!p}6`VC(W+ZBGt7o>+Lr3LAe1kcQbKZNq6hPc8eS z@mA{z`TcXuPB1F82gK`yx8Gmv`R-AMi)XHJx7o84`er^`ZXdFL!HmXIz-amQQCiq% znI^8s*V>52M$@=l@8Oo9<>S$xGAc~E2JHI}OKo));)Q+%oyHSL)HL_v&FK5Gp6cDE zVNJEK2*hX+$oT;3Xw`TrKqih<&ZB@BJ7ZJNvst}qZ(}*#pAo0M#wwf|%yCL+YK)eM zJ3D{Hi)pLh@Hw1N==Gosii2&TKe8i!4zn`EcqvI*A*Cm zUig+%d2aB$lhfb|#uR%C^X(W>-Bi1;=Dv?LOmu1)KCnS_^XFkpLUb_z2ld1~2DRFt zQTLKe4cuz}I4S3hx;S0tlXK4NTPnL-iz&!Rj}kE-_ZIUxp%iqvzNqdG!xQyr*7-~5 zrK!aMabr=I!{&6M5N_0Y5~*w2dfY8nGNZul)$4{Ok6edt=VfQBF_J7}sp63r5Ad7T zl2WdBjJc{86v+7WHf%4#-bm%Xy*REy2r z<0|b`4g%!$6FM`wMlb>2`Q|)14UKmUvrf2A#b^~fcSX_9Vy9{tqlUU&YyuZ4u;{`2 z62DUC-t;C+ZUA11^C?O`K@vpI$@hL0Mp_rg zJZr3CvE1K7LAskY6?ZXNlWZV+%S)hk6E;U^J(Hxvve9&Qm3JN~lHQ7mfqckjXNd8gK(y=#7R^bkS;4d*7 zi=@1ok#P*Hm_Ye4=Nwr!&|E=kfUsC?d9e4Gc7h)Amabii&E#nhv!0h&W8u_vT0JQ@ zhgT?^>}K^azoVX&0Wsw974#qyQ&Z#dq-yX>rG+Q#Ezy=D>h%NFn%lhs<1{iB)is_$ ziZSTb=^EsNc~eE1mK1Ps?{TElG>lM0{+Xm?w977YBrRBLCo*LnKSnzO&?FHUNg~td zoj^KwVz8CFs9{ppIEhfs+Z6glMYjYq~P{ThQJc*mPQz2+(@fY{#vL$Id)W%UN>!mL_^GOA3b^-s6kEIKCCV-u&g?7R z@OSq<-H_8YzabhpFfAypB4F<*r(>-6QpB~lHXu2e-G`frOSgn_ZFU__2q7;xEVStO} z7I~t_y9Q}HPzag5{d^sK9!c#lVRksy)A^M{X z;0!MW8%h8*j5wzDok5&<~D38JAX z!>XUjE?VjYl{`TubiZTQIuy?dA*tj`eY9UGk;lV9FD<9F$gcE75p{xiwor=OeR|5zjg=da^g{M&ifeGx`6C>3Rm$KYqB*CZLJ zzF$^9MQ-){WfOJx zrh1)N8F|&0pU?ECA1IvRFI}D=ePS{E%d2>4|5>i$`!IN;N&H=mfnW9Hr*`V3=M*6A zFViK)%pbgunIA-xn0_8Oc5l!!}n+7`_8Av=f~n( z^Xczm;eFkN-~Q?^|H@V1wFq$UAN#NV5sSd5qrdsg|Le!k{7-)HXEwj%Gyl!cpZVic z^kq8x`7fla&;NF2ziJKm8S{s%0&mYaZXxEze<3ITEPkyI`1IebQLi=Q^Jx)3{Xl;_ zuTN{j=Wmc7s$X6TaFyN{gMWEBU)S-|ug_QQk8wHQ2gci~@PA-b{E$`Qe}5lEKWJ5O zJ`bh;?bGXj*sAbnU#o&Fzb^{;e}T8z{)Io8b>RJ6{-5`A`CjY5=TrX;uLFPdTq^&d zxfDmgKQj5h^=IGa|9|uK$8V*7I{j+sGj`d)a45t{9R)%U%$TbuQRmx z6Om&nP7(!y5@lKZ4UM_?Pyf~Xr~h7K?(@n1hR580X?$E1K6n^R);u=TI)!+x`< z|2p3kbHzXSbeBKJ2H(Xj{f=X_U+cyD*4h1<-}ncg;pdT#>+suexAa?|?b8>&<300# z7fjyITgk8fG@gRbfYP_W|NJ!czx=`_|Apc8t>gxB8Tns)(SCoV{k_kV%IBMbN#)=8 z>bJff?K!U_fBBC7(Hz+K_x{%G{{wdWEcL#YeUIJ#>*)9Ek^i5sYwdm)cm+oy`^ive63wS{=j@nuzpb| z^_6vfE$%Ncb>>}A;HaQxdXLaw>$vjkc;jzoy& zGQ@YUNF#d-z;IW8=_a+W$PcC850L*ym#F{$*?W_i+0`^ns2h-g+_qqo61u8xsWRJH z>3M3YpzRnugr^8Q!b7Q)@*H;94u@wO^@0Uk#107|kdQ#Ax2Rici5(j@NGw>e1oj}I zZX}kx@t@(|o0*+;Z*`^$(RCK*Kj)9nj?ebz_j`xueV+Hz4Kpa`e$$UxR>Z~o8-@Y~ z+}~OCDr}(~{H=#}`aMqSI}iBxdRllEhad2qf6JJE@9SFrOWvk$7stQwsea2<{KYHk zKlz<2>MzWlk@%1DOknia3od{4zU4nH|NPhP{IBgk-*?tNJd^+Qx6JuRcqaDua%b2t z35cmb{l)wX$JKw3bAP>MAN%_Y?$>YZ3g5X)zh1X&zTV#-wZH%8UvBc_^YOoj{rzu| zkkz7SoZ~SX=rK89;Q9mYqhDwLAAX(vudS=!zK?#n*gx<-`WL@f#E*KfVD#5TQvSpD zCI7ViZ@xbFADW~3ufII<@9Zu=;=TGm-q?;d9PYmY&mj6)3s8u@_{BHg&;K4c=6@Ti zU^!$6-cXf~&Eh@q!@++KhEM^<{+ah@*q{ITZ}a*=$Kq$+&;JDf4l?7*Veg~=?l&zQ zJN!9(*`Eyv{`nlA3u^Cykh%WIpFyk}TJ9?SBrL?N77#cKV>S@iG6;K@0YC zfM$Hof5X_X;ljUUSN(OFeb}P^4%XO@u|@yn>ze#gw&)*zS(yL$^YOn2Tl8;Zzl4Z_ zquz1F*FX3l$Q*sWfdA?11^gg$^yPa0%FWTYn6n>}fPm3o*Gc(*zc2ZxrzKG0upRM|Tb@lp3$FmQUmO*MWV@u^(@u8S@BKmYT0 z&f#MW@w>;o$Gt5ceD4BDkOjVcAwDeK`;+&dFSCUT_IGUP7bEok)mQuTdFWRY^e@4c zeqBx}G);3a(5RNn4wQFQgBkfhc*3#D(#C;>CrdX^f%PL-Ztf1xv$TO zR6rhK-+*M?+cJ6IqL02z_7ha*lSlLAcj!0uSF7^>v#a{LOg=2g1=h%qaa_!=YwAZ? zkpJP!!qPq;|GO>7&pu)A|AI;-fPYwwqrUz>{^j{OY5sLj1(}f{p(KS^xOtBZzs!dB8&a*`NR912XwbjQ&Y?f4)u9 zHz)vwknZh8e8fV(76N_q&xHy7BpxC2*9`Bl?(^xvL={bwc5f)qFTMfK1VoiSYzTZ2 zeBDpZ@bf(;fy1Db`!4N#3o-gM_fH1tJ@EW(`Q|&P`TEbl`*Fq(7wOmL0T%2#qrN|< z_eo)1@54S%`qE;b~W#r6*(Y+7nn+04ZrNisI8tu4}9gW*rV ztok$29KG8K&?B`v2F@A6(>r8K3`G)AO-!{g+^Oe$2l0UwpMwKWg9lU%nWt z|LpVezkA>M+%opxe*XE7y#L_u{VoYi4*Jy&(oXQ<=gtU&+xTu^Grh~vl`l?21Xw~G z*WfG~zIT};iN_+TDik@W;>Ktrg4#g6Y1E5359JFM%Q~Y0vEO&cYBj$GE6^k%>ibKC zohK@;r^CN`2mS&kxPwr)^ZT>T{wje?)k^=beKc^RlJUO!f@WUe_!-KX%eFbSTqwn%!cU_15DypSmCY4@P=&cg54XeI?spz` ze(ZM*2y1}ql358yTs-4pdy8i*G=w`Q*-CM?uXn|jym)16#0v9W#!36j^DF~P3bR+? zyr)y`l0fH5CKi05e=UL7O|kEH2T=<3ev(QCwM?f9ZpXM$RwixQ+@`8ly>`&r?Gwkm zP*#2K`7Z@IROdU%uW8?4Msiw6t>6q6vxk`LSk%LTvy4~lYo!iAO`Nxf^1`1+&lyLMNqAv{W{1Wu z7krNA?**TtNsYgjz)^dmjDmsSPqlNIq;lb`Su!mvjyNRK1Iv42JWsP4%oDD0FU}MY zoz&_Lr|G+!W?A5yveN-sQ2iP5y?7J&8cC&O z+^=Qho_GuHzsUhF#RN<^K<%6FbZHMH@R`*Jn}{(-K{yt8crg$p^J}#Tk8pc{et%=) z2NaNMxW^GtBa`0C#41OXk@;!p~vnNV!h8y;{6I{5kJ(k;25e$N3}(P7`M z8kb+v>Of~j`FN!9?S%UWP9FoLg0s4Jf=&Oa(gGei@ z1QrM$$_%bNJrqpKQpWNKq?4XiWk8|~%9I<>QUmd}WzEVQB~L7!vN4M{=6&y~y&_c;U zUdW5C3((~^Tiso^I|`(Yoc>a_{_3Kq{mfINtKFs*uZ9V}Au-XYCt}mrUDI@LNOvnp zgzr)m3we+ievuJ|fW#E$16}v|bVIkk??;MS*IXf_o&3T*S& z=NWM$kpC-qWJ5{8y%OxWf$E51vqZ7h!)ZsQC!vLvB#($X0x=}R*R4OebNEzR=;mfb=CnyGUfZAn7T_te8a4kK11-Cz6%qwBNo_8{ z*CDVOfDSIP)gb}INF?T5wi@;h#f;+z%kuYBnlyXIWKxq#{McQDGYTptmuw5>fi%WG zsE)$9szF_hWUHnj4TCneaJ%)w{M_Hp64<*_*}L_8DYjl; z>XtoDk?C?+Qy2x^UTG6pNoe`DmrS~>6X6NX-Ya#qEeY6*aClL6uhVjngv3nZr4cTr z5$(w{-mmAJC>v6tcENPUN<3P7SaADOIEtsZPq?mzm z78oHPK@03y55uODFzprOon(7I`PSvpF@!mg3pWDu6ebTS11mQjkL><+0cmNkj)u){ zaS5aVD5^jOvd21*9}^RhtJx!3J4?Bqa54sTnd!yJETB{%3M)cMslL^m>$?+aHCw3< zL!4Kt?Ooaj5h+bGObyA#({{ey55Qb_+G4Vy(7=mL4{IaPALaN%0uh1xGB4@f<3U4< z)HPAfxC1x>JtoFFJ#4In+<-EbB_8W_5A0!`EC9O-Z?q_J*vdxDC1>7eCWm9b7XxvNaG~~Io_OY43TH5~Q_nwcvwB=g z(iB0#&BgmU6dr^KN}zO(pEm|!czW^#gz`99kenvK`MGh-S*RSdK?%amFvgJf@Ln^z zSAugzrIt`qZR3sD>#9Y`3-c5Ed9^cLpzWyUCglNQ5}baJ9kQJ6${8+cnyh_Gg77km zPPhvD=ABQwTVj$SpXS7;eRT5JmlNd(A1zb4P)HLF_GHwhSB?mRoM!I6p%PJ7;-yFY)H#yE~A1hm_e*;!o?MUbK7T$ ziL~}>duLPmT9`cz5`r58|X$ofsQWiLo{uVGevJD9rCCjJKb(8$a8Vo7W7v5 z+Gy+kx+yyS0Qwb<8<7b`b5J#&MN2(`Jk0_MWn{Ia8^r{$LVy7p6z>oP*BNkD9EVu| z$lW~?pzNqK=ZT$7p<`L5c%|TPflIV^2-c|f3?B|-x~}WIqxd9ArJcKq?CKVUb>(m3WO!VATR`*xBcNJ?K|Ij=Mn!8IF5A1+&S37fiJu z6^~xl)17{Z%n?M=Jw0kbIBo+;cwjD>ZftnJ8eK8gXJQN=Xu~f^k{yX)_exT5OJDFK zTlBh)si1608(~f-t=@yrR?1QPN}HG;hG98mGKMB&bE9eXDBA}VC0UF~VSfasl?)iK zl7#1t(bME@LhsGVz!@IY6Bo+}k@EaJ &69Y|5xI%B|_751(s7p>9ns~sL4f$_f( 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 diff --git a/code_book/_build/.doctrees/environment.pickle b/code_book/_build/.doctrees/environment.pickle deleted file mode 100644 index 2e0ca92fa0dd451fd91ea6bfb37b32d3aa671aa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33971 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 diff --git a/code_book/_build/.doctrees/glue_cache.json b/code_book/_build/.doctrees/glue_cache.json deleted file mode 100644 index 9e26dfe..0000000 --- a/code_book/_build/.doctrees/glue_cache.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/code_book/_build/.doctrees/intro.doctree b/code_book/_build/.doctrees/intro.doctree deleted file mode 100644 index 62ad465fad7952fc5711c184a5a2b8289f88e0f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11117 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 Jq%Wk8{0AsV%t`= T:\n", - " return Y\n", - " # Otherwise update Y\n", - " if Y == 0:\n", - " Y = b\n", - " else:\n", - " U = np.random.geometric(α)\n", - " Y = Y - min(Y, U)\n", - " m += 1\n", - "\n", - "\n", - "@njit\n", - "def independent_draws(T=10, num_draws=100):\n", - " \"Generate a vector of independent draws of X_T.\"\n", - "\n", - " draws = np.empty(num_draws, dtype=np.int64)\n", - "\n", - " for i in range(num_draws):\n", - " X_0 = np.random.binomial(b+1, 0.25)\n", - " draws[i] = draw_X(T, X_0)\n", - "\n", - " return draws" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "

    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "T = 30\n", - "n = b + 1 \n", - "draws = independent_draws(T, num_draws=100_000)\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.bar(range(n), [np.mean(draws == i) for i in range(n)], width=0.8, alpha=0.6)\n", - "ax.set(xlabel=\"inventory\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "α = 0.6\n", - "λ = 0.5\n", - "γ = 0.1\n", - "b = 10" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "states = np.arange(n)\n", - "I = np.identity(n)\n", - "\n", - "# Embedded jump chain matrix\n", - "K = np.zeros((n, n))\n", - "K[0, -1] = 1\n", - "for i in range(1, n):\n", - " for j in range(0, i):\n", - " if j == 0:\n", - " K[i, j] = (1 - α)**(i-1)\n", - " else:\n", - " K[i, j] = α * (1 - α)**(i-j-1)\n", - "\n", - "# Jump intensities as a function of the state\n", - "r = np.ones(n) * λ\n", - "r[0] = γ\n", - "\n", - "# Q matrix\n", - "Q = np.empty_like(K)\n", - "for i in range(n):\n", - " for j in range(n):\n", - " Q[i, j] = r[i] * (K[i, j] - I[i, j])\n", - "\n", - "def P_t(ψ, t):\n", - " return ψ @ expm(t * Q)\n", - "\n", - "ψ_0 = binom.pmf(states, n, 0.25)\n", - "ψ_T = P_t(ψ_0, T)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.bar(range(n), ψ_T, width=0.8, alpha=0.6)\n", - "ax.set(xlabel=\"inventory\")\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/1144ec2d237523ea87e2ddd3c1c2321b/base.ipynb b/code_book/_build/.jupyter_cache/executed/1144ec2d237523ea87e2ddd3c1c2321b/base.ipynb deleted file mode 100644 index 4373a7b..0000000 --- a/code_book/_build/.jupyter_cache/executed/1144ec2d237523ea87e2ddd3c1c2321b/base.ipynb +++ /dev/null @@ -1,110 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "xmin, xmax = -10.0, 10.0\n", - "ymin, ymax = -5.0, 5.0\n", - "\n", - "\n", - "A1 = np.asarray([[0.55, -0.6],\n", - " [0.5, 0.4]])\n", - "\n", - "def f(x, y): \n", - " return A1 @ (x, y)\n", - "\n", - "def draw_arrow(x, y, ax):\n", - " eps = 0.75\n", - " v1, v2 = f(x, y)\n", - " nrm = np.sqrt(v1**2 + v2**2)\n", - " scale = eps / nrm\n", - " ax.arrow(x, y, scale * v1, scale * v2,\n", - " antialiased=True, \n", - " alpha=0.4,\n", - " head_length=0.025*(xmax - xmin), \n", - " head_width=0.012*(xmax - xmin),\n", - " fill=False)\n", - "\n", - "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 8)\n", - "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 8)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.set_xlim(xmin, xmax)\n", - "ax.set_ylim(ymin, ymax)\n", - "\n", - "ax.set_xticks((0,))\n", - "ax.set_yticks((0,))\n", - "ax.grid()\n", - "\n", - "for x in xgrid:\n", - " for y in ygrid:\n", - " draw_arrow(x, y, ax)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "source_map": [ - 14, - 18, - 63 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/13237bc72aeab9093aa6eaab60823fcb/base.ipynb b/code_book/_build/.jupyter_cache/executed/13237bc72aeab9093aa6eaab60823fcb/base.ipynb deleted file mode 100644 index 65d5488..0000000 --- a/code_book/_build/.jupyter_cache/executed/13237bc72aeab9093aa6eaab60823fcb/base.ipynb +++ /dev/null @@ -1,167 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.special import factorial, binom" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "t_grid = np.linspace(0, 50, 100)\n", - "\n", - "class Erlang:\n", - "\n", - " def __init__(self, λ=0.5, n=10):\n", - " self.λ, self.n = λ, n\n", - "\n", - " def __call__(self, t):\n", - " n, λ = self.n, self.λ\n", - " return (λ**n * t**(n-1) * np.exp(-λ * t)) / factorial(n-1)\n", - "\n", - "e1 = Erlang(n=10, λ=0.5)\n", - "e2 = Erlang(n=10, λ=0.75)\n", - "\n", - "fig, ax = plt.subplots()\n", - "for e in e1, e2:\n", - " ax.plot(t_grid, e(t_grid), label=f'$n={e.n}, \\lambda={e.λ}$')\n", - "\n", - "ax.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "λ = 0.5 \n", - "np.random.seed(1234)\n", - "t_grid = np.linspace(0, 10, 200)\n", - "\n", - "@njit\n", - "def draw_X(s=1.0, n=1_000):\n", - " draws = np.empty(n)\n", - " for i in range(n):\n", - " Y = np.random.exponential(scale=1/λ)\n", - " if Y <= s:\n", - " X = Y\n", - " else:\n", - " Z = np.random.exponential(scale=1/λ)\n", - " X = s + Z\n", - " draws[i] = X\n", - " return draws\n", - "\n", - "fig, ax = plt.subplots()\n", - "draws = draw_X()\n", - "empirical_exceedance = [np.mean(draws > t) for t in t_grid]\n", - "ax.plot(t_grid, np.exp(- λ * t_grid), label='exponential exceedance')\n", - "ax.plot(t_grid, empirical_exceedance, label='empirical exceedance')\n", - "ax.legend()\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXhU9dn/8fedmUxWkkAIEAi7CIRAEBJWEawscXkAK1YRraJVqUv7+KsKVh+t1VZrrbVa6664AhZ3iwouiIIKQXaQHSSsCUsISSbLzP37IzEFzAYkOZnJ/bquuZI5c2bOZ0L45OSbc75HVBVjjDGBL8TpAMYYY+qGFboxxgQJK3RjjAkSVujGGBMkrNCNMSZIuJ3acMuWLbVTp05Obd4YYwLS0qVLc1Q1obLHHCv0Tp06kZmZ6dTmjTEmIInI9qoesyEXY4wJElboxhgTJKzQjTEmSDg2hm5MICkpKSErKwuv1+t0FNNEhIeHk5SURGhoaK2fY4VuTC1kZWXRrFkzOnXqhIg4HccEOVVl//79ZGVl0blz51o/r8YhFxF5QUT2icjqKh4XEXlMRDaJyEoR6XcCuY0JCF6vl/j4eCtz0yBEhPj4+BP+jbA2Y+jTgYxqHj8X6FZ+uw548oQSGBMgrMxNQzqZ77caC11VFwAHqlllHPCylvkGiBORxBNOUkvb1y3lmyevp8hbUF+bMMaYgFQXR7m0A3YcdT+rfNlPiMh1IpIpIpnZ2dkntbFDuzczaO9Mvv/6g5N6vjGmfh06dIh//etfFfd37drFhAkTqn3Otm3bSElJqe9oJ6UxZzteXRR6Zb8XVHrVDFV9RlXTVDUtIaHSM1dr1GPIBRzRCIpWvntSzzfG1K/jC71t27bMnj3bwURNR10UehbQ/qj7ScCuOnjdSoWFR/J9zGC6HVyAr7S0vjZjTKPz6quvMmDAAPr27cv111+Pz+djyZIl9OnTB6/XS35+Pr169WL16tXMnz+fs846iwsvvJDk5GSmTJmC3+8HYMaMGfTu3ZuUlBSmTp1a8frR0dHceeedpKamMmjQIPbu3QtAdnY2F110Eenp6aSnp7Nw4UIA/vCHP3D11VczYsQIunTpwmOPPQbAtGnT2Lx5M3379uW22247Zg9327ZtDBs2jH79+tGvXz8WLVpU4/v+61//Snp6On369OGee+4B4O2332bkyJGoKrt37+b0009nz549HDlyhMmTJ9O7d2/69OnDm2++CcDcuXMZPHgw/fr14+KLL+bIkSMALF26lOHDh9O/f3/GjBnD7t27K5anpqYyePBgnnjiiYosVeWfP38+I0aMYMKECfTo0YNJkybx49XglixZwpAhQ0hNTWXAgAHk5eXh8/m47bbbKt7X008/fTLfEj9RF4ctvgfcJCIzgYFArqruroPXrVrP/6H54s9Yt2QuPQefV6+bMuZ4976/hrW7Dtfpaya3jeGe/+lV5ePr1q1j1qxZLFy4kNDQUG644QZee+01fvnLXzJ27FjuuusuCgsLufzyy0lJSWH+/PksXryYtWvX0rFjRzIyMnjrrbcYMmQIU6dOZenSpTRv3pzRo0fzzjvvMH78ePLz8xk0aBB/+tOfuP3223n22We56667+O1vf8stt9zCmWeeyQ8//MCYMWNYt24dAN9//z2ff/45eXl5dO/enV//+tc8+OCDrF69muXLlwNlJfijVq1aMW/ePMLDw9m4cSMTJ06sdk6nuXPnsnHjRhYvXoyqMnbsWBYsWMCFF17Im2++yRNPPMFHH33EvffeS5s2bZg6dSqxsbGsWrUKgIMHD5KTk8P999/PJ598QlRUFH/5y1945JFHuOOOO7j55pt59913SUhIYNasWdx555288MILTJ48mccff5zhw4dz22231Sr/smXLWLNmDW3btmXo0KEsXLiQAQMGcMkllzBr1izS09M5fPgwERERPP/888TGxrJkyRKKiooYOnQoo0ePPqFDFCtTY6GLyAxgBNBSRLKAe4BQAFV9CpgDnAdsAgqAyaeUqBZ6DPs5Rd/eTu6yt8EK3TQBn376KUuXLiU9PR2AwsJCWrVqBcDdd99Neno64eHhFXvJAAMGDKBLly4ATJw4ka+++orQ0FBGjBjBj0OekyZNYsGCBYwfPx6Px8MFF1wAQP/+/Zk3bx4An3zyCWvXrq143cOHD5OXlwfA+eefT1hYGGFhYbRq1apir74qJSUl3HTTTSxfvhyXy8WGDRuqXX/u3LnMnTuXM844A4AjR46wceNGzjrrLB5//HFSUlIYNGgQEydOrMg6c+bMiuc3b96cDz74gLVr1zJ06FAAiouLGTx4MOvXr2f16tWMGjUKAJ/PR2JiIrm5uRw6dIjhw4cDcMUV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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "draws = draw_X(n=10_000)\n", - "empirical_exceedance = [np.mean(draws > t) for t in t_grid]\n", - "ax.plot(t_grid, np.exp(- λ * t_grid), label='exponential exceedance')\n", - "ax.plot(t_grid, empirical_exceedance, label='empirical exceedance')\n", - "ax.legend()\n", - "\n", - "plt.show()\n" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/155649bae18a3547616e22154fbf6a9f/base.ipynb b/code_book/_build/.jupyter_cache/executed/155649bae18a3547616e22154fbf6a9f/base.ipynb deleted file mode 100644 index b724c4e..0000000 --- a/code_book/_build/.jupyter_cache/executed/155649bae18a3547616e22154fbf6a9f/base.ipynb +++ /dev/null @@ -1,284 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.special import factorial, binom" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "Ks = 0, 1, 2, 3\n", - "Js = 0, 0.8, 1.8, 2.1, 3\n", - "n = len(Ks)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.plot(Js[:-1], Ks, 'o')\n", - "ax.hlines(Ks, Js[:-1], Js[1:], label='$N_t$')\n", - "ax.vlines(Js[:-1], (0, Ks[0], Ks[1], Ks[2]), Ks, alpha=0.25)\n", - "\n", - "ax.set(xticks=Js[:-1],\n", - " xticklabels=[f'$J_{k}$' for k in range(n)],\n", - " yticks=(0, 1, 2, 3),\n", - " xlabel='$t$')\n", - "\n", - "ax.legend(loc='lower right')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "np.random.seed(1234)\n", - "T = 5\n", - "Ws = np.random.exponential(size=T)\n", - "Js = np.cumsum(Ws)\n", - "Ys = np.arange(T)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.plot(np.insert(Js, 0, 0)[:-1], Ys, 'o')\n", - "ax.hlines(Ys, np.insert(Js, 0, 0)[:-1], Js, label='$N_t$')\n", - "ax.vlines(Js[:-1], Ys[:-1], Ys[1:], alpha=0.25)\n", - "\n", - "ax.set(xticks=[],\n", - " yticks=range(Ys.max()+1),\n", - " xlabel='time')\n", - "\n", - "ax.grid(lw=0.2)\n", - "ax.legend(loc='lower right')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "np.random.seed(1)\n", - "T = 10\n", - "p = 0.25\n", - "B = np.random.uniform(size=T) < p\n", - "N = np.cumsum(B)\n", - "m = N[-1] # max of N\n", - "\n", - "t_grid = np.arange(T)\n", - "t_ticks = [f'$t_{i}$' for i in t_grid]\n", - "ax.set_yticks(range(m+1))\n", - "ax.set_xticks(t_grid)\n", - "ax.set_xticklabels(t_ticks, fontsize=12)\n", - "\n", - "ax.step(t_grid, np.insert(N, 0, 0)[:-1], label='$\\hat N_t$')\n", - "\n", - "for i in t_grid:\n", - " if B[i]:\n", - " ax.vlines((i,), (0,), (m,), ls='--', lw=0.5)\n", - "\n", - "ax.legend(loc='center right')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "λ = 0.5\n", - "T = 10\n", - "\n", - "def poisson(k, r):\n", - " \"Poisson pmf with rate r.\"\n", - " return np.exp(-r) * (r**k) / factorial(k)\n", - "\n", - "@njit\n", - "def draw_Nt(max_iter=1e5):\n", - " J = 0\n", - " n = 0\n", - " while n < max_iter:\n", - " W = np.random.exponential(scale=1/λ)\n", - " J += W\n", - " if J > T:\n", - " return n\n", - " n += 1\n", - "\n", - "@njit\n", - "def draw_Nt_sample(num_draws):\n", - " draws = np.empty(num_draws)\n", - " for i in range(num_draws):\n", - " draws[i] = draw_Nt()\n", - " return draws\n", - "\n", - "\n", - "sample_size = 10_000\n", - "sample = draw_Nt_sample(sample_size)\n", - "max_val = sample.max()\n", - "vals = np.arange(0, max_val+1)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.plot(vals, [poisson(v, T * λ) for v in vals], \n", - " marker='o', label='poisson')\n", - "ax.plot(vals, [np.mean(sample==v) for v in vals], \n", - " marker='o', label='empirical')\n", - "\n", - "ax.legend(fontsize=12)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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DsCLL77Irl278Pl81NTUcNdddwEQj8e5+eabqaioIBAIcP7559Pba7Zp6erq4kMf+hDl5eVs2rSJb3/72+P3/qu/+iuuv/56PvGJT+D1etm+fTtLWSc1n1JH9UD7hP93ABfmef+8r1VK3QbcBrB27do8by9E8YunMnQOx3jXurJFuf+GKg9vdARpH46Nbd8h8vb2zyGcx35aBx+DZBQSo5DbxDgZhaf+FrZ+8MzXempg8+lbts+kvb2dxx9/nHPOOYebbrqJhx9+mCuvvJJ/+Id/YM+ePRw4cACH49Q/eD796U/z6U9/mltuuYVwODy+Hca//du/EQwGaW9vx+l08tprr+F2m7V4N910E9u3b6erq4uDBw9y9dVXs2HDBq666ioAHnnkEX784x9z33338YUvfIE77riDF154YdavZy7y6UFNtWAj35WBeV+rtb5Ha71La70rt9+IECvB8cEoWa0XfP4pp7HMjcNm4diApJsvmugQ2Cctrra7zeML7Dd/8zcJBAJcdtllXHHFFWzbto0PfOADXH311djtdu6++25isRjPPffcadfa7XYOHz7MwMAAHo+Hiy66aPzxwcFBDh8+jNVq5V3vehc+n4/29nZ++ctf8vd///e4XC7OPfdcfv/3f5/vfe974/e87LLLuPbaa7Fardxyyy28/vrrC/6ap5NPD6oDmLincQMw9R7EC3utECvC0f4wJQ4rtT7XotzfZrWwtryEo/0R3rNFz6vG36qTb89m5IQZ1nMHTj4WG4G6HXDexxe0SQ8//DDve9/Jdv3RH/0R69atG/+/xWKhsbGRzs7O06699957+Yu/+Au2bt3K+vXr+cu//Es++MEPcsstt9De3s6NN97IyMgIN998M3/7t39LV1cX5eXleL3e8XusW7fulGG8yVvLx+Nx0uk0Ntvi1xrPpwf1ErBZKbVeKeUAbgQeyfP+87lWiGUvk9UcG4ywvrIUywJUj5jOhqpSQvE0/aHEoj3Hqta8B+IjJijprPk3PmIeX2STt3DXWtPe3j7lFu6bN2/mgQceoK+vj8985jN85CMfIRKJYLfb+cu//EsOHDjAc889x2OPPcb999/PmjVrGBoaIhQKjd/jxIkT894efqHMGKC01mngDuAJoA14SGu9Xyl1u1LqdgClVK1SqgO4C/iCUqpDKeWb7trFejFCFJuukRiJVJYN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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def binomial(k, n, p):\n", - " # Binomial(n, p) pmf evaluated at k\n", - " return binom(n, k) * p**k * (1-p)**(n-k)\n", - "\n", - "θ_vals = 0.5, 0.2, 0.1\n", - "\n", - "n_vals = 50, 75, 100\n", - "\n", - "fig, axes = plt.subplots(len(n_vals), 1, figsize=(6, 12))\n", - "\n", - "for n, θ, ax in zip(n_vals, θ_vals, axes.flatten()):\n", - "\n", - " k_grid = np.arange(n)\n", - " binom_vals = [binomial(k, n, θ) for k in k_grid]\n", - " poisson_vals = [poisson(k, n * θ) for k in k_grid]\n", - " ax.plot(k_grid, binom_vals, 'o-', alpha=0.5, label='binomial')\n", - " ax.plot(k_grid, poisson_vals, 'o-', alpha=0.5, label='Poisson')\n", - " ax.set_title(f'$n={n}$ and $\\\\theta = {θ}$')\n", - " ax.legend(fontsize=12)\n", - "\n", - "fig.tight_layout()\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/1a87139d76e35cf6c6e219fd11b23fe6/base.ipynb b/code_book/_build/.jupyter_cache/executed/1a87139d76e35cf6c6e219fd11b23fe6/base.ipynb deleted file mode 100644 index 44bcdf5..0000000 --- a/code_book/_build/.jupyter_cache/executed/1a87139d76e35cf6c6e219fd11b23fe6/base.ipynb +++ /dev/null @@ -1,110 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "xmin, xmax = -10.0, 10.0\n", - "ymin, ymax = -5.0, 5.0\n", - "\n", - "\n", - "A1 = np.asarray([[0.55, -0.6],\n", - " [0.5, 0.4]])\n", - "\n", - "def f(x, y): \n", - " return A1 @ (x, y)\n", - "\n", - "def draw_arrow(x, y, ax):\n", - " eps = 1.0\n", - " v1, v2 = f(x, y)\n", - " nrm = np.sqrt(v1**2 + v2**2)\n", - " scale = eps / nrm\n", - " ax.arrow(x, y, scale * v1, scale * v2,\n", - " antialiased=True, \n", - " alpha=0.4,\n", - " head_length=0.025*(xmax - xmin), \n", - " head_width=0.012*(xmax - xmin),\n", - " fill=False)\n", - "\n", - "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 8)\n", - "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 8)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.set_xlim(xmin, xmax)\n", - "ax.set_ylim(ymin, ymax)\n", - "\n", - "ax.set_xticks((0,))\n", - "ax.set_yticks((0,))\n", - "ax.grid()\n", - "\n", - "for x in xgrid:\n", - " for y in ygrid:\n", - " draw_arrow(x, y, ax)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "source_map": [ - 14, - 18, - 63 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/38d016ea183021056401c56a91fed34a/base.ipynb b/code_book/_build/.jupyter_cache/executed/38d016ea183021056401c56a91fed34a/base.ipynb deleted file mode 100644 index 10ecb9f..0000000 --- a/code_book/_build/.jupyter_cache/executed/38d016ea183021056401c56a91fed34a/base.ipynb +++ /dev/null @@ -1,50 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/67e995718e020ecec2d9b516aeb5aebd/base.ipynb b/code_book/_build/.jupyter_cache/executed/67e995718e020ecec2d9b516aeb5aebd/base.ipynb deleted file mode 100644 index 6a73304..0000000 --- a/code_book/_build/.jupyter_cache/executed/67e995718e020ecec2d9b516aeb5aebd/base.ipynb +++ /dev/null @@ -1,162 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.linalg import expm\n", - "\n", - "from matplotlib import cm\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "Q = ((-3, 2, 1),\n", - " (3, -5, 2),\n", - " (4, 6, -10))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcwAAAFUCAYAAACp7gyoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5yU5b3//9d13feUrbCgCAiigGJHjwULqIgiAscIKioKAiqoaNSIDQ2KStFj18TvSUyi0Z/mnGhMOYqAio3EEnsHFBSkL2XLtLtcvz/umWVZF9gyu/fcM9fz8Rh33WVnPjA793uuLpRSaJqmaZq2c9LvAjRN0zQtCHRgapqmaVoT6MDUNE3TtCbQgalpmqZpTaADU9M0TdOaQAempmmapjWBuYvv6zUnmqZpWqERjX1RtzA1TdM0rQl0YGqapmlaE+jA1LSAufnmm3nwwQf9LuMnjj76aL744gu/y9C0NqMDU9MCZMOGDfzxj39kypQpAGzatIlRo0ZRUlJCr169eOaZZ5p0Py39uUcffZQjjzySSCTChAkTtvvetGnTmDFjRrP+PpoWJLua9KNpWg554oknGD58OEVFRQBMnTqVcDjMunXr+PjjjxkxYgT9+/fnoIMO2un9tPTnunfvzq233sr8+fOJx+Pbfe+MM87gsssuY82aNXTr1q11f1FNy0G6halpATJv3jxOPPFEAGpra3n++ee58847KS0tZeDAgZxxxhk89dRTO72Plv4cwOjRoznzzDPp3LnzT74XjUY54ogjWLBgQcv+cpqW43RgalqAfPbZZ/Tr1w+AJUuWYBgG++23X933+/fvv8txxJb+XFMccMABfPLJJ62+H03LRTowNS1AtmzZQllZGQA1NTV06NBhu+936NCB6urqnd5HS3+uKcrKytiyZUur70fTcpEOTE0LkIqKirpgKy0tpaqqarvvV1VV1QXqjrT055qiurqajh07tvp+NC0X6cDUtAA59NBDWbJkCQD77bcftm2zdOnSuu9/8sknu5y409Kfa4qvvvqK/v37t/p+NC0X6cDUtAAZPnw4b7zxBgAlJSWMHj2aGTNmUFtby+LFi/nb3/7GuHHj6v78hAkTfrL8o6U/B2DbNolEAsdxcByHRCKBbdsAJJNJPvjgA0499dTs/8U1LQfowNS0ABk/fjwvvfRS3ZKOX//618Tjcbp06cL555/PY489tl1LceXKlRx//PE/uZ+W/txdd91FUVERc+fO5emnn6aoqIi77roLgL///e+cdNJJdO/ePdt/bU3LCUKpne6vrjdf17QcM336dLp06cI111yz0z+XSqXo378/n376KaFQqMn339KfGzBgAL/73e84+OCDm/wzmpajGt18XQempmmapm1Pn1aiaZqmaS2lA1PTNE3TmkAHpqZpmqY1gQ5MTSsASilc1/W7DE0LNH1aiabloUxA2rZdd5NSEg6HMQwDwzAQotF5DZqm7YCeJatpecJ1XRzHwbIsLMui/mtbSolpmkgp675uGAamaSKE0OGpadvTy0o0LZ8opXAcB9u2SaVS23W5Sil/EoJCCD777DP69u1LWVlZXXAKIepanVLqURpNYweBqbtkNS0g6gekZVk4jlP3PSFEoyG5fPlyFi1axOuvv86yZcvo378/M2bMoLy8vO7PKqW267bVXbaa1jjdwtS0HNVwHNKyrLqvZ8JxZ6FmWRYTJ07k+OOP5+STT+bAAw/EMIydPl79j/VbnTo8tQKju2Q1LdftaBwyE44tCa5kVRWxqhirN7gcPmDvJv2MUkp32WqFTAempuWa+t2hlmXtchyyuapWrmT9F19y04MbeeP9Wl7522COOrl5x3jVD0/dZasVCB2Ymua3XY1DZnPGqpNKsfLNN7nvqa18+GWSEwbswcI3V/Kv9y6kpLy4RbXX/6i7bLU8pveS1bT2lgnIZDJJTU0NW7dupaamhng8juu627XYsh08rm3zxJ/X8triLVx3TidO3t+hU5nJjNveadH9ZcI8U6fjOKRSKZLJZF3reBdvwDUt0HRgalqWua5LKpUiFotRVVVFdXU18Xgcx3HqAjKzJrItW2b/9/Jqnnwxzs0XdqG81MS1HS4d3oHnnl/OK6/80Kr7zgRnZkzTtm2SySSpVArbtnVwanlJd8lqWis1Ng6plNrhUo/28M9/ruGCCxbwy8m92N1ai5VIYEYiFHfqxOrifbnr7n/y73+fz267FWXtMXWXrZZH9BimpmVDe45DtsQ332zm9NP/wZ13nkJPZyW169cRKikBx8GKx9l78GAe++M3bNiwmeeeG9Emte5olq3f/zaa1kR6DFPTWsLPccjmWrOmllGjXuLqq4/jmGN6Ei4vx0kmqf5hJbXr1iGl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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def unit_simplex(angle):\n", - " \n", - " fig = plt.figure(figsize=(8, 6))\n", - " ax = fig.add_subplot(111, projection='3d')\n", - "\n", - " vtx = [[0, 0, 1],\n", - " [0, 1, 0], \n", - " [1, 0, 0]]\n", - " \n", - " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", - " tri.set_facecolor([0.5, 0.5, 1])\n", - " ax.add_collection3d(tri)\n", - "\n", - " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", - " xticks=(1,), yticks=(1,), zticks=(1,))\n", - "\n", - " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", - " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", - " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", - "\n", - " ax.xaxis.majorTicks[0].set_pad(15)\n", - " ax.yaxis.majorTicks[0].set_pad(15)\n", - " ax.zaxis.majorTicks[0].set_pad(35)\n", - "\n", - " ax.view_init(30, angle)\n", - "\n", - " # Move axis to origin\n", - " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", - " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", - " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", - " \n", - " ax.grid(False)\n", - " \n", - " return ax\n", - "\n", - "Q = np.array(Q)\n", - "ψ_00 = np.array((0.01, 0.01, 0.99))\n", - "ψ_01 = np.array((0.01, 0.99, 0.01))\n", - "ψ_02 = np.array((0.99, 0.01, 0.01))\n", - "\n", - "ax = unit_simplex(angle=50) \n", - "\n", - "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", - " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", - "\n", - " x_vals, y_vals, z_vals = [], [], []\n", - " for t in range(n):\n", - " x_vals.append(ψ[0])\n", - " y_vals.append(ψ[1])\n", - " z_vals.append(ψ[2])\n", - " ψ = ψ @ expm(h * Q)\n", - "\n", - " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", - "\n", - "flow_plot(ψ_00)\n", - "flow_plot(ψ_01)\n", - "flow_plot(ψ_02)\n", - "\n", - "# Add stationary distribution\n", - "P_1 = expm(Q)\n", - "mc = qe.MarkovChain(P_1)\n", - "ψ = mc.stationary_distributions[0]\n", - "ax.scatter(ψ[0], ψ[1], ψ[2], c='k', s=30, depthshade=False)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 13, - 46, - 58, - 86, - 90, - 98, - 166 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/728d1e87fa1ac3b9f9fd564f8c4c4cbd/base.ipynb b/code_book/_build/.jupyter_cache/executed/728d1e87fa1ac3b9f9fd564f8c4c4cbd/base.ipynb deleted file mode 100644 index 1a9a8f7..0000000 --- a/code_book/_build/.jupyter_cache/executed/728d1e87fa1ac3b9f9fd564f8c4c4cbd/base.ipynb +++ /dev/null @@ -1,209 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.linalg import expm\n", - "\n", - "from matplotlib import cm\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from mpl_toolkits.mplot3d.art3d import Poly3DCollection" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "P = ((0.9, 0.1, 0.0),\n", - " (0.4, 0.4, 0.2),\n", - " (0.1, 0.1, 0.8))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def unit_simplex(angle):\n", - " \n", - " fig = plt.figure(figsize=(8, 6))\n", - " ax = fig.add_subplot(111, projection='3d')\n", - "\n", - " vtx = [[0, 0, 1],\n", - " [0, 1, 0], \n", - " [1, 0, 0]]\n", - " \n", - " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", - " tri.set_facecolor([0.5, 0.5, 1])\n", - " ax.add_collection3d(tri)\n", - "\n", - " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", - " xticks=(1,), yticks=(1,), zticks=(1,))\n", - "\n", - " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", - " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", - " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", - "\n", - " ax.xaxis.majorTicks[0].set_pad(15)\n", - " ax.yaxis.majorTicks[0].set_pad(15)\n", - " ax.zaxis.majorTicks[0].set_pad(35)\n", - "\n", - " ax.view_init(30, angle)\n", - "\n", - " # Move axis to origin\n", - " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", - " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", - " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", - " \n", - " ax.grid(False)\n", - " \n", - " return ax\n", - "\n", - "\n", - "def convergence_plot(ψ, n=14, angle=50):\n", - "\n", - " ax = unit_simplex(angle)\n", - "\n", - " P = ((0.9, 0.1, 0.0),\n", - " (0.4, 0.4, 0.2),\n", - " (0.1, 0.1, 0.8))\n", - " \n", - " P = np.array(P)\n", - " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", - "\n", - " x_vals, y_vals, z_vals = [], [], []\n", - " for t in range(n):\n", - " x_vals.append(ψ[0])\n", - " y_vals.append(ψ[1])\n", - " z_vals.append(ψ[2])\n", - " ψ = ψ @ P\n", - "\n", - " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=50, alpha=0.7, depthshade=False)\n", - "\n", - " return ψ\n", - "\n", - "ψ = convergence_plot((0, 0, 1))\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "Q = ((-3, 2, 1),\n", - " (3, -5, 2),\n", - " (4, 6, -10))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "Q = np.array(Q)\n", - "ψ_00 = np.array((0.01, 0.01, 0.99))\n", - "ψ_01 = np.array((0.01, 0.99, 0.01))\n", - "ψ_02 = np.array((0.99, 0.01, 0.01))\n", - "\n", - "ax = unit_simplex(angle=50) \n", - "\n", - "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", - " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", - "\n", - " x_vals, y_vals, z_vals = [], [], []\n", - " for t in range(n):\n", - " x_vals.append(ψ[0])\n", - " y_vals.append(ψ[1])\n", - " z_vals.append(ψ[2])\n", - " ψ = ψ @ expm(h * Q)\n", - "\n", - " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", - "\n", - "flow_plot(ψ_00)\n", - "flow_plot(ψ_01)\n", - "flow_plot(ψ_02)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/8e6b7cdf0f12f455a1fb52750d3b082f/base.ipynb b/code_book/_build/.jupyter_cache/executed/8e6b7cdf0f12f455a1fb52750d3b082f/base.ipynb deleted file mode 100644 index 646abb5..0000000 --- a/code_book/_build/.jupyter_cache/executed/8e6b7cdf0f12f455a1fb52750d3b082f/base.ipynb +++ /dev/null @@ -1,48 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.linalg import expm" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/991403d0081f09586073fda07f892489/base.ipynb b/code_book/_build/.jupyter_cache/executed/991403d0081f09586073fda07f892489/base.ipynb deleted file mode 100644 index c6b6ecb..0000000 --- a/code_book/_build/.jupyter_cache/executed/991403d0081f09586073fda07f892489/base.ipynb +++ /dev/null @@ -1,163 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.linalg import expm\n", - "\n", - "from matplotlib import cm\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "Q = ((-3, 2, 1),\n", - " (3, -5, 2),\n", - " (4, 6, -10))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def unit_simplex(angle):\n", - " \n", - " fig = plt.figure(figsize=(8, 6))\n", - " ax = fig.add_subplot(111, projection='3d')\n", - "\n", - " vtx = [[0, 0, 1],\n", - " [0, 1, 0], \n", - " [1, 0, 0]]\n", - " \n", - " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", - " tri.set_facecolor([0.5, 0.5, 1])\n", - " ax.add_collection3d(tri)\n", - "\n", - " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", - " xticks=(1,), yticks=(1,), zticks=(1,))\n", - "\n", - " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", - " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", - " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", - "\n", - " ax.xaxis.majorTicks[0].set_pad(15)\n", - " ax.yaxis.majorTicks[0].set_pad(15)\n", - " ax.zaxis.majorTicks[0].set_pad(35)\n", - "\n", - " ax.view_init(30, angle)\n", - "\n", - " # Move axis to origin\n", - " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", - " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", - " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", - " \n", - " ax.grid(False)\n", - " \n", - " return ax\n", - "\n", - "Q = np.array(Q)\n", - "ψ_00 = np.array((0.01, 0.01, 0.99))\n", - "ψ_01 = np.array((0.01, 0.99, 0.01))\n", - "ψ_02 = np.array((0.99, 0.01, 0.01))\n", - "\n", - "ax = unit_simplex(angle=50) \n", - "\n", - "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", - " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", - "\n", - " x_vals, y_vals, z_vals = [], [], []\n", - " for t in range(n):\n", - " x_vals.append(ψ[0])\n", - " y_vals.append(ψ[1])\n", - " z_vals.append(ψ[2])\n", - " ψ = ψ @ expm(h * Q)\n", - "\n", - " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", - "\n", - "flow_plot(ψ_00)\n", - "flow_plot(ψ_01)\n", - "flow_plot(ψ_02)\n", - "\n", - "# Add stationary distribution\n", - "#P_1 = expm(Q)\n", - "\n", - "#mc = qe.MarkovChain(P_1)\n", - "#ψ_star = mc.stationary_distributions\n", - "#ax.scatter(0.2, 0.2, 0.6, c='k', s=20, alpha=0.2, depthshade=False)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 13, - 46, - 58, - 86, - 90, - 98, - 167 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/b19efb60339c53c4699e1e5f5057071a/base.ipynb b/code_book/_build/.jupyter_cache/executed/b19efb60339c53c4699e1e5f5057071a/base.ipynb deleted file mode 100644 index 35a0788..0000000 --- a/code_book/_build/.jupyter_cache/executed/b19efb60339c53c4699e1e5f5057071a/base.ipynb +++ /dev/null @@ -1,110 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "xmin, xmax = -10.0, 10.0\n", - "ymin, ymax = -5.0, 5.0\n", - "\n", - "\n", - "A1 = np.asarray([[0.55, -0.6],\n", - " [0.5, 0.4]])\n", - "\n", - "def f(x, y): \n", - " return A1 @ (x, y)\n", - "\n", - "def draw_arrow(x, y, ax):\n", - " eps = 1.0\n", - " v1, v2 = f(x, y)\n", - " nrm = np.sqrt(v1**2 + v2**2)\n", - " scale = eps / nrm\n", - " ax.arrow(x, y, scale * v1, scale * v2,\n", - " antialiased=True, \n", - " alpha=0.4,\n", - " head_length=0.025*(xmax - xmin), \n", - " head_width=0.012*(xmax - xmin),\n", - " fill=False)\n", - "\n", - "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 20)\n", - "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 20)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.set_xlim(xmin, xmax)\n", - "ax.set_ylim(ymin, ymax)\n", - "\n", - "ax.set_xticks((0,))\n", - "ax.set_yticks((0,))\n", - "ax.grid()\n", - "\n", - "for x in xgrid:\n", - " for y in ygrid:\n", - " draw_arrow(x, y, ax)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "source_map": [ - 14, - 18, - 63 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/ca484b75c9e681c89cc70bdfd6b7cfb6/base.ipynb b/code_book/_build/.jupyter_cache/executed/ca484b75c9e681c89cc70bdfd6b7cfb6/base.ipynb deleted file mode 100644 index 52b1d9d..0000000 --- a/code_book/_build/.jupyter_cache/executed/ca484b75c9e681c89cc70bdfd6b7cfb6/base.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/cc54771f9a1a14e35bc8d1a6c3f137fa/base.ipynb b/code_book/_build/.jupyter_cache/executed/cc54771f9a1a14e35bc8d1a6c3f137fa/base.ipynb deleted file mode 100644 index 7f79d81..0000000 --- a/code_book/_build/.jupyter_cache/executed/cc54771f9a1a14e35bc8d1a6c3f137fa/base.ipynb +++ /dev/null @@ -1,162 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.linalg import expm\n", - "\n", - "from matplotlib import cm\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "Q = ((-3, 2, 1),\n", - " (3, -5, 2),\n", - " (4, 6, -10))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def unit_simplex(angle):\n", - " \n", - " fig = plt.figure(figsize=(8, 6))\n", - " ax = fig.add_subplot(111, projection='3d')\n", - "\n", - " vtx = [[0, 0, 1],\n", - " [0, 1, 0], \n", - " [1, 0, 0]]\n", - " \n", - " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", - " tri.set_facecolor([0.5, 0.5, 1])\n", - " ax.add_collection3d(tri)\n", - "\n", - " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", - " xticks=(1,), yticks=(1,), zticks=(1,))\n", - "\n", - " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", - " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", - " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", - "\n", - " ax.xaxis.majorTicks[0].set_pad(15)\n", - " ax.yaxis.majorTicks[0].set_pad(15)\n", - " ax.zaxis.majorTicks[0].set_pad(35)\n", - "\n", - " ax.view_init(30, angle)\n", - "\n", - " # Move axis to origin\n", - " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", - " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", - " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", - " \n", - " ax.grid(False)\n", - " \n", - " return ax\n", - "\n", - "Q = np.array(Q)\n", - "ψ_00 = np.array((0.01, 0.01, 0.99))\n", - "ψ_01 = np.array((0.01, 0.99, 0.01))\n", - "ψ_02 = np.array((0.99, 0.01, 0.01))\n", - "\n", - "ax = unit_simplex(angle=50) \n", - "\n", - "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", - " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", - "\n", - " x_vals, y_vals, z_vals = [], [], []\n", - " for t in range(n):\n", - " x_vals.append(ψ[0])\n", - " y_vals.append(ψ[1])\n", - " z_vals.append(ψ[2])\n", - " ψ = ψ @ expm(h * Q)\n", - "\n", - " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", - "\n", - "flow_plot(ψ_00)\n", - "flow_plot(ψ_01)\n", - "flow_plot(ψ_02)\n", - "\n", - "# Add stationary distribution\n", - "P_1 = expm(Q)\n", - "mc = qe.MarkovChain(P_1)\n", - "ψ_star = mc.stationary_distributions\n", - "ax.scatter(0.2, 0.2, 0.6, c='k', s=20, alpha=0.2, depthshade=False)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 13, - 46, - 58, - 86, - 90, - 98, - 166 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/cf5f20299b6a4f96f931e28c5af3911e/base.ipynb b/code_book/_build/.jupyter_cache/executed/cf5f20299b6a4f96f931e28c5af3911e/base.ipynb deleted file mode 100644 index 7e875c0..0000000 --- a/code_book/_build/.jupyter_cache/executed/cf5f20299b6a4f96f931e28c5af3911e/base.ipynb +++ /dev/null @@ -1,162 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.linalg import expm\n", - "\n", - "from matplotlib import cm\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "Q = ((-3, 2, 1),\n", - " (3, -5, 2),\n", - " (4, 6, -10))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def unit_simplex(angle):\n", - " \n", - " fig = plt.figure(figsize=(8, 6))\n", - " ax = fig.add_subplot(111, projection='3d')\n", - "\n", - " vtx = [[0, 0, 1],\n", - " [0, 1, 0], \n", - " [1, 0, 0]]\n", - " \n", - " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", - " tri.set_facecolor([0.5, 0.5, 1])\n", - " ax.add_collection3d(tri)\n", - "\n", - " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", - " xticks=(1,), yticks=(1,), zticks=(1,))\n", - "\n", - " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", - " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", - " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", - "\n", - " ax.xaxis.majorTicks[0].set_pad(15)\n", - " ax.yaxis.majorTicks[0].set_pad(15)\n", - " ax.zaxis.majorTicks[0].set_pad(35)\n", - "\n", - " ax.view_init(30, angle)\n", - "\n", - " # Move axis to origin\n", - " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", - " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", - " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", - " \n", - " ax.grid(False)\n", - " \n", - " return ax\n", - "\n", - "Q = np.array(Q)\n", - "ψ_00 = np.array((0.01, 0.01, 0.99))\n", - "ψ_01 = np.array((0.01, 0.99, 0.01))\n", - "ψ_02 = np.array((0.99, 0.01, 0.01))\n", - "\n", - "ax = unit_simplex(angle=50) \n", - "\n", - "def flow_plot(ψ, h=0.001, n=400, angle=50):\n", - " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", - "\n", - " x_vals, y_vals, z_vals = [], [], []\n", - " for t in range(n):\n", - " x_vals.append(ψ[0])\n", - " y_vals.append(ψ[1])\n", - " z_vals.append(ψ[2])\n", - " ψ = ψ @ expm(h * Q)\n", - "\n", - " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", - "\n", - "flow_plot(ψ_00)\n", - "flow_plot(ψ_01)\n", - "flow_plot(ψ_02)\n", - "\n", - "# Add stationary distribution\n", - "P_1 = expm(Q)\n", - "mc = qe.MarkovChain(P_1)\n", - "ψ = mc.stationary_distributions[0]\n", - "ax.scatter(ψ[0], ψ[1], ψ[2], c='k', s=20, depthshade=False)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 13, - 46, - 58, - 86, - 90, - 98, - 166 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/d0d7abff15f3f3fd52e5de620b2bd3a2/base.ipynb b/code_book/_build/.jupyter_cache/executed/d0d7abff15f3f3fd52e5de620b2bd3a2/base.ipynb deleted file mode 100644 index 0268785..0000000 --- a/code_book/_build/.jupyter_cache/executed/d0d7abff15f3f3fd52e5de620b2bd3a2/base.ipynb +++ /dev/null @@ -1,162 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "from scipy.linalg import expm\n", - "\n", - "from matplotlib import cm\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "Q = ((-3, 2, 1),\n", - " (3, -5, 2),\n", - " (4, 6, -10))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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BZcfahKPx6quX09dOz0xUi8cSmCtJd/fx+l3jzLw+gFGPzxOfnSYMAjw29tJdW7GS7cyFl/L7n89xn/u/1suvnjtpP92Ddg8GhSY80/BKSILpXSH95mmtit3cFduHJuq3rra2rTnOWVhnEz6JOIuK7wRVgU9rMwcJ2UGsS0rMSs24LSu4X97VpEJLK+88tVJu7UbsLUXTBGY6ic1B47j4Ps+nucRBIGCU0TmTTSNGR2Z2dGxONOZhR3elfXNZWvMI1mGe3sZ7T9F3vjkEivZEng4DuTzeVwXuru7eeqpp9i5cydXXHHForz2xVA3gbl79246Ozu58847l/qllLn88st55JFHuOCCC6Z8juM4xGIxfN9XcIpIw3Ich3g82onc3j7dMyeXkvT29vLwwz9j7969pFIpvvKVr3Duuecu2GtdCnXxbt7X18djjz3G7bffDsBPfvITLrvsMhKJBLfddlvN9+nv7+eGG24gnU6zZcsWnnzyyTlfd9ddd7Fnz56a7lMIzpaWlmKRbhiGxcPdRUSa1QMPPIC1lieeeIJ9+/Zx66230tbWVjyruxnUxRrmD3/4Q44ePcqDDz4IwNNPP43ruuzfv5+xsTEeffTRmu6za9cujDE89NBDHDx4kC996Uu89NJL044Oz3RdJpOhq6uLI0eOsGHD1LVG1VhriyNOY8yUjapFRJpBIU8Kp/t4nofv+/i+32izbVXfqOviN3j22We58sori1/feOONXH/99axevbrme4yMjLB3717uueceWltb+fznP8+1117L448/PqfrkskkO3bs4Pnnn5/x71U54oRoAfwM/0gREWkohQ2Qhdm0eDxOOp2mpaWl0fpgTqsufovDhw+zbdu2Od3j6NGjeJ7H1q1bi49t376dI0eOzPm68847j0OHDs36tZUGZ6EWScEpIo2sWki2tLQ0XUiWqotNPwMDA7S1zbyLd6nTp0/TXrFK3d7ezvDw8Jyva2tro6enZ06vD6beHKSpWhFpBIWp1sJhBPF4vDjduhzew+oiMFeuXHnGYDuT1tZWhoaGyh4bGho6YxDXct3w8DAdHR1zen2lFJwi0igKAVlQWJP0vOY9LnAqdTFmvuiiizh69Oic7rF161aCIODtt98uPnbo0KEzbvip5bo333yT7du3z+n1VVNtjTMMQ03VisiSstZijClOuXqeRzKZJJ1O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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def unit_simplex(angle):\n", - " \n", - " fig = plt.figure(figsize=(8, 6))\n", - " ax = fig.add_subplot(111, projection='3d')\n", - "\n", - " vtx = [[0, 0, 1],\n", - " [0, 1, 0], \n", - " [1, 0, 0]]\n", - " \n", - " tri = Poly3DCollection([vtx], color='darkblue', alpha=0.3)\n", - " tri.set_facecolor([0.5, 0.5, 1])\n", - " ax.add_collection3d(tri)\n", - "\n", - " ax.set(xlim=(0, 1), ylim=(0, 1), zlim=(0, 1), \n", - " xticks=(1,), yticks=(1,), zticks=(1,))\n", - "\n", - " ax.set_xticklabels(['$(1, 0, 0)$'], fontsize=12)\n", - " ax.set_yticklabels(['$(0, 1, 0)$'], fontsize=12)\n", - " ax.set_zticklabels(['$(0, 0, 1)$'], fontsize=12)\n", - "\n", - " ax.xaxis.majorTicks[0].set_pad(15)\n", - " ax.yaxis.majorTicks[0].set_pad(15)\n", - " ax.zaxis.majorTicks[0].set_pad(35)\n", - "\n", - " ax.view_init(30, angle)\n", - "\n", - " # Move axis to origin\n", - " ax.xaxis._axinfo['juggled'] = (0, 0, 0)\n", - " ax.yaxis._axinfo['juggled'] = (1, 1, 1)\n", - " ax.zaxis._axinfo['juggled'] = (2, 2, 0)\n", - " \n", - " ax.grid(False)\n", - " \n", - " return ax\n", - "\n", - "Q = np.array(Q)\n", - "ψ_00 = np.array((0.01, 0.01, 0.99))\n", - "ψ_01 = np.array((0.01, 0.99, 0.01))\n", - "ψ_02 = np.array((0.99, 0.01, 0.01))\n", - "\n", - "ax = unit_simplex(angle=50) \n", - "\n", - "def flow_plot(ψ, h=0.001, n=300, angle=50):\n", - " colors = cm.jet_r(np.linspace(0.0, 1, n))\n", - "\n", - " x_vals, y_vals, z_vals = [], [], []\n", - " for t in range(n):\n", - " x_vals.append(ψ[0])\n", - " y_vals.append(ψ[1])\n", - " z_vals.append(ψ[2])\n", - " ψ = ψ @ expm(h * Q)\n", - "\n", - " ax.scatter(x_vals, y_vals, z_vals, c=colors, s=20, alpha=0.2, depthshade=False)\n", - "\n", - "flow_plot(ψ_00)\n", - "flow_plot(ψ_01)\n", - "flow_plot(ψ_02)\n", - "\n", - "# Add stationary distribution\n", - "P_1 = expm(Q)\n", - "mc = qe.MarkovChain(P_1)\n", - "ψ = mc.stationary_distributions[0]\n", - "ax.scatter(ψ[0], ψ[1], ψ[2], c='k', s=30, depthshade=False)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 13, - 46, - 58, - 86, - 90, - 98, - 166 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/e180333dbedfca98ea3dea6dd1e90cef/base.ipynb b/code_book/_build/.jupyter_cache/executed/e180333dbedfca98ea3dea6dd1e90cef/base.ipynb deleted file mode 100644 index 7afeeb3..0000000 --- a/code_book/_build/.jupyter_cache/executed/e180333dbedfca98ea3dea6dd1e90cef/base.ipynb +++ /dev/null @@ -1,94 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "xmin, xmax = -10.0, 10.0\n", - "ymin, ymax = -5.0, 5.0\n", - "\n", - "\n", - "A1 = np.asarray([[0.55, -0.6],\n", - " [0.5, 0.4]])\n", - "\n", - "def f(x, y): \n", - " return A1 @ (x, y)\n", - "\n", - "def draw_arrow(x, y, ax):\n", - " eps = 0.75\n", - " v1, v2 = f(x, y)\n", - " nrm = np.sqrt(v1**2 + v2**2)\n", - " scale = eps / nrm\n", - " ax.arrow(x, y, scale * v1, scale * v2,\n", - " antialiased=True, \n", - " alpha=0.4,\n", - " head_length=0.025*(xmax - xmin), \n", - " head_width=0.012*(xmax - xmin),\n", - " fill=False)\n", - "\n", - "xgrid = np.linspace(xmin * 1.1, xmax * 0.95, 8)\n", - "ygrid = np.linspace(ymin * 1.1, ymax * 0.95, 8)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.set_xlim(xmin, xmax)\n", - "ax.set_ylim(ymin, ymax)\n", - "\n", - "ax.set_xticks((0,))\n", - "ax.set_yticks((0,))\n", - "ax.grid()\n", - "\n", - "for x in xgrid:\n", - " for y in ygrid:\n", - " draw_arrow(x, y, ax)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "source_map": [ - 2, - 47 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/e60cf8228dbed3fa42cb364fc6b655db/base.ipynb b/code_book/_build/.jupyter_cache/executed/e60cf8228dbed3fa42cb364fc6b655db/base.ipynb deleted file mode 100644 index cb5d9f0..0000000 --- a/code_book/_build/.jupyter_cache/executed/e60cf8228dbed3fa42cb364fc6b655db/base.ipynb +++ /dev/null @@ -1,219 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "\n", - "import quantecon as qe\n", - "from numba import njit\n", - "\n", - "from scipy.linalg import expm\n", - "from scipy.stats import binom\n", - "\n", - "from matplotlib import cm\n", - "from mpl_toolkits.mplot3d import Axes3D" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "def sim_path(T=10, seed=123, λ=0.5, α=0.7, b=10):\n", - " \"\"\"\n", - " Generate a path for inventory starting at b, up to time T.\n", - "\n", - " Return the path as a function X(t) constructed from (J_k) and (Y_k).\n", - " \"\"\"\n", - "\n", - " J, Y = 0, b\n", - " J_vals, Y_vals = [J], [Y]\n", - " np.random.seed(seed)\n", - "\n", - " while True:\n", - " W = np.random.exponential(scale=1/λ) # W ~ Exp(λ)\n", - " J += W\n", - " J_vals.append(J)\n", - " if J >= T:\n", - " break\n", - " # Update Y\n", - " if Y == 0:\n", - " Y = b\n", - " else:\n", - " U = np.random.geometric(α)\n", - " Y = Y - min(Y, U)\n", - " Y_vals.append(Y)\n", - " \n", - " Y_vals = np.array(Y_vals)\n", - " J_vals = np.array(J_vals)\n", - "\n", - " def X(t):\n", - " if t == 0.0:\n", - " return Y_vals[0]\n", - " else:\n", - " k = np.searchsorted(J_vals, t)\n", - " return Y_vals[k-1]\n", - "\n", - " return X" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "T = 20\n", - "X = sim_path(T=T)\n", - "\n", - "grid = np.linspace(0, T, 100)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.step(grid, [X(t) for t in grid], label=\"$X_t$\")\n", - "\n", - "ax.set(xlabel=\"time\", ylabel=\"inventory\")\n", - "\n", - "ax.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "application/papermill.record/image/png": "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\n", - "application/papermill.record/text/plain": "
    " - }, - "metadata": { - "scrapbook": { - "mime_prefix": "application/papermill.record/", - "name": "flow_fig" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "α = 0.6\n", - "λ = 0.5\n", - "b = 10\n", - "n = b + 1\n", - "states = np.arange(n)\n", - "I = np.identity(n)\n", - "\n", - "K = np.zeros((n, n))\n", - "K[0, -1] = 1\n", - "for i in range(1, n):\n", - " for j in range(0, i):\n", - " if j == 0:\n", - " K[i, j] = (1 - α)**(i-1)\n", - " else:\n", - " K[i, j] = α * (1 - α)**(i-j-1)\n", - "\n", - "\n", - "def P_t(ψ, t):\n", - " return ψ @ expm(t * λ * (K - I))\n", - "\n", - "def plot_distribution_dynamics(ax, ψ_0, steps=200, step_size=0.1):\n", - " ψ = ψ_0\n", - " t = 0.0\n", - " colors = cm.jet_r(np.linspace(0.0, 1, steps))\n", - "\n", - " for i in range(steps):\n", - " ax.bar(states, ψ, zs=t, zdir='y', \n", - " color=colors[i], alpha=0.8, width=0.4)\n", - " ψ = P_t(ψ, t=step_size)\n", - " t += step_size\n", - "\n", - " ax.set_xlabel('inventory')\n", - " ax.set_ylabel('$t$')\n", - "\n", - "\n", - "ψ_0 = binom.pmf(states, n, 0.25)\n", - "fig = plt.figure(figsize=(8, 6))\n", - "ax = fig.add_subplot(111, projection='3d')\n", - "plot_distribution_dynamics(ax, ψ_0)\n", - "\n", - "from myst_nb import glue\n", - "glue(\"flow_fig\", fig, display=False)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - }, - "source_map": [ - 13, - 78, - 91, - 563, - 600, - 604, - 617, - 1041 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/ea07c70b3aaf779f8ff59260f515e811/base.ipynb b/code_book/_build/.jupyter_cache/executed/ea07c70b3aaf779f8ff59260f515e811/base.ipynb deleted file mode 100644 index f81f0b8..0000000 --- a/code_book/_build/.jupyter_cache/executed/ea07c70b3aaf779f8ff59260f515e811/base.ipynb +++ /dev/null @@ -1,217 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "import quantecon as qe\n", - "from numba import njit\n", - "\n", - "from scipy.linalg import expm\n", - "from scipy.stats import binom" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "α = 0.6\n", - "λ = 0.5\n", - "γ = 0.1\n", - "b = 10" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "@njit\n", - "def draw_X(T, X_0, max_iter=5000):\n", - " \"\"\"\n", - " Generate one draw of X_T given X_0.\n", - " \"\"\"\n", - "\n", - " J, Y = 0, X_0\n", - " m = 0\n", - "\n", - " while m < max_iter:\n", - " s = 1/γ if Y == 0 else 1/λ\n", - " W = np.random.exponential(scale=s) # W ~ E(λ)\n", - " J += W\n", - " if J >= T:\n", - " return Y\n", - " # Otherwise update Y\n", - " if Y == 0:\n", - " Y = b\n", - " else:\n", - " U = np.random.geometric(α)\n", - " Y = Y - min(Y, U)\n", - " m += 1\n", - "\n", - "\n", - "@njit\n", - "def independent_draws(T=10, num_draws=100):\n", - " \"Generate a vector of independent draws of X_T.\"\n", - "\n", - " draws = np.empty(num_draws, dtype=np.int64)\n", - "\n", - " for i in range(num_draws):\n", - " X_0 = np.random.binomial(b+1, 0.25)\n", - " draws[i] = draw_X(T, X_0)\n", - "\n", - " return draws" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "T = 30\n", - "n = b + 1 \n", - "draws = independent_draws(T, num_draws=100_000)\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.bar(range(n), [np.mean(draws == i) for i in range(n)], width=0.8, alpha=0.6)\n", - "ax.set_xlabel(\"inventory\", fontsize=14)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "α = 0.6\n", - "λ = 0.5\n", - "γ = 0.1\n", - "b = 10" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "states = np.arange(n)\n", - "I = np.identity(n)\n", - "\n", - "# Embedded jump chain matrix\n", - "K = np.zeros((n, n))\n", - "K[0, -1] = 1\n", - "for i in range(1, n):\n", - " for j in range(0, i):\n", - " if j == 0:\n", - " K[i, j] = (1 - α)**(i-1)\n", - " else:\n", - " K[i, j] = α * (1 - α)**(i-j-1)\n", - "\n", - "# Jump intensities as a function of the state\n", - "r = np.ones(n) * λ\n", - "r[0] = γ\n", - "\n", - "# Q matrix\n", - "Q = np.empty_like(K)\n", - "for i in range(n):\n", - " for j in range(n):\n", - " Q[i, j] = r[i] * (K[i, j] - I[i, j])\n", - "\n", - "def P_t(ψ, t):\n", - " return ψ @ expm(t * Q)\n", - "\n", - "ψ_0 = binom.pmf(states, n, 0.25)\n", - "ψ_T = P_t(ψ_0, T)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.bar(range(n), ψ_T, width=0.8, alpha=0.6)\n", - "ax.set_xlabel(\"inventory\", fontsize=14)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - }, - "source_map": [ - 13, - 41, - 50, - 425, - 430, - 440, - 478, - 488, - 504, - 509, - 536, - 572 - ] - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/executed/f17685b4e22655fb8eade8a9c339e2a9/base.ipynb b/code_book/_build/.jupyter_cache/executed/f17685b4e22655fb8eade8a9c339e2a9/base.ipynb deleted file mode 100644 index aa9b0c7..0000000 --- a/code_book/_build/.jupyter_cache/executed/f17685b4e22655fb8eade8a9c339e2a9/base.ipynb +++ /dev/null @@ -1,209 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy as sp\n", - "import matplotlib.pyplot as plt\n", - "\n", - "import quantecon as qe\n", - "from numba import njit\n", - "\n", - "from scipy.linalg import expm\n", - "from scipy.stats import binom\n", - "\n", - "from matplotlib import cm\n", - "from mpl_toolkits.mplot3d import Axes3D" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "def sim_path(T=10, seed=123, λ=0.5, α=0.7, b=10):\n", - " \"\"\"\n", - " Generate a path for inventory starting at b, up to time T.\n", - "\n", - " Return the path as a function X(t) constructed from (J_k) and (Y_k).\n", - " \"\"\"\n", - "\n", - " J, Y = 0, b\n", - " J_vals, Y_vals = [J], [Y]\n", - " np.random.seed(seed)\n", - "\n", - " while True:\n", - " W = np.random.exponential(scale=1/λ) # W ~ E(λ)\n", - " J += W\n", - " J_vals.append(J)\n", - " if J >= T:\n", - " break\n", - " # Update Y\n", - " if Y == 0:\n", - " Y = b\n", - " else:\n", - " U = np.random.geometric(α)\n", - " Y = Y - min(Y, U)\n", - " Y_vals.append(Y)\n", - " \n", - " Y_vals = np.array(Y_vals)\n", - " J_vals = np.array(J_vals)\n", - "\n", - " def X(t):\n", - " if t == 0.0:\n", - " return Y_vals[0]\n", - " else:\n", - " k = np.searchsorted(J_vals, t)\n", - " return Y_vals[k-1]\n", - "\n", - " return X" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "T = 20\n", - "X = sim_path(T=T)\n", - "\n", - "grid = np.linspace(0, T, 100)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.step(grid, [X(t) for t in grid], label=\"$X_t$\")\n", - "\n", - "ax.set(xlabel=\"time\", ylabel=\"inventory\")\n", - "\n", - "ax.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "application/papermill.record/image/png": "iVBORw0KGgoAAAANSUhEUgAAAcwAAAFUCAYAAACp7gyoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9eXAc133v++1lVswAxMoFoLiTICmRoiTKpBL7pm49W0tu+T7p1q34+darih0+SbEr0XXi1FPixIkc2+9ZdhRH0Y3kWJRtyZIVP8eWnNhSJMuSvMgiRVHURoLY930AYnrWnl7eH4PTON3TPdOzAGgA51OFAjDT3XNmpvt8+/c7v4XTdR0MBoPBYDCKw6/2ABgMBoPBWAswwWQwGAwGwwVMMBkMBoPBcAETTAaDwWAwXMAEk8FgMBgMFzDBZDAYDAbDBWKJ51nOCYPBYDA2Gpzdg8zCZDAYDAbDBUwwGQwGg8FwARNMBoPBYDBcwASTwWAwGAwXMMFkMBgMBsMFTDAZDAaDwXABE0wGg8FgMFzABJPBYDAYDBcwwWQwGAwGwwVMMBkMBoPBcAETTAaDwWAwXMAEk8FgMBgMFzDBZDAYDAbDBUwwGQwGg8FwARNMBoPBYDBcwASTwWAwGAwXMMFkMBgMBsMFTDAZDAaDwXABE0wGg8FgMFwgrvYAGIzVQNd1aJoGRVEgCAJ4ngfPs/tHBoPhDBNMxoZC13Xouo5cLgdVVZHJZAyh5DgOgiBAFEWTiHIct8qjZjAYXoDTdb3Y80WfZDDWEpqmIZfLQdM0cBwHXdchyzJ4nge5Doig0giCYAgpz/MQBIGJKIOxvrG9wJlgMtY9xPWqqiqAvCXJcRw0TTME0wkioNbrhAgn/UOOy2Aw1jy2FzJzyTLWLbquI5VKmVyu5Qqa3T5EPBVFQVdXF1pbW1FfXw8AJpcucesyEWUw1gdMMBnrDl3XoSgKFEXB2bNnceLEiZoG9BABpH8LgmAEEmWzWdP2xBql10aZNcpgrD2YYDLWDbquQ1VVKIoCXdcNUVopYSpmjeZyOciyXCCyLMCIwVg7MMFkrHnshJJ2w5LHlgNy/GLPA3lXrdOYaXieL3DpsnQXBsMbMMFkrFmICzSXyxUIJYEE99iJTjKZxPz8PCKRCMLh8IoKk5M1SiJ3rdsya5TBWH2YYDLWHHQuJUkRcRI7Owswk8mgt7cXiUQCjY2NiMViSKVS4DgOdXV1iEajiEQiiEQiEMXil0gpC7Mcirl07axRlu7CYKwsTDAZawprLmWpNUo6xzKXy6G/vx+xWAx79uzBwYMHoSiKsb+qqkgmk5AkCVNTU+jr64OqqgiFQoaARiIRBINB01pkrQTTDmuAEYFY16qqGhZpLpdDIpFAW1sbS3dhMJYBJpiMNYFTLmUpOI6DoigYGxvD+Pg4duzYgX379oHneWiaZlrfFAQB9fX1RooIkBemdDqNRCIBSZIwMTGBTCYDURQRiUSQTqfh9/vR2Ni46i7dbDaLiYkJNDU1mQKMyHtj6S4MRnWwwgUMT0NSRC5fvoyrrroKfr/f9USv6zpee+01aJqG9vZ27NixwxR8Q6zVSoSDWHODg4MAYLhLw+GwyaXr9/vLPnalpNNp9Pb24pprrjE9Xqr4Akt3YTAKYIULGGsHOpcSAOLxuOtoV13XMTMzg97eXqiqiqNHj6KhoaFgu2qEwefzobGxEfPz86ivr0dLSws0TUMqlYIkSYjFYhgaGkIul0MgEDAENBqNIhQKragosXQXBqM2MMFkeAqnXEp6LbIY8/Pz6OnpQSgUwrFjx3D58uWSgTvVQK9h8jxvCCP9frLZLBKJBBKJBKanp5FOpyEIQkGAkTX1ZDmpRboLs0YZGw0mmAxPUCyXElhKD3EikUigu7sbAHDo0CFDtJY7KKcUHMchGAwiGAyipaXFeFxRFCPAaGJiAolEApqmIRwOm6zRcl3QtRgvS3dhMOxhgslYVdzkUgLOwpfJZNDT04NUKoX9+/ejsbHR9Lxby7RSKhVkURTR0NBgchWT2reJRAILCwsYGxtDNpuFz+cziWixnNHlECuW7sJg5GGCyVgVysmlBGBEtRLoFJG9e/eitbXVdlJebQuzHEgeaF1dHTZv3mw8Lsuy4dIdGhpCKpUCAFOqC+0GXqmx0r8JdLpLPB7H+Pg4du3aVdDZhaW7MNYiTDAZK065uZTAkvCpqoqhoSFMTExgx44d2L9/f9F9VyJPcrkF2e/3o6mpCU1NTcZjqqoaAUYzMzMYGBiALMtQFAX9/f2GNUrnjK4E1u9SlmVjnVRRFJbuwljTMMFkrBiapkGSJCPVohwLg+M4TE5OYnZ2Ftu2bcOJEydcBcmUWvusltWyYAVBQDQaRTQaNR5LJpPo7e1FNBqFJEmYnJxEJpMxtiWWaF1d3YoEGJHPhbZGaS9Cqe4utFuXWaMML8AEk7Hs0Cki58+fx8mTJ8sKZJmensbU1BSam5tx4403wufzuX7tteSSrRYShNPa2orW1lbjcZIzmkgkMDY2hmQyCV3XbQOMlmNMxZ5j6S6MtQQTTMayYc2ldFr3cmJubg49PT3Gmt7mzZvLEkvyWmvdJesWp3GQnFE6IIrkjCYSCczPz2N4eBi5XA5+v98QUFKUvlJRqqRLjJt0F/q4LN2FsZIwwWTUHDuhpCewUhOpJEno7u4Gz/M4fPgwIpEIuru7KxKm5Y6SBWqTzlEr3AqFU84oCTAia6OpVMq0rdui9OR4tRIulu7C8AJMMBk1w6noAE2x/pSktFs6ncb+/fuxadMm4zlrlKxbVqo4+nqA4zgEAgEEAgE0Nzcbj6uqarh07YrSE2s0EAiUdWNUi/GWm+4C5IOo6EhdBsMtTDAZVVOq6AANET76eVmW0d/fj/n5eezduxctLS2OQlsuG8klu1wIgmCbM0qK0tM5o6IoGgK6Gp9LqXSXS5cuoaOjw7Cs6QAjlu7CKAUTTEbFlJtLCZgtRVVVMTg4iMnJSezcuRMHDhxwnKiqsTCXM0p2o8JxHMLhMMLhMNra2ozHc7kcJElCIpHA3NwcJElCPB5HXV2dKcCo3LXoWoyXnFvEVUsEnaW7MNzCBJNREZXkUgJ54VMUBVNTUxgeHkZ7eztOnjxZUmi9bGEyQV7C5/MZOaORSARzc3PYvXs3kskkEokEYrEYBgcHoSiKUZSeWKQrUZSe9m6wdBdGuTDBZJQFyaWUJAnNzc1lTRgkQOP8+fPYvHlzWSkiXl3DZDhDu+etOaOkKD2xRqempoyi9NYAo1rmjFqXA+woN92F53n4fD4WYLQBYILJcAUd+ZpMJjEzM2PK9StFLBZDb28vZFnGkSNHCmq+lqJS4fNqLdnlwCvjIBQL+qGL0tPnkaIoRoCRXVF6Yo2WU5Te7ZiKUSzdRdM0ZDIZlu6yAWCCySiKXYqIKIqurb14PI6enh4IgoCrr74afX19FbXb4nkeuVyu7P28JGgrgZcm5ErESRRFbNq0yRQhrWka0uk0JEnC/Pw8RkZGIMsyfD6fqYJRsaL09LFKbVMOLN1lY8EEk2FLsVxKN+7RVCqF3t5eZLNZ7N+/34iwXGnXaqk1xmonq40myOVQq8+F53mjKD0N3Wc0FoshlUoZBexpa5S+Qau1YNpRbrqLLMsIBAIIhUKsu4vHYYLJMOEml7KY6MmyjL6+Ply5csU2RaRSwfRylCwTTGeWc+J3yhklAUZ0zmgwGEQ0GoUsy8hkMisSYERTLN1lZGQEzc3NpvOIeHJYuou3YILJAFBZLiWNoigYGhrC5OQkdu3ahc7OTtuLu9I1RS9HyTLsIRHUK4kgCKivr0d9fb3xmK7ryGQykCQJmqaht7cXmUwGoigW9BldiaL0NOT8JEFDZLxA/pqyLkPQUbos3WXlYYK5wSFBC4qiuM6lFATBEExN0zA6OoqRkRF0dHSUTBGp1OJbLldutdVomEu2OF6YzDmOQygUQigUwtDQEI4cOQLAXJR+ZGQEyWQSABAOh01ro8tRlJ5GVVXTNVOq+IKqqqb1UVZ8YeVggrmBqTaXcmJiAgMDA2htbcUHPvABV8E8K72GuRK1ZL2C197ncpfGq5ZiReklSUIsFsPQ0BByuZyRM0oHGNXqvWma5rpVHUt3WV2YYG5AiEV58eJFo7pOORfS/Py8EbF4/fXXIxAIuN53NdYwN0paCeANi47gdcG0w6koPR1gZFeUPhqNoq6urqIIcKuFWQ4s3WVlYYK5gbBGvs7Pz5d1ocbjcXR3d0MURYRCIRw6dKjsMXgpSpZMEtVM7F4TTC+xFgXTDjpntKWlxXic5CRbc0ZDoZDJpWstSm/FrYVZ7phZukvtYYK5ASjVbqsUqVQKPT09yOVy2LdvHxoaGvDaa69VNBavWZhM8JYPXdeXPYVjNRFF0bYoPekzShel9/l8BQFG5LOpxsIsh3LTXeLxOFpaWowygORnI8MEcx1TSiiJ9eV0EWSzWfT19SEejxspItWy0tGuTvuRwu9jY2MQBAF1dXWGVRCNRl271pjgOrNeLMxyIHmgpOk5gfQZTSQSGBoaQiqVAgDU1dUhm83iypUrq1aUnv5N0HUdPT09qK+vN1mk1nSXjWaNMsFch7jJpQTsW20BeVfT4OAgpqamsHv3bhw8eLBmFwTP81BVtaL9amFh6rqO8fFxDA4Oor29HTfeeKNhFUiShOnpafT390NVVVM5tmg0uuzRkusNrwnmat7Y+P1+oyg9QVVVpFIpXLlyBbOzs0ZR+mAwaAowWumcUWDp5pp2FbtNd1nPxReYYK4jysmlBPInuaqqhjWlaRpGRkYwOjqK7du3u+oiUi4rXeKOjpKNxWLo7u5GY2OjUfhdlmXoum5bHJy41ubn5zE8PGxES9KWKNnWC3hlHAQvCqaXxiMIgmFV7t+/H8BSziixRicnJ5HJZIyi9OTcq6urW9acUbsc2krTXc6dO4ejR4+ayh2uVZhgrgMqyaUElvIpdV3H5OQk+vv7sXnzZtcpIpVQzRpmpS5ZWZbx5ptvQhAEHD16FOFw2NV+VteatcPG5OQkEomEEUxBJjM3NU2XCy8JgtcEaiXK4lULnTNqV5RekiSMjY0hmUxC07SCPqO18oKoqupakEuluzzwwAO4//77mWAyVp9KcymBvAjNzs5idHQUmzZtwvHjx8u64CqZEFeyxF02m8XAwADm5+dx7Nixsjuk2I3B2mFjfn4eU1NTaG5uNnL3SE1T2p273BaBF2GCWTucitLbeUH8fr9JREmN2nIoRzDtoNNdEomEKTBqLcMEc41ChPL999/HgQMHyl4zWFhYwNzcHHK5nGuri4a4SCsRzEpdq24FkwT0TE5OYtu2bRAEoWqxLIYgCLbrU1aLQNf1gsLgKx3ksZIwF3FpqvmMnHJGSYCRJEmYnZ01ckbpwDZrUXoriqLUzMskSRITTMbqYI18JROx24kgmUyip6cHiqKgsbERO3bsKFssAeeAoVJUWhrPzRqmNaDn5MmTSCaTkCSp7NerdlyCIBSkHGiaZuTtzczMGMFFdN5eNBotqxCE1/GSQHnRwlyOdmNORenJuihdlD4UCpmsUZIzWq2FSZPNZhEMBmtyrNWGCeYawSlFhATulLJU6BSRffv2obm5GV1dXRV38ljpfMpSlqldQA+w/HmY5ezP87zhot26dSuA/PdKej0uLCxgdHQUsizD7/cb265WpGS1eM2i2wiC6YTdDRw59xKJBOLxOMbHx5HNZiGKotHzVpIk1NXVVTxGr3kZqoUJpscplUtJBNMJRVEwMDCAmZmZghSRUvsWwyttuhKJBC5fvuwY0OP1WrIcxyEcDiMcDpuCi2RZhiRJkCQJU1NTSKfTRncNIqR2wUVeEiivCabXxgNUv1ZYDfS519bWZjyey+UwOjqKhYUFU1F6OsCo3KL0XvvcK4UJpkdxm0vpJHqapmF4eBhjY2PYvn07Tpw4UTC5Vipe5HVXs2JPNptFb28vEokEDhw44BiBtxZrydJuNbpYBOmuIUmSkfxOgosikUjF7u7lwmsCtZEtzHLw+XwIBoMQRRHbt28HYF5OiMViGBwcRC6XM3JGnTwhXnx/1cAE02NUmktJ70+6iGzZsqVoiki1FuZKFyAAzAE9e/bswaFDh4pOyl4TkWqw665Br03FYjEsLCzg7NmzBZWLViO4iAlmaVbTwiyGdVz0cgKBLkpPe0JIzuirr76K7du3m/YpxvPPP4977rkHqqri1KlTuPfee03PP/nkk/jKV74CAIhEInj44Ydx9OhRAMDOnTsRjUaN4gnnzp2r9iOwhQmmR6gml1JVVei6jtnZWfT29rpOEanGwlzpIurETfn6668bAT1uPp+1aGGWA702FYlEMDk5iX379plaVNEVZMikR3L2llPQvCiYXhoP4E0RB+AqLqJYUXoioo8//ji6urpw7NgxHDhwAEePHsXv/d7vYffu3QWv9+lPfxovvvgiOjo6cPz4cXz0ox81NXjYtWsXXn31VTQ2NuK5557DnXfeiTNnzhjPv/zyyzUp31kMJpgeoNpcSkmSMDAwgEAggGuvvRahUMjVvoIgVFR1h7zuSrlkSUCPpmmmgB43rHfBtMMp3SCTyRjBRaQoOMnZIyJay+AirwmmF4vBrxULsxxIzuif/umf4tKlS3jggQfw5JNPoqenBxcuXLD1TJ09exZ79+41hPRjH/sYnn32WZNg3nTTTcbfJ06cwOjoaEXjqwYmmKsIEcpLly5V1JcymUxiamoKHMfhyJEjrl0fhNWwMMvZzxrQc+HChbJdi14P+lkp6AoydIAH7VKbnp42XGq0O7fSKEmvCaYXrTkvjgmoXR5mPB43XKWdnZ3o7Oy03Y7EWhA6OjpM1qOV06dP49ZbbzX+5zgOH/nIR8BxHO666y7ceeedVY/dDiaYqwBxvZI7rbm5ubIumkwmg76+PiQSCTQ3NxesLbjFq1GybgN63LDRLMxyBcouZ09RFKP8Hx0lSVuikUikpAXiNcH02niA9Wlh0sTjcdTX15fczu4acvquXn75ZZw+fRq/+tWvjMd+/etfY9u2bZiensaHP/xhdHZ24kMf+lDlA3eACeYK4pQi4vYizuVyGBgYwOzsrBHwMjY2tuKiV82+xfYjAT2kS0qpgB43rKegn1LUSrhFUbQNLiJFIEgNXdLRhV4XpT0AXhMoL1pzXhwTUDvBdFvlp6OjAyMjI8b/o6Oj2LZtW8F277zzDk6dOoXnnnvOdJNHtm1ra8Ptt9+Os2fPMsFcq7hp4FxsclFVFcPDwxgfH8dVV11lShERBKGgg7pbqrEwK93XziKzVuixS4GpFDeFC5bz+OsFQRBQX19vshboWqbW4KJIJIJMJoNsNotwOOwJ4fSiOK13C1OSJFfer+PHj6OnpwcDAwNob2/H008/jaeeesq0zfDwMO644w488cQTRncXAEYh+mg0imQyiRdeeAGf//znqx67HUwwl5Fycymtawa0kGzduhUnTpwoOIlXw61azb7W9+9UoadWeGGiXq/QwUVbtmwBYG5PNT09jcHBQfT29sLn85nWRVdDRL0aJbtcnYGqoZZrmOTcKIYoinjooYdw8803Q1VVfPKTn8Thw4fxyCOPAADuvvtufOELX0AsFsOnPvUpY59z585hamoKt99+uzHuj3/847jllluqHrvtOJflqBuccnMpRVE0naC6rmNmZgZ9fX1oamoqmiJSaQGBavetRmyB0hV61gobxcJ0Cx1cNDk5ib179yIUCpkqF5GC4HSPx2qCi9yi67rnrDmvWpi1ssYTiYTr+IrbbrsNt912m+mxu+++2/j70UcfxaOPPlqw3+7du/H2229XN1CXMMGsISSXMpfLuRJKAm0lXrlyBd3d3QiFQq5SRCotIFCLfStJSclms0in00aXlXIDery2LsZwhv6u/H4/mpubC4KLSISutQQbHVxUKwvMiy5ZL46JUIvrbD11KgGYYNYE0kCYzqUs5yIQBAGSJKG7uxu6ruPgwYOu78qqXYdcKQuTDugRRRE33nhjxb00a31HXo0Ie8nC9Mo4CKU+V6cej3ZdNcLhsMkaraRRshfFyYtjqiWSJLmKkl0rMMGsEk3TMD8/D1mW0djYWHYuZSaTwZUrVxCPx3Ho0KGy+zauRnk7sq8bwbQL6Hn99dcrEigviRPBa2PykvVdab9Ua3CRrutG5SK6UXIgEDBZosFgsOjredE74VWXbK1wm1ayVmCCWSF0LiVxK9ENhEuRy+XQ39+PWCyGuro6dHR0VNTkeDUiXQF3glnrgJ5q100ZK0utBIrjONTV1aGurs507Gw2a6yLTkxMIJPJQBRFU5oLHVzkRWvOi2Oq5Q2gJElV5VF7DSaYZWKXIuLz+VwLD50ismPHDuzfvx/9/f2rErhTjXVUzDpdroAer1lzgDfH5BWW06Kj65i2trYaj8uybNzAkuAiUjg8mUwiFAp5yqrz0lgItRwTW8PcoBTLpSRRrqX2Hxsbw9DQELZt22ZKEVktK7GaycxOqMup0FOpu45ZmGuH1XCB+v1+NDU1mbw9JLior68Ps7OzmJiYgK7rBR1dViO9w4sWZi0FM5PJIBgM1uRYXoAJZgnc5FIWEy2SItLb24vm5mZb12S1orcaIkKLV7kVekh913In0+XqPVnt/szCtMcra4YkuCgcDqOjowPRaNTo7yhJEmZmZtDf3w9VVREKhUzrooFAYFnH5kULs1Y5mCQY0ms3BNXABNOBcnIpnSzM+fl5dHd3o66uDtddd53jnZYgCMhmsxWNc7UmJOKSHRsbK7tCDxHbci8kL1qYXhJMr4yD4LXx0OecU3/HdDptCi6SZdnUJDkajZYMLqp0TF6h1iLuhZumWsEE00IluZRWC1GSJPT09IDjOBw+fNjUZskOURSNHLS1wsLCAmKxGILBYEUtt1ayl+ZGwmuTk5fGU8ri5TgO4XAY4XAYmzdvNvahO7pMTk6agovoykWVdnRZr4K5Hq9VJpiLVJNLSSzMdDqN3t5epNNp7Nu3z3XUazUu2ZWGBPQAQDQadWzXU4yV7KVZCk3TqrrLZyJeHC8JZiXfs1OT5FwuZ3R0GRoaQiqVAsdxBZWLvOZudUOtBDOVSpkim9cDTDCx1InB5/OV3UEEyF88mUwGFy5cwJ49e9Da2lrW/qspmMTaKzWRWAN6wuFwxeWoqqlDW6k4Wa0LXdcxMTGB/v5+4/Fy21cx1ha1dH/6fL6C4CI6xWxsbAzJZBK6rps6ukQikZrXS641te6FuZ7Y0IJJcikVRcGbb76JkydPliV0qqpiaGgIExMT4HkeJ06cqOiOuhaCWelkUGo90SmgR1VVT7UGKwYRWvLdLCwsoKurC9FoFDfccAOAvICSIJCJiQkkEglTJGV9fb2tiDILc+2w3EFIgiCgoaHBlEZBOrqQ4KKBgQEoioJQKIRIJAJFUZDNZuH3+z1jjdeyU8l6KloAbFDBtKaIELFwe8JqmoaxsTEMDw8bwS5nzpyp+ISvVjBJikclgummU4pdQE+1VYIqEZlKxYm8XiaTQXd3N2RZNtaWVVVFLpdzbF+VTCYRj8cxOTkJSZJMIkrWrhhrg9UIsKE7umzduhXAUnAR6Sl66dIlyLIMv99vskRDodCqiKiqqhWVHrTitrXXWmJDCaabvpSl9p+enkZfXx9aWloKgl0qvYOthWDaiZ7bfa1Wm5sKPdVcyKuxhkly8Pbt24eWlhZX47eLpKTTEaampox1rPfff99UYWY1cvqYpVscr0SkkuCiUCiEoaEhXHvttdB13dTRZWpqCul0GqIoGksFkUhk2Tu6ALWzMNdbWTxggwgmSREh3TXKFUoAmJubQ09PDyKRiG2KSDWi5abwQTFqVU92pVpurVSUrK7rmJycRDweR0tLS00aU1tFVNd1vPHGG9ixY0dBTl84HDZcudFodEXWrrzi1vMqXvp8aAHnOA6BQACBQKAguIisiw4PDxvBRdaOLrVcb1cUhblkHVj3gknCwos1cAacg19IFxGe54umiFQjmNVGf1YrmJlMBkNDQ64q9NSClbAwFxYWcPnyZUQiETQ0NKCjo8NWLGtRuIBER1rdbqlUCvF4HLOzsxgcHISiKKYAkJUSUYY3cWPJ+Xw+NDY2miLuSZAivd6uaVpB5aJKz61K5zEr660sHrABBNNt1KsoilBV1ZhU0+k0enp6kM1msW/fvpIiQqzESiqDVDtpV1pPlkT1Xbx4Efv37y9ZoadWLGeUbCaTQU9PDzKZjNEm7c0331xxdyVdMNwqopIkIRaLGSJKV5eptHUVY+1RTdyB3Xq73bkVDAYLKheVusZr6ZKl+5+uB9a9YALuJloieLquo6+vD1euXMHevXtdr3etZmpIuQE4dECPz+fD3r17TQWsl5tKg36KCS0dzUveD/neKn29WkOL6JYtWwDYV5fJ5XLGRFdfX89EdJ1Sy4o6dHARgQS6SZKEhYUFjI2NIZvNwufzmUSU7uhSy3FJkoRdu3ZVfRwvwQST2mZgYADz8/PYtWsXOjs7y7K2ql2HrIZyxNoa0DM4OLjiYlJLC1PXdaPRMClqb71r93Lqh1N1GTLR2Yko+VnuOqeM5WW5g5A4jkMoFEIoFEJbW5vxOF25aHp6Gul0GoIgGAKayWRqMi4W9LMO0TQNo6OjiMVi2LZtG06ePFlVekY1LGeUrVNAT7Xrp5UWUa/FGmY8HkdXVxfq6upwww03OArIahWorxS7ic5qLYyOjkKWZVMTZeIhYawNNE1bleIYJLiIdpcqimJEfGcyGaMoCR2hG4lEylrbZEE/axS7CZ1YJv39/WhtbUV7ezuam5srvrOq1sKstIMHUFwwS7XcqkUT6XIv+mosTE3TkM1m0dPTg3Q6baxTltpvrQuJk4jSTZRjsRgymQySySQikYjhznWzbsVYeeiYidVGFEUjuGhychLHjx83BRcRLw6J/qZduk7LBUww1wmxWAw9PT2or6/H9ddfj0AggP7+/lVL7SD7K4qydPKpCrhLvwB/+RdAKgZtxxHoJ/9PwFfY8cTutd223KrGwlxpwQSAmZkZjI2NYc+ePWhra3MlBOtBMO2wNlGur6/HwsICOn0VvFsAACAASURBVDo6IEkS4vE4xsfHjUoytDu3lh031gJe/P69khfqhF1wkTVwbWhoyFguoPuKNjQ0uI6Sff7553HPPfdAVVWcOnUK9957r+n5J598El/5ylcA5C3ehx9+GEePHnW1b63ZUIIZj8fR3d0NURRxzTXXmAoDV2shiqJo5HlWgkn0pocgfucvwF94HlCSAAcIAoBv/hEgAnqoDtqOa6B96A+gf+DjpvZgdKNqNy23BEGoeNzVpIeU85p0wYi6urqy8ynXq2Da4ZTPR1uipOMGHfwRjUZXrbLMSuCV3pw0XuyFWQqnwLVMJmOsi37nO9/Bj3/8Y+RyOXz1q1/FiRMncOzYMezfv7/g/aqqik9/+tN48cUX0dHRgePHj+OjH/0oDh06ZGyza9cuvPrqq2hsbMRzzz2HO++8E2fOnHG1b63ZEIKZTqeN8lP79++3vesRRbHinpRk/3Q6XfH+hmDOjEL8u1Pge98E5BTAIf/DL/3m0kkI0usQel4Hnr4bbYf+N4z+9l8hFqsvWaHHSi0szEr2cytgkiShq6sLoVAIe/bsqSggodTreW0iXQ7sRJSuLEOCP0RRNIot1NfXVyyiXrtB8aJgetHCrLRkJVkuaG1txX333Yf77rsPN910E2699Va88847+PGPf4zOzk78zd/8jWnfs2fPYu/evdi9ezcA4GMf+xieffZZk+jddNNNxt8nTpzA6Oio631rzYYQzEwmg/b2dtNkYaXanpQ1KW+XSkB4+u/Av0eJJbmeBJj/J1qoqQj3/Ad2TJ/D4I2fw9EP/j60eByZmRn4tm1b1nFXWk/WjdDKsozu7m6kUil0dnaivr7emNTLpRILc24ujcbG9e229Pv9aG5uNgV/0CI6MzNjiChtiVrTEOzwmkB5UZy8aGHW8nPieR633HILbr31VsdtxsbGsH37duP/jo4OnDlzxnH706dPG8crd99asCEEs6mpqaS7tRYu2WrXQIULvwT/8o+AdAYg8ztH/eYB0EuY+tJPIBvDgbf+Grn2BlzqCuD1Bx5AoKEBzZ2daDl4EC2dnWju7EQdFV4OVGdhCoJQ8R2p02tqmoahoSGMj49jz5492Lx5symfsppgITdomo4f/KAbX/vaWSiKgs7OZlx//RZce20b9u9vQkdH1FNCUGvsRJT0fpQkCbOzs0ilUkYaAi2i9ETLBLM0mqatSs3hYqx082i77ZzOm5dffhmnT5/Gr371q7L3rRXe+raWCTcfIqn0UynVWpiB5AICrz4D7socoFCTO3HJAktWJbAkqPRvWYLvpc9A9H8CifFxSKOjuNLXh6Gf/xxCMAheEBBqbsYd3/8+fKFQ1eOupYWp6zpmZmbQ29uLzZs348SJEzVrpVVqPzK5x2JZ3Hffefzrv/ZAkjIAVPT3j+G550YQCPAIBnls3RrC97//v2P7du9F/y2XG9Su9yNd43RoaAjJZNIkoqHF88sreE3AAW9amLWqI0vOxVKfeUdHB0ZGRoz/R0dHsc3GM/bOO+/g1KlTeO6554ybObf71pINIZhuWG0LMzQzhuCFXwHZXF78aMsSWHLFFkMHkI0jMPgtaDIHOZlBNh4Ht3hnzft8kMbG0PfTn6Lzv/23/GOrtIZJ70fWKYPBoG1h+2pfr5hgkrKJ77wTxx/90Zt4990YFMWP/KWhLb6eglRKQyqVA89nkMmsToEKN6yUKNjVOCW5fMQSTSQSOHfunMkSXYluG3Z41cL02phqVUc2m826umk6fvw4enp6MDAwgPb2djz99NN46qmnTNsMDw/jjjvuwBNPPIH9+/eXtW+t2RCC6dbCXM20kpZnHwMfmwcU3bxWSQunnVVJ/15E1OPgcjxUWQc4Ln8InoeWy0HNZND1/e8bgllq3GOvvw4hEEDzgQPwWbqXVBv0I8syent7IUkSOjs7S4agL4eFmctp+O53J/D5z/dibi4HXQ8D0BZ/VOonB0ABoEPTvBXQ4hXoXD5ZlnHx4kVcffXVhiU6MjKCZDJpFKunc/mWWzi8Kk5eszBrWUfWTS9MURTx0EMP4eabb4aqqvjkJz+Jw4cP45FHHgEA3H333fjCF76AWCyGT33qU8Y+586dc9x3OdkQgumG1bQwuXffgDgzAU5R8/M0kJ+jgbxQkvO32DxNntMAUQQ4bvFAmg6d4wBVzW/CcRh55RX0/PCH2HfHHSVFr++559D/4ovgeB71V12F5gMH0HroEJo7O6FXYZ0uLCzgjTfewO7du3Hw4EHX/SmraSBtJR5X8Zd/OYQnn5xAMikCCCH/wetYEk0FQBp5wQR0HUwwXUBcoKIoYtOmTaaCGaTovyRJGBsbQyKRMNIVSLGFurq6moqJF12y61nEyylacNttt+G2224zPXb33Xcbfz/66KN49NFHXe+7nDDBXKTaEnFVFfiOTcM3MwmoWmGwjw6zO9Y6RJuXzAsmvY1u+juXSmHgpz/F7t/93ZKdTvjFQgq6pmFhcBALg4Po/4//yA8xGsXN3/mOize4xMzMDLq6usDzvO06ZTFq2Ufz0qUs/uRPxvHrX0uQ5QAAP5ZEkghlDnYfMBNMdzgJlCAIaGhoMHkUSFWZeDxuiCiAAku00sl8PYtTLWHNo4uzIQTTa3eWVsR/+hKQSsA0OdNzsnV+LuWSFSyCaUFTFIy98goy8/PwNzcXdcmKRQp8a7LsWsASiQS6urrg9/tx+PBhDA8Pl31hViOY9H7PP5/GvffG0NOjQVVpF6yCJVesDLOZnydvYZY9hA1Hud+TU8sqYomSvo+6rpuaJ0ejUVfnkRcF04tjUhSlJmuYbl2ya40NIZiAh6u9jA1D53hwmlbc5UpTYjvRlxdMzmFTXdeRnprC+b/9W/zWP/5jUcHk/X6kZmYg+P0Qg0EIfr+hxlouV3Ldll6nJLVs0+n0shc8oKG/+0ceyeIrX0ljctIHXedR6ILVQLtg7fCqhem187vaG1We521FlK5v2tvbC13XEQ6HDXeuXZFwr7pkvWhh1qp5NLMwNwDVXljl7s+f+QXQ2wVOUZwjYUm+pdNzlt9uznddVTH3zjvIxeNFJ1oxEEB2YQHa4vosx3EQgkGIwSC4QACp6WmASh4maJqGkZERjI6OYteuXaZ1ylpF17qF4zioqo7PfU7DN7+pIx4PIJ+jo2FJLBXkxTMN8xdR+F16VTAB73hTlkugeJ43LEuCVURJkXDaEs3lcp6z5rxUfJ2gqmpN2sYxl+wGgESMVnqHRSwZtxOFtLCA5Lk3sE13lzUCwBTcY+u21W3WMO0Oo+tYuHQJwz/6EXDggON2gt9vej+6rkNJp6Gk09A1DT3f/S4OXH+9aZ+ZmRn09PSgra3Ndp2yFpZiOSSTPL74xVY895wf6bSI/IdFol/pv+lKT3YfYP71VZX5ZEuxkhadk4iSIuEzMzOYm5uDoihIpVImd66b8pHLhVddsisd9LOW2DCC6WayJZGulQom2d+p3Q2BtKdKJhK46ZcvQMiklyJhnXAZIQsAAhFMJ58sAE3XoWQymHzpJXBXXeV4aMHvB5wuao6DkskY/5Kem6Io4tixY455WNX0wyxXMEdHgc98Ziteey2EXI7O1yHfMbEuU2R09EgLjqfr5hgqhj2r7QLled7o4bh161ZMTk4im82ipaXF6LQxODgIRVEQDodN7dBWSkR1XfecYNbSJdvR0VGDEXmLDSOYbqhVaomTYFpbbh1u3wY+GLbd1oRFEEuPo7SFCeTdsrO/+Q2a/ut/ddxGCAQATYOazYLj+fwkSH4DUDMZ5HI59Pb2YmFhAQcOHDAls9uxEiXuAOD9LuAPP+3D+Td9UDTOHHls/CPA9QcLllbiltUWTCtEnOw6bdDtqoiIhkIhkyVa6iZ4vbAaaSVrCSaYFMtVvMCp5ZZw+n+BGxkEdLW0hWkczPLbIc1EcLOOqevIzs4i9cwzwH//77bbCIEAsGjZ6dR74wCA4zB74QJ++W//hgMf+AA6OzuXtT9lOUJ75k0Of/hZEZcvc1BF5A1LEgBL1oQrrDNhN3avCcRq47XPw8n96dSuKp1OQ5IkzM/PY3h42Oj5SAS0vr5+XYooE8zibBjBXIlqP3b7x2IxdHd3o6mpqaDllh4K5U1BlXPv57MNe7UbS1GP7NKuqgqlu9vxeesaprHfom8yPTqKq/x+tLe3l3ilJSqdSN0K7Su/4XDX/y1idJQSS2sgbL5UrPUVXI1DVZmFWQqvCWY57k+O4xAOhxEOh7F582Zj/0wmA0mSsLCwgJGRkQIRjUajNQmYWU3YGmZxNoxguqGWFqYkSeju7oYgCDh69CjClrJySCbA/fiHgJIvt1Y19CG0fGqJ0/xPG6mqokDp6cHIk09i+//4HwXbCn5/vhZtMaGqoiRgOZSagDUN+NnrHE59TsTsPAdtqSSsOXtEhlttpF8dAFnDNH8W5QZ7LRdeSivxwudBU21nELrnY9tixx+riI6OjkKWZQQCgQIR9dJnUYxarmHS1Z3WC0wwKWphYabTabz33ntIJpNG3qEtPj/0wT5Als1dSNxAImSLzI+lznlTgK2qIjUwYLudIZiAWTTJBKBp0GS51IiXHVUFnnmVwz1fERFLctB9WBJL8nmRrJEq0DQN8/MLkOXNnnTJeWVi9qJg1jrAxklEs9msUYR+fHwc2WwWfr9/TViitfreJEkqWRt6LbJhBHO5XbKqqmJ+fh6JRAIHDx7E4cOHi76mfmUe4EuU5DE2dvGcRUBLBfqZDpnLYfT0aWy7/XZELcWLBb8fmp3lsviYkkrh/AMPYOctt8C/SpU9VBX49vM8Pv9NEbEsALrSHbEsFeQtSxpbn7V9Ogn9dzwu4b333jOCQ2RZxtzcHBoaGlY1TcFLbATBtIPjOASDQQSDQbS2thqPExGNx+OYnJxEOp1GNptFX1+fIaLBoDcaltdiDIlEApFIpAaj8RYbRjDdIIoiMlSahBvogJ5IJIKdO3ca6x7FUJ9+EvzYGKCp+W+hlDfNalU6lMUj//tcGD8m12wqhczQkEkwY7EY3r98ueTQMrEYlHR6VQRT14F//Dce939PwHwGeWudWJZ0cA/9JkrOB84bcBywZctWXHfdTiPC8t1330UsFsPQ0JApYb6+vt626sxGwEvuYWD1BTwQCCAQCKClpQVAvgLWe++9h4aGBkiShMnJSWQyGfh8PpMlGgqFPCGi5aLruueqGNWCDXMlL4eFOTs7i56eHiOgJxaLIZlMlt4RABcKQ+f4pUm9kvnFWriAUsByDR01kcDAF7+I1ttuQyqVwuXLl8FxHA5efTW6/X5kHcegQ9f1VXPLfvEHPP7ppyLmFeSbjRCrkgimdYnY9jQoZVWaIWklJMLS7/djz549EEXRlDBPl26ziuhyTCZeEykvTfReKxJA1lRbWloMEQXyQkrcudPT00in0xBF0SSi4XDYU5+tFX1xTliPbBjBdINbwXQK6HHbE1PPZKANDkIAoIMDV02ErMPjPr+7uBZjV02FPDODS7/8Ja6IIg4cOICmpiZc6e/PX5ycfSSvDkBJJjF/6RIiK5yo/Jc/EPDozwVcUZB3w9IpI7Rw2lFUOJ0+Oc42D5OO3rUmzANLpdvi8bipiDidLL8SPSFXktW26Kx4rUiAU/qG3+9Hc3MzmpubjcdyuZzhzp2ZmVk2EdU0rabfmZe+/1rBBJNCEISigmlU6HEI6HFtoSoKlB8/AzGdBkRLh5JS51g5Ltkylkd1HchOTkD76U9x4stfNk52IRg0mlA76bUsSXj/oYew/cMfLv2Ci1QTWSorwH3/LuAbvxSQVJEXS7osLCneQ3vXK7p2SbkkM+XWXLAr3WbXzorjOFOeXzgcLnuS98ok5TXBrLUYVEs5Fq/P50NTUxOampqMx4iISpKE2dlZpFIpCIJQIKLlnD+1ysEkQU7rkQ0jmNW4ZOkKPXv27HEM6HFrYSIczhcDIP+7ccnaBffY1ZJd/LuYS9Za84D8z2kaxKEhaJIEYTGHyikP04qadXTa2kKq9pR7gaYVAX/5HI/HzghIcLC3LMlP2RR7n3nxLJZWUg527axUVTUmwaGhISSTSdMkSETUSxO/E14UzLVgYbrFTkQVRbE9f+ieonV1dY6fQy1zMNdjay9gAwmmG6yC6VShx+3+TmiXLkHX9MqzLx2sSvr/UuXx7A6hqxqkX76K1HvvIXrTTQBK1JIl+1aQWkKq9pRzgV7JAN+4vBsvjYv5MulOlmV52l02di7ZWiAIAjZt2mTyXNCT4MDAAFKplMkdV19f78nAECaYxVmO8YiiiMbGRlNpSkVRjJ6iw8PDSKVSJk8GLaKstVdpmGBS0BaiNaDHTbqAWwsz9/OfQ5+ahK5pWFzIrB6L1VmscEGx3bXkFUi/eHlJMEnSdZHJT1NVzL/7LoaffRZXFalLS1NuPdm5NPDnLwt4YW4LMgKAIMzWJFmzdFtDoeDtWB8oHfRDs1xBDnaToN2als/nA8/z8Pl8SKfTq56i4DXB9Np4auX+LIUoirY3YURER0ZGkEwmwXEc/H4/FEVBPB6vak19vbb2AjaQYLqtcaqqKt58802IomhfoacIbi1MLhhcjJBdXBksZ651WYhddJHiaXcoNati/qlvYtu9nwNQhks2l0NiaKjkdoRyBHMuA3zmFQHP9gh5sQSWzlw6z9KuKIFd85EKq/wAcAz6WUns3HGyLBtuuJ6eHqTTaQQCASOoqL6+fkWT5b0mUBvBwnSLnYiqqorx8XHMzs4aa+oADHdufX096urqXIl8PB5nLtn1QLG1JhLQk8lkcM0111RU1smNCOialheqci+WYhGydrVkfe5qIhSgAsrsNBJn/wWRG38PHMeBd7OAr+vQcznXL+O2VVcsA9z1qogXxnjIfiw1FyERsCLMlmXpugMOuP+wVtLCdIvf70ckEkEgEMBVi+3astks4vE4JEnC2NgYstmsqQvHchYQZ4JZnJWyMN0iCAKCwSA2bdqEXbt2ASgMTEsmk0Z0NzmH7FKkmEt2HaMoCgYHBzE9PY09e/ZgYWGh4hqIriYIWUby7/8evnQaOq8vBca6Cfpx6ExiF8Xjqom0w8tqCQ3zP/ocIjf+HoDFdUyHg5H91VwOs2+8AXlhAX4XJbHc3FwMJoD/+YaIn83wUAQsVeahy93l4FzurmaRsaUtzNUWTAJ9DgYCAbS2thoVZ+jap1euXDEKiBMRrWU/SK8JptfG4zUBB1DQC9guME3TNMOdS6dIkXXQ4eFhzM7OuiqL9/zzz+Oee+6Bqqo4deoU7r33XtPzXV1d+MQnPoHz58/jS1/6Ej772c8az+3cuRPRaBSCIEAURZw7d64Gn0BpNpRg0hObU0DPwMDAsp7MXDCYty41famLBi18dte0UzSs3f+LuO2JaftSOUB+fQJzE3+Exq1/l3fLOr9Ufj9dx8xvfgOptxfN119f8nVK9bZ8ewH4kwsizszxUEgRdWsUrIy8K9b2BWCvfXB4rAzWaj9Mp9qn6XQa8Xi8oKkyEdBoNFp2MIjX8h69JlDVFoNfDtxYvTzP24poMplEb28vvve97+Gdd95BJpPB+++/j+uuuw7XX389PvjBD5puWFRVxac//Wm8+OKL6OjowPHjx/HRj34Uhw4dMrZpamrCgw8+iGeeecZ2LC+//LKp6MNK4K1vbIUoFtBTqgl0TVhcS9IrqfDjlH9peb6UYGqwN1ANi7FbRbrrx/C13wgxGHQ1JJRR8aeYhfnKHIfPvi/gYnKx44g1EpZYlrQHuJQI1si48LqFWS50KytrU2USVNTf32+U/KNF1EsuxVJ4zcL0mksWyI+pEu8CyTM+duwYvvWtb+GBBx7Azp07cezYMZw/fx4/+clP8MEPftC0z9mzZ7F3717s3r0bAPCxj30Mzz77rEkw29ra0NbWhp/85CfVvbEasqEEU5IkdHV1FQ3oqVYwieXkdDeb+fnPoS2uBQC1CZC1O5BQhoVZoNs6oEuA+v8tYP7mh4BA8QVRHQB0HWomAzkWc/WaToL5vRkOf9nDYULloAW5wqo9xSxL5wI9FWK3+KmXXbhgrUE3VaarFRERpUv+0UEhdGSl1wQK8E5RB8B7Fi9Q2+bRTU1NOHLkCI4cOWK7zdjYGLZv327839HRgTNnzrh+DY7j8JGPfAQcx+Guu+7CnXfeWfW43bChBHNhYQF79uwpukZZq56YjsnBw8NQZ2cBVc8HsBBKWZv0c5rlfxtTsVKX7NJAAe0VGbo8DyUYLzG4xV2SSbz/V3+F9v/yX0puaw36kTXga6My/n4mgIRfhE6CeaypIxlUZy1WVBLPjFXo17KF6Ra65B+BXs+iqxVFIhHkcjlEIhFPCoMX8KKFWavCBW7SSuyul3JuaH79619j27ZtmJ6exoc//GF0dnbiQx/6UNljLZcNJZjbt28vmSdZqjxeKYjgOrk2uFDIiJC1WnUV4eCiFUWAczFPORpLGoBpDfyPEuBCCvQSCY7EytRcRsrSFuZ4Kov/OZzBC3oTMkHB7HqlXbEpV4fOU5GL1mnRc+n5fKUfy6MeEcyVHgO9ntXe3g4gLwSJRAJDQ0OYm5vD7OyskShP3Ll1dXWesvZWAy/eSKxk4YKOjg6MjIwY/4+OjmLbtm2uX4Ns29bWhttvvx1nz55lgrka1MrCdIILh6GTsnil1iNprBZoiX1EcXHqLxWtY3NYolWcDHA/y0IIcu7q0uo6dFWFrmlLTacdIDmvzwyP4wtKA3ojTZDVxe4tJE2E/ptU76k4baR2qKp3fbKrLUSCIKChocEo49fW1mYkysfjcVPJNno9dK2U/KsVXrQwa+mSLRUle/z4cfT09GBgYADt7e14+umn8dRTT7k6fjKZhKZpiEajSCaTeOGFF/D5z3++6nG7YUMJ5nI3kXaz/8I//AO0bBY69LwwlSOaBKdisPQ4FtMwiullsYBbHYCeA3y/yEA8Wjzox9hH15EZG0Pf3/899v7pnxbdNp3J4CFVxb+1bccM50NOlQGNB1QBUDlA5/PvL8eZ00bcFOQpJqDW53SnDZ0fd2thZjIKVFVHXd3GaypNr2HaJcrTxcPpDhx0oYXVrla0nHjVwqyVYJayMEVRxEMPPYSbb74Zqqrik5/8JA4fPoxHHnkEAHD33XdjcnISN9xwA+LxOHiex9e//nVcvHgRs7OzuP322wHk3cgf//jHccstt1Q9bjdsKMF0w3JbmFoiAV2WK3PB2u3jsJZZqnBBqUORB7gZFb6082DtXj49Ouq4fTqdxk+HevHYtijebtiEtKaC1zT4NB66BkAToGkcNE2AnvYjn4BpA+09tUshqWqeLRLgpAOqWvrLe+edWfzt3/4G589P4KqrIrj22s04cWIrDh9uxf79TfD7vWVd1JpSQT9O1YpIyb+pqSlkMhn4/X6TOzdASjWucbxoYVrzMCvFbeGC2267Dbfddpvpsbvvvtv4e8uWLRi1mUvq6+vx9ttvVz3OSthQgunWwkynnTLhS1NKcIlLFppqXkB0G/Tj5A3UzT9ui6+XrLQnAcGLpauZG8aurkPPZAqeV1UVb4704/FQBq8f3oSYwIPT0wjpPDSdg6bxUDUBuipAUQTksnlD00S182RN5tnC5ri0hZlIKHj44cv4xjfex/R0vrzYzEwcb721gMcfv4xgkEddnYA//MNr8ZnPHK/FgDxJJVGydr0gs9msIaLj4+PIZDIIBoMFIrrW8KKFWasxVZqeshbYUILphmVfw6yrM/42NLLSXMwiz5UTJVss4BYa4L+iFRUbUwCvomD2pZcQf+st1B87BlXXcHFuAo/nxnFudx2uiCJkpBAEB40ToHEcNAjQBAGKzkPR/FDUYOGRS1mPboJ8alD5x87CJMJw4cIC/uzP3sf587PI5UQAEZCIJU1ToWkKcjkFqZSM8XGpksGsGWqVVhIIBBAIBIwEdV3XDRFdWFjAyMgIZFlGKBQyrYnSaWFeCMiyUiySfjWp9jvz4mddS5hgWljONczEv/875K4u8KoKrUCZysCFeWjkYZYI+impvTogJnRwuvuh5uILGBjrxtvXhPGqMoHxNgEpQYAKCUHw8EOACh4qBGjgoUCEAhE6F4RifRWr67Ucqp6v7Q+gKOYPPJvV8PWvz+Cb35xCPJ6FrtfBnBOjYqnvWNL1q2uajiefvITTpy/gyJFWnDzZjmuucXbpemmyWq48TI7jEAwGEQwGC0r+xeNxzM/PY2hoyKhW5OWo3JUQTFJkg+dX9v178fOuBRtKMFci6EcQBGSdmikLAtRkEry1aEEFFX+UNCAvALkFgPcBwb2Ar2PpeBwHlFoicRsMJBQ3MM376jrSehY/UH+DvjAgw48ARIjwQTGEUoQKHjn4kYMPOnio1KtyRUdnoZLrsuwC7ObHaQvzrbcy+MxnNLz7bhK5XAiAH0uhvfRPBvmKC3mKldfTNB2vvz6Lv/7rczh/fhK5nIy33lrAd7/bA7+fQ12diD17ovid37kKf/EXN5V4s6vDSoo3XfJv8+bNxuunUilIkoRYLIZkMomzZ8+irq7OVGjBa+Xpaoksq/inf3oLTzzxHvbvb8QNN2zB4cOtOHCgCTt2NBSIaC2+s1qtg3qV9fvOKkQURVc9LYvtn0zaWxFGHVkK0znqsnDB9CgwNwZoWYBbbKkpXMj/9glAYBMQPAoIfOkoWTtjtRLBJPtwAMREFld/60XIH21HKhBBBkHI8ENGEDJ8i//7oEIsrXel1jHt/ncjogXbuA+3zVe90fHYY0k8+GAck5N1MDfkJD+kLFHh+eA0Nw0NpXH//T344Q9HkExmAdQBCEHXVSiKAkXRkEopmJ2dw5UrcoFgeunOfjVdjnS1oqamJqTTaRw5csQQUbpaEV3yz677xloklVLw5S+fwz//83vIZnPo70/hxRfH4PdzCIcFNDQEcOhQE7785f+E7dvra+YRkCRp3bb2AphgkNUMPgAAIABJREFUFlALC9Npf76uDhAEW6Eq/KcQTQMmJ4HxMUDN5adwAfka7jz5WwV8MSD48/LH7rSWyQPgXN58agCg66i7NAsxJUMM5B2vxLbkjCrqdq+sm2WrFqXurO5c1/s6bzg3p+PUKRk/+5mKTCaI/GVkLUlEGnTaF3KwWpiplIYnnpjBgw8OY2wsBU0LIm+t0kKsLB4vA+eq8/ZMTSWxaVMAgcDKXPJeKo1HglnoakV0yT/SwmpiYgKSlF9bjkQiJhH14nqjE/F4Dn/+52/hX/5lELIcAJA3AlRVhyyrSCQ0zMwkEYtlkE7nz6NaRe2u5+bRwAYTTDcXcC0q/ThZqFeeeQZ6NpuPJAUMndDhTpDm4sDgolgCS8YUEUwOQP7yyB+znC+3WJqJ4GJsppsAPf9+hJxCPVtIieq09rhNHSkryMfthhw0bTsef/xqxON+qCppzmldq5RR6u6HtjBffz2D++6bxhtvSJBl0pqFHItYqrnF45bn/ZicTOHBB9/Gv/zL+9A0Dbt2RXHs2Gb81m/l10N3794EQai9GKyV9VRSOJy2iug+kKOjo0gmk0a1IuLODYfDnhTR+fkc/viP38Vzz00ZYmnuXpA/n3Q9nwkQCuVniVrmYDILcx1RqoyZ28bGThSzUFOXLkFNJMw2lp2xZXNtZxRgaBZILIolD7NQ8ij8Moud/rQFWapuDXkNt3A64J9O4qpvvoH3P5dPKC7bS8qh8C6iUovT1eDd+Hqvg6pej/n5EJY+ObvAnmLlAZeUfGFBx9e+lsTjjycwP89jKaqWHIv8Tdy65k4wxe7/FhZy+MY3evHYYz2YmJCg6z4ACmIxCefOXcFjj3UhEODQ1OTH6dO34OTJ9iJjLh8vWphusesDqaqqUWiBrlZkFVE373m5biZisRxOnbqEX/xiAblcEEulssi5Ss6pfNqXIHAIh/PpH7WqI7uwsMAsTIZ77NJKNE3D4OAgrsgyotQFpcN5LctKLAnEUvmpmLP5EbFkWZKfUl9u0XQS6m/Su9kJO8HlVA0NFyYKXtHsGS3839i/onVI6jEn/atoDg8A/A2AvhP5qvDkQPQkrCNf7LZ0zqquA+PjUdx6q4JLlwSoagSFFmVpt64d6bSOb397Al//+iAGBxPQNB+AepjduipUVUEqlQHPy0il3B/fLWtZMO0QBKGgWpGiKIaIDgwMIJVKQRRFU45oKBQq+ByWo2jB5KSM3//9QZw9m4WiBGFu8UPf3C3lmAsCZ7IwV7JowVqFCWaNoS1MXdcxNTWFvr4+bNu2Da07diDDcYWiRKucA73zQEZdMkCtxW0Em91LpQ4X02paBN1MNQXH0gE+mys/E6TifMllQogCwSOA3pgv3WctDO86wpm8KR807QReeukIFIWHOUCIWADECiin2jzw0ks5PPxwCt3d8mIeaBRLImyN2E0ZY3KbcqCqGjRNh89XerL3kmAu11hEUURjYyMaGxuNx0jJv3g8junpaaTTafh8PlOOKFlPrRVDQzn8/u9P4MIFBapKLEsimMTKVJD/3slzOnieWxaXLBPMdYTbzhKVXmTEwozH47h8+TJCoRBuuOEGiIqCCaoRM7Eu3dSSHYnnXbHK4jZWTSEradZDVPLl2s3/pSxM6/5A3sJsem0EW164jP6PHLWtZAeH/wuP5rCTFbdWZNHnqSeDrUB0H4AgoHNmDxfRnhws8TfFDr4FwHUA2qCYSv4tTWJLVmVpSxXIn6eXLqn43Ofi+NWvBGSzYeRXsmmLla5gn4L1FqjUea5pOs6dm8ZXv3oWb745gT17GnDddfl10KuvbsXOnfYpCl4RzJWsquNU8i8ej0OSJExMTCCdTiOXy6G/v9+wRiutVnT5soI/+IN5vPceD00Lw7xEQP9dWL0sGBSM74gF/bhjwwmmG0q16CqGLMtIp9Po6upCZ2encfKkLl3C/I9+BL9SkJpfFE0H5jL5fpHWcA864IdQjkuWbE9+27lWjShZl+OlA394WUVoPG7Z1yrJhRLNcYuvZ6ewpVytVc3RZGceaG4HGrYCIMXgUdhFpdRypYEI+A4A/H5AWxRf+g5HJ/HOQOkV5SVyuRDuvVfDd7+rQJL8i8egRZJeD03AugYKLH7WRT6zs2fn8Hd/dxGvvjqOVCoDQMTs7ALOnJnHP//zJQQCQEODDzffvAMPPvhhY78VFUx1DmLiBfC518HxcWiB3cgF7gLEfGGD1S5D5/f70dLSYlQrSiQShliSXqLZbBahUMjkzi3VxP7tt1XcdVcaXV0CNC0As/uVtjKTWLrOljo2BINLM0St8icTiQR27NhR9XG8ChNMGyoRTE3TMDQ0hPHxcYiiiOPHj5smDD4cBqiAIuKKdQz+oRiQ8oJJu2MJKpy/RBHu9KNUKmi5QT+GlaloEBPEDUStTy5uZb9+WcbtRKk4HetjbiJseR7Y0Q5E6wHwhU2sdeRFMm13DJsBCQEgejA/eetCoYVKjMqyArNF6PpRDA3diEceqYOu2xVKIEKZQqnIWjuX7JtvSvja1wbxyiuzSCZl5PNBg8i/+bz7WFVVpFI5pNMZvPvurGn/FRFMJQ7/5D/CF/sWOH0G4PX8SS8AAeF+QAR0HxD0t8IX+l1A/X8BIby8Y3KBruvw+XxobW0tqFYkSRLm5+cxPDyMXC5XIKJkTjpzRsenPqWjry8ATSPRC7RlSQehAXY3peHw0szBXLLu2HCCWetqP7quY3p6Gn19fdiyZQtOnDiBM2fOFLwOKVpAn7b5nEUqMNZGKwYlIEcZHVZ7zO6+mTzv9sstllKio3i0LY3VNuKzCg5/7VX03XEcV7a1OryaVUgt29RiTdPt/gEe6NwKhAL5GYUWSTpgVSl1zMVB1zUALVcBfBDQOLNI0nE9ZTXGbgNwBNC3LK5TAkvfNH1g92ugtGBeuJDF/ffP4JVXriCRUJCP3CVWK229koHnv3VBWFmXLJcZR6DnjyFKrwLI2udYCQAnAGJwBltD3wbmvg29zo9s4P+Awn8J4FZnYrcTJ7paUVtbG4D8Z5hOpxGPxxGLxTA4OAhFUXDp0hbcf/8ujI4GqZslchdGu2ETKFxwh/GbrF+SMZWyaN3ABHMD4lYwJUlCV1cXgsEgrrvuOgTpNUrLhEEsTNitoVrPZWqeSSp5wSzlUCK7W4N1nKYsu+2dhuTGwnSyDzlNh5AtJwpTt7E4F1/djYVYKfUCcF1jvpGoNWOEzEUkFdLNa29tBlqaAU60t1LJzT8x/rjFx50OzvmA0BFA2AFo/ryb2HpMw7Xr/i6DnKOXLqn40pdSeOmlFJJJDvnIWqtQElM4BVqMOa7QSnUSzIWFLB577B0EAgJuuGELOjubUV9f5vqdHEPg/Xsgzr8C6LI5t0qw/E1iYMhYdRk+fAe5wA+han8FQfm/wLm+JawNbl3EHMchHA4jHA5jy5YtAID/+A8e998fwOiosBj/QKZwWhhlmG+WCpdAOA6mPq3MwnTHhhPMWliYsiyjp6cHyWQSBw4cKOguTgJ/6DWBdFcXdOqYJoFx8EImFaA/Dqi6O8G0XhaVpJXY4Vas7Z4QkzIaL04itmsbCmW1yKsW+5oqEUs79y15bCuA64KAj1u6WadFk6xXunE6iBywpxVoCgPg7a1UEqjqLq4HCDcCDTsALmKO1LWrl+CqrsHS568om/DVr7bg9dd5pFIk0Z22IknkLvFDW63W/LFE0Vry0SyYyWQO3/52Hx5++G2Mji5A11X4fEAwyKOjI4xrr23DyZPb8J//8w5s3158wg1c/CLEyVfzb9gaMk6G4af+tnz3OgeAS0EN3IeM+ApCmUcgYBNWikrF6UfPCrj3L4KYHOeodDQ6Th5YuhuzC98z/08LZq3yMCVJMqXerDc2nGC6walaj6ZpGB4extjYGHbv3o1Dhw7ZCjARXFow53/2M+RmZiBoeZuOXrt0kg0eedEsFQbitH850a30cawRt6WOU0xsfYksrn3oVfT+7jGQhJolC5L8bxHQcsSylDFVLByXB7AbwDE+n4NjFTYy98hYErdir9XAAwcbgHox74KlBY0WYLcuWJ4Htm0H6psAXSwcF/mfaFlZ1AM4gVTqAH7+c+KKoxdXaauSrIM6v3nrdUD3B33iiXE88kg/hoYWoGkCSF6oLKuQZQUXL2Zw8eIAfvCDXnzxizfh7ruPOb6OOPpjiEM/BJTFnqu0dUl+06myRde5dajiGcyH70B9+hH49f2Or1tLKmnt9eQPRPz1FwOYmeOg+5B/n7rNDwBYr6cCF1b+JxIxW5gsD7M0TDBtsFqYuq5jZmYGvb292Lx5M06cOFH0bsyueIEYiZjWMHWgsGiB5abwUjwf7FOKwtWJPOUG61j3J/+Td8rZPO+0rzEeTQcvuzHNbO6IK0kPceuNFAAcA3AYS0ms1iBDcqPuhnYA1/iBkMWqpMVSBimyUnqM9X5gdwsQpKJqyZonrWvl1TUAuAAQPIB8EYbgkmvXcOnyWMrgzSG/DkYP1v4Dsa5hJhLAww/P4dFHpzA8nISm8TAXUKAt2HwlI11XbduWGUPPzMD//gPgMvGlB2krkvw4HcJ085T/RwOg8uOYCt+F5vRXEdZucHz9WqFpWlnW3De+68P/8w9+zCW4vIuZPrfo88I4D4r5jpYEM5mcx7lz5xCNRpFIJJBdLNtZzdozE8x1hluXrCznQ/ATiQS6urrg9/sL1imL7W916fKhkNGpxK0rNK3kBbOcpXj6ZtONhelkVdJUE3fDqTqaLk6h/bU+9N90yFX+JcfpyJfFswT/2P1tHajTwem/fQBuALAHhWJJl24tdbNCjnkQwNUcEOAKhZduWuJG2AQAu4LAjob8+UIHPVqDhdy31gR4AYjuBOo68qktVguYWKxEw0zrqcVc6MQlm992bk7F6dMpfOMbjZidTULTQih089ILwkuKz3GccRw7fBf/F/j5y4CqLt29WQWTDmx3OJTd8oXKXcF46F60Ze5DvfpbjmOoBeWkudx/2od/+JYfUpbLp9dazwVyY1dwT1poUdIpJRwH7N9/Fa699lpIkoQrV65gYmICAwMDRmlAEp1rV63IiVwuV3FO6VpgwwmmG0RRhCRJuHjxIiRJQmdnZ8E6ZTHsLEwimDrHmU1LO68JGcfiNeU+M88yDhfblF7pcB8lS6DFlwPgk7LY/PYo+m86ZLyCxYFn/GW+Lku4aJ0szGKPBQF8EMB25N+YNSCHiIbTWqD1+B8A0InChiW0uGVhlwJZSB2A6wSgdXHWdxqb2/VUQvMmoGUPIIaWLEprcSEy6SbLPPYishzC5z8PfO97KmZmeGhaM5aqOtAfKnkDKZjvIPLftVMheH7uIsSBnwCZ9NJ3wC0emvzPY+nu0s38zpkXBzROwnDwy2jP/Dka1d92cYDKUFW1ZMqaogJ/9XAA3/qRiJTKASEUei7IjZitWDpd1UuP19f7jWpFPp8PBw8ehM/nM6oVSZKEvr4+pNNpiKJo1NeNRqMIBoO2bngvFd1fDphgWtA0DbOzs5iYmMDBgwdx8ODBsl0UVgtTUxRkRkdNamDy/jncwPOcewuRPiZ5vNw1TLtjk5t4t8exu1w4RUVwPr9wV0z7Sr5GMSvTjXs2DOC3ALQg/6bowEIyGdlOQA7H/h0AO2FeT6KtNhIs5IYOAMcBRPjCY9FWYDnBQhEB2NsO1AXzA6atVXqMxNArWyh1APXQtN/Ga6914he/CCA/s9tF1pLB2/mQF9eyuULXLkG8/BS4hRFAXbx9tAv2sdNazvy7+JICB5VLoS/4AHZmBLSoJ4tsXTmlLMx4CvizfwrgX1/xQeZgFku7QK/84G0oWNw0/uc4IBpd8l3RgUhO1YpIyb/JyUlkMhn4/X7DCgVgbO9mvnz++edxzz33QFVVnDp1Cvfee6/p+a6uLnziE5/A+fPn8aUvfQmf/exnXe+7nGw4wSz2Zc7MzKCnpwf19fVobW3Ftm3bKnoNOwtz8umnwSWTS629XCCSyaDEDnb3k0BpoSvmhqWPWWxZqNixyP9CTsX1D7+Ktz92EyZ3X+XCu2pxxbpV62LbRQHcBKAZS5aJ3QTkxm3qB/DbAK7CkljSrjJ6fdEN1wI48v+z9+5Bchz3necnq6q7p7vnBQwwwAADAhiCeBEPviBivZJ27T1bEuKCsXR4Ixg+W6Hg2RJlaa1br2PPG3t7ew5v3Gn3rDhLRzm4q5Apyz6fbJ/CYniX0pq2tPJDEiiRFAgQ7zcweAPznulXVd4fVdWdlZX16JkRteTgFzHTXVWZv8quysxv/r75y1/iU2763JRatlwesEH5dhRhtOLvIq6Cox66NtVaTaZgcQag+AR4G8F1aHnB6E7a+LUl7IzDUcgcZqSP3kP3tgWQE+eZPfYKA40FIlN/KmCqUTqyRmUx8IxmaIkFTvV8Dq9mM+y+J0HZ4iXNS/b6hOBXPl/i2z90aFl06oQ+gAop/tgrSprwkZE/f4PtDmBKKVNBvFgsMjQ0xNDQUPtcvV5vg+hv/dZv8cYbb7CwsMBv/uZv8sQTT/DEE0+wbt064+//xCc+wSuvvMLo6CgHDhzgqaeeYvfu3e00q1ev5nOf+xxf+9rXus77o5T/9jZ0+zHI7Owsr732GteuXeOxxx5j69ateN5iidC4hWk5DqJQ8OlYXfTbKHXcUSzMvM42qiwmBqx5PLrIAOzKOSEldsT5R2pes3S+B787Eoh9KabyauAD+AAXBqxR/8pkR6oPpQf4GXwaNgzbGv6VFZ15aGQL+AfB3+pAXzn4VP8KKfp03ZuAD1mwrwirLD/uQBX/M/zrC8q7mNZf6YeRA7D+p2BgC/QXYED4/jzhvcLVKe0fCXlm7oUQMUr2L/9ylv/zf/pPlGYuYEsZBXx1ILBo6TzYTo30QfPNnt/luv36UpQbJcnCPHXd4mc/08M3Tzu0ivjvvkqnXoT1S9+D3QiaOm0VbdnqTiWQzyrUpVQqsWbNGsbGxnjxxRf55je/yaZNm9i3bx/f+c53+PCHP8y3vvWtWL5XX32Vbdu2MTY2RrFY5JlnnuGll16KpBkeHubAgQMx6jpP3h+lrGgLs9FocO7cOaanp9mxY0d7/VC9Xl/yJtL1enQ0bfX0RJb4gU/Fto9T5jDzit6GugVME4ETSjdFMbXf0sQc+/70+4z/660JqZcw95Fmha7DpzrDDSVUGjbseGsp+VWp0qF0Q8tftwjDKbssqeAD5aimS52jClnMPFIOyraFztysaQ60SbeboPjlW9ULI6NQrPhrQXVHIZV9DacoMyX6zoXoOA+98kqTf//vp3n99QXe+th/oMdrdCIsaZZiauXU0xJvJyb3GICWqPN6+T+wb+E5NrnJS126Fd3ClBL+/KjNr/2/JW5PWsiQgtUpdA8za5EJmDr/I7EsKJc7YLQcc4+zs7OsWbOGp59+mqeffjox3fj4OJs2bWofj46Ocvjw4Vz3WEre5ZAVB5jgj/CuXLnC1atX2bp1Kzt37owAaTeh8UxiomTt3l5czcmgXUUT6qqdYw5Tl7B5QPfOOiZdoYSMVzfNKjKf2nB58Fsn4F8npzdZnAkJ8z2YB/A3Bwm93NURi+o0kaYrvNaPD3Aq8OZ1FtL1r8Z3FhomPu+ply+PbMEfFPQr+nSwbBKnX7PGKjawrgBj66CnAFJEgVKfB63jr0LJFDN573nwgx8M8JnPwNGjgmazwofG/obB4ixCevGQhOou6mjXsnn/REpWPdekwffKX6JZazHWOpD1w3KJamE2Xfjfv1nkhb8pMNcUnWUjuvOYS5eDkKShr3/OB0y/+18uR528S0pM98tr4S4l73LIigNMKSWvvfYag4ODPPnkk8bFupZlLSslK13XD42n7YUJGmhqFwsBMISWaDcOQKqFmQV0Wb801JXnvuq58E8AwpOU785RnKtRq/pLc9LnL6WZjs0Llg/izw32Eh1kq2CS17IcwPesHaDzMHVLNW+UnfX4YDmo6NE7x7yBCGz8edkddGg6XV9YNkn6FKL6Ei1gM7Dbgb6CeQ5UBcrQUSqbdU244AB7qdf389nPDuE3PYklGjy+/jT9hTksNW6CWqk9ci0liUlKJ6uXsEWT7/R8hflakz2tn8h5g2QJAfPMPcGv/ZcS37ng0LTxWQd97jqsDyrTkEUHxazL+HnLElQqhXZ5livKT19fX2a60dFRrly50j6+evVqbn+RpeRdDllxgCmE4PHHH0+d4F7qiEW3MG/9+Z8zfeQIBc3qVKnZ2Em6o2RNTjdLiQGrp+lmiYpJl5Cw9uwtDvxv/x9nXYvpPWNM7tlGc88uqCQBqKZJB0udbgu/78S3LMvEKdM0astklQwA78e33lRnIRWc8joLPQC8B38OUX1YenCDPORGH/Df4Yf1U8ule8A2c5YtlK34A43V+BalGlFI78QXWML8ofR3DunZBvYD4FbAtfBCYPQEo303+dijv4djtdpZIvQ15N+SR68jsYPoy9e5DheXv+v5z0w0Znlv46cRS5hUrzU9/vBsmc98v8z1aQvZg+8jlfX+dKBMNCb1E/GEti3a23u93XthHjhwgDNnznDhwgU2btzIV77yFf7oj/4o1z2Wknc5ZMUBJvgW4FIsyDz6I04/PT3IViu6tZfhUz/IA5gmgAqPs5pAEkiaZj3y6korj5ASUWvS/71z9P3NSUYQeJbN7JaN3H14O3f27OLMoQ/g81KLEAHswY/eE6rQwc0jm9oK+8JVwN/DB48QlFQrVZIf4Lbig2WF6ANWAThcy58lo/iWZTiY151gVAov78zCGnxadz2d36rPU6rWTldAqdQIIaDaB6vGoDgIsmDeDMWF9279W0pOjQgvk1Rpu8Avfy/waAadnjVhkofHa8XvMW7d42drP0tRCSkyOVnn618/x+7da9i+fVVkflCVH04I/udLu3hzttd/1VWiAKm+xxpmsNQLHjmflrBz3bKgWvW7/+WMI5tnvbrjODz//PN84AMfwHVdnn32WR5++GFeeOEFAJ577jlu3LjBE088wfT0NJZl8Tu/8zscP36c/v5+Y963S1YkYOaVxYaJ0i1MO9yphA5BEqnfwYfQ6rgt/P4lkXnJkCwL0wTYSd8XC76q2PUmj778Bq/0VWkV/OchPEn1/DiV89fZ+Od/zfjjjzO/fqC75SQAJelH3HkYn8vWl3mExyogJU9d+WB5EH+eEeJWah6AC3Vtxge4pCUC6jKBNLHwBwSP4lskOuCquvI69lTxKeIH6QTkMXXgoQNSWK2TKmVSRSgI2NALw+uhUKQdRF53GFJA+b/f+ucMFKf9yE9Jor/DLM9qYRqwCu3T9FN8xRK46Fzmc9Uv88z8U4zKYX74w9v8yq98i1On7tDTY1Gt2oyNDfDoo8M8+eQIu3atQWwY4nMXS3xt3GFaVDv0q8mCr+Nb76m0a8r5SAKzSWpZy29hdhMW79ChQxw6dChy7rnnnmt/X79+PVevXs2d9+2S+4CZILZtL5rb1y1Mu1wGg552NU6o+OGykryAqTcLQXferSZaV2W+lkMqc3WcpkQ4Nq1yiVZPjx+2LRCrpU2G5XDeoOIh/l4d1gikY4FrgSdAWgq4iWSPU11vPz7ArSX6UFVgyhvqbjO+s1BByavPMdZTflsoBfy1mruJhvNTBwYhNRwPoBMXO9D1CD5ohmVJsnSSCJmsyrkW2FGANas6of706EIqaAb7je8bOMLeVUexxCKZoKT5b6XY+TPp1qhkRszz+erX4PVR/uAfzzB9rwGUaTZdZmZcbty4y/deu8cLh6dxfq4P5/Eyc03bZz4KmJ916MGs7vmcNKpNo3QSf2HnnG135jCXK/D69PQ0GzduXLKe/5ZlRQJmN1t8LQYwdQvTqlQQtp2/bktABJSsSO+PdBX6PfKWPsmyBL8t56koSWAbipBQnl6gVGjSdGXgqyFwSwVa5R5a5R76Ll3l9uhDwZUcQR4GWhT/3jys9pCWQHoW0hNIGXx3BTQL4BqehKka9OE7+IRBTnSACy1LHSxNusbwrdQwtKaJis2zbKQHP/btVjoRilSrJAQ7lcJLk0F8elilX1XgVa3xrndBwbd+x/ABuR+QThQY9Tm60CJWsHFN6Q4bK9fyA2YaW5BocWaZox0x4ZYHLDx2hw9e7+HNz/Vz6nPASBm5bwieHMXbuQ56y7jSpq7vva0OEsL54LRg/yZr02wKY0bU6N+PYg5zdnY2l9PPO1lWJGDmEdu2abVaiwokbFlWxP159q238Fw3soQ7Nng0NIiCYmFmiQms8gBdXut1Mc3J1GQLrRYFCc12A5VY9SbFepPi5AyP//v/wPmXfjKqKIGetdfU6X3vJLIqkVh4roXnCaQMQRPcloPbyhmVoM+D93qwSvhxCcNdQtTdQvJaltvwQU6ds1RBN9SVJRV80N1IlG5Q9bXID2x7gf3Ely+oQBaGXOvGWQh8Gvs9+MAeOrGEOsNg9iFYhMtcwPgc/vm2z9BjL6Q5s3bE6NCTkCbzYlSZGszAdBOJwClIdv5zweZ/XmZa9nJXVrndEtQb8zRrLm7LwWs60Cj4TEdLdJbhZIUkTDIUk8DTaIrGE/b0dFr0cjr9dBNz+50o9wEzQZa6FlOVm9/4Bs2JCWwlLF77U5IYS1Z1+kkDtbRr4dKSrIFr0vk2JZsTuU2DATWb44GFh+VJpGUhLRFx8bcbKb10uy+TlDfN0PfYBFRk0KlZwbO08DwL1xM0G0XcvK+w4mG/dwHW+fgoXQvpWQFYCn/OrWn5HV5iuYLPB1wfLPuDztUjoIgxz6Umlkn6IfhGAsX6vGcIlnmMsB78wAahlRpapToV2+3emhY+mD+Mb7FaGB14YtZURplHStcpiEW2v5zAqYNhp66aHH90oIzqCb+VRJNVYppyscl8cYZab4marFCr91BfKNGslZBzJXBF5z3oStWBFZgbUyIlpFuT8V8Csk3HArGiXrqPAAAgAElEQVS9excr7/atvWCFAmY3lOxyiLNImqLbwAWmdtXNC04D1TTv/fTZkqhYEmzPw5ICGdBtEt+ik5ZFaWICZ2EeIXqCPkpG72x7DDx4l1Xb70AxNP4s/09YvqVpCZpegWYblAylUUGu5FI6OIvY6PlgKQNKV1pINwDhpg2tUjyv9lDEcAvrHzSQfbRp4c58avC9KbIBs89D/EQDORKAdpi/TeuKfFuQAayXvmPPUFBY0zKbcC41r7Vj4VvRe/AtS0EUJE20a9pOKEqf/ovrvsyWysV8dGxWAzFcl8H5JEYzrR2kg2bnWmifWkiE8BCWF/fqSxpVmq7FvAUT8iWUOvILBJGwePc3j84vKxIw88hyAGboZetolUinYo1sSiAJux0Z9Zm+L+YFm5x/8jgP6fl0HQIfMDvjdxGcl+BJhOex6swl9v4/X+V7v/DLMQ2202Rk5xV610+BA17QJXltjTYugroote+X2KMEfZsoePT+/UmcBxo+dkgb6Qk81/IBzxG4roVs2Zl9k7WqReEfzkFfYPVK0aaGpQz01YrQdNI7+qpL4X0LsN4L9FhIj2B+NgDOlgWtDBpNSMTOFuKJJl5PEBIndIgKvVSliG5sbRL9h4/hOwuFUY/0EHmqRZlCuyZJxZqnx6rlo2N1ScsTXrNMoKfXFl2Rel1of2oawyhKN/qSrEQTe9rNaNSoyHxT1cJ0XXdZ9rDMu6zknSwrEjDfDgszjBZk2zZOby8IERkkquxLCJqmUoX76eZgQ43tK+0FZ7VF9XtWXNq85bPVAyk7dGyb1ZLYrWb0HNDTM8fY5lP0VBfAUsHSB0wPixY2XrA2Lk9faxVdBh69Q2G0BnZI0bUCcAPPs2i1HDy3GCtPTFe1RfUnJxCrpG9QeuF8agc43aaNm+acAli9Lj3vm0Ks9fBENH9o9XotC6+VsVbVljjvmcfZ08Bz/Lk4PAvPC8A7dIhqFH2qOVMkrJNwQARLbUTc01OPTDPfyZqmVpU+a5pfGv5iJ1jBYqULsDWBpF5knSWNp9UBNeFekYZPHMuSADXpONbo1cwmbtff2qtS6fQMy7UO8/4c5gqWpQKm6mUbbh6tS+LUg6onZ8NPamd5vVtDZi5J72J2PjEdW2jMVNiDBB9Wq8Xqsxewm02aFBDCY+3ANcaGz+IUGsGUoIVLQL9i4yFwcXADODaWU3OItAouqx++QWV0FhyJ55Nn/qfwPz3LxtW9a01TmAWX/oP3KKyvIVWQkwLPE3jSptW0cTMsQqvcov8n7mKvb4It8ML8gWXpOzVZNFrFVD2i4FF9zySF7TWkFeqw8QIQRwo8V9BqFvBMlp/+Avtc7PfVYcxD2n4ZcG3fWnXD7cNEx6LMYlKTAAEoFhsMV25iL8U7Vr8embdMK1LcqkwaVJrAU4MlZAoA5yxQ/uNMiWbo7Y1amMtBydbrdXp6Fhl05B0i9wEzQUw7jnQj4dKS5swMMydOtM8nTlfopl0wf+nYSpoESWvUebxk84jVdQM130OPkx2jflstdv3Zf+Y7/+NzTGzcwo6hY6yp3sSyZNua9GeGaINlgyJe8EujXZ4kdlKAsDzW7rhG36ZJcDodHIi2fheLejtcUPKPtxyX1U/coLRxHqwgfwC4UgqwBa7n0WpmgGXBZfDRW5RGagHdHFC4VuCpKcH1HGoL6dSZVXAZPHiT0gM1pC2U5xUAuBS4LZtGvZTuBSsBS1LaNUvp0QVkBVwsPFcgPdu3nkOvZNdB1gr4e2HmEL0R9OA7I22F/2HmD+m7Ou0n6IaSzXL0iWGhTqUmYVLGQDeBulWPJcEcdHhdHzCYqFjzzcz0biS/alnqSjqJe3vNm0cvVsJVAW9nIPQfh6xIwHw7KNkwv+N53PrmN3Hr9XaM6Ej1DepwUpec18JMLEfG9by0bJ64tGl6w6aaV89meZ5HVl+kZNV9q00BMy+Yq2zh0FKeao7xPAAbH7rE4IY7YBO1LOncxyPdigMfeAd33qZv4xTCke384Z8rfMvXE0FnlPLDh/bfoPeBKaRNZ0AgOmXzhI2XAUjCaTH8xDjljXNIq6MntMalsHCl5XuTZYhdaTL4E7cobqrh2eGzsfCkhRtau9Ki1SjQrIMrcizd0UFyDN9xKHQacmH3X5+g6s4jwoq7lHnMlLwdjNGtw7SZb6GlT573NLcr37pPLFiWtZnLGjWhsXrNp2SXGzBDuQ+YK1SWbYuvUomW60KwpMREnRrreyCFRczFqPfIE5s6CdxUUixv8HX9WCfWssbjSChPT3Dw8EvcefT9gQ4rsPo69Ks/X5lCweo3EAAeD2w+z9DwLSwrfB8dgPPalmUOBwgBQ5tvMfTgjcBK7azZC7/bWNTaYXkSfrSQrN15jcEH7iIs1Qaw2rq8iLVrFstpMrrvIpV1c4EzbcdidhCAFThEZVNmlbVTDD9yHbvaQloSGTx3DwtXWEjLwnVsWm4Bt9lFF2JJrAebyB0uco0dRP6x/HWJLcHIxDU21y/Gn1eSZMwHJ0lnI3ff6jPjkQqOIiGNDpZC+557w7qEghq+mzqQSKI8mSQDA506vhxzmIsNI/pOk/uAmSDLAZi3bt3izp07CMfxKSAlmEFql6BcLOSgZNVsepPpxjI00cXd6AnzmrxsdV1JIgB7ocG6Pz3M/HOPByAZdth2AB7QMkJ4x8rU264lXDatO8+GdZexba8NAFEL00q2LDUGb9Wa26zbfBXHaQUOXaG+Dvi2KGQ8M8mqdbdZv/UaouBFvH7VMjUztDhOk83bz9A7NN0GXdUZSiJ8OjXDahbCY+3ma6wbu4YoSB8cFceqsGwuNnVKinVP6gu3ehuU989S3F7H6xG4noXbsvFcC9e18FwH2RI8MHmOAzdfw5Fu/JknFpooVunXTGlTEyYlsmJpOkAqlLZnHhL60y4Jk6lJGBd+mkbapsZuVGJO3N+/vBbm3Nwcvb29S9LxTpAVCZg/akp2ZmaGGzduUKlUOHDgAN/p76dm2AuzbX0lzWXgW5h5wDLJYSfvC04pApDfSzaL4oU8S1QkdrNBlXlc7KCz9zvpejvqeNZdaPd9ltVi0+AVtqw+F4ClfzFK84q2FSd0HZpUK9M8MHaOYk+jTRfrfw2KmRuFDA7eZfOD57CdFhh0+GVKt3Ydu8HWTadYNXS37ekbgqQ6J7uQYaHaVpOxbacZXHsH0dajA7hNkwJSeYNp7EjP4CyDj9yhvHEeWZB4wn+XLjZS2rSkhefZuJ5Ds+HQLybJt7C0C0mstOm8bR4W1ETF+tcMFmm2iZoMlqa05oIkJIgmFgL6+jr1St3QerEyPT39rg+LBysUMMEHzbSdxhcDmM1mk7NnzzI9Pc26devo7e2lWCxiV6vtNCZHbw/F+FSLJDrRfvJamLqkAV0WSKrp8u58kiZhGkukZxAulI7fZvVfvcXcP9pGnaKRkjQFLdMVW3hs7TvNWN85REDDdqzJEJwsmpjm4OKFLDo1djxwjErPPAgZWG+hY42vs5WjWZVLs2zdfIZKcS4IvhDVEVLQaSKEx9YNZ1g/dANhe3SoXNXitWhqlqX+q4pOjV0bjzDQP4FlhWBJ27p0FbD0n1P65GClPMOGbZd9i7cggwFPSKn7tLcnbDxh07Ac6l4Pbsvm3/z5/0FffRaRPX2sPYgu00eLqyjpULCmG8TPd3SY25ACyjIc+Yp4w0uyIs0FjeZNLY1Jmb9TiRq4AJY+97gSghbACgbMLNEDqKeJlJLx8XEuXrzI1q1b2blzJ+Pj47RaLeauXPHnaiwLcuoLReADZga+xMujfOaxDNNG0aHkXKmX61we8kcsNCmdus38P3owxx0SzgvYXTnO5tJlLMsLUlmBDRPSixaNSHR0U2H8a5Zw2bHhLQYqk0G/J4Jn3AHeFjauqVkFXs8IScmusWvDUfoqk8H2bercpz932aSQCZjb1pxk0+pLCNvfdTnZQk2uARVnjkeGf0BfedKPthQ8E91CrVNsDyri1pOvv2A32LLxDOvXjmPZHlKIGFiG35sUqFNCKM/KcZsI2aWFmdXP69OKyjndQozCjJnrNYFm3Ibz88etUAU4s6zHNCtTf0QxM9aUsTNR4u9Usrxd/30Lc4VL3hHX5OQkJ0+eZHBwkCeffJJCwe9UwmUpd19/ncljx7BbreTBY0of4YRtNgUx0waf3RAtaW22m3WYWfcIrdVUgG1JrFv+yndDXxfrxlQJr+0vvskDzmVs4VOepnk9mTivF31btmixfdVJRvquIgLLUl3i0pm3NIOc6j/50NBxVlfuIITXtgjV+TAXO5PO3dR7kbHVZyjYzaAPjQZy8ME7vXn32rM8MfwafcXpEM3blmX4fEJwS/tFAo/hnmvs2XA0sJg7QBn9E7gUqNETK9uTJ19lePo2IoX1SRWzz40vakxmwxRHOusZ5y2SLM34XKj/KWUXA940K9PTrqVamBg+/e96aLzlkOnp6fsW5rtZsijZLKnX65w+fZparcaePXtiE97hbiflSsW4F2abmg2KEBkkKsUK98TMKzr2Lhbo9KbWrfOQ6Vx4Ppd7Qcuj9/eOMvXhR6iPjeS8c6i/xX5xko2Fq9iYvGF9QKkZaV790y/1A+XLbOk7j2OFA58o9ekm0rpR2dZ3mk19l9p69LnC0LEpTYYKd9jf/wYFuxGxTmkDuKBBwQiY4TuoiDkO9H2fVYUphPDaVqXqBGUr3rlJfbhDk729R9nScxHbCvVYbcBUaeoGJTykXsUBeOjaOdZN38IScmkjs0THHnNC3cqMv/mO6KAZBc6orpilGYJmGp6l7Tmadi12wmxZqjeq1Wap1WoUCoUlz1/CfUr2viSI53lcvnyZ8fFxHnzwQdatW2e0Rh3H8b3PlCg/8fBayUDZ1qPtWJI2H2lqh3kA00Tk6EVZjKWaNBjOrUuCaHYafDoZ5ndNBRrs4Sgj4gYWXrvzV63L0IM1yVbQz40419hdfoseqx78ljB+bQeE8yxFGXLusKP3JCW7TpQ+9e/qYdHIeFsVZnm89zX6rBlAtkFWBV6fyk0G7wJ1Hi+/wbBzGwjrSYeCJQA804BClX4m2V85ymprok1Rq4ESwrLpjkIEv1cV222BlB3v5uWgM3SJUbEdSWJp4vRs3IqMA2mCbZfnxvrNk7z5jPn1FmdKKLFtC2hw6tQparUajUaDCxcu0N/fT39/f5sl60buA+a7XPJQrkKIiAfZ3bt3OX36NGvWrOHgwYOprtjtwAXK5tFJEht5KpJ3x5Ik/d0AZlp8kLyWalqTVcuUqUOCdXeBgT8+ztz/uiGi2cS+AZSZYw9vsZoJBDIAj878ooRgSURPQsmIne8T0+wrH6PfnglsozDKUNRzNEtXkRqPVV+nz5pBBEDXDgbQBuD05ligwd7yUdY4d9sw6+tw2+Drz6Emvy2HJo/aP2SDuA4sPnDDCNfYax2lKuaCckQHJB2Ho0IAmPoT6YBNdWGOX/va5yi2muSIF5EuedjSdjnMzj1qOeMWqImeTR4CRvJLRU+WlZnUEDMlaZjaOXYci23btjA2Nsj8/DynTp2iWq0yMTHBpUuXaLVaVKvVNoD29vZmLjuZnp5meHg4TwHf0bJiATOPhKDnui6nTp3C8zz2799PpVLJzBs6DdkJlGwosbagNYpC6Csg0y3MhOxdA12SqCHtsgbFWXpzr/hqulT/5krC3aKyign28Ba9zLbBsjMfZ7UjA6l0p6kLVG2GEjUecX7IKmsy0OmniETzgUwq1qbFw8WTDDn3NKALaT1BM8lZSCnjdnGGTdZVbNzI/GlI+3nYiXOoAA4tHuYtHhBX2q5P6mAidMhpxFArWoM2c4E9vEVZ1AJgBBks/wkBxEWwQDn1uQBUmWWvPMqgN9Uuk+GWZjEbfPnykWxV6hKv2/mcgdQb+n4KomM1qtajiXoyFVA9l2TGxk7oCaNesp7nUSwWGR4ebgOelJK5uTmmp6e5fv06s7OzAPT29rZBtFqtRoyO2dlZtm3blvIM3h1yHzBTxLZtzp8/z71799i+fTtr1qzJnbdtYQ4MICwr0ujU9hFaU0ZmhSgl242E98gCp7xTI0udwwzPS7Ip2XZ+D5xb89hTNRjo0INR69JjE5fZxQkKtFAp2I4FJ7CCAAjdMH37OMYG6wYEABynHONLP0z6t4iLbHUuYuOGXVbwKYKfaZP1pjZxmR3WaYrtfbI686dhWcIAB0nP/yHOsJ0z7XJ0qFzV8Sjdp3orF9jHUYo0InlCKtdD0MTBUyhqU3mK1NnNMTZzmQcvnsfJvdO3QbJ4dcP1KF9htiT1tPp13UpVuY/E55jLSsyQVEo2DpD6Od9L1h/kmQKvCyHo7e2lt7eXDRs2tNPNzs4yPT3NpUuXmJubw3EcJicnuXjxIrdu3crlJfuNb3yDT33qU7iuyy/90i/xG7/xG9GfJiWf+tSnePnll6lUKnzpS1/iscceA2DLli309fX5O0A5Dj/4wQ+yn9Uyy4oFzCxK9tatW0xMTFAulzl48GDXE+OhhXnm93+fxsxMNmmnWpBLBEy1DXU7h2m6lgd4s/oBvUx5REgonZtg9VffYu7Zvx/TWKTGwxxjA9fbNKffcdvt7/68YBEv8a4m8s1jO6fZLC7iEK5vjIKDb4mZ5y3V5z3EbXaKk1RYwAde3ckntMqSpY9p9nCcKrOoFq4V3E1i0ciwcjdxmZ2cpCfYoNL/TS1U56V6Ch8qkDzAZR7jhxRoRgYl6jIU38M3uVsRSEa5wl6OUWEeEDz+7SNUp+a6X38ZVZx9LoENTVeqAqp5QBI/Nvl1J4jJGEyyNtP+YgqTS2nbHQszb5Qf27YZGBiIbN/VbDY5fvw4f/VXf8V3v/tdvvWtb7F9+3be85738FM/9VO8//3vj+hwXZdPfOITvPLKK4yOjnLgwAGeeuopdu/e3U7z9a9/nTNnznDmzBkOHz7Mxz/+cQ4fPty+/q1vfasrw2W5ZcUCZpLMzc1x8uRJCoUCw8PDrFu3blFeZOF+mI3JSVoLCzhSplblJErWFgRr9bIbuL5FV2jNLdYyVO+ZV0+eAXRXQbikh9XUJ3Ykm7jCFi5QDTZd7ACRP6/oe2k6NCkY9i5OL+UI19jDcRyabWAzWZdmfZ0y9rDAPo4ywLRyNXQK8fU0KWQsIZHs5yhD3EO05yotdM/aNCefASbZz5v0aoAblgNo08GmOiqBUa7wGEdwaIJiIat0blPZYs2EVgWa7OcNHuAKNl577rbYSnB1WozjTx4v2dhOJVGHHmOknthx9Ea6tRnq8ZeVBM9bdo3YycCYmjeJt/X/HEdQLPrvaSlh8QqFAvv372f//v185CMf4Td/8zcZHBzk1Vdf5caNG7H0r776Ktu2bWNsbAyAZ555hpdeeikCmC+99BIf/vCHEUJw8OBBJicnuX79OiMj3XnK/6jkPmAG0mq1OHfuHPfu3WPnzp2sWrWKM2fOLDo8XmjBFrUNVU1VGTB70NFZVpLHCjTdR+2+8liBKmWsSrprQ/5yQf49OgFEzWXjZ77DtZ99hMbaAqu5y3bO0Mc0FgQWjt22+jpLM2zqCNKAxCSrucM+jlJWgFida8yyxFTZySnWcQsLl9ALVgf2rPnPHZxiA+M4bTo36p3rEQZ4N4tNi0d5nSEmIPAaNgFuWkiNEa7xCEeoBlayHlvWP063LPuZ5FGOsIoJoDPAqd6cY82lu0Rqyo/CQzbUm2nwhQniXr2qRzOxz7gl2jnWCxG5oakQnc+ur+sgGf8M6VhYvs2jZ2ZmWLVqFRs3bmR0dNSYZnx8nE2bNrWPR0dHI9ZjUprx8XFGRkYQQvAzP/MzCCH42Mc+xkc/+tEll7tbWbGAGQKalJLr169z4cIFNm3axMGDB9vXlhqAHcCpVkGYR6ztMV/SgFAElGyKO3yWLNbpx1TObppV0mA4tHq7EbvWYMvCOdbyJr3MBOBvt0O2hbFm/eUi/trBZoZzj0l6mWM/bzLIVJA6aon5uZOaTFT3BsbZwiVKCgUa0p8Sgl1R0p/oKiZ4mBPBvKUaDcjX5Q9szIArg/97eYv13NScfKL0sr58RP0lvUzzKD9sW8nx5TB+sAYdtFVLbC23eYw36GUmuNbxDB64O83Q+QmEP6ZYXjGsBOnEPzdblHEF/qfJwOuAY3zCNI3CjUkaxqV9jx2bmQ79s1Tq1OHl2jx6ZmYmQteaxLTuXZ8aS0vzd3/3d2zYsIFbt27x0z/90+zcuTNG+/6oZcUCJvgv+cSJE1SrVQ4cOECxGLUclg0wLSu1zkMCaOJ7yeaxDpN05wXLrMEs5Ac6XZ/+PQ0mYuWXULo9x74XX6H4bzYEwdiddhQaN/B8DecUPYoxYgzMM0qqvVCixj6OsoZ7iPb6zbgV5cb0xJ9ahTke4Ugwb6l2yC5qZJ80cWiyl6P0MQtIpRyqxZvefNdzne2cphDsFK1buDKgUZOkhwUO8H1Wa1ZhNLqRQCbSsDDMTQ7wA8osGOdue9w6llSeRregaXLuSXL4aV/vAFkaUCa1OXWtpamuG28c7oOp07JRxcmNRj/W514iX5IzC0EkLJ7ruotad6nLwsIC5XK6V/To6ChXrnS83q9evdp2KsqTJvwcHh7m6aef5tVXX33bAXPpIR7eoTI/P8/x48fZuXMnDz/8cAwsoRN8YLEihMAqlRBWZ9+9tIGkSdTg63koVYhSqhbpL7kbqzWPx21yJxPV0w2QC0/iHJlkmFsMcZdV3GOAafqYo8o8BZpYqb8k+8nt5Rgj3KBEDYcmDk2KNCnSoBSsJtTFDL4eezjGIFPB3iqNYCViuELSjS6fSCjPg5xjPTdxaAZkp1+GIk1KNHEyZj5LLLCPY5SZD2L+hL+nSYkGRRpBOZLfxD6Oso5b7d9RokEPjeDYL0OY2zQgHOIO7+dvGGCqfd8SdXqoU6ZGiTpbXrmM1dTaWJ55SD19F5JuKUbB0jSwSTbyoojd1mvCrqS/tBthSBdLk22OqpTscm0eLaXM9PU4cOAAZ86c4cKFCzQaDb7yla/w1FNPRdI89dRTfPnLX0ZKyfe+9z0GBgYYGRlhbm6OmRmfoZibm+Mv/uIv2LNnz5LL3a2sWAuzWq3ynve8J9VbdqkWpuM4iFIJaVmE+2EaGRdpGCQGkjdwQUyncpy+ui/f+dAyzDOfmnWt20DuXhMaR1o4x2ax91Ta3qH+HKCTkCsuZmNEspejbOEidgBk6hxj6AWatZA/lE1cYZSrFGgGpenQsKEu884rHVnNXXZxkh5qEYtQDZqQtsLfpsVuTjDEvSDaUfhkQgsXBFZkCBB9cpIxzjPGhcDxKWpZhsHm9ehGqo7V3OU9vNq2sj1FRzgXbGOx+tQkdsNbWsCCpAZieOHtMnaxO0caG6CCpdSOI/OeaWxpuuLOcVIDj53UTdHOeSGgt3d55zDzhhh1HIfnn3+eD3zgA7iuy7PPPsvDDz/MCy+8AMBzzz3HoUOHePnll9m2bRuVSoUXX3wRgJs3b/L000+3y/zzP//zfPCDH1xSuRcjKxYwIc6f67JUwLSk5OhnPoNXrxNyrontJgBNU4nsHAiTVGU98s09msqlR6FcTLMylSvPVmF6s3fvQP0tl+IePaU6E2XWlkSwCTwe4BLbOBcAnDpnKZC08GPOlpQ8yb+sn8lguUQHJFRPUh8wVWSI6yhSZw/H23O1aqcb0phpNCrARq4yxgUKtDQPXz/8QtzLN/rkVjHBo/xQmX+NOhllbWFWZp4neI1VTLZ/ZQiU4VZoPoVe8OcuTY/DMP9olCT/m0znnqgCPaSdXpz4PGd87lIqn6balmgx6p96IbyEa4miAqWq3Bedkl3qHGYImHmipx06dIhDhw5Fzj333HPt70IIPv/5z8fyjY2NceTIkSWVczlkxQLmj3oTaYBCTw/S83BdFx0AjFU5YeTpdOH0Y0rjkH8eNCk8Xqgn733TLNfFAK87D3N/1qT4szLF8bW7ofsoV9nDscADNb5hskwBBr32FGmwl7cYYCoCdOruH1lAB7CFi6zjZkC5Rh19bCUwQJJUmWUXp+mhFsBjx8M3BN20NZsFGuzjTSrMBTmsSBkIwC7puRRp8Bg/YB23EdD+/WHsXZtwfWyJoR9M0HOnlvlMlkskaC8uOvzRrcM4KEZHrrp1qX6PDoaDczKhz0myHNPmOOKFzplY0tvbGQAuByW7sLCQK/rZu0FWLGACmTuWhDuOLFZs28Yu+ZUzCVB0KzNyImhfTja2G9tceC5vc0gDuW70mPKrP6ubtaGqktphF1mLAqZJTx6XjlEus4Mz9FALUkfXR4YBD6L3SB4WbOEiI9yIAV2HPk53sAEYZJJtnA2oWIiDlYeXsQxlFycZ4g4W0qhDZKzZ3MFpRrmGpcSnjf75O5IkvcFdnGAj19vuUZ11mmEoQZsWRUBQvl6jNNVEpMdlT5a0dDoda7A6TTVEtzxBb1u6w1aSRWkCVBFtnGkmbeKelwkFb19IiwjtU7J9fcs7h7lS9sKEFQ6YWbIcc5iWMvJKbCfBCVMbEHQf7UdvLlkvWQ94oOvIqycpn/59UTufeODdltS+Wsf6SDlXn5qUZgNX2c0JKizELMtO9Jr8TWM193iIs5RZUMBJD3+XPUm3m+MMMtl2YIp6tcbD8Omyjpts5jI91JV61hkARD1a47KGO2xPGESEc5CtlN8xyhW2cZaSkj8K2P6zCFuUcIlWkK5HUcSB0fSpSJyDMDv1xDEpyfXWrD8CuMljt06mpHiypJwzF9RwIQqa/f0dC3M55jBXyk4lcB8wU2WpgGnbNlZPj+/0Y/C2NVVpYzms7DThdZP/ZTcvOc3KzNKjMknhsak9L8rCBGQTmt9tUvpI/M7mPjIO3+u4zh6O0xOAZWeOsBPFp04hN2AWaLCfIwEV69twKg2pb+Sc9Ls3Ms4IN9reuBKfglXnL9MBU7KPo1SYD6jYUDo60qIKFamzlwbcblUAACAASURBVKNK8Hr1qfo6WliG/H6aKrM8zmv0MqeUufNMQ9AWgXVr1T3Wfu8ewpPJbtOLqSRLluS5St3SNEloSaqDBKlelNr3NIA0jT4TrdKk1h/P1N/fGfR4nrcsgHnfwlwBkkXJWpa1pE2mVQszrX3EREvYLSWrHy/2Jetl7iaebNrCCSvHhKrxcgta36hTeLMB+/xRcj5L0++u13ODRzmCQyuwquMB1V2cdqeeTG11ZDtnWMvttlWo0rAdCtL0Bjp6bJrs5wgV/K2yOl6x0c2vk0WyjbOs5p4S4L2z4CME3DTZwgU2cCPIL+h4tfrl6Hi4mu+/l2MMMNX2wVWdp8INthsU2/XJangMHp3CcmW3wZiSJY+3LAQesipHGx9uSeU4ydJU30vi+1EaUbsrMW3hRco5TU8+MaOrEIK+vg5gSilz+XOkyfT09H0L874sXWzb9rf3EtFRq8q+tGccwgZlaBCFAKm6he5Q3XIsK4EAuBc/fmjrzWNhGm8jQU5JGG/BvnzEGPhuKlu4yg7OtOPDqlZlCJ6NnJZleN813OYhzgaReCTRjZxD3VYkT/y7yw7Ot8EmSuOGll16mcrMs4djlAMqVnVaku1weMlPq58ptnOGIjWEAnRJjkL6u9nEFbZyqT0QiVrtBI4+xUhe4WZUpMVy7qa5ywxRn7n+nExgGR+cmsA3p2QBocmijHQcpgxJ3yWWFV2HuRxyn5K9L8siU2++yZ033jDSsbp4iQdQTPBIN4mpueSde0xji/yOb5FAp523uwTdSDlmQP7LKfjQYPuKGrFH77aKNNjBSR7gKnawJlGN3BOujXSNQdqTxabZ3nGjYwuG4OR3onlizg4ywUOcjVCxYacdesWmUbEWLts5TS/zARms04E+4CbVQIkf87afmXbMW/U3QNRRSH91Bers5a1g55HQKzcasF4vvwT6jsxgNYJS5QS2lIfQhXXZKYP/mQR08WUjqkjjuQ7FHz8fpE+iW3WRhr+kNImZwnMddFV3KlkuyRMW790iKxow81IRi6UtCqUSrelpbM8zVuN8hcw/hxmmCZtIKOGykrQ84Wcalbr0eCC+ZFmYacvOpAQx3kJcaCK2lkh+opJ+JnmYE/QzjYD2GsCOQ47fsTcoBVQsCbr08rs8zImAiu1s/4VizXmITAwo0GAHp6kyF4BuFKh8AEqnUldzly1cbAdKiOYP10ya35zED133AJeC/S39PHo5krZGk1Kym5OslvewhRIgQURD55kAf/jb9yhOt6KVaqnAqeoxHQuQIm5FmhJGYUYfkunzmvGaEwFP2flM/YFZI1bT90RFpnYRtTCXg44Fn5IdHBxcsp53gqxowMwjYXi8xSzuLfb1gRIWT5dIVU5AqtBLNg8bmgR2eZ11sq7lDWmXlD9sxovyklV1TULvZ+9Q/51eY+qirDMmzrOZi8Eay6inqBuAZguHljaBZmb5ok9oA9fYxnmF3tUdXPytxeK/Ivp9A9fYxDgFGkoZ1SAB6U+rQIOdnA7izaLk78yoqoCr98E2LXZyimrbUSga5KCzdZhZBr0JxrzzPtgKOlMPIhg4CIEU5tpn6+Hw3g4R6jNIAr+EjJHrccvTZHHmEh3XshpjYnrTkDyeQQjo6eluL8wsmZmZYfPmzUvW806QFQ2Y3QQvWAxg9vT1+R6ydKqtHn9DQtsZIFb3wzKEbTqHiRm3sxbnlWoCurxB05OIoVC6LU+sj3DB/uo8o++9yrmnx9oFK7sLbG1dYj3X6LFqYAeWggi2/xJ229vUDXY3SZKk6bEqs+zkJOVgqyvdIlPXb6bprTDPNs4FAQa8mJ48lO4IN1jPDQq0FEuoo6Oz5tEsm7jKSDtIQvhbOveXkLB1mMCSLo/U36JfzoOQeKH1JvA3GxACT1jBu4k+TWvepXdqHmGqz4s1eJZonUYtw/i1PAxpVFc08g9q0IJkUiR+3oSBpryxBCaFEtsWVKv+IHE5AfP+HOZ9AZa2tKQYbu0VxJFVxdgmElpiuCdmN6KqyaJk9fSmYwAhu9OTNNa1utRjktZdWPvtaQ4u/JDJfVWcVZIK89gOyAJgg2uDZ0PLFkjHwrUsXMuhLoqZaxpDUctp4bKHY6zhLurSC3XNpT/flz2yGeMca7hLZ9utcClISAeml69EjYeCNZPhWCqyhKEdXccsPSzwEGeD5TXhL5URPWkOUOuadxhp3KEggvIL9c/FtQRe0RyRYOjNSXq/N5/O/y+3GB5FlkWZJ13c6sxwADI1ChPO6edMu5NECpbU2ogcW5ZoW5jLtRfmfS/Z+9KWpQBmT3+/T0spcWRTu9IkwLSiSUzdYNpgtZtIP/ogVrWIsyjZPKNvMnTkFVmHub+Env2w+tgcVIE+/09UgRJYDlCAYlHiFVzqZWnoxPVfkGxdbuMco8Fmzn5qdc2l1d6XM0tWcY/NXA6s1DC/Toem69nEFYa4095YWrUuCcqVJlu4xFpuYwc7juhl8GJrLjtAIKTHnvlTFN2mv6cAdGKZh6DpJNeCtbcnfOsyB2OyaImyrbGX2vGKVc+pnzoR37kWvx519onhmQwekqd5HJlubLpmKqRJT6op6p+zLNGOJXvfwuxeVjRg5qFkFxsez/M8rt25gwfYAWgmAVG8gUV1dWth6vrSKNCkTsEkb1fw9Vz6JLjj0DoLzl7ABeqB4hZQDv4kfui1SDg9869Om8lazV22c0qLgqOuubSoGxcUxvXtCLxSO0HVonRsVgi9HhbYwRkqQQi96NwnmK3LznFVzrKZy5RoAF4w9+i1dyGRkEoHb5y/Tv/CjG9Xi+D5BuDU9mtxzL++Oj1P3+RcOljmpVd1MEwCSEO6KA7FbxgfOulpog5CnTZnupmC3kbrMOE4KW2qJA8BQAZesh1K9u3aPPrdIisaMPPIYizMe/fucfLkSZzxcUQKFRsey+CLkWEhf/D1JIYnj2WYFnQ9lG6ALq2s3QBvWpnkAjTfBHu3oVzaQzBZNOm/pZPYocEjHKEffz8+33rTt+3K15RGuM4I15Xtv3QqNBswt3CJAabay2T0BfS+V2yyjs3eJVYx4cd7FYAUbe9RCchYcNeo7Ji8gONqS0KCP3VwYqrra69NUPhPLWhqRVzsHGQSHZAgyTiVrUhNq1qaJr3qOWNbSBotJwGl/t2oXL8Qr/S2/aOxMO8D5n0BugPMer3OqVOnaDabPPLII5w5coTGxARWsKwkSVSrSRI0QRUwQ6RSr6fp0c4txrvVpGcplqEq3fSNqc/Ng+ZrUPrHAQ2blCl1pGHiwXwR+J6kuzjNGm5jtVN3FvSHAOXl8EX2dZ0I1iyqwNsBvSw9JRaCIANNpWtUHUySl5EA9HqzbGldpkCjHfBGihAo/bfSspIpjU3T1yg3/J1QjBaeZs13fr2gPF1j4M4M4i4+I5D1yJajsum6rDSnHhNNq6+r1C1K03flfcjooDh1BGiKAJQElGF6abqY1AAkxaKFHewXuFxzmHNzc1Sr1eyE7wJZ0YCZ10u22WymppFScvnyZa5evcq2bdsYHh5GCIFTLreXlUD62C9yrNX3pQRfh6VZhrql2m1+/XwIvHl0ZA4yJDAH3stg/aIhU04qK+3ZbOESY1zEptXuPKNzhdlB0UPZygWGuIsT6PKLGF3ukgaYAo8HuRCsKw33tQz3tvT1ZZVlU+Mqq5rT2MK3Lj0BnhAdhx1DBxrWTcdtMTp5A7vlJtOgsYcZnPAkA9dmKNRcEqModCtJjGmKz41JSbyaJNGvcTEPUnUPWaI+f3oFTwoBm3TD5DGeplz982/iOL5FWK1Wl42SlVIuC/C+E2RFA2YecRyHhYWFxOuTk5OcOHGCoaEhDh48GKk4hWoVYVn+HJE2h4nyvX0+oRHYgrZzRU4MiOZfRJ5QdKDL6oNMI2+078qUV2a/YNIVSecCR4HrwNaMwimSRLapMiKvsYsTlEXonKPubBI6yeQLM1Zmnoc4p2zKHJbCnz/0gS9dV1nOs12cUaICRanYLKejklfnwdplSqHTkvANLhms75AC6pFlINGnNDx5l975uc5ZHaQsYzZAUJhvser6LOIKUNPS5cOmZMmZv/2WRfzGnRpgOhdan0nKow8iuY0q+XWwTBvo6SCZCpb6X/R6uWxz5coVZmdnabVaVCoVCoUC/f39lEqlrgMZLCXW9jtR7gNmhiRRso1Gg9OnT7OwsMDevXvp7dUX0YNTqSAty1i/9bovTfU84F9Dp59uqmY4psxLyZpAXG/LeeZC1fxqOdQ03QRxTzvXvjAF/A1RwDQqSQ9hrkqfnGaPe4x+Me1ntZQ1jiLcEDq++4dZv2QnJ1nFJCKIBhRuqKw66qRGIZeSHfI0ZTnvRxcSYSdO4LST3FHLIP9o7Qa97rxPLXeytgvuRUz/6C8pNJusmbyH03Tb9TLylzGaWn1uFmfWhRPABOmVoJs+exEA69fPzkBDVxZ9jlEATXINC6/pjKlPy4bmO8nbeKXRTkkjRpl4oCkISiKgv7/C7t27ATh79iyWZTE3N8f169ep1+v09PTQ39/PwMAAfX19uS3Q5YgY9E6QFQ2Y3QQuCEVKyfj4OJcuXWJsbIz169cn6nHKZf+atqwkaaAYoWSVi47SGWVZZKaYzHnXYSblDyVr7jHx92jHi21aSc9PusAbwE8CDy1SuVKuHq/Go7UjDDKJEJ6/KN8S7cGPFALPsmmKAubeTEb0rZb3eEBcpdi2LsNOV6Vi04nqPjnDA+5l31lIQCeqjt8Ze0IgRDIK2dJlx9QFf91nwFgItV6pFqLhqfTNzjIwO4vwIqejgJnQmxSmW1RuLPhUbJPo49Irw1L6XRMlq1VaabAuVZGxzKa323lYuQaxmQ0+p6TSLkm8VfR6uWzjum57p6bBwUFWr17tp5CShYUFpqenuX37NufPn8fzPHp7e9sgWq1WI/1dCLIrRbqcHXv3SRZoqoA5PT3Nq6++yszMDE8++SQjIyOp+QuVCgQUbdq6Y6kemPR0aWHqTSdv7NYsXUuZw1QlC3iT9KVStLPAX0IsgrqSMH5PQ2k9j/2zxxmuTdBTdyk2JKWGpFT3KNZaFBoudo5g+qF+W7Z42HuLijePI11s6WLLFrYMA/O12sEL0mR3/RS9jRpOy8VpuVitFrbrl8XyXISXrmPr9GWKzQaiiQ9aTfxn1fC/i5TswvNYd+suTsP1l+y4wZ+nfU+Q8uUazrznbxid99HlqSDLlaZt7etDHZ2e1Yl8c01eEkmpV3IT2Jo6k0gm07FECKhWi0gpaTabzMz4Xt+tVgvXdZFSUqlUWL9+Pdu3b+fxxx/n8ccfZ+PGjXiex6VLl/j+97/P66+/ztmzZ3n55Zc5ceJErr0wv/GNb7Bjxw62bdvGpz/96fjPlpJf/dVfZdu2bezbt4/XX389d963U1a0hZlHQqefEydOMD09za5du3Iv0nWqVUSCE4X+XULiHGY3wddN9wlLkDVnmHYuL7WbVZawHHn05Pm9bSrbBY4Ffz+RnkefegvF9lz2TpxnpH4Ty/I7GKyO9SWD+b66LWL6dHIvlA3uddZ5t3FECwRtj9RwXtsTAhLirYYy1LrHuuYdCtJFCNle1ieFn9+1wC0kj31LrTrrZu/4QJ9khdnJzF/v1AL9E/M+qJoo2CC/ScS8pOdGA6spYQ74O8zgqleK5Wb4Ivrjb8wENdGMqrUZLWhnLtn0cDWFaaO+8NgUPzO9kBmJOwn7+0u4rsuxY8dYu3YtAwMDfj0MBlxuMBgUQmAFDov9/f2RPq/RaDA9Pc13v/td/vZv/5YLFy7wcz/3czz55JM8+eSTHDx4kGKxs47XdV0+8YlP8MorrzA6OsqBAwd46qmn2tQwwNe//nXOnDnDmTNnOHz4MB//+Mc5fPhwrrxvp6x4wEzbRFpKyZ07d5icnGRkZISdO3d2xdW/9Qd/gFur4ZDeXvTveoxNW3Sa3mJGr8u1HET16eimHKa0eTaR7lrqwNeB7cCoVoD2A5bGh+G4LbbcvcrI7G3sMAZgAAwhcAob3JJJaVwEvpPN7topKtTBCj1SQwD2462qXqlJ7+jBhUtUWjWssGIoNKolJDJjh/F1M3eo1hc69UqnKg3Z1V82fOUeVtMLKqdBhzr1qk4dCHDuuRRvB5ZpDR80l/u9q5LOuKZkiJ+TxjRJwElwPrRWg09pAtRIhpwjw4RPYwJjxGpAYlkt3nzzTXbt2hVbO+l5Xhs8Pc9rg2f4aVkWQgiKxSJr1qzht37rt3jjjTf44he/yL/6V/+Kw4cP88d//Mfs3r2bNWvWtPW++uqrbNu2jbGxMQCeeeYZXnrppQjovfTSS3z4wx9GCMHBgweZnJzk+vXrXLx4MTPv2ykrHjCTZHZ2lhMnTlAul6lUKoyOjmZn0mTu1i3cWq27KYyExmPnJM91JgcWtzuI6dxyBC7Qrd5lFQncAL4GfDKtINGTdqvFphs3WTNzD0d4UQtK/Z69vaVyC8nW2mUGm7PYgVXYDk4OeJZLy7HalH2SrK5PsmbhHrb0ohF1oD0XmdSKJVBsNlk7PYGjOq7pgJnSC5Qna5RnGlitKFi3P5N8lYL1jr1v1LEa0i+MPn+5nKJXzKSKqgJ6rDj+RdUvx9SeVEkz+BJ/qilhmvWYaVkmnYye6+93eOihIk888YTRmSe0KENPf9XqTLJCp6am6OvrY/v27Wzfvp1f/MVfjOkdHx9n06ZN7ePR0VEOHz6cmWZ8fDxX3rdT7gOmJq7rcu7cOe7evcuuXbsYHBzkO9/5zqJ0lfr7284ZSVMTqNdSWmieaD/6fULmyyI/aIY69D0p5SJ0pMlSJs9TdXv4y0z+C/BUegaBxKm32HjpBoOzc1hSdh5WCE4WProHYKlGDEpyGwHobc4xNn8ZR3ptKzUEOQRYnh8cPklC3ZtmrtHTqPvHCtCJUGdGC+6bnaE/dNYRhr+MF9F7Zx6n1ow+Qx1wwfgwnOse1oyk7Up8legcZhI3n9dKzEqnlS90VA2l01byDgNNwdY7VmU0jWKJhqMkfccSM2uaj4KNNbJkhbYt2LKlh09/+gAf+tCe3CxZCKCWspZctUIXFhb43d/9XUqlUpIKvyQGBk8vQ1KaPHnfTlnxgBk+fCklt27d4uzZs4yOjnLw4MElv5iCYTLcVOclxLf4Cg+CImSwbomS16JTQTIU/bjb4Ou6TvV8t0tL0o6l+kXid9DfwKdl/348owCQHqXJGsNnp+mZb/jWWwiOIZCEf4n9gRmJbc9lbOYyPfUA6ALwFQoIq0s4kp5pf22G4fm7WJ5npkJTrMuweBvu3PGddUx5IdVqlp7HqvFZrBDwTFN0SYWXEvuGh7UgOybbEXxa9kflVJkHONsn4iZpko2mAmBcYcaoQQXLLJPVBJCmtInWZjxDsQjve1+RX//1LWzZMsD09DR9fX0REOxGwnznzp3jox/9KL/wC7/AJz/5ydQ8o6OjXLlypX189epVNmzYkCtNo9HIzPt2yooHTID5+XlOnDhBoVDgiSeeMI6YFrM7eamvr21hgnmNcuQeCecF+aL9mGkm/77d7GWZlCbLIEnLqzdlJdpf7jy5KS/wvT//EJ8ufF/0kqi5DJydo/faAnZoeakWZfjnkAKWyTI8f5f1s3ewwodmokAjeuNvQEiPDTO3fM9WMINURusdnJyhOjvve6dGjSBflEnpyLMM6vnguTl/7WTS70irDC6U3vIQDSW9bl2aZDmNh4QpQ5OYQTF6HE3TeRjx+qlZm2lWov6pUzymghqBNKpYCBgaEnzyk2v4p/90P81mnampKa5evcrs7CyWZbWXigwMDNDT05Orf5NS8id/8id89rOf5Qtf+AIHDhzIzHPgwAHOnDnDhQsX2LhxI1/5ylf4oz/6o0iap556iueff55nnnmGw4cPMzAwwMjICGvXrs3M+3bKigfMa9euce7cOXbu3Nlej6SLZVl4ntd1+CenUkGkBC6I1fsU5FqMp6yaNsMQyaVH0h0tm6Y/j540tipXhjo+aE4APwdiStJzvknf9QZWI7D4bDqWZfip/nUppWad0YkbFMJwiqqnVB6gCaRcW2Dd1B0stePsUsfw9QnsupdMoab0j1bDo3KjDi3ZeZ7qvQW+dWoAcgnYp0DUiVZw05KSxQKkCcBNeg3Rh3RwTBqIqQCoD9zSQNJPr8ag1UckhpslnTOBaSxd9IJtC3btkvy7f7eZf/gPHwCgp6dIX19f2xej1WoxNTXF9PQ0169fp1arUS6X2wDa398fm+ecn5/nX/yLf8HMzAz/9b/+VwYHBxN+VFQcx+H555/nAx/4AK7r8uyzz/Lwww/zwgsvAPDcc89x6NAhXn75ZbZt20alUuHFF19MzfvjkhUPmGvWrGHt2rWpFEW4FrNbwCwEgAnxRpbEvEhza+yaktVVhExjGuDkAePlWovZLRYl6ZyS0HBhrUzoe13gFbC+Cz2bgSHpW53BJtNtoHSC7wV862+RXkkjd2/7c4amDlvk0ys8j3X37lCqNaN5k0BCAapQKlM1KtMLvrOObiGaJrW1h1e816I42US0tDRhJUqrjw2wbuHnDQBfXgNuEPMAj+hNKU9uyRgIhOI3s3jCuDer0NqriLZXpbBJTAjgR/uJ3jyaYVk205ZUq/DBD9b57d/eyfBwckB0x3EYGhpiaGgoKJ+kVqsxOTnJ7du3OXv2LFJKzp49y+3bt9m6dSu//du/zbPPPsvHP/7xrindQ4cOcejQoci55557rv1dCMHnP//53Hl/XLLiAbNUKmXuRhICZtbkti6FSsVfPqCcyw1YWsJCzg48bHv6Pbt90THGJ5ClxqVVATwtXd5rVz14awF6GrCuBsMNWCdhuKj8ZonvoXkV39qs0tkvs4gPkOGn+qBym7a+9M7OsfbuPexW0PupVG8SUBmkVG8wfG8C0ZJxgAxBN5UykPTdmcWpGTxjw+9pYWulpHy1gV3TrEu9DElSA/sikWcmF0DMkOs5diV5gFUbXMjYxYQRiEGSYgaEwBkb70plbtTUqLJN1zjAGsLrCSEZHm7x679e57nndncNaEIIyuUy5XKZkZER/zaeR6FQ4K//+q/54he/SKFQ4M/+7M+4fv06Tz/9NI8//nhX93g3yIoHzMWEx8sj0vM4/qd/itfyN1tKaiuJJ7SLRWHWkapPkW5etKd9V9tpHks1S7qhdpPyq3qmJcy6MLUA5xvgTIO4Dhv64dBeLaOH7xQUzq2FyyLSzINYAQxdrusxeuUGxYVmNLa3+pcvTjsbr93CabSilqGuL0VES7L6muaso+c1lSW4Zt/zKF9sdOYfk0A76f7H8CMKqWl0Wtdw38TjxBspnzmfTfQ1C+2aMH5PvznEdieJ3Eef+8RMr5JwbAJOLW2hAPv2TfO5z0keeWQso9z5ZWFhgf/4H/8jrVaL119/nYGBAW7evMnhw4ep1WrZCt6FsuIBM48sBjCFZTF54QJuo9F+yPoAUf0uZawfVpR1v8VXeL9QZVZfrQ9ak7C7G+/WpH4Buqt4af2KBbgSGtKfssQDIaBgQX0SJuZhle6VmTlyyRa9Ox26PkV1YsHf3VK3LFVgzpDK9AJ99+Y71qUeUUeQ8vD8hKsvzeDUXP+l6kAH0dGKAReKl1qIuvTpbJV+Dcujb/ysygIwiZ9XrSymNZhpmLRYSjZJT/vTRMOab5wMmtHlJamDWJ2/zTMw0y3OFBq7t9fln/yTcf7tv+1ncHARHmoJcvz4cT72sY/x0Y9+lF/+5V9uW6zr1q3jqaeeysj97pX7gJlDFgOY4AdfV71kdTGBkomWFfiAmdeyM+FBnhedR3cewDS1c113nj0x8wzAwy4t9CcJ10m6EhoenLoJB82+XOabph0nSGmmwdpLk9gNjUJVadicQQ+Grk5SqLX832Gat0x6kaF1uODSe20Bmkrl0QE35eGLusS54WGFAKeXI8vlegrEDdCxpv4XUGqSHAVwOeYxdXDMkTgr2Ho0ck9ch5rWi5wPdynxFUpTA08DxKTGE6QXFoxunOdf/8vb/PzPr122tYlSSv7gD/6AL3zhC/ze7/0e+/fvXxa97xZZ8YCZl5J1cwfc7khB2YU8CUhUkXpCVZdQ0mSIPkCFxVl0pjbbLfAm6VquSD/622vfL+ikXr8MD2+Bvh/R2j+rJRk8N4Uz3+oUKC/IaVKerFOdrCGa0gx0OXT13GhQmGnFnXVCSzXjwdu3JIVb0rcIY9YZ2WB0An/0opczbRscVRbb72eBbaTsQmtm6VanmiYPVZv5M7Osy6TRYoDITlHy5P7bPP9pyfaHhrPulltmZ2f5Z//sn2FZFt/+9reNWxaudFnxu5XkkcVamMVqtb2dUHxuI4GhSUBUO4xpmiF6hJ5Q0rb4ystIeixthKWWLS9gZlnnWetC55tw7IrhQp6bJNy0/RylpPfSAr03av6cnbqTR0s5zql/4Oosznyrs6uHqi+HHtGQlK/XsUI6Vf1rkSs0XfG456fzlL+sMoQPpE6HjtXFtC2Y+vk2iNTulcyAmCdEF7M7iUrdplbmJJBUOwgBlXKTj/zjE/y7/+UcpeIEk5OT7ZB1S5Fjx47xoQ99iJ/8yZ/ky1/+8n2wTJAVb2HmEcdxmJ+f7zpfIdg7Lql/NlmCUk8UlqGLjsXULhe7HERvx4v1bu22PEaK2nCcFd/W9eDsOOx5EPryTvGkUWTKtcKtFv2na1g1jf5UQ+ulUbHKpHVxokn1Vs2nQk3WJWQ+NGfapedmsBQkj3WoH0+CNUHUOlXTZlmoV4G7xH6zewtiO22b9KcdJ6VPy2eYv5XGUac6qNVB0nTOsM4ysdBh8ALDC0ijYrRrwoYtI7P89ifv8jPv38z8/DxTU1Ncu3aNU6dOIYRor6HsJhCB53n8/u//Pi+++CJf+tKX2Lt3b2aelSwrHjDzVCrbthdnYQaxZEPJQ9UkpXFEp7mpc3d5JLTo0vKYaAmpuwAAIABJREFU2qvJhb4bKjUJ9EI9eX9DojWeQ4cEpmbh3GV4JO9cZg4Rs5K+o3WcGQ0soQOWeVuXJ+m9VMOZ0xx1VMehHA++eqSBWNDKo/blGTqsW2DNEn3xaqXL4qOuYLSUmifBmya3l3BuScOrtIqhbSIdX6URjxmbTN2qc5zRnUkkwgyUHYXx52U4LhYk/2D7Df7vX3PYNOJTsL29vfT29rJx40agE4hgamqqHYigUqlEAhHo68hnZmb41V/9VXp6evj2t79NtZq8bvO++LLiARNI3eILFk/JloI95NQ2YApqjvIZgqaInMwffD3puBuLLnF/WoK51JRCJDDKMX3LAbxhH541EHAlvHUGdu2CUqWLG+sFaB9Lym+2KNzw4hHuVQvT1LoMD8iZcqmM16Jh5HQAzpx79HAmXZ8aDvOrerIiF7lg/RDzIl5Vn0nCa9cwL8DvhnpYTtGtS6KfJtGBM/16/FpqAVQFpg7A8NwHq01+5b1X+Y1fXJsaOMUUiGBhYYGpqSlu3rzJmTNnkFJy/PhxFhYWGB0d5dOf/jSf+tSn+MhHPvJjDWj+TpL7gJlDFj2HqW00nTRnYmwzWgNylOCraRamriv8W8rmz6ruvHryUKnd6tCv5TF6wrS1Ohw9Co+/V52DzJHZUCDnLXDOembHGoLPck6dLUn5XBN7TilMEiWbIoUrHtasVNyFtfxZOq7jB0bPQoMk9vEo/pISwwuRWf5yP4b5TLNzjhp4IOp7YOJ6pZJHvx4B5zxIrYoE25JsWzvNZ//JNO97dH3OjEoJhKBSqVCpVNqBCFzXxXVdvvCFL/D8889TKpX46le/yvj4OE8//fSPNeTcO0XuA2YOWTRgGiL9qGICyiRDt5t1mKZRcJ69LPOMnLuxVJOsaC+jPN1Y0Xn36PQknD8Lm7fB2q05MiQV4ho4R/DjpOogGQKTvvA2RewJSfl8s6NPp2KtHHrqksJF6VuooXRDx3rAzeA3dbPnZ6i7BczQebGq6jlonge7Gx59MZIBulK7ZgI5Y572tXy8b2xes90ItGP1Bhrt1FP0+ODoNf6vn+9heHVnI+alyuzsLC+88P+z9+bxUdXX///z3pnJZJJMEgIkZCFACJDIKvvmUinuioKySaEggiKiglYslZ/aqlhx+4qfWlq32qqttkJLEUVqSIIKRgGFsBpDFkICZF9nuff3x+Te3JnMmkxAcV48hsnc5f1+3ztz7+ue8z7ndV4hOjqa/Px8TCYTxcXFfPHFF9TW1gatnwsZIcKk61yyhshIVXzdkydGC1W8wM1KvUBbTUUv8GTFdsTCdG0rUEvV3YN1R1yy3hDIMVmtcOALmJwEBndpJt58vwAVIO4BlPgvrftV+dv1ivL0hQDYZIyHbIiNOLsNtFahHwSmOwG6KhzWpSeXrrcT1QjCIfzXM3XljhbgOI5jcDl+uQVsRaBTKpT5+sKCRaZe2vH8YOiODF3nMN1bpq6dtnmKhLZ3b5am7Li+e5paWDX2JHdOiUffEbUSD9i7dy/Lly9n5cqVzJs3T3XBpqamkpqaGrR+LnSE0kr8QKeECzSajp7csG7hEomgCBd43cdN+8rfgZT38kbqHSW6jlqGvo7V33aUtmrPwnd5HejoDLAHqMRBEBYc6RcWHK5MZVkAbl7xLISdkNvSR1zTSPxJSbGD/kBr33bap4L4Q4In8B3F6grtST+BZ7IONP/STxe0xzZc99csc89TrqIEbaTo7HJVtm/bzh2JOluuLgPy8vCkF2WGR1fxj5vPsPyqXkEjS0mS2LhxIytXruTtt9/mF7/4RafmK4uLi/nZz35GZmYmgwcP5sUXXwSgsrKSqVOnMmDAAKZOnUpVVZXb/bdt28agQYNIT09n3bp1HR7H+UKIMP1AR39gkk6H5MZydfXKqJ+93Fj0nbmR4F+UrKdiz9p7niB33LWrhT9t+DL4/GnHdXtJgqJvoLrIjx0VVAK7gFIc83TNmlcLDuIMlHBsYNgPQhPt8zeVd39OZDEINbTlWVpaX0oeqC/CtAMVrft0FKfx+LDgTe7R6b0j8HRN+GzTHau2wdP1qSVRd206a9E64PN5QYYIncTMXsV8OBfG9A9eKHd1dTULFiwgPz+frKwsMjMzO92mXq/n2Wef5dChQ3zxxRe8/PLL5Ofns27dOqZMmcKxY8eYMmWKWzK02+3cfffdfPjhh+Tn5/POO++Qn5/f6TGdS4QIk44ToidIkkRBQQHF5eWIBkcsvTurzfWzhJc5TAEl5icQIyZgV6qvtoOWhykETrzu2g/EwlQgWeHoFmgo99CoFmXA/4BTtFmRinXZQhtpBoqTIJa17mvDWejAH6KjdbtiN6SrFU7w1U4lUETgPywFZ2hLJ3GDulyHW7YdvD0ABvKFBkqaTmle3ucjHdt4+1twetB0tkgFdXrFbck+GQRZppeunt8k7GP1kDpsLY0d8mS5w1dffcW1117LjBkz+OMf/4jJ5G8UmnckJiYycuRIAMxmM5mZmZSWlrJ582YWLFgAwIIFC9i0aVO7fffs2UN6ejppaWmEhYUxe/ZsNm/eHJRxnSuE5jCDjKqqKg4dOkRCQgJDRoygUK/3yyvlejEqmqjYAdFBMK7buWtDaxFqr9POzj0q6Igr1c29IuBC1O7u5+q0n+BmpZf2ZKClHr57HzIWQ5i7IEQbDpm3g7RZj8p8pVJDUwnw6UBxT/FrHHOhykFoX34KtdMAgtad6s6t6audAtpyPzuCehyk77p/62d7Zev4/AkmCnQM/hClm21kNxt4thzbN+SuOol2O8/rUH+ABkFmtOEMz4+wkh7Xl+rqaioqKtQ6lNHR0WoOZUREhN8P9ZIk8corr/D+++/z97//nUGDBvm1X0dQWFjI3r17GTduHOXl5Wo0bmJiIhUVFe22Ly0tpXfv3urnlJQUdu/e3WXj6wqECBP/LExBEJAkyWOdOavVypEjR2hubmb48OFERkZSeuaMWkAaPLt5XNeprNeMenMuaAGr5LytN7huE4y0En/a8XhMLhD9cO26tusOHbEwFbRUQuEr0PduCFPiHiQcVuUxHK5GRWxcS5TaPEvl6w3kS/kOR11OT0TnL2HuxxGd6o50lXa0cD1RLTiO0Yb/pO9q0X2Lw+L2oKIkSy67+Du1EAzydLONO6vS3fyjK6m2n7v0/lDo0inIgvpgEiXYmWss4anxsYQbHRJ02jqUdrud2tpaampqOH78OI2NjYSHhxMbG6uKEOj17W/dVVVVLFu2jKSkJLKysggP7yIBZRwRtzNmzOCFF14g2iV9zhPcBVb+2PI/Q4TpJ5TAn7Aw50dlWZYpKyvj+++/p1+/fk4/esFoRGhNNvZkKTn9LTtuMBYr6O0giI6YoXqgohlapMCj/pX+OpP3GKhl6M/8Y2fnAtR2OuJG1MBeCyfXQ/x1EJGGgyzrlcZpT5IKURppI5lAxmADFOvSHbn5SyhVONzEVs0yZT9/K6SU4SDMjt6zqnE81HmArAQg+UIn5+c9tulSxqwtUNVzh47frmc/r/trVyHZtvWSsr2sdO7wBveRGngytoIb+yd4JAudTke3bt3o1q2bo11Zprm5mZqamnZW6IEDB8jIyKChoYH777+fX//618ycObNLichqtTJjxgxuu+02pk+fDjjKfpWVlZGYmEhZWRnx8e1F4VNSUigubhN2LikpISkpqcvG2RUIEaafcEeYjY2N5OfnEx4eztixYzEYDMiyjN1uR5IkwlrTStCkrXh6OpVxKNI0WaDF5nDB6kQQdZBrg3yr48vqKD/4Y2G6I3VXgg/UUvXUZkctXnft+NO/t+WyFRo2AxFgigehOw5CNNDmctW1fg7zc+DuOpZxuHhraS9G7k0dyB1O4LAutbqxSnu+SnAp2x/HfWURf1EN1NBe2b/178bD0HwCwmXn5UGBH65Xp+WC92vHrWWIq0XqvgPZ23atDYcJMpObT/FiskBaXGBCBIIgYDKZMJlM9Orl2FexQjdt2sSGDRs4fvw4F198McePH+fTTz9lwoQJQZu31EKWZW6//XYyMzNZuXKluvzGG2/kzTffZPXq1bz55ptMmzat3b5jxozh2LFjfP/99yQnJ/Puu+/y9ttvB32MXYkQYeKfW0Bb4kuSJL7//nsqKirIyMigW7duTkQJIIoihogI1SXr6f6peF+VYEudDDp72z1apxdoNIRjszUjupCuJ7i6e8E5F97d/u4k+9wRZ2dcoNr2AhFScGelBtKOa3ue1tntIFe3BtFE4lDrCcdBksq9x0D7k+tPB+AgykO0RaRqXbHKPKI/pncjjkCdFjQTuTgbTr6eJBpxCKV3ptDFER/7y46HESGQp7xAA346tK+roo92fhLN3503fUUgWrKxuLaI3wzo6daV2hHodDokSWLv3r2MHz+enJwcysvL+fzzz9m8eTMpKSkMHDgwKH1psWvXLt566y2GDh3KiBEjAHjyySdZvXo1M2fO5NVXXyU1NZX33nsPgJMnT7J48WK2bt2KXq9nw4YNXHXVVdjtdhYtWvSjUxcKEaafUCxMJainV69ejBs3ThU9sNvtyLKMIAgqASuE6c1yUyouaafEFC+g3mRCd8kl1MsyZGUhW61+k6Xr352VolMQrOAhf26inty5Tu34OY6ALHPlKUbJYwy4ATew4pjv04qba61Lf8kSHGkgZ3CeA9WSpj/tnGgdiwH/TqLrNjIOC9NbwJCE7zSkrnDF+ljW/uv0zryuuZrK3+6fmdq+CB2Q3tjEE41WLk/vFVQ36eeff87KlStZu3Yt06dPRxAE+vTpQ58+fZg9e3bQ+nHF5MmTPYq87Nixo92ypKQktm7dqn6+9tprufbaa7tsfF2NEGH6CUEQ+O677wAYMWIEERERyLKMJElIkoQgCO0Cggyt0niuLlkZx724CYexoRClOvVkMGBMTqbplltovuEGEj/+mPKdO9V2A7l3K9t2JuhH219HvZGu8Ec03R8IrRaWJ8vZ03yxX/10liS1KMURkaotzOwqq+fvBPVXOH48CrQn09UocneSbTgCj+x0vIJIPg7C1dF2nlz6stYE2Kbg4d3f/fxZLzg/yLW9nDuV2+2oJc62d+f1ILT+M8kCY8uq+W1YAom9uvt5IL5ht9v5f//v//Hhhx/ywQcfkJaW1uk2Fy1axJYtW4iPj+fAgQMAzJo1iyNHjgCOfM7Y2Fj27dvXbt++fftiNpvR6XTo9Xry8typglw4CBEm3l2ySlDPyZMn6dWrl5r8q3W/aq1KLUS9Hp1mzlMxXKw47lWuwZd6UcQQGUnYlVdy+oYbSLv0UuLj4/nq88+9atI6jdflXft3R75s1z4DmQv1hmARZkeDh9qdH29WZGeJswH4pvXdldgUi9Bf4irE4drVEq/rPKi3tgQc847VBH5cSj8SjmNxox2rRVUWiFaQRTfftee4Gud3X2Px9wfgYw7TU6fe93Eu56X8i7HIzDnZwJIeaV4rjASKM2fOsHTpUgYNGsSOHTswGv0t8Oodv/zlL1m+fDnz589Xl/39739X/161ahUxMTEe9//000/p0SN4mrc/ZIQI0wsaGhrIz88nIiKCfv36qfMPClmKoujTzaI3mRwWJg6SbMZhVeo0Lz1gMBrR9+sH8+YhTJnC6MxMDK2iB3qNa7ej925Jr0cUBbDZHXI33rb1sFxxHfu7r+t4XedU/YG7+VhXBMvq7TIcxOFGVeTjXF/+BvtIOAJ1lKoi7oJ9/CHe73BYqB2931qAo/ic/9Qm7Hv8jvxwofoF13OhfXls17/qJLJmW2+MrpOhX1ULd5XrGJ/YJ6hkuWvXLlatWsXjjz/OtGnTgurevfTSSyksLHS7TpZl/vGPf/C///0vaP39mBEiTNpbmO6CekpLS2lublaVOPwhS3AIsMuCgFUQsMmyak0aaLMqTbGxxN54I7rrr2fQ+PFqOLkCfXi4kyatv3EaMiCLIkRHo7/hBoT9++HgQY/bat9d/1YQiGKQa1vaPgIJp/BGdmIn7hudIlFfJ0pBGQ6SUwTbXcXaBTyTnGu7p1vbc7UutSfTF2HW4VWZxy+U4Ryd64n0tDmYnlzG5xKCV/Z0cct6+ru9S1dAwGQXGVcqscCagGxr5sCBA1itVqKiooiJiSE2NpbIyEiPedyeYLfbee655/jkk0/4z3/+Q58+fQLav7PIyckhISGBAQMGuF0vCAJXXnklgiCwdOlSlixZck7Hd64RIkwXVFZWcvjw4XZBPVFRURQVFVFeXk5MTAzdunUjNjbWp1tk9IoVFGzbxqkvv6SxvBxbfT2SxYJFljEYjfQYPJi4hQtJnDCBtAED3F5QroTpC4rrl7AwwgYNovvvfofp0ksxtQYHePM8up/faYt98RVtC56JUgt/nr399ZAGcgsKRvyOx4a17+Agla90UCvjlMGvfRnwzyq04ZgD1QoVuBKvL6ECcAQL1btZFwiJncSrWAFAU6kjQrZD7QcKX3OfTjypFR7wZd56Du5R1ouIdGsWuP5UFDN6DnG6fmVZpr6+nurqak6cOEF9fT0Gg0FV8ImJiWmX161FRUUFS5YsYejQoezYscPrtl2Fd955hzlz5nhcv2vXLpKSkqioqGDq1KlkZGRw6aWXnsMRnluECLMVVquVw4cPY7FY3Ab1REZGMnbsWOx2OzU1NVRVVVFSUoLFYiE6OprY2FhiY2PbyVgNuP56Blx/PQA1RUVUfPMNpZ99Runnn9Nt3DjirrySIWPHEhUV5XFs2vQUBa4eOaflooihZ0+633orSatWoW9NIlbcw+7gyWDqDDl5a78DanIe3bPnTBA5kLBduw75UCxCRS3Yrc7rtE8d/s5d1uOwVBXrUnHBKu2KeCYw7Vf+PT7JzitqcQgm+HBz1B0BW4Pz4Tn98jwZe50lVg/7Oz/PtPffal2zzr+xNhbWLhMAvSySVKljoWUQgxLaJ+ALgoDZbMZsNquScBaLherqapVEbTYbZrOZmJgYIiMjiY6ORqfTkZ2dza9+9St+97vfccMNN5wXRRybzca//vUvvvrqK4/bKMID8fHx3HzzzezZsydEmBc6ZFnm22+/JTEx0Skx2F1Qj06nIy4ujrg4R1UBSZKoq6ujurqaY8eO0dTUREREhGqBms1mdd+Y1FRiUlPpNn48xmPH6N27N8nJyb7nQcPD1TlMCYex0UjbHKjq5RMERKORmDFjGLBmDTGTJzu1bYiI8H0ufKwTdDrQichWG55LUfhu3x9L1df42lxige3XkfX+Q0DWRyHVXox46FtosDpbgCJtqRjeame64lscX7qyr6s15Q/xluNwp2oZIVCysuBs5XqC3Y+2vLln/eUHf6xKH41786y0/0ocgw636RlRamZuzESiY31fVwrCwsKIj49XlXAkSVKt0C1btvDMM89gMpmoq6vjiSee4PLLLz9v8nGffPIJGRkZpKSkuF3f0NCAJEmYzWYaGhr4+OOPWbt27Tke5blFiDBxEM2oUaOQZdljTqUniKKoulf69OmDLMs0NDRQXV1NUVERdXV1GI1GdQ7j1KlTCILAyJEj/Y5y05tMoNMhCQLNsoyV9nmbelEkKiWFtHnzGHDvvejdWKz6TmhLyoKAEBtL3c9+hvXzz6G8PGDC1G4dzFtAR4Tcva3v+ED0SOY+2HouwvCPvyHU1jo/IUAbcQbiXTsLlNAmg+duis2fwSuu1M7MI37VOg7lzuHBHSoHKogQrB+El3Zkj5VK2nZ0P53QFvAjIBDbEMZlZwZwRc+RnSYzURSJjo4mOjqaqVOn8t5775GZmcmkSZP48ssv+cMf/sCAAQN4/fXXO9WPN8yZM4esrCzOnDlDSkoKjz32GLfffjvvvvtuO3esVoigvLycm2++GXBYo3PnzuXqq6/usnH+EBAiTA38SRXxBUEQiIqKIioqSn0ya2pq4vvvv6eoqAi9Xo/RaKSoqEh14yrRsJ4Q3bs3aVdfTVleHs2nT2NtaECyWBAlCUGWCTeZSLjiCi5+8EF6jBnjsR1DZKRHl6w7qDcMoxExI4OK6dPpMWsWkTNm0FJR4fMe7a6+poJA0krc9aOOTe5c4I/HPgJxvwpAWBT2tOuw9bsDwwurEQqOgmx3zrXUWpr+umIFHDmPdThbl9q+/XlikHAE+1gJXJBYQTNtOVFedBqt9VBX4Hm9T/jzfbojfXef27XljTS9D0gv6+h+Ooab5J+RGh9cDdSsrCxWr17NunXruOaaaxAEQRUg8CQUECy88847bpe/8cYb7ZZphQjS0tLYv39/Vw7tB4cQYeKYV1iwYAGjR49m0qRJDB48OOBoNk9oaGjg8OHDREZGMnnyZPR6PVarVZ3HKCwsRJIkoqOjVTeua5UBc3IyV7/yCrIsU11QQMX+/RTn5lK2Zw9SUxNDFyzg4uXL281zusIQGel1vas8HqKILjoabrqJmltvJWPcOEwmE3ovlrE/aSDQei/zwzLypy1f35QnwnW7rT9EqVkniyJSTD9sl61GSppC2NN3Ix79Fqw2ZzLTlgYLZP7wNMhlIkKL5BxerHXx+qvsU0nnrvjTONJjXNtwcevaW6DpFBi8WZnBdDF4Ik8P7mbnhzF3gT1tOyv/h1vD6VOaxjVxVxJhCJ5Gq81m4+mnn+azzz5j69atbt2fgTy4uxMhePTRR/nTn/5Ez549AYeUnTu1nW3btnHvvfdit9tZvHgxq1ev7uBRXbgIESYO2bvVq1eTnZ3Nc889x6FDh+jduzcTJ05k4sSJjBw5MuAINUmSKCws5PTp02RkZDgl/hoMBnr27Kn+gJVAourqak6ePElLSwtms5nY2Fi6deumBhIJgkC3/v3p1r8/g1qrBDRVVmKK869Kuy/ChDbSFMPDMWVmYp07l+Rp00hKSlIvXDEszGfwkOucULtt9DpEQXAIuErtWckTUQYr6Md13ipgCCAbIqhPvYzjgxZRWxHO4P+7g/Bvc0CytCc2ZaCBkKXOgPU7M7raOgS7pParvivzoP7mXlrxHG3lzz25FM8nS0NQspsvSWj3R4B9dwZu2ndHmu3XCwiIRNWaGVV1GRfHjwrqfOKpU6dYvHgxEyZMYPv27UHRmXUnQgBw//3388ADD3jcz263c/fdd7N9+3ZSUlIYM2YMN954IxdddFGnx3QhIUSYOOYRhg8fzvDhw7nnnnuQJImCggKys7N56623WLlyJbGxsUyYMIFJkyYxduxYIiMjPV481dXVHDlyhPj4eMaMGePTWnUXSKQEAij18CIiIlQXrtlsVtv0lyyhNXhIEBxk58HNI+p0hMXFETltGqZbbuGisWPbzbV6szDdwaknQYDISJomTMBy5AhySYnrFp739bBe8XR2ZG7S7TpfO4g6pG4p2Kbeh37SEjLOlGN44j70eblgtThbfwIaKSc/2gccgUNmKupG070oH7HF5i6w0wFPV7B2+zocka2+omN9cUEJjogzXwStqZju5EEOtlXp7d3bPl5WaiNhdZKeuFO9uUI/kx7xCR0bpxvIssynn37Kr3/9a5555hk1jzEY8CZC4A179uwhPT1dldqbPXs2mzdvDhGmC0KE6QaiKJKenk56ejqLFi1ClmVOnTpFdnY227Zt4/HHH0cQBMaPH69aoXFxcVRVVbF9+3bS09MZOnQoEX5EpXrqXwkESE1NRZZlGhsbqa6upqSkhLq6OgwGg2qBxsTE+KUqEt27N9F9+tB09qxjHtRmQ5Ykh/KPIKALDydm6FBif/lLBl55Jb1aa3u6Qm80+hVn0i6AQqdDN3Ag0StXEjljBpFTptBYWuqXhefNNXvOYggFkMNMSEOuwHrLo8iJFyEc2EfY4w8g5n8FNouz1qHWwjTi+2oTAFFPS0RvDsffyaCvv0FfnQtW2bkt5W9/c3NO4EhLkXFUYekICnDI4WnH6gGlOQ63rBOv+hMNG+gXGcD2nmphulqaQut6fYuJbkcvJvZMOkVhpdTE1KsFnDtjCdpsNp544gny8vLYtm3bOasHuWHDBv7yl78wevRonn322XbiKKWlpWrqCzhqV+7evfucjO3HhBBh+gFBEEhMTGTWrFnMmjULWZapqalh165dZGdns2HDBkpLS7FarUybNo2JEycGtRadIAhERkYSGRlJcnIyAC0tLVRXV1NRUcGxY8cQBEG1QGNjY926kDNmzGDgTTdRefQoFd98Q3FuLqe+/JL68nL0BgNJ06bRe/p0Bo8e7TUQSWc0+gweauc2jY4m+qqrSHzsMQytaiU6H8FO/sDfnE5/3a4e4ytEETmmJ9ZZq7FfOg9Jb0T44wYMf34JTpchS3YE18Aexar0x5svgGwwU959ItUXP8jA5maMe56DZovTNuq9XiFmX2jGUVJMqWxi87KtJ8g4yFIbHesF1kZHvJMKX9afayBTR+GpHy+BP9rPDrrUE1bTi6G1vyA9fRikoxZvPnPmDN99951avFkhUJPJ5JeFqESYXnrppXz00UdBK/XlC3fddRePPPIIgiDwyCOPsGrVKl577TWnbdwFFp2vdJYfMkKE2QEo5HTdddepRVtTUlK49dZbOXDgAPfccw+nTp1i8ODBTJw4kUmTJjFw4MCgBRIBGI1GEhISSEhwuIqsVqs6D3rixAnsdrtTIJFC4KJOR4/MTHpkZnJRK/kf/+orio4fZ/jPf+6XiLIugPQUwWAgcuBAUu+5h/h585wuQp2XuVAF3uYaZQCdiKgTka12t2znLr/O3XqAEjuUNcEAoLeJthJkYeHYh4zHetd6bDHJWDZvwfbKH9B9sxeL3YpOBJ0O9CIIrX8LAgh+6gjKoo6myGQO976F2j5XE28zIr/3AkLVWWf9WQicWEpwWJdKO9U4TL9AnueswNd4FitwHY8cwBC74p7sJdin7eXKriKCZMR4cjijTEuJ7tE21REeHk54eLh6rSnFm2tqajh69Kiae61I4CnVO9R+ZZmHMt5FAAAgAElEQVTt27ezdu1annvuOX7+8593wUF7hjJugDvuuIPrW4VUtEhJSaG4uFj9XFJScs6s3x8TQoTZSRw7dowlS5Zw1VVXATC9NRjHZrOxd+9esrOz+e1vf8uxY8fo378/EyZMYPLkyQwbNiyoT5gGg4EePXqohCdJkkqghw8fprm5maioKNWNGxkZSXNzM4cOHcIUGcllt9zi93gMPqxnGUAQ0EdFkTxjBukPPkhE377tthM7IPXl5EILC6MxNZVaUzgcOgw2/8wnT6RZJcMeC3xmAWocF0ekTqDfgET6VCYjL7gb4fhxdNXV6O12VThfDxgE0Ak4yFMEUzgYfD0fCSDrTZxNnkD5+HsYOGoKdrsd23t/IuyrHFDmLtvf2/2zLq04AnUUsXZwkF6Tm5PgDadxEK4f+1ibQLI6LxNcP/iaZ/SHRH1t49ezqWJZiggtMcSWzWBYz5l+xRx069ZNdWsqUyY1NTWcPHmS2tpaZFnmr3/9K2PGjOHgwYMcPXqUjz/+WBVGOZcoKysjsXV65YMPPmDIkCHtthkzZgzHjh3j+++/Jzk5mXfffZe33377XA/1B48QYXYSl112mdvler2eMWPGMGbMGFatWoUkSRw5coSdO3fyyiuv8O233xIfH8/EiROZMGECY8aMCaobVxTFdhe1EkhUUFBAdXU1NpuNxMREEhMTA7J+w6KjCYuObpsHtTtbd6LBgLl/fy5etYp+c+d6bEdnMPg1F6qFTGsCemwsDVOnIi1eTNyf/8zZw0c6JTzgTrjGBtTYZfYd/p59h78nAugOxAFmHEZaGK2EKUOYDOESROi9uHbVuUgdNnNPCoZNJ+LG1aR1d9RM1JcVYd7xAWJtg4OktGkj2vlLf9BkghMStFgc5rKiMqSU5lLG4wsFOEjWD8dCbQnUlYLR1crswvlJj9uKLusFZzECAEEOw17Znz7NK0lKaE8kfnWvmTJRrLKmpiYOHTrE3/72N8rLy4mKiuLBBx9k4sSJzJ8/n0g/ItY7AnciBFlZWezbtw9BEOjbty9//OMfAWcRAr1ez4YNG7jqqquw2+0sWrSIwYMHd8kYf8wQfCTFdm3G7E8YsixTXFxMdnY2OTk55OXlYTKZ1ECi8ePHExMTE/R5hIaGBg4dOoTZbCY5OZna2lqqqqqoq6tDr9c7BRJ5sjjtFgtnDx+mfN8+inNyOLV3L01nzmCtr0dvMDB4xgxGP/QQZk0QgTtsmjOHgg8/RLJa260TcdyfI3EQU1Tr56iwMCL796dx8WL63XwzPRIS2HbXXeS/847bdoTW/SJaX0p7kZrPSj8n9JBlaxPUcUWYpp2o1neTph3lc6QeIk0QFt7auKn1pfwdHU512nCKpyynzyU3OM0XG9Y/jP6fr0JTQ9sBaF+61naMmg61/UQAJhE5vjfyVz0Q9x0Ea7NzWyIO1s9sPRDlwJR2tagFtgBVre0bNX1GtH6ObPt8phCObwKjRXOu9BAVAQZv+2qXK+fLmxWttBWh2U+7v/bcmMBugqYIkRaDkSbBRAsmmmw9aDw5hf7m+4kI9z/a3BdkWWbbtm089thjvPDCC1xxxRXY7XYOHDjArl27WLhwYVAfjkPoEri98YYszPMEQRBITU1l3rx5zJs3D1mWOXv2LLm5uezcuZNnnnkGm82miilMnDiRhISEDhOoJElqtRVtXmhUVJT6VGyxWKiqqlKDGwB1XqZbt25qIJEuLIz4YcOIHzaMofPnOwkqCHo96ddei+iHe1fnwyXr9LQmiuhjY5F/9jNYsoSLx49XCV3sQPCQW+EevR5kCeyeM+69zYn6zOsUBCRzHAVjb0J/8wrS+6Y7rRZ3Z6P7cDPUNbaZvK5WpTdHgACSGEZVtxHUdLuF3iUbES2WNoUgtSMc85r+oJGAik3LLumi7sboVwpIsKCdwxQcnQvosTUmQ8VShsTPCupDqcVi4dFHH+Xw4cNs375dnT/U6XRq6loIP16ECPMHAkEQ6NGjBzfddBM33XQTAHV1dXzxxRdkZ2fz6quvUlVVxfDhw9V80H79+vnlSq2rq+PQoUN0797da15oWFiYUyCRzWZTK7MUFxdjs9mcKrMo0YFaQYVAoPMjn1PGQWSmwYPh1lvpP28ePVoFH9R2fBCmr7RKWRCwR0ZQP2ok8pdfQWOjlz0C7wMAfRgNqQM4On0VfafcQLhrylFDPYbf/38IpWVg0/gzlcAhX0WmBQE5qif2y+7EOHkFPV58Et2pk2B1I3gg48jJdIWi7K91A+8CWvBbyq/iGE46sn5RUUciZP1JU3G3UjZSVzGKSOkxeiQE1+VYVFTE4sWLueaaa3j22WeDUkDanXLPgw8+yH/+8x/CwsLo378/r7/+OrGxse327du3rxqApNfrycvL6/R4fuoIEeYPGGazmalTpzJ16lTA8fT65ZdfkpOTw+rVqzlx4gQZGRlqJO5FF13kdJHa7XYKCwuprKzkoosu8lpCzB30ej3du3ene+v8miRJ1NbWqsIMzc3NREZGqpG4UVFRAT2tG8LDEfV6ZEly5IO6TA8IgkBYt26YL7uMuLvu4qKxY92mu4gGg89oWy2cejEaMQwaROTjj2MqL4e8rwNvwxtEASmmG8Xjp2BdsIpBGUPanyOrFd1LzyAc+NYx3whtN36tfqw7SToB0IdhTx2ObcbjSAMuRVdRRkT2dsSGZuf9vc2BatNOFMKsbX25M7g9pG5UFYFgcxWr8GN/7fEEAn/yOFuXS7YYKkpuIzHu1xjDzAF25BmyLPPf//6X3/3ud7z00kse4xo6AnfKPVOnTuWpp55Cr9fz0EMP8dRTT/H000+73f/TTz/1K/I9BP8QIswfEcLCwpg0aRKTJk1i9erV6rxIdnY2zz77LIcOHSIlJYVJkyYRExPDxo0b+fOf/8yoUaOCktIiiqJqXfbt21etzFJVVUVhYSH19fWEh4erLtzo6Giv/V581130HDaM4pwcKvbvp6myUg0kEgWB6EGDiJs+ndG33+71ovfl2gU37lJBQIiOxjxnDj0eeghdfDwRmzb51OP1GwKg19OUNpDjN/+CxNm3ewz0kD75COGtN7DVN7WWaVOH6MjtdEeWrZ3IpmjsV8zHeuNDEOkI8NL9bxvid8fBorEutRam1vCRcQQXNeOsTKTDER17unW534msHpYHI4gnULS2IyNS19CXE0W/ITnpOsIMwQu4aWlpYe3atRQUFLBjxw5V7jJYcKfcc+WVV6p/jx8/nvfffz+ofYbgGSHC/BFDOy+iSPodPHiQBx54gPz8fJKTk3nooYcYP348kydP9inpFyi0lVkUlZCmpiZVE/fw4cNqIJHy0gYSKfmgIxYvRrLbVUGFE9nZ1NbXM2DxYoaOH++zmkug6SmiwUB4//70eeYZzJdcgtDavqjTBedeLQhIUVGUXXY5NcseIG3ESI8PDvb9+7E/9SS2ikoEO4itaSmC4KjCIoqg07vhEL0eObEPliXPIg27AsRWFpQkDBvWOwQPtJGw7ghToo0oFZev0PbZvltEtMkIYZ6EYV2OxUY7SbwOwdeO2iAo3LxrIGGivGoSTWG/I8xg5tix4zQ1NWEymdTfpK8HO08oLCxk8eLFTJs2jRdffDGoedb+4rXXXmPWrFlu1wmCoMruLV26lCVLlpzj0V14CBHmBQS73c6SJUuYP38+H374IYIguJX0GzdunBpIFBcXF9SgB5PJhMlkUvO+lArzlZWVFBQUIMsyMTExqhtX0alVBBXscXHUpKYyOj3d76d1vxWDBAFDdDQJ06aRvnYtRhfpP0EU/XLtehM/kHU6WlKSKZ47h4S776WPRnTfFfbiYhofegi+zUe0SSpJWnEQpdCa12nSabhAAEyR2Cddg3Xpk8g9kp3aFF/9A1LFaQSrvY1H3AUN2XFUL4nGueqJCBhEWuw9sLfYMcmVPs+Hgu+/gpYGv7JP3CMY7liVTEWsUhyldb+ke9/fEKv5jciy3O7BTqfTqco9npSytPv/+9//Zt26dbz88stMnjw5wIEHB0888QR6vZ7bbrvN7fpdu3aRlJRERUUFU6dOJSMjg0svvfQcj/LCQogwLyAYDAZ27NjhpGHrS9KvoaGBkSNHqoIKKSkpQSVQ1wrzSmWWqqoqSkpKsFqtmM1moqKiOHv2LAaDgdE+pPlcIRoMPkXlBZ0Oc0YGQ1evJvGGG9xG1oqKRE8HIURGUjtuHLV33IHQpw/5+fmEh4erDwdaS8Z++jTVDz6INS8P0WJVDT+Vt1rJUtTet0UROTEV68JV2K+5DcKcg6bkinJsf38Xub5ZTbtUTotyWGrtUDuO+pipOAJ6WsUQZKORqvjhNDKJhOpXENxUknEcrMs7jmAfWW632O1n3yv8hFvr0kCNbQA1kb8lvt9V7X7PgiAQERFBRESEGiGulNyrqamhqKgIm82G2WxWCTQiIgJRFGlpaWHNmjUUFxezY8eO8zY/+Oabb7JlyxZ27Njh8XpVji0+Pp6bb76ZPXv2hAizkwgR5gUGb4LvWkm/6667DnC4UHfv3k12dvY5kfRzV5mlqKiIwsJCwsPDaWlpIT8/XyUZs9nsk8B7jRxJv6uu4vSBA7RUV2NtbFQFFQTAEBVFn2uuYdxvf0ukm3qD6vkRxYDu3wqVCDoddO/OmYUL6X3HHaS1Wq6yLNPc3KxaMkeOHEGn0xETFkbYE08gb9+O0NLSTn5WAEQZTFqXapgR+8TLsd7/W+R099Gd9jffQDp6DHuL47gVohRbXzqdS1aKBUdQTxQgCtgjYyjMuJmomx/GfNttYLX6TGNxOh/eynoFCn/csm6WSUIkJ20/Jzz9aXrGeM8D1sK15J4kSdTV1VFdXc13333HHXfcQVRUFFVVVUyZMoV33323y8QHfGHbtm08/fTT7Ny50+P13tDQgCRJmM1mGhoa+Pjjj1m7du05HumFh5BwQQhOsNls7Nu3j507d5Kbm+sk6Tdp0iSGDRsWkPXnDRaLhSNHjgAwaNAgwsLCVJmxqqoqqqurqaurw2g0OgUSeQrXt1ssnDl0yFFgOyeH8r17EUSR0XfdxeAFC3wG9BTu2MF/5s+npbra7fow2gsVRJhMRAwfjmHlSjKuvNLnuWkoLKT4gQewfvIJotWKnvYeUYHWnH4BTBEiEck9sC9YjG35Q+Ahv1U6epTmXy6A/IOIrcrnWutSEMAY1mqUuogEyLF6Gnv1peim35By6TQ4cABp7kwi6k5hMMjexQZaBRRaJPj6E2goBpPs4GBFcMJkAHME6BWxBaWtMNqUJFyFC8LxTNaCZpvItpPVHNGL0m7LSRhyJzpDhx3D7SDLMv/617/YsGED11xzDadPnyYvLw+9Xs+bb75Jenq670Y6CK1yT0JCAo899hhPPfUULS0tavT6+PHjeeWVV5yUewoKCrj55psBxzU9d+5c1qxZ02XjvADh9pEtRJgheIUi6acoEn3zzTckJCR0WtKvoqKC7777jrS0NCdxaHdQrLSqqipqa2udonVjY2M9kpQsSTSeOUNkqzvYF05kZfHvefMchOnmulA0yyOBSFEkumdPDNOmkX733ST6cdOsysmhaO1amvfuRbRa2xGlEndjpFXVKNyAaeRw9I8+jjzJe6pC3f33Y/vbXxEbGtu5YgXBcfVHRrgQZiRIsWbKhk/G/svH6DlgMLIs07J+PTzzBFE6q291HqPjxDQ0Qs4W0DW1nh/8IEytWlFHCLP16UU2GaiMGkrzRU8T12eiz+8hEDQ1NfHwww9z+vRpXn31VdUzAlBbW0t4eHjAxeVD+FEgRJidwbZt27j33nux2+0sXryY1atXn+8hnRe4k/QLDw9nwoQJfkn6Wa1Wjhw5giRJZGRkdOhmo8w3KS9Jkpwqs4QHUE1Fi+KcHDbNmeOTMM1hYcQOHkz3e+5h+E03tSuw7QpbQwMFGzZQ+uc/YysrQ5RlVT9dmbdUhNzDgChBwBgZif26azk5azaG+HiniE5XC7slJ4fqJUugpBhBkp3cu2ocj6FVrk8hqQiRltQUCq+aR/wv7leFFOwnT1Jz5ZWYTp7AbJS8E6ZS41OE+gbI3Q66lvaEGWFwSOPpXQkyCIRpN5s5GXc9kZc+iynSc4BVR6AUVpgzZw4rVqzo9NSEOxGCyspKZs2aRWFhIX379uUf//hHu1qVELr/nAeECLOjsNvtDBw4kO3bt5OSksKYMWN45513QtXIwUnSLzs7my+++AKr1epW0m/btm1ER0eTlpYW1KoNSiCRQqAtLS2YzWbVjRsREeFXINOpr79my8KFNJ09i62xEcludxKWDxMEYnr0oPuUKQx54AH6ZGR4bdfW1ETJ9u0c+v3vqTtwANFqVYlRW2daWWYCIvR6YlJT6fn732O88koEnU6N6Kyurm5nYcdERFA1fTqWPXsQLBanYFhtWmWkoU3fVo41cnbYSKrvWE3SpClOx1D/yis0Pv44kY01xJha9V+11qBCmAbnAzh5Cr7ZCzqLY7Wq/UsAhGlyWedJKEcAInU0mXtRftEqeo69I6jz7LIs8/777/P888+zceNGxo4dG5R2s7OziYqKYv78+Sph/upXvyIuLo7Vq1ezbt06qqqq2okQhO4/5wVuL+xQ0I8f2LNnD+np6aSlpQEwe/ZsNm/eHPrBgl+SfqdPn8ZgMBAWFsbzzz+vRswGC+4CiZTKLMePH6exsZGIiAiVZMxms9sbbK+RI/nl7t2cPniQ8r172wQVqqqwNTQQM3AgSbfdxqSFC70GVwHs+9OfOPjaa9QeOQItLejBqRyYligVY0qMjMR81VX0evJJDBrhetdUHcXCrqqs5OQTTxCRl4eulSzdFTZReUcUscfEcOLa6USuepTkOGfBcXtlJc1ZWVjr67HgRa2nhbZi0q3MfKIQLBb3KSUBB/4oEn3aai2aaFhZZ+RM9MXYrniOhD7B1WZtamrioYceorq6mk8//dSttddRuBMh2Lx5M1lZWQAsWLCAyy+/vB1hhu4/PxyECNMPlJaWqon54Ci2unv37vM4oh82tJJ+H330Eb/61a+YNm0aRqORJ598khMnTjBw4EBVtchV0q+zEEWR6OhooqOjSU1NVQOJqqurKSkpoa6uDoPB4FSZRelfHx5O4qhRJI4apQoqlOzbx/6PPmLA1Vcz6OKL/bJWv3njDU4fPKhG6ipkprhhFaIMB8JFEWNKCim/+hXxs2cj+pgTViI6TUePUvTvf9PS0uKUkiJo3pULXAgLo6F/GhV330/yLXPcnm/r4cM07dqFbLfTJLgQphIBa6WtGLXGhJVbS7y4VarzR75OgaI6ZAF3fmuLMZqCpGk0DrudbsYEmpubO+yCd8WRI0dYsmQJCxYsYNmyZedEiKC8vFx9EEpMTKSioqLdNqH7zw8HIcL0A+7c1sEuu3UhwmazsWXLFrZt26beFACPkn5KKsvFF1/sc14wEGjrFSYnOxL9W1paqK6upqKigmPHjqkpN8pLidgtLinhlM3G5ffcg9nsv/6oNiJX4Rqttrmx9aULDyduwgQG//73RAVgMbScPEnJb39L89mzCLKscpiWnA2AXhCwm0yUXn4ZzfesIHHIUI9tVq5bh7WuzqHPLoNNaq32pcjnNdKexESwCgJ2nQEEq5dCoG6gvYQUQXgXy1XtRy9S3y2NM5c+TPLYGdTW1akFm1taWtTi6B3RNJZlmXfffZcNGzaoUpI/JITuPz8chAjTD6SkpFBcXKx+LikpUZOCQ/AMvV7PSy+91G65O0m/goICsrOzeeutt1i1ahUxMTFdJukHYDQanSqzWK1WdR70xIkTWK1WbDYbUVFRDBkyJOCcO9FgQNTrkaCdsLyM44YXnpDAgF/+kotWrkQfQPuWigqO3n8/tV9+iShJCILgCCQSBITWgCIBx3mWEhM5feedpMybR5PdTnl5OUePHkUURTUpPzY2lpacHOrz8x06vjg4qsYKJiOILbQxvXbiVQDCwyjvnkZFUwl62V0JFA/QfpUSDrJUWN9Kmy9ZBDncSHnyJJj1LAm9BwKoLvh+/fo5FUc/ceKEUyqSot7jyYPR2NjIAw88QFNTE1lZWWrZu3OFhIQEysrKSExMpKyszO10Rej+88NBKOjHD9hsNgYOHMiOHTtITk5mzJgxvP3226GK5F0EWZZVSb+cnBz27NmjSvpNnDiRiRMn0r179y55ypZlmbKyMgoLC0lJScFut1NdXU1zc7NqxXTr1s0ngZfl5XHyyy8pzs5uJ6igEwRSRo5kwm9+Q/IVVwQ0PltdHYcffpgzmzYhNTU5CFKWEVpdvzpAlGXCw8LQjRhB9OOPkzpxYruxah8QqqurER55BMMXX6iBQ4o716QHsx66h4NR6/fVgxxtxn7rfIoGjuPru+7GUFen5qhq8zAjwhxBPzol71IbcRtGGwlr/datEn3WqFhKx/2CuNseCyj/V0lFUgKlwFHbNSYmBovFQmpqKocOHWLJkiUsXryYpUuXnhMXbGFhIddff71Tqa7u3burQT+VlZX8/ve/d9ondP85LwhFyXYGW7du5b777sNut7No0aJQEvA5hCLp99lnn7Fz504+++yzLpH0s1gsHDp0CL1ez6BBg5yE4rVWTFVVFQ0NDX4LeNstFs4ePkz5/v2U5OYSFhXFxF//GlNr4rm/sDU28s2aNZzeuhW9Tofc1AQWi6Mmqc0GNhuCJGGMjUV/440MevhhYnzkuALU7NhB4R13YK+oQJBlJ9eu8ooRIMkERj2IBhEhtQ/WR3+PdNlUijZv5tu778ZQX+9EmBGt7yZXwlSiYBXXq1YXUHH3hhmoTUijevZj9Jh8fae/W6W2a1FREffddx9nzpyhoaGBO+64g7lz55KZmdnlhOlOhOCmm25i5syZFBUVkZqaynvvvUdcXJyTCAGE7j/nASHCDOHCgVbSLzc3l7KyMoYMGaJaoIMGDQroBnj69GmOHz9O//79/Yri1Qp4K1aMEkikuAH1HlR5OoK64mIOPPMMtQcPIggCcmMjssWCThSRqqsdlVYsFsSEBOKWLWPoHPeBPa6Qmps5vGABtR99hGi1uiVLHQ6eMwsQFWFEuGQSxvUvIPZzFAz/cOxYrIcPY7LbVWEHJ8I0QpRJQ5gG2ufWaIhTMkVQNuIKwu5+mqikvkE7hwD19fWsWrUKm83GsmXL2L9/P7m5ueTn5/Ppp5+q6jkh/OQRIswLBcXFxcyfP59Tp04hiiJLlizh3nvvPd/DOq9QJP0UN66/kn42m42jR49isVi46KKLOqXaYrFYVEm/mpoaAKfKLB1tu3D7do7+/e/Y6uoQZdlhSba6du0NDYiArbkZoW9fhj/2GIn9+/vd9sk336Tg17/GXl3tFDDkKtMXJQiYevbEMG8elTOmU2NxhMXGxsZyeOZM5OPHiZBllTDNaFyyRkcOqC4MZxdsO3UFgZYeCZTefCfxc5ejCw9cQcob8vPzWbp0KUuXLmXx4sVOD1SyLIcCaULQIkSYFwrKysooKytj5MiR1NXVMWrUKDZt2hTKy9JAK+mXm5vL/v3720n65ebm8uWXX7JgwQKSkpKCfsNU3IAKidpsNqKjo9V50PDwcJ99njl0iH0bN9JQXg6t85SiILSlJkoSzRYLMRMnMuneewOKLm4sLGTf3Lk0HjzoaFsTMKS8DECkwUC3YcPo8eijmDRzrjabjZPffEPe3LnoSkqIkGWHiBAawhQcc5gR4Y6SnU5FsdUIWJCNBmrSM6n71Xp6jJnk9zH4A1mWeeutt/jTn/7E66+/zrBhw4LaPjhSUrR1KQsKCnj88ce577771GVZWVlMmzaNfv36ATB9+vSgCqKXlJSwa9cuj/UxQwgIIeGCCwWJiYlqmobZbCYzM5PS0tIQYWogiiKZmZlkZmaydOlSJ0m/f/7znyxsFR+4+uqr+fbbb4mMjPQq6dcR6PV6unfvrrr5JEmitraW6upqDh8+THNzM5GRkaoF6i4dokdmJj9//nlszc2qoMKZ/HwaKyqwNjVhj45m6IoVZEyaFNDYLVVVHPzNb6grLASjEdlqdQQOCQKCJKnBRMbISLrNnEniI4+gd5kP1ev1NOblYa2oQN/64N1uBDLY7NDQ5KiWohNbq6YIrQQqgmSM5uTkK4lc+ww9egZX1KKuro77778fnU7Hzp07iYqKCmr7CgYNGsS+ffsAR9pUcnKyKn6uxSWXXMKWLVu6ZAw7duwgPz8/RJhdiBBh/shRWFjI3r17GTdu3Pkeyg8agiCQmprKqFGj2LBhAytXrmT+/Pl8/vnnZGdns379eiwWC6NHj2by5MlOkn7BglbSrm/fvsiyTENDA1VVVRQWFlJfX094eLhTZRbFbagVVJBlmaITJ/hu924uvuIKuvlZaFuL46+/Tk1pKVJCAjpAqq1Fam5GsNsRJQnsdow9etDnoYfotWiRx3ZcU2ac1uHQILDaHDcanVJmTHQUyNaF6bClJFF1xzLilywPetDNt99+y7Jly7j77rtZuHDhOXO57tixg/79+9OnT59z0h9Abm4uK1euJDY2lo8++ogPPvhAtWRDCB5CLtkfMerr67nssstYs2YN06dPP9/D+VHgwIEDyLLM0KHtE/i1kn67du2isrKSYcOGqYIK/fr16/JISiWQSKnMotfrnQQVJEni4MGDmEwmBgwY0CGFpMItW2g4cQJrZSVNp04hNTRgb2zEWlWF5cwZdKKIOSWFwb/7HdFuzpMCS20t/5s3j+qsLCI0AT/KuxLw6i4IVjSG0TB8OOVL78R88cXq8QVDsEKSJN544w31NWTIkE63GQgWLVrEyJEjWb58udPyrKwsZsyYQUpKCklJSaxfvz6oqSFXX30169evP+fHe4EiNId5IcFqtXL99ddz1VVXsXLlyvM9nAsSFouFL7/8kpycHHJzc1VJv4kTJzJ58uSgS/p5GoMSiXvmzBmampqIi79kN7IAABSOSURBVIsjKSkpYIKRJIm6oiJsTU1YampoqapC1Oup//57pJYWpKYmmkpLierblwGLFhHmI4m/6fRpPpg4EU6eVPMulepdWqEerTCQXhAQoqJonjmT1McfxxAV5ZQParVaVeH82NhYv4XzFdTW1rJixQoiIiJ4+eWXz3mRZ4vFQlJSEgcPHmxXtk4Rzo+KimLr1q3ce++9HDt2LGh99+vXj6NHjwatXu1PHCHCvFAgyzILFiwgLi6OF1544XwP5ycDu93OwYMH2blzJzk5OV0u6aft99ixYzQ1NZGRkUFTU5MaSBQIwdhaWrC3tCDZbA4JPL0eS20tsiQhW600njpFbHo65n79EP14ECjJymLnwoUIFRVqdRJtNRZFcF4lTr0eISkJ029+Q/+5c92OU5Ik6urqVAL1VzgfYP/+/Sxbtoz77ruP+fPnn5eo182bN/Pyyy/z8ccf+9y2b9++5OXl0aNHj073e/bsWaZMmaLOo4bQaYQI80JBbm4ul1xyCUOHDlVvHk8++STXXnvteR7ZTwuSJPH999+rBLpv3z5V0m/SpEmMGzeu05J+dXV15Ofnk5SU5FacQUswVVVVNDU1ERERoQYSmc1mj/1LNhvWxkZkWcZSV0dEz57oAyD8rHvv5bvXX8dktxOOM0G6FsXWh4ejGzuWtPXriQ/ADanNd62qqqKurk51U0uSRM+ePYmJieHVV1/lb3/7G2+88cZ5DX6bPXs2V111FQsXLmy37tSpU+q8+J49e7jllls4ceJEUIg9Ly+PtWvXqkIHIXQaIcIMoetgt9sZPXo0ycnJXRYF+EOHLMuUl5eTnZ1NdnZ2pyT9lKjesrIyBg8e7Hd0p1KZRbFAtbqqSiBRMNzILbW1ZK1YQckHH2DQ6M/qXF+CQFj37kTMns3Ihx/GFBvb6b4VN/WmTZvYuHEj9fX1mM1mHn74YaZMmeIk9H8u0djYSO/evSkoKFA1aV955RUA7rzzTjZs2MAf/vAH9Ho9JpOJ5557jokTJwal7/r6eq644goaGxvZuHFj0Nr9CSNEmCF0HZ577jny8vKora39yRKmK1wl/Xbt2kVjY6NPSb+Wlhby8/OJiIggPT290wSn6KoqgUTaaN3Y2NgOzXmV793Lf2bNwl5V5ZDTs9kQJckhAi9JDtesKGIaOJABa9eSeeONQXeRfv311yxfvpzly5fTr18/du3aRW5uLqmpqfz5z38Oal8h/OQQIswQugYlJSUsWLCANWvW8Nxzz4UI0wsUSb+cnBxycnI4deoUgwcPVi3Q/fv38/nnn/PII48EZW7LHZQC1MpLkiSnyiX+1Je0W62c/vZbKvbtozQ3l9P79tFy9qxDEF6S0On1xEyYwOXPP0+Pvn2DOn5Jkti4cSN///vfefPNN8nIyAhq+yGEQIgwQ+gq3HLLLTz88MPU1dWxfv36EGEGAEXSb8eOHWzcuFFNefEl6RdM2O12p0jVlpYWNZCoW7duPiNVZVlGttupOnaM8v37yf/vf4nq358pa9YEfezV1dXcfffdJCQk8Pzzz2PyUWy7I+jbty9msxmdToderycvL89pvSzL3HvvvWzdupWIiAjeeOMNRo4cGfRxhHBeEVL6CSH42LJlC/Hx8YwaNYqsrKzzPZwfHZQAln/+8588+OCD3HHHHRw9epTs7Gw2btzI/v37iY+PZ9KkSaqkX7BJQqfTqfUlwWHBKZVZjh8/7jNSVRAEBL2esJQUamtqmLBuXZdIDebl5bFixQpWr17NrFmzujQK9tNPP/Vo4X/44YccO3aMY8eOsXv3bu666y52797dZWMJ4YeDkIUZQqfw8MMP89Zbb6HX62lubqa2tpbp06fz17/+9XwP7UeDqqoqTp06RWZmZrt1Wkm/3Nxc8vLyMBqNaiTu+PHjgy7p524MjY2NqgVaV1enVmZRAokUfePBgwcHPfdRkiT+7//+jw8++IA333yTgQMHBrV9V/hK91i6dCmXX345c+bMARyyeFlZWect2CiELkHIJRtC1yIrKyvkku1iyLLM2bNnyc3NJTs7my+++AKr1cqoUaO6TNLPHVpaWqiurubs2bOUl5cjiiK9evXqdGUWV1RWVrJs2TJSUlJ47rnn/Jpf7Sz69etHt27dEASBpUuXsmTJEqf1119/PatXr2by5MkATJkyhaeffprRo0d3+dhCOGcIuWRDCOHHDkEQ6NGjBzfddBM33XQT4Czp99prr50TST+j0YjRaKS2tpaLLrqIuLg4dR60qKhIrcyiEGhH3Mi7d+/mvvvuY82aNdx6663nTIhg165dJCUlUVFRwdSpU8nIyODSSy9V17szMkKlwX4aCFmYIYRwgcFisZCXl6e6cQsLCxk0aJBKoIMHD+5UqoosyxQWFnLmzBmGDBnilgwlSXIKJGpubiYqKkolUG+CDpIk8dJLL/Gf//yHv/zlL6Snp3d4rJ3Fo48+SlRUFA888IC6LOSS/Ukg5JIN4aeD6upqFi9ezIEDBxAEgddee40JEyac72GdF3iT9Js4cSIjR470W9KvpaWFgwcPEh0dTVpamt+WqyzLaiBRVVUVDQ0NmEwmNZDIZDJhNBo5e/Ysd955J/379+eZZ57pEqlBb2hoaECSJMxmMw0NDUydOpW1a9dy9dVXq9v897//ZcOGDWzdupXdu3ezYsUK9uzZc07HGUKXI0SYIfx0sGDBAi655BIWL16MxWKhsbGR2CCozFwIUCT9FEUifyX9zp49y9GjRxk4cKBa47Oj0EreFRcXs2TJEiIiIqisrGTRokU88MADmM3mTvXRERQUFKh1LG02G3PnzmXNmjVOij2yLLN8+XK2bdtGREQEr7/+emj+8sJDiDBDCAxff/01p06d+tFp1NbW1jJ8+HAKCgpCc0t+QCvpl5OTw+7du50k/UaPHs0TTzzBpEmTmDFjRtCtPrvdzosvvsgnn3zCrFmzOHr0KJ9//jmCIPDuu++e07qSIYTQilDQTwiBISEhQdXElCRJXS4Iwg+aiAoKCujZsycLFy5k//79jBo1ihdffPGcl3r6sUAQBHr16sXMmTOZOXOmk6Tfv//9b5YtW0ZGRgaiKCIIgkdJv47g9OnT3HnnnWRmZvLxxx87RdfW1dV1iTBBCCF0FF1bDTeEHzWef/55+vbti8ViQRRF9aW9UWqJ9IcCm83G119/zV133cXevXuJjIxk3bp153tYPxoIgkBsbCw2m43du3ezdetW/ve///GLX/yCkydPsmLFCsaPH8/tt9/Oq6++yqFDhzr0O8jNzeXGG2/kzjvv5Nlnn22XimI2m9HrO/5MX1xczM9+9jMyMzMZPHgwL774YrttsrKyiImJYcSIEYwYMYLHH3+8w/2FcOEj5JINwS3q6+vp1asX9fX1/PWvf+Xtt98mMzOTXr16MWfOHFJSUtzuJ0lS0FMYAsWpU6cYP348hYWFAOTk5LBu3Tr++9//ntdx/djw9ddfk5aW5nbuV5H0UyJxjx49SlpamhqJ603Sz2638+yzz/K///2Pt956q8tcroqYwsiRI6mrq2PUqFFs2rTJqfxXKHc4BA8IuWRD8B/ffPONGvzw2WefcfbsWWbPns1TTz3FyZMnef7553nvvfeIjY1l6tSp6n5aspRlGUmSEAThnJJor1696N27N0eOHGHQoEHs2LHjvNZI/LHCmz6qXq9n9OjRjB49mpUrVyJJEkeOHFEl/b755ht69uypRuIqkn7l5eUsXbqU4cOH88knnwRN4MAdEhMT1VQPs9lMZmYmpaWlod9CCB1GiDBDcIvNmzdzzTXXqPNZK1asYMyYMcyYMYNt27YBsG/fPqqqqpg6dSr19fVs2rSJ8PBwbrnlFmw2G3q9vl2+n91ub+fW7Qq89NJL3HbbbVgsFtLS0nj99de7tL+fOkRRJDMzk8zMTJYuXeok6bdp0ybWrFmDJElUVlby8ssvc911153TefDCwkL27t3LuHHj2q37/PPPGT58OElJSaxfv57BARS4DuGnhRBhhuAWH3zwAQ888ADHjx+npqZGLUhbWlqqankKgkDf1tJN77//Pl988QVz586luLiY559/np07d3LZZZexfPly0tLSANwmzNvtdpqamvwukuwPRowY0a7KRAjnDoIgkJqayrx585g3bx6y/P+3d78xNf5vAMffh04UlVgq/RMRy2nGDtaaRVbfkpgSDTHGmDSzPPCE9cTMgwhjYx7EbM2/aSNNf+R/Qk3F5IxCdZIzNX9COef+PejXzVE/+oVOx/d6Par7vs/OddrZfXVf9/W5boX6+nqMRiMzZszo11jev39PQkIC+/btw9XV1WrftGnTeP78OcOHDycvL49FixZhMBj6NT5hP6TpR3Tz+fNntdP0wYMHODg4EBgYCEBjYyNjxowBOk82LS0tKIpCVlYWS5YsQafTkZKSwrx587h//z5ubm5cv34dgB07drBnzx6Kiop48uSJ+n4NDQ1cvHiRp0+f9v+H7Ud79+4lJCSEKVOmkJyczKdPn2wdUr/RaDT4+fn1e7Ls6OggISGB5cuXs3jx4m77XV1d1X/UYmNj6ejowGQy9WuMwn5IwhTdODo6UllZCUBbW5s6mqympobXr1/j6ekJwMSJEyksLOTs2bMEBgYSGRlJYWEhRqOR7du3k5SUREVFhdpQUVRUxN27dykoKGDOnDmcP38egKNHj3Lu3DnMZjNgPavTYrH0OLvT3jQ0NLB//37u3btHdXU1ZrOZnJwcW4f1V1MUhbVr1zJ58mS2bt3a4zFNTU3q96usrAyLxfLLQxnE30tKsqIbjUajNkakpKSo27VaLWFhYfj5+QGdAwIqKyspKChg8+bN6ra5c+dy6NAhSkpKKC8vx8XFhfb2doxGI/v27UOv1zN9+nQuX75MVFQUFRUVVFVVERcXR2ZmJnFxcdTV1eHn56eWcBVFQaPRdD6s+L8/D+S1oD358uULHz9+RKvV0tbWpl6piz/j5s2bnDhxAp1Ox9SpUwHYtWsXL168ADqn9pw5c4bDhw/j4OCAk5MTOTk5dve9Ev1HEqb4oW+XiYwbN45Nmzap+wIDA0lKSiIkJIQ5c+YAMGzYMJqamgCIiIggIiICgPz8fLy9vdHr9bS3t6MoCq2trTg7OzNr1iwSExNJTk7m7du3ZGdnc/z4cUwmEzqdjiNHjuDs7ExHRwdardYuT2g+Pj6kp6fj7++Pk5MTUVFRREVF2Tqsv1p4ePhPqxOpqamkpqb2U0TC3klJVvzQ98tEvj0BeXt7c+LECdLS0tRtS5YswcfHh9DQUGJiYtQZnFevXlU7FBVFobKyEp1Oh8lkorGxERcXF4YMGUJNTQ1ZWVkcOXKE0tJS3NzcuHz5Mh8/fiQlJYW9e/eyc+dOSktLefPmjVVsA1lLSwu5ubnU1tbS2NjIhw8f5CHbQtgZSZii174vg1osFvW+Y5fBgwdz4MABrly5wrp165gwYQLQmTD1ej3QOfLs0aNHhIeHU1NTg4ODA+PHjwc6u23DwsIYP348Tk5O+Pj4UFBQQFtbG/X19Tx+/JjQ0FDOnj1LTEyM+r5msxmj0fin/wR9VlhYSGBgIB4eHmi1WhYvXsytW7dsHZZdyc/PJzg4mKCgoB4nNymKQlpaGkFBQYSGhlJeXm6DKMXfTEqyos/+1zACRVEYNWqUVVdicXGxej/yw4cPtLS0MGHCBJqbmzGZTOrM0OfPn1sNe7979y4LFiygvLycyZMnk5aWRkhICGFhYZjNZqqqqtDpdBw7doyTJ09y7dq1P/iJ+87f35/S0lLa2tpwcnKiqKhInnDxfzCbzWzatImCggJ8fX3R6/XEx8dbDSG4dOkSBoMBg8HAnTt32LhxI3fu3LFh1OJvI1eY4rfrugr9tkw6dOhQdVRaQEAAxcXFeHl5ERAQgMViYfny5dy+fZsVK1ZQUVFBc3MzN27coLa2lvnz51NWVkZwcDD+/v4oioK3tzfPnj3j3bt3lJaWUllZybZt27q970Axc+ZMEhMTmTZtGjqdDovFwvr1620dlt0oKysjKCiIcePG4ejoyLJly8jNzbU6Jjc3l5SUFDQaDbNmzaK1tXVAVx2E/ZErTPHH/Kg5p2ufm5uburyio6OD9vZ28vPz+eeff/Dy8iIzMxMPDw8ePnxIYmKi1TMSNRoNrq6ubN68mdTUVPUhvwO1KSgjI4OMjAxbh2GXGhoa1O5sAF9f325Xjz0d09DQoI7HE+JXScIUNtU1b3bw4MFotVq0Wi1Hjx4FOhtl3N3defnyJR4eHowePVp9DUB0dDQbNmzAxcWFhIQEm30Ge7NmzRouXLjA6NGjqa6uBuDNmzcsXbqUuro6xo4dy6lTp3B3d7dxpF/1VDX4/h+j3hwjxK+QkqywKY1GYzUuT1EUtZHI3d0di8WCn58fWVlZ6ni+ruYjR0dHdRB812vFz61evVqdB9xl9+7dREZGYjAYiIyMHHCPQ/P19eXly5fq7/X19d3WsfbmGCF+hSRMMaB8n0AHDRqkJsKuJqOmpiaqq6u5du0aGzduZNKkSeprxc/Nnj2bkSNHWm3Lzc1l1apVAKxatUqdwjRQ6PV6DAYDtbW1tLe3k5OTQ3x8vNUx8fHxHD9+HEVR1CVJUo4Vv5OUZMWA930ivHfvHunp6WzZsoWVK1cCXycBib559eqVmly8vb1pbm62cUTWHBwcOHjwINHR0ZjNZtasWUNISIi6znfDhg3ExsaSl5dHUFAQzs7O8oQa8dvJA6SF3ZIk2Xd1dXXExcWp9zBHjBhBa2urut/d3Z2WlhZbhSeErfV4YpGSrLBbkix/H09PT3UJhtFoVBushBBfScIUQhAfH092djYA2dnZLFy40MYRCTHwSElWiH+Z5ORkSkpKMJlMeHp6kpGRwaJFi0hKSuLFixf4+/tz+vTpbo1BQvyL9Fi+koQphBBCWJN7mEIIIURf/WxZiXRVCCGEEMgVphBCCNErkjCFEEKIXpCEKYQQQvSCJEwhhBCiFyRhCiGEEL0gCVMIIYTohf8Ae0grjPe7ZuwAAAAASUVORK5CYII=\n", - "application/papermill.record/text/plain": "
    " - }, - "metadata": { - "scrapbook": { - "mime_prefix": "application/papermill.record/", - "name": "flow_fig" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "α = 0.6\n", - "λ = 0.5\n", - "b = 10\n", - "n = b + 1\n", - "states = np.arange(n)\n", - "I = np.identity(n)\n", - "\n", - "K = np.zeros((n, n))\n", - "K[0, -1] = 1\n", - "for i in range(1, n):\n", - " for j in range(0, i):\n", - " if j == 0:\n", - " K[i, j] = (1 - α)**(i-1)\n", - " else:\n", - " K[i, j] = α * (1 - α)**(i-j-1)\n", - "\n", - "\n", - "def P_t(ψ, t):\n", - " return ψ @ expm(t * λ * (K - I))\n", - "\n", - "def plot_distribution_dynamics(ax, ψ_0, steps=200, step_size=0.1):\n", - " ψ = ψ_0\n", - " t = 0.0\n", - " colors = cm.jet_r(np.linspace(0.0, 1, steps))\n", - "\n", - " for i in range(steps):\n", - " ax.bar(states, ψ, zs=t, zdir='y', \n", - " color=colors[i], alpha=0.8, width=0.4)\n", - " ψ = P_t(ψ, t=step_size)\n", - " t += step_size\n", - "\n", - " ax.set_xlabel('inventory')\n", - " ax.set_ylabel('$t$')\n", - "\n", - "\n", - "ψ_0 = binom.pmf(states, n, 0.25)\n", - "fig = plt.figure(figsize=(8, 6))\n", - "ax = fig.add_subplot(111, projection='3d')\n", - "plot_distribution_dynamics(ax, ψ_0)\n", - "\n", - "from myst_nb import glue\n", - "glue(\"flow_fig\", fig, display=False)\n", - "\n", - "plt.show()" - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": "0.9", - "jupytext_version": "1.5.0" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/code_book/_build/.jupyter_cache/global.db b/code_book/_build/.jupyter_cache/global.db deleted file mode 100644 index aed6d40a0cf6f8a83f0ffd94021c4632af192a51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90112 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 diff --git a/code_book/_build/html/.buildinfo b/code_book/_build/html/.buildinfo deleted file mode 100644 index 4a2d398..0000000 --- a/code_book/_build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# 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: adefb9d0404b8de0f3ac54731ae36c39 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/code_book/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css b/code_book/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css deleted file mode 100644 index fc14abc..0000000 --- a/code_book/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css +++ /dev/null @@ -1 +0,0 @@ -details.dropdown .summary-title{padding-right:3em !important;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}details.dropdown:hover{cursor:pointer}details.dropdown .summary-content{cursor:default}details.dropdown summary{list-style:none;padding:1em}details.dropdown summary .octicon.no-title{vertical-align:middle}details.dropdown[open] summary .octicon.no-title{visibility:hidden}details.dropdown summary::-webkit-details-marker{display:none}details.dropdown summary:focus{outline:none}details.dropdown summary:hover .summary-up svg,details.dropdown summary:hover .summary-down svg{opacity:1}details.dropdown .summary-up svg,details.dropdown .summary-down svg{display:block;opacity:.6}details.dropdown .summary-up,details.dropdown .summary-down{pointer-events:none;position:absolute;right:1em;top:.75em}details.dropdown[open] .summary-down{visibility:hidden}details.dropdown:not([open]) .summary-up{visibility:hidden}details.dropdown.fade-in[open] summary~*{-moz-animation:panels-fade-in .5s ease-in-out;-webkit-animation:panels-fade-in .5s ease-in-out;animation:panels-fade-in .5s ease-in-out}details.dropdown.fade-in-slide-down[open] summary~*{-moz-animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out;-webkit-animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out;animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out}@keyframes panels-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes panels-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.octicon{display:inline-block;fill:currentColor;vertical-align:text-top}.tabbed-content{box-shadow:0 -.0625rem var(--tabs-color-overline),0 .0625rem var(--tabs-color-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.tabbed-content>:first-child{margin-top:0 !important}.tabbed-content>:last-child{margin-bottom:0 !important}.tabbed-content>.tabbed-set{margin:0}.tabbed-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.tabbed-set>input{opacity:0;position:absolute}.tabbed-set>input:checked+label{border-color:var(--tabs-color-label-active);color:var(--tabs-color-label-active)}.tabbed-set>input:checked+label+.tabbed-content{display:block}.tabbed-set>input:focus+label{outline-style:auto}.tabbed-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.tabbed-set>label{border-bottom:.125rem solid transparent;color:var(--tabs-color-label-inactive);cursor:pointer;font-size:var(--tabs-size-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .tabbed-set>label:hover{color:var(--tabs-color-label-active)} diff --git a/code_book/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css b/code_book/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css deleted file mode 100644 index adc6166..0000000 --- a/code_book/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css +++ /dev/null @@ -1,7 +0,0 @@ -:root { ---tabs-color-label-active: hsla(231, 99%, 66%, 1); ---tabs-color-label-inactive: rgba(178, 206, 245, 0.62); ---tabs-color-overline: rgb(207, 236, 238); ---tabs-color-underline: rgb(207, 236, 238); ---tabs-size-label: 1rem; -} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch1.ipynb b/code_book/_build/html/_sources/ch1.ipynb deleted file mode 100644 index 7344a3e..0000000 --- a/code_book/_build/html/_sources/ch1.ipynb +++ /dev/null @@ -1,48 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "c783256b", - "metadata": {}, - "source": [ - "# Chapter 1 Code\n", - "\n", - "No code in this chapter." - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 14 - ] - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch1.md b/code_book/_build/html/_sources/ch1.md deleted file mode 100644 index 994a069..0000000 --- a/code_book/_build/html/_sources/ch1.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -jupytext: - cell_metadata_filter: -all - formats: md:myst - text_representation: - extension: .md - format_name: myst - format_version: 0.13 - jupytext_version: 1.10.3 -kernelspec: - display_name: Python 3 - language: python - name: python3 ---- - -# Chapter 1 Code - -No code in this chapter. diff --git a/code_book/_build/html/_sources/ch2.ipynb b/code_book/_build/html/_sources/ch2.ipynb deleted file mode 100644 index d312353..0000000 --- a/code_book/_build/html/_sources/ch2.ipynb +++ /dev/null @@ -1,428 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e5556182", - "metadata": {}, - "source": [ - "# Chapter 2 Code" - ] - }, - { - "cell_type": "markdown", - "id": "40231c74", - "metadata": {}, - "source": [ - "We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "6aa68cab", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "id": "6fa2772c", - "metadata": {}, - "source": [ - "## Bisection" - ] - }, - { - "cell_type": "markdown", - "id": "e35e3054", - "metadata": {}, - "source": [ - "Here's an implementation of the bisection algorithm. We will test it on this function:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "04b3f103", - "metadata": {}, - "outputs": [], - "source": [ - "f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1" - ] - }, - { - "cell_type": "markdown", - "id": "30e470e4", - "metadata": {}, - "source": [ - "The implementation:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "47d97ea8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.408293504267931\n" - ] - } - ], - "source": [ - "M = 1000\n", - "ϵ = 1e-8\n", - "α, β = 0, 1\n", - "\n", - " \n", - "i = 1\n", - "a, b = α, β\n", - "while i <= M:\n", - " c = (a + b) / 2\n", - " if abs(f(c)) < ϵ:\n", - " print(c)\n", - " break\n", - " i += 1\n", - " if f(a) * f(c) < 0:\n", - " b = c\n", - " else:\n", - " a = c\n", - " \n", - "if i > M:\n", - " print(\"Failed to converge.\")" - ] - }, - { - "cell_type": "markdown", - "id": "147c2a03", - "metadata": {}, - "source": [ - "## User Defined Functions" - ] - }, - { - "cell_type": "markdown", - "id": "8018f1c2", - "metadata": {}, - "source": [ - "Here's the basic implementation of the function $\\tau$." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "6d5d5fd0", - "metadata": {}, - "outputs": [], - "source": [ - "def tau(z, S, phi):\n", - " \"\"\"\n", - " Evaluates the function tau(z) given data S, phi, where\n", - " S and phi are assumed to be arrays.\n", - " \"\"\"\n", - " a = 0\n", - " for i, x in enumerate(S):\n", - " b = a + phi[i]\n", - " if a < z <= b:\n", - " return x\n", - " a = b" - ] - }, - { - "cell_type": "markdown", - "id": "e5948a66", - "metadata": {}, - "source": [ - "Here's a more efficient implementation." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "1f72ee83", - "metadata": {}, - "outputs": [], - "source": [ - "def tau(z, S, phi):\n", - " i = np.searchsorted(np.cumsum(phi), z)\n", - " return S[i]" - ] - }, - { - "cell_type": "markdown", - "id": "b4c1ae69", - "metadata": {}, - "source": [ - "And here's a closure that generates the function $\\tau$." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "7071228b", - "metadata": {}, - "outputs": [], - "source": [ - "def tau_factory(S, phi):\n", - " Φ = np.cumsum(phi)\n", - " \n", - " def tau(z):\n", - " i = np.searchsorted(Φ, z)\n", - " return S[i]\n", - " \n", - " return tau" - ] - }, - { - "cell_type": "markdown", - "id": "221398c1", - "metadata": {}, - "source": [ - "We generate a function $\\tau$ that acts on $z$ alone by calling the function factory:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "bee09a7f", - "metadata": {}, - "outputs": [], - "source": [ - "phi = 0.2, 0.5, 0.3\n", - "S = 0, 1, 2\n", - "tau = tau_factory(S, phi)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "54226172", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tau(0.1) # Should be 0" - ] - }, - { - "cell_type": "markdown", - "id": "88f28c1f", - "metadata": {}, - "source": [ - "All of these functions work as expected. To illustrate, here $\\tau$ is used to generate draws from a given distribution $\\phi$." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "ca3380d6", - "metadata": {}, - "outputs": [], - "source": [ - "size = 100_000\n", - "\n", - "draws = np.empty(size)\n", - "for j in range(size):\n", - " W = np.random.uniform()\n", - " draws[j] = tau(W)\n", - " \n", - "# Compute fraction of draws with each possible value\n", - "frequency = [np.mean(draws==j) for j in S]\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "e2850786", - "metadata": {}, - "source": [ - "Let's check that the empirical frequency approximately coincides with the probabilities in $\\phi$." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "107915f7", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch2_21_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "\n", - "ax.bar(S, frequency, \n", - " edgecolor='k',\n", - " facecolor='b',\n", - " alpha=0.25, \n", - " label=\"histogram\")\n", - "\n", - "ax.stem(S, phi, label='$\\\\phi$')\n", - "\n", - "ax.legend()\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "95a5d3a0", - "metadata": {}, - "source": [ - "## Object Oriented Programming" - ] - }, - { - "cell_type": "markdown", - "id": "646ff165", - "metadata": {}, - "source": [ - "Here's a class that implements the function $\\tau$ as a method, as well as a method to generate draws from $\\phi$." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "6a1cb12e", - "metadata": {}, - "outputs": [], - "source": [ - "class Tau:\n", - " \n", - " def __init__(self, S, phi):\n", - " self.S = S\n", - " self.Φ = np.cumsum(phi)\n", - " \n", - " def tau(self, z):\n", - " i = np.searchsorted(self.Φ, z)\n", - " return self.S[i]\n", - " \n", - " def draw(self):\n", - " W = np.random.uniform()\n", - " return self.tau(W)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "13694498", - "metadata": {}, - "outputs": [], - "source": [ - "tau = Tau(S, phi)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "6d09cfc5", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n", - "1\n", - "2\n", - "1\n", - "1\n" - ] - } - ], - "source": [ - "for i in range(5):\n", - " print(tau.draw())" - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "source_map": [ - 14, - 18, - 22, - 25, - 29, - 33, - 35, - 39, - 60, - 64, - 68, - 80, - 84, - 88, - 92, - 101, - 105, - 111, - 113, - 117, - 129, - 133, - 147, - 151, - 155, - 171, - 175 - ] - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch2.md b/code_book/_build/html/_sources/ch2.md deleted file mode 100644 index 915a0c8..0000000 --- a/code_book/_build/html/_sources/ch2.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -jupytext: - cell_metadata_filter: -all - formats: md:myst - text_representation: - extension: .md - format_name: myst - format_version: 0.13 - jupytext_version: 1.10.3 -kernelspec: - display_name: Python 3 - language: python - name: python3 ---- - -# Chapter 2 Code - -+++ - -We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting. - -```{code-cell} ipython3 -import numpy as np -import matplotlib.pyplot as plt -``` - -## Bisection - -+++ - -Here's an implementation of the bisection algorithm. We will test it on this function: - -```{code-cell} ipython3 -f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1 -``` - -The implementation: - -```{code-cell} ipython3 -M = 1000 -ϵ = 1e-8 -α, β = 0, 1 - - -i = 1 -a, b = α, β -while i <= M: - c = (a + b) / 2 - if abs(f(c)) < ϵ: - print(c) - break - i += 1 - if f(a) * f(c) < 0: - b = c - else: - a = c - -if i > M: - print("Failed to converge.") -``` - -## User Defined Functions - -+++ - -Here's the basic implementation of the function $\tau$. - -```{code-cell} ipython3 -def tau(z, S, phi): - """ - Evaluates the function tau(z) given data S, phi, where - S and phi are assumed to be arrays. - """ - a = 0 - for i, x in enumerate(S): - b = a + phi[i] - if a < z <= b: - return x - a = b -``` - -Here's a more efficient implementation. - -```{code-cell} ipython3 -def tau(z, S, phi): - i = np.searchsorted(np.cumsum(phi), z) - return S[i] -``` - -And here's a closure that generates the function $\tau$. - -```{code-cell} ipython3 -def tau_factory(S, phi): - Φ = np.cumsum(phi) - - def tau(z): - i = np.searchsorted(Φ, z) - return S[i] - - return tau -``` - -We generate a function $\tau$ that acts on $z$ alone by calling the function factory: - -```{code-cell} ipython3 -phi = 0.2, 0.5, 0.3 -S = 0, 1, 2 -tau = tau_factory(S, phi) -``` - -```{code-cell} ipython3 -tau(0.1) # Should be 0 -``` - -All of these functions work as expected. To illustrate, here $\tau$ is used to generate draws from a given distribution $\phi$. - -```{code-cell} ipython3 - -size = 100_000 - -draws = np.empty(size) -for j in range(size): - W = np.random.uniform() - draws[j] = tau(W) - -# Compute fraction of draws with each possible value -frequency = [np.mean(draws==j) for j in S] - -``` - -Let's check that the empirical frequency approximately coincides with the probabilities in $\phi$. - -```{code-cell} ipython3 -fig, ax = plt.subplots() - -ax.bar(S, frequency, - edgecolor='k', - facecolor='b', - alpha=0.25, - label="histogram") - -ax.stem(S, phi, label='$\\phi$') - -ax.legend() - -plt.show() -``` - -## Object Oriented Programming - -+++ - -Here's a class that implements the function $\tau$ as a method, as well as a method to generate draws from $\phi$. - -```{code-cell} ipython3 -class Tau: - - def __init__(self, S, phi): - self.S = S - self.Φ = np.cumsum(phi) - - def tau(self, z): - i = np.searchsorted(self.Φ, z) - return self.S[i] - - def draw(self): - W = np.random.uniform() - return self.tau(W) -``` - -```{code-cell} ipython3 -tau = Tau(S, phi) -``` - -```{code-cell} ipython3 -for i in range(5): - print(tau.draw()) -``` - - diff --git a/code_book/_build/html/_sources/ch3.ipynb b/code_book/_build/html/_sources/ch3.ipynb deleted file mode 100644 index bd65333..0000000 --- a/code_book/_build/html/_sources/ch3.ipynb +++ /dev/null @@ -1,48 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "07367896", - "metadata": {}, - "source": [ - "# Chapter 3 Code\n", - "\n", - "No code used in this chapter." - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 14 - ] - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch3.md b/code_book/_build/html/_sources/ch3.md deleted file mode 100644 index 7af94f4..0000000 --- a/code_book/_build/html/_sources/ch3.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -jupytext: - cell_metadata_filter: -all - formats: md:myst - text_representation: - extension: .md - format_name: myst - format_version: 0.13 - jupytext_version: 1.10.3 -kernelspec: - display_name: Python 3 - language: python - name: python3 ---- - -# Chapter 3 Code - -No code used in this chapter. diff --git a/code_book/_build/html/_sources/ch4.ipynb b/code_book/_build/html/_sources/ch4.ipynb deleted file mode 100644 index 8c83204..0000000 --- a/code_book/_build/html/_sources/ch4.ipynb +++ /dev/null @@ -1,1692 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "1a899127", - "metadata": {}, - "source": [ - "# Chapter 4 Code\n", - "\n", - "Let's start with some imports." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "acdfa84d", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from numba import jit\n", - "from quantecon import MarkovChain" - ] - }, - { - "cell_type": "markdown", - "id": "3977386b", - "metadata": {}, - "source": [ - "## Introduction to Dynamics\n", - "\n", - "Here's the code that generated figure 4.1." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "ea812370", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_3_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def draw_arrow(x, y, xp, yp, ax):\n", - " \"\"\"\n", - " Draw an arrow from (x, y) to (xp, yp).\n", - " \"\"\"\n", - " v1, v2 = xp - x, yp - y\n", - " eps = 1.0\n", - " nrm = np.sqrt(v1**2 + v2**2)\n", - " scale = 1.0\n", - " ax.arrow(x, y, scale * v1, scale * v2,\n", - " antialiased=True, \n", - " alpha=0.5,\n", - " head_length=0.025*(xmax - xmin), \n", - " head_width=0.012*(xmax - xmin),\n", - " fill=False)\n", - "\n", - "xmin, xmax = -10.0, 10.0\n", - "ymin, ymax = -5.0, 5.0\n", - "\n", - "A1 = np.asarray([[0.55, -0.6],\n", - " [0.5, 0.4]])\n", - "\n", - "def f(x, y): \n", - " return A1 @ (x, y)\n", - "\n", - "xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10)\n", - "ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "#ax.set_xlim(xmin, xmax)\n", - "#ax.set_ylim(ymin, ymax)\n", - "\n", - "ax.set_xticks((0,))\n", - "ax.set_yticks((0,))\n", - "ax.grid()\n", - "\n", - "for x in xgrid:\n", - " for y in ygrid:\n", - " xp, yp = f(x, y)\n", - " draw_arrow(x, y, xp, yp, ax)\n", - "\n", - "#plt.savefig(\"sdsdiagram.pdf\") # Uncomment to save figure\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "41487816", - "metadata": {}, - "source": [ - "And here's the code that generated figure 4.2." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "ab7e131d", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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oU+fPpVe9/T0xNPTk8LCQjZt2sSFCxe4cOECAKNGjRK+xNWguLiYnTt3Sp8bgJ+fH8bGxgwfPlzad+DAAUJDQ2nXrh1DhgyRviRVqZY1TUJCglRyLpPJpHxrQd1FZZGsToRQa4guXbqgUCj4999/0dHR4ZlnnrnnGGNjY6myUbXIpHpM9vDw4IUXXqjStrWholQqOXbsGP/++6+0r1mzZgwZMkSaTjh06JD02rp167h06RI9e/YkMDCQ8PBw9u7dS+vWrSuJeU2QmJgoPSEBvPPOO0+cay3QDtq2bcuWLVvIzc1VWwceIdQapGvXrigUCvbt24eOjg69evW677EeHh4EBwdTXFzM1q1buXTpkmSr+fLLL+Ph4VFbYWsd8fHx/PXXX5IFrYGBASNHjqRZs2b3Pefnn38mKyuLwYMH4+XlxY4dO4iIiKBr16707t27xmK7fv06S5culbanTJnyyMZMAu1GtX5x5swZevTooZ57qOWqgmrTvXt3FAoFBw4cQEdHh549ez7weENDQ1566SXgfwtRa9euBcDNzY0hQ4aoNTtBW8jOzmb9+vUkJydL+/r370/Hjh3vO6eclJREaWkpX3zxBbq6utJi7bJly7h27Rr9+vWjc+fONRLfjRs3Klnevv3225KHsaB+curUKSHU9Rm5XC5ZqOro6BAYGFit89zc3AgODqa0tJTt27dz4cIFvvnmG6DCF9nT01OdYdc6paWl7N69m4iICGmfr68vffv2xcDA4KHnL1myBEdHR8LDw+nVqxfHjh1j9uzZ6Onp8corr9CxY8cnjjEpKYnFixdL25MnT8bW1vaJryvQbtzc3Lh69arari971LZA1aFjx47K06dP1/h16zuqha1evXoREBDwWNf471xos2bNGDZsGKampjUUZe2iVCo5ffo0f//9t7RtY2ND37590dfXJz8/n4KCAvLz86v8d0FBgXStY8eOMXr0aJ5//nkKCwsJDg4mPT0dFxcXzM3Nn2huOjk5uVKHn0mTJmFnZ/dkb15QZ1CtId2d+vmoyGSyCKVSWeVoQYyotYigoCAUCgX79+9HR0eHbt26PfI1XF1dCQ4OpqysjF27dnHmzBm+++47oCIlrX379jUcdWXKy8slgXyYiObn51NYWFjldXJycjh//nylEnsvLy+sra3JysqSikOqg6mpKSYmJnh6emJra8ul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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_5_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "def draw_trajectory(x, y, ax, n=10):\n", - " \"\"\"\n", - " Draw the trajectory of length n starting from (x, y).\n", - " \"\"\"\n", - " for i in range(n):\n", - " x_new, y_new = f(x, y)\n", - " draw_arrow(x, y, x_new, y_new, ax)\n", - " x, y = x_new, y_new\n", - " \n", - "xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3)\n", - "ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "#ax.set_xlim(xmin, xmax)\n", - "#ax.set_ylim(ymin, ymax)\n", - "\n", - "ax.set_xticks((0,))\n", - "ax.set_yticks((0,))\n", - "ax.grid()\n", - "\n", - "for x in xgrid:\n", - " for y in ygrid:\n", - " draw_trajectory(x, y, ax)\n", - "\n", - "#plt.savefig(\"sdsstable.pdf\") # Uncomment to save figure\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "462efab8", - "metadata": {}, - "source": [ - "## Chaotic Dynamics\n", - "\n", - "Just for fun, here's a little class that allows us to simulate trajectories\n", - "from a specified dynamical system:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "ba3dd140", - "metadata": {}, - "outputs": [], - "source": [ - "class DS:\n", - "\n", - " def __init__(self, h=None, x=None):\n", - " \"\"\"Parameters: h is a function and x is an \n", - " element of S representing the current state.\"\"\"\n", - " self.h, self.x = h, x\n", - "\n", - " def update(self):\n", - " \"Update the state of the system by applying h.\"\n", - " self.x = self.h(self.x)\n", - "\n", - " def trajectory(self, n):\n", - " \"\"\"Generate a trajectory of length n, starting \n", - " at the current state.\"\"\"\n", - " traj = []\n", - " for i in range(n):\n", - " traj.append(self.x)\n", - " self.update()\n", - " return traj" - ] - }, - { - "cell_type": "markdown", - "id": "fc200a36", - "metadata": {}, - "source": [ - "As in the textbook, let's plot a trajectory starting from 0.11." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "bfedf943", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_9_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "q = DS(h=lambda x: 4 * x * (1 - x), x=0.11)\n", - "t = q.trajectory(200)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(t)\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "25f68db6", - "metadata": {}, - "source": [ - "Now let's generate a histograms from a long trajectory, to address exercise\n", - "4.16." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "4396e4de", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_11_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "q.x = 0.11\n", - "t = q.trajectory(5000)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.hist(t, bins=40, alpha=0.5, edgecolor='k')\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "fae3feb8", - "metadata": {}, - "source": [ - "If you experiment with different initial conditions you will find that, for\n", - "all most all choices, the histogram looks the same." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "ce4a0a89", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_13_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "q.x = 0.65\n", - "t = q.trajectory(5000)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.hist(t, bins=40, alpha=0.5, edgecolor='k')\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "7af01fd8", - "metadata": {}, - "source": [ - "What we have learned is that, although the trajectories seem very random, when\n", - "we take a statistical perspective we can make predictions.\n", - "\n", - "In particular, we can say what will happen \"one average, in the long run.\"\n", - "\n", - "\n", - "Here's the set of maps." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "d924f394", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_15_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xgrid = np.linspace(0, 1, 100)\n", - "\n", - "h = lambda x, r: r * x * (1 - x)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.plot(xgrid, xgrid, '-', color='grey')\n", - "\n", - "r = 0\n", - "step = 0.3\n", - "\n", - "while r <= 4:\n", - " y = [h(x, r) for x in xgrid]\n", - " ax.plot(xgrid, y)\n", - " r = r + step\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "944ea062", - "metadata": {}, - "source": [ - "Here's the bifurcation diagram." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "9548b412", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_17_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "q = DS(h=None, x=0.1)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "r = 2.5\n", - "while r < 4:\n", - " q.h = lambda x: r * x * (1 - x)\n", - " t = q.trajectory(1000)[950:]\n", - " ax.plot([r] * len(t), t, 'k.', ms=0.4)\n", - " r = r + 0.005\n", - "\n", - "ax.set_xlabel(r'$r$', fontsize=16)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "d402f68e", - "metadata": {}, - "source": [ - "## Markov Chains\n", - "\n", - "\n", - "Our first task is to simulate time series from Hamilton's Markov chain" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "dd7f3988", - "metadata": {}, - "outputs": [], - "source": [ - "pH = ((0.971, 0.029, 0.000), # Hamilton's kernel\n", - " (0.145, 0.778, 0.077),\n", - " (0.000, 0.508, 0.492))\n", - "\n", - "pH = np.array(pH) # Convert to numpy array\n", - "\n", - "S = np.array((0, 1, 2))" - ] - }, - { - "cell_type": "markdown", - "id": "1dae9dff", - "metadata": {}, - "source": [ - "We'll borrow this code from Chapter 2." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "db2e4615", - "metadata": {}, - "outputs": [], - "source": [ - "@jit\n", - "def tau(z, S, phi):\n", - " i = np.searchsorted(np.cumsum(phi), z)\n", - " return S[i]" - ] - }, - { - "cell_type": "markdown", - "id": "e4b044b0", - "metadata": {}, - "source": [ - "(We have targeted the function for JIT compilation via `@jit` because we need\n", - "fast execution below.)\n", - "\n", - "As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`.\n", - "\n", - "Here's some code to generate a trajectory starting at $x \\in S$, using\n", - "stochastic kernel $p$." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "c1e29b48", - "metadata": {}, - "outputs": [], - "source": [ - "def trajectory(x, p, S, n=100):\n", - "\n", - " X = np.empty(n, dtype=int)\n", - " X[0] = x\n", - " for t in range(n-1):\n", - " W = np.random.rand()\n", - " X[t+1] = tau(W, S, p[X[t], :])\n", - " return X" - ] - }, - { - "cell_type": "markdown", - "id": "c9944b49", - "metadata": {}, - "source": [ - "Let's plot a trajectory." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "40bd805f", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_25_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "\n", - "X = trajectory(0, pH, S, n=500)\n", - "\n", - "ax.plot(X)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "5fbbd05e", - "metadata": {}, - "source": [ - "Another option is to use existing code from QuantEcon. This code is\n", - "JIT-compiled and very fast." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "6833bc8a", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_27_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "mc = MarkovChain(pH, state_values=S)\n", - "X = mc.simulate(init=0, ts_length=500)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(X)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "edae1cc7", - "metadata": {}, - "source": [ - "Here's a solution to exercises 4.23." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "0e04b296", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.59744" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "@jit\n", - "def compute_marginal(n=100_000, T=10):\n", - " X_vals = np.empty(n)\n", - "\n", - " for i in range(n):\n", - " X = 2 # start in state SR\n", - " for t in range(T):\n", - " W = np.random.rand()\n", - " X = tau(W, S, pH[X, :])\n", - " X_vals[i] = X\n", - " return np.mean(X_vals == 0)\n", - "\n", - "compute_marginal()" - ] - }, - { - "cell_type": "markdown", - "id": "f9815ab5", - "metadata": {}, - "source": [ - "The answer is close to 0.6, as expected.\n", - "\n", - "\n", - "Here's a solution to exercise 4.24." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "c840f550", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.5999" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "@jit\n", - "def compute_marginal_2(n=100_000, T=10):\n", - " counter = 0\n", - "\n", - " for i in range(n):\n", - " X = 2 # start in state SR\n", - " for t in range(T):\n", - " W = np.random.rand()\n", - " X = tau(W, S, pH[X, :])\n", - " if X == 0:\n", - " counter += 1\n", - "\n", - " return counter / n\n", - "\n", - "compute_marginal_2()" - ] - }, - { - "cell_type": "markdown", - "id": "c92cfaf7", - "metadata": {}, - "source": [ - "Here's a solution to exercise 4.29." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "7da9bf60", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "885.347632676323\n" - ] - } - ], - "source": [ - "T = 5\n", - "psi = (1, 0, 0) # start in NG\n", - "h = (1000, 0, -1000) # profits\n", - "\n", - "for t in range(T):\n", - " psi = psi @ pH\n", - "\n", - "print(psi @ h)" - ] - }, - { - "cell_type": "markdown", - "id": "3ad32b81", - "metadata": {}, - "source": [ - "Now let's see what happens when we start in severe recession." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "05c25dbe", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "217.74304876607997\n" - ] - } - ], - "source": [ - "psi = (0, 0, 1) \n", - "\n", - "for t in range(T):\n", - " psi = psi @ pH\n", - "\n", - "print(psi @ h)" - ] - }, - { - "cell_type": "markdown", - "id": "5ce8822d", - "metadata": {}, - "source": [ - "Profits are much lower because the Markov chain is relatively persistent,\n", - "implying that starting in recession increases the probability of recession at\n", - "date $t=5$.\n", - "\n", - "\n", - "Here's a solution to exercise 4.30." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "19a34421", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Profits in state 0 at date 1000 equals 788.1599999999967\n", - "Profits in state 1 at date 1000 equals 788.1599999999974\n", - "Profits in state 2 at date 1000 equals 788.1599999999972\n" - ] - } - ], - "source": [ - "T = 1000\n", - "\n", - "for i in (0, 1, 2):\n", - " psi = np.zeros(3)\n", - " psi[i] = 1\n", - " for t in range(T):\n", - " psi = psi @ pH\n", - " print(f\"Profits in state {i} at date {T} equals {psi @ h}\")" - ] - }, - { - "cell_type": "markdown", - "id": "dbb94562", - "metadata": {}, - "source": [ - "Notice that profits are almost invariant with respect to the initial\n", - "condition.\n", - "\n", - "This is due to inherent stability of the kernel, which implies that initial\n", - "conditions become irrelevant after sufficient time has elapsed.\n", - "\n", - "Here's a solution to exercise 4.31." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "899df564", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "385.45189053788556\n" - ] - } - ], - "source": [ - "T = 5\n", - "psi = (0.2, 0.2, 0.6) \n", - "\n", - "for t in range(T):\n", - " psi = psi @ pH\n", - "\n", - "print(psi @ h)" - ] - }, - { - "cell_type": "markdown", - "id": "96a6d8f0", - "metadata": {}, - "source": [ - "Here's a solution to exercise 4.32." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "5f72d86f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0008410000000000001\n" - ] - } - ], - "source": [ - "def path_prob(p, psi, X): # X gives a time path\n", - " prob = psi[X[0]]\n", - " for t in range(len(X)-1):\n", - " prob = prob * p[X[t], X[t+1]]\n", - " return prob\n", - "\n", - "psi = np.array((0.2, 0.2, 0.6))\n", - "prob = path_prob(pH, psi, (0, 1, 0))\n", - "\n", - "print(prob)" - ] - }, - { - "cell_type": "markdown", - "id": "824ca72b", - "metadata": {}, - "source": [ - "Here's a solution to exercise 4.33." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "ce450db8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.704242\n" - ] - } - ], - "source": [ - "counter = 0\n", - "recession_states = 1, 2\n", - "for x0 in recession_states:\n", - " for x1 in recession_states:\n", - " for x2 in recession_states:\n", - " path = x0, x1, x2\n", - " counter += path_prob(pH, psi, path)\n", - "\n", - "print(counter)" - ] - }, - { - "cell_type": "markdown", - "id": "c13139d3", - "metadata": {}, - "source": [ - "Here's a solution to exercise 4.34." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "94054878", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.7085" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "counter = 0\n", - "m = 10_000\n", - "mc = MarkovChain(pH)\n", - "\n", - "for i in range(m):\n", - " x0 = tau(np.random.rand(), S, psi)\n", - " X = mc.simulate(init=x0, ts_length=3)\n", - " if 0 not in X:\n", - " counter += 1\n", - "\n", - "print(counter / m)" - ] - }, - { - "cell_type": "markdown", - "id": "528fa1d5", - "metadata": {}, - "source": [ - "Next we turn to exercise 4.36." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "643329b7", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_47_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "max_T = 12\n", - "T_vals = range(max_T)\n", - "profits = []\n", - "r = 0.05\n", - "rho = 1 / (1+r)\n", - "\n", - "psi = (0.2, 0.2, 0.6) \n", - "h = (1000, 0, -1000) \n", - "current_profits = np.inner(psi, h)\n", - "discount = rho\n", - "Q = np.identity(3)\n", - "\n", - "for t in T_vals:\n", - " Q = Q @ pH\n", - " discount = discount * rho\n", - " current_profits += discount * np.inner(psi, Q @ h)\n", - " profits.append(current_profits)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(profits, label='profits')\n", - "ax.plot(np.zeros(max_T), '--', label='break even')\n", - "ax.set_xlabel('time')\n", - "ax.legend()\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "07b8029a", - "metadata": {}, - "source": [ - "Here's figure 4.11." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "e03f0611", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_49_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00),\n", - " (0.05 , 0.92 , 0.03 , 0.00 , 0.00),\n", - " (0.00 , 0.04 , 0.92 , 0.04 , 0.00),\n", - " (0.00 , 0.00 , 0.04 , 0.94 , 0.02),\n", - " (0.00 , 0.00 , 0.00 , 0.01 , 0.99))\n", - "\n", - "p_Q = np.array(p_Q)\n", - "states = 0, 1, 2, 3, 4\n", - "dates = 10, 60, 160\n", - "initial_states = 0, 4\n", - "\n", - "rows, cols = 2, 3\n", - "fig, axes = plt.subplots(rows, cols)\n", - "\n", - "for row, init in enumerate(initial_states):\n", - " psi = np.zeros(5)\n", - " psi[init] = 1\n", - " for col, d in enumerate(dates):\n", - " ax = axes[row, col]\n", - " ax.bar(states, \n", - " psi @ np.linalg.matrix_power(p_Q, d), \n", - " alpha=0.5,\n", - " edgecolor='k')\n", - " ax.set_title(f\"$X_0 = {init}, t = {d}$\")\n", - " ax.set_ylabel(\"prob\")\n", - " ax.set_xlabel(\"state\")\n", - "\n", - "plt.tight_layout()\n", - "\n", - "#plt.savefig(\"dds2.pdf\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "d6d5856d", - "metadata": {}, - "source": [ - "And here's figure 4.12." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "622c25b4", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAakAAAEYCAYAAADmugmLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgcklEQVR4nO3df7BcdX3/8eeLBKSCmEJSfySEUAU0/Ky9QBx+VC22IaJgZWyAAX/RFGoqTKVGHUe0WAFr+0UQYVK+DLR0jFStxUiq1gkjBaFcCIghAw1U5AIpRBECWDHk3T/OuXFZ9vc95+5nz3k9ZnbY82vPe29e7HvP7tnPUURgZmaWoh2GXYCZmVk7blJmZpYsNykzM0uWm5SZmSXLTcrMzJLlJmVmZslykzIzs2RVoklJeo2kZyS9qmHeKZIekbRnSfvcXdK/5Pt9UNLJPW73sKRDCqphuaRxSb+UdFWbdZZK2pDXeb+ko6ZSf1XUODM3SPpfSU/nt3t7rbFOmalxPjq+pkwlHwPnJyIqcQO+AlyY338j8ARwWIn7+3K+z12BI4Engf27bDMb+BXwkoJq+CPgBOAy4KoWy98KPAgsIntDMheYO2j9VbvVNDM3AKcPUmPdMlPTfHR7TRk4H4PmZ+hBKPAf+A3Az4EDgEeBPy5xX7sAzwH7Nsz7R+CCDtu8FvgF8DzwNPBTYGZB9XymTaBuBj5QRP1VvNUxM52aVKca65iZOuaj4bFf9JoylXxMJT+V+LgPICLuAP4TuBW4LCK+0uu2klZL+nmb2+oWm+wLPB8R9zXMuwvYv0N9G4FzgK9GxK4RsUdEbJ1CDd2e0wxgDJgjaaOkCUlflPQbg9RfRTXOzPmSNku6SdKbeqyxdpmpcT7amUo+Bs7PzAEKTZKkHcjeUWwDLmxa9tfA0cD/AKdFxLONyyPiuD53tyvZoWqjJ4GXddnuYODOVgsGqKGbVwA7AicCR5F9JPCvwCeAf2Ow+iulpplZAdxD9q52KfBNSYdExP1dahy0/pFV03x0MpV8DJyfyhxJAX8LzAL+CzhlcqakA4DXRMRRwL8D7y9gX08DuzXN2w3Y0mW7Q8jePUyHX+T/vSQiHo2IzcDfAUsYvP6qqV1mIuLWiNgSEb+MiKuBm8gy0a3GOmamdvnoYir5GDg/lWhSkv4UeCfZF34XAn8pSfnio4A1+f01ZF/YNW+/puFsp+bbmub1gfuAmZL2aZh3MLC+Q407kH22fWeb5f3W0FFEPAFMAK2Gue+7/qpxZrYLYPJ5d6qxVplxPlqaSj4Gz09ZXwRO1w04huwLwwPz6RnA/cAJ+fTHG+7PAr5T0H5XkZ2tsgtwBC88y+UqWn/pGMC8Ap/7TGBn4HyyLyF3puGLU+CvgNuA3wJ+E7gROK9b/VW/1TUz+XP5w8mckB0dPAPs12ONtchMXfORP2a315SB8zFofoYeiCn+QV8HbAaWNM3/IPCD/P6ZwHvy+3sBqwra9+7AN/L/yX8CnNyw7HvAn7TY5jLgKWCioBo+lYe08faphuU7Al8iO0NpE3AxsHO3+qt8q3NmgDlkb1q25Jm4BXhrHzVWPjN1zkf+eN1eUwbOx6D5Ub5xZUk6EPhYRJwsaRnZ7wkuKXF/O5F9RnxQRPyqrP1YeZwZ68T5mF6VObuvnYi4W9mvm28EHgNOK3l/zwGvL3MfVi5nxjpxPqZX5Y+kzMxsdFXi7D4zM6umUpuUpMWS7lU24sFHO6x3qKTnJZ1YZj1mZjZaSmtSyobluRQ4FlgInCRpYZv1LgS+XVYtZmY2mso8ceIwYGNEPAAgaRVwPNmQLI3+HPgacGgvDzp79uxYsGBBgWVaN7fffvvmiJgz7DoG5cxML+fF+tUpM2U2qbnAQw3TE8DhjStImkv2q+630GOTWrBgAePj40XVaD2Q9OCwa5gKZ2Z6OS/Wr06ZKfM7KbWY13wq4UXAioh4vuMDScuUXYhr/PHHHy+qPjMzS1yZR1ITQOMVLOcBjzStMwasyofEmg0skbQ1Ir7RuFJErARWAoyNjfmceTOzmiizSd0G7CNpb+BhsssCvOBywRGx9+R9ZZcqXt3coLo597OfY2LT5r6Lm/fK2Xz64x/pezsbfc6M9cN5Ga7SmlREbJW0nOysvRnAlRGxXtIZ+fLLi9jPxKbNHPD20/ve7kffvKKI3dsIcmasH87LcJU6LFJEXA9c3zSvZXOKiPeWWYuZmY0ejzhhZmbJcpMyM7NkuUmZmVmy3KTMzCxZblJmZpasyl/00MzMijddvx9zkzIzs75N1+/H/HGfmZkly03KzMyS5Y/7zAzwGHWWJjcpMwM8Rp2lyR/3mZlZstykzMwsWW5SZmaWLDcpMzNLlpuUmZkly03KzMyS5SZlZmbJcpMys5ElabGkeyVtlPTRFstPkfTD/HazpIOHUacNzk3KzEaSpBnApcCxwELgJEkLm1b7b+D3IuIg4Dxg5fRWaVPlJmXJ8Lti69NhwMaIeCAingNWAcc3rhARN0fEE/nkLcC8aa7RpshNypLgd8U2gLnAQw3TE/m8dj4ArCm1Iiucx+6zVGx/VwwgafJd8T2TK0TEzQ3r+12xqcW8aLmi9GayJnVkm+XLgGUA8+fPL6o+K4CPpCwVhb4rlrRM0rik8ccff7ygEi0xE8CeDdPzgEeaV5J0EHAFcHxE/LTVA0XEyogYi4ixOXPmlFKsDcZNylIxyLviFe0ezC86tXAbsI+kvSXtBCwFrmtcQdJ84OvAqRFx3xBqtCnqqUlJ2kPSJZLukHS7pC9I2qPs4mw0DZiXwt4V2+gZJDMRsRVYDnwb2ABcGxHrJZ0h6Yx8tU8CewBfknSnpPFSn4gVrtfvpFYB3wfelU+fAnwFOKaMomzkDZKX7e+KgYfJ3hWf3LiC3xVX2kCvMRFxPXB907zLG+6fDvR/kSxLRq9NaveIOK9h+jOSTiihHquGvvMSEVslTb4rngFcOfmuOF9+OS98VwywNSLGyngCNu38GmMt9dqk1kpaClybT58IfKuckqwCBsrLKL0r9qXWC1f51xhnZjAdm5SkLWRfXgv4C+CafNEOwNPAuaVWZyOlTnnxpdaL4cx0V/fMdGxSEfGy6Spk2PwuZ+rqlBcrhjNj3fT8Y15J7wCOzidviIjVPWyzGPgC2XcMV0TEBU3LT+HXpxE/DZwZEXf1WlOR/C6nWIPkxerNmbFWej0F/QLgLLJf/98DnJXP67SNh7mpqUHyYvXmzFg7vR5JLQEOiYhtAJKuBtYBLxoEtIGHuamvQfJi9ebMWEv9jDgxq+H+y3tYv7BhbjzEzUia1XC/l7yYzWq478wY0PuR1GeBdZLWkp2FczTwsS7bFDb4Y0SsJP8ocGxsrOVjWFIGyYvVmzNjLXVtUpJ2ALYBi4BDyQK0IiI2ddm032FujvUwN6NvCnmxmnJmrJOuTSoitklaHhHX0jR4Yxce5qaGppAXqylnxjrp9Tup70o6R9KeknafvHXawIM/1lrfebHac2aspV6/k3o/2fdJf9Y0/7c7bTRKw9xYoQbKi9WaM9ODogYdGKXBC3ptUgvJwnMkWZBuBC7vuIXVmfPSoyJeLEbpBacDZ6YHRQ06MEqDF/TapK4GngIuzqdPyue9u4yibOQ5Lz0q4sVilF5wOnBmrKVem9R+EXFww/RaSUMZvshGgvNi/XJmrKVeT5xYJ2nR5ISkw4GbyinJKsB5sX45M9ZSr0dShwOnSfpJPj0f2CDpbiDysffMJjkv1i9nxlrqtUktLrUKK8UQv1B3Xqxfzoy11FOTiogHyy6kCgZtClDOmVbD+kLdebF+OTPWTs/Xk7LuBm0KkNyZVmZmSehnFHQzM7Np5SZlZmbJcpMyM7Nk+TupBFVkmBszsylzk0pQRYa5MTObMn/cZ2ZmyXKTMjOzZLlJmZlZstykzMwsWW5SZmaWLDcpMzNLlpuUmZkly03KzMyS5SZlZmbJcpMyM7NkuUmZmVmy3KTMzCxZblJmZpYsNykzM0uWm5SZmSXLTcrMzJLlJmVmZskqtUlJWizpXkkbJX20xXJJujhf/kNJbyizHkub82L9cmaqr7QmJWkGcClwLLAQOEnSwqbVjgX2yW/LgMvKqsfS5rxYv5yZeijzSOowYGNEPBARzwGrgOOb1jke+IfI3ALMkvSqEmuydDkv1i9npgYUEeU8sHQisDgiTs+nTwUOj4jlDeusBi6IiP/Ip78HrIiI8abHWkb2LghgP+DeHsuYDWye0hMpTkq1QH/17BURc8ospsi85MucmWIllRfwa0wLo1xL28zMLKaeltRiXnNH7GUdImIlsLLvAqTxiBjrd7sypFQLpFcPBeYFnJmipVRLA7/GNKhqLWV+3DcB7NkwPQ94ZIB1rB6cF+uXM1MDZTap24B9JO0taSdgKXBd0zrXAaflZ+AsAp6MiEdLrMnS5bxYv5yZGijt476I2CppOfBtYAZwZUSsl3RGvvxy4HpgCbAReBZ4X8Fl9H34XqKUaoHE6kkkL5DW38W1dJBIZlL6u1SyltJOnDAzM5sqjzhhZmbJcpMyM7NkVbZJdRsuZRrr2FPSWkkbJK2XdNawammoaYakdflvSAznpUtNzksLzkzHmgrLTCWbVI/DpUyXrcCHI+L1wCLgg0OsZdJZwIYh15AM56Ur56WJM9NVYZmpZJOit+FSpkVEPBoRd+T3t5D9w80dRi0AkuYBbwOuGFYNCXJe2nBe2nJm2ig6M1VtUnOBhxqmJxjiP9okSQuA3wFuHWIZFwEfAbYNsYbUOC/tXYTz0ooz095FFJiZqjapnofPmS6SdgW+BpwdEU8NqYbjgMci4vZh7D9hzkvrGpyX9pyZ1jUUnpmqNqmkhkKRtCNZeP4pIr4+rDqAI4B3SPox2ccTb5F0zRDrSYXz0prz0p4z01rhmankj3klzQTuA34feJhs+JSTI2L9EGoRcDXws4g4e7r3346kNwHnRMRxQy5l6JyX7pyXF3JmuisqM5U8koqIrcDkcCkbgGuHEZ7cEcCpZO8o7sxvS4ZUi7XgvFi/nJnpU8kjKTMzq4ZKHkmZmVk1uEmZmVmy3KTMzCxZblJmZpYsNykzM0uWm1SBJJ0t6aVFrWfV58xYP+qYF5+CXqD8V9ZjEbG5iPWs+pwZ60cd8+IjqQFJ2kXStyTdJelHks4FXg2slbQ2X+cySeP5NV4+nc/7UIv1/kDSDyTdIemf8zG4rGKcGeuH85KLCN8GuAHvAv6+YfrlwI+B2Q3zds//OwO4ATgon96+HjAb+D6wSz69AvjksJ+fb86Mb85LCjcfSQ3ubuAYSRdKOioinmyxzrsl3QGsA/Ynuzhas0X5/Jsk3Qm8B9irpJptuJwZ64fzAswcdgGjKiLuk/S7wBLgfEnfaVwuaW/gHODQiHhC0lXAzi0eSsB3I+Kksmu24XJmrB/OS8ZHUgOS9Grg2Yi4Bvg88AZgC/CyfJXdgGeAJyW9guwy05Ma17sFOELSa/PHfamkfafhKdg0c2asH85LxkdSgzsQ+BtJ24BfAWcCbwTWSHo0It4saR2wHngAuKlh25VN670X+LKkl+TLP0F2GQCrFmfG+uG84FPQzcwsYf64z8zMkuUmZWZmyXKTMjOzZLlJmZlZstykzMwsWW5SZmaWLDcpMzNLlpuUmZkly03KzMyS5SZlZmbJcpMyM7NkuUmZmVmy3KTMzCxZlWhSkl4j6RlJr2qYd4qkRyTtWfK+95H0v5Ku6XH9hyUdUtC+l0sal/TL/IJnrdZZKmlD/ve5X9JR+fzdJf1LPv9BSScXUdOoqHFmbsj3/XR+u7dpedtc1CkzNc5Hx9eUqeRj0PxUoklFxP3AauBsAElvBL4InBARD5W8+0uB23pZUdJs4LeADQXt+xHgM8CVbfb3VuBC4H1kF0A7muy6M5DV/RzwCuAU4DJJ+xdUV/JqnBmA5RGxa37br0Vt7XJRm8zUOB8dX1OYWj4Gy09EVOJGdtXKnwMHAI8CfzwN+1wKXAt8Crimy7qvBX4BPA88DfwUmFlQHZ8Brmox/2bgAy3m75KHZd+Gef8IXDDsf0dnptzMADcAp7dZ1jYXdcxMHfPR8Ngvek2ZSj6mkp9KHEkBRMQdwH8CtwKXRcRXet1W0mpJP29zW91mm92AvwI+3GN9G4FzgK9G9g52j4jYOpUaujynGcAYMEfSRkkTkr4o6TeAfYHnI6Lxypx3AZV8V9xOjTNzvqTNkm6S9KaG+Z1yUbvM1Dgf7UwlHwPnpzKXj5e0A9k7im1kH3E1Lvtrso+6/gc4LSKebVweEccNsMvzgP8fEQ9J6nWbg4E7Wy0YsIZOXgHsCJwIHEV2+el/Jbts9L8BTzat/yTZR4K1UdPMrADuIXtXuxT4pqRDIvt4a1fa56LTskqqaT46mUo+Bs5PZY6kgL8FZgH/RfZ5JwCSDgBeExFHAf8OvH+qO8q/pDwG+H99bnoI2buH6fCL/L+XRMSjEbEZ+DtgCdlHA7s1rb8bsGWaaktF7TITEbdGxJaI+GVEXA3cRJYJ6JyLOmamdvnoYir5GDg/lWhSkv4UeCdwAtk7nr/Ur9+KHAWsye+vAY5ssf0a/fpsp+bbmub1gTcBC4CfSNpEdsj9Lkl3dKhxB7LPtu9ss7zfGjqKiCeACSBaLL4PmClpn4Z5BwPr+93PqHJmtgtg8nl3ykWtMuN8tDSVfAyen7K/CCz7Rvbu46fAgfn0DOB+srNwAD7ecH8W8J0C9vlS4JUNt88DXwXm5MuvovWXjgHMK/C5zwR2Bs4n+xJyZxq+OCX7fPs2srN/fhO4ETgvX7YK+HJe1xFkh977D/vf05kpLzP5c/nDyZyQHR08A+zXsE7bXNQlM3XNR/6Y3V5TBs7HoPkZeiCm+Ad9HbAZWNI0/4PAD/L7ZwLvye/vBawqoY5P0XAmDvA94E9arHcZ8BQwUeB+o+n2qYblOwJfIjtDaRNwMbBzvmx34Bv5i9RPgJOH/e/pzJSbGWAO2ZuWLXkmbgHe2rRO21zUITN1zkfDfju9pgycj0Hzo3zjypJ0IPCxiDhZ0jLgJRFxSYn724nsM+KDIuJXZe3HyuPMWCfOx/SqzNl97UTE3cp+3Xwj8BhwWsn7ew54fZn7sHI5M9aJ8zG9Kn8kZWZmo6sSZ/eZmVk1uUmZmVmy3KTMzCxZI3fixOzZs2PBggXDLqNWbr/99s0RMWfYdQzKmZlezov1q1NmRq5JLViwgPHx8WGXUSuSHhx2DVPhzEwv58X61Skz/rjPzMyS5SZlZmbJGrmP+6x35372c0xs2tz3dvNeOZtPf/wjJVSUBv9dWvPfpTX/XYbLTarCJjZt5oC3n973dj/65hUlVJMO/11a89+lNf9dhssf95mZWbLcpMzMLFluUmZmlqxSm5SkxZLulbRR0kc7rHeopOclnVhmPWZmNlpKa1KSZgCXAscCC4GTJC1ss96FwLfLqsXMzEZTmWf3HQZsjIgHACStAo4H7mla78+BrwGHlliLmZkVaLpOzS+zSc0FHmqYngAOb1xB0lzgncBb6NCk8qtfLgOYP39+4YWamVl/puvU/DK/k1KLec1XWLwIWBERz3d6oIhYGRFjETE2Z87IjltpZmZ9KvNIagLYs2F6HvBI0zpjwCpJALOBJZK2RsQ3SqzLzMxGRJlN6jZgH0l7Aw8DS4GTG1eIiL0n70u6CljtBmVmZpNKa1IRsVXScrKz9mYAV0bEekln5MsvL2vfZmZWDaWO3RcR1wPXN81r2Zwi4r1l1mJmZqPHI06YmVmy3KTMzCxZblJmZpYsNykzM0uWm5SZmSXLTcqS0W3UfEmnSPphfrtZ0sHDqNPMpo+blCWhx1Hz/xv4vYg4CDgPWDm9VZrZdHOTslRsHzU/Ip4DJkfN3y4ibo6IJ/LJW8iG2rIa89F39blJWSpajZo/t8P6HwDWtFsoaZmkcUnjjz/+eEElWkp89F0PblKWil5Gzc9WlN5M1qRWtHswj5xfCz76rgE3KUtFL6PmI+kg4Arg+Ij46TTVZmkq7OjbR97pcpOyVGwfNV/STmSj5l/XuIKk+cDXgVMj4r4h1GhpKezo20fe6Sp1gFmzXvU4av4ngT2AL+XXINsaEWPDqtmGrt+j72N99D163KQsGd1GzY+I04H+r1dtVdX1mnU++h59PX3cJ2kPSZdIukPS7ZK+IGmPsouz0eS8WL8GyUxEbAUmj743ANdOHn1PHoHzwqPvOyWNl/pErHC9HkmtAr4PvCufPgX4CnBMGUXZyHNerF8DZcZH39XXa5PaPSLOa5j+jKQTSqjHqqHyeTn3s59jYtPmvreb98rZfPrjHymhopHnzLRR98z02qTWSloKXJtPnwh8q5ySrAIqn5eJTZs54O39v0H/0TevKKGaSnBm2qh7Zjo2KUlbyE7pFPAXwDX5oh2Ap4FzS63ORorzYv1yZqybjk0qIl42XYXY6HNerF/OjHXT8ynokt4BHJ1P3hARq8spyarAebF+OTPWSq+noF8AnAXck9/OyueZvYjzYv1yZqydXo+klgCHRMQ2AElXA+uAFw2Nb4bzYv1zZqylfsbum9Vw/+UF12HVM6vhvvNivZjVcN+ZMaD3I6nPAuskrSU7C+do4GOlVWWjznmxfjkz1lLXJiVpB2AbsAg4lCxAKyJiUw/bLga+QDZg6BURcUHT8lP49ajETwNnRsRdfT0DS8pU8mL15MxYJ12bVERsk7Q8Iq6l6dIJnTRcNfOtZKMV3ybpuoi4p2G1yatmPiHpWLKrZh7e1zOwpAyal7oqYhSCUR/JwJmxTnr9uO+7ks4hG0vrmcmZEfGzDttsv2omgKTJq2Zub1IRcXPD+r5qZnUMkpdaKmIUgoqMZODMWEu9Nqn3k/0q/M+a5v92h21aXTWz01FSx6tmAssA5s+f361WG75B8mL15sz0oKij5lE6+u61SS0kC8+RZEG6Ebi84xaDXTXzyFbLI2Il2UeBjI2NtXwMS8ogebF6c2Z6UNRR8ygdfffapK4GngIuzqdPyue9u8M2vmpmfQ2SF6s3Z8Za6rVJ7RcRBzdMr5XU7Sw8XzWzvgbJi9WbM2Mt9fpj3nWSFk1OSDocuKnTBr5qZq31nZd8vcWS7pW0UdKLRhqQ9DpJP5D0y/xLdquOgTJj1dfrkdThwGmSfpJPzwc2SLobiIg4qNVGvmpmbfWdlx5/svAz4EPACWUWb0Mx0GuMVV+vTWpxqVVY1QySl15+svAY8JiktxVSpaXErzHWUk9NKiIeLLuQQY3SqZS9GvXnNGBe+v3JQkf+2cJoSfk1xoar5+tJpWqUTqXsVRWfUw96/slCL/yzBbNq6GcUdLMy9fSTBTOrFzcpS8X2nyxI2onsJwsex82s5kb+4z6rhojYKmnyJwszgCsnf7KQL79c0iuBcWA3YJuks4GFEfHUsOo2s3K5SVkyevjJwiY8CLFZrbhJFWjQs/IgnTPzzMxS4iZVoEHPyoORPzPPzKwUblK5Uf9tkplZFblJ5Wr62yQzs6T5FHQzM0uWm5SZmSXLTcrMzJLlJmVmZslykzIzs2S5SZmZWbLcpMzMLFluUmZmliw3KTMzS5ablJmZJctNyszMkuUmZWZmyXKTMjOzZLlJmZlZskptUpIWS7pX0kZJH22xXJIuzpf/UNIbyqzH0ua8WL+cmeorrUlJmgFcChwLLAROkrSwabVjgX3y2zLgsrLqsbQ5L9YvZ6YeyjySOgzYGBEPRMRzwCrg+KZ1jgf+ITK3ALMkvarEmixdzov1y5mpAUVEOQ8snQgsjojT8+lTgcMjYnnDOquBCyLiP/Lp7wErImK86bGWkb0LAtgPuLfHMmYD/V8Tvhwp1QL91bNXRMwps5gi85Ivc2aKlVRewK8xLYxyLW0zU+bl49ViXnNH7GUdImIlsLLvAqTxiBjrd7sypFQLpFcPBeYFnJmipVRLA7/GNKhqLWV+3DcB7NkwPQ94ZIB1rB6cF+uXM1MDZTap24B9JO0taSdgKXBd0zrXAaflZ+AsAp6MiEdLrMnS5bxYv5yZGijt476I2CppOfBtYAZwZUSsl3RGvvxy4HpgCbAReBZ4X8Fl9H34XqKUaoHE6kkkL5DW38W1dJBIZlL6u1SyltJOnDAzM5sqjzhhZmbJcpMyM7NkVbZJdRsuZRrr2FPSWkkbJK2XdNawammoaYakdflvSAznpUtNzksLzkzHmgrLTCWbVI/DpUyXrcCHI+L1wCLgg0OsZdJZwIYh15AM56Ur56WJM9NVYZmpZJOit+FSpkVEPBoRd+T3t5D9w80dRi0AkuYBbwOuGFYNCXJe2nBe2nJm2ig6M1VtUnOBhxqmJxjiP9okSQuA3wFuHWIZFwEfAbYNsYbUOC/tXYTz0ooz095FFJiZqjapnofPmS6SdgW+BpwdEU8NqYbjgMci4vZh7D9hzkvrGpyX9pyZ1jUUnpmqNqmkhkKRtCNZeP4pIr4+rDqAI4B3SPox2ccTb5F0zRDrSYXz0prz0p4z01rhmankj3klzQTuA34feJhs+JSTI2L9EGoRcDXws4g4e7r3346kNwHnRMRxQy5l6JyX7pyXF3JmuisqM5U8koqIrcDkcCkbgGuHEZ7cEcCpZO8o7sxvS4ZUi7XgvFi/nJnpU8kjKTMzq4ZKHkmZmVk1uEmZmVmy3KTMzCxZblJmZpYsNykzM0uWm1SBJJ0t6aVFrWfV58xYP+qYF5+CXqD8V9ZjEbG5iPWs+pwZ60cd8+IjqQFJ2kXStyTdJelHks4FXg2slbQ2X+cySeP5NV4+nc/7UIv1/kDSDyTdIemf8zG4rGKcGeuH85KLCN8GuAHvAv6+YfrlwI+B2Q3zds//OwO4ATgon96+HjAb+D6wSz69AvjksJ+fb86Mb85LCjcfSQ3ubuAYSRdKOioinmyxzrsl3QGsA/Ynuzhas0X5/Jsk3Qm8B9irpJptuJwZ64fzAswcdgGjKiLuk/S7wBLgfEnfaVwuaW/gHODQiHhC0lXAzi0eSsB3I+Kksmu24XJmrB/OS8ZHUgOS9Grg2Yi4Bvg88AZgC/CyfJXdgGeAJyW9guwy05Ma17sFOELSa/PHfamkfafhKdg0c2asH85LxkdSgzsQ+BtJ24BfAWcCbwTWSHo0It4saR2wHngAuKlh25VN670X+LKkl+TLP0F2GQCrFmfG+uG84FPQzcwsYf64z8zMkuUmZWZmyXKTMjOzZLlJmZlZstykzMwsWW5SZmaWLDcpMzNL1v8BN+s7J+61kpwAAAAASUVORK5CYII=\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_51_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "dates = 160, 500, 1000\n", - "\n", - "fig, axes = plt.subplots(rows, cols)\n", - "\n", - "for row, init in enumerate(initial_states):\n", - " psi = np.zeros(5)\n", - " psi[init] = 1\n", - " for col, d in enumerate(dates):\n", - " ax = axes[row, col]\n", - " ax.bar(states, \n", - " psi @ np.linalg.matrix_power(p_Q, d), \n", - " alpha=0.5,\n", - " edgecolor='k')\n", - " ax.set_title(f\"$X_0 = {init}, t = {d}$\")\n", - " ax.set_ylabel(\"prob\")\n", - " ax.set_xlabel(\"state\")\n", - "\n", - "plt.tight_layout()\n", - "\n", - "#plt.savefig(\"dds3.pdf\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "93f0a81b", - "metadata": {}, - "source": [ - "Next we turn to exercise 4.42.\n", - "\n", - "First here's a function to compute the stationary distribution, assuming it is\n", - "unique." - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "4004571d", - "metadata": {}, - "outputs": [], - "source": [ - "from numpy.linalg import solve\n", - "\n", - "def compute_stationary(p):\n", - " N = p.shape[0]\n", - " I = np.identity(N)\n", - " O = np.ones((N, N))\n", - " A = I - p + O\n", - " return solve(A.T, np.ones((N, 1))).flatten()\n" - ] - }, - { - "cell_type": "markdown", - "id": "a111a149", - "metadata": {}, - "source": [ - "Now let's apply it to `p_Q`." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "7addc2f4", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_55_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "psi_star = compute_stationary(p_Q)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.bar(states, psi_star, alpha=0.5, edgecolor='k')\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "5b305033", - "metadata": {}, - "source": [ - "As expected, the distribution is very similar to the time 1,000 distribution\n", - "we obtained above by shifting forward in time.\n", - "\n", - "\n", - "Now let's look at exercise 4.43." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "c91e4b92", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "788.1600000000004\n" - ] - } - ], - "source": [ - "psi_star = compute_stationary(pH) \n", - "print(np.inner(psi_star, h))" - ] - }, - { - "cell_type": "markdown", - "id": "615c9dcb", - "metadata": {}, - "source": [ - "If we compute profits at $t=1000$, starting from a range of initial\n", - "conditions, we get very similar results." - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "a13b5567", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "788.1599999999779\n", - "788.1599999999786\n", - "788.1599999999784\n" - ] - } - ], - "source": [ - "pT = np.linalg.matrix_power(pH, 1000)\n", - "psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1)\n", - "\n", - "for psi in psi_vecs:\n", - " print(np.inner(psi, pT @ h))" - ] - }, - { - "cell_type": "markdown", - "id": "5c48edc5", - "metadata": {}, - "source": [ - "This is not surprising, since `p_H` is globally stable.\n", - "\n", - "\n", - "Here's the solution to exercise 4.57, which computes mean return time.\n", - "\n", - "I'll use JIT compilation to make the code fast." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "ac42e418", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1.22771, 6.14, 40.60528]" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "@jit\n", - "def compute_return_time(x, p, max_iter=100_000):\n", - " X = x\n", - " t = 0\n", - " while t < max_iter:\n", - " W = np.random.rand()\n", - " X = tau(W, S, pH[X, :])\n", - " t += 1\n", - " if X == x:\n", - " return t\n", - "\n", - "@jit\n", - "def compute_mean_return_time(x, p, n=100_000):\n", - " counter = 0\n", - " for i in range(n):\n", - " counter += compute_return_time(x, p)\n", - " return counter / n\n", - "\n", - "\n", - "[compute_mean_return_time(i, pH) for i in range(3)]\n" - ] - }, - { - "cell_type": "markdown", - "id": "b95f0859", - "metadata": {}, - "source": [ - "For comparison:" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "0f54da65", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 1.23031496, 6.1515748 , 40.58441558])" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "psi_star = compute_stationary(pH)\n", - "1/ psi_star\n" - ] - }, - { - "cell_type": "markdown", - "id": "8b15692a", - "metadata": {}, - "source": [ - "As predicted by the theory, the values are approximately equal.\n", - "\n", - "\n", - "Now let's turn to the inventory model." - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "b520cd38", - "metadata": {}, - "outputs": [], - "source": [ - "def b(d):\n", - " \" Returns probability that demand = d.\"\n", - " return (d >= 0) * (1/2)**(d + 1)\n", - "\n", - "def h(x, q, Q):\n", - " return x + (Q - x) * (x <= q)\n", - "\n", - "def build_p(q=2, Q=5): \n", - " p = np.empty((Q+1, Q+1))\n", - " for x in range(Q+1):\n", - " for y in range(Q+1):\n", - " if y == 0:\n", - " p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q)\n", - " else:\n", - " p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y\n", - "\n", - " return p\n" - ] - }, - { - "cell_type": "markdown", - "id": "7cd17bfd", - "metadata": {}, - "source": [ - "Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the\n", - "one shown in the text." - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "e52e7d00", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0.0625, 0.0625, 0.125 , 0.25 , 0.25 , 0.25 ])" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "p = build_p()\n", - "compute_stationary(p)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "86922d14", - "metadata": {}, - "source": [ - "Yep, looks good.\n", - "\n", - "Now let's check that the optimal policy agrees with $q=7$, as claimed in the text." - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "4ded625d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "7" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Q = 20 # inventory upper bound\n", - "C = 0.1 # cost of restocking\n", - "\n", - "# profit given state x, demand d, policy q\n", - "def profit(x, d, q):\n", - " stock = h(x, q, Q)\n", - " revenue = stock if stock < d else d\n", - " cost = C * (x <= q)\n", - " return revenue - cost\n", - "\n", - "# expected profit given x and policy q\n", - "def g(x, q):\n", - " counter = 0\n", - " for d in range(1000):\n", - " counter += profit(x, d, q) * b(d)\n", - " return counter\n", - "\n", - "def profit_at_stationary(q):\n", - " p = build_p(q=q, Q=Q)\n", - " stationary = compute_stationary(p)\n", - " counter = 0\n", - " for x in range(Q+1):\n", - " counter += g(x, q) * stationary[x]\n", - " return counter\n", - " \n", - "def compute_optimal_policy():\n", - " running_max = -np.inf\n", - " for q in range(Q+1):\n", - " counter = profit_at_stationary(q)\n", - " if counter > running_max:\n", - " running_max = counter\n", - " argmax = q\n", - " return(argmax)\n", - "\n", - "compute_optimal_policy()" - ] - }, - { - "cell_type": "markdown", - "id": "cf28ff4c", - "metadata": {}, - "source": [ - "Here's a solution for exercise 4.61. From preceding calculations we have\n", - "the stationary probability assigned to normal growth:" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "9c2374fa", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.8128000000000003" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "psi_star = compute_stationary(pH) \n", - "psi_star[0]" - ] - }, - { - "cell_type": "markdown", - "id": "060d3023", - "metadata": {}, - "source": [ - "The fraction of the time a long path spends in this state can be calculated as\n", - "follows." - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "16ca34ba", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.810454" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "T = 1_000_000\n", - "mc = MarkovChain(pH)\n", - "X = mc.simulate(init=0, ts_length=T)\n", - "np.mean(X == 0)" - ] - }, - { - "cell_type": "markdown", - "id": "5ad51e47", - "metadata": {}, - "source": [ - "As expected given the LLN results for stable Markov chains, the two numbers are approximately equal.\n", - "\n", - "\n", - "Finally, let's look at the expected profits question in exercise 4.63.\n", - "\n", - "Previously we calculated steady state profits via" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "a7a2a773", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "788.1600000000004\n" - ] - } - ], - "source": [ - "h = (1000, 0, -1000)\n", - "psi_star = compute_stationary(pH) \n", - "print(np.inner(psi_star, h))" - ] - }, - { - "cell_type": "markdown", - "id": "7635d1dd", - "metadata": {}, - "source": [ - "To check that we get approximately the same results when simulating a long\n", - "time series, we can calculate as follows." - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "889200b3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "785.87" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y = [h[x] for x in X]\n", - "np.mean(y)" - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "source_map": [ - 14, - 20, - 25, - 32, - 77, - 82, - 112, - 121, - 141, - 146, - 157, - 163, - 173, - 179, - 189, - 200, - 220, - 226, - 242, - 251, - 259, - 265, - 270, - 280, - 289, - 293, - 301, - 307, - 315, - 320, - 334, - 342, - 358, - 363, - 372, - 376, - 383, - 393, - 402, - 412, - 420, - 424, - 435, - 439, - 449, - 454, - 466, - 470, - 497, - 502, - 534, - 540, - 562, - 570, - 580, - 584, - 592, - 601, - 604, - 609, - 615, - 624, - 646, - 650, - 654, - 661, - 680, - 686, - 692, - 698, - 734, - 741, - 744, - 750, - 755, - 765, - 769, - 775 - ] - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/code_book/_build/html/_sources/ch4.md b/code_book/_build/html/_sources/ch4.md deleted file mode 100644 index 4a4207b..0000000 --- a/code_book/_build/html/_sources/ch4.md +++ /dev/null @@ -1,778 +0,0 @@ ---- -jupytext: - cell_metadata_filter: -all - formats: md:myst - text_representation: - extension: .md - format_name: myst - format_version: 0.13 - jupytext_version: 1.10.3 -kernelspec: - display_name: Python 3 - language: python - name: python3 ---- - -# Chapter 4 Code - -Let's start with some imports. - -```{code-cell} ipython3 -import numpy as np -import matplotlib.pyplot as plt -from numba import jit -from quantecon import MarkovChain -``` - -## Introduction to Dynamics - -Here's the code that generated figure 4.1. - - -```{code-cell} ipython3 - -def draw_arrow(x, y, xp, yp, ax): - """ - Draw an arrow from (x, y) to (xp, yp). - """ - v1, v2 = xp - x, yp - y - eps = 1.0 - nrm = np.sqrt(v1**2 + v2**2) - scale = 1.0 - ax.arrow(x, y, scale * v1, scale * v2, - antialiased=True, - alpha=0.5, - head_length=0.025*(xmax - xmin), - head_width=0.012*(xmax - xmin), - fill=False) - -xmin, xmax = -10.0, 10.0 -ymin, ymax = -5.0, 5.0 - -A1 = np.asarray([[0.55, -0.6], - [0.5, 0.4]]) - -def f(x, y): - return A1 @ (x, y) - -xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10) -ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10) - -fig, ax = plt.subplots() - -#ax.set_xlim(xmin, xmax) -#ax.set_ylim(ymin, ymax) - -ax.set_xticks((0,)) -ax.set_yticks((0,)) -ax.grid() - -for x in xgrid: - for y in ygrid: - xp, yp = f(x, y) - draw_arrow(x, y, xp, yp, ax) - -#plt.savefig("sdsdiagram.pdf") # Uncomment to save figure -plt.show() -``` - - -And here's the code that generated figure 4.2. - -```{code-cell} ipython3 - - -def draw_trajectory(x, y, ax, n=10): - """ - Draw the trajectory of length n starting from (x, y). - """ - for i in range(n): - x_new, y_new = f(x, y) - draw_arrow(x, y, x_new, y_new, ax) - x, y = x_new, y_new - -xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3) -ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3) - -fig, ax = plt.subplots() - -#ax.set_xlim(xmin, xmax) -#ax.set_ylim(ymin, ymax) - -ax.set_xticks((0,)) -ax.set_yticks((0,)) -ax.grid() - -for x in xgrid: - for y in ygrid: - draw_trajectory(x, y, ax) - -#plt.savefig("sdsstable.pdf") # Uncomment to save figure -plt.show() -``` - - -## Chaotic Dynamics - -Just for fun, here's a little class that allows us to simulate trajectories -from a specified dynamical system: - - -```{code-cell} ipython3 -class DS: - - def __init__(self, h=None, x=None): - """Parameters: h is a function and x is an - element of S representing the current state.""" - self.h, self.x = h, x - - def update(self): - "Update the state of the system by applying h." - self.x = self.h(self.x) - - def trajectory(self, n): - """Generate a trajectory of length n, starting - at the current state.""" - traj = [] - for i in range(n): - traj.append(self.x) - self.update() - return traj -``` - -As in the textbook, let's plot a trajectory starting from 0.11. - - -```{code-cell} ipython3 - - -q = DS(h=lambda x: 4 * x * (1 - x), x=0.11) -t = q.trajectory(200) - -fig, ax = plt.subplots() -ax.plot(t) - -plt.show() - -``` - -Now let's generate a histograms from a long trajectory, to address exercise -4.16. - - -```{code-cell} ipython3 - -q.x = 0.11 -t = q.trajectory(5000) - -fig, ax = plt.subplots() -ax.hist(t, bins=40, alpha=0.5, edgecolor='k') - -plt.show() - -``` - -If you experiment with different initial conditions you will find that, for -all most all choices, the histogram looks the same. - - -```{code-cell} ipython3 - -q.x = 0.65 -t = q.trajectory(5000) - -fig, ax = plt.subplots() -ax.hist(t, bins=40, alpha=0.5, edgecolor='k') - -plt.show() - -``` - -What we have learned is that, although the trajectories seem very random, when -we take a statistical perspective we can make predictions. - -In particular, we can say what will happen "one average, in the long run." - - -Here's the set of maps. - - -```{code-cell} ipython3 - -xgrid = np.linspace(0, 1, 100) - -h = lambda x, r: r * x * (1 - x) - -fig, ax = plt.subplots() - -ax.plot(xgrid, xgrid, '-', color='grey') - -r = 0 -step = 0.3 - -while r <= 4: - y = [h(x, r) for x in xgrid] - ax.plot(xgrid, y) - r = r + step - -plt.show() - -``` - -Here's the bifurcation diagram. - - - -```{code-cell} ipython3 - -q = DS(h=None, x=0.1) - -fig, ax = plt.subplots() - -r = 2.5 -while r < 4: - q.h = lambda x: r * x * (1 - x) - t = q.trajectory(1000)[950:] - ax.plot([r] * len(t), t, 'k.', ms=0.4) - r = r + 0.005 - -ax.set_xlabel(r'$r$', fontsize=16) -plt.show() - -``` - - -## Markov Chains - - -Our first task is to simulate time series from Hamilton's Markov chain - - -```{code-cell} ipython3 -pH = ((0.971, 0.029, 0.000), # Hamilton's kernel - (0.145, 0.778, 0.077), - (0.000, 0.508, 0.492)) - -pH = np.array(pH) # Convert to numpy array - -S = np.array((0, 1, 2)) -``` - - -We'll borrow this code from Chapter 2. - - -```{code-cell} ipython3 -@jit -def tau(z, S, phi): - i = np.searchsorted(np.cumsum(phi), z) - return S[i] -``` - -(We have targeted the function for JIT compilation via `@jit` because we need -fast execution below.) - -As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`. - -Here's some code to generate a trajectory starting at $x \in S$, using -stochastic kernel $p$. - -```{code-cell} ipython3 -def trajectory(x, p, S, n=100): - - X = np.empty(n, dtype=int) - X[0] = x - for t in range(n-1): - W = np.random.rand() - X[t+1] = tau(W, S, p[X[t], :]) - return X -``` - -Let's plot a trajectory. - -```{code-cell} ipython3 -fig, ax = plt.subplots() - -X = trajectory(0, pH, S, n=500) - -ax.plot(X) -plt.show() - -``` - -Another option is to use existing code from QuantEcon. This code is -JIT-compiled and very fast. - - -```{code-cell} ipython3 - -mc = MarkovChain(pH, state_values=S) -X = mc.simulate(init=0, ts_length=500) - -fig, ax = plt.subplots() -ax.plot(X) -plt.show() -``` - -Here's a solution to exercises 4.23. - - -```{code-cell} ipython3 -@jit -def compute_marginal(n=100_000, T=10): - X_vals = np.empty(n) - - for i in range(n): - X = 2 # start in state SR - for t in range(T): - W = np.random.rand() - X = tau(W, S, pH[X, :]) - X_vals[i] = X - return np.mean(X_vals == 0) - -compute_marginal() -``` - -The answer is close to 0.6, as expected. - - -Here's a solution to exercise 4.24. - - -```{code-cell} ipython3 -@jit -def compute_marginal_2(n=100_000, T=10): - counter = 0 - - for i in range(n): - X = 2 # start in state SR - for t in range(T): - W = np.random.rand() - X = tau(W, S, pH[X, :]) - if X == 0: - counter += 1 - - return counter / n - -compute_marginal_2() -``` - -Here's a solution to exercise 4.29. - - -```{code-cell} ipython3 -T = 5 -psi = (1, 0, 0) # start in NG -h = (1000, 0, -1000) # profits - -for t in range(T): - psi = psi @ pH - -print(psi @ h) -``` - -Now let's see what happens when we start in severe recession. - -```{code-cell} ipython3 -psi = (0, 0, 1) - -for t in range(T): - psi = psi @ pH - -print(psi @ h) -``` - -Profits are much lower because the Markov chain is relatively persistent, -implying that starting in recession increases the probability of recession at -date $t=5$. - - -Here's a solution to exercise 4.30. - - -```{code-cell} ipython3 -T = 1000 - -for i in (0, 1, 2): - psi = np.zeros(3) - psi[i] = 1 - for t in range(T): - psi = psi @ pH - print(f"Profits in state {i} at date {T} equals {psi @ h}") -``` - -Notice that profits are almost invariant with respect to the initial -condition. - -This is due to inherent stability of the kernel, which implies that initial -conditions become irrelevant after sufficient time has elapsed. - -Here's a solution to exercise 4.31. - -```{code-cell} ipython3 -T = 5 -psi = (0.2, 0.2, 0.6) - -for t in range(T): - psi = psi @ pH - -print(psi @ h) -``` - -Here's a solution to exercise 4.32. - -```{code-cell} ipython3 -def path_prob(p, psi, X): # X gives a time path - prob = psi[X[0]] - for t in range(len(X)-1): - prob = prob * p[X[t], X[t+1]] - return prob - -psi = np.array((0.2, 0.2, 0.6)) -prob = path_prob(pH, psi, (0, 1, 0)) - -print(prob) -``` - -Here's a solution to exercise 4.33. - -```{code-cell} ipython3 -counter = 0 -recession_states = 1, 2 -for x0 in recession_states: - for x1 in recession_states: - for x2 in recession_states: - path = x0, x1, x2 - counter += path_prob(pH, psi, path) - -print(counter) -``` - - -Here's a solution to exercise 4.34. - -```{code-cell} ipython3 -counter = 0 -m = 10_000 -mc = MarkovChain(pH) - -for i in range(m): - x0 = tau(np.random.rand(), S, psi) - X = mc.simulate(init=x0, ts_length=3) - if 0 not in X: - counter += 1 - -print(counter / m) -``` - -Next we turn to exercise 4.36. - -```{code-cell} ipython3 -max_T = 12 -T_vals = range(max_T) -profits = [] -r = 0.05 -rho = 1 / (1+r) - -psi = (0.2, 0.2, 0.6) -h = (1000, 0, -1000) -current_profits = np.inner(psi, h) -discount = rho -Q = np.identity(3) - -for t in T_vals: - Q = Q @ pH - discount = discount * rho - current_profits += discount * np.inner(psi, Q @ h) - profits.append(current_profits) - -fig, ax = plt.subplots() -ax.plot(profits, label='profits') -ax.plot(np.zeros(max_T), '--', label='break even') -ax.set_xlabel('time') -ax.legend() - -plt.show() - -``` - -Here's figure 4.11. - - -```{code-cell} ipython3 -p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00), - (0.05 , 0.92 , 0.03 , 0.00 , 0.00), - (0.00 , 0.04 , 0.92 , 0.04 , 0.00), - (0.00 , 0.00 , 0.04 , 0.94 , 0.02), - (0.00 , 0.00 , 0.00 , 0.01 , 0.99)) - -p_Q = np.array(p_Q) -states = 0, 1, 2, 3, 4 -dates = 10, 60, 160 -initial_states = 0, 4 - -rows, cols = 2, 3 -fig, axes = plt.subplots(rows, cols) - -for row, init in enumerate(initial_states): - psi = np.zeros(5) - psi[init] = 1 - for col, d in enumerate(dates): - ax = axes[row, col] - ax.bar(states, - psi @ np.linalg.matrix_power(p_Q, d), - alpha=0.5, - edgecolor='k') - ax.set_title(f"$X_0 = {init}, t = {d}$") - ax.set_ylabel("prob") - ax.set_xlabel("state") - -plt.tight_layout() - -#plt.savefig("dds2.pdf") -plt.show() -``` - - -And here's figure 4.12. - - -```{code-cell} ipython3 -dates = 160, 500, 1000 - -fig, axes = plt.subplots(rows, cols) - -for row, init in enumerate(initial_states): - psi = np.zeros(5) - psi[init] = 1 - for col, d in enumerate(dates): - ax = axes[row, col] - ax.bar(states, - psi @ np.linalg.matrix_power(p_Q, d), - alpha=0.5, - edgecolor='k') - ax.set_title(f"$X_0 = {init}, t = {d}$") - ax.set_ylabel("prob") - ax.set_xlabel("state") - -plt.tight_layout() - -#plt.savefig("dds3.pdf") -plt.show() -``` - - -Next we turn to exercise 4.42. - -First here's a function to compute the stationary distribution, assuming it is -unique. - -```{code-cell} ipython3 -from numpy.linalg import solve - -def compute_stationary(p): - N = p.shape[0] - I = np.identity(N) - O = np.ones((N, N)) - A = I - p + O - return solve(A.T, np.ones((N, 1))).flatten() - -``` - -Now let's apply it to `p_Q`. - -```{code-cell} ipython3 - -psi_star = compute_stationary(p_Q) - -fig, ax = plt.subplots() -ax.bar(states, psi_star, alpha=0.5, edgecolor='k') - -plt.show() -``` - -As expected, the distribution is very similar to the time 1,000 distribution -we obtained above by shifting forward in time. - - -Now let's look at exercise 4.43. - - -```{code-cell} ipython3 -psi_star = compute_stationary(pH) -print(np.inner(psi_star, h)) -``` - -If we compute profits at $t=1000$, starting from a range of initial -conditions, we get very similar results. - -```{code-cell} ipython3 -pT = np.linalg.matrix_power(pH, 1000) -psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1) - -for psi in psi_vecs: - print(np.inner(psi, pT @ h)) -``` - -This is not surprising, since `p_H` is globally stable. - - -Here's the solution to exercise 4.57, which computes mean return time. - -I'll use JIT compilation to make the code fast. - -```{code-cell} ipython3 -@jit -def compute_return_time(x, p, max_iter=100_000): - X = x - t = 0 - while t < max_iter: - W = np.random.rand() - X = tau(W, S, pH[X, :]) - t += 1 - if X == x: - return t - -@jit -def compute_mean_return_time(x, p, n=100_000): - counter = 0 - for i in range(n): - counter += compute_return_time(x, p) - return counter / n - - -[compute_mean_return_time(i, pH) for i in range(3)] - -``` - -For comparison: - -```{code-cell} ipython3 -psi_star = compute_stationary(pH) -1/ psi_star - -``` - -As predicted by the theory, the values are approximately equal. - - -Now let's turn to the inventory model. - -```{code-cell} ipython3 -def b(d): - " Returns probability that demand = d." - return (d >= 0) * (1/2)**(d + 1) - -def h(x, q, Q): - return x + (Q - x) * (x <= q) - -def build_p(q=2, Q=5): - p = np.empty((Q+1, Q+1)) - for x in range(Q+1): - for y in range(Q+1): - if y == 0: - p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q) - else: - p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y - - return p - -``` - -Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the -one shown in the text. - - -```{code-cell} ipython3 - -p = build_p() -compute_stationary(p) - - -``` - -Yep, looks good. - -Now let's check that the optimal policy agrees with $q=7$, as claimed in the text. - -```{code-cell} ipython3 -Q = 20 # inventory upper bound -C = 0.1 # cost of restocking - -# profit given state x, demand d, policy q -def profit(x, d, q): - stock = h(x, q, Q) - revenue = stock if stock < d else d - cost = C * (x <= q) - return revenue - cost - -# expected profit given x and policy q -def g(x, q): - counter = 0 - for d in range(1000): - counter += profit(x, d, q) * b(d) - return counter - -def profit_at_stationary(q): - p = build_p(q=q, Q=Q) - stationary = compute_stationary(p) - counter = 0 - for x in range(Q+1): - counter += g(x, q) * stationary[x] - return counter - -def compute_optimal_policy(): - running_max = -np.inf - for q in range(Q+1): - counter = profit_at_stationary(q) - if counter > running_max: - running_max = counter - argmax = q - return(argmax) - -compute_optimal_policy() -``` - - -Here's a solution for exercise 4.61. From preceding calculations we have -the stationary probability assigned to normal growth: - - -```{code-cell} ipython3 -psi_star = compute_stationary(pH) -psi_star[0] -``` - -The fraction of the time a long path spends in this state can be calculated as -follows. - - -```{code-cell} ipython3 -T = 1_000_000 -mc = MarkovChain(pH) -X = mc.simulate(init=0, ts_length=T) -np.mean(X == 0) -``` - -As expected given the LLN results for stable Markov chains, the two numbers are approximately equal. - - -Finally, let's look at the expected profits question in exercise 4.63. - -Previously we calculated steady state profits via - - -```{code-cell} ipython3 -h = (1000, 0, -1000) -psi_star = compute_stationary(pH) -print(np.inner(psi_star, h)) -``` - -To check that we get approximately the same results when simulating a long -time series, we can calculate as follows. - - -```{code-cell} ipython3 -y = [h[x] for x in X] -np.mean(y) -``` diff --git a/code_book/_build/html/_sources/intro.md b/code_book/_build/html/_sources/intro.md deleted file mode 100644 index 733444e..0000000 --- a/code_book/_build/html/_sources/intro.md +++ /dev/null @@ -1,38 +0,0 @@ -Economic Dynamics Code Book -=========================== - -**AUTHOR**: [JOHN STACHURSKI](https://johnstachurski.net/) - -This code book provides code to accompany the second edition of the -textbook *Economic Dynamics: Theory and Computation*, published by the MIT -Press. The code recreates figures from the book and gives solutions to -exercises. - - -The only code provided at this stage is Python. A Julia version is lacking -only due to time constraints. If there are readers who would like to create a -Julia version, please get in touch via email or the [issue -tracker](https://github.com/jstac/edtc-code/issues). A MATLAB version is also -welcome --- although I'm not personally familiar with the language. - -The Python code contained in these notes is accelerated through a combination of -[NumPy](https://numpy.org/) and just-in-time compilation -(via [Numba](http://numba.pydata.org/)). For those who require it, QuantEcon -provides a fast-paced [introduction to scientific computing with -Python](https://python-programming.quantecon.org/) with background on -these topics. - - -```{note} -To run the code contained here, please install the latest version of -[Anaconda Python](https://www.anaconda.com/). You will also need the [QuantEcon Python -library](https://quantecon.org/quantecon-py/) and the [Interpolation -library](https://github.com/EconForge/interpolation.py). -Follow the links for installation instructions. - -If you encounter errors, please open an -[issue](https://github.com/jstac/edtc-code/issues) and copy and paste your -error message. -``` - -This code book is created using [Jupyter Book](https://jupyterbook.org/intro.html). diff --git a/code_book/_build/html/_static/__init__.py b/code_book/_build/html/_static/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/code_book/_build/html/_static/__pycache__/__init__.cpython-38.pyc b/code_book/_build/html/_static/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 67c02498246b2bca7c13f27380fe499263de9fbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmWIL<>g`k0;3hT6F~H15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_$enx(7s(w~} zMxK6RUSe{7UP_{|eokhRenDkPMt+{Lo`rsKW=X1UL1J=tVtQ(^esMuYW?n^nQht7R sd`U(sP;+rfVo7GQetdjpUS>&ryk0@&Ee@O9{FKt1R6CG$pMjVG0Ez)EUjP6A diff --git a/code_book/_build/html/_static/basic.css b/code_book/_build/html/_static/basic.css deleted file mode 100644 index 5d8ae08..0000000 --- a/code_book/_build/html/_static/basic.css +++ /dev/null @@ -1,861 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 270px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 450px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -dl.footnote > dt, -dl.citation > dt { - float: left; - margin-right: 0.5em; -} - -dl.footnote > dd, -dl.citation > dd { - margin-bottom: 0em; -} - -dl.footnote > dd:after, -dl.citation > dd:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dt:after { - content: ":"; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0.5em; - content: ":"; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/code_book/_build/html/_static/check-solid.svg b/code_book/_build/html/_static/check-solid.svg deleted file mode 100644 index 9cbca86..0000000 --- a/code_book/_build/html/_static/check-solid.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/code_book/_build/html/_static/clipboard.min.js b/code_book/_build/html/_static/clipboard.min.js deleted file mode 100644 index 02c549e..0000000 --- a/code_book/_build/html/_static/clipboard.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v2.0.4 - * https://zenorocha.github.io/clipboard.js - * - * Licensed MIT © Zeno Rocha - */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n - - - - diff --git a/code_book/_build/html/_static/copybutton.css b/code_book/_build/html/_static/copybutton.css deleted file mode 100644 index 3a863dd..0000000 --- a/code_book/_build/html/_static/copybutton.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Copy buttons */ -button.copybtn { - position: absolute; - top: .3em; - right: .5em; - width: 1.7rem; - height: 1.7rem; - opacity: 0; - transition: opacity 0.3s, border .3s; - user-select: none; - padding: 0; - border: none; - outline: none; -} - -button.copybtn img { - width: 100%; -} - -div.highlight { - position: relative; -} - -.highlight:hover button.copybtn { - opacity: .7; -} - -.highlight button.copybtn:hover { - opacity: 1; -} - -/** - * A minimal CSS-only tooltip copied from: - * https://codepen.io/mildrenben/pen/rVBrpK - * - * To use, write HTML like the following: - * - *

    Short

    - */ - .o-tooltip--left { - position: relative; - } - - .o-tooltip--left:after { - opacity: 0; - visibility: hidden; - position: absolute; - content: attr(data-tooltip); - padding: 2px; - top: 0; - left: -.2em; - background: grey; - font-size: 1rem; - color: white; - white-space: nowrap; - z-index: 2; - border-radius: 2px; - transform: translateX(-102%) translateY(0); - transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); -} - -.o-tooltip--left:hover:after { - display: block; - opacity: 1; - visibility: visible; - transform: translateX(-100%) translateY(0); - transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); - transition-delay: .5s; -} diff --git a/code_book/_build/html/_static/copybutton.js b/code_book/_build/html/_static/copybutton.js deleted file mode 100644 index c4a9f92..0000000 --- a/code_book/_build/html/_static/copybutton.js +++ /dev/null @@ -1,196 +0,0 @@ -// Localization support -const messages = { - 'en': { - 'copy': 'Copy', - 'copy_to_clipboard': 'Copy to clipboard', - 'copy_success': 'Copied!', - 'copy_failure': 'Failed to copy', - }, - 'es' : { - 'copy': 'Copiar', - 'copy_to_clipboard': 'Copiar al portapapeles', - 'copy_success': '¡Copiado!', - 'copy_failure': 'Error al copiar', - }, - 'de' : { - 'copy': 'Kopieren', - 'copy_to_clipboard': 'In die Zwischenablage kopieren', - 'copy_success': 'Kopiert!', - 'copy_failure': 'Fehler beim Kopieren', - }, - 'fr' : { - 'copy': 'Copier', - 'copy_to_clipboard': 'Copié dans le presse-papier', - 'copy_success': 'Copié !', - 'copy_failure': 'Échec de la copie', - }, - 'ru': { - 'copy': 'Скопировать', - 'copy_to_clipboard': 'Скопировать в буфер', - 'copy_success': 'Скопировано!', - 'copy_failure': 'Не удалось скопировать', - }, - 'zh-CN': { - 'copy': '复制', - 'copy_to_clipboard': '复制到剪贴板', - 'copy_success': '复制成功!', - 'copy_failure': '复制失败', - } -} - -let locale = 'en' -if( document.documentElement.lang !== undefined - && messages[document.documentElement.lang] !== undefined ) { - locale = document.documentElement.lang -} - -let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; -if (doc_url_root == '#') { - doc_url_root = ''; -} - -const path_static = `${doc_url_root}_static/`; - -/** - * Set up copy/paste for code blocks - */ - -const runWhenDOMLoaded = cb => { - if (document.readyState != 'loading') { - cb() - } else if (document.addEventListener) { - document.addEventListener('DOMContentLoaded', cb) - } else { - document.attachEvent('onreadystatechange', function() { - if (document.readyState == 'complete') cb() - }) - } -} - -const codeCellId = index => `codecell${index}` - -// Clears selected text since ClipboardJS will select the text when copying -const clearSelection = () => { - if (window.getSelection) { - window.getSelection().removeAllRanges() - } else if (document.selection) { - document.selection.empty() - } -} - -// Changes tooltip text for two seconds, then changes it back -const temporarilyChangeTooltip = (el, oldText, newText) => { - el.setAttribute('data-tooltip', newText) - setTimeout(() => el.setAttribute('data-tooltip', oldText), 2000) -} - -// Changes the copy button icon for two seconds, then changes it back -const temporarilyChangeIcon = (el) => { - img = el.querySelector("img"); - img.setAttribute('src', `${path_static}check-solid.svg`) - setTimeout(() => img.setAttribute('src', `${path_static}copy-button.svg`), 2000) -} - -const addCopyButtonToCodeCells = () => { - // If ClipboardJS hasn't loaded, wait a bit and try again. This - // happens because we load ClipboardJS asynchronously. - if (window.ClipboardJS === undefined) { - setTimeout(addCopyButtonToCodeCells, 250) - return - } - - // Add copybuttons to all of our code cells - const codeCells = document.querySelectorAll('div.highlight pre') - codeCells.forEach((codeCell, index) => { - const id = codeCellId(index) - codeCell.setAttribute('id', id) - const pre_bg = getComputedStyle(codeCell).backgroundColor; - - const clipboardButton = id => - `` - codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) - }) - -function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string -} - -// Callback when a copy button is clicked. Will be passed the node that was clicked -// should then grab the text and replace pieces of text that shouldn't be used in output -function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { - - var regexp; - var match; - - // Do we check for line continuation characters and "HERE-documents"? - var useLineCont = !!lineContinuationChar - var useHereDoc = !!hereDocDelim - - // create regexp to capture prompt and remaining line - if (isRegexp) { - regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') - } else { - regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') - } - - const outputLines = []; - var promptFound = false; - var gotLineCont = false; - var gotHereDoc = false; - const lineGotPrompt = []; - for (const line of textContent.split('\n')) { - match = line.match(regexp) - if (match || gotLineCont || gotHereDoc) { - promptFound = regexp.test(line) - lineGotPrompt.push(promptFound) - if (removePrompts && promptFound) { - outputLines.push(match[2]) - } else { - outputLines.push(line) - } - gotLineCont = line.endsWith(lineContinuationChar) & useLineCont - if (line.includes(hereDocDelim) & useHereDoc) - gotHereDoc = !gotHereDoc - } else if (!onlyCopyPromptLines) { - outputLines.push(line) - } else if (copyEmptyLines && line.trim() === '') { - outputLines.push(line) - } - } - - // If no lines with the prompt were found then just use original lines - if (lineGotPrompt.some(v => v === true)) { - textContent = outputLines.join('\n'); - } - - // Remove a trailing newline to avoid auto-running when pasting - if (textContent.endsWith("\n")) { - textContent = textContent.slice(0, -1) - } - return textContent -} - - -var copyTargetText = (trigger) => { - var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); - return formatCopyText(target.innerText, '', false, true, true, true, '', '') -} - - // Initialize with a callback so we can modify the text before copy - const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) - - // Update UI with error/success messages - clipboard.on('success', event => { - clearSelection() - temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) - temporarilyChangeIcon(event.trigger) - }) - - clipboard.on('error', event => { - temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) - }) -} - -runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/code_book/_build/html/_static/copybutton_funcs.js b/code_book/_build/html/_static/copybutton_funcs.js deleted file mode 100644 index b9168c5..0000000 --- a/code_book/_build/html/_static/copybutton_funcs.js +++ /dev/null @@ -1,58 +0,0 @@ -function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string -} - -// Callback when a copy button is clicked. Will be passed the node that was clicked -// should then grab the text and replace pieces of text that shouldn't be used in output -export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { - - var regexp; - var match; - - // Do we check for line continuation characters and "HERE-documents"? - var useLineCont = !!lineContinuationChar - var useHereDoc = !!hereDocDelim - - // create regexp to capture prompt and remaining line - if (isRegexp) { - regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') - } else { - regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') - } - - const outputLines = []; - var promptFound = false; - var gotLineCont = false; - var gotHereDoc = false; - const lineGotPrompt = []; - for (const line of textContent.split('\n')) { - match = line.match(regexp) - if (match || gotLineCont || gotHereDoc) { - promptFound = regexp.test(line) - lineGotPrompt.push(promptFound) - if (removePrompts && promptFound) { - outputLines.push(match[2]) - } else { - outputLines.push(line) - } - gotLineCont = line.endsWith(lineContinuationChar) & useLineCont - if (line.includes(hereDocDelim) & useHereDoc) - gotHereDoc = !gotHereDoc - } else if (!onlyCopyPromptLines) { - outputLines.push(line) - } else if (copyEmptyLines && line.trim() === '') { - outputLines.push(line) - } - } - - // If no lines with the prompt were found then just use original lines - if (lineGotPrompt.some(v => v === true)) { - textContent = outputLines.join('\n'); - } - - // Remove a trailing newline to avoid auto-running when pasting - if (textContent.endsWith("\n")) { - textContent = textContent.slice(0, -1) - } - return textContent -} diff --git a/code_book/_build/html/_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css b/code_book/_build/html/_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css deleted file mode 100644 index 655656d..0000000 --- a/code_book/_build/html/_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v4.5.0 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors - * Copyright 2011-2020 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:540px;--breakpoint-md:720px;--breakpoint-lg:960px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;line-height:1.5;color:#212529;text-align:left}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;background-color:transparent}a:hover{color:#0056b3}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\00A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:540px){.container{max-width:540px}}@media (min-width:720px){.container{max-width:720px}}@media (min-width:960px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1400px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:540px){.container,.container-sm{max-width:540px}}@media (min-width:720px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:960px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1400px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:540px){.col-sm{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:720px){.col-md{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:960px){.col-lg{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:539.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:719.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:959.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:540px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:540px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:720px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:960px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat 50%;background-size:100% 100%}@media (max-width:539.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:540px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:719.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:720px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:959.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:960px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0,0,0,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255,255,255,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:540px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:540px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:540px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb,.breadcrumb-item{display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:540px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:540px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:720px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:960px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:540px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:min-content}.modal-sm{max-width:300px}}@media (min-width:960px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:540px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:720px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:960px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.85714%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:720px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:960px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:540px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:720px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:960px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:540px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:720px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:960px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:540px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:720px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:960px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:960px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}html{font-size:var(--pst-font-size-base);scroll-padding-top:calc(var(--pst-header-height) + 12px)}body{padding-top:calc(var(--pst-header-height) + 20px);background-color:#fff;font-family:var(--pst-font-family-base);font-weight:400;line-height:1.65;color:rgba(var(--pst-color-text-base),1)}p{margin-bottom:1.15rem;font-size:1em;color:rgba(var(--pst-color-paragraph),1)}p.rubric{border-bottom:1px solid #c9c9c9}a{color:rgba(var(--pst-color-link),1);text-decoration:none}a:hover{color:rgba(var(--pst-color-link-hover),1);text-decoration:underline}a.headerlink{color:rgba(var(--pst-color-headerlink),1);font-size:.8em;padding:0 4px;text-decoration:none}a.headerlink:hover{background-color:rgba(var(--pst-color-headerlink),1);color:rgba(var(--pst-color-headerlink-hover),1)}.heading-style,h1,h2,h3,h4,h5,h6{margin:2.75rem 0 1.05rem;font-family:var(--pst-font-family-heading);font-weight:400;line-height:1.15}h1{margin-top:0;font-size:var(--pst-font-size-h1);color:rgba(var(--pst-color-h1),1)}h2{font-size:var(--pst-font-size-h2);color:rgba(var(--pst-color-h2),1)}h3{font-size:var(--pst-font-size-h3);color:rgba(var(--pst-color-h3),1)}h4{font-size:var(--pst-font-size-h4);color:rgba(var(--pst-color-h4),1)}h5{font-size:var(--pst-font-size-h5);color:rgba(var(--pst-color-h5),1)}h6{font-size:var(--pst-font-size-h6);color:rgba(var(--pst-color-h6),1)}.text_small,small{font-size:var(--pst-font-size-milli)}hr{border:0;border-top:1px solid #e5e5e5}code,kbd,pre,samp{font-family:var(--pst-font-family-monospace)}code{color:rgba(var(--pst-color-inline-code),1)}pre{margin:1.5em 0;padding:10px;background-color:rgba(var(--pst-color-preformatted-background),1);color:rgba(var(--pst-color-preformatted-text),1);line-height:1.2em;border:1px solid #c9c9c9;box-shadow:1px 1px 1px #d8d8d8}.navbar{position:fixed;min-height:var(--pst-header-height);width:100%;padding:0}.navbar .container-xl{height:100%}@media (min-width:960px){.navbar #navbar-end>.navbar-end-item{display:inline-block}}.navbar-brand{position:relative;height:var(--pst-header-height);width:auto;padding:.5rem 0}.navbar-brand img{max-width:100%;height:100%;width:auto}.navbar-light{background:#fff!important;box-shadow:0 .125rem .25rem 0 rgba(0,0,0,.11)}.navbar-light .navbar-nav li a.nav-link{padding:0 .5rem;color:rgba(var(--pst-color-navbar-link),1)}.navbar-light .navbar-nav li a.nav-link:hover{color:rgba(var(--pst-color-navbar-link-hover),1)}.navbar-light .navbar-nav>.active>.nav-link{font-weight:600;color:rgba(var(--pst-color-navbar-link-active),1)}.navbar-header a{padding:0 15px}.admonition{margin:1.5625em auto;padding:0 .6rem .8rem!important;overflow:hidden;page-break-inside:avoid;border-left:.2rem solid;border-left-color:rgba(var(--pst-color-admonition-default),1);border-bottom-color:rgba(var(--pst-color-admonition-default),1);border-right-color:rgba(var(--pst-color-admonition-default),1);border-top-color:rgba(var(--pst-color-admonition-default),1);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);transition:color .25s,background-color .25s,border-color .25s}.admonition :last-child{margin-bottom:0}.admonition p.admonition-title~*{padding:0 1.4rem}.admonition>ol,.admonition>ul{margin-left:1em}.admonition .admonition-title{position:relative;margin:0 -.6rem!important;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(var(--pst-color-admonition-default),.1)}.admonition .admonition-title:before{position:absolute;left:.6rem;width:1rem;height:1rem;color:rgba(var(--pst-color-admonition-default),1);font-family:Font Awesome\ 5 Free;font-weight:900;content:var(--pst-icon-admonition-default)}.admonition .admonition-title+*{margin-top:.4em}.admonition.attention{border-color:rgba(var(--pst-color-admonition-attention),1)}.admonition.attention .admonition-title{background-color:rgba(var(--pst-color-admonition-attention),.1)}.admonition.attention .admonition-title:before{color:rgba(var(--pst-color-admonition-attention),1);content:var(--pst-icon-admonition-attention)}.admonition.caution{border-color:rgba(var(--pst-color-admonition-caution),1)}.admonition.caution .admonition-title{background-color:rgba(var(--pst-color-admonition-caution),.1)}.admonition.caution .admonition-title:before{color:rgba(var(--pst-color-admonition-caution),1);content:var(--pst-icon-admonition-caution)}.admonition.warning{border-color:rgba(var(--pst-color-admonition-warning),1)}.admonition.warning .admonition-title{background-color:rgba(var(--pst-color-admonition-warning),.1)}.admonition.warning .admonition-title:before{color:rgba(var(--pst-color-admonition-warning),1);content:var(--pst-icon-admonition-warning)}.admonition.danger{border-color:rgba(var(--pst-color-admonition-danger),1)}.admonition.danger .admonition-title{background-color:rgba(var(--pst-color-admonition-danger),.1)}.admonition.danger .admonition-title:before{color:rgba(var(--pst-color-admonition-danger),1);content:var(--pst-icon-admonition-danger)}.admonition.error{border-color:rgba(var(--pst-color-admonition-error),1)}.admonition.error .admonition-title{background-color:rgba(var(--pst-color-admonition-error),.1)}.admonition.error .admonition-title:before{color:rgba(var(--pst-color-admonition-error),1);content:var(--pst-icon-admonition-error)}.admonition.hint{border-color:rgba(var(--pst-color-admonition-hint),1)}.admonition.hint .admonition-title{background-color:rgba(var(--pst-color-admonition-hint),.1)}.admonition.hint .admonition-title:before{color:rgba(var(--pst-color-admonition-hint),1);content:var(--pst-icon-admonition-hint)}.admonition.tip{border-color:rgba(var(--pst-color-admonition-tip),1)}.admonition.tip .admonition-title{background-color:rgba(var(--pst-color-admonition-tip),.1)}.admonition.tip .admonition-title:before{color:rgba(var(--pst-color-admonition-tip),1);content:var(--pst-icon-admonition-tip)}.admonition.important{border-color:rgba(var(--pst-color-admonition-important),1)}.admonition.important .admonition-title{background-color:rgba(var(--pst-color-admonition-important),.1)}.admonition.important .admonition-title:before{color:rgba(var(--pst-color-admonition-important),1);content:var(--pst-icon-admonition-important)}.admonition.note{border-color:rgba(var(--pst-color-admonition-note),1)}.admonition.note .admonition-title{background-color:rgba(var(--pst-color-admonition-note),.1)}.admonition.note .admonition-title:before{color:rgba(var(--pst-color-admonition-note),1);content:var(--pst-icon-admonition-note)}div.deprecated{margin-bottom:10px;margin-top:10px;padding:7px;background-color:#f3e5e5;border:1px solid #eed3d7;border-radius:.5rem}div.deprecated p{color:#b94a48;display:inline}.topic{background-color:#eee}.seealso dd{margin-top:0;margin-bottom:0}.viewcode-back{font-family:var(--pst-font-family-base)}.viewcode-block:target{background-color:#f4debf;border-top:1px solid #ac9;border-bottom:1px solid #ac9}span.guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}table.field-list{border-collapse:separate;border-spacing:10px;margin-left:1px}table.field-list th.field-name{padding:1px 8px 1px 5px;white-space:nowrap;background-color:#eee}table.field-list td.field-body p{font-style:italic}table.field-list td.field-body p>strong{font-style:normal}table.field-list td.field-body blockquote{border-left:none;margin:0 0 .3em;padding-left:30px}.table.autosummary td:first-child{white-space:nowrap}footer{width:100%;border-top:1px solid #ccc;padding:10px}footer .footer-item p{margin-bottom:0}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px}.bd-search .icon{position:absolute;color:#a4a6a7;left:25px;top:25px}.bd-search input{border-radius:0;border:0;border-bottom:1px solid #e5e5e5;padding-left:35px}.bd-toc{-ms-flex-order:2;order:2;height:calc(100vh - 2rem);overflow-y:auto}@supports (position:-webkit-sticky) or (position:sticky){.bd-toc{position:-webkit-sticky;position:sticky;top:calc(var(--pst-header-height) + 20px);height:calc(100vh - 5rem);overflow-y:auto}}.bd-toc .onthispage{color:#a4a6a7}.section-nav{padding-left:0;border-left:1px solid #eee;border-bottom:none}.section-nav ul{padding-left:1rem}.toc-entry,.toc-entry a{display:block}.toc-entry a{padding:.125rem 1.5rem;color:rgba(var(--pst-color-toc-link),1)}@media (min-width:1200px){.toc-entry a{padding-right:0}}.toc-entry a:hover{color:rgba(var(--pst-color-toc-link-hover),1);text-decoration:none}.bd-sidebar{padding-top:1em}@media (min-width:720px){.bd-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports (position:-webkit-sticky) or (position:sticky){.bd-sidebar{position:-webkit-sticky;position:sticky;top:calc(var(--pst-header-height) + 20px);z-index:1000;height:calc(100vh - var(--pst-header-height) - 20px)}}}.bd-sidebar.no-sidebar{border-right:0}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:720px){.bd-links{display:block!important}@supports (position:-webkit-sticky) or (position:sticky){.bd-links{max-height:calc(100vh - 11rem);overflow-y:auto}}}.bd-sidenav{display:none}.bd-content{padding-top:20px}.bd-content .section{max-width:100%}.bd-content .section table{display:block;overflow:auto}.bd-toc-link{display:block;padding:.25rem 1.5rem;font-weight:600;color:rgba(0,0,0,.65)}.bd-toc-link:hover{color:rgba(0,0,0,.85);text-decoration:none}.bd-toc-item.active{margin-bottom:1rem}.bd-toc-item.active:not(:first-child){margin-top:1rem}.bd-toc-item.active>.bd-toc-link{color:rgba(0,0,0,.85)}.bd-toc-item.active>.bd-toc-link:hover{background-color:transparent}.bd-toc-item.active>.bd-sidenav{display:block}nav.bd-links p.caption{font-size:var(--pst-sidebar-caption-font-size);text-transform:uppercase;font-weight:700;position:relative;margin-top:1.25em;margin-bottom:.5em;padding:0 1.5rem;color:rgba(var(--pst-color-sidebar-caption),1)}nav.bd-links p.caption:first-child{margin-top:0}.bd-sidebar .nav{font-size:var(--pst-sidebar-font-size)}.bd-sidebar .nav ul{list-style:none;padding:0 0 0 1.5rem}.bd-sidebar .nav li>a{display:block;padding:.25rem 1.5rem;color:rgba(var(--pst-color-sidebar-link),1)}.bd-sidebar .nav li>a:hover{color:rgba(var(--pst-color-sidebar-link-hover),1);text-decoration:none;background-color:transparent}.bd-sidebar .nav li>a.reference.external:after{font-family:Font Awesome\ 5 Free;font-weight:900;content:"\f35d";font-size:.75em;margin-left:.3em}.bd-sidebar .nav .active:hover>a,.bd-sidebar .nav .active>a{font-weight:600;color:rgba(var(--pst-color-sidebar-link-active),1)}.toc-h2{font-size:.85rem}.toc-h3{font-size:.75rem}.toc-h4{font-size:.65rem}.toc-entry>.nav-link.active{font-weight:600;color:#130654;color:rgba(var(--pst-color-toc-link-active),1);background-color:transparent;border-left:2px solid rgba(var(--pst-color-toc-link-active),1)}.nav-link:hover{border-style:none}#navbar-main-elements li.nav-item i{font-size:.7rem;padding-left:2px;vertical-align:middle}.bd-toc .nav .nav{display:none}.bd-toc .nav .nav.visible,.bd-toc .nav>.active>ul{display:block}.prev-next-bottom{margin:20px 0}.prev-next-bottom a.left-prev,.prev-next-bottom a.right-next{padding:10px;border:1px solid rgba(0,0,0,.2);max-width:45%;overflow-x:hidden;color:rgba(0,0,0,.65)}.prev-next-bottom a.left-prev{float:left}.prev-next-bottom a.left-prev:before{content:"<< "}.prev-next-bottom a.right-next{float:right}.prev-next-bottom a.right-next:after{content:" >>"}.alert{padding-bottom:0}.alert-info a{color:#e83e8c}#navbar-icon-links i.fa,#navbar-icon-links i.fab,#navbar-icon-links i.far,#navbar-icon-links i.fas{vertical-align:middle;font-style:normal;font-size:1.5rem;line-height:1.25}#navbar-icon-links i.fa-github-square:before{color:#333}#navbar-icon-links i.fa-twitter-square:before{color:#55acee}#navbar-icon-links i.fa-gitlab:before{color:#548}#navbar-icon-links i.fa-bitbucket:before{color:#0052cc}.tocsection{border-left:1px solid #eee;padding:.3rem 1.5rem}.tocsection i{padding-right:.5rem}.editthispage{padding-top:2rem}.editthispage a{color:#130754}.xr-wrap[hidden]{display:block!important}.toctree-checkbox{position:absolute;display:none}.toctree-checkbox~ul{display:none}.toctree-checkbox~label i{transform:rotate(0deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label i{transform:rotate(180deg)}.bd-sidebar li{position:relative}.bd-sidebar label{position:absolute;top:0;right:0;height:30px;width:30px;cursor:pointer;display:flex;justify-content:center;align-items:center}.bd-sidebar label:hover{background:rgba(var(--pst-color-sidebar-expander-background-hover),1)}.bd-sidebar label i{display:inline-block;font-size:.75rem;text-align:center}.bd-sidebar label i:hover{color:rgba(var(--pst-color-sidebar-link-hover),1)}.bd-sidebar li.has-children>.reference{padding-right:30px}div.doctest>div.highlight span.gp,span.linenos,table.highlighttable td.linenos{user-select:none!important;-webkit-user-select:text!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important} \ No newline at end of file diff --git a/code_book/_build/html/_static/css/theme.css b/code_book/_build/html/_static/css/theme.css deleted file mode 100644 index 3f6e79d..0000000 --- a/code_book/_build/html/_static/css/theme.css +++ /dev/null @@ -1,117 +0,0 @@ -:root { - /***************************************************************************** - * Theme config - **/ - --pst-header-height: 60px; - - /***************************************************************************** - * Font size - **/ - --pst-font-size-base: 15px; /* base font size - applied at body / html level */ - - /* heading font sizes */ - --pst-font-size-h1: 36px; - --pst-font-size-h2: 32px; - --pst-font-size-h3: 26px; - --pst-font-size-h4: 21px; - --pst-font-size-h5: 18px; - --pst-font-size-h6: 16px; - - /* smaller then heading font sizes*/ - --pst-font-size-milli: 12px; - - --pst-sidebar-font-size: .9em; - --pst-sidebar-caption-font-size: .9em; - - /***************************************************************************** - * Font family - **/ - /* These are adapted from https://systemfontstack.com/ */ - --pst-font-family-base-system: -apple-system, BlinkMacSystemFont, Segoe UI, "Helvetica Neue", - Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; - --pst-font-family-monospace-system: "SFMono-Regular", Menlo, Consolas, Monaco, - Liberation Mono, Lucida Console, monospace; - - --pst-font-family-base: var(--pst-font-family-base-system); - --pst-font-family-heading: var(--pst-font-family-base); - --pst-font-family-monospace: var(--pst-font-family-monospace-system); - - /***************************************************************************** - * Color - * - * Colors are defined in rgb string way, "red, green, blue" - **/ - --pst-color-primary: 19, 6, 84; - --pst-color-success: 40, 167, 69; - --pst-color-info: 0, 123, 255; /*23, 162, 184;*/ - --pst-color-warning: 255, 193, 7; - --pst-color-danger: 220, 53, 69; - --pst-color-text-base: 51, 51, 51; - - --pst-color-h1: var(--pst-color-primary); - --pst-color-h2: var(--pst-color-primary); - --pst-color-h3: var(--pst-color-text-base); - --pst-color-h4: var(--pst-color-text-base); - --pst-color-h5: var(--pst-color-text-base); - --pst-color-h6: var(--pst-color-text-base); - --pst-color-paragraph: var(--pst-color-text-base); - --pst-color-link: 0, 91, 129; - --pst-color-link-hover: 227, 46, 0; - --pst-color-headerlink: 198, 15, 15; - --pst-color-headerlink-hover: 255, 255, 255; - --pst-color-preformatted-text: 34, 34, 34; - --pst-color-preformatted-background: 250, 250, 250; - --pst-color-inline-code: 232, 62, 140; - - --pst-color-active-navigation: 19, 6, 84; - --pst-color-navbar-link: 77, 77, 77; - --pst-color-navbar-link-hover: var(--pst-color-active-navigation); - --pst-color-navbar-link-active: var(--pst-color-active-navigation); - --pst-color-sidebar-link: 77, 77, 77; - --pst-color-sidebar-link-hover: var(--pst-color-active-navigation); - --pst-color-sidebar-link-active: var(--pst-color-active-navigation); - --pst-color-sidebar-expander-background-hover: 244, 244, 244; - --pst-color-sidebar-caption: 77, 77, 77; - --pst-color-toc-link: 119, 117, 122; - --pst-color-toc-link-hover: var(--pst-color-active-navigation); - --pst-color-toc-link-active: var(--pst-color-active-navigation); - - /***************************************************************************** - * Icon - **/ - - /* font awesome icons*/ - --pst-icon-check-circle: '\f058'; - --pst-icon-info-circle: '\f05a'; - --pst-icon-exclamation-triangle: '\f071'; - --pst-icon-exclamation-circle: '\f06a'; - --pst-icon-times-circle: '\f057'; - --pst-icon-lightbulb: '\f0eb'; - - /***************************************************************************** - * Admonitions - **/ - - --pst-color-admonition-default: var(--pst-color-info); - --pst-color-admonition-note: var(--pst-color-info); - --pst-color-admonition-attention: var(--pst-color-warning); - --pst-color-admonition-caution: var(--pst-color-warning); - --pst-color-admonition-warning: var(--pst-color-warning); - --pst-color-admonition-danger: var(--pst-color-danger); - --pst-color-admonition-error: var(--pst-color-danger); - --pst-color-admonition-hint: var(--pst-color-success); - --pst-color-admonition-tip: var(--pst-color-success); - --pst-color-admonition-important: var(--pst-color-success); - - --pst-icon-admonition-default: var(--pst-icon-info-circle); - --pst-icon-admonition-note: var(--pst-icon-info-circle); - --pst-icon-admonition-attention: var(--pst-icon-exclamation-circle); - --pst-icon-admonition-caution: var(--pst-icon-exclamation-triangle); - --pst-icon-admonition-warning: var(--pst-icon-exclamation-triangle); - --pst-icon-admonition-danger: var(--pst-icon-exclamation-triangle); - --pst-icon-admonition-error: var(--pst-icon-times-circle); - --pst-icon-admonition-hint: var(--pst-icon-lightbulb); - --pst-icon-admonition-tip: var(--pst-icon-lightbulb); - --pst-icon-admonition-important: var(--pst-icon-exclamation-circle); - -} diff --git a/code_book/_build/html/_static/doctools.js b/code_book/_build/html/_static/doctools.js deleted file mode 100644 index 61ac9d2..0000000 --- a/code_book/_build/html/_static/doctools.js +++ /dev/null @@ -1,321 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for all documentation. - * - * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x - } - return decodeURIComponent(x.replace(/\+/g, ' ')); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { - this.initOnKeyListeners(); - } - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey - && !event.shiftKey) { - switch (event.keyCode) { - case 37: // left - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - case 39: // right - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - } - } - }); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); diff --git a/code_book/_build/html/_static/documentation_options.js b/code_book/_build/html/_static/documentation_options.js deleted file mode 100644 index 93b7c24..0000000 --- a/code_book/_build/html/_static/documentation_options.js +++ /dev/null @@ -1,12 +0,0 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '', - LANGUAGE: 'None', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '', - NAVIGATION_WITH_KEYS: true -}; \ No newline at end of file diff --git a/code_book/_build/html/_static/file.png b/code_book/_build/html/_static/file.png deleted file mode 100644 index a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( diff --git a/code_book/_build/html/_static/images/logo_binder.svg b/code_book/_build/html/_static/images/logo_binder.svg deleted file mode 100644 index 45fecf7..0000000 --- a/code_book/_build/html/_static/images/logo_binder.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - -logo - - - - - - - - diff --git a/code_book/_build/html/_static/images/logo_colab.png b/code_book/_build/html/_static/images/logo_colab.png deleted file mode 100644 index b7560ec216b2d1b6f77855525fe966c741833428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7601 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 diff --git a/code_book/_build/html/_static/jquery-3.5.1.js b/code_book/_build/html/_static/jquery-3.5.1.js deleted file mode 100644 index 5093733..0000000 --- a/code_book/_build/html/_static/jquery-3.5.1.js +++ /dev/null @@ -1,10872 +0,0 @@ -/*! - * jQuery JavaScript Library v3.5.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2020-05-04T22:49Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - -var document = window.document; - - - - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - - function DOMEval( code, node, doc ) { - doc = doc || document; - - var i, val, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.5.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return flat( ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.5 - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://js.foundation/ - * - * Date: 2020-03-14 - */ -( function( window ) { -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - nonnativeSelectorCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ( {} ).hasOwnProperty, - arr = [], - pop = arr.pop, - pushNative = arr.push, - push = arr.push, - slice = arr.slice, - - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), - rdescend = new RegExp( whitespace + "|>" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rhtml = /HTML$/i, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - inDisabledFieldset = addCombinator( - function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), - preferredDoc.childNodes - ); - - // Support: Android<4.0 - // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - pushNative.apply( target, slice.call( els ) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - setDocument( context ); - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { - - // ID selector - if ( ( m = match[ 1 ] ) ) { - - // Document context - if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[ 2 ] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - - // Support: IE 8 only - // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { - - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); - } - newSelector = groups.join( "," ); - } - - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return ( cache[ key + " " ] = value ); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement( "fieldset" ); - - try { - return !!fn( el ); - } catch ( e ) { - return false; - } finally { - - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { - argument = +argument; - return markFunction( function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); - } - } - } ); - } ); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9 - 11+, Edge 12 - 18+ - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert( function( el ) { - el.className = "i"; - return !el.getAttribute( "className" ); - } ); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); - - // ID filter and find - if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute( "id" ) === attrId; - }; - }; - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); - } - - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: Opera 10 - 11 only - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); - } - - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { - - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - } ); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); - } : - function( a, b ) { - if ( b ) { - while ( ( b = b.parentNode ) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { - - // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { - return -1; - } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( ( cur = cur.parentNode ) ) { - ap.unshift( cur ); - } - cur = b; - while ( ( cur = cur.parentNode ) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { - i++; - } - - return i ? - - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : - - // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); - - if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch ( e ) { - nonnativeSelectorCache( expr, true ); - } - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); - - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - - // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[ 6 ] && match[ 2 ]; - - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - - // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { - - // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { - return true; - } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - /* eslint-disable max-len */ - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - /* eslint-enable max-len */ - - }; - }, - - "CHILD": function( type, what, _argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, _context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( ( node = node[ dir ] ) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( ( node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - - // Use previously-cached element index if available - if ( useCache ) { - - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); - } - } ) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - - // Potentially complex pseudos - "not": markFunction( function( selector ) { - - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); - } - } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; - matcher( input, null, xml, results ); - - // Don't keep the element (issue #299) - input[ 0 ] = null; - return !results.pop(); - }; - } ), - - "has": markFunction( function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - } ), - - "contains": markFunction( function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; - }; - } ), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( ( elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); - return false; - }; - } ), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); - }, - - "selected": function( elem ) { - - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo( function() { - return [ 0 ]; - } ), - - "last": createPositionalPseudo( function( _matchIndexes, length ) { - return [ length - 1 ]; - } ), - - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - } ), - - "even": createPositionalPseudo( function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "odd": createPositionalPseudo( function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ) - } -}; - -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { - if ( match ) { - - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; - } - groups.push( ( tokens = [] ) ); - } - - matched = false; - - // Combinators - if ( ( match = rcombinators.exec( soFar ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[ i ].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); - } else { - - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[ 0 ]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction( function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - - // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); - } - } - postFinder( null, ( matcherOut = [] ), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - - seed[ temp ] = !( results[ temp ] = elem ); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - } ); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; - } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), - len = elems.length; - - if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[ i ]; - - // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { - break; - } - if ( ( find = Expr.find[ type ] ) ) { - - // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - } ); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - } ); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; - } - } ); -} - -return Sizzle; - -} )( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, _i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, _i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, _i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { - - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, _key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached( elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces "; - support.option = !!div.lastChild; -} )(); - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
    " ], - col: [ 2, "", "
    " ], - tr: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - - _default: [ 0, "", "" ] -}; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); - events = pdataOld.events; - - if ( events ) { - dataPriv.remove( dest, "handle events" ); - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = flat( args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html; - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - - // Make sure the element is visible & connected - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( _i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = { guid: Date.now() }; - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { - s.converters[ "text script" ] = function() {}; - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( _i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - - -jQuery._evalUrl = function( url, options, doc ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " -{% endmacro %} \ No newline at end of file diff --git a/code_book/_build/html/ch1.html b/code_book/_build/html/ch1.html deleted file mode 100644 index 51c3530..0000000 --- a/code_book/_build/html/ch1.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - Chapter 1 Code — Economic Dynamics Python Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
    -
    - -
    - -
    -

    Chapter 1 Code

    -

    No code in this chapter.

    -
    - - - - -
    - - - - -
    -
    -
    -
    -

    - - By John Stachurski
    - - © Copyright 2021.
    -

    -
    -
    -
    - - -
    -
    - - - - - - \ No newline at end of file diff --git a/code_book/_build/html/ch2.html b/code_book/_build/html/ch2.html deleted file mode 100644 index 3c9ae63..0000000 --- a/code_book/_build/html/ch2.html +++ /dev/null @@ -1,493 +0,0 @@ - - - - - - - - Chapter 2 Code — Economic Dynamics Python Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - - - -
    - - - -
    -
    -
    -
    - -
    - -
    -

    Chapter 2 Code

    -

    We’ll use Python’s NumPy library in what follows, as well as Matplotlib for plotting.

    -
    -
    -
    import numpy as np
    -import matplotlib.pyplot as plt
    -
    -
    -
    -
    -
    -

    Bisection

    -

    Here’s an implementation of the bisection algorithm. We will test it on this function:

    -
    -
    -
    f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1
    -
    -
    -
    -
    -

    The implementation:

    -
    -
    -
    M = 1000
    -ϵ = 1e-8
    -α, β = 0, 1
    -
    -    
    -i = 1
    -a, b = α, β
    -while i <= M:
    -    c = (a + b) / 2
    -    if abs(f(c)) < ϵ:
    -        print(c)
    -        break
    -    i += 1
    -    if f(a) * f(c) < 0:
    -        b = c
    -    else:
    -        a = c
    -        
    -if i > M:
    -    print("Failed to converge.")
    -
    -
    -
    -
    -
    0.408293504267931
    -
    -
    -
    -
    -
    -
    -

    User Defined Functions

    -

    Here’s the basic implementation of the function \(\tau\).

    -
    -
    -
    def tau(z, S, phi):
    -    """
    -    Evaluates the function tau(z) given data S, phi, where
    -    S and phi are assumed to be arrays.
    -    """
    -    a = 0
    -    for i, x in enumerate(S):
    -        b = a + phi[i]
    -        if a < z <= b:
    -            return x
    -        a = b
    -
    -
    -
    -
    -

    Here’s a more efficient implementation.

    -
    -
    -
    def tau(z, S, phi):
    -    i = np.searchsorted(np.cumsum(phi), z)
    -    return S[i]
    -
    -
    -
    -
    -

    And here’s a closure that generates the function \(\tau\).

    -
    -
    -
    def tau_factory(S, phi):
    -    Φ = np.cumsum(phi)
    -    
    -    def tau(z):
    -        i = np.searchsorted(Φ, z)
    -        return S[i]
    -    
    -    return tau
    -
    -
    -
    -
    -

    We generate a function \(\tau\) that acts on \(z\) alone by calling the function factory:

    -
    -
    -
    phi = 0.2, 0.5, 0.3
    -S = 0, 1, 2
    -tau = tau_factory(S, phi)
    -
    -
    -
    -
    -
    -
    -
    tau(0.1)  # Should be 0
    -
    -
    -
    -
    -
    0
    -
    -
    -
    -
    -

    All of these functions work as expected. To illustrate, here \(\tau\) is used to generate draws from a given distribution \(\phi\).

    -
    -
    -
    size = 100_000
    -
    -draws = np.empty(size)
    -for j in range(size):
    -    W = np.random.uniform()
    -    draws[j] = tau(W)
    -    
    -# Compute fraction of draws with each possible value
    -frequency = [np.mean(draws==j) for j in S]
    -    
    -
    -
    -
    -
    -

    Let’s check that the empirical frequency approximately coincides with the probabilities in \(\phi\).

    -
    -
    -
    fig, ax = plt.subplots()
    -
    -ax.bar(S, frequency, 
    -       edgecolor='k',
    -       facecolor='b',
    -       alpha=0.25, 
    -       label="histogram")
    -
    -ax.stem(S, phi, label='$\\phi$')
    -
    -ax.legend()
    -
    -plt.show()
    -
    -
    -
    -
    -_images/ch2_21_0.png -
    -
    -
    -
    -

    Object Oriented Programming

    -

    Here’s a class that implements the function \(\tau\) as a method, as well as a method to generate draws from \(\phi\).

    -
    -
    -
    class Tau:
    -    
    -    def __init__(self, S, phi):
    -        self.S = S
    -        self.Φ = np.cumsum(phi)
    -    
    -    def tau(self, z):
    -        i = np.searchsorted(self.Φ, z)
    -        return self.S[i]
    -    
    -    def draw(self):
    -        W = np.random.uniform()
    -        return self.tau(W)
    -
    -
    -
    -
    -
    -
    -
    tau = Tau(S, phi)
    -
    -
    -
    -
    -
    -
    -
    for i in range(5):
    -    print(tau.draw())
    -
    -
    -
    -
    -
    0
    -1
    -2
    -1
    -1
    -
    -
    -
    -
    -
    -
    - - - - -
    - - - - -
    -
    -
    -
    -

    - - By John Stachurski
    - - © Copyright 2021.
    -

    -
    -
    -
    - - -
    -
    - - - - - - \ No newline at end of file diff --git a/code_book/_build/html/ch3.html b/code_book/_build/html/ch3.html deleted file mode 100644 index d80fec0..0000000 --- a/code_book/_build/html/ch3.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - Chapter 3 Code — Economic Dynamics Python Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
    -
    - -
    - -
    -

    Chapter 3 Code

    -

    No code used in this chapter.

    -
    - - - - -
    - - - - -
    -
    -
    -
    -

    - - By John Stachurski
    - - © Copyright 2021.
    -

    -
    -
    -
    - - -
    -
    - - - - - - \ No newline at end of file diff --git a/code_book/_build/html/ch4.html b/code_book/_build/html/ch4.html deleted file mode 100644 index ed7f6db..0000000 --- a/code_book/_build/html/ch4.html +++ /dev/null @@ -1,1188 +0,0 @@ - - - - - - - - Chapter 4 Code — Economic Dynamics Python Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - - - -
    - - - -
    -
    -
    -
    - -
    - -
    -

    Chapter 4 Code

    -

    Let’s start with some imports.

    -
    -
    -
    import numpy as np
    -import matplotlib.pyplot as plt
    -from numba import jit
    -from quantecon import MarkovChain
    -
    -
    -
    -
    -
    -

    Introduction to Dynamics

    -

    Here’s the code that generated figure 4.1.

    -
    -
    -
    def draw_arrow(x, y, xp, yp, ax):
    -    """
    -    Draw an arrow from (x, y) to (xp, yp).
    -    """
    -    v1, v2 = xp - x, yp - y
    -    eps = 1.0
    -    nrm = np.sqrt(v1**2 + v2**2)
    -    scale = 1.0
    -    ax.arrow(x, y, scale * v1, scale * v2,
    -            antialiased=True, 
    -            alpha=0.5,
    -            head_length=0.025*(xmax - xmin), 
    -            head_width=0.012*(xmax - xmin),
    -            fill=False)
    -
    -xmin, xmax = -10.0, 10.0
    -ymin, ymax = -5.0,  5.0
    -
    -A1 = np.asarray([[0.55, -0.6],
    -                 [0.5, 0.4]])
    -
    -def f(x, y): 
    -    return  A1 @ (x, y)
    -
    -xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10)
    -ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10)
    -
    -fig, ax = plt.subplots()
    -
    -#ax.set_xlim(xmin, xmax)
    -#ax.set_ylim(ymin, ymax)
    -
    -ax.set_xticks((0,))
    -ax.set_yticks((0,))
    -ax.grid()
    -
    -for x in xgrid:
    -    for y in ygrid:
    -        xp, yp = f(x, y)
    -        draw_arrow(x, y, xp, yp, ax)
    -
    -#plt.savefig("sdsdiagram.pdf")  # Uncomment to save figure
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_3_0.png -
    -
    -

    And here’s the code that generated figure 4.2.

    -
    -
    -
    def draw_trajectory(x, y, ax, n=10):
    -    """
    -    Draw the trajectory of length n starting from (x, y).
    -    """
    -    for i in range(n):
    -        x_new, y_new = f(x, y)
    -        draw_arrow(x, y, x_new, y_new, ax)
    -        x, y = x_new, y_new
    -        
    -xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3)
    -ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3)
    -
    -fig, ax = plt.subplots()
    -
    -#ax.set_xlim(xmin, xmax)
    -#ax.set_ylim(ymin, ymax)
    -
    -ax.set_xticks((0,))
    -ax.set_yticks((0,))
    -ax.grid()
    -
    -for x in xgrid:
    -    for y in ygrid:
    -        draw_trajectory(x, y, ax)
    -
    -#plt.savefig("sdsstable.pdf")  # Uncomment to save figure
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_5_0.png -
    -
    -
    -
    -

    Chaotic Dynamics

    -

    Just for fun, here’s a little class that allows us to simulate trajectories -from a specified dynamical system:

    -
    -
    -
    class DS:
    -
    -    def __init__(self, h=None, x=None):
    -        """Parameters: h is a function and x is an 
    -        element of S representing the current state."""
    -        self.h, self.x = h, x
    -
    -    def update(self):
    -        "Update the state of the system by applying h."
    -        self.x = self.h(self.x)
    -
    -    def trajectory(self, n):
    -        """Generate a trajectory of length n, starting 
    -        at the current state."""
    -        traj = []
    -        for i in range(n):
    -            traj.append(self.x)
    -            self.update()
    -        return traj
    -
    -
    -
    -
    -

    As in the textbook, let’s plot a trajectory starting from 0.11.

    -
    -
    -
    q = DS(h=lambda x: 4 * x * (1 - x), x=0.11)
    -t = q.trajectory(200)
    -
    -fig, ax = plt.subplots()
    -ax.plot(t)
    -
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_9_0.png -
    -
    -

    Now let’s generate a histograms from a long trajectory, to address exercise -4.16.

    -
    -
    -
    q.x = 0.11
    -t = q.trajectory(5000)
    -
    -fig, ax = plt.subplots()
    -ax.hist(t, bins=40, alpha=0.5, edgecolor='k')
    -
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_11_0.png -
    -
    -

    If you experiment with different initial conditions you will find that, for -all most all choices, the histogram looks the same.

    -
    -
    -
    q.x = 0.65
    -t = q.trajectory(5000)
    -
    -fig, ax = plt.subplots()
    -ax.hist(t, bins=40, alpha=0.5, edgecolor='k')
    -
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_13_0.png -
    -
    -

    What we have learned is that, although the trajectories seem very random, when -we take a statistical perspective we can make predictions.

    -

    In particular, we can say what will happen “one average, in the long run.”

    -

    Here’s the set of maps.

    -
    -
    -
    xgrid = np.linspace(0, 1, 100)
    -
    -h = lambda x, r: r * x * (1 - x)
    -
    -fig, ax = plt.subplots()
    -
    -ax.plot(xgrid, xgrid, '-', color='grey')
    -
    -r = 0
    -step = 0.3
    -
    -while r <= 4:
    -    y = [h(x, r) for x in xgrid]
    -    ax.plot(xgrid, y)
    -    r = r + step
    -
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_15_0.png -
    -
    -

    Here’s the bifurcation diagram.

    -
    -
    -
    q = DS(h=None, x=0.1)
    -
    -fig, ax = plt.subplots()
    -
    -r = 2.5
    -while r < 4:
    -    q.h = lambda x: r * x * (1 - x)
    -    t = q.trajectory(1000)[950:]
    -    ax.plot([r] * len(t), t, 'k.', ms=0.4)
    -    r = r + 0.005
    -
    -ax.set_xlabel(r'$r$', fontsize=16)
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_17_0.png -
    -
    -
    -
    -

    Markov Chains

    -

    Our first task is to simulate time series from Hamilton’s Markov chain

    -
    -
    -
    pH = ((0.971, 0.029, 0.000),       # Hamilton's kernel
    -      (0.145, 0.778, 0.077),
    -      (0.000, 0.508, 0.492))
    -
    -pH = np.array(pH)                  # Convert to numpy array
    -
    -S = np.array((0, 1, 2))
    -
    -
    -
    -
    -

    We’ll borrow this code from Chapter 2.

    -
    -
    -
    @jit
    -def tau(z, S, phi):
    -    i = np.searchsorted(np.cumsum(phi), z)
    -    return S[i]
    -
    -
    -
    -
    -

    (We have targeted the function for JIT compilation via @jit because we need -fast execution below.)

    -

    As discussed in that chapter, if we create a function tau using this code and feed it uniform draws on \((0,1]\), we get draws from S distributed according to phi.

    -

    Here’s some code to generate a trajectory starting at \(x \in S\), using -stochastic kernel \(p\).

    -
    -
    -
    def trajectory(x, p, S, n=100):
    -
    -        X = np.empty(n, dtype=int)
    -        X[0] = x
    -        for t in range(n-1):
    -            W = np.random.rand()
    -            X[t+1] = tau(W, S, p[X[t], :])
    -        return X
    -
    -
    -
    -
    -

    Let’s plot a trajectory.

    -
    -
    -
    fig, ax = plt.subplots()
    -
    -X = trajectory(0, pH, S, n=500)
    -
    -ax.plot(X)
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_25_0.png -
    -
    -

    Another option is to use existing code from QuantEcon. This code is -JIT-compiled and very fast.

    -
    -
    -
    mc = MarkovChain(pH, state_values=S)
    -X = mc.simulate(init=0, ts_length=500)
    -
    -fig, ax = plt.subplots()
    -ax.plot(X)
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_27_0.png -
    -
    -

    Here’s a solution to exercises 4.23.

    -
    -
    -
    @jit
    -def compute_marginal(n=100_000, T=10):
    -    X_vals = np.empty(n)
    -
    -    for i in range(n):
    -        X = 2                   # start in state SR
    -        for t in range(T):
    -            W = np.random.rand()
    -            X = tau(W, S, pH[X, :])
    -        X_vals[i] = X
    -    return np.mean(X_vals == 0)
    -
    -compute_marginal()
    -
    -
    -
    -
    -
    0.59744
    -
    -
    -
    -
    -

    The answer is close to 0.6, as expected.

    -

    Here’s a solution to exercise 4.24.

    -
    -
    -
    @jit
    -def compute_marginal_2(n=100_000, T=10):
    -    counter = 0
    -
    -    for i in range(n):
    -        X = 2                   # start in state SR
    -        for t in range(T):
    -            W = np.random.rand()
    -            X = tau(W, S, pH[X, :])
    -        if X == 0:
    -            counter += 1
    -
    -    return counter / n
    -
    -compute_marginal_2()
    -
    -
    -
    -
    -
    0.5999
    -
    -
    -
    -
    -

    Here’s a solution to exercise 4.29.

    -
    -
    -
    T = 5
    -psi = (1, 0, 0)         # start in NG
    -h = (1000, 0, -1000)    # profits
    -
    -for t in range(T):
    -    psi = psi @ pH
    -
    -print(psi @ h)
    -
    -
    -
    -
    -
    885.347632676323
    -
    -
    -
    -
    -

    Now let’s see what happens when we start in severe recession.

    -
    -
    -
    psi = (0, 0, 1) 
    -
    -for t in range(T):
    -    psi = psi @ pH
    -
    -print(psi @ h)
    -
    -
    -
    -
    -
    217.74304876607997
    -
    -
    -
    -
    -

    Profits are much lower because the Markov chain is relatively persistent, -implying that starting in recession increases the probability of recession at -date \(t=5\).

    -

    Here’s a solution to exercise 4.30.

    -
    -
    -
    T = 1000
    -
    -for i in (0, 1, 2):
    -    psi = np.zeros(3)
    -    psi[i] = 1
    -    for t in range(T):
    -        psi = psi @ pH
    -    print(f"Profits in state {i} at date {T} equals {psi @ h}")
    -
    -
    -
    -
    -
    Profits in state 0 at date 1000 equals 788.1599999999967
    -Profits in state 1 at date 1000 equals 788.1599999999974
    -Profits in state 2 at date 1000 equals 788.1599999999972
    -
    -
    -
    -
    -

    Notice that profits are almost invariant with respect to the initial -condition.

    -

    This is due to inherent stability of the kernel, which implies that initial -conditions become irrelevant after sufficient time has elapsed.

    -

    Here’s a solution to exercise 4.31.

    -
    -
    -
    T = 5
    -psi = (0.2, 0.2, 0.6) 
    -
    -for t in range(T):
    -    psi = psi @ pH
    -
    -print(psi @ h)
    -
    -
    -
    -
    -
    385.45189053788556
    -
    -
    -
    -
    -

    Here’s a solution to exercise 4.32.

    -
    -
    -
    def path_prob(p, psi, X):   # X gives a time path
    -    prob = psi[X[0]]
    -    for t in range(len(X)-1):
    -        prob = prob * p[X[t], X[t+1]]
    -    return prob
    -
    -psi = np.array((0.2, 0.2, 0.6))
    -prob = path_prob(pH, psi, (0, 1, 0))
    -
    -print(prob)
    -
    -
    -
    -
    -
    0.0008410000000000001
    -
    -
    -
    -
    -

    Here’s a solution to exercise 4.33.

    -
    -
    -
    counter = 0
    -recession_states = 1, 2
    -for x0 in recession_states:
    -    for x1 in recession_states:
    -        for x2 in recession_states:
    -            path = x0, x1, x2
    -            counter += path_prob(pH, psi, path)
    -
    -print(counter)
    -
    -
    -
    -
    -
    0.704242
    -
    -
    -
    -
    -

    Here’s a solution to exercise 4.34.

    -
    -
    -
    counter = 0
    -m  = 10_000
    -mc = MarkovChain(pH)
    -
    -for i in range(m):
    -    x0 = tau(np.random.rand(), S, psi)
    -    X = mc.simulate(init=x0, ts_length=3)
    -    if 0 not in X:
    -        counter += 1
    -
    -print(counter / m)
    -
    -
    -
    -
    -
    0.7085
    -
    -
    -
    
    -
    -
    -
    -
    -

    Next we turn to exercise 4.36.

    -
    -
    -
    max_T = 12
    -T_vals = range(max_T)
    -profits = []
    -r = 0.05
    -rho = 1 / (1+r)
    -
    -psi = (0.2, 0.2, 0.6) 
    -h = (1000, 0, -1000)    
    -current_profits = np.inner(psi, h)
    -discount = rho
    -Q = np.identity(3)
    -
    -for t in T_vals:
    -    Q = Q @ pH
    -    discount = discount * rho
    -    current_profits += discount * np.inner(psi, Q @ h)
    -    profits.append(current_profits)
    -
    -fig, ax = plt.subplots()
    -ax.plot(profits, label='profits')
    -ax.plot(np.zeros(max_T), '--', label='break even')
    -ax.set_xlabel('time')
    -ax.legend()
    -
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_47_0.png -
    -
    -

    Here’s figure 4.11.

    -
    -
    -
    p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00),
    -       (0.05 , 0.92 , 0.03 , 0.00 , 0.00),
    -       (0.00 , 0.04 , 0.92 , 0.04 , 0.00),
    -       (0.00 , 0.00 , 0.04 , 0.94 , 0.02),
    -       (0.00 , 0.00 , 0.00 , 0.01 , 0.99))
    -
    -p_Q = np.array(p_Q)
    -states = 0, 1, 2, 3, 4
    -dates = 10, 60, 160
    -initial_states = 0, 4
    -
    -rows, cols = 2, 3
    -fig, axes = plt.subplots(rows, cols)
    -
    -for row, init in enumerate(initial_states):
    -    psi = np.zeros(5)
    -    psi[init] = 1
    -    for col, d in enumerate(dates):
    -        ax = axes[row, col]
    -        ax.bar(states, 
    -                psi @ np.linalg.matrix_power(p_Q, d), 
    -                alpha=0.5,
    -                edgecolor='k')
    -        ax.set_title(f"$X_0 = {init}, t = {d}$")
    -        ax.set_ylabel("prob")
    -        ax.set_xlabel("state")
    -
    -plt.tight_layout()
    -
    -#plt.savefig("dds2.pdf")
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_49_0.png -
    -
    -

    And here’s figure 4.12.

    -
    -
    -
    dates = 160, 500, 1000
    -
    -fig, axes = plt.subplots(rows, cols)
    -
    -for row, init in enumerate(initial_states):
    -    psi = np.zeros(5)
    -    psi[init] = 1
    -    for col, d in enumerate(dates):
    -        ax = axes[row, col]
    -        ax.bar(states, 
    -                psi @ np.linalg.matrix_power(p_Q, d), 
    -                alpha=0.5,
    -                edgecolor='k')
    -        ax.set_title(f"$X_0 = {init}, t = {d}$")
    -        ax.set_ylabel("prob")
    -        ax.set_xlabel("state")
    -
    -plt.tight_layout()
    -
    -#plt.savefig("dds3.pdf")
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_51_0.png -
    -
    -

    Next we turn to exercise 4.42.

    -

    First here’s a function to compute the stationary distribution, assuming it is -unique.

    -
    -
    -
    from numpy.linalg import solve
    -
    -def compute_stationary(p):
    -    N = p.shape[0]
    -    I = np.identity(N)
    -    O = np.ones((N, N))
    -    A = I - p + O
    -    return solve(A.T, np.ones((N, 1))).flatten()
    -
    -
    -
    -
    -

    Now let’s apply it to p_Q.

    -
    -
    -
    psi_star = compute_stationary(p_Q)
    -
    -fig, ax = plt.subplots()
    -ax.bar(states, psi_star, alpha=0.5, edgecolor='k')
    -
    -plt.show()
    -
    -
    -
    -
    -_images/ch4_55_0.png -
    -
    -

    As expected, the distribution is very similar to the time 1,000 distribution -we obtained above by shifting forward in time.

    -

    Now let’s look at exercise 4.43.

    -
    -
    -
    psi_star = compute_stationary(pH)  
    -print(np.inner(psi_star, h))
    -
    -
    -
    -
    -
    788.1600000000004
    -
    -
    -
    -
    -

    If we compute profits at \(t=1000\), starting from a range of initial -conditions, we get very similar results.

    -
    -
    -
    pT = np.linalg.matrix_power(pH, 1000)
    -psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1)
    -
    -for psi in psi_vecs:
    -    print(np.inner(psi, pT @ h))
    -
    -
    -
    -
    -
    788.1599999999779
    -788.1599999999786
    -788.1599999999784
    -
    -
    -
    -
    -

    This is not surprising, since p_H is globally stable.

    -

    Here’s the solution to exercise 4.57, which computes mean return time.

    -

    I’ll use JIT compilation to make the code fast.

    -
    -
    -
    @jit
    -def compute_return_time(x, p, max_iter=100_000):
    -    X = x
    -    t = 0
    -    while t < max_iter:
    -        W = np.random.rand()
    -        X = tau(W, S, pH[X, :])
    -        t += 1
    -        if X == x:
    -            return t
    -
    -@jit
    -def compute_mean_return_time(x, p, n=100_000):
    -    counter = 0
    -    for i in range(n):
    -        counter += compute_return_time(x, p)
    -    return counter / n
    -
    -
    -[compute_mean_return_time(i, pH) for i in range(3)]
    -
    -
    -
    -
    -
    [1.22771, 6.14, 40.60528]
    -
    -
    -
    -
    -

    For comparison:

    -
    -
    -
    psi_star = compute_stationary(pH)
    -1/ psi_star
    -
    -
    -
    -
    -
    array([ 1.23031496,  6.1515748 , 40.58441558])
    -
    -
    -
    -
    -

    As predicted by the theory, the values are approximately equal.

    -

    Now let’s turn to the inventory model.

    -
    -
    -
    def b(d):
    -    " Returns probability that demand = d."
    -    return (d >= 0) * (1/2)**(d + 1)
    -
    -def h(x, q, Q):
    -    return  x + (Q - x) * (x <= q)
    -
    -def build_p(q=2, Q=5): 
    -    p = np.empty((Q+1, Q+1))
    -    for x in range(Q+1):
    -        for y in range(Q+1):
    -            if y == 0:
    -                p[x,y] = (1/2)**h(x, q, Q)    # prob D >= h(x, q)
    -            else:
    -                p[x,y] = b(h(x, q, Q) - y)    # prob h(x, q) - D = y
    -
    -    return p
    -
    -
    -
    -
    -

    Let’s verify that the stationary distribution at \(q=2\) and \(Q=5\) matches the -one shown in the text.

    -
    -
    -
    p = build_p()
    -compute_stationary(p)
    -
    -
    -
    -
    -
    array([0.0625, 0.0625, 0.125 , 0.25  , 0.25  , 0.25  ])
    -
    -
    -
    -
    -

    Yep, looks good.

    -

    Now let’s check that the optimal policy agrees with \(q=7\), as claimed in the text.

    -
    -
    -
    Q = 20   # inventory upper bound
    -C = 0.1  # cost of restocking
    -
    -# profit given state x, demand d, policy q
    -def profit(x, d, q):
    -    stock = h(x, q, Q)
    -    revenue = stock if stock < d else d
    -    cost = C * (x <= q)
    -    return revenue - cost
    -
    -# expected profit given x and policy q
    -def g(x, q):
    -    counter = 0
    -    for d in range(1000):
    -        counter += profit(x, d, q) * b(d)
    -    return counter
    -
    -def profit_at_stationary(q):
    -    p = build_p(q=q, Q=Q)
    -    stationary = compute_stationary(p)
    -    counter = 0
    -    for x in range(Q+1):
    -        counter += g(x, q) * stationary[x]
    -    return counter
    -     
    -def compute_optimal_policy():
    -    running_max = -np.inf
    -    for q in range(Q+1):
    -        counter = profit_at_stationary(q)
    -        if counter > running_max:
    -            running_max = counter
    -            argmax = q
    -    return(argmax)
    -
    -compute_optimal_policy()
    -
    -
    -
    -
    -
    7
    -
    -
    -
    -
    -

    Here’s a solution for exercise 4.61. From preceding calculations we have -the stationary probability assigned to normal growth:

    -
    -
    -
    psi_star = compute_stationary(pH)  
    -psi_star[0]
    -
    -
    -
    -
    -
    0.8128000000000003
    -
    -
    -
    -
    -

    The fraction of the time a long path spends in this state can be calculated as -follows.

    -
    -
    -
    T = 1_000_000
    -mc = MarkovChain(pH)
    -X = mc.simulate(init=0, ts_length=T)
    -np.mean(X == 0)
    -
    -
    -
    -
    -
    0.810454
    -
    -
    -
    -
    -

    As expected given the LLN results for stable Markov chains, the two numbers are approximately equal.

    -

    Finally, let’s look at the expected profits question in exercise 4.63.

    -

    Previously we calculated steady state profits via

    -
    -
    -
    h = (1000, 0, -1000)
    -psi_star = compute_stationary(pH)  
    -print(np.inner(psi_star, h))
    -
    -
    -
    -
    -
    788.1600000000004
    -
    -
    -
    -
    -

    To check that we get approximately the same results when simulating a long -time series, we can calculate as follows.

    -
    -
    -
    y = [h[x] for x in X]
    -np.mean(y)
    -
    -
    -
    -
    -
    785.87
    -
    -
    -
    -
    -
    -
    - - - - -
    - - -
    - - Chapter 3 Code - -
    - -
    -
    -
    -
    -

    - - By John Stachurski
    - - © Copyright 2021.
    -

    -
    -
    -
    - - -
    -
    - - - - - - \ No newline at end of file diff --git a/code_book/_build/html/genindex.html b/code_book/_build/html/genindex.html deleted file mode 100644 index 5d77125..0000000 --- a/code_book/_build/html/genindex.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - Index — Economic Dynamics Python Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    -
    - -
    - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
    -
    - -
    - - -

    Index

    - -
    - -
    - - -
    - - -
    - - -
    - -
    -
    -
    -
    -

    - - By John Stachurski
    - - © Copyright 2021.
    -

    -
    -
    -
    - - -
    -
    - - - - - - \ No newline at end of file diff --git a/code_book/_build/html/index.html b/code_book/_build/html/index.html deleted file mode 100644 index 3157386..0000000 --- a/code_book/_build/html/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/code_book/_build/html/intro.html b/code_book/_build/html/intro.html deleted file mode 100644 index 22c395e..0000000 --- a/code_book/_build/html/intro.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - Economic Dynamics Code Book — Economic Dynamics Python Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
    -
    - -
    - -
    -

    Economic Dynamics Code Book

    -

    AUTHOR: JOHN STACHURSKI

    -

    This code book provides code to accompany the second edition of the -textbook Economic Dynamics: Theory and Computation, published by the MIT -Press. The code recreates figures from the book and gives solutions to -exercises.

    -

    The only code provided at this stage is Python. A Julia version is lacking -only due to time constraints. If there are readers who would like to create a -Julia version, please get in touch via email or the issue -tracker. A MATLAB version is also -welcome — although I’m not personally familiar with the language.

    -

    The Python code contained in these notes is accelerated through a combination of -NumPy and just-in-time compilation -(via Numba). For those who require it, QuantEcon -provides a fast-paced introduction to scientific computing with -Python with background on -these topics.

    -
    -

    Note

    -

    To run the code contained here, please install the latest version of -Anaconda Python. You will also need the QuantEcon Python -library and the Interpolation -library. -Follow the links for installation instructions.

    -

    If you encounter errors, please open an -issue and copy and paste your -error message.

    -
    -

    This code book is created using Jupyter Book.

    -
    -
    -
    - - - - -
    - - -
    - - Chapter 1 Code - -
    - -
    -
    -
    -
    -

    - - By John Stachurski
    - - © Copyright 2021.
    -

    -
    -
    -
    - - -
    -
    - - - - - - \ No newline at end of file diff --git a/code_book/_build/html/objects.inv b/code_book/_build/html/objects.inv deleted file mode 100644 index c621ca1..0000000 --- a/code_book/_build/html/objects.inv +++ /dev/null @@ -1,6 +0,0 @@ -# Sphinx inventory version 2 -# Project: Python -# Version: -# The remainder of this file is compressed using zlib. -xڅM -0}N1PH..\O)F6: Jm%L iIVmV GPAmYYXYYXYYXYYXYYY_uni++:Fڮ\Q5y; ٫;H=yJ{k5sy{B5jˋq;7Ea \ No newline at end of file diff --git a/code_book/_build/html/reports/ch4.log b/code_book/_build/html/reports/ch4.log deleted file mode 100644 index dbc2313..0000000 --- a/code_book/_build/html/reports/ch4.log +++ /dev/null @@ -1,34 +0,0 @@ -Traceback (most recent call last): - File "/home/john/anaconda3/lib/python3.8/site-packages/jupyter_cache/executors/utils.py", line 51, in single_nb_execution - executenb( - File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/client.py", line 1112, in execute - return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute() - File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/util.py", line 74, in wrapped - return just_run(coro(*args, **kwargs)) - File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/util.py", line 53, in just_run - return loop.run_until_complete(coro) - File "/home/john/anaconda3/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete - return future.result() - File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/client.py", line 553, in async_execute - await self.async_execute_cell( - File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/client.py", line 857, in async_execute_cell - self._check_raise_for_error(cell, exec_reply) - File "/home/john/anaconda3/lib/python3.8/site-packages/nbclient/client.py", line 760, in _check_raise_for_error - raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content) -nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell: ------------------- -psi_star = compute_stationary(pH) -print(np.inner(psi_star, h)) ------------------- - ---------------------------------------------------------------------------- -TypeError Traceback (most recent call last) - in  - 1 psi_star = compute_stationary(pH) -----> 2 print(np.inner(psi_star, h)) - -<__array_function__ internals> in inner(*args, **kwargs) - -TypeError: unsupported operand type(s) for *: 'float' and 'function' -TypeError: unsupported operand type(s) for *: 'float' and 'function' - diff --git a/code_book/_build/html/search.html b/code_book/_build/html/search.html deleted file mode 100644 index ed56f3c..0000000 --- a/code_book/_build/html/search.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - Search — Economic Dynamics Python Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    -
    - -
    - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
    -
    - -
    - -

    Search

    -
    - -

    - Please activate JavaScript to enable the search - functionality. -

    -
    -

    - Searching for multiple words only shows matches that contain - all words. -

    -
    - - - -
    - -
    - -
    - -
    - - -
    - - -
    - -
    -
    -
    -
    -

    - - By John Stachurski
    - - © Copyright 2021.
    -

    -
    -
    -
    - - -
    -
    - - - - - - \ No newline at end of file diff --git a/code_book/_build/html/searchindex.js b/code_book/_build/html/searchindex.js deleted file mode 100644 index 3b19353..0000000 --- a/code_book/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({docnames:["ch1","ch2","ch3","ch4","ch5","ch6","intro"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["ch1.md","ch2.md","ch3.md","ch4.md","ch5.md","ch6.md","intro.md"],objects:{},objnames:{},objtypes:{},terms:{"000":3,"0000000000000002":[],"00016193241347650655":[],"0002742339641272906":[],"00046441762625448746":[],"0007864953280325437":[],"000841":[],"0008410000000000001":3,"001":4,"0013319367441120278":[],"001993285071660904":[],"002255646571679648":[],"003819957275620567":[],"005":[3,4],"0064691311887052905":[],"010955530472493535":[],"012":3,"01654164":[],"018553287053961753":[],"025":3,"029":3,"0314201545393793":[],"03992042":[],"05321030760788403":[],"0625":3,"07489":[],"077":3,"09011212316537609":[],"0x7efe082073a0":[],"0x7f11e35c3cf0":[],"0x7ff29c16a3a0":[],"100":[3,5],"1000":[1,3,4,5],"10000":[],"100_000":[1,3,5],"101":[],"10576923":[],"10_000":[3,5],"11447938":[],"11721":[],"120":5,"1234":5,"125":3,"140":5,"145":3,"14793":[],"151":[],"1515748":3,"15260567184870055":[],"15316":[],"1599999999779":3,"1599999999784":3,"1599999999786":3,"1599999999967":3,"1599999999972":3,"1599999999974":3,"160":3,"1600000000004":3,"161":[],"17307692":[],"17606":[],"18738265":[],"18831":[],"1_000_000":[3,4],"1e6":4,"1mcannot":[],"1mdef":[],"1mdure":[],"1mfunction":[],"1mno":[],"200":[3,5],"217":3,"22069":[],"22507":[],"22634":[],"22771":3,"22948":[],"23031496":3,"23363":[],"23583":[],"24237":[],"250":5,"257":[],"2573668687016468":[],"2584390462574362":[],"26923077":[],"27675704":[],"30769231":[],"30786961":[],"31bb48ad890c":[],"347632676323":3,"348":[],"348918583534985":[],"38364422":[],"385":3,"399":[],"400":5,"408293504267931":1,"40890000000000004":[],"4307552":[],"4376689170549888":[],"45189053788556":3,"452677519879636":[],"485294":[],"492":3,"500":3,"5000":[3,5],"508":3,"54393759":[],"5454545454545455":[],"561947083724931e":[],"574149295173548":[],"57721679":[],"57957506909223":[],"580073017568804":[],"580438090144735":[],"58077722400634":[],"581797714223395":[],"582834547440143":[],"583700457424992":[],"584047845416478":[],"584270880794744":[],"58441558":3,"585132380423516":[],"585429646857868":[],"585610757622973":[],"585623467767324":[],"586192661727864":[],"58620934357645":[],"58622753202279":[],"58688502361491":[],"5870486350557":[],"58821129295589":[],"588635070943365":[],"5889967549357":[],"5894964410824":[],"589688766648738":[],"589729149671975":[],"589966898503196":[],"590254532158383":[],"590662763178187":[],"591314768634113":[],"591641383948783":[],"59208130750371":[],"59244549621402":[],"592698097634074":[],"593526011462384":[],"59384855119963":[],"594002773544617":[],"594108812997444":[],"59417396319573":[],"59418":[],"594306141702873":[],"594324746801778":[],"59442":[],"59468":[],"59524":[],"59547":[],"59551":[],"59572":[],"59573":[],"59575":[],"59576":[],"59577":[],"5958":[],"59592188452932":[],"59597":[],"59612":[],"596256581354048":[],"59626":[],"59632":[],"59636":[],"59643":[],"59647":[],"5965":[],"59652":[],"59657":[],"59664":[],"59665":[],"59673":[],"59678":[],"59682":[],"59689":[],"5969":[],"59694":[],"59696":[],"59699":[],"59701":[],"59708306148999":[],"59721":[],"59722":[],"59725":[],"59726":[],"59727":[],"59743":[],"59744":3,"5976173289395574":[],"59767":[],"59782":[],"59784":[],"59786":[],"59787":[],"5979":[],"59803":[],"59835":[],"59839":[],"59841":[],"59844459132463":[],"5985":[],"59855":[],"5986":[],"59873":[],"598760688848813":[],"59876741687965":[],"59887":[],"59921":[],"59948":[],"599827925768675":[],"59983":[],"5999":3,"59994":[],"59996":[],"60006":[],"60017":[],"600241134164218":[],"60039":[],"60069":[],"60289226645117":[],"604403489151945":[],"60528":3,"65674":[],"6974":[],"6978":[],"6997":[],"7003":[],"701":[],"7023":[],"7027":[],"7036":[],"7037":[],"7038":[],"704242":3,"7043":[],"7055":[],"7056":[],"7057":[],"706":[],"7073":[],"7085":3,"7087":[],"7089":[],"7106":[],"7109":[],"7124":[],"741211643809562":[],"74304876607997":3,"74859245":[],"755385627224534":[],"76023069":[],"765952576028187":[],"76842124":[],"771791832189983":[],"778":3,"783566021708202":[],"78392571817897":[],"7845":[],"785":3,"7864":[],"786629644578571":[],"786887567273336":[],"787263242364544":[],"7875":[],"7879":[],"788":3,"7881":[],"7882":[],"7884":[],"788530452127345":[],"7888":[],"789088119446838":[],"7894":[],"7898":[],"7901":[],"7902":[],"7904":[],"7905":[],"7907":[],"7909":[],"7911":[],"7916":[],"7924":[],"792420262623354":[],"7925":[],"79259299707508":[],"792679842182636":[],"7928":[],"7931":[],"7934":[],"7935":[],"7936":[],"79373472932633":[],"79375327340642":[],"7939":[],"794":[],"7941":[],"794525859512465":[],"7946":[],"7948":[],"794913611993831":[],"795":[],"7951":[],"7952":[],"7954":[],"795411829975743":[],"795475321837419":[],"795499058935107":[],"7955":[],"7956":[],"7959":[],"79594977677184":[],"7960":[],"796194915393714":[],"7964":[],"7966":[],"796621250134683":[],"796640975632467":[],"7967":[],"796872157971862":[],"7969":[],"7971":[],"7972":[],"7973":[],"797423615732392":[],"79743275120846":[],"797597406645487":[],"7976":[],"79771834889823":[],"79775638724711":[],"7978":[],"798":[],"798025330587468":[],"798063058345683":[],"798155508869135":[],"7982":[],"798254682186514":[],"7983":[],"798457753580564":[],"798459581995443":[],"798692163840483":[],"798771820437212":[],"798838837528892":[],"798945817539316":[],"798992517200068":[],"799":[],"7990":[],"79901492468194":[],"799093984397995":[],"799143863013667":[],"7992":[],"799213278278414":[],"799274126883487":[],"7993":[],"799313514269278":[],"799437190914343":[],"7995":[],"799528942923308":[],"7997":[],"799726097272123":[],"799837583453888":[],"799885737054286":[],"80006243832455":[],"8001":[],"800125716523665":[],"800142388698992":[],"8002":[],"8003":[],"8005":[],"8006":[],"8007":[],"800826197338846":[],"801017229490652":[],"801145703383265":[],"8012":[],"801241795836075":[],"801278011828773":[],"8013":[],"8014":[],"801571341432496":[],"8017":[],"8019":[],"8020":[],"802009267225108":[],"8021":[],"8022":[],"80231517289431":[],"802369279211504":[],"8025":[],"802595225647261":[],"8026":[],"80285063097791":[],"802877532340284":[],"803":[],"8030":[],"8032":[],"8034":[],"8036":[],"8037":[],"8038":[],"8039":[],"8042":[],"804283806256231":[],"804372466716575":[],"8047":[],"8048":[],"8049":[],"805323740995263":[],"805417402138465":[],"8056":[],"8057":[],"8058":[],"8059":[],"805961022647994":[],"806025038362739":[],"8061":[],"8067":[],"8068":[],"8069":[],"8072":[],"8073":[],"8079":[],"8083":[],"8085":[],"8086":[],"8088":[],"8089":[],"8091":[],"8096":[],"810188245133942":[],"810454":3,"8113":[],"8114":[],"8123":[],"8126":[],"8128000000000003":3,"813188":[],"8139":[],"885":3,"8f72536c7a30":[],"94290651":[],"950":3,"971":3,"977e2f1abbaa":[],"981843":[],"\u03b1":1,"\u03b2":1,"\u03b3":[],"\u03b4":[],"\u03bc":[],"\u03c6":1,"\u03c8":[],"\u03c8_0":[],"\u03d5":[],"\u03f5":1,"break":[1,3,4],"class":[1,3,5],"default":5,"final":3,"function":[3,5],"import":[1,3,4,5],"int":3,"long":3,"return":[1,3,4,5],"true":[3,4,5],"try":[],"while":[1,3,4,5],And:[1,3],For:[3,5,6],Not:5,RHS:5,The:[1,3,5,6],There:[],WITH:[],With:[],__init__:[1,3,5],abl:4,abov:[3,5],abs:[1,4,5],acceler:6,accompani:6,accord:3,act:[1,5],action:4,ad_data:5,ad_sdla:5,address:3,adtssim2:[],adtssim:5,after:3,agre:3,ahead:5,algebra:4,algorithm:[1,4],all:[1,3,4],allclos:[],allow:3,almost:3,alon:1,alpha:[1,3,4,5],alpha_0:5,alpha_1:5,also:[5,6],although:[3,5,6],anaconda3:[],anaconda:6,ani:[4,5],anoth:3,answer:3,antialias:3,append:3,appli:3,approxim:[1,3,4,5],arang:4,arg:5,argmax:3,argument:5,arrai:[1,3,5],arrow:3,asarrai:3,ask:5,assign:3,assum:[1,3],atol:[],author:6,averag:[3,5],axes:[3,5],axs:[],back:[],background:6,bar:[1,3,4],barplot:4,basic:1,becaus:3,becom:[3,4],been:[],befor:4,behaviour:[],bellman:[4,5],below:[3,5],beta:4,beta_0:5,beta_1:5,between:4,bifurc:3,bin:3,binomi:4,borrow:[3,4],both:4,bound:[3,5],brent_max:[],build_p:3,c_bar:5,c_star:5,calcul:[3,4],call:1,calle:[],can:[3,4,5],candid:[],capit:5,carlo:5,certain:4,chain:4,check:[1,3,4],choic:3,claim:3,clear:4,close:3,closur:[1,5],coeffici:4,coincid:1,col:3,collect:5,color:[3,5],column:[],combin:6,comparison:3,compil:[3,6],complet:5,comput:[1,3,4,5,6],compute_margin:3,compute_marginal_2:3,compute_mean_return:[],compute_mean_return_tim:3,compute_optimal_polici:3,compute_policy_valu:4,compute_return_tim:3,compute_stationari:[3,4],compute_time_at_st:4,compute_value_funct:4,concern:5,conda:[],condit:[3,4,5],confid:5,constraint:6,construct:4,consumpt:5,contain:6,continu:4,converg:[1,4,5],convert:3,copi:6,core:[],correctli:5,correspond:4,cost:3,counter:[3,4],creat:[3,6],cumsum:[1,3],current:3,current_profit:3,darker:[],data:[1,5],date:[3,5],dds2:3,dds3:3,decor:5,def:[1,3,4,5],default_param:5,degre:[4,5],delta:5,delta_n:5,demand:3,densiti:5,deprec:[],depreci:5,describ:5,detect:[],determin:[],deviat:4,diagram:[3,4],did:[],differ:[3,5],discount:[3,5],discuss:3,dispatch:[],distribut:[1,3,4,5],dobrushin:4,doc:[],doe:4,down:4,draw:[1,3,5],draw_arrow:3,draw_tau:5,draw_trajectori:3,draws_from_margin:5,dtype:3,due:[3,5,6],each:[1,4],earlier:4,ecdf_val:5,edgecolor:[1,3,4],edit:6,effici:1,elaps:3,element:3,elid:[],elif:4,els:[1,3,4,5],email:6,empir:[1,5],empti:[1,3,4,5],empty_lik:[4,5],enabl:[],encount:6,ensur:5,enumer:[1,3,4,5],eps:[3,4],epsilon:4,equal:3,equat:5,equival:4,error:[4,5,6],estim:5,evalu:[1,4],even:[3,4],exact:4,exactli:4,execut:3,exercis:[3,5,6],exern:5,exist:3,exp:5,expect:[1,3,5],expected_consumpt:5,experi:3,experiment:5,extra:5,facecolor:1,fact:5,factor:5,factori:1,fail:[1,4,5],fall:[],fals:3,familiar:6,fast:[3,6],feasibl:4,feed:3,fig:[1,3,4,5],figur:[3,5,6],file:[],fill:3,find:3,finit:4,first:[3,4],flatten:[3,4,5],float46:[],float64:5,follow:[1,3,4,5,6],fontsiz:3,foo:[],forceobj:[],forward:3,found:4,fraction:[1,3,4],frequenc:1,from:[1,3,4,5,6],fun:[3,5],gamma:[4,5],gaussian:5,gener:[1,3,5],generate_ad_t:5,generate_solow_t:5,generate_t:5,genexpr:[],get:[3,6],get_greedi:4,give:[3,4,6],given:[1,3,4,5],global:[3,4],good:3,greedi:[4,5],grei:[3,5],grid:[3,5],grid_max:5,grid_point:5,grid_siz:5,gross:5,growth:[3,5],guarante:4,guess:5,hamilton:3,hand:5,happen:3,has:3,have:[3,4,5],head_length:3,head_width:3,henc:5,here:[1,3,4,5,6],high:[],higher:5,highest:4,hist:3,histogram:[1,3],hold:4,home:[],howard:4,html:[],http:[],ident:[3,4],ifels:[],illustr:1,immedi:5,implement:[1,4,5],impli:3,incom:[],increas:[3,5],inf:[3,4],infer:[],inform:[],infti:5,inher:3,init:[3,5],init_k:5,init_valu:5,initi:[3,4,5],initial_st:3,inner:3,input:[],instal:6,instanc:5,instruct:6,intens:5,interp1d:5,interp:5,interpol:[5,6],interv:5,introduct:6,invari:3,inventori:3,ipython:[],irrelev:3,issu:6,iter:5,jit:[3,4,5],jitclass:5,john:6,julia:6,jupyt:6,just:[3,6],k_0:5,k_1:[],k_b:5,k_bar:5,k_draw:5,k_t:[],kde:5,kde_factori:5,kernel:[3,4,5],label:[1,3,4,5],lack:6,lae:[],lae_factori:5,lag:5,lambda:[1,3,5],languag:6,last:5,latest:6,law:5,lead:[4,5],learn:3,legend:[1,3,4,5],len:[3,4,5],length:3,less:4,let:[1,3,4,5],lib:[],librari:[1,6],lifetim:4,lift:[],liftedloop:[],lighter:[],like:6,linalg:[3,4],line:5,link:6,linspac:[3,5],littl:3,lln:3,locat:5,log:5,logist:5,lognorm:5,look:[3,5],loop:[4,5],looplift:[],lower:[3,5],m_sigma:4,make:3,map:[3,5],margin:5,markov:4,markovchain:3,mass:4,match:3,matlab:6,matplotlib:[1,3,4,5],matrix:[],matrix_pow:3,max:[4,5],max_:5,max_it:[3,4,5],max_t:3,maxim:5,maximizis:5,maximum:[4,5],mean:[1,3,5],messag:6,method:[1,4,5],might:[],min:4,min_:5,minim:5,minimize_scalar:5,miss:[],mit:6,mode:[],model:[3,5],mont:5,more:1,most:3,motion:5,msg:[],much:3,mutation_ess:4,nconverg:[4,5],need:[3,4,6],new_:5,new_k:5,new_param:5,new_sigma:4,next:[3,4,5],njit:[],none:3,nopython:[],normal:[3,5],note:6,notic:3,now:[3,4,5],npydecl:[],nrm:3,numba:[3,4,5,6],numbadeprecationwarn:[],numbawarn:[],number:3,numer:5,numpi:[1,3,4,5,6],object:[4,5],object_mode_pass:[],observ:[],obtain:3,omit:5,one:[3,5],ones:[3,4],onli:[4,6],open:6,oper:[4,5],opt_savings_data:[],opt_wealth_dist:4,opt_weath_dist:[],optim:3,optimal_polici:[],optimalsav:5,option:3,org:[],os_reward:4,our:[3,4,5],out:4,over:5,overload:[],p_h:3,p_q:3,p_sigma:4,pace:6,packag:[],param:5,paramet:[3,4,5],particular:3,pass:[],passag:5,past:6,path:[3,4],path_prob:3,pdf:[3,4,5],perform:5,persist:3,person:6,perspect:3,phi:[1,3,4,5],piec:5,pleas:6,plot:[1,3,4,5],plt:[1,3,4,5],point:4,polici:[3,5],policy_iter:4,posit:4,possibl:1,preced:3,precis:4,predict:3,prefer:[],press:6,previous:3,primit:4,print:[1,3,4,5],print_skip:[4,5],prob:3,prob_exited_recess:[],probabl:[1,3,4],problem:[],produc:5,profit:3,profit_at_stationari:3,provid:6,psi:[3,4],psi_star:[3,4],psi_t:5,psi_vec:3,publish:6,put:5,pydata:[],pyplot:[1,3,4,5],python3:[],python:[1,5,6],quantecon:[3,6],question:3,r_sigma:4,rais:[],rand:3,randn:5,random:[1,3,4,5],random_binary_distribut:[],randomdecl:[],rang:[1,3,4,5],rate:5,rather:[],reader:6,recess:3,recession_st:3,record:4,recreat:6,refer:[],reject:[],rel:[3,5],repres:[3,5],reproduc:5,requir:[5,6],resolv:[],respect:3,restock:3,result:[3,4,5],revenu:3,revers:5,reward1:4,reward2:4,reward:4,rho:[3,4,5],right:5,round:5,routin:5,row:3,run:[3,4,6],running_max:[3,4],running_min:4,rvs:[],s_bar:4,sai:3,same:3,sampl:[4,5],sample_frac:4,sample_s:5,save:3,savefig:[3,4,5],savings_r:5,scalar:5,scalar_maxim:[],scale:[3,5],scatter:4,scientif:6,scipi:5,sdsdiagram:3,sdsstabl:3,searchsort:[1,3],second:6,section:[4,5],see:[3,5],seed:5,seem:3,self:[1,3,5],seri:[3,5],series_length:[],set:[3,4,5],set_titl:[3,5],set_xlabel:[3,4,5],set_xlim:3,set_xtick:3,set_ylabel:[3,4],set_ylim:[3,4],set_ytick:3,sever:3,shape:[3,4],shift:3,shock:[4,5],shock_siz:5,should:1,show:[1,3,4,5],shown:[3,5],side:5,sigma:[4,5],sigma_hat:5,sigma_star:[4,5],sigma_star_pi:4,signatur:[],sim_from_margin:5,sim_length:4,sim_siz:5,similar:[3,5],simul:[3,5],sin:1,sinc:[3,4,5],site:[],size:[1,5],slightli:5,small:5,smooth:5,solow_ecdf:5,solow_golden:5,solow_t:5,solut:[3,5,6],solv:[3,4,5],solve_model:5,some:[3,4,5],sourc:[],space:4,specif:[],specifi:3,speed:[],spend:[3,4],sqrt:[3,5],stabil:[3,4,5],stabl:[3,4],stachurski:6,stage:6,standard:5,star:5,star_data:5,star_g:5,starseq:5,start:[3,4,5],state:[3,4,5],state_action_valu:5,state_valu:3,stationari:[3,4],statist:3,std:5,steadi:[3,5],stem:1,step:[3,4],stochast:[3,4,5],stock:[3,5],store:[4,5],str:5,subplot:[1,3,4,5],success:4,suffici:3,suggest:4,sum:4,sup:4,surpris:3,surprisingli:5,system:3,t_date:5,t_val:3,take:[3,5],target:3,task:[3,5],tau:[1,3,5],tau_draw:5,tau_factori:1,techniqu:5,templat:[],termin:[],test:[1,5],text:3,textbook:[3,4,6],than:4,thei:5,theori:[3,6],thi:[0,1,2,3,4,5,6],those:[5,6],though:4,threshold:5,through:6,tight_layout:[3,5],time:[3,4,5,6],tmp:[],tol:[4,5],tool:5,topic:6,touch:6,tracker:6,traj:3,trajectori:3,transit:5,ts_length:[3,5],ts_lenth:[],tupl:5,turn:[3,4,5],two:[3,4],type:[],typeerror:[],typer:[],typic:5,uncom:3,under:5,uniform:[1,3,4],uniqu:3,unitupl:[],unknown:[],until:4,updat:[3,4,5],upper:[3,5],use:[1,3,4,5],used:[1,2],useful:5,uses:5,using:[3,4,5,6],util:[4,5],v_arrai:5,v_greedi:5,v_max:5,v_new:[4,5],v_sigma:4,v_star:[4,5],val:[],valu:[1,3,5],vari:4,varianc:[],vector:5,verbos:[4,5],veri:3,verifi:3,version:6,vfi:4,vfiv:4,via:[3,4,5,6],visit:[],w_vec:5,wai:4,warn:[],warn_msg:[],wealth:4,wealth_opt_pol:4,welcom:6,well:[1,5],what:[1,3],when:[3,5],where:1,which:[3,4,5],who:6,width:4,without:[],work:[1,5],would:6,write:4,written:[],x_0:3,x_data:5,x_grid:5,x_init:4,x_new:3,x_ob:5,x_val:3,xgrid:3,xmax:3,xmin:3,y_grid:5,y_new:3,yep:3,ygrid:3,ymax:3,ymin:3,you:[3,6],your:6,z_bar:4,zero:[3,4],zip:5},titles:["Chapter 1 Code","Chapter 2 Code","Chapter 3 Code","Chapter 4 Code","Chapter 5 Code","Chapter 6 Code","Economic Dynamics Code Book"],titleterms:{"function":[1,4],The:4,bisect:1,book:6,chain:3,chaotic:3,chapter:[0,1,2,3,4,5],code:[0,1,2,3,4,5,6],defin:1,demand:[],dynam:[3,6],econom:6,equilibrium:4,expect:[],first:5,foobar:[],given:[],introduct:3,iter:4,markov:3,object:1,optim:[4,5],orient:1,polici:4,problem:4,profit:[],program:1,restock:[],save:[4,5],select:4,state:[],step:5,user:1,valu:4}}) \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch1.ipynb b/code_book/_build/jupyter_execute/ch1.ipynb deleted file mode 100644 index 7344a3e..0000000 --- a/code_book/_build/jupyter_execute/ch1.ipynb +++ /dev/null @@ -1,48 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "c783256b", - "metadata": {}, - "source": [ - "# Chapter 1 Code\n", - "\n", - "No code in this chapter." - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 14 - ] - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch1.py b/code_book/_build/jupyter_execute/ch1.py deleted file mode 100644 index 937cd26..0000000 --- a/code_book/_build/jupyter_execute/ch1.py +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# # Chapter 1 Code -# -# No code in this chapter. diff --git a/code_book/_build/jupyter_execute/ch2.ipynb b/code_book/_build/jupyter_execute/ch2.ipynb deleted file mode 100644 index d312353..0000000 --- a/code_book/_build/jupyter_execute/ch2.ipynb +++ /dev/null @@ -1,428 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e5556182", - "metadata": {}, - "source": [ - "# Chapter 2 Code" - ] - }, - { - "cell_type": "markdown", - "id": "40231c74", - "metadata": {}, - "source": [ - "We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "6aa68cab", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "id": "6fa2772c", - "metadata": {}, - "source": [ - "## Bisection" - ] - }, - { - "cell_type": "markdown", - "id": "e35e3054", - "metadata": {}, - "source": [ - "Here's an implementation of the bisection algorithm. We will test it on this function:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "04b3f103", - "metadata": {}, - "outputs": [], - "source": [ - "f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1" - ] - }, - { - "cell_type": "markdown", - "id": "30e470e4", - "metadata": {}, - "source": [ - "The implementation:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "47d97ea8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.408293504267931\n" - ] - } - ], - "source": [ - "M = 1000\n", - "ϵ = 1e-8\n", - "α, β = 0, 1\n", - "\n", - " \n", - "i = 1\n", - "a, b = α, β\n", - "while i <= M:\n", - " c = (a + b) / 2\n", - " if abs(f(c)) < ϵ:\n", - " print(c)\n", - " break\n", - " i += 1\n", - " if f(a) * f(c) < 0:\n", - " b = c\n", - " else:\n", - " a = c\n", - " \n", - "if i > M:\n", - " print(\"Failed to converge.\")" - ] - }, - { - "cell_type": "markdown", - "id": "147c2a03", - "metadata": {}, - "source": [ - "## User Defined Functions" - ] - }, - { - "cell_type": "markdown", - "id": "8018f1c2", - "metadata": {}, - "source": [ - "Here's the basic implementation of the function $\\tau$." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "6d5d5fd0", - "metadata": {}, - "outputs": [], - "source": [ - "def tau(z, S, phi):\n", - " \"\"\"\n", - " Evaluates the function tau(z) given data S, phi, where\n", - " S and phi are assumed to be arrays.\n", - " \"\"\"\n", - " a = 0\n", - " for i, x in enumerate(S):\n", - " b = a + phi[i]\n", - " if a < z <= b:\n", - " return x\n", - " a = b" - ] - }, - { - "cell_type": "markdown", - "id": "e5948a66", - "metadata": {}, - "source": [ - "Here's a more efficient implementation." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "1f72ee83", - "metadata": {}, - "outputs": [], - "source": [ - "def tau(z, S, phi):\n", - " i = np.searchsorted(np.cumsum(phi), z)\n", - " return S[i]" - ] - }, - { - "cell_type": "markdown", - "id": "b4c1ae69", - "metadata": {}, - "source": [ - "And here's a closure that generates the function $\\tau$." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "7071228b", - "metadata": {}, - "outputs": [], - "source": [ - "def tau_factory(S, phi):\n", - " Φ = np.cumsum(phi)\n", - " \n", - " def tau(z):\n", - " i = np.searchsorted(Φ, z)\n", - " return S[i]\n", - " \n", - " return tau" - ] - }, - { - "cell_type": "markdown", - "id": "221398c1", - "metadata": {}, - "source": [ - "We generate a function $\\tau$ that acts on $z$ alone by calling the function factory:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "bee09a7f", - "metadata": {}, - "outputs": [], - "source": [ - "phi = 0.2, 0.5, 0.3\n", - "S = 0, 1, 2\n", - "tau = tau_factory(S, phi)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "54226172", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tau(0.1) # Should be 0" - ] - }, - { - "cell_type": "markdown", - "id": "88f28c1f", - "metadata": {}, - "source": [ - "All of these functions work as expected. To illustrate, here $\\tau$ is used to generate draws from a given distribution $\\phi$." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "ca3380d6", - "metadata": {}, - "outputs": [], - "source": [ - "size = 100_000\n", - "\n", - "draws = np.empty(size)\n", - "for j in range(size):\n", - " W = np.random.uniform()\n", - " draws[j] = tau(W)\n", - " \n", - "# Compute fraction of draws with each possible value\n", - "frequency = [np.mean(draws==j) for j in S]\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "e2850786", - "metadata": {}, - "source": [ - "Let's check that the empirical frequency approximately coincides with the probabilities in $\\phi$." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "107915f7", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch2_21_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "\n", - "ax.bar(S, frequency, \n", - " edgecolor='k',\n", - " facecolor='b',\n", - " alpha=0.25, \n", - " label=\"histogram\")\n", - "\n", - "ax.stem(S, phi, label='$\\\\phi$')\n", - "\n", - "ax.legend()\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "95a5d3a0", - "metadata": {}, - "source": [ - "## Object Oriented Programming" - ] - }, - { - "cell_type": "markdown", - "id": "646ff165", - "metadata": {}, - "source": [ - "Here's a class that implements the function $\\tau$ as a method, as well as a method to generate draws from $\\phi$." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "6a1cb12e", - "metadata": {}, - "outputs": [], - "source": [ - "class Tau:\n", - " \n", - " def __init__(self, S, phi):\n", - " self.S = S\n", - " self.Φ = np.cumsum(phi)\n", - " \n", - " def tau(self, z):\n", - " i = np.searchsorted(self.Φ, z)\n", - " return self.S[i]\n", - " \n", - " def draw(self):\n", - " W = np.random.uniform()\n", - " return self.tau(W)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "13694498", - "metadata": {}, - "outputs": [], - "source": [ - "tau = Tau(S, phi)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "6d09cfc5", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n", - "1\n", - "2\n", - "1\n", - "1\n" - ] - } - ], - "source": [ - "for i in range(5):\n", - " print(tau.draw())" - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "source_map": [ - 14, - 18, - 22, - 25, - 29, - 33, - 35, - 39, - 60, - 64, - 68, - 80, - 84, - 88, - 92, - 101, - 105, - 111, - 113, - 117, - 129, - 133, - 147, - 151, - 155, - 171, - 175 - ] - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch2.py b/code_book/_build/jupyter_execute/ch2.py deleted file mode 100644 index e658d9e..0000000 --- a/code_book/_build/jupyter_execute/ch2.py +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# # Chapter 2 Code - -# We'll use Python's NumPy library in what follows, as well as Matplotlib for plotting. - -# In[1]: - - -import numpy as np -import matplotlib.pyplot as plt - - -# ## Bisection - -# Here's an implementation of the bisection algorithm. We will test it on this function: - -# In[2]: - - -f = lambda x: np.sin(4 * (x - 1/4)) + x + x**20 - 1 - - -# The implementation: - -# In[3]: - - -M = 1000 -ϵ = 1e-8 -α, β = 0, 1 - - -i = 1 -a, b = α, β -while i <= M: - c = (a + b) / 2 - if abs(f(c)) < ϵ: - print(c) - break - i += 1 - if f(a) * f(c) < 0: - b = c - else: - a = c - -if i > M: - print("Failed to converge.") - - -# ## User Defined Functions - -# Here's the basic implementation of the function $\tau$. - -# In[4]: - - -def tau(z, S, phi): - """ - Evaluates the function tau(z) given data S, phi, where - S and phi are assumed to be arrays. - """ - a = 0 - for i, x in enumerate(S): - b = a + phi[i] - if a < z <= b: - return x - a = b - - -# Here's a more efficient implementation. - -# In[5]: - - -def tau(z, S, phi): - i = np.searchsorted(np.cumsum(phi), z) - return S[i] - - -# And here's a closure that generates the function $\tau$. - -# In[6]: - - -def tau_factory(S, phi): - Φ = np.cumsum(phi) - - def tau(z): - i = np.searchsorted(Φ, z) - return S[i] - - return tau - - -# We generate a function $\tau$ that acts on $z$ alone by calling the function factory: - -# In[7]: - - -phi = 0.2, 0.5, 0.3 -S = 0, 1, 2 -tau = tau_factory(S, phi) - - -# In[8]: - - -tau(0.1) # Should be 0 - - -# All of these functions work as expected. To illustrate, here $\tau$ is used to generate draws from a given distribution $\phi$. - -# In[9]: - - -size = 100_000 - -draws = np.empty(size) -for j in range(size): - W = np.random.uniform() - draws[j] = tau(W) - -# Compute fraction of draws with each possible value -frequency = [np.mean(draws==j) for j in S] - - - -# Let's check that the empirical frequency approximately coincides with the probabilities in $\phi$. - -# In[10]: - - -fig, ax = plt.subplots() - -ax.bar(S, frequency, - edgecolor='k', - facecolor='b', - alpha=0.25, - label="histogram") - -ax.stem(S, phi, label='$\\phi$') - -ax.legend() - -plt.show() - - -# ## Object Oriented Programming - -# Here's a class that implements the function $\tau$ as a method, as well as a method to generate draws from $\phi$. - -# In[11]: - - -class Tau: - - def __init__(self, S, phi): - self.S = S - self.Φ = np.cumsum(phi) - - def tau(self, z): - i = np.searchsorted(self.Φ, z) - return self.S[i] - - def draw(self): - W = np.random.uniform() - return self.tau(W) - - -# In[12]: - - -tau = Tau(S, phi) - - -# In[13]: - - -for i in range(5): - print(tau.draw()) - diff --git a/code_book/_build/jupyter_execute/ch3.ipynb b/code_book/_build/jupyter_execute/ch3.ipynb deleted file mode 100644 index bd65333..0000000 --- a/code_book/_build/jupyter_execute/ch3.ipynb +++ /dev/null @@ -1,48 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "07367896", - "metadata": {}, - "source": [ - "# Chapter 3 Code\n", - "\n", - "No code used in this chapter." - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.7" - }, - "source_map": [ - 14 - ] - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch3.py b/code_book/_build/jupyter_execute/ch3.py deleted file mode 100644 index bb1d3c0..0000000 --- a/code_book/_build/jupyter_execute/ch3.py +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# # Chapter 3 Code -# -# No code used in this chapter. diff --git a/code_book/_build/jupyter_execute/ch4.ipynb b/code_book/_build/jupyter_execute/ch4.ipynb deleted file mode 100644 index 8c83204..0000000 --- a/code_book/_build/jupyter_execute/ch4.ipynb +++ /dev/null @@ -1,1692 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "1a899127", - "metadata": {}, - "source": [ - "# Chapter 4 Code\n", - "\n", - "Let's start with some imports." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "acdfa84d", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from numba import jit\n", - "from quantecon import MarkovChain" - ] - }, - { - "cell_type": "markdown", - "id": "3977386b", - "metadata": {}, - "source": [ - "## Introduction to Dynamics\n", - "\n", - "Here's the code that generated figure 4.1." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "ea812370", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_3_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def draw_arrow(x, y, xp, yp, ax):\n", - " \"\"\"\n", - " Draw an arrow from (x, y) to (xp, yp).\n", - " \"\"\"\n", - " v1, v2 = xp - x, yp - y\n", - " eps = 1.0\n", - " nrm = np.sqrt(v1**2 + v2**2)\n", - " scale = 1.0\n", - " ax.arrow(x, y, scale * v1, scale * v2,\n", - " antialiased=True, \n", - " alpha=0.5,\n", - " head_length=0.025*(xmax - xmin), \n", - " head_width=0.012*(xmax - xmin),\n", - " fill=False)\n", - "\n", - "xmin, xmax = -10.0, 10.0\n", - "ymin, ymax = -5.0, 5.0\n", - "\n", - "A1 = np.asarray([[0.55, -0.6],\n", - " [0.5, 0.4]])\n", - "\n", - "def f(x, y): \n", - " return A1 @ (x, y)\n", - "\n", - "xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10)\n", - "ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "#ax.set_xlim(xmin, xmax)\n", - "#ax.set_ylim(ymin, ymax)\n", - "\n", - "ax.set_xticks((0,))\n", - "ax.set_yticks((0,))\n", - "ax.grid()\n", - "\n", - "for x in xgrid:\n", - " for y in ygrid:\n", - " xp, yp = f(x, y)\n", - " draw_arrow(x, y, xp, yp, ax)\n", - "\n", - "#plt.savefig(\"sdsdiagram.pdf\") # Uncomment to save figure\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "41487816", - "metadata": {}, - "source": [ - "And here's the code that generated figure 4.2." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "ab7e131d", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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oU+fPpVe9/T0xNPTk8LCQjZt2sSFCxe4cOECAKNGjRK+xNWguLiYnTt3Sp8bgJ+fH8bGxgwfPlzad+DAAUJDQ2nXrh1DhgyRviRVqZY1TUJCglRyLpPJpHxrQd1FZZGsToRQa4guXbqgUCj4999/0dHR4ZlnnrnnGGNjY6myUbXIpHpM9vDw4IUXXqjStrWholQqOXbsGP/++6+0r1mzZgwZMkSaTjh06JD02rp167h06RI9e/YkMDCQ8PBw9u7dS+vWrSuJeU2QmJgoPSEBvPPOO0+cay3QDtq2bcuWLVvIzc1VWwceIdQapGvXrigUCvbt24eOjg69evW677EeHh4EBwdTXFzM1q1buXTpkmSr+fLLL+Ph4VFbYWsd8fHx/PXXX5IFrYGBASNHjqRZs2b3Pefnn38mKyuLwYMH4+XlxY4dO4iIiKBr16707t27xmK7fv06S5culbanTJnyyMZMAu1GtX5x5swZevTooZ57qOWqgmrTvXt3FAoFBw4cQEdHh549ez7weENDQ1566SXgfwtRa9euBcDNzY0hQ4aoNTtBW8jOzmb9+vUkJydL+/r370/Hjh3vO6eclJREaWkpX3zxBbq6utJi7bJly7h27Rr9+vWjc+fONRLfjRs3Klnevv3225KHsaB+curUKSHU9Rm5XC5ZqOro6BAYGFit89zc3AgODqa0tJTt27dz4cIFvvnmG6DCF9nT01OdYdc6paWl7N69m4iICGmfr68vffv2xcDA4KHnL1myBEdHR8LDw+nVqxfHjh1j9uzZ6Onp8corr9CxY8cnjjEpKYnFixdL25MnT8bW1vaJryvQbtzc3Lh69arari971LZA1aFjx47K06dP1/h16zuqha1evXoREBDwWNf471xos2bNGDZsGKampjUUZe2iVCo5ffo0f//9t7RtY2ND37590dfXJz8/n4KCAvLz86v8d0FBgXStY8eOMXr0aJ5//nkKCwsJDg4mPT0dFxcXzM3Nn2huOjk5uVKHn0mTJmFnZ/dkb15QZ1CtId2d+vmoyGSyCKVSWeVoQYyotYigoCAUCgX79+9HR0eHbt26PfI1XF1dCQ4OpqysjF27dnHmzBm+++47oCIlrX379jUcdWXKy8slgXyYiObn51NYWFjldXJycjh//nylEnsvLy+sra3JysqSikOqg6mpKSYmJnh6emJra8ul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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_5_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "def draw_trajectory(x, y, ax, n=10):\n", - " \"\"\"\n", - " Draw the trajectory of length n starting from (x, y).\n", - " \"\"\"\n", - " for i in range(n):\n", - " x_new, y_new = f(x, y)\n", - " draw_arrow(x, y, x_new, y_new, ax)\n", - " x, y = x_new, y_new\n", - " \n", - "xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3)\n", - "ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "#ax.set_xlim(xmin, xmax)\n", - "#ax.set_ylim(ymin, ymax)\n", - "\n", - "ax.set_xticks((0,))\n", - "ax.set_yticks((0,))\n", - "ax.grid()\n", - "\n", - "for x in xgrid:\n", - " for y in ygrid:\n", - " draw_trajectory(x, y, ax)\n", - "\n", - "#plt.savefig(\"sdsstable.pdf\") # Uncomment to save figure\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "462efab8", - "metadata": {}, - "source": [ - "## Chaotic Dynamics\n", - "\n", - "Just for fun, here's a little class that allows us to simulate trajectories\n", - "from a specified dynamical system:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "ba3dd140", - "metadata": {}, - "outputs": [], - "source": [ - "class DS:\n", - "\n", - " def __init__(self, h=None, x=None):\n", - " \"\"\"Parameters: h is a function and x is an \n", - " element of S representing the current state.\"\"\"\n", - " self.h, self.x = h, x\n", - "\n", - " def update(self):\n", - " \"Update the state of the system by applying h.\"\n", - " self.x = self.h(self.x)\n", - "\n", - " def trajectory(self, n):\n", - " \"\"\"Generate a trajectory of length n, starting \n", - " at the current state.\"\"\"\n", - " traj = []\n", - " for i in range(n):\n", - " traj.append(self.x)\n", - " self.update()\n", - " return traj" - ] - }, - { - "cell_type": "markdown", - "id": "fc200a36", - "metadata": {}, - "source": [ - "As in the textbook, let's plot a trajectory starting from 0.11." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "bfedf943", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_9_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "q = DS(h=lambda x: 4 * x * (1 - x), x=0.11)\n", - "t = q.trajectory(200)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(t)\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "25f68db6", - "metadata": {}, - "source": [ - "Now let's generate a histograms from a long trajectory, to address exercise\n", - "4.16." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "4396e4de", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_11_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "q.x = 0.11\n", - "t = q.trajectory(5000)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.hist(t, bins=40, alpha=0.5, edgecolor='k')\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "fae3feb8", - "metadata": {}, - "source": [ - "If you experiment with different initial conditions you will find that, for\n", - "all most all choices, the histogram looks the same." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "ce4a0a89", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_13_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "q.x = 0.65\n", - "t = q.trajectory(5000)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.hist(t, bins=40, alpha=0.5, edgecolor='k')\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "7af01fd8", - "metadata": {}, - "source": [ - "What we have learned is that, although the trajectories seem very random, when\n", - "we take a statistical perspective we can make predictions.\n", - "\n", - "In particular, we can say what will happen \"one average, in the long run.\"\n", - "\n", - "\n", - "Here's the set of maps." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "d924f394", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_15_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xgrid = np.linspace(0, 1, 100)\n", - "\n", - "h = lambda x, r: r * x * (1 - x)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "ax.plot(xgrid, xgrid, '-', color='grey')\n", - "\n", - "r = 0\n", - "step = 0.3\n", - "\n", - "while r <= 4:\n", - " y = [h(x, r) for x in xgrid]\n", - " ax.plot(xgrid, y)\n", - " r = r + step\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "944ea062", - "metadata": {}, - "source": [ - "Here's the bifurcation diagram." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "9548b412", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_17_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "q = DS(h=None, x=0.1)\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "r = 2.5\n", - "while r < 4:\n", - " q.h = lambda x: r * x * (1 - x)\n", - " t = q.trajectory(1000)[950:]\n", - " ax.plot([r] * len(t), t, 'k.', ms=0.4)\n", - " r = r + 0.005\n", - "\n", - "ax.set_xlabel(r'$r$', fontsize=16)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "d402f68e", - "metadata": {}, - "source": [ - "## Markov Chains\n", - "\n", - "\n", - "Our first task is to simulate time series from Hamilton's Markov chain" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "dd7f3988", - "metadata": {}, - "outputs": [], - "source": [ - "pH = ((0.971, 0.029, 0.000), # Hamilton's kernel\n", - " (0.145, 0.778, 0.077),\n", - " (0.000, 0.508, 0.492))\n", - "\n", - "pH = np.array(pH) # Convert to numpy array\n", - "\n", - "S = np.array((0, 1, 2))" - ] - }, - { - "cell_type": "markdown", - "id": "1dae9dff", - "metadata": {}, - "source": [ - "We'll borrow this code from Chapter 2." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "db2e4615", - "metadata": {}, - "outputs": [], - "source": [ - "@jit\n", - "def tau(z, S, phi):\n", - " i = np.searchsorted(np.cumsum(phi), z)\n", - " return S[i]" - ] - }, - { - "cell_type": "markdown", - "id": "e4b044b0", - "metadata": {}, - "source": [ - "(We have targeted the function for JIT compilation via `@jit` because we need\n", - "fast execution below.)\n", - "\n", - "As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`.\n", - "\n", - "Here's some code to generate a trajectory starting at $x \\in S$, using\n", - "stochastic kernel $p$." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "c1e29b48", - "metadata": {}, - "outputs": [], - "source": [ - "def trajectory(x, p, S, n=100):\n", - "\n", - " X = np.empty(n, dtype=int)\n", - " X[0] = x\n", - " for t in range(n-1):\n", - " W = np.random.rand()\n", - " X[t+1] = tau(W, S, p[X[t], :])\n", - " return X" - ] - }, - { - "cell_type": "markdown", - "id": "c9944b49", - "metadata": {}, - "source": [ - "Let's plot a trajectory." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "40bd805f", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_25_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "\n", - "X = trajectory(0, pH, S, n=500)\n", - "\n", - "ax.plot(X)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "5fbbd05e", - "metadata": {}, - "source": [ - "Another option is to use existing code from QuantEcon. This code is\n", - "JIT-compiled and very fast." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "6833bc8a", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_27_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "mc = MarkovChain(pH, state_values=S)\n", - "X = mc.simulate(init=0, ts_length=500)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(X)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "edae1cc7", - "metadata": {}, - "source": [ - "Here's a solution to exercises 4.23." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "0e04b296", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.59744" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "@jit\n", - "def compute_marginal(n=100_000, T=10):\n", - " X_vals = np.empty(n)\n", - "\n", - " for i in range(n):\n", - " X = 2 # start in state SR\n", - " for t in range(T):\n", - " W = np.random.rand()\n", - " X = tau(W, S, pH[X, :])\n", - " X_vals[i] = X\n", - " return np.mean(X_vals == 0)\n", - "\n", - "compute_marginal()" - ] - }, - { - "cell_type": "markdown", - "id": "f9815ab5", - "metadata": {}, - "source": [ - "The answer is close to 0.6, as expected.\n", - "\n", - "\n", - "Here's a solution to exercise 4.24." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "c840f550", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.5999" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "@jit\n", - "def compute_marginal_2(n=100_000, T=10):\n", - " counter = 0\n", - "\n", - " for i in range(n):\n", - " X = 2 # start in state SR\n", - " for t in range(T):\n", - " W = np.random.rand()\n", - " X = tau(W, S, pH[X, :])\n", - " if X == 0:\n", - " counter += 1\n", - "\n", - " return counter / n\n", - "\n", - "compute_marginal_2()" - ] - }, - { - "cell_type": "markdown", - "id": "c92cfaf7", - "metadata": {}, - "source": [ - "Here's a solution to exercise 4.29." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "7da9bf60", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "885.347632676323\n" - ] - } - ], - "source": [ - "T = 5\n", - "psi = (1, 0, 0) # start in NG\n", - "h = (1000, 0, -1000) # profits\n", - "\n", - "for t in range(T):\n", - " psi = psi @ pH\n", - "\n", - "print(psi @ h)" - ] - }, - { - "cell_type": "markdown", - "id": "3ad32b81", - "metadata": {}, - "source": [ - "Now let's see what happens when we start in severe recession." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "05c25dbe", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "217.74304876607997\n" - ] - } - ], - "source": [ - "psi = (0, 0, 1) \n", - "\n", - "for t in range(T):\n", - " psi = psi @ pH\n", - "\n", - "print(psi @ h)" - ] - }, - { - "cell_type": "markdown", - "id": "5ce8822d", - "metadata": {}, - "source": [ - "Profits are much lower because the Markov chain is relatively persistent,\n", - "implying that starting in recession increases the probability of recession at\n", - "date $t=5$.\n", - "\n", - "\n", - "Here's a solution to exercise 4.30." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "19a34421", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Profits in state 0 at date 1000 equals 788.1599999999967\n", - "Profits in state 1 at date 1000 equals 788.1599999999974\n", - "Profits in state 2 at date 1000 equals 788.1599999999972\n" - ] - } - ], - "source": [ - "T = 1000\n", - "\n", - "for i in (0, 1, 2):\n", - " psi = np.zeros(3)\n", - " psi[i] = 1\n", - " for t in range(T):\n", - " psi = psi @ pH\n", - " print(f\"Profits in state {i} at date {T} equals {psi @ h}\")" - ] - }, - { - "cell_type": "markdown", - "id": "dbb94562", - "metadata": {}, - "source": [ - "Notice that profits are almost invariant with respect to the initial\n", - "condition.\n", - "\n", - "This is due to inherent stability of the kernel, which implies that initial\n", - "conditions become irrelevant after sufficient time has elapsed.\n", - "\n", - "Here's a solution to exercise 4.31." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "899df564", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "385.45189053788556\n" - ] - } - ], - "source": [ - "T = 5\n", - "psi = (0.2, 0.2, 0.6) \n", - "\n", - "for t in range(T):\n", - " psi = psi @ pH\n", - "\n", - "print(psi @ h)" - ] - }, - { - "cell_type": "markdown", - "id": "96a6d8f0", - "metadata": {}, - "source": [ - "Here's a solution to exercise 4.32." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "5f72d86f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0008410000000000001\n" - ] - } - ], - "source": [ - "def path_prob(p, psi, X): # X gives a time path\n", - " prob = psi[X[0]]\n", - " for t in range(len(X)-1):\n", - " prob = prob * p[X[t], X[t+1]]\n", - " return prob\n", - "\n", - "psi = np.array((0.2, 0.2, 0.6))\n", - "prob = path_prob(pH, psi, (0, 1, 0))\n", - "\n", - "print(prob)" - ] - }, - { - "cell_type": "markdown", - "id": "824ca72b", - "metadata": {}, - "source": [ - "Here's a solution to exercise 4.33." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "ce450db8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.704242\n" - ] - } - ], - "source": [ - "counter = 0\n", - "recession_states = 1, 2\n", - "for x0 in recession_states:\n", - " for x1 in recession_states:\n", - " for x2 in recession_states:\n", - " path = x0, x1, x2\n", - " counter += path_prob(pH, psi, path)\n", - "\n", - "print(counter)" - ] - }, - { - "cell_type": "markdown", - "id": "c13139d3", - "metadata": {}, - "source": [ - "Here's a solution to exercise 4.34." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "94054878", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.7085" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "counter = 0\n", - "m = 10_000\n", - "mc = MarkovChain(pH)\n", - "\n", - "for i in range(m):\n", - " x0 = tau(np.random.rand(), S, psi)\n", - " X = mc.simulate(init=x0, ts_length=3)\n", - " if 0 not in X:\n", - " counter += 1\n", - "\n", - "print(counter / m)" - ] - }, - { - "cell_type": "markdown", - "id": "528fa1d5", - "metadata": {}, - "source": [ - "Next we turn to exercise 4.36." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "643329b7", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_47_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "max_T = 12\n", - "T_vals = range(max_T)\n", - "profits = []\n", - "r = 0.05\n", - "rho = 1 / (1+r)\n", - "\n", - "psi = (0.2, 0.2, 0.6) \n", - "h = (1000, 0, -1000) \n", - "current_profits = np.inner(psi, h)\n", - "discount = rho\n", - "Q = np.identity(3)\n", - "\n", - "for t in T_vals:\n", - " Q = Q @ pH\n", - " discount = discount * rho\n", - " current_profits += discount * np.inner(psi, Q @ h)\n", - " profits.append(current_profits)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(profits, label='profits')\n", - "ax.plot(np.zeros(max_T), '--', label='break even')\n", - "ax.set_xlabel('time')\n", - "ax.legend()\n", - "\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "id": "07b8029a", - "metadata": {}, - "source": [ - "Here's figure 4.11." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "e03f0611", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_49_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00),\n", - " (0.05 , 0.92 , 0.03 , 0.00 , 0.00),\n", - " (0.00 , 0.04 , 0.92 , 0.04 , 0.00),\n", - " (0.00 , 0.00 , 0.04 , 0.94 , 0.02),\n", - " (0.00 , 0.00 , 0.00 , 0.01 , 0.99))\n", - "\n", - "p_Q = np.array(p_Q)\n", - "states = 0, 1, 2, 3, 4\n", - "dates = 10, 60, 160\n", - "initial_states = 0, 4\n", - "\n", - "rows, cols = 2, 3\n", - "fig, axes = plt.subplots(rows, cols)\n", - "\n", - "for row, init in enumerate(initial_states):\n", - " psi = np.zeros(5)\n", - " psi[init] = 1\n", - " for col, d in enumerate(dates):\n", - " ax = axes[row, col]\n", - " ax.bar(states, \n", - " psi @ np.linalg.matrix_power(p_Q, d), \n", - " alpha=0.5,\n", - " edgecolor='k')\n", - " ax.set_title(f\"$X_0 = {init}, t = {d}$\")\n", - " ax.set_ylabel(\"prob\")\n", - " ax.set_xlabel(\"state\")\n", - "\n", - "plt.tight_layout()\n", - "\n", - "#plt.savefig(\"dds2.pdf\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "d6d5856d", - "metadata": {}, - "source": [ - "And here's figure 4.12." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "622c25b4", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_51_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "dates = 160, 500, 1000\n", - "\n", - "fig, axes = plt.subplots(rows, cols)\n", - "\n", - "for row, init in enumerate(initial_states):\n", - " psi = np.zeros(5)\n", - " psi[init] = 1\n", - " for col, d in enumerate(dates):\n", - " ax = axes[row, col]\n", - " ax.bar(states, \n", - " psi @ np.linalg.matrix_power(p_Q, d), \n", - " alpha=0.5,\n", - " edgecolor='k')\n", - " ax.set_title(f\"$X_0 = {init}, t = {d}$\")\n", - " ax.set_ylabel(\"prob\")\n", - " ax.set_xlabel(\"state\")\n", - "\n", - "plt.tight_layout()\n", - "\n", - "#plt.savefig(\"dds3.pdf\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "93f0a81b", - "metadata": {}, - "source": [ - "Next we turn to exercise 4.42.\n", - "\n", - "First here's a function to compute the stationary distribution, assuming it is\n", - "unique." - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "4004571d", - "metadata": {}, - "outputs": [], - "source": [ - "from numpy.linalg import solve\n", - "\n", - "def compute_stationary(p):\n", - " N = p.shape[0]\n", - " I = np.identity(N)\n", - " O = np.ones((N, N))\n", - " A = I - p + O\n", - " return solve(A.T, np.ones((N, 1))).flatten()\n" - ] - }, - { - "cell_type": "markdown", - "id": "a111a149", - "metadata": {}, - "source": [ - "Now let's apply it to `p_Q`." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "7addc2f4", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "filenames": { - "image/png": "/home/john/gh_synced/books/sed2/edtc-code/code_book/_build/jupyter_execute/ch4_55_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "psi_star = compute_stationary(p_Q)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.bar(states, psi_star, alpha=0.5, edgecolor='k')\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "5b305033", - "metadata": {}, - "source": [ - "As expected, the distribution is very similar to the time 1,000 distribution\n", - "we obtained above by shifting forward in time.\n", - "\n", - "\n", - "Now let's look at exercise 4.43." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "c91e4b92", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "788.1600000000004\n" - ] - } - ], - "source": [ - "psi_star = compute_stationary(pH) \n", - "print(np.inner(psi_star, h))" - ] - }, - { - "cell_type": "markdown", - "id": "615c9dcb", - "metadata": {}, - "source": [ - "If we compute profits at $t=1000$, starting from a range of initial\n", - "conditions, we get very similar results." - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "a13b5567", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "788.1599999999779\n", - "788.1599999999786\n", - "788.1599999999784\n" - ] - } - ], - "source": [ - "pT = np.linalg.matrix_power(pH, 1000)\n", - "psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1)\n", - "\n", - "for psi in psi_vecs:\n", - " print(np.inner(psi, pT @ h))" - ] - }, - { - "cell_type": "markdown", - "id": "5c48edc5", - "metadata": {}, - "source": [ - "This is not surprising, since `p_H` is globally stable.\n", - "\n", - "\n", - "Here's the solution to exercise 4.57, which computes mean return time.\n", - "\n", - "I'll use JIT compilation to make the code fast." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "ac42e418", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1.22771, 6.14, 40.60528]" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "@jit\n", - "def compute_return_time(x, p, max_iter=100_000):\n", - " X = x\n", - " t = 0\n", - " while t < max_iter:\n", - " W = np.random.rand()\n", - " X = tau(W, S, pH[X, :])\n", - " t += 1\n", - " if X == x:\n", - " return t\n", - "\n", - "@jit\n", - "def compute_mean_return_time(x, p, n=100_000):\n", - " counter = 0\n", - " for i in range(n):\n", - " counter += compute_return_time(x, p)\n", - " return counter / n\n", - "\n", - "\n", - "[compute_mean_return_time(i, pH) for i in range(3)]\n" - ] - }, - { - "cell_type": "markdown", - "id": "b95f0859", - "metadata": {}, - "source": [ - "For comparison:" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "0f54da65", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 1.23031496, 6.1515748 , 40.58441558])" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "psi_star = compute_stationary(pH)\n", - "1/ psi_star\n" - ] - }, - { - "cell_type": "markdown", - "id": "8b15692a", - "metadata": {}, - "source": [ - "As predicted by the theory, the values are approximately equal.\n", - "\n", - "\n", - "Now let's turn to the inventory model." - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "b520cd38", - "metadata": {}, - "outputs": [], - "source": [ - "def b(d):\n", - " \" Returns probability that demand = d.\"\n", - " return (d >= 0) * (1/2)**(d + 1)\n", - "\n", - "def h(x, q, Q):\n", - " return x + (Q - x) * (x <= q)\n", - "\n", - "def build_p(q=2, Q=5): \n", - " p = np.empty((Q+1, Q+1))\n", - " for x in range(Q+1):\n", - " for y in range(Q+1):\n", - " if y == 0:\n", - " p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q)\n", - " else:\n", - " p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y\n", - "\n", - " return p\n" - ] - }, - { - "cell_type": "markdown", - "id": "7cd17bfd", - "metadata": {}, - "source": [ - "Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the\n", - "one shown in the text." - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "e52e7d00", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0.0625, 0.0625, 0.125 , 0.25 , 0.25 , 0.25 ])" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "p = build_p()\n", - "compute_stationary(p)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "86922d14", - "metadata": {}, - "source": [ - "Yep, looks good.\n", - "\n", - "Now let's check that the optimal policy agrees with $q=7$, as claimed in the text." - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "4ded625d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "7" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Q = 20 # inventory upper bound\n", - "C = 0.1 # cost of restocking\n", - "\n", - "# profit given state x, demand d, policy q\n", - "def profit(x, d, q):\n", - " stock = h(x, q, Q)\n", - " revenue = stock if stock < d else d\n", - " cost = C * (x <= q)\n", - " return revenue - cost\n", - "\n", - "# expected profit given x and policy q\n", - "def g(x, q):\n", - " counter = 0\n", - " for d in range(1000):\n", - " counter += profit(x, d, q) * b(d)\n", - " return counter\n", - "\n", - "def profit_at_stationary(q):\n", - " p = build_p(q=q, Q=Q)\n", - " stationary = compute_stationary(p)\n", - " counter = 0\n", - " for x in range(Q+1):\n", - " counter += g(x, q) * stationary[x]\n", - " return counter\n", - " \n", - "def compute_optimal_policy():\n", - " running_max = -np.inf\n", - " for q in range(Q+1):\n", - " counter = profit_at_stationary(q)\n", - " if counter > running_max:\n", - " running_max = counter\n", - " argmax = q\n", - " return(argmax)\n", - "\n", - "compute_optimal_policy()" - ] - }, - { - "cell_type": "markdown", - "id": "cf28ff4c", - "metadata": {}, - "source": [ - "Here's a solution for exercise 4.61. From preceding calculations we have\n", - "the stationary probability assigned to normal growth:" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "9c2374fa", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.8128000000000003" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "psi_star = compute_stationary(pH) \n", - "psi_star[0]" - ] - }, - { - "cell_type": "markdown", - "id": "060d3023", - "metadata": {}, - "source": [ - "The fraction of the time a long path spends in this state can be calculated as\n", - "follows." - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "16ca34ba", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.810454" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "T = 1_000_000\n", - "mc = MarkovChain(pH)\n", - "X = mc.simulate(init=0, ts_length=T)\n", - "np.mean(X == 0)" - ] - }, - { - "cell_type": "markdown", - "id": "5ad51e47", - "metadata": {}, - "source": [ - "As expected given the LLN results for stable Markov chains, the two numbers are approximately equal.\n", - "\n", - "\n", - "Finally, let's look at the expected profits question in exercise 4.63.\n", - "\n", - "Previously we calculated steady state profits via" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "a7a2a773", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "788.1600000000004\n" - ] - } - ], - "source": [ - "h = (1000, 0, -1000)\n", - "psi_star = compute_stationary(pH) \n", - "print(np.inner(psi_star, h))" - ] - }, - { - "cell_type": "markdown", - "id": "7635d1dd", - "metadata": {}, - "source": [ - "To check that we get approximately the same results when simulating a long\n", - "time series, we can calculate as follows." - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "889200b3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "785.87" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y = [h[x] for x in X]\n", - "np.mean(y)" - ] - } - ], - "metadata": { - "jupytext": { - "cell_metadata_filter": "-all", - "formats": "md:myst", - "text_representation": { - "extension": ".md", - "format_name": "myst", - "format_version": 0.13, - "jupytext_version": "1.10.3" - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "source_map": [ - 14, - 20, - 25, - 32, - 77, - 82, - 112, - 121, - 141, - 146, - 157, - 163, - 173, - 179, - 189, - 200, - 220, - 226, - 242, - 251, - 259, - 265, - 270, - 280, - 289, - 293, - 301, - 307, - 315, - 320, - 334, - 342, - 358, - 363, - 372, - 376, - 383, - 393, - 402, - 412, - 420, - 424, - 435, - 439, - 449, - 454, - 466, - 470, - 497, - 502, - 534, - 540, - 562, - 570, - 580, - 584, - 592, - 601, - 604, - 609, - 615, - 624, - 646, - 650, - 654, - 661, - 680, - 686, - 692, - 698, - 734, - 741, - 744, - 750, - 755, - 765, - 769, - 775 - ] - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/code_book/_build/jupyter_execute/ch4.py b/code_book/_build/jupyter_execute/ch4.py deleted file mode 100644 index a3d23dc..0000000 --- a/code_book/_build/jupyter_execute/ch4.py +++ /dev/null @@ -1,790 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# # Chapter 4 Code -# -# Let's start with some imports. - -# In[1]: - - -import numpy as np -import matplotlib.pyplot as plt -from numba import jit -from quantecon import MarkovChain - - -# ## Introduction to Dynamics -# -# Here's the code that generated figure 4.1. - -# In[2]: - - -def draw_arrow(x, y, xp, yp, ax): - """ - Draw an arrow from (x, y) to (xp, yp). - """ - v1, v2 = xp - x, yp - y - eps = 1.0 - nrm = np.sqrt(v1**2 + v2**2) - scale = 1.0 - ax.arrow(x, y, scale * v1, scale * v2, - antialiased=True, - alpha=0.5, - head_length=0.025*(xmax - xmin), - head_width=0.012*(xmax - xmin), - fill=False) - -xmin, xmax = -10.0, 10.0 -ymin, ymax = -5.0, 5.0 - -A1 = np.asarray([[0.55, -0.6], - [0.5, 0.4]]) - -def f(x, y): - return A1 @ (x, y) - -xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10) -ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10) - -fig, ax = plt.subplots() - -#ax.set_xlim(xmin, xmax) -#ax.set_ylim(ymin, ymax) - -ax.set_xticks((0,)) -ax.set_yticks((0,)) -ax.grid() - -for x in xgrid: - for y in ygrid: - xp, yp = f(x, y) - draw_arrow(x, y, xp, yp, ax) - -#plt.savefig("sdsdiagram.pdf") # Uncomment to save figure -plt.show() - - -# And here's the code that generated figure 4.2. - -# In[3]: - - - -def draw_trajectory(x, y, ax, n=10): - """ - Draw the trajectory of length n starting from (x, y). - """ - for i in range(n): - x_new, y_new = f(x, y) - draw_arrow(x, y, x_new, y_new, ax) - x, y = x_new, y_new - -xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3) -ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3) - -fig, ax = plt.subplots() - -#ax.set_xlim(xmin, xmax) -#ax.set_ylim(ymin, ymax) - -ax.set_xticks((0,)) -ax.set_yticks((0,)) -ax.grid() - -for x in xgrid: - for y in ygrid: - draw_trajectory(x, y, ax) - -#plt.savefig("sdsstable.pdf") # Uncomment to save figure -plt.show() - - -# ## Chaotic Dynamics -# -# Just for fun, here's a little class that allows us to simulate trajectories -# from a specified dynamical system: - -# In[4]: - - -class DS: - - def __init__(self, h=None, x=None): - """Parameters: h is a function and x is an - element of S representing the current state.""" - self.h, self.x = h, x - - def update(self): - "Update the state of the system by applying h." - self.x = self.h(self.x) - - def trajectory(self, n): - """Generate a trajectory of length n, starting - at the current state.""" - traj = [] - for i in range(n): - traj.append(self.x) - self.update() - return traj - - -# As in the textbook, let's plot a trajectory starting from 0.11. - -# In[5]: - - - -q = DS(h=lambda x: 4 * x * (1 - x), x=0.11) -t = q.trajectory(200) - -fig, ax = plt.subplots() -ax.plot(t) - -plt.show() - - -# Now let's generate a histograms from a long trajectory, to address exercise -# 4.16. - -# In[6]: - - -q.x = 0.11 -t = q.trajectory(5000) - -fig, ax = plt.subplots() -ax.hist(t, bins=40, alpha=0.5, edgecolor='k') - -plt.show() - - -# If you experiment with different initial conditions you will find that, for -# all most all choices, the histogram looks the same. - -# In[7]: - - -q.x = 0.65 -t = q.trajectory(5000) - -fig, ax = plt.subplots() -ax.hist(t, bins=40, alpha=0.5, edgecolor='k') - -plt.show() - - -# What we have learned is that, although the trajectories seem very random, when -# we take a statistical perspective we can make predictions. -# -# In particular, we can say what will happen "one average, in the long run." -# -# -# Here's the set of maps. - -# In[8]: - - -xgrid = np.linspace(0, 1, 100) - -h = lambda x, r: r * x * (1 - x) - -fig, ax = plt.subplots() - -ax.plot(xgrid, xgrid, '-', color='grey') - -r = 0 -step = 0.3 - -while r <= 4: - y = [h(x, r) for x in xgrid] - ax.plot(xgrid, y) - r = r + step - -plt.show() - - -# Here's the bifurcation diagram. - -# In[9]: - - -q = DS(h=None, x=0.1) - -fig, ax = plt.subplots() - -r = 2.5 -while r < 4: - q.h = lambda x: r * x * (1 - x) - t = q.trajectory(1000)[950:] - ax.plot([r] * len(t), t, 'k.', ms=0.4) - r = r + 0.005 - -ax.set_xlabel(r'$r$', fontsize=16) -plt.show() - - -# ## Markov Chains -# -# -# Our first task is to simulate time series from Hamilton's Markov chain - -# In[10]: - - -pH = ((0.971, 0.029, 0.000), # Hamilton's kernel - (0.145, 0.778, 0.077), - (0.000, 0.508, 0.492)) - -pH = np.array(pH) # Convert to numpy array - -S = np.array((0, 1, 2)) - - -# We'll borrow this code from Chapter 2. - -# In[11]: - - -@jit -def tau(z, S, phi): - i = np.searchsorted(np.cumsum(phi), z) - return S[i] - - -# (We have targeted the function for JIT compilation via `@jit` because we need -# fast execution below.) -# -# As discussed in that chapter, if we create a function `tau` using this code and feed it uniform draws on $(0,1]$, we get draws from `S` distributed according to `phi`. -# -# Here's some code to generate a trajectory starting at $x \in S$, using -# stochastic kernel $p$. - -# In[12]: - - -def trajectory(x, p, S, n=100): - - X = np.empty(n, dtype=int) - X[0] = x - for t in range(n-1): - W = np.random.rand() - X[t+1] = tau(W, S, p[X[t], :]) - return X - - -# Let's plot a trajectory. - -# In[13]: - - -fig, ax = plt.subplots() - -X = trajectory(0, pH, S, n=500) - -ax.plot(X) -plt.show() - - -# Another option is to use existing code from QuantEcon. This code is -# JIT-compiled and very fast. - -# In[14]: - - -mc = MarkovChain(pH, state_values=S) -X = mc.simulate(init=0, ts_length=500) - -fig, ax = plt.subplots() -ax.plot(X) -plt.show() - - -# Here's a solution to exercises 4.23. - -# In[15]: - - -@jit -def compute_marginal(n=100_000, T=10): - X_vals = np.empty(n) - - for i in range(n): - X = 2 # start in state SR - for t in range(T): - W = np.random.rand() - X = tau(W, S, pH[X, :]) - X_vals[i] = X - return np.mean(X_vals == 0) - -compute_marginal() - - -# The answer is close to 0.6, as expected. -# -# -# Here's a solution to exercise 4.24. - -# In[16]: - - -@jit -def compute_marginal_2(n=100_000, T=10): - counter = 0 - - for i in range(n): - X = 2 # start in state SR - for t in range(T): - W = np.random.rand() - X = tau(W, S, pH[X, :]) - if X == 0: - counter += 1 - - return counter / n - -compute_marginal_2() - - -# Here's a solution to exercise 4.29. - -# In[17]: - - -T = 5 -psi = (1, 0, 0) # start in NG -h = (1000, 0, -1000) # profits - -for t in range(T): - psi = psi @ pH - -print(psi @ h) - - -# Now let's see what happens when we start in severe recession. - -# In[18]: - - -psi = (0, 0, 1) - -for t in range(T): - psi = psi @ pH - -print(psi @ h) - - -# Profits are much lower because the Markov chain is relatively persistent, -# implying that starting in recession increases the probability of recession at -# date $t=5$. -# -# -# Here's a solution to exercise 4.30. - -# In[19]: - - -T = 1000 - -for i in (0, 1, 2): - psi = np.zeros(3) - psi[i] = 1 - for t in range(T): - psi = psi @ pH - print(f"Profits in state {i} at date {T} equals {psi @ h}") - - -# Notice that profits are almost invariant with respect to the initial -# condition. -# -# This is due to inherent stability of the kernel, which implies that initial -# conditions become irrelevant after sufficient time has elapsed. -# -# Here's a solution to exercise 4.31. - -# In[20]: - - -T = 5 -psi = (0.2, 0.2, 0.6) - -for t in range(T): - psi = psi @ pH - -print(psi @ h) - - -# Here's a solution to exercise 4.32. - -# In[21]: - - -def path_prob(p, psi, X): # X gives a time path - prob = psi[X[0]] - for t in range(len(X)-1): - prob = prob * p[X[t], X[t+1]] - return prob - -psi = np.array((0.2, 0.2, 0.6)) -prob = path_prob(pH, psi, (0, 1, 0)) - -print(prob) - - -# Here's a solution to exercise 4.33. - -# In[22]: - - -counter = 0 -recession_states = 1, 2 -for x0 in recession_states: - for x1 in recession_states: - for x2 in recession_states: - path = x0, x1, x2 - counter += path_prob(pH, psi, path) - -print(counter) - - -# Here's a solution to exercise 4.34. - -# In[23]: - - -counter = 0 -m = 10_000 -mc = MarkovChain(pH) - -for i in range(m): - x0 = tau(np.random.rand(), S, psi) - X = mc.simulate(init=x0, ts_length=3) - if 0 not in X: - counter += 1 - -print(counter / m) - - -# Next we turn to exercise 4.36. - -# In[24]: - - -max_T = 12 -T_vals = range(max_T) -profits = [] -r = 0.05 -rho = 1 / (1+r) - -psi = (0.2, 0.2, 0.6) -h = (1000, 0, -1000) -current_profits = np.inner(psi, h) -discount = rho -Q = np.identity(3) - -for t in T_vals: - Q = Q @ pH - discount = discount * rho - current_profits += discount * np.inner(psi, Q @ h) - profits.append(current_profits) - -fig, ax = plt.subplots() -ax.plot(profits, label='profits') -ax.plot(np.zeros(max_T), '--', label='break even') -ax.set_xlabel('time') -ax.legend() - -plt.show() - - -# Here's figure 4.11. - -# In[25]: - - -p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00), - (0.05 , 0.92 , 0.03 , 0.00 , 0.00), - (0.00 , 0.04 , 0.92 , 0.04 , 0.00), - (0.00 , 0.00 , 0.04 , 0.94 , 0.02), - (0.00 , 0.00 , 0.00 , 0.01 , 0.99)) - -p_Q = np.array(p_Q) -states = 0, 1, 2, 3, 4 -dates = 10, 60, 160 -initial_states = 0, 4 - -rows, cols = 2, 3 -fig, axes = plt.subplots(rows, cols) - -for row, init in enumerate(initial_states): - psi = np.zeros(5) - psi[init] = 1 - for col, d in enumerate(dates): - ax = axes[row, col] - ax.bar(states, - psi @ np.linalg.matrix_power(p_Q, d), - alpha=0.5, - edgecolor='k') - ax.set_title(f"$X_0 = {init}, t = {d}$") - ax.set_ylabel("prob") - ax.set_xlabel("state") - -plt.tight_layout() - -#plt.savefig("dds2.pdf") -plt.show() - - -# And here's figure 4.12. - -# In[26]: - - -dates = 160, 500, 1000 - -fig, axes = plt.subplots(rows, cols) - -for row, init in enumerate(initial_states): - psi = np.zeros(5) - psi[init] = 1 - for col, d in enumerate(dates): - ax = axes[row, col] - ax.bar(states, - psi @ np.linalg.matrix_power(p_Q, d), - alpha=0.5, - edgecolor='k') - ax.set_title(f"$X_0 = {init}, t = {d}$") - ax.set_ylabel("prob") - ax.set_xlabel("state") - -plt.tight_layout() - -#plt.savefig("dds3.pdf") -plt.show() - - -# Next we turn to exercise 4.42. -# -# First here's a function to compute the stationary distribution, assuming it is -# unique. - -# In[27]: - - -from numpy.linalg import solve - -def compute_stationary(p): - N = p.shape[0] - I = np.identity(N) - O = np.ones((N, N)) - A = I - p + O - return solve(A.T, np.ones((N, 1))).flatten() - - -# Now let's apply it to `p_Q`. - -# In[28]: - - -psi_star = compute_stationary(p_Q) - -fig, ax = plt.subplots() -ax.bar(states, psi_star, alpha=0.5, edgecolor='k') - -plt.show() - - -# As expected, the distribution is very similar to the time 1,000 distribution -# we obtained above by shifting forward in time. -# -# -# Now let's look at exercise 4.43. - -# In[29]: - - -psi_star = compute_stationary(pH) -print(np.inner(psi_star, h)) - - -# If we compute profits at $t=1000$, starting from a range of initial -# conditions, we get very similar results. - -# In[30]: - - -pT = np.linalg.matrix_power(pH, 1000) -psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1) - -for psi in psi_vecs: - print(np.inner(psi, pT @ h)) - - -# This is not surprising, since `p_H` is globally stable. -# -# -# Here's the solution to exercise 4.57, which computes mean return time. -# -# I'll use JIT compilation to make the code fast. - -# In[31]: - - -@jit -def compute_return_time(x, p, max_iter=100_000): - X = x - t = 0 - while t < max_iter: - W = np.random.rand() - X = tau(W, S, pH[X, :]) - t += 1 - if X == x: - return t - -@jit -def compute_mean_return_time(x, p, n=100_000): - counter = 0 - for i in range(n): - counter += compute_return_time(x, p) - return counter / n - - -[compute_mean_return_time(i, pH) for i in range(3)] - - -# For comparison: - -# In[32]: - - -psi_star = compute_stationary(pH) -1/ psi_star - - -# As predicted by the theory, the values are approximately equal. -# -# -# Now let's turn to the inventory model. - -# In[33]: - - -def b(d): - " Returns probability that demand = d." - return (d >= 0) * (1/2)**(d + 1) - -def h(x, q, Q): - return x + (Q - x) * (x <= q) - -def build_p(q=2, Q=5): - p = np.empty((Q+1, Q+1)) - for x in range(Q+1): - for y in range(Q+1): - if y == 0: - p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q) - else: - p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y - - return p - - -# Let's verify that the stationary distribution at $q=2$ and $Q=5$ matches the -# one shown in the text. - -# In[34]: - - -p = build_p() -compute_stationary(p) - - -# Yep, looks good. -# -# Now let's check that the optimal policy agrees with $q=7$, as claimed in the text. - -# In[35]: - - -Q = 20 # inventory upper bound -C = 0.1 # cost of restocking - -# profit given state x, demand d, policy q -def profit(x, d, q): - stock = h(x, q, Q) - revenue = stock if stock < d else d - cost = C * (x <= q) - return revenue - cost - -# expected profit given x and policy q -def g(x, q): - counter = 0 - for d in range(1000): - counter += profit(x, d, q) * b(d) - return counter - -def profit_at_stationary(q): - p = build_p(q=q, Q=Q) - stationary = compute_stationary(p) - counter = 0 - for x in range(Q+1): - counter += g(x, q) * stationary[x] - return counter - -def compute_optimal_policy(): - running_max = -np.inf - for q in range(Q+1): - counter = profit_at_stationary(q) - if counter > running_max: - running_max = counter - argmax = q - return(argmax) - -compute_optimal_policy() - - -# Here's a solution for exercise 4.61. From preceding calculations we have -# the stationary probability assigned to normal growth: - -# In[36]: - - -psi_star = compute_stationary(pH) -psi_star[0] - - -# The fraction of the time a long path spends in this state can be calculated as -# follows. - -# In[37]: - - -T = 1_000_000 -mc = MarkovChain(pH) -X = mc.simulate(init=0, ts_length=T) -np.mean(X == 0) - - -# As expected given the LLN results for stable Markov chains, the two numbers are approximately equal. -# -# -# Finally, let's look at the expected profits question in exercise 4.63. -# -# Previously we calculated steady state profits via - -# In[38]: - - -h = (1000, 0, -1000) -psi_star = compute_stationary(pH) -print(np.inner(psi_star, h)) - - -# To check that we get approximately the same results when simulating a long -# time series, we can calculate as follows. - -# In[39]: - - -y = [h[x] for x in X] -np.mean(y) - diff --git a/code_book/_build/jupyter_execute/ch4.txt b/code_book/_build/jupyter_execute/ch4.txt deleted file mode 100644 index 236bb8c..0000000 --- a/code_book/_build/jupyter_execute/ch4.txt +++ /dev/null @@ -1,499 +0,0 @@ -import numpy as np -import matplotlib.pyplot as plt -from numba import jit -from quantecon import MarkovChain - -def draw_arrow(x, y, xp, yp, ax): - """ - Draw an arrow from (x, y) to (xp, yp). - """ - v1, v2 = xp - x, yp - y - eps = 1.0 - nrm = np.sqrt(v1**2 + v2**2) - scale = 1.0 - ax.arrow(x, y, scale * v1, scale * v2, - antialiased=True, - alpha=0.5, - head_length=0.025*(xmax - xmin), - head_width=0.012*(xmax - xmin), - fill=False) - -xmin, xmax = -10.0, 10.0 -ymin, ymax = -5.0, 5.0 - -A1 = np.asarray([[0.55, -0.6], - [0.5, 0.4]]) - -def f(x, y): - return A1 @ (x, y) - -xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 10) -ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 10) - -fig, ax = plt.subplots() - -#ax.set_xlim(xmin, xmax) -#ax.set_ylim(ymin, ymax) - -ax.set_xticks((0,)) -ax.set_yticks((0,)) -ax.grid() - -for x in xgrid: - for y in ygrid: - xp, yp = f(x, y) - draw_arrow(x, y, xp, yp, ax) - -#plt.savefig("sdsdiagram.pdf") # Uncomment to save figure -plt.show() - - -def draw_trajectory(x, y, ax, n=10): - """ - Draw the trajectory of length n starting from (x, y). - """ - for i in range(n): - x_new, y_new = f(x, y) - draw_arrow(x, y, x_new, y_new, ax) - x, y = x_new, y_new - -xgrid = np.linspace(xmin * 0.95, xmax * 0.95, 3) -ygrid = np.linspace(ymin * 0.95, ymax * 0.95, 3) - -fig, ax = plt.subplots() - -#ax.set_xlim(xmin, xmax) -#ax.set_ylim(ymin, ymax) - -ax.set_xticks((0,)) -ax.set_yticks((0,)) -ax.grid() - -for x in xgrid: - for y in ygrid: - draw_trajectory(x, y, ax) - -#plt.savefig("sdsstable.pdf") # Uncomment to save figure -plt.show() - -class DS: - - def __init__(self, h=None, x=None): - """Parameters: h is a function and x is an - element of S representing the current state.""" - self.h, self.x = h, x - - def update(self): - "Update the state of the system by applying h." - self.x = self.h(self.x) - - def trajectory(self, n): - """Generate a trajectory of length n, starting - at the current state.""" - traj = [] - for i in range(n): - traj.append(self.x) - self.update() - return traj - - -q = DS(h=lambda x: 4 * x * (1 - x), x=0.11) -t = q.trajectory(200) - -fig, ax = plt.subplots() -ax.plot(t) - -plt.show() - - -q.x = 0.11 -t = q.trajectory(5000) - -fig, ax = plt.subplots() -ax.hist(t, bins=40, alpha=0.5, edgecolor='k') - -plt.show() - - -q.x = 0.65 -t = q.trajectory(5000) - -fig, ax = plt.subplots() -ax.hist(t, bins=40, alpha=0.5, edgecolor='k') - -plt.show() - - -xgrid = np.linspace(0, 1, 100) - -h = lambda x, r: r * x * (1 - x) - -fig, ax = plt.subplots() - -ax.plot(xgrid, xgrid, '-', color='grey') - -r = 0 -step = 0.3 - -while r <= 4: - y = [h(x, r) for x in xgrid] - ax.plot(xgrid, y) - r = r + step - -plt.show() - - -q = DS(h=None, x=0.1) - -fig, ax = plt.subplots() - -r = 2.5 -while r < 4: - q.h = lambda x: r * x * (1 - x) - t = q.trajectory(1000)[950:] - ax.plot([r] * len(t), t, 'k.', ms=0.4) - r = r + 0.005 - -ax.set_xlabel(r'$r$', fontsize=16) -plt.show() - - -pH = ((0.971, 0.029, 0.000), # Hamilton's kernel - (0.145, 0.778, 0.077), - (0.000, 0.508, 0.492)) - -pH = np.array(pH) # Convert to numpy array - -S = np.array((0, 1, 2)) - -@jit -def tau(z, S, phi): - i = np.searchsorted(np.cumsum(phi), z) - return S[i] - -def trajectory(x, p, S, n=100): - - X = np.empty(n, dtype=int) - X[0] = x - for t in range(n-1): - W = np.random.rand() - X[t+1] = tau(W, S, p[X[t], :]) - return X - -fig, ax = plt.subplots() - -X = trajectory(0, pH, S, n=500) - -ax.plot(X) -plt.show() - - -mc = MarkovChain(pH, state_values=S) -X = mc.simulate(init=0, ts_length=500) - -fig, ax = plt.subplots() -ax.plot(X) -plt.show() - -@jit -def compute_marginal(n=100_000, T=10): - X_vals = np.empty(n) - - for i in range(n): - X = 2 # start in state SR - for t in range(T): - W = np.random.rand() - X = tau(W, S, pH[X, :]) - X_vals[i] = X - return np.mean(X_vals == 0) - -compute_marginal() - -@jit -def compute_marginal_2(n=100_000, T=10): - counter = 0 - - for i in range(n): - X = 2 # start in state SR - for t in range(T): - W = np.random.rand() - X = tau(W, S, pH[X, :]) - if X == 0: - counter += 1 - - return counter / n - -compute_marginal_2() - -T = 5 -psi = (1, 0, 0) # start in NG -h = (1000, 0, -1000) # profits - -for t in range(T): - psi = psi @ pH - -print(psi @ h) - -psi = (0, 0, 1) - -for t in range(T): - psi = psi @ pH - -print(psi @ h) - -T = 1000 - -for i in (0, 1, 2): - psi = np.zeros(3) - psi[i] = 1 - for t in range(T): - psi = psi @ pH - print(f"Profits in state {i} at date {T} equals {psi @ h}") - -T = 5 -psi = (0.2, 0.2, 0.6) - -for t in range(T): - psi = psi @ pH - -print(psi @ h) - -def path_prob(p, psi, X): # X gives a time path - prob = psi[X[0]] - for t in range(len(X)-1): - prob = prob * p[X[t], X[t+1]] - return prob - -psi = np.array((0.2, 0.2, 0.6)) -prob = path_prob(pH, psi, (0, 1, 0)) - -print(prob) - -counter = 0 -recession_states = 1, 2 -for x0 in recession_states: - for x1 in recession_states: - for x2 in recession_states: - path = x0, x1, x2 - counter += path_prob(pH, psi, path) - -print(counter) - -counter = 0 -m = 10_000 -mc = MarkovChain(pH) - -for i in range(m): - x0 = tau(np.random.rand(), S, psi) - X = mc.simulate(init=x0, ts_length=3) - if 0 not in X: - counter += 1 - -print(counter / m) - -max_T = 12 -T_vals = range(max_T) -profits = [] -r = 0.05 -rho = 1 / (1+r) - -psi = (0.2, 0.2, 0.6) -h = (1000, 0, -1000) -current_profits = np.inner(psi, h) -discount = rho -Q = np.identity(3) - -for t in T_vals: - Q = Q @ pH - discount = discount * rho - current_profits += discount * np.inner(psi, Q @ h) - profits.append(current_profits) - -fig, ax = plt.subplots() -ax.plot(profits, label='profits') -ax.plot(np.zeros(max_T), '--', label='break even') -ax.set_xlabel('time') -ax.legend() - -plt.show() - - -p_Q = ((0.97 , 0.03 , 0.00 , 0.00 , 0.00), - (0.05 , 0.92 , 0.03 , 0.00 , 0.00), - (0.00 , 0.04 , 0.92 , 0.04 , 0.00), - (0.00 , 0.00 , 0.04 , 0.94 , 0.02), - (0.00 , 0.00 , 0.00 , 0.01 , 0.99)) - -p_Q = np.array(p_Q) -states = 0, 1, 2, 3, 4 -dates = 10, 60, 160 -initial_states = 0, 4 - -rows, cols = 2, 3 -fig, axes = plt.subplots(rows, cols) - -for row, init in enumerate(initial_states): - psi = np.zeros(5) - psi[init] = 1 - for col, d in enumerate(dates): - ax = axes[row, col] - ax.bar(states, - psi @ np.linalg.matrix_power(p_Q, d), - alpha=0.5, - edgecolor='k') - ax.set_title(f"$X_0 = {init}, t = {d}$") - ax.set_ylabel("prob") - ax.set_xlabel("state") - -plt.tight_layout() - -#plt.savefig("dds2.pdf") -plt.show() - -dates = 160, 500, 1000 - -fig, axes = plt.subplots(rows, cols) - -for row, init in enumerate(initial_states): - psi = np.zeros(5) - psi[init] = 1 - for col, d in enumerate(dates): - ax = axes[row, col] - ax.bar(states, - psi @ np.linalg.matrix_power(p_Q, d), - alpha=0.5, - edgecolor='k') - ax.set_title(f"$X_0 = {init}, t = {d}$") - ax.set_ylabel("prob") - ax.set_xlabel("state") - -plt.tight_layout() - -#plt.savefig("dds3.pdf") -plt.show() - -from numpy.linalg import solve - -def compute_stationary(p): - N = p.shape[0] - I = np.identity(N) - O = np.ones((N, N)) - A = I - p + O - return solve(A.T, np.ones((N, 1))).flatten() - - -psi_star = compute_stationary(p_Q) - -fig, ax = plt.subplots() -ax.bar(states, psi_star, alpha=0.5, edgecolor='k') - -plt.show() - -psi_star = compute_stationary(pH) -print(np.inner(psi_star, h)) - -pT = np.linalg.matrix_power(pH, 1000) -psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1) - -for psi in psi_vecs: - print(np.inner(psi, pT @ h)) - -@jit -def compute_return_time(x, p, max_iter=100_000): - X = x - t = 0 - while t < max_iter: - W = np.random.rand() - X = tau(W, S, pH[X, :]) - t += 1 - if X == x: - return t - -@jit -def compute_mean_return_time(x, p, n=100_000): - counter = 0 - for i in range(n): - counter += compute_return_time(x, p) - return counter / n - - -[compute_mean_return_time(i, pH) for i in range(3)] - - -psi_star = compute_stationary(pH) -1/ psi_star - - -def b(d): - " Returns probability that demand = d." - return (d >= 0) * (1/2)**(d + 1) - -def h(x, q, Q): - return x + (Q - x) * (x <= q) - -def build_p(q=2, Q=5): - p = np.empty((Q+1, Q+1)) - for x in range(Q+1): - for y in range(Q+1): - if y == 0: - p[x,y] = (1/2)**h(x, q, Q) # prob D >= h(x, q) - else: - p[x,y] = b(h(x, q, Q) - y) # prob h(x, q) - D = y - - return p - - -p = build_p() -compute_stationary(p) - - - -Q = 20 # inventory upper bound -C = 0.1 # cost of restocking - -# profit given state x, demand d, policy q -def profit(x, d, q): - stock = h(x, q, Q) - revenue = stock if stock < d else d - cost = C * (x <= q) - return revenue - cost - -# expected profit given x and policy q -def g(x, q): - counter = 0 - for d in range(1000): - counter += profit(x, d, q) * b(d) - return counter - -def profit_at_stationary(q): - p = build_p(q=q, Q=Q) - stationary = compute_stationary(p) - counter = 0 - for x in range(Q+1): - counter += g(x, q) * stationary[x] - return counter - -def compute_optimal_policy(): - running_max = -np.inf - for q in range(Q+1): - counter = profit_at_stationary(q) - if counter > running_max: - running_max = counter - argmax = q - return(argmax) - -compute_optimal_policy() - -psi_star = compute_stationary(pH) -psi_star[0] - -T = 1_000_000 -mc = MarkovChain(pH) -X = mc.simulate(init=0, ts_length=T) -np.mean(X == 0) - -psi_star = compute_stationary(pH) -print(np.inner(psi_star, h)) - -y = [h[x] for x in X] -np.mean(y) diff --git a/code_book/ch6.md b/code_book/ch6.md index cf65a41..a608abe 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -23,7 +23,9 @@ import matplotlib.pyplot as plt from numba import jit, vectorize from interpolation import interp from scipy.interpolate import interp1d -from scipy.optimize import minimize_scalar +from scipy.optimize import minimize_scalar, brentq +from scipy.stats import beta + ``` @@ -403,7 +405,7 @@ marginal given a stochastic kernel and a set of draws from time $t+1$. def lae_factory(p, x_data): def f(y): - return np.mean(p(x_data, y)) + return np.mean(p(x_data, y)) return f @@ -556,28 +558,26 @@ def maximize(g, a, b, args): ```{code-cell} ipython3 - class OptimalSaving: def __init__(self, U, # utility function R=1.05, # gross return on saving rho=0.96, # discount factor - m=0, # shock location parameter b=0.1, # shock scale parameter - grid_max=4, + grid_max=2, grid_size=120, shock_size=250, seed=1234): - self.U, self.R, self.rho, self.m, self.b = U, R, rho, m, b + self.U, self.R, self.rho, self.b = U, R, rho, b # Set up grid self.grid = np.linspace(1e-4, grid_max, grid_size) # Store shocks (with a seed, so results are reproducible) np.random.seed(seed) - self.shocks = np.exp(m + b * np.random.randn(shock_size)) + self.shocks = np.exp(b * np.random.randn(shock_size)) def state_action_value(self, s, a, v_array): """ @@ -592,6 +592,7 @@ class OptimalSaving: bounds_error=False) return U(a-s) + rho * np.mean(v(R * s + shocks)) + ``` In the last line, the expectation is computed via Monte Carlo. @@ -623,6 +624,9 @@ def T(v, os): return v_greedy, v_new ``` +Here is a figure showing the function sequence generated by value function +iteration, starting at the utility function. + ```{code-cell} ipython3 def solve_model(os, @@ -663,17 +667,347 @@ def solve_model(os, Let us put this code to work. ```{code-cell} ipython3 -gamma = 1.5 - @jit -def U(c): +def U(c, gamma=0.5): "The utility function." return c**(1 - gamma) / (1 - gamma) os = OptimalSaving(U) +#v = U(os.grid) # Initial condition +v = np.zeros_like(os.grid) # Initial condition +n = 40 # Number of iterations +greys = [str(g) for g in np.linspace(0.0, 0.8, n)] +greys.reverse() + +fig, ax = plt.subplots() + +for i in range(n): + v_greedy, v = T(v, os) # Apply the Bellman operator + ax.plot(os.grid, v, color=greys[i], lw=1.0, alpha=0.6) + +ax.set_xlabel('assets') +ax.set_ylabel('value') +ax.set(xlim=(np.min(os.grid), np.max(os.grid))) +plt.show() + +``` + + + +The next code block uses a more systematic method to find a good approximation +to the value function and then computes the associated greedy policy. + +```{code-cell} ipython3 +os = OptimalSaving(U, grid_max=4) sigma_star, v_star = solve_model(os) + +fig, ax = plt.subplots() + +ax.plot(os.grid, sigma_star, + label='optimal policy', lw=2, alpha=0.6) +ax.plot(os.grid, os.R * sigma_star + 1.01, '-.', + label='next period assets', lw=2, alpha=0.6) +ax.plot(os.grid, os.grid, 'k--', + label='45 degrees', lw=1, alpha=0.6) + +ax.legend() +plt.show() + ``` +Now we use the look-ahead estimator to compute asset density dynamics under +the optimal policy. + + + +```{code-cell} ipython3 +# Turn the policy array into a function +sigma = lambda x: interp(os.grid, sigma_star, x) + +@vectorize +def phi(z, b): + " Lognormal density for N(0, b^2) " + if z <= 0: + return 0 + else: + c1 = k0 / (z * b) + c2 = np.exp(- np.log(z)**2 / (2 * b**2)) + return c1 * c2 + +def p(x, y): + return phi(y - os.R * sigma(x), os.b) + +def draws_from_marginal(t_date, init=0, n=10_000): + draws = np.empty(n) + for i in range(n): + a = init + for t in range(t_date): + xi = np.exp(os.b * np.random.randn()) + a = os.R * sigma(a) + xi + draws[i] = a + return draws + +dates = 1, 2, 4, 8, 16, 32 +greys = [str(g) for g in np.linspace(0.2, 0.8, len(dates))] +greys.reverse() +grid = np.linspace(0, 5, 200) + +fig, ax = plt.subplots() + +for t, g in zip(dates, greys): + a_obs = draws_from_marginal(t) + f = lae_factory(p, a_obs) + ax.plot(grid, + [f(y) for y in grid], + color=g, + lw=2, + alpha=0.6, + label=f'$t={t}$') + +ax.set_xlabel('assets') +ax.legend() + +plt.show() + +``` + +Finally we turn to policy function iteration, in order to solve exercise 6.19. + +We need to compute the value of any feasible policy $\sigma$. + +To do so we will iterate with the policy value operator $T_\sigma$. + +```{code-cell} ipython3 +def T_sigma(v, sigma, os): + """ + Here os is an instance of OptimalSaving and v and sigma + are both arrays defined on the grid. + """ + v_new = np.empty_like(v) + + + sigma_interp = interp1d(os.grid, + sigma, + fill_value=(sigma[0], sigma[-1]), + bounds_error=False) + + for i in range(len(os.grid)): + a = os.grid[i] + v_new[i] = os.state_action_value(sigma_interp(a), a, v) + + return v_new +``` + +To compute the policy value we iterate until convergence, starting +from some guess of $v_sigma$ represented by `v_guess`. + +```{code-cell} ipython3 +def compute_policy_value(os, + sigma, + v_guess=None, + tol=1e-3, + max_iter=1000): + + if v_guess is None: + v_guess = U(os.grid) + v = v_guess + i = 0 + error = tol + 1 + + while i < max_iter and error > tol: + v_new = T_sigma(v, sigma, os) + error = np.max(np.abs(v - v_new)) + i += 1 + v = v_new + + return v_new +``` + + +We will use existing code to get a greedy policy from a guess $v$ of the value +function. + +```{code-cell} ipython3 +def get_greedy(v, os): + sigma, _ = T(v, os) + return sigma +``` + + +```{code-cell} ipython3 +def policy_iteration(os, tol=1e-3, max_iter=1e5, verbose=True): + + sigma = np.zeros_like(os.grid) # Initial condition is consume everything + v_guess = U(os.grid) # Starting guess for value function + i = 1 + + while i < max_iter: + v_sigma = compute_policy_value(os, sigma, v_guess=v_guess) + new_sigma = get_greedy(v_sigma, os) + if np.abs(np.max(new_sigma - sigma)) < tol: + break + else: + sigma = new_sigma + v_guess = v_sigma # Use last computed value to start iteration + i += 1 + + if i == max_iter: + print("Failed to converge!") + + if verbose and i < max_iter: + print(f"\nConverged in {i} iterations.") + + return sigma + +``` + +Running the following code produces essentially the same figure we obtained +for the optimal policy when using value function iteration, just as we hoped. + +```{code-cell} ipython3 +os = OptimalSaving(U, grid_max=4) +sigma_star = policy_iteration(os) + +fig, ax = plt.subplots() + +ax.plot(os.grid, sigma_star, + label='optimal policy', lw=2, alpha=0.6) +ax.plot(os.grid, os.R * sigma_star + 1.01, '-.', + label='next period assets', lw=2, alpha=0.6) +ax.plot(os.grid, os.grid, 'k--', + label='45 degrees', lw=1, alpha=0.6) + +ax.legend() +plt.show() + +``` + + +## Stochastic Speculative Price + + +Finally, to conclude code for this chapter, we turn to the commodity pricing +model. + +The next code block computes figure 6.16 and hence solves exercise 6.26. + +```{code-cell} ipython3 +alpha, a, c = 0.8, 5.0, 2.0 +beta_a, beta_b = 5, 5 +mc_draw_size = 250 +gridsize = 150 +grid_max = 35 +grid = np.linspace(a, grid_max, gridsize) + +beta_dist = beta(5, 5) +W = a + beta_dist.rvs(mc_draw_size) * c # Shock observations +D = P = lambda x: 1.0 / x +tol = 1e-4 + +def fix_point(h, lower, upper): + "Computes the fixed point of h on [upper, lower]." + return brentq(lambda x: x - h(x), lower, upper) + +def T(p_array): + + new_p = np.empty_like(p_array) + + # Interpolate to obtain p as a function. + p = interp1d(grid, + p_array, + fill_value=(p_array[0], p_array[-1]), + bounds_error=False) + + for i, x in enumerate(grid): + y = alpha * np.mean(p(W)) + if y <= P(x): + new_p[i] = P(x) + continue + h = lambda r: alpha * np.mean(p(alpha*(x - D(r)) + W)) + new_p[i] = fix_point(h, P(x), y) + + return new_p + + +fig, ax = plt.subplots() + +price = P(grid) +error = tol + 1 +while error > tol: + ax.plot(grid, price, 'k--', alpha=0.5, lw=1) + new_price = T(price) + error = max(np.abs(new_price - price)) + price = new_price + +ax.plot(grid, price, 'k-', alpha=0.5, lw=2, label=r'$p^*$') +ax.legend() + +plt.show() + +``` + +Our final task for this chapter is to solve exercise 6.27, which involves +computing the stationary density of the associated state process for +quantities. + +To do so we use the look ahead estimator. + +```{code-cell} ipython3 + +# Turn the price array into a price function +p_star = lambda x: interp(grid, price, x) + +def carry_over(x): + return alpha * (x - D(p_star(x))) + +def phi(z): + "Shock distribution computed by change of variables." + return beta_dist.pdf((z - a)/c) / c + +def p(x, y): + return phi(y - carry_over(x)) + +def generate_cp_ts(init=0, n=1000): + X = np.empty(n) + X[0] = init + for t in range(n-1): + W = a + c * beta_dist.rvs() + X[t+1] = carry_over(X[t]) + W + return X + +fig, ax = plt.subplots() + +plot_grid = np.linspace(a, a * 1.5, 200) + +x_ts = generate_cp_ts() +f = lae_factory(p, x_ts) +ax.plot(plot_grid, + [f(y) for y in plot_grid], + lw=2, + alpha=0.6, + label=r'$\psi^*$') +ax.plot(plot_grid, + phi(plot_grid), + '--', + lw=2, + alpha=0.6, + label=r'$\phi$') + +ax.set_xlabel('$x$') +ax.legend() + +plt.show() + +``` + +As claimed in the statement of the exercise, the two distributions line up +exactly. + +Hence, for these particular parameters, speculation has no impact on long run +average outcomes. + +If we change parameters to make storage more attractive, then we will see +differences between the distributions. From 7c639068fac6faa6fefdae2722422ece58cb7e71 Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Sat, 11 Sep 2021 12:49:13 +1000 Subject: [PATCH 06/24] fixing --- code_book/_config.yml | 6 +- code_book/_toc.yml | 5 + code_book/ch1.md | 399 +++++++++++++++++++++++++++++++++++++++++- code_book/ch10.md | 18 ++ code_book/ch11.md | 140 +++++++++++++++ code_book/ch7.md | 19 ++ code_book/ch8.md | 92 ++++++++++ code_book/ch9.md | 18 ++ code_book/intro.md | 37 ++-- code_book/logo.png | Bin 9854 -> 159326 bytes 10 files changed, 713 insertions(+), 21 deletions(-) create mode 100644 code_book/ch10.md create mode 100644 code_book/ch11.md create mode 100644 code_book/ch7.md create mode 100644 code_book/ch8.md create mode 100644 code_book/ch9.md diff --git a/code_book/_config.yml b/code_book/_config.yml index b5981e6..a6d9953 100644 --- a/code_book/_config.yml +++ b/code_book/_config.yml @@ -1,7 +1,8 @@ # Book settings -title: Economic Dynamics Python Code +title: Economic Dynamics author: John Stachurski -# logo: logo.png +logo: logo.png + sphinx: config: @@ -25,6 +26,7 @@ sphinx: execute: execute_notebooks: cache + timeout: -1 latex: latex_engine: "xelatex" diff --git a/code_book/_toc.yml b/code_book/_toc.yml index df2ca7f..36007cf 100644 --- a/code_book/_toc.yml +++ b/code_book/_toc.yml @@ -7,5 +7,10 @@ chapters: - file: ch4 - file: ch5 - file: ch6 +- file: ch7 +- file: ch8 +- file: ch9 +- file: ch10 +- file: ch11 diff --git a/code_book/ch1.md b/code_book/ch1.md index 994a069..42357f6 100644 --- a/code_book/ch1.md +++ b/code_book/ch1.md @@ -15,4 +15,401 @@ kernelspec: # Chapter 1 Code -No code in this chapter. +Here is the code for chapter 1. I will not spend time explaining concepts +here, since both programming and dynamics are dealt with more systematically +later. + +Rather, the code is included here for completeness, and so that readers can +circle back to it once they have read other chapters. + +We begin with some imports. + + +```{code-cell} ipython3 + +import numpy as np +import matplotlib.pyplot as plt +from matplotlib.colors import ListedColormap +import quantecon as qe +from numpy.random import uniform, randint +from numba import njit + +``` + +## Markov Dynamics + +Here is the class transition model from chapter 1 expressed as a stochastic +matrix. + +```{code-cell} ipython3 +P = ((0.9, 0.1, 0.0), + (0.4, 0.4, 0.2), + (0.1, 0.1, 0.8)) + +mc = qe.MarkovChain(P) + +``` + + +The following function simulates dynamics of a large group of households from +some fixed distribution `init`. + + +```{code-cell} ipython3 + +def sim_population(init=None, sim_length=100, pop_size=1000): + + cdf = np.cumsum(init) + obs = qe.random.draw(cdf, pop_size) + updated_obs = mc.simulate(sim_length, init=obs)[:, -1] + return updated_obs + +``` + +This function creates distribution plots. + + +```{code-cell} ipython3 + +def generate_plot(initial_dist, title, ax): + population = 1000 + + draws = sim_population(init=initial_dist, pop_size=population) + histogram = [np.mean(draws == i) for i in range(3)] + + names = 'poor', 'middle', 'rich' + ax.bar(names, histogram, edgecolor='k', alpha=0.4) + ax.set_title(title) + +``` + +Now let us generate the first figure. + +```{code-cell} ipython3 + +initial_dists = ((1, 0, 0), + (0, 1, 0), + (0, 0, 1), + (0.33, 0.33, 0.34)) + +titles = ('$\\psi_0 = (1, 0, 0)$', + '$\\psi_0 = (0, 1, 0)$', + '$\\psi_0 = (0, 0, 1)$', + '$\\psi_0 = (1/3, 1/3, 1/3)$') + +fig, axes = plt.subplots(2, 2) +axes = axes.flatten() + +for psi, title, ax in zip(initial_dists, titles, axes): + generate_plot(psi, title, ax) + +plt.tight_layout() +plt.show() + +``` + +Finally, here is a histogram of states produced by a single very long time +series. + +For large samples, the histogram is essentially identical to the ones we +produced above. + +This is ergodicity. + + +```{code-cell} ipython3 + +sim_length = 100_000 +draws = mc.simulate(sim_length, init=0) +histogram = [np.mean(draws == i) for i in range(3)] + +fig, ax = plt.subplots() +names = 'poor', 'middle', 'rich' +ax.bar(names, histogram, edgecolor='k', alpha=0.4) +ax.set_title('time series average') +ax.set_yticks((0, 0.2, 0.4, 0.6)) +plt.show() + +``` + +Here is the code that produced the lattice figure in chapter 1. + + +```{code-cell} ipython3 +xx, yy = np.meshgrid(np.arange(10), np.arange(10), indexing='ij') + + +cols = np.random.randint(0, high=2, size=100) + +cmap = ListedColormap(('lavender', 'navy')) + +fig, ax = plt.subplots() +plt.axis('off') +ax.get_xaxis().set_visible(False) +ax.get_yaxis().set_visible(False) + +ax.scatter(xx,yy, c=cols, cmap=cmap, alpha=0.6, edgecolor='k') +plt.show() + +``` + + +## The Schelling Model + +Next I provide the code for the Schelling model simulations. + + +I omit most explanations. + +Hopefully readers will find the code transparent after building some +experience reading other chapters. + + +```{code-cell} ipython3 +n = 1000 # number of agents (agents = 0, ..., n-1) +k = 10 # number of agents regarded as neighbors +require_same_type = 5 # want >= require_same_type neighbors of the same type + +def initialize_state(): + locations = uniform(size=(n, 2)) + types = randint(0, high=2, size=n) # label zero or one + return locations, types + +@njit +def compute_distances_from_loc(loc, locations): + " Compute distance from location loc to all other points. " + distances = np.empty(n) + for j in range(n): + distances[j] = np.linalg.norm(loc - locations[j, :]) + return distances + +def get_neighbors(loc, locations): + " Get all neighbors of a given location. " + all_distances = compute_distances_from_loc(loc, locations) + indices = np.argsort(all_distances) # sort agents by distance to loc + neighbors = indices[:k] # keep the k closest ones + return neighbors + +def is_happy(i, locations, types): + happy = True + agent_loc = locations[i, :] + agent_type = types[i] + neighbors = get_neighbors(agent_loc, locations) + neighbor_types = types[neighbors] + if sum(neighbor_types == agent_type) < require_same_type: + happy = False + return happy + +def count_happy(locations, types): + " Count the number of happy agents. " + happy_sum = 0 + for i in range(n): + happy_sum += is_happy(i, locations, types) + return happy_sum + +def update_agent(i, locations, types): + " Move agent if unhappy. " + moved = False + while not is_happy(i, locations, types): + moved = True + locations[i, :] = uniform(), uniform() + return moved + +def plot_distribution(locations, types, title, savepdf=False): + " Plot the distribution of agents after cycle_num rounds of the loop." + fig, ax = plt.subplots() + colors = 'lavender', 'navy' + for agent_type, color in zip((0, 1), colors): + idx = (types == agent_type) + ax.plot(locations[idx, 0], + locations[idx, 1], + 'o', + markersize=8, + markerfacecolor=color, + alpha=0.8) + ax.set_title(title) + if savepdf: + plt.savefig(title + '.pdf') + plt.show() + + +def sim_sequential(max_iter=100): + """ + Simulate by sequentially stepping through the agents, one after + another. + + """ + + locations, types = initialize_state() + current_iter = 0 + + while current_iter < max_iter: + print("Entering iteration ", current_iter) + + plot_distribution(locations, types, f'cycle_{current_iter}') + + # Update all agents + num_moved = 0 + for i in range(n): + num_moved += update_agent(i, locations, types) + + if num_moved == 0: + print(f"Converged at iteration {current_iter}") + break + + current_iter += 1 + + +def sim_random_select(max_iter=100_000, flip_prob=0.01, test_freq=10_000): + """ + Simulate by randomly selecting one household at each update. + + Flip the color of the household with probability `flip_prob`. + + """ + + locations, types = initialize_state() + current_iter = 0 + + while current_iter <= max_iter: + + # Choose a random agent and update them + i = randint(0, n) + moved = update_agent(i, locations, types) + + if flip_prob > 0: + # flip agent i's type with probability epsilon + U = uniform() + if U < flip_prob: + current_type = types[i] + types[i] = 0 if current_type == 1 else 1 + + # Every so many updates, plot and test for convergence + if current_iter % test_freq == 0: + cycle = current_iter / n + plot_distribution(locations, types, f'iteration {current_iter}') + if count_happy(locations, types) == n: + print(f"Converged at iteration {current_iter}") + break + + current_iter += 1 + + if current_iter > max_iter: + print(f"Terminating at iteration {current_iter}") + + +``` + +This code creates figures 1.6 -- 1.7, modulo randomness. + +```{code-cell} ipython3 +sim_random_select(max_iter=50_000, flip_prob=0.0, test_freq=10_000) + +``` + +This code creates figures 1.8 -- 1.9. + +```{code-cell} ipython3 +sim_random_select(max_iter=200_000, flip_prob=0.01, test_freq=50_000) + +``` + +## Linear AR(1) Simulation + +In this section we generate the time path figures for the Gaussian AR(1) model +(figures 1.10, 1.12 and 1.13). + + + +```{code-cell} ipython3 +a = 0.9 +b = 1.0 + +mu_0, v_0 = 1, 1 + +def compute_mean_and_var(t): + mu, v = mu_0, v_0 + for i in range(t): + mu = a * mu + b + v = a**2 * v + 1 + + return mu, v + +def norm_pdf(x, mu, v): + return np.sqrt(1/(2 * np.pi * v)) * np.exp(-(x - mu)**2 / (2*v)) + +``` + +Here is the density sequence. + +```{code-cell} ipython3 +dates = 1, 2, 4, 8, 16, 32, 64 +y_grid = np.linspace(-5, 20, 200) +greys = [str(g) for g in np.linspace(0.2, 0.8, len(dates))] +greys.reverse() + +fig, ax = plt.subplots() + +for t, g in zip(dates, greys): + mu, v = compute_mean_and_var(t) + ax.plot(y_grid, + [norm_pdf(y, mu, v) for y in y_grid], + color=g, + lw=2, + alpha=0.6, + label=f'$t={t}$') + +ax.set_xlabel('$x$') +ax.legend() + +plt.show() + + +``` + +Here is the time series. + +```{code-cell} ipython3 + +def generate_time_series(X_0=14, ts_length=250): + X = np.empty(ts_length) + X[0] = X_0 + for t in range(ts_length-1): + X[t+1] = a * X[t] + b + np.random.randn() + return X + +mu_star = b / (1 - a) + +X = generate_time_series() + +fig, ax = plt.subplots() + +ax.plot(X, label='$X_t$', alpha=0.8) +ax.plot(np.full(len(X), mu_star), 'k--', label='$\\mu^*$', alpha=0.8) + +ax.legend() + +plt.show() + + +``` + +Finally, here is the evolution of the mean. + +```{code-cell} ipython3 + + +X = generate_time_series(ts_length=5000) +X_bar_series = np.cumsum(X) / np.arange(1, len(X)+1) + +fig, ax = plt.subplots() + +ax.plot(X_bar_series, label='$\\bar X_t$', alpha=0.8) +ax.plot(np.full(len(X_bar_series), mu_star), 'k--', label='$\\mu^*$', alpha=0.8) + +ax.legend() +plt.show() + +``` + + diff --git a/code_book/ch10.md b/code_book/ch10.md new file mode 100644 index 0000000..76d78e4 --- /dev/null +++ b/code_book/ch10.md @@ -0,0 +1,18 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 10 Code + +No code used in this chapter. diff --git a/code_book/ch11.md b/code_book/ch11.md new file mode 100644 index 0000000..5f93a42 --- /dev/null +++ b/code_book/ch11.md @@ -0,0 +1,140 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 11 Code + +We begin with some imports + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt +from numba import njit + +``` + +Now we recreate figure 11.3. Our first step is to set the parameters. + + +```{code-cell} ipython3 + +alpha = 0.6 +Q = 2 +R = 1 +sigma = 0.1 # variance +mu = - sigma**2 / 2 + +``` + +Next we introduce useful functions. + + +```{code-cell} ipython3 +@njit +def wage(k, z): + return (1 - alpha) * (k**alpha) * z + +@njit +def theta(w, lda): + if (w < 1 - lda): + return lda / (1 - w) + else: + return 1 + +@njit +def g(y): + return (y/alpha)**(1/(alpha-1)) + +@njit +def update(k, z, lda): + " Update the state." + return g(R / (Q * theta(wage(k, z), lda))) + +@njit +def a(lda): + return g(R / (lda * Q)) + +@njit +def generate_ts(lda, init=None, seed=1234, ts_length=10_000): + " Generate a time series from the model." + np.random.seed(seed) + K = np.empty(ts_length) + if init is None: + init = a(lda) + K[0] = init + for t in range(ts_length-1): + z = np.exp(mu + sigma * np.random.randn()) + K[t+1] = update(K[t], z, lda) + return K + + +``` + +Now we recreate the plot. + +```{code-cell} ipython3 + +b = g(R / Q) + +lambdas = 0.48, 0.5, 0.52 +line_type = '-', '--', '-.' +mc_size = 5000 +grid_size = 150 + +fig, ax = plt.subplots() + +for lda, lt in zip(lambdas, line_type): + xvec = np.linspace(a(lda), b, grid_size) + obs = generate_ts(lda, ts_length=mc_size) + def ecdf(y): + return sum(obs <= y) / mc_size + yvec = [ecdf(x) for x in xvec] + ax.plot(xvec, yvec, lt, label=f'$\\lambda={lda}$') + +ax.set_xlabel('capital') +ax.legend() + +plt.show() + + +``` + +Now we address exercise 11.26. + +We need to determine the fraction of time the sample spends at the point $b$ +in the state space over a long horizon, for different values of $\lambda$. + + + +```{code-cell} ipython3 + +grid_size = 80 +lambdas = np.linspace(0.45, 0.65, grid_size) +mc_size = 5000 + +prob_at_b = np.empty_like(lambdas) + +for i, lda in enumerate(lambdas): + obs = generate_ts(lda, ts_length=mc_size) + prob_at_b[i] = np.mean(obs == b) + +fig, ax = plt.subplots() +ax.plot(lambdas, prob_at_b, label='$\\psi^*(\{b\})$') +ax.set_xlabel('$\\lambda$') +ax.legend() + +plt.show() + + +``` diff --git a/code_book/ch7.md b/code_book/ch7.md new file mode 100644 index 0000000..0a4f62a --- /dev/null +++ b/code_book/ch7.md @@ -0,0 +1,19 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 7 Code + +No code for this chapter. + diff --git a/code_book/ch8.md b/code_book/ch8.md new file mode 100644 index 0000000..6539b18 --- /dev/null +++ b/code_book/ch8.md @@ -0,0 +1,92 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 8 Code + +Let us start with some imports. + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d.axes3d import Axes3D +from matplotlib import cm + +``` + +Here is the code for figure 8.1. + +```{code-cell} ipython3 +a, b = 0.8, 1.0 # parameters + +def phi(z): + "Standard normal density." + return (1/(2 * np.pi)) * np.exp(-z**2/2) + +def p(x, y): + return phi(y - a * x - b) + +xgrid = np.linspace(-3, 3, 50) +ygrid = xgrid +x, y = np.meshgrid(xgrid, ygrid) + +fig = plt.figure() +ax = fig.add_subplot(111, projection='3d') + +ax.plot_surface(x, + y, + p(x, y), + rstride=2, cstride=2, + cmap=cm.Blues_r, + alpha=0.9, + linewidth=0.25) +ax.set_zticks((0.0, 0.05, 0.1, 0.15)) +ax.set_xlabel('$x$') +ax.set_ylabel('$y$') +ax.zaxis.set_rotate_label(False) +ax.set_zlabel('$p(x,y)$', rotation=0, labelpad=20) + +azimuth, elevation = -128, 25 +ax.view_init(elevation, azimuth) + +plt.show() + +``` + +Here is the code for the time series in figure 8.2. + +```{code-cell} ipython3 +import numpy as np +import matplotlib.pyplot as plt + +ts_length = 100 + +X = np.zeros(ts_length) + +for t in range(ts_length-1): + Z = np.random.randn() + X[t+1] = a * X[t] + b + Z + +fig, ax = plt.subplots() + +ax.plot(X, alpha=0.7, label='$X_t$') +ax.legend() +ax.set_xlabel("time") + +plt.show() + +``` + +Other figures from this chapter were written using different tools and are +omitted. diff --git a/code_book/ch9.md b/code_book/ch9.md new file mode 100644 index 0000000..1d286a0 --- /dev/null +++ b/code_book/ch9.md @@ -0,0 +1,18 @@ +--- +jupytext: + cell_metadata_filter: -all + formats: md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.10.3 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Chapter 9 Code + +No code used in this chapter. diff --git a/code_book/intro.md b/code_book/intro.md index 733444e..330884c 100644 --- a/code_book/intro.md +++ b/code_book/intro.md @@ -1,38 +1,39 @@ Economic Dynamics Code Book =========================== -**AUTHOR**: [JOHN STACHURSKI](https://johnstachurski.net/) +**AUTHOR**: [John Stachurski](https://johnstachurski.net/) -This code book provides code to accompany the second edition of the -textbook *Economic Dynamics: Theory and Computation*, published by the MIT -Press. The code recreates figures from the book and gives solutions to -exercises. + +This Jupyter book provides code to accompany the second edition of the +textbook [Economic Dynamics: Theory and + Computation](https://johnstachurski.net/edtc.html), published by the [MIT +Press](https://mitpress.mit.edu/). The code recreates figures from the book and gives solutions to exercises. The only code provided at this stage is Python. A Julia version is lacking only due to time constraints. If there are readers who would like to create a Julia version, please get in touch via email or the [issue tracker](https://github.com/jstac/edtc-code/issues). A MATLAB version is also -welcome --- although I'm not personally familiar with the language. - -The Python code contained in these notes is accelerated through a combination of -[NumPy](https://numpy.org/) and just-in-time compilation -(via [Numba](http://numba.pydata.org/)). For those who require it, QuantEcon -provides a fast-paced [introduction to scientific computing with -Python](https://python-programming.quantecon.org/) with background on -these topics. - +welcome --- although I am not personally familiar with the language. ```{note} To run the code contained here, please install the latest version of -[Anaconda Python](https://www.anaconda.com/). You will also need the [QuantEcon Python -library](https://quantecon.org/quantecon-py/) and the [Interpolation -library](https://github.com/EconForge/interpolation.py). -Follow the links for installation instructions. +[Anaconda Python](https://www.anaconda.com/). For a few of the programs you will also +need the [QuantEcon Python library](https://quantecon.org/quantecon-py/) and +the [Interpolation library](https://github.com/EconForge/interpolation.py) +(install as required following the instructions on each library page). If you encounter errors, please open an [issue](https://github.com/jstac/edtc-code/issues) and copy and paste your error message. ``` +The Python code contained in these notes is accelerated through a combination of +[NumPy](https://numpy.org/) and just-in-time compilation +(via [Numba](http://numba.pydata.org/)). For those who require it, QuantEcon +provides a fast-paced [introduction to scientific computing with +Python](https://python-programming.quantecon.org/) with background on +these topics. + + This code book is created using [Jupyter Book](https://jupyterbook.org/intro.html). diff --git a/code_book/logo.png b/code_book/logo.png index 06d56f40c838b64eb048a63e036125964a069a3a..c61d33358501f980e13b333434e815c86e6efe7e 100644 GIT binary patch literal 159326 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 KO)8CDZ~Y5SjRA)M literal 9854 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 L>8MsHTOs~GC;Fmw From f1cf6ea92994d7dfd9a4150608678abd9c5644c5 Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Sat, 11 Sep 2021 12:52:57 +1000 Subject: [PATCH 07/24] still_fixing --- README.md | 22 ++++-------- first_edition_code/ar1.py | 15 -------- first_edition_code/cpdynam.py | 32 ----------------- first_edition_code/ds.py | 24 ------------- first_edition_code/ecdf.py | 17 --------- first_edition_code/fig1point2.py | 43 ----------------------- first_edition_code/fig1point4.py | 26 -------------- first_edition_code/fig1point5.py | 30 ---------------- first_edition_code/fig4point1.py | 34 ------------------ first_edition_code/fig4point3.py | 50 --------------------------- first_edition_code/fig4point6.py | 20 ----------- first_edition_code/fig4point7.py | 16 --------- first_edition_code/fig6point13.py | 24 ------------- first_edition_code/fig6point4.py | 30 ---------------- first_edition_code/fphamilton.py | 16 --------- first_edition_code/fpi.py | 38 -------------------- first_edition_code/fvi.py | 33 ------------------ first_edition_code/genfinitemc.py | 43 ----------------------- first_edition_code/kurtzbellman.py | 37 -------------------- first_edition_code/kurtzvsigma.py | 38 -------------------- first_edition_code/lininterp.py | 23 ------------ first_edition_code/p2srs.py | 21 ----------- first_edition_code/polyclass.py | 22 ------------ first_edition_code/polyclass0.py | 22 ------------ first_edition_code/quadmap1.py | 15 -------- first_edition_code/srs.py | 25 -------------- first_edition_code/testds.py | 16 --------- first_edition_code/testfpi.py | 20 ----------- first_edition_code/testgenfinitemc.py | 19 ---------- first_edition_code/testsrs.py | 18 ---------- 30 files changed, 6 insertions(+), 783 deletions(-) delete mode 100644 first_edition_code/ar1.py delete mode 100644 first_edition_code/cpdynam.py delete mode 100644 first_edition_code/ds.py delete mode 100644 first_edition_code/ecdf.py delete mode 100644 first_edition_code/fig1point2.py delete mode 100644 first_edition_code/fig1point4.py delete mode 100644 first_edition_code/fig1point5.py delete mode 100644 first_edition_code/fig4point1.py delete mode 100644 first_edition_code/fig4point3.py delete mode 100644 first_edition_code/fig4point6.py delete mode 100644 first_edition_code/fig4point7.py delete mode 100644 first_edition_code/fig6point13.py delete mode 100644 first_edition_code/fig6point4.py delete mode 100644 first_edition_code/fphamilton.py delete mode 100644 first_edition_code/fpi.py delete mode 100644 first_edition_code/fvi.py delete mode 100644 first_edition_code/genfinitemc.py delete mode 100644 first_edition_code/kurtzbellman.py delete mode 100644 first_edition_code/kurtzvsigma.py delete mode 100644 first_edition_code/lininterp.py delete mode 100644 first_edition_code/p2srs.py delete mode 100644 first_edition_code/polyclass.py delete mode 100644 first_edition_code/polyclass0.py delete mode 100644 first_edition_code/quadmap1.py delete mode 100644 first_edition_code/srs.py delete mode 100644 first_edition_code/testds.py delete mode 100644 first_edition_code/testfpi.py delete mode 100644 first_edition_code/testgenfinitemc.py delete mode 100644 first_edition_code/testsrs.py diff --git a/README.md b/README.md index 9b549ab..b3befef 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,9 @@ -Economic Dynamics, Theory and Computation -============================================ +# Economic Dynamics, Theory and Computation -This is the code repository for the text [Economic Dynamics, Theory and Computation](http://johnstachurski.net/personal/edtc.html) by [John Stachurski](http://johnstachurski.net). +This is the GH repo for the second edition of +[Economic Dynamics, Theory and Computation](http://johnstachurski.net/personal/edtc.html) by [John Stachurski](http://johnstachurski.net). -### About - -This code repository is written in conjuction with the text [Economic -Dynamics, Theory and Computation](http://johnstachurski.net/personal/edtc.html). The Python code -contained in this repository is explained in detail in the text. The MATLAB -code provides equivalents to the Python code for those who prefer MATLAB. - -### Downloading the Repository - -Either - -* Click the 'Zip' button at the top of this page, or -* Use [Git](https://help.github.com) to clone the repository +The repo contains the source for the corresponding [Jupyter Book](https://jstac.github.io/edtc-code/intro.html) +If you find problems, please feel free to get in touch via the issue tracker. +All feedback is appreciated. diff --git a/first_edition_code/ar1.py b/first_edition_code/ar1.py deleted file mode 100644 index 4d7324f..0000000 --- a/first_edition_code/ar1.py +++ /dev/null @@ -1,15 +0,0 @@ -# Filename: ar1.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 8.1 - -from random import normalvariate as N - -a, b = 0.5, 1 # Parameters -X = {} # An empty dictionary to store path -X[0] = N(0, 1) # X_0 has distribution N(0, 1) - -for t in range(100): - X[t+1] = N(a * X[t] + b, 1) - - diff --git a/first_edition_code/cpdynam.py b/first_edition_code/cpdynam.py deleted file mode 100644 index 2cdfd70..0000000 --- a/first_edition_code/cpdynam.py +++ /dev/null @@ -1,32 +0,0 @@ -# Filename: cpdynam.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 6.7 - -from scipy import mean -from scipy.stats import beta -from scipy.optimize import brentq - -alpha, a, c = 0.8, 5.0, 2.0 -W = beta(5, 5).rvs(1000) * c + a # Shock observations -D = P = lambda x: 1.0 / x - -def fix_point(h, lower, upper): - """Computes the fixed point of h on [upper, lower] - using SciPy's brentq routine, which finds the - zeros (roots) of a univariate function. - Parameters: h is a function and lower and upper are - numbers (floats or integers). """ - return brentq(lambda x: x - h(x), lower, upper) - -def T(p, x): - """Computes Tp(x), where T is the pricing functional - operator. - Parameters: p is a vectorized function (i.e., acts - pointwise on arrays) and x is a number. """ - y = alpha * mean(p(W)) - if y <= P(x): - return P(x) - h = lambda r: alpha * mean(p(alpha*(x - D(r)) + W)) - return fix_point(h, P(x), y) - diff --git a/first_edition_code/ds.py b/first_edition_code/ds.py deleted file mode 100644 index 07c89e6..0000000 --- a/first_edition_code/ds.py +++ /dev/null @@ -1,24 +0,0 @@ -# Filename: ds.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 4.2 - -class DS: - - def __init__(self, h=None, x=None): - """Parameters: h is a function and x is a number - in S representing the current state.""" - self.h, self.x = h, x - - def update(self): - "Update the state of the system by applying h." - self.x = self.h(self.x) - - def trajectory(self, n): - """Generate a trajectory of length n, starting - at the current state.""" - traj = [] - for i in range(n): - traj.append(self.x) - self.update() - return traj diff --git a/first_edition_code/ecdf.py b/first_edition_code/ecdf.py deleted file mode 100644 index 224f731..0000000 --- a/first_edition_code/ecdf.py +++ /dev/null @@ -1,17 +0,0 @@ -# Filename: ecdf.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 6.3 - -class ECDF: - - def __init__(self, observations): - self.observations = observations - - def __call__(self, x): - counter = 0.0 - for obs in self.observations: - if obs <= x: - counter += 1 - return counter / len(self.observations) - diff --git a/first_edition_code/fig1point2.py b/first_edition_code/fig1point2.py deleted file mode 100644 index fe5e869..0000000 --- a/first_edition_code/fig1point2.py +++ /dev/null @@ -1,43 +0,0 @@ -from pyx import * -from pyx.deco import earrow -text.set(mode="latex") -text.preamble(r"\usepackage{times}") -from scipy import log, sqrt, pi, linspace, exp - -theta = 0.3 -alpha = 0.4 -c = (log(theta)) * alpha -muinit = -2 -varinit = 0.8 -numden = 7 - -updatemu = lambda m: c + alpha * m -updatevar = lambda v: alpha**2 * v + 1 - -def phi(z, mu, var): - return exp(- (z - mu)**2 / (2.0 * var)) / sqrt(2 * pi * var) - -gridmin, gridmax = -3.2, 1 -g = graph.graphxy(width=10, x=graph.axis.lin(min=gridmin, max=gridmax)) - -x_grid = linspace(gridmin, gridmax, 100) -mu, var = muinit, varinit -i = 1 -gr = 0.7 -step = gr / numden -while i <= numden: - plotpairs = [(x, phi(x, mu, var)) for x in x_grid] - g.plot(graph.data.points(plotpairs, - x=1, y=2), - [graph.style.line([color.gray(gr)])]) - mu, var = updatemu(mu), updatevar(var) - gr -= step - i += 1 - -x1, y1 = g.pos(-1.3, 0.1) -x2, y2 = g.pos(-0.8, 0.17) -g.stroke(path.line(x1, y1, x2, y2), [earrow.normal]) -g.text(x1-0.1, y1-0.3, r"$x_t \sim N(-2, 0.8)$", [text.halign.right]) - -g.writePDFfile("normaldensities") - diff --git a/first_edition_code/fig1point4.py b/first_edition_code/fig1point4.py deleted file mode 100644 index 03da480..0000000 --- a/first_edition_code/fig1point4.py +++ /dev/null @@ -1,26 +0,0 @@ - -import numpy as np -import matplotlib.pyplot as plt - -theta, alpha = 0.3, 0.4 -C = np.log(theta) * alpha -N = 250 -initx = 4 -meanx = C / (1 - alpha) - -def update(x): - return C + alpha * x + np.random.randn(1) - -path = np.zeros(N) -path[0] = initx -for t in range(N-1): - path[t+1] = update(path[t]) - -plt.plot(path, 'k') -plt.axhline(meanx, xmin=0, xmax=N, color='k') -plt.xlabel("time") -plt.ylabel("log income") -plt.show() - - - diff --git a/first_edition_code/fig1point5.py b/first_edition_code/fig1point5.py deleted file mode 100644 index da79ce1..0000000 --- a/first_edition_code/fig1point5.py +++ /dev/null @@ -1,30 +0,0 @@ - -import numpy as np -import matplotlib.pyplot as plt - -theta, alpha = 0.3, 0.4 -C = np.log(theta) * alpha -N = 250 -initx = 4 -meanx = C / (1 - alpha) - -def update(x): - return C + alpha * x + np.random.randn(1) - -path = np.zeros(N) -path[0] = initx -for t in range(N-1): - path[t+1] = update(path[t]) - -mean_path = np.zeros(N) -for t in range(N): - mean_path[t] = path[:t+1].mean() - -plt.plot(mean_path, 'k') -plt.axhline(meanx, xmin=0, xmax=N, color='k') -plt.xlabel("time") -plt.ylabel("sample mean") -plt.show() - - - diff --git a/first_edition_code/fig4point1.py b/first_edition_code/fig4point1.py deleted file mode 100644 index cf7d55c..0000000 --- a/first_edition_code/fig4point1.py +++ /dev/null @@ -1,34 +0,0 @@ - -import numpy as np -from pyx import * - -xdim = (-10.0, 10.0) -ydim = (-5.0, 5.0) - -A1 = np.asarray([[0.58, -0.6], - [0.65, 0.3]]) - -def f(x): return np.dot(A1, x) - -# Create a PyX canvas -c = canvas.canvas() - -# Set up the axis -c.stroke(path.line(-10, 0, 10, 0), [style.linestyle.dashed]) -c.stroke(path.line(0, -5, 0, 5), [style.linestyle.dashed]) - -# A function to plot arrows -def plotarrow(x): - fx = f(x) - c.stroke(path.line(x[0], x[1], fx[0], fx[1]), - [style.linewidth.Thick, deco.earrow(size=0.5)]) - -# A 2 by 2 grid for start points of arrows -xpoints = np.linspace(xdim[0], xdim[1], 14) -ypoints = np.linspace(ydim[0], ydim[1], 8) - -for x in xpoints: - for y in ypoints: - plotarrow((x, y)) - -c.writePDFfile("sdsdiagram") diff --git a/first_edition_code/fig4point3.py b/first_edition_code/fig4point3.py deleted file mode 100644 index 6a3a863..0000000 --- a/first_edition_code/fig4point3.py +++ /dev/null @@ -1,50 +0,0 @@ - -import numpy as np -from pyx import * - -alpha, s, a = 0.5, 0.25, 7 -kstar = ((s*a)**(1/(1 - alpha))) - -def h(k): - return s * a * (k**alpha) - -def plotcurve(X, Y, canv): - for i in range(len(X)-1): - canv.stroke(path.line(X[i], Y[i], X[i+1], Y[i+1]), [style.linewidth.Thick]) - -c = canvas.canvas() -upper = 6 -# axes -c.stroke(path.line(0, 0, upper, 0), [deco.earrow(size=0.3)]) -c.stroke(path.line(0, 0, 0, upper), [deco.earrow(size=0.3)]) -# 45 degrees -c.stroke(path.line(0, 0, upper, upper), [style.linestyle.dashed]) -# function curve -X = np.linspace(0, upper, 100) -Y = [h(x) for x in X] -plotcurve(X, Y, c) -# arrows -k = 0.5 -for i in range(4): - c.stroke(path.line(k, k, k, h(k)), - [deco.earrow(size=0.15), style.linewidth.Thin]) - c.stroke(path.line(k, h(k), h(k), h(k)), - [deco.earrow(size=0.15), style.linewidth.Thin]) - c.stroke(path.line(k, 0, h(k), 0), - [deco.earrow(size=0.15), style.linewidth.THIN]) - k = h(k) -k = 5.8 -for i in range(3): - c.stroke(path.line(k, k, k, h(k)), - [deco.earrow(size=0.15), style.linewidth.Thin]) - c.stroke(path.line(k, h(k), h(k), h(k)), - [deco.earrow(size=0.15), style.linewidth.Thin]) - c.stroke(path.line(k, 0, h(k), 0), - [deco.earrow(size=0.15), style.linewidth.THIN]) - k = h(k) - -c.stroke(path.line(kstar, 0, kstar, kstar), [style.linestyle.dotted]) -c.text(kstar, -0.5, r"k^*", [text.mathmode, text.size.normal]) -c.text(upper*1.06, -0.5, r"k_t", [text.mathmode, text.size.normal]) -c.text(-0.5, upper*1.06, r"k_{t+1}", [text.mathmode, text.size.normal]) -c.writePDFfile("stable45deg") diff --git a/first_edition_code/fig4point6.py b/first_edition_code/fig4point6.py deleted file mode 100644 index a210420..0000000 --- a/first_edition_code/fig4point6.py +++ /dev/null @@ -1,20 +0,0 @@ - -import numpy as np -import matplotlib.pyplot as plt - -xgrid = np.linspace(0, 1, 100) - -h = lambda x, r: r * x * (1 - x) - -plt.plot(xgrid, xgrid, '-', color='grey') - -r = 0 -step = 0.3 - -while r <= 4: - y = [h(x, r) for x in xgrid] - plt.plot(xgrid, y, 'k-') - r = r + step - -plt.show() - diff --git a/first_edition_code/fig4point7.py b/first_edition_code/fig4point7.py deleted file mode 100644 index 98e2ccd..0000000 --- a/first_edition_code/fig4point7.py +++ /dev/null @@ -1,16 +0,0 @@ -from ds import DS -from matplotlib.pyplot import plot, show, xlabel - -q = DS(h=None, x=0.1) - -r = 2.5 -while r < 4: - q.h = lambda x: r * x * (1 - x) - t = q.trajectory(1000)[950:] - plot([r] * len(t), t, 'k.', ms=0.4) - r = r + 0.005 - -xlabel(r'$r$', fontsize=16) -show() - - diff --git a/first_edition_code/fig6point13.py b/first_edition_code/fig6point13.py deleted file mode 100644 index 6a3bca2..0000000 --- a/first_edition_code/fig6point13.py +++ /dev/null @@ -1,24 +0,0 @@ - -import numpy as np -from fvi import LinInterp -from cpdynam import * # Listing 6.7 in the text -import matplotlib.pyplot as plt - -gridsize = 150 -grid = np.linspace(a, 35, gridsize) - -vals = P(grid) -for i in range(20): - if i == 0: - plt.plot(grid, vals, 'k-', label=r'$P$') - if i == 1: - plt.plot(grid, vals, 'k--', label=r'$TP$') - if i == 19: - plt.plot(grid, vals, 'k-.', label=r'$T^{50}P$') - p = LinInterp(grid, vals) - new_vals = [T(p, x) for x in grid] - vals = new_vals - -plt.legend(axespad=0.1) -plt.show() - diff --git a/first_edition_code/fig6point4.py b/first_edition_code/fig6point4.py deleted file mode 100644 index 11a00a0..0000000 --- a/first_edition_code/fig6point4.py +++ /dev/null @@ -1,30 +0,0 @@ - -import matplotlib.pyplot as plt -from math import exp, sqrt -from random import normalvariate - -alpha = 0.5 -s = 0.25 -a1 = 15 -a2 = 25 -ss = sqrt(0.02) -kb = 24.1 - -def update(k): - a = a1 if k < kb else a2 - return s * a * (k**alpha) * exp(normalvariate(0, ss)) - -def ts(init, T): - k = init - path = [k] - for t in range(T): - k = update(k) - path.append(k) - return path - -L = 500 -plt.plot(ts(1, L), 'k-') -plt.plot(ts(60, L), '-', color='grey') -plt.xlabel('time') -plt.ylabel('investment') -plt.show() diff --git a/first_edition_code/fphamilton.py b/first_edition_code/fphamilton.py deleted file mode 100644 index 62528b0..0000000 --- a/first_edition_code/fphamilton.py +++ /dev/null @@ -1,16 +0,0 @@ -# Filename: fphamilton.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 4.6 - -from numpy import ones, identity, transpose -from numpy.linalg import solve - -pH = ((0.971, 0.029, 0.000), # Hamilton's kernel - (0.145, 0.778, 0.077), - (0.000, 0.508, 0.492)) - -I = identity(3) # 3 by 3 identity matrix -Q, b = ones((3, 3)), ones((3, 1)) # Matrix and vector of ones -A = transpose(I - pH + Q) -print(solve(A, b)) diff --git a/first_edition_code/fpi.py b/first_edition_code/fpi.py deleted file mode 100644 index 9f7781d..0000000 --- a/first_edition_code/fpi.py +++ /dev/null @@ -1,38 +0,0 @@ -# Filename: fpi.py -# Author: John Stachurski -# Date: August 2009 -# Corresponds to: Listing 6.6 - -from fvi import * # Import all definitions from listing 6.5 -from scipy import absolute as abs - -def maximizer(h, a, b): - return float(fminbound(lambda x: -h(x), a, b)) - -def T(sigma, w): - "Implements the operator L T_sigma." - vals = [] - for y in grid: - Tw_y = U(y - sigma(y)) + rho * mean(w(f(sigma(y), W))) - vals.append(Tw_y) - return LinInterp(grid, vals) - -def get_greedy(w): - "Computes a w-greedy policy." - vals = [] - for y in grid: - h = lambda k: U(y - k) + rho * mean(w(f(k, W))) - vals.append(maximizer(h, 0, y)) - return LinInterp(grid, vals) - -def get_value(sigma, v): - """Computes an approximation to v_sigma, the value - of following policy sigma. Function v is a guess. - """ - tol = 1e-2 # Error tolerance - while 1: - new_v = T(sigma, v) - err = max(abs(new_v(grid) - v(grid))) - if err < tol: - return new_v - v = new_v diff --git a/first_edition_code/fvi.py b/first_edition_code/fvi.py deleted file mode 100644 index 266e752..0000000 --- a/first_edition_code/fvi.py +++ /dev/null @@ -1,33 +0,0 @@ -# Filename: fvi.py -# Author: John Stachurski -# Date: August 2009 -# Corresponds to: Listing 6.5 - -from scipy import linspace, mean, exp, randn -from scipy.optimize import fminbound -from lininterp import LinInterp # From listing 6.4 - -theta, alpha, rho = 0.5, 0.8, 0.9 # Parameters -def U(c): return 1 - exp(- theta * c) # Utility -def f(k, z): return (k**alpha) * z # Production -W = exp(randn(1000)) # Draws of shock - -gridmax, gridsize = 8, 150 -grid = linspace(0, gridmax**1e-1, gridsize)**10 - -def maximum(h, a, b): - return float(h(fminbound(lambda x: -h(x), a, b))) - -def bellman(w): - """The approximate Bellman operator. - Parameters: w is a vectorized function (i.e., a - callable object which acts pointwise on arrays). - Returns: An instance of LinInterp. - """ - vals = [] - for y in grid: - h = lambda k: U(y - k) + rho * mean(w(f(k,W))) - vals.append(maximum(h, 0, y)) - return LinInterp(grid, vals) - - diff --git a/first_edition_code/genfinitemc.py b/first_edition_code/genfinitemc.py deleted file mode 100644 index 134f209..0000000 --- a/first_edition_code/genfinitemc.py +++ /dev/null @@ -1,43 +0,0 @@ -# Filename: genfinitemc.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 4.4 - -from random import uniform - -def sample(phi): - """Returns i with probability phi[i], where phi is an - array (e.g., list or tuple).""" - a = 0.0 - U = uniform(0,1) - for i in range(len(phi)): - if a < U <= a + phi[i]: - return i - a = a + phi[i] - - -class MC: - """For generating sample paths of finite Markov chains - on state space S = {0,...,N-1}.""" - - def __init__(self, p=None, X=None): - """Create an instance with stochastic kernel p and - current state X. Here p[x] is an array of length N - for each x, and represents p(x,dy). - The parameter X is an integer in S.""" - self.p, self.X = p, X - - def update(self): - "Update the state by drawing from p(X,dy)." - self.X = sample(self.p[self.X]) - - def sample_path(self, n): - """Generate a sample path of length n, starting from - the current state.""" - path = [] - for i in range(n): - path.append(self.X) - self.update() - return path - - diff --git a/first_edition_code/kurtzbellman.py b/first_edition_code/kurtzbellman.py deleted file mode 100644 index 178b2b1..0000000 --- a/first_edition_code/kurtzbellman.py +++ /dev/null @@ -1,37 +0,0 @@ -# Filename: kurtzbellman.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 5.1 - -beta, rho, B, M = 0.5, 0.9, 10, 5 -S = range(B + M + 1) # State space = 0,...,B + M -Z = range(B + 1) # Shock space = 0,...,B - -def U(c): - "Utility function." - return c**beta - -def phi(z): - "Probability mass function, uniform distribution." - return 1.0 / len(Z) if 0 <= z <= B else 0 - -def Gamma(x): - "The correspondence of feasible actions." - return range(min(x, M) + 1) - -def T(v): - """An implementation of the Bellman operator. - Parameters: v is a sequence representing a function on S. - Returns: Tv, a list.""" - Tv = [] - for x in S: - # Compute the value of the objective function for each - # a in Gamma(x), and store the result in vals - vals = [] - for a in Gamma(x): - y = U(x - a) + rho * sum(v[a + z]*phi(z) for z in Z) - vals.append(y) - # Store the maximum reward for this x in the list Tv - Tv.append(max(vals)) - return Tv - diff --git a/first_edition_code/kurtzvsigma.py b/first_edition_code/kurtzvsigma.py deleted file mode 100644 index 0a12f30..0000000 --- a/first_edition_code/kurtzvsigma.py +++ /dev/null @@ -1,38 +0,0 @@ -# Filename: kurtzvsigma.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 5.2 - -from numpy import zeros, dot, array -from kurtzbellman import S, rho, phi, U # From listing 5.1 - -def value_of_policy(sigma): - "Computes the value of following policy sigma." - - # Set up the stochastic kernel p_sigma as a 2D array: - N = len(S) - p_sigma = zeros((N, N)) - for x in S: - for y in S: - p_sigma[x, y] = phi(y - sigma[x]) - - # Create the right Markov operator M_sigma: - M_sigma = lambda h: dot(p_sigma, h) - - # Set up the function r_sigma as an array: - r_sigma = array([U(x - sigma[x]) for x in S]) - # Reshape r_sigma into a column vector: - r_sigma = r_sigma.reshape((N, 1)) - - # Initialize v_sigma to zero: - v_sigma = zeros((N,1)) - # Initialize the discount factor to 1: - discount = 1 - - for i in range(50): - v_sigma = v_sigma + discount * r_sigma - r_sigma = M_sigma(r_sigma) - discount = discount * rho - - return v_sigma - diff --git a/first_edition_code/lininterp.py b/first_edition_code/lininterp.py deleted file mode 100644 index 47eb839..0000000 --- a/first_edition_code/lininterp.py +++ /dev/null @@ -1,23 +0,0 @@ -# Filename: lininterp.py -# Author: John Stachurski -# Date: August 2009 -# Corresponds to: Listing 6.4 - -from scipy import interp - -class LinInterp: - "Provides linear interpolation in one dimension." - - def __init__(self, X, Y): - """Parameters: X and Y are sequences or arrays - containing the (x,y) interpolation points. - """ - self.X, self.Y = X, Y - - def __call__(self, z): - """Parameters: z is a number, sequence or array. - This method makes an instance f of LinInterp callable, - so f(z) returns the interpolation value(s) at z. - """ - return interp(z, self.X, self.Y) - diff --git a/first_edition_code/p2srs.py b/first_edition_code/p2srs.py deleted file mode 100644 index 566e6df..0000000 --- a/first_edition_code/p2srs.py +++ /dev/null @@ -1,21 +0,0 @@ -# Filename: p2srs.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 5.3 - -def createF(p): - """Takes a kernel p on S = {0,...,N-1} and returns a - function F(x,z) which represents it as an SRS. - Parameters: p is a sequence of sequences, so that p[x][y] - represents p(x,y) for x,y in S. - Returns: A function F with arguments (x,z).""" - S = range(len(p[0])) - def F(x,z): - a = 0 - for y in S: - if a < z <= a + p[x][y]: - return y - a = a + p[x][y] - return F - - diff --git a/first_edition_code/polyclass.py b/first_edition_code/polyclass.py deleted file mode 100644 index 412d15f..0000000 --- a/first_edition_code/polyclass.py +++ /dev/null @@ -1,22 +0,0 @@ -# Filename: polyclass.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 2.2 - -class Polynomial: - - def __init__(self, coef): - """Creates an instance p of the Polynomial class, - where p(x) = coef[0] x^0 + ... + coef[N] x^N.""" - self.coef = coef - - def evaluate(self, x): - y = sum(a*x**i for i, a in enumerate(self.coef)) - return y - - def differentiate(self): - new_coef = [i*a for i, a in enumerate(self.coef)] - # Remove the first element, which is zero - del new_coef[0] - # And reset coefficients data to new values - self.coef = new_coef diff --git a/first_edition_code/polyclass0.py b/first_edition_code/polyclass0.py deleted file mode 100644 index c501a2d..0000000 --- a/first_edition_code/polyclass0.py +++ /dev/null @@ -1,22 +0,0 @@ -# Filename: polyclass0.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing xxxx - -class Polynomial: - - def initialize(coef): - """Creates an instance p of the Polynomial class, - where p(x) = coef[0] x^0 + ... + coef[N] x^N.""" - - def evaluate(x): - y = sum(a*x**i for i, a in enumerate(coef)) - return y - - def differentiate(): - new_coef = [i*a for i, a in enumerate(coef)] - # Remove the first element, which is zero - del new_coef[0] - # And reset coefficients data to new values - coef = new_coef - diff --git a/first_edition_code/quadmap1.py b/first_edition_code/quadmap1.py deleted file mode 100644 index 658e35f..0000000 --- a/first_edition_code/quadmap1.py +++ /dev/null @@ -1,15 +0,0 @@ -# Filename: quadmap1.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 4.1 - -from pylab import plot, show # Requires Matplotlib - -datapoints = [] # Stores trajectory -x = 0.11 # Initial condition -for t in range(200): - datapoints.append(x) - x = 4 * x * (1 - x) - -plot(datapoints) -show() diff --git a/first_edition_code/srs.py b/first_edition_code/srs.py deleted file mode 100644 index c11f809..0000000 --- a/first_edition_code/srs.py +++ /dev/null @@ -1,25 +0,0 @@ -# Filename: srs.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 6.1 - -class SRS: - - def __init__(self, F=None, phi=None, X=None): - """Represents X_{t+1} = F(X_t, W_{t+1}); W ~ phi. - Parameters: F and phi are functions, where phi() - returns a draw from phi. X is a number representing - the initial condition.""" - self.F, self.phi, self.X = F, phi, X - - def update(self): - "Update the state according to X = F(X, W)." - self.X = self.F(self.X, self.phi()) - - def sample_path(self, n): - "Generate path of length n from current state." - path = [] - for i in range(n): - path.append(self.X) - self.update() - return path diff --git a/first_edition_code/testds.py b/first_edition_code/testds.py deleted file mode 100644 index 48581c4..0000000 --- a/first_edition_code/testds.py +++ /dev/null @@ -1,16 +0,0 @@ -# Filename: testds.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 4.3 - -from ds import DS # Import from listing 4.2 - -def quadmap(x): - return 4 * x * (1 - x) - -q = DS(h=quadmap, x=0.1) # Create an instance q of DS -T1 = q.trajectory(100) # T1 holds trajectory from 0.1 - -q.x = 0.2 # Reset current state to 0.2 -T2 = q.trajectory(100) # T2 holds trajectory from 0.2 - diff --git a/first_edition_code/testfpi.py b/first_edition_code/testfpi.py deleted file mode 100644 index 475d3dd..0000000 --- a/first_edition_code/testfpi.py +++ /dev/null @@ -1,20 +0,0 @@ - -from fpi import * -import matplotlib.pyplot as plt -import numpy as np - -tol = 0.005 -sigma = get_greedy(U) -v = get_value(sigma, U) - -while 1: - plt.plot(grid, sigma(grid)) - sigma_new = get_greedy(v) - v_new = get_value(sigma_new, v) - if np.max(abs(v(grid) - v_new(grid))) < tol: - break - else: - sigma = sigma_new - v = v_new - -plt.show() diff --git a/first_edition_code/testgenfinitemc.py b/first_edition_code/testgenfinitemc.py deleted file mode 100644 index 25592ca..0000000 --- a/first_edition_code/testgenfinitemc.py +++ /dev/null @@ -1,19 +0,0 @@ -# Filename: testgenfinitemc.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 4.5 - -from genfinitemc import sample, MC # Import from listing 4.4 - -pH = ((0.971, 0.029, 0.000), - (0.145, 0.778, 0.077), - (0.000, 0.508, 0.492)) - -psi = (0.3, 0.4, 0.3) # Initial condition -h = MC(p=pH, X=sample(psi)) # Create an instance of class MC -T1 = h.sample_path(1000) # Series is Markov-(p, psi) - -psi2 = (0.8, 0.1, 0.1) # Alternative initial condition -h.X = sample(psi2) # Reset the current state -T2 = h.sample_path(1000) # Series is Markov-(p, psi2) - diff --git a/first_edition_code/testsrs.py b/first_edition_code/testsrs.py deleted file mode 100644 index ac9d88f..0000000 --- a/first_edition_code/testsrs.py +++ /dev/null @@ -1,18 +0,0 @@ -# Filename: testsrs.py -# Author: John Stachurski -# Date: December 2008 -# Corresponds to: Listing 6.2 - -from srs import SRS # Import from listing 6.1 -from random import lognormvariate - -alpha, sigma, s, delta = 0.5, 0.2, 0.5, 0.1 -# Define F(k, z) = s k^alpha z + (1 - delta) k -F = lambda k, z: s * (k**alpha) * z + (1 - delta) * k -lognorm = lambda: lognormvariate(0, sigma) - -solow_srs = SRS(F=F, phi=lognorm, X=1.0) -P1 = solow_srs.sample_path(500) # Generate path from X = 1 -solow_srs.X = 60 # Reset the current state -P2 = solow_srs.sample_path(500) # Generate path from X = 60 - From 41e263baa1efc84d78db2d9e69ff702d6dbf90ef Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Fri, 10 Sep 2021 21:00:42 -0700 Subject: [PATCH 08/24] fix_redundant_space --- code_book/ch4.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/code_book/ch4.md b/code_book/ch4.md index 4a4207b..a1f7f2b 100644 --- a/code_book/ch4.md +++ b/code_book/ch4.md @@ -81,7 +81,6 @@ And here's the code that generated figure 4.2. ```{code-cell} ipython3 - def draw_trajectory(x, y, ax, n=10): """ Draw the trajectory of length n starting from (x, y). @@ -145,7 +144,6 @@ As in the textbook, let's plot a trajectory starting from 0.11. ```{code-cell} ipython3 - q = DS(h=lambda x: 4 * x * (1 - x), x=0.11) t = q.trajectory(200) From 00b737440df9d1bd9acb4ddbf6c36f135ac0083a Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Fri, 10 Sep 2021 21:29:02 -0700 Subject: [PATCH 09/24] remove_redundant_rstring --- code_book/ch4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch4.md b/code_book/ch4.md index 4a4207b..cfbe50e 100644 --- a/code_book/ch4.md +++ b/code_book/ch4.md @@ -236,7 +236,7 @@ while r < 4: ax.plot([r] * len(t), t, 'k.', ms=0.4) r = r + 0.005 -ax.set_xlabel(r'$r$', fontsize=16) +ax.set_xlabel('$r$', fontsize=16) plt.show() ``` From 9d8c271d0f304968330fdbc0deb5e0422738bbc4 Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Fri, 10 Sep 2021 21:34:25 -0700 Subject: [PATCH 10/24] fix_typo --- code_book/ch4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch4.md b/code_book/ch4.md index 4a4207b..fdd1e35 100644 --- a/code_book/ch4.md +++ b/code_book/ch4.md @@ -314,7 +314,7 @@ ax.plot(X) plt.show() ``` -Here's a solution to exercises 4.23. +Here's a solution to exercise 4.23. ```{code-cell} ipython3 From c5e2fba495d3fa1fb6f36c339255738da621e84c Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Sat, 11 Sep 2021 09:08:40 -0700 Subject: [PATCH 11/24] reduce redundant space --- code_book/ch6.md | 1 - 1 file changed, 1 deletion(-) diff --git a/code_book/ch6.md b/code_book/ch6.md index a608abe..d04bd1d 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -26,7 +26,6 @@ from scipy.interpolate import interp1d from scipy.optimize import minimize_scalar, brentq from scipy.stats import beta - ``` ## First Steps From f25ec4cadf18dc14700b0cf8442832956cf5997a Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Sat, 11 Sep 2021 09:36:11 -0700 Subject: [PATCH 12/24] change parameter to be same aspdf --- code_book/ch6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch6.md b/code_book/ch6.md index a608abe..1435e44 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -79,7 +79,7 @@ capital. ```{code-cell} ipython3 @jit -def sim_from_marginal(t=10, init=1, sim_size=100_000, params=default_params): +def sim_from_marginal(t=10, init=1, sim_size=1000, params=default_params): k_draws = np.empty(sim_size) for i in range(sim_size): k = init From 64223b98ace9372b045b3bc81164296214843745 Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Sat, 11 Sep 2021 09:46:05 -0700 Subject: [PATCH 13/24] fix typo --- code_book/ch6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch6.md b/code_book/ch6.md index a608abe..feeb52f 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -211,7 +211,7 @@ plt.show() Our next task is to simulate from the "threshold exernalities" model. -The following code generates figures 6.5 and 6.6. +The following code generates figures 6.6 and 6.7. ```{code-cell} ipython3 From 1bbf82a0a1e85197619cd9cbd18ff896746368f6 Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Sat, 11 Sep 2021 10:22:01 -0700 Subject: [PATCH 14/24] [chapter6] fix error in ipynb --- code_book/ch6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch6.md b/code_book/ch6.md index a608abe..46ef752 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -405,7 +405,7 @@ marginal given a stochastic kernel and a set of draws from time $t+1$. def lae_factory(p, x_data): def f(y): - return np.mean(p(x_data, y)) + return np.mean(p(x_data, y)) return f From b5ce64884bc2961f30e5d43f5f0c5b4b9c0a8a41 Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Sat, 11 Sep 2021 10:29:26 -0700 Subject: [PATCH 15/24] [chapter6]fix typo about sigma --- code_book/ch6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch6.md b/code_book/ch6.md index a608abe..3a0eb33 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -800,7 +800,7 @@ def T_sigma(v, sigma, os): ``` To compute the policy value we iterate until convergence, starting -from some guess of $v_sigma$ represented by `v_guess`. +from some guess of $v_\sigma$ represented by `v_guess`. ```{code-cell} ipython3 def compute_policy_value(os, From d2eb665c93a9796d3c161fca71680df5c1bacd23 Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Sat, 11 Sep 2021 10:47:01 -0700 Subject: [PATCH 16/24] [chapter6]fix exercise number --- code_book/ch6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch6.md b/code_book/ch6.md index a608abe..310f709 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -947,7 +947,7 @@ plt.show() ``` -Our final task for this chapter is to solve exercise 6.27, which involves +Our final task for this chapter is to solve exercise 6.28, which involves computing the stationary density of the associated state process for quantities. From 73c476087c198a33bdb64cde6300f6401a2e97b8 Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Sat, 11 Sep 2021 11:00:03 -0700 Subject: [PATCH 17/24] fix root --- code_book/ch8.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch8.md b/code_book/ch8.md index 6539b18..2cac6c6 100644 --- a/code_book/ch8.md +++ b/code_book/ch8.md @@ -32,7 +32,7 @@ a, b = 0.8, 1.0 # parameters def phi(z): "Standard normal density." - return (1/(2 * np.pi)) * np.exp(-z**2/2) + return (1/np.sqrt(2 * np.pi)) * np.exp(-z**2/2) def p(x, y): return phi(y - a * x - b) From dcf234eb5607e4cbb2c86eef31adc43c5fe16b88 Mon Sep 17 00:00:00 2001 From: sayaikegawa Date: Sat, 11 Sep 2021 11:12:20 -0700 Subject: [PATCH 18/24] [chapter11 make parameter consistent with pdf --- code_book/ch11.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch11.md b/code_book/ch11.md index 5f93a42..0935688 100644 --- a/code_book/ch11.md +++ b/code_book/ch11.md @@ -120,7 +120,7 @@ in the state space over a long horizon, for different values of $\lambda$. ```{code-cell} ipython3 grid_size = 80 -lambdas = np.linspace(0.45, 0.65, grid_size) +lambdas = np.linspace(0.4, 0.6, grid_size) mc_size = 5000 prob_at_b = np.empty_like(lambdas) From 774576d4ebfcfa570da7214a32e499ccde8a1ec7 Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Sun, 12 Sep 2021 15:43:14 +1000 Subject: [PATCH 19/24] misc --- code_book/ch4.md | 44 ++++++++++++++++++++++---------------------- code_book/ch6.md | 2 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/code_book/ch4.md b/code_book/ch4.md index fc388d8..295263b 100644 --- a/code_book/ch4.md +++ b/code_book/ch4.md @@ -247,11 +247,11 @@ Our first task is to simulate time series from Hamilton's Markov chain ```{code-cell} ipython3 -pH = ((0.971, 0.029, 0.000), # Hamilton's kernel +p_H = ((0.971, 0.029, 0.000), # Hamilton's kernel (0.145, 0.778, 0.077), (0.000, 0.508, 0.492)) -pH = np.array(pH) # Convert to numpy array +p_H = np.array(p_H) # Convert to numpy array S = np.array((0, 1, 2)) ``` @@ -291,7 +291,7 @@ Let's plot a trajectory. ```{code-cell} ipython3 fig, ax = plt.subplots() -X = trajectory(0, pH, S, n=500) +X = trajectory(0, p_H, S, n=500) ax.plot(X) plt.show() @@ -304,7 +304,7 @@ JIT-compiled and very fast. ```{code-cell} ipython3 -mc = MarkovChain(pH, state_values=S) +mc = MarkovChain(p_H, state_values=S) X = mc.simulate(init=0, ts_length=500) fig, ax = plt.subplots() @@ -324,7 +324,7 @@ def compute_marginal(n=100_000, T=10): X = 2 # start in state SR for t in range(T): W = np.random.rand() - X = tau(W, S, pH[X, :]) + X = tau(W, S, p_H[X, :]) X_vals[i] = X return np.mean(X_vals == 0) @@ -346,7 +346,7 @@ def compute_marginal_2(n=100_000, T=10): X = 2 # start in state SR for t in range(T): W = np.random.rand() - X = tau(W, S, pH[X, :]) + X = tau(W, S, p_H[X, :]) if X == 0: counter += 1 @@ -364,7 +364,7 @@ psi = (1, 0, 0) # start in NG h = (1000, 0, -1000) # profits for t in range(T): - psi = psi @ pH + psi = psi @ p_H print(psi @ h) ``` @@ -375,7 +375,7 @@ Now let's see what happens when we start in severe recession. psi = (0, 0, 1) for t in range(T): - psi = psi @ pH + psi = psi @ p_H print(psi @ h) ``` @@ -395,7 +395,7 @@ for i in (0, 1, 2): psi = np.zeros(3) psi[i] = 1 for t in range(T): - psi = psi @ pH + psi = psi @ p_H print(f"Profits in state {i} at date {T} equals {psi @ h}") ``` @@ -412,7 +412,7 @@ T = 5 psi = (0.2, 0.2, 0.6) for t in range(T): - psi = psi @ pH + psi = psi @ p_H print(psi @ h) ``` @@ -427,7 +427,7 @@ def path_prob(p, psi, X): # X gives a time path return prob psi = np.array((0.2, 0.2, 0.6)) -prob = path_prob(pH, psi, (0, 1, 0)) +prob = path_prob(p_H, psi, (0, 1, 0)) print(prob) ``` @@ -441,7 +441,7 @@ for x0 in recession_states: for x1 in recession_states: for x2 in recession_states: path = x0, x1, x2 - counter += path_prob(pH, psi, path) + counter += path_prob(p_H, psi, path) print(counter) ``` @@ -452,7 +452,7 @@ Here's a solution to exercise 4.34. ```{code-cell} ipython3 counter = 0 m = 10_000 -mc = MarkovChain(pH) +mc = MarkovChain(p_H) for i in range(m): x0 = tau(np.random.rand(), S, psi) @@ -479,7 +479,7 @@ discount = rho Q = np.identity(3) for t in T_vals: - Q = Q @ pH + Q = Q @ p_H discount = discount * rho current_profits += discount * np.inner(psi, Q @ h) profits.append(current_profits) @@ -597,7 +597,7 @@ Now let's look at exercise 4.43. ```{code-cell} ipython3 -psi_star = compute_stationary(pH) +psi_star = compute_stationary(p_H) print(np.inner(psi_star, h)) ``` @@ -605,7 +605,7 @@ If we compute profits at $t=1000$, starting from a range of initial conditions, we get very similar results. ```{code-cell} ipython3 -pT = np.linalg.matrix_power(pH, 1000) +pT = np.linalg.matrix_power(p_H, 1000) psi_vecs = (1, 0, 0), (0, 1, 0), (0, 0, 1) for psi in psi_vecs: @@ -626,7 +626,7 @@ def compute_return_time(x, p, max_iter=100_000): t = 0 while t < max_iter: W = np.random.rand() - X = tau(W, S, pH[X, :]) + X = tau(W, S, p_H[X, :]) t += 1 if X == x: return t @@ -639,14 +639,14 @@ def compute_mean_return_time(x, p, n=100_000): return counter / n -[compute_mean_return_time(i, pH) for i in range(3)] +[compute_mean_return_time(i, p_H) for i in range(3)] ``` For comparison: ```{code-cell} ipython3 -psi_star = compute_stationary(pH) +psi_star = compute_stationary(p_H) 1/ psi_star ``` @@ -737,7 +737,7 @@ the stationary probability assigned to normal growth: ```{code-cell} ipython3 -psi_star = compute_stationary(pH) +psi_star = compute_stationary(p_H) psi_star[0] ``` @@ -747,7 +747,7 @@ follows. ```{code-cell} ipython3 T = 1_000_000 -mc = MarkovChain(pH) +mc = MarkovChain(p_H) X = mc.simulate(init=0, ts_length=T) np.mean(X == 0) ``` @@ -762,7 +762,7 @@ Previously we calculated steady state profits via ```{code-cell} ipython3 h = (1000, 0, -1000) -psi_star = compute_stationary(pH) +psi_star = compute_stationary(p_H) print(np.inner(psi_star, h)) ``` diff --git a/code_book/ch6.md b/code_book/ch6.md index de8cd75..0542b52 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -322,7 +322,7 @@ plt.show() ``` -Next we turn to exercise~6.8, which concerns the STAR model. +Next we turn to exercise~6.12, which concerns the STAR model. We will use a `jitclass`, which requires us to set up parameters. From 9990648bda62f50e89f05fd49908042dd4e5d897 Mon Sep 17 00:00:00 2001 From: mmcky Date: Tue, 8 Apr 2025 09:24:36 +1000 Subject: [PATCH 20/24] FIX: code errata reported by Diasuke Nakamura --- code_book/ch6.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code_book/ch6.md b/code_book/ch6.md index 0542b52..d11f03f 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -496,8 +496,8 @@ class AD: return a * b def p(self, x, y): - z = y / (self.s * self.A(x) * self.f(x)) - return self.phi(z) / z + z = self.s * self.A(x) * self.f(x) + return self.phi(y/z) / z ``` From c26ac64f7c7aee7bfb8b0829a69f8e2ff3b6c05b Mon Sep 17 00:00:00 2001 From: mmcky Date: Tue, 8 Apr 2025 10:43:28 +1000 Subject: [PATCH 21/24] update config.yml --- code_book/_config.yml | 47 ++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/code_book/_config.yml b/code_book/_config.yml index a6d9953..367159e 100644 --- a/code_book/_config.yml +++ b/code_book/_config.yml @@ -5,30 +5,31 @@ logo: logo.png sphinx: - config: - mathjax_config: - TeX: - Macros: - "Exp" : ["\\operatorname{Exp}"] - "Binomial" : ["\\operatorname{Binomial}"] - "Poisson" : ["\\operatorname{Poisson}"] - "BB" : ["\\mathbb{B}"] - "EE" : ["\\mathbb{E}"] - "PP" : ["\\mathbb{P}"] - "RR" : ["\\mathbb{R}"] - "NN" : ["\\mathbb{N}"] - "ZZ" : ["\\mathbb{Z}"] - "dD" : ["\\mathcal{D}"] - "fF" : ["\\mathcal{F}"] - "lL" : ["\\mathcal{L}"] - "linop" : ["\\mathcal{L}(\\mathbb{B})"] - "linopell" : ["\\mathcal{L}(\\ell_1)"] + config: + mathjax3_config: + tex: + macros: + "Exp" : ["\\operatorname{Exp}"] + "Binomial" : ["\\operatorname{Binomial}"] + "Poisson" : ["\\operatorname{Poisson}"] + "BB" : ["\\mathbb{B}"] + "EE" : ["\\mathbb{E}"] + "PP" : ["\\mathbb{P}"] + "RR" : ["\\mathbb{R}"] + "NN" : ["\\mathbb{N}"] + "ZZ" : ["\\mathbb{Z}"] + "dD" : ["\\mathcal{D}"] + "fF" : ["\\mathcal{F}"] + "lL" : ["\\mathcal{L}"] + "linop" : ["\\mathcal{L}(\\mathbb{B})"] + "linopell" : ["\\mathcal{L}(\\ell_1)"] + mathjax_path: https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js execute: - execute_notebooks: cache - timeout: -1 + execute_notebooks: cache + timeout: -1 latex: - latex_engine: "xelatex" - latex_documents: - targetname: book.tex + latex_engine: "xelatex" + latex_documents: + targetname: book.tex From c0e8b2a4077376eeeff1cd02d95374344c21a111 Mon Sep 17 00:00:00 2001 From: mmcky Date: Tue, 8 Apr 2025 10:45:10 +1000 Subject: [PATCH 22/24] remove string warning --- code_book/ch6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch6.md b/code_book/ch6.md index d11f03f..6acc7fd 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -522,7 +522,7 @@ for sigma, g in zip(sigmas, greys): color=g, lw=2, alpha=0.6, - label=f'$\sigma={sigma}$') + label=rf'$\sigma={sigma}$') ax.set_xlabel('$k$') ax.legend() From a6005850bdd050f51f74fdd5380d5985e9d656a1 Mon Sep 17 00:00:00 2001 From: mmcky Date: Tue, 8 Apr 2025 10:55:37 +1000 Subject: [PATCH 23/24] FIX: string syntax updates --- code_book/ch11.md | 6 +++--- code_book/ch6.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code_book/ch11.md b/code_book/ch11.md index 0935688..038f2a5 100644 --- a/code_book/ch11.md +++ b/code_book/ch11.md @@ -100,7 +100,7 @@ for lda, lt in zip(lambdas, line_type): def ecdf(y): return sum(obs <= y) / mc_size yvec = [ecdf(x) for x in xvec] - ax.plot(xvec, yvec, lt, label=f'$\\lambda={lda}$') + ax.plot(xvec, yvec, lt, label=rf'$\lambda={lda}$') ax.set_xlabel('capital') ax.legend() @@ -130,8 +130,8 @@ for i, lda in enumerate(lambdas): prob_at_b[i] = np.mean(obs == b) fig, ax = plt.subplots() -ax.plot(lambdas, prob_at_b, label='$\\psi^*(\{b\})$') -ax.set_xlabel('$\\lambda$') +ax.plot(lambdas, prob_at_b, label=r'$\psi^*({b})$') +ax.set_xlabel(r'$\lambda$') ax.legend() plt.show() diff --git a/code_book/ch6.md b/code_book/ch6.md index 6acc7fd..383409f 100644 --- a/code_book/ch6.md +++ b/code_book/ch6.md @@ -314,7 +314,7 @@ axes = axes.flatten() for delta, ax in zip(deltas, axes): f = kde_factory(Y, delta) ax.plot(x_grid, f(x_grid)) - ax.set_title(f"$\delta_n = {delta}$") + ax.set_title(rf"$\delta_n = {delta}$") plt.tight_layout() #plt.savefig("kdes.pdf") From f4d2797b79cc5397f5f458cbd70c8613816f89ee Mon Sep 17 00:00:00 2001 From: mmcky Date: Mon, 21 Apr 2025 15:51:21 +1000 Subject: [PATCH 24/24] FIX: timing for discount in ch4 --- code_book/ch4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code_book/ch4.md b/code_book/ch4.md index 295263b..6ff4e65 100644 --- a/code_book/ch4.md +++ b/code_book/ch4.md @@ -480,9 +480,9 @@ Q = np.identity(3) for t in T_vals: Q = Q @ p_H - discount = discount * rho current_profits += discount * np.inner(psi, Q @ h) profits.append(current_profits) + discount = discount * rho fig, ax = plt.subplots() ax.plot(profits, label='profits')