Codebase list python-geopandas / 26f5a95
New upstream version 0.9.0 Bas Couwenberg 3 years ago
195 changed file(s) with 16510 addition(s) and 9718 deletion(s). Raw diff Collapse all Expand all
0 ---
1
2 name: Bug Report
3 about: Create a bug report to help us improve geopandas
4 title: "BUG:"
5 labels: "bug, needs triage"
6
7 ---
8
9 - [ ] I have checked that this issue has not already been reported.
10
11 - [ ] I have confirmed this bug exists on the latest version of geopandas.
12
13 - [ ] (optional) I have confirmed this bug exists on the master branch of geopandas.
14
15 ---
16
17 **Note**: Please read [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) detailing how to provide the necessary information for us to reproduce your bug.
18
19 #### Code Sample, a copy-pastable example
20
21 ```python
22 # Your code here
23
24 ```
25
26 #### Problem description
27
28 [this should explain **why** the current behaviour is a problem and why the expected output is a better solution]
29
30 #### Expected Output
31
32 #### Output of ``geopandas.show_versions()``
33
34 <details>
35
36 [paste the output of ``geopandas.show_versions()`` here leaving a blank line after the details tag]
37
38 </details>
0 ---
1
2 name: Feature Request
3 about: Suggest an idea for geopandas
4 title: "ENH:"
5 labels: "enhancement"
6
7 ---
8
9 #### Is your feature request related to a problem?
10
11 [this should provide a description of what the problem is, e.g. "I wish I could use geopandas to do [...]"]
12
13 #### Describe the solution you'd like
14
15 [this should provide a description of the feature request, e.g. "`GeoDataFrame.foo` should get a new parameter `bar` that [...]", try to write a docstring for the desired feature]
16
17 #### API breaking implications
18
19 [this should provide a description of how this feature will affect the API]
20
21 #### Describe alternatives you've considered
22
23 [this should provide a description of any alternative solutions or features you've considered]
24
25 #### Additional context
26
27 [add any other context, code examples, or references to existing implementations about the feature request here]
28
29 ```python
30 # Your code here, if applicable
31
32 ```
33
0 ---
1
2 name: Installation Issue
3 about: Ask about installing geopandas
4 title: ""
5 labels: "installation"
6
7 ---
8
9 - [ ] I have read the [documentation on installation](https://geopandas.org/install.html) and followed the instructions provided.
10
11 - [ ] I have looked through [issues labeled "installation"](https://github.com/geopandas/geopandas/labels/installation) in the geopandas repo.
12
13 - If your issue is related to installation using the `conda-forge` channel, please open an issue in [geopandas-feedstock repository](https://github.com/conda-forge/geopandas-feedstock) instead.
14
15 ---
16
17 #### System information
18
19 [what operating system do you have and what package management system are you
20 using]
21
22 #### Environment details
23
24 <details>
25
26 [if using conda, paste the output of `conda info` and `conda list`; if using
27 pip, `pip freeze`]
28
29 </details>
30
0 ---
1
2 name: Submit Question
3 about: Ask a general question about geopandas
4 title: "QST:"
5 labels: "question"
6
7 ---
8
9 - [ ] I have searched the [geopandas] tag on [StackOverflow](https://stackoverflow.com/questions/tagged/geopandas) and [GIS StackExchange](https://gis.stackexchange.com/questions/tagged/geopandas) for similar questions.
10
11 - [ ] I have asked my usage related question on [StackOverflow](https://stackoverflow.com) or [GIS StackExhange](https://gis.stackexchange.com).
12
13 ---
14
15 #### Question about geopandas
16
17 **Note**: If you'd still like to submit a question, please read [this guide](
18 https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) detailing how to provide the necessary information for us to reproduce your question.
19
20 ```python
21 # Your code here, if applicable
22
23 ```
4343
4444 - name: Get Asset name
4545 run: |
46 export PKG=$(ls dist/)
46 export PKG=$(ls dist/ | grep tar)
4747 set -- $PKG
4848 echo "name=$1" >> $GITHUB_ENV
4949
0 name: Tests
1
2 on:
3 push:
4 branches: [master]
5 pull_request:
6 branches: [master]
7 schedule:
8 - cron: "0 0 * * *"
9
10 jobs:
11 Linting:
12 runs-on: ubuntu-latest
13
14 steps:
15 - uses: actions/checkout@v2
16 - uses: actions/setup-python@v2
17 - uses: pre-commit/action@v2.0.0
18
19 Test:
20 needs: Linting
21 name: ${{ matrix.os }}, ${{ matrix.env }}
22 runs-on: ${{ matrix.os }}
23 strategy:
24 matrix:
25 os: [ubuntu-latest]
26 postgis: [false]
27 dev: [false]
28 env:
29 - ci/envs/36-minimal.yaml
30 - ci/envs/38-no-optional-deps.yaml
31 - ci/envs/36-pd025.yaml
32 - ci/envs/37-latest-defaults.yaml
33 - ci/envs/37-latest-conda-forge.yaml
34 - ci/envs/38-latest-conda-forge.yaml
35 - ci/envs/39-latest-conda-forge.yaml
36 include:
37 - env: ci/envs/37-latest-conda-forge.yaml
38 os: macos-latest
39 postgis: false
40 dev: false
41 - env: ci/envs/38-latest-conda-forge.yaml
42 os: macos-latest
43 postgis: false
44 dev: false
45 - env: ci/envs/37-latest-conda-forge.yaml
46 os: windows-latest
47 postgis: false
48 dev: false
49 - env: ci/envs/38-latest-conda-forge.yaml
50 os: windows-latest
51 postgis: false
52 dev: false
53 - env: ci/envs/38-dev.yaml
54 os: ubuntu-latest
55 dev: true
56
57 steps:
58 - uses: actions/checkout@v2
59
60 - name: Setup Conda
61 uses: s-weigand/setup-conda@v1
62 with:
63 activate-conda: false
64
65 - name: Install Env
66 shell: bash
67 run: conda env create -f ${{ matrix.env }}
68
69 - name: Check and Log Environment
70 shell: bash
71 run: |
72 source activate test
73 python -V
74 python -c "import geopandas; geopandas.show_versions();"
75 conda info
76 # save conda list to file and print out
77 # so that we can do the HAS_PYGEOS check without calling conda again
78 conda list 2>&1 | tee conda.txt
79 if ( cat conda.txt | grep -q pygeos )
80 then
81 echo "Setting HAS_PYGEOS=1"
82 echo "HAS_PYGEOS=1" >> $GITHUB_ENV
83 else
84 echo "Setting HAS_PYGEOS=0"
85 echo "HAS_PYGEOS=0" >> $GITHUB_ENV
86 fi
87
88 - name: Test without PyGEOS
89 shell: bash
90 env:
91 USE_PYGEOS: 0
92 run: |
93 source activate test
94 pytest -v -r s -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/
95
96 - name: Test with PyGEOS
97 shell: bash
98 if: env.HAS_PYGEOS == 1
99 env:
100 USE_PYGEOS: 1
101 run: |
102 source activate test
103 pytest -v -r s -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/
104
105 - name: Test with PostGIS
106 shell: bash
107 if: contains(matrix.env, '38-latest-conda-forge.yaml') && contains(matrix.os, 'ubuntu')
108 env:
109 PGUSER: postgres
110 PGPASSWORD: postgres
111 PGHOST: "127.0.0.1"
112 run: |
113 source activate test
114 conda install postgis -c conda-forge
115 source ci/envs/setup_postgres.sh
116 pytest -v -r s --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/io/tests/test_sql.py | tee /dev/stderr | if grep SKIPPED >/dev/null;then echo "TESTS SKIPPED, FAILING" && exit 1;fi
117
118 - name: Test docstrings
119 shell: bash
120 if: contains(matrix.env, '38-latest-conda-forge.yaml') && contains(matrix.os, 'ubuntu')
121 env:
122 USE_PYGEOS: 1
123 run: |
124 source activate test
125 pytest -v --color=yes --doctest-only geopandas --ignore=geopandas/datasets
126
127 - uses: codecov/codecov-action@v1
3333 coverage.xml
3434 *.cover
3535 .hypothesis/
36 result_images
3637
3738 # Sphinx documentation
3839 doc/_build/
5859
5960 examples/nybb_*.zip
6061
61 doc/source/gallery
6262 doc/source/savefig
6363 doc/source/reference
64 doc/source/docs/reference/api/*.rst
6465
6566 geopandas.egg-info
6667 geopandas/version.py
6768
6869 .asv
70 doc/source/getting_started/my_file.geojson
0 files: 'geopandas\/'
01 repos:
12 - repo: https://github.com/python/black
2 rev: stable
3 rev: 20.8b1
34 hooks:
45 - id: black
5 language_version: python3.7
6 language_version: python3
67 - repo: https://gitlab.com/pycqa/flake8
7 rev: 3.7.7
8 rev: 3.8.3
89 hooks:
910 - id: flake8
1011 language: python_venv
+0
-69
.travis.yml less more
0 language: python
1
2 sudo: false
3
4 matrix:
5 include:
6 # One build with minimum versions of dependencies
7 - env: ENV_FILE="ci/travis/35-minimal.yaml"
8
9 # one build with no optional dependencies
10 - env: ENV_FILE="ci/travis/38-no-optional-deps.yaml"
11
12 # Python 3.6 test all supported Pandas versions
13 - env: ENV_FILE="ci/travis/36-pd023.yaml" PYGEOS=true
14 - env: ENV_FILE="ci/travis/36-pd024.yaml" PYGEOS=true
15
16 - env: ENV_FILE="ci/travis/37-latest-defaults.yaml" STYLE=true PYGEOS=true
17 - env: ENV_FILE="ci/travis/37-latest-conda-forge.yaml" PYGEOS=true
18
19 - env: ENV_FILE="ci/travis/38-latest-conda-forge.yaml" PYGEOS=true POSTGIS=true PGUSER=postgres PGPASSWORD=postgres
20
21 - env: ENV_FILE="ci/travis/37-dev.yaml" DEV=true PYGEOS=true
22
23 allow_failures:
24 - env: ENV_FILE="ci/travis/37-dev.yaml" DEV=true PYGEOS=true
25
26 before_install:
27 - chmod +x ci/travis/setup_postgres.sh
28
29 install:
30 # Install conda
31 - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
32 - bash miniconda.sh -b -p $HOME/miniconda
33 - export PATH="$HOME/miniconda/bin:$PATH"
34 - conda config --set always_yes yes --set changeps1 no
35 - conda update conda
36 - conda info
37
38 # free channel needed for older envs (< py37), see
39 # https://github.com/conda/conda/issues/8849
40 - conda config --set restore_free_channel true
41
42 # Install dependencies
43 - conda env create --file="${ENV_FILE}"
44 - source activate test
45 - if [ "$DEV" ]; then pip install git+https://github.com/pydata/pandas.git; fi
46 - if [ "$DEV" ]; then pip install git+https://github.com/matplotlib/matplotlib.git; fi
47 - if [ "$DEV" ]; then pip install git+https://github.com/Toblerity/Shapely.git; fi
48 - if [ "$STYLE" ]; then pip install black flake8; fi
49 - if [ "$POSTGIS" ]; then conda install postgis -c conda-forge; fi
50 - pip install -e .
51
52 # List environment
53 - conda list
54 - python -c "import geopandas; geopandas.show_versions();"
55
56 # Set-up database
57 - if [ "$POSTGIS" ]; then ci/travis/setup_postgres.sh; fi
58
59 script:
60 - echo "Testing without PyGEOS"
61 - USE_PYGEOS=0 pytest geopandas -v -r s --cov geopandas --cov-report term-missing
62 - if [ "$PYGEOS" ]; then echo "Testing with PyGEOS"; fi
63 - if [ "$PYGEOS" ]; then USE_PYGEOS=1 pytest geopandas -v -r s --cov-append --cov geopandas --cov-report term-missing; fi
64 - if [ "$STYLE" ]; then black --check geopandas; fi
65 - if [ "$STYLE" ]; then flake8 geopandas; fi
66
67 after_success:
68 - codecov
00 Changelog
11 =========
2
3 Version 0.9.0 (February 28, 2021)
4 ---------------------------------
5
6 Many documentation improvements and a restyled and restructured website with
7 a new logo (#1564, #1579, #1617, #1668, #1731, #1750, #1757, #1759).
8
9 New features and improvements:
10
11 - The `geopandas.read_file` function now accepts more general
12 file-like objects (e.g. `fsspec` open file objects). It will now also
13 automatically recognize zipped files (#1535).
14 - The `GeoDataFrame.plot()` method now provides access to the pandas plotting
15 functionality for the non-geometry columns, either using the `kind` keyword
16 or the accessor method (e.g. `gdf.plot(kind="bar")` or `gdf.plot.bar()`)
17 (#1465).
18 - New `from_wkt()`, `from_wkb()`, `to_wkt()`, `to_wkb()` methods for
19 GeoSeries to construct a GeoSeries from geometries in WKT or WKB
20 representation, or to convert a GeoSeries to a pandas Seriew with WKT or WKB
21 values (#1710).
22 - New `GeoSeries.z` attribute to access the z-coordinates of Point geometries
23 (similar to the existing `.x` and `.y` attributes) (#1773).
24 - The `to_crs()` method now handles missing values (#1618).
25 - Support for pandas' new `.attrs` functionality (#1658).
26 - The `dissolve()` method now allows dissolving by no column (`by=None`) to
27 create a union of all geometries (single-row GeoDataFrame) (#1568).
28 - New `estimate_utm_crs()` method on GeoSeries/GeoDataFrame to determine the
29 UTM CRS based on the bounds (#1646).
30 - `GeoDataFrame.from_dict()` now accepts `geometry` and `crs` keywords
31 (#1619).
32 - `GeoDataFrame.to_postgis()` and `geopandas.read_postgis()` now supports
33 both sqlalchemy engine and connection objects (#1638).
34 - The `GeoDataFrame.explode()` method now allows exploding based on a
35 non-geometry column, using the pandas implementation (#1720).
36 - Performance improvement in `GeoDataFrame/GeoSeries.explode()` when using
37 the PyGEOS backend (#1693).
38 - The binary operation and predicate methods (eg `intersection()`,
39 `intersects()`) have a new `align` keyword which allows optionally not
40 aligning on the index before performing the operation with `align=False`
41 (#1668).
42 - The `GeoDataFrame.dissolve()` method now supports all relevant keywords of
43 `groupby()`, i.e. the `level`, `sort`, `observed` and `dropna` keywords
44 (#1845).
45 - The `geopandas.overlay()` function now accepts `make_valid=False` to skip
46 the step to ensure the input geometries are valid using `buffer(0)` (#1802).
47 - The `GeoDataFrame.to_json()` method gained a `drop_id` keyword to
48 optionally not write the GeoDataFrame's index as the "id" field in the
49 resulting JSON (#1637).
50 - A new `aspect` keyword in the plotting methods to optionally allow retaining
51 the original aspect (#1512)
52 - A new `interval` keyword in the `legend_kwds` group of the `plot()` method
53 to control the appearance of the legend labels when using a classification
54 scheme (#1605).
55 - The spatial index of a GeoSeries (accessed with the `sindex` attribute) is
56 now stored on the underlying array. This ensures that the spatial index is
57 preserved in more operations where possible, and that multiple geometry
58 columns of a GeoDataFrame can each have a spatial index (#1444).
59 - Addition of a `has_sindex` attribute on the GeoSeries/GeoDataFrame to check
60 if a spatial index has already been initialized (#1627).
61 - The `geopandas.testing.assert_geoseries_equal()` and `assert_geodataframe_equal()`
62 testing utilities now have a `normalize` keyword (False by default) to
63 normalize geometries before comparing for equality (#1826). Those functions
64 now also give a more informative error message when failing (#1808).
65
66 Deprecations and compatibility notes:
67
68 - The `is_ring` attribute currently returns True for Polygons. In the future,
69 this will be False (#1631). In addition, start to check it for LineStrings
70 and LinearRings (instead of always returning False).
71 - The deprecated `objects` keyword in the `intersection()` method of the
72 `GeoDataFrame/GeoSeries.sindex` spatial index object has been removed
73 (#1444).
74
75 Bug fixes:
76
77 - Fix regression in the `plot()` method raising an error with empty
78 geometries (#1702, #1828).
79 - Fix `geopandas.overlay()` to preserve geometries of the correct type which
80 are nested withing a GeometryCollection as a result of the overlay
81 operation (#1582). In addition, a warning will now be raised if geometries
82 of different type are dropped from the result (#1554).
83 - Fix the repr of an empty GeoSeries to not show spurious warnings (#1673).
84 - Fix the `.crs` for empty GeoDataFrames (#1560).
85 - Fix `geopandas.clip` to preserve the correct geometry column name (#1566).
86 - Fix bug in `plot()` method when using `legend_kwds` with multiple subplots
87 (#1583)
88 - Fix spurious warning with `missing_kwds` keyword of the `plot()` method
89 when there are no areas with missing data (#1600).
90 - Fix the `plot()` method to correctly align values passed to the `column`
91 keyword as a pandas Series (#1670).
92 - Fix bug in plotting MultiPoints when passing values to determine the color
93 (#1694)
94 - The `rename_geometry()` method now raises a more informative error message
95 when a duplicate column name is used (#1602).
96 - Fix `explode()` method to preserve the CRS (#1655)
97 - Fix the `GeoSeries.apply()` method to again accept the `convert_dtype`
98 keyword to be consistent with pandas (#1636).
99 - Fix `GeoDataFrame.apply()` to preserve the CRS when possible (#1848).
100 - Fix bug in containment test as `geom in geoseries` (#1753).
101 - The `shift()` method of a GeoSeries/GeoDataFrame now preserves the CRS
102 (#1744).
103 - The PostGIS IO functionality now quotes table names to ensure it works with
104 case-sensitive names (#1825).
105 - Fix the `GeoSeries` constructor without passing data but only an index (#1798).
106
107 Notes on (optional) dependencies:
108
109 - GeoPandas 0.9.0 dropped support for Python 3.5. Further, the minimum
110 required versions are pandas 0.24, numpy 1.15 and shapely 1.6 and fiona 1.8.
111 - The `descartes` package is no longer required for plotting polygons. This
112 functionality is now included by default in GeoPandas itself, when
113 matplotlib is available (#1677).
114 - Fiona is now only imported when used in `read_file`/`to_file`. This means
115 you can now force geopandas to install without fiona installed (although it
116 is still a default requirement) (#1775).
117 - Compatibility with the upcoming Shapely 1.8 (#1659, #1662, #1819).
118
119
120 Version 0.8.2 (January 25, 2021)
121 --------------------------------
122
123 Small bug-fix release for compatibility with PyGEOS 0.9.
2124
3125
4126 Version 0.8.1 (July 15, 2020)
99 goals.
1010
1111 In general, GeoPandas follows the conventions of the pandas project
12 where applicable. Please read the [pandas contributing
13 guidelines](http://pandas.pydata.org/pandas-docs/stable/contributing.html).
12 where applicable. Please read the [contributing
13 guidelines](https://geopandas.readthedocs.io/en/latest/community/contributing.html).
1414
1515
1616 In particular, when submitting a pull request:
2121 as a guide).
2222 - All existing tests should pass. Please make sure that the test
2323 suite passes, both locally and on
24 [Travis CI](https://travis-ci.org/geopandas/geopandas). Status on
25 Travis will be visible on a pull request. If you want to enable
26 Travis CI on your own fork, please read the pandas guidelines link
27 above or the
28 [getting started docs](http://about.travis-ci.org/docs/user/getting-started/).
24 [GitHub Actions](https://github.com/geopandas/geopandas/actions). Status on
25 GHA will be visible on a pull request. GHA are automatically enabled
26 on your own fork as well. To trigger a check, make a PR to your own fork.
2927
3028 - New functionality should include tests. Please write reasonable
3129 tests for your code and make sure that they pass on your pull request.
4038 Style
4139 -----
4240
43 - GeoPandas supports Python 3.5+ only. The last version of GeoPandas
41 - GeoPandas supports Python 3.6+ only. The last version of GeoPandas
4442 supporting Python 2 is 0.6.
4543
4644 - GeoPandas follows [the PEP 8
0 GeoPandas [![build status](https://secure.travis-ci.org/geopandas/geopandas.png?branch=master)](https://travis-ci.org/geopandas/geopandas) [![Coverage Status](https://codecov.io/gh/geopandas/geopandas/branch/master/graph/badge.svg)](https://codecov.io/gh/geopandas/geopandas) [![Join the chat at https://gitter.im/geopandas/geopandas](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/geopandas/geopandas?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/geopandas/geopandas/master) [![DOI](https://zenodo.org/badge/11002815.svg)](https://zenodo.org/badge/latestdoi/11002815)
0 GeoPandas [![Actions Status](https://github.com/geopandas/geopandas/workflows/Tests/badge.svg)](https://github.com/geopandas/geopandas/actions?query=workflow%3ATests) [![Coverage Status](https://codecov.io/gh/geopandas/geopandas/branch/master/graph/badge.svg)](https://codecov.io/gh/geopandas/geopandas) [![Join the chat at https://gitter.im/geopandas/geopandas](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/geopandas/geopandas?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/geopandas/geopandas/master) [![DOI](https://zenodo.org/badge/11002815.svg)](https://zenodo.org/badge/latestdoi/11002815)
11 =========
22
33 Python tools for geographic data
3535 - ``fiona``
3636 - ``pyproj``
3737
38 Further, ``descartes`` and ``matplotlib`` are optional dependencies, required
38 Further, ``matplotlib`` is an optional dependency, required
3939 for plotting, and [``rtree``](https://github.com/Toblerity/rtree) is an optional
4040 dependency, required for spatial joins. ``rtree`` requires the C library [``libspatialindex``](https://github.com/libspatialindex/libspatialindex).
4141
6666 2 POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0))
6767 dtype: geometry
6868
69 ![Example 1](examples/test.png)
69 ![Example 1](doc/source/gallery/test.png)
7070
7171 Some geographic operations return normal pandas object. The `area` property of a `GeoSeries` will return a `pandas.Series` containing the area of each item in the `GeoSeries`:
7272
8484 2 POLYGON ((1.5 0, 1.5 1, 1.502407636663901 1.04...
8585 dtype: geometry
8686
87 ![Example 2](examples/test_buffer.png)
87 ![Example 2](doc/source/gallery/test_buffer.png)
8888
89 GeoPandas objects also know how to plot themselves. GeoPandas uses [descartes](https://pypi.python.org/pypi/descartes) to generate a [matplotlib](http://matplotlib.org) plot. To generate a plot of our GeoSeries, use:
89 GeoPandas objects also know how to plot themselves. GeoPandas uses
90 [matplotlib](http://matplotlib.org) for plotting. To generate a plot of our
91 GeoSeries, use:
9092
9193 >>> g.plot()
9294
98100 >>> boros.sort_index(inplace=True)
99101 >>> boros
100102 BoroName Shape_Leng Shape_Area \
101 BoroCode
102 1 Manhattan 359299.096471 6.364715e+08
103 2 Bronx 464392.991824 1.186925e+09
104 3 Brooklyn 741080.523166 1.937479e+09
105 4 Queens 896344.047763 3.045213e+09
106 5 Staten Island 330470.010332 1.623820e+09
107
108 geometry
109 BoroCode
110 1 MULTIPOLYGON (((981219.0557861328 188655.31579...
111 2 MULTIPOLYGON (((1012821.805786133 229228.26458...
112 3 MULTIPOLYGON (((1021176.479003906 151374.79699...
113 4 MULTIPOLYGON (((1029606.076599121 156073.81420...
114 5 MULTIPOLYGON (((970217.0223999023 145643.33221...
103 BoroCode
104 1 Manhattan 359299.096471 6.364715e+08
105 2 Bronx 464392.991824 1.186925e+09
106 3 Brooklyn 741080.523166 1.937479e+09
107 4 Queens 896344.047763 3.045213e+09
108 5 Staten Island 330470.010332 1.623820e+09
115109
116 ![New York City boroughs](examples/nyc.png)
110 geometry
111 BoroCode
112 1 MULTIPOLYGON (((981219.0557861328 188655.31579...
113 2 MULTIPOLYGON (((1012821.805786133 229228.26458...
114 3 MULTIPOLYGON (((1021176.479003906 151374.79699...
115 4 MULTIPOLYGON (((1029606.076599121 156073.81420...
116 5 MULTIPOLYGON (((970217.0223999023 145643.33221...
117
118 ![New York City boroughs](doc/source/gallery/nyc.png)
117119
118120 >>> boros['geometry'].convex_hull
119121 BoroCode
124126 5 POLYGON ((915517.6877458114 120121.8812543372,...
125127 dtype: geometry
126128
127 ![Convex hulls of New York City boroughs](examples/nyc_hull.png)
129 ![Convex hulls of New York City boroughs](doc/source/gallery/nyc_hull.png)
+0
-46
appveyor.yml less more
0 # With infos from
1 # http://tjelvarolsson.com/blog/how-to-continuously-test-your-python-code-on-windows-using-appveyor/
2 # https://packaging.python.org/en/latest/appveyor/
3 # https://github.com/rmcgibbo/python-appveyor-conda-example
4
5 environment:
6 matrix:
7 - PYTHON_VERSION: "3.7"
8 MINICONDA: C:\Miniconda37-x64
9 ENV_FILE: "ci/travis/37-latest-conda-forge.yaml"
10
11 - PYTHON_VERSION: "3.8"
12 MINICONDA: C:\Miniconda37-x64
13 ENV_FILE: "ci/travis/38-latest-conda-forge.yaml"
14
15 # all our python builds have to happen in tests_script...
16 build: false
17
18 init:
19 - "ECHO %PYTHON_VERSION% %MINICONDA%"
20
21 install:
22 # cancel older builds for the same PR
23 - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
24 https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
25 Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
26 throw "There are newer queued builds for this pull request, failing early." }
27
28 # set up environment
29 - CALL "%MINICONDA%\\Scripts\\activate.bat"
30 - conda config --set always_yes yes --set show_channel_urls true --set changeps1 no
31 - conda update conda
32 # this is basically equivalent to what conda init does. It changes the "conda" to
33 # be a .bat script that sets appropriate PATH entries before conda hits problems.
34 # This PATH modification only works with conda 4.6+, but it won't hurt other versions.
35 - set "PATH=%MINICONDA%\condabin:%PATH%"
36 - conda info -a
37 - conda config --add channels conda-forge
38 - conda config --set channel_priority strict
39 - conda env create --file="${ENV_FILE}"
40
41 test_script:
42 # this uses condabin/conda.bat because of our PATH modification above
43 - conda activate test
44 - conda list
45 - pytest geopandas -v
11
22 import numpy as np
33 from geopandas import GeoSeries
4 from shapely.geometry import Point, LineString, Polygon
4 from shapely.geometry import Point, Polygon, MultiPolygon
55
66
77 def with_attributes(**attrs):
2424 triangles3 = GeoSeries([Polygon([(random.random(), random.random())
2525 for _ in range(3)])
2626 for _ in range(10000)])
27 triangles4 = GeoSeries([
28 MultiPolygon([
29 Polygon([(random.random(), random.random()) for _ in range(3)])
30 ]) for _ in range(10000)])
2731 triangle = Polygon([(random.random(), random.random())
2832 for _ in range(3)])
2933 self.triangles, self.triangles2 = triangles, triangles2
3034 self.triangles_big = triangles3
35 self.multi_triangles = triangles4
3136 self.triangle = triangle
3237
3338 @with_attributes(param_names=['op'],
97102 def time_buffer(self, *args):
98103 self.points.buffer(2)
99104
105 def time_explode(self, *args):
106 self.multi_triangles.explode()
107
100108
101109 # TODO
102 # project, interpolate, affine_transform, translate, rotate, scale, skew, explode
110 # project, interpolate, affine_transform, translate, rotate, scale, skew
103111 # cx indexer
0 from geopandas import read_file, datasets
1 from geopandas.sindex import VALID_QUERY_PREDICATES
0 from shapely.geometry import Point
1
2 from geopandas import read_file, datasets, GeoSeries
3
4
5 # Derive list of valid query predicates based on underlying index backend;
6 # we have to create a non-empty instance of the index to get these
7 index = GeoSeries([Point(0, 0)]).sindex
8 predicates = sorted(p for p in index.valid_query_predicates if p is not None)
9
10 geom_types = ("mixed", "points", "polygons")
211
312
413 def generate_test_df():
1524 "points": points[points.is_valid],
1625 "polygons": polygons[polygons.is_valid],
1726 }
27 # ensure index is pre-generated
28 for data_type in data.keys():
29 data[data_type].sindex.query(data[data_type].geometry.values.data[0])
1830 return data
1931
2032
21 class Bench:
33 class BenchIntersection:
2234
23 param_names = ["tree_geom_type"]
24 params = [["mixed", "points", "polygons"]]
35 param_names = ["input_geom_type", "tree_geom_type"]
36 params = [
37 geom_types,
38 geom_types,
39 ]
2540
2641 def setup(self, *args):
2742 self.data = generate_test_df()
2843 # cache bounds so that bound creation is not counted in benchmarks
29 self.bounds = [g.bounds for g in self.data["mixed"].geometry]
44 self.bounds = {
45 data_type: [g.bounds for g in self.data[data_type].geometry]
46 for data_type in self.data.keys()
47 }
48
49 def time_intersects(self, input_geom_type, tree_geom_type):
50 tree = self.data[tree_geom_type].sindex
51 for bounds in self.bounds[input_geom_type]:
52 tree.intersection(bounds)
53
54
55 class BenchIndexCreation:
56
57 param_names = ["tree_geom_type"]
58 params = [
59 geom_types,
60 ]
61
62 def setup(self, *args):
63 self.data = generate_test_df()
3064
3165 def time_index_creation(self, tree_geom_type):
3266 """Time creation of spatial index.
3367
34 Note: pygeos will only create the index once; this benchmark
35 is not intended to be used to compare rtree and pygeos.
68 Note: requires running a single query to ensure that
69 lazy-building indexes are actually built.
3670 """
37 self.data[tree_geom_type]._invalidate_sindex()
38 self.data[tree_geom_type]._generate_sindex()
39
40 def time_intersects(self, tree_geom_type):
41 for bounds in self.bounds:
42 self.data[tree_geom_type].sindex.intersection(bounds)
43
44 def time_intersects_objects(self, tree_geom_type):
45 for bounds in self.bounds:
46 self.data[tree_geom_type].sindex.intersection(bounds, objects=True)
71 # Note: the GeoDataFram._sindex_generated attribute will
72 # be removed by GH#1444 but is kept here (in the benchmarks
73 # so that we can compare pre GH#1444 to post GH#1444 if needed
74 self.data[tree_geom_type]._sindex_generated = None
75 self.data[tree_geom_type].geometry.values._sindex = None
76 tree = self.data[tree_geom_type].sindex
77 # also do a single query to ensure the index is actually
78 # generated and used
79 tree.query(
80 self.data[tree_geom_type].geometry.values.data[0]
81 )
4782
4883
4984 class BenchQuery:
5085
5186 param_names = ["predicate", "input_geom_type", "tree_geom_type"]
5287 params = [
53 [*VALID_QUERY_PREDICATES],
54 ["mixed", "points", "polygons"],
55 ["mixed", "points", "polygons"],
88 predicates,
89 geom_types,
90 geom_types,
5691 ]
5792
5893 def setup(self, *args):
6095
6196 def time_query_bulk(self, predicate, input_geom_type, tree_geom_type):
6297 self.data[tree_geom_type].sindex.query_bulk(
63 self.data[input_geom_type].geometry, predicate=predicate
98 self.data[input_geom_type].geometry.values.data,
99 predicate=predicate,
64100 )
65101
66102 def time_query(self, predicate, input_geom_type, tree_geom_type):
67 for geo in self.data[input_geom_type].geometry.sample(10, random_state=0):
68 self.data[tree_geom_type].sindex.query(geo, predicate=predicate)
103 tree = self.data[tree_geom_type].sindex
104 for geom in self.data[input_geom_type].geometry.values.data:
105 tree.query(
106 geom,
107 predicate=predicate
108 )
0 name: test
1 channels:
2 - defaults
3 - conda-forge
4 dependencies:
5 - python=3.6
6 # required
7 - numpy=1.15
8 - pandas==0.24
9 - shapely=1.6
10 - fiona=1.8.13
11 #- pyproj
12 # testing
13 - pytest
14 - pytest-cov
15 - pytest-xdist
16 - fsspec
17 # optional
18 - rtree
19 - matplotlib
20 - matplotlib=2.2
21 - mapclassify>=2.2.0
22 - geopy
23 - SQLalchemy
24 - libspatialite
25 - pyarrow
26 - pip:
27 - pyproj==2.2.2
0 name: test
1 channels:
2 - defaults
3 dependencies:
4 - python=3.6
5 # required
6 - pandas=0.25
7 - shapely
8 - fiona
9 #- pyproj
10 - geos
11 # testing
12 - pytest
13 - pytest-cov
14 - pytest-xdist
15 - fsspec
16 # optional
17 - rtree
18 - matplotlib
19 #- geopy
20 - SQLalchemy
21 - libspatialite
22 - pyarrow
23 - pip:
24 - pyproj==2.3.1
25 - geopy
26 - mapclassify==2.2.0
0 name: test
1 channels:
2 - conda-forge
3 dependencies:
4 - python=3.7
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 - pygeos
11 # testing
12 - pytest
13 - pytest-cov
14 - pytest-xdist
15 - fsspec
16 # optional
17 - rtree
18 - matplotlib
19 - mapclassify
20 - scipy
21 - geopy
22 - SQLalchemy
23 - libspatialite
24 - pyarrow
25
0 name: test
1 channels:
2 - defaults
3 dependencies:
4 - python=3.7.3
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 - geos
11 # testing
12 - pytest
13 - pytest-cov
14 - pytest-xdist
15 - fsspec
16 # optional
17 - rtree
18 - matplotlib
19 #- geopy
20 - SQLalchemy
21 - libspatialite
22 - pyarrow
23 - pip:
24 - geopy
25 - mapclassify
0 name: test
1 channels:
2 - conda-forge
3 dependencies:
4 - python=3.8
5 - cython
6 # required
7 - fiona
8 - pyproj
9 - geos
10 # testing
11 - pytest
12 - pytest-cov
13 - pytest-xdist
14 - fsspec
15 # optional
16 - rtree
17 #- geopy
18 - SQLalchemy
19 - libspatialite
20 - pyarrow
21 - pip:
22 - geopy
23 - mapclassify>=2.2.0
24 # dev versions of packages
25 - git+https://github.com/numpy/numpy.git@master
26 - git+https://github.com/pydata/pandas.git@master
27 - git+https://github.com/matplotlib/matplotlib.git@master
28 - git+https://github.com/Toblerity/Shapely.git@master
29 - git+https://github.com/pygeos/pygeos.git@master
0 name: test
1 channels:
2 - conda-forge
3 dependencies:
4 - python=3.8
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 - pygeos
11 # testing
12 - pytest
13 - pytest-cov
14 - pytest-xdist
15 - fsspec
16 # optional
17 - rtree
18 - matplotlib
19 - mapclassify
20 - scipy
21 - geopy
22 # installed in tests.yaml, because not available on windows
23 # - postgis
24 - SQLalchemy
25 - psycopg2
26 - libspatialite
27 - geoalchemy2
28 - pyarrow
29 # doctest testing
30 - pytest-doctestplus
0 name: test
1 channels:
2 - conda-forge
3 dependencies:
4 - python=3.8
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 # testing
11 - pytest
12 - pytest-cov
13 - pytest-xdist
0 name: test
1 channels:
2 - conda-forge
3 dependencies:
4 - python=3.9
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 - pygeos
11 # testing
12 - pytest
13 - pytest-cov
14 - pytest-xdist
15 - fsspec
16 # optional
17 - rtree
18 - matplotlib
19 - descartes
20 - mapclassify
21 - scipy
22 - geopy
23 # installed in tests.yaml, because not available on windows
24 # - postgis
25 - SQLalchemy
26 - psycopg2
27 - libspatialite
28 - geoalchemy2
29 - pyarrow
30 # doctest testing
31 - pytest-doctestplus
0 #!/bin/bash -e
1
2 echo "Setting up Postgresql"
3
4 mkdir -p ${HOME}/var
5 rm -rf ${HOME}/var/db
6
7 pg_ctl initdb -D ${HOME}/var/db
8 pg_ctl start -D ${HOME}/var/db
9
10 echo -n 'waiting for postgres'
11 while [ ! -e /tmp/.s.PGSQL.5432 ]; do
12 sleep 1
13 echo -n '.'
14 done
15
16 createuser -U ${USER} -s postgres
17 createdb --owner=postgres test_geopandas
18 psql -d test_geopandas -q -c "CREATE EXTENSION postgis"
19
20 echo "Done setting up Postgresql"
+0
-28
ci/travis/35-minimal.yaml less more
0 name: test
1 channels:
2 - defaults
3 - conda-forge
4 dependencies:
5 - python=3.5
6 # required
7 - numpy=1.12
8 - pandas==0.23.4
9 - shapely=1.5
10 - fiona=1.7
11 #- pyproj
12 # testing
13 - pytest
14 - pytest-cov
15 - codecov
16 # optional
17 - rtree
18 - matplotlib
19 - descartes
20 - matplotlib=2.0
21 - mapclassify>=2.2.0
22 - geopy
23 - SQLalchemy
24 - libspatialite
25 - pyarrow
26 - pip:
27 - pyproj==2.2.2
+0
-31
ci/travis/36-pd023.yaml less more
0 name: test
1 channels:
2 - defaults
3 dependencies:
4 - python=3.6
5 - pip
6 # required
7 - pandas==0.23.4
8 - nomkl
9 - shapely
10 - gdal=2.3
11 - fiona
12 #- pyproj
13 - geos
14 # testing
15 - pytest
16 - pytest-cov
17 #- codecov
18 # optional
19 - rtree
20 - matplotlib=2
21 - descartes
22 #- geopy
23 - SQLalchemy
24 - libspatialite
25 - pip:
26 - pyproj==2.3.1
27 - geopy
28 - codecov
29 - mapclassify>=2.2.0
30 - git+https://github.com/pygeos/pygeos.git
+0
-29
ci/travis/36-pd024.yaml less more
0 name: test
1 channels:
2 - defaults
3 dependencies:
4 - python=3.6
5 # required
6 - pandas=0.24
7 - shapely
8 - fiona=1.7
9 #- pyproj
10 - geos
11 # testing
12 - pytest
13 - pytest-cov
14 #- codecov
15 # optional
16 - rtree
17 - matplotlib==2.0.2
18 - descartes
19 #- geopy
20 - SQLalchemy
21 - libspatialite
22 - pyarrow
23 - pip:
24 - pyproj
25 - codecov
26 - geopy
27 - mapclassify>=2.2.0
28 - git+https://github.com/pygeos/pygeos.git
+0
-29
ci/travis/37-dev.yaml less more
0 name: test
1 channels:
2 - defaults
3 dependencies:
4 - python=3.7.3
5 - cython
6 # required
7 - pandas
8 - shapely
9 - fiona
10 - pyproj
11 - geos
12 # testing
13 - pytest
14 - pytest-cov
15 #- codecov
16 # optional
17 - rtree
18 - matplotlib
19 - descartes
20 #- geopy
21 - SQLalchemy
22 - libspatialite
23 - pyarrow
24 - pip:
25 - codecov
26 - geopy
27 - mapclassify>=2.2.0
28 - git+https://github.com/pygeos/pygeos.git
+0
-24
ci/travis/37-latest-conda-forge.yaml less more
0 name: test
1 channels:
2 - conda-forge
3 dependencies:
4 - python=3.7
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 - pygeos
11 # testing
12 - pytest
13 - pytest-cov
14 - codecov
15 # optional
16 - rtree
17 - matplotlib
18 - descartes
19 - mapclassify
20 - geopy
21 - SQLalchemy
22 - libspatialite
23 - pyarrow
+0
-28
ci/travis/37-latest-defaults.yaml less more
0 name: test
1 channels:
2 - defaults
3 dependencies:
4 - python=3.7.3
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 - geos
11 # testing
12 - pytest
13 - pytest-cov
14 #- codecov
15 # optional
16 - rtree
17 - matplotlib
18 - descartes
19 #- geopy
20 - SQLalchemy
21 - libspatialite
22 - pyarrow
23 - pip:
24 - codecov
25 - geopy
26 - mapclassify
27 - git+https://github.com/pygeos/pygeos.git
+0
-28
ci/travis/38-latest-conda-forge.yaml less more
0 name: test
1 channels:
2 - conda-forge
3 dependencies:
4 - python=3.8
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 - pygeos
11 # testing
12 - pytest
13 - pytest-cov
14 - codecov
15 # optional
16 - rtree
17 - matplotlib
18 - descartes
19 - mapclassify
20 - geopy
21 # installed in travis.yml, because not available on windows
22 # - postgis
23 - SQLalchemy
24 - psycopg2
25 - libspatialite
26 - geoalchemy2
27 - pyarrow
+0
-14
ci/travis/38-no-optional-deps.yaml less more
0 name: test
1 channels:
2 - conda-forge
3 dependencies:
4 - python=3.8
5 # required
6 - pandas
7 - shapely
8 - fiona
9 - pyproj
10 # testing
11 - pytest
12 - pytest-cov
13 - codecov
+0
-21
ci/travis/setup_postgres.sh less more
0 #!/bin/bash -e
1
2 echo "Setting up Postgresql"
3
4 mkdir -p ${HOME}/var
5 rm -rf ${HOME}/var/db
6
7 pg_ctl initdb -D ${HOME}/var/db
8 pg_ctl start -D ${HOME}/var/db
9
10 echo -n 'waiting for postgres'
11 while [ ! -e /tmp/.s.PGSQL.5432 ]; do
12 sleep 1
13 echo -n '.'
14 done
15
16 createuser -U travis -s postgres
17 createdb --owner=postgres test_geopandas
18 psql -d test_geopandas -q -c "CREATE EXTENSION postgis"
19
20 echo "Done setting up Postgresql"
0 coverage:
1 status:
2 project:
3 default:
4 target: 95% # the required coverage value
5 threshold: 0.2% # the leniency in hitting the target
4040 clean:
4141 -rm -rf $(BUILDDIR)/*
4242 -rm -rf source/reference/*
43 -rm -rf source/gallery/*
4443
4544 html:
4645 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
00 name: geopandas_docs
11 channels:
2 - conda-forge
2 - conda-forge
33 dependencies:
4 - python=3.7
5 - pandas=1.0.1
6 - shapely=1.7.0
7 - fiona=1.8.13
8 - pyproj=2.4.2.post1
9 - rtree=0.9.4
10 - geopy=1.21.0
11 - matplotlib=3.1.3
12 - descartes=1.1.0
13 - mapclassify=2.2.0
14 - sphinx=2.4.1
15 - sphinx_rtd_theme=0.4.3
16 - numpydoc=0.9.2
17 - recommonmark==0.6.0
18 - ipython=7.12.0
19 - pillow=7.0.0
20 - mock=3.0.5
21 - cartopy=0.17.0
22 - contextily=1.0rc2
23 - rasterio=1.1.1
24 - geoplot=0.4.0
25 # 0.5.0 has a bug (https://github.com/sphinx-gallery/sphinx-gallery/issues/568)
26 - sphinx-gallery=0.4.0
27 - jinja2=2.11.1
28 - doc2dash
29 # specify additional dependencies to reduce solving for conda
30 - gdal=3.0.4
31 - libgdal=3.0.4
32 - proj=6.3.0
33 - geos=3.8.0
4 - python=3.9.1
5 - pandas=1.2.2
6 - shapely=1.7.1
7 - fiona=1.8.18
8 - pyproj=3.0.0.post1
9 - rtree=0.9.7
10 - geopy=2.1.0
11 - matplotlib=3.3.4
12 - mapclassify=2.4.2
13 - sphinx=3.5.1
14 - pydata-sphinx-theme=0.4.3
15 - numpydoc=1.1.0
16 - ipython=7.20.0
17 - pillow=8.1.0
18 - mock=4.0.3
19 - cartopy=0.18.0
20 - pyepsg=0.4.0
21 - contextily=1.1.0
22 - rasterio=1.2.0
23 - geoplot=0.4.1
24 - sphinx-gallery=0.8.2
25 - jinja2=2.11.3
26 - doc2dash=2.3.0
27 # specify additional dependencies to reduce solving for conda
28 - gdal=3.1.4
29 - libgdal=3.1.4
30 - proj=7.2.0
31 - geos=3.9.0
32 - nbsphinx=0.8.1
33 - jupyter_client=6.1.11
34 - ipykernel=5.4.3
35 - myst-parser=0.13.5
36 - folium=0.12.0
37 - libpysal=4.4.0
38 - pygeos=0.9
39 - pip
40 - pip:
41 - sphinx-toggleprompt
0 <svg xmlns="http://www.w3.org/2000/svg" width="105.44mm" height="35.61mm" viewBox="0 0 298.88 100.95"><line x1="120.15" y1="48.9" x2="162.49" y2="48.9" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="161.03 53.89 169.67 48.9 161.03 43.91 161.03 53.89" style="fill:#1d1d1b"/><circle cx="45.9" cy="48.9" r="34.98" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><circle cx="80.88" cy="48.9" r="34.98" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><g style="opacity:0.8"><circle cx="214.68" cy="48.9" r="34.98" style="fill:none;stroke:#fec905;stroke-miterlimit:10;stroke-dasharray:1.9972946643829346,1.9972946643829346"/></g><g style="opacity:0.8"><circle cx="249.65" cy="48.9" r="34.98" style="fill:none;stroke:#fec905;stroke-miterlimit:10;stroke-dasharray:1.9972946643829346,1.9972946643829346"/></g><path d="M214.68,48.9a35,35,0,0,1,17.48-30.29,35,35,0,1,0,0,60.57A34.93,34.93,0,0,1,214.68,48.9Z" style="fill:#fec905;opacity:0.8"/></svg>
0 <svg xmlns="http://www.w3.org/2000/svg" width="105.44mm" height="35.61mm" viewBox="0 0 298.88 100.95"><g style="opacity:0.8"><circle cx="214.68" cy="51.28" r="34.98" transform="matrix(0.94, -0.33, 0.33, 0.94, -4.87, 73.95)" style="fill:none;stroke:#fec905;stroke-miterlimit:10;stroke-dasharray:1.9972946643829346,1.9972946643829346"/></g><g style="opacity:0.8"><circle cx="249.65" cy="51.28" r="34.98" transform="translate(74.78 236.69) rotate(-58.28)" style="fill:none;stroke:#fec905;stroke-miterlimit:10;stroke-dasharray:1.9972946643829346,1.9972946643829346"/></g><line x1="120.15" y1="51.28" x2="162.49" y2="51.28" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="161.03 56.27 169.67 51.28 161.03 46.3 161.03 56.27" style="fill:#1d1d1b"/><circle cx="45.9" cy="51.28" r="34.98" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><circle cx="80.88" cy="51.28" r="34.98" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><ellipse cx="232.16" cy="51.28" rx="17.49" ry="30.29" style="fill:#fec905;opacity:0.8"/></svg>
0 <svg xmlns="http://www.w3.org/2000/svg" width="105.44mm" height="35.61mm" viewBox="0 0 298.88 100.95"><g style="opacity:0.8"><circle cx="214.68" cy="51.28" r="34.98" transform="matrix(0.94, -0.33, 0.33, 0.94, -4.87, 73.95)" style="fill:none;stroke:#fec905;stroke-miterlimit:10;stroke-dasharray:1.9972946643829346,1.9972946643829346"/></g><g style="opacity:0.8"><circle cx="249.65" cy="51.28" r="34.98" transform="translate(74.78 236.69) rotate(-58.28)" style="fill:none;stroke:#fec905;stroke-miterlimit:10;stroke-dasharray:1.9972946643829346,1.9972946643829346"/></g><line x1="120.15" y1="51.28" x2="162.49" y2="51.28" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="161.03 56.27 169.67 51.28 161.03 46.3 161.03 56.27" style="fill:#1d1d1b"/><circle cx="45.9" cy="51.28" r="34.98" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><circle cx="80.88" cy="51.28" r="34.98" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><g style="opacity:0.8"><path d="M214.68,51.28A35,35,0,0,1,232.16,21a35,35,0,1,0,0,60.57A35,35,0,0,1,214.68,51.28Z" style="fill:#fec905"/><path d="M249.65,16.31A34.81,34.81,0,0,0,232.16,21a35,35,0,0,1,0,60.57,35,35,0,1,0,17.49-65.26Z" style="fill:#fec905"/></g></svg>
0 <svg xmlns="http://www.w3.org/2000/svg" width="105.44mm" height="35.61mm" viewBox="0 0 298.88 100.95"><g style="opacity:0.8"><circle cx="214.68" cy="50.49" r="34.98" transform="matrix(0.94, -0.33, 0.33, 0.94, -4.61, 73.91)" style="fill:none;stroke:#fec905;stroke-miterlimit:10;stroke-dasharray:1.9972946643829346,1.9972946643829346"/></g><g style="opacity:0.8"><circle cx="249.65" cy="50.49" r="34.98" transform="translate(75.45 236.31) rotate(-58.28)" style="fill:none;stroke:#fec905;stroke-miterlimit:10;stroke-dasharray:1.9972946643829346,1.9972946643829346"/></g><line x1="120.15" y1="50.49" x2="162.49" y2="50.49" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="161.03 55.48 169.67 50.49 161.03 45.5 161.03 55.48" style="fill:#1d1d1b"/><circle cx="45.9" cy="50.49" r="34.98" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><circle cx="80.88" cy="50.49" r="34.98" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><path d="M249.65,15.51a34.91,34.91,0,0,0-17.49,4.69,35,35,0,1,0,0,60.57,35,35,0,1,0,17.49-65.26Z" style="fill:#fec905;opacity:0.8"/></svg>
0 <svg xmlns="http://www.w3.org/2000/svg" width="115.16mm" height="58.15mm" viewBox="0 0 326.44 164.84"><rect x="5.24" y="27.78" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="5.24" y="46.88" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="5.24" y="65.98" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><rect x="5.24" y="85.08" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.8"/><rect x="5.24" y="104.19" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10"/><rect x="48.04" y="27.78" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="48.04" y="8.68" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="48.04" y="46.88" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="48.04" y="65.98" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="48.04" y="85.08" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="48.04" y="104.19" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="194.49" y="27.78" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="194.49" y="46.88" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="194.49" y="65.98" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><rect x="194.49" y="85.08" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.8"/><rect x="194.49" y="104.19" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10"/><rect x="237.29" y="27.78" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="237.29" y="8.68" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="237.29" y="46.88" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="237.29" y="65.98" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="237.29" y="85.08" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="237.29" y="104.19" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><line x1="138.48" y1="37.33" x2="180.83" y2="37.33" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="179.37 42.32 188 37.33 179.37 32.35 179.37 42.32" style="fill:#1d1d1b"/><line x1="138.48" y1="56.43" x2="180.83" y2="56.43" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="179.37 61.42 188 56.43 179.37 51.45 179.37 61.42" style="fill:#1d1d1b"/><line x1="138.48" y1="75.53" x2="180.83" y2="75.53" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="179.37 80.52 188 75.53 179.37 70.55 179.37 80.52" style="fill:#1d1d1b"/><line x1="138.48" y1="94.64" x2="180.83" y2="94.64" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="179.37 99.62 188 94.64 179.37 89.65 179.37 99.62" style="fill:#1d1d1b"/><line x1="138.48" y1="113.74" x2="180.83" y2="113.74" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="179.37 118.72 188 113.74 179.37 108.75 179.37 118.72" style="fill:#1d1d1b"/><rect x="3.19" y="25.4" width="42.25" height="99.95" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10;stroke-width:0.5px"/><path d="M7.38,143.15H9.76v-4.21H7.68v-1.19H11v5.4H13v1.2H7.38Zm1.9-7.21a.73.73,0,0,1,.22-.56.84.84,0,0,1,.59-.21h.29a.84.84,0,0,1,.6.21.77.77,0,0,1,.22.56.75.75,0,0,1-.22.55.85.85,0,0,1-.61.2h-.28a.83.83,0,0,1-.59-.2A.71.71,0,0,1,9.28,135.94Z" style="fill:#1d1d1b"/><path d="M14.46,137.75h1.25v1.14h.11a1.48,1.48,0,0,1,.59-.94,2,2,0,0,1,1.17-.32,2.4,2.4,0,0,1,.92.17,1.89,1.89,0,0,1,.68.49,2.13,2.13,0,0,1,.43.75,3,3,0,0,1,.14,1v4.34H18.43v-4.16a1.5,1.5,0,0,0-.34-1.06,1.27,1.27,0,0,0-1-.37,1.28,1.28,0,0,0-1,.39,1.57,1.57,0,0,0-.36,1.08v4.12H14.46Z" style="fill:#1d1d1b"/><path d="M21.54,140.21a3.49,3.49,0,0,1,.16-1.07,2.29,2.29,0,0,1,.46-.81,1.85,1.85,0,0,1,.71-.52,2.34,2.34,0,0,1,.93-.18A2,2,0,0,1,25,138a1.47,1.47,0,0,1,.61.93h.11l0-.41c0-.12,0-.24,0-.38s0-.25,0-.35v-2H27v8.64H25.71v-1.14H25.6a1.47,1.47,0,0,1-.61.93,2,2,0,0,1-1.19.33,2.34,2.34,0,0,1-.93-.18,1.85,1.85,0,0,1-.71-.52,2.25,2.25,0,0,1-.46-.82,3.6,3.6,0,0,1-.16-1.08Zm1.32,0v1.62a1.49,1.49,0,0,0,.38,1.07,1.35,1.35,0,0,0,1,.4,1.28,1.28,0,0,0,1-.4,1.45,1.45,0,0,0,.37-1v-1.64a1.47,1.47,0,0,0-.37-1.06,1.3,1.3,0,0,0-1-.4,1.38,1.38,0,0,0-1,.39A1.49,1.49,0,0,0,22.86,140.23Z" style="fill:#1d1d1b"/><path d="M28.74,140.19a3,3,0,0,1,.19-1.07,2.27,2.27,0,0,1,.56-.8,2.5,2.5,0,0,1,.87-.51,3.51,3.51,0,0,1,1.15-.18,3.43,3.43,0,0,1,1.15.18,2.5,2.5,0,0,1,.87.51,2.24,2.24,0,0,1,.55.8,2.8,2.8,0,0,1,.19,1.07v1.21H30.05v.47a1.49,1.49,0,0,0,.39,1.1,1.46,1.46,0,0,0,1.07.4,2.34,2.34,0,0,0,.88-.16,1,1,0,0,0,.54-.47h1.3a2.29,2.29,0,0,1-.35.72,2.23,2.23,0,0,1-.6.54,2.77,2.77,0,0,1-.8.35,3.74,3.74,0,0,1-1,.12,3.41,3.41,0,0,1-1.14-.18,2.38,2.38,0,0,1-.87-.52,2.22,2.22,0,0,1-.56-.81,2.74,2.74,0,0,1-.2-1.06Zm1.31.25H33v-.25a1.35,1.35,0,0,0-1.47-1.46,1.34,1.34,0,0,0-1.46,1.46Z" style="fill:#1d1d1b"/><path d="M38,141l-2.23-3.2h1.53l1.23,1.86a1.05,1.05,0,0,1,.15.3.43.43,0,0,1,0,.13h.06a.43.43,0,0,1,0-.13,1,1,0,0,1,.15-.3l1.24-1.86H41.7l-2.22,3.19,2.37,3.41H40.31l-1.33-2a.59.59,0,0,1-.1-.17l-.07-.14-.06-.14h-.07s0,.1-.06.15l-.06.14a1.4,1.4,0,0,1-.1.16l-1.35,2H35.58Z" style="fill:#1d1d1b"/><rect x="46.28" y="6.23" width="86.81" height="119.12" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10;stroke-width:0.5px"/><path d="M135.05,144.47a3.23,3.23,0,0,1-1.15-.19,2.52,2.52,0,0,1-.87-.52,2.36,2.36,0,0,1-.55-.83,2.6,2.6,0,0,1-.2-1.06v-1.65a2.65,2.65,0,0,1,.2-1.07,2.32,2.32,0,0,1,.55-.82,2.54,2.54,0,0,1,.87-.53,3.76,3.76,0,0,1,2.3,0,2.38,2.38,0,0,1,.87.52,2.32,2.32,0,0,1,.55.82,2.59,2.59,0,0,1,.2,1.07v1.66a2.83,2.83,0,0,1-.19,1.07,2.24,2.24,0,0,1-.55.82,2.34,2.34,0,0,1-.88.52A3.23,3.23,0,0,1,135.05,144.47Zm-1.45-2.6a1.5,1.5,0,0,0,2.51,1,1.4,1.4,0,0,0,.39-1v-1.65a1.39,1.39,0,0,0-.39-1.05,1.64,1.64,0,0,0-2.12,0,1.39,1.39,0,0,0-.39,1.05Z" style="fill:#1d1d1b"/><path d="M139.61,137.75h1.26v1.14h.1a1.46,1.46,0,0,1,.6-.93,2.07,2.07,0,0,1,1.2-.33,2.32,2.32,0,0,1,.92.18,1.85,1.85,0,0,1,.71.52,2.29,2.29,0,0,1,.46.81,3.21,3.21,0,0,1,.16,1.07v1.66a3.31,3.31,0,0,1-.16,1.08,2.25,2.25,0,0,1-.46.82,1.85,1.85,0,0,1-.71.52,2.32,2.32,0,0,1-.92.18,2.07,2.07,0,0,1-1.2-.33,1.46,1.46,0,0,1-.6-.93h-.1a1,1,0,0,0,0,.13,2.33,2.33,0,0,1,0,.29c0,.11,0,.23,0,.36s0,.25,0,.36v2h-1.32Zm1.32,2.48v1.64a1.45,1.45,0,0,0,.37,1,1.25,1.25,0,0,0,1,.4,1.33,1.33,0,0,0,1-.4,1.45,1.45,0,0,0,.38-1.07v-1.62a1.45,1.45,0,0,0-.38-1.07,1.36,1.36,0,0,0-1-.39,1.28,1.28,0,0,0-1,.4A1.47,1.47,0,0,0,140.93,140.23Z" style="fill:#1d1d1b"/><path d="M146.68,140.19a2.8,2.8,0,0,1,.19-1.07,2.24,2.24,0,0,1,.55-.8,2.46,2.46,0,0,1,.88-.51,3.43,3.43,0,0,1,1.15-.18,3.47,3.47,0,0,1,1.15.18,2.6,2.6,0,0,1,.87.51,2.24,2.24,0,0,1,.55.8,3,3,0,0,1,.19,1.07v1.21H148v.47a1.46,1.46,0,0,0,.4,1.1,1.44,1.44,0,0,0,1.07.4,2.29,2.29,0,0,0,.87-.16,1,1,0,0,0,.54-.47h1.3a2.1,2.1,0,0,1-.35.72,2.35,2.35,0,0,1-.59.54,2.9,2.9,0,0,1-.8.35,3.85,3.85,0,0,1-1,.12,3.43,3.43,0,0,1-1.15-.18,2.38,2.38,0,0,1-.87-.52,2.2,2.2,0,0,1-.55-.81,2.57,2.57,0,0,1-.2-1.06Zm1.3.25h2.93v-.25a1.52,1.52,0,0,0-2.54-1.07,1.42,1.42,0,0,0-.39,1.07Z" style="fill:#1d1d1b"/><path d="M155.52,137.75v1.14h.11a1.45,1.45,0,0,1,.62-.93,2.11,2.11,0,0,1,1.22-.33,2.15,2.15,0,0,1,1.65.65,2.61,2.61,0,0,1,.6,1.82v.43h-1.35v-.3a1.5,1.5,0,0,0-.38-1.08,1.32,1.32,0,0,0-1-.39,1.3,1.3,0,0,0-1,.39,1.53,1.53,0,0,0-.38,1.08v4.12h-1.32v-6.6Z" style="fill:#1d1d1b"/><path d="M160.92,142.47a1.9,1.9,0,0,1,.67-1.53,2.71,2.71,0,0,1,1.8-.56h1.79v-.55a1,1,0,0,0-.36-.83,1.67,1.67,0,0,0-1-.29,1.82,1.82,0,0,0-.88.19.9.9,0,0,0-.48.52h-1.29a1.94,1.94,0,0,1,.87-1.31,3.17,3.17,0,0,1,1.79-.48,3.1,3.1,0,0,1,2,.58,1.91,1.91,0,0,1,.72,1.58v4.56h-1.22v-1.28h-.1a1.56,1.56,0,0,1-.7,1,2.51,2.51,0,0,1-1.41.38,2.18,2.18,0,0,1-1.57-.55A1.92,1.92,0,0,1,160.92,142.47Zm1.32-.11a1,1,0,0,0,.33.78,1.37,1.37,0,0,0,.91.27,2.43,2.43,0,0,0,.68-.09,2,2,0,0,0,.54-.27,1.4,1.4,0,0,0,.36-.41,1.13,1.13,0,0,0,.12-.51v-.83h-1.77a1.24,1.24,0,0,0-.86.28A1,1,0,0,0,162.24,142.36Z" style="fill:#1d1d1b"/><path d="M168.07,137.75h1.86v-2h1.32v2h2.53v1.19h-2.53v3.51a.69.69,0,0,0,.19.51.73.73,0,0,0,.54.19h1.68v1.2h-1.74a2,2,0,0,1-1.45-.52,1.81,1.81,0,0,1-.54-1.38v-3.51h-1.86Z" style="fill:#1d1d1b"/><path d="M175.72,143.15h2.37v-4.21H176v-1.19h3.36v5.4h1.93v1.2h-5.59Zm1.89-7.21a.77.77,0,0,1,.22-.56.84.84,0,0,1,.6-.21h.29a.84.84,0,0,1,.59.21.73.73,0,0,1,.22.56.71.71,0,0,1-.22.55.85.85,0,0,1-.61.2h-.27a.84.84,0,0,1-.6-.2A.75.75,0,0,1,177.61,135.94Z" style="fill:#1d1d1b"/><path d="M185.45,144.47a3.19,3.19,0,0,1-1.15-.19,2.52,2.52,0,0,1-.87-.52,2.36,2.36,0,0,1-.55-.83,2.6,2.6,0,0,1-.2-1.06v-1.65a2.65,2.65,0,0,1,.2-1.07,2.32,2.32,0,0,1,.55-.82,2.54,2.54,0,0,1,.87-.53,3.43,3.43,0,0,1,1.15-.18,3.47,3.47,0,0,1,1.15.18,2.46,2.46,0,0,1,.87.52,2.32,2.32,0,0,1,.55.82,2.76,2.76,0,0,1,.2,1.07v1.66a2.83,2.83,0,0,1-.19,1.07,2.24,2.24,0,0,1-.55.82,2.42,2.42,0,0,1-.88.52A3.23,3.23,0,0,1,185.45,144.47Zm-1.45-2.6a1.4,1.4,0,0,0,.38,1,1.65,1.65,0,0,0,2.13,0,1.4,1.4,0,0,0,.39-1v-1.65a1.39,1.39,0,0,0-.39-1.05,1.64,1.64,0,0,0-2.12,0,1.39,1.39,0,0,0-.39,1.05Z" style="fill:#1d1d1b"/><path d="M190,137.75h1.24v1.14h.11a1.52,1.52,0,0,1,.59-.94,2,2,0,0,1,1.18-.32,2.34,2.34,0,0,1,.91.17,2,2,0,0,1,.69.49,2,2,0,0,1,.42.75,3,3,0,0,1,.15,1v4.34H194v-4.16a1.5,1.5,0,0,0-.35-1.06,1.24,1.24,0,0,0-1-.37,1.26,1.26,0,0,0-1,.39,1.57,1.57,0,0,0-.36,1.08v4.12H190Z" style="fill:#1d1d1b"/><path d="M61.67,140.17a3.51,3.51,0,0,1,.15-1,2.33,2.33,0,0,1,.46-.8,2.05,2.05,0,0,1,.72-.51,2.34,2.34,0,0,1,.93-.18,2.1,2.1,0,0,1,1.23.35,1.56,1.56,0,0,1,.63,1h.09v-1.2h1.25V144a2.3,2.3,0,0,1-.72,1.79,2.83,2.83,0,0,1-2,.65h-1.7v-1.13h1.7a1.36,1.36,0,0,0,1-.35,1.27,1.27,0,0,0,.37-1v-.22l.05-1.2h-.08a1.61,1.61,0,0,1-.65,1,2,2,0,0,1-1.22.35,2.34,2.34,0,0,1-.93-.18,2.11,2.11,0,0,1-.71-.51,2.31,2.31,0,0,1-.45-.8,3.13,3.13,0,0,1-.16-1.05ZM63,141.29a1.31,1.31,0,0,0,1.4,1.42,1.31,1.31,0,0,0,1.42-1.42v-1.1a1.31,1.31,0,0,0-1.42-1.42,1.31,1.31,0,0,0-1.4,1.42Z" style="fill:#1d1d1b"/><path d="M68.91,140.19a3,3,0,0,1,.19-1.07,2.27,2.27,0,0,1,.56-.8,2.5,2.5,0,0,1,.87-.51,3.51,3.51,0,0,1,1.15-.18,3.43,3.43,0,0,1,1.15.18,2.5,2.5,0,0,1,.87.51,2.12,2.12,0,0,1,.55.8,2.79,2.79,0,0,1,.2,1.07v1.21H70.22v.47a1.49,1.49,0,0,0,.39,1.1,1.46,1.46,0,0,0,1.07.4,2.34,2.34,0,0,0,.88-.16,1,1,0,0,0,.54-.47h1.3a2.1,2.1,0,0,1-.35.72,2.35,2.35,0,0,1-.59.54,3,3,0,0,1-.81.35,3.74,3.74,0,0,1-1,.12,3.41,3.41,0,0,1-1.14-.18,2.38,2.38,0,0,1-.87-.52,2.22,2.22,0,0,1-.56-.81,2.74,2.74,0,0,1-.2-1.06Zm1.31.25h2.93v-.25a1.47,1.47,0,1,0-2.93,0Z" style="fill:#1d1d1b"/><path d="M78.88,144.47a3.17,3.17,0,0,1-1.14-.19,2.52,2.52,0,0,1-.87-.52,2.39,2.39,0,0,1-.56-.83,2.78,2.78,0,0,1-.2-1.06v-1.65a2.83,2.83,0,0,1,.2-1.07,2.35,2.35,0,0,1,.56-.82,2.54,2.54,0,0,1,.87-.53,3.73,3.73,0,0,1,2.29,0,2.38,2.38,0,0,1,.87.52,2.35,2.35,0,0,1,.56.82,2.76,2.76,0,0,1,.2,1.07v1.66a2.83,2.83,0,0,1-.2,1.07,2.12,2.12,0,0,1-.55.82,2.38,2.38,0,0,1-.87.52A3.28,3.28,0,0,1,78.88,144.47Zm-1.45-2.6a1.35,1.35,0,0,0,1.45,1.44,1.45,1.45,0,0,0,1.07-.39,1.4,1.4,0,0,0,.39-1v-1.65a1.39,1.39,0,0,0-.39-1.05,1.65,1.65,0,0,0-2.13,0,1.39,1.39,0,0,0-.39,1.05Z" style="fill:#1d1d1b"/><path d="M83.14,144.35v-6.6h1.1v1h.09a1.24,1.24,0,0,1,.32-.8,1,1,0,0,1,.76-.29.91.91,0,0,1,.72.28,1.62,1.62,0,0,1,.39.81h.08a1.15,1.15,0,0,1,.33-.8,1,1,0,0,1,.77-.29,1.19,1.19,0,0,1,1,.45,1.93,1.93,0,0,1,.37,1.24v5H87.82v-5a1,1,0,0,0-.15-.59.57.57,0,0,0-.46-.2q-.63,0-.63.84v4.92h-1v-5a.94.94,0,0,0-.16-.59.63.63,0,0,0-.48-.2q-.63,0-.63.84v4.92Z" style="fill:#1d1d1b"/><path d="M90.51,140.19a3,3,0,0,1,.19-1.07,2.27,2.27,0,0,1,.56-.8,2.5,2.5,0,0,1,.87-.51,3.51,3.51,0,0,1,1.15-.18,3.43,3.43,0,0,1,1.15.18,2.5,2.5,0,0,1,.87.51,2.12,2.12,0,0,1,.55.8,2.79,2.79,0,0,1,.2,1.07v1.21H91.82v.47a1.49,1.49,0,0,0,.39,1.1,1.46,1.46,0,0,0,1.07.4,2.34,2.34,0,0,0,.88-.16,1,1,0,0,0,.54-.47H96a2.1,2.1,0,0,1-.35.72,2.35,2.35,0,0,1-.59.54,3,3,0,0,1-.81.35,3.74,3.74,0,0,1-1,.12,3.41,3.41,0,0,1-1.14-.18,2.38,2.38,0,0,1-.87-.52,2.22,2.22,0,0,1-.56-.81,2.74,2.74,0,0,1-.2-1.06Zm1.31.25h2.93v-.25a1.35,1.35,0,0,0-1.47-1.46,1.34,1.34,0,0,0-1.46,1.46Z" style="fill:#1d1d1b"/><path d="M97.51,137.75h1.86v-2h1.32v2h2.53v1.19h-2.53v3.51a.66.66,0,0,0,.19.51.73.73,0,0,0,.54.19h1.68v1.2h-1.74a2,2,0,0,1-1.46-.52,1.84,1.84,0,0,1-.53-1.38v-3.51H97.51Z" style="fill:#1d1d1b"/><path d="M106.56,137.75v1.14h.1a1.48,1.48,0,0,1,.62-.93,2.14,2.14,0,0,1,1.22-.33,2.17,2.17,0,0,1,1.66.65,2.61,2.61,0,0,1,.6,1.82v.43H109.4v-.3a1.49,1.49,0,0,0-.37-1.08,1.35,1.35,0,0,0-1-.39,1.33,1.33,0,0,0-1,.39,1.52,1.52,0,0,0-.37,1.08v4.12h-1.32v-6.6Z" style="fill:#1d1d1b"/><path d="M111.79,137.75h1.44l1.39,3.64a4.26,4.26,0,0,1,.15.47,4.31,4.31,0,0,1,.09.44l.06.43h.1a3.28,3.28,0,0,1,0-.43c0-.13.06-.27.09-.43s.09-.32.14-.48l1.3-3.64H118l-3.17,8.64h-1.39l.91-2.46Z" style="fill:#1d1d1b"/></svg>
0 <svg xmlns="http://www.w3.org/2000/svg" width="255.6mm" height="57.81mm" viewBox="0 0 724.53 163.88"><rect x="11" y="28.59" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="11" y="47.7" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="11" y="66.8" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><rect x="11" y="85.9" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.8"/><rect x="11" y="105" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10"/><rect x="53.8" y="28.59" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="53.8" y="9.49" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="53.8" y="47.7" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="53.8" y="66.8" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="53.8" y="85.9" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="53.8" y="105" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="200.25" y="28.59" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.8"/><rect x="200.25" y="47.7" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="200.25" y="66.8" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10"/><rect x="200.25" y="85.9" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="200.25" y="105" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><rect x="243.05" y="28.59" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="243.05" y="9.49" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="243.05" y="47.7" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="243.05" y="66.8" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="243.05" y="85.9" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="243.05" y="105" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><line x1="144.24" y1="38.14" x2="187.07" y2="54.66" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="183.91 58.79 193.76 57.25 187.5 49.49 183.91 58.79" style="fill:#1d1d1b"/><line x1="144.24" y1="57.25" x2="188.08" y2="91.07" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="183.88 94.12 193.76 95.45 189.97 86.23 183.88 94.12" style="fill:#1d1d1b"/><line x1="144.24" y1="76.35" x2="188.08" y2="110.17" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="183.88 113.22 193.76 114.55 189.97 105.33 183.88 113.22" style="fill:#1d1d1b"/><line x1="144.24" y1="95.45" x2="189.07" y2="43.57" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="191.89 47.94 193.76 38.15 184.34 41.42 191.89 47.94" style="fill:#1d1d1b"/><line x1="144.24" y1="114.55" x2="188.08" y2="80.73" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="189.97 85.57 193.76 76.35 183.88 77.67 189.97 85.57" style="fill:#1d1d1b"/><line x1="533.72" y1="38.14" x2="576.06" y2="38.14" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="574.6 43.13 583.23 38.15 574.6 33.16 574.6 43.13" style="fill:#1d1d1b"/><line x1="533.72" y1="57.25" x2="576.06" y2="57.25" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="574.6 62.23 583.23 57.25 574.6 52.26 574.6 62.23" style="fill:#1d1d1b"/><line x1="533.72" y1="76.35" x2="576.06" y2="76.35" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="574.6 81.33 583.23 76.35 574.6 71.36 574.6 81.33" style="fill:#1d1d1b"/><line x1="533.72" y1="95.45" x2="576.06" y2="95.45" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="574.6 100.44 583.23 95.45 574.6 90.46 574.6 100.44" style="fill:#1d1d1b"/><line x1="533.72" y1="114.55" x2="576.06" y2="114.55" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="574.6 119.54 583.23 114.55 574.6 109.56 574.6 119.54" style="fill:#1d1d1b"/><rect x="400.47" y="28.59" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="400.47" y="47.7" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="400.47" y="66.8" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><rect x="400.47" y="85.9" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.8"/><rect x="400.47" y="105" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10"/><rect x="443.27" y="28.59" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="443.27" y="9.49" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="443.27" y="47.7" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="443.27" y="66.8" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="443.27" y="85.9" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="443.27" y="105" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="589.72" y="28.59" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.8"/><rect x="589.72" y="47.7" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="589.72" y="66.8" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10"/><rect x="589.72" y="85.9" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="589.72" y="105" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><rect x="632.52" y="28.59" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="632.52" y="9.49" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="632.52" y="47.7" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="632.52" y="66.8" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="632.52" y="85.9" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="632.52" y="105" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><path d="M130.89,145.13a1.9,1.9,0,0,1,.66-1.52,2.71,2.71,0,0,1,1.81-.57h1.79v-.55a1,1,0,0,0-.37-.82,1.59,1.59,0,0,0-1-.29,1.93,1.93,0,0,0-.87.18,1,1,0,0,0-.48.53h-1.3a1.93,1.93,0,0,1,.88-1.31,3.65,3.65,0,0,1,3.77.09,2,2,0,0,1,.73,1.59V147h-1.23v-1.29h-.09a1.57,1.57,0,0,1-.71,1,2.51,2.51,0,0,1-1.41.38,2.17,2.17,0,0,1-1.56-.55A1.89,1.89,0,0,1,130.89,145.13Zm1.32-.11a.94.94,0,0,0,.32.78,1.34,1.34,0,0,0,.91.28,2.17,2.17,0,0,0,.69-.1,1.71,1.71,0,0,0,.54-.27,1.21,1.21,0,0,0,.35-.4,1.14,1.14,0,0,0,.13-.51V144h-1.78a1.21,1.21,0,0,0-.85.28A1,1,0,0,0,132.21,145Z" style="fill:#1d1d1b"/><path d="M137.83,139.49v-1.2h3.46V145a.8.8,0,0,0,.22.61.78.78,0,0,0,.6.23h2V147h-2a2.07,2.07,0,0,1-1.53-.55A2,2,0,0,1,140,145v-5.49Z" style="fill:#1d1d1b"/><path d="M145.68,145.82h2.38V141.6H146v-1.18h3.36v5.4h1.93V147h-5.59Zm1.9-7.22a.71.71,0,0,1,.22-.55.84.84,0,0,1,.59-.21h.29a.8.8,0,0,1,.59.21.78.78,0,0,1,0,1.11.87.87,0,0,1-.6.2h-.28a.88.88,0,0,1-.59-.2A.72.72,0,0,1,147.58,138.6Z" style="fill:#1d1d1b"/><path d="M152.59,142.84a3.5,3.5,0,0,1,.16-1.05,2.22,2.22,0,0,1,.45-.8,2.09,2.09,0,0,1,.73-.51,2.3,2.3,0,0,1,.93-.18,2.1,2.1,0,0,1,1.23.34,1.65,1.65,0,0,1,.63,1h.09v-1.2h1.24v6.2a2.3,2.3,0,0,1-.71,1.78,2.78,2.78,0,0,1-2,.66h-1.71v-1.13h1.71a1.4,1.4,0,0,0,1-.35,1.27,1.27,0,0,0,.36-1v-.23l0-1.2h-.07a1.64,1.64,0,0,1-.65,1,2.07,2.07,0,0,1-1.22.34,2.3,2.3,0,0,1-.93-.18,2,2,0,0,1-.71-.51,2.22,2.22,0,0,1-.45-.8,3.06,3.06,0,0,1-.17-1Zm1.34,1.12a1.41,1.41,0,1,0,2.81,0v-1.11a1.41,1.41,0,1,0-2.81,0Z" style="fill:#1d1d1b"/><path d="M160,140.42h1.25v1.14h.11a1.47,1.47,0,0,1,.58-.94,2.05,2.05,0,0,1,1.18-.32,2.22,2.22,0,0,1,.92.17,1.89,1.89,0,0,1,.68.49,2.13,2.13,0,0,1,.43.75,2.93,2.93,0,0,1,.14,1V147h-1.32v-4.17a1.48,1.48,0,0,0-.34-1,1.27,1.27,0,0,0-1-.38,1.29,1.29,0,0,0-1,.4,1.57,1.57,0,0,0-.36,1.08V147H160Z" style="fill:#1d1d1b"/><path d="M172.45,141v1.2h-5.28V141Zm-5.28,2.93h5.28v1.2h-5.28Z" style="fill:#1d1d1b"/><path d="M173.92,139.56v-1.18h6.19v1.18h-2.42V147h-1.35v-7.46Z" style="fill:#1d1d1b"/><path d="M183.08,140.42v1.14h.11a1.48,1.48,0,0,1,.62-.93,2.43,2.43,0,0,1,2.88.32,2.64,2.64,0,0,1,.59,1.82v.43h-1.35v-.3a1.58,1.58,0,0,0-.37-1.09,1.35,1.35,0,0,0-1-.39,1.33,1.33,0,0,0-1,.4,1.52,1.52,0,0,0-.37,1.08V147h-1.32v-6.6Z" style="fill:#1d1d1b"/><path d="M190.12,140.42v4.18c0,.93.42,1.38,1.28,1.38s1.31-.45,1.31-1.38v-4.18H194v4.18a2.48,2.48,0,0,1-.69,1.88,2.67,2.67,0,0,1-1.94.66,2.63,2.63,0,0,1-1.92-.67,2.46,2.46,0,0,1-.68-1.87v-4.18Z" style="fill:#1d1d1b"/><path d="M195.84,142.85a2.78,2.78,0,0,1,.19-1.06,2.16,2.16,0,0,1,.55-.8,2.55,2.55,0,0,1,.88-.51,3.47,3.47,0,0,1,1.15-.18,3.43,3.43,0,0,1,1.15.18,2.5,2.5,0,0,1,.87.51,2.16,2.16,0,0,1,.55.8,2.78,2.78,0,0,1,.19,1.06v1.21h-4.22v.47a1.53,1.53,0,0,0,.39,1.11,1.45,1.45,0,0,0,1.07.39,2.35,2.35,0,0,0,.88-.15,1.05,1.05,0,0,0,.54-.47h1.29a2,2,0,0,1-.34.71,2.11,2.11,0,0,1-.6.55,2.77,2.77,0,0,1-.8.35,3.74,3.74,0,0,1-1,.12,3.41,3.41,0,0,1-1.14-.18,2.38,2.38,0,0,1-.87-.52,2.22,2.22,0,0,1-.56-.81,2.78,2.78,0,0,1-.2-1.06Zm1.31.25h2.93v-.25a1.41,1.41,0,0,0-.39-1.06,1.43,1.43,0,0,0-1.08-.39,1.33,1.33,0,0,0-1.46,1.45Z" style="fill:#1d1d1b"/><path d="M519.27,145.13a1.88,1.88,0,0,1,.67-1.52,2.66,2.66,0,0,1,1.8-.57h1.79v-.55a1,1,0,0,0-.36-.82,1.61,1.61,0,0,0-1-.29,1.94,1.94,0,0,0-.88.18,1,1,0,0,0-.48.53h-1.29a1.92,1.92,0,0,1,.87-1.31,3.67,3.67,0,0,1,3.78.09,1.94,1.94,0,0,1,.72,1.59V147h-1.22v-1.29h-.1a1.56,1.56,0,0,1-.7,1,2.51,2.51,0,0,1-1.41.38,2.15,2.15,0,0,1-1.56-.55A1.9,1.9,0,0,1,519.27,145.13Zm1.32-.11a1,1,0,0,0,.33.78,1.32,1.32,0,0,0,.91.28,2.07,2.07,0,0,0,.68-.1,1.52,1.52,0,0,0,.54-.27,1.37,1.37,0,0,0,.36-.4,1.13,1.13,0,0,0,.12-.51V144h-1.77a1.24,1.24,0,0,0-.86.28A1,1,0,0,0,520.59,145Z" style="fill:#1d1d1b"/><path d="M526.22,139.49v-1.2h3.46V145a.84.84,0,0,0,.21.61.81.81,0,0,0,.6.23h2V147h-2a2.06,2.06,0,0,1-1.52-.55,2,2,0,0,1-.55-1.49v-5.49Z" style="fill:#1d1d1b"/><path d="M534.07,145.82h2.37V141.6h-2.07v-1.18h3.36v5.4h1.93V147h-5.59ZM536,138.6a.72.72,0,0,1,.23-.55.8.8,0,0,1,.59-.21h.29a.82.82,0,0,1,.59.21.71.71,0,0,1,.22.55.72.72,0,0,1-.22.56.89.89,0,0,1-.6.2h-.28a.84.84,0,0,1-.59-.2A.72.72,0,0,1,536,138.6Z" style="fill:#1d1d1b"/><path d="M541,142.84a3.21,3.21,0,0,1,.16-1.05,2.09,2.09,0,0,1,.45-.8,2.05,2.05,0,0,1,.72-.51,2.35,2.35,0,0,1,.94-.18,2,2,0,0,1,1.22.34,1.62,1.62,0,0,1,.64,1h.08v-1.2h1.25v6.2a2.3,2.3,0,0,1-.71,1.78,2.78,2.78,0,0,1-2,.66h-1.71v-1.13h1.71a1.42,1.42,0,0,0,1-.35,1.27,1.27,0,0,0,.36-1v-.23l0-1.2h-.07a1.68,1.68,0,0,1-.65,1,2.09,2.09,0,0,1-1.22.34,2.27,2.27,0,0,1-.93-.18,1.93,1.93,0,0,1-.71-.51,2.24,2.24,0,0,1-.46-.8,3.07,3.07,0,0,1-.16-1Zm1.33,1.12a1.43,1.43,0,0,0,.38,1,1.41,1.41,0,0,0,2.44-1v-1.11a1.47,1.47,0,0,0-2.44-1,1.43,1.43,0,0,0-.38,1Z" style="fill:#1d1d1b"/><path d="M548.35,140.42h1.25v1.14h.1a1.52,1.52,0,0,1,.59-.94,2.05,2.05,0,0,1,1.18-.32,2.25,2.25,0,0,1,.92.17,2.08,2.08,0,0,1,.68.49,2.13,2.13,0,0,1,.43.75,3.22,3.22,0,0,1,.14,1V147h-1.32v-4.17a1.48,1.48,0,0,0-.35-1,1.24,1.24,0,0,0-1-.38,1.28,1.28,0,0,0-1,.4,1.57,1.57,0,0,0-.36,1.08V147h-1.32Z" style="fill:#1d1d1b"/><path d="M560.84,141v1.2h-5.28V141Zm-5.28,2.93h5.28v1.2h-5.28Z" style="fill:#1d1d1b"/><path d="M562.84,138.37h5.32v1.19h-4V142h3.71v1.2h-3.69V147h-1.32Z" style="fill:#1d1d1b"/><path d="M569.67,145.13a1.88,1.88,0,0,1,.67-1.52,2.66,2.66,0,0,1,1.8-.57h1.79v-.55a1,1,0,0,0-.36-.82,1.61,1.61,0,0,0-1-.29,1.94,1.94,0,0,0-.88.18,1,1,0,0,0-.48.53h-1.29a1.92,1.92,0,0,1,.87-1.31,3.67,3.67,0,0,1,3.78.09,1.94,1.94,0,0,1,.72,1.59V147H574v-1.29h-.1a1.56,1.56,0,0,1-.7,1,2.51,2.51,0,0,1-1.41.38,2.18,2.18,0,0,1-1.57-.55A1.93,1.93,0,0,1,569.67,145.13ZM571,145a1,1,0,0,0,.33.78,1.32,1.32,0,0,0,.91.28,2.11,2.11,0,0,0,.68-.1,1.52,1.52,0,0,0,.54-.27,1.37,1.37,0,0,0,.36-.4,1.13,1.13,0,0,0,.12-.51V144h-1.77a1.24,1.24,0,0,0-.86.28A1,1,0,0,0,571,145Z" style="fill:#1d1d1b"/><path d="M576.62,139.49v-1.2h3.46V145a.84.84,0,0,0,.21.61.81.81,0,0,0,.6.23h2V147h-2a2,2,0,0,1-1.52-.55,2,2,0,0,1-.55-1.49v-5.49Z" style="fill:#1d1d1b"/><path d="M584.19,145.36h1.37a.79.79,0,0,0,.4.52,1.67,1.67,0,0,0,.81.19h.43a1.53,1.53,0,0,0,.92-.24.77.77,0,0,0,.33-.66q0-.72-1.05-.87l-1-.13a2.75,2.75,0,0,1-1.58-.62,1.72,1.72,0,0,1-.51-1.33,1.7,1.7,0,0,1,.64-1.42,2.89,2.89,0,0,1,1.83-.5h.42a2.87,2.87,0,0,1,1.7.46,1.82,1.82,0,0,1,.77,1.25h-1.35a.76.76,0,0,0-.38-.47,1.4,1.4,0,0,0-.74-.17h-.42a1.4,1.4,0,0,0-.86.21.7.7,0,0,0-.3.63.67.67,0,0,0,.22.54,1.39,1.39,0,0,0,.71.25l1,.13a3.08,3.08,0,0,1,1.65.63,2,2,0,0,1-.13,2.86,3,3,0,0,1-1.9.52h-.43a3.08,3.08,0,0,1-1.79-.48A1.77,1.77,0,0,1,584.19,145.36Z" style="fill:#1d1d1b"/><path d="M591.43,142.85a2.78,2.78,0,0,1,.19-1.06,2.16,2.16,0,0,1,.55-.8,2.46,2.46,0,0,1,.88-.51,3.76,3.76,0,0,1,2.3,0,2.5,2.5,0,0,1,.87.51,2.16,2.16,0,0,1,.55.8,2.78,2.78,0,0,1,.19,1.06v1.21h-4.22v.47a1.53,1.53,0,0,0,.39,1.11,1.44,1.44,0,0,0,1.07.39,2.35,2.35,0,0,0,.88-.15,1.14,1.14,0,0,0,.54-.47h1.29a2.22,2.22,0,0,1-.94,1.26,2.9,2.9,0,0,1-.8.35,3.79,3.79,0,0,1-1,.12,3.47,3.47,0,0,1-1.15-.18,2.38,2.38,0,0,1-.87-.52,2.2,2.2,0,0,1-.55-.81,2.6,2.6,0,0,1-.2-1.06Zm1.31.25h2.92v-.25a1.41,1.41,0,0,0-.38-1.06,1.69,1.69,0,0,0-2.16,0,1.41,1.41,0,0,0-.38,1.06Z" style="fill:#1d1d1b"/></svg>
0 <svg xmlns="http://www.w3.org/2000/svg" width="107.81mm" height="51.72mm" viewBox="0 0 305.59 146.59"><path d="M209,116.05h1.36a.81.81,0,0,0,.41.52,1.67,1.67,0,0,0,.81.19H212a1.55,1.55,0,0,0,.92-.24.77.77,0,0,0,.33-.66c0-.48-.36-.77-1.06-.87l-1-.13a2.78,2.78,0,0,1-1.58-.62,1.94,1.94,0,0,1,.13-2.75,2.89,2.89,0,0,1,1.83-.5h.42a2.85,2.85,0,0,1,1.7.46,1.79,1.79,0,0,1,.78,1.25h-1.36a.72.72,0,0,0-.37-.47,1.44,1.44,0,0,0-.75-.18h-.42a1.5,1.5,0,0,0-.86.21.72.72,0,0,0-.3.63.65.65,0,0,0,.22.54,1.34,1.34,0,0,0,.72.26l1,.13a3.08,3.08,0,0,1,1.66.63,2,2,0,0,1-.14,2.85,3,3,0,0,1-1.89.53h-.43a3.09,3.09,0,0,1-1.8-.48A1.73,1.73,0,0,1,209,116.05Z" style="fill:#1d1d1b"/><path d="M216.36,117.71v-8.64h1.32v2c0,.11,0,.23,0,.36s0,.26,0,.37,0,.25,0,.41h.11a1.49,1.49,0,0,1,.59-.93,2,2,0,0,1,1.17-.33,2.36,2.36,0,0,1,.9.16,2.2,2.2,0,0,1,.68.48,2.32,2.32,0,0,1,.44.75,3.05,3.05,0,0,1,.15,1v4.35h-1.3v-4.17a1.45,1.45,0,0,0-.36-1.05,1.26,1.26,0,0,0-1-.38,1.29,1.29,0,0,0-1,.4,1.53,1.53,0,0,0-.36,1.08v4.12Z" style="fill:#1d1d1b"/><path d="M223.29,115.82a1.88,1.88,0,0,1,.66-1.52,2.71,2.71,0,0,1,1.81-.57h1.79v-.55a1,1,0,0,0-.37-.82,1.59,1.59,0,0,0-1-.29,1.93,1.93,0,0,0-.87.18,1,1,0,0,0-.48.52h-1.3a1.93,1.93,0,0,1,.88-1.3,3.65,3.65,0,0,1,3.77.09,1.93,1.93,0,0,1,.73,1.59v4.56h-1.23v-1.29h-.09a1.59,1.59,0,0,1-.71,1,2.51,2.51,0,0,1-1.41.38,2.21,2.21,0,0,1-1.56-.55A1.89,1.89,0,0,1,223.29,115.82Zm1.32-.11a.94.94,0,0,0,.32.78,1.34,1.34,0,0,0,.91.28,2.17,2.17,0,0,0,.69-.1,1.71,1.71,0,0,0,.54-.27,1.21,1.21,0,0,0,.35-.4,1.14,1.14,0,0,0,.13-.51v-.83h-1.78a1.26,1.26,0,0,0-.85.27A1,1,0,0,0,224.61,115.71Z" style="fill:#1d1d1b"/><path d="M230.77,111.11H232v1.14h.1a1.47,1.47,0,0,1,.61-.93,2,2,0,0,1,1.19-.33,2.29,2.29,0,0,1,.92.18,2.05,2.05,0,0,1,.72.51,2.46,2.46,0,0,1,.45.81,3.31,3.31,0,0,1,.17,1.08v1.65a3.41,3.41,0,0,1-.17,1.09,2.32,2.32,0,0,1-.45.82,2.08,2.08,0,0,1-.72.52,2.29,2.29,0,0,1-.92.18,2,2,0,0,1-1.19-.33,1.47,1.47,0,0,1-.61-.93H232s0,.05,0,.13,0,.17,0,.29,0,.23,0,.36,0,.24,0,.36v2h-1.32Zm1.32,2.48v1.63a1.54,1.54,0,0,0,.37,1.06,1.28,1.28,0,0,0,1,.39,1.38,1.38,0,0,0,1-.39,1.5,1.5,0,0,0,.38-1.07v-1.62a1.47,1.47,0,0,0-.38-1.07,1.38,1.38,0,0,0-1-.39,1.27,1.27,0,0,0-1,.39A1.5,1.5,0,0,0,232.09,113.59Z" style="fill:#1d1d1b"/><path d="M237.84,113.54a3,3,0,0,1,.19-1.06,2.18,2.18,0,0,1,.56-.8,2.5,2.5,0,0,1,.87-.51,3.51,3.51,0,0,1,1.15-.18,3.43,3.43,0,0,1,1.15.18,2.5,2.5,0,0,1,.87.51,2.16,2.16,0,0,1,.55.8,2.78,2.78,0,0,1,.19,1.06v1.21h-4.22v.47a1.53,1.53,0,0,0,.39,1.11,1.45,1.45,0,0,0,1.07.39,2.35,2.35,0,0,0,.88-.15,1.05,1.05,0,0,0,.54-.47h1.3a2.18,2.18,0,0,1-1,1.26,2.77,2.77,0,0,1-.8.35,3.74,3.74,0,0,1-1,.12,3.41,3.41,0,0,1-1.14-.18,2.52,2.52,0,0,1-.87-.52,2.22,2.22,0,0,1-.56-.81,2.78,2.78,0,0,1-.2-1.06Zm1.31.25h2.93v-.25a1.34,1.34,0,0,0-1.47-1.45,1.32,1.32,0,0,0-1.46,1.45Z" style="fill:#1d1d1b"/><path d="M244.63,110.18V109h3.46v6.69a.8.8,0,0,0,.22.61.78.78,0,0,0,.6.23h2v1.2h-2a2.11,2.11,0,0,1-1.53-.55,2,2,0,0,1-.55-1.49v-5.49Z" style="fill:#1d1d1b"/><path d="M251.92,111.11h1.44l1.39,3.63a4.42,4.42,0,0,1,.15.48,4.15,4.15,0,0,1,.09.43c0,.16,0,.3.06.44h.1a3.59,3.59,0,0,1,0-.44c0-.12.06-.27.09-.43s.09-.32.14-.48l1.3-3.63h1.39l-3.17,8.64h-1.39l.91-2.46Z" style="fill:#1d1d1b"/><path d="M205.39,127.93a3.5,3.5,0,0,1,.16-1.05,2.1,2.1,0,0,1,.46-.8,2.05,2.05,0,0,1,.72-.51,2.34,2.34,0,0,1,.93-.18,2.1,2.1,0,0,1,1.23.34,1.61,1.61,0,0,1,.63,1h.09v-1.2h1.24v6.2a2.27,2.27,0,0,1-.71,1.78,2.78,2.78,0,0,1-2,.66h-1.71V133h1.71a1.4,1.4,0,0,0,1-.35,1.27,1.27,0,0,0,.37-1v-.23l0-1.2h-.07a1.59,1.59,0,0,1-.65,1,2,2,0,0,1-1.22.35,2.34,2.34,0,0,1-.93-.18,2,2,0,0,1-.71-.51,2.22,2.22,0,0,1-.45-.8,3.11,3.11,0,0,1-.17-1Zm1.34,1.12a1.41,1.41,0,1,0,2.82,0v-1.11a1.43,1.43,0,0,0-.38-1,1.63,1.63,0,0,0-2.07,0,1.42,1.42,0,0,0-.37,1Z" style="fill:#1d1d1b"/><path d="M212.64,127.94a3,3,0,0,1,.19-1.06,2.18,2.18,0,0,1,.56-.8,2.5,2.5,0,0,1,.87-.51,3.51,3.51,0,0,1,1.15-.18,3.43,3.43,0,0,1,1.15.18,2.5,2.5,0,0,1,.87.51,2.16,2.16,0,0,1,.55.8,2.78,2.78,0,0,1,.19,1.06v1.21H214v.47a1.53,1.53,0,0,0,.39,1.11,1.45,1.45,0,0,0,1.07.39,2.35,2.35,0,0,0,.88-.15,1.05,1.05,0,0,0,.54-.47h1.3a2.18,2.18,0,0,1-.95,1.26,2.77,2.77,0,0,1-.8.35,3.74,3.74,0,0,1-1,.12,3.41,3.41,0,0,1-1.14-.18,2.52,2.52,0,0,1-.87-.52,2.22,2.22,0,0,1-.56-.81,2.78,2.78,0,0,1-.2-1.06Zm1.31.25h2.93v-.25a1.34,1.34,0,0,0-1.47-1.45,1.32,1.32,0,0,0-1.46,1.45Z" style="fill:#1d1d1b"/><path d="M222.61,132.23a3.41,3.41,0,0,1-1.14-.19,2.4,2.4,0,0,1-.87-.53,2.35,2.35,0,0,1-.56-.82,2.83,2.83,0,0,1-.2-1.07V128a2.83,2.83,0,0,1,.2-1.07,2.35,2.35,0,0,1,.56-.82,2.4,2.4,0,0,1,.87-.53,3.64,3.64,0,0,1,2.29,0,2.4,2.4,0,0,1,.87.53,2.31,2.31,0,0,1,.56.81,2.85,2.85,0,0,1,.2,1.08v1.65a2.92,2.92,0,0,1-.2,1.08,2.32,2.32,0,0,1-.55.82,2.52,2.52,0,0,1-.87.52A3.53,3.53,0,0,1,222.61,132.23Zm-1.45-2.61a1.43,1.43,0,0,0,.39,1.06,1.45,1.45,0,0,0,1.06.38,1.49,1.49,0,0,0,1.07-.38,1.42,1.42,0,0,0,.38-1.06V128a1.42,1.42,0,0,0-.38-1.06,1.68,1.68,0,0,0-2.13,0,1.43,1.43,0,0,0-.39,1.06Z" style="fill:#1d1d1b"/><path d="M226.87,132.11v-6.6H228v1h.09a1.27,1.27,0,0,1,.32-.81,1,1,0,0,1,.76-.28.94.94,0,0,1,.72.27,1.7,1.7,0,0,1,.39.82h.08a1.22,1.22,0,0,1,.32-.81,1.08,1.08,0,0,1,.78-.28,1.2,1.2,0,0,1,1,.45,1.93,1.93,0,0,1,.37,1.24v5h-1.22v-5a1,1,0,0,0-.15-.59.54.54,0,0,0-.46-.2q-.63,0-.63.84v4.92h-1v-5a.92.92,0,0,0-.16-.59.59.59,0,0,0-.48-.2q-.63,0-.63.84v4.92Z" style="fill:#1d1d1b"/><path d="M234.24,127.94a3,3,0,0,1,.19-1.06,2.18,2.18,0,0,1,.56-.8,2.5,2.5,0,0,1,.87-.51,3.51,3.51,0,0,1,1.15-.18,3.43,3.43,0,0,1,1.15.18,2.5,2.5,0,0,1,.87.51,2.16,2.16,0,0,1,.55.8,2.78,2.78,0,0,1,.19,1.06v1.21h-4.22v.47a1.53,1.53,0,0,0,.39,1.11,1.45,1.45,0,0,0,1.07.39,2.35,2.35,0,0,0,.88-.15,1.05,1.05,0,0,0,.54-.47h1.3a2.18,2.18,0,0,1-.95,1.26,2.77,2.77,0,0,1-.8.35,3.74,3.74,0,0,1-1,.12,3.41,3.41,0,0,1-1.14-.18,2.52,2.52,0,0,1-.87-.52,2.22,2.22,0,0,1-.56-.81,2.78,2.78,0,0,1-.2-1.06Zm1.31.25h2.93v-.25a1.34,1.34,0,0,0-1.47-1.45,1.32,1.32,0,0,0-1.46,1.45Z" style="fill:#1d1d1b"/><path d="M241.24,125.51h1.86v-2h1.32v2H247v1.18h-2.53v3.52a.66.66,0,0,0,.19.51.77.77,0,0,0,.54.19h1.68v1.2h-1.74a2,2,0,0,1-1.46-.52,1.8,1.8,0,0,1-.53-1.38v-3.52h-1.86Z" style="fill:#1d1d1b"/><path d="M250.28,125.51v1.14h.11a1.48,1.48,0,0,1,.62-.93,2.43,2.43,0,0,1,2.88.32,2.64,2.64,0,0,1,.59,1.82v.43h-1.35V128a1.56,1.56,0,0,0-.37-1.09,1.35,1.35,0,0,0-1-.39,1.33,1.33,0,0,0-1,.4,1.49,1.49,0,0,0-.37,1.08v4.12H249v-6.6Z" style="fill:#1d1d1b"/><path d="M255.52,125.51H257l1.39,3.63a4.42,4.42,0,0,1,.15.48c0,.15.06.3.09.43s0,.3.06.44h.1a3.59,3.59,0,0,1,0-.44c0-.12.06-.27.09-.43s.09-.32.14-.48l1.3-3.63h1.39l-3.17,8.64h-1.39l.91-2.46Z" style="fill:#1d1d1b"/><rect x="11" y="31.75" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="11" y="50.85" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="11" y="69.95" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.6"/><rect x="11" y="89.05" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10;opacity:0.8"/><rect x="11" y="108.16" width="38.2" height="19.1" style="fill:#0f9c5a;stroke:#fff;stroke-miterlimit:10"/><rect x="53.8" y="31.75" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="53.8" y="12.65" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.4"/><rect x="53.8" y="50.85" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="53.8" y="69.95" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="53.8" y="89.05" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><rect x="53.8" y="108.16" width="83.41" height="19.1" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/><line x1="144.24" y1="41.3" x2="193.76" y2="79.5" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><line x1="144.24" y1="60.4" x2="193.76" y2="79.5" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><line x1="144.24" y1="79.5" x2="193.76" y2="79.5" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="192.3 84.49 200.94 79.5 192.3 74.52 192.3 84.49" style="fill:#1d1d1b"/><line x1="144.24" y1="98.6" x2="193.76" y2="79.5" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><line x1="144.24" y1="117.71" x2="193.76" y2="79.5" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10"/><polygon points="254.5 75.67 247.28 95.85 226.19 99.69 212.32 83.34 219.55 63.16 240.64 59.32 254.5 75.67" style="fill:#e21c84;stroke:#fff;stroke-miterlimit:10;opacity:0.2"/></svg>
0 """
1 Create an illustrative figure for different kwargs
2 in buffer method.
3 """
4
5
6 import geopandas
7 import matplotlib.pyplot as plt
8
9 from shapely.geometry import Point, LineString, Polygon
10
11 s = geopandas.GeoSeries(
12 [
13 Point(0, 0),
14 LineString([(1, -1), (1, 0), (2, 0), (2, 1)]),
15 Polygon([(3, -1), (4, 0), (3, 1)]),
16 ]
17 )
18
19 fix, axs = plt.subplots(
20 3, 2, figsize=(12, 12), sharex=True, sharey=True
21 )
22 for ax in axs.flatten():
23 s.plot(ax=ax)
24 ax.set(xticks=[], yticks=[])
25
26 s.buffer(0.2).plot(ax=axs[0, 0], alpha=0.6)
27 axs[0, 0].set_title("s.buffer(0.2)")
28
29 s.buffer(0.2, resolution=2).plot(ax=axs[0, 1], alpha=0.6)
30 axs[0, 1].set_title("s.buffer(0.2, resolution=2)")
31
32 s.buffer(0.2, cap_style=2).plot(ax=axs[1, 0], alpha=0.6)
33 axs[1, 0].set_title("s.buffer(0.2, cap_style=2)")
34
35 s.buffer(0.2, cap_style=3).plot(ax=axs[1, 1], alpha=0.6)
36 axs[1, 1].set_title("s.buffer(0.2, cap_style=3)")
37
38 s.buffer(0.2, join_style=2).plot(ax=axs[2, 0], alpha=0.6)
39 axs[2, 0].set_title("s.buffer(0.2, join_style=2)")
40
41 s.buffer(0.2, join_style=3).plot(ax=axs[2, 1], alpha=0.6)
42 axs[2, 1].set_title("s.buffer(0.2, join_style=3)")
0 /*This ensures that clickable links in the SG examples are the right color*/
1 div.section a span {
2 color: #2980B9 !important
0 /* colors */
1
2 h1 {
3 color: #139C5A;
34 }
45
5 /*Copied from sphinx' basic.css to ensure the sphinx >2.0 docstrings are
6 rendered somewhat properly (xref https://github.com/numpy/numpydoc/issues/215) */
7
8 .classifier {
9 font-style: oblique;
6 h2 {
7 color: #333333;
108 }
119
12 .classifier:before {
13 font-style: normal;
14 margin: 0.5em;
15 content: ":";
10 .nav li.active>a, .navbar-nav>.active>.nav-link {
11 color: #139C5A!important;
1612 }
13
14 .toc-entry>.nav-link.active {
15 border-left-color: #139C5A;
16 color: #139C5A!important;
17 }
18
19 .nav li>a:hover {
20 color: #333333!important;
21 }
22
23 /* buttons */
24
25 .button>p>a {
26 box-shadow: 0px 4px 14px -7px #999999;
27 background-color: white;
28 border: 1px solid #bbbbbb;
29 display: inline-block;
30 cursor: pointer;
31 color: #139C5A;
32 padding: 1em 1em;
33 text-align: center;
34 text-decoration: none;
35 font-size: 140%;
36 margin: 2%;
37 width: 40%;
38 }
39
40 .button>p>a:hover {
41 border-color: #139C5A;
42 color: #e32e00;
43 }
44
45 .button>p>a:active {
46 position: relative;
47 top: 1px;
48 }
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
2 <svg width="100%" height="100%" viewBox="0 0 1531 629" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10;">
3 <g transform="matrix(1,0,0,1,-65.3935,-1793.3)">
4 <g id="Artboard1" transform="matrix(0.799349,0,0,0.6338,71.418,752.489)">
5 <rect x="-7.537" y="1642.17" width="1915.21" height="991.964" style="fill:none;"/>
6 <g transform="matrix(5.21258,0,0,6.5741,242.724,1626.89)">
7 <g transform="matrix(12,0,0,12,6.3135,144.35)">
8 <path d="M0.089,-0.1L0.287,-0.1L0.287,-0.451L0.114,-0.451L0.114,-0.55L0.394,-0.55L0.394,-0.1L0.555,-0.1L0.555,-0L0.089,-0L0.089,-0.1ZM0.247,-0.701C0.247,-0.72 0.253,-0.736 0.266,-0.748C0.278,-0.759 0.294,-0.765 0.315,-0.765L0.339,-0.765C0.36,-0.765 0.376,-0.759 0.389,-0.748C0.401,-0.736 0.407,-0.72 0.407,-0.701C0.407,-0.682 0.401,-0.666 0.389,-0.655C0.376,-0.644 0.359,-0.638 0.338,-0.638L0.315,-0.638C0.294,-0.638 0.278,-0.644 0.266,-0.655C0.253,-0.666 0.247,-0.682 0.247,-0.701Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
9 </g>
10 <g transform="matrix(12,0,0,12,13.5135,144.35)">
11 <path d="M0.079,-0.55L0.183,-0.55L0.183,-0.455L0.192,-0.455C0.199,-0.489 0.216,-0.515 0.241,-0.533C0.266,-0.551 0.299,-0.56 0.339,-0.56C0.368,-0.56 0.393,-0.555 0.416,-0.546C0.438,-0.536 0.457,-0.522 0.473,-0.505C0.488,-0.488 0.5,-0.467 0.508,-0.443C0.516,-0.418 0.52,-0.391 0.52,-0.362L0.52,-0L0.41,-0L0.41,-0.347C0.41,-0.385 0.4,-0.414 0.381,-0.435C0.362,-0.456 0.335,-0.466 0.301,-0.466C0.266,-0.466 0.239,-0.455 0.219,-0.433C0.199,-0.411 0.189,-0.381 0.189,-0.343L0.189,-0L0.079,-0L0.079,-0.55Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
12 </g>
13 <g transform="matrix(12,0,0,12,20.7135,144.35)">
14 <path d="M0.069,-0.345C0.069,-0.378 0.074,-0.408 0.083,-0.435C0.092,-0.461 0.104,-0.483 0.121,-0.502C0.137,-0.521 0.157,-0.535 0.18,-0.545C0.203,-0.555 0.229,-0.56 0.257,-0.56C0.297,-0.56 0.33,-0.551 0.357,-0.533C0.383,-0.514 0.4,-0.488 0.407,-0.455L0.416,-0.455C0.415,-0.466 0.415,-0.478 0.414,-0.489C0.413,-0.499 0.412,-0.509 0.412,-0.521C0.411,-0.532 0.411,-0.541 0.411,-0.55L0.411,-0.72L0.52,-0.72L0.52,-0L0.416,-0L0.416,-0.095L0.407,-0.095C0.4,-0.062 0.383,-0.036 0.357,-0.018C0.33,0.001 0.297,0.01 0.257,0.01C0.229,0.01 0.203,0.005 0.18,-0.005C0.157,-0.015 0.137,-0.029 0.121,-0.048C0.104,-0.067 0.092,-0.09 0.083,-0.117C0.074,-0.143 0.069,-0.174 0.069,-0.207L0.069,-0.345ZM0.179,-0.343L0.179,-0.208C0.179,-0.171 0.19,-0.141 0.211,-0.119C0.232,-0.097 0.26,-0.086 0.297,-0.086C0.332,-0.086 0.359,-0.097 0.38,-0.119C0.401,-0.141 0.411,-0.17 0.411,-0.207L0.411,-0.343C0.411,-0.38 0.401,-0.41 0.38,-0.432C0.359,-0.454 0.331,-0.465 0.297,-0.465C0.26,-0.465 0.232,-0.454 0.211,-0.433C0.19,-0.411 0.179,-0.381 0.179,-0.343Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
15 </g>
16 <g transform="matrix(12,0,0,12,27.9135,144.35)">
17 <path d="M0.069,-0.347C0.069,-0.38 0.074,-0.409 0.085,-0.436C0.096,-0.462 0.111,-0.484 0.131,-0.503C0.151,-0.521 0.175,-0.535 0.204,-0.545C0.233,-0.555 0.265,-0.56 0.3,-0.56C0.335,-0.56 0.367,-0.555 0.396,-0.545C0.424,-0.535 0.448,-0.521 0.468,-0.503C0.488,-0.484 0.503,-0.462 0.514,-0.436C0.525,-0.409 0.53,-0.38 0.53,-0.347L0.53,-0.246L0.178,-0.246L0.178,-0.207C0.178,-0.168 0.189,-0.137 0.211,-0.115C0.232,-0.093 0.262,-0.082 0.3,-0.082C0.328,-0.082 0.352,-0.086 0.373,-0.095C0.394,-0.104 0.409,-0.117 0.418,-0.134L0.526,-0.134C0.52,-0.112 0.51,-0.092 0.497,-0.075C0.484,-0.057 0.467,-0.042 0.448,-0.029C0.428,-0.016 0.405,-0.007 0.381,-0C0.356,0.007 0.329,0.01 0.3,0.01C0.265,0.01 0.233,0.005 0.205,-0.005C0.176,-0.015 0.152,-0.029 0.132,-0.048C0.112,-0.067 0.097,-0.089 0.086,-0.116C0.075,-0.142 0.069,-0.171 0.069,-0.204L0.069,-0.347ZM0.178,-0.326L0.422,-0.326L0.422,-0.347C0.422,-0.385 0.411,-0.415 0.39,-0.436C0.369,-0.457 0.339,-0.468 0.3,-0.468C0.261,-0.468 0.231,-0.457 0.21,-0.436C0.189,-0.415 0.178,-0.385 0.178,-0.347L0.178,-0.326Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
18 </g>
19 <g transform="matrix(12,0,0,12,35.1135,144.35)">
20 <path d="M0.237,-0.283L0.051,-0.55L0.179,-0.55L0.281,-0.395C0.287,-0.387 0.291,-0.379 0.294,-0.37C0.296,-0.366 0.297,-0.362 0.298,-0.359L0.303,-0.359C0.304,-0.362 0.305,-0.366 0.307,-0.37C0.309,-0.377 0.313,-0.385 0.32,-0.395L0.423,-0.55L0.549,-0.55L0.364,-0.284L0.561,-0L0.433,-0L0.322,-0.169C0.319,-0.174 0.316,-0.178 0.314,-0.183C0.311,-0.188 0.309,-0.192 0.308,-0.195C0.306,-0.199 0.304,-0.203 0.303,-0.207L0.297,-0.207C0.296,-0.203 0.294,-0.199 0.292,-0.194C0.291,-0.191 0.289,-0.187 0.287,-0.183C0.285,-0.178 0.282,-0.174 0.279,-0.169L0.166,-0L0.039,-0L0.237,-0.283Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
21 </g>
22 </g>
23 <g transform="matrix(5.21258,0,0,6.5741,511.19,1626.9)">
24 <g transform="matrix(12,0,0,12,60.8892,144.35)">
25 <path d="M0.069,-0.345C0.069,-0.378 0.074,-0.408 0.083,-0.435C0.092,-0.461 0.104,-0.483 0.121,-0.502C0.137,-0.521 0.157,-0.535 0.18,-0.545C0.203,-0.555 0.229,-0.56 0.257,-0.56C0.297,-0.56 0.33,-0.551 0.357,-0.533C0.383,-0.514 0.4,-0.488 0.407,-0.455L0.416,-0.455C0.415,-0.466 0.415,-0.478 0.414,-0.489C0.413,-0.499 0.412,-0.509 0.412,-0.521C0.411,-0.532 0.411,-0.541 0.411,-0.55L0.411,-0.72L0.52,-0.72L0.52,-0L0.416,-0L0.416,-0.095L0.407,-0.095C0.4,-0.062 0.383,-0.036 0.357,-0.018C0.33,0.001 0.297,0.01 0.257,0.01C0.229,0.01 0.203,0.005 0.18,-0.005C0.157,-0.015 0.137,-0.029 0.121,-0.048C0.104,-0.067 0.092,-0.09 0.083,-0.117C0.074,-0.143 0.069,-0.174 0.069,-0.207L0.069,-0.345ZM0.179,-0.343L0.179,-0.208C0.179,-0.171 0.19,-0.141 0.211,-0.119C0.232,-0.097 0.26,-0.086 0.297,-0.086C0.332,-0.086 0.359,-0.097 0.38,-0.119C0.401,-0.141 0.411,-0.17 0.411,-0.207L0.411,-0.343C0.411,-0.38 0.401,-0.41 0.38,-0.432C0.359,-0.454 0.331,-0.465 0.297,-0.465C0.26,-0.465 0.232,-0.454 0.211,-0.433C0.19,-0.411 0.179,-0.381 0.179,-0.343Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
26 </g>
27 <g transform="matrix(12,0,0,12,68.0892,144.35)">
28 <path d="M0.056,-0.157C0.056,-0.21 0.075,-0.253 0.112,-0.284C0.149,-0.315 0.199,-0.331 0.262,-0.331L0.411,-0.331L0.411,-0.377C0.411,-0.406 0.401,-0.429 0.381,-0.446C0.36,-0.462 0.331,-0.47 0.294,-0.47C0.265,-0.47 0.241,-0.465 0.221,-0.455C0.201,-0.444 0.188,-0.43 0.181,-0.411L0.073,-0.411C0.082,-0.457 0.106,-0.493 0.146,-0.52C0.186,-0.547 0.236,-0.56 0.295,-0.56C0.365,-0.56 0.42,-0.544 0.461,-0.512C0.501,-0.48 0.521,-0.436 0.521,-0.38L0.521,-0L0.419,-0L0.419,-0.107L0.411,-0.107C0.404,-0.071 0.384,-0.043 0.353,-0.022C0.321,-0.001 0.282,0.01 0.235,0.01C0.18,0.01 0.137,-0.005 0.105,-0.036C0.072,-0.066 0.056,-0.106 0.056,-0.157ZM0.166,-0.166C0.166,-0.138 0.175,-0.116 0.193,-0.101C0.211,-0.086 0.236,-0.078 0.269,-0.078C0.29,-0.078 0.309,-0.081 0.326,-0.086C0.343,-0.091 0.358,-0.099 0.371,-0.109C0.384,-0.118 0.394,-0.13 0.401,-0.143C0.408,-0.156 0.411,-0.17 0.411,-0.185L0.411,-0.254L0.263,-0.254C0.233,-0.254 0.209,-0.246 0.192,-0.231C0.175,-0.216 0.166,-0.194 0.166,-0.166Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
29 </g>
30 <g transform="matrix(12,0,0,12,75.2892,144.35)">
31 <path d="M0.052,-0.55L0.207,-0.55L0.207,-0.72L0.317,-0.72L0.317,-0.55L0.528,-0.55L0.528,-0.451L0.317,-0.451L0.317,-0.158C0.317,-0.14 0.322,-0.126 0.333,-0.116C0.344,-0.105 0.359,-0.1 0.378,-0.1L0.518,-0.1L0.518,-0L0.373,-0C0.322,-0 0.281,-0.014 0.252,-0.043C0.222,-0.072 0.207,-0.11 0.207,-0.158L0.207,-0.451L0.052,-0.451L0.052,-0.55Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
32 </g>
33 <g transform="matrix(12,0,0,12,82.4892,144.35)">
34 <path d="M0.056,-0.157C0.056,-0.21 0.075,-0.253 0.112,-0.284C0.149,-0.315 0.199,-0.331 0.262,-0.331L0.411,-0.331L0.411,-0.377C0.411,-0.406 0.401,-0.429 0.381,-0.446C0.36,-0.462 0.331,-0.47 0.294,-0.47C0.265,-0.47 0.241,-0.465 0.221,-0.455C0.201,-0.444 0.188,-0.43 0.181,-0.411L0.073,-0.411C0.082,-0.457 0.106,-0.493 0.146,-0.52C0.186,-0.547 0.236,-0.56 0.295,-0.56C0.365,-0.56 0.42,-0.544 0.461,-0.512C0.501,-0.48 0.521,-0.436 0.521,-0.38L0.521,-0L0.419,-0L0.419,-0.107L0.411,-0.107C0.404,-0.071 0.384,-0.043 0.353,-0.022C0.321,-0.001 0.282,0.01 0.235,0.01C0.18,0.01 0.137,-0.005 0.105,-0.036C0.072,-0.066 0.056,-0.106 0.056,-0.157ZM0.166,-0.166C0.166,-0.138 0.175,-0.116 0.193,-0.101C0.211,-0.086 0.236,-0.078 0.269,-0.078C0.29,-0.078 0.309,-0.081 0.326,-0.086C0.343,-0.091 0.358,-0.099 0.371,-0.109C0.384,-0.118 0.394,-0.13 0.401,-0.143C0.408,-0.156 0.411,-0.17 0.411,-0.185L0.411,-0.254L0.263,-0.254C0.233,-0.254 0.209,-0.246 0.192,-0.231C0.175,-0.216 0.166,-0.194 0.166,-0.166Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
35 </g>
36 </g>
37 <g transform="matrix(5.21258,0,0,6.5741,242.724,1632)">
38 <g opacity="0.2">
39 <g transform="matrix(-1,0,0,1,48.676,-90.177)">
40 <rect x="5.237" y="117.958" width="38.202" height="19.101" style="fill:rgb(15,157,90);stroke:white;stroke-width:1px;"/>
41 </g>
42 </g>
43 </g>
44 <g transform="matrix(5.21258,0,0,6.5741,242.724,1632)">
45 <g opacity="0.4">
46 <g transform="matrix(-1,0,0,1,48.676,-51.975)">
47 <rect x="5.237" y="98.857" width="38.202" height="19.101" style="fill:rgb(15,157,90);stroke:white;stroke-width:1px;"/>
48 </g>
49 </g>
50 </g>
51 <g transform="matrix(5.21258,0,0,6.5741,242.724,1632)">
52 <g opacity="0.6">
53 <g transform="matrix(-1,0,0,1,48.676,-13.771)">
54 <rect x="5.237" y="79.755" width="38.202" height="19.101" style="fill:rgb(15,157,90);stroke:white;stroke-width:1px;"/>
55 </g>
56 </g>
57 </g>
58 <g transform="matrix(5.21258,0,0,6.5741,242.724,1632)">
59 <g opacity="0.8">
60 <g transform="matrix(-1,0,0,1,48.676,24.431)">
61 <rect x="5.237" y="60.654" width="38.202" height="19.101" style="fill:rgb(15,157,90);stroke:white;stroke-width:1px;"/>
62 </g>
63 </g>
64 </g>
65 <g transform="matrix(-5.21258,0,0,6.5741,496.451,2043.75)">
66 <rect x="5.237" y="41.553" width="38.202" height="19.101" style="fill:rgb(15,157,90);stroke:white;stroke-width:1px;"/>
67 </g>
68 <g transform="matrix(-3.15195,0,0,6.5741,912.853,1039.17)">
69 <rect x="48.041" y="117.958" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
70 </g>
71 <g transform="matrix(-3.15195,0,0,6.5741,1188.41,1039.17)">
72 <rect x="48.041" y="117.958" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
73 </g>
74 <g transform="matrix(-3.15195,0,0,6.5741,1464.92,1039.17)">
75 <rect x="48.041" y="117.958" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
76 </g>
77 <g transform="matrix(-3.15195,0,0,6.5741,912.853,788.023)">
78 <rect x="48.041" y="137.059" width="83.409" height="19.101" style="fill:rgb(255,211,85);stroke:white;stroke-width:1.21px;"/>
79 </g>
80 <g transform="matrix(-3.15195,0,0,6.5741,1188.41,788.023)">
81 <rect x="48.041" y="137.059" width="83.409" height="19.101" style="fill:rgb(255,211,85);stroke:white;stroke-width:1.21px;"/>
82 </g>
83 <g transform="matrix(-3.15195,0,0,6.5741,1464.92,788.023)">
84 <rect x="48.041" y="137.059" width="83.409" height="19.101" style="fill:rgb(255,211,85);stroke:white;stroke-width:1.21px;"/>
85 </g>
86 <g transform="matrix(-3.15195,0,0,6.5741,912.853,1290.31)">
87 <rect x="48.041" y="98.857" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
88 </g>
89 <g transform="matrix(-3.15195,0,0,6.5741,1188.41,1290.31)">
90 <rect x="48.041" y="98.857" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
91 </g>
92 <g transform="matrix(-3.15195,0,0,6.5741,1464.92,1290.31)">
93 <rect x="48.041" y="98.857" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
94 </g>
95 <g transform="matrix(-3.15195,0,0,6.5741,912.853,1541.47)">
96 <rect x="48.041" y="79.755" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
97 </g>
98 <g transform="matrix(-3.15195,0,0,6.5741,1188.41,1541.47)">
99 <rect x="48.041" y="79.755" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
100 </g>
101 <g transform="matrix(-3.15195,0,0,6.5741,1464.92,1541.47)">
102 <rect x="48.041" y="79.755" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
103 </g>
104 <g transform="matrix(-3.15195,0,0,6.5741,912.853,1792.61)">
105 <rect x="48.041" y="60.654" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
106 </g>
107 <g transform="matrix(-3.15195,0,0,6.5741,1188.41,1792.61)">
108 <rect x="48.041" y="60.654" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
109 </g>
110 <g transform="matrix(-3.15195,0,0,6.5741,1464.92,1792.61)">
111 <rect x="48.041" y="60.654" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
112 </g>
113 <g transform="matrix(-3.15195,0,0,6.5741,912.853,2043.75)">
114 <rect x="48.041" y="41.553" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
115 </g>
116 <g transform="matrix(-3.15195,0,0,6.5741,1188.41,2043.75)">
117 <rect x="48.041" y="41.553" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
118 </g>
119 <g transform="matrix(-3.15195,0,0,6.5741,1464.92,2043.75)">
120 <rect x="48.041" y="41.553" width="83.409" height="19.101" style="fill:rgb(255,238,196);stroke:white;stroke-width:1.21px;"/>
121 </g>
122 <g transform="matrix(-5.21258,0,0,6.5741,496.196,1539.33)">
123 <rect x="3.188" y="39.493" width="42.251" height="99.95" style="fill:none;stroke:rgb(29,29,27);stroke-width:0.5px;"/>
124 </g>
125 <g transform="matrix(-9.67868,0,0,6.5741,1773.61,1413.32)">
126 <rect x="46.279" y="39.493" width="86.813" height="119.117" style="fill:none;stroke:rgb(29,29,27);stroke-width:0.34px;"/>
127 </g>
128 <g transform="matrix(-3.39963,0,0,6.5741,1784.48,1413.32)">
129 <rect x="46.279" y="39.493" width="86.813" height="119.117" style="fill:none;stroke:rgb(29,29,27);stroke-width:0.59px;"/>
130 </g>
131 <g transform="matrix(3.12731,0,0,6.5741,608.309,1635.41)">
132 <g opacity="0.2">
133 <g transform="matrix(-1,0,0,1,557.99,-90.177)">
134 <rect x="237.291" y="117.958" width="83.408" height="19.101" style="fill:rgb(226,28,132);stroke:white;stroke-width:1.21px;"/>
135 </g>
136 </g>
137 </g>
138 <g transform="matrix(3.12731,0,0,6.5741,608.309,1635.41)">
139 <g opacity="0.4">
140 <g transform="matrix(-1,0,0,1,557.99,-128.379)">
141 <rect x="237.291" y="137.059" width="83.408" height="19.101" style="fill:rgb(226,28,132);stroke:white;stroke-width:1.21px;"/>
142 </g>
143 </g>
144 </g>
145 <g transform="matrix(3.12731,0,0,6.5741,608.309,1635.41)">
146 <g opacity="0.2">
147 <g transform="matrix(-1,0,0,1,557.99,-51.975)">
148 <rect x="237.291" y="98.857" width="83.408" height="19.101" style="fill:rgb(226,28,132);stroke:white;stroke-width:1.21px;"/>
149 </g>
150 </g>
151 </g>
152 <g transform="matrix(3.12731,0,0,6.5741,608.309,1635.41)">
153 <g opacity="0.2">
154 <g transform="matrix(-1,0,0,1,557.99,-13.771)">
155 <rect x="237.291" y="79.755" width="83.408" height="19.101" style="fill:rgb(226,28,132);stroke:white;stroke-width:1.21px;"/>
156 </g>
157 </g>
158 </g>
159 <g transform="matrix(3.12731,0,0,6.5741,608.309,1635.41)">
160 <g opacity="0.2">
161 <g transform="matrix(-1,0,0,1,557.99,24.431)">
162 <rect x="237.291" y="60.654" width="83.408" height="19.101" style="fill:rgb(226,28,132);stroke:white;stroke-width:1.21px;"/>
163 </g>
164 </g>
165 </g>
166 <g transform="matrix(3.12731,0,0,6.5741,608.309,1635.41)">
167 <g opacity="0.2">
168 <g transform="matrix(-1,0,0,1,557.99,62.633)">
169 <rect x="237.291" y="41.553" width="83.408" height="19.101" style="fill:rgb(226,28,132);stroke:white;stroke-width:1.21px;"/>
170 </g>
171 </g>
172 </g>
173 <g transform="matrix(5.21258,0,0,6.5741,1013.41,1626.9)">
174 <g transform="matrix(12,0,0,12,60.8892,144.35)">
175 <path d="M0.065,-0.348C0.065,-0.38 0.069,-0.409 0.078,-0.436C0.087,-0.462 0.099,-0.484 0.116,-0.503C0.133,-0.521 0.153,-0.535 0.176,-0.545C0.199,-0.555 0.225,-0.56 0.254,-0.56C0.295,-0.56 0.329,-0.55 0.356,-0.531C0.383,-0.512 0.401,-0.485 0.409,-0.45L0.416,-0.45L0.416,-0.55L0.52,-0.55L0.52,-0.033C0.52,0.03 0.5,0.079 0.461,0.116C0.421,0.152 0.366,0.17 0.297,0.17L0.155,0.17L0.155,0.076L0.297,0.076C0.332,0.076 0.36,0.066 0.381,0.047C0.401,0.028 0.411,0.001 0.411,-0.033L0.411,-0.052L0.415,-0.152L0.409,-0.152C0.4,-0.117 0.382,-0.09 0.355,-0.071C0.328,-0.052 0.294,-0.042 0.253,-0.042C0.224,-0.042 0.199,-0.047 0.176,-0.057C0.153,-0.067 0.133,-0.081 0.117,-0.1C0.1,-0.118 0.088,-0.14 0.079,-0.166C0.07,-0.192 0.065,-0.221 0.065,-0.253L0.065,-0.348ZM0.176,-0.255C0.176,-0.218 0.187,-0.19 0.208,-0.169C0.229,-0.148 0.257,-0.137 0.293,-0.137C0.33,-0.137 0.359,-0.148 0.38,-0.169C0.401,-0.19 0.411,-0.218 0.411,-0.255L0.411,-0.347C0.411,-0.384 0.401,-0.413 0.38,-0.434C0.359,-0.455 0.33,-0.465 0.293,-0.465C0.257,-0.465 0.229,-0.455 0.208,-0.434C0.187,-0.413 0.176,-0.384 0.176,-0.347L0.176,-0.255Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
176 </g>
177 <g transform="matrix(12,0,0,12,68.0892,144.35)">
178 <path d="M0.069,-0.347C0.069,-0.38 0.074,-0.409 0.085,-0.436C0.096,-0.462 0.111,-0.484 0.131,-0.503C0.151,-0.521 0.175,-0.535 0.204,-0.545C0.233,-0.555 0.265,-0.56 0.3,-0.56C0.335,-0.56 0.367,-0.555 0.396,-0.545C0.424,-0.535 0.448,-0.521 0.468,-0.503C0.488,-0.484 0.503,-0.462 0.514,-0.436C0.525,-0.409 0.53,-0.38 0.53,-0.347L0.53,-0.246L0.178,-0.246L0.178,-0.207C0.178,-0.168 0.189,-0.137 0.211,-0.115C0.232,-0.093 0.262,-0.082 0.3,-0.082C0.328,-0.082 0.352,-0.086 0.373,-0.095C0.394,-0.104 0.409,-0.117 0.418,-0.134L0.526,-0.134C0.52,-0.112 0.51,-0.092 0.497,-0.075C0.484,-0.057 0.467,-0.042 0.448,-0.029C0.428,-0.016 0.405,-0.007 0.381,-0C0.356,0.007 0.329,0.01 0.3,0.01C0.265,0.01 0.233,0.005 0.205,-0.005C0.176,-0.015 0.152,-0.029 0.132,-0.048C0.112,-0.067 0.097,-0.089 0.086,-0.116C0.075,-0.142 0.069,-0.171 0.069,-0.204L0.069,-0.347ZM0.178,-0.326L0.422,-0.326L0.422,-0.347C0.422,-0.385 0.411,-0.415 0.39,-0.436C0.369,-0.457 0.339,-0.468 0.3,-0.468C0.261,-0.468 0.231,-0.457 0.21,-0.436C0.189,-0.415 0.178,-0.385 0.178,-0.347L0.178,-0.326Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
179 </g>
180 <g transform="matrix(12,0,0,12,75.2892,144.35)">
181 <path d="M0.3,0.01C0.265,0.01 0.233,0.005 0.205,-0.006C0.176,-0.016 0.152,-0.031 0.132,-0.05C0.112,-0.069 0.097,-0.091 0.086,-0.118C0.075,-0.145 0.069,-0.174 0.069,-0.207L0.069,-0.344C0.069,-0.377 0.075,-0.406 0.086,-0.433C0.097,-0.46 0.112,-0.483 0.132,-0.502C0.152,-0.521 0.176,-0.535 0.205,-0.546C0.233,-0.556 0.265,-0.561 0.3,-0.561C0.335,-0.561 0.367,-0.556 0.396,-0.546C0.424,-0.536 0.448,-0.522 0.468,-0.503C0.488,-0.484 0.503,-0.461 0.515,-0.435C0.526,-0.408 0.531,-0.378 0.531,-0.345L0.531,-0.207C0.531,-0.174 0.526,-0.145 0.515,-0.118C0.504,-0.091 0.489,-0.068 0.469,-0.049C0.449,-0.03 0.425,-0.016 0.396,-0.006C0.367,0.005 0.335,0.01 0.3,0.01ZM0.179,-0.207C0.179,-0.17 0.19,-0.14 0.211,-0.119C0.232,-0.098 0.262,-0.087 0.3,-0.087C0.337,-0.087 0.367,-0.098 0.389,-0.119C0.41,-0.14 0.421,-0.17 0.421,-0.207L0.421,-0.344C0.421,-0.381 0.41,-0.411 0.389,-0.432C0.367,-0.453 0.337,-0.464 0.3,-0.464C0.263,-0.464 0.233,-0.453 0.212,-0.432C0.19,-0.411 0.179,-0.381 0.179,-0.344L0.179,-0.207Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
182 </g>
183 <g transform="matrix(12,0,0,12,82.4892,144.35)">
184 <path d="M0.055,-0L0.055,-0.55L0.146,-0.55L0.146,-0.469L0.154,-0.469C0.156,-0.498 0.165,-0.52 0.181,-0.536C0.196,-0.552 0.217,-0.56 0.244,-0.56C0.269,-0.56 0.289,-0.552 0.304,-0.537C0.319,-0.522 0.329,-0.499 0.336,-0.469L0.343,-0.469C0.345,-0.498 0.354,-0.52 0.37,-0.536C0.386,-0.552 0.408,-0.56 0.435,-0.56C0.468,-0.56 0.495,-0.548 0.516,-0.523C0.536,-0.498 0.546,-0.463 0.546,-0.419L0.546,-0L0.445,-0L0.445,-0.414C0.445,-0.435 0.441,-0.452 0.432,-0.463C0.423,-0.474 0.411,-0.48 0.394,-0.48C0.359,-0.48 0.341,-0.457 0.341,-0.41L0.341,-0L0.26,-0L0.26,-0.414C0.26,-0.435 0.255,-0.452 0.246,-0.463C0.237,-0.474 0.223,-0.48 0.206,-0.48C0.171,-0.48 0.154,-0.457 0.154,-0.41L0.154,-0L0.055,-0Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
185 </g>
186 <g transform="matrix(12,0,0,12,89.6892,144.35)">
187 <path d="M0.069,-0.347C0.069,-0.38 0.074,-0.409 0.085,-0.436C0.096,-0.462 0.111,-0.484 0.131,-0.503C0.151,-0.521 0.175,-0.535 0.204,-0.545C0.233,-0.555 0.265,-0.56 0.3,-0.56C0.335,-0.56 0.367,-0.555 0.396,-0.545C0.424,-0.535 0.448,-0.521 0.468,-0.503C0.488,-0.484 0.503,-0.462 0.514,-0.436C0.525,-0.409 0.53,-0.38 0.53,-0.347L0.53,-0.246L0.178,-0.246L0.178,-0.207C0.178,-0.168 0.189,-0.137 0.211,-0.115C0.232,-0.093 0.262,-0.082 0.3,-0.082C0.328,-0.082 0.352,-0.086 0.373,-0.095C0.394,-0.104 0.409,-0.117 0.418,-0.134L0.526,-0.134C0.52,-0.112 0.51,-0.092 0.497,-0.075C0.484,-0.057 0.467,-0.042 0.448,-0.029C0.428,-0.016 0.405,-0.007 0.381,-0C0.356,0.007 0.329,0.01 0.3,0.01C0.265,0.01 0.233,0.005 0.205,-0.005C0.176,-0.015 0.152,-0.029 0.132,-0.048C0.112,-0.067 0.097,-0.089 0.086,-0.116C0.075,-0.142 0.069,-0.171 0.069,-0.204L0.069,-0.347ZM0.178,-0.326L0.422,-0.326L0.422,-0.347C0.422,-0.385 0.411,-0.415 0.39,-0.436C0.369,-0.457 0.339,-0.468 0.3,-0.468C0.261,-0.468 0.231,-0.457 0.21,-0.436C0.189,-0.415 0.178,-0.385 0.178,-0.347L0.178,-0.326Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
188 </g>
189 <g transform="matrix(12,0,0,12,96.8892,144.35)">
190 <path d="M0.052,-0.55L0.207,-0.55L0.207,-0.72L0.317,-0.72L0.317,-0.55L0.528,-0.55L0.528,-0.451L0.317,-0.451L0.317,-0.158C0.317,-0.14 0.322,-0.126 0.333,-0.116C0.344,-0.105 0.359,-0.1 0.378,-0.1L0.518,-0.1L0.518,-0L0.373,-0C0.322,-0 0.281,-0.014 0.252,-0.043C0.222,-0.072 0.207,-0.11 0.207,-0.158L0.207,-0.451L0.052,-0.451L0.052,-0.55Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
191 </g>
192 <g transform="matrix(12,0,0,12,104.089,144.35)">
193 <path d="M0.206,-0.55L0.206,-0.455L0.215,-0.455C0.222,-0.488 0.24,-0.514 0.267,-0.533C0.294,-0.551 0.327,-0.56 0.368,-0.56C0.427,-0.56 0.473,-0.542 0.506,-0.506C0.539,-0.469 0.556,-0.419 0.556,-0.354L0.556,-0.318L0.443,-0.318L0.443,-0.343C0.443,-0.382 0.433,-0.412 0.412,-0.434C0.391,-0.455 0.363,-0.466 0.327,-0.466C0.292,-0.466 0.264,-0.455 0.243,-0.433C0.222,-0.411 0.212,-0.381 0.212,-0.343L0.212,-0L0.102,-0L0.102,-0.55L0.206,-0.55Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
194 </g>
195 <g transform="matrix(12,0,0,12,111.289,144.35)">
196 <path d="M0.042,-0.55L0.162,-0.55L0.278,-0.247C0.283,-0.234 0.288,-0.221 0.291,-0.208C0.294,-0.195 0.296,-0.182 0.298,-0.171C0.3,-0.158 0.302,-0.146 0.303,-0.135L0.311,-0.135C0.312,-0.146 0.313,-0.158 0.315,-0.171C0.317,-0.182 0.32,-0.194 0.323,-0.207C0.326,-0.22 0.329,-0.234 0.334,-0.247L0.442,-0.55L0.558,-0.55L0.294,0.17L0.178,0.17L0.254,-0.035L0.042,-0.55Z" style="fill:rgb(29,29,27);fill-rule:nonzero;"/>
197 </g>
198 </g>
199 </g>
200 </g>
201 </svg>
0 <svg id="Vrstva_1" data-name="Vrstva 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 313.97 313.97"><defs><style>.cls-1{fill:#fec905;}.cls-2{fill:#e21c84;}.cls-3{fill:#0f9c5a;}</style></defs><rect class="cls-1" x="160.46" y="149.32" width="24.09" height="23.6"/><rect class="cls-2" x="198.36" y="190.51" width="24.09" height="23.6"/><rect class="cls-3" x="160.46" y="84.7" width="24.09" height="50.02"/><rect class="cls-3" x="160.46" y="187.45" width="24.09" height="50.02"/><rect class="cls-3" x="198.36" y="125.89" width="24.09" height="50.02"/><path class="cls-3" d="M156.34,19.69C80,19.69,17.89,81.8,17.89,158.14S80,296.6,156.34,296.6s138.45-62.11,138.45-138.46S232.68,19.69,156.34,19.69ZM269.79,158.14a112.88,112.88,0,0,1-9.45,45.32V112.82A112.92,112.92,0,0,1,269.79,158.14Zm-47.34,92.15V228.72H198.36v34.81a112.94,112.94,0,0,1-42,8.07c-3.54,0-7-.18-10.48-.49V125.83H121.77V266.2A113.44,113.44,0,1,1,236.25,77.68V237.94h.66A115.12,115.12,0,0,1,222.45,250.29Z"/></svg>
0 <svg id="Vrstva_1" data-name="Vrstva 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 313.97 313.97"><defs><style>.cls-1{fill:#0f9c5a;}.cls-2{fill:#fff;}.cls-3{fill:#fec905;}.cls-4{fill:#e21c84;}</style></defs><rect class="cls-1" width="313.97" height="313.97"/><rect class="cls-2" x="159.41" y="84.7" width="24.09" height="50.02"/><rect class="cls-2" x="159.41" y="187.45" width="24.09" height="50.02"/><rect class="cls-3" x="159.41" y="149.32" width="24.09" height="23.6"/><rect class="cls-2" x="197.31" y="125.89" width="24.09" height="50.02"/><rect class="cls-4" x="197.31" y="190.51" width="24.09" height="23.6"/><path class="cls-2" d="M155.29,19.69C79,19.69,16.84,81.8,16.84,158.14S79,296.6,155.29,296.6s138.46-62.11,138.46-138.46S231.64,19.69,155.29,19.69ZM268.75,158.14a112.72,112.72,0,0,1-9.46,45.32V112.82A112.75,112.75,0,0,1,268.75,158.14ZM221.4,250.29V228.72H197.31v34.81a112.9,112.9,0,0,1-42,8.07c-3.53,0-7-.18-10.48-.49V125.83H120.72V266.2A113.44,113.44,0,1,1,235.2,77.68V237.94h.66A114.42,114.42,0,0,1,221.4,250.29Z"/></svg>
0 <svg id="Vrstva_1" data-name="Vrstva 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1324.25 412.98"><defs><style>.cls-1{fill:#fec905;}.cls-2{fill:#e21c84;}.cls-3{fill:#0f9c5a;}</style></defs><rect class="cls-1" x="211.63" y="198.82" width="24.09" height="23.6"/><rect class="cls-2" x="249.53" y="240.01" width="24.09" height="23.6"/><path class="cls-3" d="M471.5,267c-31.14,0-57.42-22.14-57.42-57.06s27.36-56.34,58.86-56.34c14.22,0,29.34,4.14,38.34,11v20c-9-7.56-20.16-13.32-36.18-13.32-22.5,0-38.16,14.76-38.16,39.6,0,24.3,15.3,39.6,36.9,39.6,8.28,0,15.3-1.62,20.88-4.5V224.9H475.64V208.7h40.14v47.7C509.66,258.92,492.74,267,471.5,267Z"/><path class="cls-3" d="M601.1,225.62H549.26c-.54,11.88,5.58,25.38,26.46,25.38,8.82,0,19.26-4,25.2-9.18v15.12c-7.38,5.76-18.72,9.18-31.68,9.18-23.94,0-40.68-17.46-40.68-41.58,0-24.84,19.08-40.5,39.24-40.5,19.8,0,34.56,12.42,34.56,30.78A49.41,49.41,0,0,1,601.1,225.62Zm-32.76-28.26c-8.82,0-16.38,5-18.18,17.1h33.3C585.26,205.1,579.14,197.36,568.34,197.36Z"/><path class="cls-3" d="M654.37,266.84c-25.19,0-43.73-18.18-43.73-41.76,0-23.4,18.54-41.76,43.73-41.76,25,0,43.56,18.36,43.56,41.76C697.93,248.66,679.39,266.84,654.37,266.84Zm0-68.22c-14,0-23.21,10.8-23.21,26.46,0,15.84,9.36,26.46,23.21,26.46s23-10.62,23-26.46C677.41,209.42,668.23,198.62,654.37,198.62Z"/><path class="cls-3" d="M751,224.72H732V264H710V156h41c25.92,0,37.44,15.84,37.44,34.38C788.47,209.06,777,224.72,751,224.72Zm-3.6-53.1H732v37.44h15.48c14.22,0,19.26-8.46,19.26-18.72C766.69,180.26,761.65,171.62,747.43,171.62Z"/><path class="cls-3" d="M858,264l-.72-12.42c-6.48,9.54-18,14.58-29,14.58-21,0-36.53-17.64-36.53-41s15.48-41,36.53-41c11,0,22.5,5,29,14.58L858,186.2h18.9V264Zm-23.22-64.44c-12.24,0-22.14,9.54-22.14,25.56s9.9,25.56,22.14,25.56,22.14-9.54,22.14-25.56S847,199.52,834.73,199.52Z"/><path class="cls-3" d="M949.57,264v-43c0-15.12-5.22-20.16-14.76-20.16-9.9,0-20.7,9-20.7,19.8V264H893.24V186.2h19.07l.9,14.4C918.43,190.7,930.13,184,942,184c20.7,0,28.44,14.4,28.44,33.66V264Z"/><path class="cls-3" d="M1048.39,264l-.72-12.42c-6.48,9.54-18,14.58-29,14.58-21.06,0-36.54-17.64-36.54-41s15.48-41,36.54-41c10.44,0,21.06,4.32,27.72,12.78V156h20.88V264Zm-23.22-64.44c-12.24,0-22.14,9.54-22.14,25.56s9.9,25.56,22.14,25.56,22.14-9.54,22.14-25.56S1037.41,199.52,1025.17,199.52Z"/><path class="cls-3" d="M1145.41,264l-.72-12.42c-6.48,9.54-18,14.58-29,14.58-21.06,0-36.54-17.64-36.54-41s15.48-41,36.54-41c11,0,22.5,5,29,14.58l.72-12.42h18.9V264Zm-23.22-64.44c-12.24,0-22.14,9.54-22.14,25.56s9.9,25.56,22.14,25.56,22.14-9.54,22.14-25.56S1134.43,199.52,1122.19,199.52Z"/><path class="cls-3" d="M1206.43,266.48a61.17,61.17,0,0,1-31.14-8.82l3.42-14.4c6.3,3.78,15.84,8.64,27.36,8.64,8.28,0,14-2.52,14-9,0-5.58-5.94-7.56-16.56-10.08-19.08-4.14-25.92-14.22-25.92-25.2,0-12.24,9.54-23.76,30.6-23.76,12.78,0,23.94,5.58,26.46,7l-3.42,13.68a45.3,45.3,0,0,0-22.5-6.48c-8.46,0-12.6,2.88-12.6,7.56,0,5.22,5.4,7.56,13.68,9.54,20.52,4.32,28.8,13.86,28.8,24.3C1238.65,256.22,1226.41,266.48,1206.43,266.48Z"/><rect class="cls-3" x="211.63" y="134.2" width="24.09" height="50.02"/><rect class="cls-3" x="211.63" y="236.95" width="24.09" height="50.02"/><rect class="cls-3" x="249.53" y="175.39" width="24.09" height="50.02"/><path class="cls-3" d="M207.51,69.19c-76.34,0-138.45,62.11-138.45,138.45S131.17,346.1,207.51,346.1,346,284,346,207.64,283.85,69.19,207.51,69.19ZM321,207.64A112.84,112.84,0,0,1,311.51,253V162.32A112.92,112.92,0,0,1,321,207.64Zm-47.34,92.15V278.22H249.53V313a112.9,112.9,0,0,1-42,8.07c-3.53,0-7-.17-10.48-.49V175.33H172.94V315.7A113.44,113.44,0,1,1,287.42,127.19V287.44h.66A114.42,114.42,0,0,1,273.62,299.79Z"/></svg>
0 <svg id="Vrstva_1" data-name="Vrstva 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1324.25 412.98"><defs><style>.cls-1{fill:#0f9c5a;}.cls-2{fill:#fff;}.cls-3{fill:#fec905;}.cls-4{fill:#e21c84;}</style></defs><rect class="cls-1" width="1324.25" height="412.98"/><path class="cls-2" d="M484.46,267c-31.13,0-57.41-22.14-57.41-57.06s27.36-56.34,58.85-56.34c14.22,0,29.34,4.14,38.34,11v20c-9-7.56-20.16-13.32-36.18-13.32-22.5,0-38.15,14.76-38.15,39.6,0,24.3,15.29,39.6,36.89,39.6,8.28,0,15.3-1.62,20.88-4.5V224.9H488.6V208.7h40.14v47.7C522.62,258.92,505.7,267,484.46,267Z"/><path class="cls-2" d="M614.06,225.62H562.22C561.68,237.5,567.8,251,588.68,251c8.82,0,19.26-4,25.2-9.18v15.12c-7.38,5.76-18.72,9.18-31.68,9.18-23.94,0-40.68-17.46-40.68-41.58,0-24.84,19.08-40.5,39.24-40.5,19.8,0,34.56,12.42,34.56,30.78A49.41,49.41,0,0,1,614.06,225.62ZM581.3,197.36c-8.82,0-16.38,5-18.18,17.1h33.3C598.22,205.1,592.1,197.36,581.3,197.36Z"/><path class="cls-2" d="M667.34,266.84c-25.2,0-43.74-18.18-43.74-41.76,0-23.4,18.54-41.76,43.74-41.76,25,0,43.56,18.36,43.56,41.76C710.9,248.66,692.36,266.84,667.34,266.84Zm0-68.22c-14,0-23.22,10.8-23.22,26.46,0,15.84,9.36,26.46,23.22,26.46s23-10.62,23-26.46C690.38,209.42,681.2,198.62,667.34,198.62Z"/><path class="cls-2" d="M764,224.72H744.92V264H723V156h41c25.92,0,37.44,15.84,37.44,34.38C801.44,209.06,789.92,224.72,764,224.72Zm-3.6-53.1H744.92v37.44H760.4c14.22,0,19.26-8.46,19.26-18.72C779.66,180.26,774.62,171.62,760.4,171.62Z"/><path class="cls-2" d="M870.92,264l-.72-12.42c-6.48,9.54-18,14.58-29,14.58-21.06,0-36.54-17.64-36.54-41s15.48-41,36.54-41c11,0,22.5,5,29,14.58l.72-12.42h18.9V264ZM847.7,199.52c-12.24,0-22.14,9.54-22.14,25.56s9.9,25.56,22.14,25.56,22.14-9.54,22.14-25.56S859.94,199.52,847.7,199.52Z"/><path class="cls-2" d="M962.54,264v-43c0-15.12-5.22-20.16-14.76-20.16-9.9,0-20.7,9-20.7,19.8V264H906.2V186.2h19.08l.9,14.4C931.4,190.7,943.1,184,955,184c20.7,0,28.44,14.4,28.44,33.66V264Z"/><path class="cls-2" d="M1061.36,264l-.72-12.42c-6.48,9.54-18,14.58-29,14.58-21.06,0-36.54-17.64-36.54-41s15.48-41,36.54-41c10.44,0,21.06,4.32,27.72,12.78V156h20.88V264Zm-23.22-64.44c-12.24,0-22.14,9.54-22.14,25.56s9.9,25.56,22.14,25.56,22.14-9.54,22.14-25.56S1050.38,199.52,1038.14,199.52Z"/><path class="cls-2" d="M1158.38,264l-.72-12.42c-6.48,9.54-18,14.58-29,14.58-21.06,0-36.54-17.64-36.54-41s15.48-41,36.54-41c11,0,22.5,5,29,14.58l.72-12.42h18.89V264Zm-23.22-64.44c-12.24,0-22.14,9.54-22.14,25.56s9.9,25.56,22.14,25.56,22.14-9.54,22.14-25.56S1147.4,199.52,1135.16,199.52Z"/><path class="cls-2" d="M1219.4,266.48a61.17,61.17,0,0,1-31.14-8.82l3.42-14.4c6.3,3.78,15.84,8.64,27.36,8.64,8.28,0,14-2.52,14-9,0-5.58-5.94-7.56-16.56-10.08-19.08-4.14-25.92-14.22-25.92-25.2,0-12.24,9.54-23.76,30.6-23.76,12.78,0,23.93,5.58,26.46,7l-3.42,13.68a45.3,45.3,0,0,0-22.5-6.48c-8.46,0-12.6,2.88-12.6,7.56,0,5.22,5.4,7.56,13.68,9.54,20.52,4.32,28.79,13.86,28.79,24.3C1251.61,256.22,1239.38,266.48,1219.4,266.48Z"/><rect class="cls-2" x="224.59" y="134.2" width="24.09" height="50.02"/><rect class="cls-2" x="224.59" y="236.95" width="24.09" height="50.02"/><rect class="cls-3" x="224.59" y="198.82" width="24.09" height="23.6"/><rect class="cls-2" x="262.49" y="175.39" width="24.09" height="50.02"/><rect class="cls-4" x="262.49" y="240.01" width="24.09" height="23.6"/><path class="cls-2" d="M220.48,69.19C144.13,69.19,82,131.3,82,207.64S144.13,346.1,220.48,346.1,358.93,284,358.93,207.64,296.82,69.19,220.48,69.19ZM333.93,207.64A112.68,112.68,0,0,1,324.47,253V162.32A112.75,112.75,0,0,1,333.93,207.64Zm-47.35,92.15V278.22H262.49V313a112.89,112.89,0,0,1-42,8.07c-3.54,0-7-.17-10.49-.49V175.33H185.9V315.7A113.44,113.44,0,1,1,300.38,127.19V287.44h.67A115.21,115.21,0,0,1,286.58,299.79Z"/></svg>
0 <?xml version="1.0" encoding="utf-8"?>
1 <!-- Generator: Adobe Illustrator 24.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
2 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3 viewBox="0 0 1393.8 292.8" style="enable-background:new 0 0 1393.8 292.8;" xml:space="preserve">
4 <style type="text/css">
5 .st0{fill:#130754;}
6 .st1{fill:#139C5A;}
7 .st2{fill:#04542F;}
8 .st3{fill:#166799;}
9 .st4{fill:#FFCA00;}
10 .st5{fill:#E70488;}
11 .st6{fill:#FFFFFF;stroke:#9C9C9C;stroke-width:0.75;stroke-miterlimit:10;}
12 .st7{fill:#FFFFFF;}
13 </style>
14 <g id="Layer_7">
15 </g>
16 <g id="Layer_1">
17 </g>
18 <g id="Layer_6">
19 </g>
20 <g id="Layer_2">
21 </g>
22 <g id="Layer_5">
23 <rect x="243.2" y="137.8" class="st4" width="24.1" height="23.6"/>
24 <rect x="281.1" y="179" class="st5" width="24.1" height="23.6"/>
25 <g>
26 <path class="st1" d="M503,206c-31.1,0-57.4-22.1-57.4-57.1c0-34.9,27.4-56.3,58.9-56.3c14.2,0,29.3,4.1,38.3,11v20
27 c-9-7.6-20.2-13.3-36.2-13.3c-22.5,0-38.2,14.8-38.2,39.6c0,24.3,15.3,39.6,36.9,39.6c8.3,0,15.3-1.6,20.9-4.5v-21.1h-19.1v-16.2
28 h40.1v47.7C541.2,197.9,524.3,206,503,206z"/>
29 <path class="st1" d="M632.6,164.6h-51.8c-0.5,11.9,5.6,25.4,26.5,25.4c8.8,0,19.3-4,25.2-9.2V196c-7.4,5.8-18.7,9.2-31.7,9.2
30 c-23.9,0-40.7-17.5-40.7-41.6c0-24.8,19.1-40.5,39.2-40.5c19.8,0,34.6,12.4,34.6,30.8C633.9,157.3,633.4,161.9,632.6,164.6z
31 M599.9,136.4c-8.8,0-16.4,5-18.2,17.1H615C616.8,144.1,610.7,136.4,599.9,136.4z"/>
32 <path class="st1" d="M685.9,205.9c-25.2,0-43.7-18.2-43.7-41.8c0-23.4,18.5-41.8,43.7-41.8c25,0,43.6,18.4,43.6,41.8
33 C729.5,187.7,710.9,205.9,685.9,205.9z M685.9,137.6c-14,0-23.2,10.8-23.2,26.5c0,15.8,9.4,26.5,23.2,26.5s23-10.6,23-26.5
34 C709,148.4,699.8,137.6,685.9,137.6z"/>
35 <path class="st1" d="M782.6,163.7h-19.1V203h-22V95h41c25.9,0,37.4,15.8,37.4,34.4C820,148.1,808.5,163.7,782.6,163.7z M779,110.6
36 h-15.5v37.4H779c14.2,0,19.3-8.5,19.3-18.7C798.2,119.3,793.2,110.6,779,110.6z"/>
37 <path class="st1" d="M889.5,203l-0.7-12.4c-6.5,9.5-18,14.6-29,14.6c-21.1,0-36.5-17.6-36.5-41s15.5-41,36.5-41
38 c11,0,22.5,5,29,14.6l0.7-12.4h18.9V203H889.5z M866.3,138.5c-12.2,0-22.1,9.5-22.1,25.6s9.9,25.6,22.1,25.6
39 c12.2,0,22.1-9.5,22.1-25.6S878.5,138.5,866.3,138.5z"/>
40 <path class="st1" d="M981.1,203v-43c0-15.1-5.2-20.2-14.8-20.2c-9.9,0-20.7,9-20.7,19.8V203h-20.9v-77.8h19.1l0.9,14.4
41 c5.2-9.9,16.9-16.6,28.8-16.6c20.7,0,28.4,14.4,28.4,33.7V203H981.1z"/>
42 <path class="st1" d="M1079.9,203l-0.7-12.4c-6.5,9.5-18,14.6-29,14.6c-21.1,0-36.5-17.6-36.5-41s15.5-41,36.5-41
43 c10.4,0,21.1,4.3,27.7,12.8V95h20.9v108H1079.9z M1056.7,138.5c-12.2,0-22.1,9.5-22.1,25.6s9.9,25.6,22.1,25.6
44 c12.2,0,22.1-9.5,22.1-25.6S1069,138.5,1056.7,138.5z"/>
45 <path class="st1" d="M1176.9,203l-0.7-12.4c-6.5,9.5-18,14.6-29,14.6c-21.1,0-36.5-17.6-36.5-41s15.5-41,36.5-41
46 c11,0,22.5,5,29,14.6l0.7-12.4h18.9V203H1176.9z M1153.7,138.5c-12.2,0-22.1,9.5-22.1,25.6s9.9,25.6,22.1,25.6
47 c12.2,0,22.1-9.5,22.1-25.6S1166,138.5,1153.7,138.5z"/>
48 <path class="st1" d="M1238,205.5c-16,0-27.9-6.8-31.1-8.8l3.4-14.4c6.3,3.8,15.8,8.6,27.4,8.6c8.3,0,14-2.5,14-9
49 c0-5.6-5.9-7.6-16.6-10.1c-19.1-4.1-25.9-14.2-25.9-25.2c0-12.2,9.5-23.8,30.6-23.8c12.8,0,23.9,5.6,26.5,7l-3.4,13.7
50 c-6.7-4-14.8-6.5-22.5-6.5c-8.5,0-12.6,2.9-12.6,7.6c0,5.2,5.4,7.6,13.7,9.5c20.5,4.3,28.8,13.9,28.8,24.3
51 C1270.2,195.2,1257.9,205.5,1238,205.5z"/>
52 </g>
53 <rect x="243.2" y="73.2" class="st1" width="24.1" height="50"/>
54 <rect x="243.2" y="176" class="st1" width="24.1" height="50"/>
55 <rect x="281.1" y="114.4" class="st1" width="24.1" height="50"/>
56 <path class="st1" d="M239.1,8.2c-76.3,0-138.5,62.1-138.5,138.5c0,76.3,62.1,138.5,138.5,138.5S377.5,223,377.5,146.7
57 C377.5,70.3,315.4,8.2,239.1,8.2z M352.5,146.7c0,16.1-3.4,31.4-9.5,45.3v-90.6C349.1,115.2,352.5,130.6,352.5,146.7z M305.2,238.8
58 v-21.6h-24.1V252c-13,5.2-27.2,8.1-42,8.1c-3.5,0-7-0.2-10.5-0.5V114.3h-24.1v140.4c-45.7-14.7-78.9-57.6-78.9-108.1
59 c0-62.6,50.9-113.5,113.5-113.5c31.1,0,59.4,12.6,79.9,33v160.3h0.7C315.2,231,310.3,235.1,305.2,238.8z"/>
60 </g>
61 </svg>
0 {{ fullname }}
1 {{ underline }}
2
3 .. currentmodule:: {{ module.split('.')[0] }}
4
5 .. automethod:: {{ (module.split('.')[1:] + [objname]) | join('.') }}
0 {% set redirect = redirects[pagename.split("/")[-1]] %}
1 <html>
2 <head>
3 <meta http-equiv="Refresh" content="0; url={{ redirect }}.html" />
4 <title>This page has moved</title>
5 </head>
6 <body>
7 <p>This page has moved <a href="{{ redirect }}.html">here</a>.</p>
8 </body>
9 </html>
0 # Citing
1
2 When citing GeoPandas, you can use [Zenodo DOI](https://zenodo.org/record/3946761#.Xy24LC2ZPOQ) for each release.
3 Below is the example of resulting BiBTeX record for GeoPandas 0.8.1 and a reference using APA 6<sup>th</sup> ed.
4
5 _Kelsey Jordahl, Joris Van den Bossche, Martin Fleischmann, Jacob Wasserman, James McBride, Jeffrey Gerard, … François Leblanc. (2020, July 15). geopandas/geopandas: v0.8.1 (Version v0.8.1). Zenodo. http://doi.org/10.5281/zenodo.3946761_
6
7
8 ```
9 @software{kelsey_jordahl_2020_3946761,
10 author = {Kelsey Jordahl and
11 Joris Van den Bossche and
12 Martin Fleischmann and
13 Jacob Wasserman and
14 James McBride and
15 Jeffrey Gerard and
16 Jeff Tratner and
17 Matthew Perry and
18 Adrian Garcia Badaracco and
19 Carson Farmer and
20 Geir Arne Hjelle and
21 Alan D. Snow and
22 Micah Cochran and
23 Sean Gillies and
24 Lucas Culbertson and
25 Matt Bartos and
26 Nick Eubank and
27 maxalbert and
28 Aleksey Bilogur and
29 Sergio Rey and
30 Christopher Ren and
31 Dani Arribas-Bel and
32 Leah Wasser and
33 Levi John Wolf and
34 Martin Journois and
35 Joshua Wilson and
36 Adam Greenhall and
37 Chris Holdgraf and
38 Filipe and
39 François Leblanc},
40 title = {geopandas/geopandas: v0.8.1},
41 month = jul,
42 year = 2020,
43 publisher = {Zenodo},
44 version = {v0.8.1},
45 doi = {10.5281/zenodo.3946761},
46 url = {https://doi.org/10.5281/zenodo.3946761}
47 }
48 ```
49
0 # GeoPandas logo
1
2 GeoPandas project uses a logo derived from [`pandas` logo](https://pandas.pydata.org/about/citing.html), enclosing it in a globe illustrating the geographic nature of our data.
3
4 ## Versions
5
6 We have four versions of our logo:
7
8 ### Primary logo
9
10 The primary logo should be used in a majority of cases. Inverted logo or icon should be used only when necessary.
11
12 ```{image} ../_static/logo/geopandas_logo.png
13 :alt: geopandas-logo
14 :align: center
15 ```
16
17 ### Inverted colors
18
19 If you want to place the GeoPandas logo on a dark background, use the inverted version.
20
21 ```{image} ../_static/logo/geopandas_logo_green.png
22 :alt: geopandas-logo-green
23 :align: center
24 ```
25
26 ### Icon
27
28 Although it is possible to use icon independently, we would prefer using the complete variant above.
29
30 ```{image} ../_static/logo/geopandas_icon.png
31 :alt: geopandas-icon
32 :width: 25%
33 :align: center
34 ```
35
36 ### Inverted icon
37
38 ```{image} ../_static/logo/geopandas_icon_green.png
39 :alt: geopandas-icon-green
40 :width: 25%
41 :align: center
42 ```
43
44 ## Download
45
46 You can download all version in SVG and PNG from [GitHub repository](https://github.com/geopandas/geopandas/tree/master/doc/source/_static/logo).
47
48
49 ## Colors
50
51 Pink and yellow accent colors are shared with `pandas`.
52
53 ### Green
54 ```{raw} html
55 <svg xmlns="http://www.w3.org/2000/svg" width="75" height="75" style="float: left">
56 <circle cx="33" cy="33" r="33" fill="#139C5A"></circle>
57 </svg>
58 ```
59 **HEX:** #139C5A
60
61 **RGB:** (19, 156, 90)
62
63 ### Yellow
64 ```{raw} html
65 <svg xmlns="http://www.w3.org/2000/svg" width="75" height="75" style="float: left">
66 <circle cx="33" cy="33" r="33" fill="#FFCA00"></circle>
67 </svg>
68 ```
69 **HEX:** #FFCA00
70
71 **RGB:** (255, 202, 0)
72
73 ### Pink
74 ```{raw} html
75 <svg xmlns="http://www.w3.org/2000/svg" width="75" height="75" style="float: left">
76 <circle cx="33" cy="33" r="33" fill="#E70488"></circle>
77 </svg>
78 ```
79 **HEX:** #E70488
80
81 **RGB:** ((31, 4, 136)
82
83
0 # Roadmap
1
2 ## Roadmap for GeoPandas 1.0
3
4 WIP
0 # Team
1
2 ## Contributors
3
4 GeoPandas is developed by more than [100 volunteer contributors](https://github.com/geopandas/geopandas/graphs/contributors).
5
6 ## Core developers
7 - Joris Van den Bossche - **lead maintainer** | [@jorisvandenbossche](https://github.com/jorisvandenbossche)
8 - Martin Fleischmann | [@martinfleis](https://github.com/martinfleis)
9 - James McBride | [@jdmcbr](https://github.com/jdmcbr)
10 - Brendan Ward | [@brendan-ward](https://github.com/brendan-ward)
11 - Levi Wolf | [@ljwolf](https://github.com/ljwolf)
12
13 ## Founder
14
15 - Kelsey Jordahl | [@kjordahl](https://github.com/kjordahl)
16
17 ## Alumni developers
18
19 - Jacob Wasserman | [@jwass](https://github.com/jwass)
0 # About GeoPandas
1
2 ```{toctree}
3 :maxdepth: 2
4 :caption: About
5 :hidden:
6
7 Team <about/team>
8 Citing <about/citing>
9 Logo <about/logo>
10 ```
11
12
13 GeoPandas is an open source project to add support for geographic data to pandas objects. It
14 currently implements `GeoSeries` and `GeoDataFrame` types which are subclasses of
15 `pandas.Series` and `pandas.DataFrame` respectively. GeoPandas objects can act on
16 `shapely` geometry objects and perform geometric operations.
17
18 GeoPandas is a community-led project written, used and supported by a wide range of
19 people from all around of world of a large variety of backgrounds. Want to get involved
20 in the community? See our [community guidelines](community).
21
22 GeoPandas will always be 100% open source software, free for all to use and released
23 under the liberal terms of the BSD-3-Clause license.
24
25 ```{container} button
26
27 {doc}`Team <about/team>`
28 {doc}`Citing <about/citing>` {doc}`Logo <about/logo>`
29 ```
30
31 ## Project history
32
33 Kelsey Jordahl founded GeoPandas project in 2013 during the Scipy Conference and
34 released a version 0.1.0 in July 2014. In 2016, Joris Van den Bossche took the lead and
35 became the maintainer of the project. Since the beginning, GeoPandas is a BSD-licensed
36 open-source project supported by a [community of
37 contributors](https://github.com/geopandas/geopandas/graphs/contributors) from around
38 the world and is now maintained by a [team](about/team) of core developers.
39
40 In 2020 GeoPandas became [NumFOCUS Affiliated
41 Project](https://numfocus.org/sponsored-projects/affiliated-projects) and received two
42 [Small Development Grants](https://numfocus.org/programs/sustainability) to support its
43 development.
44
45 ## Timeline
46
47 - **2013**: Beginning of the development
48 - **2014**: GeoPandas 0.1.0 released
49 - **2020**: GeoPandas became [NumFOCUS Affiliated
50 Project](https://numfocus.org/sponsored-projects/affiliated-projects)
51
52
+0
-73
doc/source/aggregation_with_dissolve.rst less more
0 .. ipython:: python
1 :suppress:
2
3 import geopandas
4 import matplotlib
5 orig = matplotlib.rcParams['figure.figsize']
6 matplotlib.rcParams['figure.figsize'] = [orig[0] * 1.5, orig[1]]
7
8
9 Aggregation with dissolve
10 =============================
11
12 Spatial data are often more granular than we need. For example, we might have data on sub-national units, but we're actually interested in studying patterns at the level of countries.
13
14 In a non-spatial setting, when all we need are summary statistics of the data, we aggregate our data using the ``groupby`` function. But for spatial data, we sometimes also need to aggregate geometric features. In the *geopandas* library, we can aggregate geometric features using the ``dissolve`` function.
15
16 ``dissolve`` can be thought of as doing three things: (a) it dissolves all the geometries within a given group together into a single geometric feature (using the ``unary_union`` method), and (b) it aggregates all the rows of data in a group using ``groupby.aggregate()``, and (c) it combines those two results.
17
18 ``dissolve`` Example
19 ~~~~~~~~~~~~~~~~~~~~~
20
21 Suppose we are interested in studying continents, but we only have country-level data like the country dataset included in *geopandas*. We can easily convert this to a continent-level dataset.
22
23
24 First, let's look at the most simple case where we just want continent shapes and names. By default, ``dissolve`` will pass ``'first'`` to ``groupby.aggregate``.
25
26 .. ipython:: python
27
28 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
29 world = world[['continent', 'geometry']]
30 continents = world.dissolve(by='continent')
31
32 @savefig continents1.png
33 continents.plot();
34
35 continents.head()
36
37 If we are interested in aggregate populations, however, we can pass different functions to the ``dissolve`` method to aggregate populations using the ``aggfunc =`` argument:
38
39 .. ipython:: python
40
41 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
42 world = world[['continent', 'geometry', 'pop_est']]
43 continents = world.dissolve(by='continent', aggfunc='sum')
44
45 @savefig continents2.png
46 continents.plot(column = 'pop_est', scheme='quantiles', cmap='YlOrRd');
47
48 continents.head()
49
50
51 .. ipython:: python
52 :suppress:
53
54 matplotlib.rcParams['figure.figsize'] = orig
55
56
57 .. toctree::
58 :maxdepth: 2
59
60 Dissolve Arguments
61 ~~~~~~~~~~~~~~~~~~
62
63 The ``aggfunc =`` argument defaults to 'first' which means that the first row of attributes values found in the dissolve routine will be assigned to the resultant dissolved geodataframe.
64 However it also accepts other summary statistic options as allowed by ``pandas.groupby()`` including:
65
66 * 'first'
67 * 'last'
68 * 'min'
69 * 'max'
70 * 'sum'
71 * 'mean'
72 * 'median'
+0
-1
doc/source/changelog.rst less more
0 .. include:: ../../CHANGELOG.md
+0
-135
doc/source/code_of_conduct.rst less more
0 GeoPandas Project Code of Conduct
1 =================================
2
3 Behind the GeoPandas Project is an engaged and respectful community made up of
4 people from all over the world and with a wide range of backgrounds.
5 Naturally, this implies diversity of ideas and perspectives on often
6 complex problems. Disagreement and healthy discussion of conflicting
7 viewpoints is welcome: the best solutions to hard problems rarely come from a single
8 angle. But disagreement is not an excuse for aggression: humans tend to take
9 disagreement personally and easily drift into behavior that ultimately
10 degrades a community. This is particularly acute with online communication
11 across language and cultural gaps, where many cues of human behavior are
12 unavailable. We are outlining here a set of principles and processes to support a
13 healthy community in the face of these challenges.
14
15 Fundamentally, we are committed to fostering a productive, harassment-free
16 environment for everyone. Rather than considering this code an exhaustive list
17 of things that you can’t do, take it in the spirit it is intended - a guide to
18 make it easier to enrich all of us and the communities in which we participate.
19
20 Importantly: as a member of our community, *you are also a steward of these
21 values*. Not all problems need to be resolved via formal processes, and often
22 a quick, friendly but clear word on an online forum or in person can help
23 resolve a misunderstanding and de-escalate things.
24
25 However, sometimes these informal processes may be inadequate: they fail to
26 work, there is urgency or risk to someone, nobody is intervening publicly and
27 you don't feel comfortable speaking in public, etc. For these or other
28 reasons, structured follow-up may be necessary and here we provide the means
29 for that: we welcome reports by emailing
30 `geopandas-conduct@googlegroups.com <mailto:geopandas-conduct@googlegroups.com>`__ or by filling out `this
31 form <https://docs.google.com/forms/d/e/1FAIpQLSd8Tbi2zNl1i2N9COX0yavHEqTGFIPQ1_cLcy1A3JgVc1OrAQ/viewform>`__.
32
33 This code applies equally to founders, developers, mentors and new community
34 members, in all spaces managed by the GeoPandas Project. This
35 includes the mailing lists, our GitHub organization, our chat room, in-person
36 events, and any other forums created by the project team. In addition,
37 violations of this code outside these spaces may affect a person's ability to
38 participate within them.
39
40 By embracing the following principles, guidelines and actions to follow or
41 avoid, you will help us make Jupyter a welcoming and productive community. Feel
42 free to contact the Code of Conduct Committee at
43 `geopandas-conduct@googlegroups.com <mailto:geopandas-conduct@googlegroups.com>`__ with any questions.
44
45 1. **Be friendly and patient**.
46
47 2. **Be welcoming**. We strive to be a community that welcomes and supports
48 people of all backgrounds and identities. This includes, but is not limited
49 to, members of any race, ethnicity, culture, national origin, color,
50 immigration status, social and economic class, educational level, sex, sexual
51 orientation, gender identity and expression, age, physical appearance, family
52 status, technological or professional choices, academic
53 discipline, religion, mental ability, and physical ability.
54
55 3. **Be considerate**. Your work will be used by other people, and you in turn
56 will depend on the work of others. Any decision you take will affect users
57 and colleagues, and you should take those consequences into account when
58 making decisions. Remember that we're a world-wide community. You may be
59 communicating with someone with a different primary language or cultural
60 background.
61
62 4. **Be respectful**. Not all of us will agree all the time, but disagreement is
63 no excuse for poor behavior or poor manners. We might all experience some
64 frustration now and then, but we cannot allow that frustration to turn into a
65 personal attack. It’s important to remember that a community where people
66 feel uncomfortable or threatened is not a productive one.
67
68 5. **Be careful in the words that you choose**. Be kind to others. Do not insult
69 or put down other community members. Harassment and other exclusionary
70 behavior are not acceptable. This includes, but is not limited to:
71
72 - Violent threats or violent language directed against another person
73 - Discriminatory jokes and language
74 - Posting sexually explicit or violent material
75 - Posting (or threatening to post) other people's personally identifying information ("doxing")
76 - Personal insults, especially those using racist, sexist, and xenophobic terms
77 - Unwelcome sexual attention
78 - Advocating for, or encouraging, any of the above behavior
79 - Repeated harassment of others. In general, if someone asks you to stop, then stop
80
81 6. **Moderate your expectations**. Please respect that community members choose
82 how they spend their time in the project. A thoughtful question about your
83 expectations is preferable to demands for another person's time.
84
85 7. **When we disagree, try to understand why**. Disagreements, both social and
86 technical, happen all the time and the GeoPandas Project is no exception. Try to
87 understand where others are coming from, as seeing a question from their
88 viewpoint may help find a new path forward. And don’t forget that it is
89 human to err: blaming each other doesn’t get us anywhere, while we can learn
90 from mistakes to find better solutions.
91
92 8. **A simple apology can go a long way**. It can often de-escalate a situation,
93 and telling someone that you are sorry is an act of empathy that doesn’t
94 automatically imply an admission of guilt.
95
96 Reporting
97 ---------
98
99 If you believe someone is violating the code of conduct, please report this in
100 a timely manner. Code of conduct violations reduce the value of the community
101 for everyone and we take them seriously.
102
103 You can file a report by emailing
104 `geopandas-conduct@googlegroups.com <mailto:geopandas-conduct@googlegroups.com>`__ or by filing out
105 `this form <https://docs.google.com/forms/d/e/1FAIpQLSd8Tbi2zNl1i2N9COX0yavHEqTGFIPQ1_cLcy1A3JgVc1OrAQ/viewform>`__.
106
107 The online form gives you the option to keep your report anonymous or request
108 that we follow up with you directly. While we cannot follow up on an anonymous
109 report, we will take appropriate action.
110
111 Messages sent to the e-mail address or through the form will be sent
112 only to the Code of Conduct Committee, which currently consists of:
113
114 - Hannah Aizenman
115 - Joris Van den Bossche
116 - Martin Fleischmann
117
118 Enforcement
119 -----------
120
121 Enforcement procedures within the GeoPandas Project follow Project Jupyter's `Enforcement
122 Manual <https://github.com/jupyter/governance/blob/master/conduct/enforcement.md>`__.
123 For information on enforcement, please view the `original
124 manual <https://github.com/jupyter/governance/blob/master/conduct/enforcement.md>`__.
125
126 Original text courtesy of the `Speak
127 Up! <http://web.archive.org/web/20141109123859/http://speakup.io/coc.html>`__,
128 `Django <https://www.djangoproject.com/conduct>`__ and
129 `Jupyter <https://github.com/jupyter/governance/blob/master/conduct/code_of_conduct.md>`__
130 Projects, modified by the GeoPandas Project. We are grateful to those projects for
131 contributing these materials under open licensing terms for us to easily reuse.
132
133 All content on this page is licensed under a `Creative Commons
134 Attribution <http://creativecommons.org/licenses/by/3.0/>`__ license.
0 GeoPandas Project Code of Conduct
1 =================================
2
3 Behind the GeoPandas Project is an engaged and respectful community made up of
4 people from all over the world and with a wide range of backgrounds.
5 Naturally, this implies diversity of ideas and perspectives on often
6 complex problems. Disagreement and healthy discussion of conflicting
7 viewpoints is welcome: the best solutions to hard problems rarely come from a single
8 angle. But disagreement is not an excuse for aggression: humans tend to take
9 disagreement personally and easily drift into behavior that ultimately
10 degrades a community. This is particularly acute with online communication
11 across language and cultural gaps, where many cues of human behavior are
12 unavailable. We are outlining here a set of principles and processes to support a
13 healthy community in the face of these challenges.
14
15 Fundamentally, we are committed to fostering a productive, harassment-free
16 environment for everyone. Rather than considering this code an exhaustive list
17 of things that you can’t do, take it in the spirit it is intended - a guide to
18 make it easier to enrich all of us and the communities in which we participate.
19
20 Importantly: as a member of our community, *you are also a steward of these
21 values*. Not all problems need to be resolved via formal processes, and often
22 a quick, friendly but clear word on an online forum or in person can help
23 resolve a misunderstanding and de-escalate things.
24
25 However, sometimes these informal processes may be inadequate: they fail to
26 work, there is urgency or risk to someone, nobody is intervening publicly and
27 you don't feel comfortable speaking in public, etc. For these or other
28 reasons, structured follow-up may be necessary and here we provide the means
29 for that: we welcome reports by emailing
30 `geopandas-conduct@googlegroups.com <mailto:geopandas-conduct@googlegroups.com>`__ or by filling out `this
31 form <https://docs.google.com/forms/d/e/1FAIpQLSd8Tbi2zNl1i2N9COX0yavHEqTGFIPQ1_cLcy1A3JgVc1OrAQ/viewform>`__.
32
33 This code applies equally to founders, developers, mentors and new community
34 members, in all spaces managed by the GeoPandas Project. This
35 includes the mailing lists, our GitHub organization, our chat room, in-person
36 events, and any other forums created by the project team. In addition,
37 violations of this code outside these spaces may affect a person's ability to
38 participate within them.
39
40 By embracing the following principles, guidelines and actions to follow or
41 avoid, you will help us make Jupyter a welcoming and productive community. Feel
42 free to contact the Code of Conduct Committee at
43 `geopandas-conduct@googlegroups.com <mailto:geopandas-conduct@googlegroups.com>`__ with any questions.
44
45 1. **Be friendly and patient**.
46
47 2. **Be welcoming**. We strive to be a community that welcomes and supports
48 people of all backgrounds and identities. This includes, but is not limited
49 to, members of any race, ethnicity, culture, national origin, color,
50 immigration status, social and economic class, educational level, sex, sexual
51 orientation, gender identity and expression, age, physical appearance, family
52 status, technological or professional choices, academic
53 discipline, religion, mental ability, and physical ability.
54
55 3. **Be considerate**. Your work will be used by other people, and you in turn
56 will depend on the work of others. Any decision you take will affect users
57 and colleagues, and you should take those consequences into account when
58 making decisions. Remember that we're a world-wide community. You may be
59 communicating with someone with a different primary language or cultural
60 background.
61
62 4. **Be respectful**. Not all of us will agree all the time, but disagreement is
63 no excuse for poor behavior or poor manners. We might all experience some
64 frustration now and then, but we cannot allow that frustration to turn into a
65 personal attack. It’s important to remember that a community where people
66 feel uncomfortable or threatened is not a productive one.
67
68 5. **Be careful in the words that you choose**. Be kind to others. Do not insult
69 or put down other community members. Harassment and other exclusionary
70 behavior are not acceptable. This includes, but is not limited to:
71
72 - Violent threats or violent language directed against another person
73 - Discriminatory jokes and language
74 - Posting sexually explicit or violent material
75 - Posting (or threatening to post) other people's personally identifying information ("doxing")
76 - Personal insults, especially those using racist, sexist, and xenophobic terms
77 - Unwelcome sexual attention
78 - Advocating for, or encouraging, any of the above behavior
79 - Repeated harassment of others. In general, if someone asks you to stop, then stop
80
81 6. **Moderate your expectations**. Please respect that community members choose
82 how they spend their time in the project. A thoughtful question about your
83 expectations is preferable to demands for another person's time.
84
85 7. **When we disagree, try to understand why**. Disagreements, both social and
86 technical, happen all the time and the GeoPandas Project is no exception. Try to
87 understand where others are coming from, as seeing a question from their
88 viewpoint may help find a new path forward. And don’t forget that it is
89 human to err: blaming each other doesn’t get us anywhere, while we can learn
90 from mistakes to find better solutions.
91
92 8. **A simple apology can go a long way**. It can often de-escalate a situation,
93 and telling someone that you are sorry is an act of empathy that doesn’t
94 automatically imply an admission of guilt.
95
96 Reporting
97 ---------
98
99 If you believe someone is violating the code of conduct, please report this in
100 a timely manner. Code of conduct violations reduce the value of the community
101 for everyone and we take them seriously.
102
103 You can file a report by emailing
104 `geopandas-conduct@googlegroups.com <mailto:geopandas-conduct@googlegroups.com>`__ or by filing out
105 `this form <https://docs.google.com/forms/d/e/1FAIpQLSd8Tbi2zNl1i2N9COX0yavHEqTGFIPQ1_cLcy1A3JgVc1OrAQ/viewform>`__.
106
107 The online form gives you the option to keep your report anonymous or request
108 that we follow up with you directly. While we cannot follow up on an anonymous
109 report, we will take appropriate action.
110
111 Messages sent to the e-mail address or through the form will be sent
112 only to the Code of Conduct Committee, which currently consists of:
113
114 - Hannah Aizenman
115 - Joris Van den Bossche
116 - Martin Fleischmann
117
118 Enforcement
119 -----------
120
121 Enforcement procedures within the GeoPandas Project follow Project Jupyter's `Enforcement
122 Manual <https://github.com/jupyter/governance/blob/master/conduct/enforcement.md>`__.
123 For information on enforcement, please view the `original
124 manual <https://github.com/jupyter/governance/blob/master/conduct/enforcement.md>`__.
125
126 Original text courtesy of the `Speak
127 Up! <http://web.archive.org/web/20141109123859/http://speakup.io/coc.html>`__,
128 `Django <https://www.djangoproject.com/conduct>`__ and
129 `Jupyter <https://github.com/jupyter/governance/blob/master/conduct/code_of_conduct.md>`__
130 Projects, modified by the GeoPandas Project. We are grateful to those projects for
131 contributing these materials under open licensing terms for us to easily reuse.
132
133 All content on this page is licensed under a `Creative Commons
134 Attribution <http://creativecommons.org/licenses/by/3.0/>`__ license.
0 Contributing to GeoPandas
1 =========================
2
3 (Contribution guidelines largely copied from `pandas <http://pandas.pydata.org/pandas-docs/stable/contributing.html>`_)
4
5 Overview
6 --------
7
8 Contributions to GeoPandas are very welcome. They are likely to
9 be accepted more quickly if they follow these guidelines.
10
11 At this stage of GeoPandas development, the priorities are to define a
12 simple, usable, and stable API and to have clean, maintainable,
13 readable code. Performance matters, but not at the expense of those
14 goals.
15
16 In general, GeoPandas follows the conventions of the pandas project
17 where applicable.
18
19 In particular, when submitting a pull request:
20
21 - All existing tests should pass. Please make sure that the test
22 suite passes, both locally and on
23 `GitHub Actions <hhttps://github.com/geopandas/geopandas/actions>`_. Status on
24 GHA will be visible on a pull request. GHA are automatically enabled
25 on your own fork as well. To trigger a check, make a PR to your own fork.
26
27 - New functionality should include tests. Please write reasonable
28 tests for your code and make sure that they pass on your pull request.
29
30 - Classes, methods, functions, etc. should have docstrings. The first
31 line of a docstring should be a standalone summary. Parameters and
32 return values should be documented explicitly.
33
34 - Follow PEP 8 when possible. We use `Black
35 <https://black.readthedocs.io/en/stable/>`_ and `Flake8
36 <http://flake8.pycqa.org/en/latest/>`_ to ensure a consistent code
37 format throughout the project. For more details see
38 :ref:`below <contributing_style>`.
39
40 - Imports should be grouped with standard library imports first,
41 3rd-party libraries next, and GeoPandas imports third. Within each
42 grouping, imports should be alphabetized. Always use absolute
43 imports when possible, and explicit relative imports for local
44 imports when necessary in tests.
45
46 - GeoPandas supports Python 3.6+ only. The last version of GeoPandas
47 supporting Python 2 is 0.6.
48
49
50 Seven Steps for Contributing
51 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52
53 There are seven basic steps to contributing to *GeoPandas*:
54
55 1) Fork the *GeoPandas* git repository
56 2) Create a development environment
57 3) Install *GeoPandas* dependencies
58 4) Make a ``development`` build of *GeoPandas*
59 5) Make changes to code and add tests
60 6) Update the documentation
61 7) Submit a Pull Request
62
63 Each of these 7 steps is detailed below.
64
65
66 1) Forking the *GeoPandas* repository using Git
67 ------------------------------------------------
68
69 To the new user, working with Git is one of the more daunting aspects of contributing to *GeoPandas**.
70 It can very quickly become overwhelming, but sticking to the guidelines below will help keep the process
71 straightforward and mostly trouble free. As always, if you are having difficulties please
72 feel free to ask for help.
73
74 The code is hosted on `GitHub <https://github.com/geopandas/geopandas>`_. To
75 contribute you will need to sign up for a `free GitHub account
76 <https://github.com/signup/free>`_. We use `Git <http://git-scm.com/>`_ for
77 version control to allow many people to work together on the project.
78
79 Some great resources for learning Git:
80
81 * Software Carpentry's `Git Tutorial <http://swcarpentry.github.io/git-novice/>`_
82 * `Atlassian <https://www.atlassian.com/git/tutorials/what-is-version-control>`_
83 * the `GitHub help pages <http://help.github.com/>`_.
84 * Matthew Brett's `Pydagogue <http://matthew-brett.github.com/pydagogue/>`_.
85
86 Getting started with Git
87 ~~~~~~~~~~~~~~~~~~~~~~~~
88
89 `GitHub has instructions <http://help.github.com/set-up-git-redirect>`__ for installing git,
90 setting up your SSH key, and configuring git. All these steps need to be completed before
91 you can work seamlessly between your local repository and GitHub.
92
93 .. _contributing.forking:
94
95 Forking
96 ~~~~~~~
97
98 You will need your own fork to work on the code. Go to the `GeoPandas project
99 page <https://github.com/geopandas/geopandas>`_ and hit the ``Fork`` button. You will
100 want to clone your fork to your machine::
101
102 git clone git@github.com:your-user-name/geopandas.git geopandas-yourname
103 cd geopandas-yourname
104 git remote add upstream git://github.com/geopandas/geopandas.git
105
106 This creates the directory `geopandas-yourname` and connects your repository to
107 the upstream (main project) *GeoPandas* repository.
108
109 The testing suite will run automatically on GitHub Actions once your pull request is
110 submitted. The test suite will also autmatically run on your branch so you can
111 check it prior to submitting the pull request.
112
113 Creating a branch
114 ~~~~~~~~~~~~~~~~~~
115
116 You want your master branch to reflect only production-ready code, so create a
117 feature branch for making your changes. For example::
118
119 git branch shiny-new-feature
120 git checkout shiny-new-feature
121
122 The above can be simplified to::
123
124 git checkout -b shiny-new-feature
125
126 This changes your working directory to the shiny-new-feature branch. Keep any
127 changes in this branch specific to one bug or feature so it is clear
128 what the branch brings to *GeoPandas*. You can have many shiny-new-features
129 and switch in between them using the git checkout command.
130
131 To update this branch, you need to retrieve the changes from the master branch::
132
133 git fetch upstream
134 git rebase upstream/master
135
136 This will replay your commits on top of the latest GeoPandas git master. If this
137 leads to merge conflicts, you must resolve these before submitting your pull
138 request. If you have uncommitted changes, you will need to ``stash`` them prior
139 to updating. This will effectively store your changes and they can be reapplied
140 after updating.
141
142 .. _contributing.dev_env:
143
144 2) Creating a development environment
145 ---------------------------------------
146 A development environment is a virtual space where you can keep an independent installation of *GeoPandas*.
147 This makes it easy to keep both a stable version of python in one place you use for work, and a development
148 version (which you may break while playing with code) in another.
149
150 An easy way to create a *GeoPandas* development environment is as follows:
151
152 - Install either `Anaconda <http://docs.continuum.io/anaconda/>`_ or
153 `miniconda <http://conda.pydata.org/miniconda.html>`_
154 - Make sure that you have :ref:`cloned the repository <contributing.forking>`
155 - ``cd`` to the *geopandas** source directory
156
157 Tell conda to create a new environment, named ``geopandas_dev``, or any other name you would like
158 for this environment, by running::
159
160 conda create -n geopandas_dev python
161
162 This will create the new environment, and not touch any of your existing environments,
163 nor any existing python installation.
164
165 To work in this environment, you need to ``activate`` it. The instructions below
166 should work for both Windows, Mac and Linux::
167
168 conda activate geopandas_dev
169
170 Once your environment is activated, you will see a confirmation message to
171 indicate you are in the new development environment.
172
173 To view your environments::
174
175 conda info -e
176
177 To return to you home root environment::
178
179 conda deactivate
180
181 See the full conda docs `here <http://conda.pydata.org/docs>`__.
182
183 At this point you can easily do a *development* install, as detailed in the next sections.
184
185 3) Installing Dependencies
186 --------------------------
187
188 To run *GeoPandas* in an development environment, you must first install
189 *GeoPandas*'s dependencies. We suggest doing so using the following commands
190 (executed after your development environment has been activated)::
191
192 conda install -c conda-forge pandas fiona shapely pyproj rtree pytest
193
194 This should install all necessary dependencies.
195
196
197 4) Making a development build
198 -----------------------------
199
200 Once dependencies are in place, make an in-place build by navigating to the git
201 clone of the *GeoPandas* repository and running::
202
203 python setup.py develop
204
205
206 5) Making changes and writing tests
207 -------------------------------------
208
209 *GeoPandas* is serious about testing and strongly encourages contributors to embrace
210 `test-driven development (TDD) <http://en.wikipedia.org/wiki/Test-driven_development>`_.
211 This development process "relies on the repetition of a very short development cycle:
212 first the developer writes an (initially failing) automated test case that defines a desired
213 improvement or new function, then produces the minimum amount of code to pass that test."
214 So, before actually writing any code, you should write your tests. Often the test can be
215 taken from the original GitHub issue. However, it is always worth considering additional
216 use cases and writing corresponding tests.
217
218 Adding tests is one of the most common requests after code is pushed to *GeoPandas*. Therefore,
219 it is worth getting in the habit of writing tests ahead of time so this is never an issue.
220
221 *GeoPandas* uses the `pytest testing system
222 <http://doc.pytest.org/en/latest/>`_ and the convenient
223 extensions in `numpy.testing
224 <http://docs.scipy.org/doc/numpy/reference/routines.testing.html>`_.
225
226 Writing tests
227 ~~~~~~~~~~~~~
228
229 All tests should go into the ``tests`` directory. This folder contains many
230 current examples of tests, and we suggest looking to these for inspiration.
231
232 The ``.util`` module has some special ``assert`` functions that
233 make it easier to make statements about whether GeoSeries or GeoDataFrame
234 objects are equivalent. The easiest way to verify that your code is correct is to
235 explicitly construct the result you expect, then compare the actual result to
236 the expected correct result, using eg the function ``assert_geoseries_equal``.
237
238 Running the test suite
239 ~~~~~~~~~~~~~~~~~~~~~~
240
241 The tests can then be run directly inside your Git clone (without having to
242 install *GeoPandas*) by typing::
243
244 pytest
245
246 6) Updating the Documentation
247 -----------------------------
248
249 *GeoPandas* documentation resides in the ``doc`` folder. Changes to the docs are make by
250 modifying the appropriate file in the `source` folder within ``doc``. *GeoPandas* docs use
251 mixture of reStructuredText syntax for ``rst`` files, `which is explained here
252 <http://www.sphinx-doc.org/en/stable/rest.html#rst-primer>`_ and MyST syntax for ``md``
253 files `explained here <https://myst-parser.readthedocs.io/en/latest/index.html>`_.
254 The docstrings follow the `Numpy Docstring standard
255 <https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt>`_. Some pages
256 and examples are Jupyter notebooks converted to docs using `nbsphinx
257 <https://nbsphinx.readthedocs.io/>`_. Jupyter notebooks should be stored without the output.
258
259 Once you have made your changes, you may try if they render correctly by
260 building the docs using sphinx. To do so, you can navigate to the `doc` folder
261 and type::
262
263 make html
264
265 The resulting html pages will be located in ``doc/build/html``. In case of any errors, you
266 can try to use ``make html`` within a new environment based on environment.yml
267 specification in the ``doc`` folder. You may need to register Jupyter kernel as
268 ``geopandas_docs``. Using conda::
269
270 conda env create -f environment.yml
271 conda activate geopandas_docs
272 python -m ipykernel install --user --name geopandas_docs
273 make html
274
275 For minor updates, you can skip whole ``make html`` part as reStructuredText and MyST
276 syntax are usually quite straightforward.
277
278
279 7) Submitting a Pull Request
280 ------------------------------
281
282 Once you've made changes and pushed them to your forked repository, you then
283 submit a pull request to have them integrated into the *GeoPandas* code base.
284
285 You can find a pull request (or PR) tutorial in the `GitHub's Help Docs <https://help.github.com/articles/using-pull-requests/>`_.
286
287 .. _contributing_style:
288
289 Style Guide & Linting
290 ---------------------
291
292 GeoPandas follows the `PEP8 <http://www.python.org/dev/peps/pep-0008/>`_ standard
293 and uses `Black <https://black.readthedocs.io/en/stable/>`_ and
294 `Flake8 <http://flake8.pycqa.org/en/latest/>`_ to ensure a consistent code
295 format throughout the project.
296
297 Continuous Integration (GitHub Actions) will run those tools and
298 report any stylistic errors in your code. Therefore, it is helpful before
299 submitting code to run the check yourself::
300
301 black geopandas
302 git diff upstream/master -u -- "*.py" | flake8 --diff
303
304 to auto-format your code. Additionally, many editors have plugins that will
305 apply ``black`` as you edit files.
306
307 Optionally (but recommended), you can setup `pre-commit hooks <https://pre-commit.com/>`_
308 to automatically run ``black`` and ``flake8`` when you make a git commit. This
309 can be done by installing ``pre-commit``::
310
311 $ python -m pip install pre-commit
312
313 From the root of the geopandas repository, you should then install the
314 ``pre-commit`` included in *GeoPandas*::
315
316 $ pre-commit install
317
318 Then ``black`` and ``flake8`` will be run automatically
319 each time you commit changes. You can skip these checks with
320 ``git commit --no-verify``.
321
322 Commit message conventions
323 --------------------------
324
325 Commit your changes to your local repository with an explanatory message. GeoPandas
326 uses the pandas convention for commit message prefixes and layout. Here are
327 some common prefixes along with general guidelines for when to use them:
328
329 * ENH: Enhancement, new functionality
330 * BUG: Bug fix
331 * DOC: Additions/updates to documentation
332 * TST: Additions/updates to tests
333 * BLD: Updates to the build process/scripts
334 * PERF: Performance improvement
335 * TYP: Type annotations
336 * CLN: Code cleanup
337
338 The following defines how a commit message should be structured. Please refer to the
339 relevant GitHub issues in your commit message using GH1234 or #1234. Either style
340 is fine, but the former is generally preferred:
341
342 * a subject line with `< 80` chars.
343 * One blank line.
344 * Optionally, a commit message body.
345
346 Now you can commit your changes in your local repository::
347
348 git commit -m
349
0 # Ecosystem
1
2 ## GeoPandas dependencies
3
4 GeoPandas brings together the full capability of `pandas` and open-source geospatial
5 tools `Shapely`, which brings manipulation and analysis of geometric objects backed by
6 [`GEOS`](https://trac.osgeo.org/geos) library, `Fiona`, allowing us to read and write
7 geographic data files using [`GDAL`](https://gdal.org), and `pyproj`, a library for
8 cartographic projections and coordinate transformations, which is a Python interface of
9 [`PROJ`](https://proj.org).
10
11 Furthermore, GeoPandas has several optional dependencies as `rtree`, `pygeos`,
12 `mapclassify`, or `geopy`.
13
14 ### Required dependencies
15
16 #### [pandas](https://github.com/pandas-dev/pandas)
17 `pandas` is a Python package that provides fast, flexible, and expressive data
18 structures designed to make working with structured (tabular, multidimensional,
19 potentially heterogeneous) and time series data both easy and intuitive. It aims to be
20 the fundamental high-level building block for doing practical, real world data analysis
21 in Python. Additionally, it has the broader goal of becoming the most powerful and
22 flexible open source data analysis / manipulation tool available in any language. It is
23 already well on its way toward this goal.
24
25 #### [Shapely](https://github.com/Toblerity/Shapely)
26 `Shapely` is a BSD-licensed Python package for manipulation and analysis of planar
27 geometric objects. It is based on the widely deployed `GEOS` (the engine of PostGIS) and
28 `JTS` (from which `GEOS` is ported) libraries. `Shapely` is not concerned with data
29 formats or coordinate systems, but can be readily integrated with packages that are.
30
31 #### [Fiona](https://github.com/Toblerity/Fiona)
32 `Fiona` is `GDAL’s` neat and nimble vector API for Python programmers. Fiona is designed
33 to be simple and dependable. It focuses on reading and writing data in standard Python
34 IO style and relies upon familiar Python types and protocols such as files,
35 dictionaries, mappings, and iterators instead of classes specific to `OGR`. Fiona can
36 read and write real-world data using multi-layered GIS formats and zipped virtual file
37 systems and integrates readily with other Python GIS packages such as `pyproj`, `Rtree`,
38 and `Shapely`.
39
40 #### [pyproj](https://github.com/pyproj4/pyproj)
41 `pyproj` is a Python interface to `PROJ` (cartographic projections and coordinate
42 transformations library). GeoPandas uses `pyproj.crs.CRS` object to keep track of a
43 projection of each `GeoSeries` and its `Transformer` object to manage re-projections.
44
45 ### Optional dependencies
46
47 #### [rtree](https://github.com/Toblerity/rtree)
48 `Rtree` is a ctypes Python wrapper of `libspatialindex` that provides a number of
49 advanced spatial indexing features for the spatially curious Python user.
50
51 #### [PyGEOS](https://github.com/pygeos/pygeos)
52 `PyGEOS` is a C/Python library with vectorized geometry functions. The geometry
53 operations are done in the open-source geometry library `GEOS`. PyGEOS wraps these
54 operations in `NumPy` ufuncs providing a performance improvement when operating on
55 arrays of geometries.
56
57 #### [mapclassify](https://github.com/pysal/mapclassify)
58 `mapclassify` provides functionality for Choropleth map classification. Currently,
59 fifteen different classification schemes are available, including a highly-optimized
60 implementation of Fisher-Jenks optimal classification. Each scheme inherits a common
61 structure that ensures computations are scalable and supports applications in streaming
62 contexts.
63
64 #### [geopy](https://github.com/geopy/geopy)
65 `geopy` is a Python client for several popular geocoding web services. `geopy` makes it
66 easy for Python developers to locate the coordinates of addresses, cities, countries,
67 and landmarks across the globe using third-party geocoders and other data sources.
68
69 #### [matplotlib](https://github.com/matplotlib/matplotlib)
70 `Matplotlib` is a comprehensive library for creating static, animated, and interactive
71 visualizations in Python. Matplotlib produces publication-quality figures in a variety
72 of hardcopy formats and interactive environments across platforms. Matplotlib can be
73 used in Python scripts, the Python and IPython shell, web application servers, and
74 various graphical user interface toolkits.
75
76 ## GeoPandas ecosystem
77
78 Various packages are built on top of GeoPandas addressing specific geospatial data
79 processing needs, analysis, and visualization. Below is an incomplete list (in no
80 particular order) of tools which form GeoPandas related Python ecosystem.
81
82 ### Spatial analysis and Machine Learning
83
84 #### [PySAL](https://github.com/pysal/pysal)
85 `PySAL`, the Python spatial analysis library, is an open source cross-platform library
86 for geospatial data science with an emphasis on geospatial vector data written in
87 Python. `PySAL` is a family of packages, some of which are listed below.
88
89 ##### [libpysal](https://github.com/pysal/libpysal)
90 `libpysal` provides foundational algorithms and data structures that support the rest of
91 the library. This currently includes the following modules: input/output (`io`), which
92 provides readers and writers for common geospatial file formats; weights (`weights`),
93 which provides the main class to store spatial weights matrices, as well as several
94 utilities to manipulate and operate on them; computational geometry (`cg`), with several
95 algorithms, such as Voronoi tessellations or alpha shapes that efficiently process
96 geometric shapes; and an additional module with example data sets (`examples`).
97
98 ##### [esda](https://github.com/pysal/esda)
99 `esda` implements methods for the analysis of both global (map-wide) and local (focal)
100 spatial autocorrelation, for both continuous and binary data. In addition, the package
101 increasingly offers cutting-edge statistics about boundary strength and measures of
102 aggregation error in statistical analyses.
103
104 ##### [segregation](https://github.com/pysal/segregation)
105 `segregation` package calculates over 40 different segregation indices and provides a
106 suite of additional features for measurement, visualization, and hypothesis testing that
107 together represent the state-of-the-art in quantitative segregation analysis.
108
109 ##### [mgwr](https://github.com/pysal/mgwr)
110 `mgwr` provides scalable algorithms for estimation, inference, and prediction using
111 single- and multi-scale geographically-weighted regression models in a variety of
112 generalized linear model frameworks, as well model diagnostics tools.
113
114 ##### [tobler](https://github.com/pysal/tobler)
115 `tobler` provides functionality for for areal interpolation and dasymetric mapping.
116 `tobler` includes functionality for interpolating data using area-weighted approaches,
117 regression model-based approaches that leverage remotely-sensed raster data as auxiliary
118 information, and hybrid approaches.
119
120
121 #### [movingpandas](https://github.com/anitagraser/movingpandas)
122 `MovingPandas` is a package for dealing with movement data. `MovingPandas` implements a
123 `Trajectory` class and corresponding methods based on GeoPandas. A trajectory has a
124 time-ordered series of point geometries. These points and associated attributes are
125 stored in a `GeoDataFrame`. `MovingPandas` implements spatial and temporal data access
126 and analysis functions as well as plotting functions.
127
128 #### [momepy](https://github.com/martinfleis/momepy)
129 `momepy` is a library for quantitative analysis of urban form - urban morphometrics. It
130 is built on top of `GeoPandas`, `PySAL` and `networkX`. `momepy` aims to provide a wide
131 range of tools for a systematic and exhaustive analysis of urban form. It can work with
132 a wide range of elements, while focused on building footprints and street networks.
133
134 #### [geosnap](https://github.com/spatialucr/geosnap)
135 `geosnap` makes it easier to explore, model, analyze, and visualize the social and
136 spatial dynamics of neighborhoods. `geosnap` provides a suite of tools for creating
137 socio-spatial datasets, harmonizing those datasets into consistent set of time-static
138 boundaries, modeling bespoke neighborhoods and prototypical neighborhood types, and
139 modeling neighborhood change using classic and spatial statistical methods. It also
140 provides a set of static and interactive visualization tools to help you display and
141 understand the critical information at each step of the process.
142
143 #### [mesa-geo](https://github.com/Corvince/mesa-geo)
144 `mesa-geo` implements a GeoSpace that can host GIS-based GeoAgents, which are like
145 normal Agents, except they have a shape attribute that is a `Shapely` object. You can
146 use `Shapely` directly to create arbitrary shapes, but in most cases you will want to
147 import your shapes from a file. Mesa-geo allows you to create GeoAgents from any vector
148 data file (e.g. shapefiles), valid GeoJSON objects or a GeoPandas `GeoDataFrame`.
149
150 #### [Pyspatialml](https://github.com/stevenpawley/Pyspatialml)
151 `Pyspatialml` is a Python module for applying `scikit-learn` machine learning models to
152 'stacks' of raster datasets. Pyspatialml includes functions and classes for working with
153 multiple raster datasets and performing a typical machine learning workflow consisting
154 of extracting training data and applying the predict or `predict_proba` methods of
155 `scikit-learn` estimators to a stack of raster datasets. Pyspatialml is built upon the
156 `rasterio` Python module for all of the heavy lifting, and is also designed for working
157 with vector data using the `geopandas` module.
158
159 #### [PyGMI](https://github.com/Patrick-Cole/pygmi)
160 `PyGMI` stands for Python Geoscience Modelling and Interpretation. It is a modelling and
161 interpretation suite aimed at magnetic, gravity and other datasets.
162
163 ### Visualization
164
165 #### [contextily](https://github.com/geopandas/contextily)
166 `contextily` is a small Python 3 (3.6 and above) package to retrieve tile maps from the
167 internet. It can add those tiles as basemap to `matplotlib` figures or write tile maps
168 to disk into geospatial raster files. Bounding boxes can be passed in both WGS84
169 (EPSG:4326) and Spheric Mercator (EPSG:3857).
170
171 #### [cartopy](https://github.com/SciTools/cartopy)
172 `Cartopy` is a Python package designed to make drawing maps for data analysis and
173 visualisation easy. It features: object oriented projection definitions; point, line,
174 polygon and image transformations between projections; integration to expose advanced
175 mapping in `Matplotlib` with a simple and intuitive interface; powerful vector data
176 handling by integrating shapefile reading with `Shapely` capabilities.
177
178 #### [bokeh](https://github.com/bokeh/bokeh)
179 `Bokeh` is an interactive visualization library for modern web browsers. It provides
180 elegant, concise construction of versatile graphics, and affords high-performance
181 interactivity over large or streaming datasets. `Bokeh` can help anyone who would like
182 to quickly and easily make interactive plots, dashboards, and data applications.
183
184 #### [folium](https://github.com/python-visualization/folium)
185 `folium` builds on the data wrangling strengths of the Python ecosystem and the mapping
186 strengths of the `Leaflet.js` library. Manipulate your data in Python, then visualize it
187 in a `Leaflet` map via `folium`.
188
189 #### [kepler.gl](https://github.com/keplergl/kepler.gl)
190 `Kepler.gl` is a data-agnostic, high-performance web-based application for visual
191 exploration of large-scale geolocation data sets. Built on top of Mapbox GL and
192 `deck.gl`, `kepler.gl` can render millions of points representing thousands of trips and
193 perform spatial aggregations on the fly.
194
195 #### [geoplot](https://github.com/ResidentMario/geoplot)
196 `geoplot` is a high-level Python geospatial plotting library. It's an extension to
197 `cartopy` and `matplotlib` which makes mapping easy: like `seaborn` for geospatial. It
198 comes with the high-level plotting API, native projection support and compatibility with
199 `matplotlib`.
200
201 #### [GeoViews](https://github.com/holoviz/geoviews)
202 `GeoViews` is a Python library that makes it easy to explore and visualize any data that
203 includes geographic locations. It has particularly powerful support for multidimensional
204 meteorological and oceanographic datasets, such as those used in weather, climate, and
205 remote sensing research, but is useful for almost anything that you would want to plot
206 on a map!
207
208 #### [EarthPy](https://github.com/earthlab/earthpy)
209 `EarthPy` is a python package that makes it easier to plot and work with spatial raster
210 and vector data using open source tools. `Earthpy` depends upon `geopandas` which has a
211 focus on vector data and `rasterio` with facilitates input and output of raster data
212 files. It also requires `matplotlib` for plotting operations. `EarthPy’s` goal is to
213 make working with spatial data easier for scientists.
214
215 #### [splot](https://github.com/pysal/splot)
216 `splot` provides statistical visualizations for spatial analysis. It methods for
217 visualizing global and local spatial autocorrelation (through Moran scatterplots and
218 cluster maps), temporal analysis of cluster dynamics (through heatmaps and rose
219 diagrams), and multivariate choropleth mapping (through value-by-alpha maps). A high
220 level API supports the creation of publication-ready visualizations
221
222 #### [legendgram](https://github.com/pysal/legendgram)
223 `legendgram` is a small package that provides "legendgrams" legends that visualize the
224 distribution of observations by color in a given map. These distributional
225 visualizations for map classification schemes assist in analytical cartography and
226 spatial data visualization.
227
228 ### Geometry manipulation
229
230 #### [TopoJSON](https://github.com/mattijn/topojson)
231 `Topojson` is a library that is capable of creating a topojson encoded format of merely
232 any geographical object in Python. With topojson it is possible to reduce the size of
233 your geographical data. Mostly by orders of magnitude. It is able to do so through:
234 eliminating redundancy through computation of a topology; fixed-precision integer
235 encoding of coordinates and simplification and quantization of arcs.
236
237 #### [geocube](https://github.com/corteva/geocube)
238 Tool to convert geopandas vector data into rasterized `xarray` data.
239
240 ### Data retrieval
241
242 #### [OSMnx](https://github.com/gboeing/osmnx)
243 `OSMnx` is a Python package that lets you download spatial data from OpenStreetMap and
244 model, project, visualize, and analyze real-world street networks. You can download and
245 model walkable, drivable, or bikeable urban networks with a single line of Python code
246 then easily analyze and visualize them. You can just as easily download and work with
247 other infrastructure types, amenities/points of interest, building footprints, elevation
248 data, street bearings/orientations, and speed/travel time.
249
250 #### [pyrosm](https://github.com/HTenkanen/pyrosm)
251 `Pyrosm` is a Python library for reading OpenStreetMap data from Protocolbuffer Binary
252 Format -files (`*.osm.pbf`) into Geopandas `GeoDataFrames`. Pyrosm makes it easy to
253 extract various datasets from OpenStreetMap pbf-dumps including e.g. road networks,
254 buildings, Points of Interest (POI), landuse and natural elements. Also fully customized
255 queries are supported which makes it possible to parse the data from OSM with more
256 specific filters.
257
258 #### [geobr](https://github.com/ipeaGIT/geobr)
259 `geobr` is a computational package to download official spatial data sets of Brazil. The
260 package includes a wide range of geospatial data in geopackage format (like shapefiles
261 but better), available at various geographic scales and for various years with
262 harmonized attributes, projection and topology.
263
264 #### [cenpy](https://github.com/cenpy-devs/cenpy)
265 An interface to explore and query the US Census API and return Pandas `Dataframes`. This
266 package is intended for exploratory data analysis and draws inspiration from
267 sqlalchemy-like interfaces and `acs.R`. With separate APIs for application developers
268 and folks who only want to get their data quickly & painlessly, `cenpy` should meet the
269 needs of most who aim to get US Census Data from Python.
270
271 ```{admonition} Expand this page
272 Do know a package which should be here? [Let us
273 know](https://github.com/geopandas/geopandas/issues) or [add it by
274 yourself](contributing.rst)!
275 ```
0 Community
1 ---------
2
3 GeoPandas is a community-led project written, used and supported by a wide range of
4 people from all around of world of a large variety of backgrounds. Everyone is welcome,
5 each small contribution, no matter if it is a fix of a typo in the documentation, bug
6 report, an idea, or a question, is valuable. As a member of our community, you should
7 adhere to the principles presented in the :doc:`Code of Conduct
8 <community/code_of_conduct>`.
9
10 If you'd like to contribute, please read the :doc:`Contributing guide
11 <community/contributing>`. It will help you to understand the way GeoPandas development
12 works and us to review your contribution.
13
14 GeoPandas is a part of the broader Python :doc:`ecosystem <community/ecosystem>`. It
15 depends on a range of great tools, and various packages are built on top of GeoPandas
16 addressing specific needs in geospatial data processing, analysis and visualization.
17
18 .. container:: button
19
20 :doc:`Contributing <community/contributing>` :doc:`Code of Conduct <community/code_of_conduct>`
21 :doc:`Ecosystem <community/ecosystem>`
22
23 .. toctree::
24 :maxdepth: 2
25 :caption: Community
26 :hidden:
27
28 Contributing <community/contributing>
29 Code of Conduct <community/code_of_conduct>
30 Ecosystem <community/ecosystem>
1616 # If extensions (or modules to document with autodoc) are in another directory,
1717 # add these directories to sys.path here. If the directory is relative to the
1818 # documentation root, use os.path.abspath to make it absolute, like shown here.
19 #sys.path.insert(0, os.path.abspath('.'))
19 # sys.path.insert(0, os.path.abspath('.'))
2020
2121 # -- General configuration -----------------------------------------------------
2222
2323 # If your documentation needs a minimal Sphinx version, state it here.
24 #needs_sphinx = '1.0'
24 # needs_sphinx = '1.0'
2525
2626 # Add any Sphinx extension module names here, as strings. They can be extensions
2727 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
28 extensions = ['IPython.sphinxext.ipython_console_highlighting',
29 'IPython.sphinxext.ipython_directive',
30 'sphinx_gallery.gen_gallery',
31 'sphinx.ext.autosummary',
32 'sphinx.ext.intersphinx',
33 'sphinx.ext.autodoc',
34 'recommonmark',
35 'numpydoc',
28 extensions = [
29 "IPython.sphinxext.ipython_console_highlighting",
30 "IPython.sphinxext.ipython_directive",
31 "sphinx_gallery.load_style",
32 "sphinx.ext.autosummary",
33 "sphinx.ext.intersphinx",
34 "sphinx.ext.autodoc",
35 "myst_parser",
36 "nbsphinx",
37 "numpydoc",
38 'sphinx_toggleprompt',
39 "matplotlib.sphinxext.plot_directive"
3640 ]
3741
3842 # continue doc build and only print warnings/errors in examples
3943 ipython_warning_is_error = False
4044 ipython_exec_lines = [
4145 # ensure that dataframes are not truncated in the IPython code blocks
42 'import pandas as _pd',
46 "import pandas as _pd",
4347 '_pd.set_option("display.max_columns", 20)',
44 '_pd.set_option("display.width", 100)'
48 '_pd.set_option("display.width", 100)',
4549 ]
4650
4751 # Fix issue with warnings from numpydoc (see discussion in PR #534)
4852 numpydoc_show_class_members = False
4953
54
5055 def setup(app):
51 app.add_stylesheet('custom.css') # may also be an URL
56 app.add_stylesheet("custom.css") # may also be an URL
57
5258
5359 # Add any paths that contain templates here, relative to this directory.
5460
55 templates_path = ['_templates']
61 templates_path = ["_templates"]
5662
5763 autosummary_generate = True
5864
59 # Sphinx gallery configuration
60 sphinx_gallery_conf = {
61 'examples_dirs': ['../../examples'],
62 'filename_pattern': '^((?!sgskip).)*$',
63 'gallery_dirs': ['gallery'],
64 'doc_module': ('geopandas',),
65 'reference_url': {'matplotlib': 'http://matplotlib.org',
66 'numpy': 'http://docs.scipy.org/doc/numpy',
67 'scipy': 'http://docs.scipy.org/doc/scipy/reference',
68 'geopandas': None},
69 'backreferences_dir': 'reference'
70 }
65 nbsphinx_execute = "always"
66 nbsphinx_allow_errors = True
67
7168 # connect docs in other projects
72 intersphinx_mapping = {'pyproj': ('http://pyproj4.github.io/pyproj/stable/', None)}
69 intersphinx_mapping = {"pyproj": ("http://pyproj4.github.io/pyproj/stable/", None)}
7370 # suppress matplotlib warning in examples
7471 warnings.filterwarnings(
7572 "ignore",
7976 )
8077
8178 # The suffix of source filenames.
82 source_suffix = ['.rst', '.md']
79 source_suffix = [".rst", ".md"]
8380
8481 # The encoding of source files.
85 #source_encoding = 'utf-8-sig'
82 # source_encoding = 'utf-8-sig'
8683
8784 # The master toctree document.
88 master_doc = 'index'
85 master_doc = "index"
8986
9087 # General information about the project.
91 project = u'GeoPandas'
92 copyright = u'2013–2019, GeoPandas developers'
88 project = u"GeoPandas"
89 copyright = u"2013–2021, GeoPandas developers"
9390
9491 # The version info for the project you're documenting, acts as replacement for
9592 # |version| and |release|, also used in various other places throughout the
9693 # built documents.
9794 import geopandas
95
9896 version = release = geopandas.__version__
9997
10098 # The language for content autogenerated by Sphinx. Refer to documentation
10199 # for a list of supported languages.
102 #language = None
100 # language = None
103101
104102 # There are two options for replacing |today|: either, you set today to some
105103 # non-false value, then it is used:
106 #today = ''
104 # today = ''
107105 # Else, today_fmt is used as the format for a strftime call.
108 #today_fmt = '%B %d, %Y'
106 # today_fmt = '%B %d, %Y'
109107
110108 # List of patterns, relative to source directory, that match files and
111109 # directories to ignore when looking for source files.
112110 exclude_patterns = []
113111
114112 # The reST default role (used for this markup: `text`) to use for all documents.
115 #default_role = None
113 # default_role = None
116114
117115 # If true, '()' will be appended to :func: etc. cross-reference text.
118 #add_function_parentheses = True
116 # add_function_parentheses = True
119117
120118 # If true, the current module name will be prepended to all description
121119 # unit titles (such as .. function::).
122 #add_module_names = True
120 # add_module_names = True
123121
124122 # If true, sectionauthor and moduleauthor directives will be shown in the
125123 # output. They are ignored by default.
126 #show_authors = False
124 # show_authors = False
127125
128126 # The name of the Pygments (syntax highlighting) style to use.
129 pygments_style = 'sphinx'
127 pygments_style = "sphinx"
130128
131129 # A list of ignored prefixes for module index sorting.
132 #modindex_common_prefix = []
130 # modindex_common_prefix = []
133131
134132
135133 # -- Options for HTML output ---------------------------------------------------
136134
137135 # The theme to use for HTML and HTML Help pages. See the documentation for
138136 # a list of builtin themes.
139 import sphinx_rtd_theme
140 html_theme = "sphinx_rtd_theme"
141 html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
137 html_theme = "pydata_sphinx_theme"
142138
143139 # Theme options are theme-specific and customize the look and feel of a theme
144140 # further. For a list of options available for each theme, see the
145141 # documentation.
146 #html_theme_options = {}
142 html_theme_options = {
143 "search_bar_position": "sidebar",
144 "github_url": "https://github.com/geopandas/geopandas",
145 "twitter_url": "https://twitter.com/geopandas",
146 }
147147
148148 # Add any paths that contain custom themes here, relative to this directory.
149 #html_theme_path = []
149 # html_theme_path = []
150150
151151 # The name for this set of Sphinx documents. If None, it defaults to
152152 # "<project> v<release> documentation".
153 #html_title = None
153 # html_title = None
154154
155155 # A shorter title for the navigation bar. Default is the same as html_title.
156 #html_short_title = None
156 # html_short_title = None
157157
158158 # The name of an image file (relative to this directory) to place at the top
159159 # of the sidebar.
160 #html_logo = None
160 html_logo = "_static/logo/geopandas_logo_web.svg"
161161
162162 # The name of an image file (within the static path) to use as favicon of the
163163 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
164164 # pixels large.
165 #html_favicon = None
165 html_favicon = "_static/logo/favicon.png"
166166
167167 # Add any paths that contain custom static files (such as style sheets) here,
168168 # relative to this directory. They are copied after the builtin static files,
169169 # so a file named "default.css" will overwrite the builtin "default.css".
170 html_static_path = ['_static']
170 html_static_path = ["_static"]
171171
172172 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
173173 # using the given strftime format.
174 #html_last_updated_fmt = '%b %d, %Y'
174 # html_last_updated_fmt = '%b %d, %Y'
175175
176176 # If true, SmartyPants will be used to convert quotes and dashes to
177177 # typographically correct entities.
178 #html_use_smartypants = True
178 # html_use_smartypants = True
179179
180180 # Custom sidebar templates, maps document names to template names.
181 #html_sidebars = {}
181 # html_sidebars = {}
182182
183183 # Additional templates that should be rendered to pages, maps page names to
184184 # template names.
185 #html_additional_pages = {}
185 # html_additional_pages = {}
186
187 # Add redirect for previously existing pages, each item is like `(from_old, to_new)`
188
189 moved_pages = [
190 # user guide
191 ("aggregation_with_dissolve", "docs/user_guide/aggregation_with_dissolve"),
192 ("data_structures", "docs/user_guide/data_structures"),
193 ("geocoding", "docs/user_guide/geocoding"),
194 ("geometric_manipulations", "docs/user_guide/geometric_manipulations"),
195 ("indexing", "docs/user_guide/indexing"),
196 ("io", "docs/user_guide/io"),
197 ("mapping", "docs/user_guide/mapping"),
198 ("mergingdata", "docs/user_guide/mergingdata"),
199 ("missing_empty", "docs/user_guide/missing_empty"),
200 ("projections", "docs/user_guide/projections"),
201 ("set_operations", "docs/user_guide/set_operations"),
202 # other
203 ("install", "getting_started/install"),
204 ("reference", "docs/reference"),
205 ("changelog", "docs/changelog"),
206 ("code_of_conduct", "community/code_of_conduct"),
207 ("contributing", "community/contributing"),
208 ]
209
210 html_additional_pages = {page[0]: "redirect.html" for page in moved_pages}
211
212 html_context = {"redirects": {old: new for old, new in moved_pages}}
186213
187214 # If false, no module index is generated.
188 #html_domain_indices = True
215 # html_domain_indices = True
189216
190217 # If false, no index is generated.
191 #html_use_index = True
218 # html_use_index = True
192219
193220 # If true, the index is split into individual pages for each letter.
194 #html_split_index = False
221 # html_split_index = False
195222
196223 # If true, links to the reST sources are added to the pages.
197 #html_show_sourcelink = True
224 # html_show_sourcelink = True
198225
199226 # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
200 #html_show_sphinx = True
227 # html_show_sphinx = True
201228
202229 # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
203 #html_show_copyright = True
230 # html_show_copyright = True
204231
205232 # If true, an OpenSearch description file will be output, and all pages will
206233 # contain a <link> tag referring to it. The value of this option must be the
207234 # base URL from which the finished HTML is served.
208 #html_use_opensearch = ''
235 # html_use_opensearch = ''
209236
210237 # This is the file name suffix for HTML files (e.g. ".xhtml").
211 #html_file_suffix = None
238 # html_file_suffix = None
212239
213240 # Output file base name for HTML help builder.
214 htmlhelp_basename = 'GeoPandasdoc'
241 htmlhelp_basename = "GeoPandasdoc"
215242
216243
217244 # -- Options for LaTeX output --------------------------------------------------
218245
219246 latex_elements = {
220 # The paper size ('letterpaper' or 'a4paper').
221 #'papersize': 'letterpaper',
222
223 # The font size ('10pt', '11pt' or '12pt').
224 #'pointsize': '10pt',
225
226 # Additional stuff for the LaTeX preamble.
227 #'preamble': '',
247 # The paper size ('letterpaper' or 'a4paper').
248 #'papersize': 'letterpaper',
249 # The font size ('10pt', '11pt' or '12pt').
250 #'pointsize': '10pt',
251 # Additional stuff for the LaTeX preamble.
252 #'preamble': '',
228253 }
229254
230255 # Grouping the document tree into LaTeX files. List of tuples
231256 # (source start file, target name, title, author, documentclass [howto/manual]).
232257 latex_documents = [
233 ('index', 'GeoPandas.tex', u'GeoPandas Documentation',
234 u'Kelsey Jordahl', 'manual'),
258 ("index", "GeoPandas.tex", u"GeoPandas Documentation", u"Kelsey Jordahl", "manual")
235259 ]
236260
237261 # The name of an image file (relative to this directory) to place at the top of
238262 # the title page.
239 #latex_logo = None
263 # latex_logo = None
240264
241265 # For "manual" documents, if this is true, then toplevel headings are parts,
242266 # not chapters.
243 #latex_use_parts = False
267 # latex_use_parts = False
244268
245269 # If true, show page references after internal links.
246 #latex_show_pagerefs = False
270 # latex_show_pagerefs = False
247271
248272 # If true, show URL addresses after external links.
249 #latex_show_urls = False
273 # latex_show_urls = False
250274
251275 # Documents to append as an appendix to all manuals.
252 #latex_appendices = []
276 # latex_appendices = []
253277
254278 # If false, no module index is generated.
255 #latex_domain_indices = True
279 # latex_domain_indices = True
256280
257281
258282 # -- Options for manual page output --------------------------------------------
259283
260284 # One entry per manual page. List of tuples
261285 # (source start file, name, description, authors, manual section).
262 man_pages = [
263 ('index', 'geopandas', u'GeoPandas Documentation',
264 [u'Kelsey Jordahl'], 1)
265 ]
286 man_pages = [("index", "geopandas", u"GeoPandas Documentation", [u"Kelsey Jordahl"], 1)]
266287
267288 # If true, show URL addresses after external links.
268 #man_show_urls = False
289 # man_show_urls = False
269290
270291
271292 # -- Options for Texinfo output ------------------------------------------------
274295 # (source start file, target name, title, author,
275296 # dir menu entry, description, category)
276297 texinfo_documents = [
277 ('index', 'GeoPandas', u'GeoPandas Documentation',
278 u'Kelsey Jordahl', 'GeoPandas', 'One line description of project.',
279 'Miscellaneous'),
298 (
299 "index",
300 "GeoPandas",
301 u"GeoPandas Documentation",
302 u"Kelsey Jordahl",
303 "GeoPandas",
304 "One line description of project.",
305 "Miscellaneous",
306 )
280307 ]
281308
282309 # Documents to append as an appendix to all manuals.
283 #texinfo_appendices = []
310 # texinfo_appendices = []
284311
285312 # If false, no module index is generated.
286 #texinfo_domain_indices = True
313 # texinfo_domain_indices = True
287314
288315 # How to display URL addresses: 'footnote', 'no', or 'inline'.
289 #texinfo_show_urls = 'footnote'
316 # texinfo_show_urls = 'footnote'
317
318 nbsphinx_prolog = r"""
319 {% set docname = env.doc2path(env.docname, base=None) %}
320
321 .. only:: html
322
323 .. role:: raw-html(raw)
324 :format: html
325
326 .. note::
327
328 | This page was generated from `{{ docname }}`__.
329 | Interactive online version: :raw-html:`<a href="https://mybinder.org/v2/gh/geopandas/geopandas/master?urlpath=lab/tree/doc/source/{{ docname }}"><img alt="Binder badge" src="https://mybinder.org/badge_logo.svg" style="vertical-align:text-bottom"></a>`
330
331 __ https://github.com/geopandas/geopandas/blob/master/doc/source/{{ docname }}
332 """
+0
-318
doc/source/contributing.rst less more
0 Contributing to GeoPandas
1 =========================
2
3 (Contribution guidelines largely copied from `pandas <http://pandas.pydata.org/pandas-docs/stable/contributing.html>`_)
4
5 Overview
6 --------
7
8 Contributions to GeoPandas are very welcome. They are likely to
9 be accepted more quickly if they follow these guidelines.
10
11 At this stage of GeoPandas development, the priorities are to define a
12 simple, usable, and stable API and to have clean, maintainable,
13 readable code. Performance matters, but not at the expense of those
14 goals.
15
16 In general, GeoPandas follows the conventions of the pandas project
17 where applicable.
18
19 In particular, when submitting a pull request:
20
21 - All existing tests should pass. Please make sure that the test
22 suite passes, both locally and on
23 `Travis CI <https://travis-ci.org/geopandas/geopandas>`_. Status on
24 Travis will be visible on a pull request. If you want to enable
25 Travis CI on your own fork, please read the pandas guidelines link
26 above or the
27 `getting started docs <http://about.travis-ci.org/docs/user/getting-started/>`_.
28
29 - New functionality should include tests. Please write reasonable
30 tests for your code and make sure that they pass on your pull request.
31
32 - Classes, methods, functions, etc. should have docstrings. The first
33 line of a docstring should be a standalone summary. Parameters and
34 return values should be documented explicitly.
35
36 - Follow PEP 8 when possible. We use `Black
37 <https://black.readthedocs.io/en/stable/>`_ and `Flake8
38 <http://flake8.pycqa.org/en/latest/>`_ to ensure a consistent code
39 format throughout the project. For more details see
40 :ref:`below <contributing_style>`.
41
42 - Imports should be grouped with standard library imports first,
43 3rd-party libraries next, and GeoPandas imports third. Within each
44 grouping, imports should be alphabetized. Always use absolute
45 imports when possible, and explicit relative imports for local
46 imports when necessary in tests.
47
48 - GeoPandas supports Python 3.5+ only. The last version of GeoPandas
49 supporting Python 2 is 0.6.
50
51
52 Seven Steps for Contributing
53 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
55 There are seven basic steps to contributing to *GeoPandas*:
56
57 1) Fork the *GeoPandas* git repository
58 2) Create a development environment
59 3) Install *GeoPandas* dependencies
60 4) Make a ``development`` build of *GeoPandas*
61 5) Make changes to code and add tests
62 6) Update the documentation
63 7) Submit a Pull Request
64
65 Each of these 7 steps is detailed below.
66
67
68 1) Forking the *GeoPandas* repository using Git
69 ------------------------------------------------
70
71 To the new user, working with Git is one of the more daunting aspects of contributing to *GeoPandas**.
72 It can very quickly become overwhelming, but sticking to the guidelines below will help keep the process
73 straightforward and mostly trouble free. As always, if you are having difficulties please
74 feel free to ask for help.
75
76 The code is hosted on `GitHub <https://github.com/geopandas/geopandas>`_. To
77 contribute you will need to sign up for a `free GitHub account
78 <https://github.com/signup/free>`_. We use `Git <http://git-scm.com/>`_ for
79 version control to allow many people to work together on the project.
80
81 Some great resources for learning Git:
82
83 * Software Carpentry's `Git Tutorial <http://swcarpentry.github.io/git-novice/>`_
84 * `Atlassian <https://www.atlassian.com/git/tutorials/what-is-version-control>`_
85 * the `GitHub help pages <http://help.github.com/>`_.
86 * Matthew Brett's `Pydagogue <http://matthew-brett.github.com/pydagogue/>`_.
87
88 Getting started with Git
89 ~~~~~~~~~~~~~~~~~~~~~~~~
90
91 `GitHub has instructions <http://help.github.com/set-up-git-redirect>`__ for installing git,
92 setting up your SSH key, and configuring git. All these steps need to be completed before
93 you can work seamlessly between your local repository and GitHub.
94
95 .. _contributing.forking:
96
97 Forking
98 ~~~~~~~
99
100 You will need your own fork to work on the code. Go to the `GeoPandas project
101 page <https://github.com/geopandas/geopandas>`_ and hit the ``Fork`` button. You will
102 want to clone your fork to your machine::
103
104 git clone git@github.com:your-user-name/geopandas.git geopandas-yourname
105 cd geopandas-yourname
106 git remote add upstream git://github.com/geopandas/geopandas.git
107
108 This creates the directory `geopandas-yourname` and connects your repository to
109 the upstream (main project) *GeoPandas* repository.
110
111 The testing suite will run automatically on Travis-CI once your pull request is
112 submitted. However, if you wish to run the test suite on a branch prior to
113 submitting the pull request, then Travis-CI needs to be hooked up to your
114 GitHub repository. Instructions for doing so are `here
115 <http://about.travis-ci.org/docs/user/getting-started/>`__.
116
117 Creating a branch
118 ~~~~~~~~~~~~~~~~~~
119
120 You want your master branch to reflect only production-ready code, so create a
121 feature branch for making your changes. For example::
122
123 git branch shiny-new-feature
124 git checkout shiny-new-feature
125
126 The above can be simplified to::
127
128 git checkout -b shiny-new-feature
129
130 This changes your working directory to the shiny-new-feature branch. Keep any
131 changes in this branch specific to one bug or feature so it is clear
132 what the branch brings to *GeoPandas*. You can have many shiny-new-features
133 and switch in between them using the git checkout command.
134
135 To update this branch, you need to retrieve the changes from the master branch::
136
137 git fetch upstream
138 git rebase upstream/master
139
140 This will replay your commits on top of the latest GeoPandas git master. If this
141 leads to merge conflicts, you must resolve these before submitting your pull
142 request. If you have uncommitted changes, you will need to ``stash`` them prior
143 to updating. This will effectively store your changes and they can be reapplied
144 after updating.
145
146 .. _contributing.dev_env:
147
148 2) Creating a development environment
149 ---------------------------------------
150 A development environment is a virtual space where you can keep an independent installation of *GeoPandas*.
151 This makes it easy to keep both a stable version of python in one place you use for work, and a development
152 version (which you may break while playing with code) in another.
153
154 An easy way to create a *GeoPandas* development environment is as follows:
155
156 - Install either `Anaconda <http://docs.continuum.io/anaconda/>`_ or
157 `miniconda <http://conda.pydata.org/miniconda.html>`_
158 - Make sure that you have :ref:`cloned the repository <contributing.forking>`
159 - ``cd`` to the *geopandas** source directory
160
161 Tell conda to create a new environment, named ``geopandas_dev``, or any other name you would like
162 for this environment, by running::
163
164 conda create -n geopandas_dev python
165
166 This will create the new environment, and not touch any of your existing environments,
167 nor any existing python installation.
168
169 To work in this environment, you need to ``activate`` it. The instructions below
170 should work for both Windows, Mac and Linux::
171
172 conda activate geopandas_dev
173
174 Once your environment is activated, you will see a confirmation message to
175 indicate you are in the new development environment.
176
177 To view your environments::
178
179 conda info -e
180
181 To return to you home root environment::
182
183 conda deactivate
184
185 See the full conda docs `here <http://conda.pydata.org/docs>`__.
186
187 At this point you can easily do a *development* install, as detailed in the next sections.
188
189 3) Installing Dependencies
190 --------------------------
191
192 To run *GeoPandas* in an development environment, you must first install
193 *GeoPandas*'s dependencies. We suggest doing so using the following commands
194 (executed after your development environment has been activated)::
195
196 conda install -c conda-forge pandas fiona shapely pyproj rtree pytest
197
198 This should install all necessary dependencies.
199
200
201 4) Making a development build
202 -----------------------------
203
204 Once dependencies are in place, make an in-place build by navigating to the git
205 clone of the *GeoPandas* repository and running::
206
207 python setup.py develop
208
209
210 5) Making changes and writing tests
211 -------------------------------------
212
213 *GeoPandas* is serious about testing and strongly encourages contributors to embrace
214 `test-driven development (TDD) <http://en.wikipedia.org/wiki/Test-driven_development>`_.
215 This development process "relies on the repetition of a very short development cycle:
216 first the developer writes an (initially failing) automated test case that defines a desired
217 improvement or new function, then produces the minimum amount of code to pass that test."
218 So, before actually writing any code, you should write your tests. Often the test can be
219 taken from the original GitHub issue. However, it is always worth considering additional
220 use cases and writing corresponding tests.
221
222 Adding tests is one of the most common requests after code is pushed to *GeoPandas*. Therefore,
223 it is worth getting in the habit of writing tests ahead of time so this is never an issue.
224
225 *GeoPandas* uses the `pytest testing system
226 <http://doc.pytest.org/en/latest/>`_ and the convenient
227 extensions in `numpy.testing
228 <http://docs.scipy.org/doc/numpy/reference/routines.testing.html>`_.
229
230 Writing tests
231 ~~~~~~~~~~~~~
232
233 All tests should go into the ``tests`` directory. This folder contains many
234 current examples of tests, and we suggest looking to these for inspiration.
235
236 The ``.util`` module has some special ``assert`` functions that
237 make it easier to make statements about whether GeoSeries or GeoDataFrame
238 objects are equivalent. The easiest way to verify that your code is correct is to
239 explicitly construct the result you expect, then compare the actual result to
240 the expected correct result, using eg the function ``assert_geoseries_equal``.
241
242 Running the test suite
243 ~~~~~~~~~~~~~~~~~~~~~~
244
245 The tests can then be run directly inside your Git clone (without having to
246 install *GeoPandas*) by typing::
247
248 pytest
249
250 6) Updating the Documentation
251 -----------------------------
252
253 *GeoPandas* documentation resides in the `doc` folder. Changes to the docs are
254 make by modifying the appropriate file in the `source` folder within `doc`.
255 *GeoPandas* docs use reStructuredText syntax, `which is explained here <http://www.sphinx-doc.org/en/stable/rest.html#rst-primer>`_
256 and the docstrings follow the `Numpy Docstring standard <https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt>`_.
257
258 Once you have made your changes, you may try if they render correctly by
259 building the docs using sphinx. To do so, you can navigate to the `doc` folder
260 and type::
261
262 make html
263
264 The resulting html pages will be located in `doc/build/html`. In case of any
265 errors, you can try to use `make html` within a new environment based on
266 environment.yml specification in the `doc` folder. Using conda::
267
268 conda env create -f environment.yml
269 conda activate geopandas_docs
270 make html
271
272 For minor updates, you can skip whole `make html` part as reStructuredText syntax
273 is usually quite straightforward.
274
275
276 7) Submitting a Pull Request
277 ------------------------------
278
279 Once you've made changes and pushed them to your forked repository, you then
280 submit a pull request to have them integrated into the *GeoPandas* code base.
281
282 You can find a pull request (or PR) tutorial in the `GitHub's Help Docs <https://help.github.com/articles/using-pull-requests/>`_.
283
284 .. _contributing_style:
285
286 Style Guide & Linting
287 ---------------------
288
289 GeoPandas follows the `PEP8 <http://www.python.org/dev/peps/pep-0008/>`_ standard
290 and uses `Black <https://black.readthedocs.io/en/stable/>`_ and
291 `Flake8 <http://flake8.pycqa.org/en/latest/>`_ to ensure a consistent code
292 format throughout the project.
293
294 Continuous Integration (Travis CI) will run those tools and
295 report any stylistic errors in your code. Therefore, it is helpful before
296 submitting code to run the check yourself::
297
298 black geopandas
299 git diff upstream/master -u -- "*.py" | flake8 --diff
300
301 to auto-format your code. Additionally, many editors have plugins that will
302 apply ``black`` as you edit files.
303
304 Optionally (but recommended), you can setup `pre-commit hooks <https://pre-commit.com/>`_
305 to automatically run ``black`` and ``flake8`` when you make a git commit. This
306 can be done by installing ``pre-commit``::
307
308 $ python -m pip install pre-commit
309
310 From the root of the geopandas repository, you should then install the
311 ``pre-commit`` included in *GeoPandas*::
312
313 $ pre-commit install
314
315 Then ``black`` and ``flake8`` will be run automatically
316 each time you commit changes. You can skip these checks with
317 ``git commit --no-verify``.
+0
-173
doc/source/data_structures.rst less more
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6 import matplotlib
7 orig = matplotlib.rcParams['figure.figsize']
8 matplotlib.rcParams['figure.figsize'] = [orig[0] * 1.5, orig[1]]
9
10
11
12 Data Structures
13 =========================================
14
15 GeoPandas implements two main data structures, a :class:`GeoSeries` and a
16 :class:`GeoDataFrame`. These are subclasses of pandas ``Series`` and
17 ``DataFrame``, respectively.
18
19 GeoSeries
20 ---------
21
22 A :class:`GeoSeries` is essentially a vector where each entry in the vector
23 is a set of shapes corresponding to one observation. An entry may consist
24 of only one shape (like a single polygon) or multiple shapes that are
25 meant to be thought of as one observation (like the many polygons that
26 make up the State of Hawaii or a country like Indonesia).
27
28 *geopandas* has three basic classes of geometric objects (which are actually *shapely* objects):
29
30 * Points / Multi-Points
31 * Lines / Multi-Lines
32 * Polygons / Multi-Polygons
33
34 Note that all entries in a :class:`GeoSeries` need not be of the same geometric type, although certain export operations will fail if this is not the case.
35
36 Overview of Attributes and Methods
37 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38
39 The :class:`GeoSeries` class implements nearly all of the attributes and
40 methods of Shapely objects. When applied to a :class:`GeoSeries`, they
41 will apply elementwise to all geometries in the series. Binary
42 operations can be applied between two :class:`GeoSeries`, in which case the
43 operation is carried out elementwise. The two series will be aligned
44 by matching indices. Binary operations can also be applied to a
45 single geometry, in which case the operation is carried out for each
46 element of the series with that geometry. In either case, a
47 ``Series`` or a :class:`GeoSeries` will be returned, as appropriate.
48
49 A short summary of a few attributes and methods for GeoSeries is
50 presented here, and a full list can be found in the :doc:`all attributes and methods page <reference>`.
51 There is also a family of methods for creating new shapes by expanding
52 existing shapes or applying set-theoretic operations like "union" described
53 in :doc:`geometric manipulations <geometric_manipulations>`.
54
55 Attributes
56 ^^^^^^^^^^^^^^^
57 * :attr:`~GeoSeries.area`: shape area (units of projection -- see :doc:`projections <projections>`)
58 * :attr:`~GeoSeries.bounds`: tuple of max and min coordinates on each axis for each shape
59 * :attr:`~GeoSeries.total_bounds`: tuple of max and min coordinates on each axis for entire GeoSeries
60 * :attr:`~GeoSeries.geom_type`: type of geometry.
61 * :attr:`~GeoSeries.is_valid`: tests if coordinates make a shape that is reasonable geometric shape (`according to this <http://www.opengeospatial.org/standards/sfa>`_).
62
63 Basic Methods
64 ^^^^^^^^^^^^^^
65
66 * :meth:`~GeoSeries.distance`: returns ``Series`` with minimum distance from each entry to ``other``
67 * :attr:`~GeoSeries.centroid`: returns :class:`GeoSeries` of centroids
68 * :meth:`~GeoSeries.representative_point`: returns :class:`GeoSeries` of points that are guaranteed to be within each geometry. It does **NOT** return centroids.
69 * :meth:`~GeoSeries.to_crs`: change coordinate reference system. See :doc:`projections <projections>`
70 * :meth:`~GeoSeries.plot`: plot :class:`GeoSeries`. See :doc:`mapping <mapping>`.
71
72 Relationship Tests
73 ^^^^^^^^^^^^^^^^^^^
74
75 * :meth:`~GeoSeries.geom_almost_equals`: is shape almost the same as ``other`` (good when floating point precision issues make shapes slightly different)
76 * :meth:`~GeoSeries.contains`: is shape contained within ``other``
77 * :meth:`~GeoSeries.intersects`: does shape intersect ``other``
78
79
80 GeoDataFrame
81 ------------
82
83 A :class:`GeoDataFrame` is a tabular data structure that contains a :class:`GeoSeries`.
84
85 The most important property of a :class:`GeoDataFrame` is that it always has one :class:`GeoSeries` column that holds a special status. This :class:`GeoSeries` is referred to as the :class:`GeoDataFrame`'s "geometry". When a spatial method is applied to a :class:`GeoDataFrame` (or a spatial attribute like ``area`` is called), this commands will always act on the "geometry" column.
86
87 The "geometry" column -- no matter its name -- can be accessed through the :attr:`~GeoDataFrame.geometry` attribute (``gdf.geometry``), and the name of the ``geometry`` column can be found by typing ``gdf.geometry.name``.
88
89 A :class:`GeoDataFrame` may also contain other columns with geometrical (shapely) objects, but only one column can be the active geometry at a time. To change which column is the active geometry column, use the :meth:`GeoDataFrame.set_geometry` method.
90
91 An example using the ``worlds`` GeoDataFrame:
92
93 .. ipython:: python
94
95 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
96
97 world.head()
98 #Plot countries
99 @savefig world_borders.png
100 world.plot();
101
102 Currently, the column named "geometry" with country borders is the active
103 geometry column:
104
105 .. ipython:: python
106
107 world.geometry.name
108
109 We can also rename this column to "borders":
110
111 .. ipython:: python
112
113 world = world.rename(columns={'geometry': 'borders'}).set_geometry('borders')
114 world.geometry.name
115
116 Now, we create centroids and make it the geometry:
117
118 .. ipython:: python
119
120 world['centroid_column'] = world.centroid
121 world = world.set_geometry('centroid_column')
122
123 @savefig world_centroids.png
124 world.plot();
125
126
127 **Note:** A :class:`GeoDataFrame` keeps track of the active column by name, so if you rename the active geometry column, you must also reset the geometry::
128
129 gdf = gdf.rename(columns={'old_name': 'new_name'}).set_geometry('new_name')
130
131 **Note 2:** Somewhat confusingly, by default when you use the ``read_file`` command, the column containing spatial objects from the file is named "geometry" by default, and will be set as the active geometry column. However, despite using the same term for the name of the column and the name of the special attribute that keeps track of the active column, they are distinct. You can easily shift the active geometry column to a different :class:`GeoSeries` with the :meth:`~GeoDataFrame.set_geometry` command. Further, ``gdf.geometry`` will always return the active geometry column, *not* the column named ``geometry``. If you wish to call a column named "geometry", and a different column is the active geometry column, use ``gdf['geometry']``, not ``gdf.geometry``.
132
133 Attributes and Methods
134 ~~~~~~~~~~~~~~~~~~~~~~
135
136 Any of the attributes calls or methods described for a :class:`GeoSeries` will work on a :class:`GeoDataFrame` -- effectively, they are just applied to the "geometry" :class:`GeoSeries`.
137
138 However, ``GeoDataFrames`` also have a few extra methods for input and output which are described on the :doc:`Input and Output <io>` page and for geocoding with are described in :doc:`Geocoding <geocoding>`.
139
140
141 .. ipython:: python
142 :suppress:
143
144 matplotlib.rcParams['figure.figsize'] = orig
145
146
147 Display options
148 ---------------
149
150 GeoPandas has an ``options`` attribute with currently a single configuration
151 option to control:
152
153 .. ipython:: python
154
155 import geopandas
156 geopandas.options
157
158 The ``geopandas.options.display_precision`` option can control the number of
159 decimals to show in the display of coordinates in the geometry column.
160 In the ``world`` example of above, the default is to show 5 decimals for
161 geographic coordinates:
162
163 .. ipython:: python
164
165 world['centroid_column'].head()
166
167 If you want to change this, for example to see more decimals, you can do:
168
169 .. ipython:: python
170
171 geopandas.options.display_precision = 9
172 world['centroid_column'].head()
0 Advanced Guide
1 ==============
2
3 The Advanced Guide covers advanced usage of GeoPandas. Each page focuses on a single
4 topic and outlines how it is implemented in GeoPandas, with reproducible examples.
5
6 If you don't know anything about GeoPandas, start with the :doc:`Introduction to
7 GeoPandas <../getting_started/introduction>`.
8
9 Basic topics can be found in the :doc:`User Guide <user_guide>` and further
10 specification in the :doc:`API Reference <reference>`.
11
12 .. note::
13 This section is currently work in progress. See the available pages below.
14
15 .. toctree::
16 :maxdepth: 2
17
18 user_guide/missing_empty
0 .. include:: ../../../CHANGELOG.md
0 ============
1 GeoDataFrame
2 ============
3 .. currentmodule:: geopandas
4
5 A ``GeoDataFrame`` is a tabular data structure that contains a column
6 which contains a ``GeoSeries`` storing geometry.
7
8 Constructor
9 -----------
10 .. autosummary::
11 :toctree: api/
12
13 GeoDataFrame
14
15 Reading and writing files
16 -------------------------
17
18 .. autosummary::
19 :toctree: api/
20
21 GeoDataFrame.from_file
22 GeoDataFrame.from_features
23 GeoDataFrame.from_postgis
24 GeoDataFrame.to_file
25 GeoDataFrame.to_json
26 GeoDataFrame.to_parquet
27 GeoDataFrame.to_feather
28 GeoDataFrame.to_postgis
29
30 Projection handling
31 -------------------
32
33 .. autosummary::
34 :toctree: api/
35
36 GeoDataFrame.crs
37 GeoDataFrame.set_crs
38 GeoDataFrame.to_crs
39 GeoDataFrame.estimate_utm_crs
40
41 Active geometry handling
42 ------------------------
43
44 .. autosummary::
45 :toctree: api/
46
47 GeoDataFrame.rename_geometry
48 GeoDataFrame.set_geometry
49
50 Aggregating and exploding
51 -------------------------
52
53 .. autosummary::
54 :toctree: api/
55
56 GeoDataFrame.dissolve
57 GeoDataFrame.explode
58
59 Plotting
60 --------
61
62 .. autosummary::
63 :toctree: api/
64 :template: accessor_callable.rst
65
66 GeoDataFrame.plot
67
68
69 Spatial index
70 -------------
71
72 .. autosummary::
73 :toctree: api/
74
75 GeoDataFrame.sindex
76 GeoDataFrame.has_sindex
77
78 Indexing
79 --------
80
81 .. autosummary::
82 :toctree: api/
83
84 GeoDataFrame.cx
85
86 Interface
87 ---------
88
89 .. autosummary::
90 :toctree: api/
91
92 GeoDataFrame.__geo_interface__
93 GeoDataFrame.iterfeatures
94
95 All pandas ``DataFrame`` methods are also available, although they may
96 not operate in a meaningful way on the ``geometry`` column. All methods
97 listed in `GeoSeries <geoseries>`__ work directly on an active geometry column of GeoDataFrame.
98
0 =========
1 GeoSeries
2 =========
3 .. currentmodule:: geopandas
4
5 Constructor
6 -----------
7 .. autosummary::
8 :toctree: api/
9
10 GeoSeries
11
12 General methods and attributes
13 ------------------------------
14
15 .. autosummary::
16 :toctree: api/
17
18 GeoSeries.area
19 GeoSeries.boundary
20 GeoSeries.bounds
21 GeoSeries.total_bounds
22 GeoSeries.length
23 GeoSeries.geom_type
24 GeoSeries.distance
25 GeoSeries.representative_point
26 GeoSeries.exterior
27 GeoSeries.interiors
28 GeoSeries.x
29 GeoSeries.y
30 GeoSeries.z
31
32 Unary predicates
33 ----------------
34
35 .. autosummary::
36 :toctree: api/
37
38 GeoSeries.is_empty
39 GeoSeries.is_ring
40 GeoSeries.is_simple
41 GeoSeries.is_valid
42 GeoSeries.has_z
43
44
45 Binary Predicates
46 -----------------
47
48 .. autosummary::
49 :toctree: api/
50
51 GeoSeries.contains
52 GeoSeries.crosses
53 GeoSeries.disjoint
54 GeoSeries.geom_equals
55 GeoSeries.geom_almost_equals
56 GeoSeries.geom_equals_exact
57 GeoSeries.intersects
58 GeoSeries.overlaps
59 GeoSeries.touches
60 GeoSeries.within
61 GeoSeries.covers
62 GeoSeries.covered_by
63
64
65 Set-theoretic Methods
66 ---------------------
67
68 .. autosummary::
69 :toctree: api/
70
71 GeoSeries.difference
72 GeoSeries.intersection
73 GeoSeries.symmetric_difference
74 GeoSeries.union
75
76 Constructive Methods and Attributes
77 -----------------------------------
78
79 .. autosummary::
80 :toctree: api/
81
82 GeoSeries.buffer
83 GeoSeries.boundary
84 GeoSeries.centroid
85 GeoSeries.convex_hull
86 GeoSeries.envelope
87 GeoSeries.simplify
88
89 Affine transformations
90 ----------------------
91
92 .. autosummary::
93 :toctree: api/
94
95 GeoSeries.affine_transform
96 GeoSeries.rotate
97 GeoSeries.scale
98 GeoSeries.skew
99 GeoSeries.translate
100
101 Aggregating and exploding
102 -------------------------
103
104 .. autosummary::
105 :toctree: api/
106
107 GeoSeries.unary_union
108 GeoSeries.explode
109
110 Reading and writing files
111 -------------------------
112
113 .. autosummary::
114 :toctree: api/
115
116 GeoSeries.from_file
117 GeoSeries.to_file
118 GeoSeries.to_json
119
120 Projection handling
121 -------------------
122
123 .. autosummary::
124 :toctree: api/
125
126 GeoSeries.crs
127 GeoSeries.set_crs
128 GeoSeries.to_crs
129 GeoSeries.estimate_utm_crs
130
131 Missing values
132 --------------
133
134 .. autosummary::
135 :toctree: api/
136
137 GeoSeries.fillna
138 GeoSeries.isna
139 GeoSeries.notna
140
141 Plotting
142 --------
143
144 .. autosummary::
145 :toctree: api/
146
147 GeoSeries.plot
148
149
150 Spatial index
151 -------------
152
153 .. autosummary::
154 :toctree: api/
155
156 GeoSeries.sindex
157 GeoSeries.has_sindex
158
159 Indexing
160 --------
161
162 .. autosummary::
163 :toctree: api/
164
165 GeoSeries.cx
166
167 Interface
168 ---------
169
170 .. autosummary::
171 :toctree: api/
172
173 GeoSeries.__geo_interface__
174
175
176 Methods of pandas ``Series`` objects are also available, although not
177 all are applicable to geometric objects and some may return a
178 ``Series`` rather than a ``GeoSeries`` result when appropriate. The methods
179 ``isna()`` and ``fillna()`` have been
180 implemented specifically for ``GeoSeries`` and are expected to work
181 correctly.
0 ============
1 Input/output
2 ============
3 .. currentmodule:: geopandas
4
5 GIS vector files
6 ----------------
7 .. autosummary::
8 :toctree: api/
9
10 read_file
11 GeoDataFrame.to_file
12
13 PostGIS
14 -------
15 .. autosummary::
16 :toctree: api/
17
18 read_postgis
19 GeoDataFrame.to_postgis
20
21
22 Feather
23 -------
24 .. autosummary::
25 :toctree: api/
26
27 read_feather
28 GeoDataFrame.to_feather
29
30 Parquet
31 -------
32 .. autosummary::
33 :toctree: api/
34
35 read_parquet
36 GeoDataFrame.to_parquet
0 =============
1 Spatial index
2 =============
3 .. currentmodule:: geopandas
4
5 GeoPandas offers built-in support for spatial indexing using an R-Tree algorithm.
6 Depending on the ability to import ``pygeos``, GeoPandas will either use
7 ``pygeos.STRtree`` or ``rtree.index.Index``. The main interface for both is the
8 same and follows the ``pygeos`` model.
9
10 ``GeoSeries.sindex`` creates a spatial index, which can use the methods and
11 properties documented below.
12
13 Constructor
14 -----------
15 .. autosummary::
16 :toctree: api/
17
18 GeoSeries.sindex
19
20 Spatial Index object
21 --------------------
22
23 The spatial index object returned from :attr:`GeoSeries.sindex` has the following
24 methods:
25
26 .. currentmodule:: geopandas.sindex.SpatialIndex
27 .. autosummary::
28 :toctree: api/
29
30 intersection
31 is_empty
32 query
33 query_bulk
34 size
35 valid_query_predicates
36
37 The concrete implementations currently available are
38 ``geopandas.sindex.PyGEOSSTRTreeIndex`` and ``geopandas.sindex.RTreeIndex``.
39
40 In addition to the methods listed above, the ``rtree``-based spatial index
41 (``geopandas.sindex.RTreeIndex``) offers the full capability of
42 ``rtree.index.Index`` - see the full API in the `rtree documentation`_.
43
44 .. _rtree documentation: https://rtree.readthedocs.io/en/stable/class.html
0 =======
1 Testing
2 =======
3 .. currentmodule:: geopandas
4
5 GeoPandas includes specific functions to test its objects.
6
7 .. autosummary::
8 :toctree: api/
9
10 .. testing.geom_equals
11 .. testing.geom_almost_equals
12 testing.assert_geoseries_equal
13 testing.assert_geodataframe_equal
0 =====
1 Tools
2 =====
3 .. currentmodule:: geopandas
4
5 .. autosummary::
6 :toctree: api/
7
8 sjoin
9 overlay
10 clip
11 tools.geocode
12 tools.reverse_geocode
13 tools.collect
14 points_from_xy
15 datasets.available
16 datasets.get_path
0 .. _reference:
1
2 API Reference
3 =============
4
5 The API Reference provides an overview of all public objects, functions and methods implemented in GeoPandas. All classes and function exposed in ``geopandas.*`` namespace plus those listed in the reference are public.
6
7 .. warning::
8 The ``geopandas.array`` and ``geopandas.base`` modules are private. Stable functionality in such modules is not guaranteed.
9
10 .. toctree::
11 :maxdepth: 2
12
13 GeoSeries <reference/geoseries>
14 GeoDataFrame <reference/geodataframe>
15 Input/output <reference/io>
16 Tools <reference/tools>
17 Spatial index <reference/sindex>
18 Testing <reference/testing>
19
0 .. ipython:: python
1 :suppress:
2
3 import geopandas
4 import matplotlib
5 orig = matplotlib.rcParams['figure.figsize']
6 matplotlib.rcParams['figure.figsize'] = [orig[0] * 1.5, orig[1]]
7
8
9 Aggregation with dissolve
10 =============================
11
12 Spatial data are often more granular than we need. For example, we might have data on sub-national units, but we're actually interested in studying patterns at the level of countries.
13
14 In a non-spatial setting, when all we need are summary statistics of the data, we aggregate our data using the ``groupby`` function. But for spatial data, we sometimes also need to aggregate geometric features. In the *geopandas* library, we can aggregate geometric features using the ``dissolve`` function.
15
16 ``dissolve`` can be thought of as doing three things: (a) it dissolves all the geometries within a given group together into a single geometric feature (using the ``unary_union`` method), and (b) it aggregates all the rows of data in a group using ``groupby.aggregate()``, and (c) it combines those two results.
17
18 ``dissolve`` Example
19 ~~~~~~~~~~~~~~~~~~~~~
20
21 Suppose we are interested in studying continents, but we only have country-level data like the country dataset included in *geopandas*. We can easily convert this to a continent-level dataset.
22
23
24 First, let's look at the most simple case where we just want continent shapes and names. By default, ``dissolve`` will pass ``'first'`` to ``groupby.aggregate``.
25
26 .. ipython:: python
27
28 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
29 world = world[['continent', 'geometry']]
30 continents = world.dissolve(by='continent')
31
32 @savefig continents1.png
33 continents.plot();
34
35 continents.head()
36
37 If we are interested in aggregate populations, however, we can pass different functions to the ``dissolve`` method to aggregate populations using the ``aggfunc =`` argument:
38
39 .. ipython:: python
40
41 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
42 world = world[['continent', 'geometry', 'pop_est']]
43 continents = world.dissolve(by='continent', aggfunc='sum')
44
45 @savefig continents2.png
46 continents.plot(column = 'pop_est', scheme='quantiles', cmap='YlOrRd');
47
48 continents.head()
49
50
51 .. ipython:: python
52 :suppress:
53
54 matplotlib.rcParams['figure.figsize'] = orig
55
56
57 .. toctree::
58 :maxdepth: 2
59
60 Dissolve Arguments
61 ~~~~~~~~~~~~~~~~~~
62
63 The ``aggfunc =`` argument defaults to 'first' which means that the first row of attributes values found in the dissolve routine will be assigned to the resultant dissolved geodataframe.
64 However it also accepts other summary statistic options as allowed by ``pandas.groupby()`` including:
65
66 * 'first'
67 * 'last'
68 * 'min'
69 * 'max'
70 * 'sum'
71 * 'mean'
72 * 'median'
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6 import matplotlib
7 orig = matplotlib.rcParams['figure.figsize']
8 matplotlib.rcParams['figure.figsize'] = [orig[0] * 1.5, orig[1]]
9
10
11
12 Data Structures
13 =========================================
14
15 GeoPandas implements two main data structures, a :class:`GeoSeries` and a
16 :class:`GeoDataFrame`. These are subclasses of pandas ``Series`` and
17 ``DataFrame``, respectively.
18
19 GeoSeries
20 ---------
21
22 A :class:`GeoSeries` is essentially a vector where each entry in the vector
23 is a set of shapes corresponding to one observation. An entry may consist
24 of only one shape (like a single polygon) or multiple shapes that are
25 meant to be thought of as one observation (like the many polygons that
26 make up the State of Hawaii or a country like Indonesia).
27
28 *geopandas* has three basic classes of geometric objects (which are actually *shapely* objects):
29
30 * Points / Multi-Points
31 * Lines / Multi-Lines
32 * Polygons / Multi-Polygons
33
34 Note that all entries in a :class:`GeoSeries` need not be of the same geometric type, although certain export operations will fail if this is not the case.
35
36 Overview of Attributes and Methods
37 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38
39 The :class:`GeoSeries` class implements nearly all of the attributes and
40 methods of Shapely objects. When applied to a :class:`GeoSeries`, they
41 will apply elementwise to all geometries in the series. Binary
42 operations can be applied between two :class:`GeoSeries`, in which case the
43 operation is carried out elementwise. The two series will be aligned
44 by matching indices. Binary operations can also be applied to a
45 single geometry, in which case the operation is carried out for each
46 element of the series with that geometry. In either case, a
47 ``Series`` or a :class:`GeoSeries` will be returned, as appropriate.
48
49 A short summary of a few attributes and methods for GeoSeries is
50 presented here, and a full list can be found in the :doc:`all attributes and methods page <../reference/geoseries>`.
51 There is also a family of methods for creating new shapes by expanding
52 existing shapes or applying set-theoretic operations like "union" described
53 in :doc:`geometric manipulations <geometric_manipulations>`.
54
55 Attributes
56 ^^^^^^^^^^^^^^^
57 * :attr:`~GeoSeries.area`: shape area (units of projection -- see :doc:`projections <projections>`)
58 * :attr:`~GeoSeries.bounds`: tuple of max and min coordinates on each axis for each shape
59 * :attr:`~GeoSeries.total_bounds`: tuple of max and min coordinates on each axis for entire GeoSeries
60 * :attr:`~GeoSeries.geom_type`: type of geometry.
61 * :attr:`~GeoSeries.is_valid`: tests if coordinates make a shape that is reasonable geometric shape (`according to this <http://www.opengeospatial.org/standards/sfa>`_).
62
63 Basic Methods
64 ^^^^^^^^^^^^^^
65
66 * :meth:`~GeoSeries.distance`: returns ``Series`` with minimum distance from each entry to ``other``
67 * :attr:`~GeoSeries.centroid`: returns :class:`GeoSeries` of centroids
68 * :meth:`~GeoSeries.representative_point`: returns :class:`GeoSeries` of points that are guaranteed to be within each geometry. It does **NOT** return centroids.
69 * :meth:`~GeoSeries.to_crs`: change coordinate reference system. See :doc:`projections <projections>`
70 * :meth:`~GeoSeries.plot`: plot :class:`GeoSeries`. See :doc:`mapping <mapping>`.
71
72 Relationship Tests
73 ^^^^^^^^^^^^^^^^^^^
74
75 * :meth:`~GeoSeries.geom_almost_equals`: is shape almost the same as ``other`` (good when floating point precision issues make shapes slightly different)
76 * :meth:`~GeoSeries.contains`: is shape contained within ``other``
77 * :meth:`~GeoSeries.intersects`: does shape intersect ``other``
78
79
80 GeoDataFrame
81 ------------
82
83 A :class:`GeoDataFrame` is a tabular data structure that contains a :class:`GeoSeries`.
84
85 The most important property of a :class:`GeoDataFrame` is that it always has one :class:`GeoSeries` column that holds a special status. This :class:`GeoSeries` is referred to as the :class:`GeoDataFrame`'s "geometry". When a spatial method is applied to a :class:`GeoDataFrame` (or a spatial attribute like ``area`` is called), this commands will always act on the "geometry" column.
86
87 The "geometry" column -- no matter its name -- can be accessed through the :attr:`~GeoDataFrame.geometry` attribute (``gdf.geometry``), and the name of the ``geometry`` column can be found by typing ``gdf.geometry.name``.
88
89 A :class:`GeoDataFrame` may also contain other columns with geometrical (shapely) objects, but only one column can be the active geometry at a time. To change which column is the active geometry column, use the :meth:`GeoDataFrame.set_geometry` method.
90
91 An example using the ``worlds`` GeoDataFrame:
92
93 .. ipython:: python
94
95 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
96
97 world.head()
98 #Plot countries
99 @savefig world_borders.png
100 world.plot();
101
102 Currently, the column named "geometry" with country borders is the active
103 geometry column:
104
105 .. ipython:: python
106
107 world.geometry.name
108
109 We can also rename this column to "borders":
110
111 .. ipython:: python
112
113 world = world.rename(columns={'geometry': 'borders'}).set_geometry('borders')
114 world.geometry.name
115
116 Now, we create centroids and make it the geometry:
117
118 .. ipython:: python
119
120 world['centroid_column'] = world.centroid
121 world = world.set_geometry('centroid_column')
122
123 @savefig world_centroids.png
124 world.plot();
125
126
127 **Note:** A :class:`GeoDataFrame` keeps track of the active column by name, so if you rename the active geometry column, you must also reset the geometry::
128
129 gdf = gdf.rename(columns={'old_name': 'new_name'}).set_geometry('new_name')
130
131 **Note 2:** Somewhat confusingly, by default when you use the ``read_file`` command, the column containing spatial objects from the file is named "geometry" by default, and will be set as the active geometry column. However, despite using the same term for the name of the column and the name of the special attribute that keeps track of the active column, they are distinct. You can easily shift the active geometry column to a different :class:`GeoSeries` with the :meth:`~GeoDataFrame.set_geometry` command. Further, ``gdf.geometry`` will always return the active geometry column, *not* the column named ``geometry``. If you wish to call a column named "geometry", and a different column is the active geometry column, use ``gdf['geometry']``, not ``gdf.geometry``.
132
133 Attributes and Methods
134 ~~~~~~~~~~~~~~~~~~~~~~
135
136 Any of the attributes calls or methods described for a :class:`GeoSeries` will work on a :class:`GeoDataFrame` -- effectively, they are just applied to the "geometry" :class:`GeoSeries`.
137
138 However, ``GeoDataFrames`` also have a few extra methods for input and output which are described on the :doc:`Input and Output <io>` page and for geocoding with are described in :doc:`Geocoding <geocoding>`.
139
140
141 .. ipython:: python
142 :suppress:
143
144 matplotlib.rcParams['figure.figsize'] = orig
145
146
147 Display options
148 ---------------
149
150 GeoPandas has an ``options`` attribute with currently a single configuration
151 option to control:
152
153 .. ipython:: python
154
155 import geopandas
156 geopandas.options
157
158 The ``geopandas.options.display_precision`` option can control the number of
159 decimals to show in the display of coordinates in the geometry column.
160 In the ``world`` example of above, the default is to show 5 decimals for
161 geographic coordinates:
162
163 .. ipython:: python
164
165 world['centroid_column'].head()
166
167 If you want to change this, for example to see more decimals, you can do:
168
169 .. ipython:: python
170
171 geopandas.options.display_precision = 9
172 world['centroid_column'].head()
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 Geocoding
9 ==========
10
11 ``geopandas`` supports geocoding (i.e., converting place names to
12 location on Earth) through `geopy`_, an optional dependency of ``geopandas``.
13 The following example shows how to get the
14 locations of boroughs in New York City, and plots those locations along
15 with the detailed borough boundary file included within ``geopandas``.
16
17 .. _geopy: http://geopy.readthedocs.io/
18
19 .. ipython:: python
20
21 boros = geopandas.read_file(geopandas.datasets.get_path("nybb"))
22 boros.BoroName
23 boro_locations = geopandas.tools.geocode(boros.BoroName)
24 boro_locations
25
26 import matplotlib.pyplot as plt
27 fig, ax = plt.subplots()
28
29 boros.to_crs("EPSG:4326").plot(ax=ax, color="white", edgecolor="black");
30 @savefig boro_centers_over_bounds.png
31 boro_locations.plot(ax=ax, color="red");
32
33
34 By default, the ``geocode`` function uses the
35 `GeoCode.Farm geocoding API <https://geocode.farm/>`__ with a rate limitation
36 applied. But a different geocoding service can be specified with the
37 ``provider`` keyword.
38
39 The argument to ``provider`` can either be a string referencing geocoding
40 services, such as ``'google'``, ``'bing'``, ``'yahoo'``, and
41 ``'openmapquest'``, or an instance of a ``Geocoder`` from ``geopy``. See
42 ``geopy.geocoders.SERVICE_TO_GEOCODER`` for the full list.
43 For many providers, parameters such as API keys need to be passed as
44 ``**kwargs`` in the ``geocode`` call.
45
46 For example, to use the OpenStreetMap Nominatim geocoder, you need to specify
47 a user agent:
48
49 .. code-block:: python
50
51 geopandas.tools.geocode(boros.BoroName, provider='nominatim', user_agent="my-application")
52
53 .. attention::
54
55 Please consult the Terms of Service for the chosen provider. The example
56 above uses ``'geocodefarm'`` (the default), for which free users are
57 limited to 250 calls per day and 4 requests per second
58 (`geocodefarm ToS <https://geocode.farm/geocoding/free-api-documentation/>`_).
0 .. _geometric_manipulations:
1
2 Geometric Manipulations
3 ========================
4
5 *geopandas* makes available all the tools for geometric manipulations in the `shapely library <http://shapely.readthedocs.io/en/latest/manual.html>`_.
6
7 Note that documentation for all set-theoretic tools for creating new shapes using the relationship between two different spatial datasets -- like creating intersections, or differences -- can be found on the :doc:`set operations <set_operations>` page.
8
9 Constructive Methods
10 ~~~~~~~~~~~~~~~~~~~~
11
12 .. method:: GeoSeries.buffer(distance, resolution=16)
13
14 Returns a ``GeoSeries`` of geometries representing all points within a given `distance`
15 of each geometric object.
16
17 .. attribute:: GeoSeries.boundary
18
19 Returns a ``GeoSeries`` of lower dimensional objects representing
20 each geometries's set-theoretic `boundary`.
21
22 .. attribute:: GeoSeries.centroid
23
24 Returns a ``GeoSeries`` of points for each geometric centroid.
25
26 .. attribute:: GeoSeries.convex_hull
27
28 Returns a ``GeoSeries`` of geometries representing the smallest
29 convex `Polygon` containing all the points in each object unless the
30 number of points in the object is less than three. For two points,
31 the convex hull collapses to a `LineString`; for 1, a `Point`.
32
33 .. attribute:: GeoSeries.envelope
34
35 Returns a ``GeoSeries`` of geometries representing the point or
36 smallest rectangular polygon (with sides parallel to the coordinate
37 axes) that contains each object.
38
39 .. method:: GeoSeries.simplify(tolerance, preserve_topology=True)
40
41 Returns a ``GeoSeries`` containing a simplified representation of
42 each object.
43
44 .. attribute:: GeoSeries.unary_union
45
46 Return a geometry containing the union of all geometries in the ``GeoSeries``.
47
48
49 Affine transformations
50 ~~~~~~~~~~~~~~~~~~~~~~~~
51
52 .. method:: GeoSeries.affine_transform(self, matrix)
53
54 Transform the geometries of the GeoSeries using an affine transformation matrix
55
56 .. method:: GeoSeries.rotate(self, angle, origin='center', use_radians=False)
57
58 Rotate the coordinates of the GeoSeries.
59
60 .. method:: GeoSeries.scale(self, xfact=1.0, yfact=1.0, zfact=1.0, origin='center')
61
62 Scale the geometries of the GeoSeries along each (x, y, z) dimensio.
63
64 .. method:: GeoSeries.skew(self, angle, origin='center', use_radians=False)
65
66 Shear/Skew the geometries of the GeoSeries by angles along x and y dimensions.
67
68 .. method:: GeoSeries.translate(self, xoff=0.0, yoff=0.0, zoff=0.0)
69
70 Shift the coordinates of the GeoSeries.
71
72
73
74 Examples of Geometric Manipulations
75 ------------------------------------
76
77 .. sourcecode:: python
78
79 >>> import geopandas
80 >>> from geopandas import GeoSeries
81 >>> from shapely.geometry import Polygon
82 >>> p1 = Polygon([(0, 0), (1, 0), (1, 1)])
83 >>> p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
84 >>> p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
85 >>> g = GeoSeries([p1, p2, p3])
86 >>> g
87 0 POLYGON ((0 0, 1 0, 1 1, 0 0))
88 1 POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))
89 2 POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0))
90 dtype: geometry
91
92 .. image:: ../../_static/test.png
93
94 Some geographic operations return normal pandas object. The ``area`` property of a ``GeoSeries`` will return a ``pandas.Series`` containing the area of each item in the ``GeoSeries``:
95
96 .. sourcecode:: python
97
98 >>> print(g.area)
99 0 0.5
100 1 1.0
101 2 1.0
102 dtype: float64
103
104 Other operations return GeoPandas objects:
105
106 .. sourcecode:: python
107
108 >>> g.buffer(0.5)
109 0 POLYGON ((-0.3535533905932737 0.35355339059327...
110 1 POLYGON ((-0.5 0, -0.5 1, -0.4975923633360985 ...
111 2 POLYGON ((1.5 0, 1.5 1, 1.502407636663901 1.04...
112 dtype: geometry
113
114 .. image:: ../../_static/test_buffer.png
115
116 GeoPandas objects also know how to plot themselves. GeoPandas uses `matplotlib`_ for plotting. To generate a plot of our GeoSeries, use:
117
118 .. sourcecode:: python
119
120 >>> g.plot()
121
122 GeoPandas also implements alternate constructors that can read any data format recognized by `fiona`_. To read a zip file containing an ESRI shapefile with the `borough boundaries of New York City`_ (GeoPandas includes this as an example dataset):
123
124 .. sourcecode:: python
125
126 >>> nybb_path = geopandas.datasets.get_path('nybb')
127 >>> boros = geopandas.read_file(nybb_path)
128 >>> boros.set_index('BoroCode', inplace=True)
129 >>> boros.sort_index(inplace=True)
130 >>> boros
131 BoroName Shape_Leng Shape_Area \
132 BoroCode
133 1 Manhattan 359299.096471 6.364715e+08
134 2 Bronx 464392.991824 1.186925e+09
135 3 Brooklyn 741080.523166 1.937479e+09
136 4 Queens 896344.047763 3.045213e+09
137 5 Staten Island 330470.010332 1.623820e+09
138
139 geometry
140 BoroCode
141 1 MULTIPOLYGON (((981219.0557861328 188655.31579...
142 2 MULTIPOLYGON (((1012821.805786133 229228.26458...
143 3 MULTIPOLYGON (((1021176.479003906 151374.79699...
144 4 MULTIPOLYGON (((1029606.076599121 156073.81420...
145 5 MULTIPOLYGON (((970217.0223999023 145643.33221...
146
147 .. image:: ../../_static/nyc.png
148
149 .. sourcecode:: python
150
151 >>> boros['geometry'].convex_hull
152 BoroCode
153 1 POLYGON ((977855.4451904297 188082.3223876953,...
154 2 POLYGON ((1017949.977600098 225426.8845825195,...
155 3 POLYGON ((988872.8212280273 146772.0317993164,...
156 4 POLYGON ((1000721.531799316 136681.776184082, ...
157 5 POLYGON ((915517.6877458114 120121.8812543372,...
158 dtype: geometry
159
160 .. image:: ../../_static/nyc_hull.png
161
162 To demonstrate a more complex operation, we'll generate a
163 ``GeoSeries`` containing 2000 random points:
164
165 .. sourcecode:: python
166
167 >>> import numpy as np
168 >>> from shapely.geometry import Point
169 >>> xmin, xmax, ymin, ymax = 900000, 1080000, 120000, 280000
170 >>> xc = (xmax - xmin) * np.random.random(2000) + xmin
171 >>> yc = (ymax - ymin) * np.random.random(2000) + ymin
172 >>> pts = GeoSeries([Point(x, y) for x, y in zip(xc, yc)])
173
174 Now draw a circle with fixed radius around each point:
175
176 .. sourcecode:: python
177
178 >>> circles = pts.buffer(2000)
179
180 We can collapse these circles into a single shapely MultiPolygon
181 geometry with
182
183 .. sourcecode:: python
184
185 >>> mp = circles.unary_union
186
187 To extract the part of this geometry contained in each borough, we can
188 just use:
189
190 .. sourcecode:: python
191
192 >>> holes = boros['geometry'].intersection(mp)
193
194 .. image:: ../../_static/holes.png
195
196 and to get the area outside of the holes:
197
198 .. sourcecode:: python
199
200 >>> boros_with_holes = boros['geometry'].difference(mp)
201
202 .. image:: ../../_static/boros_with_holes.png
203
204 Note that this can be simplified a bit, since ``geometry`` is
205 available as an attribute on a ``GeoDataFrame``, and the
206 ``intersection`` and ``difference`` methods are implemented with the
207 "&" and "-" operators, respectively. For example, the latter could
208 have been expressed simply as ``boros.geometry - mp``.
209
210 It's easy to do things like calculate the fractional area in each
211 borough that are in the holes:
212
213 .. sourcecode:: python
214
215 >>> holes.area / boros.geometry.area
216 BoroCode
217 1 0.579939
218 2 0.586833
219 3 0.608174
220 4 0.582172
221 5 0.558075
222 dtype: float64
223
224 .. _matplotlib: http://matplotlib.org
225 .. _fiona: http://fiona.readthedocs.io/en/latest/
226 .. _geopy: https://github.com/geopy/geopy
227 .. _geo_interface: https://gist.github.com/sgillies/2217756
228 .. _borough boundaries of New York City: https://data.cityofnewyork.us/City-Government/Borough-Boundaries/tqmj-j8zm
229
230 .. toctree::
231 :maxdepth: 2
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 Indexing and Selecting Data
9 ===========================
10
11 GeoPandas inherits the standard ``pandas`` methods for indexing/selecting data. This includes label based indexing with ``.loc`` and integer position based indexing with ``.iloc``, which apply to both ``GeoSeries`` and ``GeoDataFrame`` objects. For more information on indexing/selecting, see the pandas_ documentation.
12
13 .. _pandas: http://pandas.pydata.org/pandas-docs/stable/indexing.html
14
15 In addition to the standard ``pandas`` methods, GeoPandas also provides
16 coordinate based indexing with the ``cx`` indexer, which slices using a bounding
17 box. Geometries in the ``GeoSeries`` or ``GeoDataFrame`` that intersect the
18 bounding box will be returned.
19
20 Using the ``world`` dataset, we can use this functionality to quickly select all
21 countries whose boundaries extend into the southern hemisphere.
22
23 .. ipython:: python
24
25 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
26 southern_world = world.cx[:, :0]
27 @savefig world_southern.png
28 southern_world.plot(figsize=(10, 3));
29
0 .. _io:
1
2 Reading and Writing Files
3 =========================
4
5 Reading Spatial Data
6 ---------------------
7
8 *geopandas* can read almost any vector-based spatial data format including ESRI
9 shapefile, GeoJSON files and more using the command::
10
11 geopandas.read_file()
12
13 which returns a GeoDataFrame object. This is possible because *geopandas* makes
14 use of the great `fiona <http://fiona.readthedocs.io/en/latest/manual.html>`_
15 library, which in turn makes use of a massive open-source program called
16 `GDAL/OGR <http://www.gdal.org/>`_ designed to facilitate spatial data
17 transformations.
18
19 Any arguments passed to :func:`geopandas.read_file` after the file name will be
20 passed directly to ``fiona.open``, which does the actual data importation. In
21 general, :func:`geopandas.read_file` is pretty smart and should do what you want
22 without extra arguments, but for more help, type::
23
24 import fiona; help(fiona.open)
25
26 Among other things, one can explicitly set the driver (shapefile, GeoJSON) with
27 the ``driver`` keyword, or pick a single layer from a multi-layered file with
28 the ``layer`` keyword::
29
30 countries_gdf = geopandas.read_file("package.gpkg", layer='countries')
31
32 Where supported in ``fiona``, *geopandas* can also load resources directly from
33 a web URL, for example for GeoJSON files from `geojson.xyz <http://geojson.xyz/>`_::
34
35 url = "http://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_110m_land.geojson"
36 df = geopandas.read_file(url)
37
38 You can also load ZIP files that contain your data::
39
40 zipfile = "zip:///Users/name/Downloads/cb_2017_us_state_500k.zip"
41 states = geopandas.read_file(zipfile)
42
43 If the dataset is in a folder in the ZIP file, you have to append its name::
44
45 zipfile = "zip:///Users/name/Downloads/gadm36_AFG_shp.zip!data"
46
47 If there are multiple datasets in a folder in the ZIP file, you also have to
48 specify the filename::
49
50 zipfile = "zip:///Users/name/Downloads/gadm36_AFG_shp.zip!data/gadm36_AFG_1.shp"
51
52 It is also possible to read any file-like objects with a ``read()`` method, such
53 as a file handler (e.g. via built-in ``open`` function) or ``StringIO``::
54
55 filename = "test.geojson"
56 file = open(filename)
57 df = geopandas.read_file(file)
58
59 File-like objects from `fsspec <https://filesystem-spec.readthedocs.io/en/latest>`_
60 can also be used to read data, allowing for any combination of storage backends and caching
61 supported by that project::
62
63 path = "simplecache::http://download.geofabrik.de/antarctica-latest-free.shp.zip"
64 with fsspec.open(path) as file:
65 df = geopandas.read_file(file)
66
67 You can also read path objects::
68
69 import pathlib
70 path_object = pathlib.path(filename)
71 df = geopandas.read_file(path_object)
72
73 Reading subsets of the data
74 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
75
76 Since geopandas is powered by Fiona, which is powered by GDAL, you can take advantage of
77 pre-filtering when loading in larger datasets. This can be done geospatially with a geometry
78 or bounding box. You can also filter rows loaded with a slice. Read more at :func:`geopandas.read_file`.
79
80 Geometry Filter
81 ^^^^^^^^^^^^^^^
82
83 .. versionadded:: 0.7.0
84
85 The geometry filter only loads data that intersects with the geometry.
86
87 .. code-block:: python
88
89 gdf_mask = geopandas.read_file(
90 geopandas.datasets.get_path("naturalearth_lowres")
91 )
92 gdf = geopandas.read_file(
93 geopandas.datasets.get_path("naturalearth_cities"),
94 mask=gdf_mask[gdf_mask.continent=="Africa"],
95 )
96
97 Bounding Box Filter
98 ^^^^^^^^^^^^^^^^^^^
99
100 .. versionadded:: 0.1.0
101
102 The bounding box filter only loads data that intersects with the bounding box.
103
104 .. code-block:: python
105
106 bbox = (
107 1031051.7879884212, 224272.49231459625, 1047224.3104931959, 244317.30894023244
108 )
109 gdf = geopandas.read_file(
110 geopandas.datasets.get_path("nybb"),
111 bbox=bbox,
112 )
113
114 Row Filter
115 ^^^^^^^^^^
116
117 .. versionadded:: 0.7.0
118
119 Filter the rows loaded in from the file using an integer (for the first n rows)
120 or a slice object.
121
122 .. code-block:: python
123
124 gdf = geopandas.read_file(
125 geopandas.datasets.get_path("naturalearth_lowres"),
126 rows=10,
127 )
128 gdf = geopandas.read_file(
129 geopandas.datasets.get_path("naturalearth_lowres"),
130 rows=slice(10, 20),
131 )
132
133 Field/Column Filters
134 ^^^^^^^^^^^^^^^^^^^^
135
136 Load in a subset of fields from the file:
137
138 .. note:: Requires Fiona 1.8+
139
140 .. code-block:: python
141
142 gdf = geopandas.read_file(
143 geopandas.datasets.get_path("naturalearth_lowres"),
144 ignore_fields=["iso_a3", "gdp_md_est"],
145 )
146
147 Skip loading geometry from the file:
148
149 .. note:: Requires Fiona 1.8+
150 .. note:: Returns :obj:`pandas.DataFrame`
151
152 .. code-block:: python
153
154 pdf = geopandas.read_file(
155 geopandas.datasets.get_path("naturalearth_lowres"),
156 ignore_geometry=True,
157 )
158
159
160 Writing Spatial Data
161 ---------------------
162
163 GeoDataFrames can be exported to many different standard formats using the
164 :meth:`geopandas.GeoDataFrame.to_file` method.
165 For a full list of supported formats, type ``import fiona; fiona.supported_drivers``.
166
167 In addition, GeoDataFrames can be uploaded to `PostGIS <https://postgis.net/>`__ database (starting with GeoPandas 0.8)
168 by using the :meth:`geopandas.GeoDataFrame.to_postgis` method.
169
170 .. note::
171
172 GeoDataFrame can contain more field types than supported by most of the file formats. For example tuples or lists
173 can be easily stored in the GeoDataFrame, but saving them to e.g. GeoPackage or Shapefile will raise a ValueError.
174 Before saving to a file, they need to be converted to a format supported by a selected driver.
175
176 **Writing to Shapefile**::
177
178 countries_gdf.to_file("countries.shp")
179
180 **Writing to GeoJSON**::
181
182 countries_gdf.to_file("countries.geojson", driver='GeoJSON')
183
184 **Writing to GeoPackage**::
185
186 countries_gdf.to_file("package.gpkg", layer='countries', driver="GPKG")
187 cities_gdf.to_file("package.gpkg", layer='cities', driver="GPKG")
188
189
190 Spatial databases
191 -----------------
192
193 *geopandas* can also get data from a PostGIS database using the
194 :func:`geopandas.read_postgis` command.
195
196 Writing to PostGIS::
197
198 from sqlalchemy import create_engine
199 db_connection_url = "postgres://myusername:mypassword@myhost:5432/mydatabase";
200 engine = create_engine(db_connection_url)
201 countries_gdf.to_postgis("countries_table", con=engine)
202
203
204 Apache Parquet and Feather file formats
205 ---------------------------------------
206
207 .. versionadded:: 0.8.0
208
209 GeoPandas supports writing and reading the Apache Parquet and Feather file
210 formats.
211
212 `Apache Parquet <https://parquet.apache.org/>`__ is an efficient, columnar
213 storage format (originating from the Hadoop ecosystem). It is a widely used
214 binary file format for tabular data. The Feather file format is the on-disk
215 representation of the `Apache Arrow <https://arrow.apache.org/>`__ memory
216 format, an open standard for in-memory columnar data.
217
218 The :func:`geopandas.read_parquet`, :func:`geopandas.read_feather`,
219 :meth:`GeoDataFrame.to_parquet` and :meth:`GeoDataFrame.to_feather` methods
220 enable fast roundtrip from GeoPandas to those binary file formats, preserving
221 the spatial information.
222
223 .. warning::
224
225 This is an initial implementation of Parquet file support and
226 associated metadata. This is tracking version 0.1.0 of the metadata
227 specification at:
228 https://github.com/geopandas/geo-arrow-spec
229
230 This metadata specification does not yet make stability promises. As such,
231 we do not yet recommend using this in a production setting unless you are
232 able to rewrite your Parquet or Feather files.
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6 import matplotlib
7 orig = matplotlib.rcParams['figure.figsize']
8 matplotlib.rcParams['figure.figsize'] = [orig[0] * 1.5, orig[1]]
9 import matplotlib.pyplot as plt
10 plt.close('all')
11
12
13 Mapping and Plotting Tools
14 =========================================
15
16
17 *geopandas* provides a high-level interface to the ``matplotlib`` library for making maps. Mapping shapes is as easy as using the ``plot()`` method on a ``GeoSeries`` or ``GeoDataFrame``.
18
19 Loading some example data:
20
21 .. ipython:: python
22
23 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
24 cities = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))
25
26 We can now plot those GeoDataFrames:
27
28 .. ipython:: python
29
30 # Examine country GeoDataFrame
31 world.head()
32
33 # Basic plot, random colors
34 @savefig world_randomcolors.png
35 world.plot();
36
37 Note that in general, any options one can pass to `pyplot <http://matplotlib.org/api/pyplot_api.html>`_ in ``matplotlib`` (or `style options that work for lines <http://matplotlib.org/api/lines_api.html>`_) can be passed to the ``plot()`` method.
38
39
40 Choropleth Maps
41 -----------------
42
43 *geopandas* makes it easy to create Choropleth maps (maps where the color of each shape is based on the value of an associated variable). Simply use the plot command with the ``column`` argument set to the column whose values you want used to assign colors.
44
45 .. ipython:: python
46
47 # Plot by GDP per capta
48 world = world[(world.pop_est>0) & (world.name!="Antarctica")]
49 world['gdp_per_cap'] = world.gdp_md_est / world.pop_est
50 @savefig world_gdp_per_cap.png
51 world.plot(column='gdp_per_cap');
52
53
54 Creating a legend
55 ~~~~~~~~~~~~~~~~~
56
57 When plotting a map, one can enable a legend using the ``legend`` argument:
58
59 .. ipython:: python
60
61 # Plot population estimates with an accurate legend
62 import matplotlib.pyplot as plt
63 fig, ax = plt.subplots(1, 1)
64 @savefig world_pop_est.png
65 world.plot(column='pop_est', ax=ax, legend=True)
66
67 However, the default appearance of the legend and plot axes may not be desirable. One can define the plot axes (with ``ax``) and the legend axes (with ``cax``) and then pass those in to the ``plot`` call. The following example uses ``mpl_toolkits`` to vertically align the plot axes and the legend axes:
68
69 .. ipython:: python
70
71 # Plot population estimates with an accurate legend
72 from mpl_toolkits.axes_grid1 import make_axes_locatable
73 fig, ax = plt.subplots(1, 1)
74 divider = make_axes_locatable(ax)
75 cax = divider.append_axes("right", size="5%", pad=0.1)
76 @savefig world_pop_est_fixed_legend_height.png
77 world.plot(column='pop_est', ax=ax, legend=True, cax=cax)
78
79
80 And the following example plots the color bar below the map and adds its label using ``legend_kwds``:
81
82 .. ipython:: python
83
84 # Plot population estimates with an accurate legend
85 import matplotlib.pyplot as plt
86 fig, ax = plt.subplots(1, 1)
87 @savefig world_pop_est_horizontal.png
88 world.plot(column='pop_est',
89 ax=ax,
90 legend=True,
91 legend_kwds={'label': "Population by Country",
92 'orientation': "horizontal"})
93
94
95 Choosing colors
96 ~~~~~~~~~~~~~~~~
97
98 One can also modify the colors used by ``plot`` with the ``cmap`` option (for a full list of colormaps, see the `matplotlib website <http://matplotlib.org/users/colormaps.html>`_):
99
100 .. ipython:: python
101
102 @savefig world_gdp_per_cap_red.png
103 world.plot(column='gdp_per_cap', cmap='OrRd');
104
105
106 To make the color transparent for when you just want to show the boundary, you have two options. One option is to do ``world.plot(facecolor="none", edgecolor="black")``. However, this can cause a lot of confusion because ``"none"`` and ``None`` are different in the context of using ``facecolor`` and they do opposite things. ``None`` does the "default behavior" based on matplotlib, and if you use it for ``facecolor``, it actually adds a color. The second option is to use ``world.boundary.plot()``. This option is more explicit and clear.:
107
108 .. ipython:: python
109
110 @savefig world_gdp_per_cap_transparent.png
111 world.boundary.plot();
112
113
114 The way color maps are scaled can also be manipulated with the ``scheme`` option (if you have ``mapclassify`` installed, which can be accomplished via ``conda install -c conda-forge mapclassify``). The ``scheme`` option can be set to any scheme provided by mapclassify (e.g. 'box_plot', 'equal_interval',
115 'fisher_jenks', 'fisher_jenks_sampled', 'headtail_breaks', 'jenks_caspall', 'jenks_caspall_forced', 'jenks_caspall_sampled', 'max_p_classifier', 'maximum_breaks', 'natural_breaks', 'quantiles', 'percentiles', 'std_mean' or 'user_defined'). Arguments can be passed in classification_kwds dict. See the `mapclassify documentation <https://pysal.org/mapclassify>`_ for further details about these map classification schemes.
116
117 .. ipython:: python
118
119 @savefig world_gdp_per_cap_quantiles.png
120 world.plot(column='gdp_per_cap', cmap='OrRd', scheme='quantiles');
121
122
123 Missing data
124 ~~~~~~~~~~~~
125
126 In some cases one may want to plot data which contains missing values - for some features one simply does not know the value. Geopandas (from the version 0.7) by defaults ignores such features.
127
128 .. ipython:: python
129
130 import numpy as np
131 world.loc[np.random.choice(world.index, 40), 'pop_est'] = np.nan
132 @savefig missing_vals.png
133 world.plot(column='pop_est');
134
135 However, passing ``missing_kwds`` one can specify the style and label of features containing None or NaN.
136
137 .. ipython:: python
138
139 @savefig missing_vals_grey.png
140 world.plot(column='pop_est', missing_kwds={'color': 'lightgrey'});
141
142 @savefig missing_vals_hatch.png
143 world.plot(
144 column="pop_est",
145 legend=True,
146 scheme="quantiles",
147 figsize=(15, 10),
148 missing_kwds={
149 "color": "lightgrey",
150 "edgecolor": "red",
151 "hatch": "///",
152 "label": "Missing values",
153 },
154 );
155
156 Maps with Layers
157 -----------------
158
159 There are two strategies for making a map with multiple layers -- one more succinct, and one that is a little more flexible.
160
161 Before combining maps, however, remember to always ensure they share a common CRS (so they will align).
162
163 .. ipython:: python
164
165 # Look at capitals
166 # Note use of standard `pyplot` line style options
167 @savefig capitals.png
168 cities.plot(marker='*', color='green', markersize=5);
169
170 # Check crs
171 cities = cities.to_crs(world.crs)
172
173 # Now we can overlay over country outlines
174 # And yes, there are lots of island capitals
175 # apparently in the middle of the ocean!
176
177 **Method 1**
178
179 .. ipython:: python
180
181 base = world.plot(color='white', edgecolor='black')
182 @savefig capitals_over_countries_1.png
183 cities.plot(ax=base, marker='o', color='red', markersize=5);
184
185 **Method 2: Using matplotlib objects**
186
187 .. ipython:: python
188
189 import matplotlib.pyplot as plt
190 fig, ax = plt.subplots()
191
192 # set aspect to equal. This is done automatically
193 # when using *geopandas* plot on it's own, but not when
194 # working with pyplot directly.
195 ax.set_aspect('equal')
196
197 world.plot(ax=ax, color='white', edgecolor='black')
198 cities.plot(ax=ax, marker='o', color='red', markersize=5)
199 @savefig capitals_over_countries_2.png
200 plt.show();
201
202 Control the order of multiple layers in a plot
203 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
204
205 When plotting multiple layers, use ``zorder`` to take control of the order of layers being plotted.
206 The lower the ``zorder`` is, the lower the layer is on the map and vice versa.
207
208 Without specified ``zorder``, cities (Points) gets plotted below world (Polygons), following the default order based on geometry types.
209
210 .. ipython:: python
211
212 ax = cities.plot(color='k')
213 @savefig zorder_default.png
214 world.plot(ax=ax);
215
216 We can set the ``zorder`` for cities higher than for world to move it of top.
217
218 .. ipython:: python
219
220 ax = cities.plot(color='k', zorder=2)
221 @savefig zorder_set.png
222 world.plot(ax=ax, zorder=1);
223
224
225 Pandas Plots
226 -----------------
227
228 Plotting methods also allow for different plot styles from pandas
229 along with the default ``geo`` plot. These methods can be accessed using
230 the ``kind`` keyword argument in :meth:`~GeoDataFrame.plot`, and include:
231
232 * ``geo`` for mapping
233 * ``line`` for line plots
234 * ``bar`` or ``barh`` for bar plots
235 * ``hist`` for histogram
236 * ``box`` for boxplot
237 * ``kde`` or ``density`` for density plots
238 * ``area`` for area plots
239 * ``scatter`` for scatter plots
240 * ``hexbin`` for hexagonal bin plots
241 * ``pie`` for pie plots
242
243 .. ipython:: python
244
245 gdf = world.head(10)
246 @savefig pandas_line_plot.png
247 gdf.plot(kind='scatter', x="pop_est", y="gdp_md_est")
248
249 You can also create these other plots using the ``GeoDataFrame.plot.<kind>`` accessor methods instead of providing the ``kind`` keyword argument.
250
251 .. ipython:: python
252
253 @savefig pandas_bar_plot.png
254 gdf.plot.bar()
255
256 For more information check out the `pandas documentation <https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html>`_.
257
258
259 Other Resources
260 -----------------
261 Links to jupyter Notebooks for different mapping tasks:
262
263 `Making Heat Maps <http://nbviewer.jupyter.org/gist/perrygeo/c426355e40037c452434>`_
264
265
266 .. ipython:: python
267 :suppress:
268
269 matplotlib.rcParams['figure.figsize'] = orig
270
271
272 .. ipython:: python
273 :suppress:
274
275 import matplotlib.pyplot as plt
276 plt.close('all')
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 Merging Data
9 =========================================
10
11 There are two ways to combine datasets in *geopandas* -- attribute joins and spatial joins.
12
13 In an attribute join, a ``GeoSeries`` or ``GeoDataFrame`` is combined with a regular *pandas* ``Series`` or ``DataFrame`` based on a common variable. This is analogous to normal merging or joining in *pandas*.
14
15 In a Spatial Join, observations from two ``GeoSeries`` or ``GeoDataFrames`` are combined based on their spatial relationship to one another.
16
17 In the following examples, we use these datasets:
18
19 .. ipython:: python
20
21 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
22 cities = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))
23
24 # For attribute join
25 country_shapes = world[['geometry', 'iso_a3']]
26 country_names = world[['name', 'iso_a3']]
27
28 # For spatial join
29 countries = world[['geometry', 'name']]
30 countries = countries.rename(columns={'name':'country'})
31
32
33 Appending
34 ---------
35
36 Appending GeoDataFrames and GeoSeries uses pandas ``append`` methods. Keep in mind, that appended geometry columns needs to have the same CRS.
37
38 .. ipython:: python
39
40 # Appending GeoSeries
41 joined = world.geometry.append(cities.geometry)
42
43 # Appending GeoDataFrames
44 europe = world[world.continent == 'Europe']
45 asia = world[world.continent == 'Asia']
46 eurasia = europe.append(asia)
47
48
49 Attribute Joins
50 ----------------
51
52 Attribute joins are accomplished using the ``merge`` method. In general, it is recommended to use the ``merge`` method called from the spatial dataset. With that said, the stand-alone ``merge`` function will work if the GeoDataFrame is in the ``left`` argument; if a DataFrame is in the ``left`` argument and a GeoDataFrame is in the ``right`` position, the result will no longer be a GeoDataFrame.
53
54
55 For example, consider the following merge that adds full names to a ``GeoDataFrame`` that initially has only ISO codes for each country by merging it with a *pandas* ``DataFrame``.
56
57 .. ipython:: python
58
59 # `country_shapes` is GeoDataFrame with country shapes and iso codes
60 country_shapes.head()
61
62 # `country_names` is DataFrame with country names and iso codes
63 country_names.head()
64
65 # Merge with `merge` method on shared variable (iso codes):
66 country_shapes = country_shapes.merge(country_names, on='iso_a3')
67 country_shapes.head()
68
69
70
71 Spatial Joins
72 ----------------
73
74 In a Spatial Join, two geometry objects are merged based on their spatial relationship to one another.
75
76 .. ipython:: python
77
78
79 # One GeoDataFrame of countries, one of Cities.
80 # Want to merge so we can get each city's country.
81 countries.head()
82 cities.head()
83
84 # Execute spatial join
85
86 cities_with_country = geopandas.sjoin(cities, countries, how="inner", op='intersects')
87 cities_with_country.head()
88
89
90 Sjoin Arguments
91 ~~~~~~~~~~~~~~~~
92
93 ``sjoin()`` has two core arguments: ``how`` and ``op``.
94
95 **op**
96
97 The ``op`` argument specifies how ``geopandas`` decides whether or not to join the attributes of one object to another, based on their geometric relationship.
98
99 The values for ``op`` correspond to the names of geometric binary predicates and depend on the spatial index implementation.
100
101 The default spatial index in GeoPandas currently supports the following values for ``op``:
102
103 * `intersects`
104 * `contains`
105 * `within`
106 * `touches`
107 * `crosses`
108 * `overlaps`
109
110 You can read more about each join type in the `Shapely documentation <http://shapely.readthedocs.io/en/latest/manual.html#binary-predicates>`__.
111
112 **how**
113
114 The `how` argument specifies the type of join that will occur and which geometry is retained in the resultant geodataframe. It accepts the following options:
115
116 * ``left``: use the index from the first (or `left_df`) geodataframe that you provide to ``sjoin``; retain only the `left_df` geometry column
117 * ``right``: use index from second (or `right_df`); retain only the `right_df` geometry column
118 * ``inner``: use intersection of index values from both geodataframes; retain only the `left_df` geometry column
119
120 Note more complicated spatial relationships can be studied by combining geometric operations with spatial join. To find all polygons within a given distance of a point, for example, one can first use the ``buffer`` method to expand each point into a circle of appropriate radius, then intersect those buffered circles with the polygons in question.
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 .. _missing-empty:
9
10 Missing and empty geometries
11 ============================
12
13 GeoPandas supports, just like in pandas, the concept of missing values (NA
14 or null values). But for geometry values, we have an additional concept of
15 empty geometries:
16
17 - **Empty geometries** are actual geometry objects but that have no coordinates
18 (and thus also no area, for example). They can for example originate from
19 taking the intersection of two polygons that have no overlap.
20 The scalar object (when accessing a single element of a GeoSeries) is still
21 a Shapely geometry object.
22 - **Missing geometries** are unknown values in a GeoSeries. They will typically
23 be propagated in operations (for example in calculations of the area or of
24 the intersection), or ignored in reductions such as ``unary_union``.
25 The scalar object (when accessing a single element of a GeoSeries) is the
26 Python ``None`` object.
27
28 .. warning::
29
30 Starting from GeoPandas v0.6.0, those two concepts are more consistently
31 separated. See :ref:`below <missing-empty.changes-0.6.0>` for more details
32 on what changed compared to earlier versions.
33
34
35 Consider the following example GeoSeries with one polygon, one missing value
36 and one empty polygon:
37
38 .. ipython:: python
39
40 from shapely.geometry import Polygon
41 s = geopandas.GeoSeries([Polygon([(0, 0), (1, 1), (0, 1)]), None, Polygon([])])
42 s
43
44 In spatial operations, missing geometries will typically propagate (be missing
45 in the result as well), while empty geometries are treated as a geometry
46 and the result will depend on the operation:
47
48 .. ipython:: python
49
50 s.area
51 s.union(Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]))
52 s.intersection(Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]))
53
54 The :meth:`GeoSeries.isna` method will only check for missing values and not
55 for empty geometries:
56
57 .. ipython:: python
58 :okwarning:
59
60 s.isna()
61
62 On the other hand, if you want to know which values are empty geometries,
63 you can use the :attr:`GeoSeries.is_empty` attribute:
64
65 .. ipython:: python
66
67 s.is_empty
68
69 To get only the actual geometry objects that are neiter missing nor empty,
70 you can use a combination of both:
71
72 .. ipython:: python
73 :okwarning:
74
75 s.is_empty | s.isna()
76 s[~(s.is_empty | s.isna())]
77
78
79 .. _missing-empty.changes-0.6.0:
80
81 Changes since GeoPandas v0.6.0
82 ------------------------------
83
84 In GeoPandas v0.6.0, the missing data handling was refactored and made more
85 consistent across the library.
86
87 Historically, missing ("NA") values in a GeoSeries could be represented by empty
88 geometric objects, in addition to standard representations such as ``None`` and
89 ``np.nan``. At least, this was the case in :meth:`GeoSeries.isna` or when a
90 GeoSeries got aligned in geospatial operations. But, other methods like
91 :meth:`~GeoSeries.dropna` and :meth:`~GeoSeries.fillna` did not follow this
92 approach and did not consider empty geometries as missing.
93
94 In GeoPandas v0.6.0, the most important change is :meth:`GeoSeries.isna` no
95 longer treating empty as missing:
96
97 * Using the small example from above, the old behaviour treated both the
98 empty as missing geometry as "missing":
99
100 .. code-block:: python
101
102 >>> s
103 0 POLYGON ((0 0, 1 1, 0 1, 0 0))
104 1 None
105 2 GEOMETRYCOLLECTION EMPTY
106 dtype: object
107
108 >>> s.isna()
109 0 False
110 1 True
111 2 True
112 dtype: bool
113
114 * Starting from GeoPandas v0.6.0, it will now only see actual missing values
115 as missing:
116
117 .. ipython:: python
118 :okwarning:
119
120 s.isna()
121
122 For now, when ``isna()`` is called on a GeoSeries with empty geometries,
123 a warning is raised to alert the user of the changed behaviour with an
124 indication how to solve this.
125
126 Additionally, the behaviour of :meth:`GeoSeries.align` changed to use
127 missing values instead of empty geometries to fill non-matching indexes.
128 Consider the following small toy example:
129
130 .. ipython:: python
131
132 from shapely.geometry import Point
133 s1 = geopandas.GeoSeries([Point(0, 0), Point(1, 1)], index=[0, 1])
134 s2 = geopandas.GeoSeries([Point(1, 1), Point(2, 2)], index=[1, 2])
135 s1
136 s2
137
138 * Previously, the ``align`` method would use empty geometries to fill
139 values:
140
141 .. code-block:: python
142
143 >>> s1_aligned, s2_aligned = s1.align(s2)
144
145 >>> s1_aligned
146 0 POINT (0 0)
147 1 POINT (1 1)
148 2 GEOMETRYCOLLECTION EMPTY
149 dtype: object
150
151 >>> s2_aligned
152 0 GEOMETRYCOLLECTION EMPTY
153 1 POINT (1 1)
154 2 POINT (2 2)
155 dtype: object
156
157 This method is used under the hood when performing spatial operations on
158 mis-aligned GeoSeries objects:
159
160 .. code-block:: python
161
162 >>> s1.intersection(s2)
163 0 GEOMETRYCOLLECTION EMPTY
164 1 POINT (1 1)
165 2 GEOMETRYCOLLECTION EMPTY
166 dtype: object
167
168 * Starting from GeoPandas v0.6.0, :meth:`GeoSeries.align` will use missing
169 values to fill in the non-aligned indices, to be consistent with the
170 behaviour in pandas:
171
172 .. ipython:: python
173
174 s1_aligned, s2_aligned = s1.align(s2)
175 s1_aligned
176 s2_aligned
177
178 This has the consequence that spatial operations will also use missing
179 values instead of empty geometries, which can have a different behaviour
180 depending on the spatial operation:
181
182 .. ipython:: python
183
184 s1.intersection(s2)
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 Managing Projections
9 =========================================
10
11
12 Coordinate Reference Systems
13 -----------------------------
14
15 The Coordinate Reference System (CRS) is important because the geometric shapes
16 in a GeoSeries or GeoDataFrame object are simply a collection of coordinates in
17 an arbitrary space. A CRS tells Python how those coordinates relate to places on
18 the Earth.
19
20 You can find the codes for most commonly used projections from
21 `www.spatialreference.org <https://spatialreference.org/>`_.
22
23 The same CRS can often be referred to in many ways. For example, one of the most
24 commonly used CRS is the WGS84 latitude-longitude projection. This can be
25 referred to using the authority code ``"EPSG:4326"``.
26
27 *geopandas* can accept anything accepted by :meth:`pyproj.CRS.from_user_input() <pyproj.crs.CRS.from_user_input>`:
28
29 - CRS WKT string
30 - An authority string (i.e. "epsg:4326")
31 - An EPSG integer code (i.e. 4326)
32 - A ``pyproj.CRS``
33 - An object with a to_wkt method.
34 - PROJ string
35 - Dictionary of PROJ parameters
36 - PROJ keyword arguments for parameters
37 - JSON string with PROJ parameters
38
39 For reference, a few very common projections and their EPSG codes:
40
41 * WGS84 Latitude/Longitude: ``"EPSG:4326"``
42 * UTM Zones (North): ``"EPSG:32633"``
43 * UTM Zones (South): ``"EPSG:32733"``
44
45
46 What is the best format to store the CRS information?
47 -----------------------------------------------------
48
49 Generally, WKT or SRID's are preferred over PROJ strings as they can contain more information about a given CRS.
50 Conversions between WKT and PROJ strings will in most cases cause a loss of information, potentially leading to erroneous transformations. If possible WKT2 should be used.
51
52 For more details, see https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems
53
54
55 Setting a Projection
56 ----------------------
57
58 There are two relevant operations for projections: setting a projection and re-projecting.
59
60 Setting a projection may be necessary when for some reason *geopandas* has coordinate data (x-y values), but no information about how those coordinates refer to locations in the real world. Setting a projection is how one tells *geopandas* how to interpret coordinates. If no CRS is set, *geopandas* geometry operations will still work, but coordinate transformations will not be possible and exported files may not be interpreted correctly by other software.
61
62 Be aware that **most of the time** you don't have to set a projection. Data loaded from a reputable source (using the :func:`geopandas.read_file()` command) *should* always include projection information. You can see an objects current CRS through the :attr:`GeoSeries.crs` attribute.
63
64 From time to time, however, you may get data that does not include a projection. In this situation, you have to set the CRS so *geopandas* knows how to interpret the coordinates.
65
66 For example, if you convert a spreadsheet of latitudes and longitudes into a
67 GeoSeries by hand, you would set the projection by passing the WGS84
68 latitude-longitude CRS to the :meth:`GeoSeries.set_crs` method (or by setting
69 the :attr:`GeoSeries.crs` attribute):
70
71 .. sourcecode:: python
72
73 my_geoseries = my_geoseries.set_crs("EPSG:4326")
74 my_geoseries = my_geoseries.set_crs(epsg=4326)
75
76
77 Re-Projecting
78 ----------------
79
80 Re-projecting is the process of changing the representation of locations from one coordinate system to another. All projections of locations on the Earth into a two-dimensional plane `are distortions <https://en.wikipedia.org/wiki/Map_projection#Which_projection_is_best.3F>`_, the projection that is best for your application may be different from the projection associated with the data you import. In these cases, data can be re-projected using the :meth:`GeoDataFrame.to_crs` command:
81
82 .. ipython:: python
83
84 # load example data
85 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
86
87 # Check original projection
88 # (it's Platte Carre! x-y are long and lat)
89 world.crs
90
91 # Visualize
92 ax = world.plot()
93 @savefig world_starting.png
94 ax.set_title("WGS84 (lat/lon)");
95
96 # Reproject to Mercator (after dropping Antartica)
97 world = world[(world.name != "Antarctica") & (world.name != "Fr. S. Antarctic Lands")]
98 world = world.to_crs("EPSG:3395") # world.to_crs(epsg=3395) would also work
99 ax = world.plot()
100 @savefig world_reproj.png
101 ax.set_title("Mercator");
102
103
104 Projection for multiple geometry columns
105 ----------------------------------------
106
107 GeoPandas 0.8 implements support for different projections assigned to different geometry
108 columns of the same GeoDataFrame. The projection is now stored together with geometries per column (directly
109 on the GeometryArray level).
110
111 Note that if GeometryArray has assigned projection, it is preferred over the
112 projection passed to GeoSeries or GeoDataFrame during the creation:
113
114 .. code-block:: python
115
116 >>> array.crs
117 <Geographic 2D CRS: EPSG:4326>
118 Name: WGS 84
119 Axis Info [ellipsoidal]:
120 - Lat[north]: Geodetic latitude (degree)
121 - Lon[east]: Geodetic longitude (degree)
122 ...
123 >>> GeoSeries(array, crs=3395).crs # crs=3395 is ignored as array already has CRS
124 FutureWarning: CRS mismatch between CRS of the passed geometries and 'crs'. Use 'GeoDataFrame.set_crs(crs, allow_override=True)' to overwrite CRS or 'GeoDataFrame.to_crs(crs)' to reproject geometries. CRS mismatch will raise an error in the future versions of GeoPandas.
125 GeoSeries(array, crs=3395).crs
126
127 <Geographic 2D CRS: EPSG:4326>
128 Name: WGS 84
129 Axis Info [ellipsoidal]:
130 - Lat[north]: Geodetic latitude (degree)
131 - Lon[east]: Geodetic longitude (degree)
132 ...
133
134 If you want to overwrite projection, you can then assign it to the GeoSeries
135 manually or re-project geometries to the target projection using either
136 ``GeoSeries.set_crs(epsg=3395, allow_override=True)`` or
137 ``GeoSeries.to_crs(epsg=3395)``.
138
139 All GeometryArray-based operations preserve projection; however, if you loop over a column
140 containing geometry, this information might be lost.
141
142
143 Upgrading to GeoPandas 0.7 with pyproj > 2.2 and PROJ > 6
144 ---------------------------------------------------------
145
146 Starting with GeoPandas 0.7, the `.crs` attribute of a GeoSeries or GeoDataFrame
147 stores the CRS information as a ``pyproj.CRS``, and no longer as a proj4 string
148 or dict.
149
150 Before, you might have seen this:
151
152 .. code-block:: python
153
154 >>> gdf.crs
155 {'init': 'epsg:4326'}
156
157 while now you will see something like this:
158
159 .. code-block:: python
160
161 >>> gdf.crs
162 <Geographic 2D CRS: EPSG:4326>
163 Name: WGS 84
164 Axis Info [ellipsoidal]:
165 - Lat[north]: Geodetic latitude (degree)
166 - Lon[east]: Geodetic longitude (degree)
167 ...
168 >>> type(gdf.crs)
169 pyproj.crs.CRS
170
171 This gives a better user interface and integrates improvements from pyproj and
172 PROJ 6, but might also require some changes in your code. See `this blogpost
173 <https://jorisvandenbossche.github.io/blog/2020/02/11/geopandas-pyproj-crs/>`__
174 for some more background, and the subsections below cover different possible
175 migration issues.
176
177 See the `pyproj docs <https://pyproj4.github.io/pyproj/stable/>`__ for more on
178 the ``pyproj.CRS`` object.
179
180 Importing data from files
181 ^^^^^^^^^^^^^^^^^^^^^^^^^
182
183 When reading geospatial files with :func:`geopandas.read_file`, things should
184 mostly work out of the box. For example, reading the example countries dataset
185 yields a proper CRS:
186
187 .. ipython:: python
188
189 df = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
190 df.crs
191
192 However, in certain cases (with older CRS formats), the resulting CRS object
193 might not be fully as expected. See the :ref:`section below <unrecognized-crs-reasons>`
194 for possible reasons and how to solve it.
195
196
197 Manually specifying the CRS
198 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
199
200 When specifying the CRS manually in your code (e.g., because your data has not
201 yet a CRS, or when converting to another CRS), this might require a change in
202 your code.
203
204 **"init" proj4 strings/dicts**
205
206 Currently, a lot of people (and also the GeoPandas docs showed that before)
207 specify the EPSG code using the "init" proj4 string:
208
209 .. code-block:: python
210
211 ## OLD
212 GeoDataFrame(..., crs={'init': 'epsg:4326'})
213 # or
214 gdf.crs = {'init': 'epsg:4326'}
215 # or
216 gdf.to_crs({'init': 'epsg:4326'})
217
218 The above will now raise a deprecation warning from pyproj, and instead of the
219 "init" proj4 string, you should use only the EPSG code itself as follows:
220
221 .. code-block:: python
222
223 ## NEW
224 GeoDataFrame(..., crs="EPSG:4326")
225 # or
226 gdf.crs = "EPSG:4326"
227 # or
228 gdf.to_crs("EPSG:4326")
229
230
231 **proj4 strings/dicts**
232
233 Although a full proj4 string is not deprecated (as opposed to the "init" string
234 above), it is still recommended to change it with an EPSG code if possible.
235
236 For example, instead of:
237
238 .. code-block:: python
239
240 gdf.crs = "+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs"
241
242 we recommend to do:
243
244 .. code-block:: python
245
246 gdf.crs = "EPSG:2163"
247
248 *if* you know the EPSG code for the projection you are using.
249
250 One possible way to find out the EPSG code is using pyproj for this:
251
252 .. code-block:: python
253
254 >>> import pyproj
255 >>> crs = pyproj.CRS("+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs")
256 >>> crs.to_epsg()
257 2163
258
259 (you might need to set the ``min_confidence`` keyword of ``to_epsg`` to a lower
260 value if the match is not perfect)
261
262 Further, on websites such as `spatialreference.org <https://spatialreference.org/>`__
263 and `epsg.io <https://epsg.io/>`__ the descriptions of many CRS can be found
264 including their EPSG codes and proj4 string definitions.
265
266 **Other formats**
267
268 Next to the EPSG code mentioned above, there are also other ways to specify the
269 CRS: an actual ``pyproj.CRS`` object, a WKT string, a PROJ JSON string, etc.
270 Anything that is accepted by ``pyproj.CRS.from_user_input`` can by specified
271 to the ``crs`` keyword/attribute in GeoPandas.
272
273 Also compatible CRS objects, such as from the ``rasterio`` package, can be
274 passed directly to GeoPandas.
275
276
277 The axis order of a CRS
278 ^^^^^^^^^^^^^^^^^^^^^^^
279
280 Starting with PROJ 6 / pyproj 2, the axis order of the official EPSG definition
281 is honoured. For example, when using geographic coordinates (degrees of longitude
282 and latitude) in the standard EPSG:4326, the CRS will look like:
283
284 .. code-block:: python
285
286 >>> pyproj.CRS(3EPSG:4326")
287 <Geographic 2D CRS: EPSG:4326>
288 ...
289 Axis Info [ellipsoidal]:
290 - Lat[north]: Geodetic latitude (degree)
291 - Lon[east]: Geodetic longitude (degree)
292 ...
293
294 This mentions the order as (lat, lon), as that is the official order of coordinates
295 in EPSG:4326. In GeoPandas, however, the coordinates are always stored as (x, y),
296 and thus as (lon, lat) order, regardless of the CRS (i.e. the "traditional" order used
297 in GIS). When reprojecting, GeoPandas and pyproj will under the hood take care of
298 this difference in axis order, so the user doesn't need to care about this.
299
300 .. _unrecognized-crs-reasons:
301
302 Why is it not properly recognizing my CRS?
303 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
304
305 There are many file sources and CRS definitions out there "in the wild" that
306 might have a CRS description that does not fully conform to the new standards of
307 PROJ > 6 (proj4 strings, older WKT formats, ...). In such cases, you will get a
308 ``pyproj.CRS`` object that might not be fully what you expected (e.g. not equal
309 to the expected EPSG code). Below we list a few possible cases.
310
311 I get a "Bound CRS"?
312 ~~~~~~~~~~~~~~~~~~~~
313
314 Some CRS definitions include a *"towgs84" clause*, which can give problems in
315 recognizing the actual CRS.
316
317 For example, both the proj4 and WKT representation for EPSG:31370 (the local
318 projection used in Belgium) as can be found at `https://spatialreference.org/ref/epsg/31370/ <https://spatialreference.org/ref/epsg/31370/>`__
319 include this. When taking one of those definitions from that site, and creating
320 a CRS object:
321
322 .. code-block:: python
323
324 >>> import pyproj
325 >>> crs = pyproj.CRS("+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +units=m +no_defs")
326 >>> crs
327 <Bound CRS: +proj=lcc +lat_1=51.16666723333333 +lat_2=49.83333 ...>
328 Name: unknown
329 Axis Info [cartesian]:
330 - E[east]: Easting (metre)
331 - N[north]: Northing (metre)
332 Area of Use:
333 - undefined
334 Coordinate Operation:
335 - name: Transformation from unknown to WGS84
336 - method: Position Vector transformation (geog2D domain)
337 Datum: Unknown based on International 1909 (Hayford) ellipsoid
338 - Ellipsoid: International 1909 (Hayford)
339 - Prime Meridian: Greenwich
340 Source CRS: unknown
341
342 You notice that the above is a not a "Projected CRS" as expected, but a "Bound CRS".
343 This is because it is "bound" to a conversion to WGS84, and will always use this
344 when reprojecting instead of letting PROJ determine the best conversion.
345
346 To get the actual underlying projected CRS, you can use the ``.source_crs`` attribute:
347
348 .. code-block:: python
349
350 >>> crs.source_crs
351 <Projected CRS: PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["Unk ...>
352 Name: unknown
353 ...
354
355 Now we have a "Projected CRS", and now it will also recognize the correct EPSG
356 number:
357
358 .. code-block:: python
359
360 >>> crs.to_epsg()
361
362 >>> crs.source_crs.to_epsg()
363 31370
364
365 I have a different axis order?
366 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
367
368 As mentioned above, pyproj now honours the axis order of the EPSG definition.
369 However, proj4 strings or older WKT versions don't specify this correctly, which
370 can be a reason that the CRS object is not equal to the expected EPSG code.
371
372 Consider the following example of a Canadian projected CRS "EPSG:2953". When
373 constructing the CRS object from the WKT string as provided on
374 `https://epsg.io/2953 <https://epsg.io/2953>`__:
375
376 .. code-block:: python
377
378 >>> crs = pyproj.CRS("""PROJCS["NAD83(CSRS) / New Brunswick Stereographic",
379 ... GEOGCS["NAD83(CSRS)",
380 ... DATUM["NAD83_Canadian_Spatial_Reference_System",
381 ... SPHEROID["GRS 1980",6378137,298.257222101,
382 ... AUTHORITY["EPSG","7019"]],
383 ... AUTHORITY["EPSG","6140"]],
384 ... PRIMEM["Greenwich",0,
385 ... AUTHORITY["EPSG","8901"]],
386 ... UNIT["degree",0.0174532925199433,
387 ... AUTHORITY["EPSG","9122"]],
388 ... AUTHORITY["EPSG","4617"]],
389 ... PROJECTION["Oblique_Stereographic"],
390 ... PARAMETER["latitude_of_origin",46.5],
391 ... PARAMETER["central_meridian",-66.5],
392 ... PARAMETER["scale_factor",0.999912],
393 ... PARAMETER["false_easting",2500000],
394 ... PARAMETER["false_northing",7500000],
395 ... UNIT["metre",1,
396 ... AUTHORITY["EPSG","9001"]],
397 ... AUTHORITY["EPSG","2953"]]""")
398
399 >>> crs
400 <Projected CRS: PROJCS["NAD83(CSRS) / New Brunswick Stereographic" ...>
401 Name: NAD83(CSRS) / New Brunswick Stereographic
402 Axis Info [cartesian]:
403 - E[east]: Easting (metre)
404 - N[north]: Northing (metre)
405 ...
406
407 Although this is the WKT string as found online for "EPSG:2953", this CRS object
408 does not evaluate equal to this EPSG code:
409
410 .. code-block:: python
411
412 >>> crs == "EPSG:2953"
413 False
414
415 If we construct the CRS object from the EPSG code (truncated output):
416
417 .. code-block:: python
418
419 >>> pyproj.CRS("EPSG:2953")
420 <Projected CRS: EPSG:2953>
421 Name: NAD83(CSRS) / New Brunswick Stereographic
422 Axis Info [cartesian]:
423 - N[north]: Northing (metre)
424 - E[east]: Easting (metre)
425 ...
426
427 You can see that the CRS object constructed from the WKT string has a "Easting,
428 Northing" (i.e. x, y) axis order, while the CRS object constructed from the EPSG
429 code has a (Northing, Easting) axis order.
430
431 Only having this difference in axis order is no problem when using the CRS in
432 GeoPandas, since GeoPandas always uses a (x, y) order to store the data
433 regardless of the CRS definition. But, you might still want to verify it is
434 equivalent to the expected EPSG code. By lowering the `min_confidence`, the axis
435 order will be ignored:
436
437 .. code-block:: python
438
439 >>> crs.to_epsg()
440
441 >>> crs.to_epsg(min_confidence=20)
442 2953
443
444
445 The ``.crs`` attribute is no longer a dict or string
446 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
447
448 If you relied on the ``.crs`` object being a dict or a string, such code can
449 be broken given it is now a ``pyproj.CRS`` object. But this object actually
450 provides a more robust interface to get information about the CRS.
451
452 For example, if you used the following code to get the EPSG code:
453
454 .. code-block:: python
455
456 gdf.crs['init']
457
458 This will no longer work. To get the EPSG code from a ``crs`` object, you can use
459 the ``to_epsg()`` method.
460
461 Or to check if a CRS was a certain UTM zone:
462
463 .. code-block:: python
464
465 '+proj=utm ' in gdf.crs
466
467 could be replaced with the more robust check (requires pyproj 2.6+):
468
469 .. code-block:: python
470
471 gdf.crs.utm_zone is not None
472
473 And there are many other methods available on the ``pyproj.CRS`` class to get
474 information about the CRS.
0 .. ipython:: python
1 :suppress:
2
3 import geopandas
4 import matplotlib.pyplot as plt
5 plt.close('all')
6
7
8 Set-Operations with Overlay
9 ============================
10
11 When working with multiple spatial datasets -- especially multiple *polygon* or
12 *line* datasets -- users often wish to create new shapes based on places where
13 those datasets overlap (or don't overlap). These manipulations are often
14 referred using the language of sets -- intersections, unions, and differences.
15 These types of operations are made available in the *geopandas* library through
16 the ``overlay`` function.
17
18 The basic idea is demonstrated by the graphic below but keep in mind that
19 overlays operate at the DataFrame level, not on individual geometries, and the
20 properties from both are retained. In effect, for every shape in the first
21 GeoDataFrame, this operation is executed against every other shape in the other
22 GeoDataFrame:
23
24 .. image:: ../../_static/overlay_operations.png
25
26 **Source: QGIS Documentation**
27
28 (Note to users familiar with the *shapely* library: ``overlay`` can be thought
29 of as offering versions of the standard *shapely* set-operations that deal with
30 the complexities of applying set operations to two *GeoSeries*. The standard
31 *shapely* set-operations are also available as ``GeoSeries`` methods.)
32
33
34 The different Overlay operations
35 --------------------------------
36
37 First, we create some example data:
38
39 .. ipython:: python
40
41 from shapely.geometry import Polygon
42 polys1 = geopandas.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)]),
43 Polygon([(2,2), (4,2), (4,4), (2,4)])])
44 polys2 = geopandas.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)]),
45 Polygon([(3,3), (5,3), (5,5), (3,5)])])
46
47 df1 = geopandas.GeoDataFrame({'geometry': polys1, 'df1':[1,2]})
48 df2 = geopandas.GeoDataFrame({'geometry': polys2, 'df2':[1,2]})
49
50 These two GeoDataFrames have some overlapping areas:
51
52 .. ipython:: python
53
54 ax = df1.plot(color='red');
55 @savefig overlay_example.png width=5in
56 df2.plot(ax=ax, color='green', alpha=0.5);
57
58 We illustrate the different overlay modes with the above example.
59 The ``overlay`` function will determine the set of all individual geometries
60 from overlaying the two input GeoDataFrames. This result covers the area covered
61 by the two input GeoDataFrames, and also preserves all unique regions defined by
62 the combined boundaries of the two GeoDataFrames.
63
64 When using ``how='union'``, all those possible geometries are returned:
65
66 .. ipython:: python
67
68 res_union = geopandas.overlay(df1, df2, how='union')
69 res_union
70
71 ax = res_union.plot(alpha=0.5, cmap='tab10')
72 df1.plot(ax=ax, facecolor='none', edgecolor='k');
73 @savefig overlay_example_union.png width=5in
74 df2.plot(ax=ax, facecolor='none', edgecolor='k');
75
76 The other ``how`` operations will return different subsets of those geometries.
77 With ``how='intersection'``, it returns only those geometries that are contained
78 by both GeoDataFrames:
79
80 .. ipython:: python
81
82 res_intersection = geopandas.overlay(df1, df2, how='intersection')
83 res_intersection
84
85 ax = res_intersection.plot(cmap='tab10')
86 df1.plot(ax=ax, facecolor='none', edgecolor='k');
87 @savefig overlay_example_intersection.png width=5in
88 df2.plot(ax=ax, facecolor='none', edgecolor='k');
89
90 ``how='symmetric_difference'`` is the opposite of ``'intersection'`` and returns
91 the geometries that are only part of one of the GeoDataFrames but not of both:
92
93 .. ipython:: python
94
95 res_symdiff = geopandas.overlay(df1, df2, how='symmetric_difference')
96 res_symdiff
97
98 ax = res_symdiff.plot(cmap='tab10')
99 df1.plot(ax=ax, facecolor='none', edgecolor='k');
100 @savefig overlay_example_symdiff.png width=5in
101 df2.plot(ax=ax, facecolor='none', edgecolor='k');
102
103 To obtain the geometries that are part of ``df1`` but are not contained in
104 ``df2``, you can use ``how='difference'``:
105
106 .. ipython:: python
107
108 res_difference = geopandas.overlay(df1, df2, how='difference')
109 res_difference
110
111 ax = res_difference.plot(cmap='tab10')
112 df1.plot(ax=ax, facecolor='none', edgecolor='k');
113 @savefig overlay_example_difference.png width=5in
114 df2.plot(ax=ax, facecolor='none', edgecolor='k');
115
116 Finally, with ``how='identity'``, the result consists of the surface of ``df1``,
117 but with the geometries obtained from overlaying ``df1`` with ``df2``:
118
119 .. ipython:: python
120
121 res_identity = geopandas.overlay(df1, df2, how='identity')
122 res_identity
123
124 ax = res_identity.plot(cmap='tab10')
125 df1.plot(ax=ax, facecolor='none', edgecolor='k');
126 @savefig overlay_example_identity.png width=5in
127 df2.plot(ax=ax, facecolor='none', edgecolor='k');
128
129
130 Overlay Countries Example
131 -------------------------
132
133 First, we load the countries and cities example datasets and select :
134
135 .. ipython:: python
136
137 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
138 capitals = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))
139
140 # Select South America and some columns
141 countries = world[world['continent'] == "South America"]
142 countries = countries[['geometry', 'name']]
143
144 # Project to crs that uses meters as distance measure
145 countries = countries.to_crs('epsg:3395')
146 capitals = capitals.to_crs('epsg:3395')
147
148 To illustrate the ``overlay`` function, consider the following case in which one
149 wishes to identify the "core" portion of each country -- defined as areas within
150 500km of a capital -- using a ``GeoDataFrame`` of countries and a
151 ``GeoDataFrame`` of capitals.
152
153 .. ipython:: python
154
155 # Look at countries:
156 @savefig world_basic.png width=5in
157 countries.plot();
158
159 # Now buffer cities to find area within 500km.
160 # Check CRS -- World Mercator, units of meters.
161 capitals.crs
162
163 # make 500km buffer
164 capitals['geometry']= capitals.buffer(500000)
165 @savefig capital_buffers.png width=5in
166 capitals.plot();
167
168
169 To select only the portion of countries within 500km of a capital, we specify the ``how`` option to be "intersect", which creates a new set of polygons where these two layers overlap:
170
171 .. ipython:: python
172
173 country_cores = geopandas.overlay(countries, capitals, how='intersection')
174 @savefig country_cores.png width=5in
175 country_cores.plot(alpha=0.5, edgecolor='k', cmap='tab10');
176
177 Changing the "how" option allows for different types of overlay operations. For example, if we were interested in the portions of countries *far* from capitals (the peripheries), we would compute the difference of the two.
178
179 .. ipython:: python
180
181 country_peripheries = geopandas.overlay(countries, capitals, how='difference')
182 @savefig country_peripheries.png width=5in
183 country_peripheries.plot(alpha=0.5, edgecolor='k', cmap='tab10');
184
185
186 .. ipython:: python
187 :suppress:
188
189 import matplotlib.pyplot as plt
190 plt.close('all')
191
192
193 keep_geom_type keyword
194 ----------------------
195
196 In default settings, ``overlay`` returns only geometries of the same geometry type as df1
197 (left one) has, where Polygon and MultiPolygon is considered as a same type (other types likewise).
198 You can control this behavior using ``keep_geom_type`` option, which is set to
199 True by default. Once set to False, ``overlay`` will return all geometry types resulting from
200 selected set-operation. Different types can result for example from intersection of touching geometries,
201 where two polygons intersects in a line or a point.
202
203
204 More Examples
205 -------------
206
207 A larger set of examples of the use of ``overlay`` can be found `here <http://nbviewer.jupyter.org/github/geopandas/geopandas/blob/master/examples/overlays.ipynb>`_
208
209
210
211 .. toctree::
212 :maxdepth: 2
0 User Guide
1 ==========
2
3 The User Guide covers different parts of basic usage of GeoPandas. Each page focuses on a single topic and outlines how it is implemented in GeoPandas, with reproducible examples.
4
5 If you don't know anything about GeoPandas, start with the :doc:`Introduction to GeoPandas <../getting_started/introduction>`.
6
7 Advanced topics can be found in the :doc:`Advanced Guide <advanced_guide>` and further specification in the :doc:`API Reference <reference>`.
8
9 .. toctree::
10 :maxdepth: 2
11
12 Data Structures <user_guide/data_structures>
13 Reading and Writing Files <user_guide/io>
14 Indexing and Selecting Data <user_guide/indexing>
15 Making Maps and plots <user_guide/mapping>
16 Managing Projections <user_guide/projections>
17 Geometric Manipulations <user_guide/geometric_manipulations>
18 Set Operations with overlay <user_guide/set_operations>
19 Aggregation with dissolve <user_guide/aggregation_with_dissolve>
20 Merging Data <user_guide/mergingdata>
21 Geocoding <user_guide/geocoding>
0 Documentation
1 -------------
2
3 The documentation of GeoPandas consists of four parts - :doc:`User Guide <docs/user_guide>` with explanation of the basic functionality, :doc:`Advanced Guide <docs/advanced_guide>` covering topics which assume knowledge of basics, :doc:`Examples <gallery/index>`, and :doc:`API reference <docs/reference>` detailing every class, method, function and attribute used implemented by GeoPandas.
4
5 .. container:: button
6
7 :doc:`User Guide <docs/user_guide>` :doc:`Advanced Guide <docs/advanced_guide>`
8 :doc:`Examples <gallery/index>` :doc:`API reference <docs/reference>`
9
10
11 .. toctree::
12 :maxdepth: 2
13 :caption: Documentation
14
15 User Guide <docs/user_guide>
16 Advanced Guide <docs/advanced_guide>
17 API reference <docs/reference>
18 Changelog <docs/changelog>
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "\n",
7 "# Plotting with CartoPy and GeoPandas\n",
8 "\n",
9 "Converting between GeoPandas and CartoPy for visualizing data.\n",
10 "\n",
11 "[CartoPy](http://scitools.org.uk/cartopy/) is a Python library\n",
12 "that specializes in creating geospatial\n",
13 "visualizations. It has a slightly different way of representing\n",
14 "Coordinate Reference Systems (CRS) as well as constructing plots.\n",
15 "This example steps through a round-trip transfer of data\n",
16 "between GeoPandas and CartoPy.\n",
17 "\n",
18 "First we'll load in the data using GeoPandas.\n"
19 ]
20 },
21 {
22 "cell_type": "code",
23 "execution_count": null,
24 "metadata": {},
25 "outputs": [],
26 "source": [
27 "import matplotlib.pyplot as plt\n",
28 "import geopandas\n",
29 "from cartopy import crs as ccrs\n",
30 "\n",
31 "path = geopandas.datasets.get_path('naturalearth_lowres')\n",
32 "df = geopandas.read_file(path)\n",
33 "# Add a column we'll use later\n",
34 "df['gdp_pp'] = df['gdp_md_est'] / df['pop_est']"
35 ]
36 },
37 {
38 "cell_type": "markdown",
39 "metadata": {},
40 "source": [
41 "First we'll visualize the map using GeoPandas\n",
42 "\n"
43 ]
44 },
45 {
46 "cell_type": "code",
47 "execution_count": null,
48 "metadata": {},
49 "outputs": [],
50 "source": [
51 "df.plot()"
52 ]
53 },
54 {
55 "cell_type": "markdown",
56 "metadata": {},
57 "source": [
58 "Plotting with CartoPy\n",
59 "=====================\n",
60 "\n",
61 "Cartopy also handles Shapely objects well, but it uses a different system for\n",
62 "CRS. To plot this data with CartoPy, we'll first need to project it into a\n",
63 "new CRS. We'll use a CRS defined within CartoPy and use the GeoPandas\n",
64 "``to_crs`` method to make the transformation.\n",
65 "\n"
66 ]
67 },
68 {
69 "cell_type": "code",
70 "execution_count": null,
71 "metadata": {},
72 "outputs": [],
73 "source": [
74 "# Define the CartoPy CRS object.\n",
75 "crs = ccrs.AzimuthalEquidistant()\n",
76 "\n",
77 "# This can be converted into a `proj4` string/dict compatible with GeoPandas\n",
78 "crs_proj4 = crs.proj4_init\n",
79 "df_ae = df.to_crs(crs_proj4)\n",
80 "\n",
81 "# Here's what the plot looks like in GeoPandas\n",
82 "df_ae.plot()"
83 ]
84 },
85 {
86 "cell_type": "markdown",
87 "metadata": {},
88 "source": [
89 "Now that our data is in a CRS based off of CartoPy, we can easily\n",
90 "plot it.\n",
91 "\n"
92 ]
93 },
94 {
95 "cell_type": "code",
96 "execution_count": null,
97 "metadata": {},
98 "outputs": [],
99 "source": [
100 "fig, ax = plt.subplots(subplot_kw={'projection': crs})\n",
101 "ax.add_geometries(df_ae['geometry'], crs=crs)"
102 ]
103 },
104 {
105 "cell_type": "markdown",
106 "metadata": {},
107 "source": [
108 "Note that we could have easily done this with an EPSG code like so:\n",
109 "\n"
110 ]
111 },
112 {
113 "cell_type": "code",
114 "execution_count": null,
115 "metadata": {},
116 "outputs": [],
117 "source": [
118 "crs_epsg = ccrs.epsg('3857')\n",
119 "df_epsg = df.to_crs(epsg='3857')\n",
120 "\n",
121 "# Generate a figure with two axes, one for CartoPy, one for GeoPandas\n",
122 "fig, axs = plt.subplots(1, 2, subplot_kw={'projection': crs_epsg},\n",
123 " figsize=(10, 5))\n",
124 "# Make the CartoPy plot\n",
125 "axs[0].add_geometries(df_epsg['geometry'], crs=crs_epsg,\n",
126 " facecolor='white', edgecolor='black')\n",
127 "# Make the GeoPandas plot\n",
128 "df_epsg.plot(ax=axs[1], color='white', edgecolor='black')"
129 ]
130 },
131 {
132 "cell_type": "markdown",
133 "metadata": {},
134 "source": [
135 "CartoPy to GeoPandas\n",
136 "====================\n",
137 "\n",
138 "Next we'll perform a CRS projection in CartoPy, and then convert it\n",
139 "back into a GeoPandas object.\n",
140 "\n"
141 ]
142 },
143 {
144 "cell_type": "code",
145 "execution_count": null,
146 "metadata": {},
147 "outputs": [],
148 "source": [
149 "crs_new = ccrs.AlbersEqualArea()\n",
150 "new_geometries = [crs_new.project_geometry(ii, src_crs=crs)\n",
151 " for ii in df_ae['geometry'].values]\n",
152 "\n",
153 "fig, ax = plt.subplots(subplot_kw={'projection': crs_new})\n",
154 "ax.add_geometries(new_geometries, crs=crs_new)"
155 ]
156 },
157 {
158 "cell_type": "markdown",
159 "metadata": {},
160 "source": [
161 "Now that we've created new Shapely objects with the CartoPy CRS,\n",
162 "we can use this to create a GeoDataFrame.\n",
163 "\n"
164 ]
165 },
166 {
167 "cell_type": "code",
168 "execution_count": null,
169 "metadata": {},
170 "outputs": [],
171 "source": [
172 "df_aea = geopandas.GeoDataFrame(df['gdp_pp'], geometry=new_geometries,\n",
173 " crs=crs_new.proj4_init)\n",
174 "df_aea.plot()"
175 ]
176 },
177 {
178 "cell_type": "markdown",
179 "metadata": {},
180 "source": [
181 "We can even combine these into the same figure. Here we'll plot the\n",
182 "shapes of the countries with CartoPy. We'll then calculate the centroid\n",
183 "of each with GeoPandas and plot it on top.\n",
184 "\n"
185 ]
186 },
187 {
188 "cell_type": "code",
189 "execution_count": null,
190 "metadata": {
191 "tags": [
192 "nbsphinx-thumbnail"
193 ]
194 },
195 "outputs": [],
196 "source": [
197 "# Generate a CartoPy figure and add the countries to it\n",
198 "fig, ax = plt.subplots(subplot_kw={'projection': crs_new})\n",
199 "ax.add_geometries(new_geometries, crs=crs_new)\n",
200 "\n",
201 "# Calculate centroids and plot\n",
202 "df_aea_centroids = df_aea.geometry.centroid\n",
203 "# Need to provide \"zorder\" to ensure the points are plotted above the polygons\n",
204 "df_aea_centroids.plot(ax=ax, markersize=5, color='r', zorder=10)\n",
205 "\n",
206 "plt.show()"
207 ]
208 }
209 ],
210 "metadata": {
211 "kernelspec": {
212 "display_name": "Python 3",
213 "language": "python",
214 "name": "python3"
215 },
216 "language_info": {
217 "codemirror_mode": {
218 "name": "ipython",
219 "version": 3
220 },
221 "file_extension": ".py",
222 "mimetype": "text/x-python",
223 "name": "python",
224 "nbconvert_exporter": "python",
225 "pygments_lexer": "ipython3",
226 "version": "3.9.1"
227 }
228 },
229 "nbformat": 4,
230 "nbformat_minor": 4
231 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Choro legends"
7 ]
8 },
9 {
10 "cell_type": "code",
11 "execution_count": 1,
12 "metadata": {},
13 "outputs": [],
14 "source": [
15 "import geopandas\n",
16 "from geopandas import read_file"
17 ]
18 },
19 {
20 "cell_type": "code",
21 "execution_count": 2,
22 "metadata": {},
23 "outputs": [
24 {
25 "data": {
26 "text/plain": [
27 "'2.4.2'"
28 ]
29 },
30 "execution_count": 2,
31 "metadata": {},
32 "output_type": "execute_result"
33 }
34 ],
35 "source": [
36 "import mapclassify\n",
37 "mapclassify.__version__"
38 ]
39 },
40 {
41 "cell_type": "code",
42 "execution_count": 3,
43 "metadata": {},
44 "outputs": [
45 {
46 "data": {
47 "text/plain": [
48 "'4.4.0'"
49 ]
50 },
51 "execution_count": 3,
52 "metadata": {},
53 "output_type": "execute_result"
54 }
55 ],
56 "source": [
57 "import libpysal\n",
58 "libpysal.__version__"
59 ]
60 },
61 {
62 "cell_type": "code",
63 "execution_count": 4,
64 "metadata": {},
65 "outputs": [
66 {
67 "name": "stdout",
68 "output_type": "stream",
69 "text": [
70 " Name Description Installed\n",
71 "0 10740 Albuquerque, New Mexico, Census 2000 Tract Data. 10740 i... True\n",
72 "1 AirBnB Airbnb rentals, socioeconomics, and crime in Chicago False\n",
73 "2 Atlanta Atlanta, GA region homicide counts and rates False\n",
74 "3 Baltimore Baltimore house sales prices and hedonics False\n",
75 "4 Bostonhsg Boston housing and neighborhood data False\n",
76 "5 Buenosaires Electoral Data for 1999 Argentinean Elections False\n",
77 "6 Charleston1 2000 Census Tract Data for Charleston, SC MSA and counties False\n",
78 "7 Charleston2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n",
79 "8 Chicago Health Chicago Health + Socio-Economics False\n",
80 "9 Chicago commpop Chicago Community Area Population Percent Change for 20... False\n",
81 "10 Chicago parcels Tax parcel polygons of Cook county False\n",
82 "11 Chile Labor Labor Markets in Chile (1982-2002) False\n",
83 "12 Chile Migration Internal Migration in Chile (1977-2002) False\n",
84 "13 Cincinnati 2008 Cincinnati Crime + Socio-Demographics False\n",
85 "14 Cleveland 2015 sales prices of homes in Cleveland, OH. False\n",
86 "15 Columbus Columbus neighborhood crime False\n",
87 "16 Elections 2012 and 2016 Presidential Elections False\n",
88 "17 Grid100 Grid with simulated variables False\n",
89 "18 Groceries 2015 Chicago supermarkets False\n",
90 "19 Guerry Moral statistics of France (Guerry, 1833) False\n",
91 "20 Health Indicators Chicago Health Indicators (2005-11) False\n",
92 "21 Health+ 2000 Health, Income + Diversity False\n",
93 "22 Hickory1 2000 Census Tract Data for Hickory, NC MSA and counties False\n",
94 "23 Hickory2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n",
95 "24 Home Sales 2014-15 Home Sales in King County, WA False\n",
96 "25 Houston Houston, TX region homicide counts and rates False\n",
97 "26 Juvenile Cardiff juvenile delinquent residences False\n",
98 "27 Lansing1 2000 Census Tract Data for Lansing, MI MSA and counties False\n",
99 "28 Lansing2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n",
100 "29 Laozone Ozone measures at monitoring stations in Los Angeles basin False\n",
101 "30 LasRosas Corn yield, fertilizer and field data for precision agr... False\n",
102 "31 Line Line Shapefile True\n",
103 "32 Liquor Stores 2015 Chicago Liquor Stores False\n",
104 "33 Malaria Malaria incidence and population (1973, 95, 93 censuses... False\n",
105 "34 Milwaukee1 2000 Census Tract Data for Milwaukee, WI MSA False\n",
106 "35 Milwaukee2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n",
107 "36 NCOVR US county homicides 1960-1990 True\n",
108 "37 NDVI Normalized Difference Vegetation Index grid False\n",
109 "38 NYC Demographic and housing data for New York City subborou... False\n",
110 "39 NYC Earnings Block-level Earnings in NYC (2002-14) False\n",
111 "40 NYC Education NYC Education (2000) False\n",
112 "41 NYC Neighborhoods Demographics for New York City neighborhoods False\n",
113 "42 NYC Socio-Demographics NYC Education + Socio-Demographics False\n",
114 "43 Natregimes NCOVR with regimes (book/PySAL) False\n",
115 "44 Nepal Health, poverty and education indicators for Nepal dist... False\n",
116 "45 Ohiolung Ohio lung cancer data, 1968, 1978, 1988 False\n",
117 "46 Orlando1 2000 Census Tract Data for Orlando, FL MSA and counties False\n",
118 "47 Orlando2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n",
119 "48 Oz9799 Monthly ozone data, 1997-99 False\n",
120 "49 Phoenix ACS Phoenix American Community Survey Data (2010, 5-year av... False\n",
121 "50 Pittsburgh Pittsburgh homicide locations False\n",
122 "51 Point Point Shapefile True\n",
123 "52 Police Police expenditures Mississippi counties False\n",
124 "53 Polygon Polygon Shapefile True\n",
125 "54 Polygon_Holes Example to test treatment of holes True\n",
126 "55 Rio Grande do Sul Cities of the Brazilian State of Rio Grande do Sul True\n",
127 "56 SIDS North Carolina county SIDS death counts False\n",
128 "57 SIDS2 North Carolina county SIDS death counts and rates False\n",
129 "58 Sacramento1 2000 Census Tract Data for Sacramento MSA True\n",
130 "59 Sacramento2 1998 and 2001 Zip Code Business Patterns (Census Bureau... True\n",
131 "60 SanFran Crime July-Dec 2012 crime incidents in San Francisco (points ... False\n",
132 "61 Savannah1 2000 Census Tract Data for Savannah, GA MSA and counties False\n",
133 "62 Savannah2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n",
134 "63 Scotlip Male lip cancer in Scotland, 1975-80 False\n",
135 "64 Seattle1 2000 Census Tract Data for Seattle, WA MSA and counties False\n",
136 "65 Seattle2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n",
137 "66 Snow John Snow & the 19th Century Cholera Epidemic False\n",
138 "67 South US Southern county homicides 1960-1990 True\n",
139 "68 Spirals Synthetic spiral points False\n",
140 "69 StLouis St Louis region county homicide counts and rates False\n",
141 "70 Tampa1 2000 Census Tract Data for Tampa, FL MSA and counties False\n",
142 "71 US SDOH 2014 US Social Determinants of Health Data False\n",
143 "72 arcgis arcgis testing files True\n",
144 "73 baltim Baltimore house sales prices and hedonics, 1978. True\n",
145 "74 berlin Prenzlauer Berg neighborhood AirBnB data from Berlin True\n",
146 "75 book Synthetic data to illustrate spatial weights True\n",
147 "76 burkitt Burkitt's lymphoma in the Western Nile district of Uganda True\n",
148 "77 calemp Employment density for California counties True\n",
149 "78 chicago Chicago neighborhoods True\n",
150 "79 clearwater mgwr testing dataset False\n",
151 "80 columbus Columbus neighborhood crime data 1980 True\n",
152 "81 desmith Small dataset to illustrate Moran's I statistic True\n",
153 "82 geodanet Datasets from GeoDaNet for network analysis True\n",
154 "83 georgia Various socio-economic variables for counties within the... True\n",
155 "84 juvenile Residences of juvenile offenders in Cardiff, UK True\n",
156 "85 mexico Decennial per capita incomes of Mexican states 1940-2000 True\n",
157 "86 networks Datasets used for network testing True\n",
158 "87 newHaven Network testing dataset False\n",
159 "88 nyc_bikes New York City Bike Trips False\n",
160 "89 sids2 North Carolina county SIDS death counts and rates True\n",
161 "90 snow_maps Public water pumps and Cholera deaths in London 1854 (Jo... True\n",
162 "91 stl Homicides and selected socio-economic characteristics fo... True\n",
163 "92 street_net_pts Street network points True\n",
164 "93 taz Traffic Analysis Zones in So. California False\n",
165 "94 tokyo Tokyo Mortality data True\n",
166 "95 us_income Per-capita income for the lower 48 US states 1929-2009 True\n",
167 "96 virginia Virginia counties shapefile True\n",
168 "97 wmat Datasets used for spatial weights testing True\n"
169 ]
170 }
171 ],
172 "source": [
173 "libpysal.examples.available()"
174 ]
175 },
176 {
177 "cell_type": "code",
178 "execution_count": 5,
179 "metadata": {},
180 "outputs": [],
181 "source": [
182 "_ = libpysal.examples.load_example('South')\n",
183 "pth = libpysal.examples.get_path('south.shp')"
184 ]
185 },
186 {
187 "cell_type": "code",
188 "execution_count": 6,
189 "metadata": {},
190 "outputs": [],
191 "source": [
192 "df = read_file(pth)"
193 ]
194 },
195 {
196 "cell_type": "markdown",
197 "metadata": {},
198 "source": [
199 "## Default legend formatting"
200 ]
201 },
202 {
203 "cell_type": "code",
204 "execution_count": 7,
205 "metadata": {
206 "tags": [
207 "nbsphinx-thumbnail"
208 ]
209 },
210 "outputs": [
211 {
212 "data": {
213 "image/png": "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\n",
214 "text/plain": [
215 "<Figure size 432x288 with 1 Axes>"
216 ]
217 },
218 "metadata": {
219 "needs_background": "light"
220 },
221 "output_type": "display_data"
222 }
223 ],
224 "source": [
225 "%matplotlib inline\n",
226 "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n",
227 " cmap='BuPu', legend=True,\n",
228 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)})"
229 ]
230 },
231 {
232 "cell_type": "code",
233 "execution_count": 8,
234 "metadata": {},
235 "outputs": [
236 {
237 "data": {
238 "text/plain": [
239 "[' 0.00, 3.21', ' 3.21, 6.25', ' 6.25, 9.96', ' 9.96, 92.94']"
240 ]
241 },
242 "execution_count": 8,
243 "metadata": {},
244 "output_type": "execute_result"
245 }
246 ],
247 "source": [
248 "labels = [t.get_text() for t in ax.get_legend().get_texts()]\n",
249 "labels"
250 ]
251 },
252 {
253 "cell_type": "code",
254 "execution_count": 9,
255 "metadata": {},
256 "outputs": [
257 {
258 "data": {
259 "text/plain": [
260 "Quantiles \n",
261 "\n",
262 " Interval Count\n",
263 "----------------------\n",
264 "[ 0.00, 3.21] | 353\n",
265 "( 3.21, 6.25] | 353\n",
266 "( 6.25, 9.96] | 353\n",
267 "( 9.96, 92.94] | 353"
268 ]
269 },
270 "execution_count": 9,
271 "metadata": {},
272 "output_type": "execute_result"
273 }
274 ],
275 "source": [
276 "q4 = mapclassify.Quantiles(df.HR60, k=4)\n",
277 "q4"
278 ]
279 },
280 {
281 "cell_type": "code",
282 "execution_count": 10,
283 "metadata": {},
284 "outputs": [
285 {
286 "data": {
287 "text/plain": [
288 "False"
289 ]
290 },
291 "execution_count": 10,
292 "metadata": {},
293 "output_type": "execute_result"
294 }
295 ],
296 "source": [
297 "labels == q4.get_legend_classes()"
298 ]
299 },
300 {
301 "cell_type": "markdown",
302 "metadata": {},
303 "source": [
304 "Note that in this case, the first interval is closed on the minimum value in the dataset. The other intervals have an open lower bound. This can be now displayed in the legend using `legend_kwds={'interval': True}`."
305 ]
306 },
307 {
308 "cell_type": "markdown",
309 "metadata": {},
310 "source": [
311 "## Overriding numerical format"
312 ]
313 },
314 {
315 "cell_type": "code",
316 "execution_count": 11,
317 "metadata": {},
318 "outputs": [
319 {
320 "data": {
321 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdYAAADlCAYAAADug9btAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAADtIElEQVR4nOydd5wc5X24n5nZ3q73fqc7SadeEEIgCUTvYAMGYxtsbNxbQlwSt9iOYyeO7fxicNwDNrYppphqmoQkUO/SSbree9neZmfe3x+zt3d7dwKBwTawz+cj3e7slHdmZ+f7frskhCBDhgwZMmTI8MYg/60HkCFDhgwZMrydyAjWDBkyZMiQ4Q0kI1gzZMiQIUOGN5CMYM2QIUOGDBneQDKCNUOGDBkyZHgDyQjWDBkyZMiQ4Q3E9Nc8WH5+vqiurv5rHjJDhgwZ3vLs27dvVAhR8LceR4bT468qWKurq9m7d+9f85AZMmTI8JZHkqSuv/UYMpw+GVNwhgwZMmTI8AaSEawZMmTIkCHDG0hGsGbIkCFDhgxvIBnBmiFDhgwZMryBZARrhgwZMmTI8AaSEawZMmTIkCHDG0hGsGbIkCFDhgxvIBnBmiFDhr8bNCFQdf1vPYwMGf4iMoI1Q4YMfzdIgC7+1qPIkOEvIyNYM2TI8HeDrguiscTfehgZMvxFnLZglSRJkSTpgCRJjyff50qS9KwkSS3Jvzlv3jAzZMjwTkAI2Ns6+rceRoYMfxGvRWP9LHB82vsvAc8LIeqB55PvM2TIkOF1M+KPIkl/61FkyPCXcVqCVZKkcuBy4BfTFl8N3J18fTdwzRs6sgwZMryjEELgtJtZWJExfmV4a3O63W1+BHwBcE9bViSEGAAQQgxIklT4Bo8tQ4YM7yAEYLUo2CzK33ooGTL8RbyqxipJ0hXAsBBi3+s5gCRJt0uStFeSpL0jIyOvZxcZMmR4B6ALIxw4YwnO8FbndEzBZwNXSZLUCfwB2CRJ0m+BIUmSSgCSf4fn2lgI8TMhxGohxOqCgkyf3gwZMszNZJpNJtsmw1udVxWsQogvCyHKhRDVwI3AC0KI9wF/Am5JrnYL8OibNsoMGTK8rdGF4K1eFkLXBYc6xnnp+BAner0IkZkivFM5XR/rXHwXuF+SpNuAbuD6N2ZIGTJkeKcRVTWGvJGUtmpTZIpyHHOuKxBISIAgFUIspj4zFkvTFxufiOQmsvGZNGOfA+NhhABZSi9S4bCZyHFapx3XYNgbIZbQjO0F+MNxTvb7ASjJdaTGkOGdx2sSrEKILcCW5Osx4Pw3fkgZMmR4J6HrOoc7x+keCaWWleU5yM22v8JWwhCtM7TCpLg1JN3kmrqg7/gwvuEQLz94lJWXzWfZJfXIkoScFLIDYyH2tIxiUiSsJoXQtCIVGxcXo6b2N7Vfp8PMtn1Dqff5bisAjRXZ1BZNj/PM8E4jU3kpQ4YMfzOEEKgCllTnUphlSy1fOS8/9Xq63vdqOuCk2JOAWFwjFFXpaxnlTz98ic33HKD6gjqGCuw8vbeHjkFDu0xoOvvbxpKvBSZFwjTtyehxWOY8lsWssGFREbkua9rgzErmsfpOJ3MHZMiQ4W+CLgSqLhCAosicuaCQlbV5ZDss9AwHCUVUhBBpwUyv5LWUmBK84ViCl5oGef5gP0f9UeovqUeSwVThIaEL9GlW5Al/DG2a7dcXVslOCss8tzVlOp5+nEkKs+wsqsxOW242ZR6r73T+Eh9rhgwZMpw2QggSQiBjGHITM8y4siRRXujC47Sw5cgAAJUFTlbUTWmvpxKs0rTPhBAcbB8jGDXMuXFNx2YzkVXgIhaIg93EwvIsaouzkDCqPc0aqy6wmmQ8DjMAYz0+AqMhiurycHisKBJISGiqzkT7BK6BIGpYBYeZ1gE/FXkOzKZMPu47lczUKkOGDG86QhhaoiZAFZAQIk3DhCnB2DkUSC0LhFUEhnbbORQgoc2OHZam/dV1wb6WUUZ86cJSHQjiHQrSdf9Rssaj1JdlgQQv/PIZnv6XXxFr6QagrtjN5WdUkOO2EUvodA4HOdHtpfPgAI//vx1M9PuRJDDLMmpY5Z5/eYYn//tlWje3E+oLkO+xomo6u1pGU3m5Gd55ZDTWDBkyvKmIpMl3pkicLnama5z5WTY6h4MAhOMJth8dJBpPEI5rOK0m8qcFNUkz9iUhKMqxM+6PEk3oqeMPHTPS7PPm5zNxeJCXAzFWXtHAff/6O8b7x9n5hxf5ryM/pqI6F4DGqhwKPDZ2nBympd/HuZtqaVhbjifXgSlpQ37u7v1EYgkWfHINEU3H47Qw6o8BEIomiMY1HNbMI/adSOZbz5DhHYJI5ooKATKC8UCMLJf1TQ+20TSdhCAVgTtTGE6+1nWd491ehrwR8t1GekuBx86JPl9qPfs0QTWXPijJMhUFLioKXCQSOjFVY8/mNvQSF2FflJgvinc0TO/JUfpP9jDePw5AcV0JeaV5afsqyLGzrCYXWZJwOy3gtCCmjV/XdBa8ZwnjCR2LIs3yrWY01ncuGVNwhgzvIFTd8HPuaR3lUNcE+9tGCb9J/U/94TgAJ/r8PH+wj44BfyoYabqASv2VJNoGAwSjCUYDMRxWMw0V2VyyqpxctwWLScZpN8+KDJ65n0lMyfVXrCzj6jvWU3lWOWVnlJFdm0N+uYsnf/z71LqDbQN8buHHmegfSy1LaDptA346hwOEo2ravieCMc754ErGk+Ld47CkfLqTtA74X9P1yvD2ISNYM2R4B6LIMv5wnK6REM39vlff4DXS0u/j6QN9tA/60RFE4hpHuiaIxaeEz8zMUEmSOHthUerzohzD5GsxK6yeV8AFK8rS12dG0NKMMUwK2qxiN5IsYV5Rij/XjmdBPuMDIc66/gau+afbWXfDhQDc8cCXyElqrd7+cb594VfwjwaYCMY51j2R2m9U1WgfCqDrsKgym7piN6OBGAltagRyQqNraych3+zAqAxvfzKm4AwZ3kGYJEgkU00mtcaJYBw1ob1hUay6ELQOGAFIA94IfWPh1GdWy6kfORKQl2Vj3cJC9rWMUpLrSC23ncJXOV3ICiASS2C3mtIELkDfWAhV08m2KPTu7kPXBLGwimK24siq5MP/8080nN2YWl/JdlE0vxx1cBTrvIpUvQlFgriAJVW5mBUJj8uCEIKe0RAxVcMSVpEjCToeP4kaTaCNRbj282dnqjC9w8horBkyvA0RQhANxdESOom4xnCPF1UIQ6gC88uzKc6xY1IkRvxRXk4G6Rzv9TLS++oabEzVTlkLt2MoQCBpOu0bC6dSVl6J9OAlw7d5qvOa67gCoyDEC4f6OdY5jpZcRwjB8ESYY10TFGbZCOuC4ivmp7YL+2K4c+207hth1x+Ppfbtsps567PvwjqvwtjPhJ/RnhEUScJpNSHLRrqQgJQpXQAdvz9C84PHUJNm4faDA/zijqcYPY1rmuHtQ0awZsjwNkQVAt0k89idO7j3m8/z0H9tp63Xy+H2MQSG/zHLYUFNmi99YZUDHeM0Hxni3m88T8fhwWQ0r442TZgJIegbD/H43h4CEXXOY09WKjLJUFvsorEiG7tFxmKS0zS3uVJtJo9xotfHlsMDRpGIaZ817+hm90NNTPT6Zpl+e0eDaLqgbTDA7hPDxBMahzvG2XlyhIQmGPZFiSd0AvEE886pwmI3pQaia4I9j5/ggX99gdFuL/5hH4PDftSBEUQkxsltR/mXdf/EsRePIIRAlsAkGZWDgxMRtP0DWHv8U/uchm8khH+a1p7h7U/GFJwhw9sQGQnZJLP+vcsY7fUxrMgc6fFhNctUh9x4nBZyXFYUGewWE7IEQ9sPYo2aScQ1/vhf21hz5QLWXLsopf3JklHIvqnbi6YLBr2RWeX+IvEEE0Ej5eSS1ZXIsoSmCwqz7EyE4niDsVRVo+kBTNOLOxxqH8OfFNot/T6WTysQ0bS1k76To9SsLEk7biiq0tTtTb0f9kXZ2zzCWDL9ZfipHXgW12Ipzifxcg+tTSOUzsujv3WMsb4ApfU5hLxRhru8+Pq8/Pct38E77CMajGB327n0ux9mYmCc4c5hpHMlEILW/f1Y7CaOvNhBx44eANy5c9c3zvha31lkBGuGDG8zjGIMRgEGZ64DZ66DvIjKwKF+YqrOy8eHOLOhgN7RICARjCZInOzgsS/9kmUXrqRy6VksOKuCRefWpO1XF+APxfGFjGjfgx3jdA8HOW9pCYpsGL8GJyIc7BinwGOdajwjBH1jYRK64KWmIRxWE3luK4uqclCSqT6TpuDe0VBaMf6BiQhLdR2hCXY/0kRf8yh5FR4Ka3LTzMcdA4FZGqymGabaeM8gz/3H/dg9ds770HuY6DfG7x0OYnWYUKMxNv/fH/AN+bj6jg/wwL/dzWD7YGo/RbUVqK1GWk7LnhbOv/UCvMMhtt53mInBYGq9xhuXMHpkkMB4ZNZ3Ek4K+AzvDDKCNUOGtxEJ3cgZhXRTq8tuZkVdHgfaxpCAA+1jWE1KqkZu8eoF/Mb/AFpcxZHtSm0nAf4xP84cF4os43FauPSMClr6/QxPhDl7UTGqMHI6m/t8dI8aQnHEb0TJxtUEJ3q9JJLH0XRBIKJSlG1PCdXpuGzp/tgcTecPX32O4ESEeMTwW9YsKQbSNd5F1TlYzDInen3YhkNE8h1MhOJ4HGZObDuEGlNRR1S23v0gSy66AoRM2B+jrCEf72APQ0lB6hvswu62s/KSVTizHGy7bxvLL97E+ECEm//tk2z97Z/Y8fDLFNXW4B2emgC4S10Es6y4NlSTdW4NEhA+0c2W79xLaX0ZuSWrXvuXmeEty6sKVkmSbMBWwJpc/0EhxNclSVoO/C9gAxLAJ4QQu9/EsWbIkOEVEELw7C/3UViTQ8WSfI48e4BdD79MTnEupY2VeDasJN9tJRRLEIwm0CyGsLME4yTaJrA0FiE5rGhqAtmkIEkSuhB866Kvsvbas3j3V24EjIL5CyqyWVCRnTq2BlQVuYlrOkIIzIqMmtDoGPIz7J2twU2aiye1zkltM9tlSU0AbANBDj7dQiKupbYrqMpizbWLps45+VeSJBrKs6kocLHzxBDRSAKh63T+6WW2/vxpapbV0HGog4nBCYqqc9A1GOnxoesCsy2fje+/kkPPvERBdRG33/VJo0FAJIbJYqKouoDxgW56TgS59FM3IysytctKuOaz63jsxztQzArLb1xKVyhOQhepSUQkHKG/uZf1N55DxcLSN+IrzvAW4XQ01hiwSQgRlCTJDGyXJOkp4JvAvwohnpIk6TLgP4Bz37yhZsiQ4VTseKSJ4zu6GR8IcGxbJ5I+wov3Ppn6fP1HLqVquZFOYrMYaTWRuEb8hQ66W4yiCDanhflnl/O9K7/BaM8o//by92nb00znoQ7G+8a44h+vxWq3poSZfyRE04sdSBKc+e7FmEwy80o9DIyHmQjF2XlimGA0Qb7HSjimpRWiSGg6fSNBcjw2TIqEJZnqI0kSFQUuirLtvPibA2lCFWDDTctRTPKsNJtJ7FYT5y0to7nXy/BYEK2ykOLF1QRGfFz26fdisbsZ6jAidLOLXYz1+ohHE0hyLud/+AbUeIC2g+1ULavh5HCYT/7qc0S9MSKBGCFflBM7B7BfOA8hBHUrSrnlOxdjc5jp6RvlkTt+wWjHECXzy+hr6mFiYJysgiwqF1Vhc9jI8M7hVQWrMMIBJx0J5uS/yUmmJ7k8C+h/MwaYIUOGKTRd0D8eojDLjtVsCKOgN8LLDx+b3tub/MYK8qqKGOsyGnE7CnOQJch1GYLRokiYFAVtUy2DScF65IV2Og90EvLG8A55+drGL2KxGYFG/lE/T/73n7jmS9cDoEZVfv/VZ1FjGqsvn0pfmfTZAgSjCfLcVryhOAlNkO+2MhqIIUuGUN/XNoYkGebfdY1FqfORMIpCeLLShdHG9y2nZH7+KYVq6r0EWU4LJ/o0TA1VnPs/n8UtQ6R1gp4XT2A2J7B5sokG48STY9V1wYmtL3Ns22F2PvQyH7nz4ww73Dy9P0RJjp21H1pFYZaNo5vb2XzvQdZd04jdbSWnyDCbD+xv4fjmI+i6Tn55PiNdw5itZr79wr8RnAiS4Z3FaflYJUlSgH3APOBOIcQuSZI+B/xZkqTvY6TtrHvTRpkhQwaEELQP+TnYPs7a+QVU5BsP9UgwjskcI+IfQVNVkAT21Vdy2blfwRqJ0vrAdrQROxMPH0e+tAHNqiBLoIkEZkWiYKGdk8/sxGw1EylsZNkllxK49w+M9Y5x6Scvp6S+hFgwipaY0h57m4ZRY8b7g8+20nhuDZ58J2aTTFWBi66RICYZ/GE1VZFoNBAjx2lBFwJfWE2eEwQiKu39fhZWZoMkpYTlyssX4B8No+uCsoZ86s+sSLseo74IFrOCOxmZPLmdpiboH59Kb/HYzfgjKsGxfp7/5e8AkBWZmmV1VK84g3hMwT90nGPbDgPQeaiD8oUV1LrsHO0axxeO0zEcxGqWufLCeWQVOEmo6S0FNr73XF7+48scffEIatQIjnr3l64jpziH/IqCv+Bbz/BW5LQEqxBCA5ZLkpQNPCxJ0mLgduDzQog/SpJ0A/BL4IKZ20qSdHtyXSorK9+ocWfI8LYh5I/icFvnrM6jJaN75eRn5QUuhn1RdpwcoanHR0mOjeHecZ7/5R9S22z8xJXYc1zEVQ1LtguHtYTgRIREQqc0oWPKsWFSZMYCMVRNsOu3T9LbZLRNO/9D8wj74J8f/za1qyqQFJmhtgE+s+BjHNt2jF0PvUxBVREf+M+PsmhjNcde7ESNJXjhFy9zzZcuJB5NEBnwk5djJ57Q0HVQJ1u9aTpqpxeTy4KwKWnn2zLgpzDbTt40LdVsM3HhR9fMec3UhM6xbi/+cJyFFdnUlHhS1+i+r92LVFmCc4WhSauajimWQBrSsDpsxMJRdE2nbX8LgfEA62+6kt0PHU3b/y8+9b988u7PU5rrZMfwMAUeK4H9Azyxu59lm+pmpdWM9Y9htppZc+U63AVVLDrvfNa/ZwWRsE5RpfN0boMMbyOkU1VPOeUGkvR1IAR8FcgWQgjJ+IX4hBCeV9p29erVYu/eva97sBkyvF04vq8PSdVRYwliYZWml7qIxxJs+shqaurz0QXsbx9lXkkWDpsJkyShI5gsR9s24ONYlxcAu0Uh1jXAPdd/i/y6Eq7+7b8QS65YlG0nazxK3CzTpWnkeawgBKOBOG67GU1NMLrnOLt+/iR9hzv46Ob/wiSZyCl00ViXh0mR+fkn7uTZn/0ZgLzSPFy5Lr67+4coFhPBsTCP/uejvPCrx/mH+77EiZdGGe7yUnv9YmIeQ5PMcVqYCMWxBmK0/O4IAHXn1qAUOkg4LSSSPt81DfkU584WQtNNvpOvj3WO0zY41bc1121l+JEXAcEfv/MAJfPLWX/n55EkCaEL4ps7GGodx+ow43QneOxHv0FLaJx3y1Voeg45xXaOb91O866jXPK1mznyyMu8+45rOee95zIRiHKofZxgIErfb4+gxhIs21THhbeuTBunrgt+89VnGenxseby+Sw8q5L8iqw3pJyhJEn7hBCr/+IdZfircDpRwQWAKoTwSpJkx9BKv4fhU90IbAE2AS1v4jgzZHjbMBaIEcu2cvC+I/g6JnDl2FP5kC2DAVrDcWqK3HQMBQnFEqyZXwik+xPrSrJIJHTG/DFGAzEoKeTDj30T8nKIJoXq8ppcKovcAIz7o3Q2DTHmj7GkOodgLIFFkZmIChwrFnDeXQto/fGDtDy8ldIbLsA3HiYn205loYtb/vM2hC44+dJxQr4QvSd68Q57ySvPx5XnYM+fthIYD/DbL91NxZI16JoCvigkBasvHCfbBN5wCGcWhHzQtqUDAE++g9x5edjXlNHc5yfPY5/Vfk0Ao90jOHOcRP0JbB5rqnMOgEmW0PxR9j91mOadhuDuPtxBcN9x3KsbcfQG6EnmoVrtZryjCa78/G088p8/w1NYysRghInBCI0bz2bxu9fhWLeEi85YwG8/+kMSMZXyRVWcs7KOnVvaiZa5UeMazizrrO91qHOCeCxBdpGLs65dhNnyxtRezvDW43RMwSXA3Uk/qwzcL4R4XJIkL/DfkiSZgChJc2+GDBlOzXggxtZjg6iajvPcaiY6J1JCtXpjNTGrQjQU50C7EVDkC8bpHQlSke9Ckqc0n4Sm0zkcJDbd11eYh9WsEA2rFGfbUkIVjHq2DouC1aKQ77FRWehmPBDl5ePDqXWigQg7//Ai2fdv5ZxbLsd6+0UIQDYr3PzdW3nyR4/ywLfvA2Dbb7aTU1aFfzTEykvXE1O3oHjs1JxfS9szXfhbxrCVuhCKjBZXuf9D32O4YwhZkTn3lveQUA2h6x8NYy9xY9cF3lCcUV+EkrwprXVSQ7W5bEz0B3nsRzswO83kX2ek3FhMMo7xKId/f5jaVWuJBML0HGsDwOoLcMWaSqQzBCvXVrDrkcOc3L4Hi6uS8aEoV9/xMRweJ9nFWXgHg4wPBMnPysdhVojkZrPpX27mF5/9GYmYym/9D3DOhlp++egJrE4LlYumuvBMsv3Bo/iGQ1z3hQ0ZofoO53Sigg8DK+ZYvh3IZD1nyPAaONYzkfI5KpLMDV/dhEmWkGUJV76T8UCM/W2jROIaDqsJh1XhYPs4PSMhzl5UnNpPz0i6UFVksJoV4gkdGRgPxjncPka2yxBgvaMhwnGNcFzj5c1H2XTRUvKz7JTm2ukfjyCEoL+pC4D8ilICgyb++O3N1K/Ko3nXfrb+bguF1YUsPHsh/c39tOxpw95sBC/VnLeAS68/G1kCIUksem8Wx353mPy4RtgbIeLvZrjDiE7WNZ2ug3spbTwLSZKo3lgDC/MIqRoeuznV0WaS4FiYoDdC294+DjzTitAFmqaThYQPgUMTHH/4GABhf5yF689jsLWHT/36s6y97pzkZEQirzIbsyXIjodeZM2VZxMNRRBqIb7RfG746kXkVmQx2jnB/d/azHjbOAuvbkQsqecDz32fR97/HV68+3nO/8jFXPeljRzb2klOoSttnMd3dNN1dIiSulxKauduIJDhncNr9rH+JWR8rBne6Qx5IxzqHCMY0bhwZWmqVZsQgtZdPdSvrQQh8IXivHR8KBVRW13kYml1LiQLvwshiMY1Xjo+RCiaIM9lZSwYw20347AqDHnTa9OuqMsjHk9w74d/yNFnD7Bo42I+9/sv4M73sL91lNYnd3HiTy8TDURYuGE9/nGB2awRnuhl58Mvpu2rZnkNIW+UBesvAqDhyvlES91p63jiGuEeH/4To+x+5E8ExgKEvAEScSMaeMPNl7H445cibCZUXSca17lwRRn2ae3h/CMh7vvG88TCKjaXhWgonrKHy2aZxTcvo+OpFuKBKLHwVI6s2TTGhR89j9rV9allYX+Yf1zySWKRGMHxqfSXsgXlfHPz92jd00/bvj6u+odzOPDnFvY+foLsYje5DXlg1Xj8K79g7XXvYun5dTRurMFlN6d8p95hLz//3N1kFVVy9WfPpag65zXfF69Gxsf61iJT0jBDhr8CQhiBR7keKxuWlKKqRv9TIQQd+/o5/HwrvSdHqTujHFmRmQjG0xpnx1WNyeK7Rq6mhM1qYnV9Pl1DQWKqhkmWMSsSmqaT77GiaQItWQmoPN+JBJzYYvggj714lD989bd87KefYnVDIdKJQh7aamh+7jwP/S39jHQNs2j9VJUjR5aL/PJcOg52UL6gHLMlQjxmw9fhxTpDsCZcFpyLCund1cu8tZuw2kwoZhmzJUH30eMUrK3BDxBNYDHJ1Je4sVtNhol7KECuIrPt7gPEkmk5+WUeek+OAlBcl4vJJHPs3kNoqo6sSDRsqqV5czsm2cfW3/2ZnQ9t5itPf5O6Mwzhev/XfstY3xjrrjsPV14Bjqwcjm97ma8/93VMVgvLLq7Hk+fA4rRQXOcgEe3DO1iCd9CH2Rpn3moj9Wf7fUcYL3SwtDqXsqTJerhziG2/f5avPPZtCiqz39gbJ8NbkoxgzZDhTeaFI/1YzQqr6qfyGU0mmeEeL9vuPsBA23hq+f59fcScZmRJQpaMwvcA48dH2bqrj+WXNuDJn/JBZjutZNVOBdJsPzqALmAiEEsFOy2vzU1pV78Y/A1f3fAl4gmNjbecn1pn0XlLUvs4uuUIZfMryC3NRwjY+L4rUMwmLI4CbC6F7mP/S++JXvqbH+S8W6+ncF0F07uNZjvMhGIJwnFB5dlVtD7dQiQ4FWyUX92Ic0k9k4bseELHG4pzsHWUUX+UcFzDORElIgSV6yrIWlqMkCV0l4VQl5fBadcLjFzYuD9KUU0OYa9u1AWOqXzj/H/mlu9/iMol1Tx15xM0bliGyVFJNAzRcJSbvnUbJqthKpcVmbozK5CAP/3nH3np/q3IiszKS9ew9/GdfPrXn8fiKGDP4ydpdNjoHw+nBOvuP+3m6n+4hpUXL0aW//II4AxvfTKCNUOGN5GoqjGa7GyS7wlQVeQmGFE53DFGfCScJlSLlxUzoOuIwOT6VsbHwwSeaae7xxBdhdU5eNYbD/SZlYcQAn84TkKHAo+VMX+MBZXZVBW6Uus5spxc+2+3ECgqZNhmpkbVsJoV9j/RypWfv4V9T2zmjKsuZGI4gckkk1tiZrijm0RcJ5GIY7JM5W8WVBWgOGL4Jsvhazq2/iCBEida0sSt1WQz/+oFnPzTCRBgc5rJLnZjmYiRVZ9HWb4DfyhO13CQkeR1clpNWMo9OHJsFHisjPhjOEwKRefVMLG7F9/WrrRrXDovj869RuE3m9OKJz8b/6iXioUV/OJTP0XXdWqW15Jd6GLjzcs58HQz/tEwL9xzAF3TMVl1FpzTwFiPl6hFYdlnrmP+bVcQ7Bnmua/fjazIFNYUsuDsRiw2E4moyurlU23rjr54hFv/44OYzJnHaQaDzJ2QIcMbhC4EUVWjZyRIbbEHsyJjMyvUFbtpGwzQNxaiNM/B3uYR/BEVi8NM/oJ8Rk8YJs7BI4MsXF9JKBmUNOqPwf5Bxnp8CCGwWKPsf/oYDesqkBVlVpu0qKqT9MASiCS4YEUZNqvJGFcoht1lpXs4wERBAUIzonBfOjZIUVBl/5+NbLlzbnoXg+0TACRUnfHBIFt/9zSOLAdrrtpEcCKfyz9zM50HD3Fyxwmeu+tPLG3pZuPH38OxJ1uIR1QaLmtAqzBS2jVVQ9cE+WUebE4Lo31+BtvGWX7hPOYtSKYR5QniqkYopiXN34KJZGu6EX8MSYJEQkcD4qNhCiuzGU72XlVMMhNDU/ms0ZDK2TfegMWmIckKrftaAeg42M7C9YtYcn4dS86vQ42oHN/Wygu/fpo9j22lbmUdnnwPpReegWNpPToSJ/64lepl1Wy4cT09Rzo5vvUYV95xLXZbeg/a2hV1FNUUkyHDJBnBmiHDG4AQgrgukBWZntEQJ/v8lOc7WVSRlaqBm+e2YjYpnLWwiD/v7yWu6ZhKZUaf2o8zJ4vR7gGcT2jkXXRmar+hMaM0n2LS2fx/DyLLMsdffJEbvn4TDWc3YnNMFcVv6/fhdpjJc9tYUJmdMv+27Oxh3xMnWXDlAnpEeim+YDRB6OBA6r1/NExemYexPr9xXprRGi3sC7P/qa2svupKhju6OLbVqFR09ns28Jnf/AN9x0c4kGxO3v1iJ8XvWYxlLEy820fLgQFmUjQtclYX4AurqTKHhVk2QEUIQexkF6ZInO59AezZNsJjESQZCiqzGOn2Ub6oEPfKEiaODNF/YAChCdx5juTkIMGln74db38rI53dBEf9BCeCuHJcSCaJ79/wDaJBo/NO07ZjFNUWM+8f30ticIyuP27m4BNGs669j+9h9fXrOfPCZTz07w9w+eeuxWo24XQbJvir/+EasouyT/9myfC2JyNYXwfBiQhqXEOSJWRJMv7Kxt/Ua5OM2Tw70X0uhBCvXp1ljnUmt3vFuG4hUkEvc75/teWn+VlC1QmMhNCFAF2gOMzIdhNCGOOcvE4SRgcTl830hlSk+XthWpwRFQUuDnWM0zrgZ8gbYd3CImpLPEwEjEhdq0WhsTKbpm4vo/ubadp+JLVt8ap51DrMyLLERDBOzhXzKVU1ep7Zi67p6JrOyZ0n+NalX+fyz1zJLT/4SGpbp81E22Agrc+pbzDAi789SCys0vZCG7bzapguWoUQeJMVnIQQxMIh+o/vxVOYj2QuRlam/LlmqxlZCjLeP0z10mpMVjPv/+4tSLJM2cJCFqyrpHVvL7mlbtSdvfR3jBOPJCitz6O/ZQzFplC5poKL3rsMy7ToX0WWKMt34ktqofFQlPDRNnpf2M/u+7eyaMMy8qqWEx4zhKDQwVHmoWFJEfEyN35JwrS6FNdwN8OHu4gG5iHLOrouE/LGsDldtO5rpXVfKx2H2rn8s1ex5IIVyEr6/acndHp//wzbf/YUCTVBQWUBY31jnPcP76L2XRupKMuBZ/fwp++/yIoL5rNsUx0ARdWzc1ozvLPJCNbXwebfHeLkrp5XXOfMaxZyxtWNp7/TV0l7mkyx+Eu3O9V+Trn/0/zMPxrini//ObW84V2NRAumchInC6FPct26at4+YhVkBK19PkyKIRDz3FYkCSQkTCYZWZbIz7IjgP6TvTz3/Ydp29/KSOdQ2n6Kl9biC6u4bcZPM67pxGWJoktXwbfvSa3nynFxxWevTtt2MnVn2Bth/zOtWM0y3UeHiYVV7Ll2Cs6vJapImBWZcCxBtGuQ3id2IKkQj8RRY2EOP3cQXTdEb155PgvPXorVaWXeqnp6mrrZ+fDzhCZCCCH4zkv/SW5FAb7BAJ4iFxd85AyKa3PZ8tuDU9fFLFO4voq882uJKxKRhM7RngmW1+WnTazmlWYRjiYIh2L88dbv0XXIqMwkKzLF8+pRp24d4/zrcgk4p5qiCwEnn99H684TwHY8+R6WX3Y1CJngxFhqvZ6mHu77+u/434/eCcCCdQtp2d1M1eIq/GN+ttz52NR3sXwe1/7uK5gcVvxhlSNd41Q3VrPq4jz6W7w07+kloWqUzssje0Zea4Z3NhnB+iZhsZtffaU3gFkBLH8jwv70vElhS688Y1LStfe3G0O+KE09XsDodxqd1kdU1wWKbFgW7rz1h7z4282pz/LK8gj7pnViqSxEg1navHpsjI3vv4LjW/eRV5nLV//8TUyWqXssntAIRVRybCZGX+hgxxFDYNcsLaZ8QT6O9VX4dMOaEFN1ogdO8MfP3IViVrA6rIS8IaqX1SApEuhgsVvIL89j+30vkFuamzL9AnzlqW9QtbSWrMIsJgb87H6oicGOCVzZtlQwVkFjAcUbqokrEnGTIcj1hHGn9oyGqSyIpRXcl4CltXkAhD9+Gf/7sTupXFzHmqsvxmK3M9LnRY3EjHKJko4qaRgdLJPXWNPpPdKZeu8f9aNFB7A4ixntGaDxnEa8Q176W/qxuaaOe+Ll41x9xwdRozEOPL3N+E6qirjqfz6JmptDGHDpApHQaP/FnzjUM8z8s8/Fneui/ZBh4l56bg0XfSiTYpphioxgfZOw/pUEazIeM/X6jeZ0BbfQZ6wlZuqj6Z+/nbRVgNbn97P7R3/CU5SDI89N5S2Xpz5T5KnzPeemDWmCdaaJ3ZKbRWTGvs3RBG3bu4A8Fmy4iNt/clVKqErAsC/CgdYxoqpm9Dety4WkYA15owx3e5lXkQW1RuGCxNAYL37/AYQQmCymVDu4zkMdLNqwmObdzdicNk7uPJkcojFGV46L9333VpZeaBSfH+3y8sC/bUZLBlsFxsLklHsoObsKLd+OL6FDQkDCyKudjI52WBR6R4P4wnGGvREWV+fimvZ7Oe9DF/LSfS9T1ria4e4QgiBtu16gv7mX4toS1LhK2U2LmD5100cmiIbSJ3excJjAWBMdB9tTy+xuO/kV+Qy0Tvl9JdlE0KcTCUe55gcfJWftEtTk/ZzlMOP1hjn83d9y5Jn9VC9rYKQnwEjPVMBU17GpspAZMkBGsL5leCXhdqrGz38Jk/s63f3pMwXrjC0TPX6sE1FQDF+r0IWhHb1NaHrxKM0vNQGQU5qbJlhlWU5djWUXreTMq88kMB6g/2Q/OcU5yIoJi82GYlYgpmOJqZisCk6bCQlQIipFi4uQFQldE0Q1gRZLYLMoIEl0DwWJqoZwFALUEhe2bBuJiMpYvxGEpEeMykRC19n7n39gpMsQBtFglIY1DTTvbgag60gnlYsqaUtG0y69YBnn3LiRFZesIqsoOzURaN3dw+a7D6SE6iT5iwoJZlshkb58IhjHYTFaxYViCbpGQhhNsmDnzlaW1eZRUFWIEALfUIhlF19A96TAEsa4HR4HsiKhmBUUd3oXnHBn/6zvJBoKMtQxmLYsEogQC8XSlmkJBUmG9/7uX/CblJRQBVB0nZ1f+l/aktcnv2K2P9WT7yDkj+L02GZ9luGdSUawvkVoH/ARV3VAAgkaSj2pIJXJx8DpCsFTibOZy1+LoC6ozOYD37sYkJAkUJxmDnaMG51XgLHDQwycGEmtr797MfJbuE55LBIjHonz6A8fIbc0j50P76B2RS12t4ORnpFTbyhJKGYTTdsMIewd9nLNFz7K+IChbZ38rRHIVH/T0lTbNexmrOsqyHNbGQvE2HJkABm4Ym0VAKvq81kpBC8cGjAsGBLUvn8ZWkKj/75jSJJEuD+AU9WIhsJYTDKN5xj+f0mW8JTm8b7PXYfQNISaQNN0lkfj5M8ro2heKVowzIPf+gOuXBd2jwOT3cJoX4jay5chm01IukAkCyOYnRbycx3EEzoCQUW+k6IcB0NdXk7s70M3K5hlHf/YKJJJRlJMxCSJ8eoCHBGV4GiIx3/0MvFgLHUDSpJESX0lA639hP1hVl67LnU589wWxgJxvC29sy71SOcQI52ztUmT1YzVYUU2mVh33YVEAipmi4nme49Qf9tKokIgISEQjJ/oZuBEL84sJ5IkUTyvHDWeLMghgdlqYt6qstO9bTK8Q8gI1tfBwrMrKanPM4SOEEZgj0gKIYGRt1eZnSaopptsX+sygL6xMBPTqtdUF7mwzeG37BkOYrMoFGQbify6LtCESEXnKrKUFjU6yamE6Omama1OCxbnVH7f7oeOMdbrS8VWJSLp0Sd9I0Fky+TtJ1LrSZJErtuCzZJ+a8ZUjbGUH1dCkaAwx57M2wSBmPP1TPpO9qB73JhslvRzE4LpSrdI/QdleY5ZPuKx3lF2P76HwHiQhrMW8tGffgqh6whdYLaaKWgwqiyJZKPy6RTVpuc8JmJhjMZRU0h6usZnsxiNyScxaTohXxRnlg0kCV3A6oYCxvwRmvv8uGxmNJNM9Q2Lab//CP7REIPt49jdVvIqqtj2+6dS+3r/fV9BlBUhYfRO9YbimDH0yfZkjuhEROXP//4AZ3/0cupvuZRsXST1TdLMvACMGz7j0lw75QUuJEmid18/J59umTw5jjzzOBODRr7sosvOwFpbxskhY48F1y/C1uun+Ynm1C7nn70OT/FChG783rp/tpe6jTWMzTf8shU3X8wmrRAtroEENRfUIWrzkCSJph/dx+En9yDJEhF/hKZtx/DkZ3P5Zz9IyB8n4o+lSiceu9NIsSlryKOveQw13E3YP+UDL6jI5qJPXowAnjvYh8Uk4y7x4EtoZNqZZ5gkI1hfB+VLiil/hc/nMqPOJbhOJczmWuaymtIE6yzLa5LesRAjvij5HivzSjy0DQQYmRZYtLA8i/ry7FcY/dxjOdVYxwMx2gf95HtsVE1rU9Z9bChVaAAgr8yTtl1Tj5fADHPhJBeuKEOZcYLecJwdJ6c0wTy3ldxs+4xRner1FC/+fisTcUHxlefM+sxhMRGOJ2YtXxjJYnFlTlpAUWF1EY/850N84PsfYunF6Q2vZ16rmSNZdN4SHv6PP6be+0fHQc5PvV9wzULMpW5EXCMaiqLoGmabm+j0RJkuHw8+fIKy+XlsuHkFVoeZLKeFLKeFykI3T+6Zilqvu3w+h39zCIBIIEZuWVXqM1mRMVUUp8yf4ahKgcdGQtNTRRqKsu0s/NTlZBfnUHLNRhLJdYUQOH0xSrPsrFpZji4EzX1eQlGNaDyBy2ZJXbO+5tFpF0Rm+SUbcTfm48jLIhFO940CiBkmZoSEPuN+kae3ZpMkEjEByCDAZLUSFYAQtGw7SjQYpbiumIjf8GAXz6ugr9kItPLkO7DYzQTGpgSoljxWxD/lSwU48XILgQkLG9+/gk3LSnl6Xy+RmEaBx4aeTCvLkOF0Gp3bgK2ANbn+g0KIryc/+zTwKSABPCGE+MKbONZ3NjNqkL5S+gsYVXtG/a9gkjwNpgsIwdzCNRpP0DcWxmWbEaw16wGTvqUc12adU2rNOdOB/vIH1sv3bWX/k3tp29fKRy47k4gyNWZJApNJgvjs7Zr7/SyuTO9Y8uB3HyAwHmDFJemdE0/HfL7k/OUsu3AZiZjGeP8YRzfv4CM//gz5VSUIRSKWZaNlwIfQBbv++Wf4h70su2EjpZeuw+yLQTRBwhcjt8TNpltXIZvTbeqSADmhoycbhgvT1OdZhU5kk4ynIBv/iNco6Ydg0p7gspsZ8UexmGTW1BdQmGNP1r8txF5RRCia4GSPF2uXj96dPfT4Y5R9cCXWhUYVpYp8F9ubjMAps0nCNxTkxPYu4hE1VXiidFUpnrVrCCeFl1kyNOXx6RNHdSqq+pRMyxOXZ840p91bkmys58qZSonJK5/ylfpHw5TW5yErEr7hECarwkiyhKSneBE3fvMseo8dYsmFK0g0ziOwq48//vsWrr1jPZefUUFT9wRCCMLRRFoQVoZ3LqejscaATUKIoCRJZmC7JElPAXbgamCpECImSVLhmznQtyOvJdBopmA5VfrqGzVhlqb9nenDnWuZMiMQKT7D9CtmRAlrgThkWTHJMrluC4mk6bOu2GME5cw4zqud10yBNnP1p+98nKd+/Dj9Lf1cdPvFLK7O5chQiGjcOG5DqYf6suyUUBfC6Hl6pGuCxorsNG216aUmJgYmWHLJajSLhUgsgZIsDIIwCuy/4rhkmfd/70MExwN4Bye454u/pmFdHe78LOPaaDon+3xEjnXQusuIzH3x/z3Cu3NL6DzmTX33JrOMpgtkDJP/oT+3kF3ioufoMPGBAI4VxcRdFnSH8bDPLnTiHTbMretvfg/dh/bhqs5FKDL5TnPSfW+cZzyhTxOqBuUFLoQQNP3hMC1NU5M2s23qMeKym7GaZGIJnZZ+P4pJYc/jJ4zxWhRqVpehrClLCdXJa60PhqBpGC2uEQ+rWIpclM7LM8YkSdicZsrm56d9r84iFx6PFaEJgk0jlDXkoakJhjs7iMUjkDTOSpJE5aJKzDYLizYsou9EH0W1dSm/NkB/yxiuHDtIOlZrlIg/hIwhlAdbx7nxm7eQXZnL0/t68ZxVgRpJcOi5Vi5fUMCS6lw6BgNU5GeMwRkMTqfRuQAmGxiak/8E8HHgu0KIWHK9TMz5m8hM5a6514tJkTn266fwD02knt7ReMKoAiRLLLjqLLLnG2Y/ARTn2Kkucqc9nIYnInSPGl9vtsPCvLKs1PqTSEAgHKelz4+OwCRLxBM6SBCNGZpF32gIXzBOrttKTYkHNTalcTTetAQl20aZgPChQSKjYRKDQciysqIul5I8Z9qx5tKSzYpEnttKQtNJ6CJVJpBp677Se1mR6W8xIkfPveUCSspyKSzOZtQXxWySsVtNSSEydXVqSjzMK/VgmiHVF65byLjNQVEcXjhk7HMysEiSoKE0i7pSw/QdCKuM+aNIEtgtJkqTD9+qpTWpMa57z4a0mcOkMBs/2pZaFo/EOfzENvKrp7rQJFSd3mPD1KwsJRHXeOnBo2lpT9KJEcoWF6GXuiifn4/JoqQEa2AsSl7VYho+soqYJhgNxBBCYD4+ijYRxeIwoy4txeaYVoQBGDg5St/xdEuIGkmkrprFrHDOomJePj7IyroC8jxW6teU07avDy2hIbvMxLXZLgBf8yjd00ofWi0K/a1ThR3K5+fTd3I0bZuc82oY98eQNJ2upP/WbImx5Z7HeNfaGhyVhnm9ZtU8jr94hO5j3QAsv/gsJMlMSZ0DXUsw1jdKQrUQnIiQXehk271T/t9Jbv3+e1JfUTihs+DaRrTjI6ghFbvbgiJLjPljOKymjDk4w+n5WCVJUoB9wDzgTiHELkmSGoD1kiT9GxAF7hBC7Hnzhvr3g8yra5uvN1DpVMFLYsYRe5P+oB0PbmewZXaqAUDhsjoSpVOBMiW5dhRFTttTOGnKBUPrOZXPN6bq9IwZD2VFlshypJu8Jmu9Dnoj+MJxam9YZBRGAEImmWBSQ9H8MfpbxsgLq9z0gRWvqopOXg+n3cLZi6bOZe5rlL58+rl4h7yp10rSNKooMkW5jtT+Zp67WZJQ5jBXdw4H6Y/OnZcrBJzs89E7GsJlN6U1HM/3WFOCNW3rGddgsG2Q0IGT7Ln3BWqX1+Ib9jHWP0YsHKW0IY+x3oDR9BuIJP3nZpuJ2350Oc/+ai+eM8oRCY3Rff3oEZXjf25NHXCyvCAYQXbhQ0NISwyzqH04TPO2rtQ4Ji6oo7h+yvcrAaULCvjQDy7n/+54Ej1Zx7HvxAgLN9bQPxoiy2nBaTdzwYrylJa/5pqFtO3rQ+gQ6g/gLvcQSwa6KZKE/1AzWr8XsyWCK68ARVEYH5xqRn5KJqOGpwedaYYPdXDHMXLG/bjmlbP30Z2pz00WM+ULlzLWb/hOFcXLS394ijXXnoekFOIosxKLpKfjABx+7hBrb1jPRSvLUFWdLIcFy4IpI11NkZuJYIxRf5TCLPus7TO8szgtwSqE0IDlkiRlAw9LkrQ4uW0OsBY4A7hfkqRaMcNBJknS7cDtAJWVlW/g0P92zB1yM8XpBiq9luAlCYlNy0rZcXyISLKqzyWrytlTkHVKwSpJM6N/ZwuJ6c/08UCM410TVBS4Zpl2E9O0DE0XKX9YvmeqF6gkGZ91jxgC2J0sYyjmCFLyjYROOYk4Xea6npPLZ+53x4MvpV7LprmrQM3cJhyMse33h9E1HU3TEZpA1wSOxQXgsqDENTRFBmW2AA7FEsQT6X7CV6qNPP2To88d4OFP/y9FtUW0H2zHZDbRcOZ85p25lr6TYzizbZQ15KNGVToODjD/nGoUk4zNbWXetY209PvBouA6pwr/c21pF6q/ZYyyhny8vgjV59cRz7HhspoIHh2md0aZzl0PN5FV4GLjLSuQpp2fI9vGjV/fxP3f3ownz8lwt5f2I4Mcj8QxKRL1pVnUlngQQnDk+TZ0VU8J4cHmMSZ6/Xzo/12Rik7/9td/zuHnjOCqSz99OyFvCGe2jcrGAuJRjbE+f9rxJxGS8QuSpxVqjoYMgbzjty9QtqCc0Z4RGtc30rK7BTWmsvH9V+Ifm5rs9B0/STwaZ/vv/0zdmvnUfvxT3PzwN/n5pjvSjtV3vBd/n5+JwQB2t5VALEjzrpPUrayj/owGzIpMYZYdf3gOJ32GdxyvKSpYCOGVJGkLcAnQCzyUFKS7JUnSgXxgZMY2PwN+BrB69erX4lbMMI360izsNhOr5uWz88QIq+vzsJgVsgqyTr3RjAf57CIO6Q/7WEKnZcDPsC+S6jQyiWeGhiqEwBzT0BUZUyyB22YmEImTMCtGqSGMNmozScSMqNtEXCPkjRp+rVfhtdw0pwq2+sERozasb8iLySQT9cc4trWDknl5lC0omPsYikTTS11pi2xOM/mxBN7hINFgnKKGPIouqWc8GE/5FlPnOuN6y9KkVUBgShaNmCuC3JVrRFcPtRtBQAk1QfOuk5QvWglYCHmjhLxRyufn03FokGd/upuLPrYGWZFRpx0/rukUrC5juHmM6XgaCzAVOwkIIKGzotrDU/ccJBKIseS8WjoPD1K9pIgjWzroOT5Cy95ecordXPOlDZiSJng1rgES4wOG5vfsnTupun4xMaeZY10TFGbbiUQTDAVitP+5hfyKLEaTAUECMZWDres0vXhsasxRYzIS8kax2ExMJDVXWZEpqslBSdZdBtAiKlgUhAyViwqZGAwS9ZkpqikmuygrVTmqaVsTFY0VaKqO2ZaHGjeEn6IkaN51InXstt0nOTcYIuJ0ctuOH+M7cJK+vc0Eh7zEolnc85VnAbBYozz3i/sAozHBD7rupmssTHG2nbpiD7Fkj9sM71xOJyq4AFCTQtUOXAB8D8PvugnYkjQLW4DRU+8pw1+Cw2ZCALkeG5etqUgt/8B/fogbv/W+ObcZCibom6YsJubwbb1ed5CiCdrvPpi+zCRRd9l8hKqhBeIEQ3EQAtPKErTkg0afpl34R0KzBKuuCwLjYWRFxpltO60OOF2HBogEYlQuLsKRPbW/uSKZs4qy0XXB5l/t4/hLXZxxxXxKFxTMud+5AsSyCl34R0IExyMoVoWCc6rwh+OoyfPKdprThOaq+gJkmVQe8fMH+zADw386iaxILDynmkXn1aYd4+UHtrNg3QIS8QSdhztJxBNkFWYhRLqmPZkSklfmSQmbymwHfdu6iPuimB0WvMEQsklDT0jkV2Rx8cfPYt+gD5H0gTdWZlOY7+Smb5yP2WFGkiQ2AmpE5ciWDgBiYZXB9nGGWscoXVBAMKLScqCfRHyy2pMAEaD5nicpv24DpoIcDreP4Q+rDO/rR41pjPX6KJ+fT2AsTDyh0d7vIxTTiB1pIaEak63qMxdQfdtK5P4g4RMj9EwrKKJGEwx1pPs9P/SJM7G7DIuJtH7qGn7roq9y5IVDaesOtg9x2aduZGIojivHRnahi9E+P5s+eDUv/PpRTBYzF330PWidQeT5dmLI2JY20LhiPnR6aXmyJbWveNiXel2/poG+iSiDExEiMY2G0ixml/PM8E7jdDTWEuDupJ9VBu4XQjwuSZIF+JUkSUcxkhRumWkGzvDmU1RbfGqNbiRIX5uhreQ4LQQiKofb07UXCch3W9NskSZZmqWxns43W1idQ/OfTsxaXre0GC2p8E4XlM4s66x1R7smuP/bm5EVmY//7NrUGOdivNdL04tdtO7tJeiNsmh9NbllbpZfXP8KW8HJ7Z0cT2qiCYtC93DAWDs5NqMrDWgzrkFuiZvhLm8qQCi/IZ9xIZA0yHZaUBMaJllOVZsyKRJWS7rmoiZ0RK+f4WSrtqUXzEv7fKhtgBPbm/CNGA/v/Ip81tx6EcUNdVSW5rPzkSbC3ihWhykVeb3y8vmpsXuybfTu7iUWVpEVjT2PPELIG8TutvON579DTomb9XkOjnWNU1XoThXCtzotafeR2W6mcX01Tds6U8tG/TFOHOwnFEvgrs5GMWmgB2jZfYDe48nAIJ+fc7/z4VTBiMqrF3D0rt0IAb3J4KMlH1nN0WSLOHtWDtll+Xj7Rln53k2Gxl/owFNWS3Whk84XjePrc0wKrTbzLBOxntBmCdUl562mcukqAhMqNUsL6DwySHDCMAdn5ZdQt3ohizZuxDscIbi9B/eJMQqXFJGoy0FNgDIaobgul8LqbGxOK74hNyM9ixjpHKawupBwzPgeYskUIVmWSGj6277xRIZTczpRwYeBFXMsjwNzq0pvc15tPuoNxpgIpgdAKLKENj1iU5IM02By0dScRKKm2M1MXteMZbqwVGQGJmaWd4c8l5WxGWOdGZiUHCB57ilBOKvoPqCcwnepHx9BqLpR9N0kpdIoBprHyJpWVKJpSztbf38IoYPVPVXF6VTnnojrHHyuNfX+2LZOLHYTyy5uSFtvptYaGJ0qBBC3mTjYPj7n/j0zzsfusTDeO0gkEMCZnUNWdQPR5L69oTj5bmtKqILx3ab12hWGedg0TWs/tqWdeWeUp67dzz9xV0qoAoz2jFJ28Zk43XYaFxUzf10l8bBK2B/l919/ntwSNx0H+pmXtGLIskRuiZvB9lE6979EyBvEbDXzsZ9+ipqVRv9Qi1lGkSWOPtPC0LFhzFaFdTcsoaguL+18F6yrpGlbJ55SN1WXNdCDji2pjQUSOlmLnTzyj79N22bgeA8jvmjqnP2aTk5NNoH+AImYRt1F8/BNu6wRq5Xr/u+f+MWFX5xWiQsCqobSWEClqtH9cs/cboxpQjUeidGxvw1PfnohkrNvuAizo5TAuCFIg95I2iTRmeNg+cUXMtI9dc0DY2E4NIi2v59EXE9NYBZvrGHBOdUgNbL8kmXEQjHKF1WCEPSNhugZNWILJEkiGFXJnlaJLMM7i0zlpdfBqwm5cCzB4c50s9XMhy4YAmymZigD1XMI1tczFqELQxvllLUYZkUbvxJjM8a/5MOrOPKLfQBsunUlVcnoUkmWkCSJ+775PMHxKBNd3lSax3SyCpwsWF+del+xuIhEMq/U6ph9a84UkL3HZxfAsM3xMOsfC5HQdIQ3SsIfp+f4a88M0+P9HHn+EEc3H0wtE05BxfsuSR/gNOpLPcjTGtEHIoZvTy1ypBoR2NxWZGVqnQ/99+18bvEnU/soXzGPCDLFycmOYlawZymYrSYQMD4QYPvvD1M2vwBHlg1N16m5egH2Ez28eM9vALjk45dx1g3rU0Ns7vPRNRIiqzKL4SeNsoEPfHsL9avLWHXFAlwlLjoHA4zGEyz52BmEZfBpAkUyhHI4aQJ2nbmYovnlDJ2cqtM71jNCaOth8pfNh2gCTDKBqEZJbS4JVeOMc2tw5jrQdYEuBJou6DrUjjPHxUhTF9VL61NN4zVdYFleDDu7ScTjyPKk1qojyRLDHUOYbCZad53k8R8+Stu+Vj7x808bNZs9Dgqqq9FFXpr7YaTbR2F1NmFfFFeOg/6WMaxOM4VV2SkrAgLyK7KIBeP0t01Nupq2dlJQnkVeTQ4F05qbS5JEbZGbmmmTRKv5zddW9+3bV2gymX4BLGZmTcwMbyY6cDSRSHx41apVcz5MMoL1TWBOv+Bci+ZY9moRx9N3J4DjWzvoO2GY2CZn8JJk/Get8DCW1PwKPLPNrq/EdO0UTcdkUYiPhSGhE0uaDyNJM6cj28aCc6qQZ5i+zFYzEKVwWTGO8Qj9+9Kjl73DQcZ8UfKybATCcTqnCUrrXFrzDNRiJ0s+vAp0QXQoSMsTzdhc6dtF4gmOdk0QiWt4YhrBDi+K00J2kQvvUBBJF+S6jGskJRschIYmGG3qJKIJzJYgBZUVHN18iKNbDqYff1opPofVhEmWyXKYsZpl5pVkpRqbA4S9EbxJy0CB2cSG716MI9voaDP5XUpAXlk+V3z2BtSYRH9rO2u/8T4izO5nq04rvRj0RlOmXFmWaajLpy8cZ8Mnr2Lfb59HCIF3cIKc4hyGvRFO9BramV8IHPl2wqOGJaNlbx9Sto3sVaXEExpxXSciCTTN8B2HYxpCgMUkEU8IJAkqV9ez/LoNBEd9VK9fgrO6hN77m2i+72jaeJ1ZVgZaxxlpGSN/Q7pWeXJwnNBEkPI1C1JCVZLAPhqh+eEmcgotPPIfP0mtX76gnN4TvWz+taEtF9cWM9g+iNVh5cHv3M9AMko+v32Ixedfgq5NXbvsQifDnV7jO0t2o4mFVMYTAWSThJ4QWB1mOg4NMn9NOTfeuJTjO7pp3t3LpvctJ686G23GXNScnEhO/zn/NXJZTSbTL4qLixcWFBRMyLKcccP9ldB1XRoZGWkcHBz8BXDVXOtkBOubwKm0w7+Emdra5OvBtnFO7Oiec5u6jdWwwMhDjKo6+W4rBVl2sl0W/OE4o/4YuU4LK+flpz0YoqrG1qNT7bZiz3cQ8UVRowlKV5ZCUrCqus6Kj69h5fyCWUJ1Eke+HRryMCV0lqwqxToYpG1vH4HREKuuaeRg+xiLqnLoGAwwkqwFXFCVxeWfXpcmcGZGzgL4JYgoEigSOfNyWfz+5ZjNMm39vmQAkSAQSaTSk/xWBXN1FkMP95OV76S0Pg+h62ml9ACCx7t45HPGg9xit7DykrOoWbmWutVr0ZMNhkquXYhmMopKSJKEzaww6DUEVK7LQo7HyrA3Qs9IEAH0PdPK8PERcsqzCJa4cZ9VNeu7FIDVbads4QKOv9RFTkkjui8OWTZa+v1YzQq1xW7D1BiIM/+qBagRlfZn29LGbzHLCAFVN10IkSiP//efaN3Twpef+TYne71pxy1ZWUbbM1PmdHlBXuo8ZEnCbjERiiWQJZl4QiWe0PHYzWi6itNq5vO//CxbDg+kaixbXRbe952L6W8Z5U8/mEpxmjzJ53+9n2MvdjAxGMRsUTBZTZgtxoTj6EPbWf5PNxkuE02n94V2dE0wMaiyaOMqjr1oWEc8BR6Y5so328zIikzl4ipadk8V7h/tGSE01o49e8qP7cqxp6wnE4MToI+gmG207jxA9dIF5FbMS03qOo4M0rq/n5plxVxy+xkU1+YajSwkUo0tTLI0pxA9naC7N4DFGaH610eWZVFQUOAbHBxcfKp1MoL1TWDOH9Xf4Naf7ksKRFQCQEWhi4JsOwXZdupKoXV3L4d29HDWDVMVfWYFXUhGBC9AZW0ONctL0z62T6sTrOk6TV1e+sdCVFw1H12R8SejV30SXHF1I2dcvgDFLKPrgsN7etjdbAhUXdOpXlbM5Z9ZZ5hKJ88Dw1fZPuCntsSTur7TfdaKRWEiaT4e6/bitJkIRWcX1NcVCVmRGUz6VR3lHpgRmTxZWxZAT+g4cwrxjUzzT8uQhZzWc3S66W88GGfUG2VP62jKN6jpwoiubR4lMoevezqx0JSg7/7TSRbeugLVonC0a4LBiTBr5hcypulESozat4s/s9YIioolePi7LyKAvPVVhNUIex7YBsCJl4+z+2g/IV2iJMdOnseGU5HZtb0bSYa8sizyyz3YbCaiWhyLLGOfiBAcCJIYCtEbimO/uA5JkvBHVBpKPcxPlno8e1ERzx7oA+CM+gJMVhOVS4p51xc38ND3tgIQmtb9JhyIkYhrqY4yg82GwDz08EssvfE8KCvC0hckOG5cJ5NZ5vj2g6ntZ/aA7WnqYcl5Szmy+TAAZpuFhjWLiYYiREMBPAUhkCTcedmpACrjyw2x9d6pLj9LL9jIeP9U0X1HlpXsYjet+/pp3dfPhn84m9raXPI9tlNqpKqmMzQRoTRZeORNRs4I1b8Nyet+SvN7RrC+Dl5tLuqwKCyuyplaTwKTLFOSl/5jM8kSiZl2JQyf4EzyPTYsrzU3bs5i9jNXERx8thVnto0lF86bc1IwvV5sdr4Tx4yC+/GERsdAAH8kztBEBF2A02bCm9BhWjTnBctLjQfSZKTsjEMtuHAe82ty08YQjSc4mvRX94+H0XVBWb6LmJpIE6wzr+NcwVUAiqrN6pIyk+lBMQk1QdPWl6g/68KpFfRXL7Z/vMebFnCjRqd86fGoOtcmKaabwWNhlYgEkWQAzag/RseAn/7xqXvEH0vw9E92MtHjJ5gU2rGnW2jfv51IwHi/7sOX4EsACEryHJTnG0L5qn9cTzwSx+IwzOHT29zd+5VnmZgmaEq2dmPeaGja0yc4NouCHooSOHiCF/YcIqeoCIcnBwGULyzAOS+XeFDFWZWFGlSJTkTILXHjHQmiRjVC3qlj/OY93+Z9P/4nghMahZXZ+EYG0BMSVUvnMdDcTc3y+YCgZnktHQfbAcMULITOue+7mOzSKqIhQdgfx2SWefGeezjygiFw8ysKWHrBOpAUJMmC0KcKeNSuqCXsncBiLyCebAof9scouXoB+ZfVowKy03zKgCSR9Bf3j4Vx281pv5m/F4QQiibIEQizhKQqEhOSJJ1Gt4MMr5WMYH0dvNoU0eWw4HSk/wBfS+WlJ3d3MfPZf05jEblmhWd+8gRdhztTy2MhleB4KM1hK0lgdTrxj1pwMCNHc7ZkRUvobP39YTyFTqpnaKOQLmiK69MjR3tHguxvG5u5yZzaot2izDkrUVSNOqc1TajGVI3tRweJqFqagDre62NsMMBEIIYkSVhjCaSoRrw8fdIhy9Ks61tb7CLe4aV1WhCWtcSNPnl+yT+elfP58LPf4xcXfpHc0jwaN25AnWYtVqzK7NrEMyYxMz9PRKZfj/SLMMvMP2PjmXOv9sFA2qQCQEuIlFAFiAXjDJzsS70vWDBV9Syt5J4EVsdUqs2kS0AIeM/XNvHAtzYz1ucHYODECA1LCsmpy8ViVlATOsdfPMIj/34/R7ccSe3ysk/fTNA7FdDUeH4tmqohY7TIsuzspeeQ4WrIKbZjddgxWcxoCY2rPv9BundNxYPsefRxIv4wF3/sOpZdsIHxQeOLcGZb6Tj4M2qW1dDT1MNg+yDrbypnfGDqu3V4LGjTql+N9oww1NbKsa1TBSkWrFvIiZePgyTxwv/9iZySfDa87xqiIYn88iwkRUqV4/Q4LXOm0OjJyYhJkakqdM36/O8BVdeLNUEJKS1LkBBUKJIYMMvy4CtufJps27bNcdttt1VHo1F506ZNvl/96lc9sjz7en35y18uvvfee/NlWea//uu/ut/97nf7X8v2c9Hc3Gy59tpr6zRNkxKJhHT77bcPf+ELX5gV3fiNb3yj6De/+U2+oigiLy8vcffdd3c2NDTEAdavX19/8OBB5+rVq4ObN29unX2U0ycjWP8OmSNlj2f+358QkQhbf7uFsb4pQda4vpGmbU1z7mdDjoXKDUvTlr1S+7VjWzrmFKzThbYyXWsWYk6hagQDSYzPSOOJawLrtN/JpDAyRTWe+9VOmubl4SlwophkzE4zoarZVaVsvX72PtmcJonKlxUjFTpSQtncMo5e4MCc78BlM7OsNjfVzkuqysPjsPDcL7eTXZ2D7LHOqpAEYJYVll6wmvo1q0GalvojIBr2EWlqR5IkzHYL889aiNUsk+/R6T85gqbp2DxWTHJyOwkKVpVhWV3GhC4wWRQ6Bv3IkoQkgYwE8qS4lZAdJoprc9B1ozKR7I1iFUlvc7IwbtTrNR7oSR+vGg1gtqggKdhcLuxOQXZhLrk1RZhtFoaPd2OrLCK7IAuLWSGmamjTbrTJKyBLEnarybCyWE1c+8UNbL7nAGazgsmqkOOwIJkVDrSO0jMawubJ4cx//yjej/2A3kOGBikr6ZOcRJcXSo2IWdtgkPZpQWqRQILKZWvZcMe7mTg4xsTg1ORAknUiySbjf/7fB8krL2LReUYUdsgb4/aH/p2O3QfpOGQUspjoHyC3cipad67c65n5sCaLiZoVtbTvN/zUEwOjPPqfv2D9TZcQ9thorMyh1xelJMdOTaGb8YEArmwblmnt4f7ei+4nhWrZHB/JmqAMXeeNEK6f+MQnqu66666uTZs2hc4999z6Bx980HPDDTf4p6+zb98+20MPPZR78uTJY11dXeYLL7yw4eqrrz5qMplOa/tTUVlZqe7du/eE3W4XPp9PbmxsXHTDDTd4q6ur08xDq1atCv/jP/7jcbfbrX/ve98r+PznP1/+xBNPtAPccccdg6FQSP75z38+d8WY10BGsP4dMpcWe/jpvYi4SnFdSZpgHe15hWJXr/EH33FokPu/8TzF9XnY7CY8ZoVF59exp3mMqoWLGJwhRE+luSuyxIg/XajWFbsxz5jthyYi6C/3MDxklK3rbx1LdTRx5drJnSZYhRBYWyZo3tyeto+8Mg+SqsGefmylbkRcp+3FDqrPriKRbWM8GGPEF8VqVlKmdO/QKPsef5Jl15xN7kQNNkkyiuVMXi9ZIj7uo23vSYrqlhMLp/tEe45sp+NHxoO4bH4Z1x6biljdd9cuQt4opR9MT/2+4II6HDYz/aMhDh4b5HDH+CkDXCRvNK1JvHVff7pvUNJp272FvhM9s7bNKytk0aZLUUwuas/YQNX7l6NZFex6gp9v+Dw/af8lAMc6J+id5nJw280EIiqyBBsWl+BOVmGyu61c+sm1qfW8wRhbjw7iTLaKiybV6fO/9n7ufve/GsOT0ttUdDzbSt37lhFWZNBFqmITQDRkPPecFUX4O6MwTbAqSrqVcqx3CHeujcB41IhmLnRRetV6lB/8ES2eYKx/mJyyQZCLkCSJwHiUyz/7fp7479+k9pGY0ef16JYjfOSF76PZbWh9w3g7B9nxsydRYypjfX6aHznOvBWluBWFX93xJIGJCPNWlHLe+5aT9RZoE5c0/5a80jqaoMQkxHCyLO3roquryxwMBuULLrggBHDzzTePPfLIIzkzBeODDz6Y/a53vWvcbreLBQsWxKuqqmJbtmxx1tfXx09n+1Nhs9lSN1wkEpF0fe5TufLKK1N+h3POOSd43333pUxwV199deDxxx8//VzHVyAjWN8iCF2nbX8bnhm1gSVJYsHZC4n4wnQdNaoJnff5d1F70WosbgcWd3qaTTSebqK1l3tY8rEzkuqSIWB0jPqUJrsZt8PCee9bkUrhOa2xztCK7RaFmhLPLL+TfyhI75GhOfcxc11zXKN1cztWt4WGm5eBABFRkWSJI/93wMgFPTSY8q1ON18f7Zogx2VJCdajL+zBN+zj6BN7IDLH5FSCktosLvnk+7HY7PQ1p09epms9vmEf3Uc6qVxSjaZqhLwREqqOtdtHrDJr+i6NaxHTaP+/g9Rf3kCs3Eg7kRMapqiG5jajCWlWcM5MzKb4nEIVoOGserIKnbiybXiHgpiHQ1CVxcnfbwbAnWc8NwKHW+h69gCeqiKy168gFJVSaTRbjgxw9sIispwWJBmUpDluzBflpePJ+sUzfBXmwtzUa6MQ/pTQsTmttNx9EHeeA6nYjsmSMLrSpNrSCLREAmeBEz2ukQjH0eM6MlAyr4KEqpKIJ6horCHoiyApUHNJAwGMoLBVV60lMDBG97Futv3uz2y69QrUqGEy9g9LLD5vGUc3G9WYLPY5fKSyTFwTUFyAu7iAq89YyK5v/p6qpTnEIyrHd3STUHWC3igIoy7xXPnSf49oghxePcdV1gQ5JonZ5qfTpKury1xSUpLSDquqquIDAwOzcub6+vosa9euTbUuKi0tjff09FgsFos4ne1fidbWVvNll11W39PTY/3a177WO1NbnclPf/rTggsuuMD3Suu8XjKC9XUws22crgu6hgOGfypZDk8XUF3kYro/bS6xJAGte/vQ1Mm6q2AbDpIqy5S0AMqy8VUFxwLMWzWPgfZBiqoLaT/QzlDHEPVrpqoNFS+rI+Z2EwOYUdTBNSPwCJsJn0geZ4YOKovZQioa1zjWOY4kkSqkPpv0/ZgUGYd19q1mtpmoW1VK24z8VtksU3JWJU6P1dhVQmfgxS6Ka3NAkvDv6UOsLgW7sc8lH17F0V/vT+9FOmsSMPXeP2z8lqLBCA6PhbA/Pd2mrD6P8YEgkUCMFReVUr+mnP1PN3P1Heuxu638+NYWuo4Y5sfgRJDB1n4ql1TTsrMnVeDCe3KMisWFTHp6h31RqmxmAsnqPJ3PtVNzUR3qWISevX0k4hof+sFlYDMx5rTSf2worbDBK13fSRxZTm77fx/l8HNdDCWjnntf6mL0wRPs/eNW8svzMTuMidZzP3qYkzuMnJX1Hx6i6tbLcdksTATjKDIc6RzHajb61DaUZSNLpIQqGA0brCaZqKphHwzR+2InZfOr6DvZxbM/e5D3fvsf6D1pPKc9+Q4CY2G8g0GCY0O88KsHZ43dPs9B9vrluBoLsATjtN5rBBzVn7UptY7J5OeFX99jfJuOCcpuuhDUBB17WxjpnBpb09a9DHUMTbkazCZK5pUy0NpPIq6SXZRNYCyAltBQzAq62ZR2SSOKiTNvvJiTW9PT2HJL3Ky5Yj7ZhW6s9tf0zP+bIRCnNVBjvddv0p6rmu1cFplTrDdnNdzXmrI0b948tbm5uamzs9N85ZVXznvf+943UVFRMTvYA7jrrrtyDx065PjpT3968jUd5DTJCNbXwUx9QhNiVqUlgKqi07MqbPv9oVRqwSRZhU5806oV2exGRLGu61hdNkITQdonpnpWegcnqFu7kLadx1/xWAsqstJ+PiU5Ds5aoLDjxFTAiMUkU5BlmyUMY6rGofYxhpJ5jmZNR9vZh9lpRl8+1Ss1enIMvdMLQhjFCQT8+aUeLv7EmWn7K67L49JPnYWe0BG6QNd0vGNhDgz6iSR0Iklzst0kMzCtILsz20bx4kLUpDnSp0gs/shqTtxzEDWZwiHPqEMcjqnkuK0MNPfR3WQ8MMO+IJ5yC7nuQkSyLZymahDXiSQnJMsvrseZa2fx+XWpfd34rfex86GXp3Y+rajBJP7RYKpeLhhaX1WRG3+y960aS9D82NRv2p3nwJ5lQ5IlHEuKWXZ+MYdf6EVLzI4E1/W5J+L/8sTX8RRmU7YgzOEX2pLnGMPhqGHhOQGu+8o1qYfVpE8RYN8D26i5/lyEy0KWM9m0OxAjR7bQPRKieySEeyKKyWEmYZ0aj0uS8D7bTk+yOP6kb3X5RWvpPTlmNCdvGSUxrem9EFYkSZr1gFXMU/da3GWhdn0V7dN6wwKoqovF567g6JYDbLnrMdYFw2gJLU2oAgy2D1K1uCplwUmoCUzJSHRZUfAOeZFlGcWkoKka3qPt2BdNfb+KLHHGu5ew7rKFmC0mrA4zFpsJSZYY6/OTW/qGWAv/KkhI6unk+hnrvX6qq6vV6RpmV1eXpbi4eNY+y8vL4z09PSl1v7+/31JeXq6e7vanO5b58+dHnnvuOfcHP/jBWQ/mRx55xP3973+/ZNu2bSftdvubkq6UEaxvAH9x64FTpIZMx1PowZntJOSdnYoDcMaHL6P4wjPYOObFkevGewprotWcHtGqKDLZrnQhdHZjEW7HZDWiqZ9lLK6lhCqASOj0HR3CZFEoS+jIZgVd0+nr8qZNCoDUg20uJvujKihkF7mITitiALMt0CFvlO4/HKX6gtqUOdUnBCXvX4Y7pHLst4doe/wkZbetTG0zMB5hZPcJxvvHyCvLY6B1ADUax7GwkET+lBnTIkHg+Y7Ue+9gAN9wEKEbkwRdFyQsJs756OWMdw3T9PQejm8/xpnvWse8MyuoWVkGQhCNJdjSPDUZmDyHwuocLvvEWrSERkLVSKg6mqpRvawkzTLQvPMoex7ZwqrLNhDxyyiKF1k2oaouhHBx+5YfEOwa5He3/Acms4mvPv2v1J85HzDKQZbOm4reVswy2YVrOfTcEB0Ht+HMtuPO8wCCWCjGNV98N431RRztNyZqk1W3JiOPJU2n5bGTKCaZinOriZa6kRMaXU80M9475QJrOGs5PU3tVC5ZiHdYp/fkKEXVOZitCjanmWhIRUuYWPuBCwiM+giO+AgM+/APjiOZZSTAbJIwKQr2M8rI6pjAN23/kiSTX1kBHADgyBO7qV5SPet+srls9J7oTVvW09TD8otWcHSzEb2s63pqhtzx5E4ak4K1ONvOqro8nDaz0W16GkKI0+649PeCIjGREFTwyuZgXZGYrRm8BqqqqlSn06k///zzzvPOOy9077335n3yk5+cVe7v3e9+t/fmm2+u/drXvjbU1dVl7uzstJ177rkhk8nEqba/5557snft2uW88847+2Yf2aCtrc1cVFSUcLlcYmRkRNm7d6/rC1/4wiw/00svvWT/9Kc/XfXkk0+2lJWVzanNvhFkBOvfAXOK1RnSerC1h5ySXGqW1zDen/4bKF1cTe6m1YafKDsLq9VMvknGl2xnJnQdEYnS98g2AvU3Jh+qU/Qd7eTQt35DxeIqbvrW+zFNa3J+steLNxgHCcwzmp8ryQdxIq4x0jqGJ8+ZKryQjs54TxN33TolsEj6hjd9+OJXvRbyHCaqgoosQq3jOJ0WYjk2JIwOM4rbirtQxd8/xujTcUw2M7LVjC3fxWPf/B1DHcZvrXH9Ipq2HSM0OI51mmBV/SH69u3B5qmmsCqX/U8103U0/ffZ8J7FVL//EqqBs75+Cy7ZqLismJVU1HTzrl5iO7rInZeLe1kJOUlhVVibS2F6lzjjcsw490RMJTgR5MV7n0wt2/S5d1GztBbX/Dx8QmCpr+TWn3yK9deeiTt/yp/rznemBTtVLirEO2xoyt4hY8IT8gaJhQ2NeuE5i6ipyKXXF8cbihPp9aN0+xCFDqqXFGP2xRgkSiKmcvQPf6b24jWYExYm+tPjSjTNw8Ufv45IUGZSag0lLTm1K0tYcVEDx7d3Yl6zjolQuvm9wGMlHNdQEzrhWIJwDCovrOPIrw8k+9f6SMSjTAwPUbGwgp7jPVQuquLIliMs2rAoLYWmoLKQoY5BbE4bId/UBG+0ewRnjhPfcLpb7fBTe1n6iWtYvaKainznqYPKJOkt41udRJIkTZHEwCmiggFQJAb+ksClSe66666u2267rSYajUrnnXee//rrr/cB3HvvvVl79uxx/uhHP+pfvXp19JprrhlvaGhYpCgKP/jBD7pMJtMrbt/a2mr1eDyvmG97+PBh+xe/+MXySWvIpz71qcE1a9ZEAD73uc+VnnHGGaGbb77Z90//9E8V4XBYuf766+vA8PG+8MILrQCrVq2a397ebotEIkpRUdHSu+66q3MyFei1khGsbwCvpZD9nNvPpfLOSpSE3uM9mK0mIv4wjec0MtI9xtk3XoM/lD4xnKyyNPTIi3RsO0LrrimT4/X/ePUswRoY8XHkz/uIjPno3HMSxWzCleOiuL4UbyieKnFnUiTy7WaGX+gAIRiY9mA1W0ynEKqGtnbwmT2zlpssplmCdS5ERKWsId8wF+sCoQu8I0HCvhglZoXcC2oJRNTUw7rr8HGOPnsgbR85JblMDEyN78RLx1m0YRGPf/EXvPuJ7wKgByNEW3rY/eg21l1vIR71pBp7n4qYZjQtH0kKEEmScOTYOPJ8G2P9fhaurWTxgsKpa8HpFeFSY7OtYCWrG9Cqcw2feHI/l9524axAL3eeA1mRMNtM5Jdl4R0KUjIvNzU+WZZY83+fZ/vvX0SxmNn9yA4a1i1kw+ISju7oYst9R0DA6ivms7TW0Hw3R/vZcs8LSLKMK38e8UiCsoY8+iabqAudWKCXfY/t5cxrLgWmcmUtDhOXfGItsiJTMj+f1n7fLMEaiRt1iOPTgqKidhNma5hjm7cz2DaQWr5ow2KcA+O07jN6pB7beoxFGxZzbOtR6s9ooGWPUdZQjarMWz0PNarS3dSNM8vJSI9hRVDMCna3neB4kHmr69m4qJi8gr/PHNS/FLMsD6LrpOexAoam+oblsW7YsCHc0tJybObym2++2XfzzTenZjPf+973Br/3ve/NOuaptj906JDjJz/5ydzRekmuvfZa/7XXXjtn3uGPfvSjVBDHyy+/3DzXOgD79u17w/ytp9Po3AZsxcjtNgEPCiG+Pu3zO4D/BAqEEO+IRucd+/vSAksslVnkzjCnRrq8NO/oTkXTSkDlkuJZxeUFsOkDK0iouhHpimDHgy8R8o4jG6GTAGiaYbXoOJjM2Ruc4Oo7Psb4QITs4rmj6SMTwTShCjDcNkA8lB7Q5BsyhELr3la+uvFLAHjyPWy89QKKrr8gtV5CE0QSOr2H5/gdvg7rmFGkH7qHA7T0+ZEkMI1FCDzfjqRIyLKMpEhcfMc57O0NcHx7Zyo9YxIdQSAyY9kcicCamm710XWd49uPc/nXbzbeh8Ic/N7v6D3amdwHeIeCWOyzfyIz+1irvhj3/Xh36r0jy0rYZ1xjq3N27MjMSzXijRCJa8iy0UpQkSXOuvlcll20Ai2hoSc0NFWjcnEFXouVgaQ/XtNPMaWTJOrXlNN3YiQV0ezJc6Rpsdd88V2sedc6ACLRBAfbxgCBap8K5Al5wyTiKiaLmbwyQ8DanHbiyeIfk2UKFUWj59geWvecZNGGxez44xOsfddlqKqDvAoP7/7SuWm1pCvyXTQl+7FOEowmcNmmrrUsGYVWam8+k/6e9jTBOj7gZfF5K9n/5C6qlzXQeaiZY1uPsuyC5XQcmkrHEkLQuncqz//krpNc+8WPIYTguV/cS9gb5pKPXcpt/3UbVodtriv5tsEsy4MmIYbnqLz0F2uqbzaPPvpox6uv9ffF6WisMWCTECIoSZIZ2C5J0lNCiJ2SJFUAFwJzV4F/m/L0T3ajTZtZ13xoBdoMzca3q5eTPekmp/d++0Isc3RtqV6ZbqX55ad/QPuBqQfEiotXsmTTMjoPzX1/hSZi5IfiCFlCtSqQTI/IqZ9t/fnJR/6Hke70giS1K2bbJv2jfo4+f4isa86b85gzeSW56u2fO6DKnIxQtphkYmqChA5WXWdiYKrEnTPbhsVm5uwbl3L2e5YQHAvz8oPHaN5lTGBnNroGCI3Ntt5UNFaixuI075qasOq6jqUkH7V3iLYHt9CUTMkAKKqrZ2IwwnCnl9xSd1oNWUWWMMkyiclcuRkWh+mmxJkFOeYShO2DgZRVYJLVK+opzZudJymEYMuhfgLRBEIIxvv8KLKE3WnGnj2lJRbX5nJyx9Qkf3rEtDzDpB9PaHSPGGb9rNRtrbPl13/kiR/+H0vOX85N33ofF95+CYrZxMv3nyAWjjPc7aWgwsrzv7wf75AXgI6D7Shmhed/9QCrr1jHe7/1sVn3vEmRyPLFCNkUTBNR1NEwZpuZ4Lwpp2aOy2q0KTRbWfvJazj+532YbRYu+dhNxGMWYtEEl39uCeP9IeafvRGLTeHAk09RsbCCYyOzlB6yi/JYedk5jPUb13n5hWcz0tXJbT/4MFb7a+v89FZFkiTdSKl56/iI36qcTqNzAUyGn5qT/yZ/pT8EvgA8+qaM7u+UOU23M5jrgX+6zNS4ll6wnMs/dzUrL13Fty79BrqWdDckD6HGErT+1khPWP7xM5BdVnRd4D5zIYrZhCPXzZpbLqR3XzN5VUWM/OrPM85n7nE0bjiLsfuPgRBYnGbqrm1kfn0+6/778tQdoKkav/78z2nfNw4YZkZJlo20I1nG6rBx6Lm9c+5/yfnLASjOdXLZGicvHxtkVBc0XNdI84OGVSfkjRIYCeEpcoEk4cp3sunWlZx5zUIjulQCHGYicY3jPRMEIgn8w96047iLcjjjH67nvlv/g3mr5tG6z9Bi8soLcXtyCHb0U1RVwaKNq2jbd5xoMMy0MrKMdZ/EOzTG+/79A5TOL8PitCBJEkc7xpgIxtMadM9Em6uM1gxO15VgpBpLnLO4hC1PnKDtyWbuSxZbqF1RwiWfXJvSDAtrcqY2EhCbVp/YYjOjC0Mr3PfYLv7w9d9xzp2fx9buZaLHh81tZujkfk4mI8x7T/RywYcvoiIZKFRQnc3Oh43vJ6GaCfmmGseH/WFK60sJjAXY+/jLlCypoPbG8zEpMourc3DazOxrHcXX7aV/b3+qWERWkZO8CjeqRcEaUonHtVRNaSEE5QurWXHpJclmCPHkqRnnGgnEUZQEvSe66D1ByiwMkFuaz7obLkOSHWmNFAqqyzj/lrPeMUI1w1+X0/KxSpKkAPuAecCdQohdkiRdBfQJIQ69laLk3ghmCiJpjueiNEcM3ulepen1TQFkkwKSxKJNy/hd+I9oaoKx7hEOv9DDxGB6oFxCkvD7k31CzVY+9Mz3kDWNkM1OyVXrUU92wAzBWr6wgi889C+IZHoMwniYdRwcZs9jhh8r5I2ypDYPp2e2ySzs88/qVTpJblnenMthdqSww2aCgASm9Is32DZmCNbJ7WwmsovdaeIoCyjKthOMqqx69ttISCSApoCOhOELvf6J76IMjdL6LqNC0Lob3kX7E21k5TuIBhzkVS4mHonSsvsYAycPEPKFkJDoOtpByBtENt2CdZrJPxhLMBGKo8gSyz5xBtr0b1hNcN9N3+TY5idQTDKyolBcV0zjhkWYLGYu+sTlWGyThe9PeYlSpEVnB2I0P3o8bbv2AwP0HR+hYrFR0i8R18gtdeMbCSHLMtFgnIqFBQTGwpRdNI8th/sxm2QOPXuYrsMdZH37HsrmryI0EcVsiTI+MMKiDYsY759gsH2AjgNtlC+uQpIkVl0+n77mUXqODTMxGOHij9+EFo+jazqxkI8tv3k6OWiJ4kvONDRPYPRwlOpCF8GIirKsmIYVJXT8/giR8Qi+oRD648248xy0nhzF6jCTW5mN7axyEnk5XPKV22h7Pr3qlt1tBQI4s6zsevjp1PJjW4+mhOuKS9bjH5OAdItARWMF889a8OoXPkOG18FpCVYhhAYslyQpG3hYkqSlwL8AF73atpIk3Q7cDlBZWfkqa781mKWxzilYT6949FzM1FiVaYJGVmRkxUJxQxldR149Qj5itpCfZ035w5yNtdz21Hf45aX/jKwofOXJr9N3so+8ytkViMw5HvY/244W1bC5LDiy5vZDmaZpbHa3PdVRBUli2bvXs/V/H0eLz45sj0dUIoEwdreRo+txWIAQ1mIXDZ9cgyUYJ9zjp/XgABWLi7G/SrN2SZZwOyy4F1QAEI0lOHhgauIhRxKoXXGuuuM2BlvakJUEZQ35eIeCqDFjfJ4CF/PXLqC/pZf+5vRJy6nmj5ouiFlMqZ6kABazklZ6EsCV7eR3XzGac9csr2XRpmUA7Pjm3bTtbUE2KSgmBUmSKPuPD1J6ySrjuKTfYqNd42jxAazOXNS4cU0KKrNo2dlDJBAjuzyLmEVJma81dNx5DvqaR9E1QWFcI5r0k1aes4RLszzoXgehCWNCJoTCaM8oPU09LN64mEggzI8/9N8sOGcRhbXFSIrMVf94Dp37+zn0bCvB8WFCYQUtYcGdl801X/goQo+jOBTEWBwKzanrNOyNEEweO6gLam5aStOduwAIjIaxJPNkY2GVgRMjeEZDFCwpond/PyW1uWl+4kSyQlVgpIux3vTI7WNbj7L8opWoanqg3iR1yytwZb89g5Uy/O15TVHBQgivJElbgKuBGmBSWy0H9kuStEYIMThjm58BPwNYvXr1m5KM+1dn5lnMobLOaQo+TZVVm1EubmZR86nlr114xzVBWXk+7/7y9Zz3wQsprC2mceMSwhEVk1mmZziI224m12OjfSREw1UL6XimlQXvWcJU2/F0PvObf+TeL95N24FWepp6WLRhEdFQjIVXnUX2+Wv40HUbeek7v6Pp6fTI4Mf+6yGadxzn+m+8F1lRKM93crRrAkmWiSYSRG0mqM9FfbGLp+/cydVfWP+K5zxTAMVnXEeTP0b7fiNA0OapYmJQxemBkC+aWmewtY++k72U1s9uRvDMT57E5rZTu7IOxWwiXFQIpsn0i1e/tS3TOh7d/6+/Y+jWH2Jz2iioKiQeiuGdZsJ+8Ov3gqqx6so1s/bcvvcY2//wDEW1xay87GKc2dkMd3kZ6fYx0O+j7NIG/JrGRN9hEJCIq9hdS9C15PHDccgxJklPfOkXXP2HryFOjNKxOenDF1FK60vRdcFw5zBhf5jG9Y3J9m5GIZCxbh9P3rULoQvM5ij7Hn+GM666hEByLpFV4GSiI4Qa6ib/0npUmwmXJvBH1DQfdFjTyK3NYTxZG1mNpltr/KNhbO3jmJOTt7xyD2PJ3NbB9nHK5+cTGE/vpzvJwWf284HvnUn5glpsTovxz2XBmW2joDxrzm3ezsRUTekaDuZEVM1sNytqVaFrwmpWXjGNJcPr43SiggsANSlU7cAFwPeEEIXT1ukEVr8TooKFECz8lFFBaDLpwbe5k+BQ0Kg0ZAT30nt0Dz3H2gGRNLGCK1tC08yGCS/5tHzPNzbhnlHMu7i2mNHukZRm/ItP/y/rrj8bR447TaxZGgtYUD5lEhUYZQJtMS01NpgtCrM8dt7zrfen3ssmhf7hIJ1DAcIxjXOXlHC4fYxwLEEox0bpTUsY1wW7To5QV+IhP8s21V4MMNutBH3BVIm8yZzCuosMjSsim1j11Q/gKc5h5/89k3Yt//jvD9C07RhLz19Gw1kLmVdfxZh/StABhMbD+IdD3PvlZ2hcX40738Hx7Z0oJgWz1UT+wnys1TnIssT8iqxUbVubRWZFbR66EOhCQI4D+awgJ5JBPc5s2yz/5qQxYs01lwAKYb+PvuPHSMQSvHjvllTuJ8C1d30G59J6wDBjh+Mauj9I012PYHXN1u6laf6BeDTOeL+R/tPf0k/D2vlpgrVtXytP/vej/PRjPyYSiPCROz+Ow21n893Ps+9Jw2c91D6IhMpw19R2VrcVv6YDEmP9I/QnCyUsPu8cSuqzKazOoWZ1GRMIDj65j4nuYeP6NOSxIMvGwEsneeJHjzBZxLxmWQ02t52mbU04sqY0vM13T5WQTGg2wt4Qz//yPta+ayNmRxXmpObpGw7hu/sgdWvKOHlggKozK1Ab81PC1Wkz4blqAcWDQfp3dBPzRTFbFdSYRm6pB5vDnGrMYHdbmBgIUFidjdlqQlONFJ2ssiwKqooZ6Zqa09tddm78xk1c+ZmLMZkzWYWHOseLWwf8JZouUjfhke6JinklnoFl1blvSLrN+vXr64eHh82apklr1qwJ3HPPPd2TOaqTPPzww56vfOUrZaqqSmazWfz7v/9771VXXRUA+PSnP132wAMP5Pn9fiUcDh+Y8yCvQEtLi+XWW2+tGhgYsEiSxJNPPtkyf/78tLyuV2obpyjKqvr6+gik57e+Hk7njisB7k76WWXgfiHE46/3gG91dAGhGR0y4nGNwGg4bVksFMM7lG6qjYXjqPEZD/I5qi5JikxiRnqIJCcDOaYtUxGEZ2hldiA6Y3xixoR+LpOmrgvCydJzB9pGicQ1nMmShpNt1YZ9UYZ9US5dVY55RgWnmeksMxEC6j9yJcs+eAl773qUI4/tTAmx49ubOL7dCIa55F9uoujys9O21ZIBLr6REF1HBulvSTexWhcV0DdkmD0jJ0bRQnEkSaK4IY+KRVNtxCiGgnwnJ3b0YHWYyClyEQunp+oIYVzPRMKCrIDDk4XZ5qK/pQVXrgt3ntuowKQJVq+qpnxxWbJikIymJviA5wZ0XceV66K4thhd14mFVTbcfBXjvf2AEVQzs8+k2WLGnechkIxoNlvNdB3rxj9iRJb/+IM/wpPvwT86FfG87MIzUFUL0++KvEWFTMYvF84rwzfoY+kFawl6dRZvKmHhhhoAmn77Avd/7EdpY9BlCd+IzvKLV3Lo2QNoCQ1ZkdF1net+/CmO+DR8vV4cVhMrLmng6Z8YJlyhy6y6fB17H3+JobZu6teV4xuZ+j2UNeTTtqcPBLRv76JkNIx7WRFRt5lETxilPItglhXPJfWYFYnhR09Q5LLS3zqWSmuz2E0Md3nRNcFwpze178qzK3GsKOaKgtv49Qf+DYCGNQ186Y//TH55PhkMoXqyzzcrRUDThTy5/I0Qro8++mhbbm6urus6l156ad2vfvWrnNtvvz3tIVhYWKg+8cQTrdXV1eqePXtsl19+ecPw8PBhgGuuucZ7xx13DC9cuHDx6zn+zTffXPPlL3954Nprr/X7fD55rl6ur9Q2zmq16idOnJi7B+dr5HSigg8DK15lneo3YjBvBfQ5Ik1McxSYP5X59nQwzRFlqutzWWxeZ9DYq2zmSwob5ylS+0ym2Tespr66RUkIEA47Cz99HSs+ex3Rlm5O7jqJ2WpBNiuExwO8/LMnOS/LiXvdstR203OGZ04KlnxkNb5pw2nb3ctwslDFqksb0gUrU/7rWDhhVIyalhKlKD7C0yr1eIcMX7GnYKq4xGTFJgB//xj2VfOmtpfN2Nx2wr4QwfEgwfEgJouZ8z54C75RlcD41LGmm0PXXrsJq9NO8bwaXrrvOXJKsrE6bbPSq9x56YI1ND7B0Y5nWLhxIyCRU1uCnmeHpO9x+TUXkVu0iERcI+SLITSjHvPv//luHv2vh/HkZ3PerTcSfOoYY/1deHJqMFsi7H9qL4VVhZQ2lHLw2YMArM/1EI5rnOj1Ictw2eoKPvTDy+g82E9bxzCuxWeQ3VjKn7/zB3Qd1lx9KUNdCcoX5NN7It2QNXBihNHOcdy5Trr7/RQ35ONZVEA8x46KTNU1Czl65+60bQors9Nb5yXJWlKET9WhtpgNn7yKk0/u4iuPfY3swuxZ674Tiama0jrgf8W2ca0D/pKF5VnDFpPyF+W05ubm6gCqqkqqqkpzBbWeffbZqSiyVatWRePxuByJRCS73S7OP//8ueu1ngb79u2zaZrGtdde6wfIysqa81xeqW3cG0nGRvIamSvVRrHOFqKK6fQE61wRoXNV+5mr6MFpM6OiwZsRwz2zz+WpmDx2VAfqKvnQlh+iSRK6gOC+4+y881Ge+vo9XP3Tf8Baa0yy0899avS2bBsRs5zWGd40rciAM3v2zOD4tsOEJ1rw5OehmHMon5/UaiSJXQ/tmlXuDkBWXvlnMhGI4Q3F6N3Rw7m3vi+lQMbDI6kawwB1qxZTtqAOXdMwW02UL1qAJCmoqgcBqCpc+JHrOfTsljlzli0OCw1nNtDT1IM7103PiR5ioRgDrb9n3pnzqbj5dvyBCLIwNG/Jbkrrfbr9/iO8/OAWjm/dR/2Zi2hcfyZICt6+QV789VMsOW8FXUeNyNvhrmFK5k09j+/70Pe59fnvExESiiwjyzKRYIhdDz3H6Iif+QtvoOTMRgC6jnQQ8t7Pmqs2zRKqAGabgifXwViyctdg8yiDzaPklLjJumwe4WPDFFRmMdJtfBeyrDMxOIpRJnFqFlWwMJ/gNMd63fsu4tZ/vYnsvLdOkfw3m67hYM508+9caLqQO4eDOQ2lWa+7bdwk55xzTv3hw4edGzdu9M1VAH86d999d05jY2P4jSiE39TUZPN4PNpFF11U19PTY92wYYP/zjvv7J1pip7OzLZx8XhcXrx48UJFUcQdd9wx+P73v9/7eseTEayvkbnq5StzFJiXT1OwzoXJOruIhJ6YLVhPV0DWFLs4Y/5k1K9AQmLUFyGe0FP7SCR0cl0WBIZ5WiBhVmTsFoVI/NWF5j/84QsoVjO6qtF9pJOHv/vAnOvNnMRGdGNMAPFIPFU8/ehP/8RgxyAWm4W6VY1ULV2GJMmYpk1iot4otE+g1GQbVYiEIDotEMmZMzuoxTs0zt7HX6aotgx3fhEJVSEwbmxjts6OOhYIRrqm6p8k4mqqGcKW372IVlPBYNDQ8C1xjeD41PFL66sNs3XSTO4dEWgJI4AoEoLS+nmzzNqSotBzPL2AvNVhpW5VHZ2HOgn7wyy9YBknXjpOPGK4j0rmlRAPx/j9ZV+m4cwGjr5omJurl9ax4rJLEUIiEQsy2NLE3id2AHDuB65kYkijrMFK/wnDCnhk8wHKF5YjyxIl80o5/MJhll+yioZ3rSerrgyn00okGGf0+T08tnk3Lbub2fnwDmxOG/W3XYkoyKVm7UISviC+ER/P/OwhNr7/3ajq1ATHnmOj9r1LkVUd8Xw7421TZSYnBgJojzXjHw5htiqUz88nGgpw4Mnn6TjURt2qesoXrUUImdyabJwbq1ONAgAWlGeTnxGqaURU7bTaxkXip7feq7F9+/aWcDgsXXvttbWPPfaYZ1KDnMnevXttX/va18qefvrpljfiuIlEQtq7d69r165dTfX19fErrrii7n/+53/yP//5z88Z9zNX27jW1tbD1dXValNTk+XCCy+cv3LlysiiRYtic23/amQE62tEi6hoL/dAsm4tQjDccoL+E60ITUfXdHRN44M/up0vPvoFYKr6zs8+fhdte5qTWqohCGLhs4H0sP9oIEJxXfG02rg6j/zHnxGSB3QjEErXBTd87TxW1af7kcQcgbtzmWSa+3xpbc0A8t1WRmf0b7X5oow80YKWMM5NS+iciAsaN1RPHRMwJXMyvZEElqpiLv3+R3EqUFqSzfFuL0PeMLIkETzRiagqe9UOIV1HOtESGhPhcXKKizDZjAewM9tGYZWbky+9hBCw++eHcRVkUfXuc3B5sunpm/odH93cztZ7DyGb5GQuqYQkDCE41N5H2OclFp0KHFNjhqDKryhA1xKYLTESUS89x6a0x+ZdzViTPU0jcS0lVGG2v3y6dcPqMM/y586Fd1jn0k/exJP/cy8AuaW5ZBVm0bRtyvWjxbWUUAVw5bho2dMy65jDXUOM9RmWr6wCe0qoArTvO0Lt6vVE/H4CY+MU1xbjHfKimBRKG0pTx4skBJbGOiJAPKwS2X2Ex/7l/wAoqTM02nhUxbftAO4V81ly1Zk89c3fpRqNw9SkzFnkpPL6RQRUHSQouryB0vEIzQ83EU+WqvQPh5AUCVXVDNOvPkzHIaPFXdu+FsK+EAs3XkDJZQ0Epk02rSaZyrdprd+/BLtZOa3Wa3bL6a13OjgcDnHFFVd4H3744ey5BGtbW5v5uuuum/fLX/6y4/UKrplUVlbGFy5cGGlsbIwDXHXVVRM7d+6c84Y4Vdu4ycbojY2N8bVr1wZ2797tyAjWvxKaqtN3JD1nLjA8TuueGfWbJf5/e+cdH0d57e/nndmu1e6q92o1W+4NXAHbdAyh9xZKSIW0yy+V3JsGuQlpN7lcEpIAoQRC7x0bsMG9F1mWZFm9a1W2z/z+mNVqV1rZspHBhnk+1sfa2SnvFM153/Oe8z2YRqi69He5adwbOxoJxsnv7GzspGV/bCyBt89LIBjbqZQkMWoIKIk42UDEWzbO8W5QjdQmHWLVPzczOcqwAgx4A2za1xEjrj6tMAmDLBEIhiKBUS/f+Vemn7OAkrMW42tyY851gqLSsaERo3G4TYkpiZGo2fIFc+luC+vT9njxDQyw/Z3YoMEtr3zEnEsWI/wC2ZyBJcFCX5cnJpUGwJk6fIyO+kbyp8+gu0Wb9imYXozFLnNw10E8vW20H6hlx7vbEUJQNKMIa6KVuh0HKJ5ehM/jw9/Rw857/snkr16EZLcRbBsga1Kydk/CQhtZkzTxe6PFQP3O2GIJYyl49ffInHfHdexdu5aGXQ2R6wCaoR367MpwkZicGKkvO5LB3n4SXGYGenz0tnuoWDiDPWs02cb6nXVkl+ezbVsTNZu14MeKBRXsWbsHo2U4LSgheXgE6NnfwDu/eSryuXl/Mzf85ibO/Mq5KAq88JtV0GumYkEFg70DNFY1UrdlC7nTTialLIPk5cUMBIaNoYqKO8FI4Q2zcL93gJZtrWTNysK1KB+DN0jrB3v58KF3Ys6pubqJnrZ/4+7ez6TLTsOYm4EkBGfOzsUcZ+7/805Bur17e3133qHcwbIklMJ0++GT4g9Bb2+v1NPTIxcUFAQCgQCvvvqqc9GiRX0j1+vo6JDPOeec0p/85CcNZ5xxxrjmVMdTNu6UU04Z6O3tlZuamgzZ2dnBd955xzFnzpxR+x+rbFx7e7tst9sVq9WqNjc3GzZs2GD//ve/f9QBXbphPULiRfHGDbON89KMKxoRZ3fxjvGpJQDHe/nHOd81u1pHuYyloQICMTq1EsqgStWzYf3gdcN/K0mZ2gtdNsik5qVFSrwNDtdzH2rUqON7+z188I83AJh5xjxsZTPoaR21YYwx2/LGRzizyiOfFTWJnateAuCdB59nyuIpkW1qw3Oek2ZPYkdYLm+IiltXIjY107CjlVBQQZJFTMAVQHqBa1Q7QsH4kdQGQz8v/u5pKhZUDItthMkoymT3B9poMqc8NyLdF+/8AEwWgd84QH9XG11NzRTPLKa7pRshCWacPpVpy66mtbaFp372LySTkS9890sgVF76wz8w20xYjBK9qzcjmYy0bdiNLdHKkJkvP7mc9gPtCEni+V+torm6B4DOxi6aqrQO5P5N1agICm/9Bp5ACKEAYa3iIallb1DBtbSAzHk5dBkkLepeFiSdUk7D9/806vp43INsfGYNPfWtZM8qpeCqM2jpHqQwXXcDj8RslEMlWY7meFHBQ5RkOZo/buCS2+2Wzj333BK/3y8URRGLFi1yf/e7322H2LJxv/rVr9Lr6+vNd999d/bdd9+dDfDWW29V5eTkBG+77bbcZ555Jtnr9UoZGRnTr7766o577723aTxl4wwGA3fffXfDqaeeWgYwbdq0wSE38HjKxm3ZssXy1a9+tWCo7Nwdd9zRMmfOHO+hjnnI9hzthp9X4qbHxDE08UYj8UQjhvIFY48R5xkfn+0eP/H2F2+9OOc7skwZxBrPyCHCq4W8Acy9XnyJZiRZQlWUQ0o+ViysiDEYocCI6xFPQzKKLa+vJzm3jLiPd9RFO//bN9Hd4sdoCtDf2YAkSZHychULKji4e3Slqnj3UN3RTcO+roiwR7xnJDogzWD0U799EwapnJHVtEO+Rj566j0Aupq7SC/MwOqwIglBY1UjFYsWULZwIahaJ6Vk/slUr1tLMBAKH1dQflK5Fr2uqNRvW8/m1zZF9u9OcOMd0N4Xs8+ZR1JOCmlFmfz0rLtIzcsgOUf7buHFp7HqkddY88g7yIbVSLJEwBfAmmileFYxRrORvR/uZe+HezGa7XS1GMPnFogY1SFqNu3D/P37mXPxmTRv6yarMg3JbEAxy6ilKTjtJmQh6AoopDrMdLp9qIBHFVzy56/z76/8MWZ/skEmpzyH6g3VVG+o5ur8FApOuXzUNdfRGEqlGZnHKktCmag81ry8vOCOHTviVtuILhv3q1/9qvlXv/pVc7z17rvvvob77ruvYeTy8ZSNg7FLx42nbNzpp58+UFVVNSGpNqAb1iNGiWdA4o5Ex2mA441Ox2swj8CwDh15aAp2UqaD7CQbCireQR+bX9lIwGwkoGp5tMIgo/j8eNw+jKZBUIUW9iQEBtNow5/hshJUlEhJs6Fjegb97HxgM54+H7kzMjFZLZphjdNGb38fkxdPIaUkmxu/cwWoKu2b99GyYS9CSCQ4E/D0DeJFpXJpJSAoW7mAhOxUrZi7oqWTqIqCyScR6gmf7dAFFQIUH+d+/WqEALvLhs2RSMA7wFsPrAagYGoB3c1dGEwG8ivz2b9xf8QQZZVkx1QdGqKnwR1j/OPdlmDQi9Hso3HXdvas0dJ1PO4B5p63nIQkbZ68r7ONLa/ti4hQtNW1MfWUqZFgpPTCDDpbAqOivKOLfFvsFrz9wx3tyQsnx6wbrVwV8IZoqurA0ztA0cxyvAPDuafCMCxxGQqGyK3I5cCOAyS4ErDarex8b/iYb/71eeZftJKg34QYo9OzZ/UOZAEZxeXUb9JG6gnpCVRUZtAeNfc8NO9vMkgEggqW6WWc+qWz2fXqRtoOaK70ioUVDPYOcvVPryEpK5nTv3j6YefsP+/MKExumZzrbKtr60/y+ENGq0kOFKbbuz/uSPWT4LNaNk4nisGeXmo3vqtNo6HNVaqqQk55bkTEfs6557Ll9Ra2vtkKAmRZ4qOnnybgD5I5KRNJlkhISuTU336V6qCB6q1NgIqsKDx15c8IBkKk5mkv2+zJ+cz7zy+OenE0PrKNJ3/+DrJBQkiCpMxEzvvmohjRQXXE/0R9To+KmO042M6zt/85Zp2skiyaq2M7lkUzi6jdUktiSiJf/P2lMd/NKtHa+9rGg/gCmuHcUtuFURLkLs7XphxVOOMH11P96gZUVIQ6pHuktdg70M/u93dhSk8mkOwCwD6jlG33/Au/x8/kxVMiQhJDLPjhNXhtCYjwXobMhulAL/s+HB1wmFmcRF+PgQSXBUUx0Nvej9GkeZmEJEjOScGebKe5upnOxk7MCWamLKmku7kLV4aTjoPtnHnb5RhM5sg9SUx1kKQp/SEE1G7aiKqqWpUfSSCERM2GXna/vyOmgLm334/fb6Y7nJ8p1C4O7jow6l4N0VbXytRlQYKBsQM4R6Zl9XbExo5Ej7jffGADXc1aRyhv2smk5ZlpP+gLn8cAJfNKqQ4HRaXmpTLQO0BPSw+pebG60v3d/fj62pHNOQzdy7T8NFLz0hCSQDZI9Hf3s+Pd7SRn54CcgD3DTvpFk2kPhnDajJHc6SGia82mLZpB0rZaZJOBlJwU9nywm4WXLOLyH14x5nXQGY3JICsTkVKjc3h0w3qE+H3+US+/kfR1eVHV4SAeg0mOpJEMkZSdjEcR4B2eZ7NIjDJmruwUfKEoDUS0l/dAT6z7PzoN5Ug9xPFyZOONAIQkKDupHJPFyJ9v/B3mBAvFc+ZROCOTonBNWVeCmdYeD+pQQwT48mN1WZura9m39uVR+x+a09z7xiamf/tyVBUMaUnkTy8aVbD9cIg4Bcpzy1Np2NtBeoGTtgO9OFJt9Hd78fbWRY4f7TYFTUFr13s7Y4QhfB6JAffwPfF53Hj6h+/3R8+tHnVNS+eV4enzRAKEABZedg69HeERWqKJ0mvPZtIVC+iubkQIQdPanbTvi43X6DpYRWLGlMj9GXmbRh63ra6VW9b8gaEQNhEM0b+3ga5NjRhMJhypAndYNayttpaA14+QYfW/V2nXrCKXc/73m+x95j06XtkIQE9LN0mZSfT3DBDw+jGYDBiMMkIO4R9sIzk7GZvTFpkLrlw6ldot2qBj56r1VC4/h5yFeXjC3hqPP4TJIPAHh5/c4ICXvfc9Q3JJLpsefZuOg+3c8eA3+ecPH2bKkinc9qcvj7q/OjrHC7phPUIOJ90HoKixMbfxvFRxDVe8ncVZT4q77dG7wtTxik+oUBVl4AwmI56BNHa9V0dqnpOKRQVYCmKNqIgTk+xIc5A3OY+Duw9itJgomFpAW11r5AIkZriQGE7UsIarkIyc2z3/npuxuuzYLSZ6+v0R6UUAZIFsEITCL2vZIOgKF1A3hvOElZCKJcFId6NmWKJTWKKxOWy07I87LaRdlhG++3ju/UG3FqAYrQesPQPaurZkG30hFVxOEuZq11DeUcf+cO3YoedlyxsbuPwnC5ENxki497nfuJbX/+9fBHx+HKkOUnJSELKEGlIwmo30bK7CPKMcECAZcE0tpmF1B4P9vSS4LCRnGXC3d/P2w1rwV0pOCq4MFz2tPcz+4lkMGk2UX3Yaq/7wLAAtNS3MOXsOe9buwZXuxN3p5r3H3mDa8plsfUPrmKQXDStedTZ2RP3eSdn5ZfgyEkAFORBC9QRwpttjUr36tlax4akPYq7he4+v5n/3/h8mi0l3/eoc1+iG9QgZl8LQyFzSeMZxnJVpxmuA4wUDjZe4qk5xI51jPw7VjVVVaK/vpb1+GzkVqVjn5+C3GuM21tztpb9jgIY9DWROyqSvs4/qDfswmo0RKcf26iaMAoYCaxNStNJfdduHPQWy0YBr8Qy6/Sr4fThtRkKKSr83iKnfT/M7ddicVjz9PoK+EAZTAP9gADDg7hiIOcVJc2dTNHMqAZ/WrqFI3IyiDFLzUqndUhuT8jJyTj163j1S03YE7k7NqLs7+sgIF1nYtfoj8mecTNAfIrUynWizrqoqA/UtzDh9JkFfkIO76iNyhi21XajKsIdCNhpQVRWj2Uh3c3dMWwEwGZk9Yzj6WUS11zfQxxv3PUFORS6l88vYt64Kd2cfpfNKWXrNRWRUlOIBBpFYeMvZbHzkbUrnlbLtnW3Yk+wYTAZ8Az4yizMjRhVgsGcAS4KFvNml+Dw+YDg+RqTZUVQwDQZpfbmKhBQbjjMmkWw3EwwpuD0BkmeVYbKaYjo7GcWZemFynRMC3bAeIYcbsQ7V04wmno0av2GNs208Y3sEPfiRawaMBk75+gVhQQoFNaQge0JkFBegKkpkmdVhoWbLcPBOvOjlkD9E3eM7cGUlYs+wIxc4MVoMKAYJQ1M/de/WYrLYUFU1Jlc34AsQ8A7PswVbOiFdk/EU4WsV8Ab5wndvATTXafTAsHcwQEJjH2qDm9qdrZFgIptTJjDQwlt/eYMpS6eTVVrAYF8I2QA9bR0EvV24/U6UQB+ttXXklOdSu7WGyiVT2be+KpLyAzDrzNlcete1bH+rIeq+CIQEYe1+VFWh8pSwhrg6fP+GApAGewdIykzCZDVhNEsYzTJBfwhrdmKMYQ0caGbr65spnV9K1UexgYxSrIojoYBCekEW8y88m/6uDlY9/EJE7AKgdn01096tQcgyZqcFn1lGNkoUzcxkw7OvEQwEObC9jqySLJJzUrAlWtn13k5yppxMz+YWzMuLUUIKKXlpWOyWyLl0N2upj8nZyQT8sXOkAV+Aqx//Ab4kF0ZJUPPYG6z643O4Mlzs+L/nKDxlLgc39eAbDNDXOYhqljEvzMNmNpBkN+ExylQunUrj3kZOu/Y0pp46jemnTR/5uOkcAZ5+n7zz/QNJAz1eY4LLEqhcXNBttZv1snHHAN2wHiHJ5fnc8sEfwtZp2ESp4Y+SECyblRuzjRIMsfmlZ7X1VO1tWzC1kJUnxRZ+7x3woa79H6KHhlaDhA9JK0kX/ibNYeaMv1w4vKEgvtbiGIxcs9knyLt8Rcwy31s1QOzIx2o3IclrUULDf4tDWghDBP0KQX+IjgM9dBzogXXa3HJueSq1Q0E68WrVEutS3fC3V5n1vatR1eERosVuwe+T6O/24hJmbJ4ASAKpsY9Aj5fubg8t1cNtlg0hVj30JB635urd8e4WAh4Pe8Pu7JTcVJypDgpmTqNhzz6q1++NuEG9A16KZxXTsr+FzsZOvvKXb3DK9ctRQgqv/u+WmHYbzYZIoXQhCXauis0tTc6J1fluq2ulZG4p9TtrMdss2FOScTe1MdjVS199K2owRO172yOj0JEIFILeZky2bBRFwppoZtEV59FaNwDYWXHrDfQ011CzaQdJGS6EJKj58EOsSWUATLt5DjdeMQOL2UDNho8i7XamO5GNBoK+AGd/5UoG+4P0NPWRXN3A+/c8SuPug+RW5I3SUy6cVojP40MJqXQ3d1E8q5hfrvstqgovrqsnoKjkXb6Cmy9cwhOX/xdrH32Xjc+sYfGVlzL0CnIlmpDM2sh7cq4Loywx896bcaU7caTGTi/oHDmrHt+WufnN6qygPxTp0b//7x15s1aUNJ9yxfQJKRvn9XrFjTfemL927dpEIYR61113Nd5www090escqmzc/Pnzy9va2owWi0WB4fzW8R7/y1/+cs6bb77pAviP//iPpltuuWWU6EVVVZXp+uuvL+zs7DS4XK7QY489VjNp0qQAjK/s3HjRDesRYrCa8Khx5I3CyNLo0agQ2txSNBmFGaNHtgi8I4QFLBYDgwMj761AGqEyI+TxBy2NnPWMly0Ub6js6fez7MYLeO/Rl8LSjQpIoAYVhjoZHQ29kSChaEJBPwZjEFWF/MoyTGaB3+th9/u7CPgCZJXlUL5gMnvWaIE9O178kJO+/gV8CQkULZxJWlo+oZARd4fmpu1p7kN9tZretmFxlYigfpjeluqIUb3lT1+mfEEFbz3wRsSwdjZ04Pf46Gx8l95webaM4gx2vbeLzgbtfpXOL2PuyvmceqPW8ZAlGUuiCW9fjON2+LLF6TTYXQl0Rd3/spPKIikyW97Qaqsmzymgcc1ONj6zJmbbqo+qWHjTWUhGA931rXhbu6lev4aGXfXYk+0UTJ8EOdPw9A0fd6DHhz0pEVAjgVKJyYlc/NuzSShKwi2DJVyR6Zq7b2Cgp5/+zj52f6ClIabkppJZbkZVVYI+Lzv+9jKNuw9SvmA6k5fMp2HPXyPHyi7NZlM44CtvSh7dzV1c9P3LtHq9Aipynexp0K6tx2jCaNZEQPweP2qwj6E83v7+AJNTbFQ1uVm7p40FFenkT4nteOocHase35a5/uW9owQigv6QNLR8Iozr9773vay0tLRAXV3djlAoRFtb2yj7cqiycQAPPfRQzdKlSwdHbnc4Hn/8cefWrVttu3bt2unxeKSFCxeWX3zxxb1DFXeGuP3223Ovuuqqzq9//eudzz//fOK3v/3t3GeffbYWxld2bryMp9C5BVgNmMPr/1tV1buEEP8NrAT8wH7gRlVVe466JScIh3O4jtcjO7LeKnyy6kqevkFe/t1z9LT0kHPRKZAQW2w9ngiEkAVF58wheV4+T3zpdwCs+seDo9cTgiXXXEN0JZIDW7fx4TOrIp+tiVb+0fEYAa8fyWjAYDLQUd/Gc795hvzKfIxmI6t/9DeW/OQGpNQUDr7fBoy4ZiPmMhv2dlAwLYOe1gGEpLI/PFq+6fe3cvqtZ6ECB3fGRnT3dfZRuXQqve295FfmRwz7EC37m/nGw9+OWZaW6+Tg7va4zYg3GLfYLeG8WwCB0WwgvSidttphicPWjfvorBv9bksqyKDypnPxKFAEtL/+Ia/+l6Yj7O5ws/3tzSy5Mg2DOZ1QaHjedbC3j9aaYTd2QrIdj9lPUAJUzTsghMCZ7uI7T/2AOyq/Ell30uJpZEzLAFQ2P/0iB7fVUDqvjMJZJ9HV7Kd49mRqNmlGuPz02cy6/gwy55bT+M4mJElioLuf2k37ya3Mo6M3Kq9ZCBZ/51Keu+N/Adj65gdMXX4eOfNyMM3NJj81geYuD2aThDlOhSedI8fT75M3v1l9yLJxm9+szjppZUWbJSFOgvoR8Nhjj6VWVVXtAJBlmaysrFEvuUOVjfs4x965c6dl8eLF/UajEaPRqEyZMmXw6aefdt58880xo9Z9+/ZZzznnnIMA5513Xt9VV11VAuMvOzdexjNi9QHLVFXtF0IYgfeFEK8AbwDfU1U1KIS4B/gecOfHacyJwOHmMuN+H+eRiTdXG1c9MO5BDtkEAIIhhZpmNwkWIzmpsUZTBe469XvUba0lqyyH0iuXExTgtJmQZYHHH8KwpIDmqFFn/uICbDMzGAwomNId3PTKL3n2tt/ReaCVkWSWZBFtVGH0dbn5j7chZAlTVNFX/6CPwumF9Lb30t3cjSvTxfpf/wtTYgIEFOzJKahieFRqsZtjCmoDrLhpLlaHBQRkl0g88v2HWH7zmSAESjBE9txyMuZPJntOKaEBL1v+9kqkRFvuzGLqd8bq7k5ePIWMSbHvpYQka0y5OeecLG0eWIASCNK6f2pMNQSzzcymVzdGti+dVxpjVAH6GtqQ0DSS+zqHJVYXfukcfOHnQgXSzjyZrKfepzmqg7D+hdXkTSnEnuSILJONsde7taaF+mffw5aVDEJil3cWladOj9ybm/96O/ec/WO+8NsvY5pSHNnO+6gfb78XR3oKg24fQgimL19CzabdnPmDq8g4ZwHJiWY63D4aN+/nwI4DrHr4bf731v+hcmkl+9bv49zf3EbC9FKC7d34OnpJSEpAlo1a8fcWBdf8HPqCCrsO9rBwcjpOmwmdiWHn+weSot2/8Qj6Q9LO9+uS5pxZdtQ5rh0dHTLAt771rew1a9YkFhQU+O6///76vLy8MV258crG3XzzzYWSJLFy5crue+65p3m8o8ZZs2Z5fvazn2X39fW19vf3S2vWrHFMnjx5lCTh5MmTBx999NGkH/3oR20PP/ywa2BgQGppaZGPpuzcoRhPoXMVGBJdNYZ/VFVVX49a7UPgkqNqwWeMeDYvrhJPnOjiuKLs8VJ1DnF8VVVp7BhgZ303voCC2SCR5rJgGlHGbuFli7nwzks4+dLFADR3DrKhOsp9KwsypmUQ6PeRc1YZvYrCYJS6kC/Rznn33saDF//n6DYoCl/47mKkiEACbHjhA9Y+/W5knbKTy0dtV7elhrptdZHPPS09pBeks/1tTTje6rBSuXQmoUCIvMoKjCaZ7NLw/GX40vV1e7A6NWO97Iunc9r1yxHhc5cNMgWXLcPjD6EC1oEBply9Avd9L3LxD65GVRTWPDLcRoDzvnkhI2nZ3xWjQywvzkMNu/9Vw+g51kgwU5iRxRlK5pTQ09pD074m0gvSUVWV/i5t/2lzyvFEPRaqGiuMD1p6z751sSPtacumUbGgAr/XT83mGkrmlrL28WGPwY5nP2DpVadQdNkygkLCn+jkyjd+jckgxWg+J2U4CZVm09PSji25FICedj+X/vLLWJZMIVzgCYCug9oofrBX6+yEgloVni33v4Cn30dLtaYsN//8haQVT6OrxYst0Uz3Rw0Unl5CbmqCblQnmIEe77jKwfV3j2+9sQgEAqK1tdW4ePHi/r/+9a8NP/nJTzK+/vWv5w25WUcSr2zcv/71r5qioqJAd3e3dN55503685//nPK1r31tXMb+oosucn/00Ue2efPmVSQnJwdmz57dbzAYRr1Q//jHPzbceuut+ZMnT049+eST+9LT0wNGo/GIy84djnGZYyGEDGwESoA/qar60YhVvgj862gacKLhSjBFgo7e/Mt6Gqs6tFxN7R+1Wz7kuSpt1KOlXsDP1/yKf/mfi9nPTelXc2PqlRhMWprJf73zC9KKMmMDmkam7RyCoScoGFLYtH/4WfQFFaoO9jK1KDlm/QvvvDTG4JuMo3uGzqUFWM2GmIo1McfMTKXyzDn0NXZgS7RiMBkIBUN4+jz4PX0UzymJrFswvSBmW0e6a1zn1bSvCWe6k962XjxuD211TdTvOIDf4yOlYOao9b3RlXiEiBjVIZSozouU5CB9moXT/vxNFBWcQuHqf94JYelGhGDvpv1senEdobBUoqqoDPQGgfS47RUGWSs0EBW2G/17fmU+tVGR1QAmq4nqcL5q24E2MooyKJhaCKg0vL6elHMWxayflptCc7gmLMCZX76Kl37/UCT9yWgxoQS1+VVropVJcybR2RD7flAVhSd/9i9uPmexVnQ+jM1sQI7yZ9dvrqGnpRvZIJM3dQGKIpClAV74+ePMuWQJBdedTSBoRFVVOsKSg9ZETdWrfkc9lUunkja1kLIrlvPiV35P0446ggHBQI92n2STzKSiZCrzXNjteirNRJPgsoyrHJw9aXzrjUVGRkbQYrEoQ8XBr7nmmq5//vOfqfHWHatsXFFRUQAgKSlJufzyy7vWrVuXAIx7FH3PPfe03HPPPS0AK1euLCorKxtV8q2wsDDw+uuv7wetIs/LL7+clJKSEjqSsnPjYVyGVVXVEDBTCOECnhFCTFVVdQeAEOIHaJNfj8TbVghxK3ArQH7+0QcjrNvXTku3Z9TynrXbeeMXjw01NGLMhrrRQ3mFBdMK+ck7vzzkMTY+v5upyyZhth+61zzk1vT2+envjG1TX7t7VKCSElRGBbX098RWXhkqbh7jMj2KHHijQWZKnotdB3siy2pa+zCbJDJcNpwJ2rmN7MqlOq1kuKy09gyfjzeoII8hJWr0BvFvbSUjK5edr20c9b0rM1Zc3jCiGPzbD7xGcm4JAW8onM6j4h00kJqXQcfBYfdyf1c/uRW5qIpKZkkWva3aeQ329hMba6vR1+mmrU6ghhSSclIwW0zD0o6Kij+qhqfVZKDLH4pcDIPdiiiMjei2JCfyyLf+ErMsOTuFqcvPi3xWR9wok9WMt3/4OkanEfW29ZJelMFAzwCqoiJJgl0jZBpba1sjaT5muw2ve1BLewopmBMsbH1pPflT8ymYVoklMYmetgArv3kTr/zpIVJyU+hs6IgUMfD0eZCNBn7y5s/5w/X3ahKFgkiwlr+nHxzD749+bwBflGdCtmjGLhQMgdqL0WBk9SPPE/AF+OAfb9C6u54Fv/gSCd1eTr54OfXb9yMbtdfKoHuQtMJ0br33Jl7e0MC5f/w6rRv2sOrepzj1msl0t2ipNg1VHcw5qyzO3dT5uFQuLuh+/9878g7lDjaYZKVyceGoCNojQZIkli9f3vvSSy8lnn/++X0vv/yyo7S0dNQLe6yycYFAgI6ODkNWVlbQ5/OJl19+2bls2bI+GF/ZuGAwSEdHh5yZmRn66KOPrHv27LFddNFFo0bLzc3NhvT09KAsy/zwhz/MuvLKKztg/GXnxssROZBVVe0RQrwLnAXsEEJcD5wHLFfHKC6pqur9wP0Ac+fOPeoJakVR8cZxn/oDQXqj1GzGYrD38NfI3THIuw9t4rQb52CyHt4zEleQf5xzrCOR5IkL1piU7WBPYw/Raaa7D/YSCqk4woZ1tB4STMl30en2EFTA6AkQsBoZ8AVjCqBLAQVpbye1H9ajhFSSMuLHRQz2DsSkmQiTkSlnzUNVtVHfh69uZsYyOy17YrVs533hAnatehNf//DcqSPNgdlmpnlfU2T+MWNSrAEc4u93/A/1O+oAuPvD31A8tzRyri3dg6hhtR9rn5+Bul4sJhnFZcJnNcbtx/jsdspOm0HVO1vjHi8eJquJgNdPWn4aydnJkZElQO7k3BjRfEmSKJ5ZTM2WGoQkYUmwEPQHCfj8mG1Wuhs72PTy+sj6JXNLGHQPsmfNHrIrKvG0aka7q8XHmbddSd3WbTRVxb5/bvjNzWSW5bDw0sXs31CNkASlc8uo2byfF2/5Nb/48DckZSaBCv29g7y9vRlh0p7/zEk5KL4gqqKya/U6QqFQRO9YSBKTZs2g4ZHthAIKueWTUUkjMcVCZmkZb/7lKS688xIMsqS5mDHhWDCdc+9O4qXv3M+p155L4cwKpi4pjKn+ozNxWO3m0KwVJc3xooKHmLWipPnjBi4B3HvvvQ1XXXVV0Xe+8x05JSUl+NBDD9XB+MrGJSYmKitWrCgNBAJCURSxZMkS97e+9a12gPGUjfP7/WLRokUVAHa7PfTggw/WGI3aMxxdNu7VV19N/MlPfpIjhOCkk07q+8c//lEPhy47dzSMJyo4DQiEjaoVWAHcI4Q4Cy1Y6RRVVY84PPpImZznQlFVGrsGY4J8xiuMMJ6KMZ4+HzVbmknNdzHnvIrD73OcuaOj+xyjtxuvYMR4EEIwtySNdVXDkavFmXbKcl2HaAEk2kxkmU0ceKeG/VtbKLt8KorJQMt79fj6fJgTzfS19tPXOXy7e9q9zDlnMRtffj9mX+/87Q2u/fVNkc/O0jxm//C6mHVsRomWPetilg30+MirLOX9x16LLEvKSmb/pv2Rz5IsYXXkMZROm1ueGhb5D7H64broCxE5V1VVkYMKBl8QQ+sA9R820B/lAcmdnol/diaYR/9JTFo4lZDbjz3ZiTUxAWdaMinhIgmd9XVs/cWDeN2DeN2DWBOtBLx+QsEQLTUttNS0UDSjKLKvkbKJiqJQu7WW8+64DnfnsP7v0CPT3bQbiO54Dz/voYAXGB5t9rQrDPbGDhIsdhsNuxrpae2mfvsBzYMTUgn6Awy6Bxl0D/LOX17j4h9fCQIe/94/WPPv97nwJ19BCUqk5U1j9rmn09frpaumG3uShaCvG1VRcKQl0X7QDyjkRKVY9XV6yZqUx2V3fY2U/AwQgjNm5/LO1iYGfEGkSXlc8Pvb8OxqQwkpZBTGejd0JpahVJqReawGk6xMZB5rWVmZf8OGDaNEvcdbNm7nzp1xy86Np2yczWZT9+/fvzPed9Fl42688cbuG2+8Me7ofKyyc0fDeEasWcCD4XlWCXhCVdUXhRDVaCk4b4SN24eqqt42EY2Kh9NmYmFFBn2eAK9vaYzU/xxvessYA+oYPP3aqGztUzvZ9tZ+rr37TAxxXrSH2ue4arOO+GhLTqS+y4PZrzkVh3IABYLCzKMr3ty1oxV5TzuBwQCn3TAbp8s6ap2hlqpAwBdk04t72PTqvkhd0bZ3a+nr8sSURMstT40xrKqiYk+dxEkXGvnomXciy1/+nxcpW1DBSRdr84MW0+jrOBhQMCWa8PfFGhuTNXY+uKeth0mzJ0WMq6qopBe6kCQTCEF3az8DPV4cKZaY7aJThp762Tu0HehBCalM/ep8fKvqYtZt2NZC0uRU0tK0COqhoN6OVXUM1BuYccYKOhrcJDgtDPR6I0bE39/N9ihXeFZJ1qji5OULZlGx6GRUVUWSBfvWj6i6IwSywQZ4IsdOzXNyyQ9O5Z//r4vtb0Wdkzx8Tr2tbTgyhqexHKlWVm8IC9+fMofS+bNRkdm5ah+r/vkSGVH6vXvW7iHBmcBA7wBzV84PH1dl0ysbGOgZoL/JTVezFlTpmJONySzj/dd2jHYzdls+LbvaMdscWO1uFKGSkOdArusm5BsaWAhaavp49U8fsvJbi5EkwfKZ2Xy0Zh+tsplQXjYLF0+lKHs4klnn2HHKFdNbTlpZ0bbz/bqk/m6v0Z5kCVQuLuyeiJHqseYzWTZOVdVtwKw4y0virH7MSbQaKct2sDucdD5eyxq3ePgIPFEv+IEeL3/75vN0N+xh+zubNGMnSUiSQEgCSZb40n1f4wv/cVHEQgngS3nPk5iSGAl+EUJLuD8UyXlp7O/yQldsdLgQkOa0YDUb4uaVjkXnwV7e/vuwbuv2l6tYfNWM2H0zbN+b97bz2v3r6e+KNQg9rQPklKXSWDXsEWnc14kzPSFGmEFVFWwOGxULJ7NnjdbpTC7MoKaqmdlBBaNBwpFgwiALgiMEMBJLZDY88C7OVBdpRcWkTSsl5It1Dzfva4pUvtGOp7LmiZeZc+4ZdLUMtzkUUnFlpNDTGp7jFgJVUXnxdx9EjGrJWaX0hRQmfXE2eQaZBIMU6QxZ0mzU93o52DF8bgPdQ/dEWyfgC+JItUUqwoiRnoY4/TeLI5Wu5nA5NkmQN6WYg7tipSF72mKv/WU/XoZkkMibnBezfCjiFiClIpeKS+eGT16l670aLviO5iWwJtpoqg5fRykZR6oDV0YS2WU5+L1+gv4gJouJghkz2fVeE3Xb3IRCCmULZrH232/SvK+K3BnTMackEDTL+IIKaRdXogIOb5CWXe2RzsXky6YykGShpDyVwN5Oat4c9i7U72zjqV+8y5lfPglVCfB/X/gJ5gQLNqeNOW/cPaGeGp1DY0kwKR8npUZn/JyQyksVOS5qWvu0IIsJdAV7+2ODyPweFZvTOWbVk6FaqNH0dfaNEn8Y9fIQgj+3PRYemYZHp7JEa4+HvUMdhnCb39raNEr6UKDVqxxpbBVFYc/qOlY/GjsfuOXNakpPziOjODmyffTlSMp2jDKqkX1aDVhcFrzhMnWqomKyGMLtUzEa3Gx76wM6DrZz/s9uYOkvbyVgMhIIG9BXNhxk6dRMnAkmMj0hGmQ0eaowCfMr6fzPhzXhhlVb+eLa/yGkwll3XcOr//nPyHpdTV2UziuNjPYO7qqhYc/9fOE/vkxnoxYINtDj45TrLuSl3z9I0B9ACKGlNalaJRsAS3ES/pDCYCBEbmUGCZbYuXS/JGIM6xBDkoV+b5CAL0h2aQpN+zoZmWenxrGsqjrcqVMVlSmnLqdgehnvP/4qAFNPnRPzfJafnBdR1jr1i6eTOyWPrW9U4XH7kY0GJMP7WOw2Cs6aR+/QI2AQtNa5CYZTZayJUeelShTNKqWjvhVLoiUmHSi1cDruzW1AOKLXro3YP3rmHaz5TnJXLCckBBajhDfsuWheE+uV663uxDAvB09QQcmz48oTMfEHLfu7eOHeVax68HH6u/vp7+7H3W7E7h0E9BGrzmePE9KwGg0Sp03NYk9jL22zxxlNeBjLqoQUvAOjI85NthTmnrsQd0cXVR/F5gp+nNJVqckJo5YJIWIM61iowAe7Wki0GElxmKlp6cNiknEPBjAKSJ2STn9LP/1DuZYqrH1yBxfeuTSiNxyNJdHMSV+YzEfPDk9xGG1Gyi+dSp9FpnR2NtujRsDt9b240hS2vPYe9TvrIssdxdkMyobhsjRhNu7rILG5n3VP7sDmtJBSlIQ134k3y44y6IkElpWvmE1A0aK6886Yj/SzRyOpKi01LTHBUBa7jbO+cg1mqxlJHiAlx4HZZsTb7+fcb9zMc7/+X4QkaKvtjrhPHTkOTXko7K2MWyVojHvqHdQ6V1klydgcZqYvL6GzsYs379/PlCWVmK1WUgsLMRgNDLrdtNcdYChfKuAdREv/1vD0+UnJ04KvHGkuUvKyIvfEmW7n1OtnR9aVDTLliytprQ2w7W1tJFi64FTsTiPCaotp41hz/qqqsPu97fi92jlMWTyFpJwcLAl20gqSEbKRoNdDS3U17u7hTkVCujb36Q2ESHOYESKI1O6m+UATsmwgFBQgJMRgAN9btVjKE9n1z1fZ8uJHJGenULn83Eg5w55WD9OWn8TqR7TOhM1hw+awoaPzWeSENKwADpuJ+aVp7OnswmQxRV4aY3G4OVZvf/ztA34jtuRSrEkqeVNnYM9KxDk9i3fu1kacgbCrcyI4EjPd5wnQ3e+nPjy6GvQFCYRUPGYZ08m55Bskut47QMu2VioW5LHsi3MjabHxrsTMs8vZ8HIVIX+I4uWTMFSk4A7PtbpNEqllKXRUdSIkBYKtPH/v66P2seZPz7HwntHT7P19HqpeWoUsuxjs9TK4pRm2NFOyvBhv+nBqU8VZcyP9H48qmHvVaax7+C3KV8xmyZ2XIxSVBaEQIV+AYIOH+nUtgA9JFrTXD3dIkgpdXPzzW5EtJoQqIq5sR64DhCDVYSGkKLR0DuKv7aa3dUAz4Cp4/EEskiDoC4IKK66awUC3hw+f3gkqtNR0k1OeSs6UdBJSjBjNErve20nJvEoSMxLwecBockSKogOk5OQgjLHR00LIJLgSWXbDFRF3tsli4Oqfnz5KB1pj+K4FvEG6vUFSfCGIiqaNfsYDXg9Gkwdtpj4Y+fto3NtA4144/ztL6Wn10FTdi8EY4MDW9ezfuI9ZZ8yieFYx3gEfnpZO7AeaScpIo1sSBBWVYCDApldep7upi7T8dHImF2BLLGKwz0pS3yBbXtRS3LuaOiHYSCgkCAUC5E2bTkeDYPlNF1G3eStX/dc1OFL00arOZ5MT1rAOUXFyOXc89C1+ddndh1zvcBG8YxnWIYQQICWQuXIWAwGFM/50B/2SyuubGijJcpCfYcdqMhxV7unwMY5+25H9hv6gQsqSAuavKCF/amakXfGuQqfby7baTqZ8cTZGWaIjGCIYle+pAhnLiuiu3s+mV94lszh+is2CL583almos4cPfvQ36rfVsvCSZRisw3OG1W/VkH/SsNDCyM7P5AsXkz65gKxTZ+EZMUUu0iBjUKV1R2vEzTtEyjll+EMKgUQ7jR2DOPJdKP4gyZXpKAaJDrfm1u7u9+N9p4a2mtggwfRCF211PQCc88U5pBUmUb2+kY6G2LlfV0YS59x+Ae89vnqEuz+2PaFgEMOI7K2DO3dx2g0XEQwInOlG+js7kKUAj//wocjc/NA8ffGcSfS2jY4RECMWhUIKwcGDSLLMuw9tjuRTF0wrBKBkXiU5FUUIIbC7rPg8CoHBAdb862m8A9o1GegdpGazNv/bVNWI4b6XOfWG6yj4whSCTjOGVBezLzuFt373DO31bfgGvSTnaOEW7k4fs85cwObX1lK5tJLGvXXUbNqPbJCxOPNQQjIhEpl1znmUzp086nx0ji19nW757YfeTupq7jImZyUHll23rDsx5dBpLDpHxwlvWAEWX7qYnj98ib99+4G44vYwjhFr3yiRjlFUXDeL3vA8ky+kogVAquxt7KWt18OSqWNpXY/PYoqPYZXjnV9fUCF7Zvqoww+NWv2BELvrezjQPixWIUIhbCYDg/7h6xg42MLrv32S/eu0uqAJztFubITAVpwTYwC9ew/w2p330xcu0L3t7XXMOi8XoUYp+6xrY+U3r+fF3z+MyWIi02XBF1SQhYCELBKzUuiJ86evAo58J607RmsVD12JbXWawbSdWoj3g3q8VgPewVh3vzFOvnK8+1AwPYM9a+tHrxue55aj85DV0YbVJIWQDaFw6xSKZ1XS3uBFCQ0S9Daw5sm3GIukzCQWXrqSkTcyUNWBv88fUYRKzXESCmru1Z6nhyO0/V4/BpOB8gWz6euWUFVo2NtFam4CH721OmJUYXSQX3JOCn5PgI5VddhXlqF6vBjNRmaeMYuA148QAkWVwuep4MwsYcqSfnau3h7ZR8nCKchGE0oohBBgd1lxpsd5hnSOGf+48++ZL/7xhSy/xx/pAT78g4fyzvv6yuYb7rlxQtJt/vKXvyT993//d5aiKGLFihW99913X8PIdbxer7jmmmsKtm3bZhNC8Jvf/Obgeeed1zf03eHKzo1nX319fdLKlSuLDxw4YJZlmTPOOKPnz3/+8yhxiUO1ZYhly5aVHDx40Lxv3764qTxj8ZkwrADnfX0lM0+fyS8u/DkNe0bdz8MGL6XmOSMBKfGouGjKcKBIHNyDAXZsqqF8QQWqomqjz7Dv9eXfP6cpD4WDlYaKY0uShMFkYNkXzwA0WcF5pVoE8dBcn4j6iWZkkPBYp1fV2MuUgqRR67Z2DbK5pjNGiQi062Q2Sgz6wWqSsSgh7r/5N/iiXr5N+5pwZbjoae2hbH4ZRosRIUk0vbUJ58mVSFYLXW+u49WfPhKZIxVC8Ms1vyYlL53Og72seXIHjVUd2JMslC0s5Dc3/A+ZJekYTCae/2hYYD7VYQX3KC1tIhcnDvECqAO9XkwqjNpTnJVjA5C070tPzicxxcaLf1gbu3l4+5gR64hdDvR0s3ftdnpah0fGy2+6HCUUmx40Ft0t3XgHPUDsnORgxyBtB3ribhMdPNS8r4mZZ8zC29+N0WQDJJSQl44DjdiTEig7qVx7XoUgFIztmJadNA2ExECPF2dIYcPdj7Dr7a0UTi+M6DqfnJKKKaEgfFyJjKIidr23nbwpxUy+aAF55y4AIbCEVOYUJpOqp9h8ovzjzr9nPv2rp0YJRPg9fmlo+cc1ri0tLfKPf/zj3I0bN+7Ozs4OXnTRRYXPPfdc4gUXXBBjqH7729+mAlRVVe1qbGw0nHHGGaVnn332blmWx1V2bjz7Avj2t7/dunLlyj6v1ysWLVpU9sQTTzguu+wy93i2H+okP/jgg66EhISjGtF/ZgwrQG5FHjfdezM/O/+nEd3UIXyDvkiprGiG7J8pwcSF3zuFdc/sYv0LsUFK2XOy8aTbDqmgFFJUavwy0791Oc2vr6OvqZO9q7bT39UXo7QzErPNzGkRwyqTlRK/Jz/y0FLEcoe/H6Nt1c1uKvKcyJI0Sht4pFEdomfAT7rTQofbi0eFU++4iNd+/mjMOiUnldNR10pVeBQLsG9dFZe+dDcpiWZWv/BhjEbub7b8kYySbO2DEDRVd5KW78JkMSDLErmVw0pKWUlWmsPiDfHUrYYYGZGdnu+ip3MAg9BKMg3hbOln5mXTsGQmokoich3q2/rxzc3GUZFK58462rZr6XLdDZ0oAT+yQeKJu/4Z46P3ursRopL3H92K0Szj7tDeG96B4ahqg8nKmbddFr4nKmrIz453h0dwAKo6PMJNzsnmrC9fET4pMKfZMGclajVvgyGCXh/phfmAASWo0rGzjv6mDtxtfSRnJjLzzNlIsgj/SHj7/VhssVHegiCv/d/TQGwFnaIZRdSGq/sUTi+ko6GDlJwUcioKyJ82D58nRNakZAZ6vAy8XYekaiP86L+vrW+uY+GlmTjT0zHbjEAKF955G51NHnJLJ+ELaSFzPsBnluP+HeocG/o63fKLf3zhkGXjXvzjC1kX33lJW2Jy4lHntO7du9dcVFTky87ODgIsX77c/eSTTyaNNKy7du2yLlu2zA2Qk5MTdDgcodWrV9tOO+20wfGUnRvvvlauXNkHYLFY1OnTpw8ePHhwlE7tobbv7e2V/vCHP2Tcf//9B6644opJR3o9PlOGFWDO2XP5+bu/5D/PvismUb+7uWtMoxr5LAQnXVRJ3pR0nv7ValAhIT2BhJNz8Y1hhEYip7jIvVIzlGU3nsPLN/83vW1jR/qOV71pJMtn5qAo6rBxUVUGfSFe+uMLdIarjIhwdZn+0itwpMQKTVglCUtzHyGXBb/FELk2DquBoKLS1js8tstfMQfTb5/CP6iZq+ufugtzqov7T/lmZJ3EdBenfPMiEi0GOvt8lC6fRUFZNu8/vpq7P/wNuZXDKUPWRBOqotJe3wNAZ2MvM88ui8jaJSWaI4aVkILsDyGFjbRikAgJQBJIkiAlJxHJIGO2GGjY20FyjoMBXyhmJNq4sYnMNDvp+S4sDkvkem2qbidokiHZiruvm9WPvgKAK9NFT0sPpfNKWfXPWDEHZ7oTVWRycFcXAAaLgcv/+i2MZiP25DRQwd/cR/Xqusg2yVmxghcmiylmPt2Rmh7JCc0oSca0rCjmWU1zmGl3D3cVPDv6efsfzwIw66zZXPXLi2P2v+2NfXgHYwVBJFmQXpRNe10z3v7hexudh5vgslO3rY5++nGmp+Hu1NbraR/A3T6AElLJnTKbwulT2Pzq28PtcQ+y+ZU3OPPLN8TkPAOERhRwaHd7MRlk0pzjG63rfDzefujtpGj3bzz8Hr/0zkNvJ51/xwVHneM6ZcoU3/79+y179+41FRcX+59//vmkQCAwqvc0Y8aMwRdeeMF1yy23dO3fv9+0Y8cO24EDB0wdHR0+OLKyc2PtC4gke3d0dMhvvPGG67vf/e6oOaNDbf+tb30r5/bbb2+12+1H1dn4zBlWgCmLpvD1B27nzb+9wY53tTQDs224csaQQR3LpGVXpHHz78/jyV+8S+7FU+gbp1EdiZzsZM4Vp/H2H54dcx1lHMIVcfctSxjk2HNwGGR2v7wuItIwRFpyApfedVXkcyio8NqfP+TgLs0Ap+Q7SZmZhS/DhixLuEfk7XqMJk771sW89rNHOeXrFxDKSMUD3PD0XRiTHCgWM0ISeAMKfeGBTN4XlnLW3Dyu+Ok1pBVmxOwvMTUBk8WA36v9zXgHAnQe7I3k2UYHTjU8vYuuRndMgJLFbooJNsspS4kYpq5GN87NLXjcXoZKDglg5+pavAN+ZpyhlT7zBxWib6s9M8r4HeKWVC6dE2P0JIOEsUKTLByaqbYMjgyEi32/JLgSCEVpogcDoYiMoT3PSWBEB3CUIGZUZ0wOV+8JBUPajz/I2397GYMlm+iauEpIpWz+NAwGzZUfaX/MsWK0QiO/+j0BUnOdtB3owdPnoWXfRkCl7KQyqj6qCq/jQwn5IznOfm8QIYHRJBMKKZHcZYMs4Uz4WBXKdI6AruaucV3s8a43FmlpaaHf/va3By699NJiSZKYN29ef11d3ahyRbfffnvH7t27rdOmTZuSk5PjC5d3O+Kyc4fa1xCBQICLLrqo+NZbb20dqloznu3XrFljra2tNT/wwAMH9+7de1R1DD+ThhW0gKbFly5m2zvb+NnK/8KZ7gTGTjcZiSXRzDU/P4N1Ve309cQXTxgPydOKD/n90Y5YIf55xAticrfHjph3vVsTMaoAnfW9dNb3YnWYsawohrTR7uiy8xbQuqeesiuW4VG1YxtzM7TanSEVp8kQERAACCoqkmCUUQXNhZuW76SxariD/OG/d3DBfywFiLiozX0+6utHj/ZHq1DFfvb1eGip7op8Ti900VTVScXCAuq3tZCS62BvSx8mbxARUhFBha6OYY/VUGenbvsBLHZLzAjP6swgEPUnOtIdDSArqlYIPXydUGMDpqaeNhslNOwKbqnpJjestRvyju6gjzxCdIBRKBCiq7GTPR/s5Nl7niKrJJu1T33AyReegsleGLNdSn4BB7btIsGZgKffo7nqo3Ye/ehEX+PkzMRIx0WW+ti7VpNNTMlJoWJBBd0t3bTWttJcVQ2yFuVtSTDhTE+galUdCVtbyJqTjUi3Y5LEqNrAOseO5KzkcZWDG+96h+Kqq67qveqqq3oBfv3rX6fKcQqLGI1GHnjggYjCyKxZsyomT57sPZKyc4fbV1R7CouLi70//vGP245k+zfffDNxx44dtpycnGnBYFB0dXUZ5s+fX75u3bpROshj8Zk1rENMP206/1v1f+zf3UBIUWNqTR4OIQkyPH0c2H0Qy+Siw28QZlJmIvnpYXH0aVlUFiXz16/dR+NRBFUdMXF2mJqfFvW1Su3uuM8ZHrePtrUN2FeWRUZlVpOMxSTT3e9n6Q+vpStqpBiKHjnFO4+oAKyRX6flJ8UY1ubqTuq3t5A/LRN/UEFVVdzrmohHtF5u3O9HqCEpYUP99j80kYv8ael0HHQzGFaTypqZiaMgjcv/orm2X//JQwAEvH5SJmWipqm4MpOQZSnScVFVFUJthLwmTDW5dO/tiChphSwGGvcOu0Rd6bFu2fnnzaKr1cD+zcNa5A17O8gtT6V9dzvJ09IPOQcZ3Rnb/NomvlZ6C45UB11NXdSF50vjBXb1d3ZxcPewapJskGna18yF/3EzgYAB2SBITHbh7ujCZDWjBpoxmM20Hegn0WUB2YYStGG0aNV7Ohs76WzsxGQNV0wS2vx1cpadruZ+rIPa8oEeL9VvaSk8s4tOHfO8dCaeZdct6374Bw/lHcodbLKalNOuWxZXmP5IaGxsNOTk5ATb29vlv/71r+lPPPHE/pHr9PX1Saqq4nA4lGeeecYhy7I6Z84cLzBm2bmxysYdal/f+MY3st1ut/z444/XjdXesbafM2eO984772wH2Lt3r+m8884rPRKjCp8DwwqQkp2CLdXJW1sasVuNpDotpCRacNpNI1xhsex4ayv/fckv8A36OOtHV5O8Yv4hj3Pa9CzsQ+XHovZbeep0Tr12GY/84KFR2yihiU0ji2eoP3xqDad/6WxszgSauwZhXg6TS1LY/cSOUet2N/eROhjEb5FxDAbpc5i0USnQ1e8n2W6izxMgEFIxG+XI6NK9qQnJH0JUphEyylhNw3/HQ8IUQ78DpOY7Y44bDCjIYXdhIBjC2uvj4P7RUz655al0NsXEQ0QudVKGHYNZxt0VW2zJOKKQgqfXh91ljRhW5+J8BqNG2yb7sCEUQtBS2xKpj+rKzMRgzUMIldWPvYo9yU7QHxt1nV0SO6c60ttfuXQqLbX9MYZVW09loMdLfkMfakkyFqNMV78vjis4dodBfzBi3IaYftNZGEwWVEXF6zAT6vew4af/wGwz4wvPlYeCIaaeOo+ulgBqeFStKLD7A20qoXhmMfW76gmGU6/O/ca1DPQaWXDplRiMEiarEVXpZu8H6zFaTPT3dGK2eJAkLa81wWWhu7UfFRVJ7UQ2mPC4B4A0dD4ZElMcofO+vrI5XlTwEOd9fWXzxwlcGuK2227L27Vrlw3gzjvvbJo+fboPYsvGNTU1Gc4888wySZLUzMzMwKOPPhpx9Y5Vdm6ssnFj7Wv//v3GP/7xj1lFRUXeysrKKQC33npr27e+9a2O8bbl4/K5MKygFbV22Ey09HgigTkGWVPhGfpJtBkjI4X3H32XP9/0h0he7Ms/eZhFdS0U3nAuYgxXlkGW4o40lGCI5+99dsLPKSqjJ8Jdb/1cy2tUIegLIBtlVAXM4TqsbWFj4k+1kVToImN2NsY0G976Xva/uR8loKDu76JjTwcHuj0UXz8TxTL8mHT1+0l1mOlw+zAbZfo82gtZMhmoee8A0oZGDCYZ2SDjKU3HmqhNs/h9Ad5+4DUadzcw9xsX402zkf+lueFOiHYO9jwtDcMXUFCMEqggZMHUL85h+182AFrHwWSVkY0W0guSWHTZdOoae0leUoCqqKiKys6HNsdcJ6vTwtIrp7NvfQNmi5G6Ha2RucChfUaTlJ9O617NuyBGjH7XPbeapVefw+bXtDJ58UeWIzScg8MHyCjKIDU3lc6m0SlEjhQbzdWddO1q4/SzyvD6g6zbNxy0ZDZKlGc7EUXpXPr9y/jwmbUc3H0Qk9WEPcWBtd0dmWv1uhJRhk4spDBYfZBdq3eQWZyJoqh0NnRQOn8qWWUVdIeVn4wmP6tf+AAA2ShTu7U2Zmqhva4es0NLqwkGFIIBHwajkZaaFrz9XpKykuhu7ubki1RMCQWEwp6Hgc4qNr3yobZfeYCy+d+Ic810jhVDqTQj81hNVpMykXmsL7zwQlzDFF02rry83F9XVze6R8/YZefGKhs31r4mTZoUUFV148jlR9KW6GMcaQ4rfI4MK0BOio2WqPnSYEilpdtDSzgC1WSQSHGYCbX38Ifr7h21/Qf/eIOuulZmfe9apIR4UY3x/bqhYAj5kLKHI83j+FBH/A9gtAyPXMxx2tjZp73QAyGFxDNLhsPn8p3M/NpJ9O1qZ99r1ZH1W5/bQ+bKcgI2LbZBoI2sUuxmoj2ywqJ1NpSQit8TBIK88/eNLL1uJuuffp8nf/o4HQc192jiSVMxl+QNt13VRp0JNq3t/kAIR7KNaV+aCyr0Cph2q1bFpSDHQUGuK2ZuU/b46WkNMtSgqbfOo/G1fUxdXkLZ9EwGuj2EQgqrH9sGQGZxMr4BP36vFm5kHAjgMQ93lhZ98xL2vKG5jctPKseWaKV6o3ZNgoEgtZu3092szeFa7JZItR+bw0xBZQbTTy3iw+d301LbTYLTgqffxw2/upENL60nrUCbg8wuSYmpkiPJAkeKDaPFwLLrZtPf7aGtc4BylxVXuo3ybCcWo4zdaiA0t4R3//EmhTOKOLj7INc+8SPU1CT8MQpUsc9iy4fau6GlpoWimcXMveAC+rt8EaMKEPD0RH4vP7kiRpYRYNOrayiZ207dthpK5laQWjSVgN9AdmkuNZurkcJzat1NreRMyaG3cwBvb03EqAK4O2LVq3Q+GW6458aWi++8pO2dKOWl065b1j0RI9VjzWeybJwQwgKsRqu9agD+rarqXUKIZOBfQCFQB1ymqurH9tMfS4oyEmnoGKC1N77ggD+o0NzlwRqMbyABdr+7je7G33LqPV/CkK65/BxWI84EE7IU33ge2NdM5fkLCAVDMeXkABCC9h4vQoC3o5eu/WH3oKoOz+ehzRtKkiCzNJvUgvS4xzkc9a19WIwyA3ECZKwmmY7BABS6mHbzHLb/bSMo2vxY+6vVTLp4CorNiNsTiMyzJtuHjXi8IJ6azc007Wvjzfv/EZPT2rFpLzklseXQVIZHjt6gQoLVSK8vGOlvDIlzbGtyk5pmxx6lmDToiz2fgEGQdk4ZfVYjlkQzlkQzoaCCzWFm0O2jvb6HpEw76YUuUmdk0meRSU4wRc7L50hk5S++SE6Oi3OuWwbAc799lr9/52+RwuRJmUl0t3STkpvK+V87GdloICU7MTKCza1IIxRUkCRBT9sAyVmJXPTdi/ENas9eYrKVi769hAe//xo5Zams/OoCfJ4As88oIRRUSbYYKCmKdSkPUbmggpIZhWx4eQNKSEFOTQJZwm41YDRItPd6R1XZqflg2EhmFGXT21IT7tBo5RBNtiT8A9p1tCfbMZqNTD1lKqAJVDTubSQ1N4U9a7TApR3vbsGyYQ85ZXnUbNY6HUMiGXs/3M3eD3ez4OJTWf/C+zHt2PzaJnQ+HRKTE5WPk1KjM37E4aT+hPamSFBVtV8IYQTeB24HLgK6VFW9Wwjx/4AkVVXvPNS+5s6dq27YsGGCmn50+AIhnl9ff8igIavPy1+Wf/eQ+0lIsnPWr27FOrmIZdOzsdvGjlZfu7uV9jGMeTRScxsPXfrTQ67zo1f/k2krZh12X/F4b0cz3VGu3GhSEs10Rsk6Gqq7qXlLiz2ouGgKg2mjK5H0vL2ejj0HGejsJS03m6A/ZdQ6AM17P2LfumHRjaJZk1j0xzsin1VFRVJV1A8bCfqDhBSVhHQ7wWnxOxAVuU7Kcl2Rz7sOdFPdrI2EBOBMMNEz4CfDZWVeeVpkHn3Q7eXlP6ylZf9wxPC02+bRG34YUh1mZEliwBvAajJwSmVmTHRsf08/297ayv997T4ql1bS2+7mB8/9EFvikVVpURWVrpY+OhvdpOY6Scq0fyzBBPegnz2NveSmJLCzvpvuAT+qqmLt9IAk6Klt4N+3/yGyfsncEqo3VI/aT+WSSvZ8uIeU7BTaDsQGuE1ZUgkQM4o1GA0xEqIZxZm01gx7FUvnT8Y3qMke+ga9tOzX3OsPtj5KUrquvnQkCCE2qqo6N3rZ1q1ba6ZNm9YtSdJEh0DqHAZFUcT27duTZsyYETftYzyFzlWGU/SM4R8VuAA4Nbz8QeBd4JCG9XjAbJSxmgyjRjmxHP4lN9DdzzO3/Y6z77oWMeP8iWvgYRgZ8QqHbu3QX5zHF6Q7PCLrcPtiDGmqwxIRph/ClucACSounIIp34lFEpERndkg4e0fZPUfn8Pd3kvFggoGuvqwuVz4B1oQQmC0ZhAKyciGII4Ue8y+azfvZ8b6nVjSU0hITqL9nTq8bh+hYIiAJsBMYrcX19S0uAanrqWPRKsxolJlNck4bUYGvCGWTstAliTq2/qpbnYTCqn0+wL4gyFSnVZK5+XQ1ejG7w1itBnpF2A1yiRYjJqIfShEvzdIutMSY1RVVWXLW3XYkzL58v99n5PPP3oReSEJUrIdpEyQtJ/DZmJuSSruQT+zi1PY3+qmrrmPqqe00WXAEyuT2lTVhCRLES+C2WbGYDIgmwyUzisblQcNgKri7nCTXZodyYMd2SnPLskiJTtZS8UyGUmfNAu/V1snPT8Rd0crB3dWs39TM3PP0g3rBLCjvb19SlpaWq9uXD85FEUR7e3tTmDM+dlxzbEKIWRgI1AC/ElV1Y+EEBmqqjYDqKraLIQ4Ov/kJ4yqqngOaVQZ93SnElJ46ccPUlyYwpKrThn/hkfBvVv/h+yK3LgVcEYq28b73BJVZxOgs8+H02ZkcGMTvYUuGCFGb3JZmPyV+QwEFAYHA+Sm2phfno7RoAVohUIKeX/9Bndf8FNko4FNr6wl4F0V2d5sMzP3vCVse30jNufoEd2z37yPpVefA9JwhGhOWQqtB3oI+kLMObecktm5MduoQDBsDBzh+VgBFGU5KMpMRFGH8y/Lc10YZcFHe9twD/oJhVQm57kIFScx5da5KL0+VKsBryxIMBvocHuRNC89ll4vu96s4UCSlcJzyzD1+KhbW0/15iYKp2ay+JKpqKqKAlqxgOMASQhcCWYCQYVEq4niTAdDJQNS83JJcCZgddq0iGJVUHpSGdvf3oYr3cWf996H0WxENsg07m3kr3fcz+bXYwPAVFWNaHBXLKxg79q9MYZ1yuIpkW0ql05l29tbWVYwlaFXjGQw4h20kVY0nar1jcw9q/yYX5PPOsFg8OaWlpa/trS0TCVaDUTnWKMAO4LB4M1jrTAuw6qqagiYKYRwAc8IIaaOtwVCiFuBWwHy8/MPs/axRwiB1SQz6J+4NJc/Xncv7tZuzr3jCx+v9tshSM1PHVGabHyoQG2zm+0HekhNNNMx5O4NKfR/1EjtmnoStrWSeUEFgXCkrMNmpMsTIFq7orG1nyKbmaTwKEuWJXIna/Ok/V19BEbUw/UN+vjgiTcB6GntpmLh5FEjIVVREVGn1FjViWyUuOD2heTPzBojFGz4vIb+F4AqRKyevoBBf4iu8Pmajdrco8UkUZDrxJMaZE9jLwRUTAbNWEtCwmCAwIFe2vZ3Yc+wE2rpw1jbQ+7kNFZ8aT4GWSALQUiFoKoiSR+v4P1EYzRIVOQ42V4zPJXW26Ey48yTWPPEsAxhZ2MHmcWZLLxkEVa7NXIOeZPz+Mmr/8Xqx1fzwDf/Qk9rD0CM8tWeNXuoXDqVnrYe1JBC074mnBlp5E0pxJFqZ+dqrSOvRl2XlpouskuSaaruomlfJ31dHhKTY/N7dY6MOXPmtAGfnLtMZ9wcUVSwqqo9Qoh3gbOAViFEVni0mgXEVR1QVfV+4H7Q5lg/ZnsnhJIsB9sOHCLO6ijekw9+9+8IIXHeHRccShHvqLAmWjHbD/0SGktRSjOq2rl29PlICs8/2joG2b1GG9MM9HhpfXEv6SvLMSWa8fpDMUZVVVXUDc289EIVZ9w6j7SiJE0MIJxPWb+zHnuSnf7u/lHHHyKnIodvPX4nsklGkiUkSUI2GKhe38jbDw6PjtLynEyalYV/Ap4Uh9WIzay5/a0mmfawu3tyfjKmFImWHg89A34SrQZOm6EVCAiFFHzFadSuPUh/az+FvhDuIhf1ezqQFJXKZZOG01g42njuY4sQgpL0RGrn5bBvveYGVqP0G2WDzDlfOYfLf3QFCUmj53eFEJxy5SkUzyzma5VfQVVVDKbYV0X1xn38o+Nxajbs48mfPY05sYiKJaXIUj9CMlO9fhdD5Q6MFhmz1ahVeArT360bVp3PLocdAgkh0sIjVYQQVmAFsAd4Hrg+vNr1wHPHqI0TTnmOE6ftUBKQR/aqnL5sOitvP59pSysxyRImSWAQAqOk/eQk20h1mCnLdpBkP3LpyQRnwmFHRSPtUCioUL2/g137OiAqIrd7wE+Gy4I3M5GMqcNyg/2dHvwfNSI8gVFVbyy1vRzc0kxPaz9P/uwd1jyupa2kT8pi3vnzySrNpmRuaUS3diTphRm899h7ODKcuNKcJCQlYnUmYEow4xghn2i2GhkKypbQtPTlqJ/x3BkR/inJcjA130W6wxxTY7WuxU13n5fFlRlIAqYVptDZq6WdyLKEzWXhiruWIcmCHQ9txmqQqF1Vx0fP72bNv7bR26G51Y1HoOL1SRP0hZi1XBNqMBj6qd26lylLKll48UL+tOvP3PL7L+FIdRJPdm6IvMl5LLlCk5lsqYkVszjlmtOQjTKlCypYeNlZKCEV32CAwX4zyXlTOeur1yFkmdzyVJSgSn+3l87GPgxh4ZC6HROSOqmjc1wynhFrFvBgeJ5VAp5QVfVFIcRa4AkhxE1APXDpMWznhCKEIDfFRu8osfQj389vN/2e4pmxgWHSCLdkWbaTsmxNaahnwMcbW5rGpVc8hCNt/IEeKnBwXztv/mkdA+FI5ORcB/azS0ESpCaaae31oqrgOKUA2STRuaeD1FwnDbvbsTX1kb2yDH9YUMLS5aHqzeEIUlWFbe/UUHlaMa7MRNIK0ln//DqaqhrJKslCkiUa98YGy3Q3d3HDr25EUsEoaUEzQ+cvG4df7BlFSYSCCq3VneSWpcbtTAzNbYZUlUPJLJskTV4wO8lGfqqdngE/b27Tgm6qmtxUNblJtBhw2Yys2d1KnyfA3NJUssMBUamFSdzw67Pp8wZYV9dN7vwcGtY1sunVfbjbB1h48VRSMu1Ix6nubYLLQndLHwsvLMPb18GKG+Yxdem4Z3AifOW+r5JemM6eNbvpbBh2L6dFyWTGUy/ravaSlDGsMQww0OvFlZFAT+sAW9/ax8nnTz6u3Og6OhPFeKKCtwGj8jtUVe0Elh+LRn0STM5z0e8NcKB9YPSX4/xbX3zZ4lFG9XC4EsycOi2L93e1EgjFjgzLphfw55q/ai8qSUISWkH0LfvaWb+3LZLrORQ0YjbKBEKKtp7QAmkmZTuo6/ZEjCpAV4Ob3MEAXpdleI4V8AUV7DkO2na0Rcp9DfZ6mVeWjitbKzPXXtvNfoNEKEryLxRQWPPaPvKWFETm4ACaq7VRzeRFUzDZ7DhSU3jvsVcI+AKk5KRgMRtR1OEMy4AvyECXhymLCph3bjlpubEyh/EQQiCjnauqqoRUYvYJWudCAaoaemjp9jC9MBmH1cC0gqSIW1wSYDYZ6O73RTSPN+zrYGZIIT9dO3eby4pVtSAf7MExJ5uGdY3IBok5Z5aRluMg4A8hH6cSK7JBomBqBgVTRxdBOBJsDhvX/eJ6biq4MWa5b8DHphfWUb5kCmIM7WafZ7Sue3vtTvo6e1n/7F6WXl7KlEVTPlb7dHSOR47T18KxRxKCeaVppDmt7G3sjUjzaYzPsq6844KjOnaaw0Jhup36jn58UQbLlWwnNWl0BK3a6h2uTxqF3WKgf4TYQ33HAM44Lsrtj21n0ilFiEku1HAQlBwIceCtGoIjArmScx2RkURmSQpX3LWMR374ZuT71IpU1Mmp1Lb1EzSPqgzF7g92cdZXb2HQ7efSH36ZgE+laX+IoD+EbJQI9fvYvqoOa6KZSTMzmbqo4FCXa0yEEBjCmojRYhoi/F1RRiIdbi8NHQPMKEomNyWBNIeFlh4PnX0+WuNULdpS04UkCXJTtRQhWQgWlqdTXavlvoaCCq/cv45zv3wSOaWHLL7xmWL2WXN47f5XI5/X/PsD/v2LJxBCUDi9mOK581EUE0aziVAoRMAbwp5kJSkrka4mN54+zTvUvK+eum2akM7zv3tON6w6n0k+1yHakhAUZyRy2tQsjnS6TJIl8ibnHX7FMZhVnMLKefkkWobTXEaXQzs0R+JOVhWV9p1tOKOOF9zcgm8wdlSRlDU6mCUpx8nyL86JfM5aXBAZ5VWsXBizrsFkZOU3b2DQrb1IJYOFrhYPnU1u3J2DuDsGqVrfyIxlk5hxWjH2OB2Jo2GosowU/h/AYpRZMiWTGWEFo0SrkVSHhan5SRRnJI65r03VnTR1ap4MBXA5LCyYkc03/nIhk2Zl4+4Y5OnfvE9/t4fA4VK3PiN85b6vcuN/fxGAnPJcmqrCQVGqSu3W/bz1wGMEBlvwDvhJTLJplXoO9tK4twOTxRiJ/s6rLItIH1ZvqKGvK47HSEfnBOdzO2KNxmKSWTYtm001nXT1+8Y1YL3yJ1eR4Bxdt/RIkIRgflkqa/e0MegP4Uw4qpq64+aS75+C1WnR6oSqKg+HBQSGMJhlrHYzbbXdpBfFVmyZvLiATW/sI/fc8ohSEYCSnc7861aw47kPsSYmMPvsJfR2DH/f3+1BkgU+T4DWui5sLguzVpQc0/M8HP6gQs+Aj8o8F7IsaO32jJK57Oj1RuZbQev0yGYD888rJ+AL0nagm/tuf5HUXAcnXzCFxCQrOWWf3RGsEIIvfPtCGqsa2PFu/Lz4UCiEBHQ199HVPFyBqLd9gNwKrT6td9BJ6fxm9q7dRmZJPq21PSQmf7y/Ix2d443P9Yg1muREMytmZHP+vHwKE40YzWNLFAJklWRNyHFTEi2cPjOHKblOjEcaCDPGkFUYJGypsakMZ946TzOqoFWTkQSX3bUsMj/mSLGR4LDQtK+TV//8IZ7+WMnDhgPdpJ5fEWNUh5h80zmsuOVaKk87C58v9iXZ1+UhuySFs2+dz6DbT1L62CPFTwqDLPAFFIQkaOgYpCzHSU6KNnLOTbFx6cJCZhUlR6J+RdSFzilN5bL/dwqnXjWTjEIXHQ1uXvzThzz7uw9i9JA/iwghuPbn12O2jXb/C0k6pAulsaqD7pY+Og72UrH4JFZ+83qKZ81g0xujpRV1dE50dMM6AotJZtqsIn788k8445YzSXCN7k1/42+3s+jSxRN2TLNRZkp+0uFXHMFY7zFhkkm/pJJpX5pL1qws8qdlUHpyrNtaUVR2t/Qx9cbZpOQ68A0G6A0Hcrk7Bnnz/vUoYXevAHILkynIsI88FIo/wOZfPspAd1fcRiVnJXLK5dMwW43MWjEJR8rEuH4/DpIQzC1JZXKOk4UV6ZgMEk6rCZNBYkqelqNrNMiRP45AcLTBnLqkkEu+u5SkDDvZJSl4+v288+jWT/ZEPgWcaU6+9Kcv84VvX8jcc4ala8//5o0YbWOW/ERVtAhwR4qN7hY/vR3Q1eKjflcbLbXHde0OHZ0jRncFj8GMZTOYsWwGc8+Zy2+vvRfvgBdVVTnl6lNZcePpE348SQj8bi+71hxACalaSkpIJRRSMJcnkxrOxYyOf5WEwGYePco1SBKKCr2AcX4OmS6rJvcXdnEHQwob97XT2uPFYZLpaR8g5IsNYOobDFB1oIvywuSImlRFXhJGg8TOAz0AePfU8d4vHqG1poXZZ8nY0ypGtWX6acWkFSRhMB5/aSlCCGxmAzazgWS7mcp8V8z8shACkwSWMbwX1kQzF9yxiN1rDmCyGKg46ejn3E8kpiyawpRFUwgFQ1ydciWD7kEMiUakbgUlMMaoXWjTAun5LtydsYXo1724m7NvnT+qIL2OzonKYavbTCTHQ3WboyHgC7DuhY/Y/Nomrvvl9ThSD58WcjT0tA/w12+/PGp50Q2zCMUxoFaTjCeONGOy3azNFUdRmG5nenEKvkCIdXvb6O73I0uC5se24+2JnV/MmZuNZX4OgZBKqsPMwimZMd/XHOjg2R8/zIePvBNZlpSZxMyzzyEUHH45miwGbrn3XKxHIYpxotBe34PZZsLmNB+XnYdjzfqt9TQPhvAqYDVI9K6qo6e2W1OnUiDgDyKEIDHJSm+49mxOWWokvQu0ftvF31lC4bTMsQ7zuSdedRud4xe9izgOjGYjiy5ZzKJLJs79G4/EJCt5k9M4uLs9ZrkQH7/zU9fWT4LFQH17P30eLZI1pKiUXjGN7fetZ/rySeSUpVK1v5NQsYtAWBu2w+2juXMgUkkGYLC6Mcaoglaz852/P8Lym64g4DeTXuBi5dcWfKaNKkBqrjNuLdrPC7Om5tK9vRnvgB9PUCHrrFIuqRw2kP/35ecIeIMRowqMGrGqKuxeW092aSomi/5K0jnx0edYjyNkg8TSy6aP/mIMuzqymPXhNthV38PIkOdeVeWCH5/G0qtnMGl+LmdePp38dHuc7YbxDozO/xxi6xtvMXNZPlf9aBlJceZkP2t8no0qgCwJLFEawJ19PqqbeiOfR3rEhATONBs5pSkkZyeSludESLB/axP9cXK1dXRORPTu4XFGZnESjlQb7qge/lgD1iP14uen2ZlamMTq7c34gwq+oMLSqZm47MNRnpIkyE62Udc6LKg/4AvS2eshxalFGnv7PBiMBkLBEKqqkuBMYMkVS8ibkk/FwsmUzi09sobpnLAIISJBbkOkO6Mi0sMPaWKylb5uD5Ik0dPaT3+3Nv2Qnu+KCG34vQH83qA+atU54dGf4OMMIQQnr5zM63/fGFlWUZiEHKdogCS0QCQhwhLz4f9lAQXh6riR8mqKQkGmg55+H96AgopKdrI1bu5sKKpEWHaylZJsJ0l2MxKaYML0ZTO45ufX8uQvnmDqKdOYd9485pwzl+SsZF379XPIll8/xjsPvUNGSRa504o49U+3Qfi5Gur8CSFABYvdRGKKDd9gAFVV6WnrJ7M4mabqTtY8swsh4ILbFx2xWIqOzvGEbliPQ6afVkzV+gbqdrQCUJjnQhxBLdaxSsiBViDcIAs8foWmLg/5PV5SnGZkaXj/oT4fJk8AkWhmbplmoYekAo2SIC0nhZMvXMCKG1cQ8AdxpbvGrGyj89mnra4NVVVp2ddEy74m7mlo54LvXsTcC05GDY9mlXCJwYEeLwMxwXIKg24fQX+Ik1ZOZsfqWjobeknLd33yJ6KjM0Hoc6zHKTOWTYr8PpFx25IkKM0erpbz4d421uxsJRgWN6jd1MTzv1jF/oe30vtKNV0HeyPDjhCgqNroI2tSFglJdlKyU3Sj+jmnvV4LtpMNMha7jaJZM9m1uoGANxCZY5WksV81HQ29pBe6aNnfiSQLtq2q/UTaraNzrNBHrMcp6QUuZINEKI44wcclL93O3sbeSAGA7gE/725rwtk6yEdPbI9Y8raaLp799Xtc/qPTSEjVooJFeOwqhDhkLU+dzwd9XR6mnHoO5YuHn1PvIDAIBqMBFS3fVxymCy9JgrodrRRMzaDyKIsy6OgcLxzWsAoh8oCHgEy0Kbb7VVX9vRBiJnAfYAGCwFdUVV13DNv6ucKZlsCURQVsPwa9d1mSKMlysDMq2tff52PjM7siPt+ppxaRWZxMSo6TBIcFg9AGrvocqk40e9cdHLPz9/YDG5GEwNvvw5aVQuHFUzSPB0SC04eeJluPj91P7GDu2WVYE0dLJuronEiMZ8QaBL6tquomIUQisFEI8QbwK+A/VVV9RQhxTvjzqceuqZ8/Vlw/G0eaDdSRSTLDHK2buCAjkX1Nbvzhl2Jwa1ukfJxskJhzdjmOtARUtIdEBQyS0A2rTgzVW5qRZDUylzpEVkkKez86GPncWdVJX3MfedfO0HKkw6sPbSUMEqqiUr+7jYLKj1dDVkfn02Y8hc6bgebw731CiN1ADtrfxNBknRNoOlaN/LwiGyROXjmZYLig90RilCXOmpNLIKTg8QWxzcqhdnMTO1fXkT0phcREc2QCXhVgELpR1YklEFKQluTT88Fqtrz4Ucx3BqOBhVdcHbPM3+dHPugmkD26EMNQPvDO9+pYdNFUPSpY54TmiOZYhRCFwCzgI+AO4DUhxK/RgqAWjr2lztEihMAAhMZIWh3r9RNv+eb9HXh8IRCaHGJRRiJOuzlSVaf05HxKT8pDEtpMqva/iuEQgSc6n1/c4Vq+zlTHqO/GkkqtfauGsi9Mpi8xNs0r2K/V7+3v9lK7rYVJMyemepSOzqfBuN+YQgg78BRwh6qqbuDLwDdVVc0Dvgk8MMZ2twohNgghNrS3t8dbRecwaGLw8U2oGudnrOU9/X7a3V7ae720Vney751aupvcIw+GipYLCyDro1SdMXAP+rGaZG7+7c0Uz5pEau5wPdqxDGtgMEDnzrbRX0Q9Zlvf3j/RTdXR+UQZl2EVQhjRjOojqqo+HV58PTD0+5PA/Hjbqqp6v6qqc1VVnZuWlvZx2/u5RRoSgZggDr5YxYdP7+SxH7/Jmn9tY6BzADUQQhbhPNiggiT0YCWdsRnwBvH4Q2xr6uPMW8/klj/cOvzlIaYuWra24AjrVQ+hhBSEUBCSQv3OJtydfWNsraNz/HNYwyq0N+sDwG5VVe+N+qoJOCX8+zJg38Q3Tyca4wTOO/nCbjwlpLLp1X38/TuvsndNPQYhCHkCDPT6dKOqc0gK0u24EkykO62cfds57Fs//AoYEoQYix0PbcEZtcqu595k1UMPs+rBh3n7bw/x5M8fP1bN1tE55oxnxLoIuBZYJoTYEv45B7gF+I0QYivwC+DWQ+1E5+MjCTExxlUZHcUJ8MFTO9i9pp62Az240kYXeNfRiSbRamRBeTr5aQm8/+T7/PuXTx7R9p2bhuMdTXZrzHev3f8afq9/Qtqpo/NJM56o4PcZO0ZmzsQ2R+dwyEIgSRx1pLDFKBFSYNpNc9j+gKZHLCSQDDLIghAqaXmuiW20zmeWRKuRgD9E3U4vp914o7YwPJ3wpf+9IKb6z573d/Ofp/9AW0UICncXceDOuvA2gvIFFexbX4USVPAOeKlaV8XUpVM/2RPS0ZkAdOWlExAhBDJjRwofbttAKESvQZD/pdi6yWkOC4kZdmwOPUFfZ3yoqsqap3cihBglFKGOSNESEoSCochnJRQi4AtEPu9du4fSuaXs27APSZLY8NJ63bDqnJDoeRQnKBM1+ymHRxQGSZBkN2E26jKFOkdGgtNCS00noFVNikQEj6rFGvu6GegdxGg2xu4s/DwqisL7T7w/ZnSxjs7xjD5iPUE5VGjIUCWaod8PRWmWg84+H64EE4lWIxku62G20NEZRgjB3LPLeOmPj7DxFW1qYdkXryYYMLDj7f2oKvgHAiBgoKc3ZtvWmhaySrJprh6ea5WiRrhtda1Uraui/KTyT+ZkdHQmCN2wnqBIaLmmoTHkDiNScVHLFkxOR1FVegf8qCpkJFmRJQlDOHcVVY15senojBd78mg1pff/tR0lKhDAlTG609ZS00z5ggr2rt0DQDAwnIZjSbCwf/N+3bDqnHDoruATFK24uWYExxKJGGJomdlkwGo2kpWcQFZKApIkoQIBVUVFjbiFdXSOlC/9z20Rt+7bf3uE9/750Kh1Rj5dU5ZUoioq+zdWUzKnBNDyWY1mI+YEM0IS/PsXT9Df3X+sm6+jM6HohvUzznhnqIZkDHV0jga7y85JF5wc+Xy4udHJiyaz672dAAT9QUw2M5MXTaZ2ay0BXwDfgA9Pn4eOgx08+5tnjmnbdXQmGt0VfAIjCcZlOQ+3mmDigqF0Pr+cccuZfPTch0xbNp1966owm1p45+G3Ac3Dkjs5D6PFhBIMsffDvTHbOtOTObDjAFmleaP221StS6HqnFjohvUERhICg9ByWj8OIrwvRY/A1PkYTDttGstvWMGu93fyi1V3c8fMb8Sk1wR9AQJjiD4k50zCaCuO+53ZZiQUVJANuoNN58RAf1JPcAyS+Ng3UQHdqOp8bGRZ5sZff5GFlywiLT8NJTQirxWQDaPTuYwWE96BsedRfYMBmqo7J7q5OjrHDH3E+hngcKPN8ZhMRQU9IFjn42K1W7nyrqvYv2k/NqcNAKPZSMAXwGQ2YjBrrxwhCYQkIYXLKMWT2Iwm6A8d8nsdneMJfcT6GWCoxNt4a7PGe4WFVBWJw4un6+gcjqA/SHdLF74BH3mT8xh0exjoGSAYCOIb8BEKhgj6gwS8fnwDPnwDvsN26sxW46FX0NE5jtAN62cAITR38Fh9/pHLx8p7FSMk6HR0jgaj2UiCy84Zt56Jp8+D3+MDwq5go4zRbESSY189h4siNtt0w6pz4qAb1s8IhjFyUMc7ih16EPSZVp2JoHBaIbf87layy3IiyyRJEApo+sAVCypiN9ANq85nCN2wfkYQgEkSGMThg5lUIKSohKLmtQb9Qdp7PQx6g7o+q87HxuawIRtkvvG32wFIyUmhbmvdUe9PN6w6JxKHDV4SQuQBDwGZaAGk96uq+vvwd18HvgYEgZdUVf2PY9hWnUOgKTFpua2qOlxWbiwT2eX2snZPG3arkQSzgdZeD0XpicyelMKgL0iCRX+R6Xx8EpwJLL5sMTWba2I6bCpgsVswGAwIWaKpag/V4ULpQ+upqopskEnJSUU2XvxpNF9H56gYT1RwEPi2qqqbhBCJwEYhxBtABnABMF1VVZ8QIv1YNlRn/AghMAAyKiqCkKqOFu0X2sutzxOgz6OV7vL6Q7oCk86Ek5SZRNO+pphlu9/fFfNZVbJidIKHUEIKCJAk3bmmc+IwnkLnzUBz+Pc+IcRuIAe4BbhbVVVf+Lu2Y9lQnSMjOhBJUjWx/mghiXhzr83dg7T1ekjUR6s6E0hWSfZh1xlZUi6a5OzkiWyOjs4x54i6gUKIQmAW8BFQBiwRQnwkhFglhJh3DNqnMwEIITBIAlPUT6rDwsKKdMpznJH1VGB/Sx9Ggx4ZrDNxnHnrWeRNHi1VGI04RAGIlJyUiW6Sjs4xZdwCEUIIO/AUcIeqqm4hhAFIAk4G5gFPCCGK1RGRL0KIW4FbAfLz8yes4TpHTnRJOLNBJjclgdyUBFRVparJjcNqJCfZhj+oEkcgR0fnqDCajSy4aCGmVzZwcHdDJP0mGkkSmKwmskuzMVlNDPlUupo6KZ4VX+pQR+d4ZVyGVQhhRDOqj6iq+nR4cQPwdNiQrhNCKEAqEKOYrarq/cD9AHPnztWn745DZhQmk2w3YzHKpOuFznWOAdf87Fqu+dm19LT18PzvnuOl/3kRT58n8r2qqPg9fuq21Y3adlRqjo7Occ54ooIF8ACwW1XVe6O+ehZYBrwrhCgDTEDHsWikzrFFCEF+mv3TbobO5wBXuovrfnE9533jCzx593uR4CRPTxO7RgQ0gRZVXDZfL3Suc2IxnhHrIuBaYLsQYkt42feBvwF/E0LsAPzA9SPdwDo6OjrxkISMzxPA79EigQ1y/LmH6++5IVJAXUfnRGE8UcHvM7aAzzUT2xwdHZ3PA/bk2CmHeD3y1Lw0zrjlzE+mQTo6E4ieHKajo/OJYzDKlMweljuMJ2lYNKNQz1/VOSHRn1odHZ1PhcrFBYdMs2mvbx/zOx2d4xndsOro6HwqpOY4uf5np5M/JZ2EJNeo70+99kx62sYugK6jc7yiG1YdHZ1Phe2ra3n/3ztYfPHUGOUlS4KF7NJspiyegTM14VNsoY7O0TFugQgdHR2diaRkdjb7NjbywTM7WXLZHLKLLZisJk67dhndzW4G3YFDuop1dI5XxCeZITN37lx1w4YNn9jxdHR0TjyC/hCtdd3klKV+2k05bhBCbFRVde6n3Q6d8aG7gnV0dI4rgoGQblR1Tmh0w6qjo3NcYUkwfdpN0NH5WOiGVUdHR0dHZwLRDauOjo6Ojs4EohtWHR0dHR2dCUQ3rDo6Ojo6OhOIblh1dHR0dHQmEN2w6ujo6OjoTCC6YdXR0dHR0ZlAdMOqo6Ojo6MzgXyikoZCiHbgwCd2wFhSgY5P6dgTgd7+T58T/Rz09n+6fJz2F6iqmjaRjdE5dnyihvXTRAix4UTW2tTb/+lzop+D3v5PlxO9/TrjR3cF6+jo6OjoTCC6YdXR0dHR0ZlAPk+G9f5PuwEfE739nz4n+jno7f90OdHbrzNOPjdzrDo6Ojo6Op8En6cRq46Ojo6OzjHnM2dYhRCXCiF2CiEUIcTcEd99TwhRLYTYK4Q4M2r5u+FlW8I/6Z98y2PaeTTnMEcIsT383R+EEOKTb/lohBAzhBBrw217QQjhCC8vFEJ4oq75fZ92W+MxVvvD38W9F8cTQoiZQogPw9d4gxBifnj5iXL947Y//N1xf/0BhBD/irrOdUKILeHlJ8Q90DkKVFX9TP0Ak4Fy4F1gbtTyKcBWwAwUAfsBOfxdzLqf9s9RnsM6YAEggFeAsz/t8wi3az1wSvj3LwI/Df9eCOz4tNv3Mdo/5r04nn6A14eeBeAc4N0T7PqP1f4T4vrHOZ/fAD8+ke6B/nPkP5+5EauqqrtVVd0b56sLgMdVVfWpqloLVAPz46z3qXOk5yCEyAIcqqquVbW/2IeAL3xyLT4k5cDq8O9vABd/im05GsZq/4nyPKnA0CjbCTR9im05GsZq/4ly/SOEvUiXAY992m3RObZ85gzrIcgBDkZ9bggvG+LvYXfMj44XN2ocxjqHnPDvI5cfD+wAzg//fimQF/VdkRBisxBilRBiySfftHExVvsP9zwdL9wB/LcQ4iDwa+B7Ud+dCNf/DuK3/0S5/tEsAVpVVd0XtexEuAc6R4jh027A0SCEeBPIjPPVD1RVfW6szeIsGwqJvlpV1UYhRCLwFHAt2qjvmDHB53CoczvmHOpc0NynfxBC/Bh4HvCHv2sG8lVV7RRCzAGeFUJUqqrq/kQaHcVRtv9TvebRHKb9y4Fvqqr6lBDiMuABYAUnzvUfq/3HzfWHcf89X0nsaPW4uQc6E8sJaVhVVV1xFJs1EDtayiXsVlJVtTH8f58Q4lE0l9IxNawTfA4N4d9HLv9EGMe5nAEghCgDzg1v4wN84d83CiH2A2XAhmPY1LgcTfs5xPP0SXOo9gshHgJuD398EvhreJsT4vqP1X6Oo+sPh3+GhBAG4CJgTtQ2x8090JlYPk+u4OeBK4QQZiFEEVAKrBNCGIQQqQBCCCNwHpr773gk7jmoqtoM9AkhTg67sa8Dxhr1fqIMRVgLISTgh8B94c9pQgg5/Hsx2rnUfFrtHIux2s8Y9+LTaeUhaQJOCf++DNgHJ871Z4z2c+Jc/yFWAHtUVY1M2ZxA90DnCDkhR6yHQghxIfBHIA14SQixRVXVM1VV3SmEeALYBQSBr6qqGhJCJACvhY2qDLwJ/OXTaj8c+TmEN/sy8A/AihYV/Mon3/K4XCmE+Gr496eBv4d/Xwr8lxAiCISA21RV7fo0GngY4rb/MPfieOIW4PfhEZMXuDW8/ES5/nHbfwJd/yGuYHTQ0olyD3SOEF15SUdHR0dHZwL5PLmCdXR0dHR0jjm6YdXR0dHR0ZlAdMOqo6Ojo6MzgeiGVUdHR0dHZwLRDauOjo6Ojs4EohtWHR0dHR2dCUQ3rDo6Ojo6OhOIblh1dHR0dHQmkP8PYSHoYN59IUYAAAAASUVORK5CYII=\n",
322 "text/plain": [
323 "<Figure size 432x288 with 1 Axes>"
324 ]
325 },
326 "metadata": {
327 "needs_background": "light"
328 },
329 "output_type": "display_data"
330 }
331 ],
332 "source": [
333 "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n",
334 " cmap='BuPu', legend=True,\n",
335 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)},\n",
336 " )"
337 ]
338 },
339 {
340 "cell_type": "code",
341 "execution_count": 12,
342 "metadata": {},
343 "outputs": [
344 {
345 "data": {
346 "image/png": "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\n",
347 "text/plain": [
348 "<Figure size 432x288 with 1 Axes>"
349 ]
350 },
351 "metadata": {
352 "needs_background": "light"
353 },
354 "output_type": "display_data"
355 }
356 ],
357 "source": [
358 "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n",
359 " cmap='BuPu', legend=True,\n",
360 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5), 'fmt':\"{:.4f}\"})"
361 ]
362 },
363 {
364 "cell_type": "code",
365 "execution_count": 13,
366 "metadata": {},
367 "outputs": [
368 {
369 "data": {
370 "image/png": "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\n",
371 "text/plain": [
372 "<Figure size 432x288 with 1 Axes>"
373 ]
374 },
375 "metadata": {
376 "needs_background": "light"
377 },
378 "output_type": "display_data"
379 }
380 ],
381 "source": [
382 "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n",
383 " cmap='BuPu', legend=True,\n",
384 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5), 'fmt':\"{:.0f}\"})"
385 ]
386 },
387 {
388 "cell_type": "markdown",
389 "metadata": {},
390 "source": [
391 "The new legends_kwds arg `fmt` takes a string to set the numerical formatting."
392 ]
393 },
394 {
395 "cell_type": "markdown",
396 "metadata": {},
397 "source": [
398 "## When first class lower bound < y.min()"
399 ]
400 },
401 {
402 "cell_type": "code",
403 "execution_count": 14,
404 "metadata": {},
405 "outputs": [
406 {
407 "data": {
408 "image/png": "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\n",
409 "text/plain": [
410 "<Figure size 432x288 with 1 Axes>"
411 ]
412 },
413 "metadata": {
414 "needs_background": "light"
415 },
416 "output_type": "display_data"
417 }
418 ],
419 "source": [
420 "ax = df.plot(column='HR60', scheme='BoxPlot', \\\n",
421 " cmap='BuPu', legend=True,\n",
422 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n",
423 " 'fmt': \"{:.0f}\"})"
424 ]
425 },
426 {
427 "cell_type": "code",
428 "execution_count": 15,
429 "metadata": {},
430 "outputs": [
431 {
432 "data": {
433 "text/plain": [
434 "BoxPlot \n",
435 "\n",
436 " Interval Count\n",
437 "----------------------\n",
438 "( -inf, -6.90] | 0\n",
439 "(-6.90, 3.21] | 353\n",
440 "( 3.21, 6.25] | 353\n",
441 "( 6.25, 9.96] | 353\n",
442 "( 9.96, 20.07] | 311\n",
443 "(20.07, 92.94] | 42"
444 ]
445 },
446 "execution_count": 15,
447 "metadata": {},
448 "output_type": "execute_result"
449 }
450 ],
451 "source": [
452 "bp = mapclassify.BoxPlot(df.HR60)\n",
453 "bp\n"
454 ]
455 },
456 {
457 "cell_type": "code",
458 "execution_count": 16,
459 "metadata": {},
460 "outputs": [
461 {
462 "data": {
463 "text/plain": [
464 "['(-inf, -7]',\n",
465 " '( -7, 3]',\n",
466 " '( 3, 6]',\n",
467 " '( 6, 10]',\n",
468 " '( 10, 20]',\n",
469 " '( 20, 93]']"
470 ]
471 },
472 "execution_count": 16,
473 "metadata": {},
474 "output_type": "execute_result"
475 }
476 ],
477 "source": [
478 "bp.get_legend_classes(fmt=\"{:.0f}\")"
479 ]
480 },
481 {
482 "cell_type": "markdown",
483 "metadata": {},
484 "source": [
485 "In some classifiers the user should be aware that the lower (upper) bound of the first (last) interval is not equal to the minimum (maximum) of the attribute values. This is useful to detect extreme values and highly skewed distributions."
486 ]
487 },
488 {
489 "cell_type": "markdown",
490 "metadata": {},
491 "source": [
492 "## Show interval bracket"
493 ]
494 },
495 {
496 "cell_type": "code",
497 "execution_count": 17,
498 "metadata": {},
499 "outputs": [
500 {
501 "data": {
502 "image/png": "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\n",
503 "text/plain": [
504 "<Figure size 432x288 with 1 Axes>"
505 ]
506 },
507 "metadata": {
508 "needs_background": "light"
509 },
510 "output_type": "display_data"
511 }
512 ],
513 "source": [
514 "ax = df.plot(column='HR60', scheme='BoxPlot', \\\n",
515 " cmap='BuPu', legend=True,\n",
516 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n",
517 " 'interval': True})"
518 ]
519 },
520 {
521 "cell_type": "markdown",
522 "metadata": {},
523 "source": [
524 "## Categorical Data"
525 ]
526 },
527 {
528 "cell_type": "code",
529 "execution_count": 18,
530 "metadata": {},
531 "outputs": [
532 {
533 "data": {
534 "image/png": "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9/Dw8DhDeTHa465fvz6yZs2a9ssvv7xt7ty5ZZr9rl27tI6OjvkPPfRQ8IEHHgguW7ZsXkdHx/xly5bN27p1qw/g1ltvrb700ktnrVu3bk5LS8vC66+/fjq4k4crr7yydc6cOQva29vnf+pTn6oDuOWWW2oWLlzYMXfu3PmvfvWrZ6VSKQng+9//fuWcOXMWzJ07d/7KlSvnns7nO9PwfPgeHh4eZyin0h73dHL0T9Qed9u2baEtW7bsnDdvnr53714NYOvWrb63vOUts/7nf/7n8LnnnpsbHh6WNm7cuEdVVX77299Gbr755ul/+MMfDgLs2rUruHXr1l2BQMCePXv2wg9/+MN9PT09ak9Pj7p///6dAIODgzLAtddeO/KhD31oEOCf//mfp9166601n/jEJ/o///nPN/7xj3/c19bWZoxue7bjafgeHh4eZygvVnvcxYsXZ+bNm6ePbjc8PKy88Y1vnP3jH//40LnnnpsrLpNf97rXzZozZ86Cm2++eca+fftKMQDnnXdesrq62goGg87s2bPzBw8e9M2bN69w7Ngx33XXXTfjrrvuilZWVloAmzdvDqxYsWJue3v7/Lvvvrt6586dfoCVK1emr7322tZbbrmlxnMtuHgC38PDw+MM5W/RHvcf//EfW5qamhZ94xvfaLjnnnsqHcchGAyWleyNRCJWY2Oj/uCDD4ZHl330ox9tuuCCC1L79+/fee+99x7Q9TG3wvjWt7IsO4ZhiNraWmvHjh27LrrootS3vvWture85S2tAO973/vavvGNbxzdt2/fro9+9KPdhUJBAvjpT3969D//8z+7jx07pi1dunRBb2/vWa/lewLfw8PD4wzlxWiP+/DDD4cnbquqqnP//fcf/NnPflZ92223VQEkk0l5+vTpOsDtt99e82zn6+npUSzL4h3veEf8P//zP7u2b98eBMhms1Jzc7NRKBTEz3/+81Lg4M6dO32vfOUrM1/72te6KysrzUOHDp31rXI9H76Hh4fHGcpoe9zbHz7UdKJtnkt73Jtvvrms9e4b3vCGke9///u1LS0thYnbR6NR+w9/+MOBCy+8sD0cDtsf/ehHe9/znve03XrrrQ3r1q1LPtv5Ojs71Xe/+92ttm0LgE9/+tPHAT72sY91r169uqOpqUnv6OjIptNpGeCmm26a3tnZ6XMcR5x33nnJc845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iKIozs0331yKLj/33HNzr3nNa9K2bfP+979/+pw5cxa0t7fP/+53vzupu+Ctt95a/Q//8A/No+8vuuii2evXr4+A27L3hhtuaFqwYEHHueee2/7AAw8EV69ePXf69OmLRtsAA3R1danr1q2b09rauvBDH/pQ6XsLBoPLABKJhLR27dr2+fPnd7S3t8//yU9+UnEq35FXWtfDw+NF4S9DSb59rJ9hw9XeO3N5XlkVIWVaKELQ6FfZl84xaJgIZC6sivCn4VRp//ESygF63nI9B/xB/hSspkFTuSdcR3JWNTKwriLMnkyeQWOsUdrRpplMa5lNVJHoO7ivtDyfSlE9vYXU4ACx+gYSfWPKb8+BvTR1LKRr9w4QguWvewOJvh72/fURDEd2N1KnLOv+4nAq7XGfhxz98e1xxy+/5ZZbGm699dYjl156aSaRSEjBYND+7Gc/23XLLbfUP/DAAwfAFZhPPfVUeNu2bTvr6+ut8U12brnlltojR474du7cuUtVVfr6+uT6+nrr29/+dv1DDz20r7GxsawDXjabFe9///vb/vjHP+5dvHhx4e/+7u9av/SlL9V+8pOf7H/sscfCl112WeKd73xnWaG4bdu2BZYsWTKlReKOO+6o2L59e2D37t07e3p6lNWrV3dceuml6ZO9LrlcTrroootS3/72t7suueSSWf/2b//W9Mgjj+x76qmn/O985zvbrr322kRxDKHt27fvDIfD9rJly+a/4Q1vSIy3kgSDQfu+++47UFVVZff09Chr1qyZd80118Ql6eTma57A9/Dw+JuQtWzeuf0wl1ZH2ZTM8Jv+OCFJcE5FiBHdJCBL/GU4xdpYqGTenx3U0G1Xs+83yruayhR99sEwu6/9J34vu4I24DiYjkOy6AawgKRloTsOweKD8ZxYiMcTGZoueD0zNvyx/LiaD0mSqGubheYPkOjrdV8HAsR7e7D0Apff9DF8wTCyItO9fzcti5chlGJTuKd+DPNeD7ETl6//m/EitscdzznnnJP+8Ic/POPqq68efutb3zoya9asKU3w69atS9bX108KJPzLX/4Svf766wdU1R3mVNuMZ+vWrf7p06cXRk3x73jHO4a++c1v1nGaweWPPPJI5Oqrrx5WFIUZM2aYa9asST/66KPBlStX5k5mf1VVnb//+79PAixYsCDn8/lsn8/nrF69OtfV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\n",
535 "text/plain": [
536 "<Figure size 432x288 with 1 Axes>"
537 ]
538 },
539 "metadata": {
540 "needs_background": "light"
541 },
542 "output_type": "display_data"
543 }
544 ],
545 "source": [
546 "ax = df.plot(column='STATE_NAME', categorical=True, legend=True, \\\n",
547 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n",
548 " 'fmt': \"{:.0f}\"}) # fmt is ignored for categorical data"
549 ]
550 }
551 ],
552 "metadata": {
553 "kernelspec": {
554 "display_name": "Python 3",
555 "language": "python",
556 "name": "python3"
557 },
558 "language_info": {
559 "codemirror_mode": {
560 "name": "ipython",
561 "version": 3
562 },
563 "file_extension": ".py",
564 "mimetype": "text/x-python",
565 "name": "python",
566 "nbconvert_exporter": "python",
567 "pygments_lexer": "ipython3",
568 "version": "3.9.1"
569 },
570 "nbsphinx": {
571 "execute": "never"
572 }
573 },
574 "nbformat": 4,
575 "nbformat_minor": 4
576 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Choropleth classification schemes from PySAL for use with GeoPandas\n",
7 "<img src=\"http://pysal.readthedocs.io/en/latest/_static/images/socal_3.jpg\" width=\"200\" align=\"right\" alt=\"PySAL image\" title=\"PySAL image\">\n",
8 "PySAL is a [Spatial Analysis Library](), which packages fast spatial algorithms used in various fields. These include Exploratory spatial data analysis, spatial inequality analysis, spatial analysis on networks, spatial dynamics, and many more.\n",
9 "\n",
10 "It is used under the hood in geopandas when plotting measures with a set of colors. There are many ways to classify data into different bins, depending on a number of classification schemes.\n",
11 "\n",
12 "<img src=\"http://alumni.media.mit.edu/~tpminka/courses/36-350.2001/lectures/day11/boston-kmeans.png\" width=\"300\">\n",
13 "\n",
14 "For example, if we have 20 countries whose average annual temperature varies between 5C and 25C, we can classify them in 4 bins by:\n",
15 "* Quantiles\n",
16 " - Separates the rows into equal parts, 5 countries per bin.\n",
17 "* Equal Intervals\n",
18 " - Separates the measure's interval into equal parts, 5C per bin.\n",
19 "* Natural Breaks (Fischer Jenks)\n",
20 " - This algorithm tries to split the rows into naturaly occurring clusters. The numbers per bin will depend on how the observations are located on the interval."
21 ]
22 },
23 {
24 "cell_type": "code",
25 "execution_count": 1,
26 "metadata": {
27 "ExecuteTime": {
28 "end_time": "2017-12-15T21:29:37.736444Z",
29 "start_time": "2017-12-15T21:29:37.716444Z"
30 }
31 },
32 "outputs": [],
33 "source": [
34 "import geopandas as gpd\n",
35 "import matplotlib.pyplot as plt"
36 ]
37 },
38 {
39 "cell_type": "code",
40 "execution_count": 2,
41 "metadata": {
42 "ExecuteTime": {
43 "end_time": "2017-12-15T21:29:39.866422Z",
44 "start_time": "2017-12-15T21:29:39.846422Z"
45 }
46 },
47 "outputs": [
48 {
49 "name": "stdout",
50 "output_type": "stream",
51 "text": [
52 "Observations, Attributes: (49, 21)\n"
53 ]
54 },
55 {
56 "data": {
57 "text/html": [
58 "<div>\n",
59 "<style scoped>\n",
60 " .dataframe tbody tr th:only-of-type {\n",
61 " vertical-align: middle;\n",
62 " }\n",
63 "\n",
64 " .dataframe tbody tr th {\n",
65 " vertical-align: top;\n",
66 " }\n",
67 "\n",
68 " .dataframe thead th {\n",
69 " text-align: right;\n",
70 " }\n",
71 "</style>\n",
72 "<table border=\"1\" class=\"dataframe\">\n",
73 " <thead>\n",
74 " <tr style=\"text-align: right;\">\n",
75 " <th></th>\n",
76 " <th>AREA</th>\n",
77 " <th>PERIMETER</th>\n",
78 " <th>COLUMBUS_</th>\n",
79 " <th>COLUMBUS_I</th>\n",
80 " <th>POLYID</th>\n",
81 " <th>NEIG</th>\n",
82 " <th>HOVAL</th>\n",
83 " <th>INC</th>\n",
84 " <th>CRIME</th>\n",
85 " <th>OPEN</th>\n",
86 " <th>...</th>\n",
87 " <th>DISCBD</th>\n",
88 " <th>X</th>\n",
89 " <th>Y</th>\n",
90 " <th>NSA</th>\n",
91 " <th>NSB</th>\n",
92 " <th>EW</th>\n",
93 " <th>CP</th>\n",
94 " <th>THOUS</th>\n",
95 " <th>NEIGNO</th>\n",
96 " <th>geometry</th>\n",
97 " </tr>\n",
98 " </thead>\n",
99 " <tbody>\n",
100 " <tr>\n",
101 " <th>0</th>\n",
102 " <td>0.309441</td>\n",
103 " <td>2.440629</td>\n",
104 " <td>2</td>\n",
105 " <td>5</td>\n",
106 " <td>1</td>\n",
107 " <td>5</td>\n",
108 " <td>80.467003</td>\n",
109 " <td>19.531</td>\n",
110 " <td>15.725980</td>\n",
111 " <td>2.850747</td>\n",
112 " <td>...</td>\n",
113 " <td>5.03</td>\n",
114 " <td>38.799999</td>\n",
115 " <td>44.070000</td>\n",
116 " <td>1.0</td>\n",
117 " <td>1.0</td>\n",
118 " <td>1.0</td>\n",
119 " <td>0.0</td>\n",
120 " <td>1000.0</td>\n",
121 " <td>1005.0</td>\n",
122 " <td>POLYGON ((8.62413 14.23698, 8.55970 14.74245, ...</td>\n",
123 " </tr>\n",
124 " <tr>\n",
125 " <th>1</th>\n",
126 " <td>0.259329</td>\n",
127 " <td>2.236939</td>\n",
128 " <td>3</td>\n",
129 " <td>1</td>\n",
130 " <td>2</td>\n",
131 " <td>1</td>\n",
132 " <td>44.567001</td>\n",
133 " <td>21.232</td>\n",
134 " <td>18.801754</td>\n",
135 " <td>5.296720</td>\n",
136 " <td>...</td>\n",
137 " <td>4.27</td>\n",
138 " <td>35.619999</td>\n",
139 " <td>42.380001</td>\n",
140 " <td>1.0</td>\n",
141 " <td>1.0</td>\n",
142 " <td>0.0</td>\n",
143 " <td>0.0</td>\n",
144 " <td>1000.0</td>\n",
145 " <td>1001.0</td>\n",
146 " <td>POLYGON ((8.25279 14.23694, 8.28276 14.22994, ...</td>\n",
147 " </tr>\n",
148 " <tr>\n",
149 " <th>2</th>\n",
150 " <td>0.192468</td>\n",
151 " <td>2.187547</td>\n",
152 " <td>4</td>\n",
153 " <td>6</td>\n",
154 " <td>3</td>\n",
155 " <td>6</td>\n",
156 " <td>26.350000</td>\n",
157 " <td>15.956</td>\n",
158 " <td>30.626781</td>\n",
159 " <td>4.534649</td>\n",
160 " <td>...</td>\n",
161 " <td>3.89</td>\n",
162 " <td>39.820000</td>\n",
163 " <td>41.180000</td>\n",
164 " <td>1.0</td>\n",
165 " <td>1.0</td>\n",
166 " <td>1.0</td>\n",
167 " <td>0.0</td>\n",
168 " <td>1000.0</td>\n",
169 " <td>1006.0</td>\n",
170 " <td>POLYGON ((8.65331 14.00809, 8.81814 14.00205, ...</td>\n",
171 " </tr>\n",
172 " <tr>\n",
173 " <th>3</th>\n",
174 " <td>0.083841</td>\n",
175 " <td>1.427635</td>\n",
176 " <td>5</td>\n",
177 " <td>2</td>\n",
178 " <td>4</td>\n",
179 " <td>2</td>\n",
180 " <td>33.200001</td>\n",
181 " <td>4.477</td>\n",
182 " <td>32.387760</td>\n",
183 " <td>0.394427</td>\n",
184 " <td>...</td>\n",
185 " <td>3.70</td>\n",
186 " <td>36.500000</td>\n",
187 " <td>40.520000</td>\n",
188 " <td>1.0</td>\n",
189 " <td>1.0</td>\n",
190 " <td>0.0</td>\n",
191 " <td>0.0</td>\n",
192 " <td>1000.0</td>\n",
193 " <td>1002.0</td>\n",
194 " <td>POLYGON ((8.45950 13.82035, 8.47341 13.83227, ...</td>\n",
195 " </tr>\n",
196 " <tr>\n",
197 " <th>4</th>\n",
198 " <td>0.488888</td>\n",
199 " <td>2.997133</td>\n",
200 " <td>6</td>\n",
201 " <td>7</td>\n",
202 " <td>5</td>\n",
203 " <td>7</td>\n",
204 " <td>23.225000</td>\n",
205 " <td>11.252</td>\n",
206 " <td>50.731510</td>\n",
207 " <td>0.405664</td>\n",
208 " <td>...</td>\n",
209 " <td>2.83</td>\n",
210 " <td>40.009998</td>\n",
211 " <td>38.000000</td>\n",
212 " <td>1.0</td>\n",
213 " <td>1.0</td>\n",
214 " <td>1.0</td>\n",
215 " <td>0.0</td>\n",
216 " <td>1000.0</td>\n",
217 " <td>1007.0</td>\n",
218 " <td>POLYGON ((8.68527 13.63952, 8.67758 13.72221, ...</td>\n",
219 " </tr>\n",
220 " </tbody>\n",
221 "</table>\n",
222 "<p>5 rows × 21 columns</p>\n",
223 "</div>"
224 ],
225 "text/plain": [
226 " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n",
227 "0 0.309441 2.440629 2 5 1 5 80.467003 \n",
228 "1 0.259329 2.236939 3 1 2 1 44.567001 \n",
229 "2 0.192468 2.187547 4 6 3 6 26.350000 \n",
230 "3 0.083841 1.427635 5 2 4 2 33.200001 \n",
231 "4 0.488888 2.997133 6 7 5 7 23.225000 \n",
232 "\n",
233 " INC CRIME OPEN ... DISCBD X Y NSA NSB \\\n",
234 "0 19.531 15.725980 2.850747 ... 5.03 38.799999 44.070000 1.0 1.0 \n",
235 "1 21.232 18.801754 5.296720 ... 4.27 35.619999 42.380001 1.0 1.0 \n",
236 "2 15.956 30.626781 4.534649 ... 3.89 39.820000 41.180000 1.0 1.0 \n",
237 "3 4.477 32.387760 0.394427 ... 3.70 36.500000 40.520000 1.0 1.0 \n",
238 "4 11.252 50.731510 0.405664 ... 2.83 40.009998 38.000000 1.0 1.0 \n",
239 "\n",
240 " EW CP THOUS NEIGNO geometry \n",
241 "0 1.0 0.0 1000.0 1005.0 POLYGON ((8.62413 14.23698, 8.55970 14.74245, ... \n",
242 "1 0.0 0.0 1000.0 1001.0 POLYGON ((8.25279 14.23694, 8.28276 14.22994, ... \n",
243 "2 1.0 0.0 1000.0 1006.0 POLYGON ((8.65331 14.00809, 8.81814 14.00205, ... \n",
244 "3 0.0 0.0 1000.0 1002.0 POLYGON ((8.45950 13.82035, 8.47341 13.83227, ... \n",
245 "4 1.0 0.0 1000.0 1007.0 POLYGON ((8.68527 13.63952, 8.67758 13.72221, ... \n",
246 "\n",
247 "[5 rows x 21 columns]"
248 ]
249 },
250 "execution_count": 2,
251 "metadata": {},
252 "output_type": "execute_result"
253 }
254 ],
255 "source": [
256 "# We use a PySAL example shapefile\n",
257 "import libpysal as ps\n",
258 "\n",
259 "pth = ps.examples.get_path(\"columbus.shp\")\n",
260 "tracts = gpd.GeoDataFrame.from_file(pth)\n",
261 "print('Observations, Attributes:',tracts.shape)\n",
262 "tracts.head()"
263 ]
264 },
265 {
266 "cell_type": "markdown",
267 "metadata": {},
268 "source": [
269 "## Plotting the CRIME variable\n",
270 "In this example, we are taking a look at neighbourhood-level statistics for the city of Columbus, OH. We'd like to have an idea of how the crime rate variable is distributed around the city.\n",
271 "\n",
272 "From the [shapefile's metadata](https://github.com/pysal/pysal/blob/master/pysal/examples/columbus/columbus.html):\n",
273 ">**CRIME**: residential burglaries and vehicle thefts per 1000 households"
274 ]
275 },
276 {
277 "cell_type": "code",
278 "execution_count": 3,
279 "metadata": {},
280 "outputs": [
281 {
282 "data": {
283 "image/png": "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\n",
284 "text/plain": [
285 "<Figure size 432x288 with 1 Axes>"
286 ]
287 },
288 "metadata": {
289 "needs_background": "light"
290 },
291 "output_type": "display_data"
292 }
293 ],
294 "source": [
295 "# Let's take a look at how the CRIME variable is distributed with a histogram\n",
296 "tracts['CRIME'].hist(bins=20)\n",
297 "plt.xlabel('CRIME\\nResidential burglaries and vehicle thefts per 1000 households')\n",
298 "plt.ylabel('Number of neighbourhoods')\n",
299 "plt.title('Distribution of neighbourhoods by crime rate in Columbus, OH')\n",
300 "plt.show()"
301 ]
302 },
303 {
304 "cell_type": "markdown",
305 "metadata": {},
306 "source": [
307 "Now let's see what it looks like without a classification scheme:"
308 ]
309 },
310 {
311 "cell_type": "code",
312 "execution_count": 4,
313 "metadata": {
314 "ExecuteTime": {
315 "end_time": "2017-12-15T21:29:54.097280Z",
316 "start_time": "2017-12-15T21:29:53.766283Z"
317 },
318 "tags": [
319 "nbsphinx-thumbnail"
320 ]
321 },
322 "outputs": [
323 {
324 "data": {
325 "text/plain": [
326 "<AxesSubplot:>"
327 ]
328 },
329 "execution_count": 4,
330 "metadata": {},
331 "output_type": "execute_result"
332 },
333 {
334 "data": {
335 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAADtCAYAAACMJt+5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABusElEQVR4nO2dd3gU1frHP2e2ZDfZ9EYSQhIglNClW6gqiCIqFsR61Yt67b397A2vXnu5145drIAiTUVURAGlF+kQkpBet++c3x+7ICVlN9lNNjif55lnd2Znzjmb7H73zHveIqSUaGhoaGiED0pbD0BDQ0ND41A0YdbQ0NAIMzRh1tDQ0AgzNGHW0NDQCDM0YdbQ0NAIM/RtPQANDQ2NtqSrENLq57mFMF9KOT6kA0ITZg0Njb85VmCan+c+CEmhHMt+NGHW0ND4WyMAXVsP4jA0YdbQ0PjbE26LbZowa2ho/K0RaMKsoaGhEXaIth7AYWjCrKGh8bdHmzFraGhohBnajFlDQ0MjjBCEnxCG23g0NDQ0Wh1txqyhoaERRmheGX6SlJQks7Oz23oYGhoaYc7KlStLpZTJLW1HE2Y/yM7OZsWKFW09DA0NjTBHCLErKO0Eo5EgEpbCrKGhodFaaCHZGhoaGmGIZsrQ0NDQCCO0xT8NDQ2NMESzMWtoaGiEGdqMWUNDQyOM0EwZGhrNYMaMGVRWVmIymTCbzZhMpkO2g49FRUWRlpaGEOF2c6oRrmheGRoazeC2W2/mlBP6EmE0Yne6sDlc2B0u7E4XdrvT+9zhwu5wsqewmG+//Y7jjjuurYet0Y7QZswaGgGSndWJK88bw7D+uU2eO+bSx3E6na0wKo2jiXC7vwq3HwoNjSPIzs5m594Sv85VVYlOF243phrhzH4bsz9ba6HNmDXCnuzOXdmZv8evcz0eVRNmjYAJtxmzJswaYU/nzl1YuXi1X+dKKbnlphuItkThcrtwu9243R5MpggslmgsFgtRlmiio2OwRMcQHR3N4MGDGTNmTIjfhUY4E26mA02YNcKe7OxsPiso8+vc/z5wKXuKytDrFAx6PXq9gk5RcDjd1Frt1NTZqLXaqbNWUltTxNq1Rcz64lOWLlse4nehEa4E2ytDCBEHvA70BiRwGbAZ+BjIBnYC50opKxpqQxNmjbAnJyeHnXuK/Tq3d7dMenfL9Lvtleu2c+XDHzZ3aBpHCUGeMT8HzJNSni2EMAKRwN3At1LK6UKIO4E7gTtaaTwaGsEnKyuLPYXFeDxq0Ns2m4zY7fagt6vRfgjm4p8QIgYYAbwBIKV0SikrgUnADN9pM4AzGmunyb6EEG8KIYqFEOvqee1WIYQUQiQ1cO1OIcRaIcQqIYSWYFmjWZhMJhLi4ygsafDOr/ltRxiw2TRh/rsj/NyAJCHEioO2aYc11RkoAd4SQvwhhHhdCBEFpEopCwF8jymNjccfU8bbwIvAO4e8ESEygZOA3U1cP1pKWepHPxoaDZKTncWO/BI6dkgMarvmCCN2hyOobWq0P4Tip1+GKkullIMaOUMPHANcJ6X8VQjxHF6zRUA0OWOWUi4Byut56RngdrzGbQ2NkJKTk8OOfP/szIGgzZg1hACdTvFr84N8IF9K+atv/1O8Qr1PCJHm7U+kAY1+mJtlYxZCnA7slVI25cMkgQVCiJX1TPkPb3Pa/tuDkhL/ggk0/j5k5XRhl59BJoFgNmkzZg0QQvi1NYWUsgjYI4To7js0FtgAzAYu8R27BJjVWDsBe2UIISKBe4CT/Tj9OCllgRAiBVgohNjkm4EfgZTyVeBVgEGDBmmzcI1D6Ny5Cz9+82vTJwZIhNGA0+lCVVUURVsL/3si/Ddl+Md1wPs+j4ztwD/wToJnCiEux2v+PaexBprjLtcFyAFW+35BOgK/CyGG+H4tDiClLPA9FgshvgCGAPUKs4ZGY2RnZ/Pu3uAvVQghiIgw4nA4MJvNQW9fo30QzGyEUspVQH126LH+thHwFEFKuVZKmSKlzJZSZuO1qRxzuCgLIaKEENH7n+OdYR/h2aGh4Q85OTnsDIGNGcAUYcRms4WkbY12gPAu/vmztRb+uMt9CPwCdBdC5Pum4g2dmy6EmOvbTQV+EkKsBn4DvpZSzgvGoDX+fmRmZlJYXIbL5Q5622ZThObL/DdGEDwbc7Bo0pQhpTy/idezD3peAEzwPd8O9Gvh+DQ0ADAYDHRISWZPURmdM1OD2rY2Y/6bIwSKfx4XrUZ4jUZDoxFycvxP/xkIWvSfhqIIv7bWQsuVodFuyMnpzI784AuzNmP+e7PflBFOaMKs0W7IyunCzvw1QW/XHKHNmP/WiAAi/1oJzZSh0W7o3LkzOwvrC0JtGd7oP23G/Hem3S3+aWgcjpSSffv2sXPnTnbt2sWOHTvYtXM7u3ZsZ+euXYDgg49m0r9//6D2m52dzc784PkySymxO1zodIo2Y/5b07qucP6gCbNGwPzwww+MHj2aXrlZ9OicRlZqDHnpCZzSqydZacexbmsBJ584hhtvvpXBgwcjpWT16tVsWLuKuIQkunXvcWAGotfrMRgMB6Lu3G43VVVVVFZWUlVZQWVlOXarFYfDQWVlJZu27mrx+F//5DtuePQdHA4nRqOBSLOZuLi4Frer0T4RgrDzytCEWSNgRo4cyWX/uITdm//g3YcvIsJoOOT1Prkdye2Uwrtff89jsz9EEQo9c5IZlJNKZfVuVn3vjTNSpYrbI3G5PUhfEL5OEcRaTMRGGUmzmOmeaSbSFEeEUY9B34mzfviJyupa4mIszR7/7oJSbr31Nh544AGtPqAGoC3+aRwFCCH436uvc945k7n0/nf58PHLjjhnUK9sBvXKDnrfHZJiWbZqK+NH9G92G06Xh0SLRRNljQO0piucP4TX/F2j3aDX63n7nff4YlHr1j/ISk9ixfrtLWrD6fZgNBqDNCKNdo+fC3/a4p9Gu0BKSUQrC1y3rFQ2bt3bojYcTrcmzBoHEGjuchpHEU6n8wj7cqjpnpXCzhYGmThdHiIiIoI0Io12jwBFJ/zaWgttxqzRbJxOJ0ZD636EsjOSKKuqbVEbTpdmytA4FG3xT+Oowel0YjS2sjCnJ1JdY21RGw6XW5sxaxxCuzNltLBK9nghxGYhxFYhRMAFCTXCm7aYMedkJFFd2zJhdro0G7PGXwgEivBvay38sTG/DYw//GBTVbKFEDrgJeAUIA84XwiR1+yRaoQdTqcTg751hTk1MQaXR6WopLLZbWimDI1DCMNE+f7kY14ihMiu56X9VbIbKio4BNjqy8uMEOIjYBLewoQaRwGxsbEUFJdTUFxJekpcq/QphCA5PpqptzxPt5x0LGYTMRYT0VFmoi1m4mIiibVEEh8TRXyMhfjYKOJiIg+p5+d0ujRThsYhHBU25oOrZDfyhjKAPQft5wNDG2lzGjANoFOnTs0ZlkYrk5mZybXXXseVj37I7GevarUPt8PuYMe2fJKEh912F1anC5vDTZ3Thd3pxuZ043C5cbg8OD0qbo+KXqegVxT0OoGUUF4e/GRIGu2ToyIkO4Aq2fV9Sxusfq1VyW6f3Hvf/QwdPJv3vl7GRacNb5U+UxJiuP3kPlx8Qk+/zldVid3lxuoT7bNeXEiHDh1CPEqN9kP4JTFqzs/EwVWyd/JXlezDP+n5QOZB+x2BguYMUiN8MRqNPPTIY7w1+7dW6zPaYmZftf8LgIoiiIwwkBRtJjMxmkhzBBs3bmTz5s2Ulpbi8XhCOFqN9kC7j/yTUq4FUvbv+8R5kJTy8HyMy4FcIUQOsBeYAkxt/lA1wpWTTjqJK/95Oas27aF/j8ymL2ghyfEWCiqb75lxcs903nruCf7zyP2UVtdSXWcj1mIhMT6OxIR4EhMTSUxKJiElhcSkFJKSkkhMTCQpKYnk5GTy8vIOsVlrtHMEiDD7fzYpzL4q2aOAJCFEPnC/lPKNBs5NB16XUk6QUrqFENcC8wEd8KaUcn3whq4RLphMJm674y6ueOhFHrnmNJLjo4m1mOmSmRySWUZ6Sjz5e4qaff09Ewdwz8QBB/Y9qkpFnYOyWvtfW00pZfvyKdvuYJfVTZnVRVmtnVXbC5n52eeMGzcuGG9FI0wIpinDN1mtATyAW0o5SAiRAHwMZAM7gXOllBUNtRGyKtm+/bnA3Kb60Gj/XH/99cTExPDIq6/gcDgoKS2jrq6Oq88dwQNXnRbUGWZ2eiJr12wNWns6RSEp2kxStLnJc8995Tuqq6uD1rdGOCC8K4DBZfRhVoQ7gW+llNN9MR13Anc0dHF4zd812i06nY7LL7+cpb+uYOWqtezOL+CP1WtZvLaEa6fPDEofqqry7pxfmDHrZ7bta3CyEVLMRp1W7eQoQwhQ9Dq/thYwCZjhez4DOKOxk7WQbI2Q0alTJ+Z8/Q2dMjvy9C2TMUU0nfDI6XRz/u2v8vuGnZRU1OL0eJPoRxh06ITAYjJw7qDOvPFT2wizSa9o9QGPQgIwuSUJIQ7Odfuqz6PsYCSwQAghgf/5Xk+VUhYCSCkLhRApNIImzBohJT4+nrwe3fhlzTZGD+7R6LlWm4P+Zz9IvEHw7OTBDMpOIj4yAkUIKm0Oah1uOidF4/KovPjdOlRVbfVFOLNBmzEfdQgB/tuYS6WUg5o45zgpZYFPfBcKITYFOiRNmDVCztiTx/Pdb2sZPbgHu/aW8vBrX1NTZ6Omzk6dzYnd7sLhdFFYUsmAzES+vPpEIgyH3jamGiJJ9T036nUY9Tr2lNWSlRzTqu8lQie0GfNRSDC9MnxrbUgpi4UQX+CNgt4nhEjzzZbTgOLG2tCEWSPknHDCCJ566GsA3vnqF76Yv5yzB3ehk8VAdKIJS4SBaJOB9LgoTsrLwOBHFFas2cjW4spWF2azQRPmo5FgeQ8JIaIARUpZ43t+MvAQMBu4BJjue2wolQWgCbNGKzB06FCWr9tGeWUtlTU2dDqF/15wXIvaTLCY2FFSE6QR+o/JoKfaWtfq/WqEDiEEQh+0GXMq8IVP6PXAB1LKeUKI5cBMIcTleBO/ndNYI5owa4SchIQEIo0G0sfeSk5yDJf7GUrdGDohePTzX3lnyQaMBh0mg44Igx6zQYfJqCfSaCDSoMMcoScqwkhkhJ7oCANRJoN3hm42Em0yEhtpJNpkIMZs9MtebTboKba1LO2oRvghRHCE2Ze0rV89x8uAsf62owmzRqvQo0cPrulj4axjcoLSntvloQfQy+bEaZXYJDikxK5CjZQ4VIldVXGo0repOKXEqaq4VIlTlbikxK1K3FLiwes7qlcEa5+4kC6pcfX2azLqsFn/Eubt27fzxx9/4HQ66908Hg/p6elkZmZSXFxMWloao0aNCsrfQCNIiPBLlK8Js0bIyc/PZ+269Rx7xulBazMuKoJeBh1Xp8cHpT0pJS4Jo9fsZntxdcPCbNDjqP3Lxnzd1VdSW7yLtMQY36KkcsgmgA0/WMkvrcHlchER14FRS34Oypg1gocmzBrtFlVVsVqtREVFBbRY8siDD3D5cd3oEBvZ5Llut8qeir9q+imKIC3WjPGwhPwdYs3sK6ryf/BNIITAKMCsU6i01u8OJ6Xko+U7GX+hNxxbVVWWLvuV9a9eTYeE6Cb7mLd8C4/P2cj69eupq6s7YrPb7Qgh0Ol0KIpy4PHg55GRkUyYMAF9KxcoOLoRECRTRrDQ/rsafvPYo4/ywIMPIqUkOjqa6GgLU8+fyhP//neD1xQUFPDJzI/ZeP8ZR7y2ZV8Vry7ZyKKNBXx9/TjS46KY8MI8fvyzEL3P3iuROD0qekVBpwiMOgVFCDyqJNXQokisevEKs7Pe1z75dQtFDoXrrr8BgI0bN5IQE+mXKAMkx0ayZ9cOzp44jiiTEYs5gkiT1+4dFaHHZNAhJahS4lHlX4/qX/tb95by+v9e4aNPPiMysukfOg0/0EwZGu0Ft9vNpNNPR6fTkZCQQHx8PMt+/ZXpD9/LjdddRU1NLUt+WsqV192GwWCge48ejBo1iszMQ7PL2e12LCYjiRYT4J1lPvz1H/x38UaqbU4Gd0xk7d5yRj35Nb0z4li6dR8fnT2MU3L/yiLrcHuwuT043CrVDheqhN8LK7jn2+DnxDLrFKrqEeYqq4NbZ/7GzC/nYDB4Ixh//vlnju3lf1GHgd0y2D7jhhaNz+ly88/nvmbMyBOY/fU3pKQ0GkCm4QeCoyBRvsbfA0VR+H7xYp576lEMBgPl5RVEjTyWU8adiF6vJz4+jlNPOZlXnpOsXruOzz/9mCeemM6HH36E2WwmKysLvV6PXq+ntKKawY98CUKyu7SWKKOe58f1Y0JuBww6hbX7qlhRUMHvRVUcn5XMsZmJh4wlQq8jwpenINUn8AC2EORRNisK7/28keO6pZEeF8X46V8SGaGn0upkxNhxHHfcX25+S39czPDurZtw32jQ8/Ytp/Pgez+Q16MbN9x4EzfdfAsWi6VVx3FUIQS0t7SfGn9PFEXhkosvZueuPTz64D31nqPX6zlz0qmcOelUpJScd9EVnD/lPGrr6tizJx9VVRFC0DUxmqk90nBLycCR8QzvmIjuoFvHPqmx9EmN5R8BjC/VEoHNFXxhHhlr5oOiSh74fBnnDetGZVUd53WIY6FHpXe//oec+/PPP3PTnRODPoamEELwwEWjuHBMH+5/bza5L73A8y+8zDnnntvqYzlaCDdThpCy8SpOQog3gdOAYillb9+xh/FmS1LxhhZeuj8M8bBrd3JYXlJ/BjVo0CC5YsWKpk/UCCk7duxg0KBB7Nmyqln2TCklg4aO4pR4lXtOaDxPRnPajp0+ix/7diLBENz5xScl1Ty8uxRVwoXpCdyZHsf88lqetir0692L6qoqyioq2LZnN5Vf3tPmSfNn/rCWV77fyQ8//9qm42gLhBAr/dWVhugXb5Hzxx7helwvaZ8tbXF//uDPJ+ptYPxhx56UUvaVUvYHvgLua+T60VLK/q3xZjSCS05ODoMGDmTWnG+adf0nn81i06bNXNQ3+MV1hRDEmYxstbuC3vaJ8VFMz0nhp/5Z3JkeB8DouCj+ZfJw4va1XFyZT3ppIYN7dGxzUQbIzUiksjJ4Hip/O4RAKIpfW2vRZE9SyiVA+WHHDs4UHkUjRVY12jdTpkzhy68CF+YdO3ZxxT//xSunDqCTH25yzSE5ysQOW/0eFC0hXq9jQoKFuIPy7xoVwaSkaE5OsHBsbCR7VBg/KDfofTeHuCgzVVry/mYjAKFT/Npai2bfAwohHgUuBqqA0Q2cVl9e0obamwZMA28eX43woFNWFiUlZQFdU1xcwnEjTuTCvp04p1fHEI0MOkSb2WNtm4RCRR6VkX2z26Tvw9lXWYvVpqUibTZh6C7X7J8AKeU9UspM4H3g2gZOO05KeQxwCnCNEGJEI+29KqUcJKUclJyc3NxhaQSZ6Ohoamprmz7xIMaedBpDk6OYPqZXiEblpWOMib1Od0j7qI+ddie1DhcDuqa1et+Hs3VvGec8+inPvfBSWw+lHdMOTRl+8AEwub4XDs5LCuzPS6rRjoiJiaG62v8sbus3bGLr9p28dEo/v9J3toQMi4mSEHhmNMVnJTUM6paBoWWlhlrM7F82csKtb3P/Q49x/vmNlubUaAIhhF9ba9EsU4YQIldKucW3ezpwRIb+RvKSarQjMjMzyd9bgMPhICIiosnzP/j4M+xuD91enE+0UU+s2Ui8OYIEs5GkSCNJJgPxJgMWo54oo44og56c+Cj6d4gLeGwdLBHUtkEo7TKbi3MGt719efonv/LiK69yzjmNZpDUaApBIBVMWoUmhVkI8SEwCm+tq3zgfmCCEKI7Xne5XcBVvnPTgdellBNoIC9pKN6ERuiIioqib98+zFvwLZMmTmjy/EcfvId77riJXbvzyd+7l/z8QgqKiti3r5iS0jLWlJZRU12F3WrD6XDgdDrYU1jMzhtPIc5kDGhsqVEm2iIBZ4GqMiIM7MsGvY60tLY3pxwNtKaZwh+aFGYpZX33SG80cG4BMMH3vN68pBrtj9tvu50nnnzCL2EGiIyMpGePbvTs0c2v8zMzc/l5dxmndgtMZDpYIrB51ICuaSmFDpc3lLxbRqv2Wx9GvQ6nM/heKX83hBBaSLZG+2PY8OFs274jZO337NOH73cVBCzMKVEmbK7WXfz7rLSGfl3SiTC2zVenoKyaOruLH9fuZEdBqSbMwaIV7cf+EF4/ExphSUxMDDU1gXlmBMLkM09n/rZ9AV+XEhWB1eVBVVtv1vxTnYNxg7q0Wn8Hk19SRf+r/8uEBz7l/eXFXHPzHQwbNqxNxnK0IRTh19ZaaDNmjSYxm83Y7XaklCFZmb7ognO5/qbbKbc5STD7b2eOMurRK4JCp5uMAO3TzWWvhFH9mleF5b9zfuXXTfnERpmIs5hIiDZj1Ouos7uwOd3YHC7s+x9dbhwuNw6nx/vocrO1sJJrr7+RBx7U1tCDivBtYYQmzBpNoigKRqMRh8OByWRq+oIAiYyMJDUxnh93lTKpR3pA1yZERrDN7moVYS5xuimptvLpkvV8+fNGpJRIvHk79udRlkik6tvH+4jvvM+XrGdUXkfKSquptjmptTtxeVQiDHpvBj2Db9PrMBv0RBgUYk16TJYIrE4Xv2zM58677g7a+1m5ciU7d+48kAVQCEFGRgbdunXDbDYHrZ92QZiZMjRh1vALi8XC/z3wOE8+/kBIZs29+vbju127AhbmFIuJHXYXDUYuBZGPi6uRwJ69pT6/1r/K3ns9rv46JvjrNUWAQHDR8T155sLj0TXDA+CL5VvZoyT69cNYUVHBjBkzGDp0KLm5uSQmJlJUVER5eTlOp5PS0lI2bNjAjTfeyKDOaXSIteBWVVQJ+RV1bC0qxWyKYO68BRx77LEBj7U9Ema6rAmzhn/MmzePq666knc/mMnFF5wX9PbPnjyJR+6uP71oY6RFm8mvrAv6eOrjF6uD208bxGPnDm+V/g7mxy37GDG23jiuQ3A4HJx52gT0FXt55wUP2/dVouh0CKmSGmfBqNcRHxlB5zgTc68cw8k9jlxwlVLy2ML1zPzog7+FMAshELrwUmZNmDX8YtCgQTzxxL+55l9Xc8GUs9Hpghv1dsGUyfzr2psoqXOQHNV0IMt+Okab2FlcGdSxNES+CqN6to2b3JItxbx8X0MpabyoqsqlF04l0V7CR1ecgKIIPKpKcY2DDjEmv+90hBBkxUfyx7ZtwRh6+yDMpsyaV4aG34wZM4a4+Hg+nPlZ0Ns2mUx0SErgp92lAV2XYTFR1gpeGZVuN2VWO8O7tm7FEoCKOjtbC8sYOHBgo+fdfcft7Fr9KzPOG4Ti8yDQKQppseaAzU8T8jKYu3ARTeVrP2pQ/Nz8QAihE0L8IYT4yrefIIRYKITY4ntssrS7JswafiOE4PnnX+CWO+9nz569QW+/z4ABfLszMGFOtURQ1wof4y9La8ntEE90AF4jweLnPwsZOnAARmPDfb/y8kt88cEMvrh4GOYg+Fg73Cpx0ZZWzQ/RlgQ5V8YNwMaD9u8EvpVS5gLf+vYbRRNmjYAYMmQIN95wIxf84yrc7uAGd0w550wWBujPnBplwtYKk7rvq22M65sV+o7qYcmfRYw48eQGX583bx4P3Xs3c/5xLEmW4HjNqD5Pk78F3pVa/7ammhKiI3Aq8PpBhycBM3zPZwBnNNWOJswaAXP7HXcQn5DEuInnsmDR97zx9nvEpubgcrWsmsi5Z59BcZ2Notojcwu7VZVf88tYsK2Izzbk89YfO3nh1y3M3VJItTP4VUwOZ7eEUT0D8xgJFku2ljBqVP325Y0bN3Lx1Cl8dMFQuiRFB63POevzGTnihKC1F+4InfBrw5szaMVB27TDmnoWuB1vHqH9pEopCwF8j02WNtcW/zQCRqfT8fkXX/DIww/z72dfITYmlurqGqqqqklKSmy6gQZ44JEniBAK3Z/7hmiDHlVK3wZuqeKUECcEBiEwAgbhnVmEOl9GnVultM7OcbmtL8w1Nicbd+9jyJAjM+aWlZUxcfzJPDE+j+M7N/ldD4hah5uOOW1zh9Am+G+xKW2oTJ4QYn9t1JVCiFEtGY4mzBrNQqfTcf8DDxzYz87Ooqa21m9hdrvdlJdXUFZeQVlZOZ/P+oq3/vc6g+Kj2FBWw4ORRvQCDIBeCK6usnKTlPSRkoPvsd3AJYBTVTGGKEPYnLIaspJjiQvAWyRYLN1SyMB+fY7wX7bZbEyaMJ6zuidw8ZDOQe93S4Wd/id3D3q7YUnwci0fB5wuhJgAmIAYIcR7wD4hRJqUslAIkYa3gHWj+JP2syVVsscDzwE6vOlAp/v7DjXaF9HR0X7l05g7byGTzpqKW0oMQmDQKZh0Cmadjmf65yAl/F+1jZ6GQ93xrKqkvhRHeiAC2GV3kRsZGuFcVGXl5KFtk395yeZCRow96ZBjUkouOPdssqji0fGDQ9LvL7vKuervlIcjCLospbwLuAvAN2O+VUp5oRDiSbzzh+m+x1lNteXPjPlt4EXgnYOOPSmlvNc3gOvxVsm+6uCLhBA64CXgJCAfWC6EmC2l3OBHnxrtDJPJhN3uaPB1VVXZsWMXz7zwX07JSOLlAdko9cxSdtc5qHIfWpXEISUeIKGBtqOFYJvdGTJh3iHhhh5t47/84/ZSHrz+UPvy448/zh+//syG20854BYXbHaWVNK9+99kxkzIa/5NB2YKIS4HdgNNVjbwJx/zEiFE9mHH/KmSPQTY6svLjBDiI7yzbE2Yj0JEE1OOHj0GsHtvIWmRETzeu1O9ogzQMdKIW1UpcKuk672miUpVEiEESgNuAnGKwm57aNJ/2lWVEquD47u3vn3Z6nCxenshw4d7Iw2tVis3Xn8tr73xFhcO7oIxhKWtUmItFBQU/H3EOci6LKVcDCz2PS8DxgZyfSirZGcAew7azweGNtKeViX7KGPjpj+pramlvLKSnXsLWDNuADGGxj9yihB0jo5kqcvF2XrvDLhSeoW5If+tBCDfERrPjLlltaTFR5EU3fpJfZZtKyKtQyrbt2/H4XBw6YVT6Zts5IqReRSU+l+HsTl07xDHtm3b/hbCLP5mVbLre6cNekZqVbLbPwdHib3y6lv0OeZYTj5xAlPPuYAzOqU0Kcr76RsXxRrXX54WlarE2MgXJ0FVKQpRwvz5FXWc2LttvBMSLSZyE02cN3Ecp407kZtHZPHOP0eTmxbPvhpbSPsWgMfT+oVu2wxF+Le1EsHwyvgA+BpvLcCDyQcyD9rvCByxQKhxdJDXK48LLrqC5OQkjKYI1q3fhCrhhKQYTIqCGZWH1u/GoleI1Omw6BWiDTosOh0xBj0xBh0xej2xRoU+MWZW7vtrzlAnJZVuDzfpdURIuMXj4eCf7ngp2eMOTTTEdgRX5rWNfblfp2TmXH9kYElOcgwl9fh6B5Nd5bVkZf193OXCLcAxZFWygeVArhAiB9gLTAGmNmuUGmHP1Vf/ixkz3mF0yT48eH+FnWYjjso6qoB90ruIZ5cSh++5Q0qcUuLyPbql1/0NwKIIvP4WMMKoJy02kkopeaLWziY4RJjjgJoQ+DI7VZV9dXZOaAP7cmN06xBPeV1ohTkvJYYff/yRvn37hrSfsMDPqL7WJGRVsqWUbiHEtcB8vO5yb0op14fmbWi0NUOHDmVQXh65u7czrIW5GipVyeTKOtyqil5R0AtxwH0uVqfDqR5qtogFrO7gC/PCijqSos10iIsKetstoWtqLFanG4+qNiu3sz8c3ymG9WtWhaTtcCTMdDl0VbJ9+3OBuc0enUa74vLrruOTu+5gGC0TyThFEKUI1rpVBhgPFR69gMOX+WIBuxp8e+i8ilrG9skOerstxWTUY9ApVFidQcuNcTiKENjtoZ2VhxVhtvinRf5pBI3zzz+f22+6iUqTjrgWftC7GAz85nQz4LDZt0EI9teFfkcIVut1OFWJR/UwdNUu3+qyNwHPfqvzgUcpD91nv6OHr0SU7+CB50juiA+v2TLAy4vWEGsyEhvCTHdju3XgmXe/DVn7YUUYemVowqwRNGJjYzltwgQWzfuas02GFrXVQ4GN9ZgnDIgDM+bfdTrOijTSP8LA1cVVfNgvi0i9gkD4yjn5yj3xVwIxxedxvf91IQTKYa8J32snLN3MiABLXYUaVVV59MvlPD6xPwZd8M0YqqryR34FczfuZefeQq649GI2b1jP7fc+wMSJE4PeX9gQZrYMTZg1gso/r72Wq75dxGTpaVH+gY4CvnSrXFdZh0QghXcWu8utskfAKkWh0uNmXFQ0GXodkYpArwi6RgXn1r7Y4cLmURnds2NQ2gsW0+esJEInuGBg8yp170dVVVbtrWDh5iJ+21XK9vI6SmodVFjtGHUK3ZJjuXxwF/qWrcPlLuenJUuOamEWYZZnUxNmjaAycuRIag0GplXUYhL7TQJ/CfQBM8KBQ+KA6cAlJYoi0AtBjUfFjWRIlPmAs73O15JOgA6vHTrdN2uM1enYbnWQF6RAkN8q60iJjkQJ0eJac1BVlefmr+LlyYPR+zlbVlWVdYVVzF6fz+q9FWwtraO01k651Y5BUeiWHMOAtHjGHJNMz+Ro8lJijyjt9d4qPd/t3B6KtxQ+aDNmjaMZRVE4ftQoZn76GdPiIg+YETji8a8g7v2mg/eqbfSIj2ZcxyQAHvl9G5OjTCTomxahBL2OPTZnk+f5y/yyWgbnpgatvWBw58dLSY6K4My+mUe8tl+AF2wu5LddpWytclJidVNRXeu9cxGCKb3SuXxAInkpMfRMjiGliYXDaruL537ZypxtZWT1aihTyVHAwR/SMEETZo2gc8ddd/PrwoVcEWsMyJwxx+pkatc0zu/qteu+s6WQn+0OJlqangUn6hQK7MEJy65xe1i4r5Ll158SlPaCgdPt5o3F63n3wuFs2FfJgk2F/LqrjK2VDkqsbspratHpdHTr2oVjBozgn/360CuvO7169qCquprBx53If08fEFCfa/dV8c7mMl5/+x2OP/74EL2ztkcgECGw17cETZjDkN9//527br4RnaKg0+kwRETw2FNP06NHj7Yeml8MGDCAMoeTGtVATABl4d1SYj6o+na/pBhWFpUz0dL0tSmKYF+Q8mV8va+KtFgLeRnNT/ofDJxuN/PX7OHrVdv5etUuXOg4791fEYqgW9cu9O93HJf160OvvB706tmd1NSUen8Iq6qr62m9aRIjjUQY9Jx00klNn9ze0UwZGk1RXFzM3j838uCwLnhUyUeb/+STmTO597772npofiGEQK9TAvZmdkuJ6SAhH5Bg4cPCcr+uTRKwzdlyX2aHR+WlXaVcNr5fi9sKBLdbZdGG3Xz1+06W7yimoKKWshobiRYTOYnR7Kuq45Ybr+Wm666iQ4fUgO5EpJTNulNPjoqgpLyiGVe2M/a76YQRmjCHIbm5uVS7PIzv7LVxSiRvfLsQ2okwA3RM7UCBrZy4AG4RXRLMB6Wy7BVvwV9ZiNcp1LRQmKWU3LelCEOkkf+bFJoE9Afz/PxVfPjLnxRU1FFSYyXeHMGg7GTO7pPBMZmJHJOZQJzZyKTXFnPs0EH8+7EHmtWPlLJZM0LvZeElWKFBhJ1bhibMYUhWVhbFVbXY3R5Meh3DMxKZtmgJbrcbvb59/Mt69+3DD98twFVPqs4IIegRcaSfs0dKTAcJeV68hQqnC1VVm/SOSFBEi8Oyn9tVyoLSav6YfkHIvTF+31nMPTOXcvfJfRmU5RXhxHpc/T79YydLd5SwY+v3ze5LyuatbdncHgx6PXPnzsVms2Gz2bBarUgpiY+PJzExkYSEBBITE0lNTSUiovVLbwWNMPsBah/f8r8Zer2erPQObK+sIy8phkSzkYxYC2vWrOGYY45p6+H5RVJGR16stjHLfeQstsLm5MmkGEYc5pblkRLTQTPmZLORCEVho8tDr4jGhTJep2D3M02l3a2ysc7G+ho7W+sc7LI62GVzss/lJj0hmnOe/waDzlv2KsKgJ8Kgw2TQYTboMRm9j6lxkdxxWr01Of1i2hvfc8Vx3blrXJ8GzymttXPlR8t46qkniIuLa3ZfzWVXhZXi8kqef/wezBEGIk0GzBF6BIKKWjvlVXWUV1kpLCln4KBBzJ23sNXHGBQ0U4aGv+TmdmVbRS15STEADE+LZcmSJe1GmOPi47jz+B7cN7LnEa+NnvEjW2qsRwizW0LkYVU5uidEs9Rmp1c9M+yDiVcOFeY5RZUsKq2m0uWh2q1S6fJQ43Jj9XhwSIgEEhWFFCHooKrUCEGnuEguz+uI06Pi8G12j8Tu9mC3ubDXOqh2q9g9Ki/vKGJcnyz6ZwWeO3zpnwX8WVjO3GkjGz3vX5/8RveePbnisosC7uNgZAMFBpqixuEiIyWOuc9Oa/S8H1b+yf0zljarj/BAgC501WCagybMYUpuz15sXfVXroIRHWJ47YP3uOGGG9qF3S8vrxcfz/6w3tcyYswUVBxZuNXDoV4ZAMckRrNmW9NFXuN0AofqFaC3d5cyfUshx+l0xKsqmVKSBCTiTReagO+Dr/5l+tisU7ggL5Mr+zcdUVdpd9HrzRKOe3AmekXx3QWLA3fDAq9jdkP/JYfbww2je5HSSDDMrvJa5q7bw57t85scT1PExcZgczjJe+UHxnS0cNvxPcjyIweI28/sdYqioKqhyYfdaoTZd0oT5jClW888fvt53oH9M7ql8czq33jv3Xe56OKL23Bk/tG3b1/uL6m//FHHGBPL68kG55FgPiyYpG+ChQU7m57NRAmBCryzxyvKdwD9AqjAIVSJx4+ZpZSS8+asoHNyDHOuHA1CICWoUiKlRJXexVq1CXN3TmLjPoCRvmovSUktd9lLS+vArs1/8NU3C3jj7fc48YPf2HJNfdXgDsWg1+H242/orfoV/LSrrYYAwijCE/zLx/wmcBpQLKXs7Tv2JDARcALbgH9IKSvruXYnUAN4ALeUsvlGub8Zubm5fFj9V9VpvaLw3IjuTLn5JvJ69WLgwIFtOLqmycjIoKiyfmHuFGPmdbfKGaU1jNEJro/3ipQKRB0mzHnxFir9EgeBScBjfxZyIxCos5siVb+E2a1Klu0to+7pqRhDuBCbGBWB0+3BarUSGRnZ4vZSUpK57JIL6Na1C+eef4lf10QZdLj8WFBVhEBt6pco3AmzGbM/PxNvA+MPO7YQ6C2l7Av8CdzVyPWjpZT9NVEOjNzcXLaVHRoYMCgtnoeGZDHxxDGcc8bpbN68uY1G1zSxsbHYnC7s9Sz+/fOYHBZcdAJjOqewyufipkpv6k3jYTOXbrFR1Djd1Dbxxd/udOORcCXe8uyBIqRXdJvCIyWKECEVZQBFEUSbjGzavKXpkwNqV2m48OZhRBr0uOv5/9XbZru2ZAjvjNmfrZVosicp5RKg/LBjC6SU+8tILMNbSUgjiGRmZlJeZ6XWeWi1jql5may6+Hj6VGznuMEDOWHIIJ5//nkKCsKrnGJRURFxUeZDvCz2Y9ApHJMWT058FDrfN9qN98N4uJtahE4hLcrEL43kwXCqKteU1HCKotD4clrDKIDLD2FWm+cSHDC1Dhduj4rHD2EMBCEE/ipztFGHy09TRrueMR/I9erH1lRTQpiEEL8JIVYLIdYLIR70HU8QQiwUQmzxPcY31k4wfgIuA75p4DUJLBBCrBRCNLq0K4SYJoRYIYRYUVJSEoRhtW8URaFLp0y2VdQd8VqUQc8tg7vw52WjuD5Dx7I3n6dXt1x653bhysv/wTvvvMOWLVtwu0NTOdof1q9fT4/UxhPfWIx67D4hdsuGP4x9k2L4rZE8GDeU1pIoJVNbIA46/J8xt8ZN74s/bCItrQODBwfXC0cI4SsLcCR2l5t5W4q4c95qTnrrByZ+/Jtf77WZ8SthhM8rw5+taRzAGCllP6A/MF4IMQy4E/hWSpkLfOvbb5AW3Y8JIe7BO9l5v4FTjpNSFgghUoCFQohNvhn4EUgpXwVeBRg0aFC7vjEKFt26dWNLRQn9UmPrfT1Cr2NClw5M6NIB1+ierC2pZtmOFcxZ8SP/V1BOYUU1D9x3L/fcd3gB89CzevVq8hIaz142KD2eJ6Rks8NNuao26Ep6TIKFz4vqjwF8p6qOzXYnz+IV1+birzDrhEARgtHPLeD7G46sYB0Mqm1Onli0jg/enxH0thVFQaqSX/eUsWjrPn7NL2dXnYsyq4OKGiuJsRZ652YwfOQxTOuazuBeTVfKdjhd7Ty4hKD9skivb+J+NyKDb5PAJLy1UwFmAIuBOxpqp9nCLIS4BO+i4FjZgKOkrwYgUspiIcQXeM1/9QqzxpF079OXLT/O9utcg07hmA5xHNMhjn/5jq3aV8k/3ni9QWGWUvL6668TGxtLTk4OOTk5JCYmBsUdb/GCeZyTVv8Pyn76d4jD4fFwRWEF0REGOsfU76nQK97C6/WMaa/LzRtVNm4BGr0v9AOvKaPpGXekQccvF45g4IzFuN0qej9SkgbK80s206FDGqdNCL7wFxQWUllTw8QPl9GzcxoDj+nB5NwM+nTNIK9zByyRgRcacLjc7VuYCai0VJIQYsVB+6/6JpV/tSWEDlgJdAVeklL+KoRIlVIWAkgpC32T1QZpljALIcbjVfuRUkprA+dEAYqUssb3/GTgoeb093elR8885s77rNnX90uJpa6mhrlz5/L7ypXs3PonRfuKmfX1XHQ6Hdu3b+f2m25gRE4au6tt7Cyrwq2qZGWke4U6txs5XXPJzs4mMzOTjh07kpKS0mS4sqqq/Lj0F164fESj55n0Ol45bSBXzlnJI0O6Mblzh3rP6xVvodJ5qCnjsxobT1TUkQYElsyyfnR4zSn+0DXeglGnUFRjo2OQawJW2Zw8tWgdM2e+G9R291NdU0OnDgls/uKBoLXpcLZ/YQ4gV0ZpU44MUkoP0F8IEQd8IYToHehw/HGX+xDvFDxJCJEP3I/XCyMCr3kCYJmU8iohRDrwupRyApDqG9T+fj6QUs6rpwuNBjjhhBO45bp9FFu7khIZ+AdfCMG4nGTOOess/tG3E31jzbyxaA1utxudTseGDRtItZh5bFgO2bFegam0u9hdbWVnVTW7Nyzhz9++5Vubm701NvZW1lBls5OenERGWhqZWVl0zO5MZlbWAeHu2LEjbrcbk15Hqh8VnCf3zEABps35nTm7S3hzRK8jhL9DZARCCLY63dSpKk/XOtjrUZnUPZ31W4vA0/KFJz3egAp/Mel17KuxB12Yn128iYyMdE45+cSgtrsfXQgi3LzCHJpq3a2CECEJyZZSVgohFuP1atsnhEjzzZbTgOLGrm1SmKWU59dz+I0Gzi0AJviebydwd1KNg+jcuTMXXXoJD/08nxdH5zWrjbsG5XBdv050S/CaCW78du2BREjDhw9n/DnnM+q9d+mTHMut/TMZ2SmJOFMsfVPqN0PY3R4Kau1eoa7Zxd7fNrN+iYcFNjcFNTbyK2sor7OSmxjj9xjP7JlBvw6xnP/Zcrp/+jPZFjOj0+IZ1zGJOKMBl6oSa9RzVVkNbuCyYzpzy7CuvLt6N5u27mvW3+Vw/PXK2E+UQU9RtRVvPGFwqLQ6efq7dXzxWf0Rk8FAEUqzQ7Qb4mgwZQQrJFsIkQy4fKJsBk4EngBmA5cA032PsxprR4v8C3Puf+gR+vf6jLfW7uYffToFfH36QWG/UkpiI03s2LGDrl27kpSUxLMvvMj0J5/i7bff5sYH7+WPC5Iabc+k19E5LorOcQ3PFP8sr2H4Oz/gVlX0fvp+do63sPSyUawoKGfxrlLmbt3Hm3/uxeWbDXdNjGZq70wu7pdFrK8Ct1P1tGjB72B0BCbMFqOeklpH0ycGwDOLN9KpUyYnjR2N3W5n9lfzmLfwO+645Tq6d8sNSh86nQ412MLc3mfMEEy3kjRghs/OrAAzpZRfCSF+AWYKIS4HdgPnNNaIJsxhTlxcHIt++JFRxw0nyqDj3B4ZzW5LCMFtg7sycdzJfDp7Dj179uS9d9/ljVdeYuwpE9hVVkmx1dEss8nBdEuIJtKoZ11xNf07xPl9nU4RDO2YyNCOidxxXPcmz3d5ZFCFORBTRpzJSFG1LSh9Syn5aVsxTy1aS8f0DDqkZFFWW0eiQY+QEpvNxofvvBaUvkIRDKJKiVKPv3q7wU8fZX+QUq6hnmUPKWUZMNbfdjRhbgd07dqV+d8t5sSRJ6ATMLl788X5hoE5JJr2MOq44XRITSXSUce/eqezZPb7mPQ6tlXUtliYAdItZn7eXRqQMAeKR6rs8nh4S1FIVlVOABr3A2kYr43Zf8VKMDdfmCusDj7+fSffrM9nw95K9lVbEUC/yAiG2KroExdBr7RoYnQKMyvq+HzlH83qpz50Ol3QTRlHBe0tV4ZGeNCrVy/mLvyWyRNPY/6eCqYf140Es7FZbV3YK5OBHeLYXWXl5JyeCCE4u0cGz47qiRKkmcPUvAyeXraFfw7sjDFEhS6vH9oVq8vD9vJaPtxeQpKUDGtmW3oCM2UkmY2U1NqbPE9VVb7fUsSsNXv4ZXsJu0trqHK6yIwwMjgqgmmRBvolJpNh0NXrptjLZOClvcGL6lQUEXRTxlFBmEXIaMLcjhgwYABrNm3m7ttvY+gHH/CfEd05PTetWW31TIymZ2L0IceCJcoANwzqykt/7OTV33dw7eAuQWv3YJIiTTx1snd9ucP0WaR6mi84OsARgCkj2WxgTdWR6UjXFlTwye87WbJ1HzuKayits2NWBH2iTIwy6enbIYY8kwGznzO03AgDNU4npaVlQck0p9PptRnz4WiJ8jVaisVi4fmXX+HcqRdw+UUX8Nn2Ep46oTvJQTA/BJv/jOrF5d/8jpRw3ZDQiDN4Z6V1HpXAU9b/RSCmjHK7k8JaG+uLKjnrte/ZW1FHflkttU43HinpGWlioEnPuXFmeqfFkNQC+6tREXQyGfnsizlc+c9Lm93OfhRFaMJ8BFqifI0gcfzxx7Nqwybu/797GPbG6zw0vAvn52UGddbbUibmpjErchhnf/kb2yvreGRUHlHG0HzkUswRPOdwcaeqNmtBsL6Q7Eq7k+92l/JzfhlrS6opqLZTbndg86ik6BQy9TqUrcUMQvKHzcmHOUn0iDAEvZBBf7ORBd9+HxRhFopo55ngQkQYfW9AE+Z2jdls5t//eZpzz5/KNf+8gtc3ruDfx3VlcFpLA5SDx/CMRH66YARnfPEbH63dzVMn9WVqn8ygipeiKKy+9mSynvqKvUCgToU2oADYVFLF+JlL2Vtto9zmwOpRSdIpdDbo6S5gvE4hx2KioyLQHzb+TxxuKt0qwtSy97XF7uLhfdWMjDLSzWQgN8JAH6OOj/5Y3aJ296MPweJfu5+BC6Et/mkEn0GDBvHLyt959513uOD2WzmpYwIvjO4RNrPnnLgoVv9jNB+s38Mdi9bx+h87eWlCf3omRQdNoC1GPVEGHTXOhjPqWYHVwAZgJ1Ch01GjqlilRAWiHU66VNRyoiLIiYogU6dg8HN86Xod62xOhvsR7djo+9AJVlkdlMcl4K6xUrG3EpeqEmVqeqHRHxRFCfrin9XmJDIyLqhttjph8l3ZjybMRwmKonDJpZdy1uTJpKWm8MixXYg3Nc9rI1RM7ZXJWd3TuGzuH5zw1mJMOoWhmUmMykpkcHoCFXYnG0qq2VJhZUxWEuf06hjQj4vZoKfW6aYWWAOsB3YBlT4BtklJghBkKQq9PB6yPB46AkbgRuB/0ZFkNDMpUbJOId/V8tzJaQY916bE8EldLfn5W9Dr9axbt4HS8vKmL/YDr7tcUJo6QI3VTkxCXHAbbW00YdYIJdHR0Qi86SnDEZNezwenD/YmOsov4/PNBXywNp+nf9lKhF5HamQE6ZYIbl24li83F/HOGQMxNOBuV1RrZ9G2ffySX8764ipK6+w8hzcPbYIQZCsKfT0eOnk8ZOINyTJICYclf/8S6KjXN1uUAcyALUiKd3lCFN/uLufs8y7hy8/ep3fv5oXj14c3wCS4ylxjdZKU7X8IftjRHmv+abQ/PKqKLszcfw5HURRGdkpmZKf6fSnKbU6GvPsDtyxYw5CMeNbuq+bPsmr2VNkprbVT5XDhkpJ4RSFVCFI8HtLxZoaZDuTUI8ANUaYodPC74FL9mIGyIFWK1gnBf9JimTxvAV/M+pozJ50alHYBdErwbcw1Nic50dFNnxi2BC/yL1howhwmSCkpLCxk27ZtB7ay0mKsdbVcfOnljBkzJoDWBNct3kynSB3pURFkWMykR5tIt5hIjowIG9tzYySYjcyZPIyhb3/PjN93kKPTkSAlWapKfyAJb5SfcpDvsR34DHgTeDiAvmqFwNLCHzITElsQqyt1NOq5PTWWyy6dxthdG4mJCc6MNBQ25hqrk+h2Lcy0P2FuYZXs8cBzeL2RXpdSTg/e0Ns/27dv59X//ZdlS39izbr16BSF3Ow0OndMonN6PD3jLWyqLOLlF58LSJi/W7yYTZs2sWfPHjbt3M63u3eRv3kve4uKqK61khYfQ3pMJJd3T2VKz+aHd4eanonRDEiNJ6K4kpP8mP2agERFwRNgiak6oGMLv5cRgDPIgndWrJlFtQ7GT5jM0p8WBqXNUOTKqK5zBO2Ho81ob8KMt0r2i8A7Bx1bCNwlpXQLIZ7Am5/5kDIpvuxKLwEnAfnAciHEbCnlhmAMvL2iqirz5s3jpRee5bfflnPJpOHcffGx9Mk9h9SkIzM9FBRX0O/sh/F4PH7n0h02bBjDhtUfnGy32ykoKOCLL77gkzdeCmthBrhzeC4XffkbY/GvQKVNCKxAJRDnZx91QGwLv5geKYNu1xdC8EiHGE5ftZoXX3mda6++osVt6nQ6mqPM5VW1rN6ylw3bCvlzdzG7CssoKquhqs7OvrJqptQeGQXZvmhnwiylXCKEyD7s2IKDdpcBZ9dz6RBgqy8vM0KIj/DWvfpbCnN5eTlvvvkmr7z0AvEWI1efewIzHz4LcxOeE+kp8aQmxrJq1SoGDhzY4nGYTCY6d+7MqaeeyitPhv8NzNisFNxANf4JbW+Phx8VhctVlQydjuf9mGlbpSS6haLqAMo8Hj4pr8ODxIO3orYHUJGoEtxSHjgmkbglOH3HXVLikuCSEjfe527pPSdawC233sVZk04lPb15Ifj7OTxXhtPpZsOOQtZuLWDzzn1s31vC3pIqKqpt1Fjt1Nkc1NkcuN0eEmKjSEuOo2NqAtnpyRx/TC7pKfH899OfDuT4breEly4HxcZ8GfBxPcczgD0H7ecDQxtqxFdFexpAp06B5x0OV9atW8fT/3mSL774glNH9OO9Ry9iSJ+cgPx3xwzpzqJFi4IizPvp3Lkz+eVVOD1qyJIMBYPnVmwlXlGI89M8kQvkqio24EmPBysQ2cQ1dimJbaGNeacq2eH08JlHogiBgkAR3vwj3s37XKeIAwVdFQFGRcGgKBh0gihFwagIjDoFgyJ8r3nP+XJbEfc//ASvvfJsi8Yp8N61pY+7kzqbA6vdiSXSRGpCDB1T4+mUnsjYoemkJ8eRkeLd0pPjSIyLavAzu3z9LgoKgpdoqdU52gJMmqiSXd9/scF7qKOtSvaePXu45647mD9/HjdcMIaNsx4iJYCqHgczdmh3Xpn1DXfc0WBR3YAxGo10TE1mZ5X1QHWTcOStNbsYFKDNGLxeEhYh2CAljRZow7toGNfCGbNUJdf178wjx/ZoUTsNkRsXxb1ffQ0tFGa9Xk+N1cG8V24kPTmOtKRYDIaW5YnISI5hz+5dLWqjzWmHNuZ68aNKdj6QedB+R7yRr0c1tbW1TJ/+GK+8/DJXnTOCP796mOgoc9MXNsLIQd25+O43sdvtmEzBqxSR27UrWytqw1aYd1TWUVBjY0ozr09UFP70eJoUZkcQZszRQlDuaDjqsKVMyEnlmu/Xsmr1Wvr369PsdvQGA5bICIb17Ry0sXVMTeCNN+aQlJxCp06dsFqtZGZmMmDAADp0qL/AbvhxFAizP1WygeVArhAiB9gLTAGmNmuU7YT58+dzxWWXMmJgF1Z+fA+d0oJTDy4uJpJeuZn88ssvjB49OihtAnTp0ZOtG38MWnvB5uZv15Kr02H20x/5cJKlxJ95nBOIb6EwxyjerHOhwqzXcVqXNO5/aDqzPqvvBtU/lBAkMZo4si8Op5t1m39gzU81RJoMvPrnXmweHavWrMNgMAS3w1AQXrocuirZPo+Na4H5eN3l3pRSrg/R+2hT6urquO3WW5gz63Nef+AiTjq2V9D7GDM4l0WLFgZFmO12O489/DAfffA+b5wUcGX1VuHxpZtYsrOYf7agjURVZZOiQCOmEDfexbiEFvQDEC8EBQ5XC1tpnHO6dOCmX39rURuhiPyLMkdwyenDDzkmpWT8tS/z4osvcNNNNwe1v5DQ3kwZza2S7dufC8xt9ujaAcuWLePiC6cyJC+DVZ/cS3xscMvZ72fssJ7c88o8Hn30Mb/Ot9vtlJSUUFJSQnFxMZmZmfTq1QspJYP796ODp46fzxtOx5iWmVlCwYy1u3jylz+5iJbVoE7A683RGFbAgFewWkKColDpx4xZVVWcqkqtS8XmdmN1e4jU68iMbmqJErrGRVFTW9eicep1+hbGOPqHEILnbp3MiCse5vzzp4a3SUPQ/oRZo36cTicPPnA/b7z+Ks/feR5nn9yUJbMlfbnRKYLfV6/l/fffx+VyUVVVRWVlJZUV5VRVllNaXOwV4ZISSsoqsDscJMfHkpIQw4Zte7jmmmt5+plnEEJw0aWX8saz/8GgC68PI8DsLQXcuGA1Z+NdlGgJCYC1iYXDOvA7g1xjxAjYU2Oly9vf4pESVZXeR9/mUX2uclJ6c5koAr0i0CsKTo+KxagnKyaS87qmcWWfrHp/KDpGm6h1OnE6nRiNzUtQFYoZc0P0yOnAP04fxu233sw7733QKn02DwHiKPLK+Luybt06LrrgfDISjPw+8//oUE9gSCCUVdSwZsteflu7nW2797GrsJx9pdVUVluprrNRa7UTHWmiW2YyH/3vSeIsZmIjjcRFGUiPMtEj2URybgeS47qSEh9FcqyFWIsJIQSf/bCWO99czIMPPXSgv9vvvAu73c7EV1/m6zMGtkr1E4fbw7KCCnolRZPUQH/vrd/NdfNWcTrQLQh9xuH1L27MZS5YwhwnoM7lYdGFI7yubjoFo05Bryh/ub/pvK5xh+cxcasqfxRV8v2uUl5evZMnVm7jxMwkHhzenQzLX3c0ETodAoHVam22MOv0rVuM9f+uOIVBFzzBzJkzOffcc1ut34DRZsztF4/Hw9NP/4d/T3+cx244g8vOPL5B305VVSkqrWL91gI27Shk255idhWUsa+smspaO3VWB1af877H4yE+1oLb48GgCC4aN5CcYd3JSUsgJy2erNR4TBGBL6AUldVw7XNzmP31vCNyGdx7/wPYbTZOf/9tvp40sNmFXRtje2UdC3cUs6iwhp92FmGxWJjSOZGHj+9+xLnP/LaFh3/cyJl4Z7qr8Joh9L7N4HsUeMXW6XssVhSsqooRb/rOCLyh2fufG4A5QD+8Qh3vO76fYAlzpKIQbdTTNyXwH2m9ojA4PYHB6QncNiyXxbtKeW7FNvq//wMpUSZOzEjk4eN6EGM0oAhwOptvyw7F4l9jREeZ+OCxSzn1X1cxaNAgOncOnjdIUAkvXdaE2V++++47rr3mav7cspWRg7rx8Te/8fpnP2KzO7E6XDicbpxOFw6nC6fTjd3pwqDXER9roUNyHBmpiWRldGDYwF6kpSSQlhxPWko86SnxxMdavOG3L37Cgu9+5d9XByeb2LaCMrI6dWLo0CPjeoQQPDr9CRwOB2d8/jFzJh1DbDPE/3C2V9bx0urdLNpTjtUjGTduPJdeOYn3TjyR7du3c8HEU3j4+EOvOe/L3/h6WxEAsw0G0pKT6T9gAEP79MFeV0ddbS11tbVYa2tRVZX4+Hhifdujjz3Gtf1y8AA1TjfVLg81Tjc2t4cKl4csl4slbpV5Lu8xh0dFEQKDIjAoCgKJ261yU42NQXqFkyMMJDfD3hyF8LtmYGMIIRidnczo7GSqHS4W7Sjmld93kPv2d/RMjMGtSpyu5guzTtHRSDhBSBiYl8Xdl53MlHMn89PSX5s92w8pQZoxCyEy8aav6ACowKtSyueEEAl4A/Gy8dZpOFdKWdFQO5ow+0FhYSFnnnE6Bp3CaWMGkxQfTVJ8NAmxFmJjooiLiSIu2vcYE0lcdBSx0ZEYjYEJXYzFjK2RChyBkpkSy97CwgZfF0Lw1DPPcp3DzplzZjPr9GOIbmFNvkU7i1mri+ez+Z/Qt2/fQ+4o4uPjqVNhc1kNcSYDc7YW8eWuSjZUOLjkkkuYNm0affv2xWLx3696zqefcHbXZPon+zdTlVJic6vUutzUutw8vnwLs7cV0ctiZondyVuVViJ1OpJ1gu7AaKOegXqlycXBKAVczQiEaYyYCANn9cjgrB4Z7K6ycvOitZjKdDjsjma3GYpE+f5w3fmj+W7FVu668w7+8/QzrT+AJgnalNkN3CKl/F0IEQ2sFEIsBC4FvpVSThdC3AncyWH5hQ5GE+YmqK2t5bQJ44mzRJDVMZXPX749ZH1ZoszYg1AFYz/piTFIj5u5c+cyYcKEes8RQvD8S69w5eUOzv5qId+cObBFaUG7xEVhtKr069ev3r4mnj6JMz//hCqHm1PGj+P6Jy5i/PjxmM3N8w7pmZfH5oodfguzEIJIg45Ig44UIkiOjGCIxcxNiVFAFC4p+dPhZrXdxQqnh0fq7NhUSaJBT4ZU6atXMErJHhWKVEm1QU+dENhUFX0Qc2AvLyhnZ6UVq8tNnctDnctDj0QLi3YUMeaUSSQnJSF8od3g8yrZvy8EQgiEUPDuChRFQQiBx+PB7fYw+oqncHtUVI/ErUoyU+N479HLMIWo6o0Qgjfum8qgC55g1OgxTJw4MST9NIsghmRLKQuBQt/zGiHERrzpKSbhdTsGmAEsRhPm5uF2uznvnMn0z4mj38k9efur5SHtL8YSiSOIwqzX65j5wPlMunAqewuKGowaVBSFhx+fTm7nj3F6VEz65ofodo23sPXHhguH3nXvfZw66QxOPPHEoEQx5vUfwOY5zc+LpeC939yPQQh6mQz0Mhl80VDRFLs9rLG7WOXw8FFVHTGREQzpmMQJsWY6xZjpGGMmI9pMdlzwXCWnfrWKYwYPISk5mShLNFHRMcRFR9PL8Tm7d2zjhqmjkXi9P6SUSAmqVL2PB455PUKkz0tE9T0O7zkRo0GPQa/DoNeh1+uY/d3vZI6/i8Q4C4oQCEX4hN/7+TDoFQw6HUaDjgijHo/Hg6pK6uwubHYXdqd3czjd5HVO4/vXbzniPSXGWXj/0UuZfPmlrFi5iszMzHreeRvh/29qkhBixUH7r/rSSRzZpDf52wDgVyDVJ9pIKQuFECmNdaIJcwMUFxdz8YVTEfYyXn5oGp8sWkmdLTgFMQ9HVVV2F5SyfXcRTldww3qP7Z2N0+di1ZgQfvD++0zqntEiUQboGG2mtLISq9VKZOSRvhCdOnUKapKqXr1789ZHzbe5CiGQTdhcU/Q6TrToONECG51uTu2XzV3HhyYnxn5UCf97awbp6emHHO/Zsyfvvvofbrz0lKD2d9Olp7Dg57VUVNXhUVWvu5/v0e3x4HC4sDtc2BxOrDYnT77xFTdeeCKZqfHERJuJi44kzueLPfHaF6iutRJjOfL/f2z/Ltw0dRRTzp3M4iU/h09UoP93iaVSyiZ9Y4UQFrx1G26UUlYHWnRYE+Z6+Pbbb7n4wqlcctpgHrhyGnq9joSYSGwhCrm9+bG3ee2jhSTFRzOib3bQ21dV2WQu57df+x/T+6a2uC+dIshKjGPr1q307du3xe01RV5eHpvLa5p9vSIOnTE3hQfQt0I2PiGo161t4MCB3LR+ewj6E4w73r//V3FZFc/M+IanbjmnXq+knl3S+c87i3jwX6fXe/2tF5/ED7//j3vuvot/P/lUi8YdPIJnhhJCGPCK8vtSys99h/cJIdJ8s+U0vFXQGkQT5oNwu93cf9+9vP3ma7z1wEWcOKzngdcS4yw4HKER5gijnhF9s/jmqZYEIDeMx+M5YvGqsLCQpUuXsvTnn1iy+Dt27tnNCac2fxa4r87OzE0FfLC1BBu6oCZbaoyuXbuSX1mN3e1p1mxfEYG5j6lSBtWW3BACUa8w5+TkYDSaWPrHnxw7IBje3oHjdHkDnhqaBf5z8vHc/O+ZvPLJD+h1OvR6BaNBz8nDe/LUTecQaTYy48GLGHjBdEaOGs2ppwavpmGzCZ5XhsAbGb1RSvn0QS/NBi7BW5LyEmBWY+1owuxjz549TJ1yDmZhY8X7d5J6WIrOxNgo7C3wH22MtOR4vq8OjZkEvGLyxx9/sGLFCpb9vISlS3+hpraGYb07M7xHGo9fPIwp92/lm+37OLWL/6GzNpeHr7cV8cHWUn7bW8qk00/n+funMWLEiBaHOPuLwWAgp2MGW6vq6N2MtKp6ReAOQJlVCa0RMNnQjFkIwa2338H012cw+6W2Eeb0lHhcbg9Olxuj4UgJmTZ5BCcNy/Ml2XditTvZV1bNCx9+R9qJtzKodxciIiJASq66chp78ve2wbs4CBHUYqzHARcBa4UQq3zH7sYryDOFEJcDu4FzGmtEE2Zg1qxZTLviMm66YDS3XnxivaKSEBuFPURJalIS46ixhy4BTpwlkmmXTGF4XiZje2Zw78SpdMtMPmTGM+XEAby88s8mhVlKyS97y/ngz33M2lLAwGOO4ZL/e4TPzzyTqKjQ5Alpip49e7K5oqBZwtw1NoqPAlhw9SAxtEZhAVH/jBngsssu55GHH2LN5t307d76RSUURcFkNFBeVVdv1KsQgs4dj6x+fv4pQ7j7+c/ZVGpk2pVXEh8fT0ZGmJQ2C5IwSyl/omG7yFh/2/lbC7PD4eC2W29h9hef8vlTVzC8X5cGz421mHG7PVitdiIjg3ubnpoUS10z7Ndut5uZ369h7rJNvH772Zgi6nd1KvziniYrppw3ph8fLvy9wdd3VNbxwca9fLSlGHNMLBdfMY1HLrooLL5Yef0HsGn+1mZdOygljpIAFlxVCfpWCN/dX2mkPkwmEzfedDP3v/g5nz9/XUDVcIJFhNFARbU14HQE8dGRpEckN+i+2WaEWUh2eGXuaEW2bNnC8KGD2LPxV1Z+cEejogw+/1ezkR35jdrsm0VqUhxWP4V5z74Kbn1pDn0ufYb40x7krtcX8OO63Vz7bMMmK3++uMN7dQIhmOeLwAOotLt4a80uTv7id8Z8toLafqP55JsFrNuyjTvuvDMsRBmgV+8+bLE2z5slJ8aMS0pmVlr5oc7OOruTQpcbZwOi6EFiaAUzjWhkxgxw7bXXUVDu5KGXvgz5WOpFgMsduGvn2ScP4uOPPsLpDF3u6max35zR1NZK+JOP+U28lUqKpZS9fcfOAR4AegJDpJQrGrh2J1CDdzHb7Y+bSWvw6aefcvWV/+SBKydw1Tkj/J5xxEVHsiO/mF7dgnv72CEpDlsD0VyqqjJn6QZen/Mbq7bvo7SihqH9unLl+Scy/oR+dM1K5aeVmzn1yqd4+pqJxFiaN5tXFIXzxvTnhT+2IITgw60lLNxexNjRo7jjmYc45ZRTwse16TDy8vLYVNG8Ks37AzPecbpRXIJapxuby43DrfoSD+kw6Lzh2wZFwSrg4WVbeHH1bnQC9AJ0QmAQXh9oo04hQqdgMihEKDpMBgWzXodJr2DS64g06L0BLnodkUY9kXodUUYdFoP+wGO0UQ8+/+OGiIyM5Ku58xg+bAiZaQlcNnlkc/98AZNfVEad1U737MC9eHIykpCqSk1NDYmJwSkkERTCbMbsjynjbeBFvPHf+1kHnAX8z4/rR0spSwMfWvBxu93cdecdfPrx+8x94V8MzMsK6Pr42Ch2F5QEfVwJcRacLjfVtXZiLCaKK2p56fOfmb10EzsKy4gwGpg0dhBXXjyBMUPziDQfmp3t+IHdGdSnM9Oe+oyPHrig2eMYP7Qb7y9Yyb932Lj4ypv53/nnk5DQ0hTyoadbt27sLKvE5VEDtv9W+xZ0t9wy4RA3OFWV1LncVDvc1Dhc1Pgez3x/KZed1J9e2Sk4nB5cbg8Ol9u3ebC73Ngc3uc2p5tqp4sSp/e43erA6bJ6z3W6cfoW0JxuDy63isvtweVRcXs8SAllZWWNJv1JTU3lm3kLGDnieNJT4hh/wpHRlqFg4dJ1ZKcnExFgyoH9mCKM2Gy2II+qJQjCLYuRP4nyl/giWA4+thH8u0UOF/bt28eUc8/GqNbw27u3kxgXeJ27pLhoCoobzDvSbMorazFFGDnznrfZVlTJvrJq+vXI4oIzTmDCiP707JLe5N/6ydvOZ9RFj1BaWUtSM94bwMeL13P1tTcw/YknmnV9W2EymeiYmsr2aivd4wN77yv3VZEYFXGEb7KiCKIjDERHGPCWdvUSZTJy4dh+9OuSFoyhN8jpD35Cfn4+gwcPbvS87t2789nnX3LGpNNY8Ppt9OsR2GSjOZiMBlTZvLwgG7YVYHM4cDian+8j6PwNE+VLYIEQQgL/ayh0EUAIMQ2YBgQ1Mgzgl19+4dyzz+LS0wZz37QL0DVzVT0lPprCAIVZVVU2b9/LirXbWPfnbv7cWcDeonIqa+qoqbVRU2fD5XKTlBBDRmYa/7r0NE4c3otYPypaHMwxedmMHtaLf0z/hDnT/xHQtQDf/76VhSu2su2TbwO+NhzI69mDTRVlAQvzqpIqsgK4RkqJrhVszL0z41mzZg1nnnlmk+ced9xxvPDiK0y65gZ+/uD/yEgN7V2OJdKEvZnJth55Yz7XXncjXbo0vqbTuggQLYt4DTahFubjpJQFvrjwhUKITVLKJfWd6BPtVwEGDRoUlPxXUkpefvllHrz//3jt3qlMHNmyW73kBAs7CqsO7LvdbkoraigqqaS0opqKqjoqq2vR6XVs3LqXVRt38/OKdegUQXpqAtkZyXTtlMoJA7qSmZZIVnoSndISSUmMCYrf753/PI0zrgk8c9f3v29lysMf8/Ennx+Rt7m9kJLZide/+YMqh4u8BAu9E6Mx6b0f7x1VdZzy9UoQ+yuHKCh4bcPVDic9kv1/z1K2TuRf7+xkZq1a6ff5U6ZMYceO7Uy8+lm+e/sO4mJC57oYbTHjbKYwe1RJnz7Nr/IdMv5OM2ZfDUCklMVCiC+AIUC9whxsrFYrV027gtUrfuGnN2+ha6dGc4YcQnllLT+v2sbKTbvZsHUvu4oqKa+uo6KqDofTRWSvKd4sXR4Vo0GPOcKA2RSBwaBjT2EZo0edwIknjefGSZfz3emn417/TquYffrkZlJZY8XpdGP0I33nxp37eOS9H/juj+18/MnnjBkzJuRjDDbLli3jiUcf5scff6RfViIvby2kqLKWaqsTs1FPVIQBl9vD6L7Z3HTaQGxON3affdflUVm6aS/zVvof4qxK2ew7rkDok5PKo599E9A1d955F0VFhYz751PMf+3WkIlzdGRE0HO6tDl/l9JSQogoQPGlvosCTgYeauKyoLBt2zbOOuN0+mTH8fNbtxAZYHWO9JNuJzkhhs6ZKXTPSWdI/+7kZKaQ0zGZ5PhooswRmCIMmCIMh8x0n37rGxat2sc38xcihMDlcqHT6VrNFm+JMhEXHcnP63Yy+piuDZ63s7CcB2Z8z/zlW7jpllt57fPrAsqBHA4sWbKEe++6nV3bt3HzhH688+JlRB2UstLtUSmqrGNveQ2FFXWM7tWJ2KgjS1plJ8fy8c+b/O5XSom+FUwZ3TsmsXN3Pna73e/wdiEEzz77PDfeeD3j/vkU8169NSTFgQ16PWpbJHUOKe1sxiyE+BBvHtEkIUQ+cD9QDrwAJANfCyFWSSnHCSHSgdellBOAVOALnyjpgQ+klPNC8zb+Ys6cOVx+2SXcd8V4rj53ZMCi6HS6cbs97Fn8fMB9P/3OfBYsWnygT28eXMHPv//Jcce0Tvhszy4ZLP5jW73C/OeeEl74fBkffbeaa6+7ni0fLSAmJvBouXDg0Qfu5YQ0hQXXXYyhnhwZep1Cx8RoOiY2bqbo2iGOKqsDVVX9Mid5Z8yh/xIbDXq6dExl48aNDBgwwO/r9ovzrbfczPEXPMKsl26ga1YYV6gOC1rXR9kf/PHKOL+Bl76o59wCYILv+Xa8pdZaBY/HwwP338fbb77G50/+k2P7N39xwWwy8uOKzZww6MjadI1RWV1LTk7OgX29Xs8777zLOddfQ8EPzzV7PIHQr0cWKzfvOrDvdnuYs3Qjr8xZwdrtRVx2+RVsfOVTUlL8N+2EI7k98oiv21SvKAdCQrQZnU5hS1kt3ZOb/pGSklZZ/APonZ3CunXrAhJm8Irzf55+hq65uZxw4f+x9MN7yenYvv/fIUUQdot/4WVYaSZlZWWceso4flzwJb+9e3uLRNlo1HPNlNFcdk+DDiT1oqoqdvuROY/PO+886qx2Kqvrmj2mQOidm8H2ogpm/bSea56dTeepT/HM1xv5x/V3szu/gMenP9HuRRkgr3cfNhU1P93nwWQlx/DjTv9c7VUpW2XxD6B3ZhxrVq9q9vVXX/0vJpx6GvOWNFy4QMNHe4v8C3dWrVrFmZMmEmsW3HLxScz9aS3H9utC9+zm375dc+4onv/guwZfX752O8tWbcFoNGA06Ikw6imrqKFb185H5D12uVzExcWyq6A0pCvl+8nrksG+8hpeXridcadOYsEj/yMvLy/k/bY2PXv25MP/VgalrR4dk/hjbwXqQBW7W8Xqi/yzu1VvAVe3B5vLW8hVVVV0rZD2E6B3Tir/+/GPFrVx7HEn8MPX73P11CANqoWUVtTiakEx2dDQDgNMwp2FCxeQ1SmTqKgo5qwsY9uOXazbWsh/bjm72W0mxllwudxIKeu1UT/zzkIqnCY6dcrE5azDYfc6zN9626ElvNxuN+efdw4De2bSq2vHZo8nEHp0TkNFYcF3P7SrAKBA6dmzJxt3Bydvic3u5I3VO3h9xXYU37qAThHoFMW76bwudjqdgsPlweMJbtHVhuiT3YF1/22ZX/nIkSN55MF7G/wstwbVtVaenLGAd2f/wp59FVxwRThF/fn4u3hltBa33XY7t932V4HUJ554grJNi1vUptGgIAGXy1Ov25nV4eLqa27hjDPOaLSd0tJS5s6bz8pPH2oVFyuAKHMEdocDl8sVnmXig0RqaipuVVJSZSU5NrBgnMPR6xSunjiU568+pVHxcrrcmCc+zPUvfU1FrZWSKhsIgc3pDbE+EJrtdHPN6UN44p/jm+zb5nDhdHtdL12+x/2b0+2hpKyciooK4uPjm/XecnNzcbpVtu3e12qLgNW1Vr75aT3f/baJH1f+yc6CMnplJXPvOccy44dNZGWFPjoxYMJsEtPuhflgpJQs/3UZAzKan5bT6XQzcOpjHJOXjV5fv5hWVtcRG9t0usMOHTrw0EMPMfDs+3C53MRGR/Lrxw/QOTN0Nt7Vm3aT16PbUS3Kqqry0ksvIpA4m5Hh7HBioyKoqnM0OaNUFMHlpwwCCYv+2Ead3cUzN55BfHQkcRaT79HM9Pe+48/8sib73VFYQY/LnyPSbEKv02EwGHwVP3To9Xr0Oj09u3fDZrM1W5iFEFx11dWced0LPHX7eZw4vHdQJwlut5sFv2zgy+9WsWFbAbsKyiipqCEtMZr+nTtw7fj+nDGsO+k+75h3lvzpTZIfdmjCHDJmz57NokULee3rRxs9b8bspbw9eymqyoGCk/srCBeUVJLTMYVvXr2tQfepopJKvzOt7Z/Rf/TRR9x+y/WkJITWPW3l+h0MGjwkpH20NY8/9iifv/MqPz10HhlNuMP5Q3yUiZ0VTd9e63U6Xr1hIgD5JZX07pbJ1Wced8R5ybFRFBeXN9leWY2Vvnk9WLl6XeCDDoD7H3iQzl26cu8zT3Hl/W9z3ilDGNgrm349OpGWHIdep0OnUzDodYd85qWU1NTZWL5mO8vXbefPnUWUV9ZQUFyJw+Gk04m3UVpVS1yUiWE9MxnfuyODzxrCcT0zsTQQO+BW1fDLUigEQgkvr4yjSpjHjRvH8OHDmfboB0w781gMeh19u3U8UL13Px988xtVdQ7OOmmwz4aooNd5H80mIxdPOr7BpPMAd087lannn8evv60gLc2/ZDYxMdFkdsomfeT1DMjrzFO3ncvgPg1nDmsuKzbs4dhxU4LebriwYsUKnnv6Pyx/bAqZScH5kUu0mFidH1gOFINewdHAbD3KbOCn9XvoeulzeNcJBYrirePnXdwXCMDp9qA3tU5gz0UXXcRFF13E6tWr+fLLL5n5wwrufm4WJaVleFQVt9uNoij06JJJpCmCPYWllJRXAqC63fTvkkbnDvFkRpvp1zuDi47NpUfHRPrlpJIS5/+ittujoteHo+xoM+aQYTKZ+GLWHK6/7hoe/2A5NpuNfUUFzHrmSnp1+asM/KnH9+G1L5fyf1ef0ax+Lp50PN/9uonPP/+ca665xq9rJkw4lQkTTqWoqIjc3K4hc7lasW4H198TFmmvQ8LjDz/A/ZMHB02UARKjzVRbA6u5aNDrcDZQkurqs47jmO6ZvrswFY8q8XhUJBzYV1XJlj0lfPNH69a769evH/361R9eYLVa2bBhA1arlaysLJKTk1m3bh3X/mMKy6YHx62jsRzTbYfQFv9Cjclk4tXX3jiw/847Mxh75U28/+gljB3qrXo95ZTB3PbMp9jsTsym5tlih/bN5o/f660P0Cgvv/wSk8YMZEBedrP6bYxtu/dRXF4dnkligoTq8ZAawAzNH1JiI6mxBpaG0qjX4XTXny8iJT6aicf3arKNlZv2MH91YUD9hpLIyEgGDTr0R91isVBrC161EYvJSG1t84oahJbwmjGH189ECLj44kt46JHH+M/7Pxw4lpIQQ1ZGMrc/9VGz201NjKW0ODB3rcLCQl568QUevq7pVI7N4e0vfuKCCy4MPxteEImIiMARQPFUf3CrapvM5ExGA/YGKteECxaLhZoA7yYaIzrSSHV1ddDaCxphFmBy1AszwAknnMCO/EMrj3zz4rXM+HIJi3/b2Kw2k+NjKCkNTJjvv+9eJo0ZQKf04JfUsTuczJj1M5ddfkXQ2w4njBERQfHEOJgPftzIsb0Cc+HyqGqLkxmZjPqwF+Z335lB76zgeRHFR0VQWhoWBY0ORSj+ba3E30KYTSYTFdW1rN6858DMqEtmCpPHDuCpN+cG3J6Ukve/+gUpA/sFTUlJZv7SjXQ++TauuPdNPvz6F/aVVjV9oR88+cY3DB4y9Kg2YwBUVVYSGxlcd6t5q3awYnM+0z9awuc/baCs2trkNS632uI8HRCuNlcva9as4dmnn+KVK8cGrc3huSl8v3B+0NoLDkIT5rYgOzubS/9xOZPvmEHX0x/g5v98yuIVmxkxsBvb9+wLuL3Siho+/PoXZs35OqDrHnn0cfL3FjJ/0WIGjDyTT37YSc/T7mLA5Pu59d8f8s2S1dTWBX7buH1PMc+/v5Bnn38x4GvbG1u3bWsyY1ygfHjjaQztksqsnzcy7dnZ3P/u901e41HVBv3c/cXmdBEZaW76xDbA6XRy8QVTmH7RCDolN+2z7y8TBnZl3oIFeDzBvetpEYKgCbMQ4k0hRLEQYt1BxxKEEAuFEFt8j006pYe6SvZ44DlAhzcd6PQm31kI0Ol0/PvJp3ji30+ydu1avvzyC2578TPWb9xEpMnIG58tZtTgnnTOTPErbNVo0KMoCsnJyQGPRQhBjx496NGjB9dddx1ut5sVK1awcOECnnx/Pufd/BIDe3dl7NBujB3ei8G9O6NvZGbm8ahccd9b3HHnXeEZURVESkpK2PDnNq58w4UQHOJ/fsFx3bhjUvO8Uc4e3oOzh/cA4NrXFvDl0o2kxkWhUxSEAEUInG4P1VYH1VYHNVYHv23eS7fO6U203DhWuxOzn7mWW5uHHryfjha4dGzfoLabmRxDx6QYZs+e7VfZrNYjaPbjtzmyePWdwLdSyulCiDt9+3fUc+0BQlYlWwihA14CTgLygeVCiNlSyg1+9BkShBD07duXvn37ct9997N161beffcdvl+3iftf+jc6ASMH92Dk4NxGhdpo0OMMUiIWvV7PsGHDGDZsGPfeex91dXX8+OOPLFwwn2se/5Sdu3YzYkgeJw7pztjhvejR+dDCrE+//Q3SEMMtt9walPGEM0lJSaxevRqXy+XLda2gKArLli1j5v+e5o5JLe8jMTqSylo7i9bsPiD6UkoMeh0WcwRRZiPR0VGce9JAzh7dsqy2NocLszn8ZszLly/ntf++wu9PXxKS/BpPXzqSKVf8g/KyMi6/IhzWRIK3sFdf8WpgEt6c9gAzgMW0VJhbUCV7CLDVl5cZIcRHvgG2mTAfTteuXXnwQW9RFSklW7Zs4fvvv+f7779tVKiNBj0OhzMkiWGioqIYP34848d78ywUFxfz3XffsXDBPP5z9fO43U7GDuvF2GE9SE2M5T8zFrB8xe9HZLU7Gtn/w3o4P/30E50Sg+NCl5eZSHpSLD+87J9/ekuw2l1ERrYsz0ewsdvtXHLh+Tx7+RjSEkJT/3FUnywWPzKFU+69C3OkmalTLwhJP4Hht1kqSQhxsIXg1caKTPtIlVIWAkgpC301UBsllH7MGcCeg/bzgaENnRzKKtn+IISgW7dudOvWjSuvvBIpJVu3buX7779n8fff8sDLTyKkysghPRk5KBfwJucPdRRTSkoKU6ZMYcqUKUgp2bZtGwsXLmTOwnn8suxLnnv+xaPehNEUUkoMQagqUl5j47EvfiMuunVmseEYBfefp54kLzWS804IbarYHh2TmH33mZx03TVkZ+dw7LHHhrS/JvHfw6ZUShnyCK5Qfirq+6Y0uAQdiirZLUEIQW5uLrm5uUybNu2AKC5evJjF3y1i4ID+bTKmrl270rVrV66++upW7z9c6du3L28+X9L0iU1wymOfk9EhgQ8evCgIo2oanSLCaxEM+HPTBoZ0aZ1CCn2yU3jz2vGcO/lMNmze0oZlzgQh9oPYJ4RI882W04Am/WxDOZp8IPOg/Y5AQQj7Cyn7RfGKK67gvQ8+YvnK38NutvN3Zfjw4ewuqWZncctcD/PLa7jz4rGtNmPW63S4G4gebCtuvOV2nvlqJXX24EX7NcaEQV0Z168Td9/ZqMk19IQ2wGQ2cInv+SXArKYuCKUwLwdyhRA5QggjMAXvADU0goper+fiSy7m0S+XN7uN/LJqyqqt9OvaMk+LQNDrlbCr5jFgwABGjBzFQx/93Gp9PnHxCD6d+RHLlzf//9dyhJ9bE614i1f/AnQXQuQLIS4HpgMnCSG24HWGaNI7rUlhrq8jIcSZvorZw/FWyZ7vOzddCDEXQErpBq4F5gMbgZlSyvVNvjMNjWZw3wMPMW9NPj+s39P0yYdx9wdL6Hnjm1xy6lBiLa3nJREfbaaisrLV+vOX51/6L7NWFfDsrNYRyoRoMw+ffxw3X39t2wTcCII2Y5ZSni+lTJNSGqSUHaWUb0gpy6SUY6WUub7HJnPCNinMDXT0he95hJQyVUo5zndugZRywkHXzpVSdpNSdpFSNp4kWUOjBcTGxvLam29z4UvzyS8LrEjrJ8u28sLNk/nf7c0vR9YckuMslJY1nbe5tUlNTWXR9z/wzNzVzFq2uVX6vHRsX0oL9/Dzz603U/8Lf2fLWjFWDY2AmTBhAtfeeAvnPvsai++bjNHgnwuh3eUiJz2hRX273B5sDhc2hwur3XnguXffhc3512t23/GqWjslZeVtWo+vITp16sSnX8xi4oRx9OiYRPeOwc/vcjA6ncLEQZ1ZuGABxx9/fEj7qhcRXu6mmjBrHFXccedd/PLTj9z2/o/ccuox2F1uHC5vpWu7043D7fHuu9zYXd7nNoeLr37ewC9rd3rF0+HB5nRjc3qwOlzYHG6vsB4iuE6sNgc2hxOb3YGqSiLNJsymCCIjzZhNJsxmE5HmSMxms3eLjCQyMgqTOcb7vKOFZ589I+xEeT9Dhw7lkceeYPL0B1n8yBSSYkLrc31sj3T+t/THkPbRIGH2P9CEWeOoQlEUZrz/ISePGcUJD3+BKSKCCKORiIgIIiIiMJkifM9NmEwmIkxR9Ok3AFtsN6piYomMjKJD5F9iGunHc7PZjMFgCFuBbQnTrrySXbt2kHX5M3RIjCUtIYaUuChizAaiTXqiI/RYTHriLWbSEiykJ1hIT4gmIzE64L+HQa+gqq1TgfxQWtdM4Q+aMGscdcTHx7P8j9VtPYyjhkcfm849/3cfhYWFFBUVsW/fPqqrq6mpqaG2tpbq6ip2lxQz//d8Cgo2kl9QiNvtYmiPTqTHRyGRvrwmeMPcpe+5L9eJ9B0vLKsiMTO3bd5kmP2oasKsoaHRJJGRkXTp0oUuXbr4df7evXtZtmwZZWVlh+Q1qW87+PW8vNBGHDaMJswaGhpHORkZGUyePLmth+E/2oxZQ0NDI4wQWjFWDQ0NjTBEE2YNDQ2N8EIzZWhoaGiEG5owa2hoaIQRmh+zhoaGRtghtMU/DQ0NjTBDszE3zcqVK0uFELta2EwSUBqM8bQi2phbB23MrUNrjDlIddU0YW4SKWVyS9sQQqxojdpcwUQbc+ugjbl1aDdj1vyYNTQ0NMIRbcasoaGhEV5oNuZW49W2HkAz0MbcOmhjbh3ayZjDz5Qh2qTGloaGhkaYMOiYfnLFj9/4da6wZKxsDbv50Txj1tDQ0PAPzZShoaGhEW6ElzCHl2ElSAgh4oQQnwohNgkhNgohhrf1mBpDCNFdCLHqoK1aCHFjW4+rKYQQNwkh1gsh1gkhPhRCmNp6TE0hhLjBN9714fo3FkK8KYQoFkKsO+hYghBioRBii+8xvi3HeDgNjPkc399ZFUKEsducz8bsz9ZKHJXCDDwHzJNS9gD6ARvbeDyNIqXcLKXsL6XsDwwErMAXbTuqxhFCZADXA4OklL0BHTClbUfVOEKI3sA/gSF4PxenCSHaqJZRo7wNjD/s2J3At1LKXOBb33448TZHjnkdcBawpNVHEwgCTZhDjRAiBhgBvAEgpXRKKSvbdFCBMRbYJqVsaeRja6AHzEIIPRAJFLTxeJqiJ7BMSmmVUrqBH4Az23hMRyClXAKUH3Z4EjDD93wGcEZrjqkp6huzlHKjlHJzGw0pQISfW+twNNqYOwMlwFtCiH7ASuAGKWVd2w7Lb6YAH7b1IJpCSrlXCPEUsBuwAQuklAvaeFhNsQ54VAiRiHfME4AVbTskv0mVUhYCSCkLhRApbT2go4WVv6+eL8xJSX6e3iph8UejMOuBY4DrpJS/CiGew3vbd2/bDqtphBBG4HTgrrYeS1P4bJyTgBygEvhECHGhlPK9Nh1YI0gpNwohngAWArXAasDdtqPSaGuklIebYNqco86UAeQD+VLKX337n+IV6vbAKcDvUsp9bT0QPzgR2CGlLJFSuoDPgWPbeExNIqV8Q0p5jJRyBN5b7y1tPSY/2SeESAPwPRa38Xg0QshRJ8xSyiJgjxCiu+/QWGBDGw4pEM6nHZgxfOwGhgkhIoUQAu/fOawXWQH2mwCEEJ3wLky1l7/3bOAS3/NLgFltOBaNEHNURv4JIfoDrwNGYDvwDyllRZsOqgmEEJHAHqCzlLKqrcfjD0KIB4Hz8JoD/gCukFI62nZUjSOE+BFIBFzAzVLKb9t4SEcghPgQGIU3beY+4H7gS2Am0Anvj+I5UsrDFwjbjAbGXA68ACTjNXetklKOa6MhtiuOSmHW0NDQaM8cdaYMDQ0NjfaOJswaGhoaYYYmzBoaGhphhibMGhoaGmGGJswaGhoaYYYmzBoaGhphhibMGhoaGmHG/wPgGut2L8rX8wAAAABJRU5ErkJggg==\n",
336 "text/plain": [
337 "<Figure size 432x288 with 2 Axes>"
338 ]
339 },
340 "metadata": {
341 "needs_background": "light"
342 },
343 "output_type": "display_data"
344 }
345 ],
346 "source": [
347 "tracts.plot(column='CRIME', cmap='OrRd', edgecolor='k', legend=True)"
348 ]
349 },
350 {
351 "cell_type": "markdown",
352 "metadata": {},
353 "source": [
354 "All the 49 neighbourhoods are colored along a white-to-dark-red gradient, but the human eye can have a hard time comparing the color of shapes that are distant one to the other. In this case, it is especially hard to rank the peripheral districts colored in beige.\n",
355 "\n",
356 "Instead, we'll classify them in color bins."
357 ]
358 },
359 {
360 "cell_type": "markdown",
361 "metadata": {},
362 "source": [
363 "## Classification by quantiles\n",
364 ">QUANTILES will create attractive maps that place an equal number of observations in each class: If you have 30 counties and 6 data classes, you’ll have 5 counties in each class. The problem with quantiles is that you can end up with classes that have very different numerical ranges (e.g., 1-4, 4-9, 9-250)."
365 ]
366 },
367 {
368 "cell_type": "code",
369 "execution_count": 5,
370 "metadata": {
371 "ExecuteTime": {
372 "end_time": "2017-12-15T21:30:30.408917Z",
373 "start_time": "2017-12-15T21:30:30.088920Z"
374 }
375 },
376 "outputs": [
377 {
378 "data": {
379 "text/plain": [
380 "<AxesSubplot:>"
381 ]
382 },
383 "execution_count": 5,
384 "metadata": {},
385 "output_type": "execute_result"
386 },
387 {
388 "data": {
389 "image/png": "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\n",
390 "text/plain": [
391 "<Figure size 432x288 with 1 Axes>"
392 ]
393 },
394 "metadata": {
395 "needs_background": "light"
396 },
397 "output_type": "display_data"
398 }
399 ],
400 "source": [
401 "# Splitting the data in three shows some spatial clustering around the center\n",
402 "tracts.plot(column='CRIME', scheme='quantiles', k=3, cmap='OrRd', edgecolor='k', legend=True)"
403 ]
404 },
405 {
406 "cell_type": "code",
407 "execution_count": 6,
408 "metadata": {
409 "ExecuteTime": {
410 "end_time": "2017-12-15T21:28:00.376417Z",
411 "start_time": "2017-12-15T21:27:57.039Z"
412 }
413 },
414 "outputs": [
415 {
416 "data": {
417 "text/plain": [
418 "<AxesSubplot:>"
419 ]
420 },
421 "execution_count": 6,
422 "metadata": {},
423 "output_type": "execute_result"
424 },
425 {
426 "data": {
427 "image/png": "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\n",
428 "text/plain": [
429 "<Figure size 432x288 with 1 Axes>"
430 ]
431 },
432 "metadata": {
433 "needs_background": "light"
434 },
435 "output_type": "display_data"
436 }
437 ],
438 "source": [
439 "# We can also see where the top and bottom halves are located\n",
440 "tracts.plot(column='CRIME', scheme='quantiles', k=2, cmap='OrRd', edgecolor='k', legend=True)"
441 ]
442 },
443 {
444 "cell_type": "markdown",
445 "metadata": {},
446 "source": [
447 "## Classification by equal intervals\n",
448 ">EQUAL INTERVAL divides the data into equal size classes (e.g., 0-10, 10-20, 20-30, etc.) and works best on data that is generally spread across the entire range. CAUTION: Avoid equal interval if your data are skewed to one end or if you have one or two really large outlier values."
449 ]
450 },
451 {
452 "cell_type": "code",
453 "execution_count": 7,
454 "metadata": {
455 "ExecuteTime": {
456 "end_time": "2017-12-15T21:28:00.376417Z",
457 "start_time": "2017-12-15T21:27:57.045Z"
458 }
459 },
460 "outputs": [
461 {
462 "data": {
463 "text/plain": [
464 "<AxesSubplot:>"
465 ]
466 },
467 "execution_count": 7,
468 "metadata": {},
469 "output_type": "execute_result"
470 },
471 {
472 "data": {
473 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVUAAAD4CAYAAABc+XWqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAB+BUlEQVR4nO2dd3yTVRfHvzc76Z50QVtm2QjIEJElW1EUVFQEFHHvvX2duF63iAPn61acqExBkI3svSktbelu08znvn+k1AIdaZq0BZ/v55MmefI895407ckd5/yOkFKioqKiouIfNI1tgIqKisrphOpUVVRUVPyI6lRVVFRU/IjqVFVUVFT8iOpUVVRUVPyIrrENqIro6GiZkpLS2GaoqKioVMnatWuPSiljqnqtSTrVlJQU1qxZ09hmqKioqFSJEOJAda+p038VFRUVP6I6VRUVFRU/ojpVFRUVFT/SJNdUVVT+zTidTtLT07HZbI1tyr8ek8lEUlISer3e62tUp6qi0sRIT08nJCSElJQUhBCNbc6/Fiklubm5pKenk5qa6vV16vRfRaWJYbPZiIqKUh1qIyOEICoqqs4zBtWpqqg0QVSH2jTw5XNQp/8qpy2KorBixQqEEJhMJkwmE2azueKxyWTCaDSe+g5MKuB2AAqgAa0BhDpeaizU37zKacuhQ4cYMGAAd9x+K1MmT2LshRcwcOAAunbtQnJyMmFhYWi1WsxmMxEREcTHx9OqVUtWrVrV2KZ7j8sK9nxwlYKrzHNvz/cc9xNr166lc+fOtG7dmltvvZWqNJhzc3MZNGgQwcHB3Hzzzce99vnnn9O5c2e6dOnCiBEjOHr0aI39VddWcXEx3bp1q7hFR0dz++23n3T9qlWrKs7p2rUrs2fPrnjN4XAwbdo02rZtS1paGt9++20dfxu1o45UVU5b4uLi0Gg0LF3wMzpd1X/qiqJgt9spK7Nhs9m4aurNZGRkNLClPuKyehxpla+VH9dZ6t3NDTfcwDvvvEOfPn0YNWoUv/32GyNHjjzuHJPJxJNPPsnmzZvZvHnzP2a4XNx2221s3bqV6Oho7r33Xt544w0ef/zxavurrq2QkBDWr19f8bxHjx5cdNFFJ13fqVMn1qxZg06nIzMzk65du3L++eej0+l4+umniY2NZefOnSiKQl5enu+/mGpQR6oqpy1Go5HY2BjSD1fvJDUaDWazmcjICBIS4jEaDWi12ga00kekUr1DPYarzHNePcjMzKSoqIi+ffsihOCqq67i+++/P+m8oKAgzj77bEwm0/FmSomUktLSUqSUFBUVkZCQUGOf1bVVmV27dpGdnU3//v1Pes1isVR8idpstuOWd2bNmsUDDzwAeD776OjoGm3xBdWpqpzWpCSnsP/AQa/PVxTl1HCqbod/z6uGw4cPk5SUVPE8KSmJw4cPe329Xq9nxowZdO7cmYSEBLZu3co111xTL5vAs6Rw6aWXVrsevnLlSjp27Ejnzp15++230el0FBQUAPDII4/QvXt3xo8fT1ZWVr1tORHVqaqc1qSmprJvv/dO1e3+x6m63W7sdjslJSUUFxejKPUb9fkXb22pn81VrZ/WZWPP6XQyY8YM/v77bzIyMujSpQvPPvtsvWwC+OKLL5gwYUK1r/fu3ZstW7awevVqnn32WWw2Gy6Xi/T0dPr168e6devo27cvd999d71tORF1TVXltCY1NbVOI9XgoCBGjx6NoigIIdDpdBXZNFarFbPZTHBwMMHBQZ77oGBCQkIICwvjjTffJCamSjW4AODteKh+46akpCTS09Mrnqenp9c6fa/MsTXQVq1aAXDJJZcwffr0etm0YcMGXC4XPXr0qPXc9u3bExQUxObNm+nRowcWi4WxY8cCMH78eN5///162VIVqlNVOa1JSU1l0fzfvT7/68/ex+12o9Pp0GiOd0iKomC1WikpKaWktJSSklKKi0soKS3ljnsfYdeuXQ3nVLUGz06/N+fVg/j4eEJCQlixYgW9e/fm448/5pZbbvH6+sTERLZu3UpOTg4xMTHMmzeP9u3bAzB79mxWrVpV55Hr559/XuModd++fTRv3hydTseBAwfYsWNHRXba+eefzx9//MHgwYNZsGABHTp0qFPf3qA6VZXTmtTUVGbVYaSq1WqrXVPVaDTlo9Tgk157/r9vNGyuvtCAzlzzZpXO7Jd41RkzZjB58mTKysoYOXJkxc7/jz/+yJo1a3jiiScAjw5yUVERDoeD77//nrlz59KhQwcee+wxzjnnHPR6PcnJyXz44YcA7Nmzh9DQ0Cr7rK4tgK+++oo5c+Ycd35lW5YuXcr06dPR6/VoNBreeuutig2p5557jokTJ3L77bcTExPDBx98UO/fz4mIqtZMGpuePXtKVaRaxR8c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\n",
474 "text/plain": [
475 "<Figure size 432x288 with 1 Axes>"
476 ]
477 },
478 "metadata": {
479 "needs_background": "light"
480 },
481 "output_type": "display_data"
482 }
483 ],
484 "source": [
485 "tracts.plot(column='CRIME', scheme='equal_interval', k=4, cmap='OrRd', edgecolor='k', legend=True)"
486 ]
487 },
488 {
489 "cell_type": "code",
490 "execution_count": 8,
491 "metadata": {
492 "ExecuteTime": {
493 "end_time": "2017-12-15T21:28:00.386417Z",
494 "start_time": "2017-12-15T21:27:57.048Z"
495 }
496 },
497 "outputs": [
498 {
499 "data": {
500 "text/plain": [
501 "<AxesSubplot:>"
502 ]
503 },
504 "execution_count": 8,
505 "metadata": {},
506 "output_type": "execute_result"
507 },
508 {
509 "data": {
510 "image/png": "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\n",
511 "text/plain": [
512 "<Figure size 432x288 with 1 Axes>"
513 ]
514 },
515 "metadata": {
516 "needs_background": "light"
517 },
518 "output_type": "display_data"
519 }
520 ],
521 "source": [
522 "# No legend here as we'd be out of space\n",
523 "tracts.plot(column='CRIME', scheme='equal_interval', k=12, cmap='OrRd', edgecolor='k')"
524 ]
525 },
526 {
527 "cell_type": "markdown",
528 "metadata": {},
529 "source": [
530 "## Classificaton by natural breaks\n",
531 ">NATURAL BREAKS is a kind of “optimal” classification scheme that finds class breaks that will minimize within-class variance and maximize between-class differences. One drawback of this approach is each dataset generates a unique classification solution, and if you need to make comparison across maps, such as in an atlas or a series (e.g., one map each for 1980, 1990, 2000) you might want to use a single scheme that can be applied across all of the maps."
532 ]
533 },
534 {
535 "cell_type": "code",
536 "execution_count": 9,
537 "metadata": {
538 "ExecuteTime": {
539 "end_time": "2017-12-15T21:28:00.376417Z",
540 "start_time": "2017-12-15T21:27:57.042Z"
541 }
542 },
543 "outputs": [
544 {
545 "data": {
546 "text/plain": [
547 "<AxesSubplot:>"
548 ]
549 },
550 "execution_count": 9,
551 "metadata": {},
552 "output_type": "execute_result"
553 },
554 {
555 "data": {
556 "image/png": "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\n",
557 "text/plain": [
558 "<Figure size 432x288 with 1 Axes>"
559 ]
560 },
561 "metadata": {
562 "needs_background": "light"
563 },
564 "output_type": "display_data"
565 }
566 ],
567 "source": [
568 "# Compare this to the previous 3-bin figure with quantiles\n",
569 "tracts.plot(column='CRIME', scheme='natural_breaks', k=3, cmap='OrRd', edgecolor='k', legend=True)"
570 ]
571 },
572 {
573 "cell_type": "markdown",
574 "metadata": {},
575 "source": [
576 "## Other classification schemes in PySAL\n",
577 "\n",
578 "Geopandas includes only the most used classifiers found in PySAL. In order to use the others, you will need to add them as additional columns to your GeoDataFrame.\n",
579 "\n",
580 ">The max-p algorithm determines the number of regions (p) endogenously based on a set of areas, a matrix of attributes on each area and a floor constraint. The floor constraint defines the minimum bound that a variable must reach for each region; for example, a constraint might be the minimum population each region must have. max-p further enforces a contiguity constraint on the areas within regions."
581 ]
582 },
583 {
584 "cell_type": "code",
585 "execution_count": 10,
586 "metadata": {},
587 "outputs": [
588 {
589 "data": {
590 "text/html": [
591 "<div>\n",
592 "<style scoped>\n",
593 " .dataframe tbody tr th:only-of-type {\n",
594 " vertical-align: middle;\n",
595 " }\n",
596 "\n",
597 " .dataframe tbody tr th {\n",
598 " vertical-align: top;\n",
599 " }\n",
600 "\n",
601 " .dataframe thead th {\n",
602 " text-align: right;\n",
603 " }\n",
604 "</style>\n",
605 "<table border=\"1\" class=\"dataframe\">\n",
606 " <thead>\n",
607 " <tr style=\"text-align: right;\">\n",
608 " <th></th>\n",
609 " <th>AREA</th>\n",
610 " <th>PERIMETER</th>\n",
611 " <th>COLUMBUS_</th>\n",
612 " <th>COLUMBUS_I</th>\n",
613 " <th>POLYID</th>\n",
614 " <th>NEIG</th>\n",
615 " <th>HOVAL</th>\n",
616 " <th>INC</th>\n",
617 " <th>CRIME</th>\n",
618 " <th>OPEN</th>\n",
619 " <th>...</th>\n",
620 " <th>X</th>\n",
621 " <th>Y</th>\n",
622 " <th>NSA</th>\n",
623 " <th>NSB</th>\n",
624 " <th>EW</th>\n",
625 " <th>CP</th>\n",
626 " <th>THOUS</th>\n",
627 " <th>NEIGNO</th>\n",
628 " <th>geometry</th>\n",
629 " <th>Max_P</th>\n",
630 " </tr>\n",
631 " </thead>\n",
632 " <tbody>\n",
633 " <tr>\n",
634 " <th>0</th>\n",
635 " <td>0.309441</td>\n",
636 " <td>2.440629</td>\n",
637 " <td>2</td>\n",
638 " <td>5</td>\n",
639 " <td>1</td>\n",
640 " <td>5</td>\n",
641 " <td>80.467003</td>\n",
642 " <td>19.531</td>\n",
643 " <td>15.725980</td>\n",
644 " <td>2.850747</td>\n",
645 " <td>...</td>\n",
646 " <td>38.799999</td>\n",
647 " <td>44.070000</td>\n",
648 " <td>1.0</td>\n",
649 " <td>1.0</td>\n",
650 " <td>1.0</td>\n",
651 " <td>0.0</td>\n",
652 " <td>1000.0</td>\n",
653 " <td>1005.0</td>\n",
654 " <td>POLYGON ((8.62413 14.23698, 8.55970 14.74245, ...</td>\n",
655 " <td>0</td>\n",
656 " </tr>\n",
657 " <tr>\n",
658 " <th>1</th>\n",
659 " <td>0.259329</td>\n",
660 " <td>2.236939</td>\n",
661 " <td>3</td>\n",
662 " <td>1</td>\n",
663 " <td>2</td>\n",
664 " <td>1</td>\n",
665 " <td>44.567001</td>\n",
666 " <td>21.232</td>\n",
667 " <td>18.801754</td>\n",
668 " <td>5.296720</td>\n",
669 " <td>...</td>\n",
670 " <td>35.619999</td>\n",
671 " <td>42.380001</td>\n",
672 " <td>1.0</td>\n",
673 " <td>1.0</td>\n",
674 " <td>0.0</td>\n",
675 " <td>0.0</td>\n",
676 " <td>1000.0</td>\n",
677 " <td>1001.0</td>\n",
678 " <td>POLYGON ((8.25279 14.23694, 8.28276 14.22994, ...</td>\n",
679 " <td>0</td>\n",
680 " </tr>\n",
681 " <tr>\n",
682 " <th>2</th>\n",
683 " <td>0.192468</td>\n",
684 " <td>2.187547</td>\n",
685 " <td>4</td>\n",
686 " <td>6</td>\n",
687 " <td>3</td>\n",
688 " <td>6</td>\n",
689 " <td>26.350000</td>\n",
690 " <td>15.956</td>\n",
691 " <td>30.626781</td>\n",
692 " <td>4.534649</td>\n",
693 " <td>...</td>\n",
694 " <td>39.820000</td>\n",
695 " <td>41.180000</td>\n",
696 " <td>1.0</td>\n",
697 " <td>1.0</td>\n",
698 " <td>1.0</td>\n",
699 " <td>0.0</td>\n",
700 " <td>1000.0</td>\n",
701 " <td>1006.0</td>\n",
702 " <td>POLYGON ((8.65331 14.00809, 8.81814 14.00205, ...</td>\n",
703 " <td>2</td>\n",
704 " </tr>\n",
705 " <tr>\n",
706 " <th>3</th>\n",
707 " <td>0.083841</td>\n",
708 " <td>1.427635</td>\n",
709 " <td>5</td>\n",
710 " <td>2</td>\n",
711 " <td>4</td>\n",
712 " <td>2</td>\n",
713 " <td>33.200001</td>\n",
714 " <td>4.477</td>\n",
715 " <td>32.387760</td>\n",
716 " <td>0.394427</td>\n",
717 " <td>...</td>\n",
718 " <td>36.500000</td>\n",
719 " <td>40.520000</td>\n",
720 " <td>1.0</td>\n",
721 " <td>1.0</td>\n",
722 " <td>0.0</td>\n",
723 " <td>0.0</td>\n",
724 " <td>1000.0</td>\n",
725 " <td>1002.0</td>\n",
726 " <td>POLYGON ((8.45950 13.82035, 8.47341 13.83227, ...</td>\n",
727 " <td>2</td>\n",
728 " </tr>\n",
729 " <tr>\n",
730 " <th>4</th>\n",
731 " <td>0.488888</td>\n",
732 " <td>2.997133</td>\n",
733 " <td>6</td>\n",
734 " <td>7</td>\n",
735 " <td>5</td>\n",
736 " <td>7</td>\n",
737 " <td>23.225000</td>\n",
738 " <td>11.252</td>\n",
739 " <td>50.731510</td>\n",
740 " <td>0.405664</td>\n",
741 " <td>...</td>\n",
742 " <td>40.009998</td>\n",
743 " <td>38.000000</td>\n",
744 " <td>1.0</td>\n",
745 " <td>1.0</td>\n",
746 " <td>1.0</td>\n",
747 " <td>0.0</td>\n",
748 " <td>1000.0</td>\n",
749 " <td>1007.0</td>\n",
750 " <td>POLYGON ((8.68527 13.63952, 8.67758 13.72221, ...</td>\n",
751 " <td>3</td>\n",
752 " </tr>\n",
753 " </tbody>\n",
754 "</table>\n",
755 "<p>5 rows × 22 columns</p>\n",
756 "</div>"
757 ],
758 "text/plain": [
759 " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n",
760 "0 0.309441 2.440629 2 5 1 5 80.467003 \n",
761 "1 0.259329 2.236939 3 1 2 1 44.567001 \n",
762 "2 0.192468 2.187547 4 6 3 6 26.350000 \n",
763 "3 0.083841 1.427635 5 2 4 2 33.200001 \n",
764 "4 0.488888 2.997133 6 7 5 7 23.225000 \n",
765 "\n",
766 " INC CRIME OPEN ... X Y NSA NSB EW CP \\\n",
767 "0 19.531 15.725980 2.850747 ... 38.799999 44.070000 1.0 1.0 1.0 0.0 \n",
768 "1 21.232 18.801754 5.296720 ... 35.619999 42.380001 1.0 1.0 0.0 0.0 \n",
769 "2 15.956 30.626781 4.534649 ... 39.820000 41.180000 1.0 1.0 1.0 0.0 \n",
770 "3 4.477 32.387760 0.394427 ... 36.500000 40.520000 1.0 1.0 0.0 0.0 \n",
771 "4 11.252 50.731510 0.405664 ... 40.009998 38.000000 1.0 1.0 1.0 0.0 \n",
772 "\n",
773 " THOUS NEIGNO geometry Max_P \n",
774 "0 1000.0 1005.0 POLYGON ((8.62413 14.23698, 8.55970 14.74245, ... 0 \n",
775 "1 1000.0 1001.0 POLYGON ((8.25279 14.23694, 8.28276 14.22994, ... 0 \n",
776 "2 1000.0 1006.0 POLYGON ((8.65331 14.00809, 8.81814 14.00205, ... 2 \n",
777 "3 1000.0 1002.0 POLYGON ((8.45950 13.82035, 8.47341 13.83227, ... 2 \n",
778 "4 1000.0 1007.0 POLYGON ((8.68527 13.63952, 8.67758 13.72221, ... 3 \n",
779 "\n",
780 "[5 rows x 22 columns]"
781 ]
782 },
783 "execution_count": 10,
784 "metadata": {},
785 "output_type": "execute_result"
786 }
787 ],
788 "source": [
789 "def max_p(values, k):\n",
790 " \"\"\"\n",
791 " Given a list of values and `k` bins,\n",
792 " returns a list of their Maximum P bin number.\n",
793 " \"\"\"\n",
794 " from mapclassify import MaxP\n",
795 " binning = MaxP(values, k=k)\n",
796 " return binning.yb\n",
797 "\n",
798 "tracts['Max_P'] = max_p(tracts['CRIME'].values, k=5)\n",
799 "tracts.head()"
800 ]
801 },
802 {
803 "cell_type": "code",
804 "execution_count": 11,
805 "metadata": {},
806 "outputs": [
807 {
808 "data": {
809 "text/plain": [
810 "<AxesSubplot:>"
811 ]
812 },
813 "execution_count": 11,
814 "metadata": {},
815 "output_type": "execute_result"
816 },
817 {
818 "data": {
819 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVUAAAD4CAYAAABc+XWqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAB2mklEQVR4nO2dd3xTVRvHv+dmd9O9oC1lF2QVBARkKUNFEVRwggP3fN3bV3HvLe7xinuBOEBUBAUF2XtDKR1Ad3buef9IqYyONKMteL+fT0hyc+65T0ryyxnPEFJKNDQ0NDSCg9LcBmhoaGgcS2iiqqGhoRFENFHV0NDQCCKaqGpoaGgEEU1UNTQ0NIKIvrkNqI34+HiZmZnZ3GZoaGho1MrSpUv3SikTanutRYpqZmYmS5YsaW4zNDQ0NGpFCLGjrte06b+GhoZGENFEVUNDQyOIaKKqoaGhEURa5JqqhobGsY/L5SIvLw+73d7cptSJ2WwmPT0dg8Hg8zmaqGpoaDQLeXl5REZGkpmZiRCiuc05Aikl+/btIy8vj6ysLJ/P06b/GhoazYLdbicuLq5FCiqAEIK4uLhGj6Q1UdXQ0Gg2WqqgHsAf+7Tpv8Yxi6qqLFq0CCEEZrMZs9mMxWKpeWw2mzGZTC3+i61RjVTB4wRUQAGdEUTLGxdqoqpxzLJr1y5OPPFEevfqgd3uwG63Y3c4sNlsNc9dLhcmk6lGZMPCLMyY8RF9+/ZtbvM1DsZtBbftsGNVoLeAPszvbr///nuuv/56PB4Pl156KbfffnuAhmqiqnEMk5ycjKIoLPhpFnp97R91VVVxOBzYbHbsdjsXXnoN+fn5TWypRr3UJqg1r1Uf90NYPR4PV199NXPmzCE9PZ0+ffowduxYunTpEoCx2pqqxjGMyWQiMTGBvN11i6SiKFgsFmJjW5GamoLJZESn0zWhlRr1ItW6BfUAbpu3XSP5888/adeuHW3btsVoNDJx4kS+/vprPw39B01UNY5pMjMy2b5jp8/tVVXVRLUl4XEGt91B7N69m9atW9c8T09PZ/fu3Y3u53A0UdU4psnKymLbdt9F1eP5R1Q9Hg8Oh4PKykoqKipQ1caPhjQCxde/eeP/b2qrzxeMTUttTVXjmCYrK6tRI9WI8HBOOeUUVFVFCIFer6+JprFarVgsFiIiIoiICPfeh0cQGRlJdHQ0L770EgkJtWaD0/AbX8d9jR8fpqens2vXrprneXl5pKamNrqfw9FEVeOYJjMri5/n/uBz+08/fBOPx4Ner0dRDv2iqqqK1WqlsrKKyqoqKiurqKiopLKqihtvvYdNmzZpohpsdEbvLr8v7RpJnz592LRpE9u2bSMtLY2PPvqIDz/80A8jD0UTVY1jmqysLN5qxEhVp9PVuaaqKEr1KDXiiNcef/rFFh3DftQiFK/bVH2bVXqLX/6qer2eF198kZEjR+LxeLj44ovJyckJwNjqfgPuQUOjBdPY6b+/WCxmbLYGdqk1/OOAu1Rtwhqgn+qYMWMYM2aM3+fXRoPyLoR4SwhRJIRYXctrNwshpBAivo5ztwshVgkhlgshtFT+Gk1OWloaRUXFOByOkF7HbDZrI9VQog8DUyvQh1cLaXj1c/8FNVT4MmZ+Bxh1+EEhRGvgJKChYcBQKWUPKWVu483T0AgMvV5PWloqO3flhfQ6FrM2Ug05QgG92SukenOLDFEFH0RVSjkf2F/LS88AtwJH+iVoaLQgvEsAuxpuGABms0kbqWoAfvqpCiHGArullCsaaCqBH4UQS4UQUxvoc6oQYokQYklxcbE/Zmlo1EpmRibbttdZpy0oaCNVjQM0eqNKCBEG3AWc7EPzE6SU+UKIRGCOEGJ99cj3CKSU04HpALm5udroVyNoNDYAwB+0karGAfwZqWYDWcAKIcR2IB34WwiRfHhDKWV+9X0R8CWgpf7RaHIym2D6b7FYsFmtIb3Gvx3pcSJLNiKLl3vv/QhNbQoaPVKVUq4CEg88rxbWXCnl3oPbCSHCAUVKWVH9+GTgv4GZq6HReLKystgWYrcqs9lElTZSDRmyeAVy70pQ3f8cLFgM8cchErr73e/FF1/MrFmzSExMZPXqIxyc/MIXl6oZwB9ARyFEnhDiknrapgohZlc/TQIWCCFWAH8C30opvw+G0RoajcE7/dfWVI9WZPEKZNHfhwoqgOpGFv2NLG5oa6duJk+ezPffB1eWGhypSiknNfB65kGP84Ex1Y+3Av7/hGhoBInk5GTKysqxWq2EhYXGr1HzUw0N0uP0jlDra7N3JcR2RvgRqjp48GC2b9/up3W10zIdvTQ0goiiKGRktAnpuqrFYsZm10aqQad8+5Ej1MNR3d52LQRNVDX+FWRlhjZc1WwyYbdpI9Wg4/Zx86+hRNZNiCaqGv8KMjMzQ+pWZbFYtDXVUOBrGKreElo7GoEmqhr/CkK9WaX5qYaIqExQGtj6UfTedi0ETVQ1/hVktW3L9p2hi//XslSFBqEzIuKPq79N/HF+bVIBTJo0if79+7NhwwbS09N58803/ernYLTUfxrNhtVqZceOHezYsYPu3buTkpISsmt5p/+hG6lazBZtpBoiDvihHuGnqui9ghqAn+qMGTMCNe8INFHVCDmbN2/m+++/Z/u2bezYsYPtO7azY8dOysvLyWjTmpTkJDZv3c7XX39N7969Q2JDsENVrVYrS/5ejtVqw2azs2HjZm33P4SIhO4Q29m7y++2eddQozL9HqGGEk1UNULOd7Nnc93113PnrTcyfuxIMjPakNEmnaSkxJqSJV9+/S2jRo1i5Mkn07VrVzweD6tXr2bh7wtRFIU+uX2wWLybEYqiYDAYMBgMNYXaVFWloqKCsrIySktLKSsvo7y8HLvdgcPhvdlsNvJ255OeFngdog9mfMoDDz9F15wcLBYLFouFiy68KOB+NepG6IzQqkNzm9EgmqhqhJxrrr2WtWvX8vuiv7jnjv9gNpuPaDPu9FPo0b0rP/+6gLXrNmAwGBg5fCAP3HUjUkr+XrYSl9s79fN4PLhcLlyuf6aCQggiIyOIiY4iOjqK6KgooqIisZjNmEwmjEYDnXsM4Pc//uTsCWcE/J6sVhsTxo/nueefD7gvjWMLTVQ1Qo4Qghdfeonzzz+P8yZfwecfvVNru6zMDLIyM2p9rWOH9gHbkZ2dxfKVq4Iiqk6nE6Ox5U09NZofTVQ1mgSdTsfbb79DeHh4s9nQqX071q3fFJS+nC4XJpMpKH1pHFtooqrRZKiq2qxC1L5dW/5auiwofTkcTozmyKD0peEb0mFFblwMVaUQHoPocDzC1PJqVGmiqtFkNPeUOTOjDSWlpUHpy+l0Eh6tjVSbCnXRV8g/vwbXPwUc5c/vIfqejtLvDL/73bVrFxdeeCEFBQUoisLUqVO5/vrrA7JVE1WNJsMrqoZmu35WZhvKyiuC0pfTqU3/mwp10VfIhZ8c+YLLgVz4CSr4Lax6vZ6nnnqKXr16UVFRQe/evTnppJPo0qWL3/ZqEVUaTUZzj1SzMjOoKK9AVdWA+3I4HdpGVRMgHVbvCLW+Nn9+jXT4V3UhJSWFXr16ARAZGUnnzp3ZvXu3X30dQBNVjSbD4XBgNDSfEMXERKPT69iydVvAfTmdLk1UmwC5cfEhU/5acTmQG/8M+Frbt29n2bJlHH/88QH140vm/7eEEEVCiCNqDQghbhZCSCFEfB3njhJCbBBCbBZC3B6QpRpHPc09/QdIS03lj8V/BdyPNv1vIqpKg9uuDiorKxk/fjzPPvssUVFRAfXly0j1HWDU4QeFEK2Bk4BaY/+EEDrgJWA00AWYJITwf6FC46jH6XRiMDSvqGa3zWTFyrUB96NN/5uI8JjgtqsFl8vF+PHjOe+88zjzzDP97ucAvpRTmS+EyKzlpWeAW4G6Fjz6Apury6oghPgIOB0I/BOtcVSSlpZGQWERK1aupvtxXZvFhvbZbXnn/Q9ZtmIFYWFhhIWFEREeTkR4GBER4URFRREVEUF0TBTRUdHEREcRExNNbGwMsa1a1USDadP/pkF0OB7583v1LwEYTIgO/hVqllJyySWX0LlzZ2666SY/rTwUv3b/hRBjgd1SyhUHYq9rIQ04uH5FHlDnYoUQYiowFaBNmzb+mKXRwomPj+fxxx7josuu4c/ffmwWUdq5axf7S0rpry+lonIfVSUerE43xU43VU4PVqcLq9ODzeXG5vLgcLlxuFUcbg8uj4oQAr1OoCA4aeSYJrf/34YwhSH6nl777v+BNn1P99tfdeHChbz//vt069aNHj16APDwww8zZoz//7eNFlUhRBhwF96S0/U2reWYrKuxlHI6MB0gNze3znYaRzeTp0zhiy++4OHHn+H+u29r8uunpaZyWrc2/Hd0/Tk6a0NKicujYnV5OOvDJdqPfxOh9DsDFY7wU8VgCthPdeDAgUgZXLnxZ6SaDWQBB0ap6cDfQoi+UsqCg9rlAa0Pep4O5PtrqMaxgRCCp595hkGDBnLvnbfUZKlqKjIzWvPXD/6l6BNCYNTrMOp1mI2ai3dTovQ7A9nzZO8uf01EVd9jI6JKSrkKSDzwXAixHciVUu49rOlfQHshRBawG5gInOu/qRrHCu3btyc1NZVZs39g7Kmjm/Ta2dlZFFb459N4MCnhBs4443RiIiOIi4kmPi6OuLg44hISiE1IIi4hkYSEBO+xw27aWqx/CFMYotuQ5jajQRoUVSHEDGAIEC+EyAPuk1LWWnNACJEKvCGlHCOldAshrgF+AHTAW1LKNcEzXeNo5u677ub+h/7L4IEDiImJbrLrdu7Ygf1VDfg9+sD0M3vy0undKbE62Wd1sLfKwX6rk31VW9m3aR37VrrZ4lDZZ3Ozz+pkf5WdfZU29ldUYTYZiYuJJjMzi7m//oZOpwvCO9NoKfiy+z+pgdczD3qcD4w56PlsYHYA9mkco5wxbhzff/892Tl9yO3VA7fbTXbbTI7v04uzzjydqKjQJCtp364tNpcbl0fFoAts6cGgU0iMNJMYeWR+2LqQUlJud7HP6qTHMz9itVqJjNQSsxxLaBFVGs2CoihMf/11li1bxvU3/ofb77yb43rk8s3sn+g/ZDQ7duxquBM/0Ol0mPQ6Ciuap/SJEIJoi5G2cRGEmQxaXatjEG21XaNZadOmTc0u+kknncQ1117LE48/zvhzp7Bk4Vy/+ly9ei3zF/xBlc2GIgSpKclER0fx8mtv8seChdhcHhZu28s5PZsvtyuA2WDQKrA2Ak9FORVzZ+PeW4Q+PpHIEWPQRQYW/RQKNFHVaHHceNNNTHv4YYqKiklMTPDpHFVVOWPCufz683zcHg/ZCdGYDTqklOy3OqhyuBnVOZUvLjqBW2etYHtJZYjfRcNYjHptpOoje19/gb1vvYy0/bPJWPD4A8RffBXxl13rd792u53BgwfjcDhwu91MmDCBBx54ICBbNVHVaHHo9XpOHDyYeb/8xsSzGw4bVFWVvgOGUbFnJ79ePZycpGgUpc6gFJIizewua/4Rotmg10aqPrD39RcofunJI45Lm7XmuL/CajKZmDdvHhEREbhcLgYOHMjo0aPp16+f3/ZqoqrRIhk+fDg/HSSqjz/1PCtWraGyspLKqiqslVYcdht2m439+/aTHK7n92tPIsbSsLtSSpSZPS1EVLWRav14KsrZ+9bL9bbZ+9bLtJo0GV1E4zf8hBBEREQAVBeTdFFPlKhPaKKq0SIZOGgQ06e/VvP8oYceZVDbRDJjw4ky6YlM1BNuDCPSFEVSZAYnZidiMfj2cU6OMLGuoDRElvuO2aDTRqoNUDF39iFT/tqQNisVc2cTc8Y5fl3D4/HQu3dvNm/ezNVXXx1w6j9NVDVaJN26dWP7jp2UlZUTGRlBdGQElx3fltNy0gLuOz7cRLkj8ETVgWIx6LSRagO49xb51q7Yt3a1odPpWL58OaWlpYwbN47Vq1fTtav/CX80UdVokRgMBjJat6Zb977sLynFoFMIMwbHST7GYqCgwspbi7cQbtQTYdYTaTQQadYTZTIQaTIQbdZj8nHk6y9mvaKNVBtAH5/YcCNAn+Bbu/qIiYlhyJAhfP/995qoahybtG+bSatiB3df0p+MVuEBr3UdoLjSQUmFnce+XYFTVXGqEpeUuFSJW3ofe6pzbOgE6BDohEARoFMEOqGgU0ARCnpFoNN57/WKgl6noNcJ2sSG8dXFJ9Zrh0Wv+DxSVVUVl8uFx+PBYrEE7W/R0okcMYaCxx+odwlAWMKIHOFfVqni4mIMBgMxMTHYbDbmzp3LbbcFluhHE1WNFovH4+b4jHgyYyOC2m/b2AhiDTpmtk+qs42UEjfgVCVOWX1TwSkljmoRPvDYKSUOKXFVv17hUXl2XcO5g8y6Q0eqn336KbfdfhtOpxOn01V977253W6MRiOKomA0GsnKysThcJCXt5tly5bRrl27YPxpWhy6yCjiL76q1t3/A8RffJVfm1QAe/bs4aKLLsLj8aCqKmeffTannnqqv+YCmqhqtFAWL17M8qVL+Og/DWWYbDxdkqMpcXnqbSOEwAAYdILGhgi4pOTJPaWoqlpvFq5Sm/OQtHNffPEFV102mXMmjMNoNGAwGDAaDRiNRvR6PUIIpJSUlJSybfsOTCYTZ513CVZr4AliWjIH3KUO91MVlrCA/VSPO+44li1bFrCNB6OJqkbImD17Nk6nk8jISG9G/ago0tPTCQ9vWKbuvf1W7hrSAbPBt3VUq9PNnd+uwOn5RyyNOh0ZseFEGPVEmvUkR1qwGHSoB40yTfX4s/qLQQgEUOl0E2Wu3cVrwbZiluwp572zzqo59vsfv3PfHdeTnp5aZ99CCGJjWxEb2wrwjqg/+OADIiMiqKqqOuJmtVmRUqLT6VCE4r1X/rk/8Fin0zFlyhRGjjqiclKLIP6ya2k1abI3oqq4CH1CdUSVnyPUUKKJqkZIcLvdnHrqqZx2yigqKiopr6igsKiYvn368vkXX9R77oYNG1i5Yjlf335kWsBNxeVM/2Mz87YUszq/hN33nUF8hJln52/go+U7GNwuuaatw+3g9x37sLs9ONweyu0uPNXlqYWA9TYn3cNDU7zPIAT7qpy1iqrLo3L11yt55oWXaorM7d69m6qqKjq0b9w0/qqpU9i6bQd24SY6IpzUxBjCw8MIDwsjPNxbLkYIUFVZM8X9516teV5eUcFFky/i4WkPc/EllwTlbxBsdBGRfrtNNSWaqGoEjNvtpkuXziiKQquYVsTGxhIVFYXFYuHrT9+vaffXkr8ZPmY8E885h06dOtGrd2/Gjh17RH8REREgOCSL1I8b8rn6i7/ZU2alX1YCp3VJZcXu/fR4+geSI81sKi7nyhPa8+gpPXyyuesTs9lsd4VMVE2KYL/VQVbckevBz/62iTadujJhwoSaYwsXLmRAv76N3oC67uqpAdt6gMED+zP69Ins3LmTu++5B71ekwd/0P5qGgGj0+koKirm4/dfJzIigv0lJewvKeXM0w5dD83t3ZOF875lxarVbNi4hcsuuxSj8T06dOhAfHz8IaWBKyqt9Hz6e8w6wZ5KByVVDu4YnsN1gzoQVp11/7pBHViRX8qK/BJWF5Rzbs8Mn21OiQpjZ1no4v9NiuDO2St4eEx3ereOI/ep77C7VEx6hW1lNpatXnuIgC5csIAT+vUJmT2+0KF9O37/eTbnTr6Cbt0+5sH/Psj4CRP+NZ4GwUITVY2AEUJw6SWX8N0PP/Hsk9Pqbdetaxe6dfVWKs9ok84N11+H0+miqLi4ZmNHSknrVhFc2b8dFQ4X7eIjGdE+mXDToR/X2DATQ9slMbRd3bv4dZEeE0Z+cVmjz/OVYTER/LZjHw/OWc0Xkwexck8p96bHYlNVXpbiiPpWC39fyHOPPxgye3wlKSmRubM/58e5P3PnfdN49LFHee216fTu3bu5TTtqEA0VvRJCvAWcChRJKbtWH3sQb7lpFSgCJlcnqD783O1ABeAB3FLKXF+Mys3NlUuWLGnE29BobvLz8+natSubV/9Zs4nSGDweD3a7HY9HZejJp3JKouC+kd1CYKmXe75byU+LN/NOduMF2Vc+KK7g+eIKTIpALyU/d/ZuQE3Iq2DMlEuwWCyU7dvHvuIiPv9mJiUFW2pKYLcEVFXlgWmPs2lrHh/OmBH0/tetW0fnzp19bm8vK2PtZ59RsWcPkSkpdJkwAXN06KtG1GanEGJpXXrmy0j1HeBF4L2Djj0hpbynuvPrgHuBK+o4f2gt9as0jjFSU1M5acQIPvn8K664bEqjz9fpdISHh7P4z6WsX7eB90aODIGV/5ASZaZSCW0Zk4FRZna7PZwYYaZ3xD9rt1dE6Vn6v7cIV91E6BR2V9jp2LFdixJU8CYS79O7J0uWNX8VpPnTpvHbI4/gqqqqOfbd9dcz6I47GHzXXQH17fF4yM3NJS0tjVmzZgVqasOZ/6WU84H9hx0rP+hpOPWUntb493DBhRfywYzP/T6/vLycU8eO564RXemUGNrkw8mRFkLt3ZlpMnBbSgz9Is0YDlqXHBFl4bbECK5JjmFyQhSVio5RJ48IsTX+ER0VRVlZ6JZJfGH+tGnMu/vuQwQVwFVVxby772b+tLqXnHzhueeea9SIuSH8LqcihJgmhNgFnId3pFobEvhRCLFUCFHvNqUQYqoQYokQYklxcbG/Zmk0I/369WPdhg1+nz/wxJEcnx7DrUM7BdGq2kmKNGNTmz+pCkCezsjQwSc0txm1Eh0dRVl584mqvayM3x55pN42vz3yCPby8nrb1EVeXh7ffvstl156qV/n14bfoiqlvEtK2Rr4H3BNHc1OkFL2AkYDVwshBtfT33QpZa6UMjchwbds7xoti8jISCoq/NtRHzRkJNa9BXwwqV+T7DYnR5qxueuPqmoKSt0e9ldUMqCZd/5rQ1VVHn3yedplN18I7NrPPjtihHo4rqoq1n72mV/933DDDTz++OP1Rr41lmD09CEwvrYXDmxeSSmLgC+BvkG4nkYLxWTyrhs6HI0rAT3j489Zu2o1i647mUizIRSmHUFSpBmr043azKPVmSVVtMtu2+Iqqrrdbq66/lZ25Rfw0ccfN5sdFXv2+NSu0sd2BzNr1iwSExOD7tngl6gKIdof9HQssL6WNuFCiMgDj4GTgdX+XE/j6CE6OpqSktJGnXPXPQ/U5ElV1aZZno8wGVCEoMjdvKI6r9LJqJOHNasNh1NRUcHxg0eSl1/ErFnf1vxYNgeRKSk+tYvwsd3BLFy4kG+++YbMzEwmTpzIvHnzOP/88xvdz+E0uPsvhJgBDAHihRB5wH3AGCFER7wuVTuo3vkXQqQCb0gpxwBJwJfVUzk98KGU8vuALdZo0eTkdGHl6rUkJ/vuquR2u/lw6XY+WrYdp0fFrNcRaTYSYzHSKsxIbLiJ+DATsRYDUSY94UbvrVtqDAOz/F8qig0zscXhItnYfO7auwwmhp44sNmuXxs7d+2mvKKSJUtnNbvjf5cJE/ju+uvrXQIwhIfT5aDoNF955JFHeKR6vfaXX37hySef5IMPPvDb1gM0+GmSUk6q5fCbdbTNB8ZUP94KdA/IOo2jjqFDhvLZlzM5ecRQn8/ZuXVtzWOn08muXbvZsSuPvN27yd9TSGFhEUXFe9lUVkZVVRX2/TZs1nI2zlxGybQJh4SzNobESDPb7S5OiLT4dX6gVLlV9pZXMnCA/0XmQoHR6F2CaW5BBTBHRzPojjuYd/fddbYZdMcdmKNaTqlqLaJKI6hcc+21dOjQgfvuvIW0tMZPyYxGI9nZWWRnZzXYNjEpg7927WNApn+j1dToMHYV+7drHAxmlVaRkdGamJjQO7A3BqPBiNPpbG4zajjgh3q4n6ohPDwofqoAQ4YMYciQIQH3A5qoagSZuLg4OnXsyLbtO/wS1caQlZ3Nz5uL/BbV9Ogwduze33DDEPFThYORY1vWempVVRW//f4HTqeruU05hMF33UXfa69l7WefUblnDxEHIqpa0Aj1AJqoagSdqKgoyvz0G2wMI0edxHcz3ueuETl+nZ8ebebvJtoYq40dBjP/GVKnl2GTcsPNd/HBR58ihKBTp05cPKXxUXGhxhwVRa+LL25uMxpEE1WNoBMWFobNFvoqoZdOuYDHn3gGh9uDSd/4kNPkSDNVQfRPbAx2VaWoopKBAwIrh+wvUkocDgcVFZX8Mn8hX86czZIlS3G73WRnZzfZeqqUskWs3dZFQ7lRakMTVY2gExYWhrUJqoS2aZ1OdHgYi3fsY3B246tpJkVaaK5apt+VWklNSSY+Ps7vPh569Cn++9BjGHQKBp0Og16HweAtu+LxePDUJKKW3seqRJXee0/1CF2vE7g8krffeovMzMwgvTvfMJvN7Nu3j7i4uBYprFJK9u3b1+icDJqoagQdi8VCeXlFk1wru317ft5c6JeoJkeasXmaJ6pq5v4qCl3lpKa2rU6cIb331f8cGCBJ5CGZNQ48l4DV7uS+k7sypW9bKh1uKp1uKhxupJQYdQomva76XsGoV444plMUSqxOsh6dzbnnnRf09zh37lxuv+kGIiPCMRgMNeVbMrLb0SmnGykpKfTo0YOWHJZuNptJT09v1DmaqGoEnY4dO3LrXfdiNpu4dMoFIb3WqNEn8827b/qVJjAp0oytgQKAoWK3onBx3wwmdG+DwFveRSCq773uTAfGbkL88/zwdp0SozDqdST5GZC1YFsxx/fqidFYey2tw6msrOS8s8YTERlB734nkJOTQ3h4OCtWrKCiogKHw8H+vUVs37SROb/M56LcTM7sGo67enTsViXbi5axccMffJxfynFDRvHq67V6aB61aKKqEXT+c/PNnHLqqZxwwglMGDc2pC5Dl045n2kPP4HN5cZiaNzHOSnSjNXlwa2q6JtwbdWpqhTZHNw+rAvJUc3jI3uA+dv3MXjEWQ03xBukcc6ZZxBfvov+EdGs++ZNvpheidOj0j0pghiTDqMC6WYDJySG8+rtp5AYWffU+a+d+7hq7sJgvZUWgyaqGiGhU6dOnHLKGF567U3uuu2mkF0nNSWFVlHh/LF9L8PaJzd8wkGY9DrMeoVdTjdZdVQ9DQU/lduIDzc3u6AC/LazjKeGNhyoIaXkqssvw52/mdcu7Od3wMXBpERZ2Jm/B7vd3uJyyQZC82x9avwruOOOO3n+5dfZty+0vqDtOnRk3uYiv86NCzez1dG0PpnflVgZ3iG0Pry+UGF3sS5/L337Npzn6JFp0/jrp+/5eFKfoAgqeEvaZMZGsHjx4qD011LQRFUjZHTu3Jnzzj2Py666yS/XFF859dTRfLe+8VmKAJKiLGx3NO266mYpGN6u+dNbLtxeTO/jujY4Svzg/fd57fmn+ebC44OeRazS4SY+Pj6ofTY3mqhqhJRHHn2UbTt3Mf3Nd0N2jUsnn8+6glKqHO5Gn5sWHcZuZ+PP8xdVVSm0O/zyVgg2v23fx+ARJ9ff5rffuOm6q/nmwn6kRocF3QadIpo9/WKw0URVI6SYTCZmzPiIe/77GB/M+ATwJk2Z9tjT7N7t3+jycOLj44iLjuT3HY13zUmPtlDQhKL6S4WdKLOB1jHhTXbNupi/s5whQ+sOk926dStnjTudd8/qTdeUmKBff/v+SooqbE3uHxtqtI0qjZDTqVMnfvrpJ84443Ruuu1eKiursNls5HTuFLT8AImpadw+azmfpO/E4fbg9Kg43d7b7jIr+futeKTXrccjvTdVSlQgpQlT/80usTKsffOvp1qdblbuKqR///61vl5eXs5po07mzsHtOLljaOzdVWqlU/t2LS5Bd6BooqrRJHTr1o316zdQUlJCWFgYl0+dSmWVf6VXDsZqtZKR0ZlKqxUdIIsqUCToAL2UKFKyRkpGAOl4P/CG6ns9sA5YLZpuwrZOSu5q1/xT/0U79nJc506EhR05pXe5XEwcP44Tk41cfULoSqmU2pxERESErP/mQhNVjSbDYDCQmOgVlMbWs5rx8efM+/U3KiurqKisxFplxVZlZffufFoLlWc6pTBy3R5Od3sOWdOSwCKgJ1DbdkwrwNpEa3qqqlJkd7WI9dT52/YyePiRZcCllFx+6cXIgq08fUFo8xL8lVdC7/6nhfQazYEvmf/fAk4FiqSUXauPPQicjjfzfxEw+UA9qsPOHQU8h3fg8IaU8tEg2q5xFNNYUb3y8mvpbjGQYNARKwStBVgEmBWFEemtSNDr0AkolHDwZNWOd+Ogrv3tCMDuaRpR/aPKgVmvIyu2Bayn7irnjhuHH3H8ySceY9WCn/jpkoFBc52qi4W7K7n9ppaRpSuY+DJSfQd4EXjvoGNPSCnvARBCXIe3RPUVB58khNABLwEnAXnAX0KIb6SUa9H416PX6/E0MEIsLy/n0y9msnzFSqqcTp7vkIRRqTvxRrswE5sq7YeIqhXvdL8uIgBHE41UZ5VUMbhdUrMnD3G4PSzdXsCAAQMOOT5nzhzuuftuVvxnNOGm0E9irU4PrVq1Cvl1mhpfyqnMF0JkHnbs4GSZ4RyS8qGGvsDm6rIqCCE+wju61URVwydOHDKagi1b6Bhu5s70uHoFFaCrxchflYemHKwCDIoCdQhnGODGuwQQFuJQ1dVuuLmD77W7QsWfO/fRuX02UdUJnt1uN/fefSdvT38Nt0clLbppIr3aRJvZsmULxx/fPOkPQ4XfP0dCiGnAhUAZUFucWxqw66DneUCdfz0hxFRgKkCbNm38NUvjKEZVVfL3FOCwO7A7HGzcuInP2ieRafLN4byzSc8vBj24/nGRqgIM9YwMFcAIbLe76BIW2qqhRU4ng9u2gPXUrcVkZHdg27ZtqKrKhZPOIdy6l6XXDaPjo7MornTQplXoR6rtYoxs2bIl5Ndpavz+aZZS3iWlbA38D7imlia1fZLrDKuRUk6XUuZKKXMTEpo/2kSj6Rl/zoVktjuOrsf1pW+fwXQOM/ksqAAdLAash0VuWfGKZn2EC8FWe2h9VZdW2lGEoENC87sPtYuPpGj9Mk48vjfdcrowNknl24v6kxRpwWLQU1zlaBI7DuR9PdYIxs/Rh8C3eEtXH0we0Pqg5+nAEZtZGv9OMjIyeOvNN9i/vwSLxYzFbGHunHmcEhPGidEWIhSFcJ1go81JlE4hUlGwKKDUM0VvZzZQ6fbg5B8htQIlHg9v4V0/HQHEHnZepKKwM8Q1mb4uqWJQdvOvpwKc06MN5/TwzgYPz7xvMeoprgx91QaA7eUuxmRnN8m1mhK/RFUI0V5Kuan66VhgfS3N/gLaCyGygN3AROBcv6zUOOaYPGUKV151FduXLSdCUfAAkR4PfzhdLCiz4QbcUuLG62LiwTvNUQ666YRAEd57nRDohUDB63t6oDb6cYAF7zLAcrzuVWMOsyUK2O0M7YhppUtyTQtYTz2cw0U+zKBnbxONVOPMOjZv3Ngk12pKfHGpmgEMAeKFEHl4R6RjhBAd8X7ed1C98y+ESMXrOjVGSukWQlwD/IDXpeotKeWa0LwNjaMNs9nMdVdfzfLXXmOo27ept4p3U8lVfe+WEpcEN7Lm+K9CsFvKGlGNBnKrH+/V6XDXMt2MVFUKXaGd/he6XC1iPbUhwo06iiqaZqQ6oWsK//nqcx548MEmuV5T4cvu/6RaDteaqrvaV3XMQc9nA7P9tk7jmOayK67gxLff5kS326fF/QObSvWtke6Wkm11vKbDO+I9nAgp2RXCgepqqwOPKumSFLpk3cGilcVAURONVKUEsym0m4PNgRZRpdFsdO3alfTWrdm6YQPBCoZMBlbqdFDLiFQHHCwXbqAU79JAgdPFl/srUaW3DpSnug6Upzo/gAqo8sC9rH4N1OraUgfyCBxoI+WBJQvJwgo7vVrHoTTgEtYScHlUrE1UYqZTYhRrNiw65pJUa6Kq0axcft11TL/1VtpVVQWlvyTAWseOsl5KDlxlD/A63sAAHeDxqLxRXIlyoAYUVD/2rjsqUH3sn9cOHBOHHDv0XEUIKlRJlKnxJbSbmrxSK3/u3Mfz43IbbhwEEiPNpMZEsHnzZnJycnA4HMeEuGqiqtGsnHvuudz6n/9gxeuIHygx/DMCjTnsNZ2UNdP/TUCaonCJqlIEvCsE33ZsXDkWXzltY0HIMj0FkykfL+bUnHRykkO3TKGqKst2lzBnYwF/7tzH9sK9nDdhHDvzC3B5PJSVV6DTtfwfoPrQRFWjWYmJiWHMqFGs+uqruiNDGoEAIvGKpKna/UpW32weDyrwok6HVVXpUn1OOOAMUWUChyrZYXdydveWHdCysaicRduLWf6f0UHpT1VVludXi+eOfWzZb2VvlZ0SqwOTXkfHpGh6prXiydN60jkpms5J3ejx3E8UFRWRktLyf4DqQxNVjWbn8muuYfy337LW5fUVPVzeJP9EktS8JkTNcY+UqIrAWO0e5FBVkqWkm8fjnZ4fdL4CKB5vJqu0aiG14F3/tKsq5iCHqq60Oog2GoiPaNnT2ikfL2ZS7yyy4xsXnKCqKiv3lDFzTR4r8kvZsr+KvVUO9lfZMep0dEiMomd6LCM6pNAlOZqc5Gjiw2vfnEqPjSQvL08TVQ2NQBkyZAhlLhdtgLjqY+Kw+8MfI2XN81WARxFMTPDGsq+2OVlZ4aCnj9E6NaGqDjedLMGtqvpzhYOOIciaH0z+3rWPlfklfHLhCXW2UVWV1QVl/LhhD4t37GNzuYu9djclZZV4VBWDQc+53dMZ1j6JLkle8Uzw8Ydk/pYivl5XwLaiUvbvD22RyKZAE1WNZken0zH14ovZ8vbbDPRjGl6g09E5ysyURK+oLq20s7jKWbv/VB2ECcE2hyuoouqWki/2VfD+qQOD1mcouOyzJUzt34G06DBUVWVtYRk/bCjwimeZk2Kbm5KKSvQ6PR07ZNMjdwhTj+tKTpeO5HTuxC/zF3L3HXfx6nj/Nrgu/GQpk6ZcyuxHJ/hU2bWlo4nqUYaUkvfeew+bzYZer0en0xEbG8vpp5/e3KYFxNgzz+Tmzz6D8vKGGx+GG2qm/gAdLEbK3W5UfE9uEaEo5PlROLA+FlTYMRn0nNIlLaj9BouCchvP/raeFbv345AKnz7+IyXlVQhF0KF9Nr16DuLS7t1qxDMxMaHWMNtAK+XGRlo497zz6NGjR0D9tBQ0UT3KcDgcTJ48mfEpcd6EFAjm7i9n1foNZGRkNLd5fhMVFYXqZ1y8h0NFNVKnEKnTsd3toa2PfUQCe4Lsn/nBvipG5aQGtU9/2Vtp58tVeczZWMC64goKy21U2J24VEl6WgpX3ngtOV06kdO5I0lJiY3KURCoqCZEWCgqKgqoj5aEJqpHGWazmbT4OKZGm2hdnUjYKr2lhI9mUY2IiMDm55fTAxgOG5J2DDOxpdzqs6hGSElREENVvy2pYpXVwWen9gxan75SanXy1eo8ftiwhzVFFRSWWym3OWkbH0X/rASuH5hM79axLNm1n7u+X8OGlYtrrVXlK/Kg9W1/CDfqqAqSn3JLQBPVo5B2WVns2LujRlR7CRe/zp3D+eef38yW+U+nTp0otFrx4HXGbwwewHRY8b5uFgNzGrGSEKGq7HMHx61qtdXBfXn7efmc40mMbLpd/72Vdno8/T37Ku1kxEbSPyuBawa0o1d6K7qlxGDS//OXzS+zcuvM5bz++ssBCWowsLk8WCxNkxi7KdBE9SikQ04OO+Zs4cD2R+9wM3f/8ktzmhQwFouFhNhYPi4qqjO2vz3/ZJ86GA8cURWgk1nPN4clrK6PcGCbGriobrW7uGRrMdcP6cT5vbMC7q8xXPrpn3RPbcXnFw3EbKj7p0lKyaWf/kWv3r0456xxAV830On/3ioHr732Gp9+8gk2mw2bzYbVagUgNjaW2NhY4uLiiI2LIzExkQkTJmA0BtdLI5hoonoU0iGnKyt/mPnPc4uB3bsK2bdvH3FxcfWc2bJRFDCnxJDbJv6I13aVVLEobz/drUcm+/BIifmw+WdHs5GqRtSeCgeqfCwAWOx0s8bmZIPNxTani91OD/s8kgq3ik31rstOX7iZN37fgk7xpiXU6RT0ikCnKOh1AsOBe71CcqSJz6ec6LOttVFQbmPepkJ+v/akegUV4OPlO/hzVwk7fl0Q0DUPEOj0f8OefXTpq6d/n+MIs1iwWCxYLGaklJSUlLJvfwn7S0rYtmkd06Y9RHZ2dosuwaKJ6lFIhw4dmHXQJFkvBD1ioli4cCFjx45tRssCI7NNa+7pGcWw9keGiy7asZfT35xf63kewHTYSLWNSY9DVanEm5y6IcLxOv8f4M8KO68WllGpgg1JpVulyqNiV1VUIEIIYhSFVkC0x0Ma3jSD7wPvZScSpig4pfTe1Op76Y3cctU8lzidbp5fs4+CchvJUf5PgS/+eDEjO6XStQGf2KIKO1d9voTnn3+6pkZVoEgkgeTejggL44ZrLie3d8Prz38uXYbaRIUa/UUT1aOQDh06sN3mxBsL5KWv4uZ/b791VItq1x49Wblnaa2imhxpxuGufXdeRWI8bE1VLwTpJiMb7U56+XDtMMBZPf3/u8rO5VuLOA5v1iszXtGNrr5ZACFlrZmwzIog02QgvoHR4gGKXG5eKiwj88GvaqoaiANJXaqFSlQfrE+3PKpk6U2jGrze//7eTmpaGhddUFtGT/9IT0tlW1EJnZ+Zy4iMaG4e0pmMWF9+yrxIKX2O9xdCBLzcEGo0UT0Kadu2LXsqK3HJqJqidpNiwzn9p5/4+eefGTq0tjqMLZ8evfvwx7u1T0mTIs3YXJ5afU/dEsy1OKTmhJvY3ghRdUnJequTS7cUM0QI+vnx5RV4Rd4X7KrKlK17Gdwumc8mD/SmHZQSj5TI6tSDqiprUg3Wh8WgI8aHwIVIkx69LrihuEMGD2T7+mXM+u5H3v/wE3Jf/IXie0/1+XwhBG4fE5UrinL0j1SFEG8BpwJFUsqu1ceeAE4DnMAWYIqUsrSWc7cDFXhnaG4pZdPkFDvGMRqNpMTFsdvprimMF6ZTuC3OzBVTJrNo2fKjsp56eno6+RXOWl+zGPSYDApvS4HO5WY03jR/4M1fevjuP0BXk47ldeRWPRwT3g/peZsL6S8E/fz84goEHh+1eIPNRYlHZfZlJ9ZbeyuYJEWaqayoCHq/yclJXDrlAkadNJzOPfo36lydInD6WCNMCNHiRdWX/8l3gMPnFXOArlLK44CNwB31nD9UStlDE9Tg0j67LTsOiwAaHmVhgNtK+4w2PPbwwzU7qEcLKSkpFFTY6nz9m4tP5MbR3VBjwg4piuZBYqrlk9zBbMTmY2JoB974/x5CMCiAL60Q+CyqEjDolCYTVIDECDM2W91/40BRFEHD4+ojz3E4fas2oCgtf/rf4P+mlHI+sP+wYz9KKQ98oxfhrZSq0YR0yOnKdsehv+5CCG6ND+Od1Eh+fv4p2rdpzX/vv5/162ury9jyKC8vJ7yektRD2iVx/eBOpESHH+LLqkqw1CJMHSyGmnDVhnhXUchUFE5S1YB2shW8NbN8wSMD2+Dxh0iTAZuj9tlAMBBC1FOIvnZ0ohEjVY6NkWpDXAx8V8drEvhRCLFUCDG1vk6EEFOFEEuEEEuKi4uDYNaxTceu3dhZh5t8ttnAM8kRPBdrZNP0FxjaN5eu2W25/957+eWXX1ps9MqaNWvIiQ9vsJ162EhF5cjdf4BYvQ6zorC7gf6+BaxScmaAggoHUhH61taburBpVfW1xVto3y5YxWuOpLEbSWsLynC4XDidvgm9oigtfqQa0EaVEOIuvPks/ldHkxOklPlCiERgjhBiffXI9wiklNOB6QC5ubkt+6/WAujYsSMfq/X/JuaEGckJM3J7QjjLqqr4+Y2X+M/0V1hfUkbHrCwGDh1Kp27Hcfzxx9O7d+8msrxuVq9YRue4hiOQuqfGsGDn3prnKmCpQ5s6hJnYXGGjdR19rQdWAJdISTBK0Akh8Pj4pffg/YFwu1X0+tAvAeSXWXlr0WZ+/21uyK7hXco48v3nl1mZvT6fhVuLWbvPRqHNw/5y7497504daN8u26f+XW43BkPds5mWgN+iKoS4CO8G1nBZx09HdXVVpJRFQogvgb5A7c6GGo2iQ4cObLPaONitqi4UIegdYaZ3tZeLI9HCGlsZy77+mPnffM6dZVaK9pc0e5TK0sWLGN+/4TLOAzPj+WrZDuY7XDjx/qqb6liX7GYxML+OdVon8LUQjJayZtMrUARebwRfyDTpMUpJ6we+ZM+D44NkQd1M+2kdXXNy6NG9W8iuIYTA7VG59ou/WF5QwR6byv5KG3a7g6ysDHr16MWkCd3pmtOZbjmdSUlJblTyFrvdjqmFV2D1S1SFEKOA24ATpZS17oYIIcIBRUpZUf34ZOC/fluqcQht2rShxObA6lEJa6SLjEkR9Ao30as6A/t6l2TBggUMGzasznMevO9e9uTvoW3HjmRlZdXcYmJiGvWlqIvS0lLWbtxMv4ldGmx7csdk7FKyTq+QZTZwukFPYh0jvU5mAz8YDXDYmp2Kt856qhD0COJ0UuDdOPOFJIOez9olceLahhYoAiev1Mp7f23hz99/Dul1Kioqcbtd5MVkM2p4D7rldKFb185kZWYEpfaUw+E8+kVVCDEDGALECyHygPvw7vab8E7pARZJKa8QQqQCb0gpx+D1ePmy+nU98KGU8vuQvIt/ITqdjqy0VLY7HHQJC2yEOUiv8smHH7J69Wp++/EHNmzcSNt27fhqtnepXErJE088ydQYE6u+VfhB6Njt9LCrohKh6MhMTSEzK4usjh1p274Dbdq0IT09ndatW5OYmOjT7vYff/xBblZygyGWAEmRFt4/tz/n/+93hkVZOC+h7sigTmYDVYe5VO0BvjAbqbA7GRKEddSDEULQmBQC4TqBS0pUVQ2pF8BDP62l+3Hd6Nq14R+tQJBSYjaZ+ebzulYEA8PhcBz9oiqlrC304s062uYDY6ofb6X2/BcaQeKUM8Yx4+P3eTBAUR0SYWLCm28yNKEVIy0K7d0ePlhaVvN6fn4+TpeTPhFRdLMYa0amUoZT5lHZ7bSSt2kFu9cs5U8UZgkdBS4Pe6x2KhwOkmNjSUtJIb1NGzLatad1ZiatW7cmPT2d9PR0kpKS2LBhAznxvmdLGts1nU8nD+Lc9xcyt8rJK21ia60vlWkyUOVRseJdJvhOCHbqFW4a1JHXF25EV0sugUDwTv99V1W9EOiA/VZnyOpY7Syp4n9LtrL0z99C0v/BKIrSaJeqxmA/CspYaxFVRzF3338/Hd95h7VWZ0Cj1c4WA+9lJ9I73IQQgjVWJ7MPiphPTEzk3vvu4/aXX8ayv4JxZsE5cREYhCBGryNGryOn1utH4FAlhS43hZUFFKzYTcFfv/GnomcmCgUulQKrjXKHg3CzidtO7NAou0d2TGH1radw7v/+YNimIjIMOgaFGTgnLoI4g/ejrUcSa9DzjlSpQDCycyofjMihR1orpi/YGBT3l4PxTv8bh1mnUFBhC5moPjh3LT17dqdzp8b9ff1Bp9chg5Dtqy6OiZGqRsslOjqaR556ittuupF30nTE+RhvfjhCCHIP+kLrBZSUlddMSQ0GA3fefQ+333kXv/zyCzdceQXRpfs5rVXD7k8mRdDGZKBNnf6n4ThVyQ3bi1lT1PhIn5QoCz9dPpQF24r5ZUsRs9bl8+r6PegVBUV4Y+IjTAYm9c7m+oEdyIr758ci0OxKtdGYjaoDWBTBnnI7XUNQRHT7/ko++nsby5b8E/5rtVr5dcHvjBwxLOhLDqEeqR4Ta6oaLZspF1/M1k0bmfraq7yVGkl0EFxzOpgNxO6r4M7bbmXao4+h0+lwOp28//77xMfHc8Gll7H0mcc4LQj2gzcX6piYcF7cXODX+YoiGJydyODsRO49uStuj0qJzYkqJTpFIS7MWOtmmiploxNiN4Q3oqpxohKu09UbSRYID/y4hozMDF569U0W/PY727dso9xmQwXenv5CUBOrAOh1OkLpRurxeNDrW7ZstWzrNHzivw8/QkVFBVfO+B+vp0YSHmDCDCEEzyWFc+s7bzFy0SIuvGwqD9x5BylOGw4Eq0oryIwIbrb4ETEW7s4vYb/VQWxYYCMRvU7xqTyyKiWlgJXqzFMBXdWLQPgUwXUwMQYdu8uCI6r5ZVZmLNvBD+v3sG5PGcVVdgzAD9t20trtphuQCnyv0zH7h5+CLqpHg3N+qNFE9RhACMEzL7zI1Moqpsz8iofiLXQIsNRygkHH66kRvLh1PS/echN3RugYEB8JwLZYE1scvoUV+opZUUi0mPhyVR6XHO+bI3igdEuL5aed+/i22jvgSiA2wD4bu1EFEKPXUVBhb/S1VFXlxw0FfL5qF4u37WXn/ipsHg+JikIGMFBVSQeiAA7LApXm8bDsr6WNvmZDaKKqieoxgxCC6W+/zRuvD+CSm//DpCgjl8aGH1FmpDHoheCGhCPXTbPMBrLMwY9quTTazJ2zV3BurwwshtB/NOddPbzmseXmGXWWcWkUUjZ6TTVWp1Bc2bCort5TwqcrdvHr5iI2FZWzz+rAJARtFIUMj4cBePO/6nyIjU8Fft2zp3GG+oBer9NEtbkN0AgeQggumzqV0WPGcNmFFzBx+TIejLfUsTPf8jg7PpI3y2zc/d0qnjytR1CCCnxhV0kVKt5E1IHi9VNtnKjEKrCt8lDXrvwyK5+u2MXcjXtYnV9GUYUNVUpSdTpaqypDpSQViKwjWXZDJAFWl5uiomISExMafX5d1BWm+m9CE9VjkPT0dGb/NI/333uPK6+7ljMjXFwZF1Zr0pGWxjMp0Uz9ayv55TbenXg8Rn2wt5KOZPHOfZjwRlkFejWBxNdC10VON79V2FlcYWd7SRUdp82kzOak0uHCLiXJikIbIFdVScO7NCH8ENDa0AHxisLnX83iyqlTgtIngF6vD+lG1dFA0yVy1GhShBBceNFFrNqwkcLj+jBhVxm/+7Fu19R0CTPxTdt4/thUyPDXfmbbvsqQX3NUx2Qiw03MUJTAx1jyyN3/fS43X+6v5J5d+zhnUyEnrs2n54qdDF+Xz3O7S5AON71dHrqWVDLa7iRDCHKAy1WV0arKcUAcwdlIO5jWwI8/BTdsVVtTBdES/wC5ublyyZIlzW3GMYOUkq+++oobr76KDqqTm1uZaW1q2ZMUp6py5c4SllvtTOmbzbTRxxEZgnXcA1idbuLu/JRrqN7Y8acP4A2dQoZRh0coFLo8lLs9OKWklRAkKwpJHg+JQAIQQ+2jmt+ATXhzagaLLxQFnZS0kZJEIBFYDaxOS2XL5pVBu47b7cYYmYxq29twYz+ITMhk9+7dQSta6C9CiKV1Jd5v2d8sjaAghGDcuHGMHj2apx5/nImPP8bEGAvXxIU12bplYzEqCm9mxrHN7uSGlbv4ZPkOpp/Vl7FdQ5MPPcyox6hTsHnUBkW1Em8NoZ1AEVCl02HzeLADeFTC7ZL2UtIFr3i2ApRGrH22Amw+loHxlWIpKZCSivQ0fi4sosrlwggoRcHNXawEY7RfB1JKrFYrYWHBdecLNpqo/oswm83cde+9TL7kEjq2y+a8GDOxTbBmGQhZZiNft03g3eJyJs9YRJhJz8C2iQxpm0C/jHi6JkfjViVrC8tYU1BGcpSZodlJfhW3M+l12Dz/7JxXApvximexEFQpClaPBxcQUz3ybO/xkOjxkACsFYLlQnBJgJnpowBHkGeQk6TkJeDe++/gwvMmYrVa+WHOz5SXlwf1OgcitKSUQf/BtlqtmEwmzflfo+WRlpaGQac/qhbUL0qI4ry4CH4pt/HTjmKe31LMPW43VU43qpREmQzEGPSUuT0kR1mYe8VQnwIAAHbsr+THDQXY3B6+BoROVyOeB6btHTweEqrFs66R51IIqL7VAQwcWd0gUKLwJj++8oobGDPyJOLj4xh3+ilBvcbBhEJUKyoqiYyMDGqfoUAT1X8pHlVF10Kn/nWhVxRGxIQzIuYf56c9TjdRikJ4dXiuqqpM3rGfwS/NZemNowgzej/idqebJXn7WbxjL3/l7WdDQTl7ymyU2514gFhFQVFVDMDwavGMwfdpuwqUSUnPILxPQ3V/waYbsF5KRpw8luV/LwzBFbwcqHga7LwCFZWVREZGNNywmdFE9SjF4/FgtVrxeDzExMQ0+nxVVSl1q4QrAuUoE9eDSTEe+hFWFIV3MmIZvbWYdg99g8cjqXK6cEiJRUArRSERQarHw3F41zyjAKGqbBCCL6VkjRCc2ciRohOvm1IwZERP8EeqBzjV4+HF9Rt5+PFnuPPWG0NyjcbWqfKV8vIKbaSqERgej4etW7eyatUqVq9axebNm9m6dStbtm6lqKgIi8WC0+lk3bp1ZGc3LrRzwPF9OW/5csqtVhLCwki2mEjSKyR4XCQpkiSDjiSDvvpeh/4oEl5FUXg+NYbxmwo5E0gBogGdBDx1jwE7SsmJwBohaKyzpYPgfZkMND59oK9YgPFS8sD9D3PO+DPIzs4KyXVCUfG0orKSqMjm3fX3BV8y/7+FdzmmSErZtfrYE8BpeH+gtwBTpJSltZw7CngO74/4G1LKR4Nn+rHLqlWreOnFF5nx0Ue0ahXDcV270LVLJ4YO6sslF55FdlYWqanJKIrCRZdezZwffyT7yisbdY0ff/WWCnM4HOTn55OXl/fPbds2FmzdSl7eLnbs3k2uWc+TScGIN2o6OoaZSDUZqHK4GhXPbwf0fgiCA2+p5WB4vod6rbst0FMIho04lW1bVgV9mh7KkWpExLEx/X8HeBF476Bjc4A7pJRuIcRjeMur3HbwSUIIHfAScBKQB/wlhPhGSrk2GIYfa7hcLr788kteeulFNm3axOWXXMi6ZQtJTa0/yeaIYSfy9bdzuaKRonoAk8lUU2+qNlatWsX4IYP96ru5ObtVOO8VltG3EV9whxDsk5I/gV74PvoMpqh6CL6j/+EMV1VeKSzi6utv4ZUXngpq394/Q+P+DqWlpSxfuZq1azewYdMWduzcxZ6CQsrKy6morMJaZaWyqoouXToH1dZQ4Es5lflCiMzDjv140NNFwIRaTu0LbK4uq4IQ4iPgdEAT1YPYs2cP0197jdemv0b77LZcffnFjDv9FJ/L8A4fMogbbrkbj8cTlMJqh9OuXTt2llfikZFH3cZWpzADFY38ch8vJUYh+BOYIyVnA+19OM9J8EaYHrzR8z9X36vV9/U9PvBcrT7/wL3noHYIgVQEEgHCuwn3zpvvctH5E+l3fJ8gWQ8gaqb/TqeT9Rs2snLVWtZv3MTWbTvIy8unpLSU8opKqqxWqqqsuFwuYlvFkJycRJv0NDIz2jCgXx/SUlNITU0mLTWFrdt28NBjzwXRztAQjGWgi4GPazmeBuw66HkecHxdnQghpgJTwVsp9Fjnjz/+4NlnnuHHOXOYeNYZ/PDNJ3TzoyhbamoKSYkJLF++nN69ewfdTovFQkKrGPKdnhYfhXU4rxRW0FNRoBHT+VbAMCkZBnyu07HW4/FZVIO17mzHW0/LHhWGgrfEuPfem69VJ7wCLgToENXHQUGgF2CovukRGJDVzwV64X1dh/C+LgSzy2z896EnmD3zk6DYDmAxm2nbuTdWmx2r1Up4eBiJCQmkp6WSmdGaoUMGkZ6WQmqKVyzTUlOIi4ttcBnCYDCQtzsvaHaGioC+JUKIu/D+/9dWOrG2T1idwwYp5XRgOnjDVAOxqyWzbt06brn5ZtasWcON117O9BceIzo6sMX34UMG8dPcuSERVYD2bduyvWjbUSWqTlVlTZWdSwLoI97jYYuv1yPwZCwHCMdb0uadrPgg9Vg3GSY9NywIrntVRWUln374Fp06tCc5OTFo5U9SU5LJz98T8sqzgeK3ZUKIi/BuYJ0na19AycObs+EA6UC+v9c72ikuLubqq65i8OBBDD+xPxtW/sF1V08NWFABRgwbzNy5c4NgZe107NqV7Q5fcy+1DN4uqiBGUUgMoI9YqsNFfcAJ6IK0ORMGeCS4miAvR+9wE7jdfPbFN0Hr02Q00q9vLhkZrYNaT8pkMhETE80777zDmjVr2LlzJxs2bMDpdLaoJC5+iWr1rv5twFgppbWOZn8B7YUQWUIIIzARCN7/3FGCqqq89OKLdOnSBYOisn75H9x43ZUYjcHLcXrioBP4Y9Ei7PbQZKHq2LUbO+TRtZ76aYmV3ADdemIBm499OKkOFAgCCmAUgsp63L+ChSIEZ8ZF8NTTzwevUxEalyqAafffybczv2LcGadzwgkDOGXMaCwWC+ecfXZIrucPvrhUzQCGAPFCiDzgPry7/SZgTnUo2iIp5RVCiFS8rlNjqj0DrgF+wDszektKuSZE76NFkpeXx8VTplBeXspvc2fSqaMvq3ONJyYmmpwunfjjjz8YOnRoUPsuKChgzuxvMYV8Pzp4/HfXPkqdLroF2E8sYJcSlYZHH3bAGMTRkkERlHtUWjVBboaxMRY+WrEqaP2FyqUK4LKLL+Syiy885Jjdbqdb7mBmz57NmDFjQnLdxtDgSFVKOUlKmSKlNEgp06WUb0op20kpW0spe1Tfrqhumy+lHHPQubOllB2klNlSymmhfCMtCSkl//vgA3r16sWJA/uy4KdZIRPUAwwfMoi5c+YErT8pJS+98AJdO7Qnbc3f3BVnCVrfoeT1wlK+2F/FhYBvkf91Y8E7GvAliZ1NUQjmX8ggBBVNMFIFaGcy4PB4yA9aeZXQiWptmM1mnn/qYa6//jocDkfDJ4SYo2fn4Shh7969XHnlFaxbu5YfvvmYnj2Oa5Lrjhg2mDvufYS6frmklJSWllJcXExxcTFFRUXe+8LCmmOlpaW8Nn06rVu3xm63c98993BBuI6pCS3f4Rrgm/1VvFhQznl4y4UEgxhFYYeqNrg2axMiqKKqAL+V29nldONQJQ5VYpcSpypxSO9zp5Q4JTWPXarEJb2PTYpgaJSFU1uFY25gU0cIQYLRwOI//w5KkhVB6Kb/dTF65Ai6vPEuTz35JHfedVeTXvtwNFENIrNmzuTyKy7n3LPH8/7rz2E2BzpWqp+iomIW/bmEv5etZMWqNfy9bBkXXnABVVVVlJWXUVZWRmlpKWVl5ZSWlmKxWEhMiCchIZ6E+Djv4/g4MtMT2bl9Czt37SQhwVuvyGKx8NOvv3LSiYPJLrMyPLpl57D8rrSKe3bt40wgI4j9JgiBL+M3KxDMvXrFoOOFwjLaxkWg1ykYdToMOh0mo/exUa9g0iuYdDrMeoXomufe+3KHm3c2FPDQnnySw0ycGW7k4oRI9HUIbJLRwNr1G4IjqiGc/tfHs088RO4JJ3HW2WfTvn1oZ4b1oYlqEKioqOCmG29k7tw5zHj3NQYPHBBwn5WVlaxavY616zawcfMWVq1ey57CQqxWG2XlFVRUVOB0ukhOSiQzow0dO7Tj/rtvJTEhnuioKGJioqvvo2qe17UTu2XrNh5+4lnmzv3pkB+C7t27M3vuT4weNgyDEAyOatolgCKXmwUVdqJ1Sr2i/tHeCh7ZXcLpQKcg2xDv8bDNh3Y2KQnmeN4oBO+f259JvTID6qe40s5Xq/N44uf1vL2pkL4mPVcmRdPpsBLmRkUEb+ocwo2q+sjKzOCBu29l4sRz+P33P4LqedAYNFENkPnz5zN58kUMO3EgK/78laiourPouN1uCgqL2LZ9B+vWb2LT5i1s37GL/IICykrLqayqorKqCqvVitPpJDoqiqTERNLSUti7bz8lJWVMu/9OsjIzyMxoTXJyUlD89S669BruvutuunfvfsRrubm5zPzxR047+SQeE4L+kaEbfTtVyd9VDhba3PzulOyxOxnQ73hW/PUXw6IstebnfGFPKW8WlTMBb9KUFUCxXo+q06Fzu1E8Hgx4k5QIvLv0TiFwG404dDp2Oh2YAaFKFFXFCIfc9gMlQrBMSsKAiOpbOId+eexSEsz8SQJwuAMXpoQIM5f1a8elx2ezYFsxLyzcxHlrdxNp1NPLoOP2lBgSjd7cum53cNzmRBOvqR7M1VdcwrxfFnDrLbfw3PNB9GhoBJqo+klZWRkXT5nCF19+Sd/cXpSWlnHG2RdQWVmF1WbDbnfgcDhwOJ04HU4cTgcOhxOT0UhkZAQJCfGkp6XSpnUa3Y/LISU5idSUZFKSk0hJTiIhIf4QwXzxlTd4693/cd6ks4L+XjZv3caEs+rut1+/fnzx7WzOHDOGpwXk+pj82Ve+2V/FHJfgz9IKOmVnM3rSON485RT69OmDTqcjOy2NdTYXXQ4rtX3R5kL+qvKOrr4wGEiJj6dHz56cMnAgERERWK1WrFYrVZWVVJWX43K5iImLIzomhujoaP7++2/+fvdd7k5rhU2VVKkqVSpUSrCpEpuq0kqVGN0eVkmJ1aNi86jYq9cudYBeERiEwO1R+VEI1ktJZ7yhrYH83AlV4nAHL1eVEIJBbRMZ1DYRp9vDr1uLeO63TYzctIc2FhM6VeIJ1saYAFVtHlEVQvDmq8/Ss/8whg0bxulnnNHkNmii6geqqnLyySexbt06hgweSFxsK+LiYunUsT2tYqKJiYkmJvrAfRStWsUQEx1NVFSk36UgIiMjsIdoZ7NN63R27dpFWlpanW0GDRrEjC+/ZOK4M3hBCHqEB29q9UyJnbsefoSPzz2XuLi4I14/ffx45n3+P7qEGSl1e/i53Mb3TsEOYxiXTDyfyZMn071790bn2vz9999ZPnsW58Y3PgOXKiU2VWKtFuMx6/eQKyX7dTpmVderitTpiPF4yMabILoxYR5CVXGEaPffqNdxUocUTuqQQlGFnf/OWc17f22ltDQ4pVWaa031AK1axfDh268ybuJkevbq1eRh75qo+sFtt95K3q5dhIeH8/MPXzXJNaMiI3E4nCHpu2P7dsyaOZN+/frV227EiBG8/8mnXHDWWbySCl3DgiOsGRFh5OTk1CqoAOPOOovz3n2bVdLK8tJKhg85kSsvvIixY8cSHu5/SsLOnTuzuawCmdL4AoiKEITrBOE6SECHEegDRFZXCagE8jwedgrBGiH4WVUxCUGUEKSqKjlAJt4Y73ygECgGSgCXycA+VcUdAlEtt7uodLiocnqocnrL0YzNSePXLUX8OOcnbrj5ThRFQQgFRREoinLQTaBTdAhFIIRAp9OhCAVFd/DrCh6Ph1dffxuzxYzT6cThcOJyuTh/0ln06nnkElMoGNC/LzddewWTJk3kl19+9TlBUTDQRLWRvPTii8yc+Q2ffPAmp40/t8muGxUVidMZGlF9fNq99B08khNOOIHRDThPjx49mituuIFP3nwleKKqSDZu3MiwYcNqff2EE07g7Isv5fgBAxgzZkzQcmq2atWKyPAw9rg8pBoD/yocPDaLwLtp1klKkBIPUCAlu6Rkp07H5x4PTrwZpFqFmUiLCSMzLoLBseFktAqnTUwYg7MDCbI9kp83FzLmjV+JbxVDuMVCeJiF8PBwwsPDiUrNYt2y5WzZuh1VSlRVRUqJrH7svR12XKr/PFclqpRIVaVj+3b8OO8XjAYjBoMBg8H7tx004lRGjhhGZkZr9Ho9Op0OvV6HTtGhN+iJCA8jLCycyIhwIiMjiYqKwGI2U1pWRn5+AQVFxRQV7WXvvn3s27+fsrJyrr/6ciacObbW93vLTdfwy28Luefuu3n0sceC+resD01UG8E7b7/NtIensXDet4SHhYVsOl4bkREROF2ukPSdkpLM1IsvYMGCBQ2KKsBPs2ZygTl4CS3aSDcb1tYdbKfT6Xjq2WeDdr2D6dS+PVuKtwcsqoJ6sgXhDSJIq771qx7N/hcoeWgCEeamGUVVOtycPGQws+bMO+K1ffv20bZtW77+7IOQJSv5e9kKHnniOdZv3Iyqqng8HtxuT81ju92O3e7A7vDuR9gdDqqqqtDpdKSlphATE01sTAxxcbG0a9uW/D0F3HX/tDpFVVEU3nvjJXoNGM7gwYMZc0roCh0ejCaqPlBZWck111zN4kWL+HHmp2RlZuB2u7HbHbjd7pCWzP3fR5/xxVezWL5yNa4QiSp4gwMUpeGQyI0bN7J582YGZtc+VfeHDJOe71cFL0yyMXTt0ZOtszYxKAiu+41dRZSAuQlLhNeXPDouLo5WrWLYvGUrHdq3C8n1e/XszqcfvtWoc4xRyRTuWFfrenlhYREZHXuyf/9+YmNrr++QkBDPh2+/ylnnX8KSJUtIT0/3y/bG0HLzZ7UQVqxYQW5ub4TqYsnCOXTN8WYe1+v1mEwm8vJCm3jr6edfIX9PAXfcfD0r/5ofsuuoqtpgkuvy8nL+e999jIo0YQhS7tAqj8oOh5vNW7cGpb/G0qVHD7YGY2zRyD/HAWnT65vuKyioPyN/bu9c/li8pMnsaYj9+/ejqrLO5Z6kpER6HNeVS664gU8++4o5P/3MkqXL2bFj1yHuYYMG9ue6qy5l0qSJQXMbqw9NVOtASsnLL73EiBHDufu2G3h7+gtHbIpERUWydfuOkNqRmpxEn949uPTiC0hPSw3ZdVRVRTlIVKX0rnO+++67XD51Kscd143U1FRmf/8dpfbAlj08UvJHhZ07i6oYvnkv6zr15JlXXg30LfhFly5d2BoEzyWBaNRIteld472ba/WJ6vkXXMALr7zRYtLoRUVFIaWsVwjvv/tWNm/dxh33PsRFl17DyaeOp3PP/sSltuesc6dQUFAIwO03X4/ZqOe+e+8Nud2aqNZCSUkJE8aP5403pvP7z7M5f1LtacVaxUSzY8euWl8LFulpqeTtDlaii7rxeFQ2btzIIw8/zGmnnkpiYiInnTSC7779mpyOWbz58tPsz9/E9JeeYZni3wbVVruLZ4srOXlbCc/roxl8851s2rGDb+fNa7bsQl26dGFzWWXAQqLg3cn3FUno61AdTkO1o8aOHYvN7mDuvF+b0Kq68c4GjZSUlNbZZtTJw1m15De2rF1C/rY17N+zBev+PH6Y+Sk2u4OsTr1IyuhMRHwGv8xfyMeffBLyaC9tTfUw/vjjDyZNmsjpp4ziw7dfrDfULT4ujt1By+xTO2lpKaxcE/qyXtltM5n36wKS4qK46NzxvPrco6SlHVl0cPTI4VxQZWW73USmueGcsKVuD7NLrcx0CAo9knMvvIAfLrmUbt0CTcwXHBISEtAbDOx1qyQY/F/ftOh0lLndJPjYvnlEtf6RqqIo3H7b7Tz8+LOcNHxI0xlWD2aTiX37S0hM9PUv66Xf8bnM+uJDuuUO4ulnnmPAgAGEhTXedc4fNFGtRlVVHn/sMZ559hlef+lpxp46usFz4uNjyc8vCKldyUmJlJX575RdUFDI8y9PJz01lauuqLu4yMUXncfFF53XYH/h4eGMGHYi0xct5OE2tW9WOVXJ/AobM+2SxWVWxowayWOXX8Hw4cNDuqnnL53aZbO5LD8gUY0xKJQ2YqjaHNP/htZUASZOmsQ9997DvF/mM6wFVNE1mkz1jlQbwmw2o9frA/Jnbiza9B8oLCxk9KhRfDvrG5YsmOuToAIkJSZSVFwcUtuSEhOoqqqruMKRqKrKD3PmMe7sC2nTvjsZHXsyZ96v3HrXA+zduy8oNp0/6Sz+EoeOUqWUrLQ6eKiokmFb9vJpfAbnPPQYuwoKmPHFl4wcObJFCipATvcebLEH5lmRqHizWVnxTTCbb/pfv3UGg4HXXn2NcydfwYaNm5rIsrrRKQoOp/9r+OedM57pr70WRIsaxpfM/2/hrUVVJKXsWn3sLOB+oDPQV0pZ65ahEGI7UIG3Uq5bSpkbHLODx6+//sq5557LxRdO4r67bmnUFz8xIT7kH7zkpESs1vpFtbS0lJdee4svv/6WzVu2odPpOO3UUTz/1CMMHzqIyMhIxo4/j8mXXcOsL2cEbNMpo09i8mVWdtrNGBTBzDIbs2wqqiWci6ZezkMXTSYrKyvg6zQVOT17sujHmQH1EaYT/AGsVAQeKTHqFAyKgkGnoKuuZKrDG36qeFRUpxsVmPDOb5j1CmaDDrNeh8Wgw2LQYzboCDPoCDfqsRh1RBj1hFffIkx6Ik0GIox6Ik16zD762Pqa6GTkqFFMe2gaY86YxO8/zyYpKbhBCL5it9vZt28/3XIaX2X4ACf078v/PvkyiFY1jC//G+8ALwLvHXRsNXAm4MtPwFAppS/J05sUKSVPP/UUTzz5BO+98RInj2h8GZL4uFgqKipDYN0/JCUmYrXZjji+8PfFvPTam/yx+C/y9xTSpVNHzjpzLKeMPonjuuUcsXb02LT7yB0wnJ278mjTOjBfvYiICIaeOJAL5v+GW29gwoQJvHvZVPr3798ka1bBJicnhw/VwOwuU+Huk7py/8huuDwqFQ4XFXY35Q4XFQ4X5Xbv8wqHi3KHi617K3n5902k9D8Jm92O3eGgzG7HZrfjcDhxVB5wgrfidLlwOJw4nd5wT5fLjcvtwu321OyM63Q6dDoFnXLg3hs6WvPYO0wlOqaVT+/nkksvZefOnZw6/jx++eGrJp0+H+CHOfOIi4slPt5/n2ij0Riy2m110aCoSinnCyEyDzu2Djgqv0DgzX96ySUXs23rFhb/+gMZGa0bPqkW4uJa1Sp4wSQxMR6r1UZlZSVvvP0+H3/2NRs3bcHlcjF65AgefuBuRp40jNjY+r8snTt14PTTxnDRpVfz8w9fB2STqqrs2p3PJTfcxH333RfyZNyhpnPnzmyusEKS/4m4SxWFrFiv8Bh0CrFhJmLrCeNdvruE/60u4OXnn/D7mgdwu901MfYOhzcbmtP1z3On04XD6WBXXj533f+wz/3e/8AD7Ni5g0kXXc6XH7/boB9zsHG53AHnRDWbTZSVlQXJIt8I9SKXBH4UQkjgNSnl9LoaCiGmAlOBkGaVWb9+PWeeOY4T+vXht7kzAxKE2FbBFVVVVdm0eQtL/l7O6jXr2bBpM3l5+USEhxOf3oG2WZmMP+NUnn1iGrm9ezT6Qz7tgTvJ6XUCGzZuomMH/zOjf/7lTMyWMB5++OGj9of1YFJSUnBJyX63h1g/I5wqVZXMWN9zErg8DQdb+Iper0ev1xMWVv+Pgsfj4Yprb6aiosKnjF5CCKZPf53Ro0dx06338NxTvgtyMAiPCAsocbaqqoydcAETxk8IolUNE2pRPUFKmS+ESMRbeXW9lLLWsKBqwZ0OkJubGxLv488/+4wrrrySR/57F5dOuSDg/uJiY7E30hFeVVW2bd/B+x9+ysI/FlNUvJfSsjIqKiqprKxEr9eTkpxMVmYbsttm0b9vLpkZbRg8sH/Aa1tZmRmcP+lsLrvqJubP9W8N8e9lK7jmptv5+ONPjglBBa94dGrblq22YmIjahc6t6qyqMpBmCKIUhQidQoWRcGsgFFRqHS6yWzl+xTZ4faELMa+LnQ6HZ07dWDNmjUNZiQ7gNFo5PPPv+CEEwbw3Iuvcf01l4fYyn+IiggsiZDb7Wbb9h08/cwzQbSqYUIqqlLK/Or7IiHEl0BfIHSxlnXgdru58447+OTTT/juqxnk9u4ZlH7NZhM2q42vZ86mrLycyooqysor2F9SQmlZGWXlFVRVVlFltWKxWCivqGTV6rWEhYVRWFjIzTdcTdusDDLatKZN63TatE6vt3JAMDh7/OlMvuwav86dO+9XzptyBa+8/ApDhgwJrmHNSFFRER5F4a7iSpIKy0nSK2SY9LQ1GehoMZBl1HP5rhJWuzwYDXocTjdOlxuPquLxqAgBBr2OhIiG/XYPEMyRamPoltOZVatW+SyqADExMcye/R0DBgwgPi42JInSayM6KhKnM3T5LkJFyERVCBEOKFLKiurHJ+NNzNOkFBYWMnHiORj1CksWzGn0orfdbuft92awYuVqNm7eQmFRMaVlZZSXV2Cz2WkVE811/7kTs9mExWzGYrEQFRVJdHQUUZGRpKem8OHHn9Ord2+mPfwoxx13HGvXruW2W2/miUceCNG7rpsunTqwv5F+f7/MX8D9Dz3B7j0FvPP2Oz5lsjoa2Lp1K088/hgffTSDCSfn0ntcT3YXlLA9fx8rd+/lu8ISinaWYHe60OsUVn71IO3aHFqnVUpvxvyUE29g6a4SBvmYrs/hbh5R7dqlE6tWrmz0eRkZGfz444+cdNIIgCYR1sjIyJBlZgslvrhUzQCGAPFCiDzgPryle14AEoBvhRDLpZQjhRCpwBtSyjF4qwR/WT1F1AMfSim/D83bqJ1FixZx1lkTmHz+RO6/+1a/PsT/ffgJXnr1LYYPHUy/vrlkt82kbVYGbTMzSUtLadAF6+dff+Pzr7/l008/q9lBVVW12abOKSnJSCnZtHkL7dtl19t26d/LuePeaWzdvoP77r2PSeee22J9TRvD7t27+c+N1zN37lwumzCYNV//l+T46Drb2+xO7A4XraKPnN4LIdDrdWS3SeKPHcU+i6rLo6Jr4uk/QLeuXZj1w4t+nZuTk8OcOXM56aQRSGSd4dvBQihH5/KSL7v/k+p46Qjnr+rp/pjqx1uBpknzfaQdvPLyy9z/wP28+cqznHbKKL/7qqioZMiJA/ni43f9Ov/FV9/k3nvuPcQlxWAwsHNXnk/CFmyEEGS3zWTO3F9qvbaUksV/LuXp519h4aI/ufeee7n4kkuaNHN6qPn999/Zsn45W75/mMjwhlP+WcxGLA2E5HZum8qKHTt9tsGlSnRNmPbvAN7p/2qklH79sB8Q1lGjRrJ9xy7uuu2mY2ZtPVgccxFVVquViy66kFdffZnff54dkKACtE5PY9mKlX77upWXV9L6MG+G448/nimTp3Dhpf6tbQZK925d+X3xX4ccs1qtvPH2+/QeMJzzL7mKfgMGsWnTZi6/4opjSlABOnXqRKXN5ZOg+kqX7BS2lvjuCeL0eJpl+p+cnISUKoWFhX73kZOTw+LFf/LN7Dlcfs1/gmjdscExJapbtmyhf/9+qC47i379nnbZbQPu8+Ybr8Gg0/Pgo0/5db7NbsdiOfTLqygK11x7LevWb2yWNGs9jsthw8bNVFVV8e13P3LV9bfQpkMPZn43j0cefZyNGzdx03/+06CLztFK+/bt2barAJcreLk127VJZK/D9/5cHhW9rumXUoQQdMvpwqoAk4KnpqYyb97P/O+jz7CF2Ff7aOOYEdVZM2fSv39/pk45n/ffeiVoa3+KonDepAn8/sdf9bYrL6+gtLQMm82Gp7pchqqqbN6yldatjwwuiI+PR0oZtHj8xtC5Uwe2bNtOcmYOTz7/Gm0y27N06d98/c03jBw5ssldfZoas9lMemoyW3YFL29DuzZJlFl9d/9xelR0uub5O3fL6czqIFRaiIiIoEuXziz9e0UQrAo+zZUX9ujfdcC7IXXa2LEYDAbuuPchrr/5TjweDx+99zrnnDUu4P6jo6KoslbV+brD4SCxTSfMZnN1RIsDRVEwGAy0bZtFZmbmEec8/thjpCQnERHR9OF/XTp3xGQysWPHzkaXdT5W6NypE+u37aFT2yPTG/pDdusEKu1Oer8wD1UKVECV4JGgIr1F88B7L8HhdmOyBG/5oTF0zenE4qXBKV8z8ISB/Pb7Igae4LuLVlOwafMWLrniBizNEO13TIhq37592bRpE2FhYYSHhxMWFsZll14atGin6KgorFV191VRUUl4eDj79v0z6nS73TgcjlpHzN9++y3PPf8cf/0254ilgaYgM6MN+/eXHBM7+f7SsUtX1m/dAcOD01+YxQQIzpt6BTEx0ej1egwGPXqdHoPBgF6vq4l80uv1LP5rKdPffO+QPioqKtixYxc783aTn19AfkEBxcV7qayy8tKzjwVtOaZbThfeeDfwxDoAQ4YO5ZWXXuCOW24ISn+BsHNXHo8+8Rzfz5lHQUEho0eOwGBs+v2AY+JbpSgK7dodWqzM5XLVlMYNlJWr16DWkzKtqspKePihH/gDX57a6NmzJy6Xm0+/+Jr4+FgiIyIYPnRw0EovN0RBQSGRkZFHfcx+ILRu3YalvwS3HpPRaGDiWWfSunVag22LiorZU1BIbEo2VVYbTqcTnU4hLCyMqEivn3NsqxhiY2OZO+8XzjhtNKef1rB/cEVFBe9/+CkOh7copdvjTbrivXlwuVyUlZezZs1avz0ADmbQoEFccMEFAYc+Nxa3283Mb3/gk8+/Yt36jRQV72V/SQmDBvTnvrtuYewpo6isrKL/UN/SeAaTY0JUD2flypXMmTuX2268IuC+7rjnQd5+fwbff/1JnW0KCotITPQ9hDQ1NZX333uPr776itIlK/n4k0/46bsvmiwp8JK/l5Pbu/e/1hXm4Ycf4pmnnmL6/YGHKh+M0WCgvKLCp7bjTj+FdtlZREZGct6Uyxl24iAef/j+Wv9P2nftQ2VV3ctPB7Poz6U89vSLnDlu3CEjY73BRFiYAb1eT1KanpdfHhqU///Y2Fiee/ZZBg4/lcnnT+SSyefTqWNwxdXtdvPrbwv5/MtZLP5rKXsKiygtKSUmJpphQwZxyeTz6da1M716dD8kIrGktLRZPFeOSVF94/XXyenckZwunRpsO+6cC1m+wuu3p6qq916qSFWiSondZueXH76md68edfZRWVVFaWkpZWVlREfX7UR+MKNGj2bU6NG8/957zPt5HhazpXp0HfoPwZK/l9OnT5+QX6cl8uGHH/Lem6+x9JO7SU+uvayxvxgMep9TQZrNZvrk9gK8iXn0en2dImc2mamqZ/npYKxWKz26d+eZZ5/1qX0wmHLxxQwcNIg333iDoaPGkZ6WQr8+venRvSudOrTHZDKi1+vR6XTExbYiJSUZIQRut5t9+/ZTvHcffy1dxsI/FrN581ZKysqx2x3YbDZMRiPhsa2JjIrk+D69mXjWOHJ796Bj+3akpta/Ht5U36fDOSZF9dHHHuP0sWM5b/IVTBh3GgaDnq45nclue2Ti5E2btjBsyCAmjDut+j9e8d4r3jWwzIzWDSYyGTZkEKNPGsZpp53Kr7/Ob9QIoE/fvpw76VyuvOE2tm3bzpQLJvHsk9Ma/Z4bw19Ll3PFVdeG9BotkZ07d3LD9dfy7UvXBF1QAYwGvc8j1YPR6/T1hmNGx0Rxy533cff90xBCHHJDCJQDj/FmosrIbPoE4e3bt+fRxx7jwYceYsGCBSz7+29+XbiE19/+EJfbhad6GaKoqBi3243FYqawsIjYWG++1H379nFc1y4MHNiftJRkoqOiqpdAWtGpY3tatYpptE1ut0cT1WARFhbG1998w+233caMz2bicrn4Y9Eipr/4FONOP+WQtn379GZ/SQmjR47w+3pCCJ576mFat+/Otm3baNvWd//YTp068exzzwFw7rmTQu4NIKX0Tv9zW1wRhpDz2muvMmlULr1zMkPSv1Gv8ytpudGorzcb05cfvUv+ngI8Hg+qqno9CFT1n+dSrTn+y/yFLFu1LpC3ERAGg4GhQ4cydGjdSd+Lioqw2Wykp6fXBEAMHTqEO265PqhLYJpLVZAJCwvj+RdeqHm+ZMkSzjjjDDZu2sJtN19Xc/y0MSO5+oZbA160VxSFvrm9WLp0aaNE9QDLly9n3rx5vLpysd82+MKff/1Nq1atSE1NDel1WiaCuJjQBTSYjP6NVA0GY73ZmBIS4klIiPepr6qqKpavWt9oG5qS2vYfIsIjqKz0bd3YVyIjIqjw4/8jUI5tL++DyM3NZfHixUx7/Bny8/8pKz3ypKHY7XbeeT9wF5OkxASKior8Ove2W2/lntv/E/LUf2+99yFTJk/5V25Smc1mHM7gRVEdjqIIv/J/KjoFj+oJig0Wi6XJy4cEg8jIyKCXJoqKiqS8XBPVkJKWlkbnTp3YsnV7zbGwsDCmv/QM1950B9u27wio/8SEOPb6UV31xx9/ZNu2rUy95MKArt8QVVVVfPrFN1x40UUhvU5LxWQy4XSFpji0qqrsKS6jc6cOjT7X7XJj1Adn7c9sMh11oup0Olm9ZjXR0VFB7Tcy0jtSVdWmLQj+rxJVgLi4OCoqD/1FnHDmWPrm9uT+af7XC5JSYrc7KPZDVP/3vw+wOxzccc+DfP/jT1T56D7TWJ545kVOGjGCtLSG/SiPRex2O0ZDaD7yr386n337S8ho3brRa3kutwt9kHyqDQZDQNnym4OHHnyQ1mkpnDL65KD2q9fryW6bxYoVTRtG+68T1datW3PNjXdwyx33sWDhopo4/Vtuuobvf5jrd78zPv6cT7+cyQUXNN738c033+KTTz4lJi6ZR556kaSMLgw5+XQeevQpFi1eUlMxMxC2bN3Gi6++xZNP+ZcY5ligqLCAhFahWV6RUtIqOoqcXidgjkmj03H9+PW3hT6d6/F4MARppGp32I+qoI4lS5bw6muv8vpLT4dkSerU0Scza2Zg5ccby79OVF997TU++/xzLBGtuPqmO0ht25VLrrieFStW4wlgmlBWXs6okaM4vhFlKg6g1+vp168fd99zD7/+Op+CggJuu+MuSsrtXH7dLcSnd+SMsy/kxVfeYP2GTY0eCUkpufqG27j1lltqTe7yb2HBb78SExXGhm17WLclnzWbd7NqYx4r1u/EEWDZjismDmXvwmcp//NFNn47DUW18tvCRT6d6/Go6A3BSQNos9mPmuxidrudCy+8gOeemNagz6m/nDrmJL799tuQ9F0XvmT+fws4FSiSUnatPnYWcD/QGegrpaw13k8IMQp4DtDhrQjwaJDs9hshBL169aJXr17898EH2bZtG19/9RWffvYpZWXlDB99JkMGD2DIoBPo26eXzyVyjUZj0KZdERERjB49mtGjvSF2hYWFzJs3j7lz5vD4My+iqiojhg5mxLDBDB8ymJSU5Hr7e2X62+wrKePGm24Kin1HI1JKdHoD096ci6Ioh9wKCou4/8pTuXJi3W5AjaF1ShxpiTE8+exLfPHVrJqsXwcy2TudLpxOJy6XG5fLxb59++nXNzgublarrVnySfjDPXffTU6nDkw8+8yQXWPggH5s3baVj2bMYOKkuvLtBxdfFnLeAV4EDs7+sBo4E3itrpOEEDrgJeAkIA/4SwjxjZRyrd/WhoCsrCxuuPFGbrjxRsrKyliwYAG//Pwz/7njAdatX0+f3j29Ijv4BI7v07tOkQ2mqB5OUlISkyZNYtKkSUgp2bx5M3PnzOHLmXO47j93kZqSXCOyJw4acEjmqXXrN3LfQ4+zcOHCYy7ZdGMQQrD07+W1vnbPPfewpzi4626tk2PZXeJmyoXnHhKtJ6UkLMziTfxjsRAeHkZ4WBjHdcsJynVt9qNDVBcuXMgH//uAlX/+GlJPFKPRyNxvP2fsWRewYcMG7r3vvpB7vvhSTmW+ECLzsGPrgIaM6wtsri6rghDiI+B0oEWJ6sFER0dzyimncMop3gCBsrIyFi5cyC8//8zNd/yXtevW0Te3V43I9s3tVbN+ZTQYAqpR7itCCNq3b0/79u258qqr8Hg8/P3338z58UeefvF1Jl44lR7HdWPEsEEMGzKIG2+9h4cefJAOHRq/K/1vYdXypZxzYkZQ+8xMT2BToYtrr7osqP02hM12ZFL0lkZVVRUXXXQhrzz3hM/+t4FwXLccFv/6PcPHjKdVq1Zcd/31Ib1eKJ3/04BdBz3PA46vq7EQYiowFaDNYeVHmovo6GjGjBnDmOrqoeXl5TUj2VvufJA1a9fWjGTdbk+z7LrqdDr69OlDnz59uPOuu7BarSxYsIC5c+Zw/S330DWnK1Mvb7pa7UcjZosFtyc4fqIA67bm88bnCxtVBjpYeJqpTEtjePyxx+jXpxdnjG26qrxJSYnM+uJ/DBg6huzsbE459dSQXSuUolrbMLbOHRYp5XRgOkBubm7zxJc1QFRU1BEie2Ak+8sv8+ndu3czW+j1uz355JM5+eTguqccy3Q9rid/r1vAeaf2D0p/QyY/ybmTzuaJh+8PSn+NQafT1Xi0tFRWr17NycNOaPLrZma04YsZ73DahPNZvnx5yFwLQ7n7nwccvNWcDuSH8HpNTlRUFKNHj+axxx9n8Z9/8vIrrzS3SRp+MHbsWL6atyIoseJ7SyooLa/kiYfvx2isvwJrKNDpdEGLzgoV11x7LU888xKuepLIhIp+x+dy5WUXcUMIlwBCKap/Ae2FEFlCCCMwEfgmhNfT0PCLbt26YQmLZPb8lQH3NfOX5WRmtG4WQYVqUXW3bFEdOnQobdtmH1H5oKm489YbWb58Wcj8VxsUVSHEDOAPoKMQIk8IcYkQYpwQIg/oD3wrhPihum2qEGI2gJTSDVwD/ACsAz6RUq4JybvQ0AgAIQRPP/s81z/6MVab/5uNz78/h9uf+ZKTRwTHNcsfmiuJSGN5+plneODhJ5k779cmv7bZbObl5x7n+huuD8nmcoOiKqWcJKVMkVIapJTpUso3pZRfVj82SSmTpJQjq9vmSynHHHTubCllBylltpQytElCNTQCYNSoUfQbMIgbHvvYr2WAP1Zs5vZnv+CZJx/mhaebzx07Pj6WvXv3Ntv1faVr1658/vnnnDv5cv5a8neTX/+k4UPo3LE9r4Zgye5fF1GloVEXr73+JovW7OHVj39p9LnrtuTTNjOD8yed3awlvhPi4yneG7zS26Fk0KBBTH9tOhPOu4Sioqa3+cZrr+Djjz8Oer/HbD5VDY3GEhkZyVffzGJA/77k5mTSp5vvGfTzi8uIi2vlc3uPx4PNZsNms2O12rDZ7f88t9lqfWyzV7e12aof22vOO9BHeXlF0FPohZIzxo3jr7/+YuKFU/lx1qdNWuF3QL8+rFy1ivLycqKigpchSzRXduz6yM3NlUuWBLfSpYaGr3z++efcfMM1vHzPubhcbhwuNw6nG7vDhcPpxuly1Tx2ON04XB7mLlrD3jInQwYPrBY6O1ab1SuGtmrhOyCONhsulwuLxYLFYiEszPLPY0sYljALFvOB18IOaheGpfr5wccPf56UlHRUZSLzeDyMGT2ajNYpPPLfu4mNbdVk+X679x3CW2+/02h3SCHEUillrbHF2khVQ+Mwxo8fz6aNG3hqxveYTKbqmxmzxYzRZMZkjvI+j7AQYTYTZzIxqeNg7HY7HTp0qFXoDhdBk8n0r0wUXhs6nY5PP/uM8887j+ycPthsNpKTk0hKTCAqMpLIyAgiwsOJjAwnKjKSpMQEUlOSSU1JJj09lcyMNn7/LVVVDfroWBupamhotChsNhsFBQUUFhZSUVFBZWVlzX1ZaSkFBQXk5+ezZ88etu/YjtVq4/g+vcho07omz8I/N3noMflPjS8pJT/O/Zk///yTzp07N8pGbaSqoaFx1GCxWMjKyiIry7c17T179rBo0SLy8/PR6XRHZCE7/CaEqHk85ZKpQc+LoYmqhobGUU1KSgrjxo1rbjNq0FyqNDQ0NIKIJqoaGhoaQUQTVQ0NDY0goomqhoaGRhDRRFVDQ0MjiGiiqqGhoRFENFHV0NDQCCKaqGpoaGgEkRYZpiqEKAZ2BKm7eKDlJ5hsGO19tCy099GyaOr3kSGlTKjthRYpqsFECLGkrhjdowntfbQstPfRsmhJ70Ob/mtoaGgEEU1UNTQ0NILIv0FUpze3AUFCex8tC+19tCxazPs45tdUNTQ0NJqSf8NIVUNDQ6PJ0ERVQ0NDI4gc06IqhIgRQnwmhFgvhFgnhOjf3DY1FiFERyHE8oNu5UKIG5rbLn8QQtwohFgjhFgthJghhDA3t03+IIS4vvo9rDma/i+EEG8JIYqEEKsPOhYrhJgjhNhUfe97Sdhmoo73cVb1/4cqhGhW16pjWlSB54DvpZSdgO7Auma2p9FIKTdIKXtIKXsAvQEr8GXzWtV4hBBpwHVArpSyK6ADJjavVY1HCNEVuAzoi/czdaoQon3zWuUz7wCjDjt2O/CTlLI98FP185bOOxz5PlYDZwLzm9yawzhmRVUIEQUMBt4EkFI6pZSlzWpU4AwHtkgpgxVt1tToAYsQQg+EAfnNbI8/dAYWSSmtUko38CvQcmp51IOUcj6w/7DDpwPvVj9+FzijKW3yh9reh5RynZRyQzOZdAjHrKgCbYFi4G0hxDIhxBtCiPDmNipAJgIzmtsIf5BS7gaeBHYCe4AyKeWPzWuVX6wGBgsh4oQQYcAYoHUz2xQISVLKPQDV94nNbM9Rz7EsqnqgF/CKlLInUMXRMbWpFSGEERgLfNrctvhD9Vrd6UAWkAqECyHOb16rGo+Uch3wGDAH+B5YAbib1SiNFsWxLKp5QJ6UcnH188/wiuzRymjgbyllYXMb4icjgG1SymIppQv4AhjQzDb5hZTyTSllLynlYLzT0E3NbVMAFAohUgCq74ua2Z6jnmNWVKWUBcAuIUTH6kPDgbXNaFKgTOIonfpXsxPoJ4QIE0IIvP8fR93GIYAQIrH6vg3ezZGj+f/lG+Ci6scXAV83oy3HBMd0RJUQogfwBmAEtgJTpJQlzWqUH1Sv3e0C2kopy5rbHn8RQjwAnIN3urwMuFRK6WheqxqPEOI3IA5wATdJKX9qZpN8QggxAxiCN01eIXAf8BXwCdAG7w/fWVLKwzezWhR1vI/9wAtAAlAKLJdSjmwW+45lUdXQ0NBoao7Z6b+GhoZGc6CJqoaGhkYQ0URVQ0NDI4hooqqhoaERRDRR1dDQ0AgimqhqaGhoBBFNVDU0NDSCyP8BAJAbJLUcHIAAAAAASUVORK5CYII=\n",
820 "text/plain": [
821 "<Figure size 432x288 with 1 Axes>"
822 ]
823 },
824 "metadata": {
825 "needs_background": "light"
826 },
827 "output_type": "display_data"
828 }
829 ],
830 "source": [
831 "tracts.plot(column='Max_P', cmap='OrRd', edgecolor='k', categorical=True, legend=True)"
832 ]
833 },
834 {
835 "cell_type": "code",
836 "execution_count": null,
837 "metadata": {},
838 "outputs": [],
839 "source": []
840 }
841 ],
842 "metadata": {
843 "language_info": {
844 "codemirror_mode": {
845 "name": "ipython",
846 "version": 3
847 },
848 "file_extension": ".py",
849 "mimetype": "text/x-python",
850 "name": "python",
851 "nbconvert_exporter": "python",
852 "pygments_lexer": "ipython3",
853 "version": "3.7.6"
854 },
855 "nbsphinx": {
856 "execute": "never"
857 }
858 },
859 "nbformat": 4,
860 "nbformat_minor": 4
861 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "\n",
7 "# Creating a GeoDataFrame from a DataFrame with coordinates\n",
8 "\n",
9 "This example shows how to create a ``GeoDataFrame`` when starting from\n",
10 "a *regular* ``DataFrame`` that has coordinates either WKT\n",
11 "([well-known text](https://en.wikipedia.org/wiki/Well-known_text>))\n",
12 "format, or in\n",
13 "two columns.\n"
14 ]
15 },
16 {
17 "cell_type": "code",
18 "execution_count": null,
19 "metadata": {},
20 "outputs": [],
21 "source": [
22 "import pandas as pd\n",
23 "import geopandas\n",
24 "import matplotlib.pyplot as plt"
25 ]
26 },
27 {
28 "cell_type": "markdown",
29 "metadata": {},
30 "source": [
31 "From longitudes and latitudes\n",
32 "=============================\n",
33 "\n",
34 "First, let's consider a ``DataFrame`` containing cities and their respective\n",
35 "longitudes and latitudes.\n",
36 "\n"
37 ]
38 },
39 {
40 "cell_type": "code",
41 "execution_count": null,
42 "metadata": {},
43 "outputs": [],
44 "source": [
45 "df = pd.DataFrame(\n",
46 " {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'],\n",
47 " 'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'],\n",
48 " 'Latitude': [-34.58, -15.78, -33.45, 4.60, 10.48],\n",
49 " 'Longitude': [-58.66, -47.91, -70.66, -74.08, -66.86]})"
50 ]
51 },
52 {
53 "cell_type": "markdown",
54 "metadata": {},
55 "source": [
56 "A ``GeoDataFrame`` needs a ``shapely`` object. We use geopandas\n",
57 "``points_from_xy()`` to transform **Longitude** and **Latitude** into a list\n",
58 "of ``shapely.Point`` objects and set it as a ``geometry`` while creating the\n",
59 "``GeoDataFrame``. (note that ``points_from_xy()`` is an enhanced wrapper for\n",
60 "``[Point(x, y) for x, y in zip(df.Longitude, df.Latitude)]``)\n",
61 "\n"
62 ]
63 },
64 {
65 "cell_type": "code",
66 "execution_count": null,
67 "metadata": {},
68 "outputs": [],
69 "source": [
70 "gdf = geopandas.GeoDataFrame(\n",
71 " df, geometry=geopandas.points_from_xy(df.Longitude, df.Latitude))"
72 ]
73 },
74 {
75 "cell_type": "markdown",
76 "metadata": {},
77 "source": [
78 "``gdf`` looks like this :\n",
79 "\n"
80 ]
81 },
82 {
83 "cell_type": "code",
84 "execution_count": null,
85 "metadata": {},
86 "outputs": [],
87 "source": [
88 "print(gdf.head())"
89 ]
90 },
91 {
92 "cell_type": "markdown",
93 "metadata": {},
94 "source": [
95 "Finally, we plot the coordinates over a country-level map.\n",
96 "\n"
97 ]
98 },
99 {
100 "cell_type": "code",
101 "execution_count": null,
102 "metadata": {
103 "tags": [
104 "nbsphinx-thumbnail"
105 ]
106 },
107 "outputs": [],
108 "source": [
109 "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))\n",
110 "\n",
111 "# We restrict to South America.\n",
112 "ax = world[world.continent == 'South America'].plot(\n",
113 " color='white', edgecolor='black')\n",
114 "\n",
115 "# We can now plot our ``GeoDataFrame``.\n",
116 "gdf.plot(ax=ax, color='red')\n",
117 "\n",
118 "plt.show()"
119 ]
120 },
121 {
122 "cell_type": "markdown",
123 "metadata": {},
124 "source": [
125 "From WKT format\n",
126 "===============\n",
127 "Here, we consider a ``DataFrame`` having coordinates in WKT format.\n",
128 "\n"
129 ]
130 },
131 {
132 "cell_type": "code",
133 "execution_count": null,
134 "metadata": {},
135 "outputs": [],
136 "source": [
137 "df = pd.DataFrame(\n",
138 " {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'],\n",
139 " 'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'],\n",
140 " 'Coordinates': ['POINT(-58.66 -34.58)', 'POINT(-47.91 -15.78)',\n",
141 " 'POINT(-70.66 -33.45)', 'POINT(-74.08 4.60)',\n",
142 " 'POINT(-66.86 10.48)']})"
143 ]
144 },
145 {
146 "cell_type": "markdown",
147 "metadata": {},
148 "source": [
149 "We use ``shapely.wkt`` sub-module to parse wkt format:\n",
150 "\n"
151 ]
152 },
153 {
154 "cell_type": "code",
155 "execution_count": null,
156 "metadata": {},
157 "outputs": [],
158 "source": [
159 "from shapely import wkt\n",
160 "\n",
161 "df['Coordinates'] = geopandas.GeoSeries.from_wkt(df['Coordinates'])"
162 ]
163 },
164 {
165 "cell_type": "markdown",
166 "metadata": {},
167 "source": [
168 "The ``GeoDataFrame`` is constructed as follows :\n",
169 "\n"
170 ]
171 },
172 {
173 "cell_type": "code",
174 "execution_count": null,
175 "metadata": {},
176 "outputs": [],
177 "source": [
178 "gdf = geopandas.GeoDataFrame(df, geometry='Coordinates')\n",
179 "\n",
180 "print(gdf.head())"
181 ]
182 },
183 {
184 "cell_type": "markdown",
185 "metadata": {},
186 "source": [
187 "Again, we can plot our ``GeoDataFrame``.\n",
188 "\n"
189 ]
190 },
191 {
192 "cell_type": "code",
193 "execution_count": null,
194 "metadata": {},
195 "outputs": [],
196 "source": [
197 "ax = world[world.continent == 'South America'].plot(\n",
198 " color='white', edgecolor='black')\n",
199 "\n",
200 "gdf.plot(ax=ax, color='red')\n",
201 "\n",
202 "plt.show()"
203 ]
204 }
205 ],
206 "metadata": {
207 "kernelspec": {
208 "display_name": "Python 3",
209 "language": "python",
210 "name": "python3"
211 },
212 "language_info": {
213 "codemirror_mode": {
214 "name": "ipython",
215 "version": 3
216 },
217 "file_extension": ".py",
218 "mimetype": "text/x-python",
219 "name": "python",
220 "nbconvert_exporter": "python",
221 "pygments_lexer": "ipython3",
222 "version": "3.9.1"
223 }
224 },
225 "nbformat": 4,
226 "nbformat_minor": 4
227 }
0 Examples Gallery
1 ================
2
3 The following examples show off the functionality in GeoPandas. They highlight many of the things you can do with this package, and show off some best-practices.
4
5
6 .. nbgallery::
7 :name: nbshpinx-gallery
8 :glob:
9
10 ./*
Binary diff not shown
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Overlays\n",
7 "\n",
8 "Spatial overlays allow you to compare two GeoDataFrames containing polygon or multipolygon geometries \n",
9 "and create a new GeoDataFrame with the new geometries representing the spatial combination *and*\n",
10 "merged properties. This allows you to answer questions like\n",
11 "\n",
12 "> What are the demographics of the census tracts within 1000 ft of the highway?\n",
13 "\n",
14 "The basic idea is demonstrated by the graphic below but keep in mind that overlays operate at the dataframe level, \n",
15 "not on individual geometries, and the properties from both are retained\n",
16 "\n",
17 "![illustration](http://docs.qgis.org/testing/en/_images/overlay_operations.png)"
18 ]
19 },
20 {
21 "cell_type": "markdown",
22 "metadata": {},
23 "source": [
24 "Now we can load up two GeoDataFrames containing (multi)polygon geometries..."
25 ]
26 },
27 {
28 "cell_type": "code",
29 "execution_count": null,
30 "metadata": {},
31 "outputs": [],
32 "source": [
33 "%matplotlib inline\n",
34 "from shapely.geometry import Point\n",
35 "from geopandas import datasets, GeoDataFrame, read_file\n",
36 "from geopandas.tools import overlay\n",
37 "\n",
38 "# NYC Boros\n",
39 "zippath = datasets.get_path('nybb')\n",
40 "polydf = read_file(zippath)\n",
41 "\n",
42 "# Generate some circles\n",
43 "b = [int(x) for x in polydf.total_bounds]\n",
44 "N = 10\n",
45 "polydf2 = GeoDataFrame([\n",
46 " {'geometry': Point(x, y).buffer(10000), 'value1': x + y, 'value2': x - y}\n",
47 " for x, y in zip(range(b[0], b[2], int((b[2] - b[0]) / N)),\n",
48 " range(b[1], b[3], int((b[3] - b[1]) / N)))])"
49 ]
50 },
51 {
52 "cell_type": "markdown",
53 "metadata": {},
54 "source": [
55 "The first dataframe contains multipolygons of the NYC boros"
56 ]
57 },
58 {
59 "cell_type": "code",
60 "execution_count": null,
61 "metadata": {},
62 "outputs": [],
63 "source": [
64 "polydf.plot()"
65 ]
66 },
67 {
68 "cell_type": "markdown",
69 "metadata": {},
70 "source": [
71 "And the second GeoDataFrame is a sequentially generated set of circles in the same geographic space. We'll plot these with a [different color palette](https://matplotlib.org/examples/color/colormaps_reference.html)."
72 ]
73 },
74 {
75 "cell_type": "code",
76 "execution_count": null,
77 "metadata": {},
78 "outputs": [],
79 "source": [
80 "polydf2.plot(cmap='tab20b')"
81 ]
82 },
83 {
84 "cell_type": "markdown",
85 "metadata": {},
86 "source": [
87 "The `geopandas.tools.overlay` function takes three arguments:\n",
88 "\n",
89 "* df1\n",
90 "* df2\n",
91 "* how\n",
92 "\n",
93 "Where `how` can be one of:\n",
94 "\n",
95 " ['intersection',\n",
96 " 'union',\n",
97 " 'identity',\n",
98 " 'symmetric_difference',\n",
99 " 'difference']\n",
100 "\n",
101 "So let's identify the areas (and attributes) where both dataframes intersect using the `overlay` tool. "
102 ]
103 },
104 {
105 "cell_type": "code",
106 "execution_count": null,
107 "metadata": {},
108 "outputs": [],
109 "source": [
110 "from geopandas.tools import overlay\n",
111 "newdf = overlay(polydf, polydf2, how=\"intersection\")\n",
112 "newdf.plot(cmap='tab20b')"
113 ]
114 },
115 {
116 "cell_type": "markdown",
117 "metadata": {},
118 "source": [
119 "And take a look at the attributes; we see that the attributes from both of the original GeoDataFrames are retained. "
120 ]
121 },
122 {
123 "cell_type": "code",
124 "execution_count": null,
125 "metadata": {},
126 "outputs": [],
127 "source": [
128 "polydf.head()"
129 ]
130 },
131 {
132 "cell_type": "code",
133 "execution_count": null,
134 "metadata": {},
135 "outputs": [],
136 "source": [
137 "polydf2.head()"
138 ]
139 },
140 {
141 "cell_type": "code",
142 "execution_count": null,
143 "metadata": {},
144 "outputs": [],
145 "source": [
146 "newdf.head()"
147 ]
148 },
149 {
150 "cell_type": "markdown",
151 "metadata": {},
152 "source": [
153 "Now let's look at the other `how` operations:"
154 ]
155 },
156 {
157 "cell_type": "code",
158 "execution_count": null,
159 "metadata": {},
160 "outputs": [],
161 "source": [
162 "newdf = overlay(polydf, polydf2, how=\"union\")\n",
163 "newdf.plot(cmap='tab20b')"
164 ]
165 },
166 {
167 "cell_type": "code",
168 "execution_count": null,
169 "metadata": {},
170 "outputs": [],
171 "source": [
172 "newdf = overlay(polydf, polydf2, how=\"identity\")\n",
173 "newdf.plot(cmap='tab20b')"
174 ]
175 },
176 {
177 "cell_type": "code",
178 "execution_count": null,
179 "metadata": {
180 "tags": [
181 "nbsphinx-thumbnail"
182 ]
183 },
184 "outputs": [],
185 "source": [
186 "newdf = overlay(polydf, polydf2, how=\"symmetric_difference\")\n",
187 "newdf.plot(cmap='tab20b')"
188 ]
189 },
190 {
191 "cell_type": "code",
192 "execution_count": null,
193 "metadata": {},
194 "outputs": [],
195 "source": [
196 "newdf = overlay(polydf, polydf2, how=\"difference\")\n",
197 "newdf.plot(cmap='tab20b')"
198 ]
199 }
200 ],
201 "metadata": {
202 "kernelspec": {
203 "display_name": "Python 3",
204 "language": "python",
205 "name": "python3"
206 },
207 "language_info": {
208 "codemirror_mode": {
209 "name": "ipython",
210 "version": 3
211 },
212 "file_extension": ".py",
213 "mimetype": "text/x-python",
214 "name": "python",
215 "nbconvert_exporter": "python",
216 "pygments_lexer": "ipython3",
217 "version": "3.9.1"
218 }
219 },
220 "nbformat": 4,
221 "nbformat_minor": 4
222 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Clip Vector Data with GeoPandas\n",
7 "\n",
8 "\n",
9 "Learn how to clip geometries to the boundary of a polygon geometry\n",
10 "using GeoPandas."
11 ]
12 },
13 {
14 "cell_type": "markdown",
15 "metadata": {},
16 "source": [
17 "The example below shows you how to clip a set of vector geometries\n",
18 "to the spatial extent / shape of another vector object. Both sets of geometries\n",
19 "must be opened with GeoPandas as GeoDataFrames and be in the same Coordinate\n",
20 "Reference System (CRS) for the `clip` function in GeoPandas to work.\n",
21 "\n",
22 "This example uses GeoPandas example data ``'naturalearth_cities'`` and\n",
23 "``'naturalearth_lowres'``, alongside a custom rectangle geometry made with\n",
24 "shapely and then turned into a GeoDataFrame.\n",
25 "\n",
26 "<div class=\"alert alert-info\">\n",
27 " \n",
28 "Note\n",
29 "\n",
30 "The object to be clipped will be clipped to the full extent of the clip\n",
31 "object. If there are multiple polygons in clip object, the input data will\n",
32 "be clipped to the total boundary of all polygons in clip object.\n",
33 "</div>\n",
34 "\n"
35 ]
36 },
37 {
38 "cell_type": "markdown",
39 "metadata": {},
40 "source": [
41 "Import Packages\n",
42 "---------------\n",
43 "\n",
44 "To begin, import the needed packages.\n",
45 "\n"
46 ]
47 },
48 {
49 "cell_type": "code",
50 "execution_count": null,
51 "metadata": {},
52 "outputs": [],
53 "source": [
54 "import matplotlib.pyplot as plt\n",
55 "import geopandas\n",
56 "from shapely.geometry import Polygon"
57 ]
58 },
59 {
60 "cell_type": "markdown",
61 "metadata": {},
62 "source": [
63 "Get or Create Example Data\n",
64 "--------------------------\n",
65 "\n",
66 "Below, the example GeoPandas data is imported and opened as a GeoDataFrame.\n",
67 "Additionally, a polygon is created with shapely and then converted into a\n",
68 "GeoDataFrame with the same CRS as the GeoPandas world dataset.\n",
69 "\n"
70 ]
71 },
72 {
73 "cell_type": "code",
74 "execution_count": null,
75 "metadata": {},
76 "outputs": [],
77 "source": [
78 "capitals = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_cities\"))\n",
79 "world = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_lowres\"))\n",
80 "\n",
81 "# Create a subset of the world data that is just the South American continent\n",
82 "south_america = world[world[\"continent\"] == \"South America\"]\n",
83 "\n",
84 "# Create a custom polygon\n",
85 "polygon = Polygon([(0, 0), (0, 90), (180, 90), (180, 0), (0, 0)])\n",
86 "poly_gdf = geopandas.GeoDataFrame([1], geometry=[polygon], crs=world.crs)"
87 ]
88 },
89 {
90 "cell_type": "markdown",
91 "metadata": {},
92 "source": [
93 "Plot the Unclipped Data\n",
94 "-----------------------\n",
95 "\n"
96 ]
97 },
98 {
99 "cell_type": "code",
100 "execution_count": null,
101 "metadata": {},
102 "outputs": [],
103 "source": [
104 "fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8))\n",
105 "world.plot(ax=ax1)\n",
106 "poly_gdf.boundary.plot(ax=ax1, color=\"red\")\n",
107 "south_america.boundary.plot(ax=ax2, color=\"green\")\n",
108 "capitals.plot(ax=ax2, color=\"purple\")\n",
109 "ax1.set_title(\"All Unclipped World Data\", fontsize=20)\n",
110 "ax2.set_title(\"All Unclipped Capital Data\", fontsize=20)\n",
111 "ax1.set_axis_off()\n",
112 "ax2.set_axis_off()\n",
113 "plt.show()"
114 ]
115 },
116 {
117 "cell_type": "markdown",
118 "metadata": {},
119 "source": [
120 "Clip the Data\n",
121 "--------------\n",
122 "\n",
123 "When you call `clip`, the first object called is the object that will\n",
124 "be clipped. The second object called is the clip extent. The returned output\n",
125 "will be a new clipped GeoDataframe. All of the attributes for each returned\n",
126 "geometry will be retained when you clip.\n",
127 "\n",
128 "<div class=\"alert alert-info\">\n",
129 "\n",
130 "Note\n",
131 "\n",
132 "Recall that the data must be in the same CRS in order to use the\n",
133 "`clip` function. If the data are not in the same CRS, be sure to use\n",
134 "the GeoPandas `GeoDataFrame.to_crs` method to ensure both datasets\n",
135 "are in the same CRS.\n",
136 "</div>\n",
137 "\n"
138 ]
139 },
140 {
141 "cell_type": "markdown",
142 "metadata": {},
143 "source": [
144 "Clip the World Data\n",
145 "--------------------\n",
146 "\n"
147 ]
148 },
149 {
150 "cell_type": "code",
151 "execution_count": null,
152 "metadata": {
153 "tags": [
154 "nbsphinx-thumbnail"
155 ]
156 },
157 "outputs": [],
158 "source": [
159 "world_clipped = geopandas.clip(world, polygon)\n",
160 "\n",
161 "# Plot the clipped data\n",
162 "# The plot below shows the results of the clip function applied to the world\n",
163 "# sphinx_gallery_thumbnail_number = 2\n",
164 "fig, ax = plt.subplots(figsize=(12, 8))\n",
165 "world_clipped.plot(ax=ax, color=\"purple\")\n",
166 "world.boundary.plot(ax=ax)\n",
167 "poly_gdf.boundary.plot(ax=ax, color=\"red\")\n",
168 "ax.set_title(\"World Clipped\", fontsize=20)\n",
169 "ax.set_axis_off()\n",
170 "plt.show()"
171 ]
172 },
173 {
174 "cell_type": "markdown",
175 "metadata": {},
176 "source": [
177 "Clip the Capitals Data\n",
178 "----------------------\n",
179 "\n"
180 ]
181 },
182 {
183 "cell_type": "code",
184 "execution_count": null,
185 "metadata": {},
186 "outputs": [],
187 "source": [
188 "capitals_clipped = geopandas.clip(capitals, south_america)\n",
189 "\n",
190 "# Plot the clipped data\n",
191 "# The plot below shows the results of the clip function applied to the capital cities\n",
192 "fig, ax = plt.subplots(figsize=(12, 8))\n",
193 "capitals_clipped.plot(ax=ax, color=\"purple\")\n",
194 "south_america.boundary.plot(ax=ax, color=\"green\")\n",
195 "ax.set_title(\"Capitals Clipped\", fontsize=20)\n",
196 "ax.set_axis_off()\n",
197 "plt.show()"
198 ]
199 }
200 ],
201 "metadata": {
202 "kernelspec": {
203 "display_name": "Python 3",
204 "language": "python",
205 "name": "python3"
206 },
207 "language_info": {
208 "codemirror_mode": {
209 "name": "ipython",
210 "version": 3
211 },
212 "file_extension": ".py",
213 "mimetype": "text/x-python",
214 "name": "python",
215 "nbconvert_exporter": "python",
216 "pygments_lexer": "ipython3",
217 "version": "3.9.1"
218 }
219 },
220 "nbformat": 4,
221 "nbformat_minor": 4
222 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "\n",
7 "# Adding a background map to plots\n",
8 "\n",
9 "This example shows how you can add a background basemap to plots created\n",
10 "with the geopandas ``.plot()`` method. This makes use of the\n",
11 "[contextily](https://github.com/geopandas/contextily) package to retrieve\n",
12 "web map tiles from several sources (OpenStreetMap, Stamen).\n"
13 ]
14 },
15 {
16 "cell_type": "code",
17 "execution_count": null,
18 "metadata": {},
19 "outputs": [],
20 "source": [
21 "import geopandas"
22 ]
23 },
24 {
25 "cell_type": "markdown",
26 "metadata": {},
27 "source": [
28 "Let's use the NYC borough boundary data that is available in geopandas\n",
29 "datasets. Plotting this gives the following result:\n",
30 "\n"
31 ]
32 },
33 {
34 "cell_type": "code",
35 "execution_count": null,
36 "metadata": {},
37 "outputs": [],
38 "source": [
39 "df = geopandas.read_file(geopandas.datasets.get_path('nybb'))\n",
40 "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')"
41 ]
42 },
43 {
44 "cell_type": "markdown",
45 "metadata": {},
46 "source": [
47 "Convert the data to Web Mercator\n",
48 "================================\n",
49 "\n",
50 "Web map tiles are typically provided in\n",
51 "[Web Mercator](https://en.wikipedia.org/wiki/Web_Mercator>)\n",
52 "([EPSG 3857](https://epsg.io/3857)), so we need to make sure to convert\n",
53 "our data first to the same CRS to combine our polygons and background tiles\n",
54 "in the same map:\n",
55 "\n"
56 ]
57 },
58 {
59 "cell_type": "code",
60 "execution_count": null,
61 "metadata": {},
62 "outputs": [],
63 "source": [
64 "df = df.to_crs(epsg=3857)"
65 ]
66 },
67 {
68 "cell_type": "code",
69 "execution_count": null,
70 "metadata": {},
71 "outputs": [],
72 "source": [
73 "import contextily as ctx"
74 ]
75 },
76 {
77 "cell_type": "markdown",
78 "metadata": {},
79 "source": [
80 "Add background tiles to plot\n",
81 "============================\n",
82 "\n",
83 "We can use `add_basemap` function of contextily to easily add a background\n",
84 "map to our plot. :\n",
85 "\n"
86 ]
87 },
88 {
89 "cell_type": "code",
90 "execution_count": null,
91 "metadata": {
92 "tags": [
93 "nbsphinx-thumbnail"
94 ]
95 },
96 "outputs": [],
97 "source": [
98 "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n",
99 "ctx.add_basemap(ax)"
100 ]
101 },
102 {
103 "cell_type": "markdown",
104 "metadata": {},
105 "source": [
106 "We can control the detail of the map tiles using the optional `zoom` keyword\n",
107 "(be careful to not specify a too high `zoom` level,\n",
108 "as this can result in a large download).:\n",
109 "\n"
110 ]
111 },
112 {
113 "cell_type": "code",
114 "execution_count": null,
115 "metadata": {},
116 "outputs": [],
117 "source": [
118 "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n",
119 "ctx.add_basemap(ax, zoom=12)"
120 ]
121 },
122 {
123 "cell_type": "markdown",
124 "metadata": {},
125 "source": [
126 "By default, contextily uses the Stamen Terrain style. We can specify a\n",
127 "different style using ``ctx.providers``:\n",
128 "\n"
129 ]
130 },
131 {
132 "cell_type": "code",
133 "execution_count": null,
134 "metadata": {},
135 "outputs": [],
136 "source": [
137 "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n",
138 "ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLite)\n",
139 "ax.set_axis_off()"
140 ]
141 },
142 {
143 "cell_type": "code",
144 "execution_count": null,
145 "metadata": {},
146 "outputs": [],
147 "source": []
148 }
149 ],
150 "metadata": {
151 "kernelspec": {
152 "display_name": "Python 3",
153 "language": "python",
154 "name": "python3"
155 },
156 "language_info": {
157 "codemirror_mode": {
158 "name": "ipython",
159 "version": 3
160 },
161 "file_extension": ".py",
162 "mimetype": "text/x-python",
163 "name": "python",
164 "nbconvert_exporter": "python",
165 "pygments_lexer": "ipython3",
166 "version": "3.7.6"
167 }
168 },
169 "nbformat": 4,
170 "nbformat_minor": 4
171 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Plotting with folium\n",
7 "\n",
8 "__What is Folium?__\n",
9 "\n",
10 "It builds on the data wrangling and a Python wrapper for leaflet.js. It makes it easy to visualize data in Python with minimal instructions.\n",
11 "\n",
12 "Folium expands on the data wrangling properties utilized in Python language and the mapping characteristics of the Leaflet.js library. Folium enables us to make an intuitive map and are is visualized in a Leaflet map after manipulating data in Python. Folium results are intuitive which makes this library helpful for dashboard building and easier to work with.\n",
13 "\n",
14 "Let's see the implementation of both GeoPandas and Folium:"
15 ]
16 },
17 {
18 "cell_type": "code",
19 "execution_count": null,
20 "metadata": {},
21 "outputs": [],
22 "source": [
23 "# Importing Libraries\n",
24 "import pandas as pd\n",
25 "import geopandas\n",
26 "import folium\n",
27 "import matplotlib.pyplot as plt\n",
28 "\n",
29 "from shapely.geometry import Point"
30 ]
31 },
32 {
33 "cell_type": "code",
34 "execution_count": null,
35 "metadata": {},
36 "outputs": [],
37 "source": [
38 "df1 = pd.read_csv('volcano_data_2010.csv')\n",
39 "df = df1.loc[:, (\"Year\", \"Name\", \"Country\", \"Latitude\", \"Longitude\", \"Type\")]\n",
40 "df.info()"
41 ]
42 },
43 {
44 "cell_type": "code",
45 "execution_count": null,
46 "metadata": {},
47 "outputs": [],
48 "source": [
49 "geometry = geopandas.points_from_xy(df.Longitude, df.Latitude)\n",
50 "geo_df = geopandas.GeoDataFrame(df[['Year','Name','Country', 'Latitude', 'Longitude', 'Type']], geometry=geometry)\n",
51 "\n",
52 "geo_df.head()"
53 ]
54 },
55 {
56 "cell_type": "code",
57 "execution_count": null,
58 "metadata": {},
59 "outputs": [],
60 "source": [
61 "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))\n",
62 "df.Type.unique()"
63 ]
64 },
65 {
66 "cell_type": "code",
67 "execution_count": null,
68 "metadata": {
69 "tags": [
70 "nbsphinx-thumbnail"
71 ]
72 },
73 "outputs": [],
74 "source": [
75 "fig, ax = plt.subplots(figsize=(24,18))\n",
76 "world.plot(ax=ax, alpha=0.4, color='grey')\n",
77 "geo_df.plot(column='Type', ax=ax, legend=True)\n",
78 "plt.title('Volcanoes')"
79 ]
80 },
81 {
82 "cell_type": "markdown",
83 "metadata": {},
84 "source": [
85 "We will be using different icons to differentiate the types of Volcanoes using Folium.\n",
86 "But before we start, we can see a few different tiles to choose from folium."
87 ]
88 },
89 {
90 "cell_type": "code",
91 "execution_count": null,
92 "metadata": {},
93 "outputs": [],
94 "source": [
95 "# Stamen Terrain\n",
96 "map = folium.Map(location = [13.406,80.110], tiles = \"Stamen Terrain\", zoom_start = 9)\n",
97 "map"
98 ]
99 },
100 {
101 "cell_type": "code",
102 "execution_count": null,
103 "metadata": {},
104 "outputs": [],
105 "source": [
106 "# OpenStreetMap\n",
107 "map = folium.Map(location = [13.406,80.110], tiles='OpenStreetMap' , zoom_start = 9)\n",
108 "map"
109 ]
110 },
111 {
112 "cell_type": "code",
113 "execution_count": null,
114 "metadata": {},
115 "outputs": [],
116 "source": [
117 "# Stamen Toner\n",
118 "map = folium.Map(location = [13.406,80.110], tiles='Stamen Toner', zoom_start = 9)\n",
119 "map"
120 ]
121 },
122 {
123 "cell_type": "markdown",
124 "metadata": {},
125 "source": [
126 "We can use other tiles for the visualization, these are just a few examples.\n",
127 "\n",
128 "### Markers\n",
129 "Now, let's look at different volcanoes on the map using different Markers to represent the volcanoes."
130 ]
131 },
132 {
133 "cell_type": "code",
134 "execution_count": null,
135 "metadata": {},
136 "outputs": [],
137 "source": [
138 "#use terrain map layer to actually see volcano terrain\n",
139 "map = folium.Map(location = [4,10], tiles = \"Stamen Terrain\", zoom_start = 3)"
140 ]
141 },
142 {
143 "cell_type": "code",
144 "execution_count": null,
145 "metadata": {},
146 "outputs": [],
147 "source": [
148 "# insert multiple markers, iterate through list\n",
149 "# add a different color marker associated with type of volcano\n",
150 "\n",
151 "geo_df_list = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n",
152 "\n",
153 "i = 0\n",
154 "for coordinates in geo_df_list:\n",
155 " #assign a color marker for the type of volcano, Strato being the most common\n",
156 " if geo_df.Type[i] == \"Stratovolcano\":\n",
157 " type_color = \"green\"\n",
158 " elif geo_df.Type[i] == \"Complex volcano\":\n",
159 " type_color = \"blue\"\n",
160 " elif geo_df.Type[i] == \"Shield volcano\":\n",
161 " type_color = \"orange\"\n",
162 " elif geo_df.Type[i] == \"Lava dome\":\n",
163 " type_color = \"pink\"\n",
164 " else:\n",
165 " type_color = \"purple\"\n",
166 "\n",
167 "\n",
168 " #now place the markers with the popup labels and data\n",
169 " map.add_child(folium.Marker(location = coordinates,\n",
170 " popup =\n",
171 " \"Year: \" + str(geo_df.Year[i]) + '<br>' +\n",
172 " \"Name: \" + str(geo_df.Name[i]) + '<br>' +\n",
173 " \"Country: \" + str(geo_df.Country[i]) + '<br>'\n",
174 " \"Type: \" + str(geo_df.Type[i]) + '<br>'\n",
175 " \"Coordinates: \" + str(geo_df_list[i]),\n",
176 " icon = folium.Icon(color = \"%s\" % type_color)))\n",
177 " i = i + 1"
178 ]
179 },
180 {
181 "cell_type": "code",
182 "execution_count": null,
183 "metadata": {},
184 "outputs": [],
185 "source": [
186 "map"
187 ]
188 },
189 {
190 "cell_type": "markdown",
191 "metadata": {},
192 "source": [
193 "### Heatmaps\n",
194 "\n",
195 "Folium is well known for it's heatmap which create a heatmap layer. To plot a heat map in folium, one needs a list of Latitude, Longitude."
196 ]
197 },
198 {
199 "cell_type": "code",
200 "execution_count": null,
201 "metadata": {},
202 "outputs": [],
203 "source": [
204 "# In this example, with the hep of heat maps, we are able to perceive the density of volcanoes\n",
205 "# which is more in some part of the world compared to others.\n",
206 "\n",
207 "from folium import plugins\n",
208 "\n",
209 "map = folium.Map(location = [15,30], tiles='Cartodb dark_matter', zoom_start = 2)\n",
210 "\n",
211 "heat_data = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n",
212 "\n",
213 "heat_data\n",
214 "plugins.HeatMap(heat_data).add_to(map)\n",
215 "\n",
216 "map"
217 ]
218 },
219 {
220 "cell_type": "code",
221 "execution_count": null,
222 "metadata": {},
223 "outputs": [],
224 "source": []
225 }
226 ],
227 "metadata": {
228 "kernelspec": {
229 "display_name": "Python 3",
230 "language": "python",
231 "name": "python3"
232 },
233 "language_info": {
234 "codemirror_mode": {
235 "name": "ipython",
236 "version": 3
237 },
238 "file_extension": ".py",
239 "mimetype": "text/x-python",
240 "name": "python",
241 "nbconvert_exporter": "python",
242 "pygments_lexer": "ipython3",
243 "version": "3.7.6"
244 }
245 },
246 "nbformat": 4,
247 "nbformat_minor": 4
248 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "\n",
7 "# Plotting with Geoplot and GeoPandas\n",
8 "\n",
9 "[Geoplot](https://residentmario.github.io/geoplot/index.html) is a Python\n",
10 "library providing a selection of easy-to-use geospatial visualizations. It is\n",
11 "built on top of the lower-level [CartoPy](http://scitools.org.uk/cartopy/),\n",
12 "covered in a separate section of this tutorial, and is designed to work with\n",
13 "GeoPandas input.\n",
14 "\n",
15 "This example is a brief tour of the `geoplot` API. For more details on the\n",
16 "library refer to [its documentation](https://residentmario.github.io/geoplot/index.html).\n",
17 "\n",
18 "First we'll load in the data using GeoPandas.\n"
19 ]
20 },
21 {
22 "cell_type": "code",
23 "execution_count": null,
24 "metadata": {},
25 "outputs": [],
26 "source": [
27 "import geopandas\n",
28 "import geoplot\n",
29 "\n",
30 "world = geopandas.read_file(\n",
31 " geopandas.datasets.get_path('naturalearth_lowres')\n",
32 ")\n",
33 "boroughs = geopandas.read_file(\n",
34 " geoplot.datasets.get_path('nyc_boroughs')\n",
35 ")\n",
36 "collisions = geopandas.read_file(\n",
37 " geoplot.datasets.get_path('nyc_injurious_collisions')\n",
38 ")"
39 ]
40 },
41 {
42 "cell_type": "markdown",
43 "metadata": {},
44 "source": [
45 "Plotting with Geoplot\n",
46 "=====================\n",
47 "\n",
48 "We start out by replicating the basic GeoPandas world plot using Geoplot.\n",
49 "\n"
50 ]
51 },
52 {
53 "cell_type": "code",
54 "execution_count": null,
55 "metadata": {},
56 "outputs": [],
57 "source": [
58 "geoplot.polyplot(world, figsize=(8, 4))"
59 ]
60 },
61 {
62 "cell_type": "markdown",
63 "metadata": {},
64 "source": [
65 "Geoplot can re-project data into any of the map projections provided by\n",
66 "CartoPy (see the list\n",
67 "[here](http://scitools.org.uk/cartopy/docs/latest/crs/projections.html)).\n",
68 "\n"
69 ]
70 },
71 {
72 "cell_type": "code",
73 "execution_count": null,
74 "metadata": {},
75 "outputs": [],
76 "source": [
77 "# use the Orthographic map projection (e.g. a world globe)\n",
78 "ax = geoplot.polyplot(\n",
79 " world, projection=geoplot.crs.Orthographic(), figsize=(8, 4)\n",
80 ")\n",
81 "ax.outline_patch.set_visible(True)"
82 ]
83 },
84 {
85 "cell_type": "markdown",
86 "metadata": {},
87 "source": [
88 "``polyplot`` is trivial and can only plot the geometries you pass to it. If\n",
89 "you want to use color as a visual variable, specify a ``choropleth``. Here\n",
90 "we sort GDP per person by country into five buckets by color, using\n",
91 "\"quantiles\" binning from the [Mapclassify](https://pysal.org/mapclassify/)\n",
92 "library.\n",
93 "\n"
94 ]
95 },
96 {
97 "cell_type": "code",
98 "execution_count": null,
99 "metadata": {},
100 "outputs": [],
101 "source": [
102 "import mapclassify\n",
103 "gpd_per_person = world['gdp_md_est'] / world['pop_est']\n",
104 "scheme = mapclassify.Quantiles(gpd_per_person, k=5)\n",
105 "\n",
106 "# Note: this code sample requires geoplot>=0.4.0.\n",
107 "geoplot.choropleth(\n",
108 " world, hue=gpd_per_person, scheme=scheme,\n",
109 " cmap='Greens', figsize=(8, 4)\n",
110 ")"
111 ]
112 },
113 {
114 "cell_type": "markdown",
115 "metadata": {},
116 "source": [
117 "If you want to use size as a visual variable, use a ``cartogram``. Here are\n",
118 "population estimates for countries in Africa.\n",
119 "\n"
120 ]
121 },
122 {
123 "cell_type": "code",
124 "execution_count": null,
125 "metadata": {},
126 "outputs": [],
127 "source": [
128 "africa = world.query('continent == \"Africa\"')\n",
129 "ax = geoplot.cartogram(\n",
130 " africa, scale='pop_est', limits=(0.2, 1),\n",
131 " edgecolor='None', figsize=(7, 8)\n",
132 ")\n",
133 "geoplot.polyplot(africa, edgecolor='gray', ax=ax)"
134 ]
135 },
136 {
137 "cell_type": "markdown",
138 "metadata": {},
139 "source": [
140 "If we have data in the shape of points in space, we may generate a\n",
141 "three-dimensional heatmap on it using ``kdeplot``.\n",
142 "\n"
143 ]
144 },
145 {
146 "cell_type": "code",
147 "execution_count": null,
148 "metadata": {
149 "tags": [
150 "nbsphinx-thumbnail"
151 ]
152 },
153 "outputs": [],
154 "source": [
155 "ax = geoplot.kdeplot(\n",
156 " collisions.head(1000), clip=boroughs.geometry,\n",
157 " shade=True, cmap='Reds',\n",
158 " projection=geoplot.crs.AlbersEqualArea())\n",
159 "geoplot.polyplot(boroughs, ax=ax, zorder=1)"
160 ]
161 },
162 {
163 "cell_type": "markdown",
164 "metadata": {},
165 "source": [
166 "These are just some of the plots you can make with Geoplot. There are\n",
167 "many other possibilities not covered in this brief introduction. For more\n",
168 "examples, refer to the\n",
169 "[Gallery](https://residentmario.github.io/geoplot/gallery/index.html) in\n",
170 "the Geoplot documentation.\n",
171 "\n"
172 ]
173 }
174 ],
175 "metadata": {
176 "kernelspec": {
177 "display_name": "Python 3",
178 "language": "python",
179 "name": "python3"
180 },
181 "language_info": {
182 "codemirror_mode": {
183 "name": "ipython",
184 "version": 3
185 },
186 "file_extension": ".py",
187 "mimetype": "text/x-python",
188 "name": "python",
189 "nbconvert_exporter": "python",
190 "pygments_lexer": "ipython3",
191 "version": "3.7.6"
192 }
193 },
194 "nbformat": 4,
195 "nbformat_minor": 4
196 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# An example of polygon plotting with folium \n",
7 "We are going to demonstrate polygon plotting in this example with the help of folium"
8 ]
9 },
10 {
11 "cell_type": "code",
12 "execution_count": null,
13 "metadata": {},
14 "outputs": [],
15 "source": [
16 "import geopandas as gpd\n",
17 "import folium\n",
18 "import matplotlib.pyplot as plt"
19 ]
20 },
21 {
22 "cell_type": "markdown",
23 "metadata": {},
24 "source": [
25 "We make use of nybb dataset"
26 ]
27 },
28 {
29 "cell_type": "code",
30 "execution_count": null,
31 "metadata": {},
32 "outputs": [],
33 "source": [
34 "path = gpd.datasets.get_path('nybb')\n",
35 "df = gpd.read_file(path)\n",
36 "df.head()"
37 ]
38 },
39 {
40 "cell_type": "markdown",
41 "metadata": {},
42 "source": [
43 "Plot from the original dataset"
44 ]
45 },
46 {
47 "cell_type": "code",
48 "execution_count": null,
49 "metadata": {
50 "tags": [
51 "nbsphinx-thumbnail"
52 ]
53 },
54 "outputs": [],
55 "source": [
56 "df.plot(figsize=(6, 6))\n",
57 "plt.show()"
58 ]
59 },
60 {
61 "cell_type": "markdown",
62 "metadata": {},
63 "source": [
64 "One thing to notice is that the values of the geometry do not directly represent the values of latitude of longitude in geographic coordinate system\n"
65 ]
66 },
67 {
68 "cell_type": "code",
69 "execution_count": null,
70 "metadata": {},
71 "outputs": [],
72 "source": [
73 "print(df.crs)"
74 ]
75 },
76 {
77 "cell_type": "markdown",
78 "metadata": {},
79 "source": [
80 "As folium(i.e. leaflet.js) by default takes input of values of latitude and longitude, we need to project the geometry first"
81 ]
82 },
83 {
84 "cell_type": "code",
85 "execution_count": null,
86 "metadata": {},
87 "outputs": [],
88 "source": [
89 "df = df.to_crs(epsg=4326)\n",
90 "print(df.crs)\n",
91 "df.head()"
92 ]
93 },
94 {
95 "cell_type": "code",
96 "execution_count": null,
97 "metadata": {},
98 "outputs": [],
99 "source": [
100 "df.plot(figsize=(6, 6))\n",
101 "plt.show()"
102 ]
103 },
104 {
105 "cell_type": "markdown",
106 "metadata": {},
107 "source": [
108 "Initialize folium map object"
109 ]
110 },
111 {
112 "cell_type": "code",
113 "execution_count": null,
114 "metadata": {},
115 "outputs": [],
116 "source": [
117 "m = folium.Map(location=[40.70, -73.94], zoom_start=10, tiles='CartoDB positron')\n",
118 "m"
119 ]
120 },
121 {
122 "cell_type": "markdown",
123 "metadata": {},
124 "source": [
125 "Overlay the boundaries of boroughs on map with borough name as popup"
126 ]
127 },
128 {
129 "cell_type": "code",
130 "execution_count": null,
131 "metadata": {},
132 "outputs": [],
133 "source": [
134 "for _, r in df.iterrows():\n",
135 " #without simplifying the representation of each borough, the map might not be displayed \n",
136 " #sim_geo = gpd.GeoSeries(r['geometry'])\n",
137 " sim_geo = gpd.GeoSeries(r['geometry']).simplify(tolerance=0.001)\n",
138 " geo_j = sim_geo.to_json()\n",
139 " geo_j = folium.GeoJson(data=geo_j,\n",
140 " style_function=lambda x: {'fillColor': 'orange'})\n",
141 " folium.Popup(r['BoroName']).add_to(geo_j)\n",
142 " geo_j.add_to(m)\n",
143 "m"
144 ]
145 },
146 {
147 "cell_type": "markdown",
148 "metadata": {},
149 "source": [
150 "Add marker showing the area and length of each borough"
151 ]
152 },
153 {
154 "cell_type": "code",
155 "execution_count": null,
156 "metadata": {},
157 "outputs": [],
158 "source": [
159 "df['lat'] = df.centroid.y\n",
160 "df['lon'] = df.centroid.x\n",
161 "df.head()"
162 ]
163 },
164 {
165 "cell_type": "code",
166 "execution_count": null,
167 "metadata": {},
168 "outputs": [],
169 "source": [
170 "for _, r in df.iterrows():\n",
171 " folium.Marker(location=[r['lat'], r['lon']], popup='length: {} <br> area: {}'.format(r['Shape_Leng'], r['Shape_Area'])).add_to(m)\n",
172 " \n",
173 "m"
174 ]
175 },
176 {
177 "cell_type": "code",
178 "execution_count": null,
179 "metadata": {},
180 "outputs": [],
181 "source": []
182 }
183 ],
184 "metadata": {
185 "language_info": {
186 "codemirror_mode": {
187 "name": "ipython",
188 "version": 3
189 },
190 "file_extension": ".py",
191 "mimetype": "text/x-python",
192 "name": "python",
193 "nbconvert_exporter": "python",
194 "pygments_lexer": "ipython3",
195 "version": "3.8.5"
196 }
197 },
198 "nbformat": 4,
199 "nbformat_minor": 4
200 }
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Spatial Joins\n",
7 "\n",
8 "A *spatial join* uses [binary predicates](http://shapely.readthedocs.io/en/latest/manual.html#binary-predicates) \n",
9 "such as `intersects` and `crosses` to combine two `GeoDataFrames` based on the spatial relationship \n",
10 "between their geometries.\n",
11 "\n",
12 "A common use case might be a spatial join between a point layer and a polygon layer where you want to retain the point geometries and grab the attributes of the intersecting polygons.\n",
13 "\n",
14 "![illustration](https://web.natur.cuni.cz/~langhamr/lectures/vtfg1/mapinfo_1/about_gis/Image23.gif)"
15 ]
16 },
17 {
18 "cell_type": "markdown",
19 "metadata": {},
20 "source": [
21 "\n",
22 "## Types of spatial joins\n",
23 "\n",
24 "We currently support the following methods of spatial joins. We refer to the *left_df* and *right_df* which are the correspond to the two dataframes passed in as args.\n",
25 "\n",
26 "### Left outer join\n",
27 "\n",
28 "In a LEFT OUTER JOIN (`how='left'`), we keep *all* rows from the left and duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the right if they intersect and lose right rows that don't intersect. A left outer join implies that we are interested in retaining the geometries of the left. \n",
29 "\n",
30 "This is equivalent to the PostGIS query:\n",
31 "```\n",
32 "SELECT pts.geom, pts.id as ptid, polys.id as polyid \n",
33 "FROM pts\n",
34 "LEFT OUTER JOIN polys\n",
35 "ON ST_Intersects(pts.geom, polys.geom);\n",
36 "\n",
37 " geom | ptid | polyid \n",
38 "--------------------------------------------+------+--------\n",
39 " 010100000040A9FBF2D88AD03F349CD47D796CE9BF | 4 | 10\n",
40 " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 10\n",
41 " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 20\n",
42 " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n",
43 " 0101000000818693BA2F8FF7BF4ADD97C75604E9BF | 1 | \n",
44 "(5 rows)\n",
45 "```\n",
46 "\n",
47 "### Right outer join\n",
48 "\n",
49 "In a RIGHT OUTER JOIN (`how='right'`), we keep *all* rows from the right and duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the left if they intersect and lose left rows that don't intersect. A right outer join implies that we are interested in retaining the geometries of the right. \n",
50 "\n",
51 "This is equivalent to the PostGIS query:\n",
52 "```\n",
53 "SELECT polys.geom, pts.id as ptid, polys.id as polyid \n",
54 "FROM pts\n",
55 "RIGHT OUTER JOIN polys\n",
56 "ON ST_Intersects(pts.geom, polys.geom);\n",
57 "\n",
58 " geom | ptid | polyid \n",
59 "----------+------+--------\n",
60 " 01...9BF | 4 | 10\n",
61 " 01...9BF | 3 | 10\n",
62 " 02...7BF | 3 | 20\n",
63 " 02...7BF | 2 | 20\n",
64 " 00...5BF | | 30\n",
65 "(5 rows)\n",
66 "```\n",
67 "\n",
68 "### Inner join\n",
69 "\n",
70 "In an INNER JOIN (`how='inner'`), we keep rows from the right and left only where their binary predicate is `True`. We duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the right and left only if they intersect and lose all rows that do not. An inner join implies that we are interested in retaining the geometries of the left. \n",
71 "\n",
72 "This is equivalent to the PostGIS query:\n",
73 "```\n",
74 "SELECT pts.geom, pts.id as ptid, polys.id as polyid \n",
75 "FROM pts\n",
76 "INNER JOIN polys\n",
77 "ON ST_Intersects(pts.geom, polys.geom);\n",
78 "\n",
79 " geom | ptid | polyid \n",
80 "--------------------------------------------+------+--------\n",
81 " 010100000040A9FBF2D88AD03F349CD47D796CE9BF | 4 | 10\n",
82 " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 10\n",
83 " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 20\n",
84 " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n",
85 "(4 rows) \n",
86 "```"
87 ]
88 },
89 {
90 "cell_type": "markdown",
91 "metadata": {},
92 "source": [
93 "## Spatial Joins between two GeoDataFrames\n",
94 "\n",
95 "Let's take a look at how we'd implement these using `GeoPandas`. First, load up the NYC test data into `GeoDataFrames`:"
96 ]
97 },
98 {
99 "cell_type": "code",
100 "execution_count": null,
101 "metadata": {},
102 "outputs": [],
103 "source": [
104 "%matplotlib inline\n",
105 "from shapely.geometry import Point\n",
106 "from geopandas import datasets, GeoDataFrame, read_file\n",
107 "from geopandas.tools import overlay\n",
108 "\n",
109 "# NYC Boros\n",
110 "zippath = datasets.get_path('nybb')\n",
111 "polydf = read_file(zippath)\n",
112 "\n",
113 "# Generate some points\n",
114 "b = [int(x) for x in polydf.total_bounds]\n",
115 "N = 8\n",
116 "pointdf = GeoDataFrame([\n",
117 " {'geometry': Point(x, y), 'value1': x + y, 'value2': x - y}\n",
118 " for x, y in zip(range(b[0], b[2], int((b[2] - b[0]) / N)),\n",
119 " range(b[1], b[3], int((b[3] - b[1]) / N)))])\n",
120 "\n",
121 "# Make sure they're using the same projection reference\n",
122 "pointdf.crs = polydf.crs"
123 ]
124 },
125 {
126 "cell_type": "code",
127 "execution_count": null,
128 "metadata": {},
129 "outputs": [],
130 "source": [
131 "pointdf"
132 ]
133 },
134 {
135 "cell_type": "code",
136 "execution_count": null,
137 "metadata": {},
138 "outputs": [],
139 "source": [
140 "polydf"
141 ]
142 },
143 {
144 "cell_type": "code",
145 "execution_count": null,
146 "metadata": {},
147 "outputs": [],
148 "source": [
149 "pointdf.plot()"
150 ]
151 },
152 {
153 "cell_type": "code",
154 "execution_count": null,
155 "metadata": {},
156 "outputs": [],
157 "source": [
158 "polydf.plot()"
159 ]
160 },
161 {
162 "cell_type": "markdown",
163 "metadata": {},
164 "source": [
165 "## Joins"
166 ]
167 },
168 {
169 "cell_type": "code",
170 "execution_count": null,
171 "metadata": {},
172 "outputs": [],
173 "source": [
174 "from geopandas.tools import sjoin\n",
175 "join_left_df = sjoin(pointdf, polydf, how=\"left\")\n",
176 "join_left_df\n",
177 "# Note the NaNs where the point did not intersect a boro"
178 ]
179 },
180 {
181 "cell_type": "code",
182 "execution_count": null,
183 "metadata": {},
184 "outputs": [],
185 "source": [
186 "join_right_df = sjoin(pointdf, polydf, how=\"right\")\n",
187 "join_right_df\n",
188 "# Note Staten Island is repeated"
189 ]
190 },
191 {
192 "cell_type": "code",
193 "execution_count": null,
194 "metadata": {},
195 "outputs": [],
196 "source": [
197 "join_inner_df = sjoin(pointdf, polydf, how=\"inner\")\n",
198 "join_inner_df\n",
199 "# Note the lack of NaNs; dropped anything that didn't intersect"
200 ]
201 },
202 {
203 "cell_type": "markdown",
204 "metadata": {},
205 "source": [
206 "We're not limited to using the `intersection` binary predicate. Any of the `Shapely` geometry methods that return a Boolean can be used by specifying the `op` kwarg."
207 ]
208 },
209 {
210 "cell_type": "code",
211 "execution_count": null,
212 "metadata": {},
213 "outputs": [],
214 "source": [
215 "sjoin(pointdf, polydf, how=\"left\", op=\"within\")"
216 ]
217 }
218 ],
219 "metadata": {
220 "kernelspec": {
221 "display_name": "Python 3",
222 "language": "python",
223 "name": "python3"
224 },
225 "language_info": {
226 "codemirror_mode": {
227 "name": "ipython",
228 "version": 3
229 },
230 "file_extension": ".py",
231 "mimetype": "text/x-python",
232 "name": "python",
233 "nbconvert_exporter": "python",
234 "pygments_lexer": "ipython3",
235 "version": "3.7.6"
236 }
237 },
238 "nbformat": 4,
239 "nbformat_minor": 4
240 }
0 Year,Month,Day,TSU,EQ,Name,Location,Country,Latitude,Longitude,Elevation,Type,Status,Time,VEI,Agent,DEATHS,DEATHS_DESCRIPTION,MISSING,MISSING_DESCRIPTION,INJURIES,INJURIES_DESCRIPTION,DAMAGE_MILLIONS_DOLLARS,DAMAGE_DESCRIPTION,HOUSES_DESTROYED,HOUSES_DESTROYED_DESCRIPTION,TOTAL_DEATHS,TOTAL_DEATHS_DESCRIPTION,TOTAL_MISSING,TOTAL_MISSING_DESCRIPTION,TOTAL_INJURIES,TOTAL_INJURIES_DESCRIPTION,TOTAL_DAMAGE_MILLIONS_DOLLARS,TOTAL_DAMAGE_DESCRIPTION,TOTAL_HOUSES_DESTROYED,TOTAL_HOUSES_DESTROYED_DESCRIPTION
1
2 2010,1,,,,Tungurahua,Ecuador,Ecuador,-1.467,-78.442,5023,Stratovolcano,Historical,D1,3,,,,,,,,,1,,,,,,,,,,1,,
3 2010,3,31,,,Eyjafjallajokull,Iceland-S,Iceland,63.63,-19.62,1666,Stratovolcano,Historical,D1,2,,2,1,,,,,,,,,2,1,,,,,,,,
4 2010,5,27,,,Pacaya,Guatemala,Guatemala,14.381,-90.601,2552,Complex volcano,Historical,D1,1,T,1,1,3,1,,,,1,3,1,1,1,3,1,,,,1,3,1
5 2010,5,29,TSU,EQ,Sarigan,Mariana Is-C Pacific,United States,16.708,145.78,538,Stratovolcano,Holocene,U,,,,,,,,,,,,,,,,,,,,,,
6 2010,8,6,,,Karangetang [Api Siau],Sangihe Is-Indonesia,Indonesia,2.78,125.48,1784,Stratovolcano,Historical,D1,3,,4,1,,,5,1,,,,1,4,1,,,5,1,,,,1
7 2010,8,30,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,2,1,,,,,,,,,2,1,,,,,,,,
8 2010,10,26,,,Merapi,Java,Indonesia,-7.542,110.442,2947,Stratovolcano,Historical,D1,,,367,3,,,277,3,600,4,,3,367,3,,,277,3,600,4,,3
9 2010,11,,,,Tungurahua,Ecuador,Ecuador,-1.467,-78.442,5023,Stratovolcano,Historical,D1,3,,,,,,,,,1,,,,,,,,,,1,,
10 2010,12,28,,,Tengger Caldera,Java,Indonesia,-7.942,112.95,2329,Stratovolcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,,,
11 2011,1,3,,,Merapi,Java,Indonesia,-7.542,110.442,2947,Stratovolcano,Historical,D1,,M,1,1,,,1,1,,1,,,1,1,,,1,1,,1,,
12 2011,1,28,,,Kirishima,Kyushu-Japan,Japan,31.93,130.87,1700,Shield volcano,Historical,D1,,,,,,,,1,,1,,,,,,,,1,,1,,
13 2011,2,23,,,Bulusan,Luzon-Philippines,Philippines,12.77,124.05,1565,Stratovolcano,Historical,D1,2,,1,1,,,,,,,,,1,1,,,,,,,,
14 2011,3,18,,,Karangetang [Api Siau],Sangihe Is-Indonesia,Indonesia,2.78,125.48,1784,Stratovolcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,1,,
15 2011,4,,,,Tungurahua,Ecuador,Ecuador,-1.467,-78.442,5023,Stratovolcano,Historical,D1,4,,,,,,,,,1,,,,,,,,,,1,,
16 2011,6,4,,,Puyehue,Chile-C,Chile,-40.59,-72.117,2236,Stratovolcano,Holocene,U,4,,,,,,,,,2,,,,,,,,,,2,,
17 2011,6,22,,,Nabro,Africa-NE,Eritrea,13.37,41.7,2218,Stratovolcano,Holocene,Unknown,3,,31,1,,,,3,,1,,,31,1,,,,3,,1,,
18 2011,7,9,,,Katla,Iceland-S,Iceland,63.63,-19.05,1512,Subglacial volcano,Historical,D2,,,,,,,,,,1,,,,,,,,,,1,,
19 2011,7,17,,,Lokon-Empung,Sulawesi-Indonesia,Indonesia,1.358,124.792,1580,Stratovolcano,Historical,D1,,,1,1,,,,,,,,,1,1,,,,,,,,
20 2011,12,27,,,Gamalama,Halmahera-Indonesia,Indonesia,.8,127.325,1715,Stratovolcano,Historical,D1,3,m,4,1,,,,1,,,,,4,1,,,,1,,,,
21 2012,2,10,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,,,,,,,,,,2,,,,,,,,,,2,,
22 2012,3,2,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,,L,,,,,,,,1,1,1,,,,,,,,,,
23 2012,12,12,,,Tolbachik,Kamchatka,Russia,55.83,160.33,3682,Shield volcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,1,,
24 2013,2,12,,,Merapi,Java,Indonesia,-7.542,110.442,2947,Stratovolcano,Historical,D1,,M,1,1,,,1,1,,1,,,1,1,,,1,1,,1,,
25 2013,2,,,,Paluweh,Lesser Sunda Is,Indonesia,-8.32,121.708,875,Stratovolcano,Historical,D1,,,,,,,,,,1,,1,,,,,,,,1,,1
26 2013,5,7,,,Mayon,Luzon-Philippines,Philippines,13.257,123.685,2462,Stratovolcano,Historical,D1,,,5,1,,,8,1,,,,,5,1,,,8,1,,,,
27 2013,8,10,,,Paluweh,Lesser Sunda Is,Indonesia,-8.32,121.708,875,Stratovolcano,Historical,D1,3,,5,1,,,,,,,,,5,1,,,,,,,,
28 2013,9,1,,,Ubinas,Peru,Peru,-16.355,-70.903,5672,Stratovolcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,1,,
29 2013,9,4,,,Sakura-jima,Kyushu-Japan,Japan,31.58,130.67,1117,Stratovolcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,1,,
30 2013,9,15,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,2,,,,,,,,,2,,,,,,,,,,2,,
31 2013,12,13,,,Okataina,New Zealand,New Zealand,-38.12,176.5,1111,Lava dome,Historical,D1,,G,1,1,,,,,,,,,1,1,,,,,,,,
32 2014,2,1,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,17,1,,,3,1,,1,,2,17,1,,,3,1,,1,,2
33 2014,2,13,,,Kelut,Java,Indonesia,-7.93,112.308,1731,Stratovolcano,Historical,D1,,,7,1,,,,,,3,4098,4,7,1,,,,,,3,4098,4
34 2014,9,27,,,On-take,Honshu-Japan,Japan,35.9,137.48,3063,Complex volcano,Historical,D1,3,,55,2,,,70,2,,,,,55,2,,,70,2,,,,
35 2014,11,10,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,,,,,,,,,14.5,3,1,1,,,,,,,14.5,3,1,1
36 2014,11,23,,,Fogo,Cape Verde Is,Cape Verde,14.95,-24.35,2829,Stratovolcano,Historical,D1,,,,,,,,,,2,230,3,,,,,,,,2,230,3
37 2014,12,18,,,Gamalama,Halmahera-Indonesia,Indonesia,.8,127.325,1715,Stratovolcano,Historical,D1,,,1,1,,,4,1,,,,,1,1,,,4,1,,,,
38 2015,2,20,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,,,,,,,,1,,1,,,,,,,,1,,1
39 2015,4,22,,,Calbuco,Chile-S,Chile,-41.326,-72.614,2003,Stratovolcano,Historical,D2,,,,,,,,,,2,,2,,,,,,,,2,,2
40 2015,5,7,,,Karangetang [Api Siau],Sangihe Is-Indonesia,Indonesia,2.78,125.48,1784,Stratovolcano,Historical,D1,,,,,,,,,,1,,1,,,,,,,,1,,1
41 2015,7,31,,,Manam,New Guinea-NE of,Papua New Guinea,-4.1,145.061,1807,Stratovolcano,Historical,D1,2,,,,,,2,1,,1,,,,,,,2,1,,1,,
42 2015,10,16,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,M,1,1,,,,,,1,,,1,1,,,,,,1,,
43 2015,10,,,,Okataina,New Zealand,New Zealand,-38.12,176.5,1111,Lava dome,Historical,D1,,I,1,1,,,,,,,,,1,1,,,,,,,,
44 2016,5,9,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,1,1,,,4,1,,1,3,1,1,1,,,4,1,,1,,
45 2016,5,21,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,7,1,,,3,1,100,4,,,7,1,,,3,1,100,4,,
46 2016,6,9,,,Yellowstone,US-Wyoming,United States,44.43,-110.67,2805,Caldera,Tephrochronology,D7,,,1,1,,,,,,,,,1,1,,,,,,,,
47 2016,9,27,,,Rinjani,Lesser Sunda Is,Indonesia,-8.42,116.47,3726,Stratovolcano,Historical,D1,,,,,44,1,,,,,,,,,44,1,,,,,,
48 2016,10,8,,,Aso,Kyushu-Japan,Japan,32.88,131.1,1592,Caldera,Historical,D1,,T,,,,,,,,1,,,,,,,,,,1,,
49 2017,3,15,,,Etna,Italy,Italy,37.734,15.004,3350,Stratovolcano,Historical,D1,,P,,,,,10,1,,,,,,,,,10,1,,,,
50 2017,4,13,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,2,P,,,,,,,,1,,2,,,,,,,,1,,2
51 2017,6,6,,,Fuego,Guatemala,Guatemala,14.473,-90.88,3763,Stratovolcano,Historical,D1,2,P,,,,,,,,2,,,,,,,,,,2,,
52 2017,7,1,,,Dieng Volc Complex,Java,Indonesia,-7.2,109.92,2565,Complex volcano,Historical,D1,,,8,1,,,11,1,,,,,8,1,,,11,1,,,,
53 2017,9,12,,,Campi Flegrei,Italy,Italy,40.827,14.139,458,Caldera,Historical,D5,,,3,1,,,,,,,,,3,1,,,,,,,,
54 2017,9,23,,,Aoba,Vanuatu-SW Pacific,Vanuatu,-15.4,167.83,1496,Shield volcano,Historical,D1,,T,,,,,,,,1,,,,,,,,,,1,,
55 2017,12,18,,,Merapi,Java,Indonesia,-7.542,110.442,2947,Stratovolcano,Historical,D1,,A,8,1,,,8,1,,,,,8,1,,,8,1,,,,
56 2017,12,27,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,T,,,,,,,,2,,,,,,,,,,2,,
57 2018,1,5,,,Kadovar,New Guinea-NE of,Papua New Guinea,-3.62,144.62,365,Stratovolcano,Holocene,U,,T,,,,,,,,1,,,,,,,,,,1,,
58 2018,1,13,,,Mayon,Luzon-Philippines,Philippines,13.257,123.685,2462,Stratovolcano,Historical,D1,,"T,P",,,,,1972,4,3.72,2,,,,,,,1972,4,3.72,2,,
59 2018,1,23,,,Kusatsu-Shirane,Honshu-Japan,Japan,36.62,138.55,2176,Stratovolcano,Historical,D1,,T,1,1,,,11,1,,1,,,1,1,,,11,1,,1,,
60 2018,2,1,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,1,G,1,1,,,3,1,,,,,1,1,,,3,1,,,,
61 2018,2,9,TSU,,Kadovar,New Guinea-NE of,Papua New Guinea,-3.62,144.62,365,Stratovolcano,Holocene,U,,W,,,,,,,,,,,,,,,,,,,,
62 2018,3,21,,,Ijen,Java,Indonesia,-8.058,114.242,2799,Stratovolcano,Historical,D1,,G,,,,,30,1,,,,,,,,,30,1,,,,
63 2018,4,28,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,1,L,,,,,,,,1,2,1,,,,,,,,1,2,1
64 2018,4,,,,Aoba,Vanuatu-SW Pacific,Vanuatu,-15.4,167.83,1496,Shield volcano,Historical,D1,3,"T,G",4,1,,,,,,1,,1,4,1,,,,,,1,,1
+0
-59
doc/source/geocoding.rst less more
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 Geocoding
9 ==========
10
11 ``geopandas`` supports geocoding (i.e., converting place names to
12 location on Earth) through `geopy`_, an optional dependency of ``geopandas``.
13 The following example shows how to get the
14 locations of boroughs in New York City, and plots those locations along
15 with the detailed borough boundary file included within ``geopandas``.
16
17 .. _geopy: http://geopy.readthedocs.io/
18
19 .. ipython:: python
20
21 boros = geopandas.read_file(geopandas.datasets.get_path("nybb"))
22 boros.BoroName
23 boro_locations = geopandas.tools.geocode(boros.BoroName)
24 boro_locations
25
26 import matplotlib.pyplot as plt
27 fig, ax = plt.subplots()
28
29 boros.to_crs("EPSG:4326").plot(ax=ax, color="white", edgecolor="black");
30 @savefig boro_centers_over_bounds.png
31 boro_locations.plot(ax=ax, color="red");
32
33
34 By default, the ``geocode`` function uses the
35 `GeoCode.Farm geocoding API <https://geocode.farm/>`__ with a rate limitation
36 applied. But a different geocoding service can be specified with the
37 ``provider`` keyword.
38
39 The argument to ``provider`` can either be a string referencing geocoding
40 services, such as ``'google'``, ``'bing'``, ``'yahoo'``, and
41 ``'openmapquest'``, or an instance of a ``Geocoder`` from ``geopy``. See
42 ``geopy.geocoders.SERVICE_TO_GEOCODER`` for the full list.
43 For many providers, parameters such as API keys need to be passed as
44 ``**kwargs`` in the ``geocode`` call.
45
46 For example, to use the OpenStreetMap Nominatim geocoder, you need to specify
47 a user agent:
48
49 .. code-block:: python
50
51 geopandas.tools.geocode(boros.BoroName, provider='nominatim', user_agent="my-application")
52
53 .. attention::
54
55 Please consult the Terms of Service for the chosen provider. The example
56 above uses ``'geocodefarm'`` (the default), for which free users are
57 limited to 250 calls per day and 4 requests per second
58 (`geocodefarm ToS <https://geocode.farm/geocoding/free-api-documentation/>`_).
+0
-233
doc/source/geometric_manipulations.rst less more
0 .. _geometric_manipulations:
1
2 Geometric Manipulations
3 ========================
4
5 *geopandas* makes available all the tools for geometric manipulations in the `*shapely* library <http://shapely.readthedocs.io/en/latest/manual.html>`_.
6
7 Note that documentation for all set-theoretic tools for creating new shapes using the relationship between two different spatial datasets -- like creating intersections, or differences -- can be found on the :doc:`set operations <set_operations>` page.
8
9 Constructive Methods
10 ~~~~~~~~~~~~~~~~~~~~
11
12 .. method:: GeoSeries.buffer(distance, resolution=16)
13
14 Returns a ``GeoSeries`` of geometries representing all points within a given `distance`
15 of each geometric object.
16
17 .. attribute:: GeoSeries.boundary
18
19 Returns a ``GeoSeries`` of lower dimensional objects representing
20 each geometries's set-theoretic `boundary`.
21
22 .. attribute:: GeoSeries.centroid
23
24 Returns a ``GeoSeries`` of points for each geometric centroid.
25
26 .. attribute:: GeoSeries.convex_hull
27
28 Returns a ``GeoSeries`` of geometries representing the smallest
29 convex `Polygon` containing all the points in each object unless the
30 number of points in the object is less than three. For two points,
31 the convex hull collapses to a `LineString`; for 1, a `Point`.
32
33 .. attribute:: GeoSeries.envelope
34
35 Returns a ``GeoSeries`` of geometries representing the point or
36 smallest rectangular polygon (with sides parallel to the coordinate
37 axes) that contains each object.
38
39 .. method:: GeoSeries.simplify(tolerance, preserve_topology=True)
40
41 Returns a ``GeoSeries`` containing a simplified representation of
42 each object.
43
44 .. attribute:: GeoSeries.unary_union
45
46 Return a geometry containing the union of all geometries in the ``GeoSeries``.
47
48
49 Affine transformations
50 ~~~~~~~~~~~~~~~~~~~~~~~~
51
52 .. method:: GeoSeries.affine_transform(self, matrix)
53
54 Transform the geometries of the GeoSeries using an affine transformation matrix
55
56 .. method:: GeoSeries.rotate(self, angle, origin='center', use_radians=False)
57
58 Rotate the coordinates of the GeoSeries.
59
60 .. method:: GeoSeries.scale(self, xfact=1.0, yfact=1.0, zfact=1.0, origin='center')
61
62 Scale the geometries of the GeoSeries along each (x, y, z) dimensio.
63
64 .. method:: GeoSeries.skew(self, angle, origin='center', use_radians=False)
65
66 Shear/Skew the geometries of the GeoSeries by angles along x and y dimensions.
67
68 .. method:: GeoSeries.translate(self, xoff=0.0, yoff=0.0, zoff=0.0)
69
70 Shift the coordinates of the GeoSeries.
71
72
73
74 Examples of Geometric Manipulations
75 ------------------------------------
76
77 .. sourcecode:: python
78
79 >>> import geopandas
80 >>> from geopandas import GeoSeries
81 >>> from shapely.geometry import Polygon
82 >>> p1 = Polygon([(0, 0), (1, 0), (1, 1)])
83 >>> p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
84 >>> p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
85 >>> g = GeoSeries([p1, p2, p3])
86 >>> g
87 0 POLYGON ((0 0, 1 0, 1 1, 0 0))
88 1 POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))
89 2 POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0))
90 dtype: geometry
91
92 .. image:: _static/test.png
93
94 Some geographic operations return normal pandas object. The ``area`` property of a ``GeoSeries`` will return a ``pandas.Series`` containing the area of each item in the ``GeoSeries``:
95
96 .. sourcecode:: python
97
98 >>> print(g.area)
99 0 0.5
100 1 1.0
101 2 1.0
102 dtype: float64
103
104 Other operations return GeoPandas objects:
105
106 .. sourcecode:: python
107
108 >>> g.buffer(0.5)
109 0 POLYGON ((-0.3535533905932737 0.35355339059327...
110 1 POLYGON ((-0.5 0, -0.5 1, -0.4975923633360985 ...
111 2 POLYGON ((1.5 0, 1.5 1, 1.502407636663901 1.04...
112 dtype: geometry
113
114 .. image:: _static/test_buffer.png
115
116 GeoPandas objects also know how to plot themselves. GeoPandas uses `descartes`_ to generate a `matplotlib`_ plot. To generate a plot of our GeoSeries, use:
117
118 .. sourcecode:: python
119
120 >>> g.plot()
121
122 GeoPandas also implements alternate constructors that can read any data format recognized by `fiona`_. To read a zip file containing an ESRI shapefile with the `borough boundaries of New York City`_ (GeoPandas includes this as an example dataset):
123
124 .. sourcecode:: python
125
126 >>> nybb_path = geopandas.datasets.get_path('nybb')
127 >>> boros = geopandas.read_file(nybb_path)
128 >>> boros.set_index('BoroCode', inplace=True)
129 >>> boros.sort_index(inplace=True)
130 >>> boros
131 BoroName Shape_Leng Shape_Area \
132 BoroCode
133 1 Manhattan 359299.096471 6.364715e+08
134 2 Bronx 464392.991824 1.186925e+09
135 3 Brooklyn 741080.523166 1.937479e+09
136 4 Queens 896344.047763 3.045213e+09
137 5 Staten Island 330470.010332 1.623820e+09
138
139 geometry
140 BoroCode
141 1 MULTIPOLYGON (((981219.0557861328 188655.31579...
142 2 MULTIPOLYGON (((1012821.805786133 229228.26458...
143 3 MULTIPOLYGON (((1021176.479003906 151374.79699...
144 4 MULTIPOLYGON (((1029606.076599121 156073.81420...
145 5 MULTIPOLYGON (((970217.0223999023 145643.33221...
146
147 .. image:: _static/nyc.png
148
149 .. sourcecode:: python
150
151 >>> boros['geometry'].convex_hull
152 BoroCode
153 1 POLYGON ((977855.4451904297 188082.3223876953,...
154 2 POLYGON ((1017949.977600098 225426.8845825195,...
155 3 POLYGON ((988872.8212280273 146772.0317993164,...
156 4 POLYGON ((1000721.531799316 136681.776184082, ...
157 5 POLYGON ((915517.6877458114 120121.8812543372,...
158 dtype: geometry
159
160 .. image:: _static/nyc_hull.png
161
162 To demonstrate a more complex operation, we'll generate a
163 ``GeoSeries`` containing 2000 random points:
164
165 .. sourcecode:: python
166
167 >>> import numpy as np
168 >>> from shapely.geometry import Point
169 >>> xmin, xmax, ymin, ymax = 900000, 1080000, 120000, 280000
170 >>> xc = (xmax - xmin) * np.random.random(2000) + xmin
171 >>> yc = (ymax - ymin) * np.random.random(2000) + ymin
172 >>> pts = GeoSeries([Point(x, y) for x, y in zip(xc, yc)])
173
174 Now draw a circle with fixed radius around each point:
175
176 .. sourcecode:: python
177
178 >>> circles = pts.buffer(2000)
179
180 We can collapse these circles into a single shapely MultiPolygon
181 geometry with
182
183 .. sourcecode:: python
184
185 >>> mp = circles.unary_union
186
187 To extract the part of this geometry contained in each borough, we can
188 just use:
189
190 .. sourcecode:: python
191
192 >>> holes = boros['geometry'].intersection(mp)
193
194 .. image:: _static/holes.png
195
196 and to get the area outside of the holes:
197
198 .. sourcecode:: python
199
200 >>> boros_with_holes = boros['geometry'].difference(mp)
201
202 .. image:: _static/boros_with_holes.png
203
204 Note that this can be simplified a bit, since ``geometry`` is
205 available as an attribute on a ``GeoDataFrame``, and the
206 ``intersection`` and ``difference`` methods are implemented with the
207 "&" and "-" operators, respectively. For example, the latter could
208 have been expressed simply as ``boros.geometry - mp``.
209
210 It's easy to do things like calculate the fractional area in each
211 borough that are in the holes:
212
213 .. sourcecode:: python
214
215 >>> holes.area / boros.geometry.area
216 BoroCode
217 1 0.579939
218 2 0.586833
219 3 0.608174
220 4 0.582172
221 5 0.558075
222 dtype: float64
223
224 .. _Descartes: https://pypi.python.org/pypi/descartes
225 .. _matplotlib: http://matplotlib.org
226 .. _fiona: http://fiona.readthedocs.io/en/latest/
227 .. _geopy: https://github.com/geopy/geopy
228 .. _geo_interface: https://gist.github.com/sgillies/2217756
229 .. _borough boundaries of New York City: https://data.cityofnewyork.us/City-Government/Borough-Boundaries/tqmj-j8zm
230
231 .. toctree::
232 :maxdepth: 2
0 Installation
1 ============
2
3 GeoPandas depends for its spatial functionality on a large geospatial, open
4 source stack of libraries (`GEOS`_, `GDAL`_, `PROJ`_). See the
5 :ref:`dependencies` section below for more details. Those base C
6 libraries can sometimes be a challenge to install. Therefore, we advise you
7 to closely follow the recommendations below to avoid installation problems.
8
9 .. _install-conda:
10
11 Installing with Anaconda / conda
12 --------------------------------
13
14 To install GeoPandas and all its dependencies, we recommend to use the `conda`_
15 package manager. This can be obtained by installing the
16 `Anaconda Distribution`_ (a free Python distribution for data science), or
17 through `miniconda`_ (minimal distribution only containing Python and the
18 `conda`_ package manager). See also the `installation docs
19 <https://conda.io/docs/user-guide/install/download.html>`__ for more information
20 on how to install Anaconda or miniconda locally.
21
22 The advantage of using the `conda`_ package manager is that it provides
23 pre-built binaries for all the required and optional dependencies of GeoPandas
24 for all platforms (Windows, Mac, Linux).
25
26 To install the latest version of GeoPandas, you can then do::
27
28 conda install geopandas
29
30
31 Using the conda-forge channel
32 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
33
34 `conda-forge`_ is a community effort that provides conda packages for a wide
35 range of software. It provides the *conda-forge* package channel for conda from
36 which packages can be installed, in addition to the "*defaults*" channel
37 provided by Anaconda.
38 Depending on what other packages you are working with, the *defaults* channel
39 or *conda-forge* channel may be better for your needs (e.g. some packages are
40 available on *conda-forge* and not on *defaults*).
41
42 GeoPandas and all its dependencies are available on the *conda-forge*
43 channel, and can be installed as::
44
45 conda install --channel conda-forge geopandas
46
47 .. note::
48
49 We strongly recommend to either install everything from the *defaults*
50 channel, or everything from the *conda-forge* channel. Ending up with a
51 mixture of packages from both channels for the dependencies of GeoPandas
52 can lead to import problems.
53 See the `conda-forge section on using multiple channels
54 <http://conda-forge.org/docs/user/tipsandtricks.html#using-multiple-channels>`__
55 for more details.
56
57
58 Creating a new environment
59 ^^^^^^^^^^^^^^^^^^^^^^^^^^
60
61 Creating a new environment is not strictly necessary, but given that installing
62 other geospatial packages from different channels may cause dependency conflicts
63 (as mentioned in the note above), it can be good practice to install the geospatial
64 stack in a clean environment starting fresh.
65
66 The following commands create a new environment with the name ``geo_env``,
67 configures it to install packages always from conda-forge, and installs
68 GeoPandas in it::
69
70 conda create -n geo_env
71 conda activate geo_env
72 conda config --env --add channels conda-forge
73 conda config --env --set channel_priority strict
74 conda install python=3 geopandas
75
76
77 .. _install-pip:
78
79 Installing with pip
80 -------------------
81
82 GeoPandas can also be installed with pip, if all dependencies can be installed
83 as well::
84
85 pip install geopandas
86
87 .. _install-deps:
88
89 .. warning::
90
91 When using pip to install GeoPandas, you need to make sure that all dependencies are
92 installed correctly.
93
94 - `fiona`_ provides binary wheels with the dependencies included for Mac and Linux,
95 but not for Windows.
96 - `pyproj`_, `rtree`_, and `shapely`_ provide binary wheels with dependencies included
97 for Mac, Linux, and Windows.
98 - Windows wheels for `shapely`, `fiona`, `pyproj` and `rtree`
99 can be found at `Christopher Gohlke's website
100 <https://www.lfd.uci.edu/~gohlke/pythonlibs/>`_.
101
102 Depending on your platform, you might need to compile and install their
103 C dependencies manually. We refer to the individual packages for more
104 details on installing those.
105 Using conda (see above) avoids the need to compile the dependencies yourself.
106
107 Installing from source
108 ----------------------
109
110 You may install the latest development version by cloning the
111 `GitHub` repository and using pip to install from the local directory::
112
113 git clone https://github.com/geopandas/geopandas.git
114 cd geopandas
115 pip install .
116
117 It is also possible to install the latest development version
118 directly from the GitHub repository with::
119
120 pip install git+git://github.com/geopandas/geopandas.git
121
122 For installing GeoPandas from source, the same :ref:`note <install-deps>` on
123 the need to have all dependencies correctly installed applies. But, those
124 dependencies can also be installed independently with conda before installing
125 GeoPandas from source::
126
127 conda install pandas fiona shapely pyproj rtree
128
129 See the :ref:`section on conda <install-conda>` above for more details on
130 getting running with Anaconda.
131
132 .. _dependencies:
133
134 Dependencies
135 ------------
136
137 Required dependencies:
138
139 - `numpy`_
140 - `pandas`_ (version 0.24 or later)
141 - `shapely`_ (interface to `GEOS`_)
142 - `fiona`_ (interface to `GDAL`_)
143 - `pyproj`_ (interface to `PROJ`_; version 2.2.0 or later)
144
145 Further, optional dependencies are:
146
147 - `rtree`_ (optional; spatial index to improve performance and required for
148 overlay operations; interface to `libspatialindex`_)
149 - `psycopg2`_ (optional; for PostGIS connection)
150 - `GeoAlchemy2`_ (optional; for writing to PostGIS)
151 - `geopy`_ (optional; for geocoding)
152
153
154 For plotting, these additional packages may be used:
155
156 - `matplotlib`_ (>= 2.2.0)
157 - `mapclassify`_ (>= 2.2.0)
158
159
160 Using the optional PyGEOS dependency
161 ------------------------------------
162
163 Work is ongoing to improve the performance of GeoPandas. Currently, the
164 fast implementations of basic spatial operations live in the `PyGEOS`_
165 package (but work is under way to contribute those improvements to Shapely).
166 Starting with GeoPandas 0.8, it is possible to optionally use those
167 experimental speedups by installing PyGEOS. This can be done with conda
168 (using the conda-forge channel) or pip::
169
170 # conda
171 conda install pygeos --channel conda-forge
172 # pip
173 pip install pygeos
174
175 More specifically, whether the speedups are used or not is determined by:
176
177 - If PyGEOS >= 0.8 is installed, it will be used by default (but installing
178 GeoPandas will not yet automatically install PyGEOS as dependency, you need
179 to do this manually).
180
181 - You can still toggle the use of PyGEOS when it is available, by:
182
183 - Setting an environment variable (``USE_PYGEOS=0/1``). Note this variable
184 is only checked at first import of GeoPandas.
185 - Setting an option: ``geopandas.options.use_pygeos = True/False``. Note,
186 although this variable can be set during an interactive session, it will
187 only work if the GeoDataFrames you use are created (e.g. reading a file
188 with ``read_file``) after changing this value.
189
190 .. warning::
191
192 The use of PyGEOS is experimental! Although it is passing all tests,
193 there might still be issues and not all functions of GeoPandas will
194 already benefit from speedups (one known issue: the `to_crs` coordinate
195 transformations lose the z coordinate). But trying this out is very welcome!
196 Any issues you encounter (but also reports of successful usage are
197 interesting!) can be reported at https://gitter.im/geopandas/geopandas
198 or https://github.com/geopandas/geopandas/issues
199
200
201 .. _PyPI: https://pypi.python.org/pypi/geopandas
202
203 .. _GitHub: https://github.com/geopandas/geopandas
204
205 .. _numpy: http://www.numpy.org
206
207 .. _pandas: http://pandas.pydata.org
208
209 .. _shapely: https://shapely.readthedocs.io
210
211 .. _fiona: https://fiona.readthedocs.io
212
213 .. _matplotlib: http://matplotlib.org
214
215 .. _geopy: https://github.com/geopy/geopy
216
217 .. _psycopg2: https://pypi.python.org/pypi/psycopg2
218
219 .. _GeoAlchemy2: https://geoalchemy-2.readthedocs.io/
220
221 .. _mapclassify: http://pysal.org/mapclassify
222
223 .. _pyproj: https://github.com/pyproj4/pyproj
224
225 .. _rtree: https://github.com/Toblerity/rtree
226
227 .. _libspatialindex: https://github.com/libspatialindex/libspatialindex
228
229 .. _conda: https://conda.io/en/latest/
230
231 .. _Anaconda distribution: https://www.anaconda.com/distribution/
232
233 .. _miniconda: https://docs.conda.io/en/latest/miniconda.html
234
235 .. _conda-forge: https://conda-forge.org/
236
237 .. _GDAL: https://www.gdal.org/
238
239 .. _GEOS: https://geos.osgeo.org
240
241 .. _PROJ: https://proj.org/
242
243 .. _PyGEOS: https://github.com/pygeos/pygeos/
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Introduction to GeoPandas\n",
7 "\n",
8 "This quick tutorial provides an introduction to the key concepts of GeoPandas. In a few minutes, we'll describe the basics which allow you to start your projects.\n",
9 "\n",
10 "## Concepts\n",
11 "\n",
12 "GeoPandas, as the name suggests, extends popular data science library [pandas](https://pandas.pydata.org) by adding support for geospatial data. If you are not familiar with `pandas`, we recommend taking a quick look at its [Getting started documentation](https://pandas.pydata.org/docs/getting_started/index.html#getting-started) before proceeding.\n",
13 "\n",
14 "The core data structure in GeoPandas is `geopandas.GeoDataFrame`, a subclass of `pandas.DataFrame` able to store geometry columns and perform spatial operations. Geometries are handled by `geopandas.GeoSeries`, a subclass of `pandas.Series`. Therefore, your `GeoDataFrame` is a combination of `Series` with your data (numerical, boolean, text etc.) and `GeoSeries` with geometries (points, polygons etc.). You can have as many columns with geometries as you wish, there's no limit typical for desktop GIS software.\n",
15 "\n",
16 "![geodataframe schema](../_static/dataframe.svg)\n",
17 "\n",
18 "Each `GeoSeries` can contain any geometry type (we can even mix them within a single array) and has a `GeoSeries.crs` attribute, which stores information on the projection (CRS stands for Coordinate Reference System). Therefore, each `GeoSeries` in a `GeoDataFrame` can be in a different projection, allowing you to have, for example, multiple versions of the same geometry, just in a different CRS.\n",
19 "\n",
20 "One `GeoSeries` within a `GeoDataFrame` is seen as the _active_ geometry, which means that all geometric operations applied to a `GeoDataFrame` use the specified column.\n",
21 "\n",
22 "\n",
23 "<div class=\"alert alert-info\">\n",
24 "User Guide\n",
25 " \n",
26 "See more on [data structures in the User Guide](../docs/user_guide/data_structures.rst).\n",
27 "</div>\n",
28 "\n",
29 "\n",
30 "Let's see how this works in practice.\n",
31 "\n",
32 "## Reading and writing files\n",
33 "\n",
34 "First, we need to read some data.\n",
35 "\n",
36 "### Read files\n",
37 "\n",
38 "Assuming we have a file containing both data and geometry (e.g. GeoPackage, GeoJSON, Shapefile), we can easily read it using `geopandas.read_file` function, which automatically detects filetype and creates a `GeoDataFrame`. In this example, we'll use the `\"nybb\"` dataset, a map of New York boroughs which is part of GeoPandas installation. Therefore we need to get the path to the actual file. With your file, you specify a path as a string (`\"my_data/my_file.geojson\"`)."
39 ]
40 },
41 {
42 "cell_type": "code",
43 "execution_count": null,
44 "metadata": {},
45 "outputs": [],
46 "source": [
47 "import geopandas\n",
48 "\n",
49 "path_to_data = geopandas.datasets.get_path(\"nybb\")\n",
50 "gdf = geopandas.read_file(path_to_data)\n",
51 "\n",
52 "gdf"
53 ]
54 },
55 {
56 "cell_type": "markdown",
57 "metadata": {},
58 "source": [
59 "### Write files\n",
60 "\n",
61 "Writing a `GeoDataFrame` back to file is similarly simple, using `GeoDataFrame.to_file`. The default file format is Shapefile, but you can specify your own using `driver` keyword."
62 ]
63 },
64 {
65 "cell_type": "code",
66 "execution_count": null,
67 "metadata": {},
68 "outputs": [],
69 "source": [
70 "gdf.to_file(\"my_file.geojson\", driver=\"GeoJSON\")"
71 ]
72 },
73 {
74 "cell_type": "markdown",
75 "metadata": {},
76 "source": [
77 "<div class=\"alert alert-info\">\n",
78 "User Guide\n",
79 " \n",
80 "See more on [reading and writing data in the User Guide](../docs/user_guide/io.rst).\n",
81 "</div>\n",
82 "\n",
83 "\n",
84 "\n",
85 "## Simple methods\n",
86 "\n",
87 "Now we have our `GeoDataFrame` and can start working with its geometry. \n",
88 "\n",
89 "Since we have only one geometry column read from the file, it is automatically seen as the active geometry and methods used on `GeoDataFrame` will be applied to the `\"geometry\"` column.\n",
90 "\n",
91 "### Measuring area\n",
92 "\n",
93 "To measure the area of each polygon (or MultiPolygon in this specific case), we can use `GeoDataFrame.area` attribute, which returns a `pandas.Series`. Note that `GeoDataFrame.area` is just `GeoSeries.area` applied to an active geometry column.\n",
94 "\n",
95 "But first, we set the names of boroughs as an index, to make the results easier to read."
96 ]
97 },
98 {
99 "cell_type": "code",
100 "execution_count": null,
101 "metadata": {},
102 "outputs": [],
103 "source": [
104 "gdf = gdf.set_index(\"BoroName\")"
105 ]
106 },
107 {
108 "cell_type": "code",
109 "execution_count": null,
110 "metadata": {},
111 "outputs": [],
112 "source": [
113 "gdf[\"area\"] = gdf.area\n",
114 "gdf[\"area\"]"
115 ]
116 },
117 {
118 "cell_type": "markdown",
119 "metadata": {},
120 "source": [
121 "### Getting polygon boundary and centroid\n",
122 "\n",
123 "To get just the boundary of each polygon (LineString), we can call `GeoDataFrame.boundary`."
124 ]
125 },
126 {
127 "cell_type": "code",
128 "execution_count": null,
129 "metadata": {},
130 "outputs": [],
131 "source": [
132 "gdf['boundary'] = gdf.boundary\n",
133 "gdf['boundary']"
134 ]
135 },
136 {
137 "cell_type": "markdown",
138 "metadata": {},
139 "source": [
140 "Since we have saved boundary as a new column, we now have two geometry columns in the same `GeoDataFrame`.\n",
141 "\n",
142 "We can also create new geometries, which could be, for example, a buffered version of the original one (i.e., `GeoDataFrame.buffer(10)`) or its centroid:"
143 ]
144 },
145 {
146 "cell_type": "code",
147 "execution_count": null,
148 "metadata": {},
149 "outputs": [],
150 "source": [
151 "gdf['centroid'] = gdf.centroid\n",
152 "gdf['centroid']"
153 ]
154 },
155 {
156 "cell_type": "markdown",
157 "metadata": {},
158 "source": [
159 "### Measuring distance\n",
160 "\n",
161 "We can also measure how far is each centroid from the first one."
162 ]
163 },
164 {
165 "cell_type": "code",
166 "execution_count": null,
167 "metadata": {},
168 "outputs": [],
169 "source": [
170 "first_point = gdf['centroid'].iloc[0]\n",
171 "gdf['distance'] = gdf['centroid'].distance(first_point)\n",
172 "gdf['distance']"
173 ]
174 },
175 {
176 "cell_type": "markdown",
177 "metadata": {},
178 "source": [
179 "It's still a DataFrame, so we have all the pandas functionality available to use on the geospatial dataset, and to do data manipulations with the attributes and geometry information together.\n",
180 "\n",
181 "For example, we can calculate average of the distance measured above (by accessing the `'distance'` column, and calling the `mean()` method on it):"
182 ]
183 },
184 {
185 "cell_type": "code",
186 "execution_count": null,
187 "metadata": {},
188 "outputs": [],
189 "source": [
190 "gdf['distance'].mean()"
191 ]
192 },
193 {
194 "cell_type": "markdown",
195 "metadata": {},
196 "source": [
197 "## Making maps\n",
198 "\n",
199 "GeoPandas can also plot maps, so we can check how our geometries look like in space. The key method here is `GeoDataFrame.plot()`. In the example below, we plot the `\"area\"` we measured earlier using the active geometry column. We also want to show a legend (`legend=True`)."
200 ]
201 },
202 {
203 "cell_type": "code",
204 "execution_count": null,
205 "metadata": {},
206 "outputs": [],
207 "source": [
208 "gdf.plot(\"area\", legend=True)"
209 ]
210 },
211 {
212 "cell_type": "markdown",
213 "metadata": {},
214 "source": [
215 "Switching the active geometry (`GeoDataFrame.set_geometry`) to centroids, we can plot the same data using point geometry."
216 ]
217 },
218 {
219 "cell_type": "code",
220 "execution_count": null,
221 "metadata": {},
222 "outputs": [],
223 "source": [
224 "gdf = gdf.set_geometry(\"centroid\")\n",
225 "gdf.plot(\"area\", legend=True)"
226 ]
227 },
228 {
229 "cell_type": "markdown",
230 "metadata": {},
231 "source": [
232 "And we can also layer both `GeoSeries` on top of each other. We just need to use one plot as an axis for the other."
233 ]
234 },
235 {
236 "cell_type": "code",
237 "execution_count": null,
238 "metadata": {},
239 "outputs": [],
240 "source": [
241 "ax = gdf[\"geometry\"].plot()\n",
242 "gdf[\"centroid\"].plot(ax=ax, color=\"black\")"
243 ]
244 },
245 {
246 "cell_type": "markdown",
247 "metadata": {},
248 "source": [
249 "Now we set the active geometry back to the original `GeoSeries`."
250 ]
251 },
252 {
253 "cell_type": "code",
254 "execution_count": null,
255 "metadata": {},
256 "outputs": [],
257 "source": [
258 "gdf = gdf.set_geometry(\"geometry\")"
259 ]
260 },
261 {
262 "cell_type": "markdown",
263 "metadata": {},
264 "source": [
265 "<div class=\"alert alert-info\">\n",
266 "User Guide\n",
267 " \n",
268 "See more on [mapping in the User Guide](../docs/user_guide/mapping.rst).\n",
269 "</div>\n",
270 "\n",
271 "## Geometry creation\n",
272 "\n",
273 "We can further work with the geometry and create new shapes based on those we already have. \n",
274 "\n",
275 "### Convex hull\n",
276 "\n",
277 "If we are interested in the convex hull of our polygons, we can call `GeoDataFrame.convex_hull`."
278 ]
279 },
280 {
281 "cell_type": "code",
282 "execution_count": null,
283 "metadata": {},
284 "outputs": [],
285 "source": [
286 "gdf[\"convex_hull\"] = gdf.convex_hull"
287 ]
288 },
289 {
290 "cell_type": "code",
291 "execution_count": null,
292 "metadata": {},
293 "outputs": [],
294 "source": [
295 "ax = gdf[\"convex_hull\"].plot(alpha=.5) # saving the first plot as an axis and setting alpha (transparency) to 0.5\n",
296 "gdf[\"boundary\"].plot(ax=ax, color=\"white\", linewidth=.5) # passing the first plot and setting linewitdth to 0.5"
297 ]
298 },
299 {
300 "cell_type": "markdown",
301 "metadata": {},
302 "source": [
303 "### Buffer\n",
304 "\n",
305 "In other cases, we may need to buffer the geometry using `GeoDataFrame.buffer()`. Geometry methods are automatically applied to the active geometry, but we can apply them directly to any `GeoSeries` as well. Let's buffer the boroughs and their centroids and plot both on top of each other."
306 ]
307 },
308 {
309 "cell_type": "code",
310 "execution_count": null,
311 "metadata": {},
312 "outputs": [],
313 "source": [
314 "# buffering the active geometry by 10 000 feet (geometry is already in feet)\n",
315 "gdf[\"buffered\"] = gdf.buffer(10000)\n",
316 "\n",
317 "# buffering the centroid geometry by 10 000 feet (geometry is already in feet)\n",
318 "gdf[\"buffered_centroid\"] = gdf[\"centroid\"].buffer(10000)"
319 ]
320 },
321 {
322 "cell_type": "code",
323 "execution_count": null,
324 "metadata": {},
325 "outputs": [],
326 "source": [
327 "ax = gdf[\"buffered\"].plot(alpha=.5) # saving the first plot as an axis and setting alpha (transparency) to 0.5\n",
328 "gdf[\"buffered_centroid\"].plot(ax=ax, color=\"red\", alpha=.5) # passing the first plot as an axis to the second\n",
329 "gdf[\"boundary\"].plot(ax=ax, color=\"white\", linewidth=.5) # passing the first plot and setting linewitdth to 0.5"
330 ]
331 },
332 {
333 "cell_type": "markdown",
334 "metadata": {},
335 "source": [
336 "<div class=\"alert alert-info\">\n",
337 "User Guide\n",
338 " \n",
339 "See more on [geometry creation and manipulation in the User Guide](../docs/user_guide/geometric_manipulations.rst).\n",
340 "</div>\n",
341 "\n",
342 "## Geometry relations\n",
343 "\n",
344 "We can also ask about the spatial relations of different geometries. Using the geometries above, we can check which of the buffered boroughs intersect the original geometry of Brooklyn, i.e., is within 10 000 feet from Brooklyn.\n",
345 "\n",
346 "First, we get a polygon of Brooklyn."
347 ]
348 },
349 {
350 "cell_type": "code",
351 "execution_count": null,
352 "metadata": {},
353 "outputs": [],
354 "source": [
355 "brooklyn = gdf.loc[\"Brooklyn\", \"geometry\"]\n",
356 "brooklyn"
357 ]
358 },
359 {
360 "cell_type": "markdown",
361 "metadata": {},
362 "source": [
363 "The polygon is a [shapely geometry object](https://shapely.readthedocs.io/en/stable/manual.html#geometric-objects), as any other geometry used in GeoPandas."
364 ]
365 },
366 {
367 "cell_type": "code",
368 "execution_count": null,
369 "metadata": {},
370 "outputs": [],
371 "source": [
372 "type(brooklyn)"
373 ]
374 },
375 {
376 "cell_type": "markdown",
377 "metadata": {},
378 "source": [
379 "Then we can check which of the geometries in `gdf[\"buffered\"]` intersects it."
380 ]
381 },
382 {
383 "cell_type": "code",
384 "execution_count": null,
385 "metadata": {},
386 "outputs": [],
387 "source": [
388 "gdf[\"buffered\"].intersects(brooklyn)"
389 ]
390 },
391 {
392 "cell_type": "markdown",
393 "metadata": {},
394 "source": [
395 "Only Bronx (on the north) is more than 10 000 feet away from Brooklyn. All the others are closer and intersect our polygon.\n",
396 "\n",
397 "Alternatively, we can check which buffered centroids are entirely within the original boroughs polygons. In this case, both `GeoSeries` are aligned, and the check is performed for each row."
398 ]
399 },
400 {
401 "cell_type": "code",
402 "execution_count": null,
403 "metadata": {},
404 "outputs": [],
405 "source": [
406 "gdf[\"within\"] = gdf[\"buffered_centroid\"].within(gdf)\n",
407 "gdf[\"within\"]"
408 ]
409 },
410 {
411 "cell_type": "markdown",
412 "metadata": {},
413 "source": [
414 "We can plot the results on the map to confirm the finding."
415 ]
416 },
417 {
418 "cell_type": "code",
419 "execution_count": null,
420 "metadata": {},
421 "outputs": [],
422 "source": [
423 "gdf = gdf.set_geometry(\"buffered_centroid\")\n",
424 "ax = gdf.plot(\"within\", legend=True, categorical=True, legend_kwds={'loc': \"upper left\"}) # using categorical plot and setting the position of the legend\n",
425 "gdf[\"boundary\"].plot(ax=ax, color=\"black\", linewidth=.5) # passing the first plot and setting linewitdth to 0.5"
426 ]
427 },
428 {
429 "cell_type": "markdown",
430 "metadata": {},
431 "source": [
432 "## Projections\n",
433 "\n",
434 "Each `GeoSeries` has the Coordinate Reference System (CRS) accessible as `GeoSeries.crs`. CRS tells GeoPandas where the coordinates of geometries are located on the Earth. In some cases, CRS is geographic, which means that coordinates are in latitude and longitude. In those cases, its CRS is WGS84, with the authority code `EPSG:4326`. Let's see the projection of our NY boroughs `GeoDataFrame`."
435 ]
436 },
437 {
438 "cell_type": "code",
439 "execution_count": null,
440 "metadata": {},
441 "outputs": [],
442 "source": [
443 "gdf.crs"
444 ]
445 },
446 {
447 "cell_type": "markdown",
448 "metadata": {},
449 "source": [
450 "Geometries are in `EPSG:2263` with coordinates in feet. We can easily re-project a `GeoSeries` to another CRS, like `EPSG:4326` using `GeoSeries.to_crs()`."
451 ]
452 },
453 {
454 "cell_type": "code",
455 "execution_count": null,
456 "metadata": {},
457 "outputs": [],
458 "source": [
459 "gdf = gdf.set_geometry(\"geometry\")\n",
460 "boroughs_4326 = gdf.to_crs(\"EPSG:4326\")\n",
461 "boroughs_4326.plot()"
462 ]
463 },
464 {
465 "cell_type": "code",
466 "execution_count": null,
467 "metadata": {},
468 "outputs": [],
469 "source": [
470 "boroughs_4326.crs"
471 ]
472 },
473 {
474 "cell_type": "markdown",
475 "metadata": {},
476 "source": [
477 "Notice the difference in coordinates along the axes of the plot. Where we had 120 000 - 280 000 (feet) before, we have 40.5 - 40.9 (degrees) now. In this case, `boroughs_4326` has a `\"geometry\"` column in WGS84 but all the other (with centroids etc.) remains in the original CRS.\n",
478 "\n",
479 "<div class=\"alert alert-warning\">\n",
480 "Warning\n",
481 " \n",
482 "For operations that rely on distance or area, you always need to use projected CRS (in meters, feet, kilometers etc.) not a geographic one. GeoPandas operations are planar, and degrees reflect the position on a sphere. Therefore the results may not be correct. For example, the result of `gdf.area.sum()` (projected CRS) is 8 429 911 572 ft<sup>2</sup> but the result of `boroughs_4326.area.sum()` (geographic CRS) is 0.083.\n",
483 "</div>\n",
484 "\n",
485 "<div class=\"alert alert-info\">\n",
486 "User Guide\n",
487 " \n",
488 "See more on [projections in the User Guide](../docs/user_guide/projections.rst).\n",
489 "</div>\n",
490 "\n",
491 "## What next?\n",
492 "\n",
493 "With GeoPandas we can do much more that this, from [aggregations](../docs/user_guide/aggregation_with_dissolve.rst), to [spatial joins](../docs/user_guide/mergingdata.rst), [geocoding](../docs/user_guide/geocoding.rst) and [much more](../gallery/index.rst).\n",
494 "\n",
495 "Head to the [User Guide](../docs/user_guide.rst) for to learn more about different functionality of GeoPandas, to the [Examples](../gallery/index.rst) to see how it can be used or the the [API reference](../docs/reference.rst) for the details."
496 ]
497 },
498 {
499 "cell_type": "code",
500 "execution_count": null,
501 "metadata": {},
502 "outputs": [],
503 "source": []
504 }
505 ],
506 "metadata": {
507 "language_info": {
508 "codemirror_mode": {
509 "name": "ipython",
510 "version": 3
511 },
512 "file_extension": ".py",
513 "mimetype": "text/x-python",
514 "name": "python",
515 "nbconvert_exporter": "python",
516 "pygments_lexer": "ipython3",
517 "version": "3.7.6"
518 }
519 },
520 "nbformat": 4,
521 "nbformat_minor": 4
522 }
0 # Getting Started
1
2 ```{toctree}
3 ---
4 maxdepth: 2
5 caption: Getting Started
6 hidden:
7 ---
8
9 Installation <getting_started/install>
10 Introduction to GeoPandas <getting_started/introduction>
11 Examples Gallery <gallery/index>
12 ```
13
14 ## Installation
15
16 GeoPandas is written in pure Python, but has several dependecies written in C
17 ([GEOS](https://geos.osgeo.org), [GDAL](https://www.gdal.org/), [PROJ](https://proj.org/)). Those base C libraries can sometimes be a challenge to
18 install. Therefore, we advise you to closely follow the recommendations below to avoid
19 installation problems.
20
21 ### Easy way
22
23 The best way to install GeoPandas is using ``conda`` and ``conda-forge`` channel:
24
25 ```
26 conda install -c conda-forge geopandas
27 ```
28
29 ### Detailed instructions
30
31 Do you prefer ``pip install`` or installation from source? Or specific version? See
32 {doc}`detailed instructions <getting_started/install>`.
33
34 ### What now?
35
36 - If you don't have GeoPandas yet, check {doc}`Installation <getting_started/install>`.
37 - If you have never used GeoPandas and want to get familiar with it and its core
38 functionality quickly, see {doc}`Getting Started Tutorial <getting_started/introduction>`.
39 - Detailed illustration how to work with different parts of GeoPandas, how to make maps,
40 manage projections, spatially merge data or geocode are part of our
41 {doc}`User Guide <docs/user_guide>`.
42 - And if you are interested in the complete
43 documentation of all classes, functions, method and attributes GeoPandas offers,
44 {doc}`API Reference <docs/reference>` is here for you.
45
46
47 ```{container} button
48
49 {doc}`Installation <getting_started/install>` {doc}`Introduction <getting_started/introduction>`
50 {doc}`User Guide <docs/user_guide>` {doc}`API Reference <docs/reference>`
51 ```
52
53 ## Get in touch
54
55 Haven't found what you were looking for?
56
57 - Ask usage questions ("How do I?") on [StackOverflow](https://stackoverflow.com/questions/tagged/geopandas) or [GIS StackExchange](https://gis.stackexchange.com/questions/tagged/geopandas).
58 - Report bugs, suggest features or view the source code on [GitHub](https://github.com/geopandas/geopandas).
59 - For a quick question about a bug report or feature request, or Pull Request,
60 head over to the [gitter channel](https://gitter.im/geopandas/geopandas).
61 - For less well defined questions or ideas, or to announce other projects of
62 interest to GeoPandas users, ... use the [mailing list](https://groups.google.com/forum/#!forum/geopandas).
63
44 data in python easier. GeoPandas extends the datatypes used by
55 `pandas`_ to allow spatial operations on geometric types. Geometric
66 operations are performed by `shapely`_. Geopandas further depends on
7 `fiona`_ for file access and `descartes`_ and `matplotlib`_ for plotting.
7 `fiona`_ for file access and `matplotlib`_ for plotting.
88
99 .. _pandas: http://pandas.pydata.org
1010 .. _shapely: https://shapely.readthedocs.io
1111 .. _fiona: https://fiona.readthedocs.io
12 .. _Descartes: https://pypi.python.org/pypi/descartes
1312 .. _matplotlib: http://matplotlib.org
1413
1514 Description
2322 such as PostGIS.
2423
2524 .. toctree::
26 :maxdepth: 1
27 :caption: Getting Started
25 :hidden:
2826
29 Installation <install>
30 Examples Gallery <gallery/index>
27 Home <self>
28 About <about>
29 Getting started <getting_started>
30 Documentation <docs>
31 Community <community>
3132
32 .. toctree::
33 :maxdepth: 1
34 :caption: User Guide
33 .. container:: button
3534
36 Data Structures <data_structures>
37 Reading and Writing Files <io>
38 Indexing and Selecting Data <indexing>
39 Making Maps <mapping>
40 Managing Projections <projections>
41 Geometric Manipulations <geometric_manipulations>
42 Set Operations with overlay <set_operations>
43 Aggregation with dissolve <aggregation_with_dissolve>
44 Merging Data <mergingdata>
45 Geocoding <geocoding>
46 missing_empty
35 :doc:`Getting started <getting_started>` :doc:`Documentation <docs>`
36 :doc:`About GeoPandas <about>` :doc:`Community <community>`
4737
48 .. toctree::
49 :maxdepth: 1
50 :caption: Reference Guide
38 Useful links
39 ------------
5140
52 Reference to All Attributes and Methods <reference>
53 Changelog <changelog>
41 `Binary Installers (PyPI) <https://pypi.org/project/geopandas/>`_ | `Source Repository (GitHub) <https://github.com/geopandas/geopandas>`_ | `Issues & Ideas <https://github.com/geopandas/geopandas/issues>`_ | `Q&A Support <https://stackoverflow.com/questions/tagged/geopandas>`_
5442
5543
56 .. toctree::
57 :maxdepth: 1
58 :caption: Developer
59
60 Contributing to GeoPandas <contributing>
61 Code of Conduct <code_of_conduct>
62
63
64 Get in touch
44 Supported by
6545 ------------
6646
67 - Ask usage questions ("How do I?") on `StackOverflow`_ or `GIS StackExchange`_.
68 - Report bugs, suggest features or view the source code `on GitHub`_.
69 - For a quick question about a bug report or feature request, or Pull Request,
70 head over to the `gitter channel`_.
71 - For less well defined questions or ideas, or to announce other projects of
72 interest to GeoPandas users, ... use the `mailing list`_.
73
74 .. _StackOverflow: https://stackoverflow.com/questions/tagged/geopandas
75 .. _GIS StackExchange: https://gis.stackexchange.com/questions/tagged/geopandas
76 .. _on GitHub: https://github.com/geopandas/geopandas
77 .. _gitter channel: https://gitter.im/geopandas/geopandas
78 .. _mailing list: https://groups.google.com/forum/#!forum/geopandas
79
47 .. image:: https://numfocus.org/wp-content/uploads/2017/07/NumFocus_LRG.png
48 :alt: numfocus
49 :width: 400
50 :target: https://numfocus.org
8051
8152 Indices and tables
8253 ------------------
+0
-30
doc/source/indexing.rst less more
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 Indexing and Selecting Data
9 ===========================
10
11 GeoPandas inherits the standard ``pandas`` methods for indexing/selecting data. This includes label based indexing with ``.loc`` and integer position based indexing with ``.iloc``, which apply to both ``GeoSeries`` and ``GeoDataFrame`` objects. For more information on indexing/selecting, see the pandas_ documentation.
12
13 .. _pandas: http://pandas.pydata.org/pandas-docs/stable/indexing.html
14
15 In addition to the standard ``pandas`` methods, GeoPandas also provides
16 coordinate based indexing with the ``cx`` indexer, which slices using a bounding
17 box. Geometries in the ``GeoSeries`` or ``GeoDataFrame`` that intersect the
18 bounding box will be returned.
19
20 Using the ``world`` dataset, we can use this functionality to quickly select all
21 countries whose boundaries extend into the southern hemisphere.
22
23 .. ipython:: python
24
25 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
26 southern_world = world.cx[:, :0]
27 @savefig world_southern.png
28 southern_world.plot(figsize=(10, 3));
29
+0
-250
doc/source/install.rst less more
0 Installation
1 ============
2
3 GeoPandas depends for its spatial functionality on a large geospatial, open
4 source stack of libraries (`GEOS`_, `GDAL`_, `PROJ`_). See the
5 :ref:`dependencies` section below for more details. Those base C
6 libraries can sometimes be a challenge to install. Therefore, we advise you
7 to closely follow the recommendations below to avoid installation problems.
8
9 .. _install-conda:
10
11 Installing with Anaconda / conda
12 --------------------------------
13
14 To install GeoPandas and all its dependencies, we recommend to use the `conda`_
15 package manager. This can be obtained by installing the
16 `Anaconda Distribution`_ (a free Python distribution for data science), or
17 through `miniconda`_ (minimal distribution only containing Python and the
18 `conda`_ package manager). See also the `installation docs
19 <https://conda.io/docs/user-guide/install/download.html>`__ for more information
20 on how to install Anaconda or miniconda locally.
21
22 The advantage of using the `conda`_ package manager is that it provides
23 pre-built binaries for all the required and optional dependencies of GeoPandas
24 for all platforms (Windows, Mac, Linux).
25
26 To install the latest version of GeoPandas, you can then do::
27
28 conda install geopandas
29
30
31 Using the conda-forge channel
32 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
33
34 `conda-forge`_ is a community effort that provides conda packages for a wide
35 range of software. It provides the *conda-forge* package channel for conda from
36 which packages can be installed, in addition to the "*defaults*" channel
37 provided by Anaconda.
38 Depending on what other packages you are working with, the *defaults* channel
39 or *conda-forge* channel may be better for your needs (e.g. some packages are
40 available on *conda-forge* and not on *defaults*).
41
42 GeoPandas and all its dependencies are available on the *conda-forge*
43 channel, and can be installed as::
44
45 conda install --channel conda-forge geopandas
46
47 .. note::
48
49 We strongly recommend to either install everything from the *defaults*
50 channel, or everything from the *conda-forge* channel. Ending up with a
51 mixture of packages from both channels for the dependencies of GeoPandas
52 can lead to import problems.
53 See the `conda-forge section on using multiple channels
54 <http://conda-forge.org/docs/user/tipsandtricks.html#using-multiple-channels>`__
55 for more details.
56
57
58 Creating a new environment
59 ^^^^^^^^^^^^^^^^^^^^^^^^^^
60
61 Creating a new environment is not strictly necessary, but given that installing
62 other geospatial packages from different channels may cause dependency conflicts
63 (as mentioned in the note above), it can be good practice to install the geospatial
64 stack in a clean environment starting fresh.
65
66 The following commands create a new environment with the name ``geo_env``,
67 configures it to install packages always from conda-forge, and installs
68 GeoPandas in it::
69
70 conda create -n geo_env
71 conda activate geo_env
72 conda config --env --add channels conda-forge
73 conda config --env --set channel_priority strict
74 conda install python=3 geopandas
75
76
77 .. _install-pip:
78
79 Installing with pip
80 -------------------
81
82 GeoPandas can also be installed with pip, if all dependencies can be installed
83 as well::
84
85 pip install geopandas
86
87 .. _install-deps:
88
89 .. warning::
90
91 When using pip to install GeoPandas, you need to make sure that all dependencies are
92 installed correctly.
93
94 - `fiona`_ provides binary wheels with the dependencies included for Mac and Linux,
95 but not for Windows.
96 - `pyproj`_ and `shapely`_ provide binary wheels with dependencies included
97 for Mac, Linux, and Windows.
98 - `rtree`_ does not provide wheels.
99 - Windows wheels for `shapely`, `fiona`, `pyproj` and `rtree`
100 can be found at `Christopher Gohlke's website
101 <https://www.lfd.uci.edu/~gohlke/pythonlibs/>`_.
102
103 So depending on your platform, you might need to compile and install their
104 C dependencies manually. We refer to the individual packages for more
105 details on installing those.
106 Using conda (see above) avoids the need to compile the dependencies yourself.
107
108 Installing from source
109 ----------------------
110
111 You may install the latest development version by cloning the
112 `GitHub` repository and using pip to install from the local directory::
113
114 git clone https://github.com/geopandas/geopandas.git
115 cd geopandas
116 pip install .
117
118 It is also possible to install the latest development version
119 directly from the GitHub repository with::
120
121 pip install git+git://github.com/geopandas/geopandas.git
122
123 For installing GeoPandas from source, the same :ref:`note <install-deps>` on
124 the need to have all dependencies correctly installed applies. But, those
125 dependencies can also be installed independently with conda before installing
126 GeoPandas from source::
127
128 conda install pandas fiona shapely pyproj rtree
129
130 See the :ref:`section on conda <install-conda>` above for more details on
131 getting running with Anaconda.
132
133 .. _dependencies:
134
135 Dependencies
136 ------------
137
138 Required dependencies:
139
140 - `numpy`_
141 - `pandas`_ (version 0.23.4 or later)
142 - `shapely`_ (interface to `GEOS`_)
143 - `fiona`_ (interface to `GDAL`_)
144 - `pyproj`_ (interface to `PROJ`_; version 2.2.0 or later)
145
146 Further, optional dependencies are:
147
148 - `rtree`_ (optional; spatial index to improve performance and required for
149 overlay operations; interface to `libspatialindex`_)
150 - `psycopg2`_ (optional; for PostGIS connection)
151 - `GeoAlchemy2`_ (optional; for writing to PostGIS)
152 - `geopy`_ (optional; for geocoding)
153
154
155 For plotting, these additional packages may be used:
156
157 - `matplotlib`_ (>= 2.0.1)
158 - `descartes`_
159 - `mapclassify`_
160
161
162 Using the optional PyGEOS dependency
163 ------------------------------------
164
165 Work is ongoing to improve the performance of GeoPandas. Currently, the
166 fast implementations of basic spatial operations live in the `PyGEOS`_
167 package (but work is under way to contribute those improvements to Shapely).
168 Starting with GeoPandas 0.8, it is possible to optionally use those
169 experimental speedups by installing PyGEOS. This can be done with conda
170 (using the conda-forge channel) or pip::
171
172 # conda
173 conda install pygeos --channel conda-forge
174 # pip
175 pip install pygeos
176
177 More specifically, whether the speedups are used or not is determined by:
178
179 - If PyGEOS is installed, it will be used by default (but installing GeoPandas
180 will not yet automatically install PyGEOS as dependency, you need to do this
181 manually).
182
183 - You can still toggle the use of PyGEOS when it is available, by:
184
185 - Setting an environment variable (``USE_PYGEOS=0/1``). Note this variable
186 is only checked at first import of GeoPandas.
187 - Setting an option: ``geopandas.options.use_pygeos = True/False``. Note,
188 although this variable can be set during an interactive session, it will
189 only work if the GeoDataFrames you use are created (e.g. reading a file
190 with ``read_file``) after changing this value.
191
192 .. warning::
193
194 The use of PyGEOS is experimental! Although it is passing all tests,
195 there might still be issues and not all functions of GeoPandas will
196 already benefit from speedups (one known issue: the `to_crs` coordinate
197 transformations lose the z coordinate). But trying this out is very welcome!
198 Any issues you encounter (but also reports of successful usage are
199 interesting!) can be reported at https://gitter.im/geopandas/geopandas
200 or https://github.com/geopandas/geopandas/issues
201
202
203 .. _PyPI: https://pypi.python.org/pypi/geopandas
204
205 .. _GitHub: https://github.com/geopandas/geopandas
206
207 .. _numpy: http://www.numpy.org
208
209 .. _pandas: http://pandas.pydata.org
210
211 .. _shapely: https://shapely.readthedocs.io
212
213 .. _fiona: https://fiona.readthedocs.io
214
215 .. _Descartes: https://pypi.python.org/pypi/descartes
216
217 .. _matplotlib: http://matplotlib.org
218
219 .. _geopy: https://github.com/geopy/geopy
220
221 .. _psycopg2: https://pypi.python.org/pypi/psycopg2
222
223 .. _GeoAlchemy2: https://geoalchemy-2.readthedocs.io/
224
225 .. _mapclassify: http://pysal.org/mapclassify
226
227 .. _pyproj: https://github.com/pyproj4/pyproj
228
229 .. _rtree: https://github.com/Toblerity/rtree
230
231 .. _libspatialindex: https://github.com/libspatialindex/libspatialindex
232
233 .. _Travis CI: https://travis-ci.org/geopandas/geopandas
234
235 .. _conda: https://conda.io/en/latest/
236
237 .. _Anaconda distribution: https://www.anaconda.com/distribution/
238
239 .. _miniconda: https://docs.conda.io/en/latest/miniconda.html
240
241 .. _conda-forge: https://conda-forge.org/
242
243 .. _GDAL: https://www.gdal.org/
244
245 .. _GEOS: https://geos.osgeo.org
246
247 .. _PROJ: https://proj.org/
248
249 .. _PyGEOS: https://github.com/pygeos/pygeos/
+0
-180
doc/source/io.rst less more
0 .. _io:
1
2 Reading and Writing Files
3 =========================================
4
5
6
7 Reading Spatial Data
8 ---------------------
9
10 *geopandas* can read almost any vector-based spatial data format including ESRI shapefile, GeoJSON files and more using the command::
11
12 geopandas.read_file()
13
14 which returns a GeoDataFrame object. (This is possible because *geopandas* makes use of the great `fiona <http://fiona.readthedocs.io/en/latest/manual.html>`_ library, which in turn makes use of a massive open-source program called `GDAL/OGR <http://www.gdal.org/>`_ designed to facilitate spatial data transformations).
15
16 Any arguments passed to :func:`geopandas.read_file` after the file name will be passed directly to ``fiona.open``, which does the actual data importation. In general, :func:`geopandas.read_file` is pretty smart and should do what you want without extra arguments, but for more help, type::
17
18 import fiona; help(fiona.open)
19
20 Among other things, one can explicitly set the driver (shapefile, GeoJSON) with the ``driver`` keyword, or pick a single layer from a multi-layered file with the ``layer`` keyword::
21
22 countries_gdf = geopandas.read_file("package.gpkg", layer='countries')
23
24 Where supported in ``fiona``, *geopandas* can also load resources directly from
25 a web URL, for example for GeoJSON files from `geojson.xyz <http://geojson.xyz/>`_::
26
27 url = "http://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_110m_land.geojson"
28 df = geopandas.read_file(url)
29
30 You can also load ZIP files that contain your data::
31
32 zipfile = "zip:///Users/name/Downloads/cb_2017_us_state_500k.zip"
33 states = geopandas.read_file(zipfile)
34
35 If the dataset is in a folder in the ZIP file, you have to append its name::
36
37 zipfile = "zip:///Users/name/Downloads/gadm36_AFG_shp.zip!data"
38
39 If there are multiple datasets in a folder in the ZIP file, you also have to specify the filename::
40
41 zipfile = "zip:///Users/name/Downloads/gadm36_AFG_shp.zip!data/gadm36_AFG_1.shp"
42
43 It is also possible to read any file-like objects with a ``read()`` method, such as a file handler (e.g. via built-in ``open`` function) or ``StringIO``::
44
45 filename = "test.geojson"
46 file = open(filename)
47 df = geopandas.read_file(file)
48
49 You can also read path objects::
50
51 import pathlib
52 path_object = pathlib.path(filename)
53 df = geopandas.read_file(path_object)
54
55 *geopandas* can also get data from a PostGIS database using the :func:`geopandas.read_postgis` command.
56
57
58 Reading subsets of the data
59 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
60
61 Since geopandas is powered by Fiona, which is powered by GDAL, you can take advantage of
62 pre-filtering when loading in larger datasets. This can be done geospatially with a geometry
63 or bounding box. You can also filter rows loaded with a slice. Read more at :func:`geopandas.read_file`.
64
65 Geometry Filter
66 ^^^^^^^^^^^^^^^
67
68 .. versionadded:: 0.7.0
69
70 The geometry filter only loads data that intersects with the geometry.
71
72 .. code-block:: python
73
74 gdf_mask = geopandas.read_file(
75 geopandas.datasets.get_path("naturalearth_lowres")
76 )
77 gdf = geopandas.read_file(
78 geopandas.datasets.get_path("naturalearth_cities"),
79 mask=gdf_mask[gdf_mask.continent=="Africa"],
80 )
81
82 Bounding Box Filter
83 ^^^^^^^^^^^^^^^^^^^
84
85 .. versionadded:: 0.1.0
86
87 The bounding box filter only loads data that intersects with the bounding box.
88
89 .. code-block:: python
90
91 bbox = (
92 1031051.7879884212, 224272.49231459625, 1047224.3104931959, 244317.30894023244
93 )
94 gdf = geopandas.read_file(
95 geopandas.datasets.get_path("nybb"),
96 bbox=bbox,
97 )
98
99 Row Filter
100 ^^^^^^^^^^
101
102 .. versionadded:: 0.7.0
103
104 Filter the rows loaded in from the file using an integer (for the first n rows)
105 or a slice object.
106
107 .. code-block:: python
108
109 gdf = geopandas.read_file(
110 geopandas.datasets.get_path("naturalearth_lowres"),
111 rows=10,
112 )
113 gdf = geopandas.read_file(
114 geopandas.datasets.get_path("naturalearth_lowres"),
115 rows=slice(10, 20),
116 )
117
118 Field/Column Filters
119 ^^^^^^^^^^^^^^^^^^^^
120
121 Load in a subset of fields from the file:
122
123 .. note:: Requires Fiona 1.8+
124
125 .. code-block:: python
126
127 gdf = geopandas.read_file(
128 geopandas.datasets.get_path("naturalearth_lowres"),
129 ignore_fields=["iso_a3", "gdp_md_est"],
130 )
131
132 Skip loading geometry from the file:
133
134 .. note:: Requires Fiona 1.8+
135 .. note:: Returns :obj:`pandas.DataFrame`
136
137 .. code-block:: python
138
139 pdf = geopandas.read_file(
140 geopandas.datasets.get_path("naturalearth_lowres"),
141 ignore_geometry=True,
142 )
143
144
145 Writing Spatial Data
146 ---------------------
147
148 GeoDataFrames can be exported to many different standard formats using the
149 :meth:`geopandas.GeoDataFrame.to_file` method.
150 For a full list of supported formats, type ``import fiona; fiona.supported_drivers``.
151
152 In addition, GeoDataFrames can be uploaded to `PostGIS <https://postgis.net/>`__ database (starting with GeoPandas 0.8)
153 by using the :meth:`geopandas.GeoDataFrame.to_postgis` method.
154
155 .. note::
156
157 GeoDataFrame can contain more field types than supported by most of the file formats. For example tuples or lists
158 can be easily stored in the GeoDataFrame, but saving them to e.g. GeoPackage or Shapefile will raise a ValueError.
159 Before saving to a file, they need to be converted to a format supported by a selected driver.
160
161 **Writing to Shapefile**::
162
163 countries_gdf.to_file("countries.shp")
164
165 **Writing to GeoJSON**::
166
167 countries_gdf.to_file("countries.geojson", driver='GeoJSON')
168
169 **Writing to GeoPackage**::
170
171 countries_gdf.to_file("package.gpkg", layer='countries', driver="GPKG")
172 cities_gdf.to_file("package.gpkg", layer='cities', driver="GPKG")
173
174 **Writing to PostGIS**::
175
176 from sqlalchemy import create_engine
177 db_connection_url = "postgres://myusername:mypassword@myhost:5432/mydatabase";
178 engine = create_engine(db_connection_url)
179 countries_gdf.to_postgis(name="countries_table", con=engine)
+0
-242
doc/source/mapping.rst less more
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6 import matplotlib
7 orig = matplotlib.rcParams['figure.figsize']
8 matplotlib.rcParams['figure.figsize'] = [orig[0] * 1.5, orig[1]]
9 import matplotlib.pyplot as plt
10 plt.close('all')
11
12
13 Mapping Tools
14 =========================================
15
16
17 *geopandas* provides a high-level interface to the ``matplotlib`` library for making maps. Mapping shapes is as easy as using the ``plot()`` method on a ``GeoSeries`` or ``GeoDataFrame``.
18
19 Loading some example data:
20
21 .. ipython:: python
22
23 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
24 cities = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))
25
26 We can now plot those GeoDataFrames:
27
28 .. ipython:: python
29
30 # Examine country GeoDataFrame
31 world.head()
32
33 # Basic plot, random colors
34 @savefig world_randomcolors.png
35 world.plot();
36
37 Note that in general, any options one can pass to `pyplot <http://matplotlib.org/api/pyplot_api.html>`_ in ``matplotlib`` (or `style options that work for lines <http://matplotlib.org/api/lines_api.html>`_) can be passed to the ``plot()`` method.
38
39
40 Choropleth Maps
41 -----------------
42
43 *geopandas* makes it easy to create Choropleth maps (maps where the color of each shape is based on the value of an associated variable). Simply use the plot command with the ``column`` argument set to the column whose values you want used to assign colors.
44
45 .. ipython:: python
46
47 # Plot by GDP per capta
48 world = world[(world.pop_est>0) & (world.name!="Antarctica")]
49 world['gdp_per_cap'] = world.gdp_md_est / world.pop_est
50 @savefig world_gdp_per_cap.png
51 world.plot(column='gdp_per_cap');
52
53
54 Creating a legend
55 ~~~~~~~~~~~~~~~~~
56
57 When plotting a map, one can enable a legend using the ``legend`` argument:
58
59 .. ipython:: python
60
61 # Plot population estimates with an accurate legend
62 import matplotlib.pyplot as plt
63 fig, ax = plt.subplots(1, 1)
64 @savefig world_pop_est.png
65 world.plot(column='pop_est', ax=ax, legend=True)
66
67 However, the default appearance of the legend and plot axes may not be desirable. One can define the plot axes (with ``ax``) and the legend axes (with ``cax``) and then pass those in to the ``plot`` call. The following example uses ``mpl_toolkits`` to vertically align the plot axes and the legend axes:
68
69 .. ipython:: python
70
71 # Plot population estimates with an accurate legend
72 from mpl_toolkits.axes_grid1 import make_axes_locatable
73 fig, ax = plt.subplots(1, 1)
74 divider = make_axes_locatable(ax)
75 cax = divider.append_axes("right", size="5%", pad=0.1)
76 @savefig world_pop_est_fixed_legend_height.png
77 world.plot(column='pop_est', ax=ax, legend=True, cax=cax)
78
79
80 And the following example plots the color bar below the map and adds its label using ``legend_kwds``:
81
82 .. ipython:: python
83
84 # Plot population estimates with an accurate legend
85 import matplotlib.pyplot as plt
86 fig, ax = plt.subplots(1, 1)
87 @savefig world_pop_est_horizontal.png
88 world.plot(column='pop_est',
89 ax=ax,
90 legend=True,
91 legend_kwds={'label': "Population by Country",
92 'orientation': "horizontal"})
93
94
95 Choosing colors
96 ~~~~~~~~~~~~~~~~
97
98 One can also modify the colors used by ``plot`` with the ``cmap`` option (for a full list of colormaps, see the `matplotlib website <http://matplotlib.org/users/colormaps.html>`_):
99
100 .. ipython:: python
101
102 @savefig world_gdp_per_cap_red.png
103 world.plot(column='gdp_per_cap', cmap='OrRd');
104
105
106 To make the color transparent for when you just want to show the boundary, you have two options. One option is to do ``world.plot(facecolor="none", edgecolor="black")``. However, this can cause a lot of confusion because ``"none"`` and ``None`` are different in the context of using ``facecolor`` and they do opposite things. ``None`` does the "default behavior" based on matplotlib, and if you use it for ``facecolor``, it actually adds a color. The second option is to use ``world.boundary.plot()``. This option is more explicit and clear.:
107
108 .. ipython:: python
109
110 @savefig world_gdp_per_cap_transparent.png
111 world.boundary.plot();
112
113
114 The way color maps are scaled can also be manipulated with the ``scheme`` option (if you have ``mapclassify`` installed, which can be accomplished via ``conda install -c conda-forge mapclassify``). The ``scheme`` option can be set to any scheme provided by mapclassify (e.g. 'box_plot', 'equal_interval',
115 'fisher_jenks', 'fisher_jenks_sampled', 'headtail_breaks', 'jenks_caspall', 'jenks_caspall_forced', 'jenks_caspall_sampled', 'max_p_classifier', 'maximum_breaks', 'natural_breaks', 'quantiles', 'percentiles', 'std_mean' or 'user_defined'). Arguments can be passed in classification_kwds dict. See the `mapclassify documentation <https://mapclassify.readthedocs.io>`_ for further details about these map classification schemes.
116
117 .. ipython:: python
118
119 @savefig world_gdp_per_cap_quantiles.png
120 world.plot(column='gdp_per_cap', cmap='OrRd', scheme='quantiles');
121
122
123 Missing data
124 ~~~~~~~~~~~~
125
126 In some cases one may want to plot data which contains missing values - for some features one simply does not know the value. Geopandas (from the version 0.7) by defaults ignores such features.
127
128 .. ipython:: python
129
130 import numpy as np
131 world.loc[np.random.choice(world.index, 40), 'pop_est'] = np.nan
132 @savefig missing_vals.png
133 world.plot(column='pop_est');
134
135 However, passing ``missing_kwds`` one can specify the style and label of features containing None or NaN.
136
137 .. ipython:: python
138
139 @savefig missing_vals_grey.png
140 world.plot(column='pop_est', missing_kwds={'color': 'lightgrey'});
141
142 @savefig missing_vals_hatch.png
143 world.plot(
144 column="pop_est",
145 legend=True,
146 scheme="quantiles",
147 figsize=(15, 10),
148 missing_kwds={
149 "color": "lightgrey",
150 "edgecolor": "red",
151 "hatch": "///",
152 "label": "Missing values",
153 },
154 );
155
156 Maps with Layers
157 -----------------
158
159 There are two strategies for making a map with multiple layers -- one more succinct, and one that is a little more flexible.
160
161 Before combining maps, however, remember to always ensure they share a common CRS (so they will align).
162
163 .. ipython:: python
164
165 # Look at capitals
166 # Note use of standard `pyplot` line style options
167 @savefig capitals.png
168 cities.plot(marker='*', color='green', markersize=5);
169
170 # Check crs
171 cities = cities.to_crs(world.crs)
172
173 # Now we can overlay over country outlines
174 # And yes, there are lots of island capitals
175 # apparently in the middle of the ocean!
176
177 **Method 1**
178
179 .. ipython:: python
180
181 base = world.plot(color='white', edgecolor='black')
182 @savefig capitals_over_countries_1.png
183 cities.plot(ax=base, marker='o', color='red', markersize=5);
184
185 **Method 2: Using matplotlib objects**
186
187 .. ipython:: python
188
189 import matplotlib.pyplot as plt
190 fig, ax = plt.subplots()
191
192 # set aspect to equal. This is done automatically
193 # when using *geopandas* plot on it's own, but not when
194 # working with pyplot directly.
195 ax.set_aspect('equal')
196
197 world.plot(ax=ax, color='white', edgecolor='black')
198 cities.plot(ax=ax, marker='o', color='red', markersize=5)
199 @savefig capitals_over_countries_2.png
200 plt.show();
201
202 Control the order of multiple layers in a plot
203 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
204
205 When plotting multiple layers, use ``zorder`` to take control of the order of layers being plotted.
206 The lower the ``zorder`` is, the lower the layer is on the map and vice versa.
207
208 Without specified ``zorder``, cities (Points) gets plotted below world (Polygons), following the default order based on geometry types.
209
210 .. ipython:: python
211
212 ax = cities.plot(color='k')
213 @savefig zorder_default.png
214 world.plot(ax=ax);
215
216 We can set the ``zorder`` for cities higher than for world to move it of top.
217
218 .. ipython:: python
219
220 ax = cities.plot(color='k', zorder=2)
221 @savefig zorder_set.png
222 world.plot(ax=ax, zorder=1);
223
224 Other Resources
225 -----------------
226 Links to jupyter Notebooks for different mapping tasks:
227
228 `Making Heat Maps <http://nbviewer.jupyter.org/gist/perrygeo/c426355e40037c452434>`_
229
230
231 .. ipython:: python
232 :suppress:
233
234 matplotlib.rcParams['figure.figsize'] = orig
235
236
237 .. ipython:: python
238 :suppress:
239
240 import matplotlib.pyplot as plt
241 plt.close('all')
+0
-114
doc/source/mergingdata.rst less more
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 Merging Data
9 =========================================
10
11 There are two ways to combine datasets in *geopandas* -- attribute joins and spatial joins.
12
13 In an attribute join, a ``GeoSeries`` or ``GeoDataFrame`` is combined with a regular *pandas* ``Series`` or ``DataFrame`` based on a common variable. This is analogous to normal merging or joining in *pandas*.
14
15 In a Spatial Join, observations from two ``GeoSeries`` or ``GeoDataFrames`` are combined based on their spatial relationship to one another.
16
17 In the following examples, we use these datasets:
18
19 .. ipython:: python
20
21 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
22 cities = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))
23
24 # For attribute join
25 country_shapes = world[['geometry', 'iso_a3']]
26 country_names = world[['name', 'iso_a3']]
27
28 # For spatial join
29 countries = world[['geometry', 'name']]
30 countries = countries.rename(columns={'name':'country'})
31
32
33 Appending
34 ---------
35
36 Appending GeoDataFrames and GeoSeries uses pandas ``append`` methods. Keep in mind, that appended geometry columns needs to have the same CRS.
37
38 .. ipython:: python
39
40 # Appending GeoSeries
41 joined = world.geometry.append(cities.geometry)
42
43 # Appending GeoDataFrames
44 europe = world[world.continent == 'Europe']
45 asia = world[world.continent == 'Asia']
46 eurasia = europe.append(asia)
47
48
49 Attribute Joins
50 ----------------
51
52 Attribute joins are accomplished using the ``merge`` method. In general, it is recommended to use the ``merge`` method called from the spatial dataset. With that said, the stand-alone ``merge`` function will work if the GeoDataFrame is in the ``left`` argument; if a DataFrame is in the ``left`` argument and a GeoDataFrame is in the ``right`` position, the result will no longer be a GeoDataFrame.
53
54
55 For example, consider the following merge that adds full names to a ``GeoDataFrame`` that initially has only ISO codes for each country by merging it with a *pandas* ``DataFrame``.
56
57 .. ipython:: python
58
59 # `country_shapes` is GeoDataFrame with country shapes and iso codes
60 country_shapes.head()
61
62 # `country_names` is DataFrame with country names and iso codes
63 country_names.head()
64
65 # Merge with `merge` method on shared variable (iso codes):
66 country_shapes = country_shapes.merge(country_names, on='iso_a3')
67 country_shapes.head()
68
69
70
71 Spatial Joins
72 ----------------
73
74 In a Spatial Join, two geometry objects are merged based on their spatial relationship to one another.
75
76 .. ipython:: python
77
78
79 # One GeoDataFrame of countries, one of Cities.
80 # Want to merge so we can get each city's country.
81 countries.head()
82 cities.head()
83
84 # Execute spatial join
85
86 cities_with_country = geopandas.sjoin(cities, countries, how="inner", op='intersects')
87 cities_with_country.head()
88
89
90 Sjoin Arguments
91 ~~~~~~~~~~~~~~~~
92
93 ``sjoin()`` has two core arguments: ``how`` and ``op``.
94
95 **op**
96
97 The ``op`` argument specifies how ``geopandas`` decides whether or not to join the attributes of one object to another. There are three different join options as follows:
98
99 * `intersects`: The attributes will be joined if the boundary and interior of the object intersect in any way with the boundary and/or interior of the other object.
100 * `within`: The attributes will be joined if the object’s boundary and interior intersect *only* with the interior of the other object (not its boundary or exterior).
101 * `contains`: The attributes will be joined if the object’s interior contains the boundary and interior of the other object and their boundaries do not touch at all.
102
103 You can read more about each join type in the `Shapely documentation <http://shapely.readthedocs.io/en/latest/manual.html#binary-predicates>`__.
104
105 **how**
106
107 The `how` argument specifies the type of join that will occur and which geometry is retained in the resultant geodataframe. It accepts the following options:
108
109 * ``left``: use the index from the first (or `left_df`) geodataframe that you provide to ``sjoin``; retain only the `left_df` geometry column
110 * ``right``: use index from second (or `right_df`); retain only the `right_df` geometry column
111 * ``inner``: use intersection of index values from both geodataframes; retain only the `left_df` geometry column
112
113 Note more complicated spatial relationships can be studied by combining geometric operations with spatial join. To find all polygons within a given distance of a point, for example, one can first use the ``buffer`` method to expand each point into a circle of appropriate radius, then intersect those buffered circles with the polygons in question.
+0
-185
doc/source/missing_empty.rst less more
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 .. _missing-empty:
9
10 Missing and empty geometries
11 ============================
12
13 GeoPandas supports, just like in pandas, the concept of missing values (NA
14 or null values). But for geometry values, we have an additional concept of
15 empty geometries:
16
17 - **Empty geometries** are actual geometry objects but that have no coordinates
18 (and thus also no area, for example). They can for example originate from
19 taking the intersection of two polygons that have no overlap.
20 The scalar object (when accessing a single element of a GeoSeries) is still
21 a Shapely geometry object.
22 - **Missing geometries** are unknown values in a GeoSeries. They will typically
23 be propagated in operations (for example in calculations of the area or of
24 the intersection), or ignored in reductions such as ``unary_union``.
25 The scalar object (when accessing a single element of a GeoSeries) is the
26 Python ``None`` object.
27
28 .. warning::
29
30 Starting from GeoPandas v0.6.0, those two concepts are more consistently
31 separated. See :ref:`below <missing-empty.changes-0.6.0>` for more details
32 on what changed compared to earlier versions.
33
34
35 Consider the following example GeoSeries with one polygon, one missing value
36 and one empty polygon:
37
38 .. ipython:: python
39
40 from shapely.geometry import Polygon
41 s = geopandas.GeoSeries([Polygon([(0, 0), (1, 1), (0, 1)]), None, Polygon([])])
42 s
43
44 In spatial operations, missing geometries will typically propagate (be missing
45 in the result as well), while empty geometries are treated as a geometry
46 and the result will depend on the operation:
47
48 .. ipython:: python
49
50 s.area
51 s.union(Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]))
52 s.intersection(Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]))
53
54 The :meth:`GeoSeries.isna` method will only check for missing values and not
55 for empty geometries:
56
57 .. ipython:: python
58 :okwarning:
59
60 s.isna()
61
62 On the other hand, if you want to know which values are empty geometries,
63 you can use the :attr:`GeoSeries.is_empty` attribute:
64
65 .. ipython:: python
66
67 s.is_empty
68
69 To get only the actual geometry objects that are neiter missing nor empty,
70 you can use a combination of both:
71
72 .. ipython:: python
73 :okwarning:
74
75 s.is_empty | s.isna()
76 s[~(s.is_empty | s.isna())]
77
78
79 .. _missing-empty.changes-0.6.0:
80
81 Changes since GeoPandas v0.6.0
82 ------------------------------
83
84 In GeoPandas v0.6.0, the missing data handling was refactored and made more
85 consistent across the library.
86
87 Historically, missing ("NA") values in a GeoSeries could be represented by empty
88 geometric objects, in addition to standard representations such as ``None`` and
89 ``np.nan``. At least, this was the case in :meth:`GeoSeries.isna` or when a
90 GeoSeries got aligned in geospatial operations. But, other methods like
91 :meth:`~GeoSeries.dropna` and :meth:`~GeoSeries.fillna` did not follow this
92 approach and did not consider empty geometries as missing.
93
94 In GeoPandas v0.6.0, the most important change is :meth:`GeoSeries.isna` no
95 longer treating empty as missing:
96
97 * Using the small example from above, the old behaviour treated both the
98 empty as missing geometry as "missing":
99
100 .. code-block:: python
101
102 >>> s
103 0 POLYGON ((0 0, 1 1, 0 1, 0 0))
104 1 None
105 2 GEOMETRYCOLLECTION EMPTY
106 dtype: object
107
108 >>> s.isna()
109 0 False
110 1 True
111 2 True
112 dtype: bool
113
114 * Starting from GeoPandas v0.6.0, it will now only see actual missing values
115 as missing:
116
117 .. ipython:: python
118 :okwarning:
119
120 s.isna()
121
122 For now, when ``isna()`` is called on a GeoSeries with empty geometries,
123 a warning is raised to alert the user of the changed behaviour with an
124 indication how to solve this.
125
126 Additionally, the behaviour of :meth:`GeoSeries.align` changed to use
127 missing values instead of empty geometries to fill non-matching indexes.
128 Consider the following small toy example:
129
130 .. ipython:: python
131
132 from shapely.geometry import Point
133 s1 = geopandas.GeoSeries([Point(0, 0), Point(1, 1)], index=[0, 1])
134 s2 = geopandas.GeoSeries([Point(1, 1), Point(2, 2)], index=[1, 2])
135 s1
136 s2
137
138 * Previously, the ``align`` method would use empty geometries to fill
139 values:
140
141 .. code-block:: python
142
143 >>> s1_aligned, s2_aligned = s1.align(s2)
144
145 >>> s1_aligned
146 0 POINT (0 0)
147 1 POINT (1 1)
148 2 GEOMETRYCOLLECTION EMPTY
149 dtype: object
150
151 >>> s2_aligned
152 0 GEOMETRYCOLLECTION EMPTY
153 1 POINT (1 1)
154 2 POINT (2 2)
155 dtype: object
156
157 This method is used under the hood when performing spatial operations on
158 mis-aligned GeoSeries objects:
159
160 .. code-block:: python
161
162 >>> s1.intersection(s2)
163 0 GEOMETRYCOLLECTION EMPTY
164 1 POINT (1 1)
165 2 GEOMETRYCOLLECTION EMPTY
166 dtype: object
167
168 * Starting from GeoPandas v0.6.0, :meth:`GeoSeries.align` will use missing
169 values to fill in the non-aligned indices, to be consistent with the
170 behaviour in pandas:
171
172 .. ipython:: python
173
174 s1_aligned, s2_aligned = s1.align(s2)
175 s1_aligned
176 s2_aligned
177
178 This has the consequence that spatial operations will also use missing
179 values instead of empty geometries, which can have a different behaviour
180 depending on the spatial operation:
181
182 .. ipython:: python
183
184 s1.intersection(s2)
+0
-475
doc/source/projections.rst less more
0 .. currentmodule:: geopandas
1
2 .. ipython:: python
3 :suppress:
4
5 import geopandas
6
7
8 Managing Projections
9 =========================================
10
11
12 Coordinate Reference Systems
13 -----------------------------
14
15 The Coordinate Reference System (CRS) is important because the geometric shapes
16 in a GeoSeries or GeoDataFrame object are simply a collection of coordinates in
17 an arbitrary space. A CRS tells Python how those coordinates relate to places on
18 the Earth.
19
20 You can find the codes for most commonly used projections from
21 `www.spatialreference.org <https://spatialreference.org/>`_.
22
23 The same CRS can often be referred to in many ways. For example, one of the most
24 commonly used CRS is the WGS84 latitude-longitude projection. This can be
25 referred to using the authority code ``"EPSG:4326"``.
26
27 *geopandas* can accept anything accepted by :meth:`pyproj.CRS.from_user_input() <pyproj.crs.CRS.from_user_input>`:
28
29 - CRS WKT string
30 - An authority string (i.e. "epsg:4326")
31 - An EPSG integer code (i.e. 4326)
32 - A ``pyproj.CRS``
33 - An object with a to_wkt method.
34 - PROJ string
35 - Dictionary of PROJ parameters
36 - PROJ keyword arguments for parameters
37 - JSON string with PROJ parameters
38
39 For reference, a few very common projections and their EPSG codes:
40
41 * WGS84 Latitude/Longitude: ``"EPSG:4326"``
42 * UTM Zones (North): ``"EPSG:32633"``
43 * UTM Zones (South): ``"EPSG:32733"``
44
45
46 What is the best format to store the CRS information?
47 -----------------------------------------------------
48
49 Generally, WKT or SRID's are preferred over PROJ strings as they can contain more information about a given CRS.
50 Conversions between WKT and PROJ strings will in most cases cause a loss of information, potentially leading to erroneous transformations. If possible WKT2 should be used.
51
52 For more details, see https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems
53
54
55 Setting a Projection
56 ----------------------
57
58 There are two relevant operations for projections: setting a projection and re-projecting.
59
60 Setting a projection may be necessary when for some reason *geopandas* has coordinate data (x-y values), but no information about how those coordinates refer to locations in the real world. Setting a projection is how one tells *geopandas* how to interpret coordinates. If no CRS is set, *geopandas* geometry operations will still work, but coordinate transformations will not be possible and exported files may not be interpreted correctly by other software.
61
62 Be aware that **most of the time** you don't have to set a projection. Data loaded from a reputable source (using the :func:`geopandas.read_file()` command) *should* always include projection information. You can see an objects current CRS through the :attr:`GeoSeries.crs` attribute.
63
64 From time to time, however, you may get data that does not include a projection. In this situation, you have to set the CRS so *geopandas* knows how to interpret the coordinates.
65
66 For example, if you convert a spreadsheet of latitudes and longitudes into a
67 GeoSeries by hand, you would set the projection by passing the WGS84
68 latitude-longitude CRS to the :meth:`GeoSeries.set_crs` method (or by setting
69 the :attr:`GeoSeries.crs` attribute):
70
71 .. sourcecode:: python
72
73 my_geoseries = my_geoseries.set_crs("EPSG:4326"})
74 my_geoseries = my_geoseries.set_crs(epsg=4326)
75
76
77 Re-Projecting
78 ----------------
79
80 Re-projecting is the process of changing the representation of locations from one coordinate system to another. All projections of locations on the Earth into a two-dimensional plane `are distortions <https://en.wikipedia.org/wiki/Map_projection#Which_projection_is_best.3F>`_, the projection that is best for your application may be different from the projection associated with the data you import. In these cases, data can be re-projected using the :meth:`GeoDataFrame.to_crs` command:
81
82 .. ipython:: python
83
84 # load example data
85 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
86
87 # Check original projection
88 # (it's Platte Carre! x-y are long and lat)
89 world.crs
90
91 # Visualize
92 ax = world.plot()
93 @savefig world_starting.png
94 ax.set_title("WGS84 (lat/lon)");
95
96 # Reproject to Mercator (after dropping Antartica)
97 world = world[(world.name != "Antarctica") & (world.name != "Fr. S. Antarctic Lands")]
98 world = world.to_crs("EPSG:3395") # world.to_crs(epsg=3395) would also work
99 ax = world.plot()
100 @savefig world_reproj.png
101 ax.set_title("Mercator");
102
103
104 Projection for multiple geometry columns
105 ----------------------------------------
106
107 GeoPandas 0.8 implements support for different projections assigned to different geometry
108 columns of the same GeoDataFrame. The projection is now stored together with geometries per column (directly
109 on the GeometryArray level).
110
111 Note that if GeometryArray has assigned projection, it is preferred over the
112 projection passed to GeoSeries or GeoDataFrame during the creation:
113
114 .. code-block:: python
115
116 >>> array.crs
117 <Geographic 2D CRS: EPSG:4326>
118 Name: WGS 84
119 Axis Info [ellipsoidal]:
120 - Lat[north]: Geodetic latitude (degree)
121 - Lon[east]: Geodetic longitude (degree)
122 ...
123 >>> GeoSeries(array, crs=3395).crs # crs=3395 is ignored as array already has CRS
124 FutureWarning: CRS mismatch between CRS of the passed geometries and 'crs'. Use 'GeoDataFrame.set_crs(crs, allow_override=True)' to overwrite CRS or 'GeoDataFrame.to_crs(crs)' to reproject geometries. CRS mismatch will raise an error in the future versions of GeoPandas.
125 GeoSeries(array, crs=3395).crs
126
127 <Geographic 2D CRS: EPSG:4326>
128 Name: WGS 84
129 Axis Info [ellipsoidal]:
130 - Lat[north]: Geodetic latitude (degree)
131 - Lon[east]: Geodetic longitude (degree)
132 ...
133
134 If you want to overwrite projection, you can then assign it to the GeoSeries
135 manually or re-project geometries to the target projection using either
136 ``GeoSeries.set_crs(epsg=3395, allow_override=True)`` or
137 ``GeoSeries.to_crs(epsg=3395)``.
138
139 All GeometryArray-based operations preserve projection; however, if you loop over a column
140 containing geometry, this information might be lost.
141
142
143 Upgrading to GeoPandas 0.7 with pyproj > 2.2 and PROJ > 6
144 ---------------------------------------------------------
145
146 Starting with GeoPandas 0.7, the `.crs` attribute of a GeoSeries or GeoDataFrame
147 stores the CRS information as a ``pyproj.CRS``, and no longer as a proj4 string
148 or dict.
149
150 Before, you might have seen this:
151
152 .. code-block:: python
153
154 >>> gdf.crs
155 {'init': 'epsg:4326'}
156
157 while now you will see something like this:
158
159 .. code-block:: python
160
161 >>> gdf.crs
162 <Geographic 2D CRS: EPSG:4326>
163 Name: WGS 84
164 Axis Info [ellipsoidal]:
165 - Lat[north]: Geodetic latitude (degree)
166 - Lon[east]: Geodetic longitude (degree)
167 ...
168 >>> type(gdf.crs)
169 pyproj.crs.CRS
170
171 This gives a better user interface and integrates improvements from pyproj and
172 PROJ 6, but might also require some changes in your code. See `this blogpost
173 <https://jorisvandenbossche.github.io/blog/2020/02/11/geopandas-pyproj-crs/>`__
174 for some more background, and the subsections below cover different possible
175 migration issues.
176
177 See the `pyproj docs <https://pyproj4.github.io/pyproj/stable/>`__ for more on
178 the ``pyproj.CRS`` object.
179
180 Importing data from files
181 ^^^^^^^^^^^^^^^^^^^^^^^^^
182
183 When reading geospatial files with :func:`geopandas.read_file`, things should
184 mostly work out of the box. For example, reading the example countries dataset
185 yields a proper CRS:
186
187 .. ipython:: python
188
189 df = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
190 df.crs
191
192 However, in certain cases (with older CRS formats), the resulting CRS object
193 might not be fully as expected. See the :ref:`section below <unrecognized-crs-reasons>`
194 for possible reasons and how to solve it.
195
196
197 Manually specifying the CRS
198 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
199
200 When specifying the CRS manually in your code (e.g., because your data has not
201 yet a CRS, or when converting to another CRS), this might require a change in
202 your code.
203
204 **"init" proj4 strings/dicts**
205
206 Currently, a lot of people (and also the GeoPandas docs showed that before)
207 specify the EPSG code using the "init" proj4 string:
208
209 .. code-block:: python
210
211 ## OLD
212 GeoDataFrame(..., crs={'init': 'epsg:4326'})
213 # or
214 gdf.crs = {'init': 'epsg:4326'}
215 # or
216 gdf.to_crs({'init': 'epsg:4326'})
217
218 The above will now raise a deprecation warning from pyproj, and instead of the
219 "init" proj4 string, you should use only the EPSG code itself as follows:
220
221 .. code-block:: python
222
223 ## NEW
224 GeoDataFrame(..., crs="EPSG:4326")
225 # or
226 gdf.crs = "EPSG:4326"
227 # or
228 gdf.to_crs("EPSG:4326")
229
230
231 **proj4 strings/dicts**
232
233 Although a full proj4 string is not deprecated (as opposed to the "init" string
234 above), it is still recommended to change it with an EPSG code if possible.
235
236 For example, instead of:
237
238 .. code-block:: python
239
240 gdf.crs = "+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs"
241
242 we recommenend to do:
243
244 .. code-block:: python
245
246 gdf.crs = "EPSG:2163"
247
248 *if* you know the EPSG code for the projection you are using.
249
250 One possible way to find out the EPSG code is using pyproj for this:
251
252 .. code-block:: python
253
254 >>> import pyproj
255 >>> crs = pyproj.CRS("+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs")
256 >>> crs.to_epsg()
257 2163
258
259 (you might need to set the ``min_confidence`` keyword of ``to_epsg`` to a lower
260 value if the match is not perfect)
261
262 Further, on websites such as `spatialreference.org <https://spatialreference.org/>`__
263 and `epsg.io <https://epsg.io/>`__ the descriptions of many CRS can be found
264 including their EPSG codes and proj4 string definitions.
265
266 **Other formats**
267
268 Next to the EPSG code mentioned above, there are also other ways to specify the
269 CRS: an actual ``pyproj.CRS`` object, a WKT string, a PROJ JSON string, etc.
270 Anything that is accepted by ``pyproj.CRS.from_user_input`` can by specified
271 to the ``crs`` keyword/attribute in GeoPandas.
272
273 Also compatible CRS objects, such as from the ``rasterio`` package, can be
274 passed directly to GeoPandas.
275
276
277 The axis order of a CRS
278 ^^^^^^^^^^^^^^^^^^^^^^^
279
280 Starting with PROJ 6 / pyproj 2, the axis order of the official EPSG definition
281 is honoured. For example, when using geographic coordinates (degrees of longitude
282 and latitude) in the standard EPSG:4326, the CRS will look like:
283
284 .. code-block:: python
285
286 >>> pyproj.CRS(3EPSG:4326")
287 <Geographic 2D CRS: EPSG:4326>
288 ...
289 Axis Info [ellipsoidal]:
290 - Lat[north]: Geodetic latitude (degree)
291 - Lon[east]: Geodetic longitude (degree)
292 ...
293
294 This mentions the order as (lat, lon), as that is the official order of coordinates
295 in EPSG:4326. In GeoPandas, however, the coordinates are always stored as (x, y),
296 and thus as (lon, lat) order, regardless of the CRS (i.e. the "traditional" order used
297 in GIS). When reprojecting, GeoPandas and pyproj will under the hood take care of
298 this difference in axis order, so the user doesn't need to care about this.
299
300 .. _unrecognized-crs-reasons:
301
302 Why is it not properly recognizing my CRS?
303 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
304
305 There are many file sources and CRS definitions out there "in the wild" that
306 might have a CRS description that does not fully conform to the new standards of
307 PROJ > 6 (proj4 strings, older WKT formats, ...). In such cases, you will get a
308 ``pyproj.CRS`` object that might not be fully what you expected (e.g. not equal
309 to the expected EPSG code). Below we list a few possible cases.
310
311 I get a "Bound CRS"?
312 ~~~~~~~~~~~~~~~~~~~~
313
314 Some CRS definitions include a *"towgs84" clause*, which can give problems in
315 recognizing the actual CRS.
316
317 For example, both the proj4 and WKT representation for EPSG:31370 (the local
318 projection used in Belgium) as can be found at `https://spatialreference.org/ref/epsg/31370/ <https://spatialreference.org/ref/epsg/31370/>`__
319 include this. When taking one of those definitions from that site, and creating
320 a CRS object:
321
322 .. code-block:: python
323
324 >>> import pyproj
325 >>> crs = pyproj.CRS("+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +units=m +no_defs")
326 >>> crs
327 <Bound CRS: +proj=lcc +lat_1=51.16666723333333 +lat_2=49.83333 ...>
328 Name: unknown
329 Axis Info [cartesian]:
330 - E[east]: Easting (metre)
331 - N[north]: Northing (metre)
332 Area of Use:
333 - undefined
334 Coordinate Operation:
335 - name: Transformation from unknown to WGS84
336 - method: Position Vector transformation (geog2D domain)
337 Datum: Unknown based on International 1909 (Hayford) ellipsoid
338 - Ellipsoid: International 1909 (Hayford)
339 - Prime Meridian: Greenwich
340 Source CRS: unknown
341
342 You notice that the above is a not a "Projected CRS" as expected, but a "Bound CRS".
343 This is because it is "bound" to a conversion to WGS84, and will always use this
344 when reprojecting instead of letting PROJ determine the best conversion.
345
346 To get the actual underlying projected CRS, you can use the ``.source_crs`` attribute:
347
348 .. code-block:: python
349
350 >>> crs.source_crs
351 <Projected CRS: PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["Unk ...>
352 Name: unknown
353 ...
354
355 Now we have a "Projected CRS", and now it will also recognize the correct EPSG
356 number:
357
358 .. code-block:: python
359
360 >>> crs.to_epsg()
361
362 >>> crs.source_crs.to_epsg()
363 31370
364
365 I have a different axis order?
366 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
367
368 As mentioned above, pyproj now honours the axis order of the EPSG definition.
369 However, proj4 strings or older WKT versions don't specify this correctly, which
370 can be a reason that the CRS object is not equal to the expected EPSG code.
371
372 Consider the following example of a Canadian projected CRS "EPSG:2953". When
373 constructing the CRS object from the WKT string as provided on
374 `https://epsg.io/2953 <https://epsg.io/2953>`__:
375
376 .. code-block:: python
377
378 >>> crs = pyproj.CRS("""PROJCS["NAD83(CSRS) / New Brunswick Stereographic",
379 ... GEOGCS["NAD83(CSRS)",
380 ... DATUM["NAD83_Canadian_Spatial_Reference_System",
381 ... SPHEROID["GRS 1980",6378137,298.257222101,
382 ... AUTHORITY["EPSG","7019"]],
383 ... AUTHORITY["EPSG","6140"]],
384 ... PRIMEM["Greenwich",0,
385 ... AUTHORITY["EPSG","8901"]],
386 ... UNIT["degree",0.0174532925199433,
387 ... AUTHORITY["EPSG","9122"]],
388 ... AUTHORITY["EPSG","4617"]],
389 ... PROJECTION["Oblique_Stereographic"],
390 ... PARAMETER["latitude_of_origin",46.5],
391 ... PARAMETER["central_meridian",-66.5],
392 ... PARAMETER["scale_factor",0.999912],
393 ... PARAMETER["false_easting",2500000],
394 ... PARAMETER["false_northing",7500000],
395 ... UNIT["metre",1,
396 ... AUTHORITY["EPSG","9001"]],
397 ... AUTHORITY["EPSG","2953"]]""")
398
399 >>> crs
400 <Projected CRS: PROJCS["NAD83(CSRS) / New Brunswick Stereographic" ...>
401 Name: NAD83(CSRS) / New Brunswick Stereographic
402 Axis Info [cartesian]:
403 - E[east]: Easting (metre)
404 - N[north]: Northing (metre)
405 ...
406
407 Although this is the WKT string as found online for "EPSG:2953", this CRS object
408 does not evaluate equal to this EPSG code:
409
410 .. code-block:: python
411
412 >>> crs == "EPSG:2953"
413 False
414
415 If we construct the CRS object from the EPSG code (truncated output):
416
417 .. code-block:: python
418
419 >>> pyproj.CRS("EPSG:2953")
420 <Projected CRS: EPSG:2953>
421 Name: NAD83(CSRS) / New Brunswick Stereographic
422 Axis Info [cartesian]:
423 - N[north]: Northing (metre)
424 - E[east]: Easting (metre)
425 ...
426
427 You can see that the CRS object constructed from the WKT string has a "Easting,
428 Northing" (i.e. x, y) axis order, while the CRS object constructed from the EPSG
429 code has a (Northing, Easting) axis order.
430
431 Only having this difference in axis order is no problem when using the CRS in
432 GeoPandas, since GeoPandas always uses a (x, y) order to store the data
433 regardless of the CRS definition. But, you might still want to verify it is
434 equivalent to the expected EPSG code. By lowering the `min_confidence`, the axis
435 order will be ignored:
436
437 .. code-block:: python
438
439 >>> crs.to_epsg()
440
441 >>> crs.to_epsg(min_confidence=20)
442 2953
443
444
445 The ``.crs`` attribute is no longer a dict or string
446 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
447
448 If you relied on the ``.crs`` object being a dict or a string, such code can
449 be broken given it is now a ``pyproj.CRS`` object. But this object actually
450 provides a more robust interface to get information about the CRS.
451
452 For example, if you used the following code to get the EPSG code:
453
454 .. code-block:: python
455
456 gdf.crs['init']
457
458 This will no longer work. To get the EPSG code from a ``crs`` object, you can use
459 the ``to_epsg()`` method.
460
461 Or to check if a CRS was a certain UTM zone:
462
463 .. code-block:: python
464
465 '+proj=utm ' in gdf.crs
466
467 could be replaced with the longer but more robust check:
468
469 .. code-block:: python
470
471 gdf.crs.is_projected and gdf.crs.coordinate_operation.name.upper().startswith('UTM')
472
473 And there are many other methods available on the ``pyproj.CRS`` class to get
474 information about the CRS.
+0
-217
doc/source/reference.rst less more
0 .. _reference:
1
2 Reference
3 ===========================
4
5 GeoSeries
6 ---------
7
8 The following Shapely methods and attributes are available on
9 ``GeoSeries`` objects:
10
11 .. autoattribute:: geopandas.GeoSeries.area
12
13 .. autoattribute:: geopandas.GeoSeries.bounds
14
15 .. autoattribute:: geopandas.GeoSeries.length
16
17 .. autoattribute:: geopandas.GeoSeries.geom_type
18
19 .. automethod:: geopandas.GeoSeries.distance
20
21 .. automethod:: geopandas.GeoSeries.representative_point
22
23 .. autoattribute:: geopandas.GeoSeries.exterior
24
25 .. autoattribute:: geopandas.GeoSeries.interiors
26
27 .. autoattribute:: geopandas.GeoSeries.x
28
29 .. autoattribute:: geopandas.GeoSeries.y
30
31 `Unary Predicates`
32
33 .. autoattribute:: geopandas.GeoSeries.is_empty
34
35 .. autoattribute:: geopandas.GeoSeries.is_ring
36
37 .. autoattribute:: geopandas.GeoSeries.is_simple
38
39 .. autoattribute:: geopandas.GeoSeries.is_valid
40
41 `Binary Predicates`
42
43 .. automethod:: geopandas.GeoSeries.geom_almost_equals
44
45 .. automethod:: geopandas.GeoSeries.contains
46
47 .. automethod:: geopandas.GeoSeries.crosses
48
49 .. automethod:: geopandas.GeoSeries.disjoint
50
51 .. automethod:: geopandas.GeoSeries.geom_equals
52
53 .. automethod:: geopandas.GeoSeries.intersects
54
55 .. automethod:: geopandas.GeoSeries.overlaps
56
57 .. automethod:: geopandas.GeoSeries.touches
58
59 .. automethod:: geopandas.GeoSeries.within
60
61 .. automethod:: geopandas.GeoSeries.covers
62
63 `Set-theoretic Methods`
64
65 .. automethod:: geopandas.GeoSeries.difference
66
67 .. automethod:: geopandas.GeoSeries.intersection
68
69 .. automethod:: geopandas.GeoSeries.symmetric_difference
70
71 .. automethod:: geopandas.GeoSeries.union
72
73 `Constructive Methods`
74
75 .. automethod:: geopandas.GeoSeries.buffer
76
77 .. autoattribute:: geopandas.GeoSeries.boundary
78
79 .. autoattribute:: geopandas.GeoSeries.centroid
80
81 .. autoattribute:: geopandas.GeoSeries.convex_hull
82
83 .. autoattribute:: geopandas.GeoSeries.envelope
84
85 .. automethod:: geopandas.GeoSeries.simplify
86
87 `Affine transformations`
88
89 .. automethod:: geopandas.GeoSeries.affine_transform
90
91 .. automethod:: geopandas.GeoSeries.rotate
92
93 .. automethod:: geopandas.GeoSeries.scale
94
95 .. automethod:: geopandas.GeoSeries.skew
96
97 .. automethod:: geopandas.GeoSeries.translate
98
99 `Aggregating methods`
100
101 .. autoattribute:: geopandas.GeoSeries.unary_union
102
103 Additionally, the following attributes and methods are implemented:
104
105 .. automethod:: geopandas.GeoSeries.from_file
106
107 .. automethod:: geopandas.GeoSeries.to_file
108
109 .. automethod:: geopandas.GeoSeries.to_json
110
111 .. autoattribute:: geopandas.GeoSeries.crs
112
113 .. automethod:: geopandas.GeoSeries.to_crs
114
115 .. automethod:: geopandas.GeoSeries.plot
116
117 .. autoattribute:: geopandas.GeoSeries.total_bounds
118
119 .. autoattribute:: geopandas.GeoSeries.__geo_interface__
120
121 .. automethod:: geopandas.GeoSeries.isna
122
123 .. automethod:: geopandas.GeoSeries.notna
124
125 .. automethod:: geopandas.GeoSeries.fillna
126
127
128 Methods of pandas ``Series`` objects are also available, although not
129 all are applicable to geometric objects and some may return a
130 ``Series`` rather than a ``GeoSeries`` result. The methods
131 ``isna()`` and ``fillna()`` have been
132 implemented specifically for ``GeoSeries`` and are expected to work
133 correctly.
134
135 GeoDataFrame
136 ------------
137
138 A ``GeoDataFrame`` is a tabular data structure that contains a column
139 called ``geometry`` which contains a `GeoSeries``.
140
141 Currently, the following methods/attributes are implemented for a ``GeoDataFrame``:
142
143 .. autoattribute:: geopandas.GeoDataFrame.crs
144
145 .. automethod:: geopandas.GeoDataFrame.to_crs
146
147 .. automethod:: geopandas.GeoDataFrame.from_file
148
149 .. automethod:: geopandas.GeoDataFrame.from_features
150
151 .. automethod:: geopandas.GeoDataFrame.from_postgis
152
153 .. automethod:: geopandas.GeoDataFrame.to_crs
154
155 .. automethod:: geopandas.GeoDataFrame.to_file
156
157 .. automethod:: geopandas.GeoDataFrame.to_json
158
159 .. automethod:: geopandas.GeoDataFrame.to_parquet
160
161 .. automethod:: geopandas.GeoDataFrame.to_feather
162
163 .. automethod:: geopandas.GeoDataFrame.to_postgis
164
165 .. automethod:: geopandas.GeoDataFrame.plot
166
167 .. automethod:: geopandas.GeoDataFrame.rename_geometry
168
169 .. automethod:: geopandas.GeoDataFrame.set_geometry
170
171 .. automethod:: geopandas.GeoDataFrame.explode
172
173 .. automethod:: geopandas.GeoDataFrame.dissolve
174
175 .. autoattribute:: geopandas.GeoDataFrame.__geo_interface__
176
177 All pandas ``DataFrame`` methods are also available, although they may
178 not operate in a meaningful way on the ``geometry`` column and may not
179 return a ``GeoDataFrame`` result even when it would be appropriate to
180 do so.
181
182 Testing
183 -------
184
185 GeoPandas includes specific functions to test its objects.
186
187 .. autofunction:: geopandas.testing.geom_equals
188
189 .. autofunction:: geopandas.testing.geom_almost_equals
190
191 .. autofunction:: geopandas.testing.assert_geoseries_equal
192
193 .. autofunction:: geopandas.testing.assert_geodataframe_equal
194
195
196 Top-level Functions
197 -------------------
198
199 .. currentmodule:: geopandas
200 .. autosummary::
201 :template: autosummary.rst
202 :toctree: reference/
203
204 GeoDataFrame
205 GeoSeries
206 read_file
207 read_parquet
208 read_feather
209 read_postgis
210 sjoin
211 overlay
212 clip
213 tools.geocode
214 tools.collect
215 points_from_xy
216 datasets.get_path
+0
-213
doc/source/set_operations.rst less more
0 .. ipython:: python
1 :suppress:
2
3 import geopandas
4 import matplotlib.pyplot as plt
5 plt.close('all')
6
7
8 Set-Operations with Overlay
9 ============================
10
11 When working with multiple spatial datasets -- especially multiple *polygon* or
12 *line* datasets -- users often wish to create new shapes based on places where
13 those datasets overlap (or don't overlap). These manipulations are often
14 referred using the language of sets -- intersections, unions, and differences.
15 These types of operations are made available in the *geopandas* library through
16 the ``overlay`` function.
17
18 The basic idea is demonstrated by the graphic below but keep in mind that
19 overlays operate at the DataFrame level, not on individual geometries, and the
20 properties from both are retained. In effect, for every shape in the first
21 GeoDataFrame, this operation is executed against every other shape in the other
22 GeoDataFrame:
23
24 .. image:: _static/overlay_operations.png
25
26 **Source: QGIS Documentation**
27
28 (Note to users familiar with the *shapely* library: ``overlay`` can be thought
29 of as offering versions of the standard *shapely* set-operations that deal with
30 the complexities of applying set operations to two *GeoSeries*. The standard
31 *shapely* set-operations are also available as ``GeoSeries`` methods.)
32
33
34 The different Overlay operations
35 --------------------------------
36
37 First, we create some example data:
38
39 .. ipython:: python
40
41 from shapely.geometry import Polygon
42 polys1 = geopandas.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)]),
43 Polygon([(2,2), (4,2), (4,4), (2,4)])])
44 polys2 = geopandas.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)]),
45 Polygon([(3,3), (5,3), (5,5), (3,5)])])
46
47 df1 = geopandas.GeoDataFrame({'geometry': polys1, 'df1':[1,2]})
48 df2 = geopandas.GeoDataFrame({'geometry': polys2, 'df2':[1,2]})
49
50 These two GeoDataFrames have some overlapping areas:
51
52 .. ipython:: python
53
54 ax = df1.plot(color='red');
55 @savefig overlay_example.png width=5in
56 df2.plot(ax=ax, color='green', alpha=0.5);
57
58 We illustrate the different overlay modes with the above example.
59 The ``overlay`` function will determine the set of all individual geometries
60 from overlaying the two input GeoDataFrames. This result covers the area covered
61 by the two input GeoDataFrames, and also preserves all unique regions defined by
62 the combined boundaries of the two GeoDataFrames.
63
64 When using ``how='union'``, all those possible geometries are returned:
65
66 .. ipython:: python
67
68 res_union = geopandas.overlay(df1, df2, how='union')
69 res_union
70
71 ax = res_union.plot(alpha=0.5, cmap='tab10')
72 df1.plot(ax=ax, facecolor='none', edgecolor='k');
73 @savefig overlay_example_union.png width=5in
74 df2.plot(ax=ax, facecolor='none', edgecolor='k');
75
76 The other ``how`` operations will return different subsets of those geometries.
77 With ``how='intersection'``, it returns only those geometries that are contained
78 by both GeoDataFrames:
79
80 .. ipython:: python
81
82 res_intersection = geopandas.overlay(df1, df2, how='intersection')
83 res_intersection
84
85 ax = res_intersection.plot(cmap='tab10')
86 df1.plot(ax=ax, facecolor='none', edgecolor='k');
87 @savefig overlay_example_intersection.png width=5in
88 df2.plot(ax=ax, facecolor='none', edgecolor='k');
89
90 ``how='symmetric_difference'`` is the opposite of ``'intersection'`` and returns
91 the geometries that are only part of one of the GeoDataFrames but not of both:
92
93 .. ipython:: python
94
95 res_symdiff = geopandas.overlay(df1, df2, how='symmetric_difference')
96 res_symdiff
97
98 ax = res_symdiff.plot(cmap='tab10')
99 df1.plot(ax=ax, facecolor='none', edgecolor='k');
100 @savefig overlay_example_symdiff.png width=5in
101 df2.plot(ax=ax, facecolor='none', edgecolor='k');
102
103 To obtain the geometries that are part of ``df1`` but are not contained in
104 ``df2``, you can use ``how='difference'``:
105
106 .. ipython:: python
107
108 res_difference = geopandas.overlay(df1, df2, how='difference')
109 res_difference
110
111 ax = res_difference.plot(cmap='tab10')
112 df1.plot(ax=ax, facecolor='none', edgecolor='k');
113 @savefig overlay_example_difference.png width=5in
114 df2.plot(ax=ax, facecolor='none', edgecolor='k');
115
116 Finally, with ``how='identity'``, the result consists of the surface of ``df1``,
117 but with the geometries obtained from overlaying ``df1`` with ``df2``:
118
119 .. ipython:: python
120
121 res_identity = geopandas.overlay(df1, df2, how='identity')
122 res_identity
123
124 ax = res_identity.plot(cmap='tab10')
125 df1.plot(ax=ax, facecolor='none', edgecolor='k');
126 @savefig overlay_example_identity.png width=5in
127 df2.plot(ax=ax, facecolor='none', edgecolor='k');
128
129
130 Overlay Countries Example
131 -------------------------
132
133 First, we load the countries and cities example datasets and select :
134
135 .. ipython:: python
136
137 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
138 capitals = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))
139
140 # Select South Amarica and some columns
141 countries = world[world['continent'] == "South America"]
142 countries = countries[['geometry', 'name']]
143
144 # Project to crs that uses meters as distance measure
145 countries = countries.to_crs('epsg:3395')
146 capitals = capitals.to_crs('epsg:3395')
147
148 To illustrate the ``overlay`` function, consider the following case in which one
149 wishes to identify the "core" portion of each country -- defined as areas within
150 500km of a capital -- using a ``GeoDataFrame`` of countries and a
151 ``GeoDataFrame`` of capitals.
152
153 .. ipython:: python
154
155 # Look at countries:
156 @savefig world_basic.png width=5in
157 countries.plot();
158
159 # Now buffer cities to find area within 500km.
160 # Check CRS -- World Mercator, units of meters.
161 capitals.crs
162
163 # make 500km buffer
164 capitals['geometry']= capitals.buffer(500000)
165 @savefig capital_buffers.png width=5in
166 capitals.plot();
167
168
169 To select only the portion of countries within 500km of a capital, we specify the ``how`` option to be "intersect", which creates a new set of polygons where these two layers overlap:
170
171 .. ipython:: python
172
173 country_cores = geopandas.overlay(countries, capitals, how='intersection')
174 @savefig country_cores.png width=5in
175 country_cores.plot(alpha=0.5, edgecolor='k', cmap='tab10');
176
177 Changing the "how" option allows for different types of overlay operations. For example, if we were interested in the portions of countries *far* from capitals (the peripheries), we would compute the difference of the two.
178
179 .. ipython:: python
180
181 country_peripheries = geopandas.overlay(countries, capitals, how='difference')
182 @savefig country_peripheries.png width=5in
183 country_peripheries.plot(alpha=0.5, edgecolor='k', cmap='tab10');
184
185
186 .. ipython:: python
187 :suppress:
188
189 import matplotlib.pyplot as plt
190 plt.close('all')
191
192
193 keep_geom_type keyword
194 ----------------------
195
196 In default settings, ``overlay`` returns only geometries of the same geometry type as df1
197 (left one) has, where Polygon and MultiPolygon is considered as a same type (other types likewise).
198 You can control this behavior using ``keep_geom_type`` option, which is set to
199 True by default. Once set to False, ``overlay`` will return all geometry types resulting from
200 selected set-operation. Different types can result for example from intersection of touching geometries,
201 where two polygons intersects in a line or a point.
202
203
204 More Examples
205 -------------
206
207 A larger set of examples of the use of ``overlay`` can be found `here <http://nbviewer.jupyter.org/github/geopandas/geopandas/blob/master/examples/overlays.ipynb>`_
208
209
210
211 .. toctree::
212 :maxdepth: 2
0 name: geopandas-dev
1 channels:
2 - conda-forge
3 dependencies:
4 # required
5 - fiona>=1.8
6 - pandas>=0.24
7 - pyproj>=2.2.0
8 - shapely>=1.6
9
10 # geodatabase access
11 - psycopg2>=2.5.1
12 - SQLAlchemy>=0.8.3
13
14 # geocoding
15 - geopy
16
17 # plotting
18 - matplotlib>=2.2
19 - mapclassify
20
21 # testing
22 - pytest>=3.1.0
23 - pytest-cov
24 - codecov
25
26 # spatial access methods
27 - rtree>=0.8
28
29 # styling
30 - black
31 - pre-commit
0 name: geopandas-dev
0 name: geopandas
11 channels:
2 - conda-forge
2 - conda-forge
33 dependencies:
4 # required
5 - fiona>=1.7
6 - pandas>=0.23.4
7 - pyproj>=2.2.0
8 - shapely>=1.5
9
10 # geodatabase access
11 - psycopg2>=2.5.1
12 - SQLAlchemy>=0.8.3
13
14 # geocoding
15 - geopy
16
17 # plotting
18 - descartes>=1.0
19 - matplotlib>=2.0
20
21 # testing
22 - mock>=1.0.1 # technically not need for python >= 3.3
23 - pytest>=3.1.0
24 - pytest-cov
25 - codecov
26
27 # spatial access methods
28 - rtree>=0.8
29
30 # styling
31 - black
32 - pre-commit
4 - geopandas
5 - shapely
6 - fiona
7 - pyproj
8 - pygeos
9 - rtree
10 - mapclassify
11 - libpysal
12 - matplotlib
13 - geopy
14 - cartopy
15 - pyepsg
16 - contextily
17 - rasterio
18 - geoplot
19 - folium
0 # Examples Gallery
1
2 Examples are available in the [documentation](https://geopandas.readthedocs.io/en/latest/gallery/index.html). Source Jupyter notebooks are in [`doc/source/gallery`](https://github.com/geopandas/geopandas/tree/master/doc/source/gallery).
+0
-8
examples/README.txt less more
0 .. _gallery:
1
2 Examples Gallery
3 ----------------
4
5 The following examples show off the functionality in GeoPandas. They highlight
6 many of the things you can do with this package, and show off some
7 best-practices.
+0
-106
examples/cartopy_convert.py less more
0 """
1 Plotting with CartoPy and GeoPandas
2 -----------------------------------
3
4 Converting between GeoPandas and CartoPy for visualizing data.
5
6 `CartoPy <http://scitools.org.uk/cartopy/>`_ is a Python library
7 that specializes in creating geospatial
8 visualizations. It has a slightly different way of representing
9 Coordinate Reference Systems (CRS) as well as constructing plots.
10 This example steps through a round-trip transfer of data
11 between GeoPandas and CartoPy.
12
13 First we'll load in the data using GeoPandas.
14 """
15 # sphinx_gallery_thumbnail_number = 7
16 import matplotlib.pyplot as plt
17 import geopandas
18 from cartopy import crs as ccrs
19
20 path = geopandas.datasets.get_path('naturalearth_lowres')
21 df = geopandas.read_file(path)
22 # Add a column we'll use later
23 df['gdp_pp'] = df['gdp_md_est'] / df['pop_est']
24
25 ####################################################################
26 # First we'll visualize the map using GeoPandas
27 df.plot()
28
29 ###############################################################################
30 # Plotting with CartoPy
31 # =====================
32 #
33 # Cartopy also handles Shapely objects well, but it uses a different system for
34 # CRS. To plot this data with CartoPy, we'll first need to project it into a
35 # new CRS. We'll use a CRS defined within CartoPy and use the GeoPandas
36 # ``to_crs`` method to make the transformation.
37
38 # Define the CartoPy CRS object.
39 crs = ccrs.AzimuthalEquidistant()
40
41 # This can be converted into a `proj4` string/dict compatible with GeoPandas
42 crs_proj4 = crs.proj4_init
43 df_ae = df.to_crs(crs_proj4)
44
45 # Here's what the plot looks like in GeoPandas
46 df_ae.plot()
47
48 ###############################################################################
49 # Now that our data is in a CRS based off of CartoPy, we can easily
50 # plot it.
51
52 fig, ax = plt.subplots(subplot_kw={'projection': crs})
53 ax.add_geometries(df_ae['geometry'], crs=crs)
54
55 ###############################################################################
56 # Note that we could have easily done this with an EPSG code like so:
57 crs_epsg = ccrs.epsg('3857')
58 df_epsg = df.to_crs(epsg='3857')
59
60 # Generate a figure with two axes, one for CartoPy, one for GeoPandas
61 fig, axs = plt.subplots(1, 2, subplot_kw={'projection': crs_epsg},
62 figsize=(10, 5))
63 # Make the CartoPy plot
64 axs[0].add_geometries(df_epsg['geometry'], crs=crs_epsg,
65 facecolor='white', edgecolor='black')
66 # Make the GeoPandas plot
67 df_epsg.plot(ax=axs[1], color='white', edgecolor='black')
68
69 ###############################################################################
70 # CartoPy to GeoPandas
71 # ====================
72 #
73 # Next we'll perform a CRS projection in CartoPy, and then convert it
74 # back into a GeoPandas object.
75
76 crs_new = ccrs.AlbersEqualArea()
77 new_geometries = [crs_new.project_geometry(ii, src_crs=crs)
78 for ii in df_ae['geometry'].values]
79
80 fig, ax = plt.subplots(subplot_kw={'projection': crs_new})
81 ax.add_geometries(new_geometries, crs=crs_new)
82
83 ###############################################################################
84 # Now that we've created new Shapely objects with the CartoPy CRS,
85 # we can use this to create a GeoDataFrame.
86
87 df_aea = geopandas.GeoDataFrame(df['gdp_pp'], geometry=new_geometries,
88 crs=crs_new.proj4_init)
89 df_aea.plot()
90
91 ###############################################################################
92 # We can even combine these into the same figure. Here we'll plot the
93 # shapes of the countries with CartoPy. We'll then calculate the centroid
94 # of each with GeoPandas and plot it on top.
95
96 # Generate a CartoPy figure and add the countries to it
97 fig, ax = plt.subplots(subplot_kw={'projection': crs_new})
98 ax.add_geometries(new_geometries, crs=crs_new)
99
100 # Calculate centroids and plot
101 df_aea_centroids = df_aea.geometry.centroid
102 # Need to provide "zorder" to ensure the points are plotted above the polygons
103 df_aea_centroids.plot(ax=ax, markersize=5, color='r', zorder=10)
104
105 plt.show()
+0
-542
examples/choro_legends.ipynb less more
0 {
1 "cells": [
2 {
3 "cell_type": "code",
4 "execution_count": 1,
5 "metadata": {},
6 "outputs": [],
7 "source": [
8 "import geopandas\n",
9 "from geopandas import read_file"
10 ]
11 },
12 {
13 "cell_type": "code",
14 "execution_count": 2,
15 "metadata": {},
16 "outputs": [
17 {
18 "data": {
19 "text/plain": [
20 "'2.2.0'"
21 ]
22 },
23 "execution_count": 2,
24 "metadata": {},
25 "output_type": "execute_result"
26 }
27 ],
28 "source": [
29 "import mapclassify\n",
30 "mapclassify.__version__"
31 ]
32 },
33 {
34 "cell_type": "code",
35 "execution_count": 3,
36 "metadata": {},
37 "outputs": [
38 {
39 "data": {
40 "text/plain": [
41 "'4.2.0'"
42 ]
43 },
44 "execution_count": 3,
45 "metadata": {},
46 "output_type": "execute_result"
47 }
48 ],
49 "source": [
50 "import libpysal\n",
51 "libpysal.__version__"
52 ]
53 },
54 {
55 "cell_type": "code",
56 "execution_count": 5,
57 "metadata": {},
58 "outputs": [
59 {
60 "name": "stdout",
61 "output_type": "stream",
62 "text": [
63 " Name Description Installed\n",
64 "0 10740 Albuquerque, New Mexico, Census 2000 Tract Data True\n",
65 "1 AirBnB Airbnb rentals, socioeconomics, and crime in C... False\n",
66 "2 Atlanta Atlanta, GA region homicide counts and rates False\n",
67 "3 Baltimore Baltimore house sales prices and hedonics False\n",
68 "4 Bostonhsg Boston housing and neighborhood data False\n",
69 "5 Buenosaires Electoral Data for 1999 Argentinean Elections False\n",
70 "6 Charleston1 2000 Census Tract Data for Charleston, SC MSA... False\n",
71 "7 Charleston2 1998 and 2001 Zip Code Business Patterns (Cen... False\n",
72 "8 Chicago Health Chicago Health + Socio-Economics False\n",
73 "9 Chile Labor Labor Markets in Chile (1982-2002) False\n",
74 "10 Chile Migration Internal Migration in Chile (1977-2002) False\n",
75 "11 Cincinnati 2008 Cincinnati Crime + Socio-Demographics False\n",
76 "12 Cleveland 2015 sales prices of homes in Cleveland, OH. False\n",
77 "13 Columbus Columbus neighborhood crime False\n",
78 "14 Denver Demographics and housing in Denver neighborho... False\n",
79 "15 Elections 2012 and 2016 Presidential Elections False\n",
80 "16 Grid100 Grid with simulated variables False\n",
81 "17 Groceries 2015 Chicago supermarkets False\n",
82 "18 Guerry Moral statistics of France (Guerry, 1833) False\n",
83 "19 Health Indicators Chicago Health Indicators (2005-11) False\n",
84 "20 Health+ 2000 Health, Income + Diversity False\n",
85 "21 Hickory1 2000 Census Tract Data for Hickory, NC MSA an... False\n",
86 "22 Hickory2 1998 and 2001 Zip Code Business Patterns (Cen... False\n",
87 "23 Home Sales 2014-15 Home Sales in King County, WA False\n",
88 "24 Houston Houston, TX region homicide counts and rates False\n",
89 "25 Juvenile Cardiff juvenile delinquent residences False\n",
90 "26 Lansing1 2000 Census Tract Data for Lansing, MI MSA an... False\n",
91 "27 Lansing2 1998 and 2001 Zip Code Business Patterns (Cen... False\n",
92 "28 Laozone Ozone measures at monitoring stations in Los ... False\n",
93 "29 LasRosas Corn yield, fertilizer and field data for pre... False\n",
94 "30 Line Line Shapefile True\n",
95 "31 Liquor Stores 2015 Chicago Liquor Stores False\n",
96 "32 Malaria Malaria incidence and population (1973, 95, 9... False\n",
97 "33 Milwaukee1 2000 Census Tract Data for Milwaukee, WI MSA False\n",
98 "34 Milwaukee2 1998 and 2001 Zip Code Business Patterns (Cen... False\n",
99 "35 NCOVR US county homicides 1960-1990 False\n",
100 "36 NDVI Normalized Difference Vegetation Index grid False\n",
101 "37 NYC Demographic and housing data for New York Cit... False\n",
102 "38 NYC Earnings Block-level Earnings in NYC (2002-14) False\n",
103 "39 NYC Education NYC Education (2000) False\n",
104 "40 NYC Neighborhoods Demographics for New York City neighborhoods False\n",
105 "41 NYC Socio-Demographics NYC Education + Socio-Demographics False\n",
106 "42 Natregimes NCOVR with regimes (book/PySAL) False\n",
107 "43 Nepal Health, poverty and education indicators for ... False\n",
108 "44 Ohiolung Ohio lung cancer data, 1968, 1978, 1988 False\n",
109 "45 Orlando1 2000 Census Tract Data for Orlando, FL MSA an... False\n",
110 "46 Orlando2 1998 and 2001 Zip Code Business Patterns (Cen... False\n",
111 "47 Oz9799 Monthly ozone data, 1997-99 False\n",
112 "48 Phoenix ACS Phoenix American Community Survey Data (2010,... False\n",
113 "49 Pittsburgh Pittsburgh homicide locations False\n",
114 "50 Point Point Shapefile True\n",
115 "51 Police Police expenditures Mississippi counties False\n",
116 "52 Polygon Polygon Shapefile True\n",
117 "53 Polygon_Holes Example to test treatment of holes True\n",
118 "54 Rio Grande do Sul Cities of the Brazilian State of Rio Grande do... False\n",
119 "55 SIDS North Carolina county SIDS death counts False\n",
120 "56 SIDS2 North Carolina county SIDS death counts and r... False\n",
121 "57 Sacramento1 2000 Census Tract Data for Sacramento MSA False\n",
122 "58 Sacramento2 1998 and 2001 Zip Code Business Patterns (Cen... False\n",
123 "59 SanFran Crime July-Dec 2012 crime incidents in San Francisc... False\n",
124 "60 Savannah1 2000 Census Tract Data for Savannah, GA MSA a... False\n",
125 "61 Savannah2 1998 and 2001 Zip Code Business Patterns (Cen... False\n",
126 "62 Scotlip Male lip cancer in Scotland, 1975-80 False\n",
127 "63 Seattle1 2000 Census Tract Data for Seattle, WA MSA an... False\n",
128 "64 Seattle2 1998 and 2001 Zip Code Business Patterns (Cen... False\n",
129 "65 South US Southern county homicides 1960-1990 False\n",
130 "66 StLouis St Louis region county homicide counts and rates False\n",
131 "67 Tampa1 2000 Census Tract Data for Tampa, FL MSA and ... False\n",
132 "68 arcgis arcgis testing files True\n",
133 "69 baltim Baltimore house sales prices and hedonics 1978 True\n",
134 "70 berlin Prenzlauer Berg neighborhood AirBnB data from ... True\n",
135 "71 book Synthetic data to illustrate spatial weights True\n",
136 "72 burkitt Burkitt's lymphoma in the Western Nile distric... True\n",
137 "73 calemp Employment density for California counties True\n",
138 "74 chicago Chicago neighborhoods True\n",
139 "75 clearwater mgwr testing dataset False\n",
140 "76 columbus Columbus neighborhood crime data 1980 True\n",
141 "77 desmith Small dataset to illustrate Moran's I statistic True\n",
142 "78 geodanet Datasets from geodanet for network analysis True\n",
143 "79 georgia Various socio-economic variables for counties ... True\n",
144 "80 juvenile Residences of juvenile offenders in Cardiff, UK True\n",
145 "81 mexico Decennial per capita incomes of Mexican states... True\n",
146 "82 networks Datasets used for network testing True\n",
147 "83 newHaven Network testing dataset False\n",
148 "84 nyc_bikes New York City Bike Trips False\n",
149 "85 sids2 North Carolina county SIDS death counts and rates True\n",
150 "86 snow_maps Public water pumps and Cholera deaths in Londo... True\n",
151 "87 stl Homicides and selected socio-economic characte... True\n",
152 "88 street_net_pts Street network points True\n",
153 "89 taz Traffic Analysis Zones in So. California False\n",
154 "90 tokyo Tokyo Mortality data True\n",
155 "91 us_income Per-capita income for the lower 48 US states 1... True\n",
156 "92 virginia Virginia counties shapefile True\n",
157 "93 wmat Datasets used for spatial weights testing True\n"
158 ]
159 }
160 ],
161 "source": [
162 "libpysal.examples.available()"
163 ]
164 },
165 {
166 "cell_type": "code",
167 "execution_count": 6,
168 "metadata": {},
169 "outputs": [
170 {
171 "name": "stdout",
172 "output_type": "stream",
173 "text": [
174 "Downloading South to /home/jovyan/.local/pysal_data/South\n"
175 ]
176 }
177 ],
178 "source": [
179 "_ = libpysal.examples.load_example('South')\n",
180 "pth = libpysal.examples.get_path('south.shp')"
181 ]
182 },
183 {
184 "cell_type": "code",
185 "execution_count": 7,
186 "metadata": {},
187 "outputs": [],
188 "source": [
189 "df = read_file(pth)"
190 ]
191 },
192 {
193 "cell_type": "markdown",
194 "metadata": {},
195 "source": [
196 "## New default legend formatting"
197 ]
198 },
199 {
200 "cell_type": "code",
201 "execution_count": 8,
202 "metadata": {},
203 "outputs": [
204 {
205 "data": {
206 "image/png": "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\n",
207 "text/plain": [
208 "<Figure size 432x288 with 1 Axes>"
209 ]
210 },
211 "metadata": {
212 "needs_background": "light"
213 },
214 "output_type": "display_data"
215 }
216 ],
217 "source": [
218 "%matplotlib inline\n",
219 "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n",
220 " cmap='BuPu', legend=True,\n",
221 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)})"
222 ]
223 },
224 {
225 "cell_type": "code",
226 "execution_count": 9,
227 "metadata": {},
228 "outputs": [
229 {
230 "data": {
231 "text/plain": [
232 "['[ 0.00, 3.21]', '( 3.21, 6.25]', '( 6.25, 9.96]', '( 9.96, 92.94]']"
233 ]
234 },
235 "execution_count": 9,
236 "metadata": {},
237 "output_type": "execute_result"
238 }
239 ],
240 "source": [
241 "labels = [t.get_text() for t in ax.get_legend().get_texts()]\n",
242 "labels"
243 ]
244 },
245 {
246 "cell_type": "code",
247 "execution_count": 10,
248 "metadata": {},
249 "outputs": [
250 {
251 "data": {
252 "text/plain": [
253 "Quantiles \n",
254 "\n",
255 " Interval Count\n",
256 "----------------------\n",
257 "[ 0.00, 3.21] | 353\n",
258 "( 3.21, 6.25] | 353\n",
259 "( 6.25, 9.96] | 353\n",
260 "( 9.96, 92.94] | 353"
261 ]
262 },
263 "execution_count": 10,
264 "metadata": {},
265 "output_type": "execute_result"
266 }
267 ],
268 "source": [
269 "q4 = mapclassify.Quantiles(df.HR60, k=4)\n",
270 "q4"
271 ]
272 },
273 {
274 "cell_type": "code",
275 "execution_count": 11,
276 "metadata": {},
277 "outputs": [
278 {
279 "data": {
280 "text/plain": [
281 "True"
282 ]
283 },
284 "execution_count": 11,
285 "metadata": {},
286 "output_type": "execute_result"
287 }
288 ],
289 "source": [
290 "labels == q4.get_legend_classes()"
291 ]
292 },
293 {
294 "cell_type": "markdown",
295 "metadata": {},
296 "source": [
297 "Note that in this case, the first interval is closed on the minimum value in the dataset. The other intervals have an open lower bound. This is now displayed in the legend."
298 ]
299 },
300 {
301 "cell_type": "markdown",
302 "metadata": {},
303 "source": [
304 "## Overriding numerical format"
305 ]
306 },
307 {
308 "cell_type": "code",
309 "execution_count": 12,
310 "metadata": {},
311 "outputs": [
312 {
313 "data": {
314 "image/png": "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\n",
315 "text/plain": [
316 "<Figure size 432x288 with 1 Axes>"
317 ]
318 },
319 "metadata": {
320 "needs_background": "light"
321 },
322 "output_type": "display_data"
323 }
324 ],
325 "source": [
326 "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n",
327 " cmap='BuPu', legend=True,\n",
328 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)},\n",
329 " )"
330 ]
331 },
332 {
333 "cell_type": "code",
334 "execution_count": 13,
335 "metadata": {},
336 "outputs": [
337 {
338 "data": {
339 "image/png": "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\n",
340 "text/plain": [
341 "<Figure size 432x288 with 1 Axes>"
342 ]
343 },
344 "metadata": {
345 "needs_background": "light"
346 },
347 "output_type": "display_data"
348 }
349 ],
350 "source": [
351 "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n",
352 " cmap='BuPu', legend=True,\n",
353 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5), 'fmt':\"{:.4f}\"})"
354 ]
355 },
356 {
357 "cell_type": "code",
358 "execution_count": 14,
359 "metadata": {},
360 "outputs": [
361 {
362 "data": {
363 "image/png": "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\n",
364 "text/plain": [
365 "<Figure size 432x288 with 1 Axes>"
366 ]
367 },
368 "metadata": {
369 "needs_background": "light"
370 },
371 "output_type": "display_data"
372 }
373 ],
374 "source": [
375 "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n",
376 " cmap='BuPu', legend=True,\n",
377 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5), 'fmt':\"{:.0f}\"})"
378 ]
379 },
380 {
381 "cell_type": "markdown",
382 "metadata": {},
383 "source": [
384 "The new legends_kwds arg `fmt` takes a string to set the numerical formatting."
385 ]
386 },
387 {
388 "cell_type": "markdown",
389 "metadata": {},
390 "source": [
391 "## When first class lower bound < y.min()"
392 ]
393 },
394 {
395 "cell_type": "code",
396 "execution_count": 15,
397 "metadata": {},
398 "outputs": [
399 {
400 "data": {
401 "image/png": "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\n",
402 "text/plain": [
403 "<Figure size 432x288 with 1 Axes>"
404 ]
405 },
406 "metadata": {
407 "needs_background": "light"
408 },
409 "output_type": "display_data"
410 }
411 ],
412 "source": [
413 "ax = df.plot(column='HR60', scheme='BoxPlot', \\\n",
414 " cmap='BuPu', legend=True,\n",
415 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n",
416 " 'fmt': \"{:.0f}\"})"
417 ]
418 },
419 {
420 "cell_type": "code",
421 "execution_count": 16,
422 "metadata": {},
423 "outputs": [
424 {
425 "data": {
426 "text/plain": [
427 "BoxPlot \n",
428 "\n",
429 " Interval Count\n",
430 "----------------------\n",
431 "( -inf, -6.90] | 0\n",
432 "(-6.90, 3.21] | 353\n",
433 "( 3.21, 6.25] | 353\n",
434 "( 6.25, 9.96] | 353\n",
435 "( 9.96, 20.07] | 311\n",
436 "(20.07, 92.94] | 42"
437 ]
438 },
439 "execution_count": 16,
440 "metadata": {},
441 "output_type": "execute_result"
442 }
443 ],
444 "source": [
445 "bp = mapclassify.BoxPlot(df.HR60)\n",
446 "bp\n"
447 ]
448 },
449 {
450 "cell_type": "code",
451 "execution_count": 17,
452 "metadata": {},
453 "outputs": [
454 {
455 "data": {
456 "text/plain": [
457 "['(-inf, -7]',\n",
458 " '( -7, 3]',\n",
459 " '( 3, 6]',\n",
460 " '( 6, 10]',\n",
461 " '( 10, 20]',\n",
462 " '( 20, 93]']"
463 ]
464 },
465 "execution_count": 17,
466 "metadata": {},
467 "output_type": "execute_result"
468 }
469 ],
470 "source": [
471 "bp.get_legend_classes(fmt=\"{:.0f}\")"
472 ]
473 },
474 {
475 "cell_type": "markdown",
476 "metadata": {},
477 "source": [
478 "In some classifiers the user should be aware that the lower (upper) bound of the first (last) interval is not equal to the minimum (maximum) of the attribute values. This is useful to detect extreme values and highly skewed distributions."
479 ]
480 },
481 {
482 "cell_type": "markdown",
483 "metadata": {},
484 "source": [
485 "## Categorical Data"
486 ]
487 },
488 {
489 "cell_type": "code",
490 "execution_count": 18,
491 "metadata": {},
492 "outputs": [
493 {
494 "data": {
495 "image/png": "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\n",
496 "text/plain": [
497 "<Figure size 432x288 with 1 Axes>"
498 ]
499 },
500 "metadata": {
501 "needs_background": "light"
502 },
503 "output_type": "display_data"
504 }
505 ],
506 "source": [
507 "ax = df.plot(column='STATE_NAME', categorical=True, legend=True, \\\n",
508 " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n",
509 " 'fmt': \"{:.0f}\"}) # fmt is ignored for categorical data"
510 ]
511 },
512 {
513 "cell_type": "code",
514 "execution_count": null,
515 "metadata": {},
516 "outputs": [],
517 "source": []
518 }
519 ],
520 "metadata": {
521 "kernelspec": {
522 "display_name": "Python 3",
523 "language": "python",
524 "name": "python3"
525 },
526 "language_info": {
527 "codemirror_mode": {
528 "name": "ipython",
529 "version": 3
530 },
531 "file_extension": ".py",
532 "mimetype": "text/x-python",
533 "name": "python",
534 "nbconvert_exporter": "python",
535 "pygments_lexer": "ipython3",
536 "version": "3.7.3"
537 }
538 },
539 "nbformat": 4,
540 "nbformat_minor": 4
541 }
+0
-861
examples/choropleths.ipynb less more
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Choropleth classification schemes from PySAL for use with GeoPandas\n",
7 "<img src=\"http://pysal.readthedocs.io/en/latest/_static/images/socal_3.jpg\" width=\"200\" align=\"right\" alt=\"PySAL image\" title=\"PySAL image\">\n",
8 "PySAL is a [Spatial Analysis Library](), which packages fast spatial algorithms used in various fields. These include Exploratory spatial data analysis, spatial inequality analysis, spatial analysis on networks, spatial dynamics, and many more.\n",
9 "\n",
10 "It is used under the hood in geopandas when plotting measures with a set of colors. There are many ways to classify data into different bins, depending on a number of classification schemes.\n",
11 "\n",
12 "<img src=\"http://alumni.media.mit.edu/~tpminka/courses/36-350.2001/lectures/day11/boston-kmeans.png\" width=\"300\">\n",
13 "\n",
14 "For example, if we have 20 countries whose average annual temperature varies between 5C and 25C, we can classify them in 4 bins by:\n",
15 "* Quantiles\n",
16 " - Separates the rows into equal parts, 5 countries per bin.\n",
17 "* Equal Intervals\n",
18 " - Separates the measure's interval into equal parts, 5C per bin.\n",
19 "* Natural Breaks (Fischer Jenks)\n",
20 " - This algorithm tries to split the rows into naturaly occurring clusters. The numbers per bin will depend on how the observations are located on the interval."
21 ]
22 },
23 {
24 "cell_type": "code",
25 "execution_count": 1,
26 "metadata": {
27 "ExecuteTime": {
28 "end_time": "2017-12-15T21:29:37.736444Z",
29 "start_time": "2017-12-15T21:29:37.716444Z"
30 },
31 "collapsed": true
32 },
33 "outputs": [],
34 "source": [
35 "%matplotlib inline\n",
36 "import geopandas as gpd\n",
37 "import matplotlib.pyplot as plt"
38 ]
39 },
40 {
41 "cell_type": "code",
42 "execution_count": 2,
43 "metadata": {
44 "ExecuteTime": {
45 "end_time": "2017-12-15T21:29:39.866422Z",
46 "start_time": "2017-12-15T21:29:39.846422Z"
47 }
48 },
49 "outputs": [
50 {
51 "name": "stdout",
52 "output_type": "stream",
53 "text": [
54 "Observations, Attributes: (49, 21)\n"
55 ]
56 },
57 {
58 "data": {
59 "text/html": [
60 "<div>\n",
61 "<style>\n",
62 " .dataframe thead tr:only-child th {\n",
63 " text-align: right;\n",
64 " }\n",
65 "\n",
66 " .dataframe thead th {\n",
67 " text-align: left;\n",
68 " }\n",
69 "\n",
70 " .dataframe tbody tr th {\n",
71 " vertical-align: top;\n",
72 " }\n",
73 "</style>\n",
74 "<table border=\"1\" class=\"dataframe\">\n",
75 " <thead>\n",
76 " <tr style=\"text-align: right;\">\n",
77 " <th></th>\n",
78 " <th>AREA</th>\n",
79 " <th>PERIMETER</th>\n",
80 " <th>COLUMBUS_</th>\n",
81 " <th>COLUMBUS_I</th>\n",
82 " <th>POLYID</th>\n",
83 " <th>NEIG</th>\n",
84 " <th>HOVAL</th>\n",
85 " <th>INC</th>\n",
86 " <th>CRIME</th>\n",
87 " <th>OPEN</th>\n",
88 " <th>...</th>\n",
89 " <th>DISCBD</th>\n",
90 " <th>X</th>\n",
91 " <th>Y</th>\n",
92 " <th>NSA</th>\n",
93 " <th>NSB</th>\n",
94 " <th>EW</th>\n",
95 " <th>CP</th>\n",
96 " <th>THOUS</th>\n",
97 " <th>NEIGNO</th>\n",
98 " <th>geometry</th>\n",
99 " </tr>\n",
100 " </thead>\n",
101 " <tbody>\n",
102 " <tr>\n",
103 " <th>0</th>\n",
104 " <td>0.309441</td>\n",
105 " <td>2.440629</td>\n",
106 " <td>2</td>\n",
107 " <td>5</td>\n",
108 " <td>1</td>\n",
109 " <td>5</td>\n",
110 " <td>80.467003</td>\n",
111 " <td>19.531</td>\n",
112 " <td>15.725980</td>\n",
113 " <td>2.850747</td>\n",
114 " <td>...</td>\n",
115 " <td>5.03</td>\n",
116 " <td>38.799999</td>\n",
117 " <td>44.070000</td>\n",
118 " <td>1.0</td>\n",
119 " <td>1.0</td>\n",
120 " <td>1.0</td>\n",
121 " <td>0.0</td>\n",
122 " <td>1000.0</td>\n",
123 " <td>1005.0</td>\n",
124 " <td>POLYGON ((8.624129295349121 14.23698043823242,...</td>\n",
125 " </tr>\n",
126 " <tr>\n",
127 " <th>1</th>\n",
128 " <td>0.259329</td>\n",
129 " <td>2.236939</td>\n",
130 " <td>3</td>\n",
131 " <td>1</td>\n",
132 " <td>2</td>\n",
133 " <td>1</td>\n",
134 " <td>44.567001</td>\n",
135 " <td>21.232</td>\n",
136 " <td>18.801754</td>\n",
137 " <td>5.296720</td>\n",
138 " <td>...</td>\n",
139 " <td>4.27</td>\n",
140 " <td>35.619999</td>\n",
141 " <td>42.380001</td>\n",
142 " <td>1.0</td>\n",
143 " <td>1.0</td>\n",
144 " <td>0.0</td>\n",
145 " <td>0.0</td>\n",
146 " <td>1000.0</td>\n",
147 " <td>1001.0</td>\n",
148 " <td>POLYGON ((8.252790451049805 14.23694038391113,...</td>\n",
149 " </tr>\n",
150 " <tr>\n",
151 " <th>2</th>\n",
152 " <td>0.192468</td>\n",
153 " <td>2.187547</td>\n",
154 " <td>4</td>\n",
155 " <td>6</td>\n",
156 " <td>3</td>\n",
157 " <td>6</td>\n",
158 " <td>26.350000</td>\n",
159 " <td>15.956</td>\n",
160 " <td>30.626781</td>\n",
161 " <td>4.534649</td>\n",
162 " <td>...</td>\n",
163 " <td>3.89</td>\n",
164 " <td>39.820000</td>\n",
165 " <td>41.180000</td>\n",
166 " <td>1.0</td>\n",
167 " <td>1.0</td>\n",
168 " <td>1.0</td>\n",
169 " <td>0.0</td>\n",
170 " <td>1000.0</td>\n",
171 " <td>1006.0</td>\n",
172 " <td>POLYGON ((8.653305053710938 14.00809001922607,...</td>\n",
173 " </tr>\n",
174 " <tr>\n",
175 " <th>3</th>\n",
176 " <td>0.083841</td>\n",
177 " <td>1.427635</td>\n",
178 " <td>5</td>\n",
179 " <td>2</td>\n",
180 " <td>4</td>\n",
181 " <td>2</td>\n",
182 " <td>33.200001</td>\n",
183 " <td>4.477</td>\n",
184 " <td>32.387760</td>\n",
185 " <td>0.394427</td>\n",
186 " <td>...</td>\n",
187 " <td>3.70</td>\n",
188 " <td>36.500000</td>\n",
189 " <td>40.520000</td>\n",
190 " <td>1.0</td>\n",
191 " <td>1.0</td>\n",
192 " <td>0.0</td>\n",
193 " <td>0.0</td>\n",
194 " <td>1000.0</td>\n",
195 " <td>1002.0</td>\n",
196 " <td>POLYGON ((8.459499359130859 13.82034969329834,...</td>\n",
197 " </tr>\n",
198 " <tr>\n",
199 " <th>4</th>\n",
200 " <td>0.488888</td>\n",
201 " <td>2.997133</td>\n",
202 " <td>6</td>\n",
203 " <td>7</td>\n",
204 " <td>5</td>\n",
205 " <td>7</td>\n",
206 " <td>23.225000</td>\n",
207 " <td>11.252</td>\n",
208 " <td>50.731510</td>\n",
209 " <td>0.405664</td>\n",
210 " <td>...</td>\n",
211 " <td>2.83</td>\n",
212 " <td>40.009998</td>\n",
213 " <td>38.000000</td>\n",
214 " <td>1.0</td>\n",
215 " <td>1.0</td>\n",
216 " <td>1.0</td>\n",
217 " <td>0.0</td>\n",
218 " <td>1000.0</td>\n",
219 " <td>1007.0</td>\n",
220 " <td>POLYGON ((8.685274124145508 13.63951969146729,...</td>\n",
221 " </tr>\n",
222 " </tbody>\n",
223 "</table>\n",
224 "<p>5 rows × 21 columns</p>\n",
225 "</div>"
226 ],
227 "text/plain": [
228 " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n",
229 "0 0.309441 2.440629 2 5 1 5 80.467003 \n",
230 "1 0.259329 2.236939 3 1 2 1 44.567001 \n",
231 "2 0.192468 2.187547 4 6 3 6 26.350000 \n",
232 "3 0.083841 1.427635 5 2 4 2 33.200001 \n",
233 "4 0.488888 2.997133 6 7 5 7 23.225000 \n",
234 "\n",
235 " INC CRIME OPEN \\\n",
236 "0 19.531 15.725980 2.850747 \n",
237 "1 21.232 18.801754 5.296720 \n",
238 "2 15.956 30.626781 4.534649 \n",
239 "3 4.477 32.387760 0.394427 \n",
240 "4 11.252 50.731510 0.405664 \n",
241 "\n",
242 " ... DISCBD X \\\n",
243 "0 ... 5.03 38.799999 \n",
244 "1 ... 4.27 35.619999 \n",
245 "2 ... 3.89 39.820000 \n",
246 "3 ... 3.70 36.500000 \n",
247 "4 ... 2.83 40.009998 \n",
248 "\n",
249 " Y NSA NSB EW CP THOUS NEIGNO \\\n",
250 "0 44.070000 1.0 1.0 1.0 0.0 1000.0 1005.0 \n",
251 "1 42.380001 1.0 1.0 0.0 0.0 1000.0 1001.0 \n",
252 "2 41.180000 1.0 1.0 1.0 0.0 1000.0 1006.0 \n",
253 "3 40.520000 1.0 1.0 0.0 0.0 1000.0 1002.0 \n",
254 "4 38.000000 1.0 1.0 1.0 0.0 1000.0 1007.0 \n",
255 "\n",
256 " geometry \n",
257 "0 POLYGON ((8.624129295349121 14.23698043823242,... \n",
258 "1 POLYGON ((8.252790451049805 14.23694038391113,... \n",
259 "2 POLYGON ((8.653305053710938 14.00809001922607,... \n",
260 "3 POLYGON ((8.459499359130859 13.82034969329834,... \n",
261 "4 POLYGON ((8.685274124145508 13.63951969146729,... \n",
262 "\n",
263 "[5 rows x 21 columns]"
264 ]
265 },
266 "execution_count": 2,
267 "metadata": {},
268 "output_type": "execute_result"
269 }
270 ],
271 "source": [
272 "# We use a PySAL example shapefile\n",
273 "import pysal as ps\n",
274 "\n",
275 "pth = ps.examples.get_path(\"columbus.shp\")\n",
276 "tracts = gpd.GeoDataFrame.from_file(pth)\n",
277 "print('Observations, Attributes:',tracts.shape)\n",
278 "tracts.head()"
279 ]
280 },
281 {
282 "cell_type": "markdown",
283 "metadata": {},
284 "source": [
285 "## Plotting the CRIME variable\n",
286 "In this example, we are taking a look at neighbourhood-level statistics for the city of Columbus, OH. We'd like to have an idea of how the crime rate variable is distributed around the city.\n",
287 "\n",
288 "From the [shapefile's metadata](https://github.com/pysal/pysal/blob/master/pysal/examples/columbus/columbus.html):\n",
289 ">**CRIME**: residential burglaries and vehicle thefts per 1000 households"
290 ]
291 },
292 {
293 "cell_type": "code",
294 "execution_count": 3,
295 "metadata": {},
296 "outputs": [
297 {
298 "data": {
299 "image/png": "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\nl6J2iYOPAwAAAABJRU5ErkJggg==\n",
300 "text/plain": [
301 "<matplotlib.figure.Figure at 0x7efc284d1cf8>"
302 ]
303 },
304 "metadata": {},
305 "output_type": "display_data"
306 }
307 ],
308 "source": [
309 "# Let's take a look at how the CRIME variable is distributed with a histogram\n",
310 "tracts['CRIME'].hist(bins=20)\n",
311 "plt.xlabel('CRIME\\nResidential burglaries and vehicle thefts per 1000 households')\n",
312 "plt.ylabel('Number of neighbourhoods')\n",
313 "plt.title('Distribution of neighbourhoods by crime rate in Columbus, OH')\n",
314 "plt.show()"
315 ]
316 },
317 {
318 "cell_type": "markdown",
319 "metadata": {},
320 "source": [
321 "Now let's see what it looks like without a classification scheme:"
322 ]
323 },
324 {
325 "cell_type": "code",
326 "execution_count": 4,
327 "metadata": {
328 "ExecuteTime": {
329 "end_time": "2017-12-15T21:29:54.097280Z",
330 "start_time": "2017-12-15T21:29:53.766283Z"
331 }
332 },
333 "outputs": [
334 {
335 "data": {
336 "text/plain": [
337 "<matplotlib.axes._subplots.AxesSubplot at 0x7efc2841c2b0>"
338 ]
339 },
340 "execution_count": 4,
341 "metadata": {},
342 "output_type": "execute_result"
343 },
344 {
345 "data": {
346 "image/png": "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\nSUVORK5CYII=\n",
347 "text/plain": [
348 "<matplotlib.figure.Figure at 0x7efc35af9128>"
349 ]
350 },
351 "metadata": {},
352 "output_type": "display_data"
353 }
354 ],
355 "source": [
356 "tracts.plot(column='CRIME', cmap='OrRd', edgecolor='k', legend=True)"
357 ]
358 },
359 {
360 "cell_type": "markdown",
361 "metadata": {},
362 "source": [
363 "All the 49 neighbourhoods are colored along a white-to-dark-red gradient, but the human eye can have a hard time comparing the color of shapes that are distant one to the other. In this case, it is especially hard to rank the peripheral districts colored in beige.\n",
364 "\n",
365 "Instead, we'll classify them in color bins."
366 ]
367 },
368 {
369 "cell_type": "markdown",
370 "metadata": {},
371 "source": [
372 "## Classification by quantiles\n",
373 ">QUANTILES will create attractive maps that place an equal number of observations in each class: If you have 30 counties and 6 data classes, you’ll have 5 counties in each class. The problem with quantiles is that you can end up with classes that have very different numerical ranges (e.g., 1-4, 4-9, 9-250)."
374 ]
375 },
376 {
377 "cell_type": "code",
378 "execution_count": 5,
379 "metadata": {
380 "ExecuteTime": {
381 "end_time": "2017-12-15T21:30:30.408917Z",
382 "start_time": "2017-12-15T21:30:30.088920Z"
383 }
384 },
385 "outputs": [
386 {
387 "data": {
388 "text/plain": [
389 "<matplotlib.axes._subplots.AxesSubplot at 0x7efc24b22278>"
390 ]
391 },
392 "execution_count": 5,
393 "metadata": {},
394 "output_type": "execute_result"
395 },
396 {
397 "data": {
398 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVgAAAD8CAYAAAAylrwMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzsnXd4VFXexz9nWiYdkpBGIAkJgZAA\noUivovSighVXRbGsurZ1sevrWteyltXdVRS7gKiIi1hQqiBVigiEGkgBUkmbZNo97x8TQkImZGYy\nkwS8n+cZZubec885Q5LvnPs7vyKklKioqKioeB9Na09ARUVF5XxFFVgVFRUVH6EKrIqKioqPUAVW\nRUVFxUeoAquioqLiI1SBVVFRUfERqsCqqKio+AhVYFVUVFR8hCqwKioqKj5C19oTcEZERIRMSEho\n7WmoqKioOGXr1q2FUsoOTbVrkwKbkJDAli1bWnsaKioqKk4RQhxxpZ1qIlBRUVHxEarAqqioqPgI\nVWBVVFRUfESbtMGqqPzRsFqt5OTkUF1d3dpTUamD0WgkLi4OvV7v0fWqwKqotAFycnIIDg4mISEB\nIURrT0cFkFJSVFRETk4OiYmJHvWhmghUVNoA1dXVhIeHq+LahhBCEB4e3qy7ClVgVVTaCKq4tj2a\n+zNRTQQq5y2KorBhwwaEEBiNRoxGI/7+/rWvjUYjfn5+55ywHSmq5IP1WXy9PZdik5WwAD1TMzpy\n/ZAE4sMDW3t6KnVQV7Aq5y3Z2dmMHDmSe++5i1k3XM+ll0xj1KiR9O7di/j4eEJDQ9Fqtfj7+9O+\nfXtiYmJISurCpk2bWnvqjbIyM59L31yHUVj44qY09j06kC9uSsMoLFz65jpWZuZ73Pd3331Ht27d\nSE5O5vnnn3faZs2aNfTt2xedTsfnn39e79ycOXNIS0sjNTWVu+66C3fq/WVnZzN69GhSU1NJS0vj\ntddeq3f+X//6F926dSMtLY05c+a4Nf/hw4eTkZFBRkYGsbGxXHLJJS7Pq9lIKdvco1+/flJFpblU\nV1dLg8EgreXHpawqdPqwV+ZLU3G2LMrdL3MP/ibHjB4pFy9e3OJz3b17d5NtsgorZJ8nv5db9h12\n+lm27Dss+zz5vcwqrHB7fJvNJrt06SIPHjwozWaz7NWrl/z9998btDt8+LDcsWOH/NOf/iQXLVpU\n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\n",
399 "text/plain": [
400 "<matplotlib.figure.Figure at 0x7efc24ab8278>"
401 ]
402 },
403 "metadata": {},
404 "output_type": "display_data"
405 }
406 ],
407 "source": [
408 "# Splitting the data in three shows some spatial clustering around the center\n",
409 "tracts.plot(column='CRIME', scheme='quantiles', k=3, cmap='OrRd', edgecolor='k', legend=True)"
410 ]
411 },
412 {
413 "cell_type": "code",
414 "execution_count": 6,
415 "metadata": {
416 "ExecuteTime": {
417 "end_time": "2017-12-15T21:28:00.376417Z",
418 "start_time": "2017-12-15T21:27:57.039Z"
419 }
420 },
421 "outputs": [
422 {
423 "data": {
424 "text/plain": [
425 "<matplotlib.axes._subplots.AxesSubplot at 0x7efc24ab8e80>"
426 ]
427 },
428 "execution_count": 6,
429 "metadata": {},
430 "output_type": "execute_result"
431 },
432 {
433 "data": {
434 "image/png": "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\n",
435 "text/plain": [
436 "<matplotlib.figure.Figure at 0x7efc24a41080>"
437 ]
438 },
439 "metadata": {},
440 "output_type": "display_data"
441 }
442 ],
443 "source": [
444 "# We can also see where the top and bottom halves are located\n",
445 "tracts.plot(column='CRIME', scheme='quantiles', k=2, cmap='OrRd', edgecolor='k', legend=True)"
446 ]
447 },
448 {
449 "cell_type": "markdown",
450 "metadata": {},
451 "source": [
452 "## Classification by equal intervals\n",
453 ">EQUAL INTERVAL divides the data into equal size classes (e.g., 0-10, 10-20, 20-30, etc.) and works best on data that is generally spread across the entire range. CAUTION: Avoid equal interval if your data are skewed to one end or if you have one or two really large outlier values."
454 ]
455 },
456 {
457 "cell_type": "code",
458 "execution_count": 7,
459 "metadata": {
460 "ExecuteTime": {
461 "end_time": "2017-12-15T21:28:00.376417Z",
462 "start_time": "2017-12-15T21:27:57.045Z"
463 }
464 },
465 "outputs": [
466 {
467 "data": {
468 "text/plain": [
469 "<matplotlib.axes._subplots.AxesSubplot at 0x7efc24a0b4a8>"
470 ]
471 },
472 "execution_count": 7,
473 "metadata": {},
474 "output_type": "execute_result"
475 },
476 {
477 "data": {
478 "image/png": "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\nSUVORK5CYII=\n",
479 "text/plain": [
480 "<matplotlib.figure.Figure at 0x7efc249ca2e8>"
481 ]
482 },
483 "metadata": {},
484 "output_type": "display_data"
485 }
486 ],
487 "source": [
488 "tracts.plot(column='CRIME', scheme='equal_interval', k=4, cmap='OrRd', edgecolor='k', legend=True)"
489 ]
490 },
491 {
492 "cell_type": "code",
493 "execution_count": 15,
494 "metadata": {
495 "ExecuteTime": {
496 "end_time": "2017-12-15T21:28:00.386417Z",
497 "start_time": "2017-12-15T21:27:57.048Z"
498 }
499 },
500 "outputs": [
501 {
502 "data": {
503 "text/plain": [
504 "<matplotlib.axes._subplots.AxesSubplot at 0x7efc28468588>"
505 ]
506 },
507 "execution_count": 15,
508 "metadata": {},
509 "output_type": "execute_result"
510 },
511 {
512 "data": {
513 "image/png": "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\n",
514 "text/plain": [
515 "<matplotlib.figure.Figure at 0x7efc284da550>"
516 ]
517 },
518 "metadata": {},
519 "output_type": "display_data"
520 }
521 ],
522 "source": [
523 "# No legend here as we'd be out of space\n",
524 "tracts.plot(column='CRIME', scheme='equal_interval', k=12, cmap='OrRd', edgecolor='k')"
525 ]
526 },
527 {
528 "cell_type": "markdown",
529 "metadata": {},
530 "source": [
531 "## Classificaton by natural breaks\n",
532 ">NATURAL BREAKS is a kind of “optimal” classification scheme that finds class breaks that will minimize within-class variance and maximize between-class differences. One drawback of this approach is each dataset generates a unique classification solution, and if you need to make comparison across maps, such as in an atlas or a series (e.g., one map each for 1980, 1990, 2000) you might want to use a single scheme that can be applied across all of the maps."
533 ]
534 },
535 {
536 "cell_type": "code",
537 "execution_count": 9,
538 "metadata": {
539 "ExecuteTime": {
540 "end_time": "2017-12-15T21:28:00.376417Z",
541 "start_time": "2017-12-15T21:27:57.042Z"
542 }
543 },
544 "outputs": [
545 {
546 "data": {
547 "text/plain": [
548 "<matplotlib.axes._subplots.AxesSubplot at 0x7efc23709fd0>"
549 ]
550 },
551 "execution_count": 9,
552 "metadata": {},
553 "output_type": "execute_result"
554 },
555 {
556 "data": {
557 "image/png": "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\nxYsXLx7i/wECuIO28SjMHwAAAABJRU5ErkJggg==\n",
558 "text/plain": [
559 "<matplotlib.figure.Figure at 0x7efc24868630>"
560 ]
561 },
562 "metadata": {},
563 "output_type": "display_data"
564 }
565 ],
566 "source": [
567 "# Compare this to the previous 3-bin figure with quantiles\n",
568 "tracts.plot(column='CRIME', scheme='fisher_jenks', k=3, cmap='OrRd', edgecolor='k', legend=True)"
569 ]
570 },
571 {
572 "cell_type": "markdown",
573 "metadata": {},
574 "source": [
575 "## Other classification schemes in PySAL\n",
576 "\n",
577 "Geopandas includes only the most used classifiers found in PySAL. In order to use the others, you will need to add them as additional columns to your GeoDataFrame.\n",
578 "\n",
579 ">The max-p algorithm determines the number of regions (p) endogenously based on a set of areas, a matrix of attributes on each area and a floor constraint. The floor constraint defines the minimum bound that a variable must reach for each region; for example, a constraint might be the minimum population each region must have. max-p further enforces a contiguity constraint on the areas within regions."
580 ]
581 },
582 {
583 "cell_type": "code",
584 "execution_count": 10,
585 "metadata": {},
586 "outputs": [
587 {
588 "data": {
589 "text/html": [
590 "<div>\n",
591 "<style>\n",
592 " .dataframe thead tr:only-child th {\n",
593 " text-align: right;\n",
594 " }\n",
595 "\n",
596 " .dataframe thead th {\n",
597 " text-align: left;\n",
598 " }\n",
599 "\n",
600 " .dataframe tbody tr th {\n",
601 " vertical-align: top;\n",
602 " }\n",
603 "</style>\n",
604 "<table border=\"1\" class=\"dataframe\">\n",
605 " <thead>\n",
606 " <tr style=\"text-align: right;\">\n",
607 " <th></th>\n",
608 " <th>AREA</th>\n",
609 " <th>PERIMETER</th>\n",
610 " <th>COLUMBUS_</th>\n",
611 " <th>COLUMBUS_I</th>\n",
612 " <th>POLYID</th>\n",
613 " <th>NEIG</th>\n",
614 " <th>HOVAL</th>\n",
615 " <th>INC</th>\n",
616 " <th>CRIME</th>\n",
617 " <th>OPEN</th>\n",
618 " <th>...</th>\n",
619 " <th>X</th>\n",
620 " <th>Y</th>\n",
621 " <th>NSA</th>\n",
622 " <th>NSB</th>\n",
623 " <th>EW</th>\n",
624 " <th>CP</th>\n",
625 " <th>THOUS</th>\n",
626 " <th>NEIGNO</th>\n",
627 " <th>geometry</th>\n",
628 " <th>Max_P</th>\n",
629 " </tr>\n",
630 " </thead>\n",
631 " <tbody>\n",
632 " <tr>\n",
633 " <th>0</th>\n",
634 " <td>0.309441</td>\n",
635 " <td>2.440629</td>\n",
636 " <td>2</td>\n",
637 " <td>5</td>\n",
638 " <td>1</td>\n",
639 " <td>5</td>\n",
640 " <td>80.467003</td>\n",
641 " <td>19.531</td>\n",
642 " <td>15.725980</td>\n",
643 " <td>2.850747</td>\n",
644 " <td>...</td>\n",
645 " <td>38.799999</td>\n",
646 " <td>44.070000</td>\n",
647 " <td>1.0</td>\n",
648 " <td>1.0</td>\n",
649 " <td>1.0</td>\n",
650 " <td>0.0</td>\n",
651 " <td>1000.0</td>\n",
652 " <td>1005.0</td>\n",
653 " <td>POLYGON ((8.624129295349121 14.23698043823242,...</td>\n",
654 " <td>0</td>\n",
655 " </tr>\n",
656 " <tr>\n",
657 " <th>1</th>\n",
658 " <td>0.259329</td>\n",
659 " <td>2.236939</td>\n",
660 " <td>3</td>\n",
661 " <td>1</td>\n",
662 " <td>2</td>\n",
663 " <td>1</td>\n",
664 " <td>44.567001</td>\n",
665 " <td>21.232</td>\n",
666 " <td>18.801754</td>\n",
667 " <td>5.296720</td>\n",
668 " <td>...</td>\n",
669 " <td>35.619999</td>\n",
670 " <td>42.380001</td>\n",
671 " <td>1.0</td>\n",
672 " <td>1.0</td>\n",
673 " <td>0.0</td>\n",
674 " <td>0.0</td>\n",
675 " <td>1000.0</td>\n",
676 " <td>1001.0</td>\n",
677 " <td>POLYGON ((8.252790451049805 14.23694038391113,...</td>\n",
678 " <td>0</td>\n",
679 " </tr>\n",
680 " <tr>\n",
681 " <th>2</th>\n",
682 " <td>0.192468</td>\n",
683 " <td>2.187547</td>\n",
684 " <td>4</td>\n",
685 " <td>6</td>\n",
686 " <td>3</td>\n",
687 " <td>6</td>\n",
688 " <td>26.350000</td>\n",
689 " <td>15.956</td>\n",
690 " <td>30.626781</td>\n",
691 " <td>4.534649</td>\n",
692 " <td>...</td>\n",
693 " <td>39.820000</td>\n",
694 " <td>41.180000</td>\n",
695 " <td>1.0</td>\n",
696 " <td>1.0</td>\n",
697 " <td>1.0</td>\n",
698 " <td>0.0</td>\n",
699 " <td>1000.0</td>\n",
700 " <td>1006.0</td>\n",
701 " <td>POLYGON ((8.653305053710938 14.00809001922607,...</td>\n",
702 " <td>2</td>\n",
703 " </tr>\n",
704 " <tr>\n",
705 " <th>3</th>\n",
706 " <td>0.083841</td>\n",
707 " <td>1.427635</td>\n",
708 " <td>5</td>\n",
709 " <td>2</td>\n",
710 " <td>4</td>\n",
711 " <td>2</td>\n",
712 " <td>33.200001</td>\n",
713 " <td>4.477</td>\n",
714 " <td>32.387760</td>\n",
715 " <td>0.394427</td>\n",
716 " <td>...</td>\n",
717 " <td>36.500000</td>\n",
718 " <td>40.520000</td>\n",
719 " <td>1.0</td>\n",
720 " <td>1.0</td>\n",
721 " <td>0.0</td>\n",
722 " <td>0.0</td>\n",
723 " <td>1000.0</td>\n",
724 " <td>1002.0</td>\n",
725 " <td>POLYGON ((8.459499359130859 13.82034969329834,...</td>\n",
726 " <td>2</td>\n",
727 " </tr>\n",
728 " <tr>\n",
729 " <th>4</th>\n",
730 " <td>0.488888</td>\n",
731 " <td>2.997133</td>\n",
732 " <td>6</td>\n",
733 " <td>7</td>\n",
734 " <td>5</td>\n",
735 " <td>7</td>\n",
736 " <td>23.225000</td>\n",
737 " <td>11.252</td>\n",
738 " <td>50.731510</td>\n",
739 " <td>0.405664</td>\n",
740 " <td>...</td>\n",
741 " <td>40.009998</td>\n",
742 " <td>38.000000</td>\n",
743 " <td>1.0</td>\n",
744 " <td>1.0</td>\n",
745 " <td>1.0</td>\n",
746 " <td>0.0</td>\n",
747 " <td>1000.0</td>\n",
748 " <td>1007.0</td>\n",
749 " <td>POLYGON ((8.685274124145508 13.63951969146729,...</td>\n",
750 " <td>3</td>\n",
751 " </tr>\n",
752 " </tbody>\n",
753 "</table>\n",
754 "<p>5 rows × 22 columns</p>\n",
755 "</div>"
756 ],
757 "text/plain": [
758 " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n",
759 "0 0.309441 2.440629 2 5 1 5 80.467003 \n",
760 "1 0.259329 2.236939 3 1 2 1 44.567001 \n",
761 "2 0.192468 2.187547 4 6 3 6 26.350000 \n",
762 "3 0.083841 1.427635 5 2 4 2 33.200001 \n",
763 "4 0.488888 2.997133 6 7 5 7 23.225000 \n",
764 "\n",
765 " INC CRIME OPEN ... X Y NSA NSB EW \\\n",
766 "0 19.531 15.725980 2.850747 ... 38.799999 44.070000 1.0 1.0 1.0 \n",
767 "1 21.232 18.801754 5.296720 ... 35.619999 42.380001 1.0 1.0 0.0 \n",
768 "2 15.956 30.626781 4.534649 ... 39.820000 41.180000 1.0 1.0 1.0 \n",
769 "3 4.477 32.387760 0.394427 ... 36.500000 40.520000 1.0 1.0 0.0 \n",
770 "4 11.252 50.731510 0.405664 ... 40.009998 38.000000 1.0 1.0 1.0 \n",
771 "\n",
772 " CP THOUS NEIGNO geometry \\\n",
773 "0 0.0 1000.0 1005.0 POLYGON ((8.624129295349121 14.23698043823242,... \n",
774 "1 0.0 1000.0 1001.0 POLYGON ((8.252790451049805 14.23694038391113,... \n",
775 "2 0.0 1000.0 1006.0 POLYGON ((8.653305053710938 14.00809001922607,... \n",
776 "3 0.0 1000.0 1002.0 POLYGON ((8.459499359130859 13.82034969329834,... \n",
777 "4 0.0 1000.0 1007.0 POLYGON ((8.685274124145508 13.63951969146729,... \n",
778 "\n",
779 " Max_P \n",
780 "0 0 \n",
781 "1 0 \n",
782 "2 2 \n",
783 "3 2 \n",
784 "4 3 \n",
785 "\n",
786 "[5 rows x 22 columns]"
787 ]
788 },
789 "execution_count": 10,
790 "metadata": {},
791 "output_type": "execute_result"
792 }
793 ],
794 "source": [
795 "def max_p(values, k):\n",
796 " \"\"\"\n",
797 " Given a list of values and `k` bins,\n",
798 " returns a list of their Maximum P bin number.\n",
799 " \"\"\"\n",
800 " from pysal.esda.mapclassify import Max_P_Classifier\n",
801 " binning = Max_P_Classifier(values, k=k)\n",
802 " return binning.yb\n",
803 "\n",
804 "tracts['Max_P'] = max_p(tracts['CRIME'].values, k=5)\n",
805 "tracts.head()"
806 ]
807 },
808 {
809 "cell_type": "code",
810 "execution_count": 11,
811 "metadata": {},
812 "outputs": [
813 {
814 "data": {
815 "text/plain": [
816 "<matplotlib.axes._subplots.AxesSubplot at 0x7efc23a79f98>"
817 ]
818 },
819 "execution_count": 11,
820 "metadata": {},
821 "output_type": "execute_result"
822 },
823 {
824 "data": {
825 "image/png": "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\n",
826 "text/plain": [
827 "<matplotlib.figure.Figure at 0x7efc236ae518>"
828 ]
829 },
830 "metadata": {},
831 "output_type": "display_data"
832 }
833 ],
834 "source": [
835 "tracts.plot(column='Max_P', cmap='OrRd', edgecolor='k', categorical=True, legend=True)"
836 ]
837 }
838 ],
839 "metadata": {
840 "kernelspec": {
841 "display_name": "Python 3",
842 "language": "python",
843 "name": "python3"
844 },
845 "language_info": {
846 "codemirror_mode": {
847 "name": "ipython",
848 "version": 3
849 },
850 "file_extension": ".py",
851 "mimetype": "text/x-python",
852 "name": "python",
853 "nbconvert_exporter": "python",
854 "pygments_lexer": "ipython3",
855 "version": "3.6.1"
856 }
857 },
858 "nbformat": 4,
859 "nbformat_minor": 1
860 }
+0
-91
examples/create_geopandas_from_pandas.py less more
0 """
1 Creating a GeoDataFrame from a DataFrame with coordinates
2 ---------------------------------------------------------
3
4 This example shows how to create a ``GeoDataFrame`` when starting from
5 a *regular* ``DataFrame`` that has coordinates either WKT
6 (`well-known text <https://en.wikipedia.org/wiki/Well-known_text>`_)
7 format, or in
8 two columns.
9
10 """
11 import pandas as pd
12 import geopandas
13 import matplotlib.pyplot as plt
14
15 ###############################################################################
16 # From longitudes and latitudes
17 # =============================
18 #
19 # First, let's consider a ``DataFrame`` containing cities and their respective
20 # longitudes and latitudes.
21
22 df = pd.DataFrame(
23 {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'],
24 'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'],
25 'Latitude': [-34.58, -15.78, -33.45, 4.60, 10.48],
26 'Longitude': [-58.66, -47.91, -70.66, -74.08, -66.86]})
27
28 ###############################################################################
29 # A ``GeoDataFrame`` needs a ``shapely`` object. We use geopandas
30 # ``points_from_xy()`` to transform **Longitude** and **Latitude** into a list
31 # of ``shapely.Point`` objects and set it as a ``geometry`` while creating the
32 # ``GeoDataFrame``. (note that ``points_from_xy()`` is an enhanced wrapper for
33 # ``[Point(x, y) for x, y in zip(df.Longitude, df.Latitude)]``)
34
35 gdf = geopandas.GeoDataFrame(
36 df, geometry=geopandas.points_from_xy(df.Longitude, df.Latitude))
37
38
39 ###############################################################################
40 # ``gdf`` looks like this :
41
42 print(gdf.head())
43
44 ###############################################################################
45 # Finally, we plot the coordinates over a country-level map.
46
47 world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
48
49 # We restrict to South America.
50 ax = world[world.continent == 'South America'].plot(
51 color='white', edgecolor='black')
52
53 # We can now plot our ``GeoDataFrame``.
54 gdf.plot(ax=ax, color='red')
55
56 plt.show()
57
58 ###############################################################################
59 # From WKT format
60 # ===============
61 # Here, we consider a ``DataFrame`` having coordinates in WKT format.
62
63 df = pd.DataFrame(
64 {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'],
65 'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'],
66 'Coordinates': ['POINT(-58.66 -34.58)', 'POINT(-47.91 -15.78)',
67 'POINT(-70.66 -33.45)', 'POINT(-74.08 4.60)',
68 'POINT(-66.86 10.48)']})
69
70 ###############################################################################
71 # We use ``shapely.wkt`` sub-module to parse wkt format:
72 from shapely import wkt
73
74 df['Coordinates'] = df['Coordinates'].apply(wkt.loads)
75
76 ###############################################################################
77 # The ``GeoDataFrame`` is constructed as follows :
78
79 gdf = geopandas.GeoDataFrame(df, geometry='Coordinates')
80
81 print(gdf.head())
82
83 #################################################################################
84 # Again, we can plot our ``GeoDataFrame``.
85 ax = world[world.continent == 'South America'].plot(
86 color='white', edgecolor='black')
87
88 gdf.plot(ax=ax, color='red')
89
90 plt.show()
+0
-9
examples/null_geom.geojson less more
0 {
1 "type": "FeatureCollection",
2 "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
3
4 "features": [
5 { "type": "Feature", "properties": { "Name": "Null Geometry" }, "geometry": null },
6 { "type": "Feature", "properties": { "Name": "SF to NY" }, "geometry": { "type": "LineString", "coordinates": [ [ -122.4051293283311, 37.786780113640894 ], [ -73.859832357849271, 40.487594916296196 ] ] } }
7 ]
8 }
examples/nyc.png less more
Binary diff not shown
examples/nyc_hull.png less more
Binary diff not shown
+0
-721
examples/overlays.ipynb less more
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "Spatial overlays allow you to compare two GeoDataFrames containing polygon or multipolygon geometries \n",
7 "and create a new GeoDataFrame with the new geometries representing the spatial combination *and*\n",
8 "merged properties. This allows you to answer questions like\n",
9 "\n",
10 "> What are the demographics of the census tracts within 1000 ft of the highway?\n",
11 "\n",
12 "The basic idea is demonstrated by the graphic below but keep in mind that overlays operate at the dataframe level, \n",
13 "not on individual geometries, and the properties from both are retained"
14 ]
15 },
16 {
17 "cell_type": "code",
18 "execution_count": 1,
19 "metadata": {
20 "ExecuteTime": {
21 "end_time": "2017-12-15T21:09:34.256318Z",
22 "start_time": "2017-12-15T21:09:34.226318Z"
23 }
24 },
25 "outputs": [
26 {
27 "data": {
28 "text/html": [
29 "<img src=\"http://docs.qgis.org/testing/en/_images/overlay_operations.png\"/>"
30 ],
31 "text/plain": [
32 "<IPython.core.display.Image object>"
33 ]
34 },
35 "execution_count": 1,
36 "metadata": {},
37 "output_type": "execute_result"
38 }
39 ],
40 "source": [
41 "from IPython.core.display import Image\n",
42 "Image(url=\"http://docs.qgis.org/testing/en/_images/overlay_operations.png\")"
43 ]
44 },
45 {
46 "cell_type": "markdown",
47 "metadata": {},
48 "source": [
49 "Now we can load up two GeoDataFrames containing (multi)polygon geometries..."
50 ]
51 },
52 {
53 "cell_type": "code",
54 "execution_count": 2,
55 "metadata": {
56 "ExecuteTime": {
57 "end_time": "2017-12-15T21:09:36.236298Z",
58 "start_time": "2017-12-15T21:09:34.256318Z"
59 }
60 },
61 "outputs": [],
62 "source": [
63 "%matplotlib inline\n",
64 "from shapely.geometry import Point\n",
65 "from geopandas import datasets, GeoDataFrame, read_file\n",
66 "from geopandas.tools import overlay\n",
67 "\n",
68 "# NYC Boros\n",
69 "zippath = datasets.get_path('nybb')\n",
70 "polydf = read_file(zippath)\n",
71 "\n",
72 "# Generate some circles\n",
73 "b = [int(x) for x in polydf.total_bounds]\n",
74 "N = 10\n",
75 "polydf2 = GeoDataFrame([\n",
76 " {'geometry': Point(x, y).buffer(10000), 'value1': x + y, 'value2': x - y}\n",
77 " for x, y in zip(range(b[0], b[2], int((b[2] - b[0]) / N)),\n",
78 " range(b[1], b[3], int((b[3] - b[1]) / N)))])"
79 ]
80 },
81 {
82 "cell_type": "markdown",
83 "metadata": {},
84 "source": [
85 "The first dataframe contains multipolygons of the NYC boros"
86 ]
87 },
88 {
89 "cell_type": "code",
90 "execution_count": 3,
91 "metadata": {
92 "ExecuteTime": {
93 "end_time": "2017-12-15T21:09:36.526295Z",
94 "start_time": "2017-12-15T21:09:36.236298Z"
95 }
96 },
97 "outputs": [
98 {
99 "data": {
100 "text/plain": [
101 "<matplotlib.axes._subplots.AxesSubplot at 0x512ee48>"
102 ]
103 },
104 "execution_count": 3,
105 "metadata": {},
106 "output_type": "execute_result"
107 },
108 {
109 "data": {
110 "image/png": "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\nyQAAAABJRU5ErkJggg==\n",
111 "text/plain": [
112 "<matplotlib.figure.Figure at 0x512e2b0>"
113 ]
114 },
115 "metadata": {},
116 "output_type": "display_data"
117 }
118 ],
119 "source": [
120 "polydf.plot()"
121 ]
122 },
123 {
124 "cell_type": "markdown",
125 "metadata": {},
126 "source": [
127 "And the second GeoDataFrame is a sequentially generated set of circles in the same geographic space. We'll plot these with a [different color palette](https://matplotlib.org/examples/color/colormaps_reference.html)."
128 ]
129 },
130 {
131 "cell_type": "code",
132 "execution_count": 4,
133 "metadata": {
134 "ExecuteTime": {
135 "end_time": "2017-12-15T21:09:36.756293Z",
136 "start_time": "2017-12-15T21:09:36.526295Z"
137 }
138 },
139 "outputs": [
140 {
141 "data": {
142 "text/plain": [
143 "<matplotlib.axes._subplots.AxesSubplot at 0x512e0f0>"
144 ]
145 },
146 "execution_count": 4,
147 "metadata": {},
148 "output_type": "execute_result"
149 },
150 {
151 "data": {
152 "image/png": "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\n",
153 "text/plain": [
154 "<matplotlib.figure.Figure at 0x12caea58>"
155 ]
156 },
157 "metadata": {},
158 "output_type": "display_data"
159 }
160 ],
161 "source": [
162 "polydf2.plot(cmap='tab20b')"
163 ]
164 },
165 {
166 "cell_type": "markdown",
167 "metadata": {},
168 "source": [
169 "The `geopandas.tools.overlay` function takes three arguments:\n",
170 "\n",
171 "* df1\n",
172 "* df2\n",
173 "* how\n",
174 "\n",
175 "Where `how` can be one of:\n",
176 "\n",
177 " ['intersection',\n",
178 " 'union',\n",
179 " 'identity',\n",
180 " 'symmetric_difference',\n",
181 " 'difference']\n",
182 "\n",
183 "So let's identify the areas (and attributes) where both dataframes intersect using the `overlay` tool. "
184 ]
185 },
186 {
187 "cell_type": "code",
188 "execution_count": 5,
189 "metadata": {
190 "ExecuteTime": {
191 "end_time": "2017-12-15T21:09:39.796263Z",
192 "start_time": "2017-12-15T21:09:36.756293Z"
193 }
194 },
195 "outputs": [
196 {
197 "data": {
198 "text/plain": [
199 "<matplotlib.axes._subplots.AxesSubplot at 0x12978940>"
200 ]
201 },
202 "execution_count": 5,
203 "metadata": {},
204 "output_type": "execute_result"
205 },
206 {
207 "data": {
208 "image/png": "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\nAAAASUVORK5CYII=\n",
209 "text/plain": [
210 "<matplotlib.figure.Figure at 0x4dd50f0>"
211 ]
212 },
213 "metadata": {},
214 "output_type": "display_data"
215 }
216 ],
217 "source": [
218 "from geopandas.tools import overlay\n",
219 "newdf = overlay(polydf, polydf2, how=\"intersection\")\n",
220 "newdf.plot(cmap='tab20b')"
221 ]
222 },
223 {
224 "cell_type": "markdown",
225 "metadata": {},
226 "source": [
227 "And take a look at the attributes; we see that the attributes from both of the original GeoDataFrames are retained. "
228 ]
229 },
230 {
231 "cell_type": "code",
232 "execution_count": 6,
233 "metadata": {
234 "ExecuteTime": {
235 "end_time": "2017-12-15T21:09:40.416257Z",
236 "start_time": "2017-12-15T21:09:39.796263Z"
237 }
238 },
239 "outputs": [
240 {
241 "data": {
242 "text/html": [
243 "<div>\n",
244 "<style>\n",
245 " .dataframe thead tr:only-child th {\n",
246 " text-align: right;\n",
247 " }\n",
248 "\n",
249 " .dataframe thead th {\n",
250 " text-align: left;\n",
251 " }\n",
252 "\n",
253 " .dataframe tbody tr th {\n",
254 " vertical-align: top;\n",
255 " }\n",
256 "</style>\n",
257 "<table border=\"1\" class=\"dataframe\">\n",
258 " <thead>\n",
259 " <tr style=\"text-align: right;\">\n",
260 " <th></th>\n",
261 " <th>BoroCode</th>\n",
262 " <th>BoroName</th>\n",
263 " <th>Shape_Leng</th>\n",
264 " <th>Shape_Area</th>\n",
265 " <th>geometry</th>\n",
266 " </tr>\n",
267 " </thead>\n",
268 " <tbody>\n",
269 " <tr>\n",
270 " <th>0</th>\n",
271 " <td>5</td>\n",
272 " <td>Staten Island</td>\n",
273 " <td>330470.010332</td>\n",
274 " <td>1.623820e+09</td>\n",
275 " <td>(POLYGON ((970217.0223999023 145643.3322143555...</td>\n",
276 " </tr>\n",
277 " <tr>\n",
278 " <th>1</th>\n",
279 " <td>4</td>\n",
280 " <td>Queens</td>\n",
281 " <td>896344.047763</td>\n",
282 " <td>3.045213e+09</td>\n",
283 " <td>(POLYGON ((1029606.076599121 156073.8142089844...</td>\n",
284 " </tr>\n",
285 " <tr>\n",
286 " <th>2</th>\n",
287 " <td>3</td>\n",
288 " <td>Brooklyn</td>\n",
289 " <td>741080.523166</td>\n",
290 " <td>1.937479e+09</td>\n",
291 " <td>(POLYGON ((1021176.479003906 151374.7969970703...</td>\n",
292 " </tr>\n",
293 " <tr>\n",
294 " <th>3</th>\n",
295 " <td>1</td>\n",
296 " <td>Manhattan</td>\n",
297 " <td>359299.096471</td>\n",
298 " <td>6.364715e+08</td>\n",
299 " <td>(POLYGON ((981219.0557861328 188655.3157958984...</td>\n",
300 " </tr>\n",
301 " <tr>\n",
302 " <th>4</th>\n",
303 " <td>2</td>\n",
304 " <td>Bronx</td>\n",
305 " <td>464392.991824</td>\n",
306 " <td>1.186925e+09</td>\n",
307 " <td>(POLYGON ((1012821.805786133 229228.2645874023...</td>\n",
308 " </tr>\n",
309 " </tbody>\n",
310 "</table>\n",
311 "</div>"
312 ],
313 "text/plain": [
314 " BoroCode BoroName Shape_Leng Shape_Area \\\n",
315 "0 5 Staten Island 330470.010332 1.623820e+09 \n",
316 "1 4 Queens 896344.047763 3.045213e+09 \n",
317 "2 3 Brooklyn 741080.523166 1.937479e+09 \n",
318 "3 1 Manhattan 359299.096471 6.364715e+08 \n",
319 "4 2 Bronx 464392.991824 1.186925e+09 \n",
320 "\n",
321 " geometry \n",
322 "0 (POLYGON ((970217.0223999023 145643.3322143555... \n",
323 "1 (POLYGON ((1029606.076599121 156073.8142089844... \n",
324 "2 (POLYGON ((1021176.479003906 151374.7969970703... \n",
325 "3 (POLYGON ((981219.0557861328 188655.3157958984... \n",
326 "4 (POLYGON ((1012821.805786133 229228.2645874023... "
327 ]
328 },
329 "execution_count": 6,
330 "metadata": {},
331 "output_type": "execute_result"
332 }
333 ],
334 "source": [
335 "polydf.head()"
336 ]
337 },
338 {
339 "cell_type": "code",
340 "execution_count": 7,
341 "metadata": {
342 "ExecuteTime": {
343 "end_time": "2017-12-15T21:09:40.446256Z",
344 "start_time": "2017-12-15T21:09:40.416257Z"
345 }
346 },
347 "outputs": [
348 {
349 "data": {
350 "text/html": [
351 "<div>\n",
352 "<style>\n",
353 " .dataframe thead tr:only-child th {\n",
354 " text-align: right;\n",
355 " }\n",
356 "\n",
357 " .dataframe thead th {\n",
358 " text-align: left;\n",
359 " }\n",
360 "\n",
361 " .dataframe tbody tr th {\n",
362 " vertical-align: top;\n",
363 " }\n",
364 "</style>\n",
365 "<table border=\"1\" class=\"dataframe\">\n",
366 " <thead>\n",
367 " <tr style=\"text-align: right;\">\n",
368 " <th></th>\n",
369 " <th>geometry</th>\n",
370 " <th>value1</th>\n",
371 " <th>value2</th>\n",
372 " </tr>\n",
373 " </thead>\n",
374 " <tbody>\n",
375 " <tr>\n",
376 " <th>0</th>\n",
377 " <td>POLYGON ((923175 120121, 923126.847266722 1191...</td>\n",
378 " <td>1033296</td>\n",
379 " <td>793054</td>\n",
380 " </tr>\n",
381 " <tr>\n",
382 " <th>1</th>\n",
383 " <td>POLYGON ((938595 135393, 938546.847266722 1344...</td>\n",
384 " <td>1063988</td>\n",
385 " <td>793202</td>\n",
386 " </tr>\n",
387 " <tr>\n",
388 " <th>2</th>\n",
389 " <td>POLYGON ((954015 150665, 953966.847266722 1496...</td>\n",
390 " <td>1094680</td>\n",
391 " <td>793350</td>\n",
392 " </tr>\n",
393 " <tr>\n",
394 " <th>3</th>\n",
395 " <td>POLYGON ((969435 165937, 969386.847266722 1649...</td>\n",
396 " <td>1125372</td>\n",
397 " <td>793498</td>\n",
398 " </tr>\n",
399 " <tr>\n",
400 " <th>4</th>\n",
401 " <td>POLYGON ((984855 181209, 984806.847266722 1802...</td>\n",
402 " <td>1156064</td>\n",
403 " <td>793646</td>\n",
404 " </tr>\n",
405 " </tbody>\n",
406 "</table>\n",
407 "</div>"
408 ],
409 "text/plain": [
410 " geometry value1 value2\n",
411 "0 POLYGON ((923175 120121, 923126.847266722 1191... 1033296 793054\n",
412 "1 POLYGON ((938595 135393, 938546.847266722 1344... 1063988 793202\n",
413 "2 POLYGON ((954015 150665, 953966.847266722 1496... 1094680 793350\n",
414 "3 POLYGON ((969435 165937, 969386.847266722 1649... 1125372 793498\n",
415 "4 POLYGON ((984855 181209, 984806.847266722 1802... 1156064 793646"
416 ]
417 },
418 "execution_count": 7,
419 "metadata": {},
420 "output_type": "execute_result"
421 }
422 ],
423 "source": [
424 "polydf2.head()"
425 ]
426 },
427 {
428 "cell_type": "code",
429 "execution_count": 8,
430 "metadata": {
431 "ExecuteTime": {
432 "end_time": "2017-12-15T21:09:40.586255Z",
433 "start_time": "2017-12-15T21:09:40.446256Z"
434 }
435 },
436 "outputs": [
437 {
438 "data": {
439 "text/html": [
440 "<div>\n",
441 "<style>\n",
442 " .dataframe thead tr:only-child th {\n",
443 " text-align: right;\n",
444 " }\n",
445 "\n",
446 " .dataframe thead th {\n",
447 " text-align: left;\n",
448 " }\n",
449 "\n",
450 " .dataframe tbody tr th {\n",
451 " vertical-align: top;\n",
452 " }\n",
453 "</style>\n",
454 "<table border=\"1\" class=\"dataframe\">\n",
455 " <thead>\n",
456 " <tr style=\"text-align: right;\">\n",
457 " <th></th>\n",
458 " <th>BoroCode</th>\n",
459 " <th>BoroName</th>\n",
460 " <th>Shape_Leng</th>\n",
461 " <th>Shape_Area</th>\n",
462 " <th>value1</th>\n",
463 " <th>value2</th>\n",
464 " <th>geometry</th>\n",
465 " </tr>\n",
466 " </thead>\n",
467 " <tbody>\n",
468 " <tr>\n",
469 " <th>0</th>\n",
470 " <td>5</td>\n",
471 " <td>Staten Island</td>\n",
472 " <td>330470.010332</td>\n",
473 " <td>1.623820e+09</td>\n",
474 " <td>1033296</td>\n",
475 " <td>793054</td>\n",
476 " <td>POLYGON ((916755.4256330276 129447.9617643995,...</td>\n",
477 " </tr>\n",
478 " <tr>\n",
479 " <th>1</th>\n",
480 " <td>5</td>\n",
481 " <td>Staten Island</td>\n",
482 " <td>330470.010332</td>\n",
483 " <td>1.623820e+09</td>\n",
484 " <td>1063988</td>\n",
485 " <td>793202</td>\n",
486 " <td>POLYGON ((938595 135393, 938546.847266722 1344...</td>\n",
487 " </tr>\n",
488 " <tr>\n",
489 " <th>2</th>\n",
490 " <td>5</td>\n",
491 " <td>Staten Island</td>\n",
492 " <td>330470.010332</td>\n",
493 " <td>1.623820e+09</td>\n",
494 " <td>1125372</td>\n",
495 " <td>793498</td>\n",
496 " <td>POLYGON ((961436.3049926758 175473.0296020508,...</td>\n",
497 " </tr>\n",
498 " <tr>\n",
499 " <th>3</th>\n",
500 " <td>5</td>\n",
501 " <td>Staten Island</td>\n",
502 " <td>330470.010332</td>\n",
503 " <td>1.623820e+09</td>\n",
504 " <td>1094680</td>\n",
505 " <td>793350</td>\n",
506 " <td>POLYGON ((954015 150665, 953966.847266722 1496...</td>\n",
507 " </tr>\n",
508 " <tr>\n",
509 " <th>4</th>\n",
510 " <td>2</td>\n",
511 " <td>Bronx</td>\n",
512 " <td>464392.991824</td>\n",
513 " <td>1.186925e+09</td>\n",
514 " <td>1309524</td>\n",
515 " <td>794386</td>\n",
516 " <td>POLYGON ((1043287.193237305 260300.0289916992,...</td>\n",
517 " </tr>\n",
518 " </tbody>\n",
519 "</table>\n",
520 "</div>"
521 ],
522 "text/plain": [
523 " BoroCode BoroName Shape_Leng Shape_Area value1 value2 \\\n",
524 "0 5 Staten Island 330470.010332 1.623820e+09 1033296 793054 \n",
525 "1 5 Staten Island 330470.010332 1.623820e+09 1063988 793202 \n",
526 "2 5 Staten Island 330470.010332 1.623820e+09 1125372 793498 \n",
527 "3 5 Staten Island 330470.010332 1.623820e+09 1094680 793350 \n",
528 "4 2 Bronx 464392.991824 1.186925e+09 1309524 794386 \n",
529 "\n",
530 " geometry \n",
531 "0 POLYGON ((916755.4256330276 129447.9617643995,... \n",
532 "1 POLYGON ((938595 135393, 938546.847266722 1344... \n",
533 "2 POLYGON ((961436.3049926758 175473.0296020508,... \n",
534 "3 POLYGON ((954015 150665, 953966.847266722 1496... \n",
535 "4 POLYGON ((1043287.193237305 260300.0289916992,... "
536 ]
537 },
538 "execution_count": 8,
539 "metadata": {},
540 "output_type": "execute_result"
541 }
542 ],
543 "source": [
544 "newdf.head()"
545 ]
546 },
547 {
548 "cell_type": "markdown",
549 "metadata": {},
550 "source": [
551 "Now let's look at the other `how` operations:"
552 ]
553 },
554 {
555 "cell_type": "code",
556 "execution_count": 9,
557 "metadata": {
558 "ExecuteTime": {
559 "end_time": "2017-12-15T21:09:44.026220Z",
560 "start_time": "2017-12-15T21:09:40.586255Z"
561 }
562 },
563 "outputs": [
564 {
565 "data": {
566 "text/plain": [
567 "<matplotlib.axes._subplots.AxesSubplot at 0x12a72e48>"
568 ]
569 },
570 "execution_count": 9,
571 "metadata": {},
572 "output_type": "execute_result"
573 },
574 {
575 "data": {
576 "image/png": "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\n",
577 "text/plain": [
578 "<matplotlib.figure.Figure at 0x12ae5f98>"
579 ]
580 },
581 "metadata": {},
582 "output_type": "display_data"
583 }
584 ],
585 "source": [
586 "newdf = overlay(polydf, polydf2, how=\"union\")\n",
587 "newdf.plot(cmap='tab20b')"
588 ]
589 },
590 {
591 "cell_type": "code",
592 "execution_count": 10,
593 "metadata": {
594 "ExecuteTime": {
595 "end_time": "2017-12-15T21:09:47.366187Z",
596 "start_time": "2017-12-15T21:09:44.026220Z"
597 }
598 },
599 "outputs": [
600 {
601 "data": {
602 "text/plain": [
603 "<matplotlib.axes._subplots.AxesSubplot at 0x12bccda0>"
604 ]
605 },
606 "execution_count": 10,
607 "metadata": {},
608 "output_type": "execute_result"
609 },
610 {
611 "data": {
612 "image/png": "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\nhTJaCoViWPH/2UAwmuqzL+4AAAAASUVORK5CYII=\n",
613 "text/plain": [
614 "<matplotlib.figure.Figure at 0x12d79940>"
615 ]
616 },
617 "metadata": {},
618 "output_type": "display_data"
619 }
620 ],
621 "source": [
622 "newdf = overlay(polydf, polydf2, how=\"identity\")\n",
623 "newdf.plot(cmap='tab20b')"
624 ]
625 },
626 {
627 "cell_type": "code",
628 "execution_count": 11,
629 "metadata": {
630 "ExecuteTime": {
631 "end_time": "2017-12-15T21:09:50.556155Z",
632 "start_time": "2017-12-15T21:09:47.366187Z"
633 }
634 },
635 "outputs": [
636 {
637 "data": {
638 "text/plain": [
639 "<matplotlib.axes._subplots.AxesSubplot at 0x12dc2710>"
640 ]
641 },
642 "execution_count": 11,
643 "metadata": {},
644 "output_type": "execute_result"
645 },
646 {
647 "data": {
648 "image/png": "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\n",
649 "text/plain": [
650 "<matplotlib.figure.Figure at 0x12d3a7f0>"
651 ]
652 },
653 "metadata": {},
654 "output_type": "display_data"
655 }
656 ],
657 "source": [
658 "newdf = overlay(polydf, polydf2, how=\"symmetric_difference\")\n",
659 "newdf.plot(cmap='tab20b')"
660 ]
661 },
662 {
663 "cell_type": "code",
664 "execution_count": 12,
665 "metadata": {
666 "ExecuteTime": {
667 "end_time": "2017-12-15T21:09:53.566125Z",
668 "start_time": "2017-12-15T21:09:50.556155Z"
669 }
670 },
671 "outputs": [
672 {
673 "data": {
674 "text/plain": [
675 "<matplotlib.axes._subplots.AxesSubplot at 0x12e13630>"
676 ]
677 },
678 "execution_count": 12,
679 "metadata": {},
680 "output_type": "execute_result"
681 },
682 {
683 "data": {
684 "image/png": "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\n",
685 "text/plain": [
686 "<matplotlib.figure.Figure at 0x12d3aac8>"
687 ]
688 },
689 "metadata": {},
690 "output_type": "display_data"
691 }
692 ],
693 "source": [
694 "newdf = overlay(polydf, polydf2, how=\"difference\")\n",
695 "newdf.plot(cmap='tab20b')"
696 ]
697 }
698 ],
699 "metadata": {
700 "kernelspec": {
701 "display_name": "Python 3",
702 "language": "python",
703 "name": "python3"
704 },
705 "language_info": {
706 "codemirror_mode": {
707 "name": "ipython",
708 "version": 3
709 },
710 "file_extension": ".py",
711 "mimetype": "text/x-python",
712 "name": "python",
713 "nbconvert_exporter": "python",
714 "pygments_lexer": "ipython3",
715 "version": "3.6.1"
716 }
717 },
718 "nbformat": 4,
719 "nbformat_minor": 1
720 }
+0
-116
examples/plot_clip.py less more
0 """
1 Clip Vector Data with GeoPandas
2 ==================================================================
3
4 Learn how to clip geometries to the boundary of a polygon geometry
5 using GeoPandas.
6
7 .. currentmodule:: geopandas
8
9 """
10
11 ###############################################################################
12 #
13 # The example below shows you how to clip a set of vector geometries
14 # to the spatial extent / shape of another vector object. Both sets of geometries
15 # must be opened with GeoPandas as GeoDataFrames and be in the same Coordinate
16 # Reference System (CRS) for the :func:`clip` function in GeoPandas to work.
17 #
18 # This example uses GeoPandas example data ``'naturalearth_cities'`` and
19 # ``'naturalearth_lowres'``, alongside a custom rectangle geometry made with
20 # shapely and then turned into a GeoDataFrame.
21 #
22 # .. note::
23 # The object to be clipped will be clipped to the full extent of the clip
24 # object. If there are multiple polygons in clip object, the input data will
25 # be clipped to the total boundary of all polygons in clip object.
26
27 ###############################################################################
28 # Import Packages
29 # ---------------
30 #
31 # To begin, import the needed packages.
32
33 import matplotlib.pyplot as plt
34 import geopandas
35 from shapely.geometry import Polygon
36
37 ###############################################################################
38 # Get or Create Example Data
39 # --------------------------
40 #
41 # Below, the example GeoPandas data is imported and opened as a GeoDataFrame.
42 # Additionally, a polygon is created with shapely and then converted into a
43 # GeoDataFrame with the same CRS as the GeoPandas world dataset.
44
45 capitals = geopandas.read_file(geopandas.datasets.get_path("naturalearth_cities"))
46 world = geopandas.read_file(geopandas.datasets.get_path("naturalearth_lowres"))
47
48 # Create a subset of the world data that is just the South American continent
49 south_america = world[world["continent"] == "South America"]
50
51 # Create a custom polygon
52 polygon = Polygon([(0, 0), (0, 90), (180, 90), (180, 0), (0, 0)])
53 poly_gdf = geopandas.GeoDataFrame([1], geometry=[polygon], crs=world.crs)
54
55 ###############################################################################
56 # Plot the Unclipped Data
57 # -----------------------
58
59 fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8))
60 world.plot(ax=ax1)
61 poly_gdf.boundary.plot(ax=ax1, color="red")
62 south_america.boundary.plot(ax=ax2, color="green")
63 capitals.plot(ax=ax2, color="purple")
64 ax1.set_title("All Unclipped World Data", fontsize=20)
65 ax2.set_title("All Unclipped Capital Data", fontsize=20)
66 ax1.set_axis_off()
67 ax2.set_axis_off()
68 plt.show()
69
70 ###############################################################################
71 # Clip the Data
72 # --------------
73 #
74 # When you call :func:`clip`, the first object called is the object that will
75 # be clipped. The second object called is the clip extent. The returned output
76 # will be a new clipped GeoDataframe. All of the attributes for each returned
77 # geometry will be retained when you clip.
78 #
79 # .. note::
80 # Recall that the data must be in the same CRS in order to use the
81 # :func:`clip` function. If the data are not in the same CRS, be sure to use
82 # the GeoPandas :meth:`~GeoDataFrame.to_crs` method to ensure both datasets
83 # are in the same CRS.
84
85 ###############################################################################
86 # Clip the World Data
87 # --------------------
88
89 world_clipped = geopandas.clip(world, polygon)
90
91 # Plot the clipped data
92 # The plot below shows the results of the clip function applied to the world
93 # sphinx_gallery_thumbnail_number = 2
94 fig, ax = plt.subplots(figsize=(12, 8))
95 world_clipped.plot(ax=ax, color="purple")
96 world.boundary.plot(ax=ax)
97 poly_gdf.boundary.plot(ax=ax, color="red")
98 ax.set_title("World Clipped", fontsize=20)
99 ax.set_axis_off()
100 plt.show()
101
102 ###############################################################################
103 # Clip the Capitals Data
104 # ----------------------
105
106 capitals_clipped = geopandas.clip(capitals, south_america)
107
108 # Plot the clipped data
109 # The plot below shows the results of the clip function applied to the capital cities
110 fig, ax = plt.subplots(figsize=(12, 8))
111 capitals_clipped.plot(ax=ax, color="purple")
112 south_america.boundary.plot(ax=ax, color="green")
113 ax.set_title("Capitals Clipped", fontsize=20)
114 ax.set_axis_off()
115 plt.show()
+0
-61
examples/plotting_basemap_background.py less more
0 """
1 Adding a background map to plots
2 --------------------------------
3
4 This example shows how you can add a background basemap to plots created
5 with the geopandas ``.plot()`` method. This makes use of the
6 `contextily <https://github.com/geopandas/contextily>`__ package to retrieve
7 web map tiles from several sources (OpenStreetMap, Stamen).
8
9 """
10 # sphinx_gallery_thumbnail_number = 3
11 import geopandas
12
13 ###############################################################################
14 # Let's use the NYC borough boundary data that is available in geopandas
15 # datasets. Plotting this gives the following result:
16
17 df = geopandas.read_file(geopandas.datasets.get_path('nybb'))
18 ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')
19
20 ###############################################################################
21 # Convert the data to Web Mercator
22 # ================================
23 #
24 # Web map tiles are typically provided in
25 # `Web Mercator <https://en.wikipedia.org/wiki/Web_Mercator>`__
26 # (`EPSG 3857 <https://epsg.io/3857>`__), so we need to make sure to convert
27 # our data first to the same CRS to combine our polygons and background tiles
28 # in the same map:
29
30 df = df.to_crs(epsg=3857)
31
32 ###############################################################################
33
34 import contextily as ctx
35
36 ###############################################################################
37 # Add background tiles to plot
38 # ============================
39 #
40 # We can use `add_basemap` function of contextily to easily add a background
41 # map to our plot. :
42
43 ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')
44 ctx.add_basemap(ax)
45
46 ###############################################################################
47 # We can control the detail of the map tiles using the optional `zoom` keyword
48 # (be careful to not specify a too high `zoom` level,
49 # as this can result in a large download).:
50
51 ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')
52 ctx.add_basemap(ax, zoom=12)
53
54 ###############################################################################
55 # By default, contextily uses the Stamen Terrain style. We can specify a
56 # different style using ``ctx.providers``:
57
58 ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')
59 ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLite)
60 ax.set_axis_off()
+0
-478
examples/plotting_with_folium.ipynb less more
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "### Plotting with folium\n",
7 "\n",
8 "__What is Folium?__\n",
9 "\n",
10 "It builds on the data wrangling and a Python wrapper for leaflet.js. It makes it easy to visualize data in Python with minimal instructions.\n",
11 "\n",
12 "Folium expands on the data wrangling properties utilized in Python language and the mapping characteristics of the Leaflet.js library. Folium enables us to make an intuitive map and are is visualized in a Leaflet map after manipulating data in Python. Folium results are intuitive which makes this library helpful for dashboard building and easier to work with.\n",
13 "\n",
14 "Let's see the implementation of both GeoPandas and Folium:"
15 ]
16 },
17 {
18 "cell_type": "code",
19 "execution_count": 1,
20 "metadata": {},
21 "outputs": [],
22 "source": [
23 "# Importing Libraries\n",
24 "import pandas as pd\n",
25 "import geopandas\n",
26 "import folium\n",
27 "import matplotlib.pyplot as plt\n",
28 "\n",
29 "from shapely.geometry import Point"
30 ]
31 },
32 {
33 "cell_type": "code",
34 "execution_count": 2,
35 "metadata": {
36 "scrolled": true
37 },
38 "outputs": [
39 {
40 "name": "stdout",
41 "output_type": "stream",
42 "text": [
43 "<class 'pandas.core.frame.DataFrame'>\n",
44 "RangeIndex: 63 entries, 0 to 62\n",
45 "Data columns (total 6 columns):\n",
46 "Year 63 non-null int64\n",
47 "Name 63 non-null object\n",
48 "Country 63 non-null object\n",
49 "Latitude 63 non-null float64\n",
50 "Longitude 63 non-null float64\n",
51 "Type 63 non-null object\n",
52 "dtypes: float64(2), int64(1), object(3)\n",
53 "memory usage: 3.0+ KB\n"
54 ]
55 }
56 ],
57 "source": [
58 "df1 = pd.read_csv('volcano_data_2010.csv')\n",
59 "df = df1.loc[:, (\"Year\", \"Name\", \"Country\", \"Latitude\", \"Longitude\", \"Type\")]\n",
60 "df.info()"
61 ]
62 },
63 {
64 "cell_type": "code",
65 "execution_count": 3,
66 "metadata": {
67 "scrolled": false
68 },
69 "outputs": [
70 {
71 "data": {
72 "text/html": [
73 "<div>\n",
74 "<style scoped>\n",
75 " .dataframe tbody tr th:only-of-type {\n",
76 " vertical-align: middle;\n",
77 " }\n",
78 "\n",
79 " .dataframe tbody tr th {\n",
80 " vertical-align: top;\n",
81 " }\n",
82 "\n",
83 " .dataframe thead th {\n",
84 " text-align: right;\n",
85 " }\n",
86 "</style>\n",
87 "<table border=\"1\" class=\"dataframe\">\n",
88 " <thead>\n",
89 " <tr style=\"text-align: right;\">\n",
90 " <th></th>\n",
91 " <th>Year</th>\n",
92 " <th>Name</th>\n",
93 " <th>Country</th>\n",
94 " <th>Latitude</th>\n",
95 " <th>Longitude</th>\n",
96 " <th>Type</th>\n",
97 " <th>geometry</th>\n",
98 " </tr>\n",
99 " </thead>\n",
100 " <tbody>\n",
101 " <tr>\n",
102 " <th>0</th>\n",
103 " <td>2010</td>\n",
104 " <td>Tungurahua</td>\n",
105 " <td>Ecuador</td>\n",
106 " <td>-1.467</td>\n",
107 " <td>-78.442</td>\n",
108 " <td>Stratovolcano</td>\n",
109 " <td>POINT (-78.44199999999999 -1.467)</td>\n",
110 " </tr>\n",
111 " <tr>\n",
112 " <th>1</th>\n",
113 " <td>2010</td>\n",
114 " <td>Eyjafjallajokull</td>\n",
115 " <td>Iceland</td>\n",
116 " <td>63.630</td>\n",
117 " <td>-19.620</td>\n",
118 " <td>Stratovolcano</td>\n",
119 " <td>POINT (-19.62 63.63)</td>\n",
120 " </tr>\n",
121 " <tr>\n",
122 " <th>2</th>\n",
123 " <td>2010</td>\n",
124 " <td>Pacaya</td>\n",
125 " <td>Guatemala</td>\n",
126 " <td>14.381</td>\n",
127 " <td>-90.601</td>\n",
128 " <td>Complex volcano</td>\n",
129 " <td>POINT (-90.601 14.381)</td>\n",
130 " </tr>\n",
131 " <tr>\n",
132 " <th>3</th>\n",
133 " <td>2010</td>\n",
134 " <td>Sarigan</td>\n",
135 " <td>United States</td>\n",
136 " <td>16.708</td>\n",
137 " <td>145.780</td>\n",
138 " <td>Stratovolcano</td>\n",
139 " <td>POINT (145.78 16.708)</td>\n",
140 " </tr>\n",
141 " <tr>\n",
142 " <th>4</th>\n",
143 " <td>2010</td>\n",
144 " <td>Karangetang [Api Siau]</td>\n",
145 " <td>Indonesia</td>\n",
146 " <td>2.780</td>\n",
147 " <td>125.480</td>\n",
148 " <td>Stratovolcano</td>\n",
149 " <td>POINT (125.48 2.78)</td>\n",
150 " </tr>\n",
151 " </tbody>\n",
152 "</table>\n",
153 "</div>"
154 ],
155 "text/plain": [
156 " Year Name Country Latitude Longitude \\\n",
157 "0 2010 Tungurahua Ecuador -1.467 -78.442 \n",
158 "1 2010 Eyjafjallajokull Iceland 63.630 -19.620 \n",
159 "2 2010 Pacaya Guatemala 14.381 -90.601 \n",
160 "3 2010 Sarigan United States 16.708 145.780 \n",
161 "4 2010 Karangetang [Api Siau] Indonesia 2.780 125.480 \n",
162 "\n",
163 " Type geometry \n",
164 "0 Stratovolcano POINT (-78.44199999999999 -1.467) \n",
165 "1 Stratovolcano POINT (-19.62 63.63) \n",
166 "2 Complex volcano POINT (-90.601 14.381) \n",
167 "3 Stratovolcano POINT (145.78 16.708) \n",
168 "4 Stratovolcano POINT (125.48 2.78) "
169 ]
170 },
171 "execution_count": 3,
172 "metadata": {},
173 "output_type": "execute_result"
174 }
175 ],
176 "source": [
177 "geometry = geopandas.points_from_xy(df.Longitude, df.Latitude)\n",
178 "geo_df = geopandas.GeoDataFrame(df[['Year','Name','Country', 'Latitude', 'Longitude', 'Type']], geometry=geometry)\n",
179 "\n",
180 "geo_df.head()"
181 ]
182 },
183 {
184 "cell_type": "code",
185 "execution_count": 4,
186 "metadata": {},
187 "outputs": [
188 {
189 "data": {
190 "text/plain": [
191 "array(['Stratovolcano', 'Complex volcano', 'Shield volcano',\n",
192 " 'Subglacial volcano', 'Lava dome', 'Caldera'], dtype=object)"
193 ]
194 },
195 "execution_count": 4,
196 "metadata": {},
197 "output_type": "execute_result"
198 }
199 ],
200 "source": [
201 "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))\n",
202 "df.Type.unique()"
203 ]
204 },
205 {
206 "cell_type": "code",
207 "execution_count": 5,
208 "metadata": {},
209 "outputs": [
210 {
211 "data": {
212 "text/plain": [
213 "Text(0.5, 1.0, 'Volcanoes')"
214 ]
215 },
216 "execution_count": 5,
217 "metadata": {},
218 "output_type": "execute_result"
219 },
220 {
221 "data": {
222 "image/png": "iVBORw0KGgoAAAANSUhEUgAABWkAAAK1CAYAAAC6tmwFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8XHW9P/7XZ/Y922Rt0qQt3SgpS4twWdpQpCBipfeLFFHWB3ALFqh8L+JFvfb6VUQEL5tCEbTorwqIoparF+HSykWqNkVosYW2aZM0S5PMJJl9n8/vj/QcZ5JJMlkny+v5eJzHTE7ONpNkcs77vD/vt5BSgoiIiIiIiIiIiIhyQ5PrAyAiIiIiIiIiIiKazRikJSIiIiIiIiIiIsohBmmJiIiIiIiIiIiIcohBWiIiIiIiIiIiIqIcYpCWiIiIiIiIiIiIKIcYpCUiIiIiIiIiIiLKIQZpiYiIiGjaEULcKIR4O9fHQUREREQ0HhikJSIiIqKcEEK8JoT4Rob5nxZCnBBC6HJxXEREREREk41BWiIiIiLKlW0ArhNCiH7zrwOwXUoZn/xDIiIiIiKafAzSEhEREVGu/BpAIYALlRlCiAIAVwD4iRAiTwjxEyFElxCiSQjxVSFExvNXIcQyIcTrQohuIUSHEOL+k/M/JoTYLYToFUK0CyGeFEIYUtaTQoiNQojDQogeIcT3laCxEEJzcp9NQojOk8eSl7LuuUKId05u+30hRF3K924UQhwVQviEEMeEEJ8b5/eOiIiIiGYQBmmJiIiIKCeklCEALwG4PmX21QA+lFK+D+AJAHkA5gNYfXK5m/pvRwhhB/AGgP8GUAHgFAD/c/LbCQBfBOAE8E8ALgZwR79NXAHgbACnn9z/pSfn33hyuujkMdgAPHlyn3MA/BeAb6Iv0PyvAH4phCgWQlgBPA7gE1JKO4DzALw3greGiIiIiGYZBmmJiIiIKJeeB/AZIYT55NfXA3heCKEFsAHAv0kpfVLKRgCPoK8UQn9XADghpXxEShk+ufxfAEBKuVdK+WcpZfzkNraiL+Cb6kEpZa+UshnATgBnnJz/OQDfk1IelVL6AfwbgGtO1sr9PIDfSSl/J6VMSilfB1AP4PKT6yYBnCaEMEsp26WUfx/b20REREREMxmDtERERESUM1LKtwF0Afi0EGI++jJaf4a+zFcDgKaUxZsAzMmwmSoADZm2L4RYJIR49WQjMi+AB05uO9WJlOdB9GXMAn1Zuf33rwNQCqAafcHlXmUCcAGAcillAH0B5o0A2oUQ/yWEWDLU+0BEREREsxuDtERERESUaz9BXwbtdQD+IKXsAOACEENfMFQxF0BrhvWPA1gwyLafAvAhgIVSSgeA+wH0b1Q2mLYM+48D6Di5z59KKfNTJquU8kEAkFK+JqW8BED5yf3/MMt9EhEREdEsxCAtEREREeXaTwB8HMCt6Ct/ACllAn31ar8lhLALIaoB3APg/8uw/qsAyoQQm4UQxpPLn3Pye3YAXgD+k9mst4/guH4O4ItCiHlCCBv6snBflFLGTx7Hp4QQlwohtEIIkxCiTghRKYQoFUKsO1mbNgLAj77auEREREREGTFIS0REREQ5dbJW7DsArAB+m/KtOwEEABwF8Db6yiD8KMP6PgCXAPgU+koXHEZfsy+gr6HXtQB86MtmfXEEh/YjAD8F8BaAYwDCJ48JUsrjAD6NvszcLvRl1t6LvvNrDYD/i75M3G701cDt36yMiIiIiEglpJS5PgYiIiIiIiIiIiKiWYuZtEREREREREREREQ5xCAtERERERERERERUQ4xSEtERERERERERESUQwzSEhEREREREREREeUQg7REREREREREREREOaTL9QGkcjqdsqamJteHQURERERERERERDRme/fudUkpi4dbbkoFaWtqalBfX5/rwyAiIiIiIiIiIiIaMyFEUzbLsdwBERERERERERERUQ4xSEtERERERERERESUQwzSEhEREREREREREeXQlKpJS0RERERERERENN3EYjG0tLQgHA7n+lAoR0wmEyorK6HX60e1PoO0REREREREREREY9DS0gK73Y6amhoIIXJ9ODTJpJRwu91oaWnBvHnzRrUNljsgIiIiIiIiIiIag3A4jKKiIgZoZykhBIqKisaUSc1MWiIiIiIiIiIiojEaSYDWG47h9/vb0emNoMRhxCdqy+EwjW6YPE0NYw3QM0hLREREREREREQ0SZ588zB+sKsBwWhCnfcfOw7gjroF2LRm4Zi2feLECWzevBl79uyB0WhETU0NHn30USxatCjj8jabDX6/f8D8G2+8EVdccQWuuuqqMR0PZY/lDoiIiIiIiIiIiCbBk28exsN/OJQWoAWAYDSBh/9wCE++eXjU25ZSYv369airq0NDQwMOHDiABx54AB0dHWM97GHF4/EJ38dMxyAtERERERERERHRBPOGY/jBroYhl/nBrgb4wrFRbX/nzp3Q6/XYuHGjOu+MM87AmWeeiYsvvhhnnXUWamtr8Zvf/GbAulJKbNq0Caeeeio++clPorOzU/3e3r17sXr1aqxYsQKXXnop2tvbAQB1dXW4//77sXr1ajz22GPYsWMHzjnnHJx55pn4+Mc/PinB4ZmE5Q6IiIiIiIiIiIgm2O/3tw/IoO0vGE3g9/tP4Oqzq0a8/Q8++AArVqwYMN9kMuGVV16Bw+GAy+XCueeei3Xr1qXVUH3llVfw0UcfYf/+/ejo6MCpp56Km2++GbFYDHfeeSd+85vfoLi4GC+++CK+8pWv4Ec/+hEAoLe3F3/84x8BAD09Pfjzn/8MIQSeffZZPPTQQ3jkkUdG/DpmKwZpiYiIiIiIiIiIJlinN5Ldcr7wuO5XSon7778fb731FjQaDVpbW9HR0YGysjJ1mbfeeguf/exnodVqUVFRgTVr1gAAPvroI3zwwQe45JJLAACJRALl5eXqehs2bFCft7S0YMOGDWhvb0c0GsW8efPG9XXMdAzSEhERERERERERTbAShzG75eymUW1/2bJlePnllwfM3759O7q6urB3717o9XrU1NQgHB4YCE7NrFVIKbFs2TLs3r074z6tVqv6/M4778Q999yDdevWYdeuXdiyZcuoXsdsxZq0REREREREREREE+wTteWwGLRDLmMxaPGJ2rIhlxnMmjVrEIlE8MMf/lCdt2fPHjQ1NaGkpAR6vR47d+5EU1PTgHVXrVqFF154AYlEAu3t7di5cycAYPHixejq6lKDtLFYDH//+98z7t/j8WDOnDkAgOeff35Ur2E2Y5CWiIiIiIiIiIhogjlMetxRt2DIZe6oWwC7ST+q7Qsh8Morr+D111/HggULsGzZMmzZsgWXX3456uvrsXLlSmzfvh1LliwZsO769euxcOFC1NbW4vbbb8fq1asBAAaDAS+//DLuu+8+nH766TjjjDPwzjvvZNz/li1b8JnPfAYXXnghnE7nqF7DbCaklLk+BtXKlStlfX19rg+DiIiIiIiIiIgoawcPHsTSpUuzWvbJNw/jB7sa0pqIWQxa3FG3AJvWLJyoQ6RJkOn3QAixV0q5crh1WZOWiIiIiIiIiIhokmxasxA3nFeD3+8/gU5fGCV2Ez5RWzbqDFqaGRikJSIiIiIiIiIimkR2kx5Xn12V68OgKYQ1aYmIiIiIiIiIiIhyiEFaIiIiIiIiIiIiohxikJaIiIiIiIiIiIgoh1iTloiIiIiIiIiIaBL5oj683vQ6uoJdKLYU45LqS2A32HN9WJRDzKQlIiIiIiIiIiKaJM/sewYX/+JifP2dr+PJ957E19/5Oi7+xcV4Zt8zY9ruiRMncM0112DBggU49dRTcfnll+PQoUPjdNQD7dq1C1dcccWEbX8w27Ztw6ZNmyZ9vxONmbREREREREREREST4Jl9z+CJvz0xYH4oHlLn37b8thFvV0qJ9evX44YbbsALL7wAAHjvvffQ0dGBRYsWje2gaVIwk5aIiIiIiIiIiGiC+aI+PLv/2SGXeXb/s/BH/SPe9s6dO6HX67Fx40Z13hlnnIELL7wQUkrce++9OO2001BbW4sXX3wRQF8m7OrVq3H11Vdj0aJF+PKXv4zt27fjYx/7GGpra9HQ0AAAuPHGG7Fx40ZceOGFWLRoEV599dUB+w8EArj55ptx9tln48wzz8RvfvMbAMD3vvc93HzzzQCA/fv347TTTkMwGExb95xzzsHf//539eu6ujrs3bsX3d3duPLKK7F8+XKce+652Ldv34D9dnR0YP369Tj99NNx+umn45133gEAXHnllVixYgWWLVuGZ575R4ayzWbDV77yFZx++uk499xz0dHRAQBoamrCxRdfjOXLl+Piiy9Gc3PziH8GY8UgLRERERERERER0QR7vel1hOKhIZcJxUN4ven1EW/7gw8+wIoVKzJ+71e/+hXee+89vP/++3jjjTdw7733or29HQDw/vvv47HHHsP+/fvx05/+FIcOHcJf//pX3HLLLXjiiX9k/DY2NuKPf/wj/uu//gsbN25EOBxO28e3vvUtrFmzBnv27MHOnTtx7733IhAIYPPmzThy5AheeeUV3HTTTdi6dSssFkvautdccw1eeuklAEB7ezva2tqwYsUKfP3rX8eZZ56Jffv24YEHHsD1118/4LXdddddWL16Nd5//328++67WLZsGQDgRz/6Efbu3Yv6+no8/vjjcLvdAPqCyeeeey7ef/99rFq1Cj/84Q8BAJs2bcL111+Pffv24XOf+xzuuuuu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\n",
223 "text/plain": [
224 "<Figure size 1728x1296 with 1 Axes>"
225 ]
226 },
227 "metadata": {
228 "needs_background": "light"
229 },
230 "output_type": "display_data"
231 }
232 ],
233 "source": [
234 "fig, ax = plt.subplots(figsize=(24,18))\n",
235 "world.plot(ax=ax, alpha=0.4, color='grey')\n",
236 "geo_df.plot(column='Type', ax=ax, legend=True)\n",
237 "plt.title('Volcanoes')"
238 ]
239 },
240 {
241 "cell_type": "markdown",
242 "metadata": {},
243 "source": [
244 "We will be using different icons to differentiate the types of Volcanoes using Folium.\n",
245 "But before we start, we can see a few different tiles to choose from folium."
246 ]
247 },
248 {
249 "cell_type": "code",
250 "execution_count": 6,
251 "metadata": {},
252 "outputs": [
253 {
254 "data": {
255 "text/html": [
256 "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF8yMDY2ZjM4NjM0M2I0YzNiOTUzNGUzODg0ZmM5ZDY0YSB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfMjA2NmYzODYzNDNiNGMzYjk1MzRlMzg4NGZjOWQ2NGEiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwXzIwNjZmMzg2MzQzYjRjM2I5NTM0ZTM4ODRmYzlkNjRhID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwXzIwNjZmMzg2MzQzYjRjM2I5NTM0ZTM4ODRmYzlkNjRhIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFsxMy40MDYsIDgwLjExXSwKICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgICAgICAgICAgICAgIHpvb206IDksCiAgICAgICAgICAgICAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgcHJlZmVyQ2FudmFzOiBmYWxzZSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIAoKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl9hZjBmYzY2NGRjNGI0ZWQwYWRmMGNiNjYwMDg3ZTljNCA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgImh0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RlcnJhaW4ve3p9L3t4fS97eX0uanBnIiwKICAgICAgICAgICAgICAgIHsiYXR0cmlidXRpb24iOiAiTWFwIHRpbGVzIGJ5IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9zdGFtZW4uY29tXCJcdTAwM2VTdGFtZW4gRGVzaWduXHUwMDNjL2FcdTAwM2UsIHVuZGVyIFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMFwiXHUwMDNlQ0MgQlkgMy4wXHUwMDNjL2FcdTAwM2UuIERhdGEgYnkgXHUwMDI2Y29weTsgXHUwMDNjYSBocmVmPVwiaHR0cDovL29wZW5zdHJlZXRtYXAub3JnXCJcdTAwM2VPcGVuU3RyZWV0TWFwXHUwMDNjL2FcdTAwM2UsIHVuZGVyIFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzMuMFwiXHUwMDNlQ0MgQlkgU0FcdTAwM2MvYVx1MDAzZS4iLCAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsICJtYXhOYXRpdmVab29tIjogMTgsICJtYXhab29tIjogMTgsICJtaW5ab29tIjogMCwgIm5vV3JhcCI6IGZhbHNlLCAib3BhY2l0eSI6IDEsICJzdWJkb21haW5zIjogImFiYyIsICJ0bXMiOiBmYWxzZX0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfMjA2NmYzODYzNDNiNGMzYjk1MzRlMzg4NGZjOWQ2NGEpOwogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
257 ],
258 "text/plain": [
259 "<folium.folium.Map at 0x7f252e02e6d8>"
260 ]
261 },
262 "execution_count": 6,
263 "metadata": {},
264 "output_type": "execute_result"
265 }
266 ],
267 "source": [
268 "# Stamen Terrain\n",
269 "map = folium.Map(location = [13.406,80.110], tiles = \"Stamen Terrain\", zoom_start = 9)\n",
270 "map"
271 ]
272 },
273 {
274 "cell_type": "code",
275 "execution_count": 7,
276 "metadata": {},
277 "outputs": [
278 {
279 "data": {
280 "text/html": [
281 "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF85Y2IzZWU0OGQ0NTI0MTk2ODYxYWU3NmFhYmE0YzNhMSB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfOWNiM2VlNDhkNDUyNDE5Njg2MWFlNzZhYWJhNGMzYTEiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwXzljYjNlZTQ4ZDQ1MjQxOTY4NjFhZTc2YWFiYTRjM2ExID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwXzljYjNlZTQ4ZDQ1MjQxOTY4NjFhZTc2YWFiYTRjM2ExIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFsxMy40MDYsIDgwLjExXSwKICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgICAgICAgICAgICAgIHpvb206IDksCiAgICAgICAgICAgICAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgcHJlZmVyQ2FudmFzOiBmYWxzZSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIAoKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl8xMjVlMzU3OTY3MmY0ZDg0YTYwMzFlMmNjYWNjNjBiMSA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgImh0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nIiwKICAgICAgICAgICAgICAgIHsiYXR0cmlidXRpb24iOiAiRGF0YSBieSBcdTAwMjZjb3B5OyBcdTAwM2NhIGhyZWY9XCJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmdcIlx1MDAzZU9wZW5TdHJlZXRNYXBcdTAwM2MvYVx1MDAzZSwgdW5kZXIgXHUwMDNjYSBocmVmPVwiaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIlx1MDAzZU9EYkxcdTAwM2MvYVx1MDAzZS4iLCAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsICJtYXhOYXRpdmVab29tIjogMTgsICJtYXhab29tIjogMTgsICJtaW5ab29tIjogMCwgIm5vV3JhcCI6IGZhbHNlLCAib3BhY2l0eSI6IDEsICJzdWJkb21haW5zIjogImFiYyIsICJ0bXMiOiBmYWxzZX0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfOWNiM2VlNDhkNDUyNDE5Njg2MWFlNzZhYWJhNGMzYTEpOwogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
282 ],
283 "text/plain": [
284 "<folium.folium.Map at 0x7f252e03cc50>"
285 ]
286 },
287 "execution_count": 7,
288 "metadata": {},
289 "output_type": "execute_result"
290 }
291 ],
292 "source": [
293 "# OpenStreetMap\n",
294 "map = folium.Map(location = [13.406,80.110], tiles='OpenStreetMap' , zoom_start = 9)\n",
295 "map"
296 ]
297 },
298 {
299 "cell_type": "code",
300 "execution_count": 8,
301 "metadata": {},
302 "outputs": [
303 {
304 "data": {
305 "text/html": [
306 "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9hZjNmNTRhOGM1OWY0NTAyOWNiYmE1MjI2NGFlNjEzMiB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfYWYzZjU0YThjNTlmNDUwMjljYmJhNTIyNjRhZTYxMzIiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2FmM2Y1NGE4YzU5ZjQ1MDI5Y2JiYTUyMjY0YWU2MTMyID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2FmM2Y1NGE4YzU5ZjQ1MDI5Y2JiYTUyMjY0YWU2MTMyIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFsxMy40MDYsIDgwLjExXSwKICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgICAgICAgICAgICAgIHpvb206IDksCiAgICAgICAgICAgICAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgcHJlZmVyQ2FudmFzOiBmYWxzZSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIAoKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl9lMmEyOWE4NTE5Y2Y0MGYzYjNhY2Y5OTRiNjE0NjIzZiA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgImh0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZyIsCiAgICAgICAgICAgICAgICB7ImF0dHJpYnV0aW9uIjogIk1hcCB0aWxlcyBieSBcdTAwM2NhIGhyZWY9XCJodHRwOi8vc3RhbWVuLmNvbVwiXHUwMDNlU3RhbWVuIERlc2lnblx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjBcIlx1MDAzZUNDIEJZIDMuMFx1MDAzYy9hXHUwMDNlLiBEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF9hZjNmNTRhOGM1OWY0NTAyOWNiYmE1MjI2NGFlNjEzMik7CiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
307 ],
308 "text/plain": [
309 "<folium.folium.Map at 0x7f252e11a3c8>"
310 ]
311 },
312 "execution_count": 8,
313 "metadata": {},
314 "output_type": "execute_result"
315 }
316 ],
317 "source": [
318 "# Stamen Toner\n",
319 "map = folium.Map(location = [13.406,80.110], tiles='Stamen Toner', zoom_start = 9)\n",
320 "map"
321 ]
322 },
323 {
324 "cell_type": "markdown",
325 "metadata": {},
326 "source": [
327 "We can use other tiles for the visualization, these are just a few examples.\n",
328 "\n",
329 "### Markers\n",
330 "Now, let's look at different volcanoes on the map using different Markers to represent the volcanoes."
331 ]
332 },
333 {
334 "cell_type": "code",
335 "execution_count": 9,
336 "metadata": {},
337 "outputs": [],
338 "source": [
339 "#use terrain map layer to actually see volcano terrain\n",
340 "map = folium.Map(location = [4,10], tiles = \"Stamen Terrain\", zoom_start = 3)"
341 ]
342 },
343 {
344 "cell_type": "code",
345 "execution_count": 10,
346 "metadata": {},
347 "outputs": [],
348 "source": [
349 "# insert multiple markers, iterate through list\n",
350 "# add a different color marker associated with type of volcano\n",
351 "\n",
352 "geo_df_list = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n",
353 "\n",
354 "i = 0\n",
355 "for coordinates in geo_df_list:\n",
356 " #assign a color marker for the type of volcano, Strato being the most common\n",
357 " if geo_df.Type[i] == \"Stratovolcano\":\n",
358 " type_color = \"green\"\n",
359 " elif geo_df.Type[i] == \"Complex volcano\":\n",
360 " type_color = \"blue\"\n",
361 " elif geo_df.Type[i] == \"Shield volcano\":\n",
362 " type_color = \"orange\"\n",
363 " elif geo_df.Type[i] == \"Lava dome\":\n",
364 " type_color = \"pink\"\n",
365 " else:\n",
366 " type_color = \"purple\"\n",
367 "\n",
368 "\n",
369 " #now place the markers with the popup labels and data\n",
370 " map.add_child(folium.Marker(location = coordinates,\n",
371 " popup =\n",
372 " \"Year: \" + str(geo_df.Year[i]) + '<br>' +\n",
373 " \"Name: \" + str(geo_df.Name[i]) + '<br>' +\n",
374 " \"Country: \" + str(geo_df.Country[i]) + '<br>'\n",
375 " \"Type: \" + str(geo_df.Type[i]) + '<br>'\n",
376 " \"Coordinates: \" + str(geo_df_list[i]),\n",
377 " icon = folium.Icon(color = \"%s\" % type_color)))\n",
378 " i = i + 1"
379 ]
380 },
381 {
382 "cell_type": "code",
383 "execution_count": 11,
384 "metadata": {},
385 "outputs": [
386 {
387 "data": {
388 "text/html": [
389 "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs0LjAsIDEwLjBdLAogICAgICAgICAgICAgICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgICAgICAgICAgICAgem9vbTogMywKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyX2I5ZmI2NTIzYWFkNzRjMDc4ZmI4ZjhlN2M2ZWZlOGU4ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly9zdGFtZW4tdGlsZXMte3N9LmEuc3NsLmZhc3RseS5uZXQvdGVycmFpbi97en0ve3h9L3t5fS5qcGciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJNYXAgdGlsZXMgYnkgXHUwMDNjYSBocmVmPVwiaHR0cDovL3N0YW1lbi5jb21cIlx1MDAzZVN0YW1lbiBEZXNpZ25cdTAwM2MvYVx1MDAzZSwgdW5kZXIgXHUwMDNjYSBocmVmPVwiaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wXCJcdTAwM2VDQyBCWSAzLjBcdTAwM2MvYVx1MDAzZS4gRGF0YSBieSBcdTAwMjZjb3B5OyBcdTAwM2NhIGhyZWY9XCJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmdcIlx1MDAzZU9wZW5TdHJlZXRNYXBcdTAwM2MvYVx1MDAzZSwgdW5kZXIgXHUwMDNjYSBocmVmPVwiaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMy4wXCJcdTAwM2VDQyBCWSBTQVx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl85MTI5YzMzOTViMmY0NGM2YTE1MDllNzMxMmU3MDk2NCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWy0xLjQ2Njk5OTk5OTk5OTk5OTksIC03OC40NDJdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzBhMTYxNWIxMWI1YTQ5OGI4MTdlYjM3NjNiN2JiNjVlID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfOTEyOWMzMzk1YjJmNDRjNmExNTA5ZTczMTJlNzA5NjQuc2V0SWNvbihpY29uXzBhMTYxNWIxMWI1YTQ5OGI4MTdlYjM3NjNiN2JiNjVlKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9hMThlNDI0NGQ5M2U0NzgyODAyZGVjODExYjJkMDg3MSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfMjhkMTkyM2I4N2QwNDE0ZWIyMDk5NjBlOTAxZTE1OWYgPSAkKGA8ZGl2IGlkPSJodG1sXzI4ZDE5MjNiODdkMDQxNGViMjA5OTYwZTkwMWUxNTlmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDEwPGJyPk5hbWU6IFR1bmd1cmFodWE8YnI+Q291bnRyeTogRWN1YWRvcjxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTEuNDY2OTk5OTk5OTk5OTk5OSwgLTc4LjQ0Ml08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfYTE4ZTQyNDRkOTNlNDc4MjgwMmRlYzgxMWIyZDA4NzEuc2V0Q29udGVudChodG1sXzI4ZDE5MjNiODdkMDQxNGViMjA5OTYwZTkwMWUxNTlmKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzkxMjljMzM5NWIyZjQ0YzZhMTUwOWU3MzEyZTcwOTY0LmJpbmRQb3B1cChwb3B1cF9hMThlNDI0NGQ5M2U0NzgyODAyZGVjODExYjJkMDg3MSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl85NWRjZTU0NmE4ODI0YjZhYTY4MDI0ZTczNjQ5ZjQ3YSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzYzLjYzLCAtMTkuNjJdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzFhZDg2YjNkN2U1ZjQxYTE5MjY2YjhlYTg5YTBkMmEyID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfOTVkY2U1NDZhODgyNGI2YWE2ODAyNGU3MzY0OWY0N2Euc2V0SWNvbihpY29uXzFhZDg2YjNkN2U1ZjQxYTE5MjY2YjhlYTg5YTBkMmEyKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9iZmFhOTNjMGFhNTY0YmY2YTVkYWRiMjE5NmYzYWE1NCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfNDYwMjIwZjY1NGE0NGJkNWJkMmVmMjg5NWIzMzVmYTkgPSAkKGA8ZGl2IGlkPSJodG1sXzQ2MDIyMGY2NTRhNDRiZDViZDJlZjI4OTViMzM1ZmE5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDEwPGJyPk5hbWU6IEV5amFmamFsbGFqb2t1bGw8YnI+Q291bnRyeTogSWNlbGFuZDxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbNjMuNjMsIC0xOS42Ml08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfYmZhYTkzYzBhYTU2NGJmNmE1ZGFkYjIxOTZmM2FhNTQuc2V0Q29udGVudChodG1sXzQ2MDIyMGY2NTRhNDRiZDViZDJlZjI4OTViMzM1ZmE5KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzk1ZGNlNTQ2YTg4MjRiNmFhNjgwMjRlNzM2NDlmNDdhLmJpbmRQb3B1cChwb3B1cF9iZmFhOTNjMGFhNTY0YmY2YTVkYWRiMjE5NmYzYWE1NCkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9iMzU4MjE0MDliMWI0ZjcwOGUxNWE3MzA0MmFhNjgwZSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzE0LjM4MDk5OTk5OTk5OTk5OCwgLTkwLjYwMV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fN2U4NWU1M2JjZGY5NDc4ZWJhN2I3OTc0MjllYzdkMDQgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiYmx1ZSIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2IzNTgyMTQwOWIxYjRmNzA4ZTE1YTczMDQyYWE2ODBlLnNldEljb24oaWNvbl83ZTg1ZTUzYmNkZjk0NzhlYmE3Yjc5NzQyOWVjN2QwNCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMTY3MDU2NTE5ZDBmNGM4Yjk1MTFhMDU4YjY5ZmVjMzEgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2ViYjgwYjk1ZjEwYzQ0MDdiOGJjZDUyZDkwNTA4YTMzID0gJChgPGRpdiBpZD0iaHRtbF9lYmI4MGI5NWYxMGM0NDA3YjhiY2Q1MmQ5MDUwOGEzMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMDxicj5OYW1lOiBQYWNheWE8YnI+Q291bnRyeTogR3VhdGVtYWxhPGJyPlR5cGU6IENvbXBsZXggdm9sY2Fubzxicj5Db29yZGluYXRlczogWzE0LjM4MDk5OTk5OTk5OTk5OCwgLTkwLjYwMV08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMTY3MDU2NTE5ZDBmNGM4Yjk1MTFhMDU4YjY5ZmVjMzEuc2V0Q29udGVudChodG1sX2ViYjgwYjk1ZjEwYzQ0MDdiOGJjZDUyZDkwNTA4YTMzKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2IzNTgyMTQwOWIxYjRmNzA4ZTE1YTczMDQyYWE2ODBlLmJpbmRQb3B1cChwb3B1cF8xNjcwNTY1MTlkMGY0YzhiOTUxMWEwNThiNjlmZWMzMSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9lYzk4MGUxYzY0MGQ0ODhjOWVjYzQ1YTRlMjJkZWIwMiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzE2LjcwOCwgMTQ1Ljc4XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9jODZiMzNiMTRmN2M0YTczOTNmOTQzMTQ5NzMyNTY0MCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2VjOTgwZTFjNjQwZDQ4OGM5ZWNjNDVhNGUyMmRlYjAyLnNldEljb24oaWNvbl9jODZiMzNiMTRmN2M0YTczOTNmOTQzMTQ5NzMyNTY0MCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMzI0NDc2NzQ1Mzk0NGY1ODgwZTg0ZGJkMDk5NTA1YmYgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzU2MjY3MDk5NGM5ZDQ0M2U4YTBlNWRjZDU5NDI0YjAxID0gJChgPGRpdiBpZD0iaHRtbF81NjI2NzA5OTRjOWQ0NDNlOGEwZTVkY2Q1OTQyNGIwMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMDxicj5OYW1lOiBTYXJpZ2FuPGJyPkNvdW50cnk6IFVuaXRlZCBTdGF0ZXM8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWzE2LjcwOCwgMTQ1Ljc4XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF8zMjQ0NzY3NDUzOTQ0ZjU4ODBlODRkYmQwOTk1MDViZi5zZXRDb250ZW50KGh0bWxfNTYyNjcwOTk0YzlkNDQzZThhMGU1ZGNkNTk0MjRiMDEpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZWM5ODBlMWM2NDBkNDg4YzllY2M0NWE0ZTIyZGViMDIuYmluZFBvcHVwKHBvcHVwXzMyNDQ3Njc0NTM5NDRmNTg4MGU4NGRiZDA5OTUwNWJmKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2ZhMTE5NGFjMDE2ZjQ3ZjZhYjViNDQ0ZmQ4ZWE5ZTRjID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMi43OCwgMTI1LjQ4XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8xYjA1Y2M3NjljMmE0NzEwYmU5YTRmYWEwYzJiNWZjNiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2ZhMTE5NGFjMDE2ZjQ3ZjZhYjViNDQ0ZmQ4ZWE5ZTRjLnNldEljb24oaWNvbl8xYjA1Y2M3NjljMmE0NzEwYmU5YTRmYWEwYzJiNWZjNik7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNDRlNzkyYjZjNDIxNGEwNmJmZTBmNjcwMDZhNjJkYTMgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzZlZjk3NmFiNGI5NTQzNTRhOWU0NzNhMjFhMmI3ZDU4ID0gJChgPGRpdiBpZD0iaHRtbF82ZWY5NzZhYjRiOTU0MzU0YTllNDczYTIxYTJiN2Q1OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMDxicj5OYW1lOiBLYXJhbmdldGFuZyBbQXBpIFNpYXVdPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMi43OCwgMTI1LjQ4XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF80NGU3OTJiNmM0MjE0YTA2YmZlMGY2NzAwNmE2MmRhMy5zZXRDb250ZW50KGh0bWxfNmVmOTc2YWI0Yjk1NDM1NGE5ZTQ3M2EyMWEyYjdkNTgpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZmExMTk0YWMwMTZmNDdmNmFiNWI0NDRmZDhlYTllNGMuYmluZFBvcHVwKHBvcHVwXzQ0ZTc5MmI2YzQyMTRhMDZiZmUwZjY3MDA2YTYyZGEzKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzZiZjA1MDgzNmNhMDRiMTg5NmQ1YWE0NWUyMWIxYzBiID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzk1OGIzNTYxMTUxMzQ4NTFiZGQyNmY2MTBhNDBkM2MyID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfNmJmMDUwODM2Y2EwNGIxODk2ZDVhYTQ1ZTIxYjFjMGIuc2V0SWNvbihpY29uXzk1OGIzNTYxMTUxMzQ4NTFiZGQyNmY2MTBhNDBkM2MyKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9iZGYxMjlkYTc2ZWQ0ZTk5OTc3MDY1ZjcwMjhlZmJmNCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYTA1OGQ2ZmE3OTYwNGZlODliNTMxNDk1Mzc0NDJlYWEgPSAkKGA8ZGl2IGlkPSJodG1sX2EwNThkNmZhNzk2MDRmZTg5YjUzMTQ5NTM3NDQyZWFhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDEwPGJyPk5hbWU6IFNpbmFidW5nPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2JkZjEyOWRhNzZlZDRlOTk5NzcwNjVmNzAyOGVmYmY0LnNldENvbnRlbnQoaHRtbF9hMDU4ZDZmYTc5NjA0ZmU4OWI1MzE0OTUzNzQ0MmVhYSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl82YmYwNTA4MzZjYTA0YjE4OTZkNWFhNDVlMjFiMWMwYi5iaW5kUG9wdXAocG9wdXBfYmRmMTI5ZGE3NmVkNGU5OTk3NzA2NWY3MDI4ZWZiZjQpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMDMyZWFmMzhiMDdjNGMzYjhiYzFhYTdkNTI0OWFkMjYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstNy41NDIwMDAwMDAwMDAwMDEsIDExMC40NDIwMDAwMDAwMDAwMV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fZTI2ZTU3ZWI4NmNmNDk4OGIzZGQzZGRjNDk2ZmUzN2YgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8wMzJlYWYzOGIwN2M0YzNiOGJjMWFhN2Q1MjQ5YWQyNi5zZXRJY29uKGljb25fZTI2ZTU3ZWI4NmNmNDk4OGIzZGQzZGRjNDk2ZmUzN2YpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzQzYjVlYzY0ZjZlNDQyYTFiMTI3MThlNDE3YzFhYzUxID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9lZTk5MmZkNDMwMDA0YmZjOTA2M2NlNjM0ZjU3YjM3YSA9ICQoYDxkaXYgaWQ9Imh0bWxfZWU5OTJmZDQzMDAwNGJmYzkwNjNjZTYzNGY1N2IzN2EiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTA8YnI+TmFtZTogTWVyYXBpPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTcuNTQyMDAwMDAwMDAwMDAxLCAxMTAuNDQyMDAwMDAwMDAwMDFdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzQzYjVlYzY0ZjZlNDQyYTFiMTI3MThlNDE3YzFhYzUxLnNldENvbnRlbnQoaHRtbF9lZTk5MmZkNDMwMDA0YmZjOTA2M2NlNjM0ZjU3YjM3YSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8wMzJlYWYzOGIwN2M0YzNiOGJjMWFhN2Q1MjQ5YWQyNi5iaW5kUG9wdXAocG9wdXBfNDNiNWVjNjRmNmU0NDJhMWIxMjcxOGU0MTdjMWFjNTEpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfODY5ZDNjYjM1MzcxNDQ0N2I3ZGJkMzNiM2E2YzBiOGIgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstMS40NjY5OTk5OTk5OTk5OTk5LCAtNzguNDQyXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8yMjhjNmQyODlmYzI0MTQ5YjhjYzRlZmMwNzdhY2IzYiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzg2OWQzY2IzNTM3MTQ0NDdiN2RiZDMzYjNhNmMwYjhiLnNldEljb24oaWNvbl8yMjhjNmQyODlmYzI0MTQ5YjhjYzRlZmMwNzdhY2IzYik7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNjliMDZkNWM0ODdiNDc0NmJmYmJjNTAzYmVjZGU4MjggPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2E3NGY2NTc3NDdiODQyMGI4NDgzMjAxMjY3ZWI3YTQzID0gJChgPGRpdiBpZD0iaHRtbF9hNzRmNjU3NzQ3Yjg0MjBiODQ4MzIwMTI2N2ViN2E0MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMDxicj5OYW1lOiBUdW5ndXJhaHVhPGJyPkNvdW50cnk6IEVjdWFkb3I8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWy0xLjQ2Njk5OTk5OTk5OTk5OTksIC03OC40NDJdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzY5YjA2ZDVjNDg3YjQ3NDZiZmJiYzUwM2JlY2RlODI4LnNldENvbnRlbnQoaHRtbF9hNzRmNjU3NzQ3Yjg0MjBiODQ4MzIwMTI2N2ViN2E0Myk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl84NjlkM2NiMzUzNzE0NDQ3YjdkYmQzM2IzYTZjMGI4Yi5iaW5kUG9wdXAocG9wdXBfNjliMDZkNWM0ODdiNDc0NmJmYmJjNTAzYmVjZGU4MjgpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfN2IwN2ZlMjdmYTIwNDAyOWFlNGRjYjFmNTNiZDgxNGMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstNy45NDIsIDExMi45NV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fYjRjZDc3YzFmYzA4NDhkYjllY2FmMTFmMTI0OWViZWUgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl83YjA3ZmUyN2ZhMjA0MDI5YWU0ZGNiMWY1M2JkODE0Yy5zZXRJY29uKGljb25fYjRjZDc3YzFmYzA4NDhkYjllY2FmMTFmMTI0OWViZWUpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzQ4Y2M1ZDQzMDQzYTQ0NjNiYTFhNjU4MTNiMjI4ZmM2ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8zNzFmMTg1ODllMzI0OGY4OGY0MDgxNTUxYTUyYjQ3NSA9ICQoYDxkaXYgaWQ9Imh0bWxfMzcxZjE4NTg5ZTMyNDhmODhmNDA4MTU1MWE1MmI0NzUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTA8YnI+TmFtZTogVGVuZ2dlciBDYWxkZXJhPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTcuOTQyLCAxMTIuOTVdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzQ4Y2M1ZDQzMDQzYTQ0NjNiYTFhNjU4MTNiMjI4ZmM2LnNldENvbnRlbnQoaHRtbF8zNzFmMTg1ODllMzI0OGY4OGY0MDgxNTUxYTUyYjQ3NSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl83YjA3ZmUyN2ZhMjA0MDI5YWU0ZGNiMWY1M2JkODE0Yy5iaW5kUG9wdXAocG9wdXBfNDhjYzVkNDMwNDNhNDQ2M2JhMWE2NTgxM2IyMjhmYzYpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMjA2YjJiY2NjZDY5NDFkMjlhYjMzZjcyZDA4YTQ2YjUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstNy41NDIwMDAwMDAwMDAwMDEsIDExMC40NDIwMDAwMDAwMDAwMV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fZjVjNTU5NzA3NDdlNGZiMDg5MzU4NTZkNzYyOWVjM2UgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8yMDZiMmJjY2NkNjk0MWQyOWFiMzNmNzJkMDhhNDZiNS5zZXRJY29uKGljb25fZjVjNTU5NzA3NDdlNGZiMDg5MzU4NTZkNzYyOWVjM2UpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzE5NzIxYTc0ZjU3ZDRlYzFhNzhhYmFkN2U1ZTA0NDFmID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8xN2Q0YjUwNTJiYTE0MmUzODMwNzIxNDBjMGY4ZWE2OSA9ICQoYDxkaXYgaWQ9Imh0bWxfMTdkNGI1MDUyYmExNDJlMzgzMDcyMTQwYzBmOGVhNjkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTE8YnI+TmFtZTogTWVyYXBpPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTcuNTQyMDAwMDAwMDAwMDAxLCAxMTAuNDQyMDAwMDAwMDAwMDFdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzE5NzIxYTc0ZjU3ZDRlYzFhNzhhYmFkN2U1ZTA0NDFmLnNldENvbnRlbnQoaHRtbF8xN2Q0YjUwNTJiYTE0MmUzODMwNzIxNDBjMGY4ZWE2OSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8yMDZiMmJjY2NkNjk0MWQyOWFiMzNmNzJkMDhhNDZiNS5iaW5kUG9wdXAocG9wdXBfMTk3MjFhNzRmNTdkNGVjMWE3OGFiYWQ3ZTVlMDQ0MWYpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMmI2M2ZkNzg4ZWNlNGY0Y2JkZjQ1NDJlMDQ4MjhhYmIgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszMS45MywgMTMwLjg3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl81NjBlOTM1Mzg0ODQ0MzBkOWY5NWJkNGYxOGYyODY0MSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJvcmFuZ2UiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8yYjYzZmQ3ODhlY2U0ZjRjYmRmNDU0MmUwNDgyOGFiYi5zZXRJY29uKGljb25fNTYwZTkzNTM4NDg0NDMwZDlmOTViZDRmMThmMjg2NDEpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2ZiYjA3YjA0OTE4YzRmZTM4NTQ4ZmRiOTE0NTZmOWU3ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9mYTAyYzg3NTJjZDM0ODYwYTc5NmFmZDg5YWQ4MzExYSA9ICQoYDxkaXYgaWQ9Imh0bWxfZmEwMmM4NzUyY2QzNDg2MGE3OTZhZmQ4OWFkODMxMWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTE8YnI+TmFtZTogS2lyaXNoaW1hPGJyPkNvdW50cnk6IEphcGFuPGJyPlR5cGU6IFNoaWVsZCB2b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMzEuOTMsIDEzMC44N108L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZmJiMDdiMDQ5MThjNGZlMzg1NDhmZGI5MTQ1NmY5ZTcuc2V0Q29udGVudChodG1sX2ZhMDJjODc1MmNkMzQ4NjBhNzk2YWZkODlhZDgzMTFhKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzJiNjNmZDc4OGVjZTRmNGNiZGY0NTQyZTA0ODI4YWJiLmJpbmRQb3B1cChwb3B1cF9mYmIwN2IwNDkxOGM0ZmUzODU0OGZkYjkxNDU2ZjllNykKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9iOWQ4OGQ4MGEzODc0ZTFmYmYyOGY0ZTk5ZTBmNDk3NSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzEyLjc3LCAxMjQuMDVdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2E3MGM5YTJmNWI3NjQyM2JiNTMxNDgzYmViMTE2NGVlID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfYjlkODhkODBhMzg3NGUxZmJmMjhmNGU5OWUwZjQ5NzUuc2V0SWNvbihpY29uX2E3MGM5YTJmNWI3NjQyM2JiNTMxNDgzYmViMTE2NGVlKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9lNjI3YTU1MjM5MjI0ZDUyOWEzOWQzZjBmYWU0ZGYxNCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYzE5Nzc5NWUzYjRjNDk1MmEyMjg5YjMxNDQ3MzRkZjIgPSAkKGA8ZGl2IGlkPSJodG1sX2MxOTc3OTVlM2I0YzQ5NTJhMjI4OWIzMTQ0NzM0ZGYyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDExPGJyPk5hbWU6IEJ1bHVzYW48YnI+Q291bnRyeTogUGhpbGlwcGluZXM8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWzEyLjc3LCAxMjQuMDVdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2U2MjdhNTUyMzkyMjRkNTI5YTM5ZDNmMGZhZTRkZjE0LnNldENvbnRlbnQoaHRtbF9jMTk3Nzk1ZTNiNGM0OTUyYTIyODliMzE0NDczNGRmMik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9iOWQ4OGQ4MGEzODc0ZTFmYmYyOGY0ZTk5ZTBmNDk3NS5iaW5kUG9wdXAocG9wdXBfZTYyN2E1NTIzOTIyNGQ1MjlhMzlkM2YwZmFlNGRmMTQpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfYjFiNzRlZWU5OGMzNGZlN2IyNzI2MTFhNmM0ZTYwYzEgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFsyLjc4LCAxMjUuNDhdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2RmZTg4YTk2Njk1YzRlNjQ5ODQzZTM5NDM2ZjRiNDQxID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfYjFiNzRlZWU5OGMzNGZlN2IyNzI2MTFhNmM0ZTYwYzEuc2V0SWNvbihpY29uX2RmZTg4YTk2Njk1YzRlNjQ5ODQzZTM5NDM2ZjRiNDQxKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF85MjU0Y2Y0Y2RkMjI0Nzk2OWI4ZThkYzA1Yzg1ZDA3YiA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfZTRmMWIzNzMxM2YzNDYwN2I5MjJkZWQ1NjVjZjRhMjcgPSAkKGA8ZGl2IGlkPSJodG1sX2U0ZjFiMzczMTNmMzQ2MDdiOTIyZGVkNTY1Y2Y0YTI3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDExPGJyPk5hbWU6IEthcmFuZ2V0YW5nIFtBcGkgU2lhdV08YnI+Q291bnRyeTogSW5kb25lc2lhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFsyLjc4LCAxMjUuNDhdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzkyNTRjZjRjZGQyMjQ3OTY5YjhlOGRjMDVjODVkMDdiLnNldENvbnRlbnQoaHRtbF9lNGYxYjM3MzEzZjM0NjA3YjkyMmRlZDU2NWNmNGEyNyk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9iMWI3NGVlZTk4YzM0ZmU3YjI3MjYxMWE2YzRlNjBjMS5iaW5kUG9wdXAocG9wdXBfOTI1NGNmNGNkZDIyNDc5NjliOGU4ZGMwNWM4NWQwN2IpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfZGVkYjBmNTVlYWJiNDU3YTlhNzEyYjBiY2Q3NmRjMzkgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstMS40NjY5OTk5OTk5OTk5OTk5LCAtNzguNDQyXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9mZTFiZGNlMGY5N2E0NjAwYjc4YjBjZTkyMmViNTU3YiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2RlZGIwZjU1ZWFiYjQ1N2E5YTcxMmIwYmNkNzZkYzM5LnNldEljb24oaWNvbl9mZTFiZGNlMGY5N2E0NjAwYjc4YjBjZTkyMmViNTU3Yik7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMTM3YzU4MzBkZjZhNDVhY2E5MzU2ODQ0NTAxZTUwMzUgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzIwN2Y4M2RhYjM3OTRjNzM5NzA5YTczNDlkYmIwY2I1ID0gJChgPGRpdiBpZD0iaHRtbF8yMDdmODNkYWIzNzk0YzczOTcwOWE3MzQ5ZGJiMGNiNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMTxicj5OYW1lOiBUdW5ndXJhaHVhPGJyPkNvdW50cnk6IEVjdWFkb3I8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWy0xLjQ2Njk5OTk5OTk5OTk5OTksIC03OC40NDJdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzEzN2M1ODMwZGY2YTQ1YWNhOTM1Njg0NDUwMWU1MDM1LnNldENvbnRlbnQoaHRtbF8yMDdmODNkYWIzNzk0YzczOTcwOWE3MzQ5ZGJiMGNiNSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9kZWRiMGY1NWVhYmI0NTdhOWE3MTJiMGJjZDc2ZGMzOS5iaW5kUG9wdXAocG9wdXBfMTM3YzU4MzBkZjZhNDVhY2E5MzU2ODQ0NTAxZTUwMzUpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMDFlOTkzZDI2NzdlNDA4Zjk3Y2ZmY2RiYmI4YTJjOTAgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstNDAuNTksIC03Mi4xMTddLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2Q3NjRiZjQwYTEyOTQ4ZmVhMjExZmIzOTY5NThlOWJmID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfMDFlOTkzZDI2NzdlNDA4Zjk3Y2ZmY2RiYmI4YTJjOTAuc2V0SWNvbihpY29uX2Q3NjRiZjQwYTEyOTQ4ZmVhMjExZmIzOTY5NThlOWJmKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF83YjI2ZDBkYzAwOWQ0YTA5YjdlZjA3NWZlNzRiNWVmNCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYWQ1ZmE3ZmI3MTIxNGJiZmI5MWM0NmVkMTUwNGFmOTEgPSAkKGA8ZGl2IGlkPSJodG1sX2FkNWZhN2ZiNzEyMTRiYmZiOTFjNDZlZDE1MDRhZjkxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDExPGJyPk5hbWU6IFB1eWVodWU8YnI+Q291bnRyeTogQ2hpbGU8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWy00MC41OSwgLTcyLjExN108L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfN2IyNmQwZGMwMDlkNGEwOWI3ZWYwNzVmZTc0YjVlZjQuc2V0Q29udGVudChodG1sX2FkNWZhN2ZiNzEyMTRiYmZiOTFjNDZlZDE1MDRhZjkxKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzAxZTk5M2QyNjc3ZTQwOGY5N2NmZmNkYmJiOGEyYzkwLmJpbmRQb3B1cChwb3B1cF83YjI2ZDBkYzAwOWQ0YTA5YjdlZjA3NWZlNzRiNWVmNCkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9hOGExOTNkY2UwNTk0NzEzODE0NTc1OGNjZTM5OTljZiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzEzLjM3LCA0MS43XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl81ZmZlMjZlNjg2Mzc0NDAxODVlNDkzYmExNTJhZmIwNCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2E4YTE5M2RjZTA1OTQ3MTM4MTQ1NzU4Y2NlMzk5OWNmLnNldEljb24oaWNvbl81ZmZlMjZlNjg2Mzc0NDAxODVlNDkzYmExNTJhZmIwNCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMjJjZGE1MjYyMDFlNDQwZDg2N2VkOTUyNTc3YzRlNDEgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzUxN2EyYWUwY2U4NjRlZjA5NDg0ODk1NjZhNjVhOWEzID0gJChgPGRpdiBpZD0iaHRtbF81MTdhMmFlMGNlODY0ZWYwOTQ4NDg5NTY2YTY1YTlhMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMTxicj5OYW1lOiBOYWJybzxicj5Db3VudHJ5OiBFcml0cmVhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFsxMy4zNywgNDEuN108L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMjJjZGE1MjYyMDFlNDQwZDg2N2VkOTUyNTc3YzRlNDEuc2V0Q29udGVudChodG1sXzUxN2EyYWUwY2U4NjRlZjA5NDg0ODk1NjZhNjVhOWEzKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2E4YTE5M2RjZTA1OTQ3MTM4MTQ1NzU4Y2NlMzk5OWNmLmJpbmRQb3B1cChwb3B1cF8yMmNkYTUyNjIwMWU0NDBkODY3ZWQ5NTI1NzdjNGU0MSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9kNjg2ODA1NDllM2E0YjAwODExN2U2ZmVlYTQ5MjU3OCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzYzLjYzLCAtMTkuMDVdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2I3M2VjMDhkNjFkMTQ3MGI4NzQwYjQ1NDBhZDI1N2M3ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogInB1cnBsZSIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2Q2ODY4MDU0OWUzYTRiMDA4MTE3ZTZmZWVhNDkyNTc4LnNldEljb24oaWNvbl9iNzNlYzA4ZDYxZDE0NzBiODc0MGI0NTQwYWQyNTdjNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfOGFkODRhZDE2OTgyNDFiZThkNjdhZTgzNzM0ODBjNjkgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzlkMDMzYzdkNjY4NDRjNDc5MTQwNWY2YWYzNTVkZmY1ID0gJChgPGRpdiBpZD0iaHRtbF85ZDAzM2M3ZDY2ODQ0YzQ3OTE0MDVmNmFmMzU1ZGZmNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMTxicj5OYW1lOiBLYXRsYTxicj5Db3VudHJ5OiBJY2VsYW5kPGJyPlR5cGU6IFN1YmdsYWNpYWwgdm9sY2Fubzxicj5Db29yZGluYXRlczogWzYzLjYzLCAtMTkuMDVdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzhhZDg0YWQxNjk4MjQxYmU4ZDY3YWU4MzczNDgwYzY5LnNldENvbnRlbnQoaHRtbF85ZDAzM2M3ZDY2ODQ0YzQ3OTE0MDVmNmFmMzU1ZGZmNSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9kNjg2ODA1NDllM2E0YjAwODExN2U2ZmVlYTQ5MjU3OC5iaW5kUG9wdXAocG9wdXBfOGFkODRhZDE2OTgyNDFiZThkNjdhZTgzNzM0ODBjNjkpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfYmE4YzY2YTdkOTZmNDlmODkyMTdjMTQ3MjQ1NDMwMzUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFsxLjM1OCwgMTI0Ljc5Ml0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fNTk3Zjc0ODNjNTRlNDhjNGI1ZjhmMmNkYjIyODBiMDQgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9iYThjNjZhN2Q5NmY0OWY4OTIxN2MxNDcyNDU0MzAzNS5zZXRJY29uKGljb25fNTk3Zjc0ODNjNTRlNDhjNGI1ZjhmMmNkYjIyODBiMDQpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzAxZjlhMTM4NjA4YjQ0ZDBiZTc3OGY0ZDY0MjUyN2QyID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8wZTI1NDk1NTBhZjg0YzcxYjllMzVhZDRlNDAwMWFkZSA9ICQoYDxkaXYgaWQ9Imh0bWxfMGUyNTQ5NTUwYWY4NGM3MWI5ZTM1YWQ0ZTQwMDFhZGUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTE8YnI+TmFtZTogTG9rb24tRW1wdW5nPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMS4zNTgsIDEyNC43OTJdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzAxZjlhMTM4NjA4YjQ0ZDBiZTc3OGY0ZDY0MjUyN2QyLnNldENvbnRlbnQoaHRtbF8wZTI1NDk1NTBhZjg0YzcxYjllMzVhZDRlNDAwMWFkZSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9iYThjNjZhN2Q5NmY0OWY4OTIxN2MxNDcyNDU0MzAzNS5iaW5kUG9wdXAocG9wdXBfMDFmOWExMzg2MDhiNDRkMGJlNzc4ZjRkNjQyNTI3ZDIpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfZmU2YzlkOWRhOTdkNGNiOWJkYTA3NjgyMGVkM2ZkNGMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFswLjgsIDEyNy4zMjVdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2NhNWY4MzEzYjUzZTRiZjc4MjQzYjAwYWJmYTZjNjA0ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfZmU2YzlkOWRhOTdkNGNiOWJkYTA3NjgyMGVkM2ZkNGMuc2V0SWNvbihpY29uX2NhNWY4MzEzYjUzZTRiZjc4MjQzYjAwYWJmYTZjNjA0KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8wOGI2YTBmMGJhOWY0YWM0YjIyYmJmYWFjNWIwYTYxNCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYmY2ZDEwODlhZjY0NDc3MGEyYzEzOTY0ODk1YTAyNGIgPSAkKGA8ZGl2IGlkPSJodG1sX2JmNmQxMDg5YWY2NDQ3NzBhMmMxMzk2NDg5NWEwMjRiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDExPGJyPk5hbWU6IEdhbWFsYW1hPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMC44LCAxMjcuMzI1XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF8wOGI2YTBmMGJhOWY0YWM0YjIyYmJmYWFjNWIwYTYxNC5zZXRDb250ZW50KGh0bWxfYmY2ZDEwODlhZjY0NDc3MGEyYzEzOTY0ODk1YTAyNGIpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZmU2YzlkOWRhOTdkNGNiOWJkYTA3NjgyMGVkM2ZkNGMuYmluZFBvcHVwKHBvcHVwXzA4YjZhMGYwYmE5ZjRhYzRiMjJiYmZhYWM1YjBhNjE0KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzZmY2MzYzBjYzg5NDQwMjJhZjQ5NWE0ZjFmOWE3MGJhID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMTkuNDI1LCAtMTU1LjI5Ml0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fODE2OGViNmJlYjljNDhkNzlmYmNmN2YwNjBhYjZiMjAgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAib3JhbmdlIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfNmZjYzNjMGNjODk0NDAyMmFmNDk1YTRmMWY5YTcwYmEuc2V0SWNvbihpY29uXzgxNjhlYjZiZWI5YzQ4ZDc5ZmJjZjdmMDYwYWI2YjIwKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8xNWFjNzc0MzMyMWU0MGMyOTJjNDM5MTQ2NDdkOWE1MyA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfMmFlMDIwZTg4MzJiNDM2ZTg1NGQ2OTVkZWUxZWM2YzEgPSAkKGA8ZGl2IGlkPSJodG1sXzJhZTAyMGU4ODMyYjQzNmU4NTRkNjk1ZGVlMWVjNmMxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDEyPGJyPk5hbWU6IEtpbGF1ZWE8YnI+Q291bnRyeTogVW5pdGVkIFN0YXRlczxicj5UeXBlOiBTaGllbGQgdm9sY2Fubzxicj5Db29yZGluYXRlczogWzE5LjQyNSwgLTE1NS4yOTJdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzE1YWM3NzQzMzIxZTQwYzI5MmM0MzkxNDY0N2Q5YTUzLnNldENvbnRlbnQoaHRtbF8yYWUwMjBlODgzMmI0MzZlODU0ZDY5NWRlZTFlYzZjMSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl82ZmNjM2MwY2M4OTQ0MDIyYWY0OTVhNGYxZjlhNzBiYS5iaW5kUG9wdXAocG9wdXBfMTVhYzc3NDMzMjFlNDBjMjkyYzQzOTE0NjQ3ZDlhNTMpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfZWEwZTJmMzY2ZjVhNDNhMjg5ZDIyODUwZTcwYzM4OWIgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFsxOS40MjUsIC0xNTUuMjkyXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl84MTk1ZjUzZDZmYzE0ZDBiYTA2NTE3MGQ2OTkyNzRkMyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJvcmFuZ2UiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9lYTBlMmYzNjZmNWE0M2EyODlkMjI4NTBlNzBjMzg5Yi5zZXRJY29uKGljb25fODE5NWY1M2Q2ZmMxNGQwYmEwNjUxNzBkNjk5Mjc0ZDMpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzJmNzM2NjgwMzI0MDQzNDY5MGNkZWQzNDhjZGUwYjIxID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9iNDBkZjg5ZWY4NDg0NWNkOWUxMDYxOWQzNGZiZjc1NCA9ICQoYDxkaXYgaWQ9Imh0bWxfYjQwZGY4OWVmODQ4NDVjZDllMTA2MTlkMzRmYmY3NTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTI8YnI+TmFtZTogS2lsYXVlYTxicj5Db3VudHJ5OiBVbml0ZWQgU3RhdGVzPGJyPlR5cGU6IFNoaWVsZCB2b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMTkuNDI1LCAtMTU1LjI5Ml08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMmY3MzY2ODAzMjQwNDM0NjkwY2RlZDM0OGNkZTBiMjEuc2V0Q29udGVudChodG1sX2I0MGRmODllZjg0ODQ1Y2Q5ZTEwNjE5ZDM0ZmJmNzU0KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2VhMGUyZjM2NmY1YTQzYTI4OWQyMjg1MGU3MGMzODliLmJpbmRQb3B1cChwb3B1cF8yZjczNjY4MDMyNDA0MzQ2OTBjZGVkMzQ4Y2RlMGIyMSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl8xMzViYWUzNThmMzM0OWFjODA2MGZkNTZkMzZkYTI0YiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzU1LjgzLCAxNjAuMzNdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzVjZWU4NjU1ZWJiZDQyNmI4NDRkYWYzMTczMmI1OWQ1ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogIm9yYW5nZSIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzEzNWJhZTM1OGYzMzQ5YWM4MDYwZmQ1NmQzNmRhMjRiLnNldEljb24oaWNvbl81Y2VlODY1NWViYmQ0MjZiODQ0ZGFmMzE3MzJiNTlkNSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNTQxMjY1YjYxZWVmNGM3Y2E1MTVkOWZhZDMxYTUyNTUgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzEwZmM0ZGQ3NTUzYzQxMTdhN2FkNDljYmY2OGM5ZDU0ID0gJChgPGRpdiBpZD0iaHRtbF8xMGZjNGRkNzU1M2M0MTE3YTdhZDQ5Y2JmNjhjOWQ1NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMjxicj5OYW1lOiBUb2xiYWNoaWs8YnI+Q291bnRyeTogUnVzc2lhPGJyPlR5cGU6IFNoaWVsZCB2b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbNTUuODMsIDE2MC4zM108L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfNTQxMjY1YjYxZWVmNGM3Y2E1MTVkOWZhZDMxYTUyNTUuc2V0Q29udGVudChodG1sXzEwZmM0ZGQ3NTUzYzQxMTdhN2FkNDljYmY2OGM5ZDU0KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzEzNWJhZTM1OGYzMzQ5YWM4MDYwZmQ1NmQzNmRhMjRiLmJpbmRQb3B1cChwb3B1cF81NDEyNjViNjFlZWY0YzdjYTUxNWQ5ZmFkMzFhNTI1NSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl82N2VkYWFlMzFmMWY0ZDVlODM4NzNjZDBiYTU1M2Q0NCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWy03LjU0MjAwMDAwMDAwMDAwMSwgMTEwLjQ0MjAwMDAwMDAwMDAxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl80NDdlZDdjYWQ5ZTc0ZDE1OWZjMWQ4MWUzNTExZTVmZCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzY3ZWRhYWUzMWYxZjRkNWU4Mzg3M2NkMGJhNTUzZDQ0LnNldEljb24oaWNvbl80NDdlZDdjYWQ5ZTc0ZDE1OWZjMWQ4MWUzNTExZTVmZCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZDNlYWVmY2UxMjM0NDZkYzg5MzlhMjMzYWFiNGZhNDUgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzBhNWM3ZDY1Mzc2YTRmNTlhNTNlODVmNzhiYThlNmNlID0gJChgPGRpdiBpZD0iaHRtbF8wYTVjN2Q2NTM3NmE0ZjU5YTUzZTg1Zjc4YmE4ZTZjZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMzxicj5OYW1lOiBNZXJhcGk8YnI+Q291bnRyeTogSW5kb25lc2lhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFstNy41NDIwMDAwMDAwMDAwMDEsIDExMC40NDIwMDAwMDAwMDAwMV08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZDNlYWVmY2UxMjM0NDZkYzg5MzlhMjMzYWFiNGZhNDUuc2V0Q29udGVudChodG1sXzBhNWM3ZDY1Mzc2YTRmNTlhNTNlODVmNzhiYThlNmNlKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzY3ZWRhYWUzMWYxZjRkNWU4Mzg3M2NkMGJhNTUzZDQ0LmJpbmRQb3B1cChwb3B1cF9kM2VhZWZjZTEyMzQ0NmRjODkzOWEyMzNhYWI0ZmE0NSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl81NDRhZGNhMTk0ZTk0MmQ5YWZlODg2NWFlY2VmN2MwNyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWy04LjMyLCAxMjEuNzA4XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9lMzgwYzI1ZDNjNjA0YTFmOTMwZDg2ODIxZGRhNWNhNiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzU0NGFkY2ExOTRlOTQyZDlhZmU4ODY1YWVjZWY3YzA3LnNldEljb24oaWNvbl9lMzgwYzI1ZDNjNjA0YTFmOTMwZDg2ODIxZGRhNWNhNik7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZDFkOGI2NDIxOGVmNGZjYzg4ZWVmYTY4MDVmMjMzN2EgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzc5M2RhMTA4MTlhODQ3MjY4ZDg5NWFlY2EyYzhhNmRmID0gJChgPGRpdiBpZD0iaHRtbF83OTNkYTEwODE5YTg0NzI2OGQ4OTVhZWNhMmM4YTZkZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMzxicj5OYW1lOiBQYWx1d2VoPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTguMzIsIDEyMS43MDhdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2QxZDhiNjQyMThlZjRmY2M4OGVlZmE2ODA1ZjIzMzdhLnNldENvbnRlbnQoaHRtbF83OTNkYTEwODE5YTg0NzI2OGQ4OTVhZWNhMmM4YTZkZik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl81NDRhZGNhMTk0ZTk0MmQ5YWZlODg2NWFlY2VmN2MwNy5iaW5kUG9wdXAocG9wdXBfZDFkOGI2NDIxOGVmNGZjYzg4ZWVmYTY4MDVmMjMzN2EpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfYzhjODhlYzk3YzQ0NGMwY2I2N2VlODgzMWUzNGMzY2QgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFsxMy4yNTcsIDEyMy42ODVdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2MyNmVlZmVkOGQwMTQ5MGY5NmIzYTJiZjlhYjJlY2UyID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfYzhjODhlYzk3YzQ0NGMwY2I2N2VlODgzMWUzNGMzY2Quc2V0SWNvbihpY29uX2MyNmVlZmVkOGQwMTQ5MGY5NmIzYTJiZjlhYjJlY2UyKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9iMjk4NTc2NjcwNWI0MDhjODEyNDU3MzZkMGM3ZmVhZCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfZWNiMmQ3ZDA3YzA5NGQxNTg0MzIwZGY3MjZkYzE2ODIgPSAkKGA8ZGl2IGlkPSJodG1sX2VjYjJkN2QwN2MwOTRkMTU4NDMyMGRmNzI2ZGMxNjgyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDEzPGJyPk5hbWU6IE1heW9uPGJyPkNvdW50cnk6IFBoaWxpcHBpbmVzPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFsxMy4yNTcsIDEyMy42ODVdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2IyOTg1NzY2NzA1YjQwOGM4MTI0NTczNmQwYzdmZWFkLnNldENvbnRlbnQoaHRtbF9lY2IyZDdkMDdjMDk0ZDE1ODQzMjBkZjcyNmRjMTY4Mik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9jOGM4OGVjOTdjNDQ0YzBjYjY3ZWU4ODMxZTM0YzNjZC5iaW5kUG9wdXAocG9wdXBfYjI5ODU3NjY3MDViNDA4YzgxMjQ1NzM2ZDBjN2ZlYWQpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfNDYxYWE5MDhiYWYyNGRlZThmN2JkNzI4NTRkN2MyYzIgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstOC4zMiwgMTIxLjcwOF0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fMjhkZTgwOGFiZWEzNGQzYzk3OWMyY2RhZjUxNGI1NWEgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl80NjFhYTkwOGJhZjI0ZGVlOGY3YmQ3Mjg1NGQ3YzJjMi5zZXRJY29uKGljb25fMjhkZTgwOGFiZWEzNGQzYzk3OWMyY2RhZjUxNGI1NWEpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2NlZWVmZWFkZTg0OTRiYWNiNzBhNjE4ZjNjNDY3NmZhID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF82NmY0ZDEwNTlmMDg0ZDQ1ODEzYTk1OWUyYzQ0NTU4MiA9ICQoYDxkaXYgaWQ9Imh0bWxfNjZmNGQxMDU5ZjA4NGQ0NTgxM2E5NTllMmM0NDU1ODIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTM8YnI+TmFtZTogUGFsdXdlaDxicj5Db3VudHJ5OiBJbmRvbmVzaWE8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWy04LjMyLCAxMjEuNzA4XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9jZWVlZmVhZGU4NDk0YmFjYjcwYTYxOGYzYzQ2NzZmYS5zZXRDb250ZW50KGh0bWxfNjZmNGQxMDU5ZjA4NGQ0NTgxM2E5NTllMmM0NDU1ODIpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfNDYxYWE5MDhiYWYyNGRlZThmN2JkNzI4NTRkN2MyYzIuYmluZFBvcHVwKHBvcHVwX2NlZWVmZWFkZTg0OTRiYWNiNzBhNjE4ZjNjNDY3NmZhKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2IzZTZmYTBkMjgzNDQ1YTM4ZGEzN2JkZWVhYTJkNDQwID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbLTE2LjM1NSwgLTcwLjkwM10sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fOTBlYWRjMmRhNWM4NDUxMWFmODdlZDRmYjAzMTE2OTEgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9iM2U2ZmEwZDI4MzQ0NWEzOGRhMzdiZGVlYWEyZDQ0MC5zZXRJY29uKGljb25fOTBlYWRjMmRhNWM4NDUxMWFmODdlZDRmYjAzMTE2OTEpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzFlNWI0OTQ5OTE1NzQyOTc5ZTAxM2I1MDE2ZDVjYzc2ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8zY2U3OTA2NjExNjk0MjgxYjk4Y2RjYzNjYWUxMTNiZiA9ICQoYDxkaXYgaWQ9Imh0bWxfM2NlNzkwNjYxMTY5NDI4MWI5OGNkY2MzY2FlMTEzYmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTM8YnI+TmFtZTogVWJpbmFzPGJyPkNvdW50cnk6IFBlcnU8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWy0xNi4zNTUsIC03MC45MDNdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzFlNWI0OTQ5OTE1NzQyOTc5ZTAxM2I1MDE2ZDVjYzc2LnNldENvbnRlbnQoaHRtbF8zY2U3OTA2NjExNjk0MjgxYjk4Y2RjYzNjYWUxMTNiZik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9iM2U2ZmEwZDI4MzQ0NWEzOGRhMzdiZGVlYWEyZDQ0MC5iaW5kUG9wdXAocG9wdXBfMWU1YjQ5NDk5MTU3NDI5NzllMDEzYjUwMTZkNWNjNzYpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMTAwMWM5OGNlYjg2NGZiMzgxYjY5NDk5YTc1NTIyYjMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszMS41OCwgMTMwLjY3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8xZWI2NjNjNTVmZTI0ZTViYTk4MWEzNDhiMjZjNDNiYyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzEwMDFjOThjZWI4NjRmYjM4MWI2OTQ5OWE3NTUyMmIzLnNldEljb24oaWNvbl8xZWI2NjNjNTVmZTI0ZTViYTk4MWEzNDhiMjZjNDNiYyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfODMxM2Y3M2M5NTYyNGMyNmI3OTNjYWY2YzBkMGYyZmIgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzQ1ZjQ4N2YzZjAxYTQ1OTM5ZjRkMDA4ODNmYTkzY2Y0ID0gJChgPGRpdiBpZD0iaHRtbF80NWY0ODdmM2YwMWE0NTkzOWY0ZDAwODgzZmE5M2NmNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMzxicj5OYW1lOiBTYWt1cmEtamltYTxicj5Db3VudHJ5OiBKYXBhbjxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMzEuNTgsIDEzMC42N108L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfODMxM2Y3M2M5NTYyNGMyNmI3OTNjYWY2YzBkMGYyZmIuc2V0Q29udGVudChodG1sXzQ1ZjQ4N2YzZjAxYTQ1OTM5ZjRkMDA4ODNmYTkzY2Y0KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzEwMDFjOThjZWI4NjRmYjM4MWI2OTQ5OWE3NTUyMmIzLmJpbmRQb3B1cChwb3B1cF84MzEzZjczYzk1NjI0YzI2Yjc5M2NhZjZjMGQwZjJmYikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl8yOTZkNmIwNjJlOTg0MGI1OTg5ZThlNTBjZGMyYmQ5NSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl82ZTU4MDNiYTkyNGU0NjJiYmM4MzJiMWE1NDY3NDlhNyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzI5NmQ2YjA2MmU5ODQwYjU5ODllOGU1MGNkYzJiZDk1LnNldEljb24oaWNvbl82ZTU4MDNiYTkyNGU0NjJiYmM4MzJiMWE1NDY3NDlhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMGE2OWNhNzhjYWFlNGMwMjg3MGRlZjNlNmUwOTNmYWQgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2UwZmNjOGUxNzY1MDQxNTg5ZDliMTUwZWU1MDEwMGE5ID0gJChgPGRpdiBpZD0iaHRtbF9lMGZjYzhlMTc2NTA0MTU4OWQ5YjE1MGVlNTAxMDBhOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMzxicj5OYW1lOiBTaW5hYnVuZzxicj5Db3VudHJ5OiBJbmRvbmVzaWE8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF8wYTY5Y2E3OGNhYWU0YzAyODcwZGVmM2U2ZTA5M2ZhZC5zZXRDb250ZW50KGh0bWxfZTBmY2M4ZTE3NjUwNDE1ODlkOWIxNTBlZTUwMTAwYTkpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfMjk2ZDZiMDYyZTk4NDBiNTk4OWU4ZTUwY2RjMmJkOTUuYmluZFBvcHVwKHBvcHVwXzBhNjljYTc4Y2FhZTRjMDI4NzBkZWYzZTZlMDkzZmFkKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzk3MjI1ODg5MDY4MzQwNTU5ZWUwYmQxMjEwNWRiYzMyID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbLTM4LjEyLCAxNzYuNV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fYmNkYTAwMGQ0YjcyNDE3Yjk0MDIxODhhMTM2MDM5NDAgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAicGluayIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzk3MjI1ODg5MDY4MzQwNTU5ZWUwYmQxMjEwNWRiYzMyLnNldEljb24oaWNvbl9iY2RhMDAwZDRiNzI0MTdiOTQwMjE4OGExMzYwMzk0MCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfYmI1YTI0ZTg3MjU1NGJjMGFkMjFlNDY1YjkxNzI4ZTYgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzQxODJmMDIxOGUxZjRhZmQ5OWFiZjMxNTc4NzM3ZDUzID0gJChgPGRpdiBpZD0iaHRtbF80MTgyZjAyMThlMWY0YWZkOTlhYmYzMTU3ODczN2Q1MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxMzxicj5OYW1lOiBPa2F0YWluYTxicj5Db3VudHJ5OiBOZXcgWmVhbGFuZDxicj5UeXBlOiBMYXZhIGRvbWU8YnI+Q29vcmRpbmF0ZXM6IFstMzguMTIsIDE3Ni41XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9iYjVhMjRlODcyNTU0YmMwYWQyMWU0NjViOTE3MjhlNi5zZXRDb250ZW50KGh0bWxfNDE4MmYwMjE4ZTFmNGFmZDk5YWJmMzE1Nzg3MzdkNTMpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfOTcyMjU4ODkwNjgzNDA1NTllZTBiZDEyMTA1ZGJjMzIuYmluZFBvcHVwKHBvcHVwX2JiNWEyNGU4NzI1NTRiYzBhZDIxZTQ2NWI5MTcyOGU2KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzI2MTgwNTQ1NzU1YTQyZjVhYjlmMzBmMTI4ZmRhYzI1ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2Y0YjQyNGQyYzE4ZDQ3MzRiMjA2NWU4ZWRhODBhM2M3ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfMjYxODA1NDU3NTVhNDJmNWFiOWYzMGYxMjhmZGFjMjUuc2V0SWNvbihpY29uX2Y0YjQyNGQyYzE4ZDQ3MzRiMjA2NWU4ZWRhODBhM2M3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF85ZmZmM2JkNmEzZjc0NjhhOWMzODg5YzY2ZGU4NDAyNSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfN2I2YzdiNTY1YTcwNDllNmE0NjkzMjUzMzY4ODEzMjUgPSAkKGA8ZGl2IGlkPSJodG1sXzdiNmM3YjU2NWE3MDQ5ZTZhNDY5MzI1MzM2ODgxMzI1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDE0PGJyPk5hbWU6IFNpbmFidW5nPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzlmZmYzYmQ2YTNmNzQ2OGE5YzM4ODljNjZkZTg0MDI1LnNldENvbnRlbnQoaHRtbF83YjZjN2I1NjVhNzA0OWU2YTQ2OTMyNTMzNjg4MTMyNSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8yNjE4MDU0NTc1NWE0MmY1YWI5ZjMwZjEyOGZkYWMyNS5iaW5kUG9wdXAocG9wdXBfOWZmZjNiZDZhM2Y3NDY4YTljMzg4OWM2NmRlODQwMjUpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMmM5OTVhZmYxNjE2NDhiMmFmYTYxOTRiNzg3Yjk4YjQgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstNy45MywgMTEyLjMwNzk5OTk5OTk5OTk5XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl84MzkwOGJjMGJlYWM0Mjc2YjgxZWZjM2VkOGI5NjFmMSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzJjOTk1YWZmMTYxNjQ4YjJhZmE2MTk0Yjc4N2I5OGI0LnNldEljb24oaWNvbl84MzkwOGJjMGJlYWM0Mjc2YjgxZWZjM2VkOGI5NjFmMSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMTVjM2ViNjU0M2IyNDA2ODhkMjE2MmRmZDg0MjhlZjEgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2IwODgzZDU3NmJjMTQwZjQ5ZGM1Njg1NDY1Mjc5MjBiID0gJChgPGRpdiBpZD0iaHRtbF9iMDg4M2Q1NzZiYzE0MGY0OWRjNTY4NTQ2NTI3OTIwYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxNDxicj5OYW1lOiBLZWx1dDxicj5Db3VudHJ5OiBJbmRvbmVzaWE8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWy03LjkzLCAxMTIuMzA3OTk5OTk5OTk5OTldPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzE1YzNlYjY1NDNiMjQwNjg4ZDIxNjJkZmQ4NDI4ZWYxLnNldENvbnRlbnQoaHRtbF9iMDg4M2Q1NzZiYzE0MGY0OWRjNTY4NTQ2NTI3OTIwYik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8yYzk5NWFmZjE2MTY0OGIyYWZhNjE5NGI3ODdiOThiNC5iaW5kUG9wdXAocG9wdXBfMTVjM2ViNjU0M2IyNDA2ODhkMjE2MmRmZDg0MjhlZjEpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMTE0ZjA1MjJjMDM2NDFlODk0MWM1ZmQ2ZTcyZWRiODYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszNS45LCAxMzcuNDhdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzhkODE5NjQ4NThmYzQ5OThhMzI3M2VmMzU5MmVkNmM4ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImJsdWUiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8xMTRmMDUyMmMwMzY0MWU4OTQxYzVmZDZlNzJlZGI4Ni5zZXRJY29uKGljb25fOGQ4MTk2NDg1OGZjNDk5OGEzMjczZWYzNTkyZWQ2YzgpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzQ2ZDNmNzEzZTgzZDRhZTNhYjZlZTg3MmY1YmQwOTRjID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9mZGEzNTQ5MTY0ZGQ0Y2IxYWIyZTQyOGI2MDFkMGVkNCA9ICQoYDxkaXYgaWQ9Imh0bWxfZmRhMzU0OTE2NGRkNGNiMWFiMmU0MjhiNjAxZDBlZDQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTQ8YnI+TmFtZTogT24tdGFrZTxicj5Db3VudHJ5OiBKYXBhbjxicj5UeXBlOiBDb21wbGV4IHZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFszNS45LCAxMzcuNDhdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzQ2ZDNmNzEzZTgzZDRhZTNhYjZlZTg3MmY1YmQwOTRjLnNldENvbnRlbnQoaHRtbF9mZGEzNTQ5MTY0ZGQ0Y2IxYWIyZTQyOGI2MDFkMGVkNCk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8xMTRmMDUyMmMwMzY0MWU4OTQxYzVmZDZlNzJlZGI4Ni5iaW5kUG9wdXAocG9wdXBfNDZkM2Y3MTNlODNkNGFlM2FiNmVlODcyZjViZDA5NGMpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfZjg4ZjFmYTY4ZWI1NDA5NGFmMjExY2FiZGM3ZmI0MzcgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFsxOS40MjUsIC0xNTUuMjkyXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8wMzdhYjMyNWRkY2Y0NjgxYjdjNGMxNjJhZTA2MTJhNCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJvcmFuZ2UiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9mODhmMWZhNjhlYjU0MDk0YWYyMTFjYWJkYzdmYjQzNy5zZXRJY29uKGljb25fMDM3YWIzMjVkZGNmNDY4MWI3YzRjMTYyYWUwNjEyYTQpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2ZkMmFlMzc0MDJhNzQzYWY5MTQ5YWRjODY3ZTRkYWU1ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8xMDQ1Y2U5ZGFjYjE0YzJkYWMyZGFkZjlkOTVhZTc4ZCA9ICQoYDxkaXYgaWQ9Imh0bWxfMTA0NWNlOWRhY2IxNGMyZGFjMmRhZGY5ZDk1YWU3OGQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTQ8YnI+TmFtZTogS2lsYXVlYTxicj5Db3VudHJ5OiBVbml0ZWQgU3RhdGVzPGJyPlR5cGU6IFNoaWVsZCB2b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMTkuNDI1LCAtMTU1LjI5Ml08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZmQyYWUzNzQwMmE3NDNhZjkxNDlhZGM4NjdlNGRhZTUuc2V0Q29udGVudChodG1sXzEwNDVjZTlkYWNiMTRjMmRhYzJkYWRmOWQ5NWFlNzhkKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2Y4OGYxZmE2OGViNTQwOTRhZjIxMWNhYmRjN2ZiNDM3LmJpbmRQb3B1cChwb3B1cF9mZDJhZTM3NDAyYTc0M2FmOTE0OWFkYzg2N2U0ZGFlNSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9iNGE2ZmFjZTY5NzQ0MWFiYTNmMjI4MzZiYTBhMDg1OCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzE0Ljk1LCAtMjQuMzVdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2Q5N2QxYTg3NDFlMDRiOTU4ZjAyNDc3Y2VjMjcwOWRlID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfYjRhNmZhY2U2OTc0NDFhYmEzZjIyODM2YmEwYTA4NTguc2V0SWNvbihpY29uX2Q5N2QxYTg3NDFlMDRiOTU4ZjAyNDc3Y2VjMjcwOWRlKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF82MmEzOGZiY2U1MTI0YTE5YWE0N2NlYWIwYTUxZjVhMCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYTFjYTA5NzY3ZGFiNDE3Mjk5NDJjOWRjOTQwMjdiZDAgPSAkKGA8ZGl2IGlkPSJodG1sX2ExY2EwOTc2N2RhYjQxNzI5OTQyYzlkYzk0MDI3YmQwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDE0PGJyPk5hbWU6IEZvZ288YnI+Q291bnRyeTogQ2FwZSBWZXJkZTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMTQuOTUsIC0yNC4zNV08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfNjJhMzhmYmNlNTEyNGExOWFhNDdjZWFiMGE1MWY1YTAuc2V0Q29udGVudChodG1sX2ExY2EwOTc2N2RhYjQxNzI5OTQyYzlkYzk0MDI3YmQwKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2I0YTZmYWNlNjk3NDQxYWJhM2YyMjgzNmJhMGEwODU4LmJpbmRQb3B1cChwb3B1cF82MmEzOGZiY2U1MTI0YTE5YWE0N2NlYWIwYTUxZjVhMCkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl83Mjc1MjgzOTZmMTA0MDk2YjMyYzhhNmI2ODc0NThjYSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzAuOCwgMTI3LjMyNV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fODE1ODA4MDI3YjkyNDE0ZGI4OWI2MGVhZDU5M2QyMDEgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl83Mjc1MjgzOTZmMTA0MDk2YjMyYzhhNmI2ODc0NThjYS5zZXRJY29uKGljb25fODE1ODA4MDI3YjkyNDE0ZGI4OWI2MGVhZDU5M2QyMDEpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzQ3OTVhZjkwMGE3ODQ3NmRhMjJkZmE2NmU5NzAzODQ3ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9jMGM1NTc5YmNmMzc0OWQwYjIyNjM0ODQ5ZmU2YTZiMiA9ICQoYDxkaXYgaWQ9Imh0bWxfYzBjNTU3OWJjZjM3NDlkMGIyMjYzNDg0OWZlNmE2YjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTQ8YnI+TmFtZTogR2FtYWxhbWE8YnI+Q291bnRyeTogSW5kb25lc2lhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFswLjgsIDEyNy4zMjVdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzQ3OTVhZjkwMGE3ODQ3NmRhMjJkZmE2NmU5NzAzODQ3LnNldENvbnRlbnQoaHRtbF9jMGM1NTc5YmNmMzc0OWQwYjIyNjM0ODQ5ZmU2YTZiMik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl83Mjc1MjgzOTZmMTA0MDk2YjMyYzhhNmI2ODc0NThjYS5iaW5kUG9wdXAocG9wdXBfNDc5NWFmOTAwYTc4NDc2ZGEyMmRmYTY2ZTk3MDM4NDcpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfNGQyYzkxNTU5ZGEwNGFlOWJmYWQ3ZDI2YmFjZjNkN2MgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszLjE3LCA5OC4zOTIwMDAwMDAwMDAwMV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fMDFjMjdmYzkzM2VkNDMzY2JlZTNlNmYwOWY3MGI3MDMgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl80ZDJjOTE1NTlkYTA0YWU5YmZhZDdkMjZiYWNmM2Q3Yy5zZXRJY29uKGljb25fMDFjMjdmYzkzM2VkNDMzY2JlZTNlNmYwOWY3MGI3MDMpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2YwOWVkNjRjNmRmZTRhYjA4ZTUxZTdiMTJiZDBmMDlhID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8xZmRjNjljYWE5ZmU0ZTJmYjg5YWI4MDE1Yzc4YmQwNiA9ICQoYDxkaXYgaWQ9Imh0bWxfMWZkYzY5Y2FhOWZlNGUyZmI4OWFiODAxNWM3OGJkMDYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTU8YnI+TmFtZTogU2luYWJ1bmc8YnI+Q291bnRyeTogSW5kb25lc2lhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFszLjE3LCA5OC4zOTIwMDAwMDAwMDAwMV08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZjA5ZWQ2NGM2ZGZlNGFiMDhlNTFlN2IxMmJkMGYwOWEuc2V0Q29udGVudChodG1sXzFmZGM2OWNhYTlmZTRlMmZiODlhYjgwMTVjNzhiZDA2KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzRkMmM5MTU1OWRhMDRhZTliZmFkN2QyNmJhY2YzZDdjLmJpbmRQb3B1cChwb3B1cF9mMDllZDY0YzZkZmU0YWIwOGU1MWU3YjEyYmQwZjA5YSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9hOWQ4Yjg2ODNlYmI0MGQ3YTJkNzU0MGVhYTQxMDEzOCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWy00MS4zMjYsIC03Mi42MTM5OTk5OTk5OTk5OV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fNzQyMDNiMDRmYzM5NDgzMmFlODBhOTM3ODI3NjVjMjIgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9hOWQ4Yjg2ODNlYmI0MGQ3YTJkNzU0MGVhYTQxMDEzOC5zZXRJY29uKGljb25fNzQyMDNiMDRmYzM5NDgzMmFlODBhOTM3ODI3NjVjMjIpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzkyYmI0Y2IzMjFlMjQ3OTViNTBhNDY5Zjk0ODgxZGE5ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9kNTJlNGFiNjI2NDk0MGQwOTJjOGM2MTAzZWQyZTU4ZSA9ICQoYDxkaXYgaWQ9Imh0bWxfZDUyZTRhYjYyNjQ5NDBkMDkyYzhjNjEwM2VkMmU1OGUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTU8YnI+TmFtZTogQ2FsYnVjbzxicj5Db3VudHJ5OiBDaGlsZTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTQxLjMyNiwgLTcyLjYxMzk5OTk5OTk5OTk5XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF85MmJiNGNiMzIxZTI0Nzk1YjUwYTQ2OWY5NDg4MWRhOS5zZXRDb250ZW50KGh0bWxfZDUyZTRhYjYyNjQ5NDBkMDkyYzhjNjEwM2VkMmU1OGUpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYTlkOGI4NjgzZWJiNDBkN2EyZDc1NDBlYWE0MTAxMzguYmluZFBvcHVwKHBvcHVwXzkyYmI0Y2IzMjFlMjQ3OTViNTBhNDY5Zjk0ODgxZGE5KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzAwOTQ1MTk5N2EwNjQ4MjlhZDNlYTcxMTQ5MjgyNDQxID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMi43OCwgMTI1LjQ4XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9iNmEzODBmNmNlYzI0MTFjYjJjYWM4ZmFjMDViNWU5MiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzAwOTQ1MTk5N2EwNjQ4MjlhZDNlYTcxMTQ5MjgyNDQxLnNldEljb24oaWNvbl9iNmEzODBmNmNlYzI0MTFjYjJjYWM4ZmFjMDViNWU5Mik7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNzFiYzIxZDE5MzRjNDJjMjk3Y2Q3YmM1M2FiYTZlOWUgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2ExMzJjYjhlMGQ3MzRlYjg5MWI5ZTlkMzUwZDU4OTcwID0gJChgPGRpdiBpZD0iaHRtbF9hMTMyY2I4ZTBkNzM0ZWI4OTFiOWU5ZDM1MGQ1ODk3MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxNTxicj5OYW1lOiBLYXJhbmdldGFuZyBbQXBpIFNpYXVdPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMi43OCwgMTI1LjQ4XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF83MWJjMjFkMTkzNGM0MmMyOTdjZDdiYzUzYWJhNmU5ZS5zZXRDb250ZW50KGh0bWxfYTEzMmNiOGUwZDczNGViODkxYjllOWQzNTBkNTg5NzApOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfMDA5NDUxOTk3YTA2NDgyOWFkM2VhNzExNDkyODI0NDEuYmluZFBvcHVwKHBvcHVwXzcxYmMyMWQxOTM0YzQyYzI5N2NkN2JjNTNhYmE2ZTllKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2MxN2ExNmVlOTc1NTQ4MTY5NGY1ODE0MzY1MDhlMTkzID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbLTQuMSwgMTQ1LjA2MV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fYjU4ZDM3NTdlODI1NDdhNWIzNzU2ZjRmYjQ1YjMyMjIgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9jMTdhMTZlZTk3NTU0ODE2OTRmNTgxNDM2NTA4ZTE5My5zZXRJY29uKGljb25fYjU4ZDM3NTdlODI1NDdhNWIzNzU2ZjRmYjQ1YjMyMjIpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzA0ZmUwMzQwMjE5ODRiM2RhY2JjZDQxN2M0NWM0MjE2ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8wOWM4NmVmNTJmZGI0OTJlODIzNDliYjhmYWZmMzdlZCA9ICQoYDxkaXYgaWQ9Imh0bWxfMDljODZlZjUyZmRiNDkyZTgyMzQ5YmI4ZmFmZjM3ZWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTU8YnI+TmFtZTogTWFuYW08YnI+Q291bnRyeTogUGFwdWEgTmV3IEd1aW5lYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTQuMSwgMTQ1LjA2MV08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMDRmZTAzNDAyMTk4NGIzZGFjYmNkNDE3YzQ1YzQyMTYuc2V0Q29udGVudChodG1sXzA5Yzg2ZWY1MmZkYjQ5MmU4MjM0OWJiOGZhZmYzN2VkKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2MxN2ExNmVlOTc1NTQ4MTY5NGY1ODE0MzY1MDhlMTkzLmJpbmRQb3B1cChwb3B1cF8wNGZlMDM0MDIxOTg0YjNkYWNiY2Q0MTdjNDVjNDIxNikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9jZDM1ZWRkNGNlNzU0NTY4YmZkNDRjMTU1N2Q5MWRlMyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8zOWFmNTY1ZGJhZGY0NGVkOWNlN2RmOWRjNTk3MjFkZSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2NkMzVlZGQ0Y2U3NTQ1NjhiZmQ0NGMxNTU3ZDkxZGUzLnNldEljb24oaWNvbl8zOWFmNTY1ZGJhZGY0NGVkOWNlN2RmOWRjNTk3MjFkZSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfY2NiZDQ0ZTNiYTFiNDA2ZThiNjA4NzVlY2NkOWQ5MTMgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzA4MWUzOGEyMTYxNjRkZTBiZGU1M2MxNDc3NWRlMDBkID0gJChgPGRpdiBpZD0iaHRtbF8wODFlMzhhMjE2MTY0ZGUwYmRlNTNjMTQ3NzVkZTAwZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxNTxicj5OYW1lOiBTaW5hYnVuZzxicj5Db3VudHJ5OiBJbmRvbmVzaWE8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9jY2JkNDRlM2JhMWI0MDZlOGI2MDg3NWVjY2Q5ZDkxMy5zZXRDb250ZW50KGh0bWxfMDgxZTM4YTIxNjE2NGRlMGJkZTUzYzE0Nzc1ZGUwMGQpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfY2QzNWVkZDRjZTc1NDU2OGJmZDQ0YzE1NTdkOTFkZTMuYmluZFBvcHVwKHBvcHVwX2NjYmQ0NGUzYmExYjQwNmU4YjYwODc1ZWNjZDlkOTEzKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzU2ODJjZjk3ZWI4ZjRkOTA4NzZkMzI4ZTA2Y2Q2ZjZkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbLTM4LjEyLCAxNzYuNV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fYmQ0MmRjYTY2YzkyNDA3OTk3NWU5NTU3MjU4ZGZkZTAgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAicGluayIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzU2ODJjZjk3ZWI4ZjRkOTA4NzZkMzI4ZTA2Y2Q2ZjZkLnNldEljb24oaWNvbl9iZDQyZGNhNjZjOTI0MDc5OTc1ZTk1NTcyNThkZmRlMCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNjEyOWE4NGI1YjdmNDExZDkzYjMwN2QyZGE5ZjFhYWEgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzJmNTlkOWY0MWRiMTRmNDdhNmQ2ODJlMjI0Y2QxYWEzID0gJChgPGRpdiBpZD0iaHRtbF8yZjU5ZDlmNDFkYjE0ZjQ3YTZkNjgyZTIyNGNkMWFhMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxNTxicj5OYW1lOiBPa2F0YWluYTxicj5Db3VudHJ5OiBOZXcgWmVhbGFuZDxicj5UeXBlOiBMYXZhIGRvbWU8YnI+Q29vcmRpbmF0ZXM6IFstMzguMTIsIDE3Ni41XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF82MTI5YTg0YjViN2Y0MTFkOTNiMzA3ZDJkYTlmMWFhYS5zZXRDb250ZW50KGh0bWxfMmY1OWQ5ZjQxZGIxNGY0N2E2ZDY4MmUyMjRjZDFhYTMpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfNTY4MmNmOTdlYjhmNGQ5MDg3NmQzMjhlMDZjZDZmNmQuYmluZFBvcHVwKHBvcHVwXzYxMjlhODRiNWI3ZjQxMWQ5M2IzMDdkMmRhOWYxYWFhKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzYzYmYwMGFmOGY3NTQxZGJiMTRkNjc2Y2Y2NjllODY2ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2ZiNWY3YmY5MzdiZjRkMjdhZDEzM2QxNTcxODJlZmZlID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfNjNiZjAwYWY4Zjc1NDFkYmIxNGQ2NzZjZjY2OWU4NjYuc2V0SWNvbihpY29uX2ZiNWY3YmY5MzdiZjRkMjdhZDEzM2QxNTcxODJlZmZlKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF84OGY5MTg2NTAzYmE0YmViOGVjMjMzYWM4NDBkNzg0YSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYjdlOWViNjFlOTE2NGM0ZWJjY2UzNTMzYzVmMTczNzMgPSAkKGA8ZGl2IGlkPSJodG1sX2I3ZTllYjYxZTkxNjRjNGViY2NlMzUzM2M1ZjE3MzczIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDE2PGJyPk5hbWU6IFNpbmFidW5nPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzg4ZjkxODY1MDNiYTRiZWI4ZWMyMzNhYzg0MGQ3ODRhLnNldENvbnRlbnQoaHRtbF9iN2U5ZWI2MWU5MTY0YzRlYmNjZTM1MzNjNWYxNzM3Myk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl82M2JmMDBhZjhmNzU0MWRiYjE0ZDY3NmNmNjY5ZTg2Ni5iaW5kUG9wdXAocG9wdXBfODhmOTE4NjUwM2JhNGJlYjhlYzIzM2FjODQwZDc4NGEpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfZDM3MWE4NDAyMmRjNDY4MTlhYmE4MDczZDU1ODQwYTYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszLjE3LCA5OC4zOTIwMDAwMDAwMDAwMV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fZTdkODMxZGM4ZDI5NGU1NzgyMTllZjRiMjE2ZmVlMTUgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9kMzcxYTg0MDIyZGM0NjgxOWFiYTgwNzNkNTU4NDBhNi5zZXRJY29uKGljb25fZTdkODMxZGM4ZDI5NGU1NzgyMTllZjRiMjE2ZmVlMTUpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzE1NGZjNjQwYzUxMjRkODNiNzVmOThhYTBhNjRlNGEzID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9hZWExZGJlYjU1YTI0ZDUzYTk3NWU3MWNhMTZjMzY2MCA9ICQoYDxkaXYgaWQ9Imh0bWxfYWVhMWRiZWI1NWEyNGQ1M2E5NzVlNzFjYTE2YzM2NjAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTY8YnI+TmFtZTogU2luYWJ1bmc8YnI+Q291bnRyeTogSW5kb25lc2lhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFszLjE3LCA5OC4zOTIwMDAwMDAwMDAwMV08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMTU0ZmM2NDBjNTEyNGQ4M2I3NWY5OGFhMGE2NGU0YTMuc2V0Q29udGVudChodG1sX2FlYTFkYmViNTVhMjRkNTNhOTc1ZTcxY2ExNmMzNjYwKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2QzNzFhODQwMjJkYzQ2ODE5YWJhODA3M2Q1NTg0MGE2LmJpbmRQb3B1cChwb3B1cF8xNTRmYzY0MGM1MTI0ZDgzYjc1Zjk4YWEwYTY0ZTRhMykKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9lNGUwODE4MTliMDk0NTE0OTFhMDI4ZGZmMGU1YTBlNCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ0LjQzLCAtMTEwLjY3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl82YTdhM2JjZjUyYTg0MjgyYmE3ZmQ3MGI5NGJlYzEwYyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJwdXJwbGUiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9lNGUwODE4MTliMDk0NTE0OTFhMDI4ZGZmMGU1YTBlNC5zZXRJY29uKGljb25fNmE3YTNiY2Y1MmE4NDI4MmJhN2ZkNzBiOTRiZWMxMGMpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzA1N2ZhNDYxZDI0ZjRhYjlhNTEyMDNlZWFjZmU3M2VkID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9kNzkxYmFiMTFjZGI0YmFmOWZkYmU5NzllYjhmN2E1MiA9ICQoYDxkaXYgaWQ9Imh0bWxfZDc5MWJhYjExY2RiNGJhZjlmZGJlOTc5ZWI4ZjdhNTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTY8YnI+TmFtZTogWWVsbG93c3RvbmU8YnI+Q291bnRyeTogVW5pdGVkIFN0YXRlczxicj5UeXBlOiBDYWxkZXJhPGJyPkNvb3JkaW5hdGVzOiBbNDQuNDMsIC0xMTAuNjddPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzA1N2ZhNDYxZDI0ZjRhYjlhNTEyMDNlZWFjZmU3M2VkLnNldENvbnRlbnQoaHRtbF9kNzkxYmFiMTFjZGI0YmFmOWZkYmU5NzllYjhmN2E1Mik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9lNGUwODE4MTliMDk0NTE0OTFhMDI4ZGZmMGU1YTBlNC5iaW5kUG9wdXAocG9wdXBfMDU3ZmE0NjFkMjRmNGFiOWE1MTIwM2VlYWNmZTczZWQpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMGE1ODU2MDgxZGNhNDExMzk2NzlmN2ZlMjc0ZGM5M2MgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstOC40MiwgMTE2LjQ3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9mNmRhN2E5Y2VhNzY0YzEzYmMwN2IyMjQwMzhlNWJlMSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzBhNTg1NjA4MWRjYTQxMTM5Njc5ZjdmZTI3NGRjOTNjLnNldEljb24oaWNvbl9mNmRhN2E5Y2VhNzY0YzEzYmMwN2IyMjQwMzhlNWJlMSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNGVlYmFkYTA2MzAzNDA3ZTkzODI4YmIyN2U4YmJjNDEgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzc3MjM5ZjNiMjU1NjRiYzQ4ODUzNzQzNzUyNTZkZDkxID0gJChgPGRpdiBpZD0iaHRtbF83NzIzOWYzYjI1NTY0YmM0ODg1Mzc0Mzc1MjU2ZGQ5MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxNjxicj5OYW1lOiBSaW5qYW5pPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTguNDIsIDExNi40N108L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfNGVlYmFkYTA2MzAzNDA3ZTkzODI4YmIyN2U4YmJjNDEuc2V0Q29udGVudChodG1sXzc3MjM5ZjNiMjU1NjRiYzQ4ODUzNzQzNzUyNTZkZDkxKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzBhNTg1NjA4MWRjYTQxMTM5Njc5ZjdmZTI3NGRjOTNjLmJpbmRQb3B1cChwb3B1cF80ZWViYWRhMDYzMDM0MDdlOTM4MjhiYjI3ZThiYmM0MSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9lMWI0MmRiN2U4NDk0NTdmYmQ2NWEzNTE3NTY4YzFiZiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzMyLjg4LCAxMzEuMV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fMTQ4OTkzMzNkNjc1NDc3NGFmMTQ1Yjc4ZjI4YzNhOWQgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAicHVycGxlIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfZTFiNDJkYjdlODQ5NDU3ZmJkNjVhMzUxNzU2OGMxYmYuc2V0SWNvbihpY29uXzE0ODk5MzMzZDY3NTQ3NzRhZjE0NWI3OGYyOGMzYTlkKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9kMzIyMTM2OGU2MTg0OGRmYWY4N2JhNTRlMWY3NjI1NCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfMzE5YWI4NGU0NWYwNDE3OThmMTVlZWJmOWI2MmY3ZjcgPSAkKGA8ZGl2IGlkPSJodG1sXzMxOWFiODRlNDVmMDQxNzk4ZjE1ZWViZjliNjJmN2Y3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDE2PGJyPk5hbWU6IEFzbzxicj5Db3VudHJ5OiBKYXBhbjxicj5UeXBlOiBDYWxkZXJhPGJyPkNvb3JkaW5hdGVzOiBbMzIuODgsIDEzMS4xXTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9kMzIyMTM2OGU2MTg0OGRmYWY4N2JhNTRlMWY3NjI1NC5zZXRDb250ZW50KGh0bWxfMzE5YWI4NGU0NWYwNDE3OThmMTVlZWJmOWI2MmY3ZjcpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZTFiNDJkYjdlODQ5NDU3ZmJkNjVhMzUxNzU2OGMxYmYuYmluZFBvcHVwKHBvcHVwX2QzMjIxMzY4ZTYxODQ4ZGZhZjg3YmE1NGUxZjc2MjU0KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzhlYTM1NzY4M2EwNDRlOWNiOGQzN2FmYWU3MTE0NmI2ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzcuNzM0LCAxNS4wMDQwMDAwMDAwMDAwMDFdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzA1YmM2ZDVmZmViMDQ2ZGM5M2E5NmJmNjEyMWIyNzE5ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfOGVhMzU3NjgzYTA0NGU5Y2I4ZDM3YWZhZTcxMTQ2YjYuc2V0SWNvbihpY29uXzA1YmM2ZDVmZmViMDQ2ZGM5M2E5NmJmNjEyMWIyNzE5KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF82YzI1MDdjODhhMjk0MmFlYWU5MGI1ZmYwZTRkM2NiNSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfMWQ3ZGZlNDlmZWI2NGY0NzgzNDQ4NTRiY2EzNTE1M2MgPSAkKGA8ZGl2IGlkPSJodG1sXzFkN2RmZTQ5ZmViNjRmNDc4MzQ0ODU0YmNhMzUxNTNjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDE3PGJyPk5hbWU6IEV0bmE8YnI+Q291bnRyeTogSXRhbHk8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWzM3LjczNCwgMTUuMDA0MDAwMDAwMDAwMDAxXTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF82YzI1MDdjODhhMjk0MmFlYWU5MGI1ZmYwZTRkM2NiNS5zZXRDb250ZW50KGh0bWxfMWQ3ZGZlNDlmZWI2NGY0NzgzNDQ4NTRiY2EzNTE1M2MpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfOGVhMzU3NjgzYTA0NGU5Y2I4ZDM3YWZhZTcxMTQ2YjYuYmluZFBvcHVwKHBvcHVwXzZjMjUwN2M4OGEyOTQyYWVhZTkwYjVmZjBlNGQzY2I1KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzk2OTAzM2NhYjBhOTQyZGU5ZjBhNGNjNjJkMzMxNjc2ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzkxOWFkYzhkYjJjYjRkMWI4YWZhOWQzZWJhMGZlZDA0ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfOTY5MDMzY2FiMGE5NDJkZTlmMGE0Y2M2MmQzMzE2NzYuc2V0SWNvbihpY29uXzkxOWFkYzhkYjJjYjRkMWI4YWZhOWQzZWJhMGZlZDA0KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF83Y2I5M2Y2YmU4NDM0MDBjYTQ3ZjM4YzQwNWZiODEyZiA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYjFmNmY1ZTZmZTUwNGM1NWFjNjUzMzVjMWZlOTRmMWIgPSAkKGA8ZGl2IGlkPSJodG1sX2IxZjZmNWU2ZmU1MDRjNTVhYzY1MzM1YzFmZTk0ZjFiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDE3PGJyPk5hbWU6IFNpbmFidW5nPGJyPkNvdW50cnk6IEluZG9uZXNpYTxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzdjYjkzZjZiZTg0MzQwMGNhNDdmMzhjNDA1ZmI4MTJmLnNldENvbnRlbnQoaHRtbF9iMWY2ZjVlNmZlNTA0YzU1YWM2NTMzNWMxZmU5NGYxYik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl85NjkwMzNjYWIwYTk0MmRlOWYwYTRjYzYyZDMzMTY3Ni5iaW5kUG9wdXAocG9wdXBfN2NiOTNmNmJlODQzNDAwY2E0N2YzOGM0MDVmYjgxMmYpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMjQ3MTdmMGJiODJhNDlhOTgxOGNiNjkzMDFjZTBkMmYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFsxNC40NzI5OTk5OTk5OTk5OTksIC05MC44OF0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fMWM1NmU3YTdlYmJjNDNkYWIyYmVlYjY2ZTJkNDUwMjQgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8yNDcxN2YwYmI4MmE0OWE5ODE4Y2I2OTMwMWNlMGQyZi5zZXRJY29uKGljb25fMWM1NmU3YTdlYmJjNDNkYWIyYmVlYjY2ZTJkNDUwMjQpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzYyOTQzZGE5YjlkNTRlNTJiYzkzNDBiZTA4Y2YzYWY5ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9iNzU2MzE4YjI5NGM0OGFiODFkODE3OGY0OTMyNGM1NyA9ICQoYDxkaXYgaWQ9Imh0bWxfYjc1NjMxOGIyOTRjNDhhYjgxZDgxNzhmNDkzMjRjNTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTc8YnI+TmFtZTogRnVlZ288YnI+Q291bnRyeTogR3VhdGVtYWxhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFsxNC40NzI5OTk5OTk5OTk5OTksIC05MC44OF08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfNjI5NDNkYTliOWQ1NGU1MmJjOTM0MGJlMDhjZjNhZjkuc2V0Q29udGVudChodG1sX2I3NTYzMThiMjk0YzQ4YWI4MWQ4MTc4ZjQ5MzI0YzU3KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzI0NzE3ZjBiYjgyYTQ5YTk4MThjYjY5MzAxY2UwZDJmLmJpbmRQb3B1cChwb3B1cF82Mjk0M2RhOWI5ZDU0ZTUyYmM5MzQwYmUwOGNmM2FmOSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9iYTk4ZDdhMjlmNWY0YzEyOGFmN2Q2Mjg5ZGZkMzBmOCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWy03LjIsIDEwOS45Ml0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fZjcwMzFlNDNjNDhhNDBiMzg5ZDM5MzZkZTY4MjVhZWEgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiYmx1ZSIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2JhOThkN2EyOWY1ZjRjMTI4YWY3ZDYyODlkZmQzMGY4LnNldEljb24oaWNvbl9mNzAzMWU0M2M0OGE0MGIzODlkMzkzNmRlNjgyNWFlYSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMWE4NDMzYWMwZDYwNDIxN2E1YjRlN2IzNmVhYzZmOGEgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzk4ZjNhM2QzZDhlMzRmYTg5NzA5NGNlNDhjODMyZmQ1ID0gJChgPGRpdiBpZD0iaHRtbF85OGYzYTNkM2Q4ZTM0ZmE4OTcwOTRjZTQ4YzgzMmZkNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxNzxicj5OYW1lOiBEaWVuZyBWb2xjIENvbXBsZXg8YnI+Q291bnRyeTogSW5kb25lc2lhPGJyPlR5cGU6IENvbXBsZXggdm9sY2Fubzxicj5Db29yZGluYXRlczogWy03LjIsIDEwOS45Ml08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMWE4NDMzYWMwZDYwNDIxN2E1YjRlN2IzNmVhYzZmOGEuc2V0Q29udGVudChodG1sXzk4ZjNhM2QzZDhlMzRmYTg5NzA5NGNlNDhjODMyZmQ1KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2JhOThkN2EyOWY1ZjRjMTI4YWY3ZDYyODlkZmQzMGY4LmJpbmRQb3B1cChwb3B1cF8xYTg0MzNhYzBkNjA0MjE3YTViNGU3YjM2ZWFjNmY4YSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl8zMWE3Zjc0NWJlNmM0ZDVlYjM5NGE1MTRlMTcxOTRjOCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyNywgMTQuMTM5MDAwMDAwMDAwMDAxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl84OWEyNGNmYWNhZDU0YjRkOTQxNzhlNTkyNTJkOTQ2YiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJwdXJwbGUiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8zMWE3Zjc0NWJlNmM0ZDVlYjM5NGE1MTRlMTcxOTRjOC5zZXRJY29uKGljb25fODlhMjRjZmFjYWQ1NGI0ZDk0MTc4ZTU5MjUyZDk0NmIpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzQwM2RhMDViOWQ5YTQ4MGNhYzM4ODk0NWQxY2IwNGRiID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9hOWExZWQ0ZDBkY2Q0ODUzYTM1ZTE0ZTg1ODNlMGY2ZiA9ICQoYDxkaXYgaWQ9Imh0bWxfYTlhMWVkNGQwZGNkNDg1M2EzNWUxNGU4NTgzZTBmNmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTc8YnI+TmFtZTogQ2FtcGkgRmxlZ3JlaTxicj5Db3VudHJ5OiBJdGFseTxicj5UeXBlOiBDYWxkZXJhPGJyPkNvb3JkaW5hdGVzOiBbNDAuODI3LCAxNC4xMzkwMDAwMDAwMDAwMDFdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzQwM2RhMDViOWQ5YTQ4MGNhYzM4ODk0NWQxY2IwNGRiLnNldENvbnRlbnQoaHRtbF9hOWExZWQ0ZDBkY2Q0ODUzYTM1ZTE0ZTg1ODNlMGY2Zik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8zMWE3Zjc0NWJlNmM0ZDVlYjM5NGE1MTRlMTcxOTRjOC5iaW5kUG9wdXAocG9wdXBfNDAzZGEwNWI5ZDlhNDgwY2FjMzg4OTQ1ZDFjYjA0ZGIpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfZjQzZmM1YjU1MWJhNDYzYmI1MDM3YzcyMDIwNTM3YTggPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstMTUuNCwgMTY3LjgzXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9lYmEzYTg4NDhjZDc0NDdmYjY1NWNkN2IwYzQ1MzE1MCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJvcmFuZ2UiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9mNDNmYzViNTUxYmE0NjNiYjUwMzdjNzIwMjA1MzdhOC5zZXRJY29uKGljb25fZWJhM2E4ODQ4Y2Q3NDQ3ZmI2NTVjZDdiMGM0NTMxNTApOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2Y3NTgwNjA0ZThlZTQxYzRiNWJlMDhjYWEyZGQ3OGJmID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8wZmM2MmU1YWMyYTY0NDAxYjMzNTc0ODUwMDJlZDI4OSA9ICQoYDxkaXYgaWQ9Imh0bWxfMGZjNjJlNWFjMmE2NDQwMWIzMzU3NDg1MDAyZWQyODkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTc8YnI+TmFtZTogQW9iYTxicj5Db3VudHJ5OiBWYW51YXR1PGJyPlR5cGU6IFNoaWVsZCB2b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbLTE1LjQsIDE2Ny44M108L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZjc1ODA2MDRlOGVlNDFjNGI1YmUwOGNhYTJkZDc4YmYuc2V0Q29udGVudChodG1sXzBmYzYyZTVhYzJhNjQ0MDFiMzM1NzQ4NTAwMmVkMjg5KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2Y0M2ZjNWI1NTFiYTQ2M2JiNTAzN2M3MjAyMDUzN2E4LmJpbmRQb3B1cChwb3B1cF9mNzU4MDYwNGU4ZWU0MWM0YjViZTA4Y2FhMmRkNzhiZikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9mY2YxODc1ZmNmZWI0ZDJmOGMyMTNhM2RjNTIxMmIyNCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWy03LjU0MjAwMDAwMDAwMDAwMSwgMTEwLjQ0MjAwMDAwMDAwMDAxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9mZGJhM2U4MGJiNWM0NDhmOTUwZGEzNTA4MzA4MTk2MCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2ZjZjE4NzVmY2ZlYjRkMmY4YzIxM2EzZGM1MjEyYjI0LnNldEljb24oaWNvbl9mZGJhM2U4MGJiNWM0NDhmOTUwZGEzNTA4MzA4MTk2MCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZGI1MGNhYmRlNDZlNDNmY2EwZjQ0ZmY0M2ZjNDI0MDcgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2I2ZmFkOTk5YTM3ODQzNWM4YWYwMWVhZWEwOWFiNTNmID0gJChgPGRpdiBpZD0iaHRtbF9iNmZhZDk5OWEzNzg0MzVjOGFmMDFlYWVhMDlhYjUzZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxNzxicj5OYW1lOiBNZXJhcGk8YnI+Q291bnRyeTogSW5kb25lc2lhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFstNy41NDIwMDAwMDAwMDAwMDEsIDExMC40NDIwMDAwMDAwMDAwMV08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZGI1MGNhYmRlNDZlNDNmY2EwZjQ0ZmY0M2ZjNDI0MDcuc2V0Q29udGVudChodG1sX2I2ZmFkOTk5YTM3ODQzNWM4YWYwMWVhZWEwOWFiNTNmKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2ZjZjE4NzVmY2ZlYjRkMmY4YzIxM2EzZGM1MjEyYjI0LmJpbmRQb3B1cChwb3B1cF9kYjUwY2FiZGU0NmU0M2ZjYTBmNDRmZjQzZmM0MjQwNykKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9lYTFlNGU0MjYzNjM0NDIyODg3ZDBmYmQzNTM1YjA3NiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl82NzhmNTk0NWFjNWI0YjkwYjVkOGE2Njg3N2YwYmRhNSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2VhMWU0ZTQyNjM2MzQ0MjI4ODdkMGZiZDM1MzViMDc2LnNldEljb24oaWNvbl82NzhmNTk0NWFjNWI0YjkwYjVkOGE2Njg3N2YwYmRhNSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZTgzYjM3NjUwMTI1NDQxN2E3MDhmNTZiYjNiMzkyYzAgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzNmYmUxYTJmMjY2YzQ4YmZhYWFiODBlZGVjNWY1M2ViID0gJChgPGRpdiBpZD0iaHRtbF8zZmJlMWEyZjI2NmM0OGJmYWFhYjgwZWRlYzVmNTNlYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxNzxicj5OYW1lOiBTaW5hYnVuZzxicj5Db3VudHJ5OiBJbmRvbmVzaWE8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9lODNiMzc2NTAxMjU0NDE3YTcwOGY1NmJiM2IzOTJjMC5zZXRDb250ZW50KGh0bWxfM2ZiZTFhMmYyNjZjNDhiZmFhYWI4MGVkZWM1ZjUzZWIpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZWExZTRlNDI2MzYzNDQyMjg4N2QwZmJkMzUzNWIwNzYuYmluZFBvcHVwKHBvcHVwX2U4M2IzNzY1MDEyNTQ0MTdhNzA4ZjU2YmIzYjM5MmMwKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzJhYjA1MTJlNTAwYzQyM2Q5YTBhZWJjOGViZTg0YmVjID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbLTMuNjIsIDE0NC42Ml0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fNGFmMWUyNzU2MTMxNGRlNjk0ZmE2ZDJiMDJjZTVlNzkgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8yYWIwNTEyZTUwMGM0MjNkOWEwYWViYzhlYmU4NGJlYy5zZXRJY29uKGljb25fNGFmMWUyNzU2MTMxNGRlNjk0ZmE2ZDJiMDJjZTVlNzkpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2M2ZDdlY2Y4MTU5NjQ0MWI4NGFkODFiOTM0NDU0ZTYzID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF80MzdiZWQwOTNmYWY0YmFlOTUyM2ExNzA4YjRhMjZlNyA9ICQoYDxkaXYgaWQ9Imh0bWxfNDM3YmVkMDkzZmFmNGJhZTk1MjNhMTcwOGI0YTI2ZTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTg8YnI+TmFtZTogS2Fkb3Zhcjxicj5Db3VudHJ5OiBQYXB1YSBOZXcgR3VpbmVhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFstMy42MiwgMTQ0LjYyXTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9jNmQ3ZWNmODE1OTY0NDFiODRhZDgxYjkzNDQ1NGU2My5zZXRDb250ZW50KGh0bWxfNDM3YmVkMDkzZmFmNGJhZTk1MjNhMTcwOGI0YTI2ZTcpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfMmFiMDUxMmU1MDBjNDIzZDlhMGFlYmM4ZWJlODRiZWMuYmluZFBvcHVwKHBvcHVwX2M2ZDdlY2Y4MTU5NjQ0MWI4NGFkODFiOTM0NDU0ZTYzKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2FiYzdiNWQ1ZDY5NzQzMDE4MDFhODZlYTFkZWNjNWUzID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMTMuMjU3LCAxMjMuNjg1XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl80MmM4NTIyNWQxNWU0YTQ5ODI5NmMxYjlhNDZlZjgzNiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2FiYzdiNWQ1ZDY5NzQzMDE4MDFhODZlYTFkZWNjNWUzLnNldEljb24oaWNvbl80MmM4NTIyNWQxNWU0YTQ5ODI5NmMxYjlhNDZlZjgzNik7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfN2U4ZTVjOTZjM2JkNDAzYzgxYzY1OGUyNDhlMzQwMTggPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2Y1ZTc5ZDY4NzY0ZjRkMTliMTUwNzhlZTQzOWVkMzI1ID0gJChgPGRpdiBpZD0iaHRtbF9mNWU3OWQ2ODc2NGY0ZDE5YjE1MDc4ZWU0MzllZDMyNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxODxicj5OYW1lOiBNYXlvbjxicj5Db3VudHJ5OiBQaGlsaXBwaW5lczxicj5UeXBlOiBTdHJhdG92b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMTMuMjU3LCAxMjMuNjg1XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF83ZThlNWM5NmMzYmQ0MDNjODFjNjU4ZTI0OGUzNDAxOC5zZXRDb250ZW50KGh0bWxfZjVlNzlkNjg3NjRmNGQxOWIxNTA3OGVlNDM5ZWQzMjUpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYWJjN2I1ZDVkNjk3NDMwMTgwMWE4NmVhMWRlY2M1ZTMuYmluZFBvcHVwKHBvcHVwXzdlOGU1Yzk2YzNiZDQwM2M4MWM2NThlMjQ4ZTM0MDE4KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2E0YjkwZWZhZWRkYjRlZDBhZTI3NzY2OTdhNmE5MGZkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzYuNjIsIDEzOC41NV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fNDYwMmM2NjhkMDAzNDlkZmI0NWU0NzQxYWJiMDg4Y2UgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9hNGI5MGVmYWVkZGI0ZWQwYWUyNzc2Njk3YTZhOTBmZC5zZXRJY29uKGljb25fNDYwMmM2NjhkMDAzNDlkZmI0NWU0NzQxYWJiMDg4Y2UpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2Q3YTdmYzBkZDA1ODQxZDBiOGVlMTFiNDBmZTYxZmQ2ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF84YmUwYTdjNmZlYTI0YjM0ODI2ZDZiMDU3YTcwYzhmMCA9ICQoYDxkaXYgaWQ9Imh0bWxfOGJlMGE3YzZmZWEyNGIzNDgyNmQ2YjA1N2E3MGM4ZjAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTg8YnI+TmFtZTogS3VzYXRzdS1TaGlyYW5lPGJyPkNvdW50cnk6IEphcGFuPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFszNi42MiwgMTM4LjU1XTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9kN2E3ZmMwZGQwNTg0MWQwYjhlZTExYjQwZmU2MWZkNi5zZXRDb250ZW50KGh0bWxfOGJlMGE3YzZmZWEyNGIzNDgyNmQ2YjA1N2E3MGM4ZjApOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYTRiOTBlZmFlZGRiNGVkMGFlMjc3NjY5N2E2YTkwZmQuYmluZFBvcHVwKHBvcHVwX2Q3YTdmYzBkZDA1ODQxZDBiOGVlMTFiNDBmZTYxZmQ2KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzM1NzhiZWRjZjQwODQ4NzFiMzZiNzMxZmM3MjAxYmU5ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMTkuNDI1LCAtMTU1LjI5Ml0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZGYzMmFlMGRkZmM0ZjM5YjIwNzYzZDljZWUyYTg1ZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fYjhmY2QzMDc4NzZjNDcxMGEyMzAyZTYxNjc4N2VkZTIgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAib3JhbmdlIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfMzU3OGJlZGNmNDA4NDg3MWIzNmI3MzFmYzcyMDFiZTkuc2V0SWNvbihpY29uX2I4ZmNkMzA3ODc2YzQ3MTBhMjMwMmU2MTY3ODdlZGUyKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF84YjRhMzIyNzUyZDk0MThkOTRjNzY5MTc4Mjk5Mzc1MCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfN2E5MTM3MDNlMDBjNDQzZmE2MjVhZDA0YTZhMGNjNTcgPSAkKGA8ZGl2IGlkPSJodG1sXzdhOTEzNzAzZTAwYzQ0M2ZhNjI1YWQwNGE2YTBjYzU3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDE4PGJyPk5hbWU6IEtpbGF1ZWE8YnI+Q291bnRyeTogVW5pdGVkIFN0YXRlczxicj5UeXBlOiBTaGllbGQgdm9sY2Fubzxicj5Db29yZGluYXRlczogWzE5LjQyNSwgLTE1NS4yOTJdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzhiNGEzMjI3NTJkOTQxOGQ5NGM3NjkxNzgyOTkzNzUwLnNldENvbnRlbnQoaHRtbF83YTkxMzcwM2UwMGM0NDNmYTYyNWFkMDRhNmEwY2M1Nyk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8zNTc4YmVkY2Y0MDg0ODcxYjM2YjczMWZjNzIwMWJlOS5iaW5kUG9wdXAocG9wdXBfOGI0YTMyMjc1MmQ5NDE4ZDk0Yzc2OTE3ODI5OTM3NTApCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfZjIwNDYxZmVlNzE2NDk3MTk0NTdjOWU0ZTg2Y2UyMzAgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstMy42MiwgMTQ0LjYyXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl85MmM0OWJjNzk5Yjg0NTc1OTFlZTI4NzNhODU5MzMzMyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2YyMDQ2MWZlZTcxNjQ5NzE5NDU3YzllNGU4NmNlMjMwLnNldEljb24oaWNvbl85MmM0OWJjNzk5Yjg0NTc1OTFlZTI4NzNhODU5MzMzMyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZDEzZGNkNDQyMTU4NDQwY2EwNWM3Njc0MjIzZDk5ZjAgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzY4NThjZTA1M2JkYjQwMDZiMjk3YTFiYmM1MjJmODE3ID0gJChgPGRpdiBpZD0iaHRtbF82ODU4Y2UwNTNiZGI0MDA2YjI5N2ExYmJjNTIyZjgxNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxODxicj5OYW1lOiBLYWRvdmFyPGJyPkNvdW50cnk6IFBhcHVhIE5ldyBHdWluZWE8YnI+VHlwZTogU3RyYXRvdm9sY2Fubzxicj5Db29yZGluYXRlczogWy0zLjYyLCAxNDQuNjJdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2QxM2RjZDQ0MjE1ODQ0MGNhMDVjNzY3NDIyM2Q5OWYwLnNldENvbnRlbnQoaHRtbF82ODU4Y2UwNTNiZGI0MDA2YjI5N2ExYmJjNTIyZjgxNyk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9mMjA0NjFmZWU3MTY0OTcxOTQ1N2M5ZTRlODZjZTIzMC5iaW5kUG9wdXAocG9wdXBfZDEzZGNkNDQyMTU4NDQwY2EwNWM3Njc0MjIzZDk5ZjApCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfYjM2OWExZjZiYWFhNGJjOGJiNmYzMjc3MTQxOGM2ZjMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstOC4wNTgsIDExNC4yNDJdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzg1OTNjMDMzNTUwMTQxYjI4NzY4YTNjZGViYjljNWY5ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfYjM2OWExZjZiYWFhNGJjOGJiNmYzMjc3MTQxOGM2ZjMuc2V0SWNvbihpY29uXzg1OTNjMDMzNTUwMTQxYjI4NzY4YTNjZGViYjljNWY5KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF83MTQ0NTViYjg4OGE0MDMxOWFjNzAyNWRjZDJlODhkNiA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfZjBjY2U3NzE1ODE4NGRmYzkyY2IyNTMyOGYzZmQ3ZmEgPSAkKGA8ZGl2IGlkPSJodG1sX2YwY2NlNzcxNTgxODRkZmM5MmNiMjUzMjhmM2ZkN2ZhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5ZZWFyOiAyMDE4PGJyPk5hbWU6IElqZW48YnI+Q291bnRyeTogSW5kb25lc2lhPGJyPlR5cGU6IFN0cmF0b3ZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFstOC4wNTgsIDExNC4yNDJdPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzcxNDQ1NWJiODg4YTQwMzE5YWM3MDI1ZGNkMmU4OGQ2LnNldENvbnRlbnQoaHRtbF9mMGNjZTc3MTU4MTg0ZGZjOTJjYjI1MzI4ZjNmZDdmYSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9iMzY5YTFmNmJhYWE0YmM4YmI2ZjMyNzcxNDE4YzZmMy5iaW5kUG9wdXAocG9wdXBfNzE0NDU1YmI4ODhhNDAzMTlhYzcwMjVkY2QyZTg4ZDYpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMGY0NWE5OGI3M2IzNDU2ZDgyNTdiYWIwMzYyYmFmZjYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFsxOS40MjUsIC0xNTUuMjkyXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NkZjMyYWUwZGRmYzRmMzliMjA3NjNkOWNlZTJhODVlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl80YTNhMDFjMWY5ZTI0ZDFjODA0Y2Q0ZGNmZjJkYTM1YiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJvcmFuZ2UiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8wZjQ1YTk4YjczYjM0NTZkODI1N2JhYjAzNjJiYWZmNi5zZXRJY29uKGljb25fNGEzYTAxYzFmOWUyNGQxYzgwNGNkNGRjZmYyZGEzNWIpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2I1NzMwZWE5Nzc4YjQ5ZGE5ODcwYWY2OTkyNzVlMzdhID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF84OGZmODZkZWMyNmY0ZDhhODdiMDcwYTBiMWNhMTgwZiA9ICQoYDxkaXYgaWQ9Imh0bWxfODhmZjg2ZGVjMjZmNGQ4YTg3YjA3MGEwYjFjYTE4MGYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlllYXI6IDIwMTg8YnI+TmFtZTogS2lsYXVlYTxicj5Db3VudHJ5OiBVbml0ZWQgU3RhdGVzPGJyPlR5cGU6IFNoaWVsZCB2b2xjYW5vPGJyPkNvb3JkaW5hdGVzOiBbMTkuNDI1LCAtMTU1LjI5Ml08L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfYjU3MzBlYTk3NzhiNDlkYTk4NzBhZjY5OTI3NWUzN2Euc2V0Q29udGVudChodG1sXzg4ZmY4NmRlYzI2ZjRkOGE4N2IwNzBhMGIxY2ExODBmKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzBmNDVhOThiNzNiMzQ1NmQ4MjU3YmFiMDM2MmJhZmY2LmJpbmRQb3B1cChwb3B1cF9iNTczMGVhOTc3OGI0OWRhOTg3MGFmNjk5Mjc1ZTM3YSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9iMTY1ODAxOWUzNmU0MjgzOThjZmU0MmFjNjdmNWU1MSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWy0xNS40LCAxNjcuODNdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfY2RmMzJhZTBkZGZjNGYzOWIyMDc2M2Q5Y2VlMmE4NWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzkzZjgyMWU4ZDRjNTRhNWU5YTY4MDk5MGE3YTMzN2YzID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogIm9yYW5nZSIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2IxNjU4MDE5ZTM2ZTQyODM5OGNmZTQyYWM2N2Y1ZTUxLnNldEljb24oaWNvbl85M2Y4MjFlOGQ0YzU0YTVlOWE2ODA5OTBhN2EzMzdmMyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNTYxNWI3MWQ4MzRjNDM4ODhlMjA3YmJmYmIxODIxNDIgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzhjMTYyMzcwNmZkNTQ4NWRiNjU4Mjc5NmY3NGMwMjJiID0gJChgPGRpdiBpZD0iaHRtbF84YzE2MjM3MDZmZDU0ODVkYjY1ODI3OTZmNzRjMDIyYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WWVhcjogMjAxODxicj5OYW1lOiBBb2JhPGJyPkNvdW50cnk6IFZhbnVhdHU8YnI+VHlwZTogU2hpZWxkIHZvbGNhbm88YnI+Q29vcmRpbmF0ZXM6IFstMTUuNCwgMTY3LjgzXTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF81NjE1YjcxZDgzNGM0Mzg4OGUyMDdiYmZiYjE4MjE0Mi5zZXRDb250ZW50KGh0bWxfOGMxNjIzNzA2ZmQ1NDg1ZGI2NTgyNzk2Zjc0YzAyMmIpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYjE2NTgwMTllMzZlNDI4Mzk4Y2ZlNDJhYzY3ZjVlNTEuYmluZFBvcHVwKHBvcHVwXzU2MTViNzFkODM0YzQzODg4ZTIwN2JiZmJiMTgyMTQyKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
390 ],
391 "text/plain": [
392 "<folium.folium.Map at 0x7f252e094668>"
393 ]
394 },
395 "execution_count": 11,
396 "metadata": {},
397 "output_type": "execute_result"
398 }
399 ],
400 "source": [
401 "map"
402 ]
403 },
404 {
405 "cell_type": "markdown",
406 "metadata": {},
407 "source": [
408 "### Heatmaps\n",
409 "\n",
410 "Folium is well known for it's heatmap which create a heatmap layer. To plot a heat map in folium, one needs a list of Latitude, Longitude."
411 ]
412 },
413 {
414 "cell_type": "code",
415 "execution_count": 12,
416 "metadata": {},
417 "outputs": [
418 {
419 "data": {
420 "text/html": [
421 "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjQuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF81ODVmMDYzODcyMTY0M2Q2YmI2NzIzMDAwNjA1MWNmNyB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9sZWFmbGV0LmdpdGh1Yi5pby9MZWFmbGV0LmhlYXQvZGlzdC9sZWFmbGV0LWhlYXQuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzU4NWYwNjM4NzIxNjQzZDZiYjY3MjMwMDA2MDUxY2Y3IiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcF81ODVmMDYzODcyMTY0M2Q2YmI2NzIzMDAwNjA1MWNmNyA9IEwubWFwKAogICAgICAgICAgICAgICAgIm1hcF81ODVmMDYzODcyMTY0M2Q2YmI2NzIzMDAwNjA1MWNmNyIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBbMTUuMCwgMzAuMF0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAyLAogICAgICAgICAgICAgICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHByZWZlckNhbnZhczogZmFsc2UsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAKCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfOWE2ZjEwYTRlZTZiNDQwODk0NGRhN2ZkNzMzMjNkM2QgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICJodHRwczovL2NhcnRvZGItYmFzZW1hcHMte3N9Lmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9kYXJrX2FsbC97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJcdTAwMjZjb3B5OyBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlIGNvbnRyaWJ1dG9ycyBcdTAwMjZjb3B5OyBcdTAwM2NhIGhyZWY9XCJodHRwOi8vY2FydG9kYi5jb20vYXR0cmlidXRpb25zXCJcdTAwM2VDYXJ0b0RCXHUwMDNjL2FcdTAwM2UsIENhcnRvREIgXHUwMDNjYSBocmVmID1cImh0dHA6Ly9jYXJ0b2RiLmNvbS9hdHRyaWJ1dGlvbnNcIlx1MDAzZWF0dHJpYnV0aW9uc1x1MDAzYy9hXHUwMDNlIiwgImRldGVjdFJldGluYSI6IGZhbHNlLCAibWF4TmF0aXZlWm9vbSI6IDE4LCAibWF4Wm9vbSI6IDE4LCAibWluWm9vbSI6IDAsICJub1dyYXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLCAic3ViZG9tYWlucyI6ICJhYmMiLCAidG1zIjogZmFsc2V9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzU4NWYwNjM4NzIxNjQzZDZiYjY3MjMwMDA2MDUxY2Y3KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaGVhdF9tYXBfNzYwOWNiZjg2ODY1NDIwNmE5YWNmOWQyNWE1Mjg3ODggPSBMLmhlYXRMYXllcigKICAgICAgICAgICAgICAgIFtbLTEuNDY2OTk5OTk5OTk5OTk5OSwgLTc4LjQ0Ml0sIFs2My42MywgLTE5LjYyXSwgWzE0LjM4MDk5OTk5OTk5OTk5OCwgLTkwLjYwMV0sIFsxNi43MDgsIDE0NS43OF0sIFsyLjc4LCAxMjUuNDhdLCBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdLCBbLTcuNTQyMDAwMDAwMDAwMDAxLCAxMTAuNDQyMDAwMDAwMDAwMDFdLCBbLTEuNDY2OTk5OTk5OTk5OTk5OSwgLTc4LjQ0Ml0sIFstNy45NDIsIDExMi45NV0sIFstNy41NDIwMDAwMDAwMDAwMDEsIDExMC40NDIwMDAwMDAwMDAwMV0sIFszMS45MywgMTMwLjg3XSwgWzEyLjc3LCAxMjQuMDVdLCBbMi43OCwgMTI1LjQ4XSwgWy0xLjQ2Njk5OTk5OTk5OTk5OTksIC03OC40NDJdLCBbLTQwLjU5LCAtNzIuMTE3XSwgWzEzLjM3LCA0MS43XSwgWzYzLjYzLCAtMTkuMDVdLCBbMS4zNTgsIDEyNC43OTJdLCBbMC44LCAxMjcuMzI1XSwgWzE5LjQyNSwgLTE1NS4yOTJdLCBbMTkuNDI1LCAtMTU1LjI5Ml0sIFs1NS44MywgMTYwLjMzXSwgWy03LjU0MjAwMDAwMDAwMDAwMSwgMTEwLjQ0MjAwMDAwMDAwMDAxXSwgWy04LjMyLCAxMjEuNzA4XSwgWzEzLjI1NywgMTIzLjY4NV0sIFstOC4zMiwgMTIxLjcwOF0sIFstMTYuMzU1LCAtNzAuOTAzXSwgWzMxLjU4LCAxMzAuNjddLCBbMy4xNywgOTguMzkyMDAwMDAwMDAwMDFdLCBbLTM4LjEyLCAxNzYuNV0sIFszLjE3LCA5OC4zOTIwMDAwMDAwMDAwMV0sIFstNy45MywgMTEyLjMwNzk5OTk5OTk5OTk5XSwgWzM1LjksIDEzNy40OF0sIFsxOS40MjUsIC0xNTUuMjkyXSwgWzE0Ljk1LCAtMjQuMzVdLCBbMC44LCAxMjcuMzI1XSwgWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXSwgWy00MS4zMjYsIC03Mi42MTM5OTk5OTk5OTk5OV0sIFsyLjc4LCAxMjUuNDhdLCBbLTQuMSwgMTQ1LjA2MV0sIFszLjE3LCA5OC4zOTIwMDAwMDAwMDAwMV0sIFstMzguMTIsIDE3Ni41XSwgWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXSwgWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXSwgWzQ0LjQzLCAtMTEwLjY3XSwgWy04LjQyLCAxMTYuNDddLCBbMzIuODgsIDEzMS4xXSwgWzM3LjczNCwgMTUuMDA0MDAwMDAwMDAwMDAxXSwgWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXSwgWzE0LjQ3Mjk5OTk5OTk5OTk5OSwgLTkwLjg4XSwgWy03LjIsIDEwOS45Ml0sIFs0MC44MjcsIDE0LjEzOTAwMDAwMDAwMDAwMV0sIFstMTUuNCwgMTY3LjgzXSwgWy03LjU0MjAwMDAwMDAwMDAwMSwgMTEwLjQ0MjAwMDAwMDAwMDAxXSwgWzMuMTcsIDk4LjM5MjAwMDAwMDAwMDAxXSwgWy0zLjYyLCAxNDQuNjJdLCBbMTMuMjU3LCAxMjMuNjg1XSwgWzM2LjYyLCAxMzguNTVdLCBbMTkuNDI1LCAtMTU1LjI5Ml0sIFstMy42MiwgMTQ0LjYyXSwgWy04LjA1OCwgMTE0LjI0Ml0sIFsxOS40MjUsIC0xNTUuMjkyXSwgWy0xNS40LCAxNjcuODNdXSwKICAgICAgICAgICAgICAgIHsiYmx1ciI6IDE1LCAibWF4IjogMS4wLCAibWF4Wm9vbSI6IDE4LCAibWluT3BhY2l0eSI6IDAuNSwgInJhZGl1cyI6IDI1fQogICAgICAgICAgICApLmFkZFRvKG1hcF81ODVmMDYzODcyMTY0M2Q2YmI2NzIzMDAwNjA1MWNmNyk7CiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
422 ],
423 "text/plain": [
424 "<folium.folium.Map at 0x7f2528b04908>"
425 ]
426 },
427 "execution_count": 12,
428 "metadata": {},
429 "output_type": "execute_result"
430 }
431 ],
432 "source": [
433 "# In this example, with the hep of heat maps, we are able to perceive the density of volcanoes\n",
434 "# which is more in some part of the world compared to others.\n",
435 "\n",
436 "from folium import plugins\n",
437 "\n",
438 "map = folium.Map(location = [15,30], tiles='Cartodb dark_matter', zoom_start = 2)\n",
439 "\n",
440 "heat_data = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n",
441 "\n",
442 "heat_data\n",
443 "plugins.HeatMap(heat_data).add_to(map)\n",
444 "\n",
445 "map"
446 ]
447 },
448 {
449 "cell_type": "code",
450 "execution_count": null,
451 "metadata": {},
452 "outputs": [],
453 "source": []
454 }
455 ],
456 "metadata": {
457 "kernelspec": {
458 "display_name": "Python 3",
459 "language": "python",
460 "name": "python3"
461 },
462 "language_info": {
463 "codemirror_mode": {
464 "name": "ipython",
465 "version": 3
466 },
467 "file_extension": ".py",
468 "mimetype": "text/x-python",
469 "name": "python",
470 "nbconvert_exporter": "python",
471 "pygments_lexer": "ipython3",
472 "version": "3.7.3"
473 }
474 },
475 "nbformat": 4,
476 "nbformat_minor": 2
477 }
+0
-105
examples/plotting_with_geoplot.py less more
0 """
1 Plotting with Geoplot and GeoPandas
2 -----------------------------------
3
4 `Geoplot <https://residentmario.github.io/geoplot/index.html>`_ is a Python
5 library providing a selection of easy-to-use geospatial visualizations. It is
6 built on top of the lower-level `CartoPy <http://scitools.org.uk/cartopy/>`_,
7 covered in a separate section of this tutorial, and is designed to work with
8 GeoPandas input.
9
10 This example is a brief tour of the `geoplot` API. For more details on the
11 library refer to `its documentation
12 <https://residentmario.github.io/geoplot/index.html>`_.
13
14 First we'll load in the data using GeoPandas.
15 """
16 import geopandas
17 import geoplot
18
19 world = geopandas.read_file(
20 geopandas.datasets.get_path('naturalearth_lowres')
21 )
22 boroughs = geopandas.read_file(
23 geoplot.datasets.get_path('nyc_boroughs')
24 )
25 collisions = geopandas.read_file(
26 geoplot.datasets.get_path('nyc_injurious_collisions')
27 )
28
29 ###############################################################################
30 # Plotting with Geoplot
31 # =====================
32 #
33 # We start out by replicating the basic GeoPandas world plot using Geoplot.
34 geoplot.polyplot(world, figsize=(8, 4))
35
36 ###############################################################################
37 # Geoplot can re-project data into any of the map projections provided by
38 # CartoPy (see the list
39 # `here <http://scitools.org.uk/cartopy/docs/latest/crs/projections.html>`_).
40
41 # use the Orthographic map projection (e.g. a world globe)
42 ax = geoplot.polyplot(
43 world, projection=geoplot.crs.Orthographic(), figsize=(8, 4)
44 )
45 ax.outline_patch.set_visible(True)
46
47 ###############################################################################
48 # ``polyplot`` is trivial and can only plot the geometries you pass to it. If
49 # you want to use color as a visual variable, specify a ``choropleth``. Here
50 # we sort GDP per person by country into five buckets by color, using
51 # "quantiles" binning from the `Mapclassify <https://pysal.org/mapclassify/>`_
52 # library.
53
54 import mapclassify
55 gpd_per_person = world['gdp_md_est'] / world['pop_est']
56 scheme = mapclassify.Quantiles(gpd_per_person, k=5)
57
58 # Note: this code sample requires geoplot>=0.4.0.
59 geoplot.choropleth(
60 world, hue=gpd_per_person, scheme=scheme,
61 cmap='Greens', figsize=(8, 4)
62 )
63
64 ###############################################################################
65 # If you want to use size as a visual variable, use a ``cartogram``. Here are
66 # population estimates for countries in Africa.
67
68 africa = world.query('continent == "Africa"')
69 ax = geoplot.cartogram(
70 africa, scale='pop_est', limits=(0.2, 1),
71 edgecolor='None', figsize=(7, 8)
72 )
73 geoplot.polyplot(africa, edgecolor='gray', ax=ax)
74
75 ###############################################################################
76 # If we have data in the shape of points in space, we may generate a
77 # three-dimensional heatmap on it using ``kdeplot``.
78
79 ax = geoplot.kdeplot(
80 collisions.head(1000), clip=boroughs.geometry,
81 shade=True, cmap='Reds',
82 projection=geoplot.crs.AlbersEqualArea())
83 geoplot.polyplot(boroughs, ax=ax, zorder=1)
84
85 ###############################################################################
86 # Alternatively, we may partition the space into neighborhoods automatically,
87 # using Voronoi tessellation. This is a good way of visually verifying whether
88 # or not a certain data column is spatially correlated.
89
90 ax = geoplot.voronoi(
91 collisions.head(1000), projection=geoplot.crs.AlbersEqualArea(),
92 clip=boroughs.simplify(0.001),
93 hue='NUMBER OF PERSONS INJURED', cmap='Reds',
94 legend=True,
95 edgecolor='white'
96 )
97 geoplot.polyplot(boroughs, edgecolor='black', zorder=1, ax=ax)
98
99 ###############################################################################
100 # These are just some of the plots you can make with Geoplot. There are
101 # many other possibilities not covered in this brief introduction. For more
102 # examples, refer to the
103 # `Gallery <https://residentmario.github.io/geoplot/gallery/index.html>`_ in
104 # the Geoplot documentation.
+0
-574
examples/polygon_plotting_with_folium.ipynb less more
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# An example of polygon plotting with folium \n",
7 "We are going to demonstrate polygon plotting in this example with the help of folium"
8 ]
9 },
10 {
11 "cell_type": "code",
12 "execution_count": 1,
13 "metadata": {},
14 "outputs": [],
15 "source": [
16 "import geopandas as gpd\n",
17 "import folium\n",
18 "import matplotlib.pyplot as plt"
19 ]
20 },
21 {
22 "cell_type": "markdown",
23 "metadata": {},
24 "source": [
25 "We make use of nybb dataset"
26 ]
27 },
28 {
29 "cell_type": "code",
30 "execution_count": 2,
31 "metadata": {
32 "scrolled": true
33 },
34 "outputs": [
35 {
36 "data": {
37 "text/html": [
38 "<div>\n",
39 "<style scoped>\n",
40 " .dataframe tbody tr th:only-of-type {\n",
41 " vertical-align: middle;\n",
42 " }\n",
43 "\n",
44 " .dataframe tbody tr th {\n",
45 " vertical-align: top;\n",
46 " }\n",
47 "\n",
48 " .dataframe thead th {\n",
49 " text-align: right;\n",
50 " }\n",
51 "</style>\n",
52 "<table border=\"1\" class=\"dataframe\">\n",
53 " <thead>\n",
54 " <tr style=\"text-align: right;\">\n",
55 " <th></th>\n",
56 " <th>BoroCode</th>\n",
57 " <th>BoroName</th>\n",
58 " <th>Shape_Leng</th>\n",
59 " <th>Shape_Area</th>\n",
60 " <th>geometry</th>\n",
61 " </tr>\n",
62 " </thead>\n",
63 " <tbody>\n",
64 " <tr>\n",
65 " <th>0</th>\n",
66 " <td>5</td>\n",
67 " <td>Staten Island</td>\n",
68 " <td>330470.010332</td>\n",
69 " <td>1.623820e+09</td>\n",
70 " <td>(POLYGON ((970217.0223999023 145643.3322143555...</td>\n",
71 " </tr>\n",
72 " <tr>\n",
73 " <th>1</th>\n",
74 " <td>4</td>\n",
75 " <td>Queens</td>\n",
76 " <td>896344.047763</td>\n",
77 " <td>3.045213e+09</td>\n",
78 " <td>(POLYGON ((1029606.076599121 156073.8142089844...</td>\n",
79 " </tr>\n",
80 " <tr>\n",
81 " <th>2</th>\n",
82 " <td>3</td>\n",
83 " <td>Brooklyn</td>\n",
84 " <td>741080.523166</td>\n",
85 " <td>1.937479e+09</td>\n",
86 " <td>(POLYGON ((1021176.479003906 151374.7969970703...</td>\n",
87 " </tr>\n",
88 " <tr>\n",
89 " <th>3</th>\n",
90 " <td>1</td>\n",
91 " <td>Manhattan</td>\n",
92 " <td>359299.096471</td>\n",
93 " <td>6.364715e+08</td>\n",
94 " <td>(POLYGON ((981219.0557861328 188655.3157958984...</td>\n",
95 " </tr>\n",
96 " <tr>\n",
97 " <th>4</th>\n",
98 " <td>2</td>\n",
99 " <td>Bronx</td>\n",
100 " <td>464392.991824</td>\n",
101 " <td>1.186925e+09</td>\n",
102 " <td>(POLYGON ((1012821.805786133 229228.2645874023...</td>\n",
103 " </tr>\n",
104 " </tbody>\n",
105 "</table>\n",
106 "</div>"
107 ],
108 "text/plain": [
109 " BoroCode BoroName Shape_Leng Shape_Area \\\n",
110 "0 5 Staten Island 330470.010332 1.623820e+09 \n",
111 "1 4 Queens 896344.047763 3.045213e+09 \n",
112 "2 3 Brooklyn 741080.523166 1.937479e+09 \n",
113 "3 1 Manhattan 359299.096471 6.364715e+08 \n",
114 "4 2 Bronx 464392.991824 1.186925e+09 \n",
115 "\n",
116 " geometry \n",
117 "0 (POLYGON ((970217.0223999023 145643.3322143555... \n",
118 "1 (POLYGON ((1029606.076599121 156073.8142089844... \n",
119 "2 (POLYGON ((1021176.479003906 151374.7969970703... \n",
120 "3 (POLYGON ((981219.0557861328 188655.3157958984... \n",
121 "4 (POLYGON ((1012821.805786133 229228.2645874023... "
122 ]
123 },
124 "execution_count": 2,
125 "metadata": {},
126 "output_type": "execute_result"
127 }
128 ],
129 "source": [
130 "path = gpd.datasets.get_path('nybb')\n",
131 "df = gpd.read_file(path)\n",
132 "df.head()"
133 ]
134 },
135 {
136 "cell_type": "markdown",
137 "metadata": {},
138 "source": [
139 "Plot from the original dataset"
140 ]
141 },
142 {
143 "cell_type": "code",
144 "execution_count": 3,
145 "metadata": {},
146 "outputs": [
147 {
148 "data": {
149 "image/png": "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\n",
150 "text/plain": [
151 "<Figure size 432x432 with 1 Axes>"
152 ]
153 },
154 "metadata": {
155 "needs_background": "light"
156 },
157 "output_type": "display_data"
158 }
159 ],
160 "source": [
161 "df.plot(figsize=(6, 6))\n",
162 "plt.show()"
163 ]
164 },
165 {
166 "cell_type": "markdown",
167 "metadata": {},
168 "source": [
169 "One thing to notice is that the values of the geometry do not directly represent the values of latitude of longitude in geographic coordinate system\n"
170 ]
171 },
172 {
173 "cell_type": "code",
174 "execution_count": 4,
175 "metadata": {},
176 "outputs": [
177 {
178 "name": "stdout",
179 "output_type": "stream",
180 "text": [
181 "{'init': 'epsg:2263'}\n"
182 ]
183 }
184 ],
185 "source": [
186 "print(df.crs)"
187 ]
188 },
189 {
190 "cell_type": "markdown",
191 "metadata": {},
192 "source": [
193 "As folium(i.e. leaflet.js) by default takes input of values of latitude and longitude, we need to project the geometry first"
194 ]
195 },
196 {
197 "cell_type": "code",
198 "execution_count": 5,
199 "metadata": {},
200 "outputs": [
201 {
202 "name": "stdout",
203 "output_type": "stream",
204 "text": [
205 "{'init': 'epsg:4326', 'no_defs': True}\n"
206 ]
207 },
208 {
209 "data": {
210 "text/html": [
211 "<div>\n",
212 "<style scoped>\n",
213 " .dataframe tbody tr th:only-of-type {\n",
214 " vertical-align: middle;\n",
215 " }\n",
216 "\n",
217 " .dataframe tbody tr th {\n",
218 " vertical-align: top;\n",
219 " }\n",
220 "\n",
221 " .dataframe thead th {\n",
222 " text-align: right;\n",
223 " }\n",
224 "</style>\n",
225 "<table border=\"1\" class=\"dataframe\">\n",
226 " <thead>\n",
227 " <tr style=\"text-align: right;\">\n",
228 " <th></th>\n",
229 " <th>BoroCode</th>\n",
230 " <th>BoroName</th>\n",
231 " <th>Shape_Leng</th>\n",
232 " <th>Shape_Area</th>\n",
233 " <th>geometry</th>\n",
234 " </tr>\n",
235 " </thead>\n",
236 " <tbody>\n",
237 " <tr>\n",
238 " <th>0</th>\n",
239 " <td>5</td>\n",
240 " <td>Staten Island</td>\n",
241 " <td>330470.010332</td>\n",
242 " <td>1.623820e+09</td>\n",
243 " <td>(POLYGON ((-74.05050806403247 40.5664220341607...</td>\n",
244 " </tr>\n",
245 " <tr>\n",
246 " <th>1</th>\n",
247 " <td>4</td>\n",
248 " <td>Queens</td>\n",
249 " <td>896344.047763</td>\n",
250 " <td>3.045213e+09</td>\n",
251 " <td>(POLYGON ((-73.83668274106707 40.5949466970158...</td>\n",
252 " </tr>\n",
253 " <tr>\n",
254 " <th>2</th>\n",
255 " <td>3</td>\n",
256 " <td>Brooklyn</td>\n",
257 " <td>741080.523166</td>\n",
258 " <td>1.937479e+09</td>\n",
259 " <td>(POLYGON ((-73.86706149472118 40.5820879767934...</td>\n",
260 " </tr>\n",
261 " <tr>\n",
262 " <th>3</th>\n",
263 " <td>1</td>\n",
264 " <td>Manhattan</td>\n",
265 " <td>359299.096471</td>\n",
266 " <td>6.364715e+08</td>\n",
267 " <td>(POLYGON ((-74.01092841268031 40.6844914725429...</td>\n",
268 " </tr>\n",
269 " <tr>\n",
270 " <th>4</th>\n",
271 " <td>2</td>\n",
272 " <td>Bronx</td>\n",
273 " <td>464392.991824</td>\n",
274 " <td>1.186925e+09</td>\n",
275 " <td>(POLYGON ((-73.89680883223774 40.7958084451597...</td>\n",
276 " </tr>\n",
277 " </tbody>\n",
278 "</table>\n",
279 "</div>"
280 ],
281 "text/plain": [
282 " BoroCode BoroName Shape_Leng Shape_Area \\\n",
283 "0 5 Staten Island 330470.010332 1.623820e+09 \n",
284 "1 4 Queens 896344.047763 3.045213e+09 \n",
285 "2 3 Brooklyn 741080.523166 1.937479e+09 \n",
286 "3 1 Manhattan 359299.096471 6.364715e+08 \n",
287 "4 2 Bronx 464392.991824 1.186925e+09 \n",
288 "\n",
289 " geometry \n",
290 "0 (POLYGON ((-74.05050806403247 40.5664220341607... \n",
291 "1 (POLYGON ((-73.83668274106707 40.5949466970158... \n",
292 "2 (POLYGON ((-73.86706149472118 40.5820879767934... \n",
293 "3 (POLYGON ((-74.01092841268031 40.6844914725429... \n",
294 "4 (POLYGON ((-73.89680883223774 40.7958084451597... "
295 ]
296 },
297 "execution_count": 5,
298 "metadata": {},
299 "output_type": "execute_result"
300 }
301 ],
302 "source": [
303 "df = df.to_crs(epsg=4326)\n",
304 "print(df.crs)\n",
305 "df.head()"
306 ]
307 },
308 {
309 "cell_type": "code",
310 "execution_count": 6,
311 "metadata": {},
312 "outputs": [
313 {
314 "data": {
315 "image/png": "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\n",
316 "text/plain": [
317 "<Figure size 432x432 with 1 Axes>"
318 ]
319 },
320 "metadata": {
321 "needs_background": "light"
322 },
323 "output_type": "display_data"
324 }
325 ],
326 "source": [
327 "df.plot(figsize=(6, 6))\n",
328 "plt.show()"
329 ]
330 },
331 {
332 "cell_type": "markdown",
333 "metadata": {},
334 "source": [
335 "Initialize folium map object"
336 ]
337 },
338 {
339 "cell_type": "code",
340 "execution_count": 7,
341 "metadata": {},
342 "outputs": [
343 {
344 "data": {
345 "text/html": [
346 "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2U0NGM2YmUxNTNjZjQxMjFhNmUwNWM0ZTBhODcyNWU0IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCA9IEwubWFwKAogICAgICAgICdtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQnLCB7CiAgICAgICAgY2VudGVyOiBbNDAuNywgLTczLjk0XSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2M0NjdjNjJhOTIyYjQzMDA4MzU0ZGVhYjNiNDAwMTBiID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vY2FydG9kYi1iYXNlbWFwcy17c30uZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2xpZ2h0X2FsbC97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiCn0pLmFkZFRvKG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCk7Cjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
347 ],
348 "text/plain": [
349 "<folium.folium.Map at 0x157213b9c50>"
350 ]
351 },
352 "execution_count": 7,
353 "metadata": {},
354 "output_type": "execute_result"
355 }
356 ],
357 "source": [
358 "m = folium.Map(location=[40.70, -73.94], zoom_start=10, tiles='CartoDB positron')\n",
359 "m"
360 ]
361 },
362 {
363 "cell_type": "markdown",
364 "metadata": {},
365 "source": [
366 "Overlay the boundaries of boroughs on map with borough name as popup"
367 ]
368 },
369 {
370 "cell_type": "code",
371 "execution_count": 8,
372 "metadata": {},
373 "outputs": [
374 {
375 "data": {
376 "text/html": [
377 "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2U0NGM2YmUxNTNjZjQxMjFhNmUwNWM0ZTBhODcyNWU0IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCA9IEwubWFwKAogICAgICAgICdtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQnLCB7CiAgICAgICAgY2VudGVyOiBbNDAuNywgLTczLjk0XSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2M0NjdjNjJhOTIyYjQzMDA4MzU0ZGVhYjNiNDAwMTBiID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vY2FydG9kYi1iYXNlbWFwcy17c30uZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2xpZ2h0X2FsbC97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiCn0pLmFkZFRvKG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCk7CiAgICAKICAgICAgICAKICAgICAgICB2YXIgZ2VvX2pzb25fYTUxZGQ2MjFhZjFiNDMzMmIxOWVhOTlhMjQ1MDAwOWQgPSBMLmdlb0pzb24oCiAgICAgICAgICAgIHsiYmJveCI6IFstNzQuMjU1NTkxMzYzMTUyMTMsIDQwLjQ5NjEzMzk4NzYxMTc5LCAtNzQuMDQ5MjM2Mjk4NDIwNDUsIDQwLjY0ODg4MDU1MzM3MDQ1XSwgImZlYXR1cmVzIjogW3siYmJveCI6IFstNzQuMjU1NTkxMzYzMTUyMTMsIDQwLjQ5NjEzMzk4NzYxMTc5LCAtNzQuMDQ5MjM2Mjk4NDIwNDUsIDQwLjY0ODg4MDU1MzM3MDQ1XSwgImdlb21ldHJ5IjogeyJjb29yZGluYXRlcyI6IFtbW1stNzQuMDUwNTA4MDY0MDMyNDcsIDQwLjU2NjQyMjAzNDE2MDc5NF0sIFstNzQuMDQ5MzE2NDAzNjIwODYsIDQwLjU2NTg4Nzc0Nzc4MDQxXSwgWy03NC4wNDkyMzYyOTg0MjA0NSwgNDAuNTY1MzYyNzM2MzY4MDk0XSwgWy03NC4wNTEwNzE1OTgwMzc3NywgNDAuNTY2NzIyNDkzMzk3NzhdLCBbLTc0LjA1MDUwODA2NDAzMjQ3LCA0MC41NjY0MjIwMzQxNjA3OTRdXV0sIFtbWy03NC4wNTMxNDAzNjgyMTEwNywgNDAuNTc3NzAyNzE1NTQ1NzRdLCBbLTc0LjA1NDg5Nzc4MjEwODAzLCA0MC41Nzc3ODI0NDA5MTk4MV0sIFstNzQuMDUzNjg2MjkxNTA0MTgsIDQwLjU4MDU0ODc1OTYxNDM5XSwgWy03NC4wNTI5MzE5MDYzOTgxNiwgNDAuNTc5OTAyNDc0NjY1ODRdLCBbLTc0LjA1MzE0MDM2ODIxMTA3LCA0MC41Nzc3MDI3MTU1NDU3NF1dXSwgW1tbLTc0LjE1OTQ1NjAyNDM4MTg3LCA0MC42NDE0NDgzMzMzMjQwM10sIFstNzQuMTYxMTEyNDI1MjIxNzMsIDQwLjY0MTgzNTQ1MzczNzJdLCBbLTc0LjE2MTQ2MDM2MDA1MjkzLCA0MC42NDQyOTQ5Njk3NjQ4Nl0sIFstNzQuMTU3NDMzNDkyMDA5OSwgNDAuNjQzMzAyODU3Nzc4OTg0XSwgWy03NC4xNTk0NTYwMjQzODE4NywgNDAuNjQxNDQ4MzMzMzI0MDNdXV0sIFtbWy03NC4wODIyMTI3MjkxNDkzNiwgNDAuNjQ4MjgwMTYyMjkwMDddLCBbLTc0LjA3MTY1ODI5NzU5Nzg0LCA0MC42NDUwMzM3NDY0MzUwMV0sIFstNzQuMDcwOTM3ODQ0NzE0NzYsIDQwLjY0MzM0NTk2Mzg0MDU1XSwgWy03NC4wNzIxMDk1MjQ0NDYzMiwgNDAuNjQyNDYzMjE2NzkyNzM0XSwgWy03NC4wNzAzMjkyMzcxNTM5LCA0MC42NDI1MjYxMjgxMzIyOF0sIFstNzQuMDczMTQ0MDA1ODYwMzEsIDQwLjY0MTg1Mjk3NDQ4MDE0XSwgWy03NC4wNzAxOTM5OTU1OTIxOSwgNDAuNjQyMDA3NTAyODA1MzA2XSwgWy03NC4wNzI4OTAwNTYwOTYzLCA0MC42NDA5MjI2NzI4NzYwMV0sIFstNzQuMDY5OTgzNTQ2NTM5NTIsIDQwLjY0MTA2ODk0MzExNjc4NV0sIFstNzQuMDczMDc3MjU4Mzc3NDUsIDQwLjY0MDUxMzMxMTc5NjMxXSwgWy03NC4wNzM0ODczNzMwMzU2MiwgNDAuNjM3MjMzNTI5MjM2MTg0XSwgWy03NC4wNzA0OTQxMjIxMzg0LCA0MC42MzcxNjE4ODY4Mzk1OF0sIFstNzQuMDczNDE1NjI2MzI4MTgsIDQwLjYzNjg5Mzk1MDk2NTU0XSwgWy03NC4wNzIwOTQ4MzgwNzUxLCA0MC42MzY2NDcyNzc2MjQ1NTRdLCBbLTc0LjA3MzM1ODIyMDQ1NTk2LCA0MC42MzY1MzYwOTQxNjUxMl0sIFstNzQuMDcyOTg0NzQ2MTIzMjUsIDQwLjYzMDMwODk3ODk4MTQ0XSwgWy03NC4wNjgwMjE3MzU0Mzk1MiwgNDAuNjI4Nzg3NTg1MTg1NDM1XSwgWy03NC4wNzI5MTE3NzkzNjU2LCA0MC42Mjk5OTYzNzk0MDY0N10sIFstNzQuMDcyMjU1MDA5NTU3NzIsIDQwLjYyNDYwODc1MDE5MzkzNl0sIFstNzQuMDY5NzU1NDMwODgzMjksIDQwLjYyMTIwODEzOTg3MjM1XSwgWy03NC4wNjU0NDU4NjA2OTQ4NCwgNDAuNjE5MjAyNjI4Mjg5MjhdLCBbLTc0LjA2NjY4MjA3OTgyOTI1LCA0MC42MTgwNjc0OTU5Mzg1Ml0sIFstNzQuMDY0MjU3MjE3NTE1OTIsIDQwLjYxODE3MTY4NzU4NTU0NF0sIFstNzQuMDY1MDk5MDg0MDcyMDcsIDQwLjYxNzUxMDk1NjEyNTQzNl0sIFstNzQuMDU2NDk1NjU5MzY3NjgsIDQwLjYwNzI0NzY0ODI1NjE5XSwgWy03NC4wNTM4MTA2OTgwNTQ0MiwgNDAuNjA1OTEyNzE4ODUyOTldLCBbLTc0LjA1MjIyOTgzMDI4MzI3LCA0MC41OTk4MjM4ODM1OTM5Ml0sIFstNzQuMDYyMTUyNzQ0MzI1NDYsIDQwLjU5MjAyNTA0MDU0MTk4XSwgWy03NC4wNjQzNjAwMzcyMTI0OCwgNDAuNTg4MjY3ODkxMTc0NzhdLCBbLTc0LjA3MDk2MzEwMTgyMDQ1LCA0MC41ODMxODE5OTA0MDI1N10sIFstNzQuMDcwNjU3ODE1Mzc4MTUsIDQwLjU4MTYyNTYyNTAzNzcxXSwgWy03NC4wNzQ5OTQxMzA3MzUxNiwgNDAuNTc5MjM2NTU3NDE2MzFdLCBbLTc0LjA3MzM2MTE4NDcyMTA0LCA0MC41NzgyNzU0ODgyODkxNF0sIFstNzQuMDc1MDgyODgxOTI2MjIsIDQwLjU3OTE2MDE1ODc1NTU1XSwgWy03NC4wODU5NTI5NzM4NTkyLCA0MC41NzAyOTgyMjcxMDQyMV0sIFstNzQuMDg2MjE2MzIyMjQyNjIsIDQwLjU2ODUzMjY5ODE0NzA5NV0sIFstNzQuMDkwOTk5MDU0NjcwNDIsIDQwLjU2NjczNzEyOTA5NzUyXSwgWy03NC4xMDQ4NDQ0NzYzNjMzOCwgNDAuNTUzMDI1ODE0NTU2MjRdLCBbLTc0LjEwNzM0ODMxMjgzNjUyLCA0MC41NTQxNDgxNTIwMzExM10sIFstNzQuMTEyNzg4NDY5NTgwNjgsIDQwLjU0Nzg4NDI2MzIyNjg0XSwgWy03NC4xMTY1NDUzMjE3Njk4NSwgNDAuNTQ3ODcyMzkzMTQ2NTU1XSwgWy03NC4xMjI0OTk2MDA5NTQ2OCwgNDAuNTQ0ODU4MTA3NzEzMDI2XSwgWy03NC4xMzY5MDc5OTA3NjM1MiwgNDAuNTI5MjgxOTE4ODgyNl0sIFstNzQuMTM4ODgzMzcyOTU2MDMsIDQwLjUyOTk2MDY3NjQ4NDM2XSwgWy03NC4xNDA0OTIyODI3NzQ2NiwgNDAuNTM0OTk4NjY4MDYyNjg0XSwgWy03NC4xMzQxMDAxNzQ5MTA5NywgNDAuNTM1NDk0NDg5MTA0NzRdLCBbLTc0LjEyNzk4NzI4NTI3MjIxLCA0MC41NDA3MTA5Nzc0ODMwOF0sIFstNzQuMTI3NTY2NjA3NjI4NDIsIDQwLjU0MzQ5OTMzMzkzNDRdLCBbLTc0LjEzMDcyNjU0MDgyMTA0LCA0MC41NDYyNTUxOTAzNTkzOV0sIFstNzQuMTM1NDIzMTIzNjEwMDgsIDQwLjU0NjU3NDI5ODQ5NDQ4NF0sIFstNzQuMTM3MTMyNTkwMTM2NzMsIDQwLjU0NTkzMDk3NDM1OTU1XSwgWy03NC4xMzYxMTU0MDcyNDA2LCA0MC41NDUwMTk4NDU2Nzk4Ml0sIFstNzQuMTM2MzgzNzk4MDE5NjEsIDQwLjU0NDg1NDY3MTUwNjI0XSwgWy03NC4xMzcxOTI4NzUxOTcxNiwgNDAuNTQ1Nzg0Mjk0NzAwMDRdLCBbLTc0LjEzNzUwODMzNTA4ODUzLCA0MC41NDU1Nzc1NTcyMzg2Nl0sIFstNzQuMTM2NTg5MDcwNzEwNTgsIDQwLjU0NDg0NTQ4NjA5NTkxXSwgWy03NC4xMzY4NzM0ODYzMDg2NiwgNDAuNTQ0NjgyNTkzOTEwMDFdLCBbLTc0LjEzNzk0OTY2MDUwNzU2LCA0MC41NDYwMDAzMzc1ODA2NF0sIFstNzQuMTM4ODY5NTEzNDA0MTksIDQwLjU0NTEzMDE5NzYwNzI2XSwgWy03NC4xMzc2MjQzMDc0NTE0LCA0MC41NDQyNTM1NjY0MTgyNl0sIFstNzQuMTM4NzU1MzQ3MDM0NiwgNDAuNTQ0OTMzOTU4NDI2ODJdLCBbLTc0LjEzNzg2Nzk4NTI0NTQsIDQwLjU0NDA1MjU0NDEzMDkyXSwgWy03NC4xMzkwMzMwNzE3ODYyNywgNDAuNTQ0NzA0OTEwMzAwMDJdLCBbLTc0LjEzOTUzOTM3OTE1NzQ3LCA0MC41NDQyOTUxNDA4NzIxMTZdLCBbLTc0LjEzODM0MTUxMjg4ODIzLCA0MC41NDM1NTE4Mjg4MTQwMV0sIFstNzQuMTQwMzg1NzMwNzM2MjMsIDQwLjU0NDAzMzE4NTAwNzgyXSwgWy03NC4xMzkyMTk5MzQ4NTg4NiwgNDAuNTQzMTY2MDg1MTM3ODM0XSwgWy03NC4xNDE0MTA3MzU2MDQwOCwgNDAuNTQzMDIyNDE1MDgwMzVdLCBbLTc0LjE0MDI2MjkwNDAwNzAyLCA0MC41NDE5NjE1MTE1MjI1OF0sIFstNzQuMTQxMzQ5MDEzNzk2LCA0MC41NDI1Nzc1MjMxMzE1Nl0sIFstNzQuMTQxNzk3MTk5NTcwNTIsIDQwLjU0MjIwMDQxNTM4MjM1NF0sIFstNzQuMTQwNjM5ODQxNzIxMzQsIDQwLjU0MTY5NDU0MjAzNzI1Nl0sIFstNzQuMTQwOTU4MTY4MzI4OTIsIDQwLjU0MTQzMjA3Nzk2NDk1Nl0sIFstNzQuMTQyMjk4OTg2MzAyNDQsIDQwLjU0MjI1MjExMTQ2MjM3XSwgWy03NC4xNDIyNjUxMzAwNzk5OSwgNDAuNTM4MTQwMzUzNjY0NjddLCBbLTc0LjE0MTgzNzg5Mzg4MjY3LCA0MC41Mzg0MjE2MjA0MjY3NV0sIFstNzQuMTQyMTY3MTgwMTkxNDUsIDQwLjUzNzkzMjc2MTA2ODEzNF0sIFstNzQuMTQxMDQxNTc5MTY1NTIsIDQwLjUzNzM0Njg4NTQ2NzI1XSwgWy03NC4xNDEyOTgyNTQ3MTgyNywgNDAuNTM3MTM4MTc3OTQ4MzM2XSwgWy03NC4xNDIxODU3NDg0MTg4NCwgNDAuNTM3OTE3Nzc4MjkxNDQ0XSwgWy03NC4xNDE1ODI4NzY5MDg5MywgNDAuNTM3MDg3NTc3OTUyMzZdLCBbLTc0LjE0OTIxNzMzMjYzOTcsIDQwLjUzNDI0MTU4Nzc2MDg2XSwgWy03NC4xNTYxODczMTg1MjQ1MiwgNDAuNTI4NjExMzcxNTk0MjI0XSwgWy03NC4xNzIwMjQ0NjY1NTY5OCwgNDAuNTIzMzMzMjEwODA3OTZdLCBbLTc0LjE3NzU4Mjk1NTIyMTA2LCA0MC41MTkyMzA4NjY4NjU5OV0sIFstNzQuMTgxMDQwODEyMDg4ODcsIDQwLjUyMDcwNTAzNjI4NzE1XSwgWy03NC4xODQ4MzExNjQ3OTc2LCA0MC41MTkzNDEzNTg2MDA4Ml0sIFstNzQuMTk1MjEzMzk5OTkwNzMsIDQwLjUwOTk3NzY1Mjk1NTY1NV0sIFstNzQuMTk5NjcyMDUzNTc3MTcsIDQwLjUxMTQyNjg1MDQ5NzQ2XSwgWy03NC4xOTkwNzMwNzA5NTQ5LCA0MC41MTMwODM4ODQ1MzY5NTRdLCBbLTc0LjIwNzU5NzAxNzI4NjE1LCA0MC41MTE4MzUxNTYxNTE3NTRdLCBbLTc0LjIxNzU4MjQwMTY0NTM2LCA0MC41MDMzNDEzOTI2NjM1Ml0sIFstNzQuMjMxMjQ0NDMyNDQxODUsIDQwLjUwMTgyNjg2MDMxODkzXSwgWy03NC4yMzk4NDg1MTI0Mzk5LCA0MC40OTc1ODMwMTMyMDY5Nl0sIFstNzQuMjQ2NzYxMDI3NzQxOTUsIDQwLjQ5NjEzMzk4NzYxMTc5XSwgWy03NC4yNTMxNjEyNDQ5MjAxMiwgNDAuNTAwMTI1Mzc2NDY0NzY2XSwgWy03NC4yNTU1OTEzNjMxNTIxMywgNDAuNTA3NzEyOTUwNzI5MDRdLCBbLTc0LjI1MzMxNTc5ODA1MTMyLCA0MC41MDk4NjE1MDQ1NDA5M10sIFstNzQuMjUzNTI2ODUwNzY3MSwgNDAuNTExNjc3NzY2MDMxODE2XSwgWy03NC4yNTA1NjAwNzI3MjE5NywgNDAuNTE2MTA2NzQxNTM1MDA1XSwgWy03NC4yNDkyMTUyODY3NjEwMSwgNDAuNTE1MDg0ODYxMjk5MjRdLCBbLTc0LjI0OTk0MTU4ODA4MDQyLCA0MC41MTYxMzc0ODgxOTA5OF0sIFstNzQuMjQ4Mjg0MjIwODM4OTEsIDQwLjUxNjQ4Njk0OTU1MzY1XSwgWy03NC4yNDk0MDc3MDc4OTI4NCwgNDAuNTE2OTgwODMxNDIzNjRdLCBbLTc0LjI0NjQ0MDM5NjUxMzI0LCA0MC41MTU5NjUwMjg1MDg0OV0sIFstNzQuMjQ1NjM0NzMxNjk5NDUsIDQwLjUxODA3NTU4MDc0NTcxXSwgWy03NC4yMzk4MjI1ODMxNjc3OCwgNDAuNTIwMDkwNzExNDQzNzZdLCBbLTc0LjI0MjkzMjM1MDM2NTExLCA0MC41MjEyMjcxNjExMzI3NjRdLCBbLTc0LjI0Mzk2NTAwNzU4ODU5LCA0MC41MjQ5MDUzNjYzMzc4XSwgWy03NC4yNDE1MDczMzMyMjg5NywgNDAuNTMxMDQxMzQyNzk1MTM1XSwgWy03NC4yNDIwNDU3MDI4NjAwOCwgNDAuNTM0MzQ2Mzc3MDUwNF0sIFstNzQuMjQ1MzM2NTExNzYwNTgsIDQwLjUzNjkwNTk5NDQzNDYyNl0sIFstNzQuMjQ1NjAyMDU2OTgzMjQsIDQwLjU0MDk0OTU5NDU3NzNdLCBbLTc0LjI0ODAzNDYzNzM1Njk0LCA0MC41NDMwOTMyNDA0NDEzN10sIFstNzQuMjQzMzYzNDY1NTI3NzIsIDQwLjU0Nzg2NTEzNTIzNTgyXSwgWy03NC4yNDAzOTE4MjgxMDA1NywgNDAuNTQ3NjYzMzEwMTczNzI1XSwgWy03NC4yMzY0MTQ1OTcyNjc5NywgNDAuNTUwNTA4MjIzNDQ5ODJdLCBbLTc0LjIzNjM5OTYyMDg2MTYsIDQwLjU1MjMzNTMzMzE5MDU5XSwgWy03NC4yMzMzMjQwMDA4MDMyNCwgNDAuNTUyNTA5MTQzNTY1ODddLCBbLTc0LjIzMDcxMDM2MTk4MTIxLCA0MC41NTU1NTc1OTQyNTg5MV0sIFstNzQuMjIwODY3MTUwOTM0MDEsIDQwLjU1NTk0MDIwMjI3NzddLCBbLTc0LjIxODU5MzI1NzgyODA4LCA0MC41NTQ2NzQyMTAyNDc3NV0sIFstNzQuMjE4NzUwMzY4ODA1NiwgNDAuNTU2MDI3NzQwNTM3MjQ2XSwgWy03NC4yMTYwNDI0NjA2MDYzNiwgNDAuNTU1NTQ0MTE4NzgyOThdLCBbLTc0LjIxMTk2NzY3MTcyNzY1LCA0MC41NTg0NDI0Njg3NzY4MV0sIFstNzQuMjA0NDAwNzY0MzM2OTIsIDQwLjU4MzcxMjk0NTg0MTkzXSwgWy03NC4yMDQ2NDYwODk0MzIxLCA0MC41ODkyODU3NDU0NjU4MTZdLCBbLTc0LjE5NzUxMzU3NzE4NzExLCA0MC41OTY3OTg5ODYwMzY3M10sIFstNzQuMjAyODE2MjgzNzQ1OTMsIDQwLjYwODI3MDgyNzk2NzI5Nl0sIFstNzQuMjAyNDQzNzQ0NDk1MjYsIDQwLjYxMzI4NDY5MzkzMTkyNF0sIFstNzQuMjAwNDUzMjQ0NDQ0ODIsIDQwLjYxNjMyNzk5NjgwNjM0XSwgWy03NC4yMDE2MzIwMTEwNDExNywgNDAuNjIzMTIxNTY1NDU3MzhdLCBbLTc0LjIwMDc5MjEyNzcyNTYyLCA0MC42MzAzNTQyMjg2OTI1Nl0sIFstNzQuMTk0NjIzMTAxNDUxOTIsIDQwLjYzNzM5MTE4MzU2MzY2XSwgWy03NC4xODY1MjQ5Njg5NzYsIDQwLjY0MzM4ODY2MjE3MTQ0XSwgWy03NC4xODQ4MzU5NDU4MDg0NywgNDAuNjQ0MTI4MjY2MzM4N10sIFstNzQuMTgzNjUwNjcwNjQwNjMsIDQwLjY0MjIzOTY0MTA1MDY1XSwgWy03NC4xODM2Njc0NTg3MjAxLCA0MC42NDQ2MTA0ODUwNTAwNDVdLCBbLTc0LjE3OTk2NTA3Mjc0MDIyLCA0MC42NDUyNjY5ODIzMDI4OF0sIFstNzQuMTc5NTg3MTM3MjE0MSwgNDAuNjQxOTE3NjgzNDY0MDQ0XSwgWy03NC4xNzkxODcyODA2NzU2NSwgNDAuNjQyOTg3NTM5OTk2NDZdLCBbLTc0LjE3NjM1Nzg2NjE3NTM0LCA0MC42NDIzMjcyMjA1NjI4Nl0sIFstNzQuMTc0MzY1NzI5NDM2MDksIDQwLjY0NTEzNjI1ODY0NTQzXSwgWy03NC4xNzEzMzU4NzI4MTgwOCwgNDAuNjQyODU1NzY1MDUxOTU1XSwgWy03NC4xNzI5Nzk5MDU4MjA3MSwgNDAuNjQwNDg2MDY3MTk1NjI0XSwgWy03NC4xNzEwNTAxNzIzOTg5MiwgNDAuNjQyNTkzODE5MTI5OTVdLCBbLTc0LjE2NjA5OTg5ODk2MDM0LCA0MC42NDI0MDY1ODcwMDEyXSwgWy03NC4xNjQxNjg4NjgxMzYzMSwgNDAuNjM5OTk0MTEwMjMwMzFdLCBbLTc0LjE2NDAwMTc5MDAxNDIsIDQwLjY0MTA2NTg2MDAwNjc2XSwgWy03NC4xNjM4NDk3NjU4ODYxLCA0MC42Mzk4OTE1MDk3MTc3XSwgWy03NC4xNjE2NzUzNDY5NDIzNSwgNDAuNjQwNjEwNzg0NzY2NzZdLCBbLTc0LjE2MjI4NDY1MjUyMDg1LCA0MC42Mzg3NjU2NTI3NzIyODVdLCBbLTc0LjE2MDM0ODE5OTkzMTY2LCA0MC42Mzg0NDM3MjY0NTM0NV0sIFstNzQuMTU5ODY0MTA0NjUwNDEsIDQwLjYzOTkyNzgyMzY5Mjc2Nl0sIFstNzQuMTU5MzE5NTQwMzcyNzgsIDQwLjYzNzgxMDQwNTc0NTQ1XSwgWy03NC4xNTcxODc4Mjc4MjUyMSwgNDAuNjM3OTUwODA1MjI4OV0sIFstNzQuMTU2OTc3MjMyOTQyNTUsIDQwLjYzOTI3NTQwMTE5MThdLCBbLTc0LjE1NTY5ODYyMDUzMTUyLCA0MC42Mzc1MTc5Mzg5MDQxM10sIFstNzQuMTU0NjkyNjM4NjQ1MjYsIDQwLjYzOTE5Mzk2ODExNDIwNl0sIFstNzQuMTU0NTk2NzAxNjMzMjgsIDQwLjYzNzM0MzM0NDA2OTAyXSwgWy03NC4xNTI3OTcwMzUxMTQwMywgNDAuNjM3MTMyNzU0ODUyNTQ0XSwgWy03NC4xNTExOTU0NTAwNzE3OCwgNDAuNjM3NzMwNzg4NTM2MTNdLCBbLTc0LjE1MTM5NTE3NjEzNjUsIDQwLjYzOTM5NjUxMzA1NzQxXSwgWy03NC4xNDg1NTgxNTA5MjIwNiwgNDAuNjM3NDM3ODM3NTI3MjJdLCBbLTc0LjE0ODc3NzkyMDA1ODg1LCA0MC42Mzg4NzYyNTExMjc3MDVdLCBbLTc0LjEzNDM1MjY5NTczNjMxLCA0MC42NDE4ODY3OTc0MDUxNF0sIFstNzQuMTI4OTA3MjkwMzM0NTIsIDQwLjY0MTE5NDgyNzU4NjEyXSwgWy03NC4xMjcwMjczNjAyMTA5NywgNDAuNjM5MzE5MDc4OTg5NDRdLCBbLTc0LjEyNjM2ODA4Njg4OTgxLCA0MC42NDEzMzIzODA0ODY5XSwgWy03NC4xMjQxNTU3ODQ0NTAxMSwgNDAuNjQwMTM0NzE2NjQwMDJdLCBbLTc0LjExOTQwMDI5NTMyNDU1LCA0MC42NDIzNzkzNzg1MzI3MV0sIFstNzQuMTE4NjE2MzUyMzYyNzQsIDQwLjY0MTUzMDM2NTAyODk4NF0sIFstNzQuMTE4ODM2MjQ2MTY5NDIsIDQwLjY0MjU0MTg2NDA2MDMzXSwgWy03NC4xMTcyODgxNDQ4MDM3NywgNDAuNjQxNTk0Mzc3MjA0NTldLCBbLTc0LjExNzIyNDcwMDgyNTQ1LCA0MC42NDMwMjczNTk5NjI1OF0sIFstNzQuMTE1MzUwODIxODI5MzIsIDQwLjY0MjQ3MDU0MDE1ODE3XSwgWy03NC4xMDk3MzkzMjU2NDQ4NCwgNDAuNjQ1NDYzNzI4MTg0NzJdLCBbLTc0LjA5ODgwMDY2ODg1ODA4LCA0MC42NDUwNDcwMzQzMTA3NjRdLCBbLTc0LjA4NTcwNzU0Mzc4MjEyLCA0MC42NDg4ODA1NTMzNzA0NV0sIFstNzQuMDgyMjEyNzI5MTQ5MzYsIDQwLjY0ODI4MDE2MjI5MDA3XV1dXSwgInR5cGUiOiAiTXVsdGlQb2x5Z29uIn0sICJpZCI6ICIwIiwgInByb3BlcnRpZXMiOiB7ImhpZ2hsaWdodCI6IHt9LCAic3R5bGUiOiB7ImZpbGxDb2xvciI6ICJvcmFuZ2UifX0sICJ0eXBlIjogIkZlYXR1cmUifV0sICJ0eXBlIjogIkZlYXR1cmVDb2xsZWN0aW9uIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICkuYWRkVG8obWFwX2U0NGM2YmUxNTNjZjQxMjFhNmUwNWM0ZTBhODcyNWU0KTsKICAgICAgICBnZW9fanNvbl9hNTFkZDYyMWFmMWI0MzMyYjE5ZWE5OWEyNDUwMDA5ZC5zZXRTdHlsZShmdW5jdGlvbihmZWF0dXJlKSB7cmV0dXJuIGZlYXR1cmUucHJvcGVydGllcy5zdHlsZTt9KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWJkNTdkYzVhNGZhNGM2MDhiYzY4ZDJjZWYzZDRiMTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCcKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83NjAzMWNmM2VhZjQ0YmU2OWMxM2Q5NGMxYzY2NTg1MiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzYwMzFjZjNlYWY0NGJlNjljMTNkOTRjMWM2NjU4NTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlN0YXRlbiBJc2xhbmQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzViZDU3ZGM1YTRmYTRjNjA4YmM2OGQyY2VmM2Q0YjEyLnNldENvbnRlbnQoaHRtbF83NjAzMWNmM2VhZjQ0YmU2OWMxM2Q5NGMxYzY2NTg1Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgZ2VvX2pzb25fYTUxZGQ2MjFhZjFiNDMzMmIxOWVhOTlhMjQ1MDAwOWQuYmluZFBvcHVwKHBvcHVwXzViZDU3ZGM1YTRmYTRjNjA4YmM2OGQyY2VmM2Q0YjEyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIAogICAgICAgIHZhciBnZW9fanNvbl81OGI2NGMyMjdmNzI0OGYxYjk3Y2U2MDRmNDkwODhhNSA9IEwuZ2VvSnNvbigKICAgICAgICAgICAgeyJiYm94IjogWy03My45NjI2MDgxOTc1MDgzMywgNDAuNTQxODIwMDg3MTU1MTgsIC03My43MDAwMjAyMDUwMzI5MSwgNDAuODAxMDExNDY3ODE4OThdLCAiZmVhdHVyZXMiOiBbeyJiYm94IjogWy03My45NjI2MDgxOTc1MDgzMywgNDAuNTQxODIwMDg3MTU1MTgsIC03My43MDAwMjAyMDUwMzI5MSwgNDAuODAxMDExNDY3ODE4OThdLCAiZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1tbWy03My44MzY2ODI3NDEwNjcwNywgNDAuNTk0OTQ2Njk3MDE1ODJdLCBbLTczLjgzMjU3NDk4MTA2Mzc0LCA0MC41OTIxMTgyMDkxMTM5ODRdLCBbLTczLjgzNDIyNzc3MDY3MzI3LCA0MC41OTEzNzM4MTM4MjI1OV0sIFstNzMuODMyNTM1Njk0ODUwMzksIDQwLjU5MDIxODkzNTc5ODM0XSwgWy03My44MzQ5NTQyMjc2NzcwNCwgNDAuNTg5NzI4MTU1NjE3OTZdLCBbLTczLjgzMzQ3ODY2NjQ1MzUyLCA0MC41ODkzNjg3NDg3MTA4OV0sIFstNzMuODM3MTk1NDExMzU4NiwgNDAuNTg5Njk5MTE3MzYyOTVdLCBbLTczLjgzOTg5MDcwMTkwOTI0LCA0MC41OTI4MDAyMTE0OTM4MV0sIFstNzMuODQzODU4OTQwODM5NDQsIDQwLjU5MzQyNTMxMTk2MDYxNV0sIFstNzMuODM5MDI5NjQyNDgwOTEsIDQwLjU5NjI1MzQ4NDc0ODY1XSwgWy03My44MzY2ODI3NDEwNjcwNywgNDAuNTk0OTQ2Njk3MDE1ODJdXV0sIFtbWy03My44MDk5NzA1OTQwNjA2MiwgNDAuNjAwMDY3NTM3MzgwMTVdLCBbLTczLjgxMjIyMDczMjg3NzYyLCA0MC41OTg1NTM5MDg0Nzc3MjZdLCBbLTczLjgxNTAxNDcxNTY4NDMsIDQwLjYwMjA1NjI5MTU2MzU2NF0sIFstNzMuODE0ODAxMTc3NDk1ODcsIDQwLjYwNDA4MDM0MzMzMzQzNl0sIFstNzMuODEwMTY5NTg4MTk1OTIsIDQwLjYwMjc5OTc2MzA0MjM4NF0sIFstNzMuODA5OTcwNTk0MDYwNjIsIDQwLjYwMDA2NzUzNzM4MDE1XV1dLCBbW1stNzMuODAwMzE4MDc3Mjk5MzEsIDQwLjYwNzA2NDQwMTg0NDg5XSwgWy03My43OTc5MjczNjQ5ODcyNiwgNDAuNjA2NTc5NDA1Mzg4MTddLCBbLTczLjgwMDEwOTI4MDc5MDAyLCA0MC42MDUzMTg4NjYzMjEwNTZdLCBbLTczLjc5NzgxMTQyMjA2MzE5LCA0MC42MDUxNTk5MjAzMjk1Ml0sIFstNzMuNzk4MDM3MzUzNjQ5MzUsIDQwLjYwNDgzNzAzNzM5ODU5XSwgWy03My43OTg3Njg1OTE4MTA4MSwgNDAuNjA1MDE1OTY5MTQ5MDg2XSwgWy03My43OTk5Mzc5NDYwNzQ4LCA0MC42MDQ2MTAwMzc5MDc4OV0sIFstNzMuODAwMjA1NTkxNDYyMjMsIDQwLjYwNDgzNDYyOTgwNzIyXSwgWy03My44MDA0ODYzMjAyMzUxNCwgNDAuNjA0NzYyODE4MjgwODRdLCBbLTczLjgwMDA0NjUwMTYyNzc2LCA0MC42MDQ1NjE2ODIzMDAzNF0sIFstNzMuNzk3OTAwODM3OTEwOTcsIDQwLjYwNDcyMDA4NTY1MjddLCBbLTczLjc5NzY2MzI2MDI5NzEzLCA0MC42MDUzMDgzODg5MjUxNzRdLCBbLTczLjc5ODIxNTYxOTkyNzQsIDQwLjYwNTkzNjI5NzI0MzNdLCBbLTczLjc5NzY2MTQzNDIyMzU3LCA0MC42MDYzNTc3NTU5MDU2MDZdLCBbLTczLjc5NjExNDUyMjg4Mjk5LCA0MC42MDQ2OTM5NjMyMDIzNl0sIFstNzMuODAzODExODMyMzQyMzUsIDQwLjYwNDM2MDk5NzQxNjRdLCBbLTczLjgwMzE0MzAyMDMzMTgyLCA0MC42MDYzNjY5MzQ5MzI3Nl0sIFstNzMuODAwMzM4NjM5MjQ1NjIsIDQwLjYwNjI3ODgxNTY5NjY4XSwgWy03My44MDAzMTgwNzcyOTkzMSwgNDAuNjA3MDY0NDAxODQ0ODldXV0sIFtbWy03My44MjcxODI4MjEwNzA1NSwgNDAuNjA3OTE5Nzc4MDkxMjFdLCBbLTczLjgyNTkwMDkyNzIwNzcxLCA0MC42MDY0NjU5MzA2NDk0M10sIFstNzMuODI4NjE2NzE0NTc2NjMsIDQwLjYwNTgzODQ4NDEzNzU2NF0sIFstNzMuODI4MTUwODUxOTEyMTgsIDQwLjYwNzk1MDI4OTgzMjk1XSwgWy03My44MjcxODI4MjEwNzA1NSwgNDAuNjA3OTE5Nzc4MDkxMjFdXV0sIFtbWy03My43OTY2NTY5OTY1OTAyOSwgNDAuNjA4OTYwOTE1MDcxMjddLCBbLTczLjc5NTUxNjk0MzY3NTYsIDQwLjYwNzM1NDk2Mjc5ODA4NF0sIFstNzMuNzk1Mjc4MTQwMzg0MTEsIDQwLjYwNTgxNDMyMTUzMzddLCBbLTczLjc5NTcyNjk4OTU0MTcyLCA0MC42MDUyMzA2MTM3NDkxNl0sIFstNzMuNzk1NzAxNDE3NjQ1NiwgNDAuNjA2NDYwNTI1NjI0MzY0XSwgWy03My44MDA1MjYxNzY1NDIwOSwgNDAuNjA3MjI2MzM4NjUwNTg0XSwgWy03My44MDQwMTQ5MzMzNzQ1NywgNDAuNjA2MTMxNTAwMTc0ODA0XSwgWy03My44MDA5OTQyMTIzMDU2OCwgNDAuNjA4NjcyMDk3OTEwNTg1XSwgWy03My43OTY2NTY5OTY1OTAyOSwgNDAuNjA4OTYwOTE1MDcxMjddXV0sIFtbWy03My44MzAyNjI5OTgxNTU4MiwgNDAuNjA4NTQ5ODQyODI0MDc1XSwgWy03My44MzEyNTg3ODkxMTY2NywgNDAuNjA1OTUzMTkwMjA4NTk1XSwgWy03My44MzU4NzYwMTYyMzE2OCwgNDAuNjA1NjM2OTA3MDQyOTNdLCBbLTczLjgzNDI4MzQyNjIwMDEsIDQwLjYwOTE4NTY4MTg1M10sIFstNzMuODMwMjYyOTk4MTU1ODIsIDQwLjYwODU0OTg0MjgyNDA3NV1dXSwgW1tbLTczLjgyNjA3NDcyNjA0NTQ4LCA0MC42MDg0Mzc3OTk1NDYwNV0sIFstNzMuODI3NzExMDQyMzU5OTQsIDQwLjYwODM5ODY2ODEzMDY1NF0sIFstNzMuODI4MDUwNzcyNjAwNiwgNDAuNjEwMDQ2Mjk2ODY1MjhdLCBbLTczLjgyNjg4MzI2NDE0ODExLCA0MC42MDk1OTY2NzgwNjkzOV0sIFstNzMuODI2MDc0NzI2MDQ1NDgsIDQwLjYwODQzNzc5OTU0NjA1XV1dLCBbW1stNzMuNzY2NjkxMzk3NzExNzgsIDQwLjYxNDI1NDY1NTQ1MDAyNl0sIFstNzMuNzY1MDU5NjE2NzkxNzMsIDQwLjYxMjAzNTIzMDYxMDQ0XSwgWy03My43NjAyMzYzNTc1Njk3NywgNDAuNjEwODIwODY0OTUwMjZdLCBbLTczLjc2MTc4MjQyOTYwNjA0LCA0MC42MDkxNTE2NzAwNTQ0Nl0sIFstNzMuNzYxNTUwNTE5MDU4OTMsIDQwLjYwOTAzMTM2NTgwMDc3NF0sIFstNzMuNzU5OTg0NDY5NzQ4NDMsIDQwLjYxMDg3OTM3Nzg0NjcxNV0sIFstNzMuNzU1NjA2ODQ3MjYxNSwgNDAuNjEwMDc3MzY1MjI2OV0sIFstNzMuNzQ1NzYxNTAxNzg2NzksIDQwLjYxMTk5MTY1NDc0ODcxXSwgWy03My43NDMzOTczMTU4ODA4NiwgNDAuNjA3NDcyMTcxMDY4MDddLCBbLTczLjczODE1MTQzMTI0NjI0LCA0MC42MDI3MTA0NDAxNjY3N10sIFstNzMuNzM4MDc4OTA0MzU1MTUsIDQwLjU5NzU2NTc1NjE5MTAzXSwgWy03My43NDE4MzA4MzUzMTIxNywgNDAuNTk2Njk1NTUxNDU2NzRdLCBbLTczLjczODA4OTYzOTU1OTA4LCA0MC41OTczNzg5ODE0MzkwNjRdLCBbLTczLjczNzYzNjc5Mzc5NTY3LCA0MC41OTQ0MTUzOTk2NzYwOV0sIFstNzMuNzQ2NjI5MTc4MTMxODgsIDQwLjU5NDMwMTQ5MzU1OTE5XSwgWy03My43NTM1NDI0MTk0NDQzNywgNDAuNTkwOTQ1Mjg3NzUxNjRdLCBbLTczLjc3NTgzNjg4NTk1MjY3LCA0MC41OTAzMjQ1OTg3NTc2OV0sIFstNzMuODEzNTI0NDg3Mjc1NTksIDQwLjU4MzQ3MzE0OTA0NjddLCBbLTczLjgzMzg2OTIzMTcyMTgyLCA0MC41Nzc2NDk4OTc2MDg5MTRdLCBbLTczLjg3MDI3NTg4NDY0Njk5LCA0MC41NjQxNzQ2NTM1OTczNV0sIFstNzMuODk0OTE4MTcyNjYzMjQsIDQwLjU1NzA3ODc5NjI5ODI2XSwgWy03My45MDY5MTM5MTAzMzIzOCwgNDAuNTU1NjAzNTcyMjMwNDNdLCBbLTczLjk0MDczNjgxNjY1NDI3LCA0MC41NDE4MjAwODcxNTUxOF0sIFstNzMuOTM5MjU0MDk3NTg1NTUsIDQwLjU1NDk4MDExMDU1MTA3XSwgWy03My45MjYxNTcyMzI3NTQyLCA0MC41NjE1NTI2MDk3MjMwN10sIFstNzMuOTE3NjYwODE5MDAwODYsIDQwLjU2MjgyNjE0OTY4NjQzXSwgWy03My45MTE5NzAyNDc1MjUwOSwgNDAuNTY1ODY5NDE3NTMyNDZdLCBbLTczLjkwNjY0NzI0MTIxMjg0LCA0MC41NjI3ODU5MTM4Mzc0OV0sIFstNzMuOTAxNjExMTgxNjc3MjcsIDQwLjU2Mjc1MTQ0OTg4NDI0Nl0sIFstNzMuODkyNjEwMTM0NDU2MiwgNDAuNTY4NTg3MjQ3Mjg2NjZdLCBbLTczLjg3NzgwODA4OTk1NzM4LCA0MC41Njg4MDA2MzAwNjMwNjZdLCBbLTczLjg1MDQ0Mzg1MTQ5MTk1LCA0MC41ODIxMzAyNDM1ODEzNV0sIFstNzMuODM5Mjk3MzcyNjY5NzUsIDQwLjU4MTg2NDAxMzQ5NDAxXSwgWy03My44MjQ4MTMzMzkwNzEyMSwgNDAuNTg3MTUxMzIyMDM1OTVdLCBbLTczLjgyMTQ1OTcxOTkxNzczLCA0MC41ODY3Njk5MjQ5MjEyMzVdLCBbLTczLjgwOTYxMTk2Mzc4ODU4LCA0MC41OTM1NzY5ODQyNjM2OF0sIFstNzMuODA1NzI3NzAzOTMwMTIsIDQwLjU5MDc1ODczODI2NDQzXSwgWy03My44MDQxNjU2OTEwMzAzOSwgNDAuNTkxODU0NzA5ODMyNzddLCBbLTczLjgwNzk3Njg3NTk4MzAzLCA0MC41OTQxNjE0MTU5NDgxM10sIFstNzMuODA2MDQxNDk4MDczODcsIDQwLjU5NTU1NDU1NTIxMzUzXSwgWy03My44MDI0Mzg0NjI5MDMxMSwgNDAuNTkyNjQwMDYzODM1MDg0XSwgWy03My44MDIzNDUxMzg0NTY2MywgNDAuNTk0NDk1OTc1MjU2ODc2XSwgWy03My44MDM0NDAxNzA0MTQ1MywgNDAuNTk0NDM0MjA5MTc2ODFdLCBbLTczLjgwMzIxNDk0MjUxMjU3LCA0MC41OTUxNDU2NDg0NTA1OF0sIFstNzMuODAzODk1MDcwMDY3MzcsIDQwLjU5NDk5MDg3NTM2NzIxXSwgWy03My44MDMzMTQ1MzcyOTA2OSwgNDAuNTk1MTc5NTYxOTM5NDQ2XSwgWy03My44MDM2ODQ2ODY5NTcyMywgNDAuNTk1MTk3NzkwMTgzODJdLCBbLTczLjgwNDg2NDYyNjQ2OTMyLCA0MC41OTY3MzM2MjgzNTE0NDRdLCBbLTczLjgwNTEzNDA2MjUyNzYsIDQwLjU5NjYwNzU4ODk3MDUyXSwgWy03My44MDUyNDgzMjUzODI1MiwgNDAuNTk2ODk1MDMyNjEzNl0sIFstNzMuODAyOTc5NDMzMjU3NDgsIDQwLjU5ODg0NDMwNDU1Mjk2XSwgWy03My43OTIzMzI1NjQ0OTUxNCwgNDAuNTk5OTU0MzkxNDI1NzZdLCBbLTczLjc4NjM1MzMyODExODI0LCA0MC42MDMxOTQ2NTkwMzg0Ml0sIFstNzMuNzkwMzQwMDY1NTA5ODUsIDQwLjU5OTE5MTY3NjM2MDA3XSwgWy03My43OTEwMzYxNzQ5MjM5NiwgNDAuNTk1NTIyMjQwMTA1N10sIFstNzMuNzg5NzU1MDM0NDc5NDQsIDQwLjU5NDczNzI1MDMwOTI0NF0sIFstNzMuNzg5MDY4MjkxMjE1MDIsIDQwLjU5ODAxOTkyNzM4MjYxXSwgWy03My43ODM1MDU2MDkwNTMxMiwgNDAuNjAyNTYzNDM4NzQyNzJdLCBbLTczLjc4MzY2Njk2MjkyMjQ0LCA0MC42MDUzMjQ0MzY5MzQzXSwgWy03My43Nzg1NjgwNjkzOTk1NCwgNDAuNjA5NjQzNjYzNDI4OTldLCBbLTczLjc3NTM1MTY0NzQ1NzE3LCA0MC42MDk3Mzc0MDY5NjQzXSwgWy03My43NzQyMjIzNDQxMTM5OCwgNDAuNjA4ODkzMjMxNjM1MjM2XSwgWy03My43NzQ2MDI5NDU5OTA3NCwgNDAuNjA3NDE3NjQ4ODgyNTI0XSwgWy03My43NzQ4NDg4NjU0NjQ4LCA0MC42MDgwMjQ4MzMxNTk2N10sIFstNzMuNzc1MjM4NTE5ODYxODMsIDQwLjYwODU1MDk0MzAwMDI0XSwgWy03My43NzYwMDc3MjE1MjgyMiwgNDAuNjA5MTkwNzU0MjQ4MTI1XSwgWy03My43NzQ2ODc5ODk2NDYzOCwgNDAuNjA0MzI0NjQ4Mzg5MThdLCBbLTczLjc3ODE4MDg2OTc4MzA5LCA0MC42MDAzODU1NDEwODU3NjRdLCBbLTczLjc4MTkwNjgxMDA3NjUsIDQwLjU5OTExNDE2NTM0MjI2XSwgWy03My43ODEzMjk3Mzk5ODEyNiwgNDAuNTk3NzUzMDM3NDQ2OTE0XSwgWy03My43ODAwNTQ5MzY5NTU2MiwgNDAuNTk2ODYxMzQ0OTA4ODFdLCBbLTczLjc3NDk3MjA3MzUzNzgxLCA0MC42MDE3NDQ0ODcwOTE5Ml0sIFstNzMuNzczNTg1NDUyMTk1MDksIDQwLjU5ODEyMDQ3MzE3MzQzXSwgWy03My43NjgxMjI4NTM3NjMyNCwgNDAuNTk3ODI0MzU5NDc0NzFdLCBbLTczLjc3MTE2MDUyNDM2MzM3LCA0MC41OTk0MjI0NTIwNzM3NV0sIFstNzMuNzY5MDAwNzgwMzQ5NTYsIDQwLjYwOTM5MTU1Mjk4NDgxXSwgWy03My43NzIyMzQ1MDIzNDUxNywgNDAuNjExNTAxNjc2NzUwMjY1XSwgWy03My43NzI5NjI2ODY4NjU0OCwgNDAuNjEwMTUyNzYyOTQ1N10sIFstNzMuNzc0MTcxODQ2Nzk3MDMsIDQwLjYxMTgyOTY2OTk0NjNdLCBbLTczLjc3MzM4NTk3OTcxODI0LCA0MC42MTM2NzUwNjYzMTg0NjRdLCBbLTczLjc2NjY5MTM5NzcxMTc4LCA0MC42MTQyNTQ2NTU0NTAwMjZdXV0sIFtbWy03My43ODQ3ODU0NzQ4NjQ0OSwgNDAuNjE3OTgwNzIxODM1NDQ0XSwgWy03My43ODA5MDYyMTYyMTY2NCwgNDAuNjEzNjAzNjc2NjE4N10sIFstNzMuNzkxNDc0MTYyMzA5NSwgNDAuNjA3NjU1MDU4MzI1MTNdLCBbLTczLjc5MTkwNTkyMDA0NDQ4LCA0MC42MDk4NzQxMjc3ODI0N10sIFstNzMuNzg5NTM3OTA3Njk4NDksIDQwLjYxMDAxNzc3OTc0Mjc3XSwgWy03My43ODk1OTkzMjI1OTcyNSwgNDAuNjEyNDkxNDg5MzcyMjI1XSwgWy03My43ODU0OTg5ODI4OTU0OCwgNDAuNjE0MDU5NDUwMDY1Nzk1XSwgWy03My43ODUyMTU0MzA3NjY3NSwgNDAuNjIwMDYzNDkzNzQ0NDA0XSwgWy03My43ODQ3ODU0NzQ4NjQ0OSwgNDAuNjE3OTgwNzIxODM1NDQ0XV1dLCBbW1stNzMuNzY2NzA4Mjc3ODEyNDMsIDQwLjYxNDkxMDg2NjE4NTUxXSwgWy03My43NjgyNTI4ODAwMzM5NCwgNDAuNjE0ODc3NzI1MTY5MzZdLCBbLTczLjc3Mzk3NjkyMDE4ODMsIDQwLjYxNjAwMzU3NTY3MTQ1Nl0sIFstNzMuNzY4NzM0NTQ2MDc5NzgsIDQwLjYyMDkwMTEwNDI2NjE4XSwgWy03My43Njc0NTkyNjk1MDU0NCwgNDAuNjIwNTExMzIyMDYyNTVdLCBbLTczLjc2NjcwODI3NzgxMjQzLCA0MC42MTQ5MTA4NjYxODU1MV1dXSwgW1tbLTczLjgzMTkwOTk2MTM0ODA3LCA0MC42MjQxNzU3MjI1OTA1NV0sIFstNzMuODMzMDk3MDUzMzUzOTQsIDQwLjYyMjQxNDc0NTgzNTc3Nl0sIFstNzMuODMzMTA4MjIwOTAxMzIsIDQwLjYyMTY4MDg4ODU3NTIzNF0sIFstNzMuODMzNjgyMTQ5NTI1OSwgNDAuNjIxMzgxMzA1Njg2NDA1XSwgWy03My44MzM1NTkyMzg4MDQ2LCA0MC42MjM5MzYwMzQ0OTk5MzRdLCBbLTczLjgzMTkwOTk2MTM0ODA3LCA0MC42MjQxNzU3MjI1OTA1NV1dXSwgW1tbLTczLjc5NzgzNTMzMzk4NTE4LCA0MC42Mjc0MDg3MTY1NzE1XSwgWy03My43OTU2NjI1NjcyNjA5NiwgNDAuNjI2MTE0MDA0MzI3NzQ2XSwgWy03My43OTkyMTQ5MzQyNzc2OSwgNDAuNjI0MDg0NzEyOTg4NDZdLCBbLTczLjc5MzYyOTI3NDgxMzQ1LCA0MC42MjUxNTY0NzYxOTQ5MV0sIFstNzMuNzk4MDkwOTMxMDcxNzQsIDQwLjYyMzA2Mjk0ODI0NDMxXSwgWy03My43OTk5MjA1NzYzMjcwNSwgNDAuNjE4NTc1MjQwMTY1OTRdLCBbLTczLjgwMTcyNDk4NjQwMTY1LCA0MC42MTk5NjcwMDg3MzE3MV0sIFstNzMuODAxMjgwNDk1MDQwOTMsIDQwLjYxNTg3OTgzOTc0NzVdLCBbLTczLjgwMjcwMzQzODY3ODEyLCA0MC42MTM1ODA2NTIzMjE3MTZdLCBbLTczLjgwNTA4OTA2MDEyMjk4LCA0MC42MTM0MzI1NjA0MTk0N10sIFstNzMuODA0NzY1OTI2MTY1NTcsIDQwLjYxNTgwMDk5MTM3MDg4XSwgWy03My44MDc2NDExNjg5NjExNywgNDAuNjIxMTk5NjU0NjkyMjRdLCBbLTczLjgwNjk4NTAyMzgxMDYxLCA0MC42MjM4NzE5OTg4Mjk5Ml0sIFstNzMuODAwMTExNzcxNDU2NiwgNDAuNjI2OTI3NDQxOTg3MDM2XSwgWy03My44MDA5Mjg0MTU2NTA0NiwgNDAuNjI3NTI0MTA0ODk1NjVdLCBbLTczLjc5NzgzNTMzMzk4NTE4LCA0MC42Mjc0MDg3MTY1NzE1XV1dLCBbW1stNzMuODEzMDcyMzM4OTI2MTgsIDQwLjYyOTI2MTA5OTY0MjY2XSwgWy03My44MTM1MjUwMjEyMjg5MSwgNDAuNjI3MzA2MTcyNjg1ODhdLCBbLTczLjgxMjU4NTU2MDM4MTI4LCA0MC42MjgzNzE5MTYxODM2OF0sIFstNzMuODExMjk0MzIyMDc2NSwgNDAuNjI0NzAzNzc5MDAwMzM1XSwgWy03My44MTA4OTk5MDQ4MTYxNywgNDAuNjE2MjE4NDcxMzQwOTJdLCBbLTczLjgxNjc5MDczNTAyNTYyLCA0MC42MjYzNDg5MTgxMjExM10sIFstNzMuODEzODI4OTk0OTMxNzUsIDQwLjYyNjEzNTA3NzY0NDExNV0sIFstNzMuODE2MjcwMjYwNDM5OTIsIDQwLjYyNzE0NTgwNTkxNzA5NV0sIFstNzMuODE3MzA1NzY5Mjc2NDIsIDQwLjYzMDYyMTk3Mzc5NzgxNV0sIFstNzMuODE1MDY3ODg0NDE0NiwgNDAuNjMxMTY0MDU4NTc3OTZdLCBbLTczLjgxMzA3MjMzODkyNjE4LCA0MC42MjkyNjEwOTk2NDI2Nl1dXSwgW1tbLTczLjgyMzM3NTkyMTI5MzU1LCA0MC42Mzg5ODc2NTU4OTc1NV0sIFstNzMuODIxMDc1MDU1MzMzMjEsIDQwLjYyOTczMzc3NDU2NjJdLCBbLTczLjgxNjExNDgzNDI5NTUsIDQwLjYyNDYwNDY1NTE3Mjk2XSwgWy03My44MTg4OTM4OTA0NzQ2MywgNDAuNjIyNjI5MTU4MDMyNTVdLCBbLTczLjgxNTcxNDY4MDQ0NjI2LCA0MC42MjE0ODk1NTE1MTY5NV0sIFstNzMuODE3Nzc0Mjk4MzQ1MTMsIDQwLjYxNzUwMTEyMTY5NTY2XSwgWy03My44MTY0MzE1MDM3OTU3MSwgNDAuNjE0MjgyMzM0OTI5OTk2XSwgWy03My44MTQwODA2MjQzMjkzLCA0MC42MTQ1NTg0MDkyMzYyNDVdLCBbLTczLjgxNjE1NjI2NjMyNSwgNDAuNjEyOTQyMTE1NTA5NzhdLCBbLTczLjgxNTQwMzY2MTg5ODM0LCA0MC42MTAzODQ4MDIwMTU0NzRdLCBbLTczLjgxNDUwMjYxNTY2NzA4LCA0MC42MTEwNTg0NzM1MDU0MTZdLCBbLTczLjgxNDc2MjU3NjM5NTQyLCA0MC42MDg0NjM4ODAwNTM5MDRdLCBbLTczLjgyMTIwMTM3NTk5MjEyLCA0MC41OTQ3Nzk5MzUwODk0NV0sIFstNzMuODMyNDEyMDk2NjQ5OTIsIDQwLjU5NDYxODQ5MjYyMTA4XSwgWy03My44MzQ4NDY4MjgxMzE4MywgNDAuNTk1NTQzNDM2MTA2ODZdLCBbLTczLjgzMjM5MzY0NDUzNjg2LCA0MC41OTc4MDMzNTMzODIzMjVdLCBbLTczLjgyODA2MTU5Njc1NDI3LCA0MC41OTc2ODA0MDI2NDg3ODRdLCBbLTczLjgyNTk3OTg1OTYyODY5LCA0MC41OTk0NzIwNjczNjMwMjRdLCBbLTczLjgyNDY1NDIwNTk3MzM2LCA0MC41OTgxNDkyNDY3MDMwNV0sIFstNzMuODIzNzY2MTIyODEyNDYsIDQwLjYwMDA0MDA3MDgyMDg1XSwgWy03My44MjE0NjkyOTgzMzgzMywgNDAuNTk5OTkzNzIyMjY3NjddLCBbLTczLjgyNDQ1MjE4MDA4OTUsIDQwLjYwMDc5Njk2MjY4ODQ1Nl0sIFstNzMuODE5NjE3OTUzNjIxNTYsIDQwLjYxMDQ3OTA0MTA2NDI3XSwgWy03My44MjA4Nzg0MTc5MDE0MywgNDAuNjEyMjU3MzQ1ODIwMDddLCBbLTczLjgyMTYxNDYwMDg5MTMyLCA0MC42MDg0ODAzMTkyMjc3Ml0sIFstNzMuODI1NTU3NTg5OTc4ODMsIDQwLjYxNDEzMjEwNDcxMDczXSwgWy03My44MzQwMTg4ODIwMDQ0NiwgNDAuNjE0MzgxMTY2NDIwNThdLCBbLTczLjgzMzcwMTUyMjcyMTI3LCA0MC42MjA5Nzg2MDE4NDY4M10sIFstNzMuODMxNTg3OTg3MTQzMzcsIDQwLjYyMjAzMjgwNzkyNTExNl0sIFstNzMuODMyNjc2NTk3MDYwMzgsIDQwLjYyMTg2MzcyOTQ1NzY0XSwgWy03My44MzI1ODg2ODYxODYyLCA0MC42MjI2ODEzODY1NTg4NzRdLCBbLTczLjgzMDM4NzIzMTI2Njk3LCA0MC42MjIzOTA4NDgxNjAzOF0sIFstNzMuODI5MTg4MDkyMjM1MTQsIDQwLjYyNDIwMDYxMjM1MjkyXSwgWy03My44MzA0MTQzNDM1NDMxMSwgNDAuNjIyNjMyMDczODk0MTRdLCBbLTczLjgzMDQ2MTUxNTc2MjEsIDQwLjYyNDA3MjIyMTAzNDU4XSwgWy03My44MzIxMzQyNzE3MTkxNywgNDAuNjIzMTc2ODI4MjI0NjldLCBbLTczLjgzMDYyNzYxNzgxMjI4LCA0MC42MjYxNzc2MjM2NTMyNl0sIFstNzMuODMyMzAzMDE0OTYwNzYsIDQwLjYyNzA3ODc1ODkxNjM5XSwgWy03My44MzIyODkzNzM1MzQsIDQwLjYyODEzMzcwNzk4NDY0XSwgWy03My44MzE3NzY0NDAzMzY5MiwgNDAuNjI4MTcyMDMwNzMyMTY2XSwgWy03My44MzE1NjY4NjgxMjMsIDQwLjYyODQ3ODcyNTkxNjk4XSwgWy03My44MzE2MTc0NjIyODI5NiwgNDAuNjI4NzUyMzExNjUxNzFdLCBbLTczLjgzMzA0MTAwOTA3NzY1LCA0MC42MjgyNjEyNzEwNjA1MTZdLCBbLTczLjgzMTE0NjUzMjM4NzU4LCA0MC42MzI4NDM5MTI1MzYyOV0sIFstNzMuODMzNDA2MDc5NzkyMiwgNDAuNjM4NTAxMzU1ODk5MDI0XSwgWy03My44MjU5MTY1NzkyNjg5OCwgNDAuNjM1NzQ3NDEyOTY2NjZdLCBbLTczLjgyNDQzMDMyNDk3MDUsIDQwLjYzNjIxNjUyMTA0MDcxNl0sIFstNzMuODI0MTkzMzE5MjEyOTcsIDQwLjYzOTk1NDA3MjE2MzAxNV0sIFstNzMuODIzMzc1OTIxMjkzNTUsIDQwLjYzODk4NzY1NTg5NzU1XV1dLCBbW1stNzMuODU3MjIzMzA5ODQzNjYsIDQwLjY1MDI3ODY3MDU0MTM3XSwgWy03My44NjAwMTMyMjg5MTA5NywgNDAuNjUzOTczNDI1MzU5NDddLCBbLTczLjg2MDk4OTE3MzUzOTEyLCA0MC42NTUyMDk3NjcxMDUxNTZdLCBbLTczLjg1OTc5MjQyNzUwNzM2LCA0MC42NTQ0NzYxNTczNzY5OF0sIFstNzMuODU3MjIzMzA5ODQzNjYsIDQwLjY1MDI3ODY3MDU0MTM3XV1dLCBbW1stNzMuODMwMzI3MjUzMzcwNjQsIDQwLjY1NTEzMjgwNTgwMzI4NF0sIFstNzMuODMwMjY2MDE4NTE0OTMsIDQwLjY1NTQyODY0Njc4NDczNV0sIFstNzMuODI5ODg5MTk4NTYwMTgsIDQwLjY1NTUyMjgyMjU4Mzk5XSwgWy03My44Mjk5NDU1NjQzNTgzOCwgNDAuNjU1NDI0NDk0MzUyODg2XSwgWy03My44MzAzMjcyNTMzNzA2NCwgNDAuNjU1MTMyODA1ODAzMjg0XV1dLCBbW1stNzMuODcyODcxOTU5MDM4NzYsIDQwLjc4NTk3NTAyNzgwNDczXSwgWy03My44NzI4MjgzOTc4MzY5NCwgNDAuNzg1OTU0NDYxNzM4MzNdLCBbLTczLjg3Mjc3NDA1OTQwNTUzLCA0MC43ODU5NDE5MjE0NTg4XSwgWy03My44NzI4MDkyMDAxNjExMSwgNDAuNzg1OTAzMTA5MDk5OTRdLCBbLTczLjg3Mjg3MTk1OTAzODc2LCA0MC43ODU5NzUwMjc4MDQ3M11dXSwgW1tbLTczLjgyMDQ5OTE5OTk1MzEyLCA0MC44MDEwMTE0Njc4MTg5OF0sIFstNzMuODEzNjk5NjM3MjUyNTgsIDQwLjc5NzA3OTQxNTY2NTA5NV0sIFstNzMuODEyMjUzNjU1NjcxODIsIDQwLjc5ODEyNjk0NjgwMTY3XSwgWy03My43OTY0MDk1MzQyNjM0MiwgNDAuNzk1NzI4ODI0MTk5NThdLCBbLTczLjc5NDQzMDg1ODc3NTgzLCA0MC43OTQ4MTI1NDMzNDQwN10sIFstNzMuNzk0OTUwNzcxMDI0NTMsIDQwLjc5MTc3NDIwMDY0MDcxXSwgWy03My43OTI4MDY2OTU4MDQ2LCA0MC43ODg3ODMwNDYyNDYxNV0sIFstNzMuNzgyNTMwODA2NjM1MjQsIDQwLjc5MTI3Njc4OTQzMTkxXSwgWy03My43ODQzNDE1MzA1OTU5NywgNDAuNzkxNzQ5MzUzNzk0ODFdLCBbLTczLjc4MTc0NzA4NzYzMTAzLCA0MC43OTExMzM0MDY2NDQ1MDVdLCBbLTczLjc4MDc5MTgyMDcyNjUyLCA0MC43OTQwMzU5MTk4NjQzNl0sIFstNzMuNzgzMjU4NzYyNTMwMzgsIDQwLjc5NDkyMzkxNDgwMDQ5XSwgWy03My43NzY4NzA1MDQ4OTc1NywgNDAuNzk2NDQ1MjA0MTkyODVdLCBbLTczLjc3MDYzMTI0NTM3NDI5LCA0MC43ODg0NjI5MDYwMzcxNl0sIFstNzMuNzc0MjY4MzYwNTg5NywgNDAuNzg2NzU2NjU4NjU0NzI0XSwgWy03My43NzYzMzcyODgxODcyMiwgNDAuNzg4NDg3MjI1NzUzNzU1XSwgWy03My43NjgyMDA1NTQ2MDAyOCwgNDAuNzc5NDQ0MTc5MTkwOTZdLCBbLTczLjc2NzAyMzkyMzQ2NTA5LCA0MC43ODAwODYyMzQxNTgyOV0sIFstNzMuNzY2Nzc1NzAzNzM5MzYsIDQwLjc3OTgxMjQ1ODY5ODM0NV0sIFstNzMuNzY4MTYxNzMwNTE1ODEsIDQwLjc3OTM5NjgyMTI0MTk4XSwgWy03My43NjUxMDQzNjgyMDIxNiwgNDAuNzczNzk5MDM4NzIzMDZdLCBbLTczLjc0NDY1NzQ4NjQ2ODc0LCA0MC43NTY1NTgxMDQ5NzczXSwgWy03My43NTUwNzIxMDg0OTA0NywgNDAuNzY3NTMzMTA2Nzg3MzI2XSwgWy03My43NTU1NzMzMjY0OTMxNSwgNDAuNzcxNTI5MTI1OTIyNjldLCBbLTczLjc1MzM2NjkxOTk5MzEsIDQwLjc3MzIwNzg0Nzc2MzM5NV0sIFstNzMuNzU1NTE3Mzc1ODE3OTksIDQwLjc3NzcwNDA0ODM2NDE3XSwgWy03My43NTA4MDU5MzYxMzc4NSwgNDAuNzgyODkzMzc4NjY4MDddLCBbLTczLjcwMjczNDk1NzAzNzMyLCA0MC43NTMyNTA1MTY4MDk4Nl0sIFstNzMuNzAxMzQ3MTU5MTY4LCA0MC43NTA3ODA1ODA4NzE2XSwgWy03My43MDAwMjAyMDUwMzI5MSwgNDAuNzM5MjM2NTQxNzMxOTFdLCBbLTczLjcwNzY2MjE3MzA1OTk0LCA0MC43Mjc4MzA5MzQ1MDk0M10sIFstNzMuNzMwMzI2Mjg5NjgwOTYsIDQwLjcyMjE1NzI5Njc4NDhdLCBbLTczLjcyNjg5NDg3NDgxMzI0LCA0MC43MDk5Nzg1NzM2MTkzN10sIFstNzMuNzI1NjMwMDUxMTk5LCA0MC42Nzk1ODc5NTA3ODEzNTRdLCBbLTczLjcyNzU1NjE2MzU2NDQ5LCA0MC42NzQxNjE1ODgxOTE1MjRdLCBbLTczLjcyODMzMDcxODc1OTYxLCA0MC42NjMwNDM5NDM3MzExM10sIFstNzMuNzI1MjI2MDgxMDcwMTYsIDQwLjY1MjAwMTAwMDE0NzQ0XSwgWy03My43NDE0MzcwNjA0MjM0NiwgNDAuNjQ2ODg5MTc4MzIxNDE2XSwgWy03My43NDIyNzM4NzIyNTkyLCA0MC42NDAxMjMzODE0NTE0NDZdLCBbLTczLjczOTQ3MTIxNjI2NzkyLCA0MC42MzU3MDY0MzE4MjkzN10sIFstNzMuNzM5OTU5NTc1NzA1NzcsIDQwLjYzNTE0MzgwOTM3MzI4XSwgWy03My43NDI0NjY0MjYxNTI1OSwgNDAuNjM1MTE5MjI4MjUyMDk0XSwgWy03My43NDA5NjQ4NzY4NjM2NiwgNDAuNjM3MzA0Nzc1MDMwMDddLCBbLTczLjc0Mzk3MTI4NDk2MjM2LCA0MC42Mzc4ODAwMTI2MTQ4MzZdLCBbLTczLjc0MzczNDIxNTA0NjMsIDQwLjYzOTAyMjExNzY2MzkzNF0sIFstNzMuNzQ0Nzk1NTgxNDg1MDYsIDQwLjYzNzA3NTAyOTA3NjExNV0sIFstNzMuNzQ2NzkwNzQ2MzczMDUsIDQwLjYzNjc3ODEzNTU0NjY4NV0sIFstNzMuNzQ1MjcxMzg2NDI5MjcsIDQwLjYzNzkxNTkwMTI0NTMyXSwgWy03My43NDUzMjc3MDMzMzU5NSwgNDAuNjM4MzcyMjExOTY5Nzk1XSwgWy03My43NDcwMjMwMDQzNzQ1LCA0MC42MzY5MDg3ODI4NDMwMl0sIFstNzMuNzQ2MTcwNjE5OTUwMDgsIDQwLjY0MDM5NjY0OTI1OTI4XSwgWy03My43NDcyOTE1Mzg3ODcyNCwgNDAuNjQzMTg2Njg2NDIyMjhdLCBbLTczLjc1NDc1NTkyNTUxOTQ5LCA0MC42NDc4MTIxOTg4OTMzNF0sIFstNzMuNzQ3NDIwOTU4OTk2MjcsIDQwLjY0MTQxMzY0MzY4NDQ3XSwgWy03My43NDg1NTQ3ODM5NDkxMiwgNDAuNjM1NDExNTU5NTc1NjNdLCBbLTczLjc2NTAwODkxNDA0OTM5LCA0MC42Mjk0MTIxODMwNzk2NDRdLCBbLTczLjc3MDc3MDE2NzU0MzUzLCA0MC42MjAwMzExODIzMTAwMTVdLCBbLTczLjc3MDgyMDY5NzA3OTY3LCA0MC42MjMyODI5OTc5NDQ4NTVdLCBbLTczLjc3MTcyNzYwMjg1MTQsIDQwLjYyMzU4NTAyODAzMDMzNF0sIFstNzMuNzcyMDMxMzE0MzEzNzEsIDQwLjYyMjk5MTIxMjkwM10sIFstNzMuNzcyMTg4MjQwMjgwMzMsIDQwLjYyMjk5NTc5Mzc5NTA3XSwgWy03My43NzUxMTg5MTI1NDYwOCwgNDAuNjE5MjMzODQ2OTg0NzldLCBbLTczLjc3NTE4MDQ1OTM1NTYxLCA0MC42MTkyNjQ3MTc4ODQ4MjVdLCBbLTczLjc3MTczODk3NTgxMjQ1LCA0MC42MjM2MDU3MjYwNzM0MV0sIFstNzMuNzc2NTQyMjk4ODc4MzUsIDQwLjYyNzY1MTcyNDcyODkwNl0sIFstNzMuNzc5NDY4OTc2ODc3ODIsIDQwLjYyNzMxNTUwNTYyNF0sIFstNzMuNzg0MTk0ODMyOTc4NzEsIDQwLjYyMDg5MjY2OTkxMDI2XSwgWy03My43ODY3NTYwODEzNTQxMSwgNDAuNjE5NzM5MjA5MjEwNTE1XSwgWy03My43ODU4NTI0NTc4MzQ3MiwgNDAuNjE0NDYxOTg2NTI2NjFdLCBbLTczLjc5MDIwMDc3Njc2MjYyLCA0MC42MTI5MzU1NjY3OTU4N10sIFstNzMuNzkyNzQ5NDg2MjYxNjcsIDQwLjYwODY0NjM2Njg3ODA3XSwgWy03My44MDA4MDEyNTkxOTQ3OCwgNDAuNjExOTMzOTA0NDgxNl0sIFstNzMuNzk0NTY2MzAxOTM4MjUsIDQwLjYyMjYxNTg2NTgyMjgyXSwgWy03My43ODk2Nzg3MDIwNTg5NiwgNDAuNjIyNjE0ODE5MTcyMDRdLCBbLTczLjc4MjY0NTQzNDM1NjEsIDQwLjYzMDI0Nzk2OTA4ODc5XSwgWy03My43ODk0OTY2MzA3MjMyOCwgNDAuNjM0MjY5Nzc5MjAyMDldLCBbLTczLjc5ODExODcyMjI2MjA1LCA0MC42MzEwMzc1MDkyNjExMDVdLCBbLTczLjc5MDgxMTExMjUwNTA1LCA0MC42MzQzMTAzNTU1MTA3Ml0sIFstNzMuODE4MzA2MDc4MTk3MzEsIDQwLjY0NjM4Njk4MzAzNzAxXSwgWy03My44MjEyNDc5NzI3OTE3MiwgNDAuNjQ5MTM4NjE2MDg3NDddLCBbLTczLjgyMzQ4MzgxMTEwNzQ3LCA0MC42NTUzNjk5MTI3MTg2Nl0sIFstNzMuODIyMzM2ODgwNzI4OTQsIDQwLjY1OTM2MzA4NDI2OTc0XSwgWy03My44MTg2OTUzMTU1ODY5MSwgNDAuNjYxMTA1MDUxMDU1MTZdLCBbLTczLjgxMTMwMTE5MDYxNzU4LCA0MC42NjA2MjgwNzM4NjI0MDVdLCBbLTczLjgxODY3MTg0Mzc0MTYxLCA0MC42NjIxMzI3NzY5Mjg2Nl0sIFstNzMuODIzNTIxNTE5NjIwNTQsIDQwLjY2MDA3NTM5MDI1Nzk5NF0sIFstNzMuODI0OTgwNzAzNzg1NDksIDQwLjY1NTQzMTk3MTE4MzY2XSwgWy03My44MjMxMTI5Njk0NTI0MSwgNDAuNjQ4MDAyNjk1NTkyMzZdLCBbLTczLjgyNjE0NDgzMDU5NjYzLCA0MC42NTAwODE4NDA5NDI1Nl0sIFstNzMuODI2MzYxNzQ3MzkzNiwgNDAuNjQ4MzMzNTYwMTc3MzldLCBbLTczLjgyODUyNTIyNzIxMjMxLCA0MC42NDkxMzA5OTkyNzMxNF0sIFstNzMuODMwOTM2NTEzNTM0ODEsIDQwLjY1MTYyNjEyOTI1NTgyNF0sIFstNzMuODMxNjEzMTQ3OTM2OTUsIDQwLjY1Mzc0ODk1MzIzNjE5XSwgWy03My44MjkwMTQxNzU1Nzk3NCwgNDAuNjU2MTA3ODg0NDUyNDVdLCBbLTczLjgzMTcwODE0NDExNTQ3LCA0MC42NTM5MzExNzQyOTY4ODZdLCBbLTczLjgzMjIxNjk4NTE4NTgxLCA0MC42NTQ0NjAzODYyOTI5N10sIFstNzMuODMxNDkzMzAxMDMwMSwgNDAuNjU0OTc5ODIwNTM5NzNdLCBbLTczLjgzMTE2MTAwODA5NjI3LCA0MC42NTU5MTkyMzM3MzcxNl0sIFstNzMuODI5Mzc2MDM0MTA3MTcsIDQwLjY1NjUwNjMzNTIxNTg4XSwgWy03My44Mjg5Njc3ODc0MDI5NiwgNDAuNjU3MjA1MjQ3OTIwMDZdLCBbLTczLjgyOTE3OTE5NzM0NTgsIDQwLjY1Nzc5OTc3ODU0NDI3XSwgWy03My44MzAxMzAyODc0MDM4OSwgNDAuNjU4NDAyNjQzNzIxMTQ2XSwgWy03My44Mjk3MDcwNjgzODkxOCwgNDAuNjU4NTAyNTEzODY0NTI2XSwgWy03My44Mjk1OTk4NjkwMzAzLCA0MC42NTg2NTY4MDY5MTUzNF0sIFstNzMuODMwMTYyNDMyODE3MjYsIDQwLjY1OTgwNDExMDkyNjE5Nl0sIFstNzMuODMwMjQ0MjcwMzkzOTIsIDQwLjY1ODM0OTk2OTM0ODEyXSwgWy03My44MjkwOTQzNDgyNTIwMywgNDAuNjU3MzM0MjE4NjYzMjY2XSwgWy03My44MzEyNzExMjU2ODEyLCA0MC42NTYwMDMyNzE0OTQ2NV0sIFstNzMuODMxODUyMzg0NzkyODQsIDQwLjY1NDg4NTAzODI2Njk1XSwgWy03My44MzI5MDMwOTUyNDU5NywgNDAuNjU3NDgzNzcxNjIzMDRdLCBbLTczLjgzMTk0Mzk0NTc4MjU3LCA0MC42NTYxNzE0MjcyNTM0MjZdLCBbLTczLjgzMjYwMDM2MzcwNjA2LCA0MC42NTc4MjY1OTE2MjcyOF0sIFstNzMuODMxMTI2NjQ0MjE4MzQsIDQwLjY1ODMxODc4NjQ0MV0sIFstNzMuODMzMzg0Mzk0NzI1NDQsIDQwLjY1ODA1MTg1OTIwNzk2XSwgWy03My44MzEwODY4MjkwMTUwMiwgNDAuNjQ5MDkwNzU0NjM3ODVdLCBbLTczLjgzNDM0MjIxNDY3MzAxLCA0MC42NDgwOTk3NjY4NDc5XSwgWy03My44MzU2OTkyNzgzMDY1LCA0MC42NDg2Njg5MTQ3NTk0MV0sIFstNzMuODM4NzM2MDg1NTU5NjIsIDQwLjY2MjQ1NDA2MDAyMTA3XSwgWy03My44Mzk3ODc1MjYxMjkyNywgNDAuNjYwNDg1OTk4MDQ3OTk2XSwgWy03My44MzU5MjMyMDA3MzI4NSwgNDAuNjQ1NDk5NzkwNjc0OTU0XSwgWy03My44NDk1MDY5OTA4NDE3NiwgNDAuNjQ0MTMzNzY1Njc4NzQ1XSwgWy03My44NTI0MTY2ODU1NjA5NywgNDAuNjQ3Mzg4MDk3OTY2MzM1XSwgWy03My44NDkzOTc2NjQwNjMyMywgNDAuNjUxNDM0ODc4OTUwMzVdLCBbLTczLjg1NTkxOTMyOTQ0NzU5LCA0MC42NTEzMDkyNjE2NjYwM10sIFstNzMuODYxMzYzODE5NTAzOTEsIDQwLjY1NjQxNDc1NDE2NTI2XSwgWy03My44NTk4MzM2MzUyMTQ4OCwgNDAuNjU2OTc3MDYzMjIwNDRdLCBbLTczLjg1OTYzNTU4NjY5Mzc2LCA0MC42NTg0NTc3NzIwNTY0M10sIFstNzMuODYxMjQ5NDMzOTgyNTUsIDQwLjY1ODcyMDkxMDA3ODYxNF0sIFstNzMuODU5NzY4Mzk1ODg5MDYsIDQwLjY1ODI4MTkzNjM0NTczXSwgWy03My44NjA4NzU5NzYwNzU4NSwgNDAuNjU2OTA4MTYyMDcwMDVdLCBbLTczLjg2MzE3MDgzMzQwNDA0LCA0MC42NTgyNzY1MTI5NDg4NF0sIFstNzMuODU3NjE1MzcxODU1OCwgNDAuNjYwMTE4OTMzMTUzNzhdLCBbLTczLjg1ODQyOTUwNzkxMzA0LCA0MC42NjM0NTMzNjA5MzEwMl0sIFstNzMuODU1Njg0NjEyMjExNDMsIDQwLjY2Mzg2NzQ5MjM3MjkxXSwgWy03My44NTc2MzMyMzE3NDM3MiwgNDAuNjcxNjU2MTk0MDM4ODRdLCBbLTczLjg2MDM4NTE5ODU0NzI4LCA0MC42NzEyNTE3MTA5ODk2OF0sIFstNzMuODYyMzQ1ODA1MzUwMjMsIDQwLjY3OTE2NDc4NjE0Njg1XSwgWy03My44NjQxMDA5NjY3OTEzNCwgNDAuNjgyMzcyODUwMjkyNjFdLCBbLTczLjg2NjAxOTkzMjIwNzMxLCA0MC42ODE5MTk1ODcwMjc5OF0sIFstNzMuODY4NDI0ODk3Nzg4MTcsIDQwLjY5NDcxODExOTUxNTEzXSwgWy03My44NzQwMjA1MzMwNjc5OCwgNDAuNjk0MTkxMjk0NzE1NTddLCBbLTczLjg4NDUyMjUwOTU3NDI0LCA0MC42ODY2ODQ3NDkwOTU1NV0sIFstNzMuODkyNTIzMTY4OTgyNjYsIDQwLjY4MzQyNDUzMjgwNDYyXSwgWy03My44OTQxNzQ2MzI2NzEsIDQwLjY4NTI4MzI0ODY3MzE3XSwgWy03My44OTY0NjYyNTEyODkyOCwgNDAuNjgyMzM2NDIyNDc1ODg1XSwgWy03My45MDExNjE1NDk5NDM2OCwgNDAuNjg3ODc3OTM1MzU0OTddLCBbLTczLjkwMTIzMjkwNjYwMDA2LCA0MC42OTE0NDIyNzkxNDA3NDVdLCBbLTczLjkwNTc5NTk3MDc1MzEsIDQwLjY5NDEyNzE1NTAxMTUxNV0sIFstNzMuOTA0MjYwMTg0MTE2OSwgNDAuNjk1NzAwMzcxNDQzMTddLCBbLTczLjkxMTgwODIwMDM4Mzg1LCA0MC42OTk5MzgwMDMxMjM4OV0sIFstNzMuOTEwNjc4ODI3Mzc0MjEsIDQwLjcwMTA0NTk2OTA2NDA3Nl0sIFstNzMuOTEyOTA0MDQxMjE4OTQsIDQwLjcwMjM2MTg5MTc5OTIzXSwgWy03My45MTE4MDcxMDAwMzMyOSwgNDAuNzAzNDM0OTUyNTI4Njc0XSwgWy03My45MjE4OTE4NDY5ODY5NCwgNDAuNzA5Mzk2MDk2NzEwNzldLCBbLTczLjkyMDc0ODUzMTE1ODA1LCA0MC43MTA1MzM2NDg5NTg3MV0sIFstNzMuOTI0MTIyNDE1NzU0OTcsIDQwLjcxNTEzODA0ODQ0NTE1NV0sIFstNzMuOTIwNTY5MDU1MzYxMSwgNDAuNzE2MDAzNzA4MzQwNjJdLCBbLTczLjkyMjIzNzYxMTI0MzQsIDQwLjcxNjM4MjQ0MDQ5NDA2Nl0sIFstNzMuOTI1MTU0NDY5MDY0NzgsIDQwLjcyMjMyMDQ2MzY1NzYzXSwgWy03My45MjQ0MjI5ODc1NDg3MiwgNDAuNzIzNTg5OTc1OTg2MTVdLCBbLTczLjkyMDM3MDY0MjM1NjcsIDQwLjcyMzY4MTExMzgyMTA0XSwgWy03My45MjQ5MDMxNjE2NTE4MywgNDAuNzI0NTA2NTc1NjcxNDRdLCBbLTczLjkyOTIzNDg1ODc2MTY2LCA0MC43MjgyNjAxNjU3NjEwNF0sIFstNzMuOTM4MDQ0Nzg1MDcxNjgsIDQwLjczMDUwOTk2Nzg0NjA1XSwgWy03My45NDE2MjQ3MjYzNjQ3NCwgNDAuNzM1ODQxNDQyMzM4Ml0sIFstNzMuOTQ1OTQwOTU5ODcyMTksIDQwLjczNzUwNTA3NjU1MzkzXSwgWy03My45NDE0NjE3MzQ2MzE2NywgNDAuNzM5MjQ4NTgzNjI3MTJdLCBbLTczLjkzODU4Nzg2OTc2Nzg2LCA0MC43NDI5MzA4ODI2ODc0NF0sIFstNzMuOTQwMDE5MjI5NzU2NjYsIDQwLjc0MzIwODI3MjIxMDY4XSwgWy03My45NDI3MDYwODk5MjExMiwgNDAuNzM5MTE1MDYyOTc4NjM0XSwgWy03My45NDcxNTA4NzE4MTE3NiwgNDAuNzM3OTAwMTIzMzQ0NzJdLCBbLTczLjk1Mzc5ODc4ODA4NzE3LCA0MC43Mzk4MTk4NjUyNzE5NTRdLCBbLTczLjk2MjYwODE5NzUwODMzLCA0MC43Mzg3OTU1MzkwNTY1NTRdLCBbLTczLjk1Njc5NDUzMjkwNTEsIDQwLjc0ODgzOTUxNjk1NTU3XSwgWy03My45NTMxODM4MjQ5Mjg1OSwgNDAuNzQ3NzM0ODExOTYwOTNdLCBbLTczLjk1NjIwMTM2ODAxMTU4LCA0MC43NDk2ODU2MzI4MjExNF0sIFstNzMuOTQzNTAyODIwMzI3MzUsIDQwLjc2NDQ5OTA0MDc0MzhdLCBbLTczLjkzNDg5NTMzODk0NTU4LCA0MC43NzAwNDE4NjI4ODk1XSwgWy03My45MzQ0MzUyNTc0MzE3NywgNDAuNzcxNDYyMzYyMzMzMzhdLCBbLTczLjkzNzgxMzM1OTY5NTExLCA0MC43NzM1NjI4OTQ2NDc5MV0sIFstNzMuOTM2MzgwMjI4MTc1NCwgNDAuNzc2OTIxNDU2NTYyNjI2XSwgWy03My45MzM5MDg0MDI0Nzg2NSwgNDAuNzc4MTE3MTI5ODE4NDU1XSwgWy03My45Mjg2MDUxNTAyMzM1MSwgNDAuNzc2NTkyNjc1MTAwOTZdLCBbLTczLjkwOTg1ODYyOTI1NzgsIDQwLjc5MDk0NTQ5Mzc4MTg4XSwgWy03My45MDAzMjYyOTc0MzgyMywgNDAuNzg5MDA3NjYyODI1Njc1XSwgWy03My44OTU5Mjk2Mjk3NTUyNiwgNDAuNzg1NjQ4OTQ0MzEzNzhdLCBbLTczLjg5ODc0ODk3NjM4Mzk4LCA0MC43ODI3ODExNTU3NjYwMjRdLCBbLTczLjkwMTE0NTc3NTUyMTEzLCA0MC43ODI3MTExMDYwOTA1NzRdLCBbLTczLjkwMjU3OTI5NjcyMzQ5LCA0MC43ODAyODkxMjA4MzU1Nl0sIFstNzMuODk0Mzc3Nzc5MzQxMzgsIDQwLjc4NDI0MzIwMzQ4NDE2Nl0sIFstNzMuODk2MDYzNzc3Mzg0MzEsIDQwLjc4MzE1NzIwMTgwNTE4XSwgWy03My44OTUzNDQ0Nzg0MjI5NCwgNDAuNzgxNTg1NTY2MzExMjVdLCBbLTczLjg5Mjc0OTE3ODc2NDE1LCA0MC43ODI5NjU3MDY2ODQ3M10sIFstNzMuODkxNjU0NTkxMjM3MjYsIDQwLjc4MjE5NDc4MTUzMDY4NF0sIFstNzMuODkzMDA5ODYxODAxOTMsIDQwLjc4MTc5ODAyMzU2MjE3NV0sIFstNzMuODkxMTk1ODk3MDQ0MDEsIDQwLjc3ODU2MzI4Nzg4NzA2XSwgWy03My44OTI1MjI1OTg2MDg5LCA0MC43Nzc0MDQ2Mjg5ODkwNF0sIFstNzMuODkxODMyNDQ5MDQ1MTQsIDQwLjc3NDg4MDE5OTg4ODczNF0sIFstNzMuODkwMDg3Mjk0MTY4LCA0MC43Nzc3ODQxOTM2MDY4NTVdLCBbLTczLjg4OTQ1NDg2OTAzNzM3LCA0MC43NzM1MzI5NTExMjcxNDRdLCBbLTczLjg4MzkxNjI3OTYzODEsIDQwLjc3NDEzMjYwNjU5MTUzNl0sIFstNzMuODg0ODgxMTM3MzEwNDcsIDQwLjc3OTk4NzE5Njc0MTI3XSwgWy03My44Nzg3MDU2MjUxODg3NCwgNDAuNzgwNTg1OTA5OTUwMDVdLCBbLTczLjg3ODg1ODM3NDg1NTk1LCA0MC43ODIzOTgxNzg2ODExODRdLCBbLTczLjg3OTc0Nzc3ODUzNTg0LCA0MC43ODI4MzY1NjQyMDcwNV0sIFstNzMuODc5NzAxNjM2NzIyNTYsIDQwLjc4Mjg4MjgxODA3MjI2XSwgWy03My44NzUxNTc1NDg5MzM3LCA0MC43ODE1MDk0NDk2NTMyNl0sIFstNzMuODcxMjQ4NTYyNDI1MTUsIDQwLjc4NjAzODE1MTI1NDk4NV0sIFstNzMuODY5NzgwODExOTI2NDIsIDQwLjc4NTMzNzkzMzMyNTgwNl0sIFstNzMuODY4MDk5MTIyNTc4OSwgNDAuNzg3NDU4NjYxODE4Mzg0XSwgWy03My44Njc4ODQwNzQ3MDc2NiwgNDAuNzg3MzYxMDM2Njk0NTZdLCBbLTczLjg2OTg3MDA3NDM0MzQyLCA0MC43ODUwODU5MDcwNjgxNjVdLCBbLTczLjg2ODQ5NzgyOTA2NTc5LCA0MC43ODM2NzA1MTg1MDk1OV0sIFstNzMuODcyNTU3MzI2NzM3MzIsIDQwLjc4MDgyMTEyMTU0MjU1XSwgWy03My44NTUwNTEwNjI3MTgxOSwgNDAuNzcyMTk1Mzg5OTg5MDldLCBbLTczLjg1ODIwNTExMDUwMjEsIDQwLjc3MDMyMzQ1NjQ3NzE2XSwgWy03My44NTYyNDU2NTc0NjE3NCwgNDAuNzY4ODg1NzE0MTk4OThdLCBbLTczLjg2Mjc1NDkwMTk2OTc3LCA0MC43NjY3NjQ1MjQ5MjU3OF0sIFstNzMuODU4ODQzNzE1MDYxNDcsIDQwLjc2MjA1ODc2NzI4MTcxNV0sIFstNzMuODU2OTYzNTU5Mzk4MDUsIDQwLjc2NDA3NDQyNzg2MzA3XSwgWy03My44NTY1ODY3NTM4ODc3NCwgNDAuNzYyNzIyODQwMTE0MjNdLCBbLTczLjg1ODE3NjMxMDcwNTMsIDQwLjc2MjM5NjI5NDIyMzgzNF0sIFstNzMuODU2NjExOTU4MTMzMzEsIDQwLjc2MTY0OTU0Mjc1OTI5XSwgWy03My44NTg1ODUyNjI4NDQ0NCwgNDAuNzYxOTE3MDA4NTk2OV0sIFstNzMuODUwNjkwNTMwNjU0NjIsIDQwLjc1OTQ0ODc5MTA5MDM2NF0sIFstNzMuODQ5ODc0ODQ0OTYxNSwgNDAuNzYxMTAzODEyOTQ4NDA2XSwgWy03My44NTIwNzIwMDE3Nzg1LCA0MC43NjAzOTI4ODQ2NzIwOV0sIFstNzMuODQ5ODExNjI0NzUxNDIsIDQwLjc2MTI3MDk3NDAwODEzNF0sIFstNzMuODQ4NTg4MzQ2MTc2NTMsIDQwLjc2MDE3OTU2MzA4ODIyXSwgWy03My44MzkxMzE4OTI2MzQyMSwgNDAuNzY1OTkxMTA1NTY4MzRdLCBbLTczLjgzOTU5MDcyNjA5ODE3LCA0MC43NjcxMTA4MjQ3MTg5NzZdLCBbLTczLjg0NDQ4ODk1ODg0MjA2LCA0MC43NjU0NTk2MDI1ODM5M10sIFstNzMuODQ3ODA1NzUxMDQ0MjksIDQwLjc2Njc3Mjk0ODE3MTY3XSwgWy03My44NDg2NzE1Mjg2ODg1MSwgNDAuNzcwNzYxNTcyOTAyNDk0XSwgWy03My44NTEzMDEwODM3NDQ3NiwgNDAuNzcxODA2MzYwNzk3NjJdLCBbLTczLjg0ODk3NjE5ODY3MiwgNDAuNzczNTYxNjY3OTU2OTRdLCBbLTczLjg0ODk2ODAyNTQ0Njk2LCA0MC43NzgwMjIyMTI2OTE1Nl0sIFstNzMuODQ5NjM5Njg5MzMwNDYsIDQwLjc3OTQ4MzI3NTE3Njc0XSwgWy03My44NTA5NDcwNTcyNDI1MiwgNDAuNzc5MDY5MTU1NDMwMjVdLCBbLTczLjg1MTQ4NzU1NDgwMzIxLCA0MC43Nzg5OTI5Nzg2MTc1MjRdLCBbLTczLjg0OTgxNzIwMDY2MDA4LCA0MC43Nzk2MzAzNDgwNTQxNV0sIFstNzMuODUyMzU2NjE5MzYyNTQsIDQwLjc3OTE2OTMzMDUyMjMxXSwgWy03My44NDk1NjMyNTIwNzQ2NywgNDAuNzc5ODc5MDgyMTY3MTJdLCBbLTczLjg1MTY5MDI4MDg1NDM0LCA0MC43Nzk4Njc1MDg0NzgxNl0sIFstNzMuODQ5NDkzODEyMDgzMTUsIDQwLjc4MDA2NTgyODExNDE5XSwgWy03My44NTA5MzY0NjM5NjU0LCA0MC43ODExMTk1NzUxNTYwMV0sIFstNzMuODQ5MjQ2NzU5ODAyNDcsIDQwLjc4MjI1NjM2NTMyMTYzNl0sIFstNzMuODU1MjgyNDI3ODY1OTMsIDQwLjc4MTk3NTM4NDM0OTkwNl0sIFstNzMuODU5NTI5MDkxOTcyNDUsIDQwLjc4NTUzMDU2MDUzNDAzXSwgWy03My44NTI4NDIzMDEzMzg3MSwgNDAuNzg4MjExMzcxNzM5OTI2XSwgWy03My44NTQ4MDA4MzYyNDEyMSwgNDAuNzg4NjA3NjI2NTc1NjldLCBbLTczLjg1MjY1MzU5MDY0NzE4LCA0MC43OTExMjIzMTc1OTEwNzVdLCBbLTczLjg1MzY4NTYxODQ4NTgxLCA0MC43OTQwMTgzOTQwODE3Nl0sIFstNzMuODUyNjMwOTgyNTYyNDUsIDQwLjc5NDk0NDg1NDI0NDddLCBbLTczLjg0OTA2MTYwODM1MDg4LCA0MC43OTMzNjI2MTAyOTg0OF0sIFstNzMuODQ4NzA5OTkzNjEzNDEsIDQwLjc5NTQxNjQ4MTI4OTg0XSwgWy03My44NDM1NDY2ODkzODk5MSwgNDAuNzk0OTEzOTQ0MDEwNDhdLCBbLTczLjg0MjI1OTU5MzY4MzQ3LCA0MC43OTU1ODQ5Njg5MzczMDVdLCBbLTczLjg0Mjg2Njc1MjU5MzcsIDQwLjc5NjkyMjIyOTA3MTldLCBbLTczLjg0MTU4NzIxMTc0NDExLCA0MC43OTU0MDEwNjkyMjExODVdLCBbLTczLjg0MDQxNTE3OTc1ODM3LCA0MC43OTc2Nzg0MzcyNTg3MjVdLCBbLTczLjgzNzg5OTY3NTAzNjA0LCA0MC43OTg1MDg5NzExODY2MV0sIFstNzMuODQwMjU4NjA4MDkxMzcsIDQwLjc5NzU4ODg1ODQzMjEzNV0sIFstNzMuODM3MDY0OTg4ODAyNzEsIDQwLjc5Mzg1MTA5ODQyNjE5NV0sIFstNzMuODM3MjgwNDkxMzQ3ODUsIDQwLjc4OTAwOTg3MjQyMTk5XSwgWy03My44MzI5MjkzNzE3MTQyMSwgNDAuNzg4NTE4MTE0MjAzMTRdLCBbLTczLjgzMTM3MzUzMzgyNzkxLCA0MC43OTEzNjg5NDQ2NjE5OF0sIFstNzMuODI3OTI5MzIyMjc0NiwgNDAuNzkyODc4NTA3NDU1MTJdLCBbLTczLjgyOTQ1OTkxNTM0MzY1LCA0MC43OTY4MjMzNjc1OTE0N10sIFstNzMuODI1MDY0OTY2OTk0MzgsIDQwLjc5NzM3NTc3NjU2ODE5XSwgWy03My44MjA0OTkxOTk5NTMxMiwgNDAuODAxMDExNDY3ODE4OThdXV1dLCAidHlwZSI6ICJNdWx0aVBvbHlnb24ifSwgImlkIjogIjAiLCAicHJvcGVydGllcyI6IHsiaGlnaGxpZ2h0Ijoge30sICJzdHlsZSI6IHsiZmlsbENvbG9yIjogIm9yYW5nZSJ9fSwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifQogICAgICAgICAgICAKICAgICAgICAgICAgKS5hZGRUbyhtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQpOwogICAgICAgIGdlb19qc29uXzU4YjY0YzIyN2Y3MjQ4ZjFiOTdjZTYwNGY0OTA4OGE1LnNldFN0eWxlKGZ1bmN0aW9uKGZlYXR1cmUpIHtyZXR1cm4gZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlO30pOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNWM3ZjBjMzkwNmI0NGY4YjY4MGFlYmUyZmM4MmNjZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg0ZDg0NGVkZTRmNjQ4OGZiMjQ1OGNhZDlhNDNhZjJjID0gJCgnPGRpdiBpZD0iaHRtbF84NGQ4NDRlZGU0ZjY0ODhmYjI0NThjYWQ5YTQzYWYyYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UXVlZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNWM3ZjBjMzkwNmI0NGY4YjY4MGFlYmUyZmM4MmNjZi5zZXRDb250ZW50KGh0bWxfODRkODQ0ZWRlNGY2NDg4ZmIyNDU4Y2FkOWE0M2FmMmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGdlb19qc29uXzU4YjY0YzIyN2Y3MjQ4ZjFiOTdjZTYwNGY0OTA4OGE1LmJpbmRQb3B1cChwb3B1cF9hNWM3ZjBjMzkwNmI0NGY4YjY4MGFlYmUyZmM4MmNjZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAKICAgICAgICB2YXIgZ2VvX2pzb25fYTExYTNlYzZkYTYzNGEzYjhmMGY5MGMxMzc1ZDI5MzQgPSBMLmdlb0pzb24oCiAgICAgICAgICAgIHsiYmJveCI6IFstNzQuMDQxNjE3NDA3NzM2MDEsIDQwLjU2OTUyOTk5NDQ4NjcyLCAtNzMuODMzNTU5MjM4ODA0NiwgNDAuNzM5MTE0NzcyNTIyNDhdLCAiZmVhdHVyZXMiOiBbeyJiYm94IjogWy03NC4wNDE2MTc0MDc3MzYwMSwgNDAuNTY5NTI5OTk0NDg2NzIsIC03My44MzM1NTkyMzg4MDQ2LCA0MC43MzkxMTQ3NzI1MjI0OF0sICJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbW1tbLTczLjg2NzA2MTQ5NDcyMTE4LCA0MC41ODIwODc5NzY3OTMzOTZdLCBbLTczLjg3MDAwMzEzNjQyOTE2LCA0MC41ODI2MzY2MTQ4MTU4Nl0sIFstNzMuODcxMTU5MjI2NzU0MzIsIDQwLjU4Njg3Mzg4Nzk2NzI1XSwgWy03My44NjYzNTA1MjE2NDA5NywgNDAuNTkxODkyNjc2NTY0NzFdLCBbLTczLjg2MzI3MjczNDkyODI5LCA0MC41OTA5MDgwNzU2OTI1Nl0sIFstNzMuODYxMjUyOTkzNzczNzUsIDQwLjU4Nzk4ODA4NTkyMTE2XSwgWy03My44NjMyNzQ3MTA3MTk1OCwgNDAuNTgzODc2ODQ4NTMxNzhdLCBbLTczLjg2NzA2MTQ5NDcyMTE4LCA0MC41ODIwODc5NzY3OTMzOTZdXV0sIFtbWy03My44Njk1MjcwNzU0ODkzMiwgNDAuNTk4NzEzNzUwMzU0NDM1XSwgWy03My44Njk2NzA3MDcxMTQ5OSwgNDAuNTk2Njg4NTYzNjIyMDc0XSwgWy03My44NzAyMDg5OTgzNjIyOSwgNDAuNTk2OTU0MjMyNzg5MzE1XSwgWy03My44Njk1MjcwNzU0ODkzMiwgNDAuNTk4NzEzNzUwMzU0NDM1XV1dLCBbW1stNzMuOTE5OTAwNjQzMzU5NzcsIDQwLjU5OTYwMDUyMjU5Mjc2Nl0sIFstNzMuOTE2MjYzOTMxMDgzNDIsIDQwLjU5ODE2MTEzNzMxMjcyXSwgWy03My45MTI5NTEyMjYzMTk4MiwgNDAuNTkyMDU0MzI5OTY5NTE0XSwgWy03My45MTUyNDQ3ODMwNDY4NCwgNDAuNTkxNTg3NTA4MTc4NTA2XSwgWy03My45MjE4MjI3NzczMTkwNCwgNDAuNTk3MzMyOTMyODcyNDhdLCBbLTczLjkyMjEzMDQ5MzUzNCwgNDAuNTk4NjYyNTk2MTc3MjldLCBbLTczLjkxOTkwMDY0MzM1OTc3LCA0MC41OTk2MDA1MjI1OTI3NjZdXV0sIFtbWy03My44NzAxOTQ5MTQ4OTk1LCA0MC41OTg5OTY0MDU5MDE4ODZdLCBbLTczLjg3MTA4MTQxODExNDgxLCA0MC41OTg5MDExNDc0NzAwOTRdLCBbLTczLjg3MDQ5NDExOTE0Nzc2LCA0MC42MDI2MDQ0NDYyMDQ1NV0sIFstNzMuODcwMjYyODA1NjQ5MTgsIDQwLjYwMTY4MTIyMjI1ODU2XSwgWy03My44NzAxOTQ5MTQ4OTk1LCA0MC41OTg5OTY0MDU5MDE4ODZdXV0sIFtbWy03My44NTI0MzMzNTgwNzAxNywgNDAuNTk3MzMzMzk3Nzk1MjI1XSwgWy03My44NjA0NDQyMDUzNDA3LCA0MC41OTY0NzE5MDU1OTYzMjRdLCBbLTczLjg2MzM1OTk5MTQ3NjEzLCA0MC42MDAzMjIyMDI3NzExMjVdLCBbLTczLjg2MTEyODE0MjI0NTQyLCA0MC42MDI1NTAzMzEwNzQyN10sIFstNzMuODU0ODI1OTU3ODI5NzIsIDQwLjYwMTg2NzE5NTM1MzYzXSwgWy03My44NTA3Njc0ODAwMTU1OSwgNDAuNTk4ODM5NDQzODM3MzJdLCBbLTczLjg1MjQzMzM1ODA3MDE3LCA0MC41OTczMzMzOTc3OTUyMjVdXV0sIFtbWy03My44NjcwMjkwNTE4NTU2NywgNDAuNjAzNzQzMzg4ODUzODhdLCBbLTczLjg2NzY4MTk0MTU0MjE2LCA0MC42MDMwNzA3NjY2NzczM10sIFstNzMuODY4MzA4MDg0NjQ2MTYsIDQwLjYwMzEzOTE2MTE0NjE0XSwgWy03My44Njc5MzUwNTM3MjcwNSwgNDAuNjAzOTYxMTM1NDUyOTJdLCBbLTczLjg2NzAyOTA1MTg1NTY3LCA0MC42MDM3NDMzODg4NTM4OF1dXSwgW1tbLTczLjg0NjczNjUxNDcxMTAxLCA0MC42MDQ4NTMwMTQ4NTE2MzVdLCBbLTczLjg0NjA4MDU5MDM3ODg1LCA0MC42MDQ1NDQ1OTM4MzcwMV0sIFstNzMuODQ2NDEzNjgxMDk5MDQsIDQwLjYwNDE4NzQxNjYwNTc0XSwgWy03My44NDU3ODMyMjQ3MjM0OSwgNDAuNjA0ODIxNjE0MzgyMDA0XSwgWy03My44NDQ0NTQ4OTk4MjY4MSwgNDAuNjA0Njg3MzI4OTIyODE1XSwgWy03My44NDU2MjMwMzc5MjM0MywgNDAuNjAzNTE5NDMxNzU2XSwgWy03My44NDc4NjI0ODM3ODYyNiwgNDAuNjA0NzAyNzA2MzI2NzNdLCBbLTczLjg0NjczNjUxNDcxMTAxLCA0MC42MDQ4NTMwMTQ4NTE2MzVdXV0sIFtbWy03My44NDgyNzk4MjY2NzI3LCA0MC42MDU0MzMyNTQ3Mjc2MzZdLCBbLTczLjg0Nzk1Mjc3MTg2NjM3LCA0MC42MDUzNTQ5OTkxMzQzODRdLCBbLTczLjg0NzgzNjgyMjU1ODYyLCA0MC42MDUwODQ5NzA4ODY4NF0sIFstNzMuODQ4MjQ4Njg0MTg4MjMsIDQwLjYwNTE0MjM0ODczODgzXSwgWy03My44NDgyNzk4MjY2NzI3LCA0MC42MDU0MzMyNTQ3Mjc2MzZdXV0sIFtbWy03My44NDg0MDM0MTE4NjYwNywgNDAuNjA1OTIwODI4ODY5NzldLCBbLTczLjg0ODI2MTEwMDEzNjcxLCA0MC42MDU3NzkzNTMwNjgzMTRdLCBbLTczLjg0ODcxOTY0NDQyOTE1LCA0MC42MDU4OTAyNzkyNjEzN10sIFstNzMuODQ4NTQzNDA4NDM3OCwgNDAuNjA1OTYzNTkzNTIwMzhdLCBbLTczLjg0ODQwMzQxMTg2NjA3LCA0MC42MDU5MjA4Mjg4Njk3OV1dXSwgW1tbLTczLjg2NzAyMzk5NDc1MTYyLCA0MC42MDgwNjgxNzg3NjkzOV0sIFstNzMuODY4NzQzMTc1NTkxNzMsIDQwLjYwNzAzNTE3OTI3OTIyXSwgWy03My44Njg2ODQ2ODgyNjc1MiwgNDAuNjA4MjQxMTU4MTgzODJdLCBbLTczLjg2NzAyMzk5NDc1MTYyLCA0MC42MDgwNjgxNzg3NjkzOV1dXSwgW1tbLTczLjgzNDQ2MjY1NjIwMjQ1LCA0MC42MDcxOTI1MzI5NDIzNTZdLCBbLTczLjgzNTg3NjAxNjIzMTY4LCA0MC42MDU2MzY5MDcwNDI5M10sIFstNzMuODM0MjgzNDI2MjAwMSwgNDAuNjA5MTg1NjgxODUzXSwgWy03My44MzQ0NjI2NTYyMDI0NSwgNDAuNjA3MTkyNTMyOTQyMzU2XV1dLCBbW1stNzMuODY5NjY0NDI5NTg1MDEsIDQwLjYwNjU0MDEyMzQxMjkxXSwgWy03My44NzEwOTMzMDc2ODA4MiwgNDAuNjA0Njk0MTczOTk0NjldLCBbLTczLjg3MzAwMTIyNzI0NzY4LCA0MC42MTA1NTU0NTg0NTk4NjRdLCBbLTczLjg3MTAzODcwMTExNzEsIDQwLjYwOTcyMzU4MjUyNjU0XSwgWy03My44Njk2NjQ0Mjk1ODUwMSwgNDAuNjA2NTQwMTIzNDEyOTFdXV0sIFtbWy03My44NTA0NzYyNDk2NjQ0LCA0MC42MTIzNDIyMTkwNTcxNzZdLCBbLTczLjg0OTQyMTQ4ODE5NTU3LCA0MC42MDk4MjIwNjA5MTQzMl0sIFstNzMuODU1MDY2NDI2NDA0MzgsIDQwLjYwNzQ1OTg2OTkzODE1XSwgWy03My44NTY1OTk5OTMxNTI5LCA0MC42MTA4MzQ0NzI5NTQwNDZdLCBbLTczLjg1MTk2MzgxMjE4OTI4LCA0MC42MTAyNDM2NTg2ODg4M10sIFstNzMuODUyNjUzMjk1OTcxOTYsIDQwLjYxMTE3Mzg2OTExMV0sIFstNzMuODUwNDc2MjQ5NjY0NCwgNDAuNjEyMzQyMjE5MDU3MTc2XV1dLCBbW1stNzMuODQ0NzM0OTI2NTI5NiwgNDAuNjEzOTY5MTcxODAxNV0sIFstNzMuODQwNjc0Njg4OTU1MDIsIDQwLjYxMTQ0NjMyMjEzNzA3XSwgWy03My44MzgxNzcwNjA0MzMyMSwgNDAuNjEzMDgwNDQ0NjU3NDJdLCBbLTczLjgzNjIzNjIxMTQ2ODk2LCA0MC42MTIyNzAxMDY0MTMxNTZdLCBbLTczLjgzODg3MDgwNDQ5Mzc0LCA0MC42MDc5MDU3OTkwNDUxNTZdLCBbLTczLjg0MDQ5NjU2ODE1NjA3LCA0MC42MDg1NTU0MTg5MTQxNl0sIFstNzMuODM5MzU5Mjc4NjgyMDIsIDQwLjYwNzYxNDg1MjE2MjUxXSwgWy03My44NDEzNjI3NzYyMzYwNCwgNDAuNjA2Nzk0MDIyMDE0NDM0XSwgWy03My44NDE0ODg3ODg0OTI5MiwgNDAuNjA0NDk4NDY0MDY4NzA1XSwgWy03My44NDQ0MjcyOTQwNjI0LCA0MC42MDQxNTYzNzAzNDUzN10sIFstNzMuODQxOTM2MTc4OTAzNTUsIDQwLjYwNDkyOTk5ODAwNDQ4XSwgWy03My44NDM5MDA1MzIxMjE3OCwgNDAuNjA2NDE2NDY3ODk1MzJdLCBbLTczLjg0NDA2ODg1NDc0NDMxLCA0MC42MDQ1NjExNjM2NzY0N10sIFstNzMuODQ0NTc3MDc4OTE5OTgsIDQwLjYwNjYwMzI1ODg0NzExNl0sIFstNzMuODQ0OTM5MDU5NzA1NiwgNDAuNjA1MDMyNTM0MTY3MDQ0XSwgWy03My44NDc0Njc0MjgzNTE0NiwgNDAuNjA1MDgyNDc4MDkwNTRdLCBbLTczLjg0NTkwOTkyMDkwNzYzLCA0MC42MDYyOTIyOTYyMzI5MTVdLCBbLTczLjg0NjQwMjY0NzI2ODU4LCA0MC42MDczMDE2NTY5MzkxN10sIFstNzMuODQ5NjQ2NzgzNDg3MTcsIDQwLjYwNjA1MDIwMzU1NDM5XSwgWy03My44NDQ4NjIzMzgxMjE0MiwgNDAuNjA4MDg3NzA0Njg5NzFdLCBbLTczLjg0NjI3ODk3MDIyMzcyLCA0MC42MDgyNzg2ODc0NTI2NzVdLCBbLTczLjg0NDczNDkyNjUyOTYsIDQwLjYxMzk2OTE3MTgwMTVdXV0sIFtbWy03My44MzM3MDE1MjI3MjEyNywgNDAuNjIwOTc4NjAxODQ2ODNdLCBbLTczLjgzNDAxODg4MjAwNDQ2LCA0MC42MTQzODExNjY0MjA1OF0sIFstNzMuODM3NzY3MDIxNDMzNjYsIDQwLjYxNTUyMjIzMTQxODczXSwgWy03My44MzUyNzM3ODMwMTA4OCwgNDAuNjE3MjQ3MjIxOTU1MzJdLCBbLTczLjgzNTcwNzMzMjE2NzYyLCA0MC42MTk3MjkxNjY5NTE5NF0sIFstNzMuODMzODAwNzU1ODEwNSwgNDAuNjE5NjQ1NjIwMTg2OTY1XSwgWy03My44MzM3MDE1MjI3MjEyNywgNDAuNjIwOTc4NjAxODQ2ODNdXV0sIFtbWy03My44MzQ3ODAzMjMxNzQ4NSwgNDAuNjIyNjI1NDk0MTQwNzRdLCBbLTczLjgzMzYyMjQyMDAyMjAxLCA0MC42MjI2MDI2MzkzMzIwNV0sIFstNzMuODM0MDA3NDI1MzU0MDcsIDQwLjYyMTAzNDgzNjgzMjIxNl0sIFstNzMuODM0OTg3MTYwOTkzNTYsIDQwLjYyMTAxMTI5OTg4ODg0XSwgWy03My44MzQ3ODAzMjMxNzQ4NSwgNDAuNjIyNjI1NDk0MTQwNzRdXV0sIFtbWy03My44NTAyMzA5MDc2Mjg3LCA0MC42MjMzMjA4MjM2MjIwNV0sIFstNzMuODQ4NDYzNzE1MjUwMSwgNDAuNjIyMzY1NzAyNzMyMTVdLCBbLTczLjg1MDg1MTA3OTI2ODM3LCA0MC42MjAyNDcxNTc3NTc5MTZdLCBbLTczLjg1NzQwMTcwODA1MjAxLCA0MC42MjAzMDM2NzQxMjg2MV0sIFstNzMuODU1MTcxMzA5MjczMDIsIDQwLjYyMTk1OTMzNzczOTIzNF0sIFstNzMuODUxODUzMjk2NTg1OTksIDQwLjYyMDU2NTE5Mzc4MjM2XSwgWy03My44NTIzNjAzODI1MjAyLCA0MC42MjI5NzQ4NzA1MTY1NF0sIFstNzMuODUwMjMwOTA3NjI4NywgNDAuNjIzMzIwODIzNjIyMDVdXV0sIFtbWy03My44MzM1OTMzOTIxNTQ5NCwgNDAuNjIzNTk0OTc5OTE1OTM2XSwgWy03My44MzM3MDc1NzQ5NTgwMywgNDAuNjIzNjkzNjg2MDQ4NzQ2XSwgWy03My44MzM2MzU4MjU3OTg5OSwgNDAuNjIzOTU1MjkxOTExMzJdLCBbLTczLjgzMzU1OTIzODgwNDYsIDQwLjYyMzkzNjAzNDQ5OTkzNF0sIFstNzMuODMzNTkzMzkyMTU0OTQsIDQwLjYyMzU5NDk3OTkxNTkzNl1dXSwgW1tbLTczLjg2MjEyNDAxNTQxMTAxLCA0MC42MjM5OTAzNzI5NDI0OTRdLCBbLTczLjg2MzAzODc2NzcwODA1LCA0MC42MjMzMDI5OTE3NjkzNjRdLCBbLTczLjg2Mzc3NzM5MDk5OTI3LCA0MC42MjM5NTE0MDgwNjA3MzRdLCBbLTczLjg2MjA2NDcyMjMxMjgyLCA0MC42MjQzMjE1MTMzODczMV0sIFstNzMuODYyMTI0MDE1NDExMDEsIDQwLjYyMzk5MDM3Mjk0MjQ5NF1dXSwgW1tbLTczLjg0NTg5NDU4NDQ3MDk0LCA0MC42MjQ5NzE4MTUzMTM3OF0sIFstNzMuODQ0NzY1NDUzOTgwNzEsIDQwLjYyNDg1NDU2OTU3MzI5XSwgWy03My44NDI5Mzg2NDc2NTQwOCwgNDAuNjIzMzIzOTAzOTc2NjRdLCBbLTczLjg0NTM2NzA0MDI1ODA0LCA0MC42MjMwNDg1NjU3MzA5Nl0sIFstNzMuODQ1ODk0NTg0NDcwOTQsIDQwLjYyNDk3MTgxNTMxMzc4XV1dLCBbW1stNzMuODQwNDg0NzI2NzQ3MTYsIDQwLjYyNzQ5NTI4ODUyNzc1NF0sIFstNzMuODM5NDY3MDA4ODc3NTgsIDQwLjYyNzI5Mzg0MTI2NTQwNl0sIFstNzMuODQwNzIxMjIxMTUzMTIsIDQwLjYyNTg2NDc0NTEyMTY2XSwgWy03My44NDIzODE3ODY0Nzk5NSwgNDAuNjI3NDQwNzg2MjcxNjU2XSwgWy03My44NDA0ODQ3MjY3NDcxNiwgNDAuNjI3NDk1Mjg4NTI3NzU0XV1dLCBbW1stNzMuODY4NzI5MTUyOTA4ODMsIDQwLjYxNzM1Njc4NTAwMzI5NV0sIFstNzMuODc3OTgwNzA4NjQ2NDIsIDQwLjYxNTc5ODI5Mjg3ODNdLCBbLTczLjg3OTc4MDU1NTMzNjUyLCA0MC42MTg2MzA2NDI0Mjk3MTRdLCBbLTczLjg3Nzc5MDk4ODg4ODMxLCA0MC42MjE2NTIyNDI1NjA1MV0sIFstNzMuODY2NDU0ODQwNTUyNDgsIDQwLjYyODI1NTM4NjgwNzA0XSwgWy03My44NjQ3Mjc2NjA0NTQyNiwgNDAuNjI2NTI1NTQxOTEzNDk1XSwgWy03My44NjY1MDg2MDMyMjU0NSwgNDAuNjIzNzU0MDA4MDE3OTA0XSwgWy03My44NjUwMDgzMDEyMDA2OSwgNDAuNjIwNTQ2NjgzMTU3NjNdLCBbLTczLjg2NTc1ODMxMzE5NDA1LCA0MC42MTg1MDE0NDk5NTc5M10sIFstNzMuODY4NzI5MTUyOTA4ODMsIDQwLjYxNzM1Njc4NTAwMzI5NV1dXSwgW1tbLTczLjg0NzM0MzUwNjY2OTksIDQwLjYyOTA5NDczOTcxNjIzXSwgWy03My44NDk1NTQwNDc1NTI5MSwgNDAuNjI0OTM5NjE4NTA1NThdLCBbLTczLjg1ODAwNDMwOTIyODcsIDQwLjYyNDcyOTAxMzE5OTg4XSwgWy03My44NTc4NjMwOTMxNzAzOCwgNDAuNjI4NDQ0OTAyNjY3NDRdLCBbLTczLjg1NjUwNTUwOTc3NTk3LCA0MC42MjkwOTczNTM3MjY2Ml0sIFstNzMuODUyMjE1MzY1ODgxNDMsIDQwLjYyNzU1NDgzMDcwMzIxXSwgWy03My44NDczNDM1MDY2Njk5LCA0MC42MjkwOTQ3Mzk3MTYyM11dXSwgW1tbLTczLjg0ODUxOTkzNTY1MTIzLCA0MC42MzA1NjEwMjQyNzU0N10sIFstNzMuODQ4NDMyNzQxMDEyNjcsIDQwLjYzMDQ1OTQxMzUxMDYzNl0sIFstNzMuODQ4Njg0Mzc4MDE0MiwgNDAuNjMwNDU5MDQwNjYzOF0sIFstNzMuODQ4NjkzNzQyNjY3NCwgNDAuNjMwNjEyNzA1OTM2NTldLCBbLTczLjg0ODUxOTkzNTY1MTIzLCA0MC42MzA1NjEwMjQyNzU0N11dXSwgW1tbLTczLjg1MzAwMDE0NjQ0NSwgNDAuNjMyMDIyODQyMjUzMzU2XSwgWy03My44NTE4Nzk3OTMxNTEwNywgNDAuNjMwNTA4MzE5MjA5MzNdLCBbLTczLjg1ODU1ODM2MzQ3OTgsIDQwLjYzMDQ1ODI4ODE5NTZdLCBbLTczLjg1NzU4NDg2NzQyOTk5LCA0MC42MzI3MTYxNzU1MzYzMV0sIFstNzMuODU0MzQ2MTcyMTQ1NzgsIDQwLjYzMzcyMjYzMTI3MDQxNl0sIFstNzMuODUyNDEyNDc0NTMyNTEsIDQwLjYzMzY0MzQ5ODE0NjE4NV0sIFstNzMuODUzMDAwMTQ2NDQ1LCA0MC42MzIwMjI4NDIyNTMzNTZdXV0sIFtbWy03My44NDYzODQ1ODkwOTg2MiwgNDAuNjM1Mjg1NzY4MTkxNF0sIFstNzMuODQ3ODI2NTM0NTExMTQsIDQwLjYzMjc3OTczNjc5NTkyNV0sIFstNzMuODUwMDUwMDAyNzg3NTMsIDQwLjYzMjE3MzY0MzEwMTY4XSwgWy03My44NDY2NzkxNDg0MDIzLCA0MC42Mzg3MzE3MTE3NTcwNV0sIFstNzMuODQ0MjcyNjUzMzM0MDcsIDQwLjYzNjY5MjM0NTkyOTUyNV0sIFstNzMuODQ2Mzg0NTg5MDk4NjIsIDQwLjYzNTI4NTc2ODE5MTRdXV0sIFtbWy03My45NTQzOTU1NTQxNzA4NywgNDAuNzM5MTE0NzcyNTIyNDhdLCBbLTczLjk0NjUyMzUyODU0Nzg2LCA0MC43MzY5MjY4NTM5NTgxNF0sIFstNzMuOTQ3MTk5ODMzNjcxMTksIDQwLjczNTM1NTE3ODExNDFdLCBbLTczLjk0NzA2NTMyOTE1Mzg3LCA0MC43MzQ0MDE5OTI4MTkyMl0sIFstNzMuOTQ1NTcwNDg0NTcyMTcsIDQwLjczNjYxMjMwMzkxMDRdLCBbLTczLjk0MjM5NDQzNTQyNDI5LCA0MC43MzU0MjU3NDk5NDc1MV0sIFstNzMuOTM4MTAzMzQ5NjA2NjYsIDQwLjcyOTcyODUxOTUyMTMyXSwgWy03My45MjkyNDMzMzk0ODM5MiwgNDAuNzI3Mzk3OTQyMzE4NjI1XSwgWy03My45MjQ1Nzk0ODA4ODg5NCwgNDAuNzE5MTYyNTIzMzM0NzRdLCBbLTczLjkzMjE5NzUzMTQ2MzM0LCA0MC43MTQ5NzIxMDc0OTAzNF0sIFstNzMuOTMxMjQwNjcwNTk0OSwgNDAuNzEzNzI0ODEwODg0NjddLCBbLTczLjkzMzI4MzQ5MzIwMjQ4LCA0MC43MTA5Nzg3MDc0NTc5MjZdLCBbLTczLjkzMTkwMTAxOTIwODYxLCA0MC43MTEzMzg0NzE0MjgxOV0sIFstNzMuOTMwMzYwOTQ1NjU3OSwgNDAuNzA4NzE3NzM4NTM1MTldLCBbLTczLjkzMTg0ODY4ODc3NDU0LCA0MC43MTI1NjQ3NzQxODMyM10sIFstNzMuOTMwNDIyOTQzMTMwNzIsIDQwLjcxMzE3MjU1ODY3MTA0XSwgWy03My45MzA4NTE5MDEzNDAzLCA0MC43MTQ5MDI5ODU1OTI3NjVdLCBbLTczLjkyODQzODgxODE0NTkzLCA0MC43MTU1MzA5NDk1NzU3NDRdLCBbLTczLjkyODIzMjUzMDQ0OTM2LCA0MC43MTcxMDY0NTM3NTA3OV0sIFstNzMuOTIzNjM5ODkyNjIwNjgsIDQwLjcxNzMyMDY1NzQ5MzM2XSwgWy03My45MjMwNTUwMDAxNDMzNCwgNDAuNzE2MzQyNjY0NzkzMzZdLCBbLTczLjkyNDg4NTUzNTA3NiwgNDAuNzE1MjY3MTg3NjUyNV0sIFstNzMuOTIwNzQ4NTMxMTU4MDUsIDQwLjcxMDUzMzY0ODk1ODcxXSwgWy03My45MjE4OTE4NDY5ODY5NCwgNDAuNzA5Mzk2MDk2NzEwNzldLCBbLTczLjkxMTgwNzEwMDAzMzI5LCA0MC43MDM0MzQ5NTI1Mjg2NzRdLCBbLTczLjkxMjkwNDA0MTIxODk0LCA0MC43MDIzNjE4OTE3OTkyM10sIFstNzMuOTEwNjc4ODI3Mzc0MjEsIDQwLjcwMTA0NTk2OTA2NDA3Nl0sIFstNzMuOTExODA4MjAwMzgzODUsIDQwLjY5OTkzODAwMzEyMzg5XSwgWy03My45MDQyNjAxODQxMTY5LCA0MC42OTU3MDAzNzE0NDMxN10sIFstNzMuOTA1Nzk1OTcwNzUzMSwgNDAuNjk0MTI3MTU1MDExNTE1XSwgWy03My45MDEyMzI5MDY2MDAwNiwgNDAuNjkxNDQyMjc5MTQwNzQ1XSwgWy03My45MDExNjE1NDk5NDM2OCwgNDAuNjg3ODc3OTM1MzU0OTddLCBbLTczLjg5NjQ2NjI1MTI4OTI4LCA0MC42ODIzMzY0MjI0NzU4ODVdLCBbLTczLjg5NDE3NDYzMjY3MSwgNDAuNjg1MjgzMjQ4NjczMTddLCBbLTczLjg5MjUyMzE2ODk4MjY2LCA0MC42ODM0MjQ1MzI4MDQ2Ml0sIFstNzMuODg0NTIyNTA5NTc0MjQsIDQwLjY4NjY4NDc0OTA5NTU1XSwgWy03My44NzQwMjA1MzMwNjc5OCwgNDAuNjk0MTkxMjk0NzE1NTddLCBbLTczLjg2ODQyNDg5Nzc4ODE3LCA0MC42OTQ3MTgxMTk1MTUxM10sIFstNzMuODY2MDE5OTMyMjA3MzEsIDQwLjY4MTkxOTU4NzAyNzk4XSwgWy03My44NjQxMDA5NjY3OTEzNCwgNDAuNjgyMzcyODUwMjkyNjFdLCBbLTczLjg2MjM0NTgwNTM1MDIzLCA0MC42NzkxNjQ3ODYxNDY4NV0sIFstNzMuODYwMzg1MTk4NTQ3MjgsIDQwLjY3MTI1MTcxMDk4OTY4XSwgWy03My44NTc2MzMyMzE3NDM3MiwgNDAuNjcxNjU2MTk0MDM4ODRdLCBbLTczLjg1NTY4NDYxMjIxMTQzLCA0MC42NjM4Njc0OTIzNzI5MV0sIFstNzMuODU4NDI5NTA3OTEzMDQsIDQwLjY2MzQ1MzM2MDkzMTAyXSwgWy03My44NTc2MTUzNzE4NTU4LCA0MC42NjAxMTg5MzMxNTM3OF0sIFstNzMuODYzMTcwODMzNDA0MDQsIDQwLjY1ODI3NjUxMjk0ODg0XSwgWy03My44NjMyNzYyMzA2ODYwOCwgNDAuNjU2OTQxMjE1MzI4MTQ2XSwgWy03My44NTcyMjMzMDk4NDM2NiwgNDAuNjUwMjc4NjcwNTQxMzddLCBbLTczLjg1ODM3NjA1MzE3NjczLCA0MC42NDcyNzQ0MTUzMTM0NV0sIFstNzMuODU3MTY5NzgyOTgyMTMsIDQwLjY0MzY3ODU1ODg4NTk2Nl0sIFstNzMuODYyODk0NjMyMjQzODgsIDQwLjY0MjU1MDY3OTY4MjQ2XSwgWy03My44NjY3MDQxMTk3Mzc3OSwgNDAuNjQwMDIxNzYzNDk1NF0sIFstNzMuODY1NjMyNDczOTEzNDEsIDQwLjYzODc4Njc2MzYyMjldLCBbLTczLjg2ODY3MjgyODk1MDg4LCA0MC42NDA5MjUwNzkyMDMzODRdLCBbLTczLjg3OTMzMjExNjgwNTYsIDQwLjY1NDYyMjAxNjg0OThdLCBbLTczLjg2OTg5NTgzMzg2MjQ3LCA0MC42Mzg5MzQ1Mjg5MTk1NF0sIFstNzMuODY3OTk3MDk2NjgxMywgNDAuNjM4MTE1MjY1MjA5NjFdLCBbLTczLjg3NDQ0ODY1NjM0MDM4LCA0MC42MzY2NTg2NzMyOTg3M10sIFstNzMuODkxMDAyOTgwNTE1MywgNDAuNjQ5MzUwNzA1NTY1NjVdLCBbLTczLjg3NzE0NDM0ODY4NTk3LCA0MC42MzU5NzY0OTgwMDc1Ml0sIFstNzMuODgzNjQ0NTE3MjgyMywgNDAuNjMwOTQzMzEyMTM4NTddLCBbLTczLjg4MjYzMjQ4NDMzNDA0LCA0MC42MjgyNzQyNzMxMjY4OV0sIFstNzMuODgzNjkyMzE1NzE1MDIsIDQwLjYyNzU1OTM3MzkxNF0sIFstNzMuODg3NTI2NzM3MDYyLCA0MC42MjgzMzE4MjQ0ODI0OTRdLCBbLTczLjg5NTQ4NDY3OTcyMDM1LCA0MC42MjI0ODU1NjgzNzQ0Ml0sIFstNzMuOTE3NTA2NTczMzM4OTMsIDQwLjYzMTQ0MTgxNjA3OTgzNV0sIFstNzMuOTAyMjg3MDc5MzIyNzYsIDQwLjYyNDQwOTg1MzkzMDI3NF0sIFstNzMuOTAwNzA0NjEwNTAwOTgsIDQwLjYyMTYyODc5NDMyMDgzNF0sIFstNzMuODk2NDc0NzU0MTI0NTEsIDQwLjYyMTQyODI0NjA4ODkzXSwgWy03My44OTU4NjExMjg5NDE4NywgNDAuNjE0NTE4MTM3NDk0NzVdLCBbLTczLjg5MDk1NDE0NTY0Njg0LCA0MC42MTI4MzQwNDczMTcwOF0sIFstNzMuODkzOTYzODUwNjA5MDQsIDQwLjYxMTIxNDIyMjU4MDc2XSwgWy03My44ODk2OTYzMTg0NjQ3LCA0MC42MTE0NTM1NTk1OTIyMzVdLCBbLTczLjg5MzM0NjIxNDIwMDE5LCA0MC42MDY3NDM0NDYyMzQ2NDVdLCBbLTczLjg5OTgzMjI0NTQyMzg0LCA0MC42MDU1MDMxMTcwNDMwOV0sIFstNzMuOTAxMzMzMDM0NTg2NTMsIDQwLjYxMTcxNzg4MjkwNTkzNl0sIFstNzMuOTAyNDkzOTI5ODUzLCA0MC42MTE4MTQ5OTkwMzIyN10sIFstNzMuOTAxMTkyNTM0NjU0NSwgNDAuNjEwNTYzODE3NTQ2NTVdLCBbLTczLjkwMTMyOTYyNjU5NDA2LCA0MC42MTA0ODEwNDMxMDMyNTZdLCBbLTczLjkwODc5MDg4MDE3NjQ3LCA0MC42MTc0MzYzOTY3MjEzN10sIFstNzMuOTA3OTczMDYzOTA1MiwgNDAuNjE1NzM2ODQ0MDYxMThdLCBbLTczLjkwOTU5NzQwOTEwMzQ0LCA0MC42MTYzOTI2Njk3OTkzMjVdLCBbLTczLjkwMjI1ODU5OTY2MjgzLCA0MC42MTA0MjI3NzI1OTk5Ml0sIFstNzMuOTAxNjQyMTE3OTAwOSwgNDAuNjA1NzYzMzYwNzM4ODddLCBbLTczLjkwNTI0MzAwOTkyMTA0LCA0MC42MDQ5MTAwOTAzMjQzN10sIFstNzMuOTA4NjM5NTk1MzU0MzIsIDQwLjYwNjY1ODcyMjA0NzgyNV0sIFstNzMuOTA4MDMzMDYwOTc4MiwgNDAuNjA1MzU4NjAyMTE3MjFdLCBbLTczLjkwOTg1MTU0ODQ1NDcsIDQwLjYwNTk5OTcyMjE3NzY3XSwgWy03My45MDgzMjUzNjgzNTE3NCwgNDAuNjA0MDczMzczOTE4NThdLCBbLTczLjkxMzY1MTE5NzU5NjAxLCA0MC42MDM5ODI1MTM4MzY5NV0sIFstNzMuOTE3MDg4Mzg1MDMzMTUsIDQwLjYwODgyMDg1NDg5ODUwNF0sIFstNzMuOTE0NDk1NDIyMDU5ODMsIDQwLjYxMTY1MzIyMzY2NDg1XSwgWy03My45MTQyMjIzODY2NTk1NSwgNDAuNjE0OTMyNDU2NzA0NDddLCBbLTczLjkxNjYyODA0MzcxMTU4LCA0MC42MTM0NDM1ODkyNjU0M10sIFstNzMuOTE1NzMxODE5MjcxMzYsIDQwLjYxMTgzMDg0NDUxMzc3XSwgWy03My45MTgxMTAzNjY3OTAxMywgNDAuNjEwMjA4Mzk0MDU4MTNdLCBbLTczLjkxODEzODE0ODg5OTcxLCA0MC42MDc2NDUzODY5MDc2MzVdLCBbLTczLjkxOTM1Mzk4NDg0MTE0LCA0MC42MDgwNDI5MjIyODc2OF0sIFstNzMuOTE4MjUyNjkwOTI5NTUsIDQwLjYwNzIyOTM1MDY0MDU0NF0sIFstNzMuOTE5NTIyMDk3OTYwMTcsIDQwLjYwNzczODc5NzQzNDc4NF0sIFstNzMuOTE0NDI4MTM0NjIyODUsIDQwLjYwMjg2MzkxOTU2MzI0XSwgWy03My45MDkwMzY4OTUzMDUzMywgNDAuNjAyNjc3MzQzMjIwMTRdLCBbLTczLjkxMDczMTIzMDEzMjY3LCA0MC42MDIwMjEzNzYwMjc2MzZdLCBbLTczLjkwODk0MjI1MTM4MDM4LCA0MC42MDE2MDcwNDA2OTg2OV0sIFstNzMuODgzOTY0MzQ4ODIwNzcsIDQwLjYwNTU0OTE0MDQyNjQwNV0sIFstNzMuODc2NzE2NzI0ODIwNzUsIDQwLjU4NDkxNDQzMDIwMDc4XSwgWy03My44Nzk3MDIzMTY2NCwgNDAuNTgwMTM1MTAwNjk4MTRdLCBbLTczLjg5NTUyMzgxMDA3MTcxLCA0MC41NzY3Njk4MTg0MzYzOV0sIFstNzMuODk5MDMwMjYwOTU5MzEsIDQwLjU4NzY3MDA5NzUyMDU0XSwgWy03My45MDQyNjg3NDQ0NzEyNSwgNDAuNTg2OTEyMjYyOTg4NTg0XSwgWy03My45MDY1MTg3NDY2Mzc2NiwgNDAuNTg4MDI1NDczODkyNTJdLCBbLTczLjkxMTQ4MTcxOTkwMDY5LCA0MC41ODYwNzg3MTg3MTIzXSwgWy03My45MTIwNDIzNDAxNTYzOSwgNDAuNTk0NTA2OTU0Mjg4ODldLCBbLTczLjkxNTEzMjk3NDU5NDk4LCA0MC41OTg3ODExMTU5MzAyOF0sIFstNzMuOTIxNTE2ODk5ODE5NSwgNDAuNjAxOTIzNjU0MTQxMTJdLCBbLTczLjkyNDg2NDkxOTM0OTgyLCA0MC41OTk4MjE0ODI0MjMyMV0sIFstNzMuOTMwMTY3NjI3MDg3MzQsIDQwLjYwNDAyODQ1ODMzMDgxNl0sIFstNzMuOTMyMTE2MDg4Mzk3NTQsIDQwLjYwMjY4ODUxNjY0Njk2NF0sIFstNzMuOTE0MjA1NjYyMDY2ODUsIDQwLjU4OTE5Njg4MzYzNjE2XSwgWy03My45MTkxOTAzMzE3MjM1NywgNDAuNTg1OTYyNDk0MTQ3NjRdLCBbLTczLjkyNDc1NzA5Nzk5NjksIDQwLjU4NTYzMjU3NTA5OTIyXSwgWy03My45MjgwNzkwNjgxNzg1OSwgNDAuNTg3NzAyNDYwNTIzMTc1XSwgWy03My45MjM5NTI5NDg1MDA5NCwgNDAuNTkxMTM5ODUwNTI1MDRdLCBbLTczLjkyODYzMDYxNDE1NjM4LCA0MC41ODg1NzI2MzY0MjA2MzZdLCBbLTczLjkyODQ0MDkwNDkzNjU1LCA0MC41ODkwMzA0MjgxNDJdLCBbLTczLjkyOTEzNDQwMzgyNjQsIDQwLjU4ODg3OTI0MTY4MTk0XSwgWy03My45Mjg3NTcwMzQ5OTQxOSwgNDAuNTg5MTUyOTY2OTI0OTldLCBbLTczLjkyOTc2NjE1NzczMzA3LCA0MC41ODkyOTIwNjk0NDc2Nl0sIFstNzMuOTMwMDM0Mjc0NTA1NTIsIDQwLjU4OTQyNTk5NjUwMDcxXSwgWy03My45MzA1NzcwNTcxODI1NywgNDAuNTg5ODkwNjQxMjAzMTZdLCBbLTczLjkzMDEwMzI1OTg4NzY2LCA0MC41ODk2MDYxMDUwNzE0MjVdLCBbLTczLjkzMDAxNjUwOTUyMDgzLCA0MC41OTQwOTQ1MzYwNjIxM10sIFstNzMuOTMyNjA0MjA1NTY4NTcsIDQwLjU5NDkyOTU0NDUyNDk0XSwgWy03My45MzEyMTI5NDg1ODk1NSwgNDAuNTg5NTMxMzA4MTE5MjddLCBbLTczLjkyOTcyODQ2MzgwMTg3LCA0MC41ODg2MTM5MTU4Mjk3NF0sIFstNzMuOTMxMjUxOTEyNjcxMjcsIDQwLjU4Njg0OTgyNTIxNDI2XSwgWy03My45Mjg1NzM5MzkzNjQ2OCwgNDAuNTg3MDYxNTAyMzcxMzldLCBbLTczLjkyNTI5MDgzOTgxNzM0LCA0MC41ODQ2NDA3MzU2NjQ2MzVdLCBbLTczLjkxMzQ5OTYxNjc1ODcxLCA0MC41ODYwOTU4MjU3MDUzXSwgWy03My45MTI0NjAyMjAzNjAwNywgNDAuNTgzMzUxNzU0NDI2MzNdLCBbLTczLjkxNzI5ODYxNDEwNzI0LCA0MC41ODMxOTA4MDE3NDk1XSwgWy03My45MTE5MTA1ODg2MDM1NSwgNDAuNTgyOTYzMzc3MjUyNTVdLCBbLTczLjkxMTQ4MzI3NjAxOTY3LCA0MC41ODE4MzIxNjE4Njc0NV0sIFstNzMuOTI0NDM2MDQwOTQ5NzcsIDQwLjU4MzU1ODIwMzQ0NDIwNl0sIFstNzMuOTUzNDkzMjIwNDg2OCwgNDAuNTgyOTg4MTk4MjYwOTddLCBbLTczLjk0Mjc0MDYyNTkyNTE1LCA0MC41ODA5OTU1ODk1NTkyNl0sIFstNzMuOTMyNTgwMDY1NjgwMzcsIDQwLjU4MTI2NDc0MTIwMzQxXSwgWy03My45MzEwNjI4ODMzNTY1MiwgNDAuNTc2MTYzMTAwNzIzMzA2XSwgWy03My45ODI4MjcyMzIwMTgzMiwgNDAuNTcxNTQyNDEzNTc0NTM0XSwgWy03My45ODMzNjA1ODAzOTI3MywgNDAuNTY5NTI5OTk0NDg2NzJdLCBbLTczLjk4Mzc1NzkwNDQ4NjUyLCA0MC41NzEzOTYyMjcyNTA5MTVdLCBbLTc0LjAwMjA4NTQ3NjM5NzM1LCA0MC41Njk1ODU5ODM5ODQ5Ml0sIFstNzQuMDAzMDMxODYxNjQ4MTEsIDQwLjU3MjE4NTU5NDc1ODk4XSwgWy03NC4wMTIwMTU0MDE5MTEzMSwgNDAuNTc0ODg1MDUyNDc0MTk0XSwgWy03NC4wMTMwMzE0ODAwMTc5NiwgNDAuNTc3OTEwMDEyNzE3MThdLCBbLTc0LjAxMTg5Mjc0NTgwNDAzLCA0MC41Nzk3MzUzNzM0OTY0MjZdLCBbLTc0LjAwNjA0NzM0MjM1ODE3LCA0MC41ODE5ODM2NTMwMzU4MV0sIFstNzMuOTg4NDI4MzM3Njk0MywgNDAuNTc4ODE1ODQyNjE5NDldLCBbLTczLjk4NjA0NTA5OTE2MjMxLCA0MC41ODE3MjA2ODUxNTE1NjZdLCBbLTczLjk4ODAwOTczMzc2NzYsIDQwLjU3OTY3MDY4NzE1NTcyNl0sIFstNzMuOTkxNjMwMDc0NzIzOCwgNDAuNTgxMDc5ODg0MzgxODM2XSwgWy03My45OTAyNjI0NDcxNDM3MiwgNDAuNTg0NjE5MTQ4MjA1MjldLCBbLTczLjk5NTQ3MTg4NTYwMzI0LCA0MC41ODIyMTAwNTUxMTc5Nl0sIFstNzQuMDAwMTc5MjI4NTk0MDksIDQwLjU4MzA3Mzk1MDc0NzU5XSwgWy03My45OTgwODUyMzc3NjAxNCwgNDAuNTg1MzY0NzIxNTgxNDhdLCBbLTczLjk5OTU2NTExNTcwMzE5LCA0MC41ODYyNDM5MjAwOTU2NTRdLCBbLTczLjk5NDA3OTA0NjIxNzgsIDQwLjU4ODY5MzQ0MTk5MDU0XSwgWy03My45OTc5NTYzOTczOTI4OCwgNDAuNTg3MjY5NTA2MzY1NjQ0XSwgWy03My45OTUzNDczNzY2MTIxNywgNDAuNTg5MzMxMzgwNDM5OTVdLCBbLTc0LjAwMDM3MzY4ODkwOTM1LCA0MC41ODY0NzQ4MTQ2Mjk5NDVdLCBbLTczLjk5Nzg4MzExMjUxMDQsIDQwLjU4ODM0MzQzNzkyMjc4XSwgWy03My45OTk0NjQ0NjgxMTA3NCwgNDAuNTg5MjMzMjY5MzgwNzA2XSwgWy03My45OTcxODk4MjczOTQ4NiwgNDAuNTkxNjA2MTgxNDAzOTddLCBbLTc0LjAwMDIzMDc1MjgyNzQyLCA0MC41OTE0Nzg0ODk3Njk2OV0sIFstNzMuOTk4Mzg4MzEwODM2MTksIDQwLjU5MzUzMTM5MTYwNjI2XSwgWy03NC4wMDEwNTc0ODQ0NTcxOSwgNDAuNTkyNTM3MDA1MDYyMjddLCBbLTc0LjAwMzYzNDAxOTQ3MzExLCA0MC41OTYwODA1OTkyNDI5M10sIFstNzQuMDEwOTE1NjYyNTY4NDIsIDQwLjYwMDcyMTk3NDM3MjcyNV0sIFstNzQuMDMwMDUxNDY1NDc2ODQsIDQwLjYwNDc1OTE3MzgxMTk1XSwgWy03NC4wMzYwMzk3Nzc3NzkxNSwgNDAuNjA5Mjk1NjM5MDAxODM2XSwgWy03NC4wNDAyMzQyNzI3ODQ0NywgNDAuNjE1MDI4MjU2NjQ5Mjc1XSwgWy03NC4wNDE2MTc0MDc3MzYwMSwgNDAuNjIwNTYyNzE0NTQ1NzA2XSwgWy03NC4wNDEwNjMyMDQzOTM0MiwgNDAuNjMwMTkwMzM3MjQ1MDA0XSwgWy03NC4wMzY4MDY2MjA0ODg1MiwgNDAuNjM4OTg0MjIxNTQ1NDg1XSwgWy03NC4wMzg3NjI5NzkyMDc1OCwgNDAuNjM5NTg4MjU4OTgwNTFdLCBbLTc0LjAzNjcyNDg0Mzc0ODgzLCA0MC42MzkxNDExOTAyMDY2OF0sIFstNzQuMDM1NzEyNzYxNTA3MzEsIDQwLjY0MDY0MDE1NDA0NjQ2XSwgWy03NC4wMzY3NTg0MDMxNzUyMywgNDAuNjQxNjExNzYyNzEzOTVdLCBbLTc0LjAzNDA3MzI5Mjk0MjYxLCA0MC42NDQzMTM5MzI5NjM5XSwgWy03NC4wMzIzMTA3MDU5ODI0MywgNDAuNjQzNTc0NTg2NjE3NzZdLCBbLTc0LjAzMDUxODMwODYzNDE5LCA0MC42NDUyNzQ0MjUyMDldLCBbLTc0LjAyODIwNTY5NTQ1MDA3LCA0MC42NDQwMTU5ODI4OTAyNzRdLCBbLTc0LjAyNjA0OTQ4NDAwMzIxLCA0MC42NDYyNjEzNTAzMjYxNF0sIFstNzQuMDI5Mzg5OTA0ODY2MiwgNDAuNjQ4ODA0MDU1MTEzODY0XSwgWy03NC4wMjUwNzExMTQzMDA4NiwgNDAuNjQ2NzI1NjE2Mzc4NDRdLCBbLTc0LjAyNjIyMTAyNDc1NTc4LCA0MC42NDgyNDg0Mjc4MDkxOV0sIFstNzQuMDI0MTQ1NjYwNTA1NzEsIDQwLjY0NzYxNTEwMTI1OTgyNF0sIFstNzQuMDI2MDUxMzMxOTY3OTksIDQwLjY1MDk5NDMwMDc0MzA4Nl0sIFstNzQuMDIyODUxNDE3OTU5ODMsIDQwLjY1MTE2OTE5NTE2MTcyXSwgWy03NC4wMjUzNjg5MDE1MDUxOSwgNDAuNjUyNzIxNDM2OTI3MjNdLCBbLTc0LjAyMTI0NjUyMzczNDEsIDQwLjY1MDgzNDk3MjU2NDNdLCBbLTc0LjAyMzgwNzAzOTAzMTI3LCA0MC42NTMwNDQ3Mjg1MTE0N10sIFstNzQuMDIxMTg2NzAwMjc4OTIsIDQwLjY1MjgzOTgzNjg5NTMxXSwgWy03NC4wMjMyMDQ2NDcyNzE0MSwgNDAuNjU0MDk2MTE2ODE3ODRdLCBbLTc0LjAxODExODk3ODc2NDczLCA0MC42NTM4ODUyNzExMDUyNDZdLCBbLTc0LjAyMDA1MTgyNDU0Mjk3LCA0MC42NTUzMzU5NDg4NzQ0NV0sIFstNzQuMDE3ODc0MDcyMjM4MTcsIDQwLjY1NDA2MTUwMjMzMDgyXSwgWy03NC4wMTcxNTMxOTU4MTAyNywgNDAuNjU0Nzc1MTA0MzYyMDk1XSwgWy03NC4wMTk4MDA4MTY1MTk5OSwgNDAuNjU2NDg3MjEwNTg0NjNdLCBbLTc0LjAxNjY1MDQ3OTU5NzYyLCA0MC42NTUzMzg3OTY1NzIxNDZdLCBbLTc0LjAxOTEwODQzODAzMTIyLCA0MC42NTczNjg4ODQzMDM0Nl0sIFstNzQuMDE1NDM2MzIyNjk2NDksIDQwLjY1NjYzMjM5Njc1OTY1XSwgWy03NC4wMTc3NDIzMjcyNzQ5NSwgNDAuNjU4MDk4OTE2NzI0OTNdLCBbLTc0LjAxNzY4NTQ5MTc1NDcsIDQwLjY1ODQ1Mjk5Mjc2MTE4NF0sIFstNzQuMDE1MDQ3MzgyMjE4NTcsIDQwLjY1Njk1MDM4NjY5MzM5Nl0sIFstNzQuMDE3NDU4MDMwODc5MDYsIDQwLjY1OTQ1MDE5NzM4NjY3Nl0sIFstNzQuMDE1NTQxNjUzODkwMDgsIDQwLjY2MDc1ODM1NTQ3NjEwNV0sIFstNzQuMDExODM4NjIwNTY1NTQsIDQwLjY1ODkxMjgzNzI3NDcwNl0sIFstNzQuMDExMTA3NTA0MTAzMTEsIDQwLjY1OTcwNjI3NDU4MDYxNF0sIFstNzQuMDE0MDIyNDc2NzgwMjQsIDQwLjY2MTUyOTc0NzQ0MDA0XSwgWy03NC4wMTI2NTM1ODgxMTQ5NCwgNDAuNjYxOTgxNjU0MDM3NTddLCBbLTc0LjAwODU5OTU2OTY4MjksIDQwLjY1OTUyMDkyMzA5ODIzNV0sIFstNzQuMDA3NDU4NTgxNjM4OTcsIDQwLjY2MDU1ODQ3NjIwOTg4Nl0sIFstNzQuMDEwMzcyMDEyOTcyMywgNDAuNjYyMzk4ODgwMjMyNTFdLCBbLTc0LjAwOTU1MDc0MTQyMDM2LCA0MC42NjMyNjc2OTQxMzAzNTRdLCBbLTc0LjAwMzQ4ODAxMTAwNjUsIDQwLjY2MjI0MDU1NjEyODQ3NF0sIFstNzQuMDA3Njc0MzQ1OTQ1MDYsIDQwLjY2NDc5MTEwOTI2NTc1XSwgWy03NC4wMDM2Mjg2MjUwODU2NywgNDAuNjYyNzM0ODQ3NTM0NTVdLCBbLTc0LjAwNDg2MTkzNzkyNjU5LCA0MC42NjUwNjQ4MjE5MzgxNzRdLCBbLTc0LjAwMTEzNTE5NTA5NjYxLCA0MC42NjI5MDE3MjQwNTUwOV0sIFstNzMuOTk5NTMxNTI2MDk5MTYsIDQwLjY2NDM5NzQ4NTkzNjkxXSwgWy03NC4wMDI5MjQ2MzUxNjM4OCwgNDAuNjY2NDYyMzEyMTYzMzddLCBbLTczLjk5OTk4MTQ5MzM5MTIzLCA0MC42Njc0NTAyNzQ5MDg2Nl0sIFstNzMuOTk5MDI2MDA5OTgzOSwgNDAuNjY4NDQyOTcyMTI2OTZdLCBbLTczLjk5ODc2OTQxMDU4OTIzLCA0MC42NzE2MDIwNDcxMDUwN10sIFstNzQuMDAyODk0ODM4NzY5NSwgNDAuNjY3MzQ4NDY1OTQ5Mzc0XSwgWy03NC4wMDU4NjM2NjE4MDY4NiwgNDAuNjY3OTkzNzYyNTg1Njc0XSwgWy03NC4wMDY4MzIzNjA3ODI1OCwgNDAuNjY2MDQ5NjQ1NTI2ODA1XSwgWy03NC4wMDY5NjcwNzgzNDI0NywgNDAuNjY2MDUyMTgyMzU2NjZdLCBbLTc0LjAwNTQzOTI2NTI5MzUzLCA0MC42NzA5MjE0NjgyMzg0Ml0sIFstNzQuMDA3NTQ4MjE2MTgzODgsIDQwLjY2NzA1MTc0NTczMzU1XSwgWy03NC4wMDcwODcyNDI4NzgxMSwgNDAuNjY4NTkxMzU4NTM1NzFdLCBbLTc0LjAwOTg1NDExODU1NjI2LCA0MC42Njg1MjM2MjgzMzUzNjVdLCBbLTc0LjAxMTU0MDE3NTQzMzMxLCA0MC42NjUwODU5MTk3NTY2NV0sIFstNzQuMDE1NzQ4NzI4ODI2NjEsIDQwLjY2NDU2ODMzNjI5MTU5XSwgWy03NC4wMTY5MDI2NzM2MTA2OSwgNDAuNjY0ODQ2NjAyMzM4ODddLCBbLTc0LjAxOTMzOTQ2ODcxNzc3LCA0MC42NzE2MjQ5NDg0MjI2MV0sIFstNzQuMDE3NTEwMzcwODY2OTQsIDQwLjY3MTAzNDUzMDk4NDFdLCBbLTc0LjAxNjQ4NjY1NTU0NDk3LCA0MC42NjQ5MzA1MDg5NTM4MV0sIFstNzQuMDEyMjc5Njc4NzI3OTIsIDQwLjY2NTczMjQxNDE1ODg1XSwgWy03NC4wMTAzMzg0NTk0NzkzNywgNDAuNjY5MDc4MTk1NDQ4MDFdLCBbLTc0LjAxMTYyNTI3NTIxMzU2LCA0MC42NzA1ODEwMjgyNzU4M10sIFstNzQuMDE0MjQ5MjY5MzE4NzUsIDQwLjY2OTcyODYwNDczNzExXSwgWy03NC4wMTE3NTM1MDUwOTY5OSwgNDAuNjcwNjU3NzU3NTc4MzNdLCBbLTc0LjAxNTE5OTgwNTcwMDcsIDQwLjY3MDc1NDAyNzY2NDNdLCBbLTc0LjAxNDIzMjg5NDUyNzgyLCA0MC42NzIxMzAwMDA1MTNdLCBbLTc0LjAxNTY4NjI1NDk3NTE1LCA0MC42NzEwMzg4MzQ5Mjg3OTRdLCBbLTc0LjAxMjk3NTg3NzkyMTksIDQwLjY3MzMyNzkxODcyMDkyXSwgWy03NC4wMTYzMjA5OTkyMjMwNywgNDAuNjcyOTA4MjY5NTYzNjldLCBbLTc0LjAxNDk2MzkyMTg0NTc2LCA0MC42NzQ2Nzc2MzAyOTQxOV0sIFstNzQuMDE4ODAwOTQ3NzY5MiwgNDAuNjcyMjUwNzY0ODQ4N10sIFstNzQuMDE3MjcxMzg0NzAxMjcsIDQwLjY3MzYwODY0NTgwNTVdLCBbLTc0LjAxODg4MTAxMzc4NjE5LCA0MC42NzUwOTI0ODA2NjE3XSwgWy03NC4wMTc5MTE5ODIyNjE4NCwgNDAuNjc2NTEwNDYyODAxOTNdLCBbLTc0LjAxOTk1MTk3ODY0Njc3LCA0MC42NzcxMDMwMTA0NDk5Nl0sIFstNzQuMDE4MjUyNjcwMDQ1NjMsIDQwLjY3ODU1Mjg4NjcyNTg5XSwgWy03NC4wMTkyODEyODEwMjAzMywgNDAuNjc5NjQ4MTQwNTk1MzZdLCBbLTc0LjAxMjgyMDAwMzMyODQ3LCA0MC42ODM2MjI0MTY0OTczMzZdLCBbLTc0LjAxNDEwNTQ5NjQ3OTc2LCA0MC42ODE3MTI1MTkzNzU0NF0sIFstNzQuMDEzMDE4MzU0MjIxMDUsIDQwLjY4MDQxMjM3NDAxNDI4XSwgWy03NC4wMDk2NzEwODU1ODg4MywgNDAuNjgzMjY4NzI3NzE1MDFdLCBbLTc0LjAxMTkzMjU5OTExMDYsIDQwLjY4Mzg4Nzc0OTE1NDk1XSwgWy03NC4wMDU4ODIyNDE4MzIzMiwgNDAuNjg2MTk1NzY4ODkzNThdLCBbLTc0LjAwMjk3NTY1NDM2NTY3LCA0MC42OTA0MjY1NzU5MjA2NzVdLCBbLTc0LjAwMDk2MTU2ODU0OTQsIDQwLjY5MDEyODc2ODM1MDA3XSwgWy03NC4wMDE3NDM2MjA0NTAxMywgNDAuNjkyNDA2NzQ5NzA1NDZdLCBbLTczLjk5NDU2OTc4OTUwODkyLCA0MC43MDQzNzYyNjM1MTM4OF0sIFstNzMuOTc4MzQ0NzQ4NTI4NzEsIDQwLjcwNTk5OTk2NDk4NzU3Nl0sIFstNzMuOTc3NTEyMTU0OTQ5NjQsIDQwLjcwMzE5Njc1MjY2MzQ1XSwgWy03My45NzU5NjA5NjM0NDgzNywgNDAuNzA0NzE1NTA2NDQwNTNdLCBbLTczLjk3NjkyNzQ5MTg4MzUyLCA0MC43MDI3OTc4MjA0MDAzN10sIFstNzMuOTc0NTUwMjMzODgzNSwgNDAuNzAxNTkwMzQ0MzA0NzZdLCBbLTczLjk3NTcyMTE0NzI4OTY5LCA0MC42OTk1NjcyMTcyNTUyN10sIFstNzMuOTc0MTE1MTM5OTI1MjIsIDQwLjcwMTMwNTI3MTQxOTQ0XSwgWy03My45NzIzOTIwMTM5NzQ1OCwgNDAuNzAwMTY2MzIyNzUyMjQ2XSwgWy03My45NzMxODY3NjY3MDg5OCwgNDAuNzAxNjY5ODAzNjczNjVdLCBbLTczLjk3MDc4MjAwNTg3OTg4LCA0MC42OTk5Nzg2NjMwMTEyNF0sIFstNzMuOTcyODM1MTI3ODg3MzUsIDQwLjcwMjcyODc0MDc0MzkzXSwgWy03My45Njk0ODY1NTIxODA4NCwgNDAuNzAwNTE5MDYxMjU4MTJdLCBbLTczLjk3MjgzODg5OTc0OTU1LCA0MC43MDMzNDY0Mjg2MDE4NV0sIFstNzMuOTY4OTg1MTc0Mjg5NjYsIDQwLjcwMTc0NzA4ODc4NjUzXSwgWy03My45NzQ2NTU2OTYwODA0LCA0MC43MDYwNzQyNjI5OTQxOV0sIFstNzMuOTcyNTQ4ODAwNTc4MTgsIDQwLjcwNjIwNDQ5MDAwMzc0XSwgWy03My45NzQ2Mjk2NjYwNDQyMiwgNDAuNzA3NjgxMDYwNzY4MjE2XSwgWy03My45NzEwOTY1NTQ4OTEwOCwgNDAuNzA1ODUwMDU2NTU4MTg0XSwgWy03My45NzIzMjAzMjEzOTgyNCwgNDAuNzA5MDgyODgzMzA0MTldLCBbLTczLjk3MDE4MDc1NTcyOCwgNDAuNzA0OTI5MjcwNTY2ODJdLCBbLTczLjk2NzUxNTE2NjkxMDkxLCA0MC43MDM0MzczNTY4NzgwN10sIFstNzMuOTY5Mjk2OTM4Mzc3MTMsIDQwLjcwNTA4ODMzMTIyOTY1XSwgWy03My45NzAwODgyOTUzOTcxOSwgNDAuNzEwNDcyMzIyNzY3ODNdLCBbLTczLjk2NzI2Nzk4MzU2MDQ1LCA0MC43MTY5ODU3NDA5NTU1OV0sIFstNzMuOTYyMTE0NjE1NjY4MzYsIDQwLjcyNTE0ODA2MzM5ODg4XSwgWy03My45NTc5NDE4MzQ4OTQ5NywgNDAuNzI0NjQ5MjAyNjk5ODldLCBbLTczLjk2MTYxNTE4ODM1OTM2LCA0MC43MjU4NjU1NjMwNzQwMV0sIFstNzMuOTYyMjg1MjAyMzY5MjcsIDQwLjczNDA0NzY5NTg3NjY2XSwgWy03My45NTgzNzUwNzkwMjc4NSwgNDAuNzM4MDk2OTQ5MzY4NjhdLCBbLTczLjk1NDM5NTU1NDE3MDg3LCA0MC43MzkxMTQ3NzI1MjI0OF1dXV0sICJ0eXBlIjogIk11bHRpUG9seWdvbiJ9LCAiaWQiOiAiMCIsICJwcm9wZXJ0aWVzIjogeyJoaWdobGlnaHQiOiB7fSwgInN0eWxlIjogeyJmaWxsQ29sb3IiOiAib3JhbmdlIn19LCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9CiAgICAgICAgICAgIAogICAgICAgICAgICApLmFkZFRvKG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCk7CiAgICAgICAgZ2VvX2pzb25fYTExYTNlYzZkYTYzNGEzYjhmMGY5MGMxMzc1ZDI5MzQuc2V0U3R5bGUoZnVuY3Rpb24oZmVhdHVyZSkge3JldHVybiBmZWF0dXJlLnByb3BlcnRpZXMuc3R5bGU7fSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRkYjE0YTg4MjZmNDQ2Zjc5MDJkNWExMWY1NjZhZjI0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjAwNjA4YjIzNDMxNDg1YjgxOTIzMDY2NTkyZTUxYjUgPSAkKCc8ZGl2IGlkPSJodG1sXzIwMDYwOGIyMzQzMTQ4NWI4MTkyMzA2NjU5MmU1MWI1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ccm9va2x5bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGRiMTRhODgyNmY0NDZmNzkwMmQ1YTExZjU2NmFmMjQuc2V0Q29udGVudChodG1sXzIwMDYwOGIyMzQzMTQ4NWI4MTkyMzA2NjU5MmU1MWI1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBnZW9fanNvbl9hMTFhM2VjNmRhNjM0YTNiOGYwZjkwYzEzNzVkMjkzNC5iaW5kUG9wdXAocG9wdXBfNGRiMTRhODgyNmY0NDZmNzkwMmQ1YTExZjU2NmFmMjQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgCiAgICAgICAgdmFyIGdlb19qc29uX2RiMjJiMDFmZjQyMjRiMDE4YmVkMjY5MzVhMjIyODg3ID0gTC5nZW9Kc29uKAogICAgICAgICAgICB7ImJib3giOiBbLTc0LjA0NzcyOTYyNjk3MDM4LCA0MC42ODI5MTY5NDU0NDUxMiwgLTczLjkwNjY1MDk5NTM5NDc4LCA0MC44NzkwMzgwNDczMDcyMl0sICJmZWF0dXJlcyI6IFt7ImJib3giOiBbLTc0LjA0NzcyOTYyNjk3MDM4LCA0MC42ODI5MTY5NDU0NDUxMiwgLTczLjkwNjY1MDk5NTM5NDc4LCA0MC44NzkwMzgwNDczMDcyMl0sICJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbW1tbLTc0LjAxMDkyODQxMjY4MDMxLCA0MC42ODQ0OTE0NzI1NDI5M10sIFstNzQuMDEyMTc1OTY2MTQ2MzYsIDQwLjY4NDA5NTE4NTYyODQ3XSwgWy03NC4wMDgxNjQxNDU5MzkxLCA0MC42ODYxNzQ3MTcxNjE0N10sIFstNzQuMDA4NjAwNzI0MzY4MzIsIDQwLjY4NTkwOTU2NDY1NDc4XSwgWy03NC4wMTA5Mjg0MTI2ODAzMSwgNDAuNjg0NDkxNDcyNTQyOTNdXV0sIFtbWy03NC4wMDUwMDM3MzMxNTA3NiwgNDAuNjg3NjA1OTg1NDAwODVdLCBbLTc0LjAwNTYyOTg2MzMwMzk1LCA0MC42ODY3ODQyMDU1NDEwM10sIFstNzQuMDA3ODMyOTM3NjY2ODMsIDQwLjY4NzM4NTA1NTE2MjcxNF0sIFstNzQuMDA3NDIwMTIxNTQwOTksIDQwLjY4ODIwNjI5MDQzNTg5XSwgWy03NC4wMDUwMDM3MzMxNTA3NiwgNDAuNjg3NjA1OTg1NDAwODVdXV0sIFtbWy03NC4wMDM4MjAzODkxOTczNCwgNDAuNjg4OTI5NjQ0Njk5MjldLCBbLTc0LjAwNDU5MjcwNTIxNzcyLCA0MC42ODgyMTUyMjI5ODY1N10sIFstNzQuMDA2Nzg0Mzg0Mzk4MSwgNDAuNjg4ODI2ODc5OTU4MjVdLCBbLTc0LjAwNjM2NDYxMjI1MjY4LCA0MC42ODk2Njk2Njg2MzY5Nl0sIFstNzQuMDAzODIwMzg5MTk3MzQsIDQwLjY4ODkyOTY0NDY5OTI5XV1dLCBbW1stNzQuMDAyOTc1NjU0MzY1NjcsIDQwLjY5MDQyNjU3NTkyMDY3NV0sIFstNzQuMDAzNDA5MjE2MjQ1MTksIDQwLjY4OTYxMzI2MDY1NzUyNF0sIFstNzQuMDA1NzU5MDA2NzAzNDQsIDQwLjY5MDIzNjQwMDAxNjE4XSwgWy03NC4wMDUzNDIwOTYyNDkxNSwgNDAuNjkxMDkxNjAyOTc3ODVdLCBbLTc0LjAwMjk3NTY1NDM2NTY3LCA0MC42OTA0MjY1NzU5MjA2NzVdXV0sIFtbWy03NC4wNDM4Nzc2MTU3Mzk1LCA0MC42OTAxODc2NzYzNzY2M10sIFstNzQuMDQzNTA1OTYwMTI1NCwgNDAuNjg5Njg3MzU5NjM2MzQ1XSwgWy03NC4wNDI3MDQyODQyNjc2NiwgNDAuNjkwMTU1MjA0NjQ0MjldLCBbLTc0LjA0MjU1MzcyMDM3MzA4LCA0MC42ODk5NjI3NTkyODk1OV0sIFstNzQuMDQ0Mzg1MjE3MTEyNTYsIDQwLjY4ODUxNjE3ODQwMjkzNV0sIFstNzQuMDQ3NzI5NjI2OTcwMzgsIDQwLjY4OTkxNTMxODQ2NjI5XSwgWy03NC4wNDYxNDcwNzIwODY2NywgNDAuNjkxMTIyNjQ2MDMzMTY1XSwgWy03NC4wNDM4Nzc2MTU3Mzk1LCA0MC42OTAxODc2NzYzNzY2M11dXSwgW1tbLTc0LjAwMTMyNTYyMzk5ODEzLCA0MC42OTE0NjMxMDAzMzIwNl0sIFstNzQuMDAwNjk5MDU4NDE4NzksIDQwLjY5MDYxMTg1NzkxNjQ1XSwgWy03NC4wMDQ3OTQxNTI5NDU1MiwgNDAuNjkxNzYxNjIwMzc0MzldLCBbLTc0LjAwNDQwOTQxMjU5OTc3LCA0MC42OTI1Mjg4MDAzODkzMDRdLCBbLTc0LjAwMTMyNTYyMzk5ODEzLCA0MC42OTE0NjMxMDAzMzIwNl1dXSwgW1tbLTc0LjAxNjc0NzU2MDk2MDcsIDQwLjY5MzM0MzM2ODIxNzU3Nl0sIFstNzQuMDExODExODU2NDcyMzYsIDQwLjY5MjQ3OTMzNTA2NDM0XSwgWy03NC4wMTMzMzI2NDE0OTYwOCwgNDAuNjkyMDE5OTcwMTAyMzRdLCBbLTc0LjAxMTgyNTc1MzU0OTc0LCA0MC42OTEwNjQ4MTYyMTYxMzRdLCBbLTc0LjAxMzE2OTI2NDAyNzY0LCA0MC42ODgxNTQ3NzEyMDMxNl0sIFstNzQuMDIyNTkzNTk1ODEwNDIsIDQwLjY4NDM1OTY5NTk0OTkxXSwgWy03NC4wMjIxMzI1MDE4Njg4MiwgNDAuNjgzNzY3NjcyMzg1MjJdLCBbLTc0LjAyMzA1NTc0NzQ5NTk1LCA0MC42ODI5MTY5NDU0NDUxMl0sIFstNzQuMDIyNzU4OTkwMjk5NjEsIDQwLjY4NDI4NDQ0ODMzMjIzXSwgWy03NC4wMjYzMzQwNDI0MjQxMSwgNDAuNjg0ODAxNjk3NzI0MTRdLCBbLTc0LjAxOTczMzA4MTk3MTY4LCA0MC42OTMxMTQxMDc0OTMzNF0sIFstNzQuMDE2NzQ3NTYwOTYwNywgNDAuNjkzMzQzMzY4MjE3NTc2XV1dLCBbW1stNzQuMDAxNTQxNzI5MjAyNTcsIDQwLjY5Mjc4NTk2Mjc1MDEyXSwgWy03NC4wMDE3NDM2MjA0NTAxMywgNDAuNjkyNDA2NzQ5NzA1NDZdLCBbLTc0LjAwNDAwNzk1OTcxMDk4LCA0MC42OTMyMDgxOTk2MzIzNjZdLCBbLTc0LjAwMzQ1MzQ4NDkwNjI1LCA0MC42OTQwNTE2MzA2NzEzNF0sIFstNzQuMDAxNTQxNzI5MjAyNTcsIDQwLjY5Mjc4NTk2Mjc1MDEyXV1dLCBbW1stNzQuMDAwNzgyOTUyNzU2NzUsIDQwLjY5NDI4NjUxNTY2NDU5NF0sIFstNzQuMDAwOTU4Njg0MTY5OSwgNDAuNjk0MDY5MDgzNTgyMTldLCBbLTc0LjAwMzAxMzkzODI5MDgzLCA0MC42OTQ3Nzc4NDQ0NzkxMzRdLCBbLTc0LjAwMjM5ODAyNTgzNzk1LCA0MC42OTU3MTE2NTQ4NjQ0OF0sIFstNzQuMDAwNzgyOTUyNzU2NzUsIDQwLjY5NDI4NjUxNTY2NDU5NF1dXSwgW1tbLTc0LjAwMDQzMTQ3MzQwNDMzLCA0MC42OTcwNTI0NjYxNzg1MjZdLCBbLTczLjk5OTU5MzMzNTE1MjEsIDQwLjY5Njc4MjI2MTQ3NDM3NV0sIFstNzMuOTk5NDA3MzgzNzY5MjUsIDQwLjY5Njg4NTE4OTQ0NjAxNF0sIFstNzMuOTk5NTIzNzM5MDM1MTUsIDQwLjY5NjU3NDgyNjA0MDg0XSwgWy03NC4wMDA0MzE0NzM0MDQzMywgNDAuNjk3MDUyNDY2MTc4NTI2XV1dLCBbW1stNzMuOTk4Mzc3NjA2ODU3NzMsIDQwLjY5ODA2MzI5NTY0MzQ5XSwgWy03My45OTg4NzExNzA5NzY1NiwgNDAuNjk3MTU3NTc3Mjk1ODA1XSwgWy03NC4wMDEwNDkwMzA1NzUyNSwgNDAuNjk3OTA4MjM2Njk3MzldLCBbLTc0LjAwMDQ4NzY4NTYyNTE3LCA0MC42OTg3NTc3Nzc2MzQ1Ml0sIFstNzMuOTk4Mzc3NjA2ODU3NzMsIDQwLjY5ODA2MzI5NTY0MzQ5XV1dLCBbW1stNzMuOTk3OTk5NTc1NDAxMzQsIDQwLjY5ODc5NzY4NTU0NDI3XSwgWy03My45OTgwMjEwMjcyNTExMywgNDAuNjk4NzYxNzM2NTczNzddLCBbLTc0LjAwMDAxODQwNDMzNjIsIDQwLjY5OTQ2NjA0ODA3MzYyXSwgWy03My45OTk0NzQ2MzgzODkyNiwgNDAuNzAwMzIyNzc4MDE4MzA0XSwgWy03My45OTc5OTk1NzU0MDEzNCwgNDAuNjk4Nzk3Njg1NTQ0MjddXV0sIFtbWy03NC4wMzk5NTA0MDc4ODUxNCwgNDAuNzAwODkwNjMwNjQyNzA0XSwgWy03NC4wMzc3MTEyNDc5NjYzNiwgNDAuNjk5MzQ0MDQwMzQ3NzJdLCBbLTc0LjAzOTM0MDM3NjcwMTUsIDQwLjY5ODExNTUxNDgzNTk2XSwgWy03NC4wNDEyNDI2MTgzMjIyMiwgNDAuNjk5NTM2NzQxNDM0ODZdLCBbLTc0LjAzOTkxMjQ4ODcyNjI0LCA0MC42OTc3MDIwNDAzOTgzNzZdLCBbLTc0LjA0MTY2MDUxOTE0ODQyLCA0MC42OTY0NTI5NzE2Mzk3NF0sIFstNzQuMDQzNjczNzEyMzA3NzgsIDQwLjY5ODAyMDQwNDMzMDA3XSwgWy03NC4wMzk5NTA0MDc4ODUxNCwgNDAuNzAwODkwNjMwNjQyNzA0XV1dLCBbW1stNzMuOTk1Mzg0NDgzODI2NTEsIDQwLjcwMjY0MzAxMDA2NTgyXSwgWy03My45OTY2OTc2ODk5NzQ2NCwgNDAuNzAwODc2OTc2OTE3MDQ0XSwgWy03My45OTgxMzg3OTg5OTQ1NSwgNDAuNzAxNTE4Nzg4MjQ4MzddLCBbLTczLjk5NjE5MjI3MjI4NzMzLCA0MC43MDMzNzcxNDA4NjQxMl0sIFstNzMuOTk1Mzg0NDgzODI2NTEsIDQwLjcwMjY0MzAxMDA2NTgyXV1dLCBbW1stNzMuOTk1MDIxMzQ2NDkxNzcsIDQwLjcwMzE0Nzg2OTI0NjczXSwgWy03My45OTU0NDU2NDMxMjA2OSwgNDAuNzAzMjc1MzA1NDcxNzU2XSwgWy03My45OTUyOTM0NjcwMDkzMywgNDAuNzAzNTU0MDY1ODk3OTc2XSwgWy03My45OTQ4MDAzODI3NDg2OSwgNDAuNzAzMjkxOTU4MTQxOThdLCBbLTczLjk5NTAyMTM0NjQ5MTc3LCA0MC43MDMxNDc4NjkyNDY3M11dXSwgW1tbLTczLjk5NDc2OTM0MTkxNTY3LCA0MC43MDM5NTI4OTQ5NTM1NV0sIFstNzMuOTk0ODgyMzk5MDI0MzUsIDQwLjcwMzc4ODAyNTgzNzM4XSwgWy03My45OTUwMjkyNTkxNjQ0NywgNDAuNzAzODA4MjAwODY3OTldLCBbLTczLjk5NDg4MjA0NzI2NDEsIDQwLjcwNDAwODY1Mzg5NTE1XSwgWy03My45OTQ3NjkzNDE5MTU2NywgNDAuNzAzOTUyODk0OTUzNTVdXV0sIFtbWy03My45ODIzNzM0MDUwNTk2NSwgNDAuNzA1NTQzMzUwNDM3NDk1XSwgWy03My45ODI0MjI4NzE3OTg2MywgNDAuNzA1ODIyMDU1OTU0NTNdLCBbLTczLjk4MTAyMzkwNjE4MjgsIDQwLjcwNTg5ODkxMzg5MzUzNV0sIFstNzMuOTgyMzAyMDUxODM4OCwgNDAuNzA1NzM2OTc5Mzk5NjJdLCBbLTczLjk4MjM3MzQwNTA1OTY1LCA0MC43MDU1NDMzNTA0Mzc0OTVdXV0sIFtbWy03My45NjcxNTEwMTE3MjYwNywgNDAuNzE4MzE2MTI1OTMyNDFdLCBbLTczLjk2NjU2MjQxODk3NDk2LCA0MC43MTgwMTU4NjY4MDYyMjZdLCBbLTczLjk2NzMwNzQxNDc0NDE2LCA0MC43MTgzMTMwNjY2ODE1N10sIFstNzMuOTY3MTgyNDM2MzEyNDEsIDQwLjcxODQ4MzA1NjMwMTU2XSwgWy03My45NjcxNTEwMTE3MjYwNywgNDAuNzE4MzE2MTI1OTMyNDFdXV0sIFtbWy03My45NjYzNjUwMzMwNTI4MiwgNDAuNzE5MDU2MzMwNzg0MTM0XSwgWy03My45NjU4NTg0NzE3NTE3NywgNDAuNzE4NzczMjI4MzQ2NDVdLCBbLTczLjk2NjYyOTkzMzYwOTA3LCA0MC43MTkxMzI0Mjc4NjA4OF0sIFstNzMuOTY2MzY1MDMzMDUyODIsIDQwLjcxOTA1NjMzMDc4NDEzNF1dXSwgW1tbLTczLjk2NDM1MDkwNjQwMTUyLCA0MC43MjA0MDQwMzIzNzE4OF0sIFstNzMuOTY0Mzk3NjU5MTU5NDcsIDQwLjcyMDI5NjczNTAyOTE3XSwgWy03My45NjQ2ODI4MzY0MTI4LCA0MC43MjA0NzA0NTczNTk5M10sIFstNzMuOTY0NTkzMTM5NjQ3NjYsIDQwLjcyMDU0NDg0NDIxMTQ5Nl0sIFstNzMuOTY0MzUwOTA2NDAxNTIsIDQwLjcyMDQwNDAzMjM3MTg4XV1dLCBbW1stNzMuOTYzOTk3OTM3MjQ0NjMsIDQwLjcyMDkzODQzODA3MjczXSwgWy03My45NjQwODc2OTE0Nzg2OCwgNDAuNzIwNzU1NTI5NTIyMjE1XSwgWy03My45NjUwNDkxNDU0OTM2OCwgNDAuNzIxMzU3MzQ0MjUxNzZdLCBbLTczLjk2NDg5NDIyMDMxOTEsIDQwLjcyMTQ3NTEyMDg4MjAyXSwgWy03My45NjM5OTc5MzcyNDQ2MywgNDAuNzIwOTM4NDM4MDcyNzNdXV0sIFtbWy03My45NjIzNjU5Njg4OTQzOSwgNDAuNzI0MjA5MDYxNjE0MjI1XSwgWy03My45NjIwMDc0NDc5OTAxNSwgNDAuNzIzOTkxOTAxNjA3NzU0XSwgWy03My45NjIwNzI3MTk0Mzg4NSwgNDAuNzIzODgwMzAwNDAyOTNdLCBbLTczLjk2MjQ2NzkwMDExMDU4LCA0MC43MjQxMzE1Nzk2MDEyM10sIFstNzMuOTYyMzY1OTY4ODk0MzksIDQwLjcyNDIwOTA2MTYxNDIyNV1dXSwgW1tbLTczLjk2MjMwMzkxODcwNTU2LCA0MC43MzMxMTM2NjA5ODIxOF0sIFstNzMuOTYyMjYzNDA0MjMyOTYsIDQwLjczMjkxNTU1MTYyMzQ4XSwgWy03My45NjQwOTMyMTAxNzE2LCA0MC43MzI5MzE5NjE0NDIzM10sIFstNzMuOTYzNjU2MTE2NTIyNjMsIDQwLjczMzAwMjE3MTIxOTY1XSwgWy03My45NjIzMDM5MTg3MDU1NiwgNDAuNzMzMTEzNjYwOTgyMThdXV0sIFtbWy03My45NjEyNDY5ODAxMTUxOCwgNDAuNzQwNDIzNTk3MTE1MzNdLCBbLTczLjk2MTI2Mjg3NDEwNzE5LCA0MC43NDAzMjA1MDc0MTc0NjVdLCBbLTczLjk2MTY0MTYzOTc5MDQ3LCA0MC43NDAzNTYxMTI5MjQ0MV0sIFstNzMuOTYxNjI5ODI1NjM4NDEsIDQwLjc0MDQ1ODkyOTQ1NzQ5Nl0sIFstNzMuOTYxMjQ2OTgwMTE1MTgsIDQwLjc0MDQyMzU5NzExNTMzXV1dLCBbW1stNzMuOTY0MjEyMzAzOTU2NzcsIDQwLjc0NjYwNDMxODQ3NjY0XSwgWy03My45NjQ0NDUyMjc1MjYyNCwgNDAuNzQ2NDEwNDI1NzYzMTddLCBbLTczLjk2NDU4MzE4NDI2OTQ3LCA0MC43NDY0NTQ0MDA2NzMzMV0sIFstNzMuOTY0MTU5ODAyODg0MzEsIDQwLjc0Njg2NTU0NzM1OTUzXSwgWy03My45NjQyMTIzMDM5NTY3NywgNDAuNzQ2NjA0MzE4NDc2NjRdXV0sIFtbWy03My45NDE4MDAzMjcyOTQyNiwgNDAuNzY5MDQ2OTI2NjI0NjldLCBbLTczLjk1MzIyMDA5OTYzMTM0LCA0MC43NTY0MjY4NDIzMjAyNF0sIFstNzMuOTYxNTM4NTU0NjQ0NzMsIDQwLjc0OTcyMzExOTg0MDQ3NV0sIFstNzMuOTQ0NzI0Nzg0OTc0NTcsIDQwLjc2OTc4NjI3MTUzNDgyXSwgWy03My45NDAwNzY2NTc1MTY1NCwgNDAuNzcyOTI2MTg2MzU3OTM1XSwgWy03My45NDE4MDAzMjcyOTQyNiwgNDAuNzY5MDQ2OTI2NjI0NjldXV0sIFtbWy03My45MzgwNDY0MDYwMzQzOSwgNDAuNzgwODI5NTQ0Mjc1NTA1XSwgWy03My45Mzc1OTg5NDYyMjYyMywgNDAuNzgwNDY3ODQwODYxNDRdLCBbLTczLjkzOTU4Mzc4OTcyNDc2LCA0MC43Nzk1NzY0NzQwMDcxMl0sIFstNzMuOTM4NzQ0MjMwODkyNzUsIDQwLjc4MTA0Mzg3NjA0MjIyXSwgWy03My45MzgwNDY0MDYwMzQzOSwgNDAuNzgwODI5NTQ0Mjc1NTA1XV1dLCBbW1stNzMuOTIxMzM3NTI0MTkyODEsIDQwLjgwMDg1MjEwNzUwMjE3XSwgWy03My45MTQ0MzgyNzIzMzMxNCwgNDAuNzk1NjY1NTE3ODYzODNdLCBbLTczLjkxNTE0MTM0NDI2MTEsIDQwLjc5MjAxMjQ4Mjk5NDg1Nl0sIFstNzMuOTI0NDgwNTIyODA0MjUsIDQwLjc4MjMyMDQ5MDY0NThdLCBbLTczLjkyODEwMTE4OTg3MzM5LCA0MC43ODA5MjAzMjAwNDIxMTRdLCBbLTczLjkzNTAyMzQ1MTM0NTEyLCA0MC43ODMwMDYzODIwMjg3OV0sIFstNzMuOTM1NzEyNjU5OTc2OTcsIDQwLjc4NTY4MDQ4OTQ5MjUzXSwgWy03My45MzI0MDE0NTUxMzY5MywgNDAuNzg5NzIwMjkwMTcwMTNdLCBbLTczLjkyOTcyNDAwNzgxOTE1LCA0MC43OTEzNjYxNzgzNDMwMDRdLCBbLTczLjkyODA3MjczNTc1NjYsIDQwLjc5MDgyMzM5MTI4MzAxXSwgWy03My45MjYxMDQxMDE4NjY0MSwgNDAuNzkwNzMxNjA3NjE5ODldLCBbLTczLjkyNTU4NzI5ODc5NjIyLCA0MC43OTE4MjA4MzA5MDY5M10sIFstNzMuOTI3ODY4ODkyNDEwODQsIDQwLjc5MDk1NDgzODYzNDM4NF0sIFstNzMuOTI4MjY3MjAyOTYxNTYsIDQwLjc5MjMyODUyMzk0ODE2NF0sIFstNzMuOTI3MjQ3NzA3ODkyODIsIDQwLjgwMDM5Mjk1NzM2ODk0XSwgWy03My45MjUyNzUyMTAyMDEyNSwgNDAuODAxOTk4NTIyNzQzMzFdLCBbLTczLjkyMTMzNzUyNDE5MjgxLCA0MC44MDA4NTIxMDc1MDIxN11dXSwgW1tbLTczLjkyOTM2NDgwMzQ1MzksIDQwLjgwMjk1NDU0NzI5ODUyNl0sIFstNzMuOTI5NTE1Mjg5Mzc0ODIsIDQwLjgwMjk2ODkzNDQ2OTM1XSwgWy03My45Mjk2OTU0MDY5NDI2NiwgNDAuODAzNDI3MjEzNDEzNTg1XSwgWy03My45Mjk1Njg0NjkyNzI2NCwgNDAuODAzMzgxMzkxMjcwODNdLCBbLTczLjkyOTM2NDgwMzQ1MzksIDQwLjgwMjk1NDU0NzI5ODUyNl1dXSwgW1tbLTczLjkyODI5NzY4Njc3MTI5LCA0MC44MDM0OTUwMzc2Nzk5NF0sIFstNzMuOTI4NDUyNDA1MzYxNDcsIDQwLjgwMzUxMTU3NDE5MTYzXSwgWy03My45Mjg2MzAxNjcxNDI4NywgNDAuODAzOTY4NDIzMzEwNDNdLCBbLTczLjkyODUwMzY5NzUwNTY5LCA0MC44MDM5MjQzODU5MzU4NDRdLCBbLTczLjkyODI5NzY4Njc3MTI5LCA0MC44MDM0OTUwMzc2Nzk5NF1dXSwgW1tbLTczLjkyNjQwNTU2OTIxMTE2LCA0MC44Nzc2MjE0NzY1MzczMzVdLCBbLTczLjkyMjM5NzY4MTY5MzE3LCA0MC44NzY3ODAyMjMxNDEyXSwgWy03My45MjEyNTU0MTA3OTg2MiwgNDAuODczMDgyNDQ4ODI1MDFdLCBbLTczLjkxOTc5MzAxNjcyMzU2LCA0MC44NzM2MDY1MTI2NjAzOV0sIFstNzMuOTIwODc1NTkxOTk2NjksIDQwLjg3NTQ2Mzk1MDAyMzIxXSwgWy03My45MTg0OTk5NTY2MjE5OSwgNDAuODczMTkxNzE1NjAzODNdLCBbLTczLjkxNzU3NzI5ODg0NzMsIDQwLjg3NDU0ODY3ODU0NzE4NV0sIFstNzMuOTEyNTAyNzkyNTkzMjYsIDQwLjg3MzcxOTQxMjM3MDI1XSwgWy03My45MTA0MjY0NDA0ODUwNywgNDAuODcxNDg1NDM4MDYyMDRdLCBbLTczLjkxMjU0Nzc1MTMwMjgyLCA0MC44NjY1MTQ5NDMwMDQzXSwgWy03My45MTU4OTkxMTY0NTg2LCA0MC44NjQzMDgwMzc1ODI0OF0sIFstNzMuOTE1Mzg2NzMwNTExNDMsIDQwLjg2MzA4NDM4NDIwMDY4XSwgWy03My45MTk0Mzg1MzU0MTQ0OSwgNDAuODU4ODU1NDIxMzQzOTldLCBbLTczLjkyMTU5MDE0ODQ4MjI4LCA0MC44NjAwNzI4MDAwMjY4N10sIFstNzMuOTIwMzY0NzcyNDk3NjksIDQwLjg1ODE2NDkzNzA5OTEzXSwgWy03My45MzQ5MTUzMzU3ODY1LCA0MC44MzUyMzA4MjE5Mzg3OF0sIFstNzMuOTM0MzM4NjQ1ODQ3MzksIDQwLjgwOTU2MjIxMzgzMTM1Nl0sIFstNzMuOTI5MDM0OTAyNDAzMSwgNDAuODAxMDgwOTAzODUxODU0XSwgWy03My45MjkyNzkzNjc0MTE3MSwgNDAuNzk1ODUzMTM5NTIwNTldLCBbLTczLjk0MzIzOTg1NzM5NzUxLCA0MC43ODMzMjc4NTE2OTQzNF0sIFstNzMuOTQyOTMwNDM3ODEzOTcsIDQwLjc3NDY3NjI2ODAzNTc5XSwgWy03My45NzEzNTc1Mjk0MTg2OCwgNDAuNzQzODM4NDU1MzU5NDRdLCBbLTczLjk3MjQ4OTk0MTc0NzQxLCA0MC43MzU4MDMyODAxMDc2XSwgWy03My45NzQ1MTQ1OTc3MjU5OSwgNDAuNzM1ODk0NTk4NDExMjNdLCBbLTczLjk3Mjc2MzA4MzgwMzUzLCA0MC43MzU1MDUwODc0NzM1NF0sIFstNzMuOTc0NDQwNjUwODI1OTMsIDQwLjczNTMxNjc3MTkwMDU0XSwgWy03My45NzE0OTAzOTA5MjgzMiwgNDAuNzI3MzUwMDk4MTA5ODk1XSwgWy03My45NzY3MTIyMTUzOTY2OSwgNDAuNzExNTM1NzY1MTc4MzVdLCBbLTczLjk4MTI0NTc5NTY5OTQ2LCA0MC43MDk4MjYyMTQ2MDEyMl0sIFstNzMuOTk4MDgzNTExODY5OTksIDQwLjcwODUwOTYxNTM2NzEzXSwgWy03NC4wMDExODY4NTI2MjgzLCA0MC43MDY4NTk4MjU3NzE3Nl0sIFstNzQuMDAxNDM2NjExNzk0MDIsIDQwLjcwNDg3MjE3NzcwNTIyXSwgWy03NC4wMDMzMjMwNzI3MDc4NywgNDAuNzA1NjI4NTk1MjIwMDRdLCBbLTc0LjAwNDU5MDAzODgzNjc0LCA0MC43MDQ3ODc3NTI5NDQ5OV0sIFstNzQuMDAzNDk2MzIwNDIzMjUsIDQwLjcwMzc5Njc2OTI2NzY4XSwgWy03NC4wMDUzNTAyNzIyNDc1NSwgNDAuNzA0MzEwMDc5OTYxNTJdLCBbLTc0LjAwNDI3MjU4NzUyMSwgNDAuNzAzMDE1NjY2NDExNDc0XSwgWy03NC4wMDU2NjMzMDY0MDY1OSwgNDAuNzA0MTA0MjQ0NDc4MjE2XSwgWy03NC4wMDU0OTQyNzgwNTEwNSwgNDAuNzAyNDMxMzgxOTU1NTddLCBbLTc0LjAwNjc4NTAyMTkxMDUyLCA0MC43MDM1NjgxMjc5MDUyNF0sIFstNzQuMDA5MzA5MDc2NTU0ODMsIDQwLjcwMTk1NDYwMzAyMjU1XSwgWy03NC4wMDc3NTU0OTE1MDY0LCA0MC43MDE1NDgwMDE2NzE3N10sIFstNzQuMDA4MzQ5Mjc1NTkxLCA0MC43MDA2NjkzNDgzODgyXSwgWy03NC4wMDk2MDA1MjI2MzI4OCwgNDAuNzAxODY1NDgxOTE3ODNdLCBbLTc0LjAxMTE2NjY0MTUxODg3LCA0MC43MDE0NzcyMDIyMDgzMV0sIFstNzQuMDEwODE1MzA2NjczNzgsIDQwLjcwMDIwMDQ0NDYwMzcxNl0sIFstNzQuMDE1MDY4MTgyNjkzMDQsIDQwLjcwMDMxODI1NzU1NDkxXSwgWy03NC4wMTkzNDI1NDYyNDQ5LCA0MC43MDYwOTM2NzMwMjk2NV0sIFstNzQuMDE3NzcwMTQyNTQ1MDUsIDQwLjcxMjgzNDU3NDc4OTEwNl0sIFstNzQuMDE2NjI0MjQ0MjUyOTEsIDQwLjcxMjE1NzMxODk5NTI3XSwgWy03NC4wMTYzMjAwNjYyNzU4MSwgNDAuNzEzNDA3OTgyNDc4MjRdLCBbLTc0LjAxNzcyNDk2MjE5Mjk2LCA0MC43MTMwNzAxODE2MjI3MV0sIFstNzQuMDE2NzEwMTg2MDU4MjMsIDQwLjcxODYyNDE3NjA1Nzk2NV0sIFstNzQuMDEzMDY4MDU0OTIzMTgsIDQwLjcxODkyMjE5MzgyNTQ3XSwgWy03NC4wMTQ1MjI3ODk5MDAxOCwgNDAuNzIwNTMyMDUwMzI3ODJdLCBbLTc0LjAxMjk2NTU4NTI2ODI1LCA0MC43MjAzMjg2NzU1ODcxMl0sIFstNzQuMDExNjUzMjY1Njk5NDQsIDQwLjcyNTg3MTc2MTg1MTM0XSwgWy03NC4wMTUyMDQyNjUzMTE0MywgNDAuNzI2MzYxOTQ5Mzc5NTZdLCBbLTc0LjAxMTU0MjAxODk3NjA2LCA0MC43MjY0NDczNDY5MjcwN10sIFstNzQuMDExMzgzMjM2MDQ3NTYsIDQwLjcyODIyOTI3MjM2NzE2XSwgWy03NC4wMTQzOTA2OTkzMjM4OCwgNDAuNzI4NDYzMDQ3NTIwMTE1XSwgWy03NC4wMTQwMzc5NjkyNDgsIDQwLjczMDY5NDIxODg0Mzg3XSwgWy03NC4wMTExNjE5NTY5NjQ3NiwgNDAuNzMwNDUwNjc2MzQ5MDNdLCBbLTc0LjAxMDk0MTI3Mzc0MTMyLCA0MC43MzMwMjAzMTMzNDEyNl0sIFstNzQuMDEzOTk5NTcyNDA5NjYsIDQwLjczMzMzMjI3NzUxNzddLCBbLTc0LjAxMDczNDI0NDUwMjA5LCA0MC43MzM0NDI1ODc5Mzc5Nl0sIFstNzQuMDEyMDE3OTIwMTA0NzQsIDQwLjczNDA2Mzc0NDQ1NjMxXSwgWy03NC4wMTA4MTM1OTQ3OTExLCA0MC43MzQyODM0NDM2NDc1NTZdLCBbLTc0LjAxMDM5MzAzMTM0NTU2LCA0MC43MzkxNzQyOTYwNTkxN10sIFstNzQuMDEyNjU5MjgyMDg0OSwgNDAuNzQwNzQ3NjM4NDk3NDJdLCBbLTc0LjAwOTQ5MTU0NjIxMjgzLCA0MC43NDA3NDI3MDk0Mzk3N10sIFstNzQuMDEyMTE3NDU4NzIxMzksIDQwLjc0MTc1ODUxNjIxMTU2XSwgWy03NC4wMDk1MTk0NzE0NTAwOSwgNDAuNzQxNDkwMzAyMTk4NTddLCBbLTc0LjAwOTA5MTU2ODQ2MjAxLCA0MC43NDI4ODYxNDk1NzQ5NF0sIFstNzQuMDEyMTQ4MTMxODM1OTQsIDQwLjc0MzU1OTMwMTU0NzUxXSwgWy03NC4wMDg5MDAzMjk2Mjg0MiwgNDAuNzQzOTE3OTI3MDk1OTldLCBbLTc0LjAxMTc4Mjc1ODI4MDkyLCA0MC43NDU2MDE1NzIyNTUzN10sIFstNzQuMDA5NDYzODk4NTU5NzIsIDQwLjc0NTc1MDE0MzY1OTQyXSwgWy03NC4wMTE1OTEyMzQzNDAyMiwgNDAuNzQ2NjAxNTA1NDc1OTVdLCBbLTc0LjAwOTI0MzE0NjU4Njc3LCA0MC43NDY3NjI3OTA3NTM3Ml0sIFstNzQuMDExNDA2NzM5MzU1MjgsIDQwLjc0NzYzMDU1MDU3MDZdLCBbLTc0LjAwOTA1ODQ3OTAxMzQ1LCA0MC43NDc3ODU2NDUzMzI4MDRdLCBbLTc0LjAxMTIxNTYxODEzNDE2LCA0MC43NDg2Nzc5OTIyNDM1MzZdLCBbLTc0LjAwODQyNjM2NDQ3MjI2LCA0MC43NTIxNTc4NTAyMzkyNV0sIFstNzQuMDA5OTkwNTU4MTk3NTIsIDQwLjc1MjgxNjE4NzE0OTA2NV0sIFstNzQuMDA5OTcwNTg3OTcwMjMsIDQwLjc1MjkzMzU2NDE1MzE0Nl0sIFstNzQuMDA4MzUzNTI4Mzg4NDQsIDQwLjc1MjM1MDczOTM0MjI4XSwgWy03NC4wMDQ4MDM5MjU2MDE4NSwgNDAuNzU3ODA5ODQzMTY0NjldLCBbLTc0LjAwNzAwMzU4OTA0MDE1LCA0MC43NTkyMzE4NzAzNDEwN10sIFstNzQuMDAzODA2NTc4MzUwMDgsIDQwLjc1OTUxMDczMTQ2NTk4XSwgWy03NC4wMDIzMzUyODEzMDA1NywgNDAuNzYxNTQzNzI3MDAxNjFdLCBbLTc0LjAwNDU1NjQxNTYwOTIyLCA0MC43NjI1MjQyNjUwMjUwMzZdLCBbLTc0LjAwMTUzMzA5MDY2OTgyLCA0MC43NjI2NDQ1OTgxMjc1OF0sIFstNzQuMDAzNjEyMTQ3OTQxNzUsIDQwLjc2Mzc3NzA0MzkwOTcxXSwgWy03NC4wMDA5NzMwODAyMjAxOCwgNDAuNzYzNDIwMjcxNzI1NjZdLCBbLTc0LjAwMzE0NjUyOTY3MzY2LCA0MC43NjQ3MzYyODEzOTE4XSwgWy03My45OTk2MjI2MzQ1ODE4NywgNDAuNzYzNTU5MDgxMjEwNDQ1XSwgWy03NC4wMDIyODgwMjM3MTQ4MywgNDAuNzY1NTYxNTQ0Mjk3NzVdLCBbLTczLjk5ODI3MDkwMzA4MzUsIDQwLjc2NTU1MjIzMzQxMzI0XSwgWy03NC4wMDE1NjE4MDU3NTQ4LCA0MC43NjY5OTY0OTkzNjgyOF0sIFstNzMuOTk4MDY2NzU5MDUzNTQsIDQwLjc2NTg3MTg4MTEzNTY4XSwgWy03My45OTczNzgwODQ0Nzk2NSwgNDAuNzY2ODIzMzg2Mzc5NTNdLCBbLTc0LjAwMDY0OTUwNTMwNDE4LCA0MC43NjgyNDUyMzYxMDU1Nl0sIFstNzMuOTk3MTU1ODg5NDkyMTIsIDQwLjc2NzEyODY5NjE3Mjc4XSwgWy03My45OTY0NTcxNTQwNTA0MiwgNDAuNzY4MDk4ODE1Nzk1NjNdLCBbLTczLjk5OTczNTkwMjQ3ODUzLCA0MC43Njk1MDYxNzczMzE1MTVdLCBbLTczLjk5NzA3MTc2MDM5MzExLCA0MC43Njg3MzI2NDM1NzY4NF0sIFstNzMuOTk5MDI2ODI4MzI5MDQsIDQwLjc3MDQ2MzI3Mjk4MjA1Nl0sIFstNzMuOTk2MzEzMjcwMjIwODcsIDQwLjc2OTc5ODgzNjMzNjQyXSwgWy03My45OTQ5MzUwMTY1OTAwNiwgNDAuNzcxNDY4MTQ2NTc3OTY2XSwgWy03My45OTY2ODU0NDQzMTE2NywgNDAuNzczNTAzNjg4MDQ2MjU0XSwgWy03My45OTQxNjMyODQ1NjMsIDQwLjc3MjQ4NzE5MTUyMzg0NF0sIFstNzMuOTk2MTc5NDU5OTczNzksIDQwLjc3Mzk4Njk1NDM1MTUxXSwgWy03My45OTM5MzY5NDE4MjIxMSwgNDAuNzczMTc5NTEwOTY2ODldLCBbLTczLjk5MjI2NzA4OTAzNTQxLCA0MC43NzUxMTYwMzM4NTg1NDVdLCBbLTczLjk4ODg2ODYxNzQwMDAzLCA0MC43Nzk2OTI5MjI5MTE0XSwgWy03My45OTE1NTEwNTkyMjc0LCA0MC43Nzk1NzQ4MjE0MzczNF0sIFstNzMuOTg4ODg2MTQ0MTE2OTYsIDQwLjc3OTg3ODg5ODUzMjcxXSwgWy03My45ODU0NjU4MTE5NzAyNywgNDAuNzg1MzYwNzAwNTc1NDQ1XSwgWy03My45ODcxMTkwMTM5NDI1NiwgNDAuNzg1MjEwMzE5MDA0MDddLCBbLTczLjk4NTQyOTMyMTI2OTQyLCA0MC43ODU0MTM5NDIxODQ2MjZdLCBbLTczLjk4NDY1NTA3ODgzMDIzLCA0MC43ODY1MzQ3NDE4MDc5Nl0sIFstNzMuOTg1OTQ5NTYxNTU2NTgsIDQwLjc4NjQ4NzExMzk2NjQ5NF0sIFstNzMuOTU4ODE4OTIyMzM5OTcsIDQwLjgyMTUxODUyNDg0Njc0XSwgWy03My45NTk2MDMzMjQ2MDI4LCA0MC44MjI5OTQ2ODY3ODMzMl0sIFstNzMuOTU4MjAwMTkzNTQwMTQsIDQwLjgyMjI4MzEzNjkxODFdLCBbLTczLjk1OTU1NTc1NDkzODYzLCA0MC44MjM2OTM3OTc3Njg3N10sIFstNzMuOTUxMzE2NDExMTksIDQwLjgzMjQ1MDUxMTk3MDYxXSwgWy03My45NDYxMjQxNjQyMTc3MiwgNDAuODQzODkyNDk2NTU3MTJdLCBbLTczLjk0Njk2NDQxNzU5NTk1LCA0MC44NTA0NjU1MjU4MTgxOF0sIFstNzMuOTQxODY5OTY0MjY2NzMsIDQwLjg1Mzg2NzczOTQ0Mjc5XSwgWy03My45MzI0MjUzODIxNTM0MSwgNDAuODY3NTY4MjQ4NDIzNjQ1XSwgWy03My45Mjk5NzY4Njc0MzE0OCwgNDAuODc0MzM4OTYyMzMwMzZdLCBbLTczLjkyNjQwNTU2OTIxMTE2LCA0MC44Nzc2MjE0NzY1MzczMzVdXV0sIFtbWy03My45MjM1OTc0MjAyMDM4OSwgNDAuODc4ODk4NzEyOTkyNjJdLCBbLTczLjkyMzYzNjk1Mjg5MjI0LCA0MC44Nzg4MTUzNTU5MzIwNzZdLCBbLTczLjkyMzY3OTE5MzExNjgxLCA0MC44Nzg4MjYwNzQ0OTg2Ml0sIFstNzMuOTIzNjI5NzM5NTA0MTQsIDQwLjg3ODk2Mzk0MzI0MzI2NF0sIFstNzMuOTIzNTk3NDIwMjAzODksIDQwLjg3ODg5ODcxMjk5MjYyXV1dLCBbW1stNzMuOTA2NjUwOTk1Mzk0NzgsIDQwLjg3NTc1MjUwNDE5MjZdLCBbLTczLjkwODkzMjM1MjQxNTg5LCA0MC44NzIxNTczNDc5NzA2MTRdLCBbLTczLjkxNTc4NTE1NTcxODk2LCA0MC44NzU3MTY5NDUwNjQzMDVdLCBbLTczLjkxMDMzMTkzNTY2NDIzLCA0MC44NzkwMzgwNDczMDcyMl0sIFstNzMuOTA2NjUwOTk1Mzk0NzgsIDQwLjg3NTc1MjUwNDE5MjZdXV1dLCAidHlwZSI6ICJNdWx0aVBvbHlnb24ifSwgImlkIjogIjAiLCAicHJvcGVydGllcyI6IHsiaGlnaGxpZ2h0Ijoge30sICJzdHlsZSI6IHsiZmlsbENvbG9yIjogIm9yYW5nZSJ9fSwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifQogICAgICAgICAgICAKICAgICAgICAgICAgKS5hZGRUbyhtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQpOwogICAgICAgIGdlb19qc29uX2RiMjJiMDFmZjQyMjRiMDE4YmVkMjY5MzVhMjIyODg3LnNldFN0eWxlKGZ1bmN0aW9uKGZlYXR1cmUpIHtyZXR1cm4gZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlO30pOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZmQwMTQ2ZTZhMDE0NTlkODhkY2Y5ZmFkNGQ2N2E4ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc1YWE5YTU5NWQ4MDRkZjFhZDdmMTBhN2ZmYzIxMzkzID0gJCgnPGRpdiBpZD0iaHRtbF83NWFhOWE1OTVkODA0ZGYxYWQ3ZjEwYTdmZmMyMTM5MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFuaGF0dGFuPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wZmQwMTQ2ZTZhMDE0NTlkODhkY2Y5ZmFkNGQ2N2E4ZS5zZXRDb250ZW50KGh0bWxfNzVhYTlhNTk1ZDgwNGRmMWFkN2YxMGE3ZmZjMjEzOTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGdlb19qc29uX2RiMjJiMDFmZjQyMjRiMDE4YmVkMjY5MzVhMjIyODg3LmJpbmRQb3B1cChwb3B1cF8wZmQwMTQ2ZTZhMDE0NTlkODhkY2Y5ZmFkNGQ2N2E4ZSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAKICAgICAgICB2YXIgZ2VvX2pzb25fNDYzM2NjZDhhYmRmNDgyNmI4OTM0YzkwNGJlNTdlNzIgPSBMLmdlb0pzb24oCiAgICAgICAgICAgIHsiYmJveCI6IFstNzMuOTMzMTQzMDY3MDkyNjIsIDQwLjc4NTM1NjYyMDUwODQ0NSwgLTczLjc2NTMzMjQzOTk1MjkxLCA0MC45MTU1MzI3NzYwMDAwN10sICJmZWF0dXJlcyI6IFt7ImJib3giOiBbLTczLjkzMzE0MzA2NzA5MjYyLCA0MC43ODUzNTY2MjA1MDg0NDUsIC03My43NjUzMzI0Mzk5NTI5MSwgNDAuOTE1NTMyNzc2MDAwMDddLCAiZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1tbWy03My44OTY4MDg4MzIyMzc3NCwgNDAuNzk1ODA4NDQ1MTU5NzddLCBbLTczLjg5Nzk2ODM5NzgzNzQyLCA0MC43OTU2NDQ4MzkxNjE5OV0sIFstNzMuODk5MTk0MzQyNDk5ODMsIDQwLjc5NjUwMjQ1NjAxODIxXSwgWy03My44OTc4ODI1MzI0MDE4NSwgNDAuNzk3MTE2NTMyMTQ3MDNdLCBbLTczLjg5NjgwODgzMjIzNzc0LCA0MC43OTU4MDg0NDUxNTk3N11dXSwgW1tbLTczLjg4ODg1MTQ4NDk2MzM1LCA0MC43OTg3MDYzMjg5NTg3NDRdLCBbLTczLjg4NjY1MTA4NTI0NTksIDQwLjc5ODAzODE5NjY5OTg4NV0sIFstNzMuODgzNzU3NDE1OTAxNiwgNDAuNzk1NzA4NTY1NDE5NzhdLCBbLTczLjg3Mjg4NDU3NDQ1NjY2LCA0MC43OTE0NTIxMDgyMDcxMjVdLCBbLTczLjg3MDgwODg4NjMzNTU3LCA0MC43ODc4OTY2OTE2ODM3N10sIFstNzMuODczMDg3NjE2ODg5MzUsIDQwLjc4NTg1NDk1Mjc4MzM3NF0sIFstNzMuODc4MzA2ODAwNTc2NSwgNDAuNzg1MzU2NjIwNTA4NDQ1XSwgWy03My44ODkwNTIxMjQ0MzE5NywgNDAuNzg3MzcyNTYwMjU4MDZdLCBbLTczLjg5MjgyMjgzNjEwOTM2LCA0MC43OTI4MTcwODE5NTE0Ml0sIFstNzMuODkxNzkyODk2ODY1OCwgNDAuNzk2Nzc1MjQ1NzU4NjRdLCBbLTczLjg4ODg1MTQ4NDk2MzM1LCA0MC43OTg3MDYzMjg5NTg3NDRdXV0sIFtbWy03My44OTgzMzAzNjI3MDU1NiwgNDAuODAyNDEyODIwOTQwMDFdLCBbLTczLjg5NjQ2NjY4ODM0NTcxLCA0MC44MDA3OTA0NzA4OTEzXSwgWy03My45MDAyMTAwNDk5MzE0NywgNDAuNzk5MjY0MTU1ODk1OTddLCBbLTczLjkwMDAzNzM1ODE1NzQyLCA0MC44MDA5MDg3NDIwNTAxNzZdLCBbLTczLjg5ODMzMDM2MjcwNTU2LCA0MC44MDI0MTI4MjA5NDAwMV1dXSwgW1tbLTczLjc4ODMzMzQ5ODM0NTMyLCA0MC44MzQ2NjcxMjk3NTkzMjVdLCBbLTczLjc4OTMxMjIzNjA2NjI0LCA0MC44MzQ0NjQ4ODY1NTM0M10sIFstNzMuNzg5NTEwMTk4NzIzMTYsIDQwLjgzNTM2NDA0MjUyNTcxXSwgWy03My43ODg0NTcwMDAxNTIxNSwgNDAuODM1MzA5OTE0MzE1MzldLCBbLTczLjc4ODMzMzQ5ODM0NTMyLCA0MC44MzQ2NjcxMjk3NTkzMjVdXV0sIFtbWy03My44MDIyMjI5NTM1NTI2NCwgNDAuODQxNjM0ODEzMTQ0MDhdLCBbLTczLjgwMjYzODExMTU2MTUyLCA0MC44NDEwODExNTMyNjcwN10sIFstNzMuODA2OTQ2MDg2NDE1OTksIDQwLjg0MTQ2MjQ0NzE4NjM0XSwgWy03My44MDY4MDgwMTM3MjM5MSwgNDAuODQyNDg5MTM5OTg3NTFdLCBbLTczLjgwMjIyMjk1MzU1MjY0LCA0MC44NDE2MzQ4MTMxNDQwOF1dXSwgW1tbLTczLjc4MDYxNzMwODI5NzI0LCA0MC44NTU3MzUxNzU4MTAwMV0sIFstNzMuNzgwOTA0NzY4NTEyOTEsIDQwLjg1NDk2ODEzMzE2MjIxXSwgWy03My43ODE1NjM4OTY5OTk0LCA0MC44NTUwMDEyODY0MzM4MV0sIFstNzMuNzgxMjI3ODIzMzIwMTgsIDQwLjg1NjA4Nzc4OTE2MjczXSwgWy03My43ODA2MTczMDgyOTcyNCwgNDAuODU1NzM1MTc1ODEwMDFdXV0sIFtbWy03My43ODI4MzI5MTQ0Nzg2OSwgNDAuODU1ODcwMzA4NDQ1NzRdLCBbLTczLjc4MzAyMzcxNTIyNDk5LCA0MC44NTUwOTI3NjY2NjQ5XSwgWy03My43ODM5NDY5OTcyMjAxMSwgNDAuODU1NjMwNDM3NTI2NjFdLCBbLTczLjc4MzQzNDg3NTAxMzg1LCA0MC44NTYzNjI4NjU5NTg3OV0sIFstNzMuNzgyODMyOTE0NDc4NjksIDQwLjg1NTg3MDMwODQ0NTc0XV1dLCBbW1stNzMuNzkwMTg3NDUxOTUwMDUsIDQwLjg1ODYwOTkxNzM4NjE2XSwgWy03My43ODgwNDM0Mjk3NTgsIDQwLjg1NzU1OTkxNzY4NzExXSwgWy03My43ODg0NzczMjY1MzM2MiwgNDAuODU0NDAwNTIwNTMyMTddLCBbLTczLjc4NjkwNzM0NzAyNjk3LCA0MC44NTQwNjM5NzIyOTkxNl0sIFstNzMuNzg3OTYyNjQyODgwNzMsIDQwLjg1MzQ3NDcyMDkzNTU0XSwgWy03My43ODMzODE1ODYxMDM5NCwgNDAuODUxNTg2NzMzOTE0MzRdLCBbLTczLjc4NDIwMDQ3MTM0Mzg4LCA0MC44NTAwNjA2NDQyNDA2MV0sIFstNzMuNzgxNTQ0NDkwODg2LCA0MC44NDk0MDA0MzQ2NDMyOV0sIFstNzMuNzgyNjc0NjcwNzg3MTcsIDQwLjg0ODEzOTY3Mjk0NjU1XSwgWy03My43ODA5NzgyMDkzODk1NiwgNDAuODQ4NDU4MzQ3OTEzNTNdLCBbLTczLjc4MjYzNzQwMzk3ODk0LCA0MC44NDgwNzI2NDkyNDU3ODZdLCBbLTczLjc4MTQ4NDMxOTUwNTYyLCA0MC44NDc4ODIxOTM4NDg2MjZdLCBbLTczLjc4MjE2MzkzNDM1NTgxLCA0MC44NDY2MzYzMzc3ODA4MTVdLCBbLTczLjc4MDQwMzI2OTU4NTk1LCA0MC44NDY5MzExMzQxNjYwOF0sIFstNzMuNzgzMzY1MzYxMzUzNDYsIDQwLjg0NDQ0NDcyMjk4MTY4NF0sIFstNzMuNzgzNDg0Mjg3NDg4MTgsIDQwLjg0MzY3ODU0NTk5ODQyXSwgWy03My43ODI5MDY1MDk0OTc2NSwgNDAuODQzOTM2MTI1ODQwMDhdLCBbLTczLjc4MDUyNzM2MDQ4NTQ2LCA0MC44NDQ1MjUxNDAzMzgxNTZdLCBbLTczLjc3OTkyNzAzNzQ0NDM4LCA0MC44NDM4ODMwODEzNTU4M10sIFstNzMuNzgzNDc0ODEyNDkyNTQsIDQwLjg0MzY1NDczODEwOTcwNl0sIFstNzMuNzgyODg3NzgzMDE0ODYsIDQwLjg0MjQ5NDgyODg0OTYyXSwgWy03My43ODAyMjc3Mzg3MjY4MSwgNDAuODQzNzc4MTgxMjk3NjldLCBbLTczLjc4Mjg2NDk5MzA0OTE5LCA0MC44NDI0NzgxMDE4ODI2OF0sIFstNzMuNzgwNTk3MzU4MjI1OTUsIDQwLjg0Mjc4NjU5OTk0MDk1XSwgWy03My43ODIxNjYyNDQxODk2NCwgNDAuODQxNjg5MTQ0MTEwMDg0XSwgWy03My43ODA0MjU3NzE4MTUzMywgNDAuODQyNDk0Mzk0MjA2ODJdLCBbLTczLjc4MDE5NTk5OTU1Mjg3LCA0MC44NDIwNDYyMTA5NzYxNF0sIFstNzMuNzgxODUwNDgxOTc3ODMsIDQwLjg0MTY1Mzk0NjM5NDI3NF0sIFstNzMuNzgwNzk3NTI5MjM0NTksIDQwLjg0MTI1NjE0NjA0ODM2Nl0sIFstNzMuNzgyODIyNjAxMzk3MzgsIDQwLjgzNjMzODE1NTg4Nzg3XSwgWy03My43ODQ4NTAwOTIyMjY2NSwgNDAuODM3NDcwNDg5MTc4NDg2XSwgWy03My43ODU2Mzk5Nzg0NTQ1MywgNDAuODM3MDY0NDM0NTg1MzE1XSwgWy03My43ODU4MzA2Nzk2NDEyNCwgNDAuODM3MjA5OTgwMDA0NV0sIFstNzMuNzg1NzM1MDkyOTg2OTEsIDQwLjgzOTIzNDIzMTc3NTgwNV0sIFstNzMuNzg4MTU5MjExNjY1MTYsIDQwLjg0MDQ5MDc3ODU2NzAzXSwgWy03My43OTE3OTM0MzYyNTQ1NSwgNDAuODQ2NzMxNjcyMzI5MjhdLCBbLTczLjc4OTUxMzcxNTE2MTY5LCA0MC44NTEzMDA3NzE3MTMxMl0sIFstNzMuNzkzMTE4MzcxODM4MzcsIDQwLjg1MTU3ODI5NTI0MDc5XSwgWy03My43OTA0MjA1Mzc4MDE3MSwgNDAuODUzMDIyOTc4MjEyNV0sIFstNzMuNzkyODE1MTE5NjY5MywgNDAuODUyNDk0ODE5MzA4ODVdLCBbLTczLjc5MDgwNzU4NzI5OTI4LCA0MC44NTMxOTkwNjAwNjQyNTZdLCBbLTczLjc5Mjg3NjEwMDQ4NTg4LCA0MC44NTI5NDQxODEzMjg0MjVdLCBbLTczLjc5MTA1NzIxMjU0ODMxLCA0MC44NTM5MTg0MTI0MjY2NF0sIFstNzMuNzkyNDU4MTY4NDQ4MTIsIDQwLjg1MzYwMDcwODc1NDg5XSwgWy03My43OTEwNzAwMjc2NTk1MywgNDAuODUzOTQ0OTU2NjY0NjJdLCBbLTczLjc5MjUzNzE0NjA0ODY3LCA0MC44NTM4NDkzMjc4MTI4OTVdLCBbLTczLjc5MTI5MjgyMTYwNjQ4LCA0MC44NTQ1ODQwMjU5NzY4XSwgWy03My43OTIwMTcxMjIyODUyNywgNDAuODU2MTc2OTQ4NjA2MjU0XSwgWy03My43OTI3MDUyMzk4NTEzNywgNDAuODU2MTkyMzI4OTA1N10sIFstNzMuNzkyNjg3NjgyMjI2NTYsIDQwLjg1NjMzNTIxODcyMDMzXSwgWy03My43OTMxNTcwMDI5NjE1NiwgNDAuODU2MzUwOTExMDc0NzU2XSwgWy03My43OTMxNDY4NjA4NTk3LCA0MC44NTY0Njc4Mjg0NzExMDRdLCBbLTczLjc5MDE4NzQ1MTk1MDA1LCA0MC44NTg2MDk5MTczODYxNl1dXSwgW1tbLTczLjc2NzgzMjA1NjM3MTY3LCA0MC44NTQ0NDIyMDU3NDIwMV0sIFstNzMuNzY5Mzg1MjkxMzk2OTksIDQwLjg1MjUzNjEzMzk5Njc4Nl0sIFstNzMuNzY5NTk2NzQzMTE0NywgNDAuODQ3NTk0NTE5MDk4MTk1XSwgWy03My43Njc4OTQ5MjY3MjY1MywgNDAuODQ1Mjg5NDMzNTE5Nl0sIFstNzMuNzY5MDEzODkxODExMjQsIDQwLjg0NTA5NzM0MjcyMTgzNl0sIFstNzMuNzcxNTcyMTg4MzMyNDMsIDQwLjg0NzUwMDA1ODU4MDM0NF0sIFstNzMuNzcwODg5MjAyMjExNzgsIDQwLjg0OTc1MTc3MTMzOF0sIFstNzMuNzcyOTYzNTY2MTEyODksIDQwLjg1MjE1OTI1Mzk1ODU1NF0sIFstNzMuNzcxNzMwNjA0MTE5MSwgNDAuODUyNDc2ODMxMzE5MDldLCBbLTczLjc3Mjk2Mjg1MzM0ODczLCA0MC44NTM4MDAwNjIyNDY0NV0sIFstNzMuNzcyMTkyMjMwNTU0MjMsIDQwLjg1OTk4NjYzODU5NjkzXSwgWy03My43Njk0NzMwNTQyNDAxNCwgNDAuODU5MzMwMTM2NjY4NTRdLCBbLTczLjc2NTMzMjQzOTk1MjkxLCA0MC44NTUwNDM1OTUxMjQ4NTVdLCBbLTczLjc2NzgzMjA1NjM3MTY3LCA0MC44NTQ0NDIyMDU3NDIwMV1dXSwgW1tbLTczLjc4NDUyNDMxOTM3OTY3LCA0MC44NjA0NzcwNjMxNDc4MDVdLCBbLTczLjc4NTE5NjY0Mzg3MTIzLCA0MC44NTg4MjcwMjM2Mzc0XSwgWy03My43ODc0MzE4NjE5NDE4MSwgNDAuODU4OTM1MjQ1NjE0NDVdLCBbLTczLjc4Njg1ODg2NzczMzAzLCA0MC44NjAwNDUwNTc4Mzk1MzVdLCBbLTczLjc4NDUyNDMxOTM3OTY3LCA0MC44NjA0NzcwNjMxNDc4MDVdXV0sIFtbWy03My43NzI5MDIzMTk5MjQ0NCwgNDAuODYxMjA4NTgzMjc4NDVdLCBbLTczLjc3MzIzMTUwMTg5NDA3LCA0MC44NjA3NDcxNjk1ODY5NF0sIFstNzMuNzczNTEyNjQxNjU2ODgsIDQwLjg2MTI0MTE4NDA4NzA0XSwgWy03My43NzMxMDYzMjkyMTkzNywgNDAuODYxNjE0NTc1MDMyODFdLCBbLTczLjc3MjkwMjMxOTkyNDQ0LCA0MC44NjEyMDg1ODMyNzg0NV1dXSwgW1tbLTczLjc3NDYwMTU2MzUwOTM1LCA0MC44NjIwNjkwNDc0NTk3Ml0sIFstNzMuNzc0OTQzMjExNTU3NSwgNDAuODYxMzkxNDk5ODg5NDldLCBbLTczLjc3NTI5Mjk3OTU1MTMxLCA0MC44NjEyMzIwMDgyMTU4Nl0sIFstNzMuNzc0ODU2ODE2MjQ3NDgsIDQwLjg2MTk4MzYzNDMzNDI5NF0sIFstNzMuNzc0NjAxNTYzNTA5MzUsIDQwLjg2MjA2OTA0NzQ1OTcyXV1dLCBbW1stNzMuNzgzMTI1ODk1OTQ0NzYsIDQwLjg2Mjg1NjE2NzMwMDYzNV0sIFstNzMuNzgyODgxOTc4MzExODUsIDQwLjg2MjQwNjQzMzA5MTI2XSwgWy03My43ODMxNDUwNDI4ODE0MiwgNDAuODYyMDY4Njc4OTA1NThdLCBbLTczLjc4MzI4MDUzNTA1OTMzLCA0MC44NjI3ODA3MDY3MTI0ODVdLCBbLTczLjc4MzEyNTg5NTk0NDc2LCA0MC44NjI4NTYxNjczMDA2MzVdXV0sIFtbWy03My43ODQwMTI0OTEzODkwMywgNDAuODYzMTMxOTk0MDc0MzZdLCBbLTczLjc4Mzc2NzcwMzQ4OTksIDQwLjg2MjYxMDYwODQ2NDMzXSwgWy03My43ODQ2OTE2NTg1MDcwOSwgNDAuODYyNTQyNzg5OTA4MTddLCBbLTczLjc4NDI4NjUwNTAwMDcsIDQwLjg2MzIwNTA4ODc4MDUyXSwgWy03My43ODQwMTI0OTEzODkwMywgNDAuODYzMTMxOTk0MDc0MzZdXV0sIFtbWy03My43Njk2NDk4ODYyNzEsIDQwLjg2NTQ4NTU3MjQyNDQyNl0sIFstNzMuNzY5NzkxNDgyNjA1MDMsIDQwLjg2NTEyODIzMzU2NDM4XSwgWy03My43NzAyMjkzMTYzMDI3NSwgNDAuODY1MTM4OTM5Mzk2MDZdLCBbLTczLjc3MDA2ODk3Mjk5ODE3LCA0MC44NjU1MjU4NzYxODMzNl0sIFstNzMuNzY5NjQ5ODg2MjcxLCA0MC44NjU0ODU1NzI0MjQ0MjZdXV0sIFtbWy03My43NjY2ODk2NTg0MTkzLCA0MC44NjcwOTc3ODE2MjQ1M10sIFstNzMuNzY3MDk5MDc0Mzk3OTUsIDQwLjg2NjcwNDU3Mjc0ODE1XSwgWy03My43Njc3OTQ0OTM4MjAxOCwgNDAuODY2NzgxMTczNzY1MzddLCBbLTczLjc2NzYwMDcyMDk2NDk5LCA0MC44Njc0OTYzODY1NDE0MjZdLCBbLTczLjc2NjY4OTY1ODQxOTMsIDQwLjg2NzA5Nzc4MTYyNDUzXV1dLCBbW1stNzMuNzcwODA5NzUzOTgyLCA0MC44NzE1NDk5NDY4NDc4ODVdLCBbLTczLjc2OTkwNzEwNjY4NTU0LCA0MC44NzA0NzY5NDQ0NzAyNF0sIFstNzMuNzcyODgwNDI2NjUyNCwgNDAuODcxMjQ1MjYzNDMwMjU0XSwgWy03My43NzIxNzc4NjQ5MjI4OCwgNDAuODcxOTgxMTEwNjg5MzA1XSwgWy03My43NzA4MDk3NTM5ODIsIDQwLjg3MTU0OTk0Njg0Nzg4NV1dXSwgW1tbLTczLjc4NjQ4NTEwNTQ2NTksIDQwLjg3MzIwOTI1NDk1MDM2XSwgWy03My43ODY3MjY4OTA5NTM3MiwgNDAuODczMDc0NTM5MjY1NjRdLCBbLTczLjc4NjI2MjAyMTUzNDI3LCA0MC44NzMzOTM2ODY2MzM5Nl0sIFstNzMuNzg2MzI4Njk0ODg5OTUsIDQwLjg3MzI3MTE0NDU1NDEyNF0sIFstNzMuNzg2NDg1MTA1NDY1OSwgNDAuODczMjA5MjU0OTUwMzZdXV0sIFtbWy03My43ODYwNTM5NDk2NDkwOSwgNDAuODczNzgyNjQ2MTkyOF0sIFstNzMuNzg2MTg5MjQzNTg2NDIsIDQwLjg3MzU5OTcyNzY5OTcxXSwgWy03My43ODYzMzMyNTk5NjcxLCA0MC44NzM2Nzc3MjQ4ODc0NV0sIFstNzMuNzg2MTk0NjM3MTY0NzQsIDQwLjg3Mzg4NTMxOTQxNDY2XSwgWy03My43ODYwNTM5NDk2NDkwOSwgNDAuODczNzgyNjQ2MTkyOF1dXSwgW1tbLTczLjc3NDM1MjQ0NjQ1MjM0LCA0MC44NzQxNjk5NTU4NzQ4NF0sIFstNzMuNzc0NTM2NDA1MTA5NiwgNDAuODc0NzEwMDE1NDM4MzJdLCBbLTczLjc3NDA5NTM4MjkyMTMyLCA0MC44NzQ4OTYxODQ0ODAxMzZdLCBbLTczLjc3NDAzMTgxNTM0NDQyLCA0MC44NzQzOTQ3NzQ5NTYyXSwgWy03My43NzQzNTI0NDY0NTIzNCwgNDAuODc0MTY5OTU1ODc0ODRdXV0sIFtbWy03My43ODI0MTgxMTg2NTMxNywgNDAuODc0OTIzMjcwNDIxNzVdLCBbLTczLjc4MjY1Nzg1MzYwOTA1LCA0MC44NzQ3OTI2NTY2OTQwMl0sIFstNzMuNzgyODAyMDc1MTA0MSwgNDAuODc0OTQ4ODY2MjA1MzJdLCBbLTczLjc4MjQ3NjA0MTI1NTI1LCA0MC44NzUxNjgxMzMzNzg4NF0sIFstNzMuNzgyNDE4MTE4NjUzMTcsIDQwLjg3NDkyMzI3MDQyMTc1XV1dLCBbW1stNzMuNzgxMDMzNTExMDQ5NTQsIDQwLjg3NjQ4NDAwMjA0NzcwNF0sIFstNzMuNzgxMjA2NDk2NDkzODcsIDQwLjg3NjI4NTAyNTQ2MDEzXSwgWy03My43ODEzMjcwNDExODAwOCwgNDAuODc2MzYxMzI2NTQ2MzY2XSwgWy03My43ODExMjc2NzQ3ODE2NywgNDAuODc2NjUyNjgwNTA4MTNdLCBbLTczLjc4MTAzMzUxMTA0OTU0LCA0MC44NzY0ODQwMDIwNDc3MDRdXV0sIFtbWy03My43ODY1MDU1NDA0OTcyNywgNDAuODgwOTQwMTM0NDc5MThdLCBbLTczLjc4NTc4MDAyNjExMjc1LCA0MC44ODAzNjM5NjI2NjEzNl0sIFstNzMuNzg3NDIwMzkzODQ0MTQsIDQwLjg3OTc3MDg5MDI4OTkwNV0sIFstNzMuNzg3MTI3ODM0NjUxOTUsIDQwLjg4MDkyMzQ2MzE3MTIxXSwgWy03My43ODY1MDU1NDA0OTcyNywgNDAuODgwOTQwMTM0NDc5MThdXV0sIFtbWy03My44NzI5NDg2MDQxOTA5NywgNDAuOTA0NDQxMDIyNjY4OTc2XSwgWy03My44NTk0Njc3ODc2Njg5NiwgNDAuOTAwNTE3MjA5NzcwMjVdLCBbLTczLjg1OTU3ODgzMDE0NDk3LCA0MC45MDI0NDA4NDI3NzIxOF0sIFstNzMuODU2MDEwMjMzODkyNjksIDQwLjkwNTMwNTk4MzYyNjg4XSwgWy03My44NTY4MTAxMzYzODUzOCwgNDAuOTA2MTU1ODI4MzI1OTldLCBbLTczLjg1Mzc0MTAzNjMwNzYxLCA0MC45MDc3ODc5MTY3MzU1NF0sIFstNzMuODU0NTg5NDA1ODgyNDIsIDQwLjkwODkzOTQ5OTI5ODMwNl0sIFstNzMuODUxMDcxMTYxODM3MTgsIDQwLjkxMDM3MTUyMDcyNDQ5Nl0sIFstNzMuODUzNDc1MjIzOTk5NDcsIDQwLjkwNzUzMDI5MzAyNDFdLCBbLTczLjg0MTM4Njg5MzA0NjYsIDQwLjkwNDE3Mjc0MTUzMzk3XSwgWy03My44MzgzOTE5OTE4OTc0NSwgNDAuODk0MDY3MDA4MDQ5XSwgWy03My43OTMwMDY1MjY0OTMzOSwgNDAuODgzMzU4NzM2ODgwMzc1XSwgWy03My43OTc0MzgxNTQ1NzI4NywgNDAuODc1MTM1MzMyOTUzMTE0XSwgWy03My44MDI1MjI4NDc1NjU5NywgNDAuODcwNTA2NjQ0Njk2NzldLCBbLTczLjgwMzM5MTE3NTIzMDg2LCA0MC44NzI1MDUwMzc2MzEwN10sIFstNzMuODA0MzE4NDk0NjgyMjgsIDQwLjg3MTE1OTc0MTA2Nzk3XSwgWy03My44MDMwMjIwMzY4NTI2NSwgNDAuODY5MTU1MTE5Nzk2NDddLCBbLTczLjgwNTg4NDEwMDEyODgyLCA0MC44NjkwNjg1MDIxODQ4OTVdLCBbLTczLjgwODQxNTk2ODE4Nzk5LCA0MC44NzExODk2OTMzNjc1NTVdLCBbLTczLjgwMzA2MDQxNDg0NTUsIDQwLjg2NTgxNTEzMzcwNjc5XSwgWy03My43OTc4MDM3NzIxOTMwOSwgNDAuODcyMjU2MTMyMjczOTFdLCBbLTczLjc5NDc5MDQ0NjgxNjA1LCA0MC44NzMyMDA0ODQwMzM5N10sIFstNzMuNzkyODg5MTA2NzQxMzYsIDQwLjg3OTI2NDA5MjgyMjM0Nl0sIFstNzMuNzg5NTU4NzI5NDQzMDYsIDQwLjg4MTI2MTI4NDkxNTQxXSwgWy03My43ODk1MjMwOTM2ODgsIDQwLjg3ODk5ODEyNzA2MDUwNV0sIFstNzMuNzg0MzgxNjgxMDc1NjcsIDQwLjg3ODQyMDUzMTY3MDQxXSwgWy03My43ODcxOTA4NzU2MDUwNiwgNDAuODcyNzMwNTUzNzI5MTNdLCBbLTczLjc4NTA4MTM5NjU4NjE0LCA0MC44NzM1ODk5NjMyMjU2NzZdLCBbLTczLjc4NTI2MTUyMDc1NzE1LCA0MC44NzE3NDUzMjIzMzIzOF0sIFstNzMuNzgzNTg3Mzg0ODYwNDgsIDQwLjg3Mzc4MDk1NDY4MDI4NV0sIFstNzMuNzgzMjAxNzU0MjYyOTksIDQwLjg3MDY3MDM2MDg1Mzc4XSwgWy03My43ODU2MDI0NTMwNTQ1NCwgNDAuODY4MzQxNjUyMjIzNjddLCBbLTczLjc4Nzk1NDQ2MTQ1NDE2LCA0MC44Njk4NDU0MTkwNjM1OV0sIFstNzMuNzkxMzkwMzI1ODYxMjYsIDQwLjg2ODE0MTMwNzQ2NjA5XSwgWy03My43OTE5MDQ1NDkyNzUxMiwgNDAuODYwODI5NTYyNzExOTldLCBbLTczLjc5NDU0NTYyMzE4MDI2LCA0MC44NTg4ODgyNTkxNjEyMjZdLCBbLTczLjc5NDM1MDA1OTM0MjgzLCA0MC44NTY1MjcwMjM4MDM4MzVdLCBbLTczLjc5ODcyMjU1NjAwMDg3LCA0MC44NTQ5MTQ0MDExNzI1N10sIFstNzMuNzk3ODA1MjI5OTA1OTgsIDQwLjg1MTk0OTU5ODU5NzA1XSwgWy03My44MDAyOTAyNjcxNjAxMSwgNDAuODQ4MTQ0ODU2MzQzNTY2XSwgWy03My44MDQxNzU1NzkzMjQxLCA0MC44NTMzNDAxMjAxODkxMjRdLCBbLTczLjgwNDc4NjQzMDI1MjIsIDQwLjg2MTUzODQ3MzgxODk5Nl0sIFstNzMuODA4MDMzNTkzNDQ5NTUsIDQwLjg2MDE1NzEwMTM0NzExXSwgWy03My44MDc1OTQwOTA2MjA4NCwgNDAuODU4NDgxNzY5Njk2NDI1XSwgWy03My44MTExMDQ1NzE0OTI4LCA0MC44NjI0NjQ0Njg3MzA3NjRdLCBbLTczLjgxMzk1ODU3MzU0NjA1LCA0MC44NjQxMDI3MDQyMTYwNl0sIFstNzMuODE1MTAzMTUzODQxNTUsIDQwLjg2MzA1NzQ2NTM2Nzc0XSwgWy03My44MTY0MTM5MjEwMjcyOCwgNDAuODYxMTgwNjI3NzAzODddLCBbLTczLjgxMjczMTQ2NDk1MDQ2LCA0MC44NTg4Nzc1NDE5NDc3NTZdLCBbLTczLjgxMjMwNjAyNzA4NDE4LCA0MC44NTQxNjIwMjY0NzMyMDVdLCBbLTczLjgxNjQwODcwOTA4MDE4LCA0MC44NTQwODIyNTUxMTQ3MDRdLCBbLTczLjgxNzEyNDA5MDQyMjEzLCA0MC44NTEyNjk1NzM0NDQ3NDZdLCBbLTczLjgxNTEzMTAyODIwNzU2LCA0MC44NDkxNzI1MDM1NTMxOF0sIFstNzMuODE2MTA1Mzc0NzcxNTcsIDQwLjg0NjQ1NDU0NDQzNzQzXSwgWy03My44MTQ2NDU5NDY5NzU0NywgNDAuODQ3MjE5NjEzNTI4OTE0XSwgWy03My44MTU3MDM1MzE4OTQ1NCwgNDAuODQ2MjkxMzQwNDIzNzNdLCBbLTczLjgxMzY4NjM0NzM4MTk5LCA0MC44NDcyNzQzMjU1MDkwNF0sIFstNzMuODEzNTYzNzI4NjE2NzMsIDQwLjg0NzE1MTQxMTI3ODQ3NV0sIFstNzMuODE1MDI2Mjc2MDQzMDEsIDQwLjg0NTQ5OTk5NTA1ODQwNF0sIFstNzMuODEyODQ5Mzk5NTg1MjUsIDQwLjg0NjMxODc5OTQ5ODI3XSwgWy03My44MTMyNDMyNjM1MDkyNCwgNDAuODQ1MjM1OTA4MzUyNTVdLCBbLTczLjgxMzEwMDUwNjI2ODM3LCA0MC44NDUxNzI0MTQ1MzMyOF0sIFstNzMuODEyODc3MDM1OTc1NywgNDAuODQ1MTM0NjY3OTQ1ODVdLCBbLTczLjgxMzE1NTk3MDQ0MjU1LCA0MC44NDUyMTIxMDAzNzYyOV0sIFstNzMuODEyODU1MzY5NTc2MzgsIDQwLjg0NTE4NjI4NTQ2MTM3NF0sIFstNzMuODEyNDE0NDUzMjgxMzUsIDQwLjg0NjU1OTM4MDc0ODc0NF0sIFstNzMuODEyMjc3OTA5MDA1MDUsIDQwLjg0NjU0MzQ1ODI3OTIxNF0sIFstNzMuODEyODU3NzQzMzc5NTUsIDQwLjg0NTEyOTU0NDU4OTA5XSwgWy03My44MTI1NDQ1NzgxNTYxNCwgNDAuODQ0OTc5NTk4MDA4MjddLCBbLTczLjgxMTY5OTcxODIzNjYsIDQwLjg0NjY4MTcwMDgxMzY0XSwgWy03My44MTI2NjE0MTM0OTA1MywgNDAuODQ0MjA3NjQ5NTAwNzhdLCBbLTczLjgxMjU0OTA5MTIwNzA5LCA0MC44NDQ5NTIyNzUxNDYwOF0sIFstNzMuODEzNjU1ODA2NjU4NzksIDQwLjg0NTA1OTEyMjQ2NTY4NV0sIFstNzMuODE0MTQ0NjIwNDkxODMsIDQwLjg0NDgxODE3MzI2Mjc0NV0sIFstNzMuODE0Mzc0NTgyNTI1MzksIDQwLjg0MzA4ODkyNTk5OTQzXSwgWy03My44MTU2NjYwOTU5Mzg1MSwgNDAuODQ0Mzc5OTUxMDU5MTk2XSwgWy03My44MTgyNDA2NTg5MzI0NSwgNDAuODQ0MzQyMTI3OTA5OTI1XSwgWy03My44MTQ3MzM0NTgxNzU0LCA0MC44NDEzNzU3MjgzMTA4NF0sIFstNzMuODE0MzA5MDAxMzM2OSwgNDAuODM5NjIyNDE2Mzc5MjM1XSwgWy03My44MTY0Nzg3ODQ3Nzg3NCwgNDAuODM3NzAzOTgzODg4NDFdLCBbLTczLjgxNDg3OTM3Mzg4NTksIDQwLjgzMTAzMDA4NjQ5MTRdLCBbLTczLjgxMjc1NDY5OTk0NTIzLCA0MC44MjgyNDgyMzYyNTEzM10sIFstNzMuODA5OTI3OTkyMzc2NzEsIDQwLjgyODE5MzIyMjI3MjIyXSwgWy03My44MTM4NDk3NDg1MTI0OCwgNDAuODI2ODAzNTI4NzUwNF0sIFstNzMuODEzNzk1MjM1MTc2NjMsIDQwLjgyNTI5ODA4NjAwMTVdLCBbLTczLjgxMjExMzUwNTU2NDQxLCA0MC44MjU1NTI2MzQ2NTkyOTZdLCBbLTczLjgxMzk3MTEwMzQ2MzMzLCA0MC44MjQxOTAyNjkxOTc5MzVdLCBbLTczLjgwNjk3NzcxMTUyMjA4LCA0MC44MjUzODgzNzA4OTc0Ml0sIFstNzMuODA0NjE5MzEyMDUzNTYsIDQwLjgxOTAyNzExNDIxMzc0XSwgWy03My43OTczODExMjU3MzUzNiwgNDAuODE1NzYzNTA0ODk1Nl0sIFstNzMuODAzMDQ3NzUzOTQyNzIsIDQwLjgxMjQ0ODcwODIzODc4XSwgWy03My44MDUxMTQ2NTUyNjUwOSwgNDAuODE1NjM1ODUwMDI4MDFdLCBbLTczLjgwNjU4MzU4NzI1Njk3LCA0MC44MTY1OTQ1ODgxNjU1NjVdLCBbLTczLjgwNTA4MTAzNDY2NjkxLCA0MC44MTUxOTc5NjQwMTI1Nl0sIFstNzMuODA0NTU0NDA1MTg4NzEsIDQwLjgxNDYyOTg0MjIzNzA2XSwgWy03My44MDQ2NTk0MjgxNTAzNiwgNDAuODE0NTQ0OTg5MTIxOTddLCBbLTczLjgwNzA0NjAwMTUzNTA4LCA0MC44MTY1MzM2OTM4NzUyODZdLCBbLTczLjgwNTA1MjEzNjQ2MjU4LCA0MC44MTI4OTQ5NjI0MzQxM10sIFstNzMuODAyMjQyNDUzMzQzNTEsIDQwLjgxMDE5NzM5MzY2MDMyNF0sIFstNzMuNzkwODY0NzU3Mzg0MDYsIDQwLjgwNzM0MTE0MDQ0MDUyXSwgWy03My43OTA1NjgyMzgwNzc5NSwgNDAuODA0NTU4MDExMjkxNjhdLCBbLTczLjc5MzM4OTgyMjg2NzI1LCA0MC44MDQyMDQzMzAwMzYyMzVdLCBbLTczLjgwMTU5MzkzMTYzNzk4LCA0MC44MDg5ODYzNTM5MjAwOF0sIFstNzMuODAzOTI2NzM0MTcyMDQsIDQwLjgwODUyNzk3MDgxMTY0Nl0sIFstNzMuODA5OTIwMjkwODE3OTcsIDQwLjgxMjkyOTE1MjI2MTc2Nl0sIFstNzMuODE2MjAwNTY4OTYzMDEsIDQwLjgxMzg0NzQ3NjQ3OTMyNF0sIFstNzMuODMwMTgyNDU1NzY3MTYsIDQwLjgxMDgzOTA4NzE1MTA5XSwgWy03My44MzIxNzQ1MjM3OCwgNDAuODA4MTYwMzY5OTI5NDddLCBbLTczLjgzMTYxNTc0NDU1NDUsIDQwLjgwNDkzODI1NTk5MzIzXSwgWy03My44Mzc0MzYxMjEyNTg4MywgNDAuODA2MjAyNjQzMTgzMTRdLCBbLTczLjg0MDQzMTk5NTQwOTUzLCA0MC44MTI1NDExMjgyMzY5XSwgWy03My44Mzg4ODIzMTY0Njc0LCA0MC44MjIxNDA0ODk4NTZdLCBbLTczLjg0MjMzMDc3NDc3Mjc2LCA0MC44MjkwNzM5NjI0NTM3XSwgWy03My44Mzg4NTIzMjM4NDczMywgNDAuODMzNjkwNjY3ODQ4MjJdLCBbLTczLjgzOTcyMDE0NTE1NTM3LCA0MC44Mzk1NjU0MDU5ODYxMV0sIFstNzMuODM5NTkxMDg0NTIyOTEsIDQwLjgzNDA0MTY4ODA5MDU2NV0sIFstNzMuODQzMTA2OTE1OTk5MDYsIDQwLjgyOTc5NDEzOTMxOTg0NF0sIFstNzMuODM5OTk4NjA0MDc0MjIsIDQwLjgxOTkzNDk0NjgxMzA1Nl0sIFstNzMuODQxOTg2ODQ4MzQwNDUsIDQwLjgxODc3NDM3MzkwODExXSwgWy03My44NDYxNzMwMjg3MjA1NCwgNDAuODEwNjc2NjY0NDMwNDJdLCBbLTczLjg1MTE0NDcyMjYwNzAyLCA0MC44MTQzOTY1NDg4NzU5MV0sIFstNzMuODU1MzgwMzAyNDM2ODcsIDQwLjgxNDI4ODg4MjA4MjY5XSwgWy03My44NDkxNDUwNjYxNzM4OCwgNDAuODEyMjk4NzkzNjA5ODNdLCBbLTczLjg0OTk2Njk2ODAyODE4LCA0MC44MDg1NzgwMTg4NDM2MV0sIFstNzMuODQ4MDc2MjQ1OTkzODIsIDQwLjgwNDkxOTY0MTE0OTEyXSwgWy03My44NTYwNTE2MjkzMzI2MSwgNDAuODA0NTg3NDI5Njg5NTldLCBbLTczLjg1OTE5NTQ1MDI0NDc3LCA0MC44MDYyNjk4Nzc4Mjk3MDZdLCBbLTczLjg1ODk1MTQxMjIxNzc4LCA0MC44MTAyNzE0MTc1ODY1Ml0sIFstNzMuODYwMTI2OTUyMzU1ODQsIDQwLjgwOTYwNTQ5OTg5MTIzNF0sIFstNzMuODU5MzI5MTkyNjUxMzQsIDQwLjgwODk5NjU0MDQ2MjY5XSwgWy03My44NTkzODk4MjAwNTk3LCA0MC44MDgxNjM3NjkxNjU3Ml0sIFstNzMuODYwNjU5NjU4MTM2NDgsIDQwLjgwOTYzMTkwMzA2NDYzNF0sIFstNzMuODY3NjU2NDYyODQ0NjgsIDQwLjgxMDU4Mzc2MTkzNzE0XSwgWy03My44NzA3NzgwNDg4NTkzNiwgNDAuODE0NDg2ODk1NDg3NzZdLCBbLTczLjg3NjUxOTk2MDMzNjMsIDQwLjgxNjEzMTA2MzQyNDE0NV0sIFstNzMuODcwNTY4MDY5Mjc5MzMsIDQwLjgxMjA4NzMxNzYyMjRdLCBbLTczLjg2ODExMjE5MTQwMDgsIDQwLjgwNjc1MTgzMjgzMTgxNF0sIFstNzMuODcyMzQ2ODQ5OTg4NTIsIDQwLjgwMDE3NDc2MzAxMDQ1XSwgWy03My44NzgxNDIxODgxOTkyMywgNDAuODAxMzE5MjkwMzA2NDRdLCBbLTczLjg3ODQzMjk1NTEzNDQ5LCA0MC44MDI3MDI3MzQ2OTQ4NTRdLCBbLTczLjg4NTA1MTcyMzM2NzEsIDQwLjgwMjEzMDkwNjc5ODAwNl0sIFstNzMuODg5MjI0MTYwOTExNTUsIDQwLjgwNTg0NTM1MTE5MTk4NF0sIFstNzMuODkwMTUwOTg1MDE2MDYsIDQwLjgwNDk1ODE4MjI2MjU5NV0sIFstNzMuODg5Mzc0MzkyNTM2OTUsIDQwLjgwNTkyNTI3MzExNTI0XSwgWy03My44OTI3MDY4MTA2NjM1LCA0MC44MDYzNDM5NDkwOTgwNV0sIFstNzMuODkxNzMyNDA5OTU2MTUsIDQwLjgwNTA0OTM2MzQyMDI4XSwgWy03My44OTUwOTgzNjQ4NzM5OSwgNDAuODA2ODYzNjM5MTczNTE0XSwgWy03My44OTUyNzk2Mjg3NDAxLCA0MC44MDU3NjYxODQwNjc5XSwgWy03My45MDIyMjI4NDY5OTQ2OSwgNDAuODA0OTQ4MTEzMTg5NTJdLCBbLTczLjkxMTY4ODMxMjQxMTk1LCA0MC43OTY2MjM3Njk4ODg3NTRdLCBbLTczLjkxOTA0OTc4Njk3NjczLCA0MC43OTg5OTM5MzU2ODY1M10sIFstNzMuOTIyOTI3MTAwNjU3ODQsIDQwLjgwMjM3MzI5NDY0Mjg1NV0sIFstNzMuOTI3NjI3ODg2NTg4NDgsIDQwLjgwMjY5NTY2NTQ4MTUxNV0sIFstNzMuOTMyODYzOTcwODMyNzgsIDQwLjgxMDEyNDQzNzM4ODQ2XSwgWy03My45MzMxNDMwNjcwOTI2MiwgNDAuODM1MTk0MTI3NjE2NDZdLCBbLTczLjkyMjU2MTc4OTQ2NTM1LCA0MC44NTMxODg5MTE1MjcyOV0sIFstNzMuOTEyMjcyNzg5NzY5NzksIDQwLjg2MzYzMjE0ODk5NjY2NV0sIFstNzMuOTA2NjUwOTk1Mzk0NzgsIDQwLjg3NTc1MjUwNDE5MjZdLCBbLTczLjkxMDMzMTkzNTY2NDIzLCA0MC44NzkwMzgwNDczMDcyMl0sIFstNzMuOTE3NzU2NjkzMjk3MSwgNDAuODc1NjYzNjI3ODYwMTg1XSwgWy03My45MjQ5MDMyNzQ3MzA4MiwgNDAuODc4ODg4MzY3ODUzMTVdLCBbLTczLjkyMDM5MjgwMTk5MDkxLCA0MC44ODc2NDg1MDAyMjY4N10sIFstNzMuOTExNDk5NTkwNzQ4MiwgNDAuOTEzNzY2NTgxNzA0NzddLCBbLTczLjkxMDMzMjU2ODQ5MDQ3LCA0MC45MTU1MzI3NzYwMDAwN10sIFstNzMuODcyOTQ4NjA0MTkwOTcsIDQwLjkwNDQ0MTAyMjY2ODk3Nl1dXV0sICJ0eXBlIjogIk11bHRpUG9seWdvbiJ9LCAiaWQiOiAiMCIsICJwcm9wZXJ0aWVzIjogeyJoaWdobGlnaHQiOiB7fSwgInN0eWxlIjogeyJmaWxsQ29sb3IiOiAib3JhbmdlIn19LCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9CiAgICAgICAgICAgIAogICAgICAgICAgICApLmFkZFRvKG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCk7CiAgICAgICAgZ2VvX2pzb25fNDYzM2NjZDhhYmRmNDgyNmI4OTM0YzkwNGJlNTdlNzIuc2V0U3R5bGUoZnVuY3Rpb24oZmVhdHVyZSkge3JldHVybiBmZWF0dXJlLnByb3BlcnRpZXMuc3R5bGU7fSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIyZjE4MGE3YTFkZTQ3NTA4ZjVmN2UxMGRkODk1OTRhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDEyNzIxM2Y5MTBhNGZmMDg2N2RmZTEzMGZlMTRjMDEgPSAkKCc8ZGl2IGlkPSJodG1sXzQxMjcyMTNmOTEwYTRmZjA4NjdkZmUxMzBmZTE0YzAxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ccm9ueDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjJmMTgwYTdhMWRlNDc1MDhmNWY3ZTEwZGQ4OTU5NGEuc2V0Q29udGVudChodG1sXzQxMjcyMTNmOTEwYTRmZjA4NjdkZmUxMzBmZTE0YzAxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBnZW9fanNvbl80NjMzY2NkOGFiZGY0ODI2Yjg5MzRjOTA0YmU1N2U3Mi5iaW5kUG9wdXAocG9wdXBfMjJmMTgwYTdhMWRlNDc1MDhmNWY3ZTEwZGQ4OTU5NGEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
378 ],
379 "text/plain": [
380 "<folium.folium.Map at 0x157213b9c50>"
381 ]
382 },
383 "execution_count": 8,
384 "metadata": {},
385 "output_type": "execute_result"
386 }
387 ],
388 "source": [
389 "for _, r in df.iterrows():\n",
390 " #without simplifying the representation of each borough, the map might not be displayed \n",
391 " #sim_geo = gpd.GeoSeries(r['geometry'])\n",
392 " sim_geo = gpd.GeoSeries(r['geometry']).simplify(tolerance=0.001)\n",
393 " geo_j = sim_geo.to_json()\n",
394 " geo_j = folium.GeoJson(data=geo_j,\n",
395 " style_function=lambda x: {'fillColor': 'orange'})\n",
396 " folium.Popup(r['BoroName']).add_to(geo_j)\n",
397 " geo_j.add_to(m)\n",
398 "m"
399 ]
400 },
401 {
402 "cell_type": "markdown",
403 "metadata": {},
404 "source": [
405 "Add marker showing the area and length of each borough"
406 ]
407 },
408 {
409 "cell_type": "code",
410 "execution_count": 9,
411 "metadata": {},
412 "outputs": [
413 {
414 "data": {
415 "text/html": [
416 "<div>\n",
417 "<style scoped>\n",
418 " .dataframe tbody tr th:only-of-type {\n",
419 " vertical-align: middle;\n",
420 " }\n",
421 "\n",
422 " .dataframe tbody tr th {\n",
423 " vertical-align: top;\n",
424 " }\n",
425 "\n",
426 " .dataframe thead th {\n",
427 " text-align: right;\n",
428 " }\n",
429 "</style>\n",
430 "<table border=\"1\" class=\"dataframe\">\n",
431 " <thead>\n",
432 " <tr style=\"text-align: right;\">\n",
433 " <th></th>\n",
434 " <th>BoroCode</th>\n",
435 " <th>BoroName</th>\n",
436 " <th>Shape_Leng</th>\n",
437 " <th>Shape_Area</th>\n",
438 " <th>geometry</th>\n",
439 " <th>lat</th>\n",
440 " <th>lon</th>\n",
441 " </tr>\n",
442 " </thead>\n",
443 " <tbody>\n",
444 " <tr>\n",
445 " <th>0</th>\n",
446 " <td>5</td>\n",
447 " <td>Staten Island</td>\n",
448 " <td>330470.010332</td>\n",
449 " <td>1.623820e+09</td>\n",
450 " <td>(POLYGON ((-74.05050806403247 40.5664220341607...</td>\n",
451 " <td>40.580858</td>\n",
452 " <td>-74.153369</td>\n",
453 " </tr>\n",
454 " <tr>\n",
455 " <th>1</th>\n",
456 " <td>4</td>\n",
457 " <td>Queens</td>\n",
458 " <td>896344.047763</td>\n",
459 " <td>3.045213e+09</td>\n",
460 " <td>(POLYGON ((-73.83668274106707 40.5949466970158...</td>\n",
461 " <td>40.707604</td>\n",
462 " <td>-73.818485</td>\n",
463 " </tr>\n",
464 " <tr>\n",
465 " <th>2</th>\n",
466 " <td>3</td>\n",
467 " <td>Brooklyn</td>\n",
468 " <td>741080.523166</td>\n",
469 " <td>1.937479e+09</td>\n",
470 " <td>(POLYGON ((-73.86706149472118 40.5820879767934...</td>\n",
471 " <td>40.644734</td>\n",
472 " <td>-73.947677</td>\n",
473 " </tr>\n",
474 " <tr>\n",
475 " <th>3</th>\n",
476 " <td>1</td>\n",
477 " <td>Manhattan</td>\n",
478 " <td>359299.096471</td>\n",
479 " <td>6.364715e+08</td>\n",
480 " <td>(POLYGON ((-74.01092841268031 40.6844914725429...</td>\n",
481 " <td>40.777276</td>\n",
482 " <td>-73.967159</td>\n",
483 " </tr>\n",
484 " <tr>\n",
485 " <th>4</th>\n",
486 " <td>2</td>\n",
487 " <td>Bronx</td>\n",
488 " <td>464392.991824</td>\n",
489 " <td>1.186925e+09</td>\n",
490 " <td>(POLYGON ((-73.89680883223774 40.7958084451597...</td>\n",
491 " <td>40.852627</td>\n",
492 " <td>-73.866524</td>\n",
493 " </tr>\n",
494 " </tbody>\n",
495 "</table>\n",
496 "</div>"
497 ],
498 "text/plain": [
499 " BoroCode BoroName Shape_Leng Shape_Area \\\n",
500 "0 5 Staten Island 330470.010332 1.623820e+09 \n",
501 "1 4 Queens 896344.047763 3.045213e+09 \n",
502 "2 3 Brooklyn 741080.523166 1.937479e+09 \n",
503 "3 1 Manhattan 359299.096471 6.364715e+08 \n",
504 "4 2 Bronx 464392.991824 1.186925e+09 \n",
505 "\n",
506 " geometry lat lon \n",
507 "0 (POLYGON ((-74.05050806403247 40.5664220341607... 40.580858 -74.153369 \n",
508 "1 (POLYGON ((-73.83668274106707 40.5949466970158... 40.707604 -73.818485 \n",
509 "2 (POLYGON ((-73.86706149472118 40.5820879767934... 40.644734 -73.947677 \n",
510 "3 (POLYGON ((-74.01092841268031 40.6844914725429... 40.777276 -73.967159 \n",
511 "4 (POLYGON ((-73.89680883223774 40.7958084451597... 40.852627 -73.866524 "
512 ]
513 },
514 "execution_count": 9,
515 "metadata": {},
516 "output_type": "execute_result"
517 }
518 ],
519 "source": [
520 "df['lat'] = df.centroid.y\n",
521 "df['lon'] = df.centroid.x\n",
522 "df.head()"
523 ]
524 },
525 {
526 "cell_type": "code",
527 "execution_count": 10,
528 "metadata": {},
529 "outputs": [
530 {
531 "data": {
532 "text/html": [
533 "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2U0NGM2YmUxNTNjZjQxMjFhNmUwNWM0ZTBhODcyNWU0IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCA9IEwubWFwKAogICAgICAgICdtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQnLCB7CiAgICAgICAgY2VudGVyOiBbNDAuNywgLTczLjk0XSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2M0NjdjNjJhOTIyYjQzMDA4MzU0ZGVhYjNiNDAwMTBiID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vY2FydG9kYi1iYXNlbWFwcy17c30uZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2xpZ2h0X2FsbC97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiCn0pLmFkZFRvKG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCk7CiAgICAKICAgICAgICAKICAgICAgICB2YXIgZ2VvX2pzb25fYTUxZGQ2MjFhZjFiNDMzMmIxOWVhOTlhMjQ1MDAwOWQgPSBMLmdlb0pzb24oCiAgICAgICAgICAgIHsiYmJveCI6IFstNzQuMjU1NTkxMzYzMTUyMTMsIDQwLjQ5NjEzMzk4NzYxMTc5LCAtNzQuMDQ5MjM2Mjk4NDIwNDUsIDQwLjY0ODg4MDU1MzM3MDQ1XSwgImZlYXR1cmVzIjogW3siYmJveCI6IFstNzQuMjU1NTkxMzYzMTUyMTMsIDQwLjQ5NjEzMzk4NzYxMTc5LCAtNzQuMDQ5MjM2Mjk4NDIwNDUsIDQwLjY0ODg4MDU1MzM3MDQ1XSwgImdlb21ldHJ5IjogeyJjb29yZGluYXRlcyI6IFtbW1stNzQuMDUwNTA4MDY0MDMyNDcsIDQwLjU2NjQyMjAzNDE2MDc5NF0sIFstNzQuMDQ5MzE2NDAzNjIwODYsIDQwLjU2NTg4Nzc0Nzc4MDQxXSwgWy03NC4wNDkyMzYyOTg0MjA0NSwgNDAuNTY1MzYyNzM2MzY4MDk0XSwgWy03NC4wNTEwNzE1OTgwMzc3NywgNDAuNTY2NzIyNDkzMzk3NzhdLCBbLTc0LjA1MDUwODA2NDAzMjQ3LCA0MC41NjY0MjIwMzQxNjA3OTRdXV0sIFtbWy03NC4wNTMxNDAzNjgyMTEwNywgNDAuNTc3NzAyNzE1NTQ1NzRdLCBbLTc0LjA1NDg5Nzc4MjEwODAzLCA0MC41Nzc3ODI0NDA5MTk4MV0sIFstNzQuMDUzNjg2MjkxNTA0MTgsIDQwLjU4MDU0ODc1OTYxNDM5XSwgWy03NC4wNTI5MzE5MDYzOTgxNiwgNDAuNTc5OTAyNDc0NjY1ODRdLCBbLTc0LjA1MzE0MDM2ODIxMTA3LCA0MC41Nzc3MDI3MTU1NDU3NF1dXSwgW1tbLTc0LjE1OTQ1NjAyNDM4MTg3LCA0MC42NDE0NDgzMzMzMjQwM10sIFstNzQuMTYxMTEyNDI1MjIxNzMsIDQwLjY0MTgzNTQ1MzczNzJdLCBbLTc0LjE2MTQ2MDM2MDA1MjkzLCA0MC42NDQyOTQ5Njk3NjQ4Nl0sIFstNzQuMTU3NDMzNDkyMDA5OSwgNDAuNjQzMzAyODU3Nzc4OTg0XSwgWy03NC4xNTk0NTYwMjQzODE4NywgNDAuNjQxNDQ4MzMzMzI0MDNdXV0sIFtbWy03NC4wODIyMTI3MjkxNDkzNiwgNDAuNjQ4MjgwMTYyMjkwMDddLCBbLTc0LjA3MTY1ODI5NzU5Nzg0LCA0MC42NDUwMzM3NDY0MzUwMV0sIFstNzQuMDcwOTM3ODQ0NzE0NzYsIDQwLjY0MzM0NTk2Mzg0MDU1XSwgWy03NC4wNzIxMDk1MjQ0NDYzMiwgNDAuNjQyNDYzMjE2NzkyNzM0XSwgWy03NC4wNzAzMjkyMzcxNTM5LCA0MC42NDI1MjYxMjgxMzIyOF0sIFstNzQuMDczMTQ0MDA1ODYwMzEsIDQwLjY0MTg1Mjk3NDQ4MDE0XSwgWy03NC4wNzAxOTM5OTU1OTIxOSwgNDAuNjQyMDA3NTAyODA1MzA2XSwgWy03NC4wNzI4OTAwNTYwOTYzLCA0MC42NDA5MjI2NzI4NzYwMV0sIFstNzQuMDY5OTgzNTQ2NTM5NTIsIDQwLjY0MTA2ODk0MzExNjc4NV0sIFstNzQuMDczMDc3MjU4Mzc3NDUsIDQwLjY0MDUxMzMxMTc5NjMxXSwgWy03NC4wNzM0ODczNzMwMzU2MiwgNDAuNjM3MjMzNTI5MjM2MTg0XSwgWy03NC4wNzA0OTQxMjIxMzg0LCA0MC42MzcxNjE4ODY4Mzk1OF0sIFstNzQuMDczNDE1NjI2MzI4MTgsIDQwLjYzNjg5Mzk1MDk2NTU0XSwgWy03NC4wNzIwOTQ4MzgwNzUxLCA0MC42MzY2NDcyNzc2MjQ1NTRdLCBbLTc0LjA3MzM1ODIyMDQ1NTk2LCA0MC42MzY1MzYwOTQxNjUxMl0sIFstNzQuMDcyOTg0NzQ2MTIzMjUsIDQwLjYzMDMwODk3ODk4MTQ0XSwgWy03NC4wNjgwMjE3MzU0Mzk1MiwgNDAuNjI4Nzg3NTg1MTg1NDM1XSwgWy03NC4wNzI5MTE3NzkzNjU2LCA0MC42Mjk5OTYzNzk0MDY0N10sIFstNzQuMDcyMjU1MDA5NTU3NzIsIDQwLjYyNDYwODc1MDE5MzkzNl0sIFstNzQuMDY5NzU1NDMwODgzMjksIDQwLjYyMTIwODEzOTg3MjM1XSwgWy03NC4wNjU0NDU4NjA2OTQ4NCwgNDAuNjE5MjAyNjI4Mjg5MjhdLCBbLTc0LjA2NjY4MjA3OTgyOTI1LCA0MC42MTgwNjc0OTU5Mzg1Ml0sIFstNzQuMDY0MjU3MjE3NTE1OTIsIDQwLjYxODE3MTY4NzU4NTU0NF0sIFstNzQuMDY1MDk5MDg0MDcyMDcsIDQwLjYxNzUxMDk1NjEyNTQzNl0sIFstNzQuMDU2NDk1NjU5MzY3NjgsIDQwLjYwNzI0NzY0ODI1NjE5XSwgWy03NC4wNTM4MTA2OTgwNTQ0MiwgNDAuNjA1OTEyNzE4ODUyOTldLCBbLTc0LjA1MjIyOTgzMDI4MzI3LCA0MC41OTk4MjM4ODM1OTM5Ml0sIFstNzQuMDYyMTUyNzQ0MzI1NDYsIDQwLjU5MjAyNTA0MDU0MTk4XSwgWy03NC4wNjQzNjAwMzcyMTI0OCwgNDAuNTg4MjY3ODkxMTc0NzhdLCBbLTc0LjA3MDk2MzEwMTgyMDQ1LCA0MC41ODMxODE5OTA0MDI1N10sIFstNzQuMDcwNjU3ODE1Mzc4MTUsIDQwLjU4MTYyNTYyNTAzNzcxXSwgWy03NC4wNzQ5OTQxMzA3MzUxNiwgNDAuNTc5MjM2NTU3NDE2MzFdLCBbLTc0LjA3MzM2MTE4NDcyMTA0LCA0MC41NzgyNzU0ODgyODkxNF0sIFstNzQuMDc1MDgyODgxOTI2MjIsIDQwLjU3OTE2MDE1ODc1NTU1XSwgWy03NC4wODU5NTI5NzM4NTkyLCA0MC41NzAyOTgyMjcxMDQyMV0sIFstNzQuMDg2MjE2MzIyMjQyNjIsIDQwLjU2ODUzMjY5ODE0NzA5NV0sIFstNzQuMDkwOTk5MDU0NjcwNDIsIDQwLjU2NjczNzEyOTA5NzUyXSwgWy03NC4xMDQ4NDQ0NzYzNjMzOCwgNDAuNTUzMDI1ODE0NTU2MjRdLCBbLTc0LjEwNzM0ODMxMjgzNjUyLCA0MC41NTQxNDgxNTIwMzExM10sIFstNzQuMTEyNzg4NDY5NTgwNjgsIDQwLjU0Nzg4NDI2MzIyNjg0XSwgWy03NC4xMTY1NDUzMjE3Njk4NSwgNDAuNTQ3ODcyMzkzMTQ2NTU1XSwgWy03NC4xMjI0OTk2MDA5NTQ2OCwgNDAuNTQ0ODU4MTA3NzEzMDI2XSwgWy03NC4xMzY5MDc5OTA3NjM1MiwgNDAuNTI5MjgxOTE4ODgyNl0sIFstNzQuMTM4ODgzMzcyOTU2MDMsIDQwLjUyOTk2MDY3NjQ4NDM2XSwgWy03NC4xNDA0OTIyODI3NzQ2NiwgNDAuNTM0OTk4NjY4MDYyNjg0XSwgWy03NC4xMzQxMDAxNzQ5MTA5NywgNDAuNTM1NDk0NDg5MTA0NzRdLCBbLTc0LjEyNzk4NzI4NTI3MjIxLCA0MC41NDA3MTA5Nzc0ODMwOF0sIFstNzQuMTI3NTY2NjA3NjI4NDIsIDQwLjU0MzQ5OTMzMzkzNDRdLCBbLTc0LjEzMDcyNjU0MDgyMTA0LCA0MC41NDYyNTUxOTAzNTkzOV0sIFstNzQuMTM1NDIzMTIzNjEwMDgsIDQwLjU0NjU3NDI5ODQ5NDQ4NF0sIFstNzQuMTM3MTMyNTkwMTM2NzMsIDQwLjU0NTkzMDk3NDM1OTU1XSwgWy03NC4xMzYxMTU0MDcyNDA2LCA0MC41NDUwMTk4NDU2Nzk4Ml0sIFstNzQuMTM2MzgzNzk4MDE5NjEsIDQwLjU0NDg1NDY3MTUwNjI0XSwgWy03NC4xMzcxOTI4NzUxOTcxNiwgNDAuNTQ1Nzg0Mjk0NzAwMDRdLCBbLTc0LjEzNzUwODMzNTA4ODUzLCA0MC41NDU1Nzc1NTcyMzg2Nl0sIFstNzQuMTM2NTg5MDcwNzEwNTgsIDQwLjU0NDg0NTQ4NjA5NTkxXSwgWy03NC4xMzY4NzM0ODYzMDg2NiwgNDAuNTQ0NjgyNTkzOTEwMDFdLCBbLTc0LjEzNzk0OTY2MDUwNzU2LCA0MC41NDYwMDAzMzc1ODA2NF0sIFstNzQuMTM4ODY5NTEzNDA0MTksIDQwLjU0NTEzMDE5NzYwNzI2XSwgWy03NC4xMzc2MjQzMDc0NTE0LCA0MC41NDQyNTM1NjY0MTgyNl0sIFstNzQuMTM4NzU1MzQ3MDM0NiwgNDAuNTQ0OTMzOTU4NDI2ODJdLCBbLTc0LjEzNzg2Nzk4NTI0NTQsIDQwLjU0NDA1MjU0NDEzMDkyXSwgWy03NC4xMzkwMzMwNzE3ODYyNywgNDAuNTQ0NzA0OTEwMzAwMDJdLCBbLTc0LjEzOTUzOTM3OTE1NzQ3LCA0MC41NDQyOTUxNDA4NzIxMTZdLCBbLTc0LjEzODM0MTUxMjg4ODIzLCA0MC41NDM1NTE4Mjg4MTQwMV0sIFstNzQuMTQwMzg1NzMwNzM2MjMsIDQwLjU0NDAzMzE4NTAwNzgyXSwgWy03NC4xMzkyMTk5MzQ4NTg4NiwgNDAuNTQzMTY2MDg1MTM3ODM0XSwgWy03NC4xNDE0MTA3MzU2MDQwOCwgNDAuNTQzMDIyNDE1MDgwMzVdLCBbLTc0LjE0MDI2MjkwNDAwNzAyLCA0MC41NDE5NjE1MTE1MjI1OF0sIFstNzQuMTQxMzQ5MDEzNzk2LCA0MC41NDI1Nzc1MjMxMzE1Nl0sIFstNzQuMTQxNzk3MTk5NTcwNTIsIDQwLjU0MjIwMDQxNTM4MjM1NF0sIFstNzQuMTQwNjM5ODQxNzIxMzQsIDQwLjU0MTY5NDU0MjAzNzI1Nl0sIFstNzQuMTQwOTU4MTY4MzI4OTIsIDQwLjU0MTQzMjA3Nzk2NDk1Nl0sIFstNzQuMTQyMjk4OTg2MzAyNDQsIDQwLjU0MjI1MjExMTQ2MjM3XSwgWy03NC4xNDIyNjUxMzAwNzk5OSwgNDAuNTM4MTQwMzUzNjY0NjddLCBbLTc0LjE0MTgzNzg5Mzg4MjY3LCA0MC41Mzg0MjE2MjA0MjY3NV0sIFstNzQuMTQyMTY3MTgwMTkxNDUsIDQwLjUzNzkzMjc2MTA2ODEzNF0sIFstNzQuMTQxMDQxNTc5MTY1NTIsIDQwLjUzNzM0Njg4NTQ2NzI1XSwgWy03NC4xNDEyOTgyNTQ3MTgyNywgNDAuNTM3MTM4MTc3OTQ4MzM2XSwgWy03NC4xNDIxODU3NDg0MTg4NCwgNDAuNTM3OTE3Nzc4MjkxNDQ0XSwgWy03NC4xNDE1ODI4NzY5MDg5MywgNDAuNTM3MDg3NTc3OTUyMzZdLCBbLTc0LjE0OTIxNzMzMjYzOTcsIDQwLjUzNDI0MTU4Nzc2MDg2XSwgWy03NC4xNTYxODczMTg1MjQ1MiwgNDAuNTI4NjExMzcxNTk0MjI0XSwgWy03NC4xNzIwMjQ0NjY1NTY5OCwgNDAuNTIzMzMzMjEwODA3OTZdLCBbLTc0LjE3NzU4Mjk1NTIyMTA2LCA0MC41MTkyMzA4NjY4NjU5OV0sIFstNzQuMTgxMDQwODEyMDg4ODcsIDQwLjUyMDcwNTAzNjI4NzE1XSwgWy03NC4xODQ4MzExNjQ3OTc2LCA0MC41MTkzNDEzNTg2MDA4Ml0sIFstNzQuMTk1MjEzMzk5OTkwNzMsIDQwLjUwOTk3NzY1Mjk1NTY1NV0sIFstNzQuMTk5NjcyMDUzNTc3MTcsIDQwLjUxMTQyNjg1MDQ5NzQ2XSwgWy03NC4xOTkwNzMwNzA5NTQ5LCA0MC41MTMwODM4ODQ1MzY5NTRdLCBbLTc0LjIwNzU5NzAxNzI4NjE1LCA0MC41MTE4MzUxNTYxNTE3NTRdLCBbLTc0LjIxNzU4MjQwMTY0NTM2LCA0MC41MDMzNDEzOTI2NjM1Ml0sIFstNzQuMjMxMjQ0NDMyNDQxODUsIDQwLjUwMTgyNjg2MDMxODkzXSwgWy03NC4yMzk4NDg1MTI0Mzk5LCA0MC40OTc1ODMwMTMyMDY5Nl0sIFstNzQuMjQ2NzYxMDI3NzQxOTUsIDQwLjQ5NjEzMzk4NzYxMTc5XSwgWy03NC4yNTMxNjEyNDQ5MjAxMiwgNDAuNTAwMTI1Mzc2NDY0NzY2XSwgWy03NC4yNTU1OTEzNjMxNTIxMywgNDAuNTA3NzEyOTUwNzI5MDRdLCBbLTc0LjI1MzMxNTc5ODA1MTMyLCA0MC41MDk4NjE1MDQ1NDA5M10sIFstNzQuMjUzNTI2ODUwNzY3MSwgNDAuNTExNjc3NzY2MDMxODE2XSwgWy03NC4yNTA1NjAwNzI3MjE5NywgNDAuNTE2MTA2NzQxNTM1MDA1XSwgWy03NC4yNDkyMTUyODY3NjEwMSwgNDAuNTE1MDg0ODYxMjk5MjRdLCBbLTc0LjI0OTk0MTU4ODA4MDQyLCA0MC41MTYxMzc0ODgxOTA5OF0sIFstNzQuMjQ4Mjg0MjIwODM4OTEsIDQwLjUxNjQ4Njk0OTU1MzY1XSwgWy03NC4yNDk0MDc3MDc4OTI4NCwgNDAuNTE2OTgwODMxNDIzNjRdLCBbLTc0LjI0NjQ0MDM5NjUxMzI0LCA0MC41MTU5NjUwMjg1MDg0OV0sIFstNzQuMjQ1NjM0NzMxNjk5NDUsIDQwLjUxODA3NTU4MDc0NTcxXSwgWy03NC4yMzk4MjI1ODMxNjc3OCwgNDAuNTIwMDkwNzExNDQzNzZdLCBbLTc0LjI0MjkzMjM1MDM2NTExLCA0MC41MjEyMjcxNjExMzI3NjRdLCBbLTc0LjI0Mzk2NTAwNzU4ODU5LCA0MC41MjQ5MDUzNjYzMzc4XSwgWy03NC4yNDE1MDczMzMyMjg5NywgNDAuNTMxMDQxMzQyNzk1MTM1XSwgWy03NC4yNDIwNDU3MDI4NjAwOCwgNDAuNTM0MzQ2Mzc3MDUwNF0sIFstNzQuMjQ1MzM2NTExNzYwNTgsIDQwLjUzNjkwNTk5NDQzNDYyNl0sIFstNzQuMjQ1NjAyMDU2OTgzMjQsIDQwLjU0MDk0OTU5NDU3NzNdLCBbLTc0LjI0ODAzNDYzNzM1Njk0LCA0MC41NDMwOTMyNDA0NDEzN10sIFstNzQuMjQzMzYzNDY1NTI3NzIsIDQwLjU0Nzg2NTEzNTIzNTgyXSwgWy03NC4yNDAzOTE4MjgxMDA1NywgNDAuNTQ3NjYzMzEwMTczNzI1XSwgWy03NC4yMzY0MTQ1OTcyNjc5NywgNDAuNTUwNTA4MjIzNDQ5ODJdLCBbLTc0LjIzNjM5OTYyMDg2MTYsIDQwLjU1MjMzNTMzMzE5MDU5XSwgWy03NC4yMzMzMjQwMDA4MDMyNCwgNDAuNTUyNTA5MTQzNTY1ODddLCBbLTc0LjIzMDcxMDM2MTk4MTIxLCA0MC41NTU1NTc1OTQyNTg5MV0sIFstNzQuMjIwODY3MTUwOTM0MDEsIDQwLjU1NTk0MDIwMjI3NzddLCBbLTc0LjIxODU5MzI1NzgyODA4LCA0MC41NTQ2NzQyMTAyNDc3NV0sIFstNzQuMjE4NzUwMzY4ODA1NiwgNDAuNTU2MDI3NzQwNTM3MjQ2XSwgWy03NC4yMTYwNDI0NjA2MDYzNiwgNDAuNTU1NTQ0MTE4NzgyOThdLCBbLTc0LjIxMTk2NzY3MTcyNzY1LCA0MC41NTg0NDI0Njg3NzY4MV0sIFstNzQuMjA0NDAwNzY0MzM2OTIsIDQwLjU4MzcxMjk0NTg0MTkzXSwgWy03NC4yMDQ2NDYwODk0MzIxLCA0MC41ODkyODU3NDU0NjU4MTZdLCBbLTc0LjE5NzUxMzU3NzE4NzExLCA0MC41OTY3OTg5ODYwMzY3M10sIFstNzQuMjAyODE2MjgzNzQ1OTMsIDQwLjYwODI3MDgyNzk2NzI5Nl0sIFstNzQuMjAyNDQzNzQ0NDk1MjYsIDQwLjYxMzI4NDY5MzkzMTkyNF0sIFstNzQuMjAwNDUzMjQ0NDQ0ODIsIDQwLjYxNjMyNzk5NjgwNjM0XSwgWy03NC4yMDE2MzIwMTEwNDExNywgNDAuNjIzMTIxNTY1NDU3MzhdLCBbLTc0LjIwMDc5MjEyNzcyNTYyLCA0MC42MzAzNTQyMjg2OTI1Nl0sIFstNzQuMTk0NjIzMTAxNDUxOTIsIDQwLjYzNzM5MTE4MzU2MzY2XSwgWy03NC4xODY1MjQ5Njg5NzYsIDQwLjY0MzM4ODY2MjE3MTQ0XSwgWy03NC4xODQ4MzU5NDU4MDg0NywgNDAuNjQ0MTI4MjY2MzM4N10sIFstNzQuMTgzNjUwNjcwNjQwNjMsIDQwLjY0MjIzOTY0MTA1MDY1XSwgWy03NC4xODM2Njc0NTg3MjAxLCA0MC42NDQ2MTA0ODUwNTAwNDVdLCBbLTc0LjE3OTk2NTA3Mjc0MDIyLCA0MC42NDUyNjY5ODIzMDI4OF0sIFstNzQuMTc5NTg3MTM3MjE0MSwgNDAuNjQxOTE3NjgzNDY0MDQ0XSwgWy03NC4xNzkxODcyODA2NzU2NSwgNDAuNjQyOTg3NTM5OTk2NDZdLCBbLTc0LjE3NjM1Nzg2NjE3NTM0LCA0MC42NDIzMjcyMjA1NjI4Nl0sIFstNzQuMTc0MzY1NzI5NDM2MDksIDQwLjY0NTEzNjI1ODY0NTQzXSwgWy03NC4xNzEzMzU4NzI4MTgwOCwgNDAuNjQyODU1NzY1MDUxOTU1XSwgWy03NC4xNzI5Nzk5MDU4MjA3MSwgNDAuNjQwNDg2MDY3MTk1NjI0XSwgWy03NC4xNzEwNTAxNzIzOTg5MiwgNDAuNjQyNTkzODE5MTI5OTVdLCBbLTc0LjE2NjA5OTg5ODk2MDM0LCA0MC42NDI0MDY1ODcwMDEyXSwgWy03NC4xNjQxNjg4NjgxMzYzMSwgNDAuNjM5OTk0MTEwMjMwMzFdLCBbLTc0LjE2NDAwMTc5MDAxNDIsIDQwLjY0MTA2NTg2MDAwNjc2XSwgWy03NC4xNjM4NDk3NjU4ODYxLCA0MC42Mzk4OTE1MDk3MTc3XSwgWy03NC4xNjE2NzUzNDY5NDIzNSwgNDAuNjQwNjEwNzg0NzY2NzZdLCBbLTc0LjE2MjI4NDY1MjUyMDg1LCA0MC42Mzg3NjU2NTI3NzIyODVdLCBbLTc0LjE2MDM0ODE5OTkzMTY2LCA0MC42Mzg0NDM3MjY0NTM0NV0sIFstNzQuMTU5ODY0MTA0NjUwNDEsIDQwLjYzOTkyNzgyMzY5Mjc2Nl0sIFstNzQuMTU5MzE5NTQwMzcyNzgsIDQwLjYzNzgxMDQwNTc0NTQ1XSwgWy03NC4xNTcxODc4Mjc4MjUyMSwgNDAuNjM3OTUwODA1MjI4OV0sIFstNzQuMTU2OTc3MjMyOTQyNTUsIDQwLjYzOTI3NTQwMTE5MThdLCBbLTc0LjE1NTY5ODYyMDUzMTUyLCA0MC42Mzc1MTc5Mzg5MDQxM10sIFstNzQuMTU0NjkyNjM4NjQ1MjYsIDQwLjYzOTE5Mzk2ODExNDIwNl0sIFstNzQuMTU0NTk2NzAxNjMzMjgsIDQwLjYzNzM0MzM0NDA2OTAyXSwgWy03NC4xNTI3OTcwMzUxMTQwMywgNDAuNjM3MTMyNzU0ODUyNTQ0XSwgWy03NC4xNTExOTU0NTAwNzE3OCwgNDAuNjM3NzMwNzg4NTM2MTNdLCBbLTc0LjE1MTM5NTE3NjEzNjUsIDQwLjYzOTM5NjUxMzA1NzQxXSwgWy03NC4xNDg1NTgxNTA5MjIwNiwgNDAuNjM3NDM3ODM3NTI3MjJdLCBbLTc0LjE0ODc3NzkyMDA1ODg1LCA0MC42Mzg4NzYyNTExMjc3MDVdLCBbLTc0LjEzNDM1MjY5NTczNjMxLCA0MC42NDE4ODY3OTc0MDUxNF0sIFstNzQuMTI4OTA3MjkwMzM0NTIsIDQwLjY0MTE5NDgyNzU4NjEyXSwgWy03NC4xMjcwMjczNjAyMTA5NywgNDAuNjM5MzE5MDc4OTg5NDRdLCBbLTc0LjEyNjM2ODA4Njg4OTgxLCA0MC42NDEzMzIzODA0ODY5XSwgWy03NC4xMjQxNTU3ODQ0NTAxMSwgNDAuNjQwMTM0NzE2NjQwMDJdLCBbLTc0LjExOTQwMDI5NTMyNDU1LCA0MC42NDIzNzkzNzg1MzI3MV0sIFstNzQuMTE4NjE2MzUyMzYyNzQsIDQwLjY0MTUzMDM2NTAyODk4NF0sIFstNzQuMTE4ODM2MjQ2MTY5NDIsIDQwLjY0MjU0MTg2NDA2MDMzXSwgWy03NC4xMTcyODgxNDQ4MDM3NywgNDAuNjQxNTk0Mzc3MjA0NTldLCBbLTc0LjExNzIyNDcwMDgyNTQ1LCA0MC42NDMwMjczNTk5NjI1OF0sIFstNzQuMTE1MzUwODIxODI5MzIsIDQwLjY0MjQ3MDU0MDE1ODE3XSwgWy03NC4xMDk3MzkzMjU2NDQ4NCwgNDAuNjQ1NDYzNzI4MTg0NzJdLCBbLTc0LjA5ODgwMDY2ODg1ODA4LCA0MC42NDUwNDcwMzQzMTA3NjRdLCBbLTc0LjA4NTcwNzU0Mzc4MjEyLCA0MC42NDg4ODA1NTMzNzA0NV0sIFstNzQuMDgyMjEyNzI5MTQ5MzYsIDQwLjY0ODI4MDE2MjI5MDA3XV1dXSwgInR5cGUiOiAiTXVsdGlQb2x5Z29uIn0sICJpZCI6ICIwIiwgInByb3BlcnRpZXMiOiB7ImhpZ2hsaWdodCI6IHt9LCAic3R5bGUiOiB7ImZpbGxDb2xvciI6ICJvcmFuZ2UifX0sICJ0eXBlIjogIkZlYXR1cmUifV0sICJ0eXBlIjogIkZlYXR1cmVDb2xsZWN0aW9uIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICkuYWRkVG8obWFwX2U0NGM2YmUxNTNjZjQxMjFhNmUwNWM0ZTBhODcyNWU0KTsKICAgICAgICBnZW9fanNvbl9hNTFkZDYyMWFmMWI0MzMyYjE5ZWE5OWEyNDUwMDA5ZC5zZXRTdHlsZShmdW5jdGlvbihmZWF0dXJlKSB7cmV0dXJuIGZlYXR1cmUucHJvcGVydGllcy5zdHlsZTt9KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWJkNTdkYzVhNGZhNGM2MDhiYzY4ZDJjZWYzZDRiMTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCcKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83NjAzMWNmM2VhZjQ0YmU2OWMxM2Q5NGMxYzY2NTg1MiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzYwMzFjZjNlYWY0NGJlNjljMTNkOTRjMWM2NjU4NTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlN0YXRlbiBJc2xhbmQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzViZDU3ZGM1YTRmYTRjNjA4YmM2OGQyY2VmM2Q0YjEyLnNldENvbnRlbnQoaHRtbF83NjAzMWNmM2VhZjQ0YmU2OWMxM2Q5NGMxYzY2NTg1Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgZ2VvX2pzb25fYTUxZGQ2MjFhZjFiNDMzMmIxOWVhOTlhMjQ1MDAwOWQuYmluZFBvcHVwKHBvcHVwXzViZDU3ZGM1YTRmYTRjNjA4YmM2OGQyY2VmM2Q0YjEyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIAogICAgICAgIHZhciBnZW9fanNvbl81OGI2NGMyMjdmNzI0OGYxYjk3Y2U2MDRmNDkwODhhNSA9IEwuZ2VvSnNvbigKICAgICAgICAgICAgeyJiYm94IjogWy03My45NjI2MDgxOTc1MDgzMywgNDAuNTQxODIwMDg3MTU1MTgsIC03My43MDAwMjAyMDUwMzI5MSwgNDAuODAxMDExNDY3ODE4OThdLCAiZmVhdHVyZXMiOiBbeyJiYm94IjogWy03My45NjI2MDgxOTc1MDgzMywgNDAuNTQxODIwMDg3MTU1MTgsIC03My43MDAwMjAyMDUwMzI5MSwgNDAuODAxMDExNDY3ODE4OThdLCAiZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1tbWy03My44MzY2ODI3NDEwNjcwNywgNDAuNTk0OTQ2Njk3MDE1ODJdLCBbLTczLjgzMjU3NDk4MTA2Mzc0LCA0MC41OTIxMTgyMDkxMTM5ODRdLCBbLTczLjgzNDIyNzc3MDY3MzI3LCA0MC41OTEzNzM4MTM4MjI1OV0sIFstNzMuODMyNTM1Njk0ODUwMzksIDQwLjU5MDIxODkzNTc5ODM0XSwgWy03My44MzQ5NTQyMjc2NzcwNCwgNDAuNTg5NzI4MTU1NjE3OTZdLCBbLTczLjgzMzQ3ODY2NjQ1MzUyLCA0MC41ODkzNjg3NDg3MTA4OV0sIFstNzMuODM3MTk1NDExMzU4NiwgNDAuNTg5Njk5MTE3MzYyOTVdLCBbLTczLjgzOTg5MDcwMTkwOTI0LCA0MC41OTI4MDAyMTE0OTM4MV0sIFstNzMuODQzODU4OTQwODM5NDQsIDQwLjU5MzQyNTMxMTk2MDYxNV0sIFstNzMuODM5MDI5NjQyNDgwOTEsIDQwLjU5NjI1MzQ4NDc0ODY1XSwgWy03My44MzY2ODI3NDEwNjcwNywgNDAuNTk0OTQ2Njk3MDE1ODJdXV0sIFtbWy03My44MDk5NzA1OTQwNjA2MiwgNDAuNjAwMDY3NTM3MzgwMTVdLCBbLTczLjgxMjIyMDczMjg3NzYyLCA0MC41OTg1NTM5MDg0Nzc3MjZdLCBbLTczLjgxNTAxNDcxNTY4NDMsIDQwLjYwMjA1NjI5MTU2MzU2NF0sIFstNzMuODE0ODAxMTc3NDk1ODcsIDQwLjYwNDA4MDM0MzMzMzQzNl0sIFstNzMuODEwMTY5NTg4MTk1OTIsIDQwLjYwMjc5OTc2MzA0MjM4NF0sIFstNzMuODA5OTcwNTk0MDYwNjIsIDQwLjYwMDA2NzUzNzM4MDE1XV1dLCBbW1stNzMuODAwMzE4MDc3Mjk5MzEsIDQwLjYwNzA2NDQwMTg0NDg5XSwgWy03My43OTc5MjczNjQ5ODcyNiwgNDAuNjA2NTc5NDA1Mzg4MTddLCBbLTczLjgwMDEwOTI4MDc5MDAyLCA0MC42MDUzMTg4NjYzMjEwNTZdLCBbLTczLjc5NzgxMTQyMjA2MzE5LCA0MC42MDUxNTk5MjAzMjk1Ml0sIFstNzMuNzk4MDM3MzUzNjQ5MzUsIDQwLjYwNDgzNzAzNzM5ODU5XSwgWy03My43OTg3Njg1OTE4MTA4MSwgNDAuNjA1MDE1OTY5MTQ5MDg2XSwgWy03My43OTk5Mzc5NDYwNzQ4LCA0MC42MDQ2MTAwMzc5MDc4OV0sIFstNzMuODAwMjA1NTkxNDYyMjMsIDQwLjYwNDgzNDYyOTgwNzIyXSwgWy03My44MDA0ODYzMjAyMzUxNCwgNDAuNjA0NzYyODE4MjgwODRdLCBbLTczLjgwMDA0NjUwMTYyNzc2LCA0MC42MDQ1NjE2ODIzMDAzNF0sIFstNzMuNzk3OTAwODM3OTEwOTcsIDQwLjYwNDcyMDA4NTY1MjddLCBbLTczLjc5NzY2MzI2MDI5NzEzLCA0MC42MDUzMDgzODg5MjUxNzRdLCBbLTczLjc5ODIxNTYxOTkyNzQsIDQwLjYwNTkzNjI5NzI0MzNdLCBbLTczLjc5NzY2MTQzNDIyMzU3LCA0MC42MDYzNTc3NTU5MDU2MDZdLCBbLTczLjc5NjExNDUyMjg4Mjk5LCA0MC42MDQ2OTM5NjMyMDIzNl0sIFstNzMuODAzODExODMyMzQyMzUsIDQwLjYwNDM2MDk5NzQxNjRdLCBbLTczLjgwMzE0MzAyMDMzMTgyLCA0MC42MDYzNjY5MzQ5MzI3Nl0sIFstNzMuODAwMzM4NjM5MjQ1NjIsIDQwLjYwNjI3ODgxNTY5NjY4XSwgWy03My44MDAzMTgwNzcyOTkzMSwgNDAuNjA3MDY0NDAxODQ0ODldXV0sIFtbWy03My44MjcxODI4MjEwNzA1NSwgNDAuNjA3OTE5Nzc4MDkxMjFdLCBbLTczLjgyNTkwMDkyNzIwNzcxLCA0MC42MDY0NjU5MzA2NDk0M10sIFstNzMuODI4NjE2NzE0NTc2NjMsIDQwLjYwNTgzODQ4NDEzNzU2NF0sIFstNzMuODI4MTUwODUxOTEyMTgsIDQwLjYwNzk1MDI4OTgzMjk1XSwgWy03My44MjcxODI4MjEwNzA1NSwgNDAuNjA3OTE5Nzc4MDkxMjFdXV0sIFtbWy03My43OTY2NTY5OTY1OTAyOSwgNDAuNjA4OTYwOTE1MDcxMjddLCBbLTczLjc5NTUxNjk0MzY3NTYsIDQwLjYwNzM1NDk2Mjc5ODA4NF0sIFstNzMuNzk1Mjc4MTQwMzg0MTEsIDQwLjYwNTgxNDMyMTUzMzddLCBbLTczLjc5NTcyNjk4OTU0MTcyLCA0MC42MDUyMzA2MTM3NDkxNl0sIFstNzMuNzk1NzAxNDE3NjQ1NiwgNDAuNjA2NDYwNTI1NjI0MzY0XSwgWy03My44MDA1MjYxNzY1NDIwOSwgNDAuNjA3MjI2MzM4NjUwNTg0XSwgWy03My44MDQwMTQ5MzMzNzQ1NywgNDAuNjA2MTMxNTAwMTc0ODA0XSwgWy03My44MDA5OTQyMTIzMDU2OCwgNDAuNjA4NjcyMDk3OTEwNTg1XSwgWy03My43OTY2NTY5OTY1OTAyOSwgNDAuNjA4OTYwOTE1MDcxMjddXV0sIFtbWy03My44MzAyNjI5OTgxNTU4MiwgNDAuNjA4NTQ5ODQyODI0MDc1XSwgWy03My44MzEyNTg3ODkxMTY2NywgNDAuNjA1OTUzMTkwMjA4NTk1XSwgWy03My44MzU4NzYwMTYyMzE2OCwgNDAuNjA1NjM2OTA3MDQyOTNdLCBbLTczLjgzNDI4MzQyNjIwMDEsIDQwLjYwOTE4NTY4MTg1M10sIFstNzMuODMwMjYyOTk4MTU1ODIsIDQwLjYwODU0OTg0MjgyNDA3NV1dXSwgW1tbLTczLjgyNjA3NDcyNjA0NTQ4LCA0MC42MDg0Mzc3OTk1NDYwNV0sIFstNzMuODI3NzExMDQyMzU5OTQsIDQwLjYwODM5ODY2ODEzMDY1NF0sIFstNzMuODI4MDUwNzcyNjAwNiwgNDAuNjEwMDQ2Mjk2ODY1MjhdLCBbLTczLjgyNjg4MzI2NDE0ODExLCA0MC42MDk1OTY2NzgwNjkzOV0sIFstNzMuODI2MDc0NzI2MDQ1NDgsIDQwLjYwODQzNzc5OTU0NjA1XV1dLCBbW1stNzMuNzY2NjkxMzk3NzExNzgsIDQwLjYxNDI1NDY1NTQ1MDAyNl0sIFstNzMuNzY1MDU5NjE2NzkxNzMsIDQwLjYxMjAzNTIzMDYxMDQ0XSwgWy03My43NjAyMzYzNTc1Njk3NywgNDAuNjEwODIwODY0OTUwMjZdLCBbLTczLjc2MTc4MjQyOTYwNjA0LCA0MC42MDkxNTE2NzAwNTQ0Nl0sIFstNzMuNzYxNTUwNTE5MDU4OTMsIDQwLjYwOTAzMTM2NTgwMDc3NF0sIFstNzMuNzU5OTg0NDY5NzQ4NDMsIDQwLjYxMDg3OTM3Nzg0NjcxNV0sIFstNzMuNzU1NjA2ODQ3MjYxNSwgNDAuNjEwMDc3MzY1MjI2OV0sIFstNzMuNzQ1NzYxNTAxNzg2NzksIDQwLjYxMTk5MTY1NDc0ODcxXSwgWy03My43NDMzOTczMTU4ODA4NiwgNDAuNjA3NDcyMTcxMDY4MDddLCBbLTczLjczODE1MTQzMTI0NjI0LCA0MC42MDI3MTA0NDAxNjY3N10sIFstNzMuNzM4MDc4OTA0MzU1MTUsIDQwLjU5NzU2NTc1NjE5MTAzXSwgWy03My43NDE4MzA4MzUzMTIxNywgNDAuNTk2Njk1NTUxNDU2NzRdLCBbLTczLjczODA4OTYzOTU1OTA4LCA0MC41OTczNzg5ODE0MzkwNjRdLCBbLTczLjczNzYzNjc5Mzc5NTY3LCA0MC41OTQ0MTUzOTk2NzYwOV0sIFstNzMuNzQ2NjI5MTc4MTMxODgsIDQwLjU5NDMwMTQ5MzU1OTE5XSwgWy03My43NTM1NDI0MTk0NDQzNywgNDAuNTkwOTQ1Mjg3NzUxNjRdLCBbLTczLjc3NTgzNjg4NTk1MjY3LCA0MC41OTAzMjQ1OTg3NTc2OV0sIFstNzMuODEzNTI0NDg3Mjc1NTksIDQwLjU4MzQ3MzE0OTA0NjddLCBbLTczLjgzMzg2OTIzMTcyMTgyLCA0MC41Nzc2NDk4OTc2MDg5MTRdLCBbLTczLjg3MDI3NTg4NDY0Njk5LCA0MC41NjQxNzQ2NTM1OTczNV0sIFstNzMuODk0OTE4MTcyNjYzMjQsIDQwLjU1NzA3ODc5NjI5ODI2XSwgWy03My45MDY5MTM5MTAzMzIzOCwgNDAuNTU1NjAzNTcyMjMwNDNdLCBbLTczLjk0MDczNjgxNjY1NDI3LCA0MC41NDE4MjAwODcxNTUxOF0sIFstNzMuOTM5MjU0MDk3NTg1NTUsIDQwLjU1NDk4MDExMDU1MTA3XSwgWy03My45MjYxNTcyMzI3NTQyLCA0MC41NjE1NTI2MDk3MjMwN10sIFstNzMuOTE3NjYwODE5MDAwODYsIDQwLjU2MjgyNjE0OTY4NjQzXSwgWy03My45MTE5NzAyNDc1MjUwOSwgNDAuNTY1ODY5NDE3NTMyNDZdLCBbLTczLjkwNjY0NzI0MTIxMjg0LCA0MC41NjI3ODU5MTM4Mzc0OV0sIFstNzMuOTAxNjExMTgxNjc3MjcsIDQwLjU2Mjc1MTQ0OTg4NDI0Nl0sIFstNzMuODkyNjEwMTM0NDU2MiwgNDAuNTY4NTg3MjQ3Mjg2NjZdLCBbLTczLjg3NzgwODA4OTk1NzM4LCA0MC41Njg4MDA2MzAwNjMwNjZdLCBbLTczLjg1MDQ0Mzg1MTQ5MTk1LCA0MC41ODIxMzAyNDM1ODEzNV0sIFstNzMuODM5Mjk3MzcyNjY5NzUsIDQwLjU4MTg2NDAxMzQ5NDAxXSwgWy03My44MjQ4MTMzMzkwNzEyMSwgNDAuNTg3MTUxMzIyMDM1OTVdLCBbLTczLjgyMTQ1OTcxOTkxNzczLCA0MC41ODY3Njk5MjQ5MjEyMzVdLCBbLTczLjgwOTYxMTk2Mzc4ODU4LCA0MC41OTM1NzY5ODQyNjM2OF0sIFstNzMuODA1NzI3NzAzOTMwMTIsIDQwLjU5MDc1ODczODI2NDQzXSwgWy03My44MDQxNjU2OTEwMzAzOSwgNDAuNTkxODU0NzA5ODMyNzddLCBbLTczLjgwNzk3Njg3NTk4MzAzLCA0MC41OTQxNjE0MTU5NDgxM10sIFstNzMuODA2MDQxNDk4MDczODcsIDQwLjU5NTU1NDU1NTIxMzUzXSwgWy03My44MDI0Mzg0NjI5MDMxMSwgNDAuNTkyNjQwMDYzODM1MDg0XSwgWy03My44MDIzNDUxMzg0NTY2MywgNDAuNTk0NDk1OTc1MjU2ODc2XSwgWy03My44MDM0NDAxNzA0MTQ1MywgNDAuNTk0NDM0MjA5MTc2ODFdLCBbLTczLjgwMzIxNDk0MjUxMjU3LCA0MC41OTUxNDU2NDg0NTA1OF0sIFstNzMuODAzODk1MDcwMDY3MzcsIDQwLjU5NDk5MDg3NTM2NzIxXSwgWy03My44MDMzMTQ1MzcyOTA2OSwgNDAuNTk1MTc5NTYxOTM5NDQ2XSwgWy03My44MDM2ODQ2ODY5NTcyMywgNDAuNTk1MTk3NzkwMTgzODJdLCBbLTczLjgwNDg2NDYyNjQ2OTMyLCA0MC41OTY3MzM2MjgzNTE0NDRdLCBbLTczLjgwNTEzNDA2MjUyNzYsIDQwLjU5NjYwNzU4ODk3MDUyXSwgWy03My44MDUyNDgzMjUzODI1MiwgNDAuNTk2ODk1MDMyNjEzNl0sIFstNzMuODAyOTc5NDMzMjU3NDgsIDQwLjU5ODg0NDMwNDU1Mjk2XSwgWy03My43OTIzMzI1NjQ0OTUxNCwgNDAuNTk5OTU0MzkxNDI1NzZdLCBbLTczLjc4NjM1MzMyODExODI0LCA0MC42MDMxOTQ2NTkwMzg0Ml0sIFstNzMuNzkwMzQwMDY1NTA5ODUsIDQwLjU5OTE5MTY3NjM2MDA3XSwgWy03My43OTEwMzYxNzQ5MjM5NiwgNDAuNTk1NTIyMjQwMTA1N10sIFstNzMuNzg5NzU1MDM0NDc5NDQsIDQwLjU5NDczNzI1MDMwOTI0NF0sIFstNzMuNzg5MDY4MjkxMjE1MDIsIDQwLjU5ODAxOTkyNzM4MjYxXSwgWy03My43ODM1MDU2MDkwNTMxMiwgNDAuNjAyNTYzNDM4NzQyNzJdLCBbLTczLjc4MzY2Njk2MjkyMjQ0LCA0MC42MDUzMjQ0MzY5MzQzXSwgWy03My43Nzg1NjgwNjkzOTk1NCwgNDAuNjA5NjQzNjYzNDI4OTldLCBbLTczLjc3NTM1MTY0NzQ1NzE3LCA0MC42MDk3Mzc0MDY5NjQzXSwgWy03My43NzQyMjIzNDQxMTM5OCwgNDAuNjA4ODkzMjMxNjM1MjM2XSwgWy03My43NzQ2MDI5NDU5OTA3NCwgNDAuNjA3NDE3NjQ4ODgyNTI0XSwgWy03My43NzQ4NDg4NjU0NjQ4LCA0MC42MDgwMjQ4MzMxNTk2N10sIFstNzMuNzc1MjM4NTE5ODYxODMsIDQwLjYwODU1MDk0MzAwMDI0XSwgWy03My43NzYwMDc3MjE1MjgyMiwgNDAuNjA5MTkwNzU0MjQ4MTI1XSwgWy03My43NzQ2ODc5ODk2NDYzOCwgNDAuNjA0MzI0NjQ4Mzg5MThdLCBbLTczLjc3ODE4MDg2OTc4MzA5LCA0MC42MDAzODU1NDEwODU3NjRdLCBbLTczLjc4MTkwNjgxMDA3NjUsIDQwLjU5OTExNDE2NTM0MjI2XSwgWy03My43ODEzMjk3Mzk5ODEyNiwgNDAuNTk3NzUzMDM3NDQ2OTE0XSwgWy03My43ODAwNTQ5MzY5NTU2MiwgNDAuNTk2ODYxMzQ0OTA4ODFdLCBbLTczLjc3NDk3MjA3MzUzNzgxLCA0MC42MDE3NDQ0ODcwOTE5Ml0sIFstNzMuNzczNTg1NDUyMTk1MDksIDQwLjU5ODEyMDQ3MzE3MzQzXSwgWy03My43NjgxMjI4NTM3NjMyNCwgNDAuNTk3ODI0MzU5NDc0NzFdLCBbLTczLjc3MTE2MDUyNDM2MzM3LCA0MC41OTk0MjI0NTIwNzM3NV0sIFstNzMuNzY5MDAwNzgwMzQ5NTYsIDQwLjYwOTM5MTU1Mjk4NDgxXSwgWy03My43NzIyMzQ1MDIzNDUxNywgNDAuNjExNTAxNjc2NzUwMjY1XSwgWy03My43NzI5NjI2ODY4NjU0OCwgNDAuNjEwMTUyNzYyOTQ1N10sIFstNzMuNzc0MTcxODQ2Nzk3MDMsIDQwLjYxMTgyOTY2OTk0NjNdLCBbLTczLjc3MzM4NTk3OTcxODI0LCA0MC42MTM2NzUwNjYzMTg0NjRdLCBbLTczLjc2NjY5MTM5NzcxMTc4LCA0MC42MTQyNTQ2NTU0NTAwMjZdXV0sIFtbWy03My43ODQ3ODU0NzQ4NjQ0OSwgNDAuNjE3OTgwNzIxODM1NDQ0XSwgWy03My43ODA5MDYyMTYyMTY2NCwgNDAuNjEzNjAzNjc2NjE4N10sIFstNzMuNzkxNDc0MTYyMzA5NSwgNDAuNjA3NjU1MDU4MzI1MTNdLCBbLTczLjc5MTkwNTkyMDA0NDQ4LCA0MC42MDk4NzQxMjc3ODI0N10sIFstNzMuNzg5NTM3OTA3Njk4NDksIDQwLjYxMDAxNzc3OTc0Mjc3XSwgWy03My43ODk1OTkzMjI1OTcyNSwgNDAuNjEyNDkxNDg5MzcyMjI1XSwgWy03My43ODU0OTg5ODI4OTU0OCwgNDAuNjE0MDU5NDUwMDY1Nzk1XSwgWy03My43ODUyMTU0MzA3NjY3NSwgNDAuNjIwMDYzNDkzNzQ0NDA0XSwgWy03My43ODQ3ODU0NzQ4NjQ0OSwgNDAuNjE3OTgwNzIxODM1NDQ0XV1dLCBbW1stNzMuNzY2NzA4Mjc3ODEyNDMsIDQwLjYxNDkxMDg2NjE4NTUxXSwgWy03My43NjgyNTI4ODAwMzM5NCwgNDAuNjE0ODc3NzI1MTY5MzZdLCBbLTczLjc3Mzk3NjkyMDE4ODMsIDQwLjYxNjAwMzU3NTY3MTQ1Nl0sIFstNzMuNzY4NzM0NTQ2MDc5NzgsIDQwLjYyMDkwMTEwNDI2NjE4XSwgWy03My43Njc0NTkyNjk1MDU0NCwgNDAuNjIwNTExMzIyMDYyNTVdLCBbLTczLjc2NjcwODI3NzgxMjQzLCA0MC42MTQ5MTA4NjYxODU1MV1dXSwgW1tbLTczLjgzMTkwOTk2MTM0ODA3LCA0MC42MjQxNzU3MjI1OTA1NV0sIFstNzMuODMzMDk3MDUzMzUzOTQsIDQwLjYyMjQxNDc0NTgzNTc3Nl0sIFstNzMuODMzMTA4MjIwOTAxMzIsIDQwLjYyMTY4MDg4ODU3NTIzNF0sIFstNzMuODMzNjgyMTQ5NTI1OSwgNDAuNjIxMzgxMzA1Njg2NDA1XSwgWy03My44MzM1NTkyMzg4MDQ2LCA0MC42MjM5MzYwMzQ0OTk5MzRdLCBbLTczLjgzMTkwOTk2MTM0ODA3LCA0MC42MjQxNzU3MjI1OTA1NV1dXSwgW1tbLTczLjc5NzgzNTMzMzk4NTE4LCA0MC42Mjc0MDg3MTY1NzE1XSwgWy03My43OTU2NjI1NjcyNjA5NiwgNDAuNjI2MTE0MDA0MzI3NzQ2XSwgWy03My43OTkyMTQ5MzQyNzc2OSwgNDAuNjI0MDg0NzEyOTg4NDZdLCBbLTczLjc5MzYyOTI3NDgxMzQ1LCA0MC42MjUxNTY0NzYxOTQ5MV0sIFstNzMuNzk4MDkwOTMxMDcxNzQsIDQwLjYyMzA2Mjk0ODI0NDMxXSwgWy03My43OTk5MjA1NzYzMjcwNSwgNDAuNjE4NTc1MjQwMTY1OTRdLCBbLTczLjgwMTcyNDk4NjQwMTY1LCA0MC42MTk5NjcwMDg3MzE3MV0sIFstNzMuODAxMjgwNDk1MDQwOTMsIDQwLjYxNTg3OTgzOTc0NzVdLCBbLTczLjgwMjcwMzQzODY3ODEyLCA0MC42MTM1ODA2NTIzMjE3MTZdLCBbLTczLjgwNTA4OTA2MDEyMjk4LCA0MC42MTM0MzI1NjA0MTk0N10sIFstNzMuODA0NzY1OTI2MTY1NTcsIDQwLjYxNTgwMDk5MTM3MDg4XSwgWy03My44MDc2NDExNjg5NjExNywgNDAuNjIxMTk5NjU0NjkyMjRdLCBbLTczLjgwNjk4NTAyMzgxMDYxLCA0MC42MjM4NzE5OTg4Mjk5Ml0sIFstNzMuODAwMTExNzcxNDU2NiwgNDAuNjI2OTI3NDQxOTg3MDM2XSwgWy03My44MDA5Mjg0MTU2NTA0NiwgNDAuNjI3NTI0MTA0ODk1NjVdLCBbLTczLjc5NzgzNTMzMzk4NTE4LCA0MC42Mjc0MDg3MTY1NzE1XV1dLCBbW1stNzMuODEzMDcyMzM4OTI2MTgsIDQwLjYyOTI2MTA5OTY0MjY2XSwgWy03My44MTM1MjUwMjEyMjg5MSwgNDAuNjI3MzA2MTcyNjg1ODhdLCBbLTczLjgxMjU4NTU2MDM4MTI4LCA0MC42MjgzNzE5MTYxODM2OF0sIFstNzMuODExMjk0MzIyMDc2NSwgNDAuNjI0NzAzNzc5MDAwMzM1XSwgWy03My44MTA4OTk5MDQ4MTYxNywgNDAuNjE2MjE4NDcxMzQwOTJdLCBbLTczLjgxNjc5MDczNTAyNTYyLCA0MC42MjYzNDg5MTgxMjExM10sIFstNzMuODEzODI4OTk0OTMxNzUsIDQwLjYyNjEzNTA3NzY0NDExNV0sIFstNzMuODE2MjcwMjYwNDM5OTIsIDQwLjYyNzE0NTgwNTkxNzA5NV0sIFstNzMuODE3MzA1NzY5Mjc2NDIsIDQwLjYzMDYyMTk3Mzc5NzgxNV0sIFstNzMuODE1MDY3ODg0NDE0NiwgNDAuNjMxMTY0MDU4NTc3OTZdLCBbLTczLjgxMzA3MjMzODkyNjE4LCA0MC42MjkyNjEwOTk2NDI2Nl1dXSwgW1tbLTczLjgyMzM3NTkyMTI5MzU1LCA0MC42Mzg5ODc2NTU4OTc1NV0sIFstNzMuODIxMDc1MDU1MzMzMjEsIDQwLjYyOTczMzc3NDU2NjJdLCBbLTczLjgxNjExNDgzNDI5NTUsIDQwLjYyNDYwNDY1NTE3Mjk2XSwgWy03My44MTg4OTM4OTA0NzQ2MywgNDAuNjIyNjI5MTU4MDMyNTVdLCBbLTczLjgxNTcxNDY4MDQ0NjI2LCA0MC42MjE0ODk1NTE1MTY5NV0sIFstNzMuODE3Nzc0Mjk4MzQ1MTMsIDQwLjYxNzUwMTEyMTY5NTY2XSwgWy03My44MTY0MzE1MDM3OTU3MSwgNDAuNjE0MjgyMzM0OTI5OTk2XSwgWy03My44MTQwODA2MjQzMjkzLCA0MC42MTQ1NTg0MDkyMzYyNDVdLCBbLTczLjgxNjE1NjI2NjMyNSwgNDAuNjEyOTQyMTE1NTA5NzhdLCBbLTczLjgxNTQwMzY2MTg5ODM0LCA0MC42MTAzODQ4MDIwMTU0NzRdLCBbLTczLjgxNDUwMjYxNTY2NzA4LCA0MC42MTEwNTg0NzM1MDU0MTZdLCBbLTczLjgxNDc2MjU3NjM5NTQyLCA0MC42MDg0NjM4ODAwNTM5MDRdLCBbLTczLjgyMTIwMTM3NTk5MjEyLCA0MC41OTQ3Nzk5MzUwODk0NV0sIFstNzMuODMyNDEyMDk2NjQ5OTIsIDQwLjU5NDYxODQ5MjYyMTA4XSwgWy03My44MzQ4NDY4MjgxMzE4MywgNDAuNTk1NTQzNDM2MTA2ODZdLCBbLTczLjgzMjM5MzY0NDUzNjg2LCA0MC41OTc4MDMzNTMzODIzMjVdLCBbLTczLjgyODA2MTU5Njc1NDI3LCA0MC41OTc2ODA0MDI2NDg3ODRdLCBbLTczLjgyNTk3OTg1OTYyODY5LCA0MC41OTk0NzIwNjczNjMwMjRdLCBbLTczLjgyNDY1NDIwNTk3MzM2LCA0MC41OTgxNDkyNDY3MDMwNV0sIFstNzMuODIzNzY2MTIyODEyNDYsIDQwLjYwMDA0MDA3MDgyMDg1XSwgWy03My44MjE0NjkyOTgzMzgzMywgNDAuNTk5OTkzNzIyMjY3NjddLCBbLTczLjgyNDQ1MjE4MDA4OTUsIDQwLjYwMDc5Njk2MjY4ODQ1Nl0sIFstNzMuODE5NjE3OTUzNjIxNTYsIDQwLjYxMDQ3OTA0MTA2NDI3XSwgWy03My44MjA4Nzg0MTc5MDE0MywgNDAuNjEyMjU3MzQ1ODIwMDddLCBbLTczLjgyMTYxNDYwMDg5MTMyLCA0MC42MDg0ODAzMTkyMjc3Ml0sIFstNzMuODI1NTU3NTg5OTc4ODMsIDQwLjYxNDEzMjEwNDcxMDczXSwgWy03My44MzQwMTg4ODIwMDQ0NiwgNDAuNjE0MzgxMTY2NDIwNThdLCBbLTczLjgzMzcwMTUyMjcyMTI3LCA0MC42MjA5Nzg2MDE4NDY4M10sIFstNzMuODMxNTg3OTg3MTQzMzcsIDQwLjYyMjAzMjgwNzkyNTExNl0sIFstNzMuODMyNjc2NTk3MDYwMzgsIDQwLjYyMTg2MzcyOTQ1NzY0XSwgWy03My44MzI1ODg2ODYxODYyLCA0MC42MjI2ODEzODY1NTg4NzRdLCBbLTczLjgzMDM4NzIzMTI2Njk3LCA0MC42MjIzOTA4NDgxNjAzOF0sIFstNzMuODI5MTg4MDkyMjM1MTQsIDQwLjYyNDIwMDYxMjM1MjkyXSwgWy03My44MzA0MTQzNDM1NDMxMSwgNDAuNjIyNjMyMDczODk0MTRdLCBbLTczLjgzMDQ2MTUxNTc2MjEsIDQwLjYyNDA3MjIyMTAzNDU4XSwgWy03My44MzIxMzQyNzE3MTkxNywgNDAuNjIzMTc2ODI4MjI0NjldLCBbLTczLjgzMDYyNzYxNzgxMjI4LCA0MC42MjYxNzc2MjM2NTMyNl0sIFstNzMuODMyMzAzMDE0OTYwNzYsIDQwLjYyNzA3ODc1ODkxNjM5XSwgWy03My44MzIyODkzNzM1MzQsIDQwLjYyODEzMzcwNzk4NDY0XSwgWy03My44MzE3NzY0NDAzMzY5MiwgNDAuNjI4MTcyMDMwNzMyMTY2XSwgWy03My44MzE1NjY4NjgxMjMsIDQwLjYyODQ3ODcyNTkxNjk4XSwgWy03My44MzE2MTc0NjIyODI5NiwgNDAuNjI4NzUyMzExNjUxNzFdLCBbLTczLjgzMzA0MTAwOTA3NzY1LCA0MC42MjgyNjEyNzEwNjA1MTZdLCBbLTczLjgzMTE0NjUzMjM4NzU4LCA0MC42MzI4NDM5MTI1MzYyOV0sIFstNzMuODMzNDA2MDc5NzkyMiwgNDAuNjM4NTAxMzU1ODk5MDI0XSwgWy03My44MjU5MTY1NzkyNjg5OCwgNDAuNjM1NzQ3NDEyOTY2NjZdLCBbLTczLjgyNDQzMDMyNDk3MDUsIDQwLjYzNjIxNjUyMTA0MDcxNl0sIFstNzMuODI0MTkzMzE5MjEyOTcsIDQwLjYzOTk1NDA3MjE2MzAxNV0sIFstNzMuODIzMzc1OTIxMjkzNTUsIDQwLjYzODk4NzY1NTg5NzU1XV1dLCBbW1stNzMuODU3MjIzMzA5ODQzNjYsIDQwLjY1MDI3ODY3MDU0MTM3XSwgWy03My44NjAwMTMyMjg5MTA5NywgNDAuNjUzOTczNDI1MzU5NDddLCBbLTczLjg2MDk4OTE3MzUzOTEyLCA0MC42NTUyMDk3NjcxMDUxNTZdLCBbLTczLjg1OTc5MjQyNzUwNzM2LCA0MC42NTQ0NzYxNTczNzY5OF0sIFstNzMuODU3MjIzMzA5ODQzNjYsIDQwLjY1MDI3ODY3MDU0MTM3XV1dLCBbW1stNzMuODMwMzI3MjUzMzcwNjQsIDQwLjY1NTEzMjgwNTgwMzI4NF0sIFstNzMuODMwMjY2MDE4NTE0OTMsIDQwLjY1NTQyODY0Njc4NDczNV0sIFstNzMuODI5ODg5MTk4NTYwMTgsIDQwLjY1NTUyMjgyMjU4Mzk5XSwgWy03My44Mjk5NDU1NjQzNTgzOCwgNDAuNjU1NDI0NDk0MzUyODg2XSwgWy03My44MzAzMjcyNTMzNzA2NCwgNDAuNjU1MTMyODA1ODAzMjg0XV1dLCBbW1stNzMuODcyODcxOTU5MDM4NzYsIDQwLjc4NTk3NTAyNzgwNDczXSwgWy03My44NzI4MjgzOTc4MzY5NCwgNDAuNzg1OTU0NDYxNzM4MzNdLCBbLTczLjg3Mjc3NDA1OTQwNTUzLCA0MC43ODU5NDE5MjE0NTg4XSwgWy03My44NzI4MDkyMDAxNjExMSwgNDAuNzg1OTAzMTA5MDk5OTRdLCBbLTczLjg3Mjg3MTk1OTAzODc2LCA0MC43ODU5NzUwMjc4MDQ3M11dXSwgW1tbLTczLjgyMDQ5OTE5OTk1MzEyLCA0MC44MDEwMTE0Njc4MTg5OF0sIFstNzMuODEzNjk5NjM3MjUyNTgsIDQwLjc5NzA3OTQxNTY2NTA5NV0sIFstNzMuODEyMjUzNjU1NjcxODIsIDQwLjc5ODEyNjk0NjgwMTY3XSwgWy03My43OTY0MDk1MzQyNjM0MiwgNDAuNzk1NzI4ODI0MTk5NThdLCBbLTczLjc5NDQzMDg1ODc3NTgzLCA0MC43OTQ4MTI1NDMzNDQwN10sIFstNzMuNzk0OTUwNzcxMDI0NTMsIDQwLjc5MTc3NDIwMDY0MDcxXSwgWy03My43OTI4MDY2OTU4MDQ2LCA0MC43ODg3ODMwNDYyNDYxNV0sIFstNzMuNzgyNTMwODA2NjM1MjQsIDQwLjc5MTI3Njc4OTQzMTkxXSwgWy03My43ODQzNDE1MzA1OTU5NywgNDAuNzkxNzQ5MzUzNzk0ODFdLCBbLTczLjc4MTc0NzA4NzYzMTAzLCA0MC43OTExMzM0MDY2NDQ1MDVdLCBbLTczLjc4MDc5MTgyMDcyNjUyLCA0MC43OTQwMzU5MTk4NjQzNl0sIFstNzMuNzgzMjU4NzYyNTMwMzgsIDQwLjc5NDkyMzkxNDgwMDQ5XSwgWy03My43NzY4NzA1MDQ4OTc1NywgNDAuNzk2NDQ1MjA0MTkyODVdLCBbLTczLjc3MDYzMTI0NTM3NDI5LCA0MC43ODg0NjI5MDYwMzcxNl0sIFstNzMuNzc0MjY4MzYwNTg5NywgNDAuNzg2NzU2NjU4NjU0NzI0XSwgWy03My43NzYzMzcyODgxODcyMiwgNDAuNzg4NDg3MjI1NzUzNzU1XSwgWy03My43NjgyMDA1NTQ2MDAyOCwgNDAuNzc5NDQ0MTc5MTkwOTZdLCBbLTczLjc2NzAyMzkyMzQ2NTA5LCA0MC43ODAwODYyMzQxNTgyOV0sIFstNzMuNzY2Nzc1NzAzNzM5MzYsIDQwLjc3OTgxMjQ1ODY5ODM0NV0sIFstNzMuNzY4MTYxNzMwNTE1ODEsIDQwLjc3OTM5NjgyMTI0MTk4XSwgWy03My43NjUxMDQzNjgyMDIxNiwgNDAuNzczNzk5MDM4NzIzMDZdLCBbLTczLjc0NDY1NzQ4NjQ2ODc0LCA0MC43NTY1NTgxMDQ5NzczXSwgWy03My43NTUwNzIxMDg0OTA0NywgNDAuNzY3NTMzMTA2Nzg3MzI2XSwgWy03My43NTU1NzMzMjY0OTMxNSwgNDAuNzcxNTI5MTI1OTIyNjldLCBbLTczLjc1MzM2NjkxOTk5MzEsIDQwLjc3MzIwNzg0Nzc2MzM5NV0sIFstNzMuNzU1NTE3Mzc1ODE3OTksIDQwLjc3NzcwNDA0ODM2NDE3XSwgWy03My43NTA4MDU5MzYxMzc4NSwgNDAuNzgyODkzMzc4NjY4MDddLCBbLTczLjcwMjczNDk1NzAzNzMyLCA0MC43NTMyNTA1MTY4MDk4Nl0sIFstNzMuNzAxMzQ3MTU5MTY4LCA0MC43NTA3ODA1ODA4NzE2XSwgWy03My43MDAwMjAyMDUwMzI5MSwgNDAuNzM5MjM2NTQxNzMxOTFdLCBbLTczLjcwNzY2MjE3MzA1OTk0LCA0MC43Mjc4MzA5MzQ1MDk0M10sIFstNzMuNzMwMzI2Mjg5NjgwOTYsIDQwLjcyMjE1NzI5Njc4NDhdLCBbLTczLjcyNjg5NDg3NDgxMzI0LCA0MC43MDk5Nzg1NzM2MTkzN10sIFstNzMuNzI1NjMwMDUxMTk5LCA0MC42Nzk1ODc5NTA3ODEzNTRdLCBbLTczLjcyNzU1NjE2MzU2NDQ5LCA0MC42NzQxNjE1ODgxOTE1MjRdLCBbLTczLjcyODMzMDcxODc1OTYxLCA0MC42NjMwNDM5NDM3MzExM10sIFstNzMuNzI1MjI2MDgxMDcwMTYsIDQwLjY1MjAwMTAwMDE0NzQ0XSwgWy03My43NDE0MzcwNjA0MjM0NiwgNDAuNjQ2ODg5MTc4MzIxNDE2XSwgWy03My43NDIyNzM4NzIyNTkyLCA0MC42NDAxMjMzODE0NTE0NDZdLCBbLTczLjczOTQ3MTIxNjI2NzkyLCA0MC42MzU3MDY0MzE4MjkzN10sIFstNzMuNzM5OTU5NTc1NzA1NzcsIDQwLjYzNTE0MzgwOTM3MzI4XSwgWy03My43NDI0NjY0MjYxNTI1OSwgNDAuNjM1MTE5MjI4MjUyMDk0XSwgWy03My43NDA5NjQ4NzY4NjM2NiwgNDAuNjM3MzA0Nzc1MDMwMDddLCBbLTczLjc0Mzk3MTI4NDk2MjM2LCA0MC42Mzc4ODAwMTI2MTQ4MzZdLCBbLTczLjc0MzczNDIxNTA0NjMsIDQwLjYzOTAyMjExNzY2MzkzNF0sIFstNzMuNzQ0Nzk1NTgxNDg1MDYsIDQwLjYzNzA3NTAyOTA3NjExNV0sIFstNzMuNzQ2NzkwNzQ2MzczMDUsIDQwLjYzNjc3ODEzNTU0NjY4NV0sIFstNzMuNzQ1MjcxMzg2NDI5MjcsIDQwLjYzNzkxNTkwMTI0NTMyXSwgWy03My43NDUzMjc3MDMzMzU5NSwgNDAuNjM4MzcyMjExOTY5Nzk1XSwgWy03My43NDcwMjMwMDQzNzQ1LCA0MC42MzY5MDg3ODI4NDMwMl0sIFstNzMuNzQ2MTcwNjE5OTUwMDgsIDQwLjY0MDM5NjY0OTI1OTI4XSwgWy03My43NDcyOTE1Mzg3ODcyNCwgNDAuNjQzMTg2Njg2NDIyMjhdLCBbLTczLjc1NDc1NTkyNTUxOTQ5LCA0MC42NDc4MTIxOTg4OTMzNF0sIFstNzMuNzQ3NDIwOTU4OTk2MjcsIDQwLjY0MTQxMzY0MzY4NDQ3XSwgWy03My43NDg1NTQ3ODM5NDkxMiwgNDAuNjM1NDExNTU5NTc1NjNdLCBbLTczLjc2NTAwODkxNDA0OTM5LCA0MC42Mjk0MTIxODMwNzk2NDRdLCBbLTczLjc3MDc3MDE2NzU0MzUzLCA0MC42MjAwMzExODIzMTAwMTVdLCBbLTczLjc3MDgyMDY5NzA3OTY3LCA0MC42MjMyODI5OTc5NDQ4NTVdLCBbLTczLjc3MTcyNzYwMjg1MTQsIDQwLjYyMzU4NTAyODAzMDMzNF0sIFstNzMuNzcyMDMxMzE0MzEzNzEsIDQwLjYyMjk5MTIxMjkwM10sIFstNzMuNzcyMTg4MjQwMjgwMzMsIDQwLjYyMjk5NTc5Mzc5NTA3XSwgWy03My43NzUxMTg5MTI1NDYwOCwgNDAuNjE5MjMzODQ2OTg0NzldLCBbLTczLjc3NTE4MDQ1OTM1NTYxLCA0MC42MTkyNjQ3MTc4ODQ4MjVdLCBbLTczLjc3MTczODk3NTgxMjQ1LCA0MC42MjM2MDU3MjYwNzM0MV0sIFstNzMuNzc2NTQyMjk4ODc4MzUsIDQwLjYyNzY1MTcyNDcyODkwNl0sIFstNzMuNzc5NDY4OTc2ODc3ODIsIDQwLjYyNzMxNTUwNTYyNF0sIFstNzMuNzg0MTk0ODMyOTc4NzEsIDQwLjYyMDg5MjY2OTkxMDI2XSwgWy03My43ODY3NTYwODEzNTQxMSwgNDAuNjE5NzM5MjA5MjEwNTE1XSwgWy03My43ODU4NTI0NTc4MzQ3MiwgNDAuNjE0NDYxOTg2NTI2NjFdLCBbLTczLjc5MDIwMDc3Njc2MjYyLCA0MC42MTI5MzU1NjY3OTU4N10sIFstNzMuNzkyNzQ5NDg2MjYxNjcsIDQwLjYwODY0NjM2Njg3ODA3XSwgWy03My44MDA4MDEyNTkxOTQ3OCwgNDAuNjExOTMzOTA0NDgxNl0sIFstNzMuNzk0NTY2MzAxOTM4MjUsIDQwLjYyMjYxNTg2NTgyMjgyXSwgWy03My43ODk2Nzg3MDIwNTg5NiwgNDAuNjIyNjE0ODE5MTcyMDRdLCBbLTczLjc4MjY0NTQzNDM1NjEsIDQwLjYzMDI0Nzk2OTA4ODc5XSwgWy03My43ODk0OTY2MzA3MjMyOCwgNDAuNjM0MjY5Nzc5MjAyMDldLCBbLTczLjc5ODExODcyMjI2MjA1LCA0MC42MzEwMzc1MDkyNjExMDVdLCBbLTczLjc5MDgxMTExMjUwNTA1LCA0MC42MzQzMTAzNTU1MTA3Ml0sIFstNzMuODE4MzA2MDc4MTk3MzEsIDQwLjY0NjM4Njk4MzAzNzAxXSwgWy03My44MjEyNDc5NzI3OTE3MiwgNDAuNjQ5MTM4NjE2MDg3NDddLCBbLTczLjgyMzQ4MzgxMTEwNzQ3LCA0MC42NTUzNjk5MTI3MTg2Nl0sIFstNzMuODIyMzM2ODgwNzI4OTQsIDQwLjY1OTM2MzA4NDI2OTc0XSwgWy03My44MTg2OTUzMTU1ODY5MSwgNDAuNjYxMTA1MDUxMDU1MTZdLCBbLTczLjgxMTMwMTE5MDYxNzU4LCA0MC42NjA2MjgwNzM4NjI0MDVdLCBbLTczLjgxODY3MTg0Mzc0MTYxLCA0MC42NjIxMzI3NzY5Mjg2Nl0sIFstNzMuODIzNTIxNTE5NjIwNTQsIDQwLjY2MDA3NTM5MDI1Nzk5NF0sIFstNzMuODI0OTgwNzAzNzg1NDksIDQwLjY1NTQzMTk3MTE4MzY2XSwgWy03My44MjMxMTI5Njk0NTI0MSwgNDAuNjQ4MDAyNjk1NTkyMzZdLCBbLTczLjgyNjE0NDgzMDU5NjYzLCA0MC42NTAwODE4NDA5NDI1Nl0sIFstNzMuODI2MzYxNzQ3MzkzNiwgNDAuNjQ4MzMzNTYwMTc3MzldLCBbLTczLjgyODUyNTIyNzIxMjMxLCA0MC42NDkxMzA5OTkyNzMxNF0sIFstNzMuODMwOTM2NTEzNTM0ODEsIDQwLjY1MTYyNjEyOTI1NTgyNF0sIFstNzMuODMxNjEzMTQ3OTM2OTUsIDQwLjY1Mzc0ODk1MzIzNjE5XSwgWy03My44MjkwMTQxNzU1Nzk3NCwgNDAuNjU2MTA3ODg0NDUyNDVdLCBbLTczLjgzMTcwODE0NDExNTQ3LCA0MC42NTM5MzExNzQyOTY4ODZdLCBbLTczLjgzMjIxNjk4NTE4NTgxLCA0MC42NTQ0NjAzODYyOTI5N10sIFstNzMuODMxNDkzMzAxMDMwMSwgNDAuNjU0OTc5ODIwNTM5NzNdLCBbLTczLjgzMTE2MTAwODA5NjI3LCA0MC42NTU5MTkyMzM3MzcxNl0sIFstNzMuODI5Mzc2MDM0MTA3MTcsIDQwLjY1NjUwNjMzNTIxNTg4XSwgWy03My44Mjg5Njc3ODc0MDI5NiwgNDAuNjU3MjA1MjQ3OTIwMDZdLCBbLTczLjgyOTE3OTE5NzM0NTgsIDQwLjY1Nzc5OTc3ODU0NDI3XSwgWy03My44MzAxMzAyODc0MDM4OSwgNDAuNjU4NDAyNjQzNzIxMTQ2XSwgWy03My44Mjk3MDcwNjgzODkxOCwgNDAuNjU4NTAyNTEzODY0NTI2XSwgWy03My44Mjk1OTk4NjkwMzAzLCA0MC42NTg2NTY4MDY5MTUzNF0sIFstNzMuODMwMTYyNDMyODE3MjYsIDQwLjY1OTgwNDExMDkyNjE5Nl0sIFstNzMuODMwMjQ0MjcwMzkzOTIsIDQwLjY1ODM0OTk2OTM0ODEyXSwgWy03My44MjkwOTQzNDgyNTIwMywgNDAuNjU3MzM0MjE4NjYzMjY2XSwgWy03My44MzEyNzExMjU2ODEyLCA0MC42NTYwMDMyNzE0OTQ2NV0sIFstNzMuODMxODUyMzg0NzkyODQsIDQwLjY1NDg4NTAzODI2Njk1XSwgWy03My44MzI5MDMwOTUyNDU5NywgNDAuNjU3NDgzNzcxNjIzMDRdLCBbLTczLjgzMTk0Mzk0NTc4MjU3LCA0MC42NTYxNzE0MjcyNTM0MjZdLCBbLTczLjgzMjYwMDM2MzcwNjA2LCA0MC42NTc4MjY1OTE2MjcyOF0sIFstNzMuODMxMTI2NjQ0MjE4MzQsIDQwLjY1ODMxODc4NjQ0MV0sIFstNzMuODMzMzg0Mzk0NzI1NDQsIDQwLjY1ODA1MTg1OTIwNzk2XSwgWy03My44MzEwODY4MjkwMTUwMiwgNDAuNjQ5MDkwNzU0NjM3ODVdLCBbLTczLjgzNDM0MjIxNDY3MzAxLCA0MC42NDgwOTk3NjY4NDc5XSwgWy03My44MzU2OTkyNzgzMDY1LCA0MC42NDg2Njg5MTQ3NTk0MV0sIFstNzMuODM4NzM2MDg1NTU5NjIsIDQwLjY2MjQ1NDA2MDAyMTA3XSwgWy03My44Mzk3ODc1MjYxMjkyNywgNDAuNjYwNDg1OTk4MDQ3OTk2XSwgWy03My44MzU5MjMyMDA3MzI4NSwgNDAuNjQ1NDk5NzkwNjc0OTU0XSwgWy03My44NDk1MDY5OTA4NDE3NiwgNDAuNjQ0MTMzNzY1Njc4NzQ1XSwgWy03My44NTI0MTY2ODU1NjA5NywgNDAuNjQ3Mzg4MDk3OTY2MzM1XSwgWy03My44NDkzOTc2NjQwNjMyMywgNDAuNjUxNDM0ODc4OTUwMzVdLCBbLTczLjg1NTkxOTMyOTQ0NzU5LCA0MC42NTEzMDkyNjE2NjYwM10sIFstNzMuODYxMzYzODE5NTAzOTEsIDQwLjY1NjQxNDc1NDE2NTI2XSwgWy03My44NTk4MzM2MzUyMTQ4OCwgNDAuNjU2OTc3MDYzMjIwNDRdLCBbLTczLjg1OTYzNTU4NjY5Mzc2LCA0MC42NTg0NTc3NzIwNTY0M10sIFstNzMuODYxMjQ5NDMzOTgyNTUsIDQwLjY1ODcyMDkxMDA3ODYxNF0sIFstNzMuODU5NzY4Mzk1ODg5MDYsIDQwLjY1ODI4MTkzNjM0NTczXSwgWy03My44NjA4NzU5NzYwNzU4NSwgNDAuNjU2OTA4MTYyMDcwMDVdLCBbLTczLjg2MzE3MDgzMzQwNDA0LCA0MC42NTgyNzY1MTI5NDg4NF0sIFstNzMuODU3NjE1MzcxODU1OCwgNDAuNjYwMTE4OTMzMTUzNzhdLCBbLTczLjg1ODQyOTUwNzkxMzA0LCA0MC42NjM0NTMzNjA5MzEwMl0sIFstNzMuODU1Njg0NjEyMjExNDMsIDQwLjY2Mzg2NzQ5MjM3MjkxXSwgWy03My44NTc2MzMyMzE3NDM3MiwgNDAuNjcxNjU2MTk0MDM4ODRdLCBbLTczLjg2MDM4NTE5ODU0NzI4LCA0MC42NzEyNTE3MTA5ODk2OF0sIFstNzMuODYyMzQ1ODA1MzUwMjMsIDQwLjY3OTE2NDc4NjE0Njg1XSwgWy03My44NjQxMDA5NjY3OTEzNCwgNDAuNjgyMzcyODUwMjkyNjFdLCBbLTczLjg2NjAxOTkzMjIwNzMxLCA0MC42ODE5MTk1ODcwMjc5OF0sIFstNzMuODY4NDI0ODk3Nzg4MTcsIDQwLjY5NDcxODExOTUxNTEzXSwgWy03My44NzQwMjA1MzMwNjc5OCwgNDAuNjk0MTkxMjk0NzE1NTddLCBbLTczLjg4NDUyMjUwOTU3NDI0LCA0MC42ODY2ODQ3NDkwOTU1NV0sIFstNzMuODkyNTIzMTY4OTgyNjYsIDQwLjY4MzQyNDUzMjgwNDYyXSwgWy03My44OTQxNzQ2MzI2NzEsIDQwLjY4NTI4MzI0ODY3MzE3XSwgWy03My44OTY0NjYyNTEyODkyOCwgNDAuNjgyMzM2NDIyNDc1ODg1XSwgWy03My45MDExNjE1NDk5NDM2OCwgNDAuNjg3ODc3OTM1MzU0OTddLCBbLTczLjkwMTIzMjkwNjYwMDA2LCA0MC42OTE0NDIyNzkxNDA3NDVdLCBbLTczLjkwNTc5NTk3MDc1MzEsIDQwLjY5NDEyNzE1NTAxMTUxNV0sIFstNzMuOTA0MjYwMTg0MTE2OSwgNDAuNjk1NzAwMzcxNDQzMTddLCBbLTczLjkxMTgwODIwMDM4Mzg1LCA0MC42OTk5MzgwMDMxMjM4OV0sIFstNzMuOTEwNjc4ODI3Mzc0MjEsIDQwLjcwMTA0NTk2OTA2NDA3Nl0sIFstNzMuOTEyOTA0MDQxMjE4OTQsIDQwLjcwMjM2MTg5MTc5OTIzXSwgWy03My45MTE4MDcxMDAwMzMyOSwgNDAuNzAzNDM0OTUyNTI4Njc0XSwgWy03My45MjE4OTE4NDY5ODY5NCwgNDAuNzA5Mzk2MDk2NzEwNzldLCBbLTczLjkyMDc0ODUzMTE1ODA1LCA0MC43MTA1MzM2NDg5NTg3MV0sIFstNzMuOTI0MTIyNDE1NzU0OTcsIDQwLjcxNTEzODA0ODQ0NTE1NV0sIFstNzMuOTIwNTY5MDU1MzYxMSwgNDAuNzE2MDAzNzA4MzQwNjJdLCBbLTczLjkyMjIzNzYxMTI0MzQsIDQwLjcxNjM4MjQ0MDQ5NDA2Nl0sIFstNzMuOTI1MTU0NDY5MDY0NzgsIDQwLjcyMjMyMDQ2MzY1NzYzXSwgWy03My45MjQ0MjI5ODc1NDg3MiwgNDAuNzIzNTg5OTc1OTg2MTVdLCBbLTczLjkyMDM3MDY0MjM1NjcsIDQwLjcyMzY4MTExMzgyMTA0XSwgWy03My45MjQ5MDMxNjE2NTE4MywgNDAuNzI0NTA2NTc1NjcxNDRdLCBbLTczLjkyOTIzNDg1ODc2MTY2LCA0MC43MjgyNjAxNjU3NjEwNF0sIFstNzMuOTM4MDQ0Nzg1MDcxNjgsIDQwLjczMDUwOTk2Nzg0NjA1XSwgWy03My45NDE2MjQ3MjYzNjQ3NCwgNDAuNzM1ODQxNDQyMzM4Ml0sIFstNzMuOTQ1OTQwOTU5ODcyMTksIDQwLjczNzUwNTA3NjU1MzkzXSwgWy03My45NDE0NjE3MzQ2MzE2NywgNDAuNzM5MjQ4NTgzNjI3MTJdLCBbLTczLjkzODU4Nzg2OTc2Nzg2LCA0MC43NDI5MzA4ODI2ODc0NF0sIFstNzMuOTQwMDE5MjI5NzU2NjYsIDQwLjc0MzIwODI3MjIxMDY4XSwgWy03My45NDI3MDYwODk5MjExMiwgNDAuNzM5MTE1MDYyOTc4NjM0XSwgWy03My45NDcxNTA4NzE4MTE3NiwgNDAuNzM3OTAwMTIzMzQ0NzJdLCBbLTczLjk1Mzc5ODc4ODA4NzE3LCA0MC43Mzk4MTk4NjUyNzE5NTRdLCBbLTczLjk2MjYwODE5NzUwODMzLCA0MC43Mzg3OTU1MzkwNTY1NTRdLCBbLTczLjk1Njc5NDUzMjkwNTEsIDQwLjc0ODgzOTUxNjk1NTU3XSwgWy03My45NTMxODM4MjQ5Mjg1OSwgNDAuNzQ3NzM0ODExOTYwOTNdLCBbLTczLjk1NjIwMTM2ODAxMTU4LCA0MC43NDk2ODU2MzI4MjExNF0sIFstNzMuOTQzNTAyODIwMzI3MzUsIDQwLjc2NDQ5OTA0MDc0MzhdLCBbLTczLjkzNDg5NTMzODk0NTU4LCA0MC43NzAwNDE4NjI4ODk1XSwgWy03My45MzQ0MzUyNTc0MzE3NywgNDAuNzcxNDYyMzYyMzMzMzhdLCBbLTczLjkzNzgxMzM1OTY5NTExLCA0MC43NzM1NjI4OTQ2NDc5MV0sIFstNzMuOTM2MzgwMjI4MTc1NCwgNDAuNzc2OTIxNDU2NTYyNjI2XSwgWy03My45MzM5MDg0MDI0Nzg2NSwgNDAuNzc4MTE3MTI5ODE4NDU1XSwgWy03My45Mjg2MDUxNTAyMzM1MSwgNDAuNzc2NTkyNjc1MTAwOTZdLCBbLTczLjkwOTg1ODYyOTI1NzgsIDQwLjc5MDk0NTQ5Mzc4MTg4XSwgWy03My45MDAzMjYyOTc0MzgyMywgNDAuNzg5MDA3NjYyODI1Njc1XSwgWy03My44OTU5Mjk2Mjk3NTUyNiwgNDAuNzg1NjQ4OTQ0MzEzNzhdLCBbLTczLjg5ODc0ODk3NjM4Mzk4LCA0MC43ODI3ODExNTU3NjYwMjRdLCBbLTczLjkwMTE0NTc3NTUyMTEzLCA0MC43ODI3MTExMDYwOTA1NzRdLCBbLTczLjkwMjU3OTI5NjcyMzQ5LCA0MC43ODAyODkxMjA4MzU1Nl0sIFstNzMuODk0Mzc3Nzc5MzQxMzgsIDQwLjc4NDI0MzIwMzQ4NDE2Nl0sIFstNzMuODk2MDYzNzc3Mzg0MzEsIDQwLjc4MzE1NzIwMTgwNTE4XSwgWy03My44OTUzNDQ0Nzg0MjI5NCwgNDAuNzgxNTg1NTY2MzExMjVdLCBbLTczLjg5Mjc0OTE3ODc2NDE1LCA0MC43ODI5NjU3MDY2ODQ3M10sIFstNzMuODkxNjU0NTkxMjM3MjYsIDQwLjc4MjE5NDc4MTUzMDY4NF0sIFstNzMuODkzMDA5ODYxODAxOTMsIDQwLjc4MTc5ODAyMzU2MjE3NV0sIFstNzMuODkxMTk1ODk3MDQ0MDEsIDQwLjc3ODU2MzI4Nzg4NzA2XSwgWy03My44OTI1MjI1OTg2MDg5LCA0MC43Nzc0MDQ2Mjg5ODkwNF0sIFstNzMuODkxODMyNDQ5MDQ1MTQsIDQwLjc3NDg4MDE5OTg4ODczNF0sIFstNzMuODkwMDg3Mjk0MTY4LCA0MC43Nzc3ODQxOTM2MDY4NTVdLCBbLTczLjg4OTQ1NDg2OTAzNzM3LCA0MC43NzM1MzI5NTExMjcxNDRdLCBbLTczLjg4MzkxNjI3OTYzODEsIDQwLjc3NDEzMjYwNjU5MTUzNl0sIFstNzMuODg0ODgxMTM3MzEwNDcsIDQwLjc3OTk4NzE5Njc0MTI3XSwgWy03My44Nzg3MDU2MjUxODg3NCwgNDAuNzgwNTg1OTA5OTUwMDVdLCBbLTczLjg3ODg1ODM3NDg1NTk1LCA0MC43ODIzOTgxNzg2ODExODRdLCBbLTczLjg3OTc0Nzc3ODUzNTg0LCA0MC43ODI4MzY1NjQyMDcwNV0sIFstNzMuODc5NzAxNjM2NzIyNTYsIDQwLjc4Mjg4MjgxODA3MjI2XSwgWy03My44NzUxNTc1NDg5MzM3LCA0MC43ODE1MDk0NDk2NTMyNl0sIFstNzMuODcxMjQ4NTYyNDI1MTUsIDQwLjc4NjAzODE1MTI1NDk4NV0sIFstNzMuODY5NzgwODExOTI2NDIsIDQwLjc4NTMzNzkzMzMyNTgwNl0sIFstNzMuODY4MDk5MTIyNTc4OSwgNDAuNzg3NDU4NjYxODE4Mzg0XSwgWy03My44Njc4ODQwNzQ3MDc2NiwgNDAuNzg3MzYxMDM2Njk0NTZdLCBbLTczLjg2OTg3MDA3NDM0MzQyLCA0MC43ODUwODU5MDcwNjgxNjVdLCBbLTczLjg2ODQ5NzgyOTA2NTc5LCA0MC43ODM2NzA1MTg1MDk1OV0sIFstNzMuODcyNTU3MzI2NzM3MzIsIDQwLjc4MDgyMTEyMTU0MjU1XSwgWy03My44NTUwNTEwNjI3MTgxOSwgNDAuNzcyMTk1Mzg5OTg5MDldLCBbLTczLjg1ODIwNTExMDUwMjEsIDQwLjc3MDMyMzQ1NjQ3NzE2XSwgWy03My44NTYyNDU2NTc0NjE3NCwgNDAuNzY4ODg1NzE0MTk4OThdLCBbLTczLjg2Mjc1NDkwMTk2OTc3LCA0MC43NjY3NjQ1MjQ5MjU3OF0sIFstNzMuODU4ODQzNzE1MDYxNDcsIDQwLjc2MjA1ODc2NzI4MTcxNV0sIFstNzMuODU2OTYzNTU5Mzk4MDUsIDQwLjc2NDA3NDQyNzg2MzA3XSwgWy03My44NTY1ODY3NTM4ODc3NCwgNDAuNzYyNzIyODQwMTE0MjNdLCBbLTczLjg1ODE3NjMxMDcwNTMsIDQwLjc2MjM5NjI5NDIyMzgzNF0sIFstNzMuODU2NjExOTU4MTMzMzEsIDQwLjc2MTY0OTU0Mjc1OTI5XSwgWy03My44NTg1ODUyNjI4NDQ0NCwgNDAuNzYxOTE3MDA4NTk2OV0sIFstNzMuODUwNjkwNTMwNjU0NjIsIDQwLjc1OTQ0ODc5MTA5MDM2NF0sIFstNzMuODQ5ODc0ODQ0OTYxNSwgNDAuNzYxMTAzODEyOTQ4NDA2XSwgWy03My44NTIwNzIwMDE3Nzg1LCA0MC43NjAzOTI4ODQ2NzIwOV0sIFstNzMuODQ5ODExNjI0NzUxNDIsIDQwLjc2MTI3MDk3NDAwODEzNF0sIFstNzMuODQ4NTg4MzQ2MTc2NTMsIDQwLjc2MDE3OTU2MzA4ODIyXSwgWy03My44MzkxMzE4OTI2MzQyMSwgNDAuNzY1OTkxMTA1NTY4MzRdLCBbLTczLjgzOTU5MDcyNjA5ODE3LCA0MC43NjcxMTA4MjQ3MTg5NzZdLCBbLTczLjg0NDQ4ODk1ODg0MjA2LCA0MC43NjU0NTk2MDI1ODM5M10sIFstNzMuODQ3ODA1NzUxMDQ0MjksIDQwLjc2Njc3Mjk0ODE3MTY3XSwgWy03My44NDg2NzE1Mjg2ODg1MSwgNDAuNzcwNzYxNTcyOTAyNDk0XSwgWy03My44NTEzMDEwODM3NDQ3NiwgNDAuNzcxODA2MzYwNzk3NjJdLCBbLTczLjg0ODk3NjE5ODY3MiwgNDAuNzczNTYxNjY3OTU2OTRdLCBbLTczLjg0ODk2ODAyNTQ0Njk2LCA0MC43NzgwMjIyMTI2OTE1Nl0sIFstNzMuODQ5NjM5Njg5MzMwNDYsIDQwLjc3OTQ4MzI3NTE3Njc0XSwgWy03My44NTA5NDcwNTcyNDI1MiwgNDAuNzc5MDY5MTU1NDMwMjVdLCBbLTczLjg1MTQ4NzU1NDgwMzIxLCA0MC43Nzg5OTI5Nzg2MTc1MjRdLCBbLTczLjg0OTgxNzIwMDY2MDA4LCA0MC43Nzk2MzAzNDgwNTQxNV0sIFstNzMuODUyMzU2NjE5MzYyNTQsIDQwLjc3OTE2OTMzMDUyMjMxXSwgWy03My44NDk1NjMyNTIwNzQ2NywgNDAuNzc5ODc5MDgyMTY3MTJdLCBbLTczLjg1MTY5MDI4MDg1NDM0LCA0MC43Nzk4Njc1MDg0NzgxNl0sIFstNzMuODQ5NDkzODEyMDgzMTUsIDQwLjc4MDA2NTgyODExNDE5XSwgWy03My44NTA5MzY0NjM5NjU0LCA0MC43ODExMTk1NzUxNTYwMV0sIFstNzMuODQ5MjQ2NzU5ODAyNDcsIDQwLjc4MjI1NjM2NTMyMTYzNl0sIFstNzMuODU1MjgyNDI3ODY1OTMsIDQwLjc4MTk3NTM4NDM0OTkwNl0sIFstNzMuODU5NTI5MDkxOTcyNDUsIDQwLjc4NTUzMDU2MDUzNDAzXSwgWy03My44NTI4NDIzMDEzMzg3MSwgNDAuNzg4MjExMzcxNzM5OTI2XSwgWy03My44NTQ4MDA4MzYyNDEyMSwgNDAuNzg4NjA3NjI2NTc1NjldLCBbLTczLjg1MjY1MzU5MDY0NzE4LCA0MC43OTExMjIzMTc1OTEwNzVdLCBbLTczLjg1MzY4NTYxODQ4NTgxLCA0MC43OTQwMTgzOTQwODE3Nl0sIFstNzMuODUyNjMwOTgyNTYyNDUsIDQwLjc5NDk0NDg1NDI0NDddLCBbLTczLjg0OTA2MTYwODM1MDg4LCA0MC43OTMzNjI2MTAyOTg0OF0sIFstNzMuODQ4NzA5OTkzNjEzNDEsIDQwLjc5NTQxNjQ4MTI4OTg0XSwgWy03My44NDM1NDY2ODkzODk5MSwgNDAuNzk0OTEzOTQ0MDEwNDhdLCBbLTczLjg0MjI1OTU5MzY4MzQ3LCA0MC43OTU1ODQ5Njg5MzczMDVdLCBbLTczLjg0Mjg2Njc1MjU5MzcsIDQwLjc5NjkyMjIyOTA3MTldLCBbLTczLjg0MTU4NzIxMTc0NDExLCA0MC43OTU0MDEwNjkyMjExODVdLCBbLTczLjg0MDQxNTE3OTc1ODM3LCA0MC43OTc2Nzg0MzcyNTg3MjVdLCBbLTczLjgzNzg5OTY3NTAzNjA0LCA0MC43OTg1MDg5NzExODY2MV0sIFstNzMuODQwMjU4NjA4MDkxMzcsIDQwLjc5NzU4ODg1ODQzMjEzNV0sIFstNzMuODM3MDY0OTg4ODAyNzEsIDQwLjc5Mzg1MTA5ODQyNjE5NV0sIFstNzMuODM3MjgwNDkxMzQ3ODUsIDQwLjc4OTAwOTg3MjQyMTk5XSwgWy03My44MzI5MjkzNzE3MTQyMSwgNDAuNzg4NTE4MTE0MjAzMTRdLCBbLTczLjgzMTM3MzUzMzgyNzkxLCA0MC43OTEzNjg5NDQ2NjE5OF0sIFstNzMuODI3OTI5MzIyMjc0NiwgNDAuNzkyODc4NTA3NDU1MTJdLCBbLTczLjgyOTQ1OTkxNTM0MzY1LCA0MC43OTY4MjMzNjc1OTE0N10sIFstNzMuODI1MDY0OTY2OTk0MzgsIDQwLjc5NzM3NTc3NjU2ODE5XSwgWy03My44MjA0OTkxOTk5NTMxMiwgNDAuODAxMDExNDY3ODE4OThdXV1dLCAidHlwZSI6ICJNdWx0aVBvbHlnb24ifSwgImlkIjogIjAiLCAicHJvcGVydGllcyI6IHsiaGlnaGxpZ2h0Ijoge30sICJzdHlsZSI6IHsiZmlsbENvbG9yIjogIm9yYW5nZSJ9fSwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifQogICAgICAgICAgICAKICAgICAgICAgICAgKS5hZGRUbyhtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQpOwogICAgICAgIGdlb19qc29uXzU4YjY0YzIyN2Y3MjQ4ZjFiOTdjZTYwNGY0OTA4OGE1LnNldFN0eWxlKGZ1bmN0aW9uKGZlYXR1cmUpIHtyZXR1cm4gZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlO30pOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNWM3ZjBjMzkwNmI0NGY4YjY4MGFlYmUyZmM4MmNjZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg0ZDg0NGVkZTRmNjQ4OGZiMjQ1OGNhZDlhNDNhZjJjID0gJCgnPGRpdiBpZD0iaHRtbF84NGQ4NDRlZGU0ZjY0ODhmYjI0NThjYWQ5YTQzYWYyYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UXVlZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNWM3ZjBjMzkwNmI0NGY4YjY4MGFlYmUyZmM4MmNjZi5zZXRDb250ZW50KGh0bWxfODRkODQ0ZWRlNGY2NDg4ZmIyNDU4Y2FkOWE0M2FmMmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGdlb19qc29uXzU4YjY0YzIyN2Y3MjQ4ZjFiOTdjZTYwNGY0OTA4OGE1LmJpbmRQb3B1cChwb3B1cF9hNWM3ZjBjMzkwNmI0NGY4YjY4MGFlYmUyZmM4MmNjZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAKICAgICAgICB2YXIgZ2VvX2pzb25fYTExYTNlYzZkYTYzNGEzYjhmMGY5MGMxMzc1ZDI5MzQgPSBMLmdlb0pzb24oCiAgICAgICAgICAgIHsiYmJveCI6IFstNzQuMDQxNjE3NDA3NzM2MDEsIDQwLjU2OTUyOTk5NDQ4NjcyLCAtNzMuODMzNTU5MjM4ODA0NiwgNDAuNzM5MTE0NzcyNTIyNDhdLCAiZmVhdHVyZXMiOiBbeyJiYm94IjogWy03NC4wNDE2MTc0MDc3MzYwMSwgNDAuNTY5NTI5OTk0NDg2NzIsIC03My44MzM1NTkyMzg4MDQ2LCA0MC43MzkxMTQ3NzI1MjI0OF0sICJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbW1tbLTczLjg2NzA2MTQ5NDcyMTE4LCA0MC41ODIwODc5NzY3OTMzOTZdLCBbLTczLjg3MDAwMzEzNjQyOTE2LCA0MC41ODI2MzY2MTQ4MTU4Nl0sIFstNzMuODcxMTU5MjI2NzU0MzIsIDQwLjU4Njg3Mzg4Nzk2NzI1XSwgWy03My44NjYzNTA1MjE2NDA5NywgNDAuNTkxODkyNjc2NTY0NzFdLCBbLTczLjg2MzI3MjczNDkyODI5LCA0MC41OTA5MDgwNzU2OTI1Nl0sIFstNzMuODYxMjUyOTkzNzczNzUsIDQwLjU4Nzk4ODA4NTkyMTE2XSwgWy03My44NjMyNzQ3MTA3MTk1OCwgNDAuNTgzODc2ODQ4NTMxNzhdLCBbLTczLjg2NzA2MTQ5NDcyMTE4LCA0MC41ODIwODc5NzY3OTMzOTZdXV0sIFtbWy03My44Njk1MjcwNzU0ODkzMiwgNDAuNTk4NzEzNzUwMzU0NDM1XSwgWy03My44Njk2NzA3MDcxMTQ5OSwgNDAuNTk2Njg4NTYzNjIyMDc0XSwgWy03My44NzAyMDg5OTgzNjIyOSwgNDAuNTk2OTU0MjMyNzg5MzE1XSwgWy03My44Njk1MjcwNzU0ODkzMiwgNDAuNTk4NzEzNzUwMzU0NDM1XV1dLCBbW1stNzMuOTE5OTAwNjQzMzU5NzcsIDQwLjU5OTYwMDUyMjU5Mjc2Nl0sIFstNzMuOTE2MjYzOTMxMDgzNDIsIDQwLjU5ODE2MTEzNzMxMjcyXSwgWy03My45MTI5NTEyMjYzMTk4MiwgNDAuNTkyMDU0MzI5OTY5NTE0XSwgWy03My45MTUyNDQ3ODMwNDY4NCwgNDAuNTkxNTg3NTA4MTc4NTA2XSwgWy03My45MjE4MjI3NzczMTkwNCwgNDAuNTk3MzMyOTMyODcyNDhdLCBbLTczLjkyMjEzMDQ5MzUzNCwgNDAuNTk4NjYyNTk2MTc3MjldLCBbLTczLjkxOTkwMDY0MzM1OTc3LCA0MC41OTk2MDA1MjI1OTI3NjZdXV0sIFtbWy03My44NzAxOTQ5MTQ4OTk1LCA0MC41OTg5OTY0MDU5MDE4ODZdLCBbLTczLjg3MTA4MTQxODExNDgxLCA0MC41OTg5MDExNDc0NzAwOTRdLCBbLTczLjg3MDQ5NDExOTE0Nzc2LCA0MC42MDI2MDQ0NDYyMDQ1NV0sIFstNzMuODcwMjYyODA1NjQ5MTgsIDQwLjYwMTY4MTIyMjI1ODU2XSwgWy03My44NzAxOTQ5MTQ4OTk1LCA0MC41OTg5OTY0MDU5MDE4ODZdXV0sIFtbWy03My44NTI0MzMzNTgwNzAxNywgNDAuNTk3MzMzMzk3Nzk1MjI1XSwgWy03My44NjA0NDQyMDUzNDA3LCA0MC41OTY0NzE5MDU1OTYzMjRdLCBbLTczLjg2MzM1OTk5MTQ3NjEzLCA0MC42MDAzMjIyMDI3NzExMjVdLCBbLTczLjg2MTEyODE0MjI0NTQyLCA0MC42MDI1NTAzMzEwNzQyN10sIFstNzMuODU0ODI1OTU3ODI5NzIsIDQwLjYwMTg2NzE5NTM1MzYzXSwgWy03My44NTA3Njc0ODAwMTU1OSwgNDAuNTk4ODM5NDQzODM3MzJdLCBbLTczLjg1MjQzMzM1ODA3MDE3LCA0MC41OTczMzMzOTc3OTUyMjVdXV0sIFtbWy03My44NjcwMjkwNTE4NTU2NywgNDAuNjAzNzQzMzg4ODUzODhdLCBbLTczLjg2NzY4MTk0MTU0MjE2LCA0MC42MDMwNzA3NjY2NzczM10sIFstNzMuODY4MzA4MDg0NjQ2MTYsIDQwLjYwMzEzOTE2MTE0NjE0XSwgWy03My44Njc5MzUwNTM3MjcwNSwgNDAuNjAzOTYxMTM1NDUyOTJdLCBbLTczLjg2NzAyOTA1MTg1NTY3LCA0MC42MDM3NDMzODg4NTM4OF1dXSwgW1tbLTczLjg0NjczNjUxNDcxMTAxLCA0MC42MDQ4NTMwMTQ4NTE2MzVdLCBbLTczLjg0NjA4MDU5MDM3ODg1LCA0MC42MDQ1NDQ1OTM4MzcwMV0sIFstNzMuODQ2NDEzNjgxMDk5MDQsIDQwLjYwNDE4NzQxNjYwNTc0XSwgWy03My44NDU3ODMyMjQ3MjM0OSwgNDAuNjA0ODIxNjE0MzgyMDA0XSwgWy03My44NDQ0NTQ4OTk4MjY4MSwgNDAuNjA0Njg3MzI4OTIyODE1XSwgWy03My44NDU2MjMwMzc5MjM0MywgNDAuNjAzNTE5NDMxNzU2XSwgWy03My44NDc4NjI0ODM3ODYyNiwgNDAuNjA0NzAyNzA2MzI2NzNdLCBbLTczLjg0NjczNjUxNDcxMTAxLCA0MC42MDQ4NTMwMTQ4NTE2MzVdXV0sIFtbWy03My44NDgyNzk4MjY2NzI3LCA0MC42MDU0MzMyNTQ3Mjc2MzZdLCBbLTczLjg0Nzk1Mjc3MTg2NjM3LCA0MC42MDUzNTQ5OTkxMzQzODRdLCBbLTczLjg0NzgzNjgyMjU1ODYyLCA0MC42MDUwODQ5NzA4ODY4NF0sIFstNzMuODQ4MjQ4Njg0MTg4MjMsIDQwLjYwNTE0MjM0ODczODgzXSwgWy03My44NDgyNzk4MjY2NzI3LCA0MC42MDU0MzMyNTQ3Mjc2MzZdXV0sIFtbWy03My44NDg0MDM0MTE4NjYwNywgNDAuNjA1OTIwODI4ODY5NzldLCBbLTczLjg0ODI2MTEwMDEzNjcxLCA0MC42MDU3NzkzNTMwNjgzMTRdLCBbLTczLjg0ODcxOTY0NDQyOTE1LCA0MC42MDU4OTAyNzkyNjEzN10sIFstNzMuODQ4NTQzNDA4NDM3OCwgNDAuNjA1OTYzNTkzNTIwMzhdLCBbLTczLjg0ODQwMzQxMTg2NjA3LCA0MC42MDU5MjA4Mjg4Njk3OV1dXSwgW1tbLTczLjg2NzAyMzk5NDc1MTYyLCA0MC42MDgwNjgxNzg3NjkzOV0sIFstNzMuODY4NzQzMTc1NTkxNzMsIDQwLjYwNzAzNTE3OTI3OTIyXSwgWy03My44Njg2ODQ2ODgyNjc1MiwgNDAuNjA4MjQxMTU4MTgzODJdLCBbLTczLjg2NzAyMzk5NDc1MTYyLCA0MC42MDgwNjgxNzg3NjkzOV1dXSwgW1tbLTczLjgzNDQ2MjY1NjIwMjQ1LCA0MC42MDcxOTI1MzI5NDIzNTZdLCBbLTczLjgzNTg3NjAxNjIzMTY4LCA0MC42MDU2MzY5MDcwNDI5M10sIFstNzMuODM0MjgzNDI2MjAwMSwgNDAuNjA5MTg1NjgxODUzXSwgWy03My44MzQ0NjI2NTYyMDI0NSwgNDAuNjA3MTkyNTMyOTQyMzU2XV1dLCBbW1stNzMuODY5NjY0NDI5NTg1MDEsIDQwLjYwNjU0MDEyMzQxMjkxXSwgWy03My44NzEwOTMzMDc2ODA4MiwgNDAuNjA0Njk0MTczOTk0NjldLCBbLTczLjg3MzAwMTIyNzI0NzY4LCA0MC42MTA1NTU0NTg0NTk4NjRdLCBbLTczLjg3MTAzODcwMTExNzEsIDQwLjYwOTcyMzU4MjUyNjU0XSwgWy03My44Njk2NjQ0Mjk1ODUwMSwgNDAuNjA2NTQwMTIzNDEyOTFdXV0sIFtbWy03My44NTA0NzYyNDk2NjQ0LCA0MC42MTIzNDIyMTkwNTcxNzZdLCBbLTczLjg0OTQyMTQ4ODE5NTU3LCA0MC42MDk4MjIwNjA5MTQzMl0sIFstNzMuODU1MDY2NDI2NDA0MzgsIDQwLjYwNzQ1OTg2OTkzODE1XSwgWy03My44NTY1OTk5OTMxNTI5LCA0MC42MTA4MzQ0NzI5NTQwNDZdLCBbLTczLjg1MTk2MzgxMjE4OTI4LCA0MC42MTAyNDM2NTg2ODg4M10sIFstNzMuODUyNjUzMjk1OTcxOTYsIDQwLjYxMTE3Mzg2OTExMV0sIFstNzMuODUwNDc2MjQ5NjY0NCwgNDAuNjEyMzQyMjE5MDU3MTc2XV1dLCBbW1stNzMuODQ0NzM0OTI2NTI5NiwgNDAuNjEzOTY5MTcxODAxNV0sIFstNzMuODQwNjc0Njg4OTU1MDIsIDQwLjYxMTQ0NjMyMjEzNzA3XSwgWy03My44MzgxNzcwNjA0MzMyMSwgNDAuNjEzMDgwNDQ0NjU3NDJdLCBbLTczLjgzNjIzNjIxMTQ2ODk2LCA0MC42MTIyNzAxMDY0MTMxNTZdLCBbLTczLjgzODg3MDgwNDQ5Mzc0LCA0MC42MDc5MDU3OTkwNDUxNTZdLCBbLTczLjg0MDQ5NjU2ODE1NjA3LCA0MC42MDg1NTU0MTg5MTQxNl0sIFstNzMuODM5MzU5Mjc4NjgyMDIsIDQwLjYwNzYxNDg1MjE2MjUxXSwgWy03My44NDEzNjI3NzYyMzYwNCwgNDAuNjA2Nzk0MDIyMDE0NDM0XSwgWy03My44NDE0ODg3ODg0OTI5MiwgNDAuNjA0NDk4NDY0MDY4NzA1XSwgWy03My44NDQ0MjcyOTQwNjI0LCA0MC42MDQxNTYzNzAzNDUzN10sIFstNzMuODQxOTM2MTc4OTAzNTUsIDQwLjYwNDkyOTk5ODAwNDQ4XSwgWy03My44NDM5MDA1MzIxMjE3OCwgNDAuNjA2NDE2NDY3ODk1MzJdLCBbLTczLjg0NDA2ODg1NDc0NDMxLCA0MC42MDQ1NjExNjM2NzY0N10sIFstNzMuODQ0NTc3MDc4OTE5OTgsIDQwLjYwNjYwMzI1ODg0NzExNl0sIFstNzMuODQ0OTM5MDU5NzA1NiwgNDAuNjA1MDMyNTM0MTY3MDQ0XSwgWy03My44NDc0Njc0MjgzNTE0NiwgNDAuNjA1MDgyNDc4MDkwNTRdLCBbLTczLjg0NTkwOTkyMDkwNzYzLCA0MC42MDYyOTIyOTYyMzI5MTVdLCBbLTczLjg0NjQwMjY0NzI2ODU4LCA0MC42MDczMDE2NTY5MzkxN10sIFstNzMuODQ5NjQ2NzgzNDg3MTcsIDQwLjYwNjA1MDIwMzU1NDM5XSwgWy03My44NDQ4NjIzMzgxMjE0MiwgNDAuNjA4MDg3NzA0Njg5NzFdLCBbLTczLjg0NjI3ODk3MDIyMzcyLCA0MC42MDgyNzg2ODc0NTI2NzVdLCBbLTczLjg0NDczNDkyNjUyOTYsIDQwLjYxMzk2OTE3MTgwMTVdXV0sIFtbWy03My44MzM3MDE1MjI3MjEyNywgNDAuNjIwOTc4NjAxODQ2ODNdLCBbLTczLjgzNDAxODg4MjAwNDQ2LCA0MC42MTQzODExNjY0MjA1OF0sIFstNzMuODM3NzY3MDIxNDMzNjYsIDQwLjYxNTUyMjIzMTQxODczXSwgWy03My44MzUyNzM3ODMwMTA4OCwgNDAuNjE3MjQ3MjIxOTU1MzJdLCBbLTczLjgzNTcwNzMzMjE2NzYyLCA0MC42MTk3MjkxNjY5NTE5NF0sIFstNzMuODMzODAwNzU1ODEwNSwgNDAuNjE5NjQ1NjIwMTg2OTY1XSwgWy03My44MzM3MDE1MjI3MjEyNywgNDAuNjIwOTc4NjAxODQ2ODNdXV0sIFtbWy03My44MzQ3ODAzMjMxNzQ4NSwgNDAuNjIyNjI1NDk0MTQwNzRdLCBbLTczLjgzMzYyMjQyMDAyMjAxLCA0MC42MjI2MDI2MzkzMzIwNV0sIFstNzMuODM0MDA3NDI1MzU0MDcsIDQwLjYyMTAzNDgzNjgzMjIxNl0sIFstNzMuODM0OTg3MTYwOTkzNTYsIDQwLjYyMTAxMTI5OTg4ODg0XSwgWy03My44MzQ3ODAzMjMxNzQ4NSwgNDAuNjIyNjI1NDk0MTQwNzRdXV0sIFtbWy03My44NTAyMzA5MDc2Mjg3LCA0MC42MjMzMjA4MjM2MjIwNV0sIFstNzMuODQ4NDYzNzE1MjUwMSwgNDAuNjIyMzY1NzAyNzMyMTVdLCBbLTczLjg1MDg1MTA3OTI2ODM3LCA0MC42MjAyNDcxNTc3NTc5MTZdLCBbLTczLjg1NzQwMTcwODA1MjAxLCA0MC42MjAzMDM2NzQxMjg2MV0sIFstNzMuODU1MTcxMzA5MjczMDIsIDQwLjYyMTk1OTMzNzczOTIzNF0sIFstNzMuODUxODUzMjk2NTg1OTksIDQwLjYyMDU2NTE5Mzc4MjM2XSwgWy03My44NTIzNjAzODI1MjAyLCA0MC42MjI5NzQ4NzA1MTY1NF0sIFstNzMuODUwMjMwOTA3NjI4NywgNDAuNjIzMzIwODIzNjIyMDVdXV0sIFtbWy03My44MzM1OTMzOTIxNTQ5NCwgNDAuNjIzNTk0OTc5OTE1OTM2XSwgWy03My44MzM3MDc1NzQ5NTgwMywgNDAuNjIzNjkzNjg2MDQ4NzQ2XSwgWy03My44MzM2MzU4MjU3OTg5OSwgNDAuNjIzOTU1MjkxOTExMzJdLCBbLTczLjgzMzU1OTIzODgwNDYsIDQwLjYyMzkzNjAzNDQ5OTkzNF0sIFstNzMuODMzNTkzMzkyMTU0OTQsIDQwLjYyMzU5NDk3OTkxNTkzNl1dXSwgW1tbLTczLjg2MjEyNDAxNTQxMTAxLCA0MC42MjM5OTAzNzI5NDI0OTRdLCBbLTczLjg2MzAzODc2NzcwODA1LCA0MC42MjMzMDI5OTE3NjkzNjRdLCBbLTczLjg2Mzc3NzM5MDk5OTI3LCA0MC42MjM5NTE0MDgwNjA3MzRdLCBbLTczLjg2MjA2NDcyMjMxMjgyLCA0MC42MjQzMjE1MTMzODczMV0sIFstNzMuODYyMTI0MDE1NDExMDEsIDQwLjYyMzk5MDM3Mjk0MjQ5NF1dXSwgW1tbLTczLjg0NTg5NDU4NDQ3MDk0LCA0MC42MjQ5NzE4MTUzMTM3OF0sIFstNzMuODQ0NzY1NDUzOTgwNzEsIDQwLjYyNDg1NDU2OTU3MzI5XSwgWy03My44NDI5Mzg2NDc2NTQwOCwgNDAuNjIzMzIzOTAzOTc2NjRdLCBbLTczLjg0NTM2NzA0MDI1ODA0LCA0MC42MjMwNDg1NjU3MzA5Nl0sIFstNzMuODQ1ODk0NTg0NDcwOTQsIDQwLjYyNDk3MTgxNTMxMzc4XV1dLCBbW1stNzMuODQwNDg0NzI2NzQ3MTYsIDQwLjYyNzQ5NTI4ODUyNzc1NF0sIFstNzMuODM5NDY3MDA4ODc3NTgsIDQwLjYyNzI5Mzg0MTI2NTQwNl0sIFstNzMuODQwNzIxMjIxMTUzMTIsIDQwLjYyNTg2NDc0NTEyMTY2XSwgWy03My44NDIzODE3ODY0Nzk5NSwgNDAuNjI3NDQwNzg2MjcxNjU2XSwgWy03My44NDA0ODQ3MjY3NDcxNiwgNDAuNjI3NDk1Mjg4NTI3NzU0XV1dLCBbW1stNzMuODY4NzI5MTUyOTA4ODMsIDQwLjYxNzM1Njc4NTAwMzI5NV0sIFstNzMuODc3OTgwNzA4NjQ2NDIsIDQwLjYxNTc5ODI5Mjg3ODNdLCBbLTczLjg3OTc4MDU1NTMzNjUyLCA0MC42MTg2MzA2NDI0Mjk3MTRdLCBbLTczLjg3Nzc5MDk4ODg4ODMxLCA0MC42MjE2NTIyNDI1NjA1MV0sIFstNzMuODY2NDU0ODQwNTUyNDgsIDQwLjYyODI1NTM4NjgwNzA0XSwgWy03My44NjQ3Mjc2NjA0NTQyNiwgNDAuNjI2NTI1NTQxOTEzNDk1XSwgWy03My44NjY1MDg2MDMyMjU0NSwgNDAuNjIzNzU0MDA4MDE3OTA0XSwgWy03My44NjUwMDgzMDEyMDA2OSwgNDAuNjIwNTQ2NjgzMTU3NjNdLCBbLTczLjg2NTc1ODMxMzE5NDA1LCA0MC42MTg1MDE0NDk5NTc5M10sIFstNzMuODY4NzI5MTUyOTA4ODMsIDQwLjYxNzM1Njc4NTAwMzI5NV1dXSwgW1tbLTczLjg0NzM0MzUwNjY2OTksIDQwLjYyOTA5NDczOTcxNjIzXSwgWy03My44NDk1NTQwNDc1NTI5MSwgNDAuNjI0OTM5NjE4NTA1NThdLCBbLTczLjg1ODAwNDMwOTIyODcsIDQwLjYyNDcyOTAxMzE5OTg4XSwgWy03My44NTc4NjMwOTMxNzAzOCwgNDAuNjI4NDQ0OTAyNjY3NDRdLCBbLTczLjg1NjUwNTUwOTc3NTk3LCA0MC42MjkwOTczNTM3MjY2Ml0sIFstNzMuODUyMjE1MzY1ODgxNDMsIDQwLjYyNzU1NDgzMDcwMzIxXSwgWy03My44NDczNDM1MDY2Njk5LCA0MC42MjkwOTQ3Mzk3MTYyM11dXSwgW1tbLTczLjg0ODUxOTkzNTY1MTIzLCA0MC42MzA1NjEwMjQyNzU0N10sIFstNzMuODQ4NDMyNzQxMDEyNjcsIDQwLjYzMDQ1OTQxMzUxMDYzNl0sIFstNzMuODQ4Njg0Mzc4MDE0MiwgNDAuNjMwNDU5MDQwNjYzOF0sIFstNzMuODQ4NjkzNzQyNjY3NCwgNDAuNjMwNjEyNzA1OTM2NTldLCBbLTczLjg0ODUxOTkzNTY1MTIzLCA0MC42MzA1NjEwMjQyNzU0N11dXSwgW1tbLTczLjg1MzAwMDE0NjQ0NSwgNDAuNjMyMDIyODQyMjUzMzU2XSwgWy03My44NTE4Nzk3OTMxNTEwNywgNDAuNjMwNTA4MzE5MjA5MzNdLCBbLTczLjg1ODU1ODM2MzQ3OTgsIDQwLjYzMDQ1ODI4ODE5NTZdLCBbLTczLjg1NzU4NDg2NzQyOTk5LCA0MC42MzI3MTYxNzU1MzYzMV0sIFstNzMuODU0MzQ2MTcyMTQ1NzgsIDQwLjYzMzcyMjYzMTI3MDQxNl0sIFstNzMuODUyNDEyNDc0NTMyNTEsIDQwLjYzMzY0MzQ5ODE0NjE4NV0sIFstNzMuODUzMDAwMTQ2NDQ1LCA0MC42MzIwMjI4NDIyNTMzNTZdXV0sIFtbWy03My44NDYzODQ1ODkwOTg2MiwgNDAuNjM1Mjg1NzY4MTkxNF0sIFstNzMuODQ3ODI2NTM0NTExMTQsIDQwLjYzMjc3OTczNjc5NTkyNV0sIFstNzMuODUwMDUwMDAyNzg3NTMsIDQwLjYzMjE3MzY0MzEwMTY4XSwgWy03My44NDY2NzkxNDg0MDIzLCA0MC42Mzg3MzE3MTE3NTcwNV0sIFstNzMuODQ0MjcyNjUzMzM0MDcsIDQwLjYzNjY5MjM0NTkyOTUyNV0sIFstNzMuODQ2Mzg0NTg5MDk4NjIsIDQwLjYzNTI4NTc2ODE5MTRdXV0sIFtbWy03My45NTQzOTU1NTQxNzA4NywgNDAuNzM5MTE0NzcyNTIyNDhdLCBbLTczLjk0NjUyMzUyODU0Nzg2LCA0MC43MzY5MjY4NTM5NTgxNF0sIFstNzMuOTQ3MTk5ODMzNjcxMTksIDQwLjczNTM1NTE3ODExNDFdLCBbLTczLjk0NzA2NTMyOTE1Mzg3LCA0MC43MzQ0MDE5OTI4MTkyMl0sIFstNzMuOTQ1NTcwNDg0NTcyMTcsIDQwLjczNjYxMjMwMzkxMDRdLCBbLTczLjk0MjM5NDQzNTQyNDI5LCA0MC43MzU0MjU3NDk5NDc1MV0sIFstNzMuOTM4MTAzMzQ5NjA2NjYsIDQwLjcyOTcyODUxOTUyMTMyXSwgWy03My45MjkyNDMzMzk0ODM5MiwgNDAuNzI3Mzk3OTQyMzE4NjI1XSwgWy03My45MjQ1Nzk0ODA4ODg5NCwgNDAuNzE5MTYyNTIzMzM0NzRdLCBbLTczLjkzMjE5NzUzMTQ2MzM0LCA0MC43MTQ5NzIxMDc0OTAzNF0sIFstNzMuOTMxMjQwNjcwNTk0OSwgNDAuNzEzNzI0ODEwODg0NjddLCBbLTczLjkzMzI4MzQ5MzIwMjQ4LCA0MC43MTA5Nzg3MDc0NTc5MjZdLCBbLTczLjkzMTkwMTAxOTIwODYxLCA0MC43MTEzMzg0NzE0MjgxOV0sIFstNzMuOTMwMzYwOTQ1NjU3OSwgNDAuNzA4NzE3NzM4NTM1MTldLCBbLTczLjkzMTg0ODY4ODc3NDU0LCA0MC43MTI1NjQ3NzQxODMyM10sIFstNzMuOTMwNDIyOTQzMTMwNzIsIDQwLjcxMzE3MjU1ODY3MTA0XSwgWy03My45MzA4NTE5MDEzNDAzLCA0MC43MTQ5MDI5ODU1OTI3NjVdLCBbLTczLjkyODQzODgxODE0NTkzLCA0MC43MTU1MzA5NDk1NzU3NDRdLCBbLTczLjkyODIzMjUzMDQ0OTM2LCA0MC43MTcxMDY0NTM3NTA3OV0sIFstNzMuOTIzNjM5ODkyNjIwNjgsIDQwLjcxNzMyMDY1NzQ5MzM2XSwgWy03My45MjMwNTUwMDAxNDMzNCwgNDAuNzE2MzQyNjY0NzkzMzZdLCBbLTczLjkyNDg4NTUzNTA3NiwgNDAuNzE1MjY3MTg3NjUyNV0sIFstNzMuOTIwNzQ4NTMxMTU4MDUsIDQwLjcxMDUzMzY0ODk1ODcxXSwgWy03My45MjE4OTE4NDY5ODY5NCwgNDAuNzA5Mzk2MDk2NzEwNzldLCBbLTczLjkxMTgwNzEwMDAzMzI5LCA0MC43MDM0MzQ5NTI1Mjg2NzRdLCBbLTczLjkxMjkwNDA0MTIxODk0LCA0MC43MDIzNjE4OTE3OTkyM10sIFstNzMuOTEwNjc4ODI3Mzc0MjEsIDQwLjcwMTA0NTk2OTA2NDA3Nl0sIFstNzMuOTExODA4MjAwMzgzODUsIDQwLjY5OTkzODAwMzEyMzg5XSwgWy03My45MDQyNjAxODQxMTY5LCA0MC42OTU3MDAzNzE0NDMxN10sIFstNzMuOTA1Nzk1OTcwNzUzMSwgNDAuNjk0MTI3MTU1MDExNTE1XSwgWy03My45MDEyMzI5MDY2MDAwNiwgNDAuNjkxNDQyMjc5MTQwNzQ1XSwgWy03My45MDExNjE1NDk5NDM2OCwgNDAuNjg3ODc3OTM1MzU0OTddLCBbLTczLjg5NjQ2NjI1MTI4OTI4LCA0MC42ODIzMzY0MjI0NzU4ODVdLCBbLTczLjg5NDE3NDYzMjY3MSwgNDAuNjg1MjgzMjQ4NjczMTddLCBbLTczLjg5MjUyMzE2ODk4MjY2LCA0MC42ODM0MjQ1MzI4MDQ2Ml0sIFstNzMuODg0NTIyNTA5NTc0MjQsIDQwLjY4NjY4NDc0OTA5NTU1XSwgWy03My44NzQwMjA1MzMwNjc5OCwgNDAuNjk0MTkxMjk0NzE1NTddLCBbLTczLjg2ODQyNDg5Nzc4ODE3LCA0MC42OTQ3MTgxMTk1MTUxM10sIFstNzMuODY2MDE5OTMyMjA3MzEsIDQwLjY4MTkxOTU4NzAyNzk4XSwgWy03My44NjQxMDA5NjY3OTEzNCwgNDAuNjgyMzcyODUwMjkyNjFdLCBbLTczLjg2MjM0NTgwNTM1MDIzLCA0MC42NzkxNjQ3ODYxNDY4NV0sIFstNzMuODYwMzg1MTk4NTQ3MjgsIDQwLjY3MTI1MTcxMDk4OTY4XSwgWy03My44NTc2MzMyMzE3NDM3MiwgNDAuNjcxNjU2MTk0MDM4ODRdLCBbLTczLjg1NTY4NDYxMjIxMTQzLCA0MC42NjM4Njc0OTIzNzI5MV0sIFstNzMuODU4NDI5NTA3OTEzMDQsIDQwLjY2MzQ1MzM2MDkzMTAyXSwgWy03My44NTc2MTUzNzE4NTU4LCA0MC42NjAxMTg5MzMxNTM3OF0sIFstNzMuODYzMTcwODMzNDA0MDQsIDQwLjY1ODI3NjUxMjk0ODg0XSwgWy03My44NjMyNzYyMzA2ODYwOCwgNDAuNjU2OTQxMjE1MzI4MTQ2XSwgWy03My44NTcyMjMzMDk4NDM2NiwgNDAuNjUwMjc4NjcwNTQxMzddLCBbLTczLjg1ODM3NjA1MzE3NjczLCA0MC42NDcyNzQ0MTUzMTM0NV0sIFstNzMuODU3MTY5NzgyOTgyMTMsIDQwLjY0MzY3ODU1ODg4NTk2Nl0sIFstNzMuODYyODk0NjMyMjQzODgsIDQwLjY0MjU1MDY3OTY4MjQ2XSwgWy03My44NjY3MDQxMTk3Mzc3OSwgNDAuNjQwMDIxNzYzNDk1NF0sIFstNzMuODY1NjMyNDczOTEzNDEsIDQwLjYzODc4Njc2MzYyMjldLCBbLTczLjg2ODY3MjgyODk1MDg4LCA0MC42NDA5MjUwNzkyMDMzODRdLCBbLTczLjg3OTMzMjExNjgwNTYsIDQwLjY1NDYyMjAxNjg0OThdLCBbLTczLjg2OTg5NTgzMzg2MjQ3LCA0MC42Mzg5MzQ1Mjg5MTk1NF0sIFstNzMuODY3OTk3MDk2NjgxMywgNDAuNjM4MTE1MjY1MjA5NjFdLCBbLTczLjg3NDQ0ODY1NjM0MDM4LCA0MC42MzY2NTg2NzMyOTg3M10sIFstNzMuODkxMDAyOTgwNTE1MywgNDAuNjQ5MzUwNzA1NTY1NjVdLCBbLTczLjg3NzE0NDM0ODY4NTk3LCA0MC42MzU5NzY0OTgwMDc1Ml0sIFstNzMuODgzNjQ0NTE3MjgyMywgNDAuNjMwOTQzMzEyMTM4NTddLCBbLTczLjg4MjYzMjQ4NDMzNDA0LCA0MC42MjgyNzQyNzMxMjY4OV0sIFstNzMuODgzNjkyMzE1NzE1MDIsIDQwLjYyNzU1OTM3MzkxNF0sIFstNzMuODg3NTI2NzM3MDYyLCA0MC42MjgzMzE4MjQ0ODI0OTRdLCBbLTczLjg5NTQ4NDY3OTcyMDM1LCA0MC42MjI0ODU1NjgzNzQ0Ml0sIFstNzMuOTE3NTA2NTczMzM4OTMsIDQwLjYzMTQ0MTgxNjA3OTgzNV0sIFstNzMuOTAyMjg3MDc5MzIyNzYsIDQwLjYyNDQwOTg1MzkzMDI3NF0sIFstNzMuOTAwNzA0NjEwNTAwOTgsIDQwLjYyMTYyODc5NDMyMDgzNF0sIFstNzMuODk2NDc0NzU0MTI0NTEsIDQwLjYyMTQyODI0NjA4ODkzXSwgWy03My44OTU4NjExMjg5NDE4NywgNDAuNjE0NTE4MTM3NDk0NzVdLCBbLTczLjg5MDk1NDE0NTY0Njg0LCA0MC42MTI4MzQwNDczMTcwOF0sIFstNzMuODkzOTYzODUwNjA5MDQsIDQwLjYxMTIxNDIyMjU4MDc2XSwgWy03My44ODk2OTYzMTg0NjQ3LCA0MC42MTE0NTM1NTk1OTIyMzVdLCBbLTczLjg5MzM0NjIxNDIwMDE5LCA0MC42MDY3NDM0NDYyMzQ2NDVdLCBbLTczLjg5OTgzMjI0NTQyMzg0LCA0MC42MDU1MDMxMTcwNDMwOV0sIFstNzMuOTAxMzMzMDM0NTg2NTMsIDQwLjYxMTcxNzg4MjkwNTkzNl0sIFstNzMuOTAyNDkzOTI5ODUzLCA0MC42MTE4MTQ5OTkwMzIyN10sIFstNzMuOTAxMTkyNTM0NjU0NSwgNDAuNjEwNTYzODE3NTQ2NTVdLCBbLTczLjkwMTMyOTYyNjU5NDA2LCA0MC42MTA0ODEwNDMxMDMyNTZdLCBbLTczLjkwODc5MDg4MDE3NjQ3LCA0MC42MTc0MzYzOTY3MjEzN10sIFstNzMuOTA3OTczMDYzOTA1MiwgNDAuNjE1NzM2ODQ0MDYxMThdLCBbLTczLjkwOTU5NzQwOTEwMzQ0LCA0MC42MTYzOTI2Njk3OTkzMjVdLCBbLTczLjkwMjI1ODU5OTY2MjgzLCA0MC42MTA0MjI3NzI1OTk5Ml0sIFstNzMuOTAxNjQyMTE3OTAwOSwgNDAuNjA1NzYzMzYwNzM4ODddLCBbLTczLjkwNTI0MzAwOTkyMTA0LCA0MC42MDQ5MTAwOTAzMjQzN10sIFstNzMuOTA4NjM5NTk1MzU0MzIsIDQwLjYwNjY1ODcyMjA0NzgyNV0sIFstNzMuOTA4MDMzMDYwOTc4MiwgNDAuNjA1MzU4NjAyMTE3MjFdLCBbLTczLjkwOTg1MTU0ODQ1NDcsIDQwLjYwNTk5OTcyMjE3NzY3XSwgWy03My45MDgzMjUzNjgzNTE3NCwgNDAuNjA0MDczMzczOTE4NThdLCBbLTczLjkxMzY1MTE5NzU5NjAxLCA0MC42MDM5ODI1MTM4MzY5NV0sIFstNzMuOTE3MDg4Mzg1MDMzMTUsIDQwLjYwODgyMDg1NDg5ODUwNF0sIFstNzMuOTE0NDk1NDIyMDU5ODMsIDQwLjYxMTY1MzIyMzY2NDg1XSwgWy03My45MTQyMjIzODY2NTk1NSwgNDAuNjE0OTMyNDU2NzA0NDddLCBbLTczLjkxNjYyODA0MzcxMTU4LCA0MC42MTM0NDM1ODkyNjU0M10sIFstNzMuOTE1NzMxODE5MjcxMzYsIDQwLjYxMTgzMDg0NDUxMzc3XSwgWy03My45MTgxMTAzNjY3OTAxMywgNDAuNjEwMjA4Mzk0MDU4MTNdLCBbLTczLjkxODEzODE0ODg5OTcxLCA0MC42MDc2NDUzODY5MDc2MzVdLCBbLTczLjkxOTM1Mzk4NDg0MTE0LCA0MC42MDgwNDI5MjIyODc2OF0sIFstNzMuOTE4MjUyNjkwOTI5NTUsIDQwLjYwNzIyOTM1MDY0MDU0NF0sIFstNzMuOTE5NTIyMDk3OTYwMTcsIDQwLjYwNzczODc5NzQzNDc4NF0sIFstNzMuOTE0NDI4MTM0NjIyODUsIDQwLjYwMjg2MzkxOTU2MzI0XSwgWy03My45MDkwMzY4OTUzMDUzMywgNDAuNjAyNjc3MzQzMjIwMTRdLCBbLTczLjkxMDczMTIzMDEzMjY3LCA0MC42MDIwMjEzNzYwMjc2MzZdLCBbLTczLjkwODk0MjI1MTM4MDM4LCA0MC42MDE2MDcwNDA2OTg2OV0sIFstNzMuODgzOTY0MzQ4ODIwNzcsIDQwLjYwNTU0OTE0MDQyNjQwNV0sIFstNzMuODc2NzE2NzI0ODIwNzUsIDQwLjU4NDkxNDQzMDIwMDc4XSwgWy03My44Nzk3MDIzMTY2NCwgNDAuNTgwMTM1MTAwNjk4MTRdLCBbLTczLjg5NTUyMzgxMDA3MTcxLCA0MC41NzY3Njk4MTg0MzYzOV0sIFstNzMuODk5MDMwMjYwOTU5MzEsIDQwLjU4NzY3MDA5NzUyMDU0XSwgWy03My45MDQyNjg3NDQ0NzEyNSwgNDAuNTg2OTEyMjYyOTg4NTg0XSwgWy03My45MDY1MTg3NDY2Mzc2NiwgNDAuNTg4MDI1NDczODkyNTJdLCBbLTczLjkxMTQ4MTcxOTkwMDY5LCA0MC41ODYwNzg3MTg3MTIzXSwgWy03My45MTIwNDIzNDAxNTYzOSwgNDAuNTk0NTA2OTU0Mjg4ODldLCBbLTczLjkxNTEzMjk3NDU5NDk4LCA0MC41OTg3ODExMTU5MzAyOF0sIFstNzMuOTIxNTE2ODk5ODE5NSwgNDAuNjAxOTIzNjU0MTQxMTJdLCBbLTczLjkyNDg2NDkxOTM0OTgyLCA0MC41OTk4MjE0ODI0MjMyMV0sIFstNzMuOTMwMTY3NjI3MDg3MzQsIDQwLjYwNDAyODQ1ODMzMDgxNl0sIFstNzMuOTMyMTE2MDg4Mzk3NTQsIDQwLjYwMjY4ODUxNjY0Njk2NF0sIFstNzMuOTE0MjA1NjYyMDY2ODUsIDQwLjU4OTE5Njg4MzYzNjE2XSwgWy03My45MTkxOTAzMzE3MjM1NywgNDAuNTg1OTYyNDk0MTQ3NjRdLCBbLTczLjkyNDc1NzA5Nzk5NjksIDQwLjU4NTYzMjU3NTA5OTIyXSwgWy03My45MjgwNzkwNjgxNzg1OSwgNDAuNTg3NzAyNDYwNTIzMTc1XSwgWy03My45MjM5NTI5NDg1MDA5NCwgNDAuNTkxMTM5ODUwNTI1MDRdLCBbLTczLjkyODYzMDYxNDE1NjM4LCA0MC41ODg1NzI2MzY0MjA2MzZdLCBbLTczLjkyODQ0MDkwNDkzNjU1LCA0MC41ODkwMzA0MjgxNDJdLCBbLTczLjkyOTEzNDQwMzgyNjQsIDQwLjU4ODg3OTI0MTY4MTk0XSwgWy03My45Mjg3NTcwMzQ5OTQxOSwgNDAuNTg5MTUyOTY2OTI0OTldLCBbLTczLjkyOTc2NjE1NzczMzA3LCA0MC41ODkyOTIwNjk0NDc2Nl0sIFstNzMuOTMwMDM0Mjc0NTA1NTIsIDQwLjU4OTQyNTk5NjUwMDcxXSwgWy03My45MzA1NzcwNTcxODI1NywgNDAuNTg5ODkwNjQxMjAzMTZdLCBbLTczLjkzMDEwMzI1OTg4NzY2LCA0MC41ODk2MDYxMDUwNzE0MjVdLCBbLTczLjkzMDAxNjUwOTUyMDgzLCA0MC41OTQwOTQ1MzYwNjIxM10sIFstNzMuOTMyNjA0MjA1NTY4NTcsIDQwLjU5NDkyOTU0NDUyNDk0XSwgWy03My45MzEyMTI5NDg1ODk1NSwgNDAuNTg5NTMxMzA4MTE5MjddLCBbLTczLjkyOTcyODQ2MzgwMTg3LCA0MC41ODg2MTM5MTU4Mjk3NF0sIFstNzMuOTMxMjUxOTEyNjcxMjcsIDQwLjU4Njg0OTgyNTIxNDI2XSwgWy03My45Mjg1NzM5MzkzNjQ2OCwgNDAuNTg3MDYxNTAyMzcxMzldLCBbLTczLjkyNTI5MDgzOTgxNzM0LCA0MC41ODQ2NDA3MzU2NjQ2MzVdLCBbLTczLjkxMzQ5OTYxNjc1ODcxLCA0MC41ODYwOTU4MjU3MDUzXSwgWy03My45MTI0NjAyMjAzNjAwNywgNDAuNTgzMzUxNzU0NDI2MzNdLCBbLTczLjkxNzI5ODYxNDEwNzI0LCA0MC41ODMxOTA4MDE3NDk1XSwgWy03My45MTE5MTA1ODg2MDM1NSwgNDAuNTgyOTYzMzc3MjUyNTVdLCBbLTczLjkxMTQ4MzI3NjAxOTY3LCA0MC41ODE4MzIxNjE4Njc0NV0sIFstNzMuOTI0NDM2MDQwOTQ5NzcsIDQwLjU4MzU1ODIwMzQ0NDIwNl0sIFstNzMuOTUzNDkzMjIwNDg2OCwgNDAuNTgyOTg4MTk4MjYwOTddLCBbLTczLjk0Mjc0MDYyNTkyNTE1LCA0MC41ODA5OTU1ODk1NTkyNl0sIFstNzMuOTMyNTgwMDY1NjgwMzcsIDQwLjU4MTI2NDc0MTIwMzQxXSwgWy03My45MzEwNjI4ODMzNTY1MiwgNDAuNTc2MTYzMTAwNzIzMzA2XSwgWy03My45ODI4MjcyMzIwMTgzMiwgNDAuNTcxNTQyNDEzNTc0NTM0XSwgWy03My45ODMzNjA1ODAzOTI3MywgNDAuNTY5NTI5OTk0NDg2NzJdLCBbLTczLjk4Mzc1NzkwNDQ4NjUyLCA0MC41NzEzOTYyMjcyNTA5MTVdLCBbLTc0LjAwMjA4NTQ3NjM5NzM1LCA0MC41Njk1ODU5ODM5ODQ5Ml0sIFstNzQuMDAzMDMxODYxNjQ4MTEsIDQwLjU3MjE4NTU5NDc1ODk4XSwgWy03NC4wMTIwMTU0MDE5MTEzMSwgNDAuNTc0ODg1MDUyNDc0MTk0XSwgWy03NC4wMTMwMzE0ODAwMTc5NiwgNDAuNTc3OTEwMDEyNzE3MThdLCBbLTc0LjAxMTg5Mjc0NTgwNDAzLCA0MC41Nzk3MzUzNzM0OTY0MjZdLCBbLTc0LjAwNjA0NzM0MjM1ODE3LCA0MC41ODE5ODM2NTMwMzU4MV0sIFstNzMuOTg4NDI4MzM3Njk0MywgNDAuNTc4ODE1ODQyNjE5NDldLCBbLTczLjk4NjA0NTA5OTE2MjMxLCA0MC41ODE3MjA2ODUxNTE1NjZdLCBbLTczLjk4ODAwOTczMzc2NzYsIDQwLjU3OTY3MDY4NzE1NTcyNl0sIFstNzMuOTkxNjMwMDc0NzIzOCwgNDAuNTgxMDc5ODg0MzgxODM2XSwgWy03My45OTAyNjI0NDcxNDM3MiwgNDAuNTg0NjE5MTQ4MjA1MjldLCBbLTczLjk5NTQ3MTg4NTYwMzI0LCA0MC41ODIyMTAwNTUxMTc5Nl0sIFstNzQuMDAwMTc5MjI4NTk0MDksIDQwLjU4MzA3Mzk1MDc0NzU5XSwgWy03My45OTgwODUyMzc3NjAxNCwgNDAuNTg1MzY0NzIxNTgxNDhdLCBbLTczLjk5OTU2NTExNTcwMzE5LCA0MC41ODYyNDM5MjAwOTU2NTRdLCBbLTczLjk5NDA3OTA0NjIxNzgsIDQwLjU4ODY5MzQ0MTk5MDU0XSwgWy03My45OTc5NTYzOTczOTI4OCwgNDAuNTg3MjY5NTA2MzY1NjQ0XSwgWy03My45OTUzNDczNzY2MTIxNywgNDAuNTg5MzMxMzgwNDM5OTVdLCBbLTc0LjAwMDM3MzY4ODkwOTM1LCA0MC41ODY0NzQ4MTQ2Mjk5NDVdLCBbLTczLjk5Nzg4MzExMjUxMDQsIDQwLjU4ODM0MzQzNzkyMjc4XSwgWy03My45OTk0NjQ0NjgxMTA3NCwgNDAuNTg5MjMzMjY5MzgwNzA2XSwgWy03My45OTcxODk4MjczOTQ4NiwgNDAuNTkxNjA2MTgxNDAzOTddLCBbLTc0LjAwMDIzMDc1MjgyNzQyLCA0MC41OTE0Nzg0ODk3Njk2OV0sIFstNzMuOTk4Mzg4MzEwODM2MTksIDQwLjU5MzUzMTM5MTYwNjI2XSwgWy03NC4wMDEwNTc0ODQ0NTcxOSwgNDAuNTkyNTM3MDA1MDYyMjddLCBbLTc0LjAwMzYzNDAxOTQ3MzExLCA0MC41OTYwODA1OTkyNDI5M10sIFstNzQuMDEwOTE1NjYyNTY4NDIsIDQwLjYwMDcyMTk3NDM3MjcyNV0sIFstNzQuMDMwMDUxNDY1NDc2ODQsIDQwLjYwNDc1OTE3MzgxMTk1XSwgWy03NC4wMzYwMzk3Nzc3NzkxNSwgNDAuNjA5Mjk1NjM5MDAxODM2XSwgWy03NC4wNDAyMzQyNzI3ODQ0NywgNDAuNjE1MDI4MjU2NjQ5Mjc1XSwgWy03NC4wNDE2MTc0MDc3MzYwMSwgNDAuNjIwNTYyNzE0NTQ1NzA2XSwgWy03NC4wNDEwNjMyMDQzOTM0MiwgNDAuNjMwMTkwMzM3MjQ1MDA0XSwgWy03NC4wMzY4MDY2MjA0ODg1MiwgNDAuNjM4OTg0MjIxNTQ1NDg1XSwgWy03NC4wMzg3NjI5NzkyMDc1OCwgNDAuNjM5NTg4MjU4OTgwNTFdLCBbLTc0LjAzNjcyNDg0Mzc0ODgzLCA0MC42MzkxNDExOTAyMDY2OF0sIFstNzQuMDM1NzEyNzYxNTA3MzEsIDQwLjY0MDY0MDE1NDA0NjQ2XSwgWy03NC4wMzY3NTg0MDMxNzUyMywgNDAuNjQxNjExNzYyNzEzOTVdLCBbLTc0LjAzNDA3MzI5Mjk0MjYxLCA0MC42NDQzMTM5MzI5NjM5XSwgWy03NC4wMzIzMTA3MDU5ODI0MywgNDAuNjQzNTc0NTg2NjE3NzZdLCBbLTc0LjAzMDUxODMwODYzNDE5LCA0MC42NDUyNzQ0MjUyMDldLCBbLTc0LjAyODIwNTY5NTQ1MDA3LCA0MC42NDQwMTU5ODI4OTAyNzRdLCBbLTc0LjAyNjA0OTQ4NDAwMzIxLCA0MC42NDYyNjEzNTAzMjYxNF0sIFstNzQuMDI5Mzg5OTA0ODY2MiwgNDAuNjQ4ODA0MDU1MTEzODY0XSwgWy03NC4wMjUwNzExMTQzMDA4NiwgNDAuNjQ2NzI1NjE2Mzc4NDRdLCBbLTc0LjAyNjIyMTAyNDc1NTc4LCA0MC42NDgyNDg0Mjc4MDkxOV0sIFstNzQuMDI0MTQ1NjYwNTA1NzEsIDQwLjY0NzYxNTEwMTI1OTgyNF0sIFstNzQuMDI2MDUxMzMxOTY3OTksIDQwLjY1MDk5NDMwMDc0MzA4Nl0sIFstNzQuMDIyODUxNDE3OTU5ODMsIDQwLjY1MTE2OTE5NTE2MTcyXSwgWy03NC4wMjUzNjg5MDE1MDUxOSwgNDAuNjUyNzIxNDM2OTI3MjNdLCBbLTc0LjAyMTI0NjUyMzczNDEsIDQwLjY1MDgzNDk3MjU2NDNdLCBbLTc0LjAyMzgwNzAzOTAzMTI3LCA0MC42NTMwNDQ3Mjg1MTE0N10sIFstNzQuMDIxMTg2NzAwMjc4OTIsIDQwLjY1MjgzOTgzNjg5NTMxXSwgWy03NC4wMjMyMDQ2NDcyNzE0MSwgNDAuNjU0MDk2MTE2ODE3ODRdLCBbLTc0LjAxODExODk3ODc2NDczLCA0MC42NTM4ODUyNzExMDUyNDZdLCBbLTc0LjAyMDA1MTgyNDU0Mjk3LCA0MC42NTUzMzU5NDg4NzQ0NV0sIFstNzQuMDE3ODc0MDcyMjM4MTcsIDQwLjY1NDA2MTUwMjMzMDgyXSwgWy03NC4wMTcxNTMxOTU4MTAyNywgNDAuNjU0Nzc1MTA0MzYyMDk1XSwgWy03NC4wMTk4MDA4MTY1MTk5OSwgNDAuNjU2NDg3MjEwNTg0NjNdLCBbLTc0LjAxNjY1MDQ3OTU5NzYyLCA0MC42NTUzMzg3OTY1NzIxNDZdLCBbLTc0LjAxOTEwODQzODAzMTIyLCA0MC42NTczNjg4ODQzMDM0Nl0sIFstNzQuMDE1NDM2MzIyNjk2NDksIDQwLjY1NjYzMjM5Njc1OTY1XSwgWy03NC4wMTc3NDIzMjcyNzQ5NSwgNDAuNjU4MDk4OTE2NzI0OTNdLCBbLTc0LjAxNzY4NTQ5MTc1NDcsIDQwLjY1ODQ1Mjk5Mjc2MTE4NF0sIFstNzQuMDE1MDQ3MzgyMjE4NTcsIDQwLjY1Njk1MDM4NjY5MzM5Nl0sIFstNzQuMDE3NDU4MDMwODc5MDYsIDQwLjY1OTQ1MDE5NzM4NjY3Nl0sIFstNzQuMDE1NTQxNjUzODkwMDgsIDQwLjY2MDc1ODM1NTQ3NjEwNV0sIFstNzQuMDExODM4NjIwNTY1NTQsIDQwLjY1ODkxMjgzNzI3NDcwNl0sIFstNzQuMDExMTA3NTA0MTAzMTEsIDQwLjY1OTcwNjI3NDU4MDYxNF0sIFstNzQuMDE0MDIyNDc2NzgwMjQsIDQwLjY2MTUyOTc0NzQ0MDA0XSwgWy03NC4wMTI2NTM1ODgxMTQ5NCwgNDAuNjYxOTgxNjU0MDM3NTddLCBbLTc0LjAwODU5OTU2OTY4MjksIDQwLjY1OTUyMDkyMzA5ODIzNV0sIFstNzQuMDA3NDU4NTgxNjM4OTcsIDQwLjY2MDU1ODQ3NjIwOTg4Nl0sIFstNzQuMDEwMzcyMDEyOTcyMywgNDAuNjYyMzk4ODgwMjMyNTFdLCBbLTc0LjAwOTU1MDc0MTQyMDM2LCA0MC42NjMyNjc2OTQxMzAzNTRdLCBbLTc0LjAwMzQ4ODAxMTAwNjUsIDQwLjY2MjI0MDU1NjEyODQ3NF0sIFstNzQuMDA3Njc0MzQ1OTQ1MDYsIDQwLjY2NDc5MTEwOTI2NTc1XSwgWy03NC4wMDM2Mjg2MjUwODU2NywgNDAuNjYyNzM0ODQ3NTM0NTVdLCBbLTc0LjAwNDg2MTkzNzkyNjU5LCA0MC42NjUwNjQ4MjE5MzgxNzRdLCBbLTc0LjAwMTEzNTE5NTA5NjYxLCA0MC42NjI5MDE3MjQwNTUwOV0sIFstNzMuOTk5NTMxNTI2MDk5MTYsIDQwLjY2NDM5NzQ4NTkzNjkxXSwgWy03NC4wMDI5MjQ2MzUxNjM4OCwgNDAuNjY2NDYyMzEyMTYzMzddLCBbLTczLjk5OTk4MTQ5MzM5MTIzLCA0MC42Njc0NTAyNzQ5MDg2Nl0sIFstNzMuOTk5MDI2MDA5OTgzOSwgNDAuNjY4NDQyOTcyMTI2OTZdLCBbLTczLjk5ODc2OTQxMDU4OTIzLCA0MC42NzE2MDIwNDcxMDUwN10sIFstNzQuMDAyODk0ODM4NzY5NSwgNDAuNjY3MzQ4NDY1OTQ5Mzc0XSwgWy03NC4wMDU4NjM2NjE4MDY4NiwgNDAuNjY3OTkzNzYyNTg1Njc0XSwgWy03NC4wMDY4MzIzNjA3ODI1OCwgNDAuNjY2MDQ5NjQ1NTI2ODA1XSwgWy03NC4wMDY5NjcwNzgzNDI0NywgNDAuNjY2MDUyMTgyMzU2NjZdLCBbLTc0LjAwNTQzOTI2NTI5MzUzLCA0MC42NzA5MjE0NjgyMzg0Ml0sIFstNzQuMDA3NTQ4MjE2MTgzODgsIDQwLjY2NzA1MTc0NTczMzU1XSwgWy03NC4wMDcwODcyNDI4NzgxMSwgNDAuNjY4NTkxMzU4NTM1NzFdLCBbLTc0LjAwOTg1NDExODU1NjI2LCA0MC42Njg1MjM2MjgzMzUzNjVdLCBbLTc0LjAxMTU0MDE3NTQzMzMxLCA0MC42NjUwODU5MTk3NTY2NV0sIFstNzQuMDE1NzQ4NzI4ODI2NjEsIDQwLjY2NDU2ODMzNjI5MTU5XSwgWy03NC4wMTY5MDI2NzM2MTA2OSwgNDAuNjY0ODQ2NjAyMzM4ODddLCBbLTc0LjAxOTMzOTQ2ODcxNzc3LCA0MC42NzE2MjQ5NDg0MjI2MV0sIFstNzQuMDE3NTEwMzcwODY2OTQsIDQwLjY3MTAzNDUzMDk4NDFdLCBbLTc0LjAxNjQ4NjY1NTU0NDk3LCA0MC42NjQ5MzA1MDg5NTM4MV0sIFstNzQuMDEyMjc5Njc4NzI3OTIsIDQwLjY2NTczMjQxNDE1ODg1XSwgWy03NC4wMTAzMzg0NTk0NzkzNywgNDAuNjY5MDc4MTk1NDQ4MDFdLCBbLTc0LjAxMTYyNTI3NTIxMzU2LCA0MC42NzA1ODEwMjgyNzU4M10sIFstNzQuMDE0MjQ5MjY5MzE4NzUsIDQwLjY2OTcyODYwNDczNzExXSwgWy03NC4wMTE3NTM1MDUwOTY5OSwgNDAuNjcwNjU3NzU3NTc4MzNdLCBbLTc0LjAxNTE5OTgwNTcwMDcsIDQwLjY3MDc1NDAyNzY2NDNdLCBbLTc0LjAxNDIzMjg5NDUyNzgyLCA0MC42NzIxMzAwMDA1MTNdLCBbLTc0LjAxNTY4NjI1NDk3NTE1LCA0MC42NzEwMzg4MzQ5Mjg3OTRdLCBbLTc0LjAxMjk3NTg3NzkyMTksIDQwLjY3MzMyNzkxODcyMDkyXSwgWy03NC4wMTYzMjA5OTkyMjMwNywgNDAuNjcyOTA4MjY5NTYzNjldLCBbLTc0LjAxNDk2MzkyMTg0NTc2LCA0MC42NzQ2Nzc2MzAyOTQxOV0sIFstNzQuMDE4ODAwOTQ3NzY5MiwgNDAuNjcyMjUwNzY0ODQ4N10sIFstNzQuMDE3MjcxMzg0NzAxMjcsIDQwLjY3MzYwODY0NTgwNTVdLCBbLTc0LjAxODg4MTAxMzc4NjE5LCA0MC42NzUwOTI0ODA2NjE3XSwgWy03NC4wMTc5MTE5ODIyNjE4NCwgNDAuNjc2NTEwNDYyODAxOTNdLCBbLTc0LjAxOTk1MTk3ODY0Njc3LCA0MC42NzcxMDMwMTA0NDk5Nl0sIFstNzQuMDE4MjUyNjcwMDQ1NjMsIDQwLjY3ODU1Mjg4NjcyNTg5XSwgWy03NC4wMTkyODEyODEwMjAzMywgNDAuNjc5NjQ4MTQwNTk1MzZdLCBbLTc0LjAxMjgyMDAwMzMyODQ3LCA0MC42ODM2MjI0MTY0OTczMzZdLCBbLTc0LjAxNDEwNTQ5NjQ3OTc2LCA0MC42ODE3MTI1MTkzNzU0NF0sIFstNzQuMDEzMDE4MzU0MjIxMDUsIDQwLjY4MDQxMjM3NDAxNDI4XSwgWy03NC4wMDk2NzEwODU1ODg4MywgNDAuNjgzMjY4NzI3NzE1MDFdLCBbLTc0LjAxMTkzMjU5OTExMDYsIDQwLjY4Mzg4Nzc0OTE1NDk1XSwgWy03NC4wMDU4ODIyNDE4MzIzMiwgNDAuNjg2MTk1NzY4ODkzNThdLCBbLTc0LjAwMjk3NTY1NDM2NTY3LCA0MC42OTA0MjY1NzU5MjA2NzVdLCBbLTc0LjAwMDk2MTU2ODU0OTQsIDQwLjY5MDEyODc2ODM1MDA3XSwgWy03NC4wMDE3NDM2MjA0NTAxMywgNDAuNjkyNDA2NzQ5NzA1NDZdLCBbLTczLjk5NDU2OTc4OTUwODkyLCA0MC43MDQzNzYyNjM1MTM4OF0sIFstNzMuOTc4MzQ0NzQ4NTI4NzEsIDQwLjcwNTk5OTk2NDk4NzU3Nl0sIFstNzMuOTc3NTEyMTU0OTQ5NjQsIDQwLjcwMzE5Njc1MjY2MzQ1XSwgWy03My45NzU5NjA5NjM0NDgzNywgNDAuNzA0NzE1NTA2NDQwNTNdLCBbLTczLjk3NjkyNzQ5MTg4MzUyLCA0MC43MDI3OTc4MjA0MDAzN10sIFstNzMuOTc0NTUwMjMzODgzNSwgNDAuNzAxNTkwMzQ0MzA0NzZdLCBbLTczLjk3NTcyMTE0NzI4OTY5LCA0MC42OTk1NjcyMTcyNTUyN10sIFstNzMuOTc0MTE1MTM5OTI1MjIsIDQwLjcwMTMwNTI3MTQxOTQ0XSwgWy03My45NzIzOTIwMTM5NzQ1OCwgNDAuNzAwMTY2MzIyNzUyMjQ2XSwgWy03My45NzMxODY3NjY3MDg5OCwgNDAuNzAxNjY5ODAzNjczNjVdLCBbLTczLjk3MDc4MjAwNTg3OTg4LCA0MC42OTk5Nzg2NjMwMTEyNF0sIFstNzMuOTcyODM1MTI3ODg3MzUsIDQwLjcwMjcyODc0MDc0MzkzXSwgWy03My45Njk0ODY1NTIxODA4NCwgNDAuNzAwNTE5MDYxMjU4MTJdLCBbLTczLjk3MjgzODg5OTc0OTU1LCA0MC43MDMzNDY0Mjg2MDE4NV0sIFstNzMuOTY4OTg1MTc0Mjg5NjYsIDQwLjcwMTc0NzA4ODc4NjUzXSwgWy03My45NzQ2NTU2OTYwODA0LCA0MC43MDYwNzQyNjI5OTQxOV0sIFstNzMuOTcyNTQ4ODAwNTc4MTgsIDQwLjcwNjIwNDQ5MDAwMzc0XSwgWy03My45NzQ2Mjk2NjYwNDQyMiwgNDAuNzA3NjgxMDYwNzY4MjE2XSwgWy03My45NzEwOTY1NTQ4OTEwOCwgNDAuNzA1ODUwMDU2NTU4MTg0XSwgWy03My45NzIzMjAzMjEzOTgyNCwgNDAuNzA5MDgyODgzMzA0MTldLCBbLTczLjk3MDE4MDc1NTcyOCwgNDAuNzA0OTI5MjcwNTY2ODJdLCBbLTczLjk2NzUxNTE2NjkxMDkxLCA0MC43MDM0MzczNTY4NzgwN10sIFstNzMuOTY5Mjk2OTM4Mzc3MTMsIDQwLjcwNTA4ODMzMTIyOTY1XSwgWy03My45NzAwODgyOTUzOTcxOSwgNDAuNzEwNDcyMzIyNzY3ODNdLCBbLTczLjk2NzI2Nzk4MzU2MDQ1LCA0MC43MTY5ODU3NDA5NTU1OV0sIFstNzMuOTYyMTE0NjE1NjY4MzYsIDQwLjcyNTE0ODA2MzM5ODg4XSwgWy03My45NTc5NDE4MzQ4OTQ5NywgNDAuNzI0NjQ5MjAyNjk5ODldLCBbLTczLjk2MTYxNTE4ODM1OTM2LCA0MC43MjU4NjU1NjMwNzQwMV0sIFstNzMuOTYyMjg1MjAyMzY5MjcsIDQwLjczNDA0NzY5NTg3NjY2XSwgWy03My45NTgzNzUwNzkwMjc4NSwgNDAuNzM4MDk2OTQ5MzY4NjhdLCBbLTczLjk1NDM5NTU1NDE3MDg3LCA0MC43MzkxMTQ3NzI1MjI0OF1dXV0sICJ0eXBlIjogIk11bHRpUG9seWdvbiJ9LCAiaWQiOiAiMCIsICJwcm9wZXJ0aWVzIjogeyJoaWdobGlnaHQiOiB7fSwgInN0eWxlIjogeyJmaWxsQ29sb3IiOiAib3JhbmdlIn19LCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9CiAgICAgICAgICAgIAogICAgICAgICAgICApLmFkZFRvKG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCk7CiAgICAgICAgZ2VvX2pzb25fYTExYTNlYzZkYTYzNGEzYjhmMGY5MGMxMzc1ZDI5MzQuc2V0U3R5bGUoZnVuY3Rpb24oZmVhdHVyZSkge3JldHVybiBmZWF0dXJlLnByb3BlcnRpZXMuc3R5bGU7fSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRkYjE0YTg4MjZmNDQ2Zjc5MDJkNWExMWY1NjZhZjI0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjAwNjA4YjIzNDMxNDg1YjgxOTIzMDY2NTkyZTUxYjUgPSAkKCc8ZGl2IGlkPSJodG1sXzIwMDYwOGIyMzQzMTQ4NWI4MTkyMzA2NjU5MmU1MWI1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ccm9va2x5bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGRiMTRhODgyNmY0NDZmNzkwMmQ1YTExZjU2NmFmMjQuc2V0Q29udGVudChodG1sXzIwMDYwOGIyMzQzMTQ4NWI4MTkyMzA2NjU5MmU1MWI1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBnZW9fanNvbl9hMTFhM2VjNmRhNjM0YTNiOGYwZjkwYzEzNzVkMjkzNC5iaW5kUG9wdXAocG9wdXBfNGRiMTRhODgyNmY0NDZmNzkwMmQ1YTExZjU2NmFmMjQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgCiAgICAgICAgdmFyIGdlb19qc29uX2RiMjJiMDFmZjQyMjRiMDE4YmVkMjY5MzVhMjIyODg3ID0gTC5nZW9Kc29uKAogICAgICAgICAgICB7ImJib3giOiBbLTc0LjA0NzcyOTYyNjk3MDM4LCA0MC42ODI5MTY5NDU0NDUxMiwgLTczLjkwNjY1MDk5NTM5NDc4LCA0MC44NzkwMzgwNDczMDcyMl0sICJmZWF0dXJlcyI6IFt7ImJib3giOiBbLTc0LjA0NzcyOTYyNjk3MDM4LCA0MC42ODI5MTY5NDU0NDUxMiwgLTczLjkwNjY1MDk5NTM5NDc4LCA0MC44NzkwMzgwNDczMDcyMl0sICJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbW1tbLTc0LjAxMDkyODQxMjY4MDMxLCA0MC42ODQ0OTE0NzI1NDI5M10sIFstNzQuMDEyMTc1OTY2MTQ2MzYsIDQwLjY4NDA5NTE4NTYyODQ3XSwgWy03NC4wMDgxNjQxNDU5MzkxLCA0MC42ODYxNzQ3MTcxNjE0N10sIFstNzQuMDA4NjAwNzI0MzY4MzIsIDQwLjY4NTkwOTU2NDY1NDc4XSwgWy03NC4wMTA5Mjg0MTI2ODAzMSwgNDAuNjg0NDkxNDcyNTQyOTNdXV0sIFtbWy03NC4wMDUwMDM3MzMxNTA3NiwgNDAuNjg3NjA1OTg1NDAwODVdLCBbLTc0LjAwNTYyOTg2MzMwMzk1LCA0MC42ODY3ODQyMDU1NDEwM10sIFstNzQuMDA3ODMyOTM3NjY2ODMsIDQwLjY4NzM4NTA1NTE2MjcxNF0sIFstNzQuMDA3NDIwMTIxNTQwOTksIDQwLjY4ODIwNjI5MDQzNTg5XSwgWy03NC4wMDUwMDM3MzMxNTA3NiwgNDAuNjg3NjA1OTg1NDAwODVdXV0sIFtbWy03NC4wMDM4MjAzODkxOTczNCwgNDAuNjg4OTI5NjQ0Njk5MjldLCBbLTc0LjAwNDU5MjcwNTIxNzcyLCA0MC42ODgyMTUyMjI5ODY1N10sIFstNzQuMDA2Nzg0Mzg0Mzk4MSwgNDAuNjg4ODI2ODc5OTU4MjVdLCBbLTc0LjAwNjM2NDYxMjI1MjY4LCA0MC42ODk2Njk2Njg2MzY5Nl0sIFstNzQuMDAzODIwMzg5MTk3MzQsIDQwLjY4ODkyOTY0NDY5OTI5XV1dLCBbW1stNzQuMDAyOTc1NjU0MzY1NjcsIDQwLjY5MDQyNjU3NTkyMDY3NV0sIFstNzQuMDAzNDA5MjE2MjQ1MTksIDQwLjY4OTYxMzI2MDY1NzUyNF0sIFstNzQuMDA1NzU5MDA2NzAzNDQsIDQwLjY5MDIzNjQwMDAxNjE4XSwgWy03NC4wMDUzNDIwOTYyNDkxNSwgNDAuNjkxMDkxNjAyOTc3ODVdLCBbLTc0LjAwMjk3NTY1NDM2NTY3LCA0MC42OTA0MjY1NzU5MjA2NzVdXV0sIFtbWy03NC4wNDM4Nzc2MTU3Mzk1LCA0MC42OTAxODc2NzYzNzY2M10sIFstNzQuMDQzNTA1OTYwMTI1NCwgNDAuNjg5Njg3MzU5NjM2MzQ1XSwgWy03NC4wNDI3MDQyODQyNjc2NiwgNDAuNjkwMTU1MjA0NjQ0MjldLCBbLTc0LjA0MjU1MzcyMDM3MzA4LCA0MC42ODk5NjI3NTkyODk1OV0sIFstNzQuMDQ0Mzg1MjE3MTEyNTYsIDQwLjY4ODUxNjE3ODQwMjkzNV0sIFstNzQuMDQ3NzI5NjI2OTcwMzgsIDQwLjY4OTkxNTMxODQ2NjI5XSwgWy03NC4wNDYxNDcwNzIwODY2NywgNDAuNjkxMTIyNjQ2MDMzMTY1XSwgWy03NC4wNDM4Nzc2MTU3Mzk1LCA0MC42OTAxODc2NzYzNzY2M11dXSwgW1tbLTc0LjAwMTMyNTYyMzk5ODEzLCA0MC42OTE0NjMxMDAzMzIwNl0sIFstNzQuMDAwNjk5MDU4NDE4NzksIDQwLjY5MDYxMTg1NzkxNjQ1XSwgWy03NC4wMDQ3OTQxNTI5NDU1MiwgNDAuNjkxNzYxNjIwMzc0MzldLCBbLTc0LjAwNDQwOTQxMjU5OTc3LCA0MC42OTI1Mjg4MDAzODkzMDRdLCBbLTc0LjAwMTMyNTYyMzk5ODEzLCA0MC42OTE0NjMxMDAzMzIwNl1dXSwgW1tbLTc0LjAxNjc0NzU2MDk2MDcsIDQwLjY5MzM0MzM2ODIxNzU3Nl0sIFstNzQuMDExODExODU2NDcyMzYsIDQwLjY5MjQ3OTMzNTA2NDM0XSwgWy03NC4wMTMzMzI2NDE0OTYwOCwgNDAuNjkyMDE5OTcwMTAyMzRdLCBbLTc0LjAxMTgyNTc1MzU0OTc0LCA0MC42OTEwNjQ4MTYyMTYxMzRdLCBbLTc0LjAxMzE2OTI2NDAyNzY0LCA0MC42ODgxNTQ3NzEyMDMxNl0sIFstNzQuMDIyNTkzNTk1ODEwNDIsIDQwLjY4NDM1OTY5NTk0OTkxXSwgWy03NC4wMjIxMzI1MDE4Njg4MiwgNDAuNjgzNzY3NjcyMzg1MjJdLCBbLTc0LjAyMzA1NTc0NzQ5NTk1LCA0MC42ODI5MTY5NDU0NDUxMl0sIFstNzQuMDIyNzU4OTkwMjk5NjEsIDQwLjY4NDI4NDQ0ODMzMjIzXSwgWy03NC4wMjYzMzQwNDI0MjQxMSwgNDAuNjg0ODAxNjk3NzI0MTRdLCBbLTc0LjAxOTczMzA4MTk3MTY4LCA0MC42OTMxMTQxMDc0OTMzNF0sIFstNzQuMDE2NzQ3NTYwOTYwNywgNDAuNjkzMzQzMzY4MjE3NTc2XV1dLCBbW1stNzQuMDAxNTQxNzI5MjAyNTcsIDQwLjY5Mjc4NTk2Mjc1MDEyXSwgWy03NC4wMDE3NDM2MjA0NTAxMywgNDAuNjkyNDA2NzQ5NzA1NDZdLCBbLTc0LjAwNDAwNzk1OTcxMDk4LCA0MC42OTMyMDgxOTk2MzIzNjZdLCBbLTc0LjAwMzQ1MzQ4NDkwNjI1LCA0MC42OTQwNTE2MzA2NzEzNF0sIFstNzQuMDAxNTQxNzI5MjAyNTcsIDQwLjY5Mjc4NTk2Mjc1MDEyXV1dLCBbW1stNzQuMDAwNzgyOTUyNzU2NzUsIDQwLjY5NDI4NjUxNTY2NDU5NF0sIFstNzQuMDAwOTU4Njg0MTY5OSwgNDAuNjk0MDY5MDgzNTgyMTldLCBbLTc0LjAwMzAxMzkzODI5MDgzLCA0MC42OTQ3Nzc4NDQ0NzkxMzRdLCBbLTc0LjAwMjM5ODAyNTgzNzk1LCA0MC42OTU3MTE2NTQ4NjQ0OF0sIFstNzQuMDAwNzgyOTUyNzU2NzUsIDQwLjY5NDI4NjUxNTY2NDU5NF1dXSwgW1tbLTc0LjAwMDQzMTQ3MzQwNDMzLCA0MC42OTcwNTI0NjYxNzg1MjZdLCBbLTczLjk5OTU5MzMzNTE1MjEsIDQwLjY5Njc4MjI2MTQ3NDM3NV0sIFstNzMuOTk5NDA3MzgzNzY5MjUsIDQwLjY5Njg4NTE4OTQ0NjAxNF0sIFstNzMuOTk5NTIzNzM5MDM1MTUsIDQwLjY5NjU3NDgyNjA0MDg0XSwgWy03NC4wMDA0MzE0NzM0MDQzMywgNDAuNjk3MDUyNDY2MTc4NTI2XV1dLCBbW1stNzMuOTk4Mzc3NjA2ODU3NzMsIDQwLjY5ODA2MzI5NTY0MzQ5XSwgWy03My45OTg4NzExNzA5NzY1NiwgNDAuNjk3MTU3NTc3Mjk1ODA1XSwgWy03NC4wMDEwNDkwMzA1NzUyNSwgNDAuNjk3OTA4MjM2Njk3MzldLCBbLTc0LjAwMDQ4NzY4NTYyNTE3LCA0MC42OTg3NTc3Nzc2MzQ1Ml0sIFstNzMuOTk4Mzc3NjA2ODU3NzMsIDQwLjY5ODA2MzI5NTY0MzQ5XV1dLCBbW1stNzMuOTk3OTk5NTc1NDAxMzQsIDQwLjY5ODc5NzY4NTU0NDI3XSwgWy03My45OTgwMjEwMjcyNTExMywgNDAuNjk4NzYxNzM2NTczNzddLCBbLTc0LjAwMDAxODQwNDMzNjIsIDQwLjY5OTQ2NjA0ODA3MzYyXSwgWy03My45OTk0NzQ2MzgzODkyNiwgNDAuNzAwMzIyNzc4MDE4MzA0XSwgWy03My45OTc5OTk1NzU0MDEzNCwgNDAuNjk4Nzk3Njg1NTQ0MjddXV0sIFtbWy03NC4wMzk5NTA0MDc4ODUxNCwgNDAuNzAwODkwNjMwNjQyNzA0XSwgWy03NC4wMzc3MTEyNDc5NjYzNiwgNDAuNjk5MzQ0MDQwMzQ3NzJdLCBbLTc0LjAzOTM0MDM3NjcwMTUsIDQwLjY5ODExNTUxNDgzNTk2XSwgWy03NC4wNDEyNDI2MTgzMjIyMiwgNDAuNjk5NTM2NzQxNDM0ODZdLCBbLTc0LjAzOTkxMjQ4ODcyNjI0LCA0MC42OTc3MDIwNDAzOTgzNzZdLCBbLTc0LjA0MTY2MDUxOTE0ODQyLCA0MC42OTY0NTI5NzE2Mzk3NF0sIFstNzQuMDQzNjczNzEyMzA3NzgsIDQwLjY5ODAyMDQwNDMzMDA3XSwgWy03NC4wMzk5NTA0MDc4ODUxNCwgNDAuNzAwODkwNjMwNjQyNzA0XV1dLCBbW1stNzMuOTk1Mzg0NDgzODI2NTEsIDQwLjcwMjY0MzAxMDA2NTgyXSwgWy03My45OTY2OTc2ODk5NzQ2NCwgNDAuNzAwODc2OTc2OTE3MDQ0XSwgWy03My45OTgxMzg3OTg5OTQ1NSwgNDAuNzAxNTE4Nzg4MjQ4MzddLCBbLTczLjk5NjE5MjI3MjI4NzMzLCA0MC43MDMzNzcxNDA4NjQxMl0sIFstNzMuOTk1Mzg0NDgzODI2NTEsIDQwLjcwMjY0MzAxMDA2NTgyXV1dLCBbW1stNzMuOTk1MDIxMzQ2NDkxNzcsIDQwLjcwMzE0Nzg2OTI0NjczXSwgWy03My45OTU0NDU2NDMxMjA2OSwgNDAuNzAzMjc1MzA1NDcxNzU2XSwgWy03My45OTUyOTM0NjcwMDkzMywgNDAuNzAzNTU0MDY1ODk3OTc2XSwgWy03My45OTQ4MDAzODI3NDg2OSwgNDAuNzAzMjkxOTU4MTQxOThdLCBbLTczLjk5NTAyMTM0NjQ5MTc3LCA0MC43MDMxNDc4NjkyNDY3M11dXSwgW1tbLTczLjk5NDc2OTM0MTkxNTY3LCA0MC43MDM5NTI4OTQ5NTM1NV0sIFstNzMuOTk0ODgyMzk5MDI0MzUsIDQwLjcwMzc4ODAyNTgzNzM4XSwgWy03My45OTUwMjkyNTkxNjQ0NywgNDAuNzAzODA4MjAwODY3OTldLCBbLTczLjk5NDg4MjA0NzI2NDEsIDQwLjcwNDAwODY1Mzg5NTE1XSwgWy03My45OTQ3NjkzNDE5MTU2NywgNDAuNzAzOTUyODk0OTUzNTVdXV0sIFtbWy03My45ODIzNzM0MDUwNTk2NSwgNDAuNzA1NTQzMzUwNDM3NDk1XSwgWy03My45ODI0MjI4NzE3OTg2MywgNDAuNzA1ODIyMDU1OTU0NTNdLCBbLTczLjk4MTAyMzkwNjE4MjgsIDQwLjcwNTg5ODkxMzg5MzUzNV0sIFstNzMuOTgyMzAyMDUxODM4OCwgNDAuNzA1NzM2OTc5Mzk5NjJdLCBbLTczLjk4MjM3MzQwNTA1OTY1LCA0MC43MDU1NDMzNTA0Mzc0OTVdXV0sIFtbWy03My45NjcxNTEwMTE3MjYwNywgNDAuNzE4MzE2MTI1OTMyNDFdLCBbLTczLjk2NjU2MjQxODk3NDk2LCA0MC43MTgwMTU4NjY4MDYyMjZdLCBbLTczLjk2NzMwNzQxNDc0NDE2LCA0MC43MTgzMTMwNjY2ODE1N10sIFstNzMuOTY3MTgyNDM2MzEyNDEsIDQwLjcxODQ4MzA1NjMwMTU2XSwgWy03My45NjcxNTEwMTE3MjYwNywgNDAuNzE4MzE2MTI1OTMyNDFdXV0sIFtbWy03My45NjYzNjUwMzMwNTI4MiwgNDAuNzE5MDU2MzMwNzg0MTM0XSwgWy03My45NjU4NTg0NzE3NTE3NywgNDAuNzE4NzczMjI4MzQ2NDVdLCBbLTczLjk2NjYyOTkzMzYwOTA3LCA0MC43MTkxMzI0Mjc4NjA4OF0sIFstNzMuOTY2MzY1MDMzMDUyODIsIDQwLjcxOTA1NjMzMDc4NDEzNF1dXSwgW1tbLTczLjk2NDM1MDkwNjQwMTUyLCA0MC43MjA0MDQwMzIzNzE4OF0sIFstNzMuOTY0Mzk3NjU5MTU5NDcsIDQwLjcyMDI5NjczNTAyOTE3XSwgWy03My45NjQ2ODI4MzY0MTI4LCA0MC43MjA0NzA0NTczNTk5M10sIFstNzMuOTY0NTkzMTM5NjQ3NjYsIDQwLjcyMDU0NDg0NDIxMTQ5Nl0sIFstNzMuOTY0MzUwOTA2NDAxNTIsIDQwLjcyMDQwNDAzMjM3MTg4XV1dLCBbW1stNzMuOTYzOTk3OTM3MjQ0NjMsIDQwLjcyMDkzODQzODA3MjczXSwgWy03My45NjQwODc2OTE0Nzg2OCwgNDAuNzIwNzU1NTI5NTIyMjE1XSwgWy03My45NjUwNDkxNDU0OTM2OCwgNDAuNzIxMzU3MzQ0MjUxNzZdLCBbLTczLjk2NDg5NDIyMDMxOTEsIDQwLjcyMTQ3NTEyMDg4MjAyXSwgWy03My45NjM5OTc5MzcyNDQ2MywgNDAuNzIwOTM4NDM4MDcyNzNdXV0sIFtbWy03My45NjIzNjU5Njg4OTQzOSwgNDAuNzI0MjA5MDYxNjE0MjI1XSwgWy03My45NjIwMDc0NDc5OTAxNSwgNDAuNzIzOTkxOTAxNjA3NzU0XSwgWy03My45NjIwNzI3MTk0Mzg4NSwgNDAuNzIzODgwMzAwNDAyOTNdLCBbLTczLjk2MjQ2NzkwMDExMDU4LCA0MC43MjQxMzE1Nzk2MDEyM10sIFstNzMuOTYyMzY1OTY4ODk0MzksIDQwLjcyNDIwOTA2MTYxNDIyNV1dXSwgW1tbLTczLjk2MjMwMzkxODcwNTU2LCA0MC43MzMxMTM2NjA5ODIxOF0sIFstNzMuOTYyMjYzNDA0MjMyOTYsIDQwLjczMjkxNTU1MTYyMzQ4XSwgWy03My45NjQwOTMyMTAxNzE2LCA0MC43MzI5MzE5NjE0NDIzM10sIFstNzMuOTYzNjU2MTE2NTIyNjMsIDQwLjczMzAwMjE3MTIxOTY1XSwgWy03My45NjIzMDM5MTg3MDU1NiwgNDAuNzMzMTEzNjYwOTgyMThdXV0sIFtbWy03My45NjEyNDY5ODAxMTUxOCwgNDAuNzQwNDIzNTk3MTE1MzNdLCBbLTczLjk2MTI2Mjg3NDEwNzE5LCA0MC43NDAzMjA1MDc0MTc0NjVdLCBbLTczLjk2MTY0MTYzOTc5MDQ3LCA0MC43NDAzNTYxMTI5MjQ0MV0sIFstNzMuOTYxNjI5ODI1NjM4NDEsIDQwLjc0MDQ1ODkyOTQ1NzQ5Nl0sIFstNzMuOTYxMjQ2OTgwMTE1MTgsIDQwLjc0MDQyMzU5NzExNTMzXV1dLCBbW1stNzMuOTY0MjEyMzAzOTU2NzcsIDQwLjc0NjYwNDMxODQ3NjY0XSwgWy03My45NjQ0NDUyMjc1MjYyNCwgNDAuNzQ2NDEwNDI1NzYzMTddLCBbLTczLjk2NDU4MzE4NDI2OTQ3LCA0MC43NDY0NTQ0MDA2NzMzMV0sIFstNzMuOTY0MTU5ODAyODg0MzEsIDQwLjc0Njg2NTU0NzM1OTUzXSwgWy03My45NjQyMTIzMDM5NTY3NywgNDAuNzQ2NjA0MzE4NDc2NjRdXV0sIFtbWy03My45NDE4MDAzMjcyOTQyNiwgNDAuNzY5MDQ2OTI2NjI0NjldLCBbLTczLjk1MzIyMDA5OTYzMTM0LCA0MC43NTY0MjY4NDIzMjAyNF0sIFstNzMuOTYxNTM4NTU0NjQ0NzMsIDQwLjc0OTcyMzExOTg0MDQ3NV0sIFstNzMuOTQ0NzI0Nzg0OTc0NTcsIDQwLjc2OTc4NjI3MTUzNDgyXSwgWy03My45NDAwNzY2NTc1MTY1NCwgNDAuNzcyOTI2MTg2MzU3OTM1XSwgWy03My45NDE4MDAzMjcyOTQyNiwgNDAuNzY5MDQ2OTI2NjI0NjldXV0sIFtbWy03My45MzgwNDY0MDYwMzQzOSwgNDAuNzgwODI5NTQ0Mjc1NTA1XSwgWy03My45Mzc1OTg5NDYyMjYyMywgNDAuNzgwNDY3ODQwODYxNDRdLCBbLTczLjkzOTU4Mzc4OTcyNDc2LCA0MC43Nzk1NzY0NzQwMDcxMl0sIFstNzMuOTM4NzQ0MjMwODkyNzUsIDQwLjc4MTA0Mzg3NjA0MjIyXSwgWy03My45MzgwNDY0MDYwMzQzOSwgNDAuNzgwODI5NTQ0Mjc1NTA1XV1dLCBbW1stNzMuOTIxMzM3NTI0MTkyODEsIDQwLjgwMDg1MjEwNzUwMjE3XSwgWy03My45MTQ0MzgyNzIzMzMxNCwgNDAuNzk1NjY1NTE3ODYzODNdLCBbLTczLjkxNTE0MTM0NDI2MTEsIDQwLjc5MjAxMjQ4Mjk5NDg1Nl0sIFstNzMuOTI0NDgwNTIyODA0MjUsIDQwLjc4MjMyMDQ5MDY0NThdLCBbLTczLjkyODEwMTE4OTg3MzM5LCA0MC43ODA5MjAzMjAwNDIxMTRdLCBbLTczLjkzNTAyMzQ1MTM0NTEyLCA0MC43ODMwMDYzODIwMjg3OV0sIFstNzMuOTM1NzEyNjU5OTc2OTcsIDQwLjc4NTY4MDQ4OTQ5MjUzXSwgWy03My45MzI0MDE0NTUxMzY5MywgNDAuNzg5NzIwMjkwMTcwMTNdLCBbLTczLjkyOTcyNDAwNzgxOTE1LCA0MC43OTEzNjYxNzgzNDMwMDRdLCBbLTczLjkyODA3MjczNTc1NjYsIDQwLjc5MDgyMzM5MTI4MzAxXSwgWy03My45MjYxMDQxMDE4NjY0MSwgNDAuNzkwNzMxNjA3NjE5ODldLCBbLTczLjkyNTU4NzI5ODc5NjIyLCA0MC43OTE4MjA4MzA5MDY5M10sIFstNzMuOTI3ODY4ODkyNDEwODQsIDQwLjc5MDk1NDgzODYzNDM4NF0sIFstNzMuOTI4MjY3MjAyOTYxNTYsIDQwLjc5MjMyODUyMzk0ODE2NF0sIFstNzMuOTI3MjQ3NzA3ODkyODIsIDQwLjgwMDM5Mjk1NzM2ODk0XSwgWy03My45MjUyNzUyMTAyMDEyNSwgNDAuODAxOTk4NTIyNzQzMzFdLCBbLTczLjkyMTMzNzUyNDE5MjgxLCA0MC44MDA4NTIxMDc1MDIxN11dXSwgW1tbLTczLjkyOTM2NDgwMzQ1MzksIDQwLjgwMjk1NDU0NzI5ODUyNl0sIFstNzMuOTI5NTE1Mjg5Mzc0ODIsIDQwLjgwMjk2ODkzNDQ2OTM1XSwgWy03My45Mjk2OTU0MDY5NDI2NiwgNDAuODAzNDI3MjEzNDEzNTg1XSwgWy03My45Mjk1Njg0NjkyNzI2NCwgNDAuODAzMzgxMzkxMjcwODNdLCBbLTczLjkyOTM2NDgwMzQ1MzksIDQwLjgwMjk1NDU0NzI5ODUyNl1dXSwgW1tbLTczLjkyODI5NzY4Njc3MTI5LCA0MC44MDM0OTUwMzc2Nzk5NF0sIFstNzMuOTI4NDUyNDA1MzYxNDcsIDQwLjgwMzUxMTU3NDE5MTYzXSwgWy03My45Mjg2MzAxNjcxNDI4NywgNDAuODAzOTY4NDIzMzEwNDNdLCBbLTczLjkyODUwMzY5NzUwNTY5LCA0MC44MDM5MjQzODU5MzU4NDRdLCBbLTczLjkyODI5NzY4Njc3MTI5LCA0MC44MDM0OTUwMzc2Nzk5NF1dXSwgW1tbLTczLjkyNjQwNTU2OTIxMTE2LCA0MC44Nzc2MjE0NzY1MzczMzVdLCBbLTczLjkyMjM5NzY4MTY5MzE3LCA0MC44NzY3ODAyMjMxNDEyXSwgWy03My45MjEyNTU0MTA3OTg2MiwgNDAuODczMDgyNDQ4ODI1MDFdLCBbLTczLjkxOTc5MzAxNjcyMzU2LCA0MC44NzM2MDY1MTI2NjAzOV0sIFstNzMuOTIwODc1NTkxOTk2NjksIDQwLjg3NTQ2Mzk1MDAyMzIxXSwgWy03My45MTg0OTk5NTY2MjE5OSwgNDAuODczMTkxNzE1NjAzODNdLCBbLTczLjkxNzU3NzI5ODg0NzMsIDQwLjg3NDU0ODY3ODU0NzE4NV0sIFstNzMuOTEyNTAyNzkyNTkzMjYsIDQwLjg3MzcxOTQxMjM3MDI1XSwgWy03My45MTA0MjY0NDA0ODUwNywgNDAuODcxNDg1NDM4MDYyMDRdLCBbLTczLjkxMjU0Nzc1MTMwMjgyLCA0MC44NjY1MTQ5NDMwMDQzXSwgWy03My45MTU4OTkxMTY0NTg2LCA0MC44NjQzMDgwMzc1ODI0OF0sIFstNzMuOTE1Mzg2NzMwNTExNDMsIDQwLjg2MzA4NDM4NDIwMDY4XSwgWy03My45MTk0Mzg1MzU0MTQ0OSwgNDAuODU4ODU1NDIxMzQzOTldLCBbLTczLjkyMTU5MDE0ODQ4MjI4LCA0MC44NjAwNzI4MDAwMjY4N10sIFstNzMuOTIwMzY0NzcyNDk3NjksIDQwLjg1ODE2NDkzNzA5OTEzXSwgWy03My45MzQ5MTUzMzU3ODY1LCA0MC44MzUyMzA4MjE5Mzg3OF0sIFstNzMuOTM0MzM4NjQ1ODQ3MzksIDQwLjgwOTU2MjIxMzgzMTM1Nl0sIFstNzMuOTI5MDM0OTAyNDAzMSwgNDAuODAxMDgwOTAzODUxODU0XSwgWy03My45MjkyNzkzNjc0MTE3MSwgNDAuNzk1ODUzMTM5NTIwNTldLCBbLTczLjk0MzIzOTg1NzM5NzUxLCA0MC43ODMzMjc4NTE2OTQzNF0sIFstNzMuOTQyOTMwNDM3ODEzOTcsIDQwLjc3NDY3NjI2ODAzNTc5XSwgWy03My45NzEzNTc1Mjk0MTg2OCwgNDAuNzQzODM4NDU1MzU5NDRdLCBbLTczLjk3MjQ4OTk0MTc0NzQxLCA0MC43MzU4MDMyODAxMDc2XSwgWy03My45NzQ1MTQ1OTc3MjU5OSwgNDAuNzM1ODk0NTk4NDExMjNdLCBbLTczLjk3Mjc2MzA4MzgwMzUzLCA0MC43MzU1MDUwODc0NzM1NF0sIFstNzMuOTc0NDQwNjUwODI1OTMsIDQwLjczNTMxNjc3MTkwMDU0XSwgWy03My45NzE0OTAzOTA5MjgzMiwgNDAuNzI3MzUwMDk4MTA5ODk1XSwgWy03My45NzY3MTIyMTUzOTY2OSwgNDAuNzExNTM1NzY1MTc4MzVdLCBbLTczLjk4MTI0NTc5NTY5OTQ2LCA0MC43MDk4MjYyMTQ2MDEyMl0sIFstNzMuOTk4MDgzNTExODY5OTksIDQwLjcwODUwOTYxNTM2NzEzXSwgWy03NC4wMDExODY4NTI2MjgzLCA0MC43MDY4NTk4MjU3NzE3Nl0sIFstNzQuMDAxNDM2NjExNzk0MDIsIDQwLjcwNDg3MjE3NzcwNTIyXSwgWy03NC4wMDMzMjMwNzI3MDc4NywgNDAuNzA1NjI4NTk1MjIwMDRdLCBbLTc0LjAwNDU5MDAzODgzNjc0LCA0MC43MDQ3ODc3NTI5NDQ5OV0sIFstNzQuMDAzNDk2MzIwNDIzMjUsIDQwLjcwMzc5Njc2OTI2NzY4XSwgWy03NC4wMDUzNTAyNzIyNDc1NSwgNDAuNzA0MzEwMDc5OTYxNTJdLCBbLTc0LjAwNDI3MjU4NzUyMSwgNDAuNzAzMDE1NjY2NDExNDc0XSwgWy03NC4wMDU2NjMzMDY0MDY1OSwgNDAuNzA0MTA0MjQ0NDc4MjE2XSwgWy03NC4wMDU0OTQyNzgwNTEwNSwgNDAuNzAyNDMxMzgxOTU1NTddLCBbLTc0LjAwNjc4NTAyMTkxMDUyLCA0MC43MDM1NjgxMjc5MDUyNF0sIFstNzQuMDA5MzA5MDc2NTU0ODMsIDQwLjcwMTk1NDYwMzAyMjU1XSwgWy03NC4wMDc3NTU0OTE1MDY0LCA0MC43MDE1NDgwMDE2NzE3N10sIFstNzQuMDA4MzQ5Mjc1NTkxLCA0MC43MDA2NjkzNDgzODgyXSwgWy03NC4wMDk2MDA1MjI2MzI4OCwgNDAuNzAxODY1NDgxOTE3ODNdLCBbLTc0LjAxMTE2NjY0MTUxODg3LCA0MC43MDE0NzcyMDIyMDgzMV0sIFstNzQuMDEwODE1MzA2NjczNzgsIDQwLjcwMDIwMDQ0NDYwMzcxNl0sIFstNzQuMDE1MDY4MTgyNjkzMDQsIDQwLjcwMDMxODI1NzU1NDkxXSwgWy03NC4wMTkzNDI1NDYyNDQ5LCA0MC43MDYwOTM2NzMwMjk2NV0sIFstNzQuMDE3NzcwMTQyNTQ1MDUsIDQwLjcxMjgzNDU3NDc4OTEwNl0sIFstNzQuMDE2NjI0MjQ0MjUyOTEsIDQwLjcxMjE1NzMxODk5NTI3XSwgWy03NC4wMTYzMjAwNjYyNzU4MSwgNDAuNzEzNDA3OTgyNDc4MjRdLCBbLTc0LjAxNzcyNDk2MjE5Mjk2LCA0MC43MTMwNzAxODE2MjI3MV0sIFstNzQuMDE2NzEwMTg2MDU4MjMsIDQwLjcxODYyNDE3NjA1Nzk2NV0sIFstNzQuMDEzMDY4MDU0OTIzMTgsIDQwLjcxODkyMjE5MzgyNTQ3XSwgWy03NC4wMTQ1MjI3ODk5MDAxOCwgNDAuNzIwNTMyMDUwMzI3ODJdLCBbLTc0LjAxMjk2NTU4NTI2ODI1LCA0MC43MjAzMjg2NzU1ODcxMl0sIFstNzQuMDExNjUzMjY1Njk5NDQsIDQwLjcyNTg3MTc2MTg1MTM0XSwgWy03NC4wMTUyMDQyNjUzMTE0MywgNDAuNzI2MzYxOTQ5Mzc5NTZdLCBbLTc0LjAxMTU0MjAxODk3NjA2LCA0MC43MjY0NDczNDY5MjcwN10sIFstNzQuMDExMzgzMjM2MDQ3NTYsIDQwLjcyODIyOTI3MjM2NzE2XSwgWy03NC4wMTQzOTA2OTkzMjM4OCwgNDAuNzI4NDYzMDQ3NTIwMTE1XSwgWy03NC4wMTQwMzc5NjkyNDgsIDQwLjczMDY5NDIxODg0Mzg3XSwgWy03NC4wMTExNjE5NTY5NjQ3NiwgNDAuNzMwNDUwNjc2MzQ5MDNdLCBbLTc0LjAxMDk0MTI3Mzc0MTMyLCA0MC43MzMwMjAzMTMzNDEyNl0sIFstNzQuMDEzOTk5NTcyNDA5NjYsIDQwLjczMzMzMjI3NzUxNzddLCBbLTc0LjAxMDczNDI0NDUwMjA5LCA0MC43MzM0NDI1ODc5Mzc5Nl0sIFstNzQuMDEyMDE3OTIwMTA0NzQsIDQwLjczNDA2Mzc0NDQ1NjMxXSwgWy03NC4wMTA4MTM1OTQ3OTExLCA0MC43MzQyODM0NDM2NDc1NTZdLCBbLTc0LjAxMDM5MzAzMTM0NTU2LCA0MC43MzkxNzQyOTYwNTkxN10sIFstNzQuMDEyNjU5MjgyMDg0OSwgNDAuNzQwNzQ3NjM4NDk3NDJdLCBbLTc0LjAwOTQ5MTU0NjIxMjgzLCA0MC43NDA3NDI3MDk0Mzk3N10sIFstNzQuMDEyMTE3NDU4NzIxMzksIDQwLjc0MTc1ODUxNjIxMTU2XSwgWy03NC4wMDk1MTk0NzE0NTAwOSwgNDAuNzQxNDkwMzAyMTk4NTddLCBbLTc0LjAwOTA5MTU2ODQ2MjAxLCA0MC43NDI4ODYxNDk1NzQ5NF0sIFstNzQuMDEyMTQ4MTMxODM1OTQsIDQwLjc0MzU1OTMwMTU0NzUxXSwgWy03NC4wMDg5MDAzMjk2Mjg0MiwgNDAuNzQzOTE3OTI3MDk1OTldLCBbLTc0LjAxMTc4Mjc1ODI4MDkyLCA0MC43NDU2MDE1NzIyNTUzN10sIFstNzQuMDA5NDYzODk4NTU5NzIsIDQwLjc0NTc1MDE0MzY1OTQyXSwgWy03NC4wMTE1OTEyMzQzNDAyMiwgNDAuNzQ2NjAxNTA1NDc1OTVdLCBbLTc0LjAwOTI0MzE0NjU4Njc3LCA0MC43NDY3NjI3OTA3NTM3Ml0sIFstNzQuMDExNDA2NzM5MzU1MjgsIDQwLjc0NzYzMDU1MDU3MDZdLCBbLTc0LjAwOTA1ODQ3OTAxMzQ1LCA0MC43NDc3ODU2NDUzMzI4MDRdLCBbLTc0LjAxMTIxNTYxODEzNDE2LCA0MC43NDg2Nzc5OTIyNDM1MzZdLCBbLTc0LjAwODQyNjM2NDQ3MjI2LCA0MC43NTIxNTc4NTAyMzkyNV0sIFstNzQuMDA5OTkwNTU4MTk3NTIsIDQwLjc1MjgxNjE4NzE0OTA2NV0sIFstNzQuMDA5OTcwNTg3OTcwMjMsIDQwLjc1MjkzMzU2NDE1MzE0Nl0sIFstNzQuMDA4MzUzNTI4Mzg4NDQsIDQwLjc1MjM1MDczOTM0MjI4XSwgWy03NC4wMDQ4MDM5MjU2MDE4NSwgNDAuNzU3ODA5ODQzMTY0NjldLCBbLTc0LjAwNzAwMzU4OTA0MDE1LCA0MC43NTkyMzE4NzAzNDEwN10sIFstNzQuMDAzODA2NTc4MzUwMDgsIDQwLjc1OTUxMDczMTQ2NTk4XSwgWy03NC4wMDIzMzUyODEzMDA1NywgNDAuNzYxNTQzNzI3MDAxNjFdLCBbLTc0LjAwNDU1NjQxNTYwOTIyLCA0MC43NjI1MjQyNjUwMjUwMzZdLCBbLTc0LjAwMTUzMzA5MDY2OTgyLCA0MC43NjI2NDQ1OTgxMjc1OF0sIFstNzQuMDAzNjEyMTQ3OTQxNzUsIDQwLjc2Mzc3NzA0MzkwOTcxXSwgWy03NC4wMDA5NzMwODAyMjAxOCwgNDAuNzYzNDIwMjcxNzI1NjZdLCBbLTc0LjAwMzE0NjUyOTY3MzY2LCA0MC43NjQ3MzYyODEzOTE4XSwgWy03My45OTk2MjI2MzQ1ODE4NywgNDAuNzYzNTU5MDgxMjEwNDQ1XSwgWy03NC4wMDIyODgwMjM3MTQ4MywgNDAuNzY1NTYxNTQ0Mjk3NzVdLCBbLTczLjk5ODI3MDkwMzA4MzUsIDQwLjc2NTU1MjIzMzQxMzI0XSwgWy03NC4wMDE1NjE4MDU3NTQ4LCA0MC43NjY5OTY0OTkzNjgyOF0sIFstNzMuOTk4MDY2NzU5MDUzNTQsIDQwLjc2NTg3MTg4MTEzNTY4XSwgWy03My45OTczNzgwODQ0Nzk2NSwgNDAuNzY2ODIzMzg2Mzc5NTNdLCBbLTc0LjAwMDY0OTUwNTMwNDE4LCA0MC43NjgyNDUyMzYxMDU1Nl0sIFstNzMuOTk3MTU1ODg5NDkyMTIsIDQwLjc2NzEyODY5NjE3Mjc4XSwgWy03My45OTY0NTcxNTQwNTA0MiwgNDAuNzY4MDk4ODE1Nzk1NjNdLCBbLTczLjk5OTczNTkwMjQ3ODUzLCA0MC43Njk1MDYxNzczMzE1MTVdLCBbLTczLjk5NzA3MTc2MDM5MzExLCA0MC43Njg3MzI2NDM1NzY4NF0sIFstNzMuOTk5MDI2ODI4MzI5MDQsIDQwLjc3MDQ2MzI3Mjk4MjA1Nl0sIFstNzMuOTk2MzEzMjcwMjIwODcsIDQwLjc2OTc5ODgzNjMzNjQyXSwgWy03My45OTQ5MzUwMTY1OTAwNiwgNDAuNzcxNDY4MTQ2NTc3OTY2XSwgWy03My45OTY2ODU0NDQzMTE2NywgNDAuNzczNTAzNjg4MDQ2MjU0XSwgWy03My45OTQxNjMyODQ1NjMsIDQwLjc3MjQ4NzE5MTUyMzg0NF0sIFstNzMuOTk2MTc5NDU5OTczNzksIDQwLjc3Mzk4Njk1NDM1MTUxXSwgWy03My45OTM5MzY5NDE4MjIxMSwgNDAuNzczMTc5NTEwOTY2ODldLCBbLTczLjk5MjI2NzA4OTAzNTQxLCA0MC43NzUxMTYwMzM4NTg1NDVdLCBbLTczLjk4ODg2ODYxNzQwMDAzLCA0MC43Nzk2OTI5MjI5MTE0XSwgWy03My45OTE1NTEwNTkyMjc0LCA0MC43Nzk1NzQ4MjE0MzczNF0sIFstNzMuOTg4ODg2MTQ0MTE2OTYsIDQwLjc3OTg3ODg5ODUzMjcxXSwgWy03My45ODU0NjU4MTE5NzAyNywgNDAuNzg1MzYwNzAwNTc1NDQ1XSwgWy03My45ODcxMTkwMTM5NDI1NiwgNDAuNzg1MjEwMzE5MDA0MDddLCBbLTczLjk4NTQyOTMyMTI2OTQyLCA0MC43ODU0MTM5NDIxODQ2MjZdLCBbLTczLjk4NDY1NTA3ODgzMDIzLCA0MC43ODY1MzQ3NDE4MDc5Nl0sIFstNzMuOTg1OTQ5NTYxNTU2NTgsIDQwLjc4NjQ4NzExMzk2NjQ5NF0sIFstNzMuOTU4ODE4OTIyMzM5OTcsIDQwLjgyMTUxODUyNDg0Njc0XSwgWy03My45NTk2MDMzMjQ2MDI4LCA0MC44MjI5OTQ2ODY3ODMzMl0sIFstNzMuOTU4MjAwMTkzNTQwMTQsIDQwLjgyMjI4MzEzNjkxODFdLCBbLTczLjk1OTU1NTc1NDkzODYzLCA0MC44MjM2OTM3OTc3Njg3N10sIFstNzMuOTUxMzE2NDExMTksIDQwLjgzMjQ1MDUxMTk3MDYxXSwgWy03My45NDYxMjQxNjQyMTc3MiwgNDAuODQzODkyNDk2NTU3MTJdLCBbLTczLjk0Njk2NDQxNzU5NTk1LCA0MC44NTA0NjU1MjU4MTgxOF0sIFstNzMuOTQxODY5OTY0MjY2NzMsIDQwLjg1Mzg2NzczOTQ0Mjc5XSwgWy03My45MzI0MjUzODIxNTM0MSwgNDAuODY3NTY4MjQ4NDIzNjQ1XSwgWy03My45Mjk5NzY4Njc0MzE0OCwgNDAuODc0MzM4OTYyMzMwMzZdLCBbLTczLjkyNjQwNTU2OTIxMTE2LCA0MC44Nzc2MjE0NzY1MzczMzVdXV0sIFtbWy03My45MjM1OTc0MjAyMDM4OSwgNDAuODc4ODk4NzEyOTkyNjJdLCBbLTczLjkyMzYzNjk1Mjg5MjI0LCA0MC44Nzg4MTUzNTU5MzIwNzZdLCBbLTczLjkyMzY3OTE5MzExNjgxLCA0MC44Nzg4MjYwNzQ0OTg2Ml0sIFstNzMuOTIzNjI5NzM5NTA0MTQsIDQwLjg3ODk2Mzk0MzI0MzI2NF0sIFstNzMuOTIzNTk3NDIwMjAzODksIDQwLjg3ODg5ODcxMjk5MjYyXV1dLCBbW1stNzMuOTA2NjUwOTk1Mzk0NzgsIDQwLjg3NTc1MjUwNDE5MjZdLCBbLTczLjkwODkzMjM1MjQxNTg5LCA0MC44NzIxNTczNDc5NzA2MTRdLCBbLTczLjkxNTc4NTE1NTcxODk2LCA0MC44NzU3MTY5NDUwNjQzMDVdLCBbLTczLjkxMDMzMTkzNTY2NDIzLCA0MC44NzkwMzgwNDczMDcyMl0sIFstNzMuOTA2NjUwOTk1Mzk0NzgsIDQwLjg3NTc1MjUwNDE5MjZdXV1dLCAidHlwZSI6ICJNdWx0aVBvbHlnb24ifSwgImlkIjogIjAiLCAicHJvcGVydGllcyI6IHsiaGlnaGxpZ2h0Ijoge30sICJzdHlsZSI6IHsiZmlsbENvbG9yIjogIm9yYW5nZSJ9fSwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifQogICAgICAgICAgICAKICAgICAgICAgICAgKS5hZGRUbyhtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQpOwogICAgICAgIGdlb19qc29uX2RiMjJiMDFmZjQyMjRiMDE4YmVkMjY5MzVhMjIyODg3LnNldFN0eWxlKGZ1bmN0aW9uKGZlYXR1cmUpIHtyZXR1cm4gZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlO30pOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZmQwMTQ2ZTZhMDE0NTlkODhkY2Y5ZmFkNGQ2N2E4ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc1YWE5YTU5NWQ4MDRkZjFhZDdmMTBhN2ZmYzIxMzkzID0gJCgnPGRpdiBpZD0iaHRtbF83NWFhOWE1OTVkODA0ZGYxYWQ3ZjEwYTdmZmMyMTM5MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFuaGF0dGFuPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wZmQwMTQ2ZTZhMDE0NTlkODhkY2Y5ZmFkNGQ2N2E4ZS5zZXRDb250ZW50KGh0bWxfNzVhYTlhNTk1ZDgwNGRmMWFkN2YxMGE3ZmZjMjEzOTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGdlb19qc29uX2RiMjJiMDFmZjQyMjRiMDE4YmVkMjY5MzVhMjIyODg3LmJpbmRQb3B1cChwb3B1cF8wZmQwMTQ2ZTZhMDE0NTlkODhkY2Y5ZmFkNGQ2N2E4ZSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAKICAgICAgICB2YXIgZ2VvX2pzb25fNDYzM2NjZDhhYmRmNDgyNmI4OTM0YzkwNGJlNTdlNzIgPSBMLmdlb0pzb24oCiAgICAgICAgICAgIHsiYmJveCI6IFstNzMuOTMzMTQzMDY3MDkyNjIsIDQwLjc4NTM1NjYyMDUwODQ0NSwgLTczLjc2NTMzMjQzOTk1MjkxLCA0MC45MTU1MzI3NzYwMDAwN10sICJmZWF0dXJlcyI6IFt7ImJib3giOiBbLTczLjkzMzE0MzA2NzA5MjYyLCA0MC43ODUzNTY2MjA1MDg0NDUsIC03My43NjUzMzI0Mzk5NTI5MSwgNDAuOTE1NTMyNzc2MDAwMDddLCAiZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1tbWy03My44OTY4MDg4MzIyMzc3NCwgNDAuNzk1ODA4NDQ1MTU5NzddLCBbLTczLjg5Nzk2ODM5NzgzNzQyLCA0MC43OTU2NDQ4MzkxNjE5OV0sIFstNzMuODk5MTk0MzQyNDk5ODMsIDQwLjc5NjUwMjQ1NjAxODIxXSwgWy03My44OTc4ODI1MzI0MDE4NSwgNDAuNzk3MTE2NTMyMTQ3MDNdLCBbLTczLjg5NjgwODgzMjIzNzc0LCA0MC43OTU4MDg0NDUxNTk3N11dXSwgW1tbLTczLjg4ODg1MTQ4NDk2MzM1LCA0MC43OTg3MDYzMjg5NTg3NDRdLCBbLTczLjg4NjY1MTA4NTI0NTksIDQwLjc5ODAzODE5NjY5OTg4NV0sIFstNzMuODgzNzU3NDE1OTAxNiwgNDAuNzk1NzA4NTY1NDE5NzhdLCBbLTczLjg3Mjg4NDU3NDQ1NjY2LCA0MC43OTE0NTIxMDgyMDcxMjVdLCBbLTczLjg3MDgwODg4NjMzNTU3LCA0MC43ODc4OTY2OTE2ODM3N10sIFstNzMuODczMDg3NjE2ODg5MzUsIDQwLjc4NTg1NDk1Mjc4MzM3NF0sIFstNzMuODc4MzA2ODAwNTc2NSwgNDAuNzg1MzU2NjIwNTA4NDQ1XSwgWy03My44ODkwNTIxMjQ0MzE5NywgNDAuNzg3MzcyNTYwMjU4MDZdLCBbLTczLjg5MjgyMjgzNjEwOTM2LCA0MC43OTI4MTcwODE5NTE0Ml0sIFstNzMuODkxNzkyODk2ODY1OCwgNDAuNzk2Nzc1MjQ1NzU4NjRdLCBbLTczLjg4ODg1MTQ4NDk2MzM1LCA0MC43OTg3MDYzMjg5NTg3NDRdXV0sIFtbWy03My44OTgzMzAzNjI3MDU1NiwgNDAuODAyNDEyODIwOTQwMDFdLCBbLTczLjg5NjQ2NjY4ODM0NTcxLCA0MC44MDA3OTA0NzA4OTEzXSwgWy03My45MDAyMTAwNDk5MzE0NywgNDAuNzk5MjY0MTU1ODk1OTddLCBbLTczLjkwMDAzNzM1ODE1NzQyLCA0MC44MDA5MDg3NDIwNTAxNzZdLCBbLTczLjg5ODMzMDM2MjcwNTU2LCA0MC44MDI0MTI4MjA5NDAwMV1dXSwgW1tbLTczLjc4ODMzMzQ5ODM0NTMyLCA0MC44MzQ2NjcxMjk3NTkzMjVdLCBbLTczLjc4OTMxMjIzNjA2NjI0LCA0MC44MzQ0NjQ4ODY1NTM0M10sIFstNzMuNzg5NTEwMTk4NzIzMTYsIDQwLjgzNTM2NDA0MjUyNTcxXSwgWy03My43ODg0NTcwMDAxNTIxNSwgNDAuODM1MzA5OTE0MzE1MzldLCBbLTczLjc4ODMzMzQ5ODM0NTMyLCA0MC44MzQ2NjcxMjk3NTkzMjVdXV0sIFtbWy03My44MDIyMjI5NTM1NTI2NCwgNDAuODQxNjM0ODEzMTQ0MDhdLCBbLTczLjgwMjYzODExMTU2MTUyLCA0MC44NDEwODExNTMyNjcwN10sIFstNzMuODA2OTQ2MDg2NDE1OTksIDQwLjg0MTQ2MjQ0NzE4NjM0XSwgWy03My44MDY4MDgwMTM3MjM5MSwgNDAuODQyNDg5MTM5OTg3NTFdLCBbLTczLjgwMjIyMjk1MzU1MjY0LCA0MC44NDE2MzQ4MTMxNDQwOF1dXSwgW1tbLTczLjc4MDYxNzMwODI5NzI0LCA0MC44NTU3MzUxNzU4MTAwMV0sIFstNzMuNzgwOTA0NzY4NTEyOTEsIDQwLjg1NDk2ODEzMzE2MjIxXSwgWy03My43ODE1NjM4OTY5OTk0LCA0MC44NTUwMDEyODY0MzM4MV0sIFstNzMuNzgxMjI3ODIzMzIwMTgsIDQwLjg1NjA4Nzc4OTE2MjczXSwgWy03My43ODA2MTczMDgyOTcyNCwgNDAuODU1NzM1MTc1ODEwMDFdXV0sIFtbWy03My43ODI4MzI5MTQ0Nzg2OSwgNDAuODU1ODcwMzA4NDQ1NzRdLCBbLTczLjc4MzAyMzcxNTIyNDk5LCA0MC44NTUwOTI3NjY2NjQ5XSwgWy03My43ODM5NDY5OTcyMjAxMSwgNDAuODU1NjMwNDM3NTI2NjFdLCBbLTczLjc4MzQzNDg3NTAxMzg1LCA0MC44NTYzNjI4NjU5NTg3OV0sIFstNzMuNzgyODMyOTE0NDc4NjksIDQwLjg1NTg3MDMwODQ0NTc0XV1dLCBbW1stNzMuNzkwMTg3NDUxOTUwMDUsIDQwLjg1ODYwOTkxNzM4NjE2XSwgWy03My43ODgwNDM0Mjk3NTgsIDQwLjg1NzU1OTkxNzY4NzExXSwgWy03My43ODg0NzczMjY1MzM2MiwgNDAuODU0NDAwNTIwNTMyMTddLCBbLTczLjc4NjkwNzM0NzAyNjk3LCA0MC44NTQwNjM5NzIyOTkxNl0sIFstNzMuNzg3OTYyNjQyODgwNzMsIDQwLjg1MzQ3NDcyMDkzNTU0XSwgWy03My43ODMzODE1ODYxMDM5NCwgNDAuODUxNTg2NzMzOTE0MzRdLCBbLTczLjc4NDIwMDQ3MTM0Mzg4LCA0MC44NTAwNjA2NDQyNDA2MV0sIFstNzMuNzgxNTQ0NDkwODg2LCA0MC44NDk0MDA0MzQ2NDMyOV0sIFstNzMuNzgyNjc0NjcwNzg3MTcsIDQwLjg0ODEzOTY3Mjk0NjU1XSwgWy03My43ODA5NzgyMDkzODk1NiwgNDAuODQ4NDU4MzQ3OTEzNTNdLCBbLTczLjc4MjYzNzQwMzk3ODk0LCA0MC44NDgwNzI2NDkyNDU3ODZdLCBbLTczLjc4MTQ4NDMxOTUwNTYyLCA0MC44NDc4ODIxOTM4NDg2MjZdLCBbLTczLjc4MjE2MzkzNDM1NTgxLCA0MC44NDY2MzYzMzc3ODA4MTVdLCBbLTczLjc4MDQwMzI2OTU4NTk1LCA0MC44NDY5MzExMzQxNjYwOF0sIFstNzMuNzgzMzY1MzYxMzUzNDYsIDQwLjg0NDQ0NDcyMjk4MTY4NF0sIFstNzMuNzgzNDg0Mjg3NDg4MTgsIDQwLjg0MzY3ODU0NTk5ODQyXSwgWy03My43ODI5MDY1MDk0OTc2NSwgNDAuODQzOTM2MTI1ODQwMDhdLCBbLTczLjc4MDUyNzM2MDQ4NTQ2LCA0MC44NDQ1MjUxNDAzMzgxNTZdLCBbLTczLjc3OTkyNzAzNzQ0NDM4LCA0MC44NDM4ODMwODEzNTU4M10sIFstNzMuNzgzNDc0ODEyNDkyNTQsIDQwLjg0MzY1NDczODEwOTcwNl0sIFstNzMuNzgyODg3NzgzMDE0ODYsIDQwLjg0MjQ5NDgyODg0OTYyXSwgWy03My43ODAyMjc3Mzg3MjY4MSwgNDAuODQzNzc4MTgxMjk3NjldLCBbLTczLjc4Mjg2NDk5MzA0OTE5LCA0MC44NDI0NzgxMDE4ODI2OF0sIFstNzMuNzgwNTk3MzU4MjI1OTUsIDQwLjg0Mjc4NjU5OTk0MDk1XSwgWy03My43ODIxNjYyNDQxODk2NCwgNDAuODQxNjg5MTQ0MTEwMDg0XSwgWy03My43ODA0MjU3NzE4MTUzMywgNDAuODQyNDk0Mzk0MjA2ODJdLCBbLTczLjc4MDE5NTk5OTU1Mjg3LCA0MC44NDIwNDYyMTA5NzYxNF0sIFstNzMuNzgxODUwNDgxOTc3ODMsIDQwLjg0MTY1Mzk0NjM5NDI3NF0sIFstNzMuNzgwNzk3NTI5MjM0NTksIDQwLjg0MTI1NjE0NjA0ODM2Nl0sIFstNzMuNzgyODIyNjAxMzk3MzgsIDQwLjgzNjMzODE1NTg4Nzg3XSwgWy03My43ODQ4NTAwOTIyMjY2NSwgNDAuODM3NDcwNDg5MTc4NDg2XSwgWy03My43ODU2Mzk5Nzg0NTQ1MywgNDAuODM3MDY0NDM0NTg1MzE1XSwgWy03My43ODU4MzA2Nzk2NDEyNCwgNDAuODM3MjA5OTgwMDA0NV0sIFstNzMuNzg1NzM1MDkyOTg2OTEsIDQwLjgzOTIzNDIzMTc3NTgwNV0sIFstNzMuNzg4MTU5MjExNjY1MTYsIDQwLjg0MDQ5MDc3ODU2NzAzXSwgWy03My43OTE3OTM0MzYyNTQ1NSwgNDAuODQ2NzMxNjcyMzI5MjhdLCBbLTczLjc4OTUxMzcxNTE2MTY5LCA0MC44NTEzMDA3NzE3MTMxMl0sIFstNzMuNzkzMTE4MzcxODM4MzcsIDQwLjg1MTU3ODI5NTI0MDc5XSwgWy03My43OTA0MjA1Mzc4MDE3MSwgNDAuODUzMDIyOTc4MjEyNV0sIFstNzMuNzkyODE1MTE5NjY5MywgNDAuODUyNDk0ODE5MzA4ODVdLCBbLTczLjc5MDgwNzU4NzI5OTI4LCA0MC44NTMxOTkwNjAwNjQyNTZdLCBbLTczLjc5Mjg3NjEwMDQ4NTg4LCA0MC44NTI5NDQxODEzMjg0MjVdLCBbLTczLjc5MTA1NzIxMjU0ODMxLCA0MC44NTM5MTg0MTI0MjY2NF0sIFstNzMuNzkyNDU4MTY4NDQ4MTIsIDQwLjg1MzYwMDcwODc1NDg5XSwgWy03My43OTEwNzAwMjc2NTk1MywgNDAuODUzOTQ0OTU2NjY0NjJdLCBbLTczLjc5MjUzNzE0NjA0ODY3LCA0MC44NTM4NDkzMjc4MTI4OTVdLCBbLTczLjc5MTI5MjgyMTYwNjQ4LCA0MC44NTQ1ODQwMjU5NzY4XSwgWy03My43OTIwMTcxMjIyODUyNywgNDAuODU2MTc2OTQ4NjA2MjU0XSwgWy03My43OTI3MDUyMzk4NTEzNywgNDAuODU2MTkyMzI4OTA1N10sIFstNzMuNzkyNjg3NjgyMjI2NTYsIDQwLjg1NjMzNTIxODcyMDMzXSwgWy03My43OTMxNTcwMDI5NjE1NiwgNDAuODU2MzUwOTExMDc0NzU2XSwgWy03My43OTMxNDY4NjA4NTk3LCA0MC44NTY0Njc4Mjg0NzExMDRdLCBbLTczLjc5MDE4NzQ1MTk1MDA1LCA0MC44NTg2MDk5MTczODYxNl1dXSwgW1tbLTczLjc2NzgzMjA1NjM3MTY3LCA0MC44NTQ0NDIyMDU3NDIwMV0sIFstNzMuNzY5Mzg1MjkxMzk2OTksIDQwLjg1MjUzNjEzMzk5Njc4Nl0sIFstNzMuNzY5NTk2NzQzMTE0NywgNDAuODQ3NTk0NTE5MDk4MTk1XSwgWy03My43Njc4OTQ5MjY3MjY1MywgNDAuODQ1Mjg5NDMzNTE5Nl0sIFstNzMuNzY5MDEzODkxODExMjQsIDQwLjg0NTA5NzM0MjcyMTgzNl0sIFstNzMuNzcxNTcyMTg4MzMyNDMsIDQwLjg0NzUwMDA1ODU4MDM0NF0sIFstNzMuNzcwODg5MjAyMjExNzgsIDQwLjg0OTc1MTc3MTMzOF0sIFstNzMuNzcyOTYzNTY2MTEyODksIDQwLjg1MjE1OTI1Mzk1ODU1NF0sIFstNzMuNzcxNzMwNjA0MTE5MSwgNDAuODUyNDc2ODMxMzE5MDldLCBbLTczLjc3Mjk2Mjg1MzM0ODczLCA0MC44NTM4MDAwNjIyNDY0NV0sIFstNzMuNzcyMTkyMjMwNTU0MjMsIDQwLjg1OTk4NjYzODU5NjkzXSwgWy03My43Njk0NzMwNTQyNDAxNCwgNDAuODU5MzMwMTM2NjY4NTRdLCBbLTczLjc2NTMzMjQzOTk1MjkxLCA0MC44NTUwNDM1OTUxMjQ4NTVdLCBbLTczLjc2NzgzMjA1NjM3MTY3LCA0MC44NTQ0NDIyMDU3NDIwMV1dXSwgW1tbLTczLjc4NDUyNDMxOTM3OTY3LCA0MC44NjA0NzcwNjMxNDc4MDVdLCBbLTczLjc4NTE5NjY0Mzg3MTIzLCA0MC44NTg4MjcwMjM2Mzc0XSwgWy03My43ODc0MzE4NjE5NDE4MSwgNDAuODU4OTM1MjQ1NjE0NDVdLCBbLTczLjc4Njg1ODg2NzczMzAzLCA0MC44NjAwNDUwNTc4Mzk1MzVdLCBbLTczLjc4NDUyNDMxOTM3OTY3LCA0MC44NjA0NzcwNjMxNDc4MDVdXV0sIFtbWy03My43NzI5MDIzMTk5MjQ0NCwgNDAuODYxMjA4NTgzMjc4NDVdLCBbLTczLjc3MzIzMTUwMTg5NDA3LCA0MC44NjA3NDcxNjk1ODY5NF0sIFstNzMuNzczNTEyNjQxNjU2ODgsIDQwLjg2MTI0MTE4NDA4NzA0XSwgWy03My43NzMxMDYzMjkyMTkzNywgNDAuODYxNjE0NTc1MDMyODFdLCBbLTczLjc3MjkwMjMxOTkyNDQ0LCA0MC44NjEyMDg1ODMyNzg0NV1dXSwgW1tbLTczLjc3NDYwMTU2MzUwOTM1LCA0MC44NjIwNjkwNDc0NTk3Ml0sIFstNzMuNzc0OTQzMjExNTU3NSwgNDAuODYxMzkxNDk5ODg5NDldLCBbLTczLjc3NTI5Mjk3OTU1MTMxLCA0MC44NjEyMzIwMDgyMTU4Nl0sIFstNzMuNzc0ODU2ODE2MjQ3NDgsIDQwLjg2MTk4MzYzNDMzNDI5NF0sIFstNzMuNzc0NjAxNTYzNTA5MzUsIDQwLjg2MjA2OTA0NzQ1OTcyXV1dLCBbW1stNzMuNzgzMTI1ODk1OTQ0NzYsIDQwLjg2Mjg1NjE2NzMwMDYzNV0sIFstNzMuNzgyODgxOTc4MzExODUsIDQwLjg2MjQwNjQzMzA5MTI2XSwgWy03My43ODMxNDUwNDI4ODE0MiwgNDAuODYyMDY4Njc4OTA1NThdLCBbLTczLjc4MzI4MDUzNTA1OTMzLCA0MC44NjI3ODA3MDY3MTI0ODVdLCBbLTczLjc4MzEyNTg5NTk0NDc2LCA0MC44NjI4NTYxNjczMDA2MzVdXV0sIFtbWy03My43ODQwMTI0OTEzODkwMywgNDAuODYzMTMxOTk0MDc0MzZdLCBbLTczLjc4Mzc2NzcwMzQ4OTksIDQwLjg2MjYxMDYwODQ2NDMzXSwgWy03My43ODQ2OTE2NTg1MDcwOSwgNDAuODYyNTQyNzg5OTA4MTddLCBbLTczLjc4NDI4NjUwNTAwMDcsIDQwLjg2MzIwNTA4ODc4MDUyXSwgWy03My43ODQwMTI0OTEzODkwMywgNDAuODYzMTMxOTk0MDc0MzZdXV0sIFtbWy03My43Njk2NDk4ODYyNzEsIDQwLjg2NTQ4NTU3MjQyNDQyNl0sIFstNzMuNzY5NzkxNDgyNjA1MDMsIDQwLjg2NTEyODIzMzU2NDM4XSwgWy03My43NzAyMjkzMTYzMDI3NSwgNDAuODY1MTM4OTM5Mzk2MDZdLCBbLTczLjc3MDA2ODk3Mjk5ODE3LCA0MC44NjU1MjU4NzYxODMzNl0sIFstNzMuNzY5NjQ5ODg2MjcxLCA0MC44NjU0ODU1NzI0MjQ0MjZdXV0sIFtbWy03My43NjY2ODk2NTg0MTkzLCA0MC44NjcwOTc3ODE2MjQ1M10sIFstNzMuNzY3MDk5MDc0Mzk3OTUsIDQwLjg2NjcwNDU3Mjc0ODE1XSwgWy03My43Njc3OTQ0OTM4MjAxOCwgNDAuODY2NzgxMTczNzY1MzddLCBbLTczLjc2NzYwMDcyMDk2NDk5LCA0MC44Njc0OTYzODY1NDE0MjZdLCBbLTczLjc2NjY4OTY1ODQxOTMsIDQwLjg2NzA5Nzc4MTYyNDUzXV1dLCBbW1stNzMuNzcwODA5NzUzOTgyLCA0MC44NzE1NDk5NDY4NDc4ODVdLCBbLTczLjc2OTkwNzEwNjY4NTU0LCA0MC44NzA0NzY5NDQ0NzAyNF0sIFstNzMuNzcyODgwNDI2NjUyNCwgNDAuODcxMjQ1MjYzNDMwMjU0XSwgWy03My43NzIxNzc4NjQ5MjI4OCwgNDAuODcxOTgxMTEwNjg5MzA1XSwgWy03My43NzA4MDk3NTM5ODIsIDQwLjg3MTU0OTk0Njg0Nzg4NV1dXSwgW1tbLTczLjc4NjQ4NTEwNTQ2NTksIDQwLjg3MzIwOTI1NDk1MDM2XSwgWy03My43ODY3MjY4OTA5NTM3MiwgNDAuODczMDc0NTM5MjY1NjRdLCBbLTczLjc4NjI2MjAyMTUzNDI3LCA0MC44NzMzOTM2ODY2MzM5Nl0sIFstNzMuNzg2MzI4Njk0ODg5OTUsIDQwLjg3MzI3MTE0NDU1NDEyNF0sIFstNzMuNzg2NDg1MTA1NDY1OSwgNDAuODczMjA5MjU0OTUwMzZdXV0sIFtbWy03My43ODYwNTM5NDk2NDkwOSwgNDAuODczNzgyNjQ2MTkyOF0sIFstNzMuNzg2MTg5MjQzNTg2NDIsIDQwLjg3MzU5OTcyNzY5OTcxXSwgWy03My43ODYzMzMyNTk5NjcxLCA0MC44NzM2Nzc3MjQ4ODc0NV0sIFstNzMuNzg2MTk0NjM3MTY0NzQsIDQwLjg3Mzg4NTMxOTQxNDY2XSwgWy03My43ODYwNTM5NDk2NDkwOSwgNDAuODczNzgyNjQ2MTkyOF1dXSwgW1tbLTczLjc3NDM1MjQ0NjQ1MjM0LCA0MC44NzQxNjk5NTU4NzQ4NF0sIFstNzMuNzc0NTM2NDA1MTA5NiwgNDAuODc0NzEwMDE1NDM4MzJdLCBbLTczLjc3NDA5NTM4MjkyMTMyLCA0MC44NzQ4OTYxODQ0ODAxMzZdLCBbLTczLjc3NDAzMTgxNTM0NDQyLCA0MC44NzQzOTQ3NzQ5NTYyXSwgWy03My43NzQzNTI0NDY0NTIzNCwgNDAuODc0MTY5OTU1ODc0ODRdXV0sIFtbWy03My43ODI0MTgxMTg2NTMxNywgNDAuODc0OTIzMjcwNDIxNzVdLCBbLTczLjc4MjY1Nzg1MzYwOTA1LCA0MC44NzQ3OTI2NTY2OTQwMl0sIFstNzMuNzgyODAyMDc1MTA0MSwgNDAuODc0OTQ4ODY2MjA1MzJdLCBbLTczLjc4MjQ3NjA0MTI1NTI1LCA0MC44NzUxNjgxMzMzNzg4NF0sIFstNzMuNzgyNDE4MTE4NjUzMTcsIDQwLjg3NDkyMzI3MDQyMTc1XV1dLCBbW1stNzMuNzgxMDMzNTExMDQ5NTQsIDQwLjg3NjQ4NDAwMjA0NzcwNF0sIFstNzMuNzgxMjA2NDk2NDkzODcsIDQwLjg3NjI4NTAyNTQ2MDEzXSwgWy03My43ODEzMjcwNDExODAwOCwgNDAuODc2MzYxMzI2NTQ2MzY2XSwgWy03My43ODExMjc2NzQ3ODE2NywgNDAuODc2NjUyNjgwNTA4MTNdLCBbLTczLjc4MTAzMzUxMTA0OTU0LCA0MC44NzY0ODQwMDIwNDc3MDRdXV0sIFtbWy03My43ODY1MDU1NDA0OTcyNywgNDAuODgwOTQwMTM0NDc5MThdLCBbLTczLjc4NTc4MDAyNjExMjc1LCA0MC44ODAzNjM5NjI2NjEzNl0sIFstNzMuNzg3NDIwMzkzODQ0MTQsIDQwLjg3OTc3MDg5MDI4OTkwNV0sIFstNzMuNzg3MTI3ODM0NjUxOTUsIDQwLjg4MDkyMzQ2MzE3MTIxXSwgWy03My43ODY1MDU1NDA0OTcyNywgNDAuODgwOTQwMTM0NDc5MThdXV0sIFtbWy03My44NzI5NDg2MDQxOTA5NywgNDAuOTA0NDQxMDIyNjY4OTc2XSwgWy03My44NTk0Njc3ODc2Njg5NiwgNDAuOTAwNTE3MjA5NzcwMjVdLCBbLTczLjg1OTU3ODgzMDE0NDk3LCA0MC45MDI0NDA4NDI3NzIxOF0sIFstNzMuODU2MDEwMjMzODkyNjksIDQwLjkwNTMwNTk4MzYyNjg4XSwgWy03My44NTY4MTAxMzYzODUzOCwgNDAuOTA2MTU1ODI4MzI1OTldLCBbLTczLjg1Mzc0MTAzNjMwNzYxLCA0MC45MDc3ODc5MTY3MzU1NF0sIFstNzMuODU0NTg5NDA1ODgyNDIsIDQwLjkwODkzOTQ5OTI5ODMwNl0sIFstNzMuODUxMDcxMTYxODM3MTgsIDQwLjkxMDM3MTUyMDcyNDQ5Nl0sIFstNzMuODUzNDc1MjIzOTk5NDcsIDQwLjkwNzUzMDI5MzAyNDFdLCBbLTczLjg0MTM4Njg5MzA0NjYsIDQwLjkwNDE3Mjc0MTUzMzk3XSwgWy03My44MzgzOTE5OTE4OTc0NSwgNDAuODk0MDY3MDA4MDQ5XSwgWy03My43OTMwMDY1MjY0OTMzOSwgNDAuODgzMzU4NzM2ODgwMzc1XSwgWy03My43OTc0MzgxNTQ1NzI4NywgNDAuODc1MTM1MzMyOTUzMTE0XSwgWy03My44MDI1MjI4NDc1NjU5NywgNDAuODcwNTA2NjQ0Njk2NzldLCBbLTczLjgwMzM5MTE3NTIzMDg2LCA0MC44NzI1MDUwMzc2MzEwN10sIFstNzMuODA0MzE4NDk0NjgyMjgsIDQwLjg3MTE1OTc0MTA2Nzk3XSwgWy03My44MDMwMjIwMzY4NTI2NSwgNDAuODY5MTU1MTE5Nzk2NDddLCBbLTczLjgwNTg4NDEwMDEyODgyLCA0MC44NjkwNjg1MDIxODQ4OTVdLCBbLTczLjgwODQxNTk2ODE4Nzk5LCA0MC44NzExODk2OTMzNjc1NTVdLCBbLTczLjgwMzA2MDQxNDg0NTUsIDQwLjg2NTgxNTEzMzcwNjc5XSwgWy03My43OTc4MDM3NzIxOTMwOSwgNDAuODcyMjU2MTMyMjczOTFdLCBbLTczLjc5NDc5MDQ0NjgxNjA1LCA0MC44NzMyMDA0ODQwMzM5N10sIFstNzMuNzkyODg5MTA2NzQxMzYsIDQwLjg3OTI2NDA5MjgyMjM0Nl0sIFstNzMuNzg5NTU4NzI5NDQzMDYsIDQwLjg4MTI2MTI4NDkxNTQxXSwgWy03My43ODk1MjMwOTM2ODgsIDQwLjg3ODk5ODEyNzA2MDUwNV0sIFstNzMuNzg0MzgxNjgxMDc1NjcsIDQwLjg3ODQyMDUzMTY3MDQxXSwgWy03My43ODcxOTA4NzU2MDUwNiwgNDAuODcyNzMwNTUzNzI5MTNdLCBbLTczLjc4NTA4MTM5NjU4NjE0LCA0MC44NzM1ODk5NjMyMjU2NzZdLCBbLTczLjc4NTI2MTUyMDc1NzE1LCA0MC44NzE3NDUzMjIzMzIzOF0sIFstNzMuNzgzNTg3Mzg0ODYwNDgsIDQwLjg3Mzc4MDk1NDY4MDI4NV0sIFstNzMuNzgzMjAxNzU0MjYyOTksIDQwLjg3MDY3MDM2MDg1Mzc4XSwgWy03My43ODU2MDI0NTMwNTQ1NCwgNDAuODY4MzQxNjUyMjIzNjddLCBbLTczLjc4Nzk1NDQ2MTQ1NDE2LCA0MC44Njk4NDU0MTkwNjM1OV0sIFstNzMuNzkxMzkwMzI1ODYxMjYsIDQwLjg2ODE0MTMwNzQ2NjA5XSwgWy03My43OTE5MDQ1NDkyNzUxMiwgNDAuODYwODI5NTYyNzExOTldLCBbLTczLjc5NDU0NTYyMzE4MDI2LCA0MC44NTg4ODgyNTkxNjEyMjZdLCBbLTczLjc5NDM1MDA1OTM0MjgzLCA0MC44NTY1MjcwMjM4MDM4MzVdLCBbLTczLjc5ODcyMjU1NjAwMDg3LCA0MC44NTQ5MTQ0MDExNzI1N10sIFstNzMuNzk3ODA1MjI5OTA1OTgsIDQwLjg1MTk0OTU5ODU5NzA1XSwgWy03My44MDAyOTAyNjcxNjAxMSwgNDAuODQ4MTQ0ODU2MzQzNTY2XSwgWy03My44MDQxNzU1NzkzMjQxLCA0MC44NTMzNDAxMjAxODkxMjRdLCBbLTczLjgwNDc4NjQzMDI1MjIsIDQwLjg2MTUzODQ3MzgxODk5Nl0sIFstNzMuODA4MDMzNTkzNDQ5NTUsIDQwLjg2MDE1NzEwMTM0NzExXSwgWy03My44MDc1OTQwOTA2MjA4NCwgNDAuODU4NDgxNzY5Njk2NDI1XSwgWy03My44MTExMDQ1NzE0OTI4LCA0MC44NjI0NjQ0Njg3MzA3NjRdLCBbLTczLjgxMzk1ODU3MzU0NjA1LCA0MC44NjQxMDI3MDQyMTYwNl0sIFstNzMuODE1MTAzMTUzODQxNTUsIDQwLjg2MzA1NzQ2NTM2Nzc0XSwgWy03My44MTY0MTM5MjEwMjcyOCwgNDAuODYxMTgwNjI3NzAzODddLCBbLTczLjgxMjczMTQ2NDk1MDQ2LCA0MC44NTg4Nzc1NDE5NDc3NTZdLCBbLTczLjgxMjMwNjAyNzA4NDE4LCA0MC44NTQxNjIwMjY0NzMyMDVdLCBbLTczLjgxNjQwODcwOTA4MDE4LCA0MC44NTQwODIyNTUxMTQ3MDRdLCBbLTczLjgxNzEyNDA5MDQyMjEzLCA0MC44NTEyNjk1NzM0NDQ3NDZdLCBbLTczLjgxNTEzMTAyODIwNzU2LCA0MC44NDkxNzI1MDM1NTMxOF0sIFstNzMuODE2MTA1Mzc0NzcxNTcsIDQwLjg0NjQ1NDU0NDQzNzQzXSwgWy03My44MTQ2NDU5NDY5NzU0NywgNDAuODQ3MjE5NjEzNTI4OTE0XSwgWy03My44MTU3MDM1MzE4OTQ1NCwgNDAuODQ2MjkxMzQwNDIzNzNdLCBbLTczLjgxMzY4NjM0NzM4MTk5LCA0MC44NDcyNzQzMjU1MDkwNF0sIFstNzMuODEzNTYzNzI4NjE2NzMsIDQwLjg0NzE1MTQxMTI3ODQ3NV0sIFstNzMuODE1MDI2Mjc2MDQzMDEsIDQwLjg0NTQ5OTk5NTA1ODQwNF0sIFstNzMuODEyODQ5Mzk5NTg1MjUsIDQwLjg0NjMxODc5OTQ5ODI3XSwgWy03My44MTMyNDMyNjM1MDkyNCwgNDAuODQ1MjM1OTA4MzUyNTVdLCBbLTczLjgxMzEwMDUwNjI2ODM3LCA0MC44NDUxNzI0MTQ1MzMyOF0sIFstNzMuODEyODc3MDM1OTc1NywgNDAuODQ1MTM0NjY3OTQ1ODVdLCBbLTczLjgxMzE1NTk3MDQ0MjU1LCA0MC44NDUyMTIxMDAzNzYyOV0sIFstNzMuODEyODU1MzY5NTc2MzgsIDQwLjg0NTE4NjI4NTQ2MTM3NF0sIFstNzMuODEyNDE0NDUzMjgxMzUsIDQwLjg0NjU1OTM4MDc0ODc0NF0sIFstNzMuODEyMjc3OTA5MDA1MDUsIDQwLjg0NjU0MzQ1ODI3OTIxNF0sIFstNzMuODEyODU3NzQzMzc5NTUsIDQwLjg0NTEyOTU0NDU4OTA5XSwgWy03My44MTI1NDQ1NzgxNTYxNCwgNDAuODQ0OTc5NTk4MDA4MjddLCBbLTczLjgxMTY5OTcxODIzNjYsIDQwLjg0NjY4MTcwMDgxMzY0XSwgWy03My44MTI2NjE0MTM0OTA1MywgNDAuODQ0MjA3NjQ5NTAwNzhdLCBbLTczLjgxMjU0OTA5MTIwNzA5LCA0MC44NDQ5NTIyNzUxNDYwOF0sIFstNzMuODEzNjU1ODA2NjU4NzksIDQwLjg0NTA1OTEyMjQ2NTY4NV0sIFstNzMuODE0MTQ0NjIwNDkxODMsIDQwLjg0NDgxODE3MzI2Mjc0NV0sIFstNzMuODE0Mzc0NTgyNTI1MzksIDQwLjg0MzA4ODkyNTk5OTQzXSwgWy03My44MTU2NjYwOTU5Mzg1MSwgNDAuODQ0Mzc5OTUxMDU5MTk2XSwgWy03My44MTgyNDA2NTg5MzI0NSwgNDAuODQ0MzQyMTI3OTA5OTI1XSwgWy03My44MTQ3MzM0NTgxNzU0LCA0MC44NDEzNzU3MjgzMTA4NF0sIFstNzMuODE0MzA5MDAxMzM2OSwgNDAuODM5NjIyNDE2Mzc5MjM1XSwgWy03My44MTY0Nzg3ODQ3Nzg3NCwgNDAuODM3NzAzOTgzODg4NDFdLCBbLTczLjgxNDg3OTM3Mzg4NTksIDQwLjgzMTAzMDA4NjQ5MTRdLCBbLTczLjgxMjc1NDY5OTk0NTIzLCA0MC44MjgyNDgyMzYyNTEzM10sIFstNzMuODA5OTI3OTkyMzc2NzEsIDQwLjgyODE5MzIyMjI3MjIyXSwgWy03My44MTM4NDk3NDg1MTI0OCwgNDAuODI2ODAzNTI4NzUwNF0sIFstNzMuODEzNzk1MjM1MTc2NjMsIDQwLjgyNTI5ODA4NjAwMTVdLCBbLTczLjgxMjExMzUwNTU2NDQxLCA0MC44MjU1NTI2MzQ2NTkyOTZdLCBbLTczLjgxMzk3MTEwMzQ2MzMzLCA0MC44MjQxOTAyNjkxOTc5MzVdLCBbLTczLjgwNjk3NzcxMTUyMjA4LCA0MC44MjUzODgzNzA4OTc0Ml0sIFstNzMuODA0NjE5MzEyMDUzNTYsIDQwLjgxOTAyNzExNDIxMzc0XSwgWy03My43OTczODExMjU3MzUzNiwgNDAuODE1NzYzNTA0ODk1Nl0sIFstNzMuODAzMDQ3NzUzOTQyNzIsIDQwLjgxMjQ0ODcwODIzODc4XSwgWy03My44MDUxMTQ2NTUyNjUwOSwgNDAuODE1NjM1ODUwMDI4MDFdLCBbLTczLjgwNjU4MzU4NzI1Njk3LCA0MC44MTY1OTQ1ODgxNjU1NjVdLCBbLTczLjgwNTA4MTAzNDY2NjkxLCA0MC44MTUxOTc5NjQwMTI1Nl0sIFstNzMuODA0NTU0NDA1MTg4NzEsIDQwLjgxNDYyOTg0MjIzNzA2XSwgWy03My44MDQ2NTk0MjgxNTAzNiwgNDAuODE0NTQ0OTg5MTIxOTddLCBbLTczLjgwNzA0NjAwMTUzNTA4LCA0MC44MTY1MzM2OTM4NzUyODZdLCBbLTczLjgwNTA1MjEzNjQ2MjU4LCA0MC44MTI4OTQ5NjI0MzQxM10sIFstNzMuODAyMjQyNDUzMzQzNTEsIDQwLjgxMDE5NzM5MzY2MDMyNF0sIFstNzMuNzkwODY0NzU3Mzg0MDYsIDQwLjgwNzM0MTE0MDQ0MDUyXSwgWy03My43OTA1NjgyMzgwNzc5NSwgNDAuODA0NTU4MDExMjkxNjhdLCBbLTczLjc5MzM4OTgyMjg2NzI1LCA0MC44MDQyMDQzMzAwMzYyMzVdLCBbLTczLjgwMTU5MzkzMTYzNzk4LCA0MC44MDg5ODYzNTM5MjAwOF0sIFstNzMuODAzOTI2NzM0MTcyMDQsIDQwLjgwODUyNzk3MDgxMTY0Nl0sIFstNzMuODA5OTIwMjkwODE3OTcsIDQwLjgxMjkyOTE1MjI2MTc2Nl0sIFstNzMuODE2MjAwNTY4OTYzMDEsIDQwLjgxMzg0NzQ3NjQ3OTMyNF0sIFstNzMuODMwMTgyNDU1NzY3MTYsIDQwLjgxMDgzOTA4NzE1MTA5XSwgWy03My44MzIxNzQ1MjM3OCwgNDAuODA4MTYwMzY5OTI5NDddLCBbLTczLjgzMTYxNTc0NDU1NDUsIDQwLjgwNDkzODI1NTk5MzIzXSwgWy03My44Mzc0MzYxMjEyNTg4MywgNDAuODA2MjAyNjQzMTgzMTRdLCBbLTczLjg0MDQzMTk5NTQwOTUzLCA0MC44MTI1NDExMjgyMzY5XSwgWy03My44Mzg4ODIzMTY0Njc0LCA0MC44MjIxNDA0ODk4NTZdLCBbLTczLjg0MjMzMDc3NDc3Mjc2LCA0MC44MjkwNzM5NjI0NTM3XSwgWy03My44Mzg4NTIzMjM4NDczMywgNDAuODMzNjkwNjY3ODQ4MjJdLCBbLTczLjgzOTcyMDE0NTE1NTM3LCA0MC44Mzk1NjU0MDU5ODYxMV0sIFstNzMuODM5NTkxMDg0NTIyOTEsIDQwLjgzNDA0MTY4ODA5MDU2NV0sIFstNzMuODQzMTA2OTE1OTk5MDYsIDQwLjgyOTc5NDEzOTMxOTg0NF0sIFstNzMuODM5OTk4NjA0MDc0MjIsIDQwLjgxOTkzNDk0NjgxMzA1Nl0sIFstNzMuODQxOTg2ODQ4MzQwNDUsIDQwLjgxODc3NDM3MzkwODExXSwgWy03My44NDYxNzMwMjg3MjA1NCwgNDAuODEwNjc2NjY0NDMwNDJdLCBbLTczLjg1MTE0NDcyMjYwNzAyLCA0MC44MTQzOTY1NDg4NzU5MV0sIFstNzMuODU1MzgwMzAyNDM2ODcsIDQwLjgxNDI4ODg4MjA4MjY5XSwgWy03My44NDkxNDUwNjYxNzM4OCwgNDAuODEyMjk4NzkzNjA5ODNdLCBbLTczLjg0OTk2Njk2ODAyODE4LCA0MC44MDg1NzgwMTg4NDM2MV0sIFstNzMuODQ4MDc2MjQ1OTkzODIsIDQwLjgwNDkxOTY0MTE0OTEyXSwgWy03My44NTYwNTE2MjkzMzI2MSwgNDAuODA0NTg3NDI5Njg5NTldLCBbLTczLjg1OTE5NTQ1MDI0NDc3LCA0MC44MDYyNjk4Nzc4Mjk3MDZdLCBbLTczLjg1ODk1MTQxMjIxNzc4LCA0MC44MTAyNzE0MTc1ODY1Ml0sIFstNzMuODYwMTI2OTUyMzU1ODQsIDQwLjgwOTYwNTQ5OTg5MTIzNF0sIFstNzMuODU5MzI5MTkyNjUxMzQsIDQwLjgwODk5NjU0MDQ2MjY5XSwgWy03My44NTkzODk4MjAwNTk3LCA0MC44MDgxNjM3NjkxNjU3Ml0sIFstNzMuODYwNjU5NjU4MTM2NDgsIDQwLjgwOTYzMTkwMzA2NDYzNF0sIFstNzMuODY3NjU2NDYyODQ0NjgsIDQwLjgxMDU4Mzc2MTkzNzE0XSwgWy03My44NzA3NzgwNDg4NTkzNiwgNDAuODE0NDg2ODk1NDg3NzZdLCBbLTczLjg3NjUxOTk2MDMzNjMsIDQwLjgxNjEzMTA2MzQyNDE0NV0sIFstNzMuODcwNTY4MDY5Mjc5MzMsIDQwLjgxMjA4NzMxNzYyMjRdLCBbLTczLjg2ODExMjE5MTQwMDgsIDQwLjgwNjc1MTgzMjgzMTgxNF0sIFstNzMuODcyMzQ2ODQ5OTg4NTIsIDQwLjgwMDE3NDc2MzAxMDQ1XSwgWy03My44NzgxNDIxODgxOTkyMywgNDAuODAxMzE5MjkwMzA2NDRdLCBbLTczLjg3ODQzMjk1NTEzNDQ5LCA0MC44MDI3MDI3MzQ2OTQ4NTRdLCBbLTczLjg4NTA1MTcyMzM2NzEsIDQwLjgwMjEzMDkwNjc5ODAwNl0sIFstNzMuODg5MjI0MTYwOTExNTUsIDQwLjgwNTg0NTM1MTE5MTk4NF0sIFstNzMuODkwMTUwOTg1MDE2MDYsIDQwLjgwNDk1ODE4MjI2MjU5NV0sIFstNzMuODg5Mzc0MzkyNTM2OTUsIDQwLjgwNTkyNTI3MzExNTI0XSwgWy03My44OTI3MDY4MTA2NjM1LCA0MC44MDYzNDM5NDkwOTgwNV0sIFstNzMuODkxNzMyNDA5OTU2MTUsIDQwLjgwNTA0OTM2MzQyMDI4XSwgWy03My44OTUwOTgzNjQ4NzM5OSwgNDAuODA2ODYzNjM5MTczNTE0XSwgWy03My44OTUyNzk2Mjg3NDAxLCA0MC44MDU3NjYxODQwNjc5XSwgWy03My45MDIyMjI4NDY5OTQ2OSwgNDAuODA0OTQ4MTEzMTg5NTJdLCBbLTczLjkxMTY4ODMxMjQxMTk1LCA0MC43OTY2MjM3Njk4ODg3NTRdLCBbLTczLjkxOTA0OTc4Njk3NjczLCA0MC43OTg5OTM5MzU2ODY1M10sIFstNzMuOTIyOTI3MTAwNjU3ODQsIDQwLjgwMjM3MzI5NDY0Mjg1NV0sIFstNzMuOTI3NjI3ODg2NTg4NDgsIDQwLjgwMjY5NTY2NTQ4MTUxNV0sIFstNzMuOTMyODYzOTcwODMyNzgsIDQwLjgxMDEyNDQzNzM4ODQ2XSwgWy03My45MzMxNDMwNjcwOTI2MiwgNDAuODM1MTk0MTI3NjE2NDZdLCBbLTczLjkyMjU2MTc4OTQ2NTM1LCA0MC44NTMxODg5MTE1MjcyOV0sIFstNzMuOTEyMjcyNzg5NzY5NzksIDQwLjg2MzYzMjE0ODk5NjY2NV0sIFstNzMuOTA2NjUwOTk1Mzk0NzgsIDQwLjg3NTc1MjUwNDE5MjZdLCBbLTczLjkxMDMzMTkzNTY2NDIzLCA0MC44NzkwMzgwNDczMDcyMl0sIFstNzMuOTE3NzU2NjkzMjk3MSwgNDAuODc1NjYzNjI3ODYwMTg1XSwgWy03My45MjQ5MDMyNzQ3MzA4MiwgNDAuODc4ODg4MzY3ODUzMTVdLCBbLTczLjkyMDM5MjgwMTk5MDkxLCA0MC44ODc2NDg1MDAyMjY4N10sIFstNzMuOTExNDk5NTkwNzQ4MiwgNDAuOTEzNzY2NTgxNzA0NzddLCBbLTczLjkxMDMzMjU2ODQ5MDQ3LCA0MC45MTU1MzI3NzYwMDAwN10sIFstNzMuODcyOTQ4NjA0MTkwOTcsIDQwLjkwNDQ0MTAyMjY2ODk3Nl1dXV0sICJ0eXBlIjogIk11bHRpUG9seWdvbiJ9LCAiaWQiOiAiMCIsICJwcm9wZXJ0aWVzIjogeyJoaWdobGlnaHQiOiB7fSwgInN0eWxlIjogeyJmaWxsQ29sb3IiOiAib3JhbmdlIn19LCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9CiAgICAgICAgICAgIAogICAgICAgICAgICApLmFkZFRvKG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCk7CiAgICAgICAgZ2VvX2pzb25fNDYzM2NjZDhhYmRmNDgyNmI4OTM0YzkwNGJlNTdlNzIuc2V0U3R5bGUoZnVuY3Rpb24oZmVhdHVyZSkge3JldHVybiBmZWF0dXJlLnByb3BlcnRpZXMuc3R5bGU7fSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIyZjE4MGE3YTFkZTQ3NTA4ZjVmN2UxMGRkODk1OTRhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDEyNzIxM2Y5MTBhNGZmMDg2N2RmZTEzMGZlMTRjMDEgPSAkKCc8ZGl2IGlkPSJodG1sXzQxMjcyMTNmOTEwYTRmZjA4NjdkZmUxMzBmZTE0YzAxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ccm9ueDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjJmMTgwYTdhMWRlNDc1MDhmNWY3ZTEwZGQ4OTU5NGEuc2V0Q29udGVudChodG1sXzQxMjcyMTNmOTEwYTRmZjA4NjdkZmUxMzBmZTE0YzAxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBnZW9fanNvbl80NjMzY2NkOGFiZGY0ODI2Yjg5MzRjOTA0YmU1N2U3Mi5iaW5kUG9wdXAocG9wdXBfMjJmMTgwYTdhMWRlNDc1MDhmNWY3ZTEwZGQ4OTU5NGEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8yNzZlODllMGZiZTM0Mjg3ODhmMzZmNmIzNjc0ODEzNCA9IEwubWFya2VyKAogICAgICAgICAgICBbNDAuNTgwODU4MDIzNDc0MTksIC03NC4xNTMzNjg1NDA1MDI5OF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2U0NGM2YmUxNTNjZjQxMjFhNmUwNWM0ZTBhODcyNWU0KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTQwNTE5ZmJjNTI2NGY1OGFiYmVkYjQ3ZDViYjQ2OGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCcKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMTgzZDdiNWRhMjc0YzI1OWIzZWZiNmM1ZTg2MmY0ZCA9ICQoJzxkaXYgaWQ9Imh0bWxfZTE4M2Q3YjVkYTI3NGMyNTliM2VmYjZjNWU4NjJmNGQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmxlbmd0aDogMzMwNDcwLjAxMDMzMiA8YnI+IGFyZWE6IDE2MjM4MTk4MjMuODE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U0MDUxOWZiYzUyNjRmNThhYmJlZGI0N2Q1YmI0NjhhLnNldENvbnRlbnQoaHRtbF9lMTgzZDdiNWRhMjc0YzI1OWIzZWZiNmM1ZTg2MmY0ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzI3NmU4OWUwZmJlMzQyODc4OGYzNmY2YjM2NzQ4MTM0LmJpbmRQb3B1cChwb3B1cF9lNDA1MTlmYmM1MjY0ZjU4YWJiZWRiNDdkNWJiNDY4YSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzUxMGNkYmQ2ZDA2NjRiZTdiNTYyMjFkZWY3ZWJkZDhiID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MC43MDc2MDM5MDE0NDczOSwgLTczLjgxODQ4NDY1MDYzMDc1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jZjc0ZjVlMzM1MWY0MWExOTA0Y2QzOWI5MjM3NDljYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU1N2ZmODcxZWZmMzRkNWJiNGU5Yzk1M2I1NDFmZWY4ID0gJCgnPGRpdiBpZD0iaHRtbF81NTdmZjg3MWVmZjM0ZDViYjRlOWM5NTNiNTQxZmVmOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+bGVuZ3RoOiA4OTYzNDQuMDQ3NzYzIDxicj4gYXJlYTogMzA0NTIxMjc5NS4yPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jZjc0ZjVlMzM1MWY0MWExOTA0Y2QzOWI5MjM3NDljYy5zZXRDb250ZW50KGh0bWxfNTU3ZmY4NzFlZmYzNGQ1YmI0ZTljOTUzYjU0MWZlZjgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl81MTBjZGJkNmQwNjY0YmU3YjU2MjIxZGVmN2ViZGQ4Yi5iaW5kUG9wdXAocG9wdXBfY2Y3NGY1ZTMzNTFmNDFhMTkwNGNkMzliOTIzNzQ5Y2MpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl81ZDQ0YjQ3YjU0MTk0MDE1YmFhMjc0YmYyMTEwMjIwNiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDAuNjQ0NzMzOTgwOTUzOTQ0LCAtNzMuOTQ3Njc2NjEyMTA1NjhdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcF9lNDRjNmJlMTUzY2Y0MTIxYTZlMDVjNGUwYTg3MjVlNCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzI4ZDQ2OGUyMDVlNTRhYWZiYzBjNTQ1NzUwNWY1MDhjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2MyOWVhOTFkNTk5NDJlNTg5NDBlMTcwNzkwYTdjMjcgPSAkKCc8ZGl2IGlkPSJodG1sX2NjMjllYTkxZDU5OTQyZTU4OTQwZTE3MDc5MGE3YzI3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5sZW5ndGg6IDc0MTA4MC41MjMxNjYgPGJyPiBhcmVhOiAxOTM3NDc4NTA3LjYxPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yOGQ0NjhlMjA1ZTU0YWFmYmMwYzU0NTc1MDVmNTA4Yy5zZXRDb250ZW50KGh0bWxfY2MyOWVhOTFkNTk5NDJlNTg5NDBlMTcwNzkwYTdjMjcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl81ZDQ0YjQ3YjU0MTk0MDE1YmFhMjc0YmYyMTEwMjIwNi5iaW5kUG9wdXAocG9wdXBfMjhkNDY4ZTIwNWU1NGFhZmJjMGM1NDU3NTA1ZjUwOGMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl81MjIyZmE2MDNjZWQ0ZGQ2OTY5ZTRlYjcxMGM4OWFmMSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDAuNzc3Mjc1NjE0ODA3MjMsIC03My45NjcxNTk0OTIyMTk3Ml0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2U0NGM2YmUxNTNjZjQxMjFhNmUwNWM0ZTBhODcyNWU0KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWVhODdmYmEwMjJjNDJlM2EwNDMzMzk2NzllMDk3OWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCcKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85ZmFjZjhiN2UxY2E0MGY4YjYwYjg2YWRjZDEzMTkxNCA9ICQoJzxkaXYgaWQ9Imh0bWxfOWZhY2Y4YjdlMWNhNDBmOGI2MGI4NmFkY2QxMzE5MTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmxlbmd0aDogMzU5Mjk5LjA5NjQ3MSA8YnI+IGFyZWE6IDYzNjQ3MTUzOS43NzQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2VlYTg3ZmJhMDIyYzQyZTNhMDQzMzM5Njc5ZTA5NzlkLnNldENvbnRlbnQoaHRtbF85ZmFjZjhiN2UxY2E0MGY4YjYwYjg2YWRjZDEzMTkxNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzUyMjJmYTYwM2NlZDRkZDY5NjllNGViNzEwYzg5YWYxLmJpbmRQb3B1cChwb3B1cF9lZWE4N2ZiYTAyMmM0MmUzYTA0MzMzOTY3OWUwOTc5ZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2FjMzc5NGRhYTQ3ODRmYmJiM2Y5YTU5YTdiYTkzMzNkID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MC44NTI2MjY2NzE2MjUzOCwgLTczLjg2NjUyMzczMjIyMTg5XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfZTQ0YzZiZTE1M2NmNDEyMWE2ZTA1YzRlMGE4NzI1ZTQpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMWJjODFkYjdkMWM0MmYwYmVmZDU1NGE1M2RlZTllZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzllNTIxMDYzMjEyMTQ4NDc4ZGFiODBkNzk3ZjQ5ZmNjID0gJCgnPGRpdiBpZD0iaHRtbF85ZTUyMTA2MzIxMjE0ODQ3OGRhYjgwZDc5N2Y0OWZjYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+bGVuZ3RoOiA0NjQzOTIuOTkxODI0IDxicj4gYXJlYTogMTE4NjkyNDY4Ni40OTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDFiYzgxZGI3ZDFjNDJmMGJlZmQ1NTRhNTNkZWU5ZWQuc2V0Q29udGVudChodG1sXzllNTIxMDYzMjEyMTQ4NDc4ZGFiODBkNzk3ZjQ5ZmNjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYWMzNzk0ZGFhNDc4NGZiYmIzZjlhNTlhN2JhOTMzM2QuYmluZFBvcHVwKHBvcHVwX2QxYmM4MWRiN2QxYzQyZjBiZWZkNTU0YTUzZGVlOWVkKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
534 ],
535 "text/plain": [
536 "<folium.folium.Map at 0x157213b9c50>"
537 ]
538 },
539 "execution_count": 10,
540 "metadata": {},
541 "output_type": "execute_result"
542 }
543 ],
544 "source": [
545 "for _, r in df.iterrows():\n",
546 " folium.Marker(location=[r['lat'], r['lon']], popup='length: {} <br> area: {}'.format(r['Shape_Leng'], r['Shape_Area'])).add_to(m)\n",
547 " \n",
548 "m"
549 ]
550 }
551 ],
552 "metadata": {
553 "kernelspec": {
554 "display_name": "Python 3",
555 "language": "python",
556 "name": "python3"
557 },
558 "language_info": {
559 "codemirror_mode": {
560 "name": "ipython",
561 "version": 3
562 },
563 "file_extension": ".py",
564 "mimetype": "text/x-python",
565 "name": "python",
566 "nbconvert_exporter": "python",
567 "pygments_lexer": "ipython3",
568 "version": "3.6.8"
569 }
570 },
571 "nbformat": 4,
572 "nbformat_minor": 2
573 }
+0
-1126
examples/spatial_joins.ipynb less more
0 {
1 "cells": [
2 {
3 "cell_type": "markdown",
4 "metadata": {},
5 "source": [
6 "# Spatial Joins\n",
7 "\n",
8 "A *spatial join* uses [binary predicates](http://shapely.readthedocs.io/en/latest/manual.html#binary-predicates) \n",
9 "such as `intersects` and `crosses` to combine two `GeoDataFrames` based on the spatial relationship \n",
10 "between their geometries.\n",
11 "\n",
12 "A common use case might be a spatial join between a point layer and a polygon layer where you want to retain the point geometries and grab the attributes of the intersecting polygons.\n"
13 ]
14 },
15 {
16 "cell_type": "code",
17 "execution_count": 1,
18 "metadata": {
19 "ExecuteTime": {
20 "end_time": "2017-12-15T21:26:04.391570Z",
21 "start_time": "2017-12-15T21:26:04.361570Z"
22 }
23 },
24 "outputs": [
25 {
26 "data": {
27 "text/html": [
28 "<img src=\"https://web.natur.cuni.cz/~langhamr/lectures/vtfg1/mapinfo_1/about_gis/Image23.gif\"/>"
29 ],
30 "text/plain": [
31 "<IPython.core.display.Image object>"
32 ]
33 },
34 "execution_count": 1,
35 "metadata": {},
36 "output_type": "execute_result"
37 }
38 ],
39 "source": [
40 "from IPython.core.display import Image \n",
41 "Image(url='https://web.natur.cuni.cz/~langhamr/lectures/vtfg1/mapinfo_1/about_gis/Image23.gif') "
42 ]
43 },
44 {
45 "cell_type": "markdown",
46 "metadata": {},
47 "source": [
48 "\n",
49 "## Types of spatial joins\n",
50 "\n",
51 "We currently support the following methods of spatial joins. We refer to the *left_df* and *right_df* which are the correspond to the two dataframes passed in as args.\n",
52 "\n",
53 "### Left outer join\n",
54 "\n",
55 "In a LEFT OUTER JOIN (`how='left'`), we keep *all* rows from the left and duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the right if they intersect and lose right rows that don't intersect. A left outer join implies that we are interested in retaining the geometries of the left. \n",
56 "\n",
57 "This is equivalent to the PostGIS query:\n",
58 "```\n",
59 "SELECT pts.geom, pts.id as ptid, polys.id as polyid \n",
60 "FROM pts\n",
61 "LEFT OUTER JOIN polys\n",
62 "ON ST_Intersects(pts.geom, polys.geom);\n",
63 "\n",
64 " geom | ptid | polyid \n",
65 "--------------------------------------------+------+--------\n",
66 " 010100000040A9FBF2D88AD03F349CD47D796CE9BF | 4 | 10\n",
67 " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 10\n",
68 " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 20\n",
69 " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n",
70 " 0101000000818693BA2F8FF7BF4ADD97C75604E9BF | 1 | \n",
71 "(5 rows)\n",
72 "```\n",
73 "\n",
74 "### Right outer join\n",
75 "\n",
76 "In a RIGHT OUTER JOIN (`how='right'`), we keep *all* rows from the right and duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the left if they intersect and lose left rows that don't intersect. A right outer join implies that we are interested in retaining the geometries of the right. \n",
77 "\n",
78 "This is equivalent to the PostGIS query:\n",
79 "```\n",
80 "SELECT polys.geom, pts.id as ptid, polys.id as polyid \n",
81 "FROM pts\n",
82 "RIGHT OUTER JOIN polys\n",
83 "ON ST_Intersects(pts.geom, polys.geom);\n",
84 "\n",
85 " geom | ptid | polyid \n",
86 "----------+------+--------\n",
87 " 01...9BF | 4 | 10\n",
88 " 01...9BF | 3 | 10\n",
89 " 02...7BF | 3 | 20\n",
90 " 02...7BF | 2 | 20\n",
91 " 00...5BF | | 30\n",
92 "(5 rows)\n",
93 "```\n",
94 "\n",
95 "### Inner join\n",
96 "\n",
97 "In an INNER JOIN (`how='inner'`), we keep rows from the right and left only where their binary predicate is `True`. We duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the right and left only if they intersect and lose all rows that do not. An inner join implies that we are interested in retaining the geometries of the left. \n",
98 "\n",
99 "This is equivalent to the PostGIS query:\n",
100 "```\n",
101 "SELECT pts.geom, pts.id as ptid, polys.id as polyid \n",
102 "FROM pts\n",
103 "INNER JOIN polys\n",
104 "ON ST_Intersects(pts.geom, polys.geom);\n",
105 "\n",
106 " geom | ptid | polyid \n",
107 "--------------------------------------------+------+--------\n",
108 " 010100000040A9FBF2D88AD03F349CD47D796CE9BF | 4 | 10\n",
109 " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 10\n",
110 " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 20\n",
111 " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n",
112 "(4 rows) \n",
113 "```"
114 ]
115 },
116 {
117 "cell_type": "markdown",
118 "metadata": {},
119 "source": [
120 "## Spatial Joins between two GeoDataFrames\n",
121 "\n",
122 "Let's take a look at how we'd implement these using `GeoPandas`. First, load up the NYC test data into `GeoDataFrames`:"
123 ]
124 },
125 {
126 "cell_type": "code",
127 "execution_count": 2,
128 "metadata": {
129 "ExecuteTime": {
130 "end_time": "2017-12-15T21:26:07.191542Z",
131 "start_time": "2017-12-15T21:26:04.391570Z"
132 }
133 },
134 "outputs": [],
135 "source": [
136 "%matplotlib inline\n",
137 "from shapely.geometry import Point\n",
138 "from geopandas import datasets, GeoDataFrame, read_file\n",
139 "from geopandas.tools import overlay\n",
140 "\n",
141 "# NYC Boros\n",
142 "zippath = datasets.get_path('nybb')\n",
143 "polydf = read_file(zippath)\n",
144 "\n",
145 "# Generate some points\n",
146 "b = [int(x) for x in polydf.total_bounds]\n",
147 "N = 8\n",
148 "pointdf = GeoDataFrame([\n",
149 " {'geometry': Point(x, y), 'value1': x + y, 'value2': x - y}\n",
150 " for x, y in zip(range(b[0], b[2], int((b[2] - b[0]) / N)),\n",
151 " range(b[1], b[3], int((b[3] - b[1]) / N)))])\n",
152 "\n",
153 "# Make sure they're using the same projection reference\n",
154 "pointdf.crs = polydf.crs"
155 ]
156 },
157 {
158 "cell_type": "code",
159 "execution_count": 3,
160 "metadata": {
161 "ExecuteTime": {
162 "end_time": "2017-12-15T21:26:07.211542Z",
163 "start_time": "2017-12-15T21:26:07.191542Z"
164 }
165 },
166 "outputs": [
167 {
168 "data": {
169 "text/html": [
170 "<div>\n",
171 "<style>\n",
172 " .dataframe thead tr:only-child th {\n",
173 " text-align: right;\n",
174 " }\n",
175 "\n",
176 " .dataframe thead th {\n",
177 " text-align: left;\n",
178 " }\n",
179 "\n",
180 " .dataframe tbody tr th {\n",
181 " vertical-align: top;\n",
182 " }\n",
183 "</style>\n",
184 "<table border=\"1\" class=\"dataframe\">\n",
185 " <thead>\n",
186 " <tr style=\"text-align: right;\">\n",
187 " <th></th>\n",
188 " <th>geometry</th>\n",
189 " <th>value1</th>\n",
190 " <th>value2</th>\n",
191 " </tr>\n",
192 " </thead>\n",
193 " <tbody>\n",
194 " <tr>\n",
195 " <th>0</th>\n",
196 " <td>POINT (913175 120121)</td>\n",
197 " <td>1033296</td>\n",
198 " <td>793054</td>\n",
199 " </tr>\n",
200 " <tr>\n",
201 " <th>1</th>\n",
202 " <td>POINT (932450 139211)</td>\n",
203 " <td>1071661</td>\n",
204 " <td>793239</td>\n",
205 " </tr>\n",
206 " <tr>\n",
207 " <th>2</th>\n",
208 " <td>POINT (951725 158301)</td>\n",
209 " <td>1110026</td>\n",
210 " <td>793424</td>\n",
211 " </tr>\n",
212 " <tr>\n",
213 " <th>3</th>\n",
214 " <td>POINT (971000 177391)</td>\n",
215 " <td>1148391</td>\n",
216 " <td>793609</td>\n",
217 " </tr>\n",
218 " <tr>\n",
219 " <th>4</th>\n",
220 " <td>POINT (990275 196481)</td>\n",
221 " <td>1186756</td>\n",
222 " <td>793794</td>\n",
223 " </tr>\n",
224 " <tr>\n",
225 " <th>5</th>\n",
226 " <td>POINT (1009550 215571)</td>\n",
227 " <td>1225121</td>\n",
228 " <td>793979</td>\n",
229 " </tr>\n",
230 " <tr>\n",
231 " <th>6</th>\n",
232 " <td>POINT (1028825 234661)</td>\n",
233 " <td>1263486</td>\n",
234 " <td>794164</td>\n",
235 " </tr>\n",
236 " <tr>\n",
237 " <th>7</th>\n",
238 " <td>POINT (1048100 253751)</td>\n",
239 " <td>1301851</td>\n",
240 " <td>794349</td>\n",
241 " </tr>\n",
242 " <tr>\n",
243 " <th>8</th>\n",
244 " <td>POINT (1067375 272841)</td>\n",
245 " <td>1340216</td>\n",
246 " <td>794534</td>\n",
247 " </tr>\n",
248 " </tbody>\n",
249 "</table>\n",
250 "</div>"
251 ],
252 "text/plain": [
253 " geometry value1 value2\n",
254 "0 POINT (913175 120121) 1033296 793054\n",
255 "1 POINT (932450 139211) 1071661 793239\n",
256 "2 POINT (951725 158301) 1110026 793424\n",
257 "3 POINT (971000 177391) 1148391 793609\n",
258 "4 POINT (990275 196481) 1186756 793794\n",
259 "5 POINT (1009550 215571) 1225121 793979\n",
260 "6 POINT (1028825 234661) 1263486 794164\n",
261 "7 POINT (1048100 253751) 1301851 794349\n",
262 "8 POINT (1067375 272841) 1340216 794534"
263 ]
264 },
265 "execution_count": 3,
266 "metadata": {},
267 "output_type": "execute_result"
268 }
269 ],
270 "source": [
271 "pointdf"
272 ]
273 },
274 {
275 "cell_type": "code",
276 "execution_count": 4,
277 "metadata": {
278 "ExecuteTime": {
279 "end_time": "2017-12-15T21:26:07.921534Z",
280 "start_time": "2017-12-15T21:26:07.211542Z"
281 }
282 },
283 "outputs": [
284 {
285 "data": {
286 "text/html": [
287 "<div>\n",
288 "<style>\n",
289 " .dataframe thead tr:only-child th {\n",
290 " text-align: right;\n",
291 " }\n",
292 "\n",
293 " .dataframe thead th {\n",
294 " text-align: left;\n",
295 " }\n",
296 "\n",
297 " .dataframe tbody tr th {\n",
298 " vertical-align: top;\n",
299 " }\n",
300 "</style>\n",
301 "<table border=\"1\" class=\"dataframe\">\n",
302 " <thead>\n",
303 " <tr style=\"text-align: right;\">\n",
304 " <th></th>\n",
305 " <th>BoroCode</th>\n",
306 " <th>BoroName</th>\n",
307 " <th>Shape_Leng</th>\n",
308 " <th>Shape_Area</th>\n",
309 " <th>geometry</th>\n",
310 " </tr>\n",
311 " </thead>\n",
312 " <tbody>\n",
313 " <tr>\n",
314 " <th>0</th>\n",
315 " <td>5</td>\n",
316 " <td>Staten Island</td>\n",
317 " <td>330470.010332</td>\n",
318 " <td>1.623820e+09</td>\n",
319 " <td>(POLYGON ((970217.0223999023 145643.3322143555...</td>\n",
320 " </tr>\n",
321 " <tr>\n",
322 " <th>1</th>\n",
323 " <td>4</td>\n",
324 " <td>Queens</td>\n",
325 " <td>896344.047763</td>\n",
326 " <td>3.045213e+09</td>\n",
327 " <td>(POLYGON ((1029606.076599121 156073.8142089844...</td>\n",
328 " </tr>\n",
329 " <tr>\n",
330 " <th>2</th>\n",
331 " <td>3</td>\n",
332 " <td>Brooklyn</td>\n",
333 " <td>741080.523166</td>\n",
334 " <td>1.937479e+09</td>\n",
335 " <td>(POLYGON ((1021176.479003906 151374.7969970703...</td>\n",
336 " </tr>\n",
337 " <tr>\n",
338 " <th>3</th>\n",
339 " <td>1</td>\n",
340 " <td>Manhattan</td>\n",
341 " <td>359299.096471</td>\n",
342 " <td>6.364715e+08</td>\n",
343 " <td>(POLYGON ((981219.0557861328 188655.3157958984...</td>\n",
344 " </tr>\n",
345 " <tr>\n",
346 " <th>4</th>\n",
347 " <td>2</td>\n",
348 " <td>Bronx</td>\n",
349 " <td>464392.991824</td>\n",
350 " <td>1.186925e+09</td>\n",
351 " <td>(POLYGON ((1012821.805786133 229228.2645874023...</td>\n",
352 " </tr>\n",
353 " </tbody>\n",
354 "</table>\n",
355 "</div>"
356 ],
357 "text/plain": [
358 " BoroCode BoroName Shape_Leng Shape_Area \\\n",
359 "0 5 Staten Island 330470.010332 1.623820e+09 \n",
360 "1 4 Queens 896344.047763 3.045213e+09 \n",
361 "2 3 Brooklyn 741080.523166 1.937479e+09 \n",
362 "3 1 Manhattan 359299.096471 6.364715e+08 \n",
363 "4 2 Bronx 464392.991824 1.186925e+09 \n",
364 "\n",
365 " geometry \n",
366 "0 (POLYGON ((970217.0223999023 145643.3322143555... \n",
367 "1 (POLYGON ((1029606.076599121 156073.8142089844... \n",
368 "2 (POLYGON ((1021176.479003906 151374.7969970703... \n",
369 "3 (POLYGON ((981219.0557861328 188655.3157958984... \n",
370 "4 (POLYGON ((1012821.805786133 229228.2645874023... "
371 ]
372 },
373 "execution_count": 4,
374 "metadata": {},
375 "output_type": "execute_result"
376 }
377 ],
378 "source": [
379 "polydf"
380 ]
381 },
382 {
383 "cell_type": "code",
384 "execution_count": 5,
385 "metadata": {
386 "ExecuteTime": {
387 "end_time": "2017-12-15T21:26:08.271531Z",
388 "start_time": "2017-12-15T21:26:07.921534Z"
389 }
390 },
391 "outputs": [
392 {
393 "data": {
394 "text/plain": [
395 "<matplotlib.axes._subplots.AxesSubplot at 0x4f1b0b8>"
396 ]
397 },
398 "execution_count": 5,
399 "metadata": {},
400 "output_type": "execute_result"
401 },
402 {
403 "data": {
404 "image/png": "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\nSMoAAAAASUVORK5CYII=\n",
405 "text/plain": [
406 "<matplotlib.figure.Figure at 0x4efcc88>"
407 ]
408 },
409 "metadata": {},
410 "output_type": "display_data"
411 }
412 ],
413 "source": [
414 "pointdf.plot()"
415 ]
416 },
417 {
418 "cell_type": "code",
419 "execution_count": 6,
420 "metadata": {
421 "ExecuteTime": {
422 "end_time": "2017-12-15T21:26:10.561508Z",
423 "start_time": "2017-12-15T21:26:08.271531Z"
424 }
425 },
426 "outputs": [
427 {
428 "data": {
429 "text/plain": [
430 "<matplotlib.axes._subplots.AxesSubplot at 0x12991208>"
431 ]
432 },
433 "execution_count": 6,
434 "metadata": {},
435 "output_type": "execute_result"
436 },
437 {
438 "data": {
439 "image/png": "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\nyQAAAABJRU5ErkJggg==\n",
440 "text/plain": [
441 "<matplotlib.figure.Figure at 0x129caf98>"
442 ]
443 },
444 "metadata": {},
445 "output_type": "display_data"
446 }
447 ],
448 "source": [
449 "polydf.plot()"
450 ]
451 },
452 {
453 "cell_type": "markdown",
454 "metadata": {},
455 "source": [
456 "## Joins"
457 ]
458 },
459 {
460 "cell_type": "code",
461 "execution_count": 7,
462 "metadata": {
463 "ExecuteTime": {
464 "end_time": "2017-12-15T21:26:12.951484Z",
465 "start_time": "2017-12-15T21:26:10.561508Z"
466 }
467 },
468 "outputs": [
469 {
470 "data": {
471 "text/html": [
472 "<div>\n",
473 "<style>\n",
474 " .dataframe thead tr:only-child th {\n",
475 " text-align: right;\n",
476 " }\n",
477 "\n",
478 " .dataframe thead th {\n",
479 " text-align: left;\n",
480 " }\n",
481 "\n",
482 " .dataframe tbody tr th {\n",
483 " vertical-align: top;\n",
484 " }\n",
485 "</style>\n",
486 "<table border=\"1\" class=\"dataframe\">\n",
487 " <thead>\n",
488 " <tr style=\"text-align: right;\">\n",
489 " <th></th>\n",
490 " <th>geometry</th>\n",
491 " <th>value1</th>\n",
492 " <th>value2</th>\n",
493 " <th>index_right</th>\n",
494 " <th>BoroCode</th>\n",
495 " <th>BoroName</th>\n",
496 " <th>Shape_Leng</th>\n",
497 " <th>Shape_Area</th>\n",
498 " </tr>\n",
499 " </thead>\n",
500 " <tbody>\n",
501 " <tr>\n",
502 " <th>0</th>\n",
503 " <td>POINT (913175 120121)</td>\n",
504 " <td>1033296</td>\n",
505 " <td>793054</td>\n",
506 " <td>NaN</td>\n",
507 " <td>NaN</td>\n",
508 " <td>NaN</td>\n",
509 " <td>NaN</td>\n",
510 " <td>NaN</td>\n",
511 " </tr>\n",
512 " <tr>\n",
513 " <th>1</th>\n",
514 " <td>POINT (932450 139211)</td>\n",
515 " <td>1071661</td>\n",
516 " <td>793239</td>\n",
517 " <td>0.0</td>\n",
518 " <td>5.0</td>\n",
519 " <td>Staten Island</td>\n",
520 " <td>330470.010332</td>\n",
521 " <td>1.623820e+09</td>\n",
522 " </tr>\n",
523 " <tr>\n",
524 " <th>2</th>\n",
525 " <td>POINT (951725 158301)</td>\n",
526 " <td>1110026</td>\n",
527 " <td>793424</td>\n",
528 " <td>0.0</td>\n",
529 " <td>5.0</td>\n",
530 " <td>Staten Island</td>\n",
531 " <td>330470.010332</td>\n",
532 " <td>1.623820e+09</td>\n",
533 " </tr>\n",
534 " <tr>\n",
535 " <th>3</th>\n",
536 " <td>POINT (971000 177391)</td>\n",
537 " <td>1148391</td>\n",
538 " <td>793609</td>\n",
539 " <td>NaN</td>\n",
540 " <td>NaN</td>\n",
541 " <td>NaN</td>\n",
542 " <td>NaN</td>\n",
543 " <td>NaN</td>\n",
544 " </tr>\n",
545 " <tr>\n",
546 " <th>4</th>\n",
547 " <td>POINT (990275 196481)</td>\n",
548 " <td>1186756</td>\n",
549 " <td>793794</td>\n",
550 " <td>NaN</td>\n",
551 " <td>NaN</td>\n",
552 " <td>NaN</td>\n",
553 " <td>NaN</td>\n",
554 " <td>NaN</td>\n",
555 " </tr>\n",
556 " <tr>\n",
557 " <th>5</th>\n",
558 " <td>POINT (1009550 215571)</td>\n",
559 " <td>1225121</td>\n",
560 " <td>793979</td>\n",
561 " <td>1.0</td>\n",
562 " <td>4.0</td>\n",
563 " <td>Queens</td>\n",
564 " <td>896344.047763</td>\n",
565 " <td>3.045213e+09</td>\n",
566 " </tr>\n",
567 " <tr>\n",
568 " <th>6</th>\n",
569 " <td>POINT (1028825 234661)</td>\n",
570 " <td>1263486</td>\n",
571 " <td>794164</td>\n",
572 " <td>4.0</td>\n",
573 " <td>2.0</td>\n",
574 " <td>Bronx</td>\n",
575 " <td>464392.991824</td>\n",
576 " <td>1.186925e+09</td>\n",
577 " </tr>\n",
578 " <tr>\n",
579 " <th>7</th>\n",
580 " <td>POINT (1048100 253751)</td>\n",
581 " <td>1301851</td>\n",
582 " <td>794349</td>\n",
583 " <td>NaN</td>\n",
584 " <td>NaN</td>\n",
585 " <td>NaN</td>\n",
586 " <td>NaN</td>\n",
587 " <td>NaN</td>\n",
588 " </tr>\n",
589 " <tr>\n",
590 " <th>8</th>\n",
591 " <td>POINT (1067375 272841)</td>\n",
592 " <td>1340216</td>\n",
593 " <td>794534</td>\n",
594 " <td>NaN</td>\n",
595 " <td>NaN</td>\n",
596 " <td>NaN</td>\n",
597 " <td>NaN</td>\n",
598 " <td>NaN</td>\n",
599 " </tr>\n",
600 " </tbody>\n",
601 "</table>\n",
602 "</div>"
603 ],
604 "text/plain": [
605 " geometry value1 value2 index_right BoroCode \\\n",
606 "0 POINT (913175 120121) 1033296 793054 NaN NaN \n",
607 "1 POINT (932450 139211) 1071661 793239 0.0 5.0 \n",
608 "2 POINT (951725 158301) 1110026 793424 0.0 5.0 \n",
609 "3 POINT (971000 177391) 1148391 793609 NaN NaN \n",
610 "4 POINT (990275 196481) 1186756 793794 NaN NaN \n",
611 "5 POINT (1009550 215571) 1225121 793979 1.0 4.0 \n",
612 "6 POINT (1028825 234661) 1263486 794164 4.0 2.0 \n",
613 "7 POINT (1048100 253751) 1301851 794349 NaN NaN \n",
614 "8 POINT (1067375 272841) 1340216 794534 NaN NaN \n",
615 "\n",
616 " BoroName Shape_Leng Shape_Area \n",
617 "0 NaN NaN NaN \n",
618 "1 Staten Island 330470.010332 1.623820e+09 \n",
619 "2 Staten Island 330470.010332 1.623820e+09 \n",
620 "3 NaN NaN NaN \n",
621 "4 NaN NaN NaN \n",
622 "5 Queens 896344.047763 3.045213e+09 \n",
623 "6 Bronx 464392.991824 1.186925e+09 \n",
624 "7 NaN NaN NaN \n",
625 "8 NaN NaN NaN "
626 ]
627 },
628 "execution_count": 7,
629 "metadata": {},
630 "output_type": "execute_result"
631 }
632 ],
633 "source": [
634 "from geopandas.tools import sjoin\n",
635 "join_left_df = sjoin(pointdf, polydf, how=\"left\")\n",
636 "join_left_df\n",
637 "# Note the NaNs where the point did not intersect a boro"
638 ]
639 },
640 {
641 "cell_type": "code",
642 "execution_count": 8,
643 "metadata": {
644 "ExecuteTime": {
645 "end_time": "2017-12-15T21:26:13.871475Z",
646 "start_time": "2017-12-15T21:26:12.951484Z"
647 }
648 },
649 "outputs": [
650 {
651 "data": {
652 "text/html": [
653 "<div>\n",
654 "<style>\n",
655 " .dataframe thead tr:only-child th {\n",
656 " text-align: right;\n",
657 " }\n",
658 "\n",
659 " .dataframe thead th {\n",
660 " text-align: left;\n",
661 " }\n",
662 "\n",
663 " .dataframe tbody tr th {\n",
664 " vertical-align: top;\n",
665 " }\n",
666 "</style>\n",
667 "<table border=\"1\" class=\"dataframe\">\n",
668 " <thead>\n",
669 " <tr style=\"text-align: right;\">\n",
670 " <th></th>\n",
671 " <th>index_left</th>\n",
672 " <th>value1</th>\n",
673 " <th>value2</th>\n",
674 " <th>BoroCode</th>\n",
675 " <th>BoroName</th>\n",
676 " <th>Shape_Leng</th>\n",
677 " <th>Shape_Area</th>\n",
678 " <th>geometry</th>\n",
679 " </tr>\n",
680 " <tr>\n",
681 " <th>index_right</th>\n",
682 " <th></th>\n",
683 " <th></th>\n",
684 " <th></th>\n",
685 " <th></th>\n",
686 " <th></th>\n",
687 " <th></th>\n",
688 " <th></th>\n",
689 " <th></th>\n",
690 " </tr>\n",
691 " </thead>\n",
692 " <tbody>\n",
693 " <tr>\n",
694 " <th>0</th>\n",
695 " <td>1.0</td>\n",
696 " <td>1071661.0</td>\n",
697 " <td>793239.0</td>\n",
698 " <td>5</td>\n",
699 " <td>Staten Island</td>\n",
700 " <td>330470.010332</td>\n",
701 " <td>1.623820e+09</td>\n",
702 " <td>(POLYGON ((970217.0223999023 145643.3322143555...</td>\n",
703 " </tr>\n",
704 " <tr>\n",
705 " <th>0</th>\n",
706 " <td>2.0</td>\n",
707 " <td>1110026.0</td>\n",
708 " <td>793424.0</td>\n",
709 " <td>5</td>\n",
710 " <td>Staten Island</td>\n",
711 " <td>330470.010332</td>\n",
712 " <td>1.623820e+09</td>\n",
713 " <td>(POLYGON ((970217.0223999023 145643.3322143555...</td>\n",
714 " </tr>\n",
715 " <tr>\n",
716 " <th>1</th>\n",
717 " <td>5.0</td>\n",
718 " <td>1225121.0</td>\n",
719 " <td>793979.0</td>\n",
720 " <td>4</td>\n",
721 " <td>Queens</td>\n",
722 " <td>896344.047763</td>\n",
723 " <td>3.045213e+09</td>\n",
724 " <td>(POLYGON ((1029606.076599121 156073.8142089844...</td>\n",
725 " </tr>\n",
726 " <tr>\n",
727 " <th>4</th>\n",
728 " <td>6.0</td>\n",
729 " <td>1263486.0</td>\n",
730 " <td>794164.0</td>\n",
731 " <td>2</td>\n",
732 " <td>Bronx</td>\n",
733 " <td>464392.991824</td>\n",
734 " <td>1.186925e+09</td>\n",
735 " <td>(POLYGON ((1012821.805786133 229228.2645874023...</td>\n",
736 " </tr>\n",
737 " <tr>\n",
738 " <th>2</th>\n",
739 " <td>NaN</td>\n",
740 " <td>NaN</td>\n",
741 " <td>NaN</td>\n",
742 " <td>3</td>\n",
743 " <td>Brooklyn</td>\n",
744 " <td>741080.523166</td>\n",
745 " <td>1.937479e+09</td>\n",
746 " <td>(POLYGON ((1021176.479003906 151374.7969970703...</td>\n",
747 " </tr>\n",
748 " <tr>\n",
749 " <th>3</th>\n",
750 " <td>NaN</td>\n",
751 " <td>NaN</td>\n",
752 " <td>NaN</td>\n",
753 " <td>1</td>\n",
754 " <td>Manhattan</td>\n",
755 " <td>359299.096471</td>\n",
756 " <td>6.364715e+08</td>\n",
757 " <td>(POLYGON ((981219.0557861328 188655.3157958984...</td>\n",
758 " </tr>\n",
759 " </tbody>\n",
760 "</table>\n",
761 "</div>"
762 ],
763 "text/plain": [
764 " index_left value1 value2 BoroCode BoroName \\\n",
765 "index_right \n",
766 "0 1.0 1071661.0 793239.0 5 Staten Island \n",
767 "0 2.0 1110026.0 793424.0 5 Staten Island \n",
768 "1 5.0 1225121.0 793979.0 4 Queens \n",
769 "4 6.0 1263486.0 794164.0 2 Bronx \n",
770 "2 NaN NaN NaN 3 Brooklyn \n",
771 "3 NaN NaN NaN 1 Manhattan \n",
772 "\n",
773 " Shape_Leng Shape_Area \\\n",
774 "index_right \n",
775 "0 330470.010332 1.623820e+09 \n",
776 "0 330470.010332 1.623820e+09 \n",
777 "1 896344.047763 3.045213e+09 \n",
778 "4 464392.991824 1.186925e+09 \n",
779 "2 741080.523166 1.937479e+09 \n",
780 "3 359299.096471 6.364715e+08 \n",
781 "\n",
782 " geometry \n",
783 "index_right \n",
784 "0 (POLYGON ((970217.0223999023 145643.3322143555... \n",
785 "0 (POLYGON ((970217.0223999023 145643.3322143555... \n",
786 "1 (POLYGON ((1029606.076599121 156073.8142089844... \n",
787 "4 (POLYGON ((1012821.805786133 229228.2645874023... \n",
788 "2 (POLYGON ((1021176.479003906 151374.7969970703... \n",
789 "3 (POLYGON ((981219.0557861328 188655.3157958984... "
790 ]
791 },
792 "execution_count": 8,
793 "metadata": {},
794 "output_type": "execute_result"
795 }
796 ],
797 "source": [
798 "join_right_df = sjoin(pointdf, polydf, how=\"right\")\n",
799 "join_right_df\n",
800 "# Note Staten Island is repeated"
801 ]
802 },
803 {
804 "cell_type": "code",
805 "execution_count": 9,
806 "metadata": {
807 "ExecuteTime": {
808 "end_time": "2017-12-15T21:26:13.961474Z",
809 "start_time": "2017-12-15T21:26:13.881475Z"
810 }
811 },
812 "outputs": [
813 {
814 "data": {
815 "text/html": [
816 "<div>\n",
817 "<style>\n",
818 " .dataframe thead tr:only-child th {\n",
819 " text-align: right;\n",
820 " }\n",
821 "\n",
822 " .dataframe thead th {\n",
823 " text-align: left;\n",
824 " }\n",
825 "\n",
826 " .dataframe tbody tr th {\n",
827 " vertical-align: top;\n",
828 " }\n",
829 "</style>\n",
830 "<table border=\"1\" class=\"dataframe\">\n",
831 " <thead>\n",
832 " <tr style=\"text-align: right;\">\n",
833 " <th></th>\n",
834 " <th>geometry</th>\n",
835 " <th>value1</th>\n",
836 " <th>value2</th>\n",
837 " <th>index_right</th>\n",
838 " <th>BoroCode</th>\n",
839 " <th>BoroName</th>\n",
840 " <th>Shape_Leng</th>\n",
841 " <th>Shape_Area</th>\n",
842 " </tr>\n",
843 " </thead>\n",
844 " <tbody>\n",
845 " <tr>\n",
846 " <th>1</th>\n",
847 " <td>POINT (932450 139211)</td>\n",
848 " <td>1071661</td>\n",
849 " <td>793239</td>\n",
850 " <td>0</td>\n",
851 " <td>5</td>\n",
852 " <td>Staten Island</td>\n",
853 " <td>330470.010332</td>\n",
854 " <td>1.623820e+09</td>\n",
855 " </tr>\n",
856 " <tr>\n",
857 " <th>2</th>\n",
858 " <td>POINT (951725 158301)</td>\n",
859 " <td>1110026</td>\n",
860 " <td>793424</td>\n",
861 " <td>0</td>\n",
862 " <td>5</td>\n",
863 " <td>Staten Island</td>\n",
864 " <td>330470.010332</td>\n",
865 " <td>1.623820e+09</td>\n",
866 " </tr>\n",
867 " <tr>\n",
868 " <th>5</th>\n",
869 " <td>POINT (1009550 215571)</td>\n",
870 " <td>1225121</td>\n",
871 " <td>793979</td>\n",
872 " <td>1</td>\n",
873 " <td>4</td>\n",
874 " <td>Queens</td>\n",
875 " <td>896344.047763</td>\n",
876 " <td>3.045213e+09</td>\n",
877 " </tr>\n",
878 " <tr>\n",
879 " <th>6</th>\n",
880 " <td>POINT (1028825 234661)</td>\n",
881 " <td>1263486</td>\n",
882 " <td>794164</td>\n",
883 " <td>4</td>\n",
884 " <td>2</td>\n",
885 " <td>Bronx</td>\n",
886 " <td>464392.991824</td>\n",
887 " <td>1.186925e+09</td>\n",
888 " </tr>\n",
889 " </tbody>\n",
890 "</table>\n",
891 "</div>"
892 ],
893 "text/plain": [
894 " geometry value1 value2 index_right BoroCode \\\n",
895 "1 POINT (932450 139211) 1071661 793239 0 5 \n",
896 "2 POINT (951725 158301) 1110026 793424 0 5 \n",
897 "5 POINT (1009550 215571) 1225121 793979 1 4 \n",
898 "6 POINT (1028825 234661) 1263486 794164 4 2 \n",
899 "\n",
900 " BoroName Shape_Leng Shape_Area \n",
901 "1 Staten Island 330470.010332 1.623820e+09 \n",
902 "2 Staten Island 330470.010332 1.623820e+09 \n",
903 "5 Queens 896344.047763 3.045213e+09 \n",
904 "6 Bronx 464392.991824 1.186925e+09 "
905 ]
906 },
907 "execution_count": 9,
908 "metadata": {},
909 "output_type": "execute_result"
910 }
911 ],
912 "source": [
913 "join_inner_df = sjoin(pointdf, polydf, how=\"inner\")\n",
914 "join_inner_df\n",
915 "# Note the lack of NaNs; dropped anything that didn't intersect"
916 ]
917 },
918 {
919 "cell_type": "markdown",
920 "metadata": {},
921 "source": [
922 "We're not limited to using the `intersection` binary predicate. Any of the `Shapely` geometry methods that return a Boolean can be used by specifying the `op` kwarg."
923 ]
924 },
925 {
926 "cell_type": "code",
927 "execution_count": 10,
928 "metadata": {
929 "ExecuteTime": {
930 "end_time": "2017-12-15T21:26:14.191472Z",
931 "start_time": "2017-12-15T21:26:13.961474Z"
932 }
933 },
934 "outputs": [
935 {
936 "data": {
937 "text/html": [
938 "<div>\n",
939 "<style>\n",
940 " .dataframe thead tr:only-child th {\n",
941 " text-align: right;\n",
942 " }\n",
943 "\n",
944 " .dataframe thead th {\n",
945 " text-align: left;\n",
946 " }\n",
947 "\n",
948 " .dataframe tbody tr th {\n",
949 " vertical-align: top;\n",
950 " }\n",
951 "</style>\n",
952 "<table border=\"1\" class=\"dataframe\">\n",
953 " <thead>\n",
954 " <tr style=\"text-align: right;\">\n",
955 " <th></th>\n",
956 " <th>geometry</th>\n",
957 " <th>value1</th>\n",
958 " <th>value2</th>\n",
959 " <th>index_right</th>\n",
960 " <th>BoroCode</th>\n",
961 " <th>BoroName</th>\n",
962 " <th>Shape_Leng</th>\n",
963 " <th>Shape_Area</th>\n",
964 " </tr>\n",
965 " </thead>\n",
966 " <tbody>\n",
967 " <tr>\n",
968 " <th>0</th>\n",
969 " <td>POINT (913175 120121)</td>\n",
970 " <td>1033296</td>\n",
971 " <td>793054</td>\n",
972 " <td>NaN</td>\n",
973 " <td>NaN</td>\n",
974 " <td>NaN</td>\n",
975 " <td>NaN</td>\n",
976 " <td>NaN</td>\n",
977 " </tr>\n",
978 " <tr>\n",
979 " <th>1</th>\n",
980 " <td>POINT (932450 139211)</td>\n",
981 " <td>1071661</td>\n",
982 " <td>793239</td>\n",
983 " <td>0.0</td>\n",
984 " <td>5.0</td>\n",
985 " <td>Staten Island</td>\n",
986 " <td>330470.010332</td>\n",
987 " <td>1.623820e+09</td>\n",
988 " </tr>\n",
989 " <tr>\n",
990 " <th>2</th>\n",
991 " <td>POINT (951725 158301)</td>\n",
992 " <td>1110026</td>\n",
993 " <td>793424</td>\n",
994 " <td>0.0</td>\n",
995 " <td>5.0</td>\n",
996 " <td>Staten Island</td>\n",
997 " <td>330470.010332</td>\n",
998 " <td>1.623820e+09</td>\n",
999 " </tr>\n",
1000 " <tr>\n",
1001 " <th>3</th>\n",
1002 " <td>POINT (971000 177391)</td>\n",
1003 " <td>1148391</td>\n",
1004 " <td>793609</td>\n",
1005 " <td>NaN</td>\n",
1006 " <td>NaN</td>\n",
1007 " <td>NaN</td>\n",
1008 " <td>NaN</td>\n",
1009 " <td>NaN</td>\n",
1010 " </tr>\n",
1011 " <tr>\n",
1012 " <th>4</th>\n",
1013 " <td>POINT (990275 196481)</td>\n",
1014 " <td>1186756</td>\n",
1015 " <td>793794</td>\n",
1016 " <td>NaN</td>\n",
1017 " <td>NaN</td>\n",
1018 " <td>NaN</td>\n",
1019 " <td>NaN</td>\n",
1020 " <td>NaN</td>\n",
1021 " </tr>\n",
1022 " <tr>\n",
1023 " <th>5</th>\n",
1024 " <td>POINT (1009550 215571)</td>\n",
1025 " <td>1225121</td>\n",
1026 " <td>793979</td>\n",
1027 " <td>1.0</td>\n",
1028 " <td>4.0</td>\n",
1029 " <td>Queens</td>\n",
1030 " <td>896344.047763</td>\n",
1031 " <td>3.045213e+09</td>\n",
1032 " </tr>\n",
1033 " <tr>\n",
1034 " <th>6</th>\n",
1035 " <td>POINT (1028825 234661)</td>\n",
1036 " <td>1263486</td>\n",
1037 " <td>794164</td>\n",
1038 " <td>4.0</td>\n",
1039 " <td>2.0</td>\n",
1040 " <td>Bronx</td>\n",
1041 " <td>464392.991824</td>\n",
1042 " <td>1.186925e+09</td>\n",
1043 " </tr>\n",
1044 " <tr>\n",
1045 " <th>7</th>\n",
1046 " <td>POINT (1048100 253751)</td>\n",
1047 " <td>1301851</td>\n",
1048 " <td>794349</td>\n",
1049 " <td>NaN</td>\n",
1050 " <td>NaN</td>\n",
1051 " <td>NaN</td>\n",
1052 " <td>NaN</td>\n",
1053 " <td>NaN</td>\n",
1054 " </tr>\n",
1055 " <tr>\n",
1056 " <th>8</th>\n",
1057 " <td>POINT (1067375 272841)</td>\n",
1058 " <td>1340216</td>\n",
1059 " <td>794534</td>\n",
1060 " <td>NaN</td>\n",
1061 " <td>NaN</td>\n",
1062 " <td>NaN</td>\n",
1063 " <td>NaN</td>\n",
1064 " <td>NaN</td>\n",
1065 " </tr>\n",
1066 " </tbody>\n",
1067 "</table>\n",
1068 "</div>"
1069 ],
1070 "text/plain": [
1071 " geometry value1 value2 index_right BoroCode \\\n",
1072 "0 POINT (913175 120121) 1033296 793054 NaN NaN \n",
1073 "1 POINT (932450 139211) 1071661 793239 0.0 5.0 \n",
1074 "2 POINT (951725 158301) 1110026 793424 0.0 5.0 \n",
1075 "3 POINT (971000 177391) 1148391 793609 NaN NaN \n",
1076 "4 POINT (990275 196481) 1186756 793794 NaN NaN \n",
1077 "5 POINT (1009550 215571) 1225121 793979 1.0 4.0 \n",
1078 "6 POINT (1028825 234661) 1263486 794164 4.0 2.0 \n",
1079 "7 POINT (1048100 253751) 1301851 794349 NaN NaN \n",
1080 "8 POINT (1067375 272841) 1340216 794534 NaN NaN \n",
1081 "\n",
1082 " BoroName Shape_Leng Shape_Area \n",
1083 "0 NaN NaN NaN \n",
1084 "1 Staten Island 330470.010332 1.623820e+09 \n",
1085 "2 Staten Island 330470.010332 1.623820e+09 \n",
1086 "3 NaN NaN NaN \n",
1087 "4 NaN NaN NaN \n",
1088 "5 Queens 896344.047763 3.045213e+09 \n",
1089 "6 Bronx 464392.991824 1.186925e+09 \n",
1090 "7 NaN NaN NaN \n",
1091 "8 NaN NaN NaN "
1092 ]
1093 },
1094 "execution_count": 10,
1095 "metadata": {},
1096 "output_type": "execute_result"
1097 }
1098 ],
1099 "source": [
1100 "sjoin(pointdf, polydf, how=\"left\", op=\"within\")"
1101 ]
1102 }
1103 ],
1104 "metadata": {
1105 "kernelspec": {
1106 "display_name": "Python 3",
1107 "language": "python",
1108 "name": "python3"
1109 },
1110 "language_info": {
1111 "codemirror_mode": {
1112 "name": "ipython",
1113 "version": 3
1114 },
1115 "file_extension": ".py",
1116 "mimetype": "text/x-python",
1117 "name": "python",
1118 "nbconvert_exporter": "python",
1119 "pygments_lexer": "ipython3",
1120 "version": "3.6.1"
1121 }
1122 },
1123 "nbformat": 4,
1124 "nbformat_minor": 1
1125 }
examples/test.png less more
Binary diff not shown
examples/test_buffer.png less more
Binary diff not shown
+0
-65
examples/volcano_data_2010.csv less more
0 Year,Month,Day,TSU,EQ,Name,Location,Country,Latitude,Longitude,Elevation,Type,Status,Time,VEI,Agent,DEATHS,DEATHS_DESCRIPTION,MISSING,MISSING_DESCRIPTION,INJURIES,INJURIES_DESCRIPTION,DAMAGE_MILLIONS_DOLLARS,DAMAGE_DESCRIPTION,HOUSES_DESTROYED,HOUSES_DESTROYED_DESCRIPTION,TOTAL_DEATHS,TOTAL_DEATHS_DESCRIPTION,TOTAL_MISSING,TOTAL_MISSING_DESCRIPTION,TOTAL_INJURIES,TOTAL_INJURIES_DESCRIPTION,TOTAL_DAMAGE_MILLIONS_DOLLARS,TOTAL_DAMAGE_DESCRIPTION,TOTAL_HOUSES_DESTROYED,TOTAL_HOUSES_DESTROYED_DESCRIPTION
1
2 2010,1,,,,Tungurahua,Ecuador,Ecuador,-1.467,-78.442,5023,Stratovolcano,Historical,D1,3,,,,,,,,,1,,,,,,,,,,1,,
3 2010,3,31,,,Eyjafjallajokull,Iceland-S,Iceland,63.63,-19.62,1666,Stratovolcano,Historical,D1,2,,2,1,,,,,,,,,2,1,,,,,,,,
4 2010,5,27,,,Pacaya,Guatemala,Guatemala,14.381,-90.601,2552,Complex volcano,Historical,D1,1,T,1,1,3,1,,,,1,3,1,1,1,3,1,,,,1,3,1
5 2010,5,29,TSU,EQ,Sarigan,Mariana Is-C Pacific,United States,16.708,145.78,538,Stratovolcano,Holocene,U,,,,,,,,,,,,,,,,,,,,,,
6 2010,8,6,,,Karangetang [Api Siau],Sangihe Is-Indonesia,Indonesia,2.78,125.48,1784,Stratovolcano,Historical,D1,3,,4,1,,,5,1,,,,1,4,1,,,5,1,,,,1
7 2010,8,30,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,2,1,,,,,,,,,2,1,,,,,,,,
8 2010,10,26,,,Merapi,Java,Indonesia,-7.542,110.442,2947,Stratovolcano,Historical,D1,,,367,3,,,277,3,600,4,,3,367,3,,,277,3,600,4,,3
9 2010,11,,,,Tungurahua,Ecuador,Ecuador,-1.467,-78.442,5023,Stratovolcano,Historical,D1,3,,,,,,,,,1,,,,,,,,,,1,,
10 2010,12,28,,,Tengger Caldera,Java,Indonesia,-7.942,112.95,2329,Stratovolcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,,,
11 2011,1,3,,,Merapi,Java,Indonesia,-7.542,110.442,2947,Stratovolcano,Historical,D1,,M,1,1,,,1,1,,1,,,1,1,,,1,1,,1,,
12 2011,1,28,,,Kirishima,Kyushu-Japan,Japan,31.93,130.87,1700,Shield volcano,Historical,D1,,,,,,,,1,,1,,,,,,,,1,,1,,
13 2011,2,23,,,Bulusan,Luzon-Philippines,Philippines,12.77,124.05,1565,Stratovolcano,Historical,D1,2,,1,1,,,,,,,,,1,1,,,,,,,,
14 2011,3,18,,,Karangetang [Api Siau],Sangihe Is-Indonesia,Indonesia,2.78,125.48,1784,Stratovolcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,1,,
15 2011,4,,,,Tungurahua,Ecuador,Ecuador,-1.467,-78.442,5023,Stratovolcano,Historical,D1,4,,,,,,,,,1,,,,,,,,,,1,,
16 2011,6,4,,,Puyehue,Chile-C,Chile,-40.59,-72.117,2236,Stratovolcano,Holocene,U,4,,,,,,,,,2,,,,,,,,,,2,,
17 2011,6,22,,,Nabro,Africa-NE,Eritrea,13.37,41.7,2218,Stratovolcano,Holocene,Unknown,3,,31,1,,,,3,,1,,,31,1,,,,3,,1,,
18 2011,7,9,,,Katla,Iceland-S,Iceland,63.63,-19.05,1512,Subglacial volcano,Historical,D2,,,,,,,,,,1,,,,,,,,,,1,,
19 2011,7,17,,,Lokon-Empung,Sulawesi-Indonesia,Indonesia,1.358,124.792,1580,Stratovolcano,Historical,D1,,,1,1,,,,,,,,,1,1,,,,,,,,
20 2011,12,27,,,Gamalama,Halmahera-Indonesia,Indonesia,.8,127.325,1715,Stratovolcano,Historical,D1,3,m,4,1,,,,1,,,,,4,1,,,,1,,,,
21 2012,2,10,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,,,,,,,,,,2,,,,,,,,,,2,,
22 2012,3,2,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,,L,,,,,,,,1,1,1,,,,,,,,,,
23 2012,12,12,,,Tolbachik,Kamchatka,Russia,55.83,160.33,3682,Shield volcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,1,,
24 2013,2,12,,,Merapi,Java,Indonesia,-7.542,110.442,2947,Stratovolcano,Historical,D1,,M,1,1,,,1,1,,1,,,1,1,,,1,1,,1,,
25 2013,2,,,,Paluweh,Lesser Sunda Is,Indonesia,-8.32,121.708,875,Stratovolcano,Historical,D1,,,,,,,,,,1,,1,,,,,,,,1,,1
26 2013,5,7,,,Mayon,Luzon-Philippines,Philippines,13.257,123.685,2462,Stratovolcano,Historical,D1,,,5,1,,,8,1,,,,,5,1,,,8,1,,,,
27 2013,8,10,,,Paluweh,Lesser Sunda Is,Indonesia,-8.32,121.708,875,Stratovolcano,Historical,D1,3,,5,1,,,,,,,,,5,1,,,,,,,,
28 2013,9,1,,,Ubinas,Peru,Peru,-16.355,-70.903,5672,Stratovolcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,1,,
29 2013,9,4,,,Sakura-jima,Kyushu-Japan,Japan,31.58,130.67,1117,Stratovolcano,Historical,D1,,,,,,,,,,1,,,,,,,,,,1,,
30 2013,9,15,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,2,,,,,,,,,2,,,,,,,,,,2,,
31 2013,12,13,,,Okataina,New Zealand,New Zealand,-38.12,176.5,1111,Lava dome,Historical,D1,,G,1,1,,,,,,,,,1,1,,,,,,,,
32 2014,2,1,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,17,1,,,3,1,,1,,2,17,1,,,3,1,,1,,2
33 2014,2,13,,,Kelut,Java,Indonesia,-7.93,112.308,1731,Stratovolcano,Historical,D1,,,7,1,,,,,,3,4098,4,7,1,,,,,,3,4098,4
34 2014,9,27,,,On-take,Honshu-Japan,Japan,35.9,137.48,3063,Complex volcano,Historical,D1,3,,55,2,,,70,2,,,,,55,2,,,70,2,,,,
35 2014,11,10,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,,,,,,,,,14.5,3,1,1,,,,,,,14.5,3,1,1
36 2014,11,23,,,Fogo,Cape Verde Is,Cape Verde,14.95,-24.35,2829,Stratovolcano,Historical,D1,,,,,,,,,,2,230,3,,,,,,,,2,230,3
37 2014,12,18,,,Gamalama,Halmahera-Indonesia,Indonesia,.8,127.325,1715,Stratovolcano,Historical,D1,,,1,1,,,4,1,,,,,1,1,,,4,1,,,,
38 2015,2,20,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,,,,,,,,1,,1,,,,,,,,1,,1
39 2015,4,22,,,Calbuco,Chile-S,Chile,-41.326,-72.614,2003,Stratovolcano,Historical,D2,,,,,,,,,,2,,2,,,,,,,,2,,2
40 2015,5,7,,,Karangetang [Api Siau],Sangihe Is-Indonesia,Indonesia,2.78,125.48,1784,Stratovolcano,Historical,D1,,,,,,,,,,1,,1,,,,,,,,1,,1
41 2015,7,31,,,Manam,New Guinea-NE of,Papua New Guinea,-4.1,145.061,1807,Stratovolcano,Historical,D1,2,,,,,,2,1,,1,,,,,,,2,1,,1,,
42 2015,10,16,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,M,1,1,,,,,,1,,,1,1,,,,,,1,,
43 2015,10,,,,Okataina,New Zealand,New Zealand,-38.12,176.5,1111,Lava dome,Historical,D1,,I,1,1,,,,,,,,,1,1,,,,,,,,
44 2016,5,9,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,1,1,,,4,1,,1,3,1,1,1,,,4,1,,1,,
45 2016,5,21,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,,7,1,,,3,1,100,4,,,7,1,,,3,1,100,4,,
46 2016,6,9,,,Yellowstone,US-Wyoming,United States,44.43,-110.67,2805,Caldera,Tephrochronology,D7,,,1,1,,,,,,,,,1,1,,,,,,,,
47 2016,9,27,,,Rinjani,Lesser Sunda Is,Indonesia,-8.42,116.47,3726,Stratovolcano,Historical,D1,,,,,44,1,,,,,,,,,44,1,,,,,,
48 2016,10,8,,,Aso,Kyushu-Japan,Japan,32.88,131.1,1592,Caldera,Historical,D1,,T,,,,,,,,1,,,,,,,,,,1,,
49 2017,3,15,,,Etna,Italy,Italy,37.734,15.004,3350,Stratovolcano,Historical,D1,,P,,,,,10,1,,,,,,,,,10,1,,,,
50 2017,4,13,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,2,P,,,,,,,,1,,2,,,,,,,,1,,2
51 2017,6,6,,,Fuego,Guatemala,Guatemala,14.473,-90.88,3763,Stratovolcano,Historical,D1,2,P,,,,,,,,2,,,,,,,,,,2,,
52 2017,7,1,,,Dieng Volc Complex,Java,Indonesia,-7.2,109.92,2565,Complex volcano,Historical,D1,,,8,1,,,11,1,,,,,8,1,,,11,1,,,,
53 2017,9,12,,,Campi Flegrei,Italy,Italy,40.827,14.139,458,Caldera,Historical,D5,,,3,1,,,,,,,,,3,1,,,,,,,,
54 2017,9,23,,,Aoba,Vanuatu-SW Pacific,Vanuatu,-15.4,167.83,1496,Shield volcano,Historical,D1,,T,,,,,,,,1,,,,,,,,,,1,,
55 2017,12,18,,,Merapi,Java,Indonesia,-7.542,110.442,2947,Stratovolcano,Historical,D1,,A,8,1,,,8,1,,,,,8,1,,,8,1,,,,
56 2017,12,27,,,Sinabung,Sumatra,Indonesia,3.17,98.392,2460,Stratovolcano,Holocene,U,,T,,,,,,,,2,,,,,,,,,,2,,
57 2018,1,5,,,Kadovar,New Guinea-NE of,Papua New Guinea,-3.62,144.62,365,Stratovolcano,Holocene,U,,T,,,,,,,,1,,,,,,,,,,1,,
58 2018,1,13,,,Mayon,Luzon-Philippines,Philippines,13.257,123.685,2462,Stratovolcano,Historical,D1,,"T,P",,,,,1972,4,3.72,2,,,,,,,1972,4,3.72,2,,
59 2018,1,23,,,Kusatsu-Shirane,Honshu-Japan,Japan,36.62,138.55,2176,Stratovolcano,Historical,D1,,T,1,1,,,11,1,,1,,,1,1,,,11,1,,1,,
60 2018,2,1,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,1,G,1,1,,,3,1,,,,,1,1,,,3,1,,,,
61 2018,2,9,TSU,,Kadovar,New Guinea-NE of,Papua New Guinea,-3.62,144.62,365,Stratovolcano,Holocene,U,,W,,,,,,,,,,,,,,,,,,,,
62 2018,3,21,,,Ijen,Java,Indonesia,-8.058,114.242,2799,Stratovolcano,Historical,D1,,G,,,,,30,1,,,,,,,,,30,1,,,,
63 2018,4,28,,,Kilauea,Hawaiian Is,United States,19.425,-155.292,1222,Shield volcano,Historical,D1,1,L,,,,,,,,1,2,1,,,,,,,,1,2,1
64 2018,4,,,,Aoba,Vanuatu-SW Pacific,Vanuatu,-15.4,167.83,1496,Shield volcano,Historical,D1,3,"T,G",4,1,,,,,,1,,1,4,1,,,,,,1,,1
0 import contextlib
01 from distutils.version import LooseVersion
12 import importlib
23 import os
34 import warnings
45
56 import pandas as pd
7 import pyproj
68 import shapely
9 import shapely.geos
10
711
812 # -----------------------------------------------------------------------------
913 # pandas compat
1014 # -----------------------------------------------------------------------------
1115
12 PANDAS_GE_024 = str(pd.__version__) >= LooseVersion("0.24.0")
1316 PANDAS_GE_025 = str(pd.__version__) >= LooseVersion("0.25.0")
14 PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("0.26.0.dev")
15 PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0.dev")
17 PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("1.0.0")
18 PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0")
19 PANDAS_GE_115 = str(pd.__version__) >= LooseVersion("1.1.5")
20 PANDAS_GE_12 = str(pd.__version__) >= LooseVersion("1.2.0")
1621
1722
1823 # -----------------------------------------------------------------------------
2126
2227
2328 SHAPELY_GE_17 = str(shapely.__version__) >= LooseVersion("1.7.0")
29 SHAPELY_GE_18 = str(shapely.__version__) >= LooseVersion("1.8")
30 SHAPELY_GE_20 = str(shapely.__version__) >= LooseVersion("2.0")
31
32 GEOS_GE_390 = shapely.geos.geos_version >= (3, 9, 0)
33
2434
2535 HAS_PYGEOS = None
2636 USE_PYGEOS = None
2737 PYGEOS_SHAPELY_COMPAT = None
2838
39 PYGEOS_GE_09 = None
40
2941 try:
3042 import pygeos # noqa
3143
32 HAS_PYGEOS = True
44 # only automatically use pygeos if version is high enough
45 if str(pygeos.__version__) >= LooseVersion("0.8"):
46 HAS_PYGEOS = True
47 PYGEOS_GE_09 = str(pygeos.__version__) >= LooseVersion("0.9")
48 else:
49 warnings.warn(
50 "The installed version of PyGEOS is too old ({0} installed, 0.8 required),"
51 " and thus GeoPandas will not use PyGEOS.".format(pygeos.__version__),
52 UserWarning,
53 )
54 HAS_PYGEOS = False
3355 except ImportError:
3456 HAS_PYGEOS = False
3557
6486 import pygeos # noqa
6587
6688 # validate the pygeos version
67 if not str(pygeos.__version__) >= LooseVersion("0.6"):
89 if not str(pygeos.__version__) >= LooseVersion("0.8"):
6890 raise ImportError(
6991 "PyGEOS >= 0.6 is required, version {0} is installed".format(
7092 pygeos.__version__
101123 set_use_pygeos()
102124
103125
126 # compat related to deprecation warnings introduced in Shapely 1.8
127 # -> creating a numpy array from a list-like of Multi-part geometries,
128 # although doing the correct thing (not expanding in its parts), still raises
129 # the warning about iteration being deprecated
130 # This adds a context manager to explicitly ignore this warning
131
132
133 try:
134 from shapely.errors import ShapelyDeprecationWarning as shapely_warning
135 except ImportError:
136 shapely_warning = None
137
138
139 if shapely_warning is not None and not SHAPELY_GE_20:
140
141 @contextlib.contextmanager
142 def ignore_shapely2_warnings():
143 with warnings.catch_warnings():
144 warnings.filterwarnings(
145 "ignore", "Iteration|The array interface|__len__", shapely_warning
146 )
147 yield
148
149
150 else:
151
152 @contextlib.contextmanager
153 def ignore_shapely2_warnings():
154 yield
155
156
104157 def import_optional_dependency(name: str, extra: str = ""):
105158 """
106159 Import an optional dependency.
150203 HAS_RTREE = True
151204 except ImportError:
152205 HAS_RTREE = False
206
207 # -----------------------------------------------------------------------------
208 # pyproj compat
209 # -----------------------------------------------------------------------------
210
211 PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3")
101101 if compat.USE_PYGEOS and compat.PYGEOS_SHAPELY_COMPAT:
102102 if not isinstance(data, np.ndarray):
103103 arr = np.empty(len(data), dtype=object)
104 arr[:] = data
104 with compat.ignore_shapely2_warnings():
105 arr[:] = data
105106 else:
106107 arr = data
107108 try:
120121 else:
121122 out.append(geom)
122123 elif hasattr(geom, "__geo_interface__"):
123 geom = shapely.geometry.asShape(geom)
124 # asShape returns GeometryProxy -> trigger actual materialization
125 # with one of its methods
126 geom.wkb
124 geom = shapely.geometry.shape(geom)
127125 if compat.USE_PYGEOS:
128126 out.append(_shapely_to_pygeos(geom))
129127 else:
139137 # numpy can expand geometry collections into 2D arrays, use this
140138 # two-step construction to avoid this
141139 aout = np.empty(len(data), dtype=object)
142 aout[:] = out
140 with compat.ignore_shapely2_warnings():
141 aout[:] = out
143142 return aout
144143
145144
146145 def to_shapely(data):
147146 if compat.USE_PYGEOS:
148147 out = np.empty(len(data), dtype=object)
149 out[:] = [_pygeos_to_shapely(geom) for geom in data]
148 with compat.ignore_shapely2_warnings():
149 out[:] = [_pygeos_to_shapely(geom) for geom in data]
150150 return out
151151 else:
152152 return data
171171 out.append(geom)
172172
173173 aout = np.empty(len(data), dtype=object)
174 aout[:] = out
174 with compat.ignore_shapely2_warnings():
175 aout[:] = out
175176 return aout
176177
177178
178 def to_wkb(data, hex=False):
179 if compat.USE_PYGEOS:
180 return pygeos.to_wkb(data, hex=hex)
179 def to_wkb(data, hex=False, **kwargs):
180 if compat.USE_PYGEOS:
181 return pygeos.to_wkb(data, hex=hex, **kwargs)
181182 else:
182183 if hex:
183184 out = [geom.wkb_hex if geom is not None else None for geom in data]
207208 out.append(geom)
208209
209210 aout = np.empty(len(data), dtype=object)
210 aout[:] = out
211 with compat.ignore_shapely2_warnings():
212 aout[:] = out
211213 return aout
212214
213215
262264
263265 def _binary_geo(op, left, right):
264266 # type: (str, np.array[geoms], [np.array[geoms]/BaseGeometry]) -> np.array[geoms]
265 """ Apply geometry-valued operation
267 """Apply geometry-valued operation
266268
267269 Supports:
268270
280282 # intersection can return empty GeometryCollections, and if the
281283 # result are only those, numpy will coerce it to empty 2D array
282284 data = np.empty(len(left), dtype=object)
283 data[:] = [
284 getattr(s, op)(right) if s is not None and right is not None else None
285 for s in left
286 ]
285 with compat.ignore_shapely2_warnings():
286 data[:] = [
287 getattr(s, op)(right) if s is not None and right is not None else None
288 for s in left
289 ]
287290 return data
288291 elif isinstance(right, np.ndarray):
289292 if len(left) != len(right):
292295 )
293296 raise ValueError(msg)
294297 data = np.empty(len(left), dtype=object)
295 data[:] = [
296 getattr(this_elem, op)(other_elem)
297 if this_elem is not None and other_elem is not None
298 else None
299 for this_elem, other_elem in zip(left, right)
300 ]
298 with compat.ignore_shapely2_warnings():
299 data[:] = [
300 getattr(this_elem, op)(other_elem)
301 if this_elem is not None and other_elem is not None
302 else None
303 for this_elem, other_elem in zip(left, right)
304 ]
301305 return data
302306 else:
303307 raise TypeError("Type not known: {0} vs {1}".format(type(left), type(right)))
431435 res = getattr(shapely.affinity, op)(geom, *args, **kwargs)
432436 out.append(res)
433437 data = np.empty(len(left), dtype=object)
434 data[:] = out
438 with compat.ignore_shapely2_warnings():
439 data[:] = out
435440 return from_shapely(data)
436441
437442
474479
475480
476481 def is_ring(data):
477 if compat.USE_PYGEOS:
478 return pygeos.is_ring(pygeos.get_exterior_ring(data))
479 else:
480 # operates on the exterior, so can't use _unary_op()
481 # XXX needed to change this because there is now a geometry collection
482 # in the shapely ones that was something else before?
483 return np.array(
484 [
485 geom.exterior.is_ring
486 if geom is not None
487 and hasattr(geom, "exterior")
488 and geom.exterior is not None
489 else False
490 for geom in data
491 ],
492 dtype=bool,
482 if "Polygon" in geom_type(data):
483 warnings.warn(
484 "is_ring currently returns True for Polygons, which is not correct. "
485 "This will be corrected to False in a future release.",
486 FutureWarning,
487 stacklevel=3,
493488 )
489 if compat.USE_PYGEOS:
490 return pygeos.is_ring(data) | pygeos.is_ring(pygeos.get_exterior_ring(data))
491 else:
492 # for polygons operates on the exterior, so can't use _unary_op()
493 results = []
494 for geom in data:
495 if geom is None:
496 results.append(False)
497 elif geom.type == "Polygon":
498 results.append(geom.exterior.is_ring)
499 elif geom.type in ["LineString", "LinearRing"]:
500 results.append(geom.is_ring)
501 else:
502 results.append(False)
503 return np.array(results, dtype=bool)
494504
495505
496506 def is_closed(data):
539549 """Unary operation that returns new geometries"""
540550 # ensure 1D output, see note above
541551 data = np.empty(len(left), dtype=object)
542 data[:] = [getattr(geom, op, None) for geom in left]
552 with compat.ignore_shapely2_warnings():
553 data[:] = [getattr(geom, op, None) for geom in left]
543554 return data
544555
545556
761772 "length of the GeoSeries"
762773 )
763774
775 with compat.ignore_shapely2_warnings():
776 out[:] = [
777 geom.buffer(dist, resolution, **kwargs)
778 if geom is not None
779 else None
780 for geom, dist in zip(data, distance)
781 ]
782 return out
783
784 with compat.ignore_shapely2_warnings():
764785 out[:] = [
765 geom.buffer(dist, resolution, **kwargs) if geom is not None else None
766 for geom, dist in zip(data, distance)
786 geom.buffer(distance, resolution, **kwargs)
787 if geom is not None
788 else None
789 for geom in data
767790 ]
768 return out
769
770 out[:] = [
771 geom.buffer(distance, resolution, **kwargs) if geom is not None else None
772 for geom in data
773 ]
774791 return out
775792
776793
802819 else:
803820 # method and not a property -> can't use _unary_geo
804821 out = np.empty(len(data), dtype=object)
805 out[:] = [
806 geom.simplify(tolerance, preserve_topology=preserve_topology)
807 for geom in data
808 ]
822 with compat.ignore_shapely2_warnings():
823 out[:] = [
824 geom.simplify(tolerance, preserve_topology=preserve_topology)
825 for geom in data
826 ]
827 return out
828
829
830 def _shapely_normalize(geom):
831 """
832 Small helper function for now because it is not yet available in Shapely.
833 """
834 from shapely.geos import lgeos
835 from shapely.geometry.base import geom_factory
836 from ctypes import c_void_p, c_int
837
838 lgeos._lgeos.GEOSNormalize_r.restype = c_int
839 lgeos._lgeos.GEOSNormalize_r.argtypes = [c_void_p, c_void_p]
840
841 geom_cloned = lgeos.GEOSGeom_clone(geom._geom)
842 lgeos._lgeos.GEOSNormalize_r(lgeos.geos_handle, geom_cloned)
843 return geom_factory(geom_cloned)
844
845
846 def normalize(data):
847 if compat.USE_PYGEOS:
848 return pygeos.normalize(data)
849 else:
850 out = np.empty(len(data), dtype=object)
851 with compat.ignore_shapely2_warnings():
852 out[:] = [
853 _shapely_normalize(geom) if geom is not None else None for geom in data
854 ]
809855 return out
810856
811857
847893 return pygeos.get_y(data)
848894 else:
849895 return _unary_op("y", data, null_value=np.nan)
896
897
898 def get_z(data):
899 if compat.USE_PYGEOS:
900 return pygeos.get_z(data)
901 else:
902 data = [geom.z if geom.has_z else np.nan for geom in data]
903 return np.array(data, dtype=np.dtype(float))
850904
851905
852906 def bounds(data):
886940 result = np.empty(n, dtype=object)
887941 for i in range(n):
888942 geom = data[i]
889 result[i] = transform(func, geom)
943 if _isna(geom):
944 result[i] = geom
945 else:
946 result[i] = transform(func, geom)
890947
891948 return result
2121 # setup.py/versioneer.py will grep for the variable names, so they must
2222 # each be defined on a line of their own. _version.py will just call
2323 # get_keywords().
24 git_refnames = " (tag: v0.8.2, 0.8.x)"
25 git_full = "928fe6c2cad130b40b64d3cce295f4e4a6ba9624"
24 git_refnames = " (tag: v0.9.0)"
25 git_full = "ec4c6805d1182f846b9659345a5e66fa7c7afac7"
2626 keywords = {"refnames": git_refnames, "full": git_full}
2727 return keywords
2828
55
66 import numpy as np
77 import pandas as pd
8 from pandas.api.extensions import ExtensionArray, ExtensionDtype
8 from pandas.api.extensions import (
9 ExtensionArray,
10 ExtensionDtype,
11 register_extension_dtype,
12 )
913
1014 import shapely
1115 import shapely.affinity
1317 from shapely.geometry.base import BaseGeometry
1418 import shapely.ops
1519 import shapely.wkt
16 from pyproj import CRS
20 from pyproj import CRS, Transformer
1721
1822 try:
1923 import pygeos
2226
2327 from . import _compat as compat
2428 from . import _vectorized as vectorized
29 from .sindex import _get_sindex_class
2530
2631
2732 class GeometryDtype(ExtensionDtype):
4752 return GeometryArray
4853
4954
50 if compat.PANDAS_GE_024:
51 from pandas.api.extensions import register_extension_dtype
52
53 register_extension_dtype(GeometryDtype)
55 register_extension_dtype(GeometryDtype)
5456
5557
5658 def _isna(value):
141143
142144 def _is_scalar_geometry(geom):
143145 if compat.USE_PYGEOS:
144 return isinstance(geom, pygeos.Geometry)
146 return isinstance(geom, (pygeos.Geometry, BaseGeometry))
145147 else:
146148 return isinstance(geom, BaseGeometry)
147149
191193 return GeometryArray(vectorized.from_wkb(data), crs=crs)
192194
193195
194 def to_wkb(geoms, hex=False):
196 def to_wkb(geoms, hex=False, **kwargs):
195197 """
196198 Convert GeometryArray to a numpy object array of WKB objects.
197199 """
198200 if not isinstance(geoms, GeometryArray):
199201 raise ValueError("'geoms' must be a GeometryArray")
200 return vectorized.to_wkb(geoms.data, hex=hex)
202 return vectorized.to_wkb(geoms.data, hex=hex, **kwargs)
201203
202204
203205 def from_wkt(data, crs=None):
230232 """
231233 Generate GeometryArray of shapely Point geometries from x, y(, z) coordinates.
232234
235 In case of geographic coordinates, it is assumed that longitude is captured by
236 ``x`` coordinates and latitude by ``y``.
237
233238 Parameters
234239 ----------
235240 x, y, z : iterable
240245
241246 Examples
242247 --------
248 >>> import pandas as pd
249 >>> df = pd.DataFrame({'x': [0, 1, 2], 'y': [0, 1, 2], 'z': [0, 1, 2]})
250 >>> df
251 x y z
252 0 0 0 0
253 1 1 1 1
254 2 2 2 2
243255 >>> geometry = geopandas.points_from_xy(x=[1, 0], y=[0, 1])
244256 >>> geometry = geopandas.points_from_xy(df['x'], df['y'], df['z'])
245257 >>> gdf = geopandas.GeoDataFrame(
246 df, geometry=geopandas.points_from_xy(df['x'], df['y']))
258 ... df, geometry=geopandas.points_from_xy(df['x'], df['y']))
259
260 Having geographic coordinates:
261
262 >>> df = pd.DataFrame({'longitude': [-140, 0, 123], 'latitude': [-65, 1, 48]})
263 >>> df
264 longitude latitude
265 0 -140 -65
266 1 0 1
267 2 123 48
268 >>> geometry = geopandas.points_from_xy(df.longitude, df.latitude, crs="EPSG:4326")
247269
248270 Returns
249271 -------
278300
279301 self._crs = None
280302 self.crs = crs
303 self._sindex = None
304
305 @property
306 def sindex(self):
307 if self._sindex is None:
308 self._sindex = _get_sindex_class()(self.data)
309 return self._sindex
310
311 @property
312 def has_sindex(self):
313 """Check the existence of the spatial index without generating it.
314
315 Use the `.sindex` attribute on a GeoDataFrame or GeoSeries
316 to generate a spatial index if it does not yet exist,
317 which may take considerable time based on the underlying index
318 implementation.
319
320 Note that the underlying spatial index may not be fully
321 initialized until the first use.
322
323 See Also
324 ---------
325 GeoDataFrame.has_sindex
326
327 Returns
328 -------
329 bool
330 `True` if the spatial index has been generated or
331 `False` if not.
332 """
333 return self._sindex is not None
281334
282335 @property
283336 def crs(self):
355408 raise TypeError("should be valid geometry")
356409 if isinstance(key, (slice, list, np.ndarray)):
357410 value_array = np.empty(1, dtype=object)
358 value_array[:] = [value]
411 with compat.ignore_shapely2_warnings():
412 value_array[:] = [value]
359413 self.data[key] = value_array
360414 else:
361415 self.data[key] = value
364418 "Value should be either a BaseGeometry or None, got %s" % str(value)
365419 )
366420
421 # invalidate spatial index
422 self._sindex = None
423
367424 # TODO: use this once pandas-dev/pandas#33457 is fixed
368425 # if hasattr(value, "crs"):
369426 # if value.crs and (value.crs != self.crs):
372429 # "and CRS of existing geometries."
373430 # )
374431
375 if compat.USE_PYGEOS:
376
377 def __getstate__(self):
432 def __getstate__(self):
433 if compat.USE_PYGEOS:
378434 return (pygeos.to_wkb(self.data), self._crs)
379
380 def __setstate__(self, state):
435 else:
436 return self.__dict__
437
438 def __setstate__(self, state):
439 if compat.USE_PYGEOS:
381440 geoms = pygeos.from_wkb(state[0])
382441 self._crs = state[1]
442 self._sindex = None # pygeos.STRtree could not be pickled yet
383443 self.data = geoms
384444 self.base = None
385
386 else:
387
388 def __setstate__(self, state):
445 else:
389446 if "_crs" not in state:
390447 state["_crs"] = None
391448 self.__dict__.update(state)
650707 crs=self.crs,
651708 )
652709
710 def to_crs(self, crs=None, epsg=None):
711 """Returns a ``GeometryArray`` with all geometries transformed to a new
712 coordinate reference system.
713
714 Transform all geometries in a GeometryArray to a different coordinate
715 reference system. The ``crs`` attribute on the current GeometryArray must
716 be set. Either ``crs`` or ``epsg`` may be specified for output.
717
718 This method will transform all points in all objects. It has no notion
719 or projecting entire geometries. All segments joining points are
720 assumed to be lines in the current projection, not geodesics. Objects
721 crossing the dateline (or other projection boundary) will have
722 undesirable behavior.
723
724 Parameters
725 ----------
726 crs : pyproj.CRS, optional if `epsg` is specified
727 The value can be anything accepted
728 by :meth:`pyproj.CRS.from_user_input() <pyproj.crs.CRS.from_user_input>`,
729 such as an authority string (eg "EPSG:4326") or a WKT string.
730 epsg : int, optional if `crs` is specified
731 EPSG code specifying output projection.
732
733 Returns
734 -------
735 GeometryArray
736
737 Examples
738 --------
739 >>> from shapely.geometry import Point
740 >>> from geopandas.array import from_shapely, to_wkt
741 >>> a = from_shapely([Point(1, 1), Point(2, 2), Point(3, 3)], crs=4326)
742 >>> to_wkt(a)
743 array(['POINT (1 1)', 'POINT (2 2)', 'POINT (3 3)'], dtype=object)
744 >>> a.crs # doctest: +SKIP
745 <Geographic 2D CRS: EPSG:4326>
746 Name: WGS 84
747 Axis Info [ellipsoidal]:
748 - Lat[north]: Geodetic latitude (degree)
749 - Lon[east]: Geodetic longitude (degree)
750 Area of Use:
751 - name: World
752 - bounds: (-180.0, -90.0, 180.0, 90.0)
753 Datum: World Geodetic System 1984
754 - Ellipsoid: WGS 84
755 - Prime Meridian: Greenwich
756
757 >>> a = a.to_crs(3857)
758 >>> to_wkt(a)
759 array(['POINT (111319 111325)', 'POINT (222639 222684)',
760 'POINT (333958 334111)'], dtype=object)
761 >>> a.crs # doctest: +SKIP
762 <Projected CRS: EPSG:3857>
763 Name: WGS 84 / Pseudo-Mercator
764 Axis Info [cartesian]:
765 - X[east]: Easting (metre)
766 - Y[north]: Northing (metre)
767 Area of Use:
768 - name: World - 85°S to 85°N
769 - bounds: (-180.0, -85.06, 180.0, 85.06)
770 Coordinate Operation:
771 - name: Popular Visualisation Pseudo-Mercator
772 - method: Popular Visualisation Pseudo Mercator
773 Datum: World Geodetic System 1984
774 - Ellipsoid: WGS 84
775 - Prime Meridian: Greenwich
776
777 """
778 if self.crs is None:
779 raise ValueError(
780 "Cannot transform naive geometries. "
781 "Please set a crs on the object first."
782 )
783 if crs is not None:
784 crs = CRS.from_user_input(crs)
785 elif epsg is not None:
786 crs = CRS.from_epsg(epsg)
787 else:
788 raise ValueError("Must pass either crs or epsg.")
789
790 # skip if the input CRS and output CRS are the exact same
791 if self.crs.is_exact_same(crs):
792 return self
793
794 transformer = Transformer.from_crs(self.crs, crs, always_xy=True)
795
796 new_data = vectorized.transform(self.data, transformer.transform)
797 return GeometryArray(new_data, crs=crs)
798
799 def estimate_utm_crs(self, datum_name="WGS 84"):
800 """Returns the estimated UTM CRS based on the bounds of the dataset.
801
802 .. versionadded:: 0.9
803
804 .. note:: Requires pyproj 3+
805
806 Parameters
807 ----------
808 datum_name : str, optional
809 The name of the datum to use in the query. Default is WGS 84.
810
811 Returns
812 -------
813 pyproj.CRS
814
815 Examples
816 --------
817 >>> world = geopandas.read_file(
818 ... geopandas.datasets.get_path("naturalearth_lowres")
819 ... )
820 >>> germany = world.loc[world.name == "Germany"]
821 >>> germany.geometry.values.estimate_utm_crs() # doctest: +SKIP
822 <Projected CRS: EPSG:32632>
823 Name: WGS 84 / UTM zone 32N
824 Axis Info [cartesian]:
825 - E[east]: Easting (metre)
826 - N[north]: Northing (metre)
827 Area of Use:
828 - name: World - N hemisphere - 6°E to 12°E - by country
829 - bounds: (6.0, 0.0, 12.0, 84.0)
830 Coordinate Operation:
831 - name: UTM zone 32N
832 - method: Transverse Mercator
833 Datum: World Geodetic System 1984
834 - Ellipsoid: WGS 84
835 - Prime Meridian: Greenwich
836 """
837 try:
838 from pyproj.aoi import AreaOfInterest
839 from pyproj.database import query_utm_crs_info
840 except ImportError:
841 raise RuntimeError("pyproj 3+ required for estimate_utm_crs.")
842
843 if not self.crs:
844 raise RuntimeError("crs must be set to estimate UTM CRS.")
845
846 minx, miny, maxx, maxy = self.total_bounds
847 # ensure using geographic coordinates
848 if not self.crs.is_geographic:
849 lon, lat = Transformer.from_crs(
850 self.crs, "EPSG:4326", always_xy=True
851 ).transform((minx, maxx, minx, maxx), (miny, miny, maxy, maxy))
852 x_center = np.mean(lon)
853 y_center = np.mean(lat)
854 else:
855 x_center = np.mean([minx, maxx])
856 y_center = np.mean([miny, maxy])
857
858 utm_crs_list = query_utm_crs_info(
859 datum_name=datum_name,
860 area_of_interest=AreaOfInterest(
861 west_lon_degree=x_center,
862 south_lat_degree=y_center,
863 east_lon_degree=x_center,
864 north_lat_degree=y_center,
865 ),
866 )
867 try:
868 return CRS.from_epsg(utm_crs_list[0].code)
869 except IndexError:
870 raise RuntimeError("Unable to determine UTM CRS")
871
653872 #
654873 # Coordinate related properties
655874 #
670889 return vectorized.get_y(self.data)
671890 else:
672891 message = "y attribute access only provided for Point geometries"
892 raise ValueError(message)
893
894 @property
895 def z(self):
896 """Return the z location of point geometries in a GeoSeries"""
897 if (self.geom_type[~self.isna()] == "Point").all():
898 return vectorized.get_z(self.data)
899 else:
900 message = "z attribute access only provided for Point geometries"
673901 raise ValueError(message)
674902
675903 @property
729957 return GeometryArray(result, crs=self.crs)
730958
731959 def _fill(self, idx, value):
732 """ Fill index locations with value
960 """Fill index locations with value
733961
734962 Value should be a BaseGeometry
735963 """
738966 "Value should be either a BaseGeometry or None, got %s" % str(value)
739967 )
740968 # self.data[idx] = value
741 self.data[idx] = np.array([value], dtype=object)
969 value_arr = np.empty(1, dtype=object)
970 value_arr[:] = [value]
971 self.data[idx] = value_arr
742972 return self
743973
744974 def fillna(self, value=None, method=None, limit=None):
745 """ Fill NA/NaN values using the specified method.
975 """Fill NA/NaN values using the specified method.
746976
747977 Parameters
748978 ----------
8461076 def nbytes(self):
8471077 return self.data.nbytes
8481078
1079 def shift(self, periods=1, fill_value=None):
1080 """
1081 Shift values by desired number.
1082
1083 Newly introduced missing values are filled with
1084 ``self.dtype.na_value``.
1085
1086 Parameters
1087 ----------
1088 periods : int, default 1
1089 The number of periods to shift. Negative values are allowed
1090 for shifting backwards.
1091
1092 fill_value : object, optional (default None)
1093 The scalar value to use for newly introduced missing values.
1094 The default is ``self.dtype.na_value``.
1095
1096 Returns
1097 -------
1098 GeometryArray
1099 Shifted.
1100
1101 Notes
1102 -----
1103 If ``self`` is empty or ``periods`` is 0, a copy of ``self`` is
1104 returned.
1105
1106 If ``periods > len(self)``, then an array of size
1107 len(self) is returned, with all values filled with
1108 ``self.dtype.na_value``.
1109 """
1110 shifted = super(GeometryArray, self).shift(periods, fill_value)
1111 shifted.crs = self.crs
1112 return shifted
1113
8491114 # -------------------------------------------------------------------------
8501115 # ExtensionArray specific
8511116 # -------------------------------------------------------------------------
9111176 pandas.factorize
9121177 ExtensionArray.factorize
9131178 """
914 return from_wkb(values)
1179 return from_wkb(values, crs=original.crs)
9151180
9161181 def _values_for_argsort(self):
9171182 # type: () -> np.ndarray
9601225 if precision is None:
9611226 # dummy heuristic based on 10 first geometries that should
9621227 # work in most cases
963 xmin, ymin, xmax, ymax = self[~self.isna()][:10].total_bounds
1228 with warnings.catch_warnings():
1229 warnings.simplefilter("ignore", category=RuntimeWarning)
1230 xmin, ymin, xmax, ymax = self[~self.isna()][:10].total_bounds
9641231 if (
9651232 (-180 <= xmin <= 180)
9661233 and (-180 <= xmax <= 180)
10161283
10171284 def _binop(self, other, op):
10181285 def convert_values(param):
1019 if isinstance(param, ExtensionArray) or pd.api.types.is_list_like(param):
1286 if not _is_scalar_geometry(param) and (
1287 isinstance(param, ExtensionArray) or pd.api.types.is_list_like(param)
1288 ):
10201289 ovalues = param
10211290 else: # Assume its an object
10221291 ovalues = [param] * len(self)
10231292 return ovalues
10241293
1025 if isinstance(other, (pd.Series, pd.Index)):
1294 if isinstance(other, (pd.Series, pd.Index, pd.DataFrame)):
10261295 # rely on pandas to unbox and dispatch to us
10271296 return NotImplemented
10281297
10441313
10451314 def __ne__(self, other):
10461315 return self._binop(other, operator.ne)
1316
1317 def __contains__(self, item):
1318 """
1319 Return for `item in self`.
1320 """
1321 if _isna(item):
1322 if (
1323 item is self.dtype.na_value
1324 or isinstance(item, self.dtype.type)
1325 or item is None
1326 ):
1327 return self.isna().any()
1328 else:
1329 return False
1330 return (self == item).any()
11
22 import numpy as np
33 import pandas as pd
4 from pandas import DataFrame, MultiIndex, Series
4 from pandas import DataFrame, Series
55
66 from shapely.geometry import box
77 from shapely.geometry.base import BaseGeometry
88 from shapely.ops import cascaded_union
99
10 import geopandas as gpd
11
1210 from .array import GeometryArray, GeometryDtype
13 from .sindex import get_sindex_class, has_sindex
14
15 # for backwards compat
16 # this will be static (will NOT follow USE_PYGEOS changes)
17 HAS_SINDEX = has_sindex()
1811
1912
2013 def is_geometry_type(data):
3023 return False
3124
3225
33 def _delegate_binary_method(op, this, other, *args, **kwargs):
26 def _delegate_binary_method(op, this, other, align, *args, **kwargs):
3427 # type: (str, GeoSeries, GeoSeries) -> GeoSeries/Series
3528 this = this.geometry
3629 if isinstance(other, GeoPandasBase):
37 if not this.index.equals(other.index):
30 if align and not this.index.equals(other.index):
3831 warn("The indices of the two GeoSeries are different.")
3932 this, other = this.align(other.geometry)
4033 else:
5144 return data, this.index
5245
5346
54 def _binary_geo(op, this, other):
47 def _binary_geo(op, this, other, align):
5548 # type: (str, GeoSeries, GeoSeries) -> GeoSeries
5649 """Binary operation on GeoSeries objects that returns a GeoSeries"""
5750 from .geoseries import GeoSeries
5851
59 geoms, index = _delegate_binary_method(op, this, other)
52 geoms, index = _delegate_binary_method(op, this, other, align)
6053 return GeoSeries(geoms.data, index=index, crs=this.crs)
6154
6255
63 def _binary_op(op, this, other, *args, **kwargs):
56 def _binary_op(op, this, other, align, *args, **kwargs):
6457 # type: (str, GeoSeries, GeoSeries, args/kwargs) -> Series[bool/float]
6558 """Binary operation on GeoSeries objects that returns a Series"""
66 data, index = _delegate_binary_method(op, this, other, *args, **kwargs)
59 data, index = _delegate_binary_method(op, this, other, align, *args, **kwargs)
6760 return Series(data, index=index)
6861
6962
9083
9184
9285 class GeoPandasBase(object):
93 _sindex = None
94 _sindex_generated = False
95
96 def _generate_sindex(self):
97 sindex_cls = get_sindex_class()
98 if sindex_cls is not None:
99 _sindex = sindex_cls(self.geometry)
100 if not _sindex.is_empty:
101 self._sindex = _sindex
102 else:
103 warn(
104 "Generated spatial index is empty and returned `None`. "
105 "Future versions of GeoPandas will return zero-length spatial "
106 "index instead of `None`. Use `len(gdf.sindex) > 0` "
107 "or `if gdf.sindex` instead of `if gd.sindex is not None` "
108 "to check for empty spatial indexes.",
109 FutureWarning,
110 stacklevel=3,
111 )
112 self._sindex = None
113 self._sindex_generated = True
114
115 def _invalidate_sindex(self):
116 """
117 Indicates that the spatial index should be re-built next
118 time it's requested.
119
120 """
121 self._sindex = None
122 self._sindex_generated = False
123
12486 @property
12587 def area(self):
12688 """Returns a ``Series`` containing the area of each geometry in the
127 ``GeoSeries``."""
89 ``GeoSeries`` expressed in the units of the CRS.
90
91 Examples
92 --------
93
94 >>> from shapely.geometry import Polygon, LineString, Point
95 >>> s = geopandas.GeoSeries(
96 ... [
97 ... Polygon([(0, 0), (1, 1), (0, 1)]),
98 ... Polygon([(10, 0), (10, 5), (0, 0)]),
99 ... Polygon([(0, 0), (2, 2), (2, 0)]),
100 ... LineString([(0, 0), (1, 1), (0, 1)]),
101 ... Point(0, 1)
102 ... ]
103 ... )
104 >>> s
105 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
106 1 POLYGON ((10.00000 0.00000, 10.00000 5.00000, ...
107 2 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 2....
108 3 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
109 4 POINT (0.00000 1.00000)
110 dtype: geometry
111
112 >>> s.area
113 0 0.5
114 1 25.0
115 2 2.0
116 3 0.0
117 4 0.0
118 dtype: float64
119
120 See also
121 --------
122 GeoSeries.length : measure length
123
124 Notes
125 -----
126 Area may be invalid for a geographic CRS using degrees as units;
127 use :meth:`GeoSeries.to_crs` to project geometries to a planar
128 CRS before using this function.
129
130 Every operation in GeoPandas is planar, i.e. the potential third
131 dimension is not taken into account.
132 """
128133 return _delegate_property("area", self)
129134
130135 @property
138143 can be anything accepted by
139144 :meth:`pyproj.CRS.from_user_input() <pyproj.crs.CRS.from_user_input>`,
140145 such as an authority string (eg "EPSG:4326") or a WKT string.
146
147 Examples
148 --------
149
150 >>> s.crs # doctest: +SKIP
151 <Geographic 2D CRS: EPSG:4326>
152 Name: WGS 84
153 Axis Info [ellipsoidal]:
154 - Lat[north]: Geodetic latitude (degree)
155 - Lon[east]: Geodetic longitude (degree)
156 Area of Use:
157 - name: World
158 - bounds: (-180.0, -90.0, 180.0, 90.0)
159 Datum: World Geodetic System 1984
160 - Ellipsoid: WGS 84
161 - Prime Meridian: Greenwich
162
163 See also
164 --------
165 GeoSeries.set_crs : assign CRS
166 GeoSeries.to_crs : re-project to another CRS
141167 """
142168 return self.geometry.values.crs
143169
148174
149175 @property
150176 def geom_type(self):
151 """Returns a ``Series`` of strings specifying the `Geometry Type` of each
152 object."""
177 """
178 Returns a ``Series`` of strings specifying the `Geometry Type` of each
179 object.
180
181 Examples
182 --------
183 >>> from shapely.geometry import Point, Polygon, LineString
184 >>> d = {'geometry': [Point(2, 1), Polygon([(0, 0), (1, 1), (1, 0)]),
185 ... LineString([(0, 0), (1, 1)])]}
186 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
187 >>> gdf.geom_type
188 0 Point
189 1 Polygon
190 2 LineString
191 dtype: object
192 """
153193 return _delegate_property("geom_type", self)
154194
155195 @property
159199
160200 @property
161201 def length(self):
162 """Returns a ``Series`` containing the length of each geometry."""
202 """Returns a ``Series`` containing the length of each geometry
203 expressed in the units of the CRS.
204
205 In the case of a (Multi)Polygon it measures the length
206 of its exterior (i.e. perimeter).
207
208 Examples
209 --------
210
211 >>> from shapely.geometry import Polygon, LineString, MultiLineString, Point, \
212 GeometryCollection
213 >>> s = geopandas.GeoSeries(
214 ... [
215 ... LineString([(0, 0), (1, 1), (0, 1)]),
216 ... LineString([(10, 0), (10, 5), (0, 0)]),
217 ... MultiLineString([((0, 0), (1, 0)), ((-1, 0), (1, 0))]),
218 ... Polygon([(0, 0), (1, 1), (0, 1)]),
219 ... Point(0, 1),
220 ... GeometryCollection([Point(1, 0), LineString([(10, 0), (10, 5), (0,\
221 0)])])
222 ... ]
223 ... )
224 >>> s
225 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
226 1 LINESTRING (10.00000 0.00000, 10.00000 5.00000...
227 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 0.0...
228 3 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
229 4 POINT (0.00000 1.00000)
230 5 GEOMETRYCOLLECTION (POINT (1.00000 0.00000), L...
231 dtype: geometry
232
233 >>> s.length
234 0 2.414214
235 1 16.180340
236 2 3.000000
237 3 3.414214
238 4 0.000000
239 5 16.180340
240 dtype: float64
241
242 See also
243 --------
244 GeoSeries.area : measure area of a polygon
245
246 Notes
247 -----
248 Length may be invalid for a geographic CRS using degrees as units;
249 use :meth:`GeoSeries.to_crs` to project geometries to a planar
250 CRS before using this function.
251
252 Every operation in GeoPandas is planar, i.e. the potential third
253 dimension is not taken into account.
254
255 """
163256 return _delegate_property("length", self)
164257
165258 @property
166259 def is_valid(self):
167260 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
168 geometries that are valid."""
261 geometries that are valid.
262
263 Examples
264 --------
265
266 An example with one invalid polygon (a bowtie geometry crossing itself)
267 and one missing geometry:
268
269 >>> from shapely.geometry import Polygon
270 >>> s = geopandas.GeoSeries(
271 ... [
272 ... Polygon([(0, 0), (1, 1), (0, 1)]),
273 ... Polygon([(0,0), (1, 1), (1, 0), (0, 1)]), # bowtie geometry
274 ... Polygon([(0, 0), (2, 2), (2, 0)]),
275 ... None
276 ... ]
277 ... )
278 >>> s
279 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
280 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 1....
281 2 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 2....
282 3 None
283 dtype: geometry
284
285 >>> s.is_valid
286 0 True
287 1 False
288 2 True
289 3 False
290 dtype: bool
291
292 """
169293 return _delegate_property("is_valid", self)
170294
171295 @property
180304 value:
181305
182306 >>> from shapely.geometry import Point
183 >>> d = {'geometry': [Point(), Point(2,1), None]}
184 >>> gdf = gpd.GeoDataFrame(d, crs="EPSG:4326")
307 >>> d = {'geometry': [Point(), Point(2, 1), None]}
308 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
185309 >>> gdf
186310 geometry
187311 0 GEOMETRYCOLLECTION EMPTY
205329 geometries that do not cross themselves.
206330
207331 This is meaningful only for `LineStrings` and `LinearRings`.
332
333 Examples
334 --------
335 >>> from shapely.geometry import LineString
336 >>> s = geopandas.GeoSeries(
337 ... [
338 ... LineString([(0, 0), (1, 1), (1, -1), (0, 1)]),
339 ... LineString([(0, 0), (1, 1), (1, -1)]),
340 ... ]
341 ... )
342 >>> s
343 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
344 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
345 dtype: geometry
346
347 >>> s.is_simple
348 0 False
349 1 True
350 dtype: bool
208351 """
209352 return _delegate_property("is_simple", self)
210353
211354 @property
212355 def is_ring(self):
213356 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
214 features that are closed."""
357 features that are closed.
358
359 When constructing a LinearRing, the sequence of coordinates may be
360 explicitly closed by passing identical values in the first and last indices.
361 Otherwise, the sequence will be implicitly closed by copying the first tuple
362 to the last index.
363
364 Examples
365 --------
366 >>> from shapely.geometry import LineString, LinearRing
367 >>> s = geopandas.GeoSeries(
368 ... [
369 ... LineString([(0, 0), (1, 1), (1, -1)]),
370 ... LineString([(0, 0), (1, 1), (1, -1), (0, 0)]),
371 ... LinearRing([(0, 0), (1, 1), (1, -1)]),
372 ... ]
373 ... )
374 >>> s
375 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
376 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
377 2 LINEARRING (0.00000 0.00000, 1.00000 1.00000, ...
378 dtype: geometry
379
380 >>> s.is_ring
381 0 False
382 1 True
383 2 True
384 dtype: bool
385
386 """
215387 return _delegate_property("is_ring", self)
216388
217389 @property
218390 def has_z(self):
219391 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
220 features that have a z-component."""
392 features that have a z-component.
393
394 Notes
395 ------
396 Every operation in GeoPandas is planar, i.e. the potential third
397 dimension is not taken into account.
398
399 Examples
400 --------
401 >>> from shapely.geometry import Point
402 >>> s = geopandas.GeoSeries(
403 ... [
404 ... Point(0, 1),
405 ... Point(0, 1, 2),
406 ... ]
407 ... )
408 >>> s
409 0 POINT (0.00000 1.00000)
410 1 POINT Z (0.00000 1.00000 2.00000)
411 dtype: geometry
412
413 >>> s.has_z
414 0 False
415 1 True
416 dtype: bool
417 """
221418 return _delegate_property("has_z", self)
222419
223420 #
227424 @property
228425 def boundary(self):
229426 """Returns a ``GeoSeries`` of lower dimensional objects representing
230 each geometries's set-theoretic `boundary`."""
427 each geometries's set-theoretic `boundary`.
428
429 Examples
430 --------
431
432 >>> from shapely.geometry import Polygon, LineString, Point
433 >>> s = geopandas.GeoSeries(
434 ... [
435 ... Polygon([(0, 0), (1, 1), (0, 1)]),
436 ... LineString([(0, 0), (1, 1), (1, 0)]),
437 ... Point(0, 0),
438 ... ]
439 ... )
440 >>> s
441 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
442 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
443 2 POINT (0.00000 0.00000)
444 dtype: geometry
445
446 >>> s.boundary
447 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
448 1 MULTIPOINT (0.00000 0.00000, 1.00000 0.00000)
449 2 GEOMETRYCOLLECTION EMPTY
450 dtype: geometry
451
452 See also
453 --------
454 GeoSeries.exterior : outer boundary (without interior rings)
455
456 """
231457 return _delegate_property("boundary", self)
232458
233459 @property
234460 def centroid(self):
235461 """Returns a ``GeoSeries`` of points representing the centroid of each
236 geometry."""
462 geometry.
463
464 Note that centroid does not have to be on or within original geometry.
465
466 Examples
467 --------
468
469 >>> from shapely.geometry import Polygon, LineString, Point
470 >>> s = geopandas.GeoSeries(
471 ... [
472 ... Polygon([(0, 0), (1, 1), (0, 1)]),
473 ... LineString([(0, 0), (1, 1), (1, 0)]),
474 ... Point(0, 0),
475 ... ]
476 ... )
477 >>> s
478 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
479 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
480 2 POINT (0.00000 0.00000)
481 dtype: geometry
482
483 >>> s.centroid
484 0 POINT (0.33333 0.66667)
485 1 POINT (0.70711 0.50000)
486 2 POINT (0.00000 0.00000)
487 dtype: geometry
488
489 See also
490 --------
491 GeoSeries.representative_point : point guaranteed to be within each geometry
492 """
237493 return _delegate_property("centroid", self)
238494
239495 @property
244500 The convex hull of a geometry is the smallest convex `Polygon`
245501 containing all the points in each geometry, unless the number of points
246502 in the geometric object is less than three. For two points, the convex
247 hull collapses to a `LineString`; for 1, a `Point`."""
503 hull collapses to a `LineString`; for 1, a `Point`.
504
505 Examples
506 --------
507
508 >>> from shapely.geometry import Polygon, LineString, Point, MultiPoint
509 >>> s = geopandas.GeoSeries(
510 ... [
511 ... Polygon([(0, 0), (1, 1), (0, 1)]),
512 ... LineString([(0, 0), (1, 1), (1, 0)]),
513 ... MultiPoint([(0, 0), (1, 1), (0, 1), (1, 0), (0.5, 0.5)]),
514 ... MultiPoint([(0, 0), (1, 1)]),
515 ... Point(0, 0),
516 ... ]
517 ... )
518 >>> s
519 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
520 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
521 2 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000, ...
522 3 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000)
523 4 POINT (0.00000 0.00000)
524 dtype: geometry
525
526 >>> s.convex_hull
527 0 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1....
528 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 1....
529 2 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1....
530 3 LINESTRING (0.00000 0.00000, 1.00000 1.00000)
531 4 POINT (0.00000 0.00000)
532 dtype: geometry
533
534 See also
535 --------
536 GeoSeries.envelope : bounding rectangle geometry
537
538 """
248539 return _delegate_property("convex_hull", self)
249540
250541 @property
254545
255546 The envelope of a geometry is the bounding rectangle. That is, the
256547 point or smallest rectangular polygon (with sides parallel to the
257 coordinate axes) that contains the geometry."""
548 coordinate axes) that contains the geometry.
549
550 Examples
551 --------
552
553 >>> from shapely.geometry import Polygon, LineString, Point, MultiPoint
554 >>> s = geopandas.GeoSeries(
555 ... [
556 ... Polygon([(0, 0), (1, 1), (0, 1)]),
557 ... LineString([(0, 0), (1, 1), (1, 0)]),
558 ... MultiPoint([(0, 0), (1, 1)]),
559 ... Point(0, 0),
560 ... ]
561 ... )
562 >>> s
563 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
564 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
565 2 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000)
566 3 POINT (0.00000 0.00000)
567 dtype: geometry
568
569 >>> s.envelope
570 0 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1....
571 1 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1....
572 2 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1....
573 3 POINT (0.00000 0.00000)
574 dtype: geometry
575
576 See also
577 --------
578 GeoSeries.convex_hull : convex hull geometry
579 """
258580 return _delegate_property("envelope", self)
259581
260582 @property
262584 """Returns a ``GeoSeries`` of LinearRings representing the outer
263585 boundary of each polygon in the GeoSeries.
264586
265 Applies to GeoSeries containing only Polygons.
587 Applies to GeoSeries containing only Polygons. Returns ``None``` for
588 other geometry types.
589
590 Examples
591 --------
592
593 >>> from shapely.geometry import Polygon, Point
594 >>> s = geopandas.GeoSeries(
595 ... [
596 ... Polygon([(0, 0), (1, 1), (0, 1)]),
597 ... Polygon([(1, 0), (2, 1), (0, 0)]),
598 ... Point(0, 1)
599 ... ]
600 ... )
601 >>> s
602 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
603 1 POLYGON ((1.00000 0.00000, 2.00000 1.00000, 0....
604 2 POINT (0.00000 1.00000)
605 dtype: geometry
606
607 >>> s.exterior
608 0 LINEARRING (0.00000 0.00000, 1.00000 1.00000, ...
609 1 LINEARRING (1.00000 0.00000, 2.00000 1.00000, ...
610 2 None
611 dtype: geometry
612
613 See also
614 --------
615 GeoSeries.boundary : complete set-theoretic boundary
616 GeoSeries.interiors : list of inner rings of each polygon
266617 """
267618 # TODO: return empty geometry for non-polygons
268619 return _delegate_property("exterior", self)
278629 ----------
279630 inner_rings: Series of List
280631 Inner rings of each polygon in the GeoSeries.
632
633 Examples
634 --------
635
636 >>> from shapely.geometry import Polygon
637 >>> s = geopandas.GeoSeries(
638 ... [
639 ... Polygon(
640 ... [(0, 0), (0, 5), (5, 5), (5, 0)],
641 ... [[(1, 1), (2, 1), (1, 2)], [(1, 4), (2, 4), (2, 3)]],
642 ... ),
643 ... Polygon([(1, 0), (2, 1), (0, 0)]),
644 ... ]
645 ... )
646 >>> s
647 0 POLYGON ((0.00000 0.00000, 0.00000 5.00000, 5....
648 1 POLYGON ((1.00000 0.00000, 2.00000 1.00000, 0....
649 dtype: geometry
650
651 >>> s.interiors
652 0 [LINEARRING (1 1, 2 1, 1 2, 1 1), LINEARRING (...
653 1 []
654 dtype: object
655
656 See also
657 --------
658 GeoSeries.exterior : outer boundary
281659 """
282660 return _delegate_property("interiors", self)
283661
284662 def representative_point(self):
285663 """Returns a ``GeoSeries`` of (cheaply computed) points that are
286664 guaranteed to be within each geometry.
665
666 Examples
667 --------
668
669 >>> from shapely.geometry import Polygon, LineString, Point
670 >>> s = geopandas.GeoSeries(
671 ... [
672 ... Polygon([(0, 0), (1, 1), (0, 1)]),
673 ... LineString([(0, 0), (1, 1), (1, 0)]),
674 ... Point(0, 0),
675 ... ]
676 ... )
677 >>> s
678 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
679 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ...
680 2 POINT (0.00000 0.00000)
681 dtype: geometry
682
683 >>> s.representative_point()
684 0 POINT (0.25000 0.50000)
685 1 POINT (1.00000 1.00000)
686 2 POINT (0.00000 0.00000)
687 dtype: geometry
688
689 See also
690 --------
691 GeoSeries.centroid : geometric centroid
287692 """
288693 return _delegate_geo_method("representative_point", self)
289694
299704 @property
300705 def unary_union(self):
301706 """Returns a geometry containing the union of all geometries in the
302 ``GeoSeries``."""
707 ``GeoSeries``.
708
709 Examples
710 --------
711
712 >>> from shapely.geometry import box
713 >>> s = geopandas.GeoSeries([box(0,0,1,1), box(0,0,2,2)])
714 >>> s
715 0 POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0....
716 1 POLYGON ((2.00000 0.00000, 2.00000 2.00000, 0....
717 dtype: geometry
718
719 >>> union = s.unary_union
720 >>> print(union)
721 POLYGON ((0 0, 0 1, 0 2, 2 2, 2 0, 1 0, 0 0))
722 """
303723 return self.geometry.values.unary_union()
304724
305725 #
306726 # Binary operations that return a pandas Series
307727 #
308728
309 def contains(self, other):
729 def contains(self, other, align=True):
310730 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
311 each geometry that contains `other`.
731 each aligned geometry that contains `other`.
312732
313733 An object is said to contain `other` if its `interior` contains the
314734 `boundary` and `interior` of the other object and their boundaries do
316736
317737 This is the inverse of :meth:`within` in the sense that the expression
318738 ``a.contains(b) == b.within(a)`` always evaluates to ``True``.
739
740 The operation works on a 1-to-1 row-wise manner:
741
742 .. image:: ../../../_static/binary_op-01.svg
743 :align: center
319744
320745 Parameters
321746 ----------
322747 other : GeoSeries or geometric object
323748 The GeoSeries (elementwise) or geometric object to test if is
324749 contained.
325 """
326 return _binary_op("contains", self, other)
327
328 def geom_equals(self, other):
750 align : bool (default True)
751 If True, automatically aligns GeoSeries based on their indices.
752 If False, the order of elements is preserved.
753
754 Returns
755 -------
756 Series (bool)
757
758 Examples
759 --------
760 >>> from shapely.geometry import Polygon, LineString, Point
761 >>> s = geopandas.GeoSeries(
762 ... [
763 ... Polygon([(0, 0), (1, 1), (0, 1)]),
764 ... LineString([(0, 0), (0, 2)]),
765 ... LineString([(0, 0), (0, 1)]),
766 ... Point(0, 1),
767 ... ],
768 ... index=range(0, 4),
769 ... )
770 >>> s2 = geopandas.GeoSeries(
771 ... [
772 ... Polygon([(0, 0), (2, 2), (0, 2)]),
773 ... Polygon([(0, 0), (1, 2), (0, 2)]),
774 ... LineString([(0, 0), (0, 2)]),
775 ... Point(0, 1),
776 ... ],
777 ... index=range(1, 5),
778 ... )
779
780 >>> s
781 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
782 1 LINESTRING (0.00000 0.00000, 0.00000 2.00000)
783 2 LINESTRING (0.00000 0.00000, 0.00000 1.00000)
784 3 POINT (0.00000 1.00000)
785 dtype: geometry
786
787 >>> s2
788 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
789 2 POLYGON ((0.00000 0.00000, 1.00000 2.00000, 0....
790 3 LINESTRING (0.00000 0.00000, 0.00000 2.00000)
791 4 POINT (0.00000 1.00000)
792 dtype: geometry
793
794 We can check if each geometry of GeoSeries contains a single
795 geometry:
796
797 .. image:: ../../../_static/binary_op-03.svg
798 :align: center
799
800 >>> point = Point(0, 1)
801 >>> s.contains(point)
802 0 False
803 1 True
804 2 False
805 3 True
806 dtype: bool
807
808 We can also check two GeoSeries against each other, row by row.
809 The GeoSeries above have different indices. We can either align both GeoSeries
810 based on index values and compare elements with the same index using
811 ``align=True`` or ignore index and compare elements based on their matching
812 order using ``align=False``:
813
814 .. image:: ../../../_static/binary_op-02.svg
815
816 >>> s2.contains(s, align=True)
817 0 False
818 1 False
819 2 False
820 3 True
821 4 False
822 dtype: bool
823
824 >>> s2.contains(s, align=False)
825 1 True
826 2 False
827 3 True
828 4 True
829 dtype: bool
830
831 Notes
832 -----
833 This method works in a row-wise manner. It does not check if an element
834 of one GeoSeries ``contains`` *any* element of the other one.
835
836 See also
837 --------
838 GeoSeries.within
839 """
840 return _binary_op("contains", self, other, align)
841
842 def geom_equals(self, other, align=True):
329843 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
330 each geometry equal to `other`.
844 each aligned geometry equal to `other`.
331845
332846 An object is said to be equal to `other` if its set-theoretic
333847 `boundary`, `interior`, and `exterior` coincides with those of the
334848 other.
849
850 The operation works on a 1-to-1 row-wise manner:
851
852 .. image:: ../../../_static/binary_op-01.svg
853 :align: center
335854
336855 Parameters
337856 ----------
338857 other : GeoSeries or geometric object
339858 The GeoSeries (elementwise) or geometric object to test for
340859 equality.
341 """
342 return _binary_op("geom_equals", self, other)
343
344 def geom_almost_equals(self, other, decimal=6):
860 align : bool (default True)
861 If True, automatically aligns GeoSeries based on their indices.
862 If False, the order of elements is preserved.
863
864 Returns
865 -------
866 Series (bool)
867
868 Examples
869 --------
870 >>> from shapely.geometry import Polygon, LineString, Point
871 >>> s = geopandas.GeoSeries(
872 ... [
873 ... Polygon([(0, 0), (2, 2), (0, 2)]),
874 ... Polygon([(0, 0), (1, 2), (0, 2)]),
875 ... LineString([(0, 0), (0, 2)]),
876 ... Point(0, 1),
877 ... ],
878 ... )
879 >>> s2 = geopandas.GeoSeries(
880 ... [
881 ... Polygon([(0, 0), (2, 2), (0, 2)]),
882 ... Polygon([(0, 0), (1, 2), (0, 2)]),
883 ... Point(0, 1),
884 ... LineString([(0, 0), (0, 2)]),
885 ... ],
886 ... index=range(1, 5),
887 ... )
888
889 >>> s
890 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
891 1 POLYGON ((0.00000 0.00000, 1.00000 2.00000, 0....
892 2 LINESTRING (0.00000 0.00000, 0.00000 2.00000)
893 3 POINT (0.00000 1.00000)
894 dtype: geometry
895
896 >>> s2
897 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
898 2 POLYGON ((0.00000 0.00000, 1.00000 2.00000, 0....
899 3 POINT (0.00000 1.00000)
900 4 LINESTRING (0.00000 0.00000, 0.00000 2.00000)
901 dtype: geometry
902
903 We can check if each geometry of GeoSeries contains a single
904 geometry:
905
906 .. image:: ../../../_static/binary_op-03.svg
907 :align: center
908
909 >>> polygon = Polygon([(0, 0), (2, 2), (0, 2)])
910 >>> s.geom_equals(polygon)
911 0 True
912 1 False
913 2 False
914 3 False
915 dtype: bool
916
917 We can also check two GeoSeries against each other, row by row.
918 The GeoSeries above have different indices. We can either align both GeoSeries
919 based on index values and compare elements with the same index using
920 ``align=True`` or ignore index and compare elements based on their matching
921 order using ``align=False``:
922
923 .. image:: ../../../_static/binary_op-02.svg
924
925 >>> s.geom_equals(s2)
926 0 False
927 1 False
928 2 False
929 3 True
930 4 False
931 dtype: bool
932
933 >>> s.geom_equals(s2, align=False)
934 0 True
935 1 True
936 2 False
937 3 False
938 dtype: bool
939
940 Notes
941 -----
942 This method works in a row-wise manner. It does not check if an element
943 of one GeoSeries is equal to *any* element of the other one.
944
945 See also
946 --------
947 GeoSeries.geom_almost_equals
948 GeoSeries.geom_equals_exact
949
950 """
951 return _binary_op("geom_equals", self, other, align)
952
953 def geom_almost_equals(self, other, decimal=6, align=True):
345954 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` if
346 each geometry is approximately equal to `other`.
955 each aligned geometry is approximately equal to `other`.
347956
348957 Approximate equality is tested at all points to the specified `decimal`
349 place precision. See also :meth:`geom_equals`.
958 place precision.
959
960 The operation works on a 1-to-1 row-wise manner:
961
962 .. image:: ../../../_static/binary_op-01.svg
963 :align: center
350964
351965 Parameters
352966 ----------
354968 The GeoSeries (elementwise) or geometric object to compare to.
355969 decimal : int
356970 Decimal place presion used when testing for approximate equality.
357 """
358 return _binary_op("geom_almost_equals", self, other, decimal=decimal)
359
360 def geom_equals_exact(self, other, tolerance):
361 """Return True for all geometries that equal *other* to a given
362 tolerance, else False"""
363 return _binary_op("geom_equals_exact", self, other, tolerance=tolerance)
364
365 def crosses(self, other):
971 align : bool (default True)
972 If True, automatically aligns GeoSeries based on their indices.
973 If False, the order of elements is preserved.
974
975 Returns
976 -------
977 Series (bool)
978
979 Examples
980 --------
981 >>> from shapely.geometry import Point
982 >>> s = geopandas.GeoSeries(
983 ... [
984 ... Point(0, 1.1),
985 ... Point(0, 1.01),
986 ... Point(0, 1.001),
987 ... ],
988 ... )
989
990 >>> s
991 0 POINT (0.00000 1.10000)
992 1 POINT (0.00000 1.01000)
993 2 POINT (0.00000 1.00100)
994 dtype: geometry
995
996
997 >>> s.geom_almost_equals(Point(0, 1), decimal=2)
998 0 False
999 1 False
1000 2 True
1001 dtype: bool
1002
1003 >>> s.geom_almost_equals(Point(0, 1), decimal=1)
1004 0 False
1005 1 True
1006 2 True
1007 dtype: bool
1008
1009 Notes
1010 -----
1011 This method works in a row-wise manner. It does not check if an element
1012 of one GeoSeries is equal to *any* element of the other one.
1013
1014 See also
1015 --------
1016 GeoSeries.geom_equals
1017 GeoSeries.geom_equals_exact
1018
1019 """
1020 return _binary_op(
1021 "geom_almost_equals", self, other, decimal=decimal, align=align
1022 )
1023
1024 def geom_equals_exact(self, other, tolerance, align=True):
1025 """Return True for all geometries that equal aligned *other* to a given
1026 tolerance, else False.
1027
1028 The operation works on a 1-to-1 row-wise manner:
1029
1030 .. image:: ../../../_static/binary_op-01.svg
1031 :align: center
1032
1033 Parameters
1034 ----------
1035 other : GeoSeries or geometric object
1036 The GeoSeries (elementwise) or geometric object to compare to.
1037 tolerance : float
1038 Decimal place presion used when testing for approximate equality.
1039 align : bool (default True)
1040 If True, automatically aligns GeoSeries based on their indices.
1041 If False, the order of elements is preserved.
1042
1043 Returns
1044 -------
1045 Series (bool)
1046
1047 Examples
1048 --------
1049 >>> from shapely.geometry import Point
1050 >>> s = geopandas.GeoSeries(
1051 ... [
1052 ... Point(0, 1.1),
1053 ... Point(0, 1.0),
1054 ... Point(0, 1.2),
1055 ... ]
1056 ... )
1057
1058 >>> s
1059 0 POINT (0.00000 1.10000)
1060 1 POINT (0.00000 1.00000)
1061 2 POINT (0.00000 1.20000)
1062 dtype: geometry
1063
1064
1065 >>> s.geom_equals_exact(Point(0, 1), tolerance=0.1)
1066 0 False
1067 1 True
1068 2 False
1069 dtype: bool
1070
1071 >>> s.geom_equals_exact(Point(0, 1), tolerance=0.15)
1072 0 True
1073 1 True
1074 2 False
1075 dtype: bool
1076
1077 Notes
1078 -----
1079 This method works in a row-wise manner. It does not check if an element
1080 of one GeoSeries is equal to *any* element of the other one.
1081
1082 See also
1083 --------
1084 GeoSeries.geom_equals
1085 GeoSeries.geom_almost_equals
1086 """
1087 return _binary_op(
1088 "geom_equals_exact", self, other, tolerance=tolerance, align=align
1089 )
1090
1091 def crosses(self, other, align=True):
3661092 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
367 each geometry that cross `other`.
1093 each aligned geometry that cross `other`.
3681094
3691095 An object is said to cross `other` if its `interior` intersects the
3701096 `interior` of the other but does not contain it, and the dimension of
3711097 the intersection is less than the dimension of the one or the other.
1098
1099 The operation works on a 1-to-1 row-wise manner:
1100
1101 .. image:: ../../../_static/binary_op-01.svg
1102 :align: center
3721103
3731104 Parameters
3741105 ----------
3751106 other : GeoSeries or geometric object
3761107 The GeoSeries (elementwise) or geometric object to test if is
3771108 crossed.
378 """
379 return _binary_op("crosses", self, other)
380
381 def disjoint(self, other):
1109 align : bool (default True)
1110 If True, automatically aligns GeoSeries based on their indices.
1111 If False, the order of elements is preserved.
1112
1113 Returns
1114 -------
1115 Series (bool)
1116
1117 Examples
1118 --------
1119 >>> from shapely.geometry import Polygon, LineString, Point
1120 >>> s = geopandas.GeoSeries(
1121 ... [
1122 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1123 ... LineString([(0, 0), (2, 2)]),
1124 ... LineString([(2, 0), (0, 2)]),
1125 ... Point(0, 1),
1126 ... ],
1127 ... )
1128 >>> s2 = geopandas.GeoSeries(
1129 ... [
1130 ... LineString([(1, 0), (1, 3)]),
1131 ... LineString([(2, 0), (0, 2)]),
1132 ... Point(1, 1),
1133 ... Point(0, 1),
1134 ... ],
1135 ... index=range(1, 5),
1136 ... )
1137
1138 >>> s
1139 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1140 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
1141 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
1142 3 POINT (0.00000 1.00000)
1143 dtype: geometry
1144
1145 >>> s2
1146 1 LINESTRING (1.00000 0.00000, 1.00000 3.00000)
1147 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
1148 3 POINT (1.00000 1.00000)
1149 4 POINT (0.00000 1.00000)
1150 dtype: geometry
1151
1152 We can check if each geometry of GeoSeries crosses a single
1153 geometry:
1154
1155 .. image:: ../../../_static/binary_op-03.svg
1156 :align: center
1157
1158 >>> line = LineString([(-1, 1), (3, 1)])
1159 >>> s.crosses(line)
1160 0 True
1161 1 True
1162 2 True
1163 3 False
1164 dtype: bool
1165
1166 We can also check two GeoSeries against each other, row by row.
1167 The GeoSeries above have different indices. We can either align both GeoSeries
1168 based on index values and compare elements with the same index using
1169 ``align=True`` or ignore index and compare elements based on their matching
1170 order using ``align=False``:
1171
1172 .. image:: ../../../_static/binary_op-02.svg
1173
1174 >>> s.crosses(s2, align=True)
1175 0 False
1176 1 True
1177 2 False
1178 3 False
1179 4 False
1180 dtype: bool
1181
1182 >>> s.crosses(s2, align=False)
1183 0 True
1184 1 True
1185 2 False
1186 3 False
1187 dtype: bool
1188
1189 Notice that a line does not cross a point that it contains.
1190
1191 Notes
1192 -----
1193 This method works in a row-wise manner. It does not check if an element
1194 of one GeoSeries ``crosses`` *any* element of the other one.
1195
1196 See also
1197 --------
1198 GeoSeries.disjoint
1199 GeoSeries.intersects
1200
1201 """
1202 return _binary_op("crosses", self, other, align)
1203
1204 def disjoint(self, other, align=True):
3821205 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
383 each geometry disjoint to `other`.
1206 each aligned geometry disjoint to `other`.
3841207
3851208 An object is said to be disjoint to `other` if its `boundary` and
3861209 `interior` does not intersect at all with those of the other.
1210
1211 The operation works on a 1-to-1 row-wise manner:
1212
1213 .. image:: ../../../_static/binary_op-01.svg
1214 :align: center
3871215
3881216 Parameters
3891217 ----------
3901218 other : GeoSeries or geometric object
3911219 The GeoSeries (elementwise) or geometric object to test if is
3921220 disjoint.
393 """
394 return _binary_op("disjoint", self, other)
395
396 def intersects(self, other):
1221 align : bool (default True)
1222 If True, automatically aligns GeoSeries based on their indices.
1223 If False, the order of elements is preserved.
1224
1225 Returns
1226 -------
1227 Series (bool)
1228
1229 Examples
1230 --------
1231 >>> from shapely.geometry import Polygon, LineString, Point
1232 >>> s = geopandas.GeoSeries(
1233 ... [
1234 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1235 ... LineString([(0, 0), (2, 2)]),
1236 ... LineString([(2, 0), (0, 2)]),
1237 ... Point(0, 1),
1238 ... ],
1239 ... )
1240 >>> s2 = geopandas.GeoSeries(
1241 ... [
1242 ... Polygon([(-1, 0), (-1, 2), (0, -2)]),
1243 ... LineString([(0, 0), (0, 1)]),
1244 ... Point(1, 1),
1245 ... Point(0, 0),
1246 ... ],
1247 ... )
1248
1249 >>> s
1250 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1251 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
1252 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
1253 3 POINT (0.00000 1.00000)
1254 dtype: geometry
1255
1256 >>> s2
1257 0 POLYGON ((-1.00000 0.00000, -1.00000 2.00000, ...
1258 1 LINESTRING (0.00000 0.00000, 0.00000 1.00000)
1259 2 POINT (1.00000 1.00000)
1260 3 POINT (0.00000 0.00000)
1261 dtype: geometry
1262
1263 We can check each geometry of GeoSeries to a single
1264 geometry:
1265
1266 .. image:: ../../../_static/binary_op-03.svg
1267 :align: center
1268
1269 >>> line = LineString([(0, 0), (2, 0)])
1270 >>> s.disjoint(line)
1271 0 False
1272 1 False
1273 2 False
1274 3 True
1275 dtype: bool
1276
1277 We can also check two GeoSeries against each other, row by row.
1278 We can either align both GeoSeries
1279 based on index values and compare elements with the same index using
1280 ``align=True`` or ignore index and compare elements based on their matching
1281 order using ``align=False``:
1282
1283 .. image:: ../../../_static/binary_op-02.svg
1284
1285 >>> s.disjoint(s2)
1286 0 True
1287 1 False
1288 2 False
1289 3 True
1290 dtype: bool
1291
1292 Notes
1293 -----
1294 This method works in a row-wise manner. It does not check if an element
1295 of one GeoSeries is equal to *any* element of the other one.
1296
1297 See also
1298 --------
1299 GeoSeries.intersects
1300 GeoSeries.touches
1301
1302 """
1303 return _binary_op("disjoint", self, other, align)
1304
1305 def intersects(self, other, align=True):
3971306 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
398 each geometry that intersects `other`.
1307 each aligned geometry that intersects `other`.
3991308
4001309 An object is said to intersect `other` if its `boundary` and `interior`
4011310 intersects in any way with those of the other.
1311
1312 The operation works on a 1-to-1 row-wise manner:
1313
1314 .. image:: ../../../_static/binary_op-01.svg
1315 :align: center
4021316
4031317 Parameters
4041318 ----------
4051319 other : GeoSeries or geometric object
4061320 The GeoSeries (elementwise) or geometric object to test if is
4071321 intersected.
408 """
409 return _binary_op("intersects", self, other)
410
411 def overlaps(self, other):
412 """Returns True for all geometries that overlap *other*, else False.
1322 align : bool (default True)
1323 If True, automatically aligns GeoSeries based on their indices.
1324 If False, the order of elements is preserved.
1325
1326 Returns
1327 -------
1328 Series (bool)
1329
1330 Examples
1331 --------
1332 >>> from shapely.geometry import Polygon, LineString, Point
1333 >>> s = geopandas.GeoSeries(
1334 ... [
1335 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1336 ... LineString([(0, 0), (2, 2)]),
1337 ... LineString([(2, 0), (0, 2)]),
1338 ... Point(0, 1),
1339 ... ],
1340 ... )
1341 >>> s2 = geopandas.GeoSeries(
1342 ... [
1343 ... LineString([(1, 0), (1, 3)]),
1344 ... LineString([(2, 0), (0, 2)]),
1345 ... Point(1, 1),
1346 ... Point(0, 1),
1347 ... ],
1348 ... index=range(1, 5),
1349 ... )
1350
1351 >>> s
1352 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1353 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
1354 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
1355 3 POINT (0.00000 1.00000)
1356 dtype: geometry
1357
1358 >>> s2
1359 1 LINESTRING (1.00000 0.00000, 1.00000 3.00000)
1360 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
1361 3 POINT (1.00000 1.00000)
1362 4 POINT (0.00000 1.00000)
1363 dtype: geometry
1364
1365 We can check if each geometry of GeoSeries crosses a single
1366 geometry:
1367
1368 .. image:: ../../../_static/binary_op-03.svg
1369 :align: center
1370
1371 >>> line = LineString([(-1, 1), (3, 1)])
1372 >>> s.intersects(line)
1373 0 True
1374 1 True
1375 2 True
1376 3 True
1377 dtype: bool
1378
1379 We can also check two GeoSeries against each other, row by row.
1380 The GeoSeries above have different indices. We can either align both GeoSeries
1381 based on index values and compare elements with the same index using
1382 ``align=True`` or ignore index and compare elements based on their matching
1383 order using ``align=False``:
1384
1385 .. image:: ../../../_static/binary_op-02.svg
1386
1387 >>> s.intersects(s2, align=True)
1388 0 False
1389 1 True
1390 2 True
1391 3 False
1392 4 False
1393 dtype: bool
1394
1395 >>> s.intersects(s2, align=False)
1396 0 True
1397 1 True
1398 2 True
1399 3 True
1400 dtype: bool
1401
1402 Notes
1403 -----
1404 This method works in a row-wise manner. It does not check if an element
1405 of one GeoSeries ``crosses`` *any* element of the other one.
1406
1407 See also
1408 --------
1409 GeoSeries.disjoint
1410 GeoSeries.crosses
1411 GeoSeries.touches
1412 GeoSeries.intersection
1413 """
1414 return _binary_op("intersects", self, other, align)
1415
1416 def overlaps(self, other, align=True):
1417 """Returns True for all aligned geometries that overlap *other*, else False.
1418
1419 Geometries overlaps if they have more than one but not all
1420 points in common, have the same dimension, and the intersection of the
1421 interiors of the geometries has the same dimension as the geometries
1422 themselves.
1423
1424 The operation works on a 1-to-1 row-wise manner:
1425
1426 .. image:: ../../../_static/binary_op-01.svg
1427 :align: center
4131428
4141429 Parameters
4151430 ----------
4161431 other : GeoSeries or geometric object
4171432 The GeoSeries (elementwise) or geometric object to test if
4181433 overlaps.
419 """
420 return _binary_op("overlaps", self, other)
421
422 def touches(self, other):
1434 align : bool (default True)
1435 If True, automatically aligns GeoSeries based on their indices.
1436 If False, the order of elements is preserved.
1437
1438 Returns
1439 -------
1440 Series (bool)
1441
1442 Examples
1443 --------
1444 >>> from shapely.geometry import Polygon, LineString, MultiPoint, Point
1445 >>> s = geopandas.GeoSeries(
1446 ... [
1447 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1448 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1449 ... LineString([(0, 0), (2, 2)]),
1450 ... MultiPoint([(0, 0), (0, 1)]),
1451 ... ],
1452 ... )
1453 >>> s2 = geopandas.GeoSeries(
1454 ... [
1455 ... Polygon([(0, 0), (2, 0), (0, 2)]),
1456 ... LineString([(0, 1), (1, 1)]),
1457 ... LineString([(1, 1), (3, 3)]),
1458 ... Point(0, 1),
1459 ... ],
1460 ... index=range(1, 5),
1461 ... )
1462
1463 >>> s
1464 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1465 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1466 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
1467 3 MULTIPOINT (0.00000 0.00000, 0.00000 1.00000)
1468 dtype: geometry
1469
1470 >>> s2
1471 1 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 0....
1472 2 LINESTRING (0.00000 1.00000, 1.00000 1.00000)
1473 3 LINESTRING (1.00000 1.00000, 3.00000 3.00000)
1474 4 POINT (0.00000 1.00000)
1475 dtype: geometry
1476
1477 We can check if each geometry of GeoSeries overlaps a single
1478 geometry:
1479
1480 .. image:: ../../../_static/binary_op-03.svg
1481 :align: center
1482
1483 >>> polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
1484 >>> s.overlaps(polygon)
1485 0 True
1486 1 True
1487 2 False
1488 3 False
1489 dtype: bool
1490
1491 We can also check two GeoSeries against each other, row by row.
1492 The GeoSeries above have different indices. We can either align both GeoSeries
1493 based on index values and compare elements with the same index using
1494 ``align=True`` or ignore index and compare elements based on their matching
1495 order using ``align=False``:
1496
1497 .. image:: ../../../_static/binary_op-02.svg
1498
1499 >>> s.overlaps(s2)
1500 0 False
1501 1 True
1502 2 False
1503 3 False
1504 4 False
1505 dtype: bool
1506
1507 >>> s.overlaps(s2, align=False)
1508 0 True
1509 1 False
1510 2 True
1511 3 False
1512 dtype: bool
1513
1514 Notes
1515 -----
1516 This method works in a row-wise manner. It does not check if an element
1517 of one GeoSeries ``overlaps`` *any* element of the other one.
1518
1519 See also
1520 --------
1521 GeoSeries.crosses
1522 GeoSeries.intersects
1523
1524 """
1525 return _binary_op("overlaps", self, other, align)
1526
1527 def touches(self, other, align=True):
4231528 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
424 each geometry that touches `other`.
1529 each aligned geometry that touches `other`.
4251530
4261531 An object is said to touch `other` if it has at least one point in
4271532 common with `other` and its interior does not intersect with any part
428 of the other.
1533 of the other. Overlapping features therefore do not touch.
1534
1535 The operation works on a 1-to-1 row-wise manner:
1536
1537 .. image:: ../../../_static/binary_op-01.svg
1538 :align: center
4291539
4301540 Parameters
4311541 ----------
4321542 other : GeoSeries or geometric object
4331543 The GeoSeries (elementwise) or geometric object to test if is
4341544 touched.
435 """
436 return _binary_op("touches", self, other)
437
438 def within(self, other):
1545 align : bool (default True)
1546 If True, automatically aligns GeoSeries based on their indices.
1547 If False, the order of elements is preserved.
1548
1549 Returns
1550 -------
1551 Series (bool)
1552
1553 Examples
1554 --------
1555 >>> from shapely.geometry import Polygon, LineString, MultiPoint, Point
1556 >>> s = geopandas.GeoSeries(
1557 ... [
1558 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1559 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1560 ... LineString([(0, 0), (2, 2)]),
1561 ... MultiPoint([(0, 0), (0, 1)]),
1562 ... ],
1563 ... )
1564 >>> s2 = geopandas.GeoSeries(
1565 ... [
1566 ... Polygon([(0, 0), (-2, 0), (0, -2)]),
1567 ... LineString([(0, 1), (1, 1)]),
1568 ... LineString([(1, 1), (3, 0)]),
1569 ... Point(0, 1),
1570 ... ],
1571 ... index=range(1, 5),
1572 ... )
1573
1574 >>> s
1575 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1576 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1577 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
1578 3 MULTIPOINT (0.00000 0.00000, 0.00000 1.00000)
1579 dtype: geometry
1580
1581 >>> s2
1582 1 POLYGON ((0.00000 0.00000, -2.00000 0.00000, 0...
1583 2 LINESTRING (0.00000 1.00000, 1.00000 1.00000)
1584 3 LINESTRING (1.00000 1.00000, 3.00000 0.00000)
1585 4 POINT (0.00000 1.00000)
1586 dtype: geometry
1587
1588 We can check if each geometry of GeoSeries touches a single
1589 geometry:
1590
1591 .. image:: ../../../_static/binary_op-03.svg
1592 :align: center
1593
1594
1595 >>> line = LineString([(0, 0), (-1, -2)])
1596 >>> s.touches(line)
1597 0 True
1598 1 True
1599 2 True
1600 3 True
1601 dtype: bool
1602
1603 We can also check two GeoSeries against each other, row by row.
1604 The GeoSeries above have different indices. We can either align both GeoSeries
1605 based on index values and compare elements with the same index using
1606 ``align=True`` or ignore index and compare elements based on their matching
1607 order using ``align=False``:
1608
1609 .. image:: ../../../_static/binary_op-02.svg
1610
1611 >>> s.touches(s2, align=True)
1612 0 False
1613 1 True
1614 2 True
1615 3 False
1616 4 False
1617 dtype: bool
1618
1619 >>> s.touches(s2, align=False)
1620 0 True
1621 1 False
1622 2 True
1623 3 False
1624 dtype: bool
1625
1626 Notes
1627 -----
1628 This method works in a row-wise manner. It does not check if an element
1629 of one GeoSeries ``touches`` *any* element of the other one.
1630
1631 See also
1632 --------
1633 GeoSeries.overlaps
1634 GeoSeries.intersects
1635
1636 """
1637 return _binary_op("touches", self, other, align)
1638
1639 def within(self, other, align=True):
4391640 """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
440 each geometry that is within `other`.
1641 each aligned geometry that is within `other`.
4411642
4421643 An object is said to be within `other` if its `boundary` and `interior`
4431644 intersects only with the `interior` of the other (not its `boundary` or
4461647 This is the inverse of :meth:`contains` in the sense that the
4471648 expression ``a.within(b) == b.contains(a)`` always evaluates to
4481649 ``True``.
1650
1651 The operation works on a 1-to-1 row-wise manner:
1652
1653 .. image:: ../../../_static/binary_op-01.svg
1654 :align: center
4491655
4501656 Parameters
4511657 ----------
4521658 other : GeoSeries or geometric object
4531659 The GeoSeries (elementwise) or geometric object to test if each
4541660 geometry is within.
455
456 """
457 return _binary_op("within", self, other)
458
459 def covers(self, other):
1661 align : bool (default True)
1662 If True, automatically aligns GeoSeries based on their indices.
1663 If False, the order of elements is preserved.
1664
1665 Returns
1666 -------
1667 Series (bool)
1668
1669
1670 Examples
1671 --------
1672 >>> from shapely.geometry import Polygon, LineString, Point
1673 >>> s = geopandas.GeoSeries(
1674 ... [
1675 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1676 ... Polygon([(0, 0), (1, 2), (0, 2)]),
1677 ... LineString([(0, 0), (0, 2)]),
1678 ... Point(0, 1),
1679 ... ],
1680 ... )
1681 >>> s2 = geopandas.GeoSeries(
1682 ... [
1683 ... Polygon([(0, 0), (1, 1), (0, 1)]),
1684 ... LineString([(0, 0), (0, 2)]),
1685 ... LineString([(0, 0), (0, 1)]),
1686 ... Point(0, 1),
1687 ... ],
1688 ... index=range(1, 5),
1689 ... )
1690
1691 >>> s
1692 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1693 1 POLYGON ((0.00000 0.00000, 1.00000 2.00000, 0....
1694 2 LINESTRING (0.00000 0.00000, 0.00000 2.00000)
1695 3 POINT (0.00000 1.00000)
1696 dtype: geometry
1697
1698 >>> s2
1699 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
1700 2 LINESTRING (0.00000 0.00000, 0.00000 2.00000)
1701 3 LINESTRING (0.00000 0.00000, 0.00000 1.00000)
1702 4 POINT (0.00000 1.00000)
1703 dtype: geometry
1704
1705 We can check if each geometry of GeoSeries is within a single
1706 geometry:
1707
1708 .. image:: ../../../_static/binary_op-03.svg
1709 :align: center
1710
1711 >>> polygon = Polygon([(0, 0), (2, 2), (0, 2)])
1712 >>> s.within(polygon)
1713 0 True
1714 1 True
1715 2 False
1716 3 False
1717 dtype: bool
1718
1719 We can also check two GeoSeries against each other, row by row.
1720 The GeoSeries above have different indices. We can either align both GeoSeries
1721 based on index values and compare elements with the same index using
1722 ``align=True`` or ignore index and compare elements based on their matching
1723 order using ``align=False``:
1724
1725 .. image:: ../../../_static/binary_op-02.svg
1726
1727 >>> s2.within(s)
1728 0 False
1729 1 False
1730 2 True
1731 3 False
1732 4 False
1733 dtype: bool
1734
1735 >>> s2.within(s, align=False)
1736 1 True
1737 2 False
1738 3 True
1739 4 True
1740 dtype: bool
1741
1742 Notes
1743 -----
1744 This method works in a row-wise manner. It does not check if an element
1745 of one GeoSeries is ``within`` *any* element of the other one.
1746
1747 See also
1748 --------
1749 GeoSeries.contains
1750 """
1751 return _binary_op("within", self, other, align)
1752
1753 def covers(self, other, align=True):
4601754 """
4611755 Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
462 each geometry that is entirely covering `other`.
1756 each aligned geometry that is entirely covering `other`.
4631757
4641758 An object A is said to cover another object B if no points of B lie
4651759 in the exterior of A.
1760
1761 The operation works on a 1-to-1 row-wise manner:
1762
1763 .. image:: ../../../_static/binary_op-01.svg
1764 :align: center
4661765
4671766 See
4681767 https://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html
4721771 ----------
4731772 other : Geoseries or geometric object
4741773 The Geoseries (elementwise) or geometric object to check is being covered.
475 """
476 return _binary_geo("covers", self, other)
477
478 def covered_by(self, other):
1774 align : bool (default True)
1775 If True, automatically aligns GeoSeries based on their indices.
1776 If False, the order of elements is preserved.
1777
1778 Returns
1779 -------
1780 Series (bool)
1781
1782 Examples
1783 --------
1784 >>> from shapely.geometry import Polygon, LineString, Point
1785 >>> s = geopandas.GeoSeries(
1786 ... [
1787 ... Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]),
1788 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1789 ... LineString([(0, 0), (2, 2)]),
1790 ... Point(0, 0),
1791 ... ],
1792 ... )
1793 >>> s2 = geopandas.GeoSeries(
1794 ... [
1795 ... Polygon([(0.5, 0.5), (1.5, 0.5), (1.5, 1.5), (0.5, 1.5)]),
1796 ... Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]),
1797 ... LineString([(1, 1), (1.5, 1.5)]),
1798 ... Point(0, 0),
1799 ... ],
1800 ... index=range(1, 5),
1801 ... )
1802
1803 >>> s
1804 0 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2....
1805 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1806 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
1807 3 POINT (0.00000 0.00000)
1808 dtype: geometry
1809
1810 >>> s2
1811 1 POLYGON ((0.50000 0.50000, 1.50000 0.50000, 1....
1812 2 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2....
1813 3 LINESTRING (1.00000 1.00000, 1.50000 1.50000)
1814 4 POINT (0.00000 0.00000)
1815 dtype: geometry
1816
1817 We can check if each geometry of GeoSeries covers a single
1818 geometry:
1819
1820 .. image:: ../../../_static/binary_op-03.svg
1821 :align: center
1822
1823 >>> poly = Polygon([(0, 0), (2, 0), (2, 2), (0, 2)])
1824 >>> s.covers(poly)
1825 0 True
1826 1 False
1827 2 False
1828 3 False
1829 dtype: bool
1830
1831 We can also check two GeoSeries against each other, row by row.
1832 The GeoSeries above have different indices. We can either align both GeoSeries
1833 based on index values and compare elements with the same index using
1834 ``align=True`` or ignore index and compare elements based on their matching
1835 order using ``align=False``:
1836
1837 .. image:: ../../../_static/binary_op-02.svg
1838
1839 >>> s.covers(s2, align=True)
1840 0 False
1841 1 False
1842 2 False
1843 3 False
1844 4 False
1845 dtype: bool
1846
1847 >>> s.covers(s2, align=False)
1848 0 True
1849 1 False
1850 2 True
1851 3 True
1852 dtype: bool
1853
1854 Notes
1855 -----
1856 This method works in a row-wise manner. It does not check if an element
1857 of one GeoSeries ``covers`` *any* element of the other one.
1858
1859 See also
1860 --------
1861 GeoSeries.covered_by
1862 GeoSeries.overlaps
1863 """
1864 return _binary_op("covers", self, other, align)
1865
1866 def covered_by(self, other, align=True):
4791867 """
4801868 Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for
481 each geometry that is entirely covered by `other`.
1869 each aligned geometry that is entirely covered by `other`.
4821870
4831871 An object A is said to cover another object B if no points of B lie
4841872 in the exterior of A.
1873
1874 The operation works on a 1-to-1 row-wise manner:
1875
1876 .. image:: ../../../_static/binary_op-01.svg
1877 :align: center
4851878
4861879 See
4871880 https://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html
4911884 ----------
4921885 other : Geoseries or geometric object
4931886 The Geoseries (elementwise) or geometric object to check is being covered.
494 """
495 return _binary_geo("covered_by", self, other)
496
497 def distance(self, other):
498 """Returns a ``Series`` containing the distance to `other`.
1887 align : bool (default True)
1888 If True, automatically aligns GeoSeries based on their indices.
1889 If False, the order of elements is preserved.
1890
1891 Returns
1892 -------
1893 Series (bool)
1894
1895 Examples
1896 --------
1897 >>> from shapely.geometry import Polygon, LineString, Point
1898 >>> s = geopandas.GeoSeries(
1899 ... [
1900 ... Polygon([(0.5, 0.5), (1.5, 0.5), (1.5, 1.5), (0.5, 1.5)]),
1901 ... Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]),
1902 ... LineString([(1, 1), (1.5, 1.5)]),
1903 ... Point(0, 0),
1904 ... ],
1905 ... )
1906 >>> s2 = geopandas.GeoSeries(
1907 ... [
1908 ... Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]),
1909 ... Polygon([(0, 0), (2, 2), (0, 2)]),
1910 ... LineString([(0, 0), (2, 2)]),
1911 ... Point(0, 0),
1912 ... ],
1913 ... index=range(1, 5),
1914 ... )
1915
1916 >>> s
1917 0 POLYGON ((0.50000 0.50000, 1.50000 0.50000, 1....
1918 1 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2....
1919 2 LINESTRING (1.00000 1.00000, 1.50000 1.50000)
1920 3 POINT (0.00000 0.00000)
1921 dtype: geometry
1922
1923 >>> s2
1924 1 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2....
1925 2 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
1926 3 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
1927 4 POINT (0.00000 0.00000)
1928 dtype: geometry
1929
1930 We can check if each geometry of GeoSeries is covered by a single
1931 geometry:
1932
1933 .. image:: ../../../_static/binary_op-03.svg
1934 :align: center
1935
1936 >>> poly = Polygon([(0, 0), (2, 0), (2, 2), (0, 2)])
1937 >>> s.covered_by(poly)
1938 0 True
1939 1 True
1940 2 True
1941 3 True
1942 dtype: bool
1943
1944 We can also check two GeoSeries against each other, row by row.
1945 The GeoSeries above have different indices. We can either align both GeoSeries
1946 based on index values and compare elements with the same index using
1947 ``align=True`` or ignore index and compare elements based on their matching
1948 order using ``align=False``:
1949
1950 .. image:: ../../../_static/binary_op-02.svg
1951
1952 >>> s.covered_by(s2, align=True)
1953 0 False
1954 1 True
1955 2 True
1956 3 True
1957 4 False
1958 dtype: bool
1959
1960 >>> s.covered_by(s2, align=False)
1961 0 True
1962 1 False
1963 2 True
1964 3 True
1965 dtype: bool
1966
1967 Notes
1968 -----
1969 This method works in a row-wise manner. It does not check if an element
1970 of one GeoSeries is ``covered_by`` *any* element of the other one.
1971
1972 See also
1973 --------
1974 GeoSeries.covers
1975 GeoSeries.overlaps
1976 """
1977 return _binary_op("covered_by", self, other, align)
1978
1979 def distance(self, other, align=True):
1980 """Returns a ``Series`` containing the distance to aligned `other`.
1981
1982 The operation works on a 1-to-1 row-wise manner:
1983
1984 .. image:: ../../../_static/binary_op-01.svg
1985 :align: center
4991986
5001987 Parameters
5011988 ----------
5021989 other : Geoseries or geometric object
5031990 The Geoseries (elementwise) or geometric object to find the
5041991 distance to.
505 """
506 return _binary_op("distance", self, other)
1992 align : bool (default True)
1993 If True, automatically aligns GeoSeries based on their indices.
1994 If False, the order of elements is preserved.
1995
1996
1997 Returns
1998 -------
1999 Series (float)
2000
2001 Examples
2002 --------
2003 >>> from shapely.geometry import Polygon, LineString, Point
2004 >>> s = geopandas.GeoSeries(
2005 ... [
2006 ... Polygon([(0, 0), (1, 0), (1, 1)]),
2007 ... Polygon([(0, 0), (-1, 0), (-1, 1)]),
2008 ... LineString([(1, 1), (0, 0)]),
2009 ... Point(0, 0),
2010 ... ],
2011 ... )
2012 >>> s2 = geopandas.GeoSeries(
2013 ... [
2014 ... Polygon([(0.5, 0.5), (1.5, 0.5), (1.5, 1.5), (0.5, 1.5)]),
2015 ... Point(3, 1),
2016 ... LineString([(1, 0), (2, 0)]),
2017 ... Point(0, 1),
2018 ... ],
2019 ... index=range(1, 5),
2020 ... )
2021
2022 >>> s
2023 0 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1....
2024 1 POLYGON ((0.00000 0.00000, -1.00000 0.00000, -...
2025 2 LINESTRING (1.00000 1.00000, 0.00000 0.00000)
2026 3 POINT (0.00000 0.00000)
2027 dtype: geometry
2028
2029 >>> s2
2030 1 POLYGON ((0.50000 0.50000, 1.50000 0.50000, 1....
2031 2 POINT (3.00000 1.00000)
2032 3 LINESTRING (1.00000 0.00000, 2.00000 0.00000)
2033 4 POINT (0.00000 1.00000)
2034 dtype: geometry
2035
2036 We can check the distance of each geometry of GeoSeries to a single
2037 geometry:
2038
2039 .. image:: ../../../_static/binary_op-03.svg
2040 :align: center
2041
2042 >>> point = Point(-1, 0)
2043 >>> s.distance(point)
2044 0 1.0
2045 1 0.0
2046 2 1.0
2047 3 1.0
2048 dtype: float64
2049
2050 We can also check two GeoSeries against each other, row by row.
2051 The GeoSeries above have different indices. We can either align both GeoSeries
2052 based on index values and use elements with the same index using
2053 ``align=True`` or ignore index and use elements based on their matching
2054 order using ``align=False``:
2055
2056 .. image:: ../../../_static/binary_op-02.svg
2057
2058 >>> s.distance(s2, align=True)
2059 0 NaN
2060 1 0.707107
2061 2 2.000000
2062 3 1.000000
2063 4 NaN
2064 dtype: float64
2065
2066 >>> s.distance(s2, align=False)
2067 0 0.000000
2068 1 3.162278
2069 2 0.707107
2070 3 1.000000
2071 dtype: float64
2072 """
2073 return _binary_op("distance", self, other, align)
5072074
5082075 #
5092076 # Binary operations that return a GeoSeries
5102077 #
5112078
512 def difference(self, other):
513 """Returns a ``GeoSeries`` of the points in each geometry that
2079 def difference(self, other, align=True):
2080 """Returns a ``GeoSeries`` of the points in each aligned geometry that
5142081 are not in `other`.
2082
2083 .. image:: ../../../_static/binary_geo-difference.svg
2084 :align: center
2085
2086 The operation works on a 1-to-1 row-wise manner:
2087
2088 .. image:: ../../../_static/binary_op-01.svg
2089 :align: center
5152090
5162091 Parameters
5172092 ----------
5182093 other : Geoseries or geometric object
5192094 The Geoseries (elementwise) or geometric object to find the
5202095 difference to.
521 """
522 return _binary_geo("difference", self, other)
523
524 def symmetric_difference(self, other):
2096 align : bool (default True)
2097 If True, automatically aligns GeoSeries based on their indices.
2098 If False, the order of elements is preserved.
2099
2100 Returns
2101 -------
2102 GeoSeries
2103
2104 Examples
2105 --------
2106 >>> from shapely.geometry import Polygon, LineString, Point
2107 >>> s = geopandas.GeoSeries(
2108 ... [
2109 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2110 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2111 ... LineString([(0, 0), (2, 2)]),
2112 ... LineString([(2, 0), (0, 2)]),
2113 ... Point(0, 1),
2114 ... ],
2115 ... )
2116 >>> s2 = geopandas.GeoSeries(
2117 ... [
2118 ... Polygon([(0, 0), (1, 1), (0, 1)]),
2119 ... LineString([(1, 0), (1, 3)]),
2120 ... LineString([(2, 0), (0, 2)]),
2121 ... Point(1, 1),
2122 ... Point(0, 1),
2123 ... ],
2124 ... index=range(1, 6),
2125 ... )
2126
2127 >>> s
2128 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2129 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2130 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
2131 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2132 4 POINT (0.00000 1.00000)
2133 dtype: geometry
2134
2135 >>> s2
2136 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
2137 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000)
2138 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2139 4 POINT (1.00000 1.00000)
2140 5 POINT (0.00000 1.00000)
2141 dtype: geometry
2142
2143 We can do difference of each geometry and a single
2144 shapely geometry:
2145
2146 .. image:: ../../../_static/binary_op-03.svg
2147 :align: center
2148
2149 >>> s.difference(Polygon([(0, 0), (1, 1), (0, 1)]))
2150 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....
2151 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....
2152 2 LINESTRING (1.00000 1.00000, 2.00000 2.00000)
2153 3 MULTILINESTRING ((2.00000 0.00000, 1.00000 1.0...
2154 4 POINT EMPTY
2155 dtype: geometry
2156
2157 We can also check two GeoSeries against each other, row by row.
2158 The GeoSeries above have different indices. We can either align both GeoSeries
2159 based on index values and compare elements with the same index using
2160 ``align=True`` or ignore index and compare elements based on their matching
2161 order using ``align=False``:
2162
2163 .. image:: ../../../_static/binary_op-02.svg
2164
2165 >>> s.difference(s2, align=True)
2166 0 None
2167 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....
2168 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0...
2169 3 LINESTRING EMPTY
2170 4 POINT (0.00000 1.00000)
2171 5 None
2172 dtype: geometry
2173
2174 >>> s.difference(s2, align=False)
2175 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....
2176 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2177 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0...
2178 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2179 4 POINT EMPTY
2180 dtype: geometry
2181
2182 See Also
2183 --------
2184 GeoSeries.symmetric_difference
2185 GeoSeries.union
2186 GeoSeries.intersection
2187 """
2188 return _binary_geo("difference", self, other, align)
2189
2190 def symmetric_difference(self, other, align=True):
5252191 """Returns a ``GeoSeries`` of the symmetric difference of points in
526 each geometry with `other`.
2192 each aligned geometry with `other`.
5272193
5282194 For each geometry, the symmetric difference consists of points in the
5292195 geometry not in `other`, and points in `other` not in the geometry.
2196
2197 .. image:: ../../../_static/binary_geo-symm_diff.svg
2198 :align: center
2199
2200 The operation works on a 1-to-1 row-wise manner:
2201
2202 .. image:: ../../../_static/binary_op-01.svg
2203 :align: center
2204
5302205
5312206 Parameters
5322207 ----------
5332208 other : Geoseries or geometric object
5342209 The Geoseries (elementwise) or geometric object to find the
5352210 symmetric difference to.
536 """
537 return _binary_geo("symmetric_difference", self, other)
538
539 def union(self, other):
540 """Returns a ``GeoSeries`` of the union of points in each geometry with
2211 align : bool (default True)
2212 If True, automatically aligns GeoSeries based on their indices.
2213 If False, the order of elements is preserved.
2214
2215 Returns
2216 -------
2217 GeoSeries
2218
2219 Examples
2220 --------
2221 >>> from shapely.geometry import Polygon, LineString, Point
2222 >>> s = geopandas.GeoSeries(
2223 ... [
2224 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2225 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2226 ... LineString([(0, 0), (2, 2)]),
2227 ... LineString([(2, 0), (0, 2)]),
2228 ... Point(0, 1),
2229 ... ],
2230 ... )
2231 >>> s2 = geopandas.GeoSeries(
2232 ... [
2233 ... Polygon([(0, 0), (1, 1), (0, 1)]),
2234 ... LineString([(1, 0), (1, 3)]),
2235 ... LineString([(2, 0), (0, 2)]),
2236 ... Point(1, 1),
2237 ... Point(0, 1),
2238 ... ],
2239 ... index=range(1, 6),
2240 ... )
2241
2242 >>> s
2243 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2244 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2245 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
2246 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2247 4 POINT (0.00000 1.00000)
2248 dtype: geometry
2249
2250 >>> s2
2251 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
2252 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000)
2253 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2254 4 POINT (1.00000 1.00000)
2255 5 POINT (0.00000 1.00000)
2256 dtype: geometry
2257
2258 We can do symmetric difference of each geometry and a single
2259 shapely geometry:
2260
2261 .. image:: ../../../_static/binary_op-03.svg
2262 :align: center
2263
2264 >>> s.symmetric_difference(Polygon([(0, 0), (1, 1), (0, 1)]))
2265 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....
2266 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....
2267 2 GEOMETRYCOLLECTION (LINESTRING (1.00000 1.0000...
2268 3 GEOMETRYCOLLECTION (LINESTRING (2.00000 0.0000...
2269 4 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1....
2270 dtype: geometry
2271
2272 We can also check two GeoSeries against each other, row by row.
2273 The GeoSeries above have different indices. We can either align both GeoSeries
2274 based on index values and compare elements with the same index using
2275 ``align=True`` or ignore index and compare elements based on their matching
2276 order using ``align=False``:
2277
2278 .. image:: ../../../_static/binary_op-02.svg
2279
2280 >>> s.symmetric_difference(s2, align=True)
2281 0 None
2282 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....
2283 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0...
2284 3 LINESTRING EMPTY
2285 4 MULTIPOINT (0.00000 1.00000, 1.00000 1.00000)
2286 5 None
2287 dtype: geometry
2288
2289 >>> s.symmetric_difference(s2, align=False)
2290 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....
2291 1 GEOMETRYCOLLECTION (LINESTRING (1.00000 0.0000...
2292 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0...
2293 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2294 4 POINT EMPTY
2295 dtype: geometry
2296
2297 See Also
2298 --------
2299 GeoSeries.difference
2300 GeoSeries.union
2301 GeoSeries.intersection
2302 """
2303 return _binary_geo("symmetric_difference", self, other, align)
2304
2305 def union(self, other, align=True):
2306 """Returns a ``GeoSeries`` of the union of points in each aligned geometry with
5412307 `other`.
2308
2309 .. image:: ../../../_static/binary_geo-union.svg
2310 :align: center
2311
2312 The operation works on a 1-to-1 row-wise manner:
2313
2314 .. image:: ../../../_static/binary_op-01.svg
2315 :align: center
2316
5422317
5432318 Parameters
5442319 ----------
5452320 other : Geoseries or geometric object
5462321 The Geoseries (elementwise) or geometric object to find the union
5472322 with.
548 """
549 return _binary_geo("union", self, other)
550
551 def intersection(self, other):
2323 align : bool (default True)
2324 If True, automatically aligns GeoSeries based on their indices.
2325 If False, the order of elements is preserved.
2326
2327 Returns
2328 -------
2329 GeoSeries
2330
2331 Examples
2332 --------
2333 >>> from shapely.geometry import Polygon, LineString, Point
2334 >>> s = geopandas.GeoSeries(
2335 ... [
2336 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2337 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2338 ... LineString([(0, 0), (2, 2)]),
2339 ... LineString([(2, 0), (0, 2)]),
2340 ... Point(0, 1),
2341 ... ],
2342 ... )
2343 >>> s2 = geopandas.GeoSeries(
2344 ... [
2345 ... Polygon([(0, 0), (1, 1), (0, 1)]),
2346 ... LineString([(1, 0), (1, 3)]),
2347 ... LineString([(2, 0), (0, 2)]),
2348 ... Point(1, 1),
2349 ... Point(0, 1),
2350 ... ],
2351 ... index=range(1, 6),
2352 ... )
2353
2354 >>> s
2355 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2356 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2357 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
2358 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2359 4 POINT (0.00000 1.00000)
2360 dtype: geometry
2361
2362 >>> s2
2363 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
2364 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000)
2365 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2366 4 POINT (1.00000 1.00000)
2367 5 POINT (0.00000 1.00000)
2368 dtype: geometry
2369
2370 We can do union of each geometry and a single
2371 shapely geometry:
2372
2373 .. image:: ../../../_static/binary_op-03.svg
2374 :align: center
2375
2376 >>> s.union(Polygon([(0, 0), (1, 1), (0, 1)]))
2377 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2378 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2379 2 GEOMETRYCOLLECTION (LINESTRING (1.00000 1.0000...
2380 3 GEOMETRYCOLLECTION (LINESTRING (2.00000 0.0000...
2381 4 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1....
2382 dtype: geometry
2383
2384 We can also check two GeoSeries against each other, row by row.
2385 The GeoSeries above have different indices. We can either align both GeoSeries
2386 based on index values and compare elements with the same index using
2387 ``align=True`` or ignore index and compare elements based on their matching
2388 order using ``align=False``:
2389
2390 .. image:: ../../../_static/binary_op-02.svg
2391
2392 >>> s.union(s2, align=True)
2393 0 None
2394 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2395 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0...
2396 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2397 4 MULTIPOINT (0.00000 1.00000, 1.00000 1.00000)
2398 5 None
2399 dtype: geometry
2400
2401 >>> s.union(s2, align=False)
2402 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2403 1 GEOMETRYCOLLECTION (LINESTRING (1.00000 0.0000...
2404 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0...
2405 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2406 4 POINT (0.00000 1.00000)
2407 dtype: geometry
2408
2409
2410 See Also
2411 --------
2412 GeoSeries.symmetric_difference
2413 GeoSeries.difference
2414 GeoSeries.intersection
2415 """
2416 return _binary_geo("union", self, other, align)
2417
2418 def intersection(self, other, align=True):
5522419 """Returns a ``GeoSeries`` of the intersection of points in each
553 geometry with `other`.
2420 aligned geometry with `other`.
2421
2422 .. image:: ../../../_static/binary_geo-intersection.svg
2423 :align: center
2424
2425 The operation works on a 1-to-1 row-wise manner:
2426
2427 .. image:: ../../../_static/binary_op-01.svg
2428 :align: center
2429
5542430
5552431 Parameters
5562432 ----------
5572433 other : Geoseries or geometric object
5582434 The Geoseries (elementwise) or geometric object to find the
5592435 intersection with.
560 """
561 return _binary_geo("intersection", self, other)
2436 align : bool (default True)
2437 If True, automatically aligns GeoSeries based on their indices.
2438 If False, the order of elements is preserved.
2439
2440 Returns
2441 -------
2442 GeoSeries
2443
2444 Examples
2445 --------
2446 >>> from shapely.geometry import Polygon, LineString, Point
2447 >>> s = geopandas.GeoSeries(
2448 ... [
2449 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2450 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2451 ... LineString([(0, 0), (2, 2)]),
2452 ... LineString([(2, 0), (0, 2)]),
2453 ... Point(0, 1),
2454 ... ],
2455 ... )
2456 >>> s2 = geopandas.GeoSeries(
2457 ... [
2458 ... Polygon([(0, 0), (1, 1), (0, 1)]),
2459 ... LineString([(1, 0), (1, 3)]),
2460 ... LineString([(2, 0), (0, 2)]),
2461 ... Point(1, 1),
2462 ... Point(0, 1),
2463 ... ],
2464 ... index=range(1, 6),
2465 ... )
2466
2467 >>> s
2468 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2469 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2470 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
2471 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2472 4 POINT (0.00000 1.00000)
2473 dtype: geometry
2474
2475 >>> s2
2476 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
2477 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000)
2478 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2479 4 POINT (1.00000 1.00000)
2480 5 POINT (0.00000 1.00000)
2481 dtype: geometry
2482
2483 We can also do intersection of each geometry and a single
2484 shapely geometry:
2485
2486 .. image:: ../../../_static/binary_op-03.svg
2487 :align: center
2488
2489 >>> s.intersection(Polygon([(0, 0), (1, 1), (0, 1)]))
2490 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2491 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2492 2 LINESTRING (0.00000 0.00000, 1.00000 1.00000)
2493 3 POINT (1.00000 1.00000)
2494 4 POINT (0.00000 1.00000)
2495 dtype: geometry
2496
2497 We can also check two GeoSeries against each other, row by row.
2498 The GeoSeries above have different indices. We can either align both GeoSeries
2499 based on index values and compare elements with the same index using
2500 ``align=True`` or ignore index and compare elements based on their matching
2501 order using ``align=False``:
2502
2503 .. image:: ../../../_static/binary_op-02.svg
2504
2505 >>> s.intersection(s2, align=True)
2506 0 None
2507 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2508 2 POINT (1.00000 1.00000)
2509 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2510 4 POINT EMPTY
2511 5 None
2512 dtype: geometry
2513
2514 >>> s.intersection(s2, align=False)
2515 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0....
2516 1 LINESTRING (1.00000 1.00000, 1.00000 2.00000)
2517 2 POINT (1.00000 1.00000)
2518 3 POINT (1.00000 1.00000)
2519 4 POINT (0.00000 1.00000)
2520 dtype: geometry
2521
2522
2523 See Also
2524 --------
2525 GeoSeries.difference
2526 GeoSeries.symmetric_difference
2527 GeoSeries.union
2528 """
2529 return _binary_geo("intersection", self, other, align)
5622530
5632531 #
5642532 # Other operations
5702538 ``maxy`` values containing the bounds for each geometry.
5712539
5722540 See ``GeoSeries.total_bounds`` for the limits of the entire series.
2541
2542 Examples
2543 --------
2544 >>> from shapely.geometry import Point, Polygon, LineString
2545 >>> d = {'geometry': [Point(2, 1), Polygon([(0, 0), (1, 1), (1, 0)]),
2546 ... LineString([(0, 1), (1, 2)])]}
2547 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
2548 >>> gdf.bounds
2549 minx miny maxx maxy
2550 0 2.0 1.0 2.0 1.0
2551 1 0.0 0.0 1.0 1.0
2552 2 0.0 1.0 1.0 2.0
5732553 """
5742554 bounds = GeometryArray(self.geometry.values).bounds
5752555 return DataFrame(
5832563
5842564 See ``GeoSeries.bounds`` for the bounds of the geometries contained in
5852565 the series.
2566
2567 Examples
2568 --------
2569 >>> from shapely.geometry import Point, Polygon, LineString
2570 >>> d = {'geometry': [Point(3, -1), Polygon([(0, 0), (1, 1), (1, 0)]),
2571 ... LineString([(0, 1), (1, 2)])]}
2572 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
2573 >>> gdf.total_bounds
2574 array([ 0., -1., 3., 2.])
5862575 """
5872576 return GeometryArray(self.geometry.values).total_bounds
5882577
5892578 @property
5902579 def sindex(self):
591 if not self._sindex_generated:
592 self._generate_sindex()
593 return self._sindex
2580 """Generate the spatial index
2581
2582 Creates R-tree spatial index based on ``pygeos.STRtree`` or
2583 ``rtree.index.Index``.
2584
2585 Note that the spatial index may not be fully
2586 initialized until the first use.
2587
2588 Examples
2589 --------
2590 >>> from shapely.geometry import box
2591 >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(5), range(5)))
2592 >>> s
2593 0 POINT (0.00000 0.00000)
2594 1 POINT (1.00000 1.00000)
2595 2 POINT (2.00000 2.00000)
2596 3 POINT (3.00000 3.00000)
2597 4 POINT (4.00000 4.00000)
2598 dtype: geometry
2599
2600 Query the spatial index with a single geometry based on the bounding box:
2601
2602 >>> s.sindex.query(box(1, 1, 3, 3))
2603 array([1, 2, 3])
2604
2605 Query the spatial index with a single geometry based on the predicate:
2606
2607 >>> s.sindex.query(box(1, 1, 3, 3), predicate="contains")
2608 array([2])
2609
2610 Query the spatial index with an array of geometries based on the bounding
2611 box:
2612
2613 >>> s2 = geopandas.GeoSeries([box(1, 1, 3, 3), box(4, 4, 5, 5)])
2614 >>> s2
2615 0 POLYGON ((3.00000 1.00000, 3.00000 3.00000, 1....
2616 1 POLYGON ((5.00000 4.00000, 5.00000 5.00000, 4....
2617 dtype: geometry
2618
2619 >>> s.sindex.query_bulk(s2)
2620 array([[0, 0, 0, 1],
2621 [1, 2, 3, 4]])
2622
2623 Query the spatial index with an array of geometries based on the predicate:
2624
2625 >>> s.sindex.query_bulk(s2, predicate="contains")
2626 array([[0],
2627 [2]])
2628 """
2629 return self.geometry.values.sindex
2630
2631 @property
2632 def has_sindex(self):
2633 """Check the existence of the spatial index without generating it.
2634
2635 Use the `.sindex` attribute on a GeoDataFrame or GeoSeries
2636 to generate a spatial index if it does not yet exist,
2637 which may take considerable time based on the underlying index
2638 implementation.
2639
2640 Note that the underlying spatial index may not be fully
2641 initialized until the first use.
2642
2643 Examples
2644 --------
2645
2646 >>> from shapely.geometry import Point
2647 >>> d = {'geometry': [Point(1, 2), Point(2, 1)]}
2648 >>> gdf = geopandas.GeoDataFrame(d)
2649 >>> gdf.has_sindex
2650 False
2651 >>> index = gdf.sindex
2652 >>> gdf.has_sindex
2653 True
2654
2655 Returns
2656 -------
2657 bool
2658 `True` if the spatial index has been generated or
2659 `False` if not.
2660 """
2661 return self.geometry.values.has_sindex
5942662
5952663 def buffer(self, distance, resolution=16, **kwargs):
5962664 """Returns a ``GeoSeries`` of geometries representing all points within
597 a given `distance` of each geometric object.
2665 a given ``distance`` of each geometric object.
5982666
5992667 See http://shapely.readthedocs.io/en/latest/manual.html#object.buffer
6002668 for details.
6042672 distance : float, np.array, pd.Series
6052673 The radius of the buffer. If np.array or pd.Series are used
6062674 then it must have same length as the GeoSeries.
607 resolution: int
608 Optional, the resolution of the buffer around each vertex.
609 """
2675 resolution : int (optional, default 16)
2676 The resolution of the buffer around each vertex.
2677
2678 Examples
2679 --------
2680 >>> from shapely.geometry import Point, LineString, Polygon
2681 >>> s = geopandas.GeoSeries(
2682 ... [
2683 ... Point(0, 0),
2684 ... LineString([(1, -1), (1, 0), (2, 0), (2, 1)]),
2685 ... Polygon([(3, -1), (4, 0), (3, 1)]),
2686 ... ]
2687 ... )
2688 >>> s
2689 0 POINT (0.00000 0.00000)
2690 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000,...
2691 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3...
2692 dtype: geometry
2693
2694 >>> s.buffer(0.2)
2695 0 POLYGON ((0.20000 0.00000, 0.19904 -0.01960, 0...
2696 1 POLYGON ((0.80000 0.00000, 0.80096 0.01960, 0....
2697 2 POLYGON ((2.80000 -1.00000, 2.80000 1.00000, 2...
2698 dtype: geometry
2699
2700 ``**kwargs`` accept further specification as ``join_style`` and ``cap_style``.
2701 See the following illustration of different options.
2702
2703 .. plot:: _static/code/buffer.py
2704
2705 """
2706 # TODO: update docstring based on pygeos after shapely 2.0
6102707 if isinstance(distance, pd.Series):
6112708 if not self.index.equals(distance.index):
6122709 raise ValueError(
6312728 tolerance : float
6322729 All points in a simplified geometry will be no more than
6332730 `tolerance` distance from the original.
634 preserve_topology: bool
2731 preserve_topology: bool (default True)
6352732 False uses a quicker algorithm, but may produce self-intersecting
6362733 or otherwise invalid geometries.
2734
2735 Notes
2736 -----
2737 Invalid geometric objects may result from simplification that does not
2738 preserve topology and simplification may be sensitive to the order of
2739 coordinates: two geometries differing only in order of coordinates may be
2740 simplified differently.
2741
2742 Examples
2743 --------
2744 >>> from shapely.geometry import Point, LineString
2745 >>> s = geopandas.GeoSeries(
2746 ... [Point(0, 0).buffer(1), LineString([(0, 0), (1, 10), (0, 20)])]
2747 ... )
2748 >>> s
2749 0 POLYGON ((1.00000 0.00000, 0.99518 -0.09802, 0...
2750 1 LINESTRING (0.00000 0.00000, 1.00000 10.00000,...
2751 dtype: geometry
2752
2753 >>> s.simplify(1)
2754 0 POLYGON ((1.00000 0.00000, 0.00000 -1.00000, -...
2755 1 LINESTRING (0.00000 0.00000, 0.00000 20.00000)
2756 dtype: geometry
6372757 """
6382758 return _delegate_geo_method("simplify", self, *args, **kwargs)
6392759
640 def relate(self, other):
2760 def relate(self, other, align=True):
6412761 """
6422762 Returns the DE-9IM intersection matrices for the geometries
2763
2764 The operation works on a 1-to-1 row-wise manner:
2765
2766 .. image:: ../../../_static/binary_op-01.svg
2767 :align: center
6432768
6442769 Parameters
6452770 ----------
6462771 other : BaseGeometry or GeoSeries
6472772 The other geometry to computed
6482773 the DE-9IM intersection matrices from.
2774 align : bool (default True)
2775 If True, automatically aligns GeoSeries based on their indices.
2776 If False, the order of elements is preserved.
6492777
6502778 Returns
6512779 ----------
6522780 spatial_relations: Series of strings
6532781 The DE-9IM intersection matrices which describe
6542782 the spatial relations of the other geometry.
655 """
656 return _binary_op("relate", self, other)
657
658 def project(self, other, normalized=False):
2783
2784 Examples
2785 --------
2786 >>> from shapely.geometry import Polygon, LineString, Point
2787 >>> s = geopandas.GeoSeries(
2788 ... [
2789 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2790 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2791 ... LineString([(0, 0), (2, 2)]),
2792 ... LineString([(2, 0), (0, 2)]),
2793 ... Point(0, 1),
2794 ... ],
2795 ... )
2796 >>> s2 = geopandas.GeoSeries(
2797 ... [
2798 ... Polygon([(0, 0), (1, 1), (0, 1)]),
2799 ... LineString([(1, 0), (1, 3)]),
2800 ... LineString([(2, 0), (0, 2)]),
2801 ... Point(1, 1),
2802 ... Point(0, 1),
2803 ... ],
2804 ... index=range(1, 6),
2805 ... )
2806
2807 >>> s
2808 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2809 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2810 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
2811 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2812 4 POINT (0.00000 1.00000)
2813 dtype: geometry
2814
2815 >>> s2
2816 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
2817 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000)
2818 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2819 4 POINT (1.00000 1.00000)
2820 5 POINT (0.00000 1.00000)
2821 dtype: geometry
2822
2823 We can relate each geometry and a single
2824 shapely geometry:
2825
2826 .. image:: ../../../_static/binary_op-03.svg
2827 :align: center
2828
2829 >>> s.relate(Polygon([(0, 0), (1, 1), (0, 1)]))
2830 0 212F11FF2
2831 1 212F11FF2
2832 2 F11F00212
2833 3 F01FF0212
2834 4 F0FFFF212
2835 dtype: object
2836
2837 We can also check two GeoSeries against each other, row by row.
2838 The GeoSeries above have different indices. We can either align both GeoSeries
2839 based on index values and compare elements with the same index using
2840 ``align=True`` or ignore index and compare elements based on their matching
2841 order using ``align=False``:
2842
2843 .. image:: ../../../_static/binary_op-02.svg
2844
2845 >>> s.relate(s2, align=True)
2846 0 None
2847 1 212F11FF2
2848 2 0F1FF0102
2849 3 1FFF0FFF2
2850 4 FF0FFF0F2
2851 5 None
2852 dtype: object
2853
2854 >>> s.relate(s2, align=False)
2855 0 212F11FF2
2856 1 1F20F1102
2857 2 0F1FF0102
2858 3 0F1FF0FF2
2859 4 0FFFFFFF2
2860 dtype: object
2861
2862 """
2863 return _binary_op("relate", self, other, align)
2864
2865 def project(self, other, normalized=False, align=True):
6592866 """
6602867 Return the distance along each geometry nearest to *other*
2868
2869 The operation works on a 1-to-1 row-wise manner:
2870
2871 .. image:: ../../../_static/binary_op-01.svg
2872 :align: center
2873
2874 The project method is the inverse of interpolate.
2875
6612876
6622877 Parameters
6632878 ----------
6662881 normalized : boolean
6672882 If normalized is True, return the distance normalized to
6682883 the length of the object.
669
670 The project method is the inverse of interpolate.
671 """
672 return _binary_op("project", self, other, normalized=normalized)
2884 align : bool (default True)
2885 If True, automatically aligns GeoSeries based on their indices.
2886 If False, the order of elements is preserved.
2887
2888 Returns
2889 -------
2890 Series
2891
2892 Examples
2893 --------
2894 >>> from shapely.geometry import Polygon, LineString, Point
2895 >>> s = geopandas.GeoSeries(
2896 ... [
2897 ... Polygon([(0, 0), (2, 2), (0, 2)]),
2898 ... LineString([(0, 0), (2, 2)]),
2899 ... LineString([(2, 0), (0, 2)]),
2900 ... ],
2901 ... )
2902 >>> s2 = geopandas.GeoSeries(
2903 ... [
2904 ... Point(1, 0),
2905 ... Point(1, 0),
2906 ... Point(2, 1),
2907 ... ],
2908 ... index=range(1, 4),
2909 ... )
2910
2911 >>> s
2912 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0....
2913 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000)
2914 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000)
2915 dtype: geometry
2916
2917 >>> s2
2918 1 POINT (1.00000 0.00000)
2919 2 POINT (1.00000 0.00000)
2920 3 POINT (2.00000 1.00000)
2921 dtype: geometry
2922
2923 We can project each geometry on a single
2924 shapely geometry:
2925
2926 .. image:: ../../../_static/binary_op-03.svg
2927 :align: center
2928
2929 >>> s.project(Point(1, 0))
2930 0 -1.000000
2931 1 0.707107
2932 2 0.707107
2933 dtype: float64
2934
2935 We can also check two GeoSeries against each other, row by row.
2936 The GeoSeries above have different indices. We can either align both GeoSeries
2937 based on index values and project elements with the same index using
2938 ``align=True`` or ignore index and project elements based on their matching
2939 order using ``align=False``:
2940
2941 .. image:: ../../../_static/binary_op-02.svg
2942
2943 >>> s.project(s2, align=True)
2944 0 NaN
2945 1 0.707107
2946 2 0.707107
2947 3 NaN
2948 dtype: float64
2949
2950 >>> s.project(s2, align=False)
2951 0 -1.000000
2952 1 0.707107
2953 2 0.707107
2954 dtype: float64
2955
2956 See also
2957 --------
2958 GeoSeries.interpolate
2959 """
2960 return _binary_op("project", self, other, normalized=normalized, align=align)
6732961
6742962 def interpolate(self, distance, normalized=False):
6752963 """
7062994 ----------
7072995 matrix: List or tuple
7082996 6 or 12 items for 2D or 3D transformations respectively.
2997
7092998 For 2D affine transformations,
710 the 6 parameter matrix is [a, b, d, e, xoff, yoff]
2999 the 6 parameter matrix is ``[a, b, d, e, xoff, yoff]``
3000
7113001 For 3D affine transformations,
712 the 12 parameter matrix is [a, b, c, d, e, f, g, h, i, xoff, yoff, zoff]
3002 the 12 parameter matrix is ``[a, b, c, d, e, f, g, h, i, xoff, yoff, zoff]``
3003
3004 Examples
3005 --------
3006 >>> from shapely.geometry import Point, LineString, Polygon
3007 >>> s = geopandas.GeoSeries(
3008 ... [
3009 ... Point(1, 1),
3010 ... LineString([(1, -1), (1, 0)]),
3011 ... Polygon([(3, -1), (4, 0), (3, 1)]),
3012 ... ]
3013 ... )
3014 >>> s
3015 0 POINT (1.00000 1.00000)
3016 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000)
3017 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3...
3018 dtype: geometry
3019
3020 >>> s.affine_transform([2, 3, 2, 4, 5, 2])
3021 0 POINT (10.00000 8.00000)
3022 1 LINESTRING (4.00000 0.00000, 7.00000 4.00000)
3023 2 POLYGON ((8.00000 4.00000, 13.00000 10.00000, ...
3024 dtype: geometry
3025
7133026 """ # noqa (E501 link is longer than max line length)
7143027 return _delegate_geo_method("affine_transform", self, matrix)
7153028
7253038 Amount of offset along each dimension.
7263039 xoff, yoff, and zoff for translation along the x, y, and z
7273040 dimensions respectively.
3041
3042 Examples
3043 --------
3044 >>> from shapely.geometry import Point, LineString, Polygon
3045 >>> s = geopandas.GeoSeries(
3046 ... [
3047 ... Point(1, 1),
3048 ... LineString([(1, -1), (1, 0)]),
3049 ... Polygon([(3, -1), (4, 0), (3, 1)]),
3050 ... ]
3051 ... )
3052 >>> s
3053 0 POINT (1.00000 1.00000)
3054 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000)
3055 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3...
3056 dtype: geometry
3057
3058 >>> s.translate(2, 3)
3059 0 POINT (3.00000 4.00000)
3060 1 LINESTRING (3.00000 2.00000, 3.00000 3.00000)
3061 2 POLYGON ((5.00000 2.00000, 6.00000 3.00000, 5....
3062 dtype: geometry
3063
7283064 """ # noqa (E501 link is longer than max line length)
7293065 return _delegate_geo_method("translate", self, xoff, yoff, zoff)
7303066
7463082 object or a coordinate tuple (x, y).
7473083 use_radians : boolean
7483084 Whether to interpret the angle of rotation as degrees or radians
3085
3086 Examples
3087 --------
3088 >>> from shapely.geometry import Point, LineString, Polygon
3089 >>> s = geopandas.GeoSeries(
3090 ... [
3091 ... Point(1, 1),
3092 ... LineString([(1, -1), (1, 0)]),
3093 ... Polygon([(3, -1), (4, 0), (3, 1)]),
3094 ... ]
3095 ... )
3096 >>> s
3097 0 POINT (1.00000 1.00000)
3098 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000)
3099 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3...
3100 dtype: geometry
3101
3102 >>> s.rotate(90)
3103 0 POINT (1.00000 1.00000)
3104 1 LINESTRING (1.50000 -0.50000, 0.50000 -0.50000)
3105 2 POLYGON ((4.50000 -0.50000, 3.50000 0.50000, 2...
3106 dtype: geometry
3107
3108 >>> s.rotate(90, origin=(0, 0))
3109 0 POINT (-1.00000 1.00000)
3110 1 LINESTRING (1.00000 1.00000, 0.00000 1.00000)
3111 2 POLYGON ((1.00000 3.00000, 0.00000 4.00000, -1...
3112 dtype: geometry
3113
7493114 """
7503115 return _delegate_geo_method(
7513116 "rotate", self, angle, origin=origin, use_radians=use_radians
7683133 The point of origin can be a keyword 'center' for the 2D bounding
7693134 box center (default), 'centroid' for the geometry's 2D centroid, a
7703135 Point object or a coordinate tuple (x, y, z).
3136
3137 Examples
3138 --------
3139 >>> from shapely.geometry import Point, LineString, Polygon
3140 >>> s = geopandas.GeoSeries(
3141 ... [
3142 ... Point(1, 1),
3143 ... LineString([(1, -1), (1, 0)]),
3144 ... Polygon([(3, -1), (4, 0), (3, 1)]),
3145 ... ]
3146 ... )
3147 >>> s
3148 0 POINT (1.00000 1.00000)
3149 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000)
3150 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3...
3151 dtype: geometry
3152
3153 >>> s.scale(2, 3)
3154 0 POINT (1.00000 1.00000)
3155 1 LINESTRING (1.00000 -2.00000, 1.00000 1.00000)
3156 2 POLYGON ((2.50000 -3.00000, 4.50000 0.00000, 2...
3157 dtype: geometry
3158
3159 >>> s.scale(2, 3, origin=(0, 0))
3160 0 POINT (2.00000 3.00000)
3161 1 LINESTRING (2.00000 -3.00000, 2.00000 0.00000)
3162 2 POLYGON ((6.00000 -3.00000, 8.00000 0.00000, 6...
3163 dtype: geometry
7713164 """
7723165 return _delegate_geo_method("scale", self, xfact, yfact, zfact, origin=origin)
7733166
7913184 object or a coordinate tuple (x, y).
7923185 use_radians : boolean
7933186 Whether to interpret the shear angle(s) as degrees or radians
3187
3188 Examples
3189 --------
3190 >>> from shapely.geometry import Point, LineString, Polygon
3191 >>> s = geopandas.GeoSeries(
3192 ... [
3193 ... Point(1, 1),
3194 ... LineString([(1, -1), (1, 0)]),
3195 ... Polygon([(3, -1), (4, 0), (3, 1)]),
3196 ... ]
3197 ... )
3198 >>> s
3199 0 POINT (1.00000 1.00000)
3200 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000)
3201 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3...
3202 dtype: geometry
3203
3204 >>> s.skew(45, 30)
3205 0 POINT (1.00000 1.00000)
3206 1 LINESTRING (0.50000 -1.00000, 1.50000 0.00000)
3207 2 POLYGON ((2.00000 -1.28868, 4.00000 0.28868, 4...
3208 dtype: geometry
3209
3210 >>> s.skew(45, 30, origin=(0, 0))
3211 0 POINT (2.00000 1.57735)
3212 1 LINESTRING (0.00000 -0.42265, 1.00000 0.57735)
3213 2 POLYGON ((2.00000 0.73205, 4.00000 2.30940, 4....
3214 dtype: geometry
7943215 """
7953216 return _delegate_geo_method(
7963217 "skew", self, xs, ys, origin=origin, use_radians=use_radians
7973218 )
798
799 def explode(self):
800 """
801 Explode multi-part geometries into multiple single geometries.
802
803 Single rows can become multiple rows.
804 This is analogous to PostGIS's ST_Dump(). The 'path' index is the
805 second level of the returned MultiIndex
806
807 Returns
808 ------
809 A GeoSeries with a MultiIndex. The levels of the MultiIndex are the
810 original index and a zero-based integer index that counts the
811 number of single geometries within a multi-part geometry.
812
813 Examples
814 --------
815 >>> gdf # gdf is GeoSeries of MultiPoints
816 0 MULTIPOINT (0 0, 1 1)
817 1 MULTIPOINT (2 2, 3 3, 4 4)
818 dtype: geometry
819
820 >>> gdf.explode()
821 0 0 POINT (0 0)
822 1 POINT (1 1)
823 1 0 POINT (2 2)
824 1 POINT (3 3)
825 2 POINT (4 4)
826 dtype: geometry
827
828 """
829 index = []
830 geometries = []
831 for idx, s in self.geometry.iteritems():
832 if s.type.startswith("Multi") or s.type == "GeometryCollection":
833 geoms = s.geoms
834 idxs = [(idx, i) for i in range(len(geoms))]
835 else:
836 geoms = [s]
837 idxs = [(idx, 0)]
838 index.extend(idxs)
839 geometries.extend(geoms)
840 index = MultiIndex.from_tuples(index, names=self.index.names + [None])
841 return gpd.GeoSeries(geometries, index=index).__finalize__(self)
8423219
8433220 @property
8443221 def cx(self):
8493226 ``xmin``, ``xmax``, ``ymin``, and ``ymax`` can be provided, but input
8503227 must include a comma separating x and y slices. That is, ``.cx[:, :]``
8513228 will return the full series/frame, but ``.cx[:]`` is not implemented.
3229
3230 Examples
3231 --------
3232 >>> from shapely.geometry import LineString, Point
3233 >>> s = geopandas.GeoSeries(
3234 ... [Point(0, 0), Point(1, 2), Point(3, 3), LineString([(0, 0), (3, 3)])]
3235 ... )
3236 >>> s
3237 0 POINT (0.00000 0.00000)
3238 1 POINT (1.00000 2.00000)
3239 2 POINT (3.00000 3.00000)
3240 3 LINESTRING (0.00000 0.00000, 3.00000 3.00000)
3241 dtype: geometry
3242
3243 >>> s.cx[0:1, 0:1]
3244 0 POINT (0.00000 0.00000)
3245 3 LINESTRING (0.00000 0.00000, 3.00000 3.00000)
3246 dtype: geometry
3247
3248 >>> s.cx[:, 1:]
3249 1 POINT (1.00000 2.00000)
3250 2 POINT (3.00000 3.00000)
3251 3 LINESTRING (0.00000 0.00000, 3.00000 3.00000)
3252 dtype: geometry
3253
8523254 """
8533255 return _CoordinateIndexer(self)
8543256
0 import pytest
1 import geopandas
2
3
4 @pytest.fixture(autouse=True)
5 def add_geopandas(doctest_namespace):
6 doctest_namespace["geopandas"] = geopandas
7
8
9 def pytest_configure(config):
10 config.addinivalue_line(
11 "markers",
12 "skip_no_sindex: skips the tests if there is no spatial index backend",
13 )
14
15
16 try:
17 geopandas.sindex._get_sindex_class()
18 has_sindex_backend = True
19 except ImportError:
20 has_sindex_backend = False
21
22
23 def pytest_runtest_setup(item):
24 skip_no_sindex = any(mark for mark in item.iter_markers(name="skip_no_sindex"))
25 if skip_no_sindex and not has_sindex_backend:
26 pytest.skip("Skipped because there is no spatial index backend available")
1717 The name of the dataset. See ``geopandas.datasets.available`` for
1818 all options.
1919
20 Examples
21 --------
22 >>> geopandas.datasets.get_path("naturalearth_lowres") # doctest: +SKIP
23 '.../python3.8/site-packages/geopandas/datasets/\
24 naturalearth_lowres/naturalearth_lowres.shp'
25
2026 """
2127 if dataset in _available_dir:
2228 return os.path.abspath(os.path.join(_module_path, dataset, dataset + ".shp"))
1010
1111 from pyproj import CRS
1212
13 from geopandas.array import GeometryArray, from_shapely, GeometryDtype
13 from geopandas.array import GeometryArray, GeometryDtype, from_shapely, to_wkb, to_wkt
1414 from geopandas.base import GeoPandasBase, is_geometry_type
15 from geopandas.geoseries import GeoSeries
15 from geopandas.geoseries import GeoSeries, inherit_doc
1616 import geopandas.io
1717 from geopandas.plotting import plot_dataframe
18 from . import _compat as compat
1819
1920
2021 DEFAULT_GEO_COLUMN_NAME = "geometry"
6364 Constructing GeoDataFrame from a dictionary.
6465
6566 >>> from shapely.geometry import Point
66 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1,2), Point(2,1)]}
67 >>> gdf = gpd.GeoDataFrame(d, crs="EPSG:4326")
67 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]}
68 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
6869 >>> gdf
6970 col1 geometry
7071 0 name1 POINT (1.00000 2.00000)
7677 col1 object
7778 geometry geometry
7879 dtype: object
80
81 Constructing GeoDataFrame from a pandas DataFrame with a column of WKT geometries:
82
83 >>> import pandas as pd
84 >>> d = {'col1': ['name1', 'name2'], 'wkt': ['POINT (1 2)', 'POINT (2 1)']}
85 >>> df = pd.DataFrame(d)
86 >>> gs = geopandas.GeoSeries.from_wkt(df['wkt'])
87 >>> gdf = geopandas.GeoDataFrame(df, geometry=gs, crs="EPSG:4326")
88 >>> gdf
89 col1 wkt geometry
90 0 name1 POINT (1 2) POINT (1.00000 2.00000)
91 1 name2 POINT (2 1) POINT (2.00000 1.00000)
92
93 See also
94 --------
95 GeoSeries : Series object designed to store shapely geometry objects
7996 """
8097
8198 _metadata = ["_crs", "_geometry_column_name"]
8299
83100 _geometry_column_name = DEFAULT_GEO_COLUMN_NAME
84101
85 def __init__(self, *args, **kwargs):
86 crs = kwargs.pop("crs", None)
87 geometry = kwargs.pop("geometry", None)
88 super(GeoDataFrame, self).__init__(*args, **kwargs)
102 def __init__(self, *args, geometry=None, crs=None, **kwargs):
103 with compat.ignore_shapely2_warnings():
104 super(GeoDataFrame, self).__init__(*args, **kwargs)
89105
90106 # need to set this before calling self['geometry'], because
91107 # getitem accesses crs
92 self._crs = crs if crs is not None else None
108 self._crs = CRS.from_user_input(crs) if crs else None
93109
94110 # set_geometry ensures the geometry data have the proper dtype,
95111 # but is not called if `geometry=None` ('geometry' column present
148164 )
149165 # TODO: raise error in 0.9 or 0.10.
150166 self.set_geometry(geometry, inplace=True)
151 self._invalidate_sindex()
152167
153168 if geometry is None and crs:
154169 warnings.warn(
192207 Parameters
193208 ----------
194209 col : column label or array
195 drop : boolean, default True
210 drop : boolean, default False
196211 Delete column to be used as the new geometry
197212 inplace : boolean, default False
198213 Modify the GeoDataFrame in place (do not create a new object)
205220
206221 Examples
207222 --------
208 >>> df1 = df.set_geometry([Point(0,0), Point(1,1), Point(2,2)])
209 >>> df2 = df.set_geometry('geom1')
223 >>> from shapely.geometry import Point
224 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]}
225 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
226 >>> gdf
227 col1 geometry
228 0 name1 POINT (1.00000 2.00000)
229 1 name2 POINT (2.00000 1.00000)
230
231 Passing an array:
232
233 >>> df1 = gdf.set_geometry([Point(0,0), Point(1,1)])
234 >>> df1
235 col1 geometry
236 0 name1 POINT (0.00000 0.00000)
237 1 name2 POINT (1.00000 1.00000)
238
239 Using existing column:
240
241 >>> gdf["buffered"] = gdf.buffer(2)
242 >>> df2 = gdf.set_geometry("buffered")
243 >>> df2.geometry
244 0 POLYGON ((3.00000 2.00000, 2.99037 1.80397, 2....
245 1 POLYGON ((4.00000 1.00000, 3.99037 0.80397, 3....
246 Name: buffered, dtype: geometry
210247
211248 Returns
212249 -------
213250 GeoDataFrame
251
252 See also
253 --------
254 GeoDataFrame.rename_geometry : rename an active geometry column
214255 """
215256 # Most of the code here is taken from DataFrame.set_index()
216257 if inplace:
259300 frame.index = index
260301 frame._geometry_column_name = geo_column_name
261302 frame.crs = crs
262 frame._invalidate_sindex()
263303 if not inplace:
264304 return frame
265305
278318
279319 Examples
280320 --------
321 >>> from shapely.geometry import Point
322 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]}
323 >>> df = geopandas.GeoDataFrame(d, crs="EPSG:4326")
281324 >>> df1 = df.rename_geometry('geom1')
282325 >>> df1.geometry.name
283326 'geom1'
288331 Returns
289332 -------
290333 geodataframe : GeoDataFrame
334
335 See also
336 --------
337 GeoDataFrame.set_geometry : set the active geometry
291338 """
292339 geometry_col = self.geometry.name
293 if not inplace:
294 return self.rename(columns={geometry_col: col}).set_geometry(col, inplace)
295 self.rename(columns={geometry_col: col}, inplace=inplace)
296 self.set_geometry(col, inplace=inplace)
340 if col in self.columns:
341 raise ValueError(f"Column named {col} already exists")
342 else:
343 if not inplace:
344 return self.rename(columns={geometry_col: col}).set_geometry(
345 col, inplace
346 )
347 self.rename(columns={geometry_col: col}, inplace=inplace)
348 self.set_geometry(col, inplace=inplace)
297349
298350 @property
299351 def crs(self):
306358 can be anything accepted by
307359 :meth:`pyproj.CRS.from_user_input() <pyproj.crs.CRS.from_user_input>`,
308360 such as an authority string (eg "EPSG:4326") or a WKT string.
361
362 Examples
363 --------
364
365 >>> gdf.crs # doctest: +SKIP
366 <Geographic 2D CRS: EPSG:4326>
367 Name: WGS 84
368 Axis Info [ellipsoidal]:
369 - Lat[north]: Geodetic latitude (degree)
370 - Lon[east]: Geodetic longitude (degree)
371 Area of Use:
372 - name: World
373 - bounds: (-180.0, -90.0, 180.0, 90.0)
374 Datum: World Geodetic System 1984
375 - Ellipsoid: WGS 84
376 - Prime Meridian: Greenwich
377
378 See also
379 --------
380 GeoDataFrame.set_crs : assign CRS
381 GeoDataFrame.to_crs : re-project to another CRS
382
309383 """
310384 return self._crs
311385
351425 pass
352426
353427 @classmethod
428 def from_dict(cls, data, geometry=None, crs=None, **kwargs):
429 """
430 Construct GeoDataFrame from dict of array-like or dicts by
431 overiding DataFrame.from_dict method with geometry and crs
432
433 Parameters
434 ----------
435 data : dict
436 Of the form {field : array-like} or {field : dict}.
437 geometry : str or array (optional)
438 If str, column to use as geometry. If array, will be set as 'geometry'
439 column on GeoDataFrame.
440 crs : str or dict (optional)
441 Coordinate reference system to set on the resulting frame.
442 kwargs : key-word arguments
443 These arguments are passed to DataFrame.from_dict
444
445 Returns
446 -------
447 GeoDataFrame
448
449 """
450 dataframe = super().from_dict(data, **kwargs)
451 return GeoDataFrame(dataframe, geometry=geometry, crs=crs)
452
453 @classmethod
354454 def from_file(cls, filename, **kwargs):
355455 """Alternate constructor to create a ``GeoDataFrame`` from a file.
456
457 It is recommended to use :func:`geopandas.read_file` instead.
356458
357459 Can load a ``GeoDataFrame`` from a file in any format recognized by
358460 `fiona`. See http://fiona.readthedocs.io/en/latest/manual.html for details.
370472
371473 Examples
372474 --------
373 >>> df = geopandas.GeoDataFrame.from_file('nybb.shp')
475
476 >>> path = geopandas.datasets.get_path('nybb')
477 >>> gdf = geopandas.GeoDataFrame.from_file(path)
478 >>> gdf # doctest: +SKIP
479 BoroCode BoroName Shape_Leng Shape_Area \
480 geometry
481 0 5 Staten Island 330470.010332 1.623820e+09 MULTIPOLYGON ((\
482 (970217.022 145643.332, 970227....
483 1 4 Queens 896344.047763 3.045213e+09 MULTIPOLYGON ((\
484 (1029606.077 156073.814, 102957...
485 2 3 Brooklyn 741080.523166 1.937479e+09 MULTIPOLYGON ((\
486 (1021176.479 151374.797, 102100...
487 3 1 Manhattan 359299.096471 6.364715e+08 MULTIPOLYGON ((\
488 (981219.056 188655.316, 980940....
489 4 2 Bronx 464392.991824 1.186925e+09 MULTIPOLYGON ((\
490 (1012821.806 229228.265, 101278...
491
492 The recommended method of reading files is :func:`geopandas.read_file`:
493
494 >>> gdf = geopandas.read_file(path)
495
496 See also
497 --------
498 read_file : read file to GeoDataFame
499 GeoDataFrame.to_file : write GeoDataFrame to file
500
374501 """
375502 return geopandas.io.file._read_file(filename, **kwargs)
376503
405532 For more information about the ``__geo_interface__``, see
406533 https://gist.github.com/sgillies/2217756
407534
535 Examples
536 --------
537 >>> feature_coll = {
538 ... "type": "FeatureCollection",
539 ... "features": [
540 ... {
541 ... "id": "0",
542 ... "type": "Feature",
543 ... "properties": {"col1": "name1"},
544 ... "geometry": {"type": "Point", "coordinates": (1.0, 2.0)},
545 ... "bbox": (1.0, 2.0, 1.0, 2.0),
546 ... },
547 ... {
548 ... "id": "1",
549 ... "type": "Feature",
550 ... "properties": {"col1": "name2"},
551 ... "geometry": {"type": "Point", "coordinates": (2.0, 1.0)},
552 ... "bbox": (2.0, 1.0, 2.0, 1.0),
553 ... },
554 ... ],
555 ... "bbox": (1.0, 1.0, 2.0, 2.0),
556 ... }
557 >>> df = geopandas.GeoDataFrame.from_features(feature_coll)
558 >>> df
559 geometry col1
560 0 POINT (1.00000 2.00000) name1
561 1 POINT (2.00000 1.00000) name2
562
408563 """
409564 # Handle feature collections
410565 if hasattr(features, "__geo_interface__"):
450605 Parameters
451606 ----------
452607 sql : string
453 con : DB connection object or SQLAlchemy engine
608 con : sqlalchemy.engine.Connection or sqlalchemy.engine.Engine
454609 geom_col : string, default 'geom'
455610 column name to convert to shapely geometries
456611 crs : optional
477632
478633 Examples
479634 --------
635 PostGIS
636
637 >>> from sqlalchemy import create_engine # doctest: +SKIP
638 >>> db_connection_url = "postgres://myusername:mypassword@myhost:5432/mydb"
639 >>> con = create_engine(db_connection_url) # doctest: +SKIP
480640 >>> sql = "SELECT geom, highway FROM roads"
641 >>> df = geopandas.GeoDataFrame.from_postgis(sql, con) # doctest: +SKIP
642
481643 SpatiaLite
644
482645 >>> sql = "SELECT ST_Binary(geom) AS geom, highway FROM roads"
483 >>> df = geopandas.GeoDataFrame.from_postgis(sql, con)
646 >>> df = geopandas.GeoDataFrame.from_postgis(sql, con) # doctest: +SKIP
647
648 The recommended method of reading from PostGIS is
649 :func:`geopandas.read_postgis`:
650
651 >>> df = geopandas.read_postgis(sql, con) # doctest: +SKIP
652
653 See also
654 --------
655 geopandas.read_postgis : read PostGIS database to GeoDataFrame
484656 """
485657
486658 df = geopandas.io.sql._read_postgis(
497669
498670 return df
499671
500 def to_json(self, na="null", show_bbox=False, **kwargs):
672 def to_json(self, na="null", show_bbox=False, drop_id=False, **kwargs):
501673 """
502674 Returns a GeoJSON representation of the ``GeoDataFrame`` as a string.
503675
508680 See below.
509681 show_bbox : bool, optional, default: False
510682 Include bbox (bounds) in the geojson
683 drop_id : bool, default: False
684 Whether to retain the index of the GeoDataFrame as the id property
685 in the generated GeoJSON. Default is False, but may want True
686 if the index is just arbitrary row numbers.
511687
512688 Notes
513689 -----
519695 - ``drop``: remove the property from the feature. This applies to each
520696 feature individually so that features may have different properties.
521697 - ``keep``: output the missing entries as NaN.
522 """
523 return json.dumps(self._to_geo(na=na, show_bbox=show_bbox), **kwargs)
698
699 Examples
700 --------
701
702 >>> from shapely.geometry import Point
703 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]}
704 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
705 >>> gdf
706 col1 geometry
707 0 name1 POINT (1.00000 2.00000)
708 1 name2 POINT (2.00000 1.00000)
709
710 >>> gdf.to_json()
711 '{"type": "FeatureCollection", "features": [{"id": "0", "type": "Feature", \
712 "properties": {"col1": "name1"}, "geometry": {"type": "Point", "coordinates": [1.0,\
713 2.0]}}, {"id": "1", "type": "Feature", "properties": {"col1": "name2"}, "geometry"\
714 : {"type": "Point", "coordinates": [2.0, 1.0]}}]}'
715
716 Alternatively, you can write GeoJSON to file:
717
718 >>> gdf.to_file(path, driver="GeoJSON") # doctest: +SKIP
719
720 See also
721 --------
722 GeoDataFrame.to_file : write GeoDataFrame to file
723
724 """
725 return json.dumps(
726 self._to_geo(na=na, show_bbox=show_bbox, drop_id=drop_id), **kwargs
727 )
524728
525729 @property
526730 def __geo_interface__(self):
532736
533737 This differs from `_to_geo()` only in that it is a property with
534738 default args instead of a method
535 """
536 return self._to_geo(na="null", show_bbox=True)
537
538 def iterfeatures(self, na="null", show_bbox=False):
739
740 Examples
741 --------
742
743 >>> from shapely.geometry import Point
744 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]}
745 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
746 >>> gdf
747 col1 geometry
748 0 name1 POINT (1.00000 2.00000)
749 1 name2 POINT (2.00000 1.00000)
750
751 >>> gdf.__geo_interface__
752 {'type': 'FeatureCollection', 'features': [{'id': '0', 'type': 'Feature', \
753 'properties': {'col1': 'name1'}, 'geometry': {'type': 'Point', 'coordinates': (1.0\
754 , 2.0)}, 'bbox': (1.0, 2.0, 1.0, 2.0)}, {'id': '1', 'type': 'Feature', 'properties\
755 ': {'col1': 'name2'}, 'geometry': {'type': 'Point', 'coordinates': (2.0, 1.0)}, 'b\
756 box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)}
757
758
759 """
760 return self._to_geo(na="null", show_bbox=True, drop_id=False)
761
762 def iterfeatures(self, na="null", show_bbox=False, drop_id=False):
539763 """
540764 Returns an iterator that yields feature dictionaries that comply with
541765 __geo_interface__
542766
543767 Parameters
544768 ----------
545 na : {'null', 'drop', 'keep'}, default 'null'
769 na : str, optional
770 Options are {'null', 'drop', 'keep'}, default 'null'.
546771 Indicates how to output missing (NaN) values in the GeoDataFrame
547772 * null: ouput the missing entries as JSON null
548773 * drop: remove the property from the feature. This applies to
549774 each feature individually so that features may have
550775 different properties
551776 * keep: output the missing entries as NaN
552
553 show_bbox : include bbox (bounds) in the geojson. default False
777 show_bbox : bool, optional
778 Include bbox (bounds) in the geojson. Default False.
779 drop_id : bool, default: False
780 Whether to retain the index of the GeoDataFrame as the id property
781 in the generated GeoJSON. Default is False, but may want True
782 if the index is just arbitrary row numbers.
783
784 Examples
785 --------
786
787 >>> from shapely.geometry import Point
788 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]}
789 >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326")
790 >>> gdf
791 col1 geometry
792 0 name1 POINT (1.00000 2.00000)
793 1 name2 POINT (2.00000 1.00000)
794
795 >>> feature = next(gdf.iterfeatures())
796 >>> feature
797 {'id': '0', 'type': 'Feature', 'properties': {'col1': 'name1'}, 'geometry': {\
798 'type': 'Point', 'coordinates': (1.0, 2.0)}}
554799 """
555800 if na not in ["null", "drop", "keep"]:
556801 raise ValueError("Unknown na method {0}".format(na))
582827 else:
583828 properties_items = {k: v for k, v in zip(properties_cols, row)}
584829
585 feature = {
586 "id": str(ids[i]),
587 "type": "Feature",
588 "properties": properties_items,
589 "geometry": mapping(geom) if geom else None,
590 }
830 if drop_id:
831 feature = {}
832 else:
833 feature = {"id": str(ids[i])}
834
835 feature["type"] = "Feature"
836 feature["properties"] = properties_items
837 feature["geometry"] = mapping(geom) if geom else None
591838
592839 if show_bbox:
593840 feature["bbox"] = geom.bounds if geom else None
841
594842 yield feature
595843
596844 else:
597845 for fid, geom in zip(ids, geometries):
598 feature = {
599 "id": str(fid),
600 "type": "Feature",
601 "properties": {},
602 "geometry": mapping(geom) if geom else None,
603 }
846
847 if drop_id:
848 feature = {}
849 else:
850 feature = {"id": str(fid)}
851
852 feature["type"] = "Feature"
853 feature["properties"] = {}
854 feature["geometry"] = mapping(geom) if geom else None
855
604856 if show_bbox:
605857 feature["bbox"] = geom.bounds if geom else None
858
606859 yield feature
607860
608861 def _to_geo(self, **kwargs):
620873 geo["bbox"] = tuple(self.total_bounds)
621874
622875 return geo
876
877 def to_wkb(self, hex=False, **kwargs):
878 """
879 Encode all geometry columns in the GeoDataFrame to WKB.
880
881 Parameters
882 ----------
883 hex : bool
884 If true, export the WKB as a hexadecimal string.
885 The default is to return a binary bytes object.
886 kwargs
887 Additional keyword args will be passed to
888 :func:`pygeos.to_wkb` if pygeos is installed.
889
890 Returns
891 -------
892 DataFrame
893 geometry columns are encoded to WKB
894 """
895
896 df = DataFrame(self.copy())
897
898 # Encode all geometry columns to WKB
899 for col in df.columns[df.dtypes == "geometry"]:
900 df[col] = to_wkb(df[col].values, hex=hex, **kwargs)
901
902 return df
903
904 def to_wkt(self, **kwargs):
905 """
906 Encode all geometry columns in the GeoDataFrame to WKT.
907
908 Parameters
909 ----------
910 kwargs
911 Keyword args will be passed to :func:`pygeos.to_wkt`
912 if pygeos is installed.
913
914 Returns
915 -------
916 DataFrame
917 geometry columns are encoded to WKT
918 """
919
920 df = DataFrame(self.copy())
921
922 # Encode all geometry columns to WKT
923 for col in df.columns[df.dtypes == "geometry"]:
924 df[col] = to_wkt(df[col].values, **kwargs)
925
926 return df
623927
624928 def to_parquet(self, path, index=None, compression="snappy", **kwargs):
625929 """Write a GeoDataFrame to the Parquet format.
652956 Name of the compression to use. Use ``None`` for no compression.
653957 kwargs
654958 Additional keyword arguments passed to to pyarrow.parquet.write_table().
959
960 Examples
961 --------
962
963 >>> gdf.to_parquet('data.parquet') # doctest: +SKIP
964
965 See also
966 --------
967 GeoDataFrame.to_feather : write GeoDataFrame to feather
968 GeoDataFrame.to_file : write GeoDataFrame to file
655969 """
656970
657971 from geopandas.io.arrow import _to_parquet
6901004 compression. By default uses LZ4 if available, otherwise uncompressed.
6911005 kwargs
6921006 Additional keyword arguments passed to to pyarrow.feather.write_feather().
1007
1008 Examples
1009 --------
1010
1011 >>> gdf.to_feather('data.feather') # doctest: +SKIP
1012
1013 See also
1014 --------
1015 GeoDataFrame.to_parquet : write GeoDataFrame to parquet
1016 GeoDataFrame.to_file : write GeoDataFrame to file
6931017 """
6941018
6951019 from geopandas.io.arrow import _to_feather
7061030 providers is available via:
7071031
7081032 >>> import fiona
709 >>> fiona.supported_drivers
1033 >>> fiona.supported_drivers # doctest: +SKIP
7101034
7111035 Parameters
7121036 ----------
7391063 See Also
7401064 --------
7411065 GeoSeries.to_file
1066 GeoDataFrame.to_postgis : write GeoDataFrame to PostGIS database
1067 GeoDataFrame.to_parquet : write GeoDataFrame to parquet
1068 GeoDataFrame.to_feather : write GeoDataFrame to feather
1069
1070 Examples
1071 --------
1072
1073 >>> gdf.to_file('dataframe.shp') # doctest: +SKIP
1074
1075 >>> gdf.to_file('dataframe.gpkg', driver='GPKG', layer='name') # doctest: +SKIP
1076
1077 >>> gdf.to_file('dataframe.geojson', driver='GeoJSON') # doctest: +SKIP
1078
1079 With selected drivers you can also append to a file with `mode="a"`:
1080
1081 >>> gdf.to_file('dataframe.shp', mode="a") # doctest: +SKIP
7421082 """
7431083 from geopandas.io.file import _to_file
7441084
7691109 allow_override : bool, default False
7701110 If the the GeoDataFrame already has a CRS, allow to replace the
7711111 existing CRS, even when both are not equal.
1112
1113 Examples
1114 --------
1115 >>> from shapely.geometry import Point
1116 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]}
1117 >>> gdf = geopandas.GeoDataFrame(d)
1118 >>> gdf
1119 col1 geometry
1120 0 name1 POINT (1.00000 2.00000)
1121 1 name2 POINT (2.00000 1.00000)
1122
1123 Setting CRS to a GeoDataFrame without one:
1124
1125 >>> gdf.crs is None
1126 True
1127
1128 >>> gdf = gdf.set_crs('epsg:3857')
1129 >>> gdf.crs # doctest: +SKIP
1130 <Projected CRS: EPSG:3857>
1131 Name: WGS 84 / Pseudo-Mercator
1132 Axis Info [cartesian]:
1133 - X[east]: Easting (metre)
1134 - Y[north]: Northing (metre)
1135 Area of Use:
1136 - name: World - 85°S to 85°N
1137 - bounds: (-180.0, -85.06, 180.0, 85.06)
1138 Coordinate Operation:
1139 - name: Popular Visualisation Pseudo-Mercator
1140 - method: Popular Visualisation Pseudo Mercator
1141 Datum: World Geodetic System 1984
1142 - Ellipsoid: WGS 84
1143 - Prime Meridian: Greenwich
1144
1145 Overriding existing CRS:
1146
1147 >>> gdf = gdf.set_crs(4326, allow_override=True)
1148
1149 Without ``allow_override=True``, ``set_crs`` returns an error if you try to
1150 override CRS.
1151
1152 See also
1153 --------
1154 GeoDataFrame.to_crs : re-project to another CRS
1155
7721156 """
7731157 if not inplace:
7741158 df = self.copy()
8071191 Returns
8081192 -------
8091193 GeoDataFrame
1194
1195 Examples
1196 --------
1197 >>> from shapely.geometry import Point
1198 >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]}
1199 >>> gdf = geopandas.GeoDataFrame(d, crs=4326)
1200 >>> gdf
1201 col1 geometry
1202 0 name1 POINT (1.00000 2.00000)
1203 1 name2 POINT (2.00000 1.00000)
1204 >>> gdf.crs # doctest: +SKIP
1205 <Geographic 2D CRS: EPSG:4326>
1206 Name: WGS 84
1207 Axis Info [ellipsoidal]:
1208 - Lat[north]: Geodetic latitude (degree)
1209 - Lon[east]: Geodetic longitude (degree)
1210 Area of Use:
1211 - name: World
1212 - bounds: (-180.0, -90.0, 180.0, 90.0)
1213 Datum: World Geodetic System 1984
1214 - Ellipsoid: WGS 84
1215 - Prime Meridian: Greenwich
1216
1217 >>> gdf = gdf.to_crs(3857)
1218 >>> gdf
1219 col1 geometry
1220 0 name1 POINT (111319.491 222684.209)
1221 1 name2 POINT (222638.982 111325.143)
1222 >>> gdf.crs # doctest: +SKIP
1223 <Projected CRS: EPSG:3857>
1224 Name: WGS 84 / Pseudo-Mercator
1225 Axis Info [cartesian]:
1226 - X[east]: Easting (metre)
1227 - Y[north]: Northing (metre)
1228 Area of Use:
1229 - name: World - 85°S to 85°N
1230 - bounds: (-180.0, -85.06, 180.0, 85.06)
1231 Coordinate Operation:
1232 - name: Popular Visualisation Pseudo-Mercator
1233 - method: Popular Visualisation Pseudo Mercator
1234 Datum: World Geodetic System 1984
1235 - Ellipsoid: WGS 84
1236 - Prime Meridian: Greenwich
1237
1238 See also
1239 --------
1240 GeoDataFrame.set_crs : assign CRS without re-projection
8101241 """
8111242 if inplace:
8121243 df = self
8181249 if not inplace:
8191250 return df
8201251
1252 def estimate_utm_crs(self, datum_name="WGS 84"):
1253 """Returns the estimated UTM CRS based on the bounds of the dataset.
1254
1255 .. versionadded:: 0.9
1256
1257 .. note:: Requires pyproj 3+
1258
1259 Parameters
1260 ----------
1261 datum_name : str, optional
1262 The name of the datum to use in the query. Default is WGS 84.
1263
1264 Returns
1265 -------
1266 pyproj.CRS
1267
1268 Examples
1269 --------
1270 >>> world = geopandas.read_file(
1271 ... geopandas.datasets.get_path("naturalearth_lowres")
1272 ... )
1273 >>> germany = world.loc[world.name == "Germany"]
1274 >>> germany.estimate_utm_crs() # doctest: +SKIP
1275 <Projected CRS: EPSG:32632>
1276 Name: WGS 84 / UTM zone 32N
1277 Axis Info [cartesian]:
1278 - E[east]: Easting (metre)
1279 - N[north]: Northing (metre)
1280 Area of Use:
1281 - name: World - N hemisphere - 6°E to 12°E - by country
1282 - bounds: (6.0, 0.0, 12.0, 84.0)
1283 Coordinate Operation:
1284 - name: UTM zone 32N
1285 - method: Transverse Mercator
1286 Datum: World Geodetic System 1984
1287 - Ellipsoid: WGS 84
1288 - Prime Meridian: Greenwich
1289 """
1290 return self.geometry.estimate_utm_crs(datum_name=datum_name)
1291
8211292 def __getitem__(self, key):
8221293 """
8231294 If the result is a column containing only 'geometry', return a
8281299 geo_col = self._geometry_column_name
8291300 if isinstance(result, Series) and isinstance(result.dtype, GeometryDtype):
8301301 result.__class__ = GeoSeries
831 result._invalidate_sindex()
8321302 elif isinstance(result, DataFrame) and geo_col in result:
8331303 result.__class__ = GeoDataFrame
8341304 result._geometry_column_name = geo_col
835 result._invalidate_sindex()
8361305 elif isinstance(result, DataFrame) and geo_col not in result:
8371306 result.__class__ = DataFrame
8381307 return result
8821351 result.__class__ = GeoDataFrame
8831352 result.crs = self.crs
8841353 result._geometry_column_name = geo_col
885 result._invalidate_sindex()
8861354 elif isinstance(result, DataFrame) and geo_col not in result:
8871355 result.__class__ = DataFrame
8881356 return result
8891357
1358 @inherit_doc(pd.DataFrame)
1359 def apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwargs):
1360 result = super().apply(
1361 func, axis=axis, raw=raw, result_type=result_type, args=args, **kwargs
1362 )
1363 if (
1364 isinstance(result, GeoDataFrame)
1365 and self._geometry_column_name in result.columns
1366 and any(isinstance(t, GeometryDtype) for t in result.dtypes)
1367 ):
1368 if self.crs is not None and result.crs is None:
1369 result.set_crs(self.crs, inplace=True)
1370 return result
1371
8901372 @property
8911373 def _constructor(self):
8921374 return GeoDataFrame
8931375
8941376 def __finalize__(self, other, method=None, **kwargs):
8951377 """propagate metadata from other to self """
1378 self = super().__finalize__(other, method=method, **kwargs)
1379
8961380 # merge operation: using metadata of the left object
8971381 if method == "merge":
8981382 for name in self._metadata:
9011385 elif method == "concat":
9021386 for name in self._metadata:
9031387 object.__setattr__(self, name, getattr(other.objs[0], name, None))
904 else:
905 for name in self._metadata:
906 object.__setattr__(self, name, getattr(other, name, None))
9071388
9081389 return self
9091390
910 def plot(self, *args, **kwargs):
911 """Generate a plot of the geometries in the ``GeoDataFrame``.
912
913 If the ``column`` parameter is given, colors plot according to values
914 in that column, otherwise calls ``GeoSeries.plot()`` on the
915 ``geometry`` column.
916
917 Wraps the ``plot_dataframe()`` function, and documentation is copied
918 from there.
919 """
920 return plot_dataframe(self, *args, **kwargs)
921
922 plot.__doc__ = plot_dataframe.__doc__
923
924 def dissolve(self, by=None, aggfunc="first", as_index=True):
1391 def dissolve(
1392 self,
1393 by=None,
1394 aggfunc="first",
1395 as_index=True,
1396 level=None,
1397 sort=True,
1398 observed=False,
1399 dropna=True,
1400 ):
9251401 """
9261402 Dissolve geometries within `groupby` into single observation.
9271403 This is accomplished by applying the `unary_union` method
9331409 Parameters
9341410 ----------
9351411 by : string, default None
936 Column whose values define groups to be dissolved
1412 Column whose values define groups to be dissolved. If None,
1413 whole GeoDataFrame is considered a single group.
9371414 aggfunc : function or string, default "first"
9381415 Aggregation function for manipulation of data associated
9391416 with each group. Passed to pandas `groupby.agg` method.
9401417 as_index : boolean, default True
9411418 If true, groupby columns become index of result.
1419 level : int or str or sequence of int or sequence of str, default None
1420 If the axis is a MultiIndex (hierarchical), group by a
1421 particular level or levels.
1422
1423 .. versionadded:: 0.9.0
1424 sort : bool, default True
1425 Sort group keys. Get better performance by turning this off.
1426 Note this does not influence the order of observations within
1427 each group. Groupby preserves the order of rows within each group.
1428
1429 .. versionadded:: 0.9.0
1430 observed : bool, default False
1431 This only applies if any of the groupers are Categoricals.
1432 If True: only show observed values for categorical groupers.
1433 If False: show all values for categorical groupers.
1434
1435 .. versionadded:: 0.9.0
1436 dropna : bool, default True
1437 If True, and if group keys contain NA values, NA values
1438 together with row/column will be dropped. If False, NA
1439 values will also be treated as the key in groups.
1440
1441 This parameter is not supported for pandas < 1.1.0.
1442 A warning will be emitted for earlier pandas versions
1443 if a non-default value is given for this parameter.
1444
1445 .. versionadded:: 0.9.0
9421446
9431447 Returns
9441448 -------
9451449 GeoDataFrame
946 """
1450
1451 Examples
1452 --------
1453 >>> from shapely.geometry import Point
1454 >>> d = {
1455 ... "col1": ["name1", "name2", "name1"],
1456 ... "geometry": [Point(1, 2), Point(2, 1), Point(0, 1)],
1457 ... }
1458 >>> gdf = geopandas.GeoDataFrame(d, crs=4326)
1459 >>> gdf
1460 col1 geometry
1461 0 name1 POINT (1.00000 2.00000)
1462 1 name2 POINT (2.00000 1.00000)
1463 2 name1 POINT (0.00000 1.00000)
1464
1465 >>> dissolved = gdf.dissolve('col1')
1466 >>> dissolved # doctest: +SKIP
1467 geometry
1468 col1
1469 name1 MULTIPOINT (0.00000 1.00000, 1.00000 2.00000)
1470 name2 POINT (2.00000 1.00000)
1471
1472 See also
1473 --------
1474 GeoDataFrame.explode : explode muti-part geometries into single geometries
1475
1476 """
1477
1478 if by is None and level is None:
1479 by = np.zeros(len(self), dtype="int64")
1480
1481 groupby_kwargs = dict(
1482 by=by, level=level, sort=sort, observed=observed, dropna=dropna
1483 )
1484 if not compat.PANDAS_GE_11:
1485 groupby_kwargs.pop("dropna")
1486
1487 if not dropna: # If they passed a non-default dropna value
1488 warnings.warn("dropna kwarg is not supported for pandas < 1.1.0")
9471489
9481490 # Process non-spatial component
9491491 data = self.drop(labels=self.geometry.name, axis=1)
950 aggregated_data = data.groupby(by=by).agg(aggfunc)
1492 aggregated_data = data.groupby(**groupby_kwargs).agg(aggfunc)
9511493
9521494 # Process spatial component
9531495 def merge_geometries(block):
9541496 merged_geom = block.unary_union
9551497 return merged_geom
9561498
957 g = self.groupby(by=by, group_keys=False)[self.geometry.name].agg(
1499 g = self.groupby(group_keys=False, **groupby_kwargs)[self.geometry.name].agg(
9581500 merge_geometries
9591501 )
9601502
9691511
9701512 return aggregated
9711513
972 # overrides GeoPandasBase method
973 def explode(self):
1514 # overrides the pandas native explode method to break up features geometrically
1515 def explode(self, column=None, **kwargs):
9741516 """
9751517 Explode muti-part geometries into multiple single geometries.
9761518
9891531 Exploded geodataframe with each single geometry
9901532 as a separate entry in the geodataframe.
9911533
992 """
1534 Examples
1535 --------
1536
1537 >>> from shapely.geometry import MultiPoint
1538 >>> d = {
1539 ... "col1": ["name1", "name2"],
1540 ... "geometry": [
1541 ... MultiPoint([(1, 2), (3, 4)]),
1542 ... MultiPoint([(2, 1), (0, 0)]),
1543 ... ],
1544 ... }
1545 >>> gdf = geopandas.GeoDataFrame(d, crs=4326)
1546 >>> gdf
1547 col1 geometry
1548 0 name1 MULTIPOINT (1.00000 2.00000, 3.00000 4.00000)
1549 1 name2 MULTIPOINT (2.00000 1.00000, 0.00000 0.00000)
1550
1551 >>> exploded = gdf.explode()
1552 >>> exploded
1553 col1 geometry
1554 0 0 name1 POINT (1.00000 2.00000)
1555 1 name1 POINT (3.00000 4.00000)
1556 1 0 name2 POINT (2.00000 1.00000)
1557 1 name2 POINT (0.00000 0.00000)
1558
1559 See also
1560 --------
1561 GeoDataFrame.dissolve : dissolve geometries into a single observation.
1562
1563 """
1564
1565 # If no column is specified then default to the active geometry column
1566 if column is None:
1567 column = self.geometry.name
1568 # If the specified column is not a geometry dtype use pandas explode
1569 if not isinstance(self[column].dtype, GeometryDtype):
1570 return super(GeoDataFrame, self).explode(column, **kwargs)
1571 # TODO: make sure index behaviour is consistent
1572
9931573 df_copy = self.copy()
9941574
9951575 if "level_1" in df_copy.columns: # GH1393
10601640 ----------
10611641 name : str
10621642 Name of the target table.
1063 con : sqlalchemy.engine.Engine
1643 con : sqlalchemy.engine.Connection or sqlalchemy.engine.Engine
10641644 Active connection to the PostGIS database.
10651645 if_exists : {'fail', 'replace', 'append'}, default 'fail'
10661646 How to behave if the table already exists:
10901670
10911671 >>> from sqlalchemy import create_engine
10921672 >>> engine = create_engine("postgres://myusername:mypassword@myhost:5432\
1093 /mydatabase";)
1094 >>> gdf.to_postgis("my_table", engine)
1673 /mydatabase") # doctest: +SKIP
1674 >>> gdf.to_postgis("my_table", engine) # doctest: +SKIP
1675
1676 See also
1677 --------
1678 GeoDataFrame.to_file : write GeoDataFrame to file
1679 read_postgis : read PostGIS database to GeoDataFrame
1680
10951681 """
10961682 geopandas.io.sql._write_postgis(
10971683 self, name, con, schema, if_exists, index, index_label, chunksize, dtype
11381724 )
11391725 return self.geometry.difference(other)
11401726
1727 if compat.PANDAS_GE_025:
1728 from pandas.core.accessor import CachedAccessor
1729
1730 plot = CachedAccessor("plot", geopandas.plotting.GeoplotAccessor)
1731 else:
1732
1733 def plot(self, *args, **kwargs):
1734 """Generate a plot of the geometries in the ``GeoDataFrame``.
1735 If the ``column`` parameter is given, colors plot according to values
1736 in that column, otherwise calls ``GeoSeries.plot()`` on the
1737 ``geometry`` column.
1738 Wraps the ``plot_dataframe()`` function, and documentation is copied
1739 from there.
1740 """
1741 return plot_dataframe(self, *args, **kwargs)
1742
1743 plot.__doc__ = plot_dataframe.__doc__
1744
11411745
11421746 def _dataframe_set_geometry(self, col, drop=False, inplace=False, crs=None):
11431747 if inplace:
22
33 import numpy as np
44 import pandas as pd
5 from pandas import Series
5 from pandas import Series, MultiIndex
66 from pandas.core.internals import SingleBlockManager
77
8 from pyproj import CRS, Transformer
8 from pyproj import CRS
99 from shapely.geometry.base import BaseGeometry
1010
1111 from geopandas.base import GeoPandasBase, _delegate_property
1212 from geopandas.plotting import plot_series
1313
14 from .array import GeometryArray, GeometryDtype, from_shapely
14 from .array import (
15 GeometryDtype,
16 from_shapely,
17 from_wkb,
18 from_wkt,
19 to_wkb,
20 to_wkt,
21 )
1522 from .base import is_geometry_type
16 from . import _vectorized as vectorized
23 from . import _compat as compat
1724
1825
1926 _SERIES_WARNING_MSG = """\
8491 >>> from shapely.geometry import Point
8592 >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)])
8693 >>> s
87 0 POINT (1 1)
88 1 POINT (2 2)
89 2 POINT (3 3)
94 0 POINT (1.00000 1.00000)
95 1 POINT (2.00000 2.00000)
96 2 POINT (3.00000 3.00000)
9097 dtype: geometry
98
99 >>> s = geopandas.GeoSeries(
100 ... [Point(1, 1), Point(2, 2), Point(3, 3)], crs="EPSG:3857"
101 ... )
102 >>> s.crs # doctest: +SKIP
103 <Projected CRS: EPSG:3857>
104 Name: WGS 84 / Pseudo-Mercator
105 Axis Info [cartesian]:
106 - X[east]: Easting (metre)
107 - Y[north]: Northing (metre)
108 Area of Use:
109 - name: World - 85°S to 85°N
110 - bounds: (-180.0, -85.06, 180.0, 85.06)
111 Coordinate Operation:
112 - name: Popular Visualisation Pseudo-Mercator
113 - method: Popular Visualisation Pseudo Mercator
114 Datum: World Geodetic System 1984
115 - Ellipsoid: WGS 84
116 - Prime Meridian: Greenwich
117
118 >>> s = geopandas.GeoSeries(
119 ... [Point(1, 1), Point(2, 2), Point(3, 3)], index=["a", "b", "c"], crs=4326
120 ... )
121 >>> s
122 a POINT (1.00000 1.00000)
123 b POINT (2.00000 2.00000)
124 c POINT (3.00000 3.00000)
125 dtype: geometry
126
127 >>> s.crs
128 <Geographic 2D CRS: EPSG:4326>
129 Name: WGS 84
130 Axis Info [ellipsoidal]:
131 - Lat[north]: Geodetic latitude (degree)
132 - Lon[east]: Geodetic longitude (degree)
133 Area of Use:
134 - name: World
135 - bounds: (-180.0, -90.0, 180.0, 90.0)
136 Datum: World Geodetic System 1984
137 - Ellipsoid: WGS 84
138 - Prime Meridian: Greenwich
91139
92140 See Also
93141 --------
154202 # https://github.com/pandas-dev/pandas/issues/26469
155203 kwargs.pop("dtype", None)
156204 # Use Series constructor to handle input data
157 s = pd.Series(data, index=index, name=name, **kwargs)
205 with compat.ignore_shapely2_warnings():
206 s = pd.Series(data, index=index, name=name, **kwargs)
158207 # prevent trying to convert non-geometry objects
159208 if s.dtype != object:
160 if s.empty:
209 if s.empty or data is None:
161210 s = s.astype(object)
162211 else:
163212 warnings.warn(_SERIES_WARNING_MSG, FutureWarning, stacklevel=2)
176225
177226 if not self.crs:
178227 self.crs = crs
179 self._invalidate_sindex()
180228 return self
181229
182230 def __init__(self, *args, **kwargs):
193241
194242 @property
195243 def x(self):
196 """Return the x location of point geometries in a GeoSeries"""
244 """Return the x location of point geometries in a GeoSeries
245
246 Returns
247 -------
248 pandas.Series
249
250 Examples
251 --------
252
253 >>> from shapely.geometry import Point
254 >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)])
255 >>> s.x
256 0 1.0
257 1 2.0
258 2 3.0
259 dtype: float64
260
261 See Also
262 --------
263
264 GeoSeries.y
265 GeoSeries.z
266
267 """
197268 return _delegate_property("x", self)
198269
199270 @property
200271 def y(self):
201 """Return the y location of point geometries in a GeoSeries"""
272 """Return the y location of point geometries in a GeoSeries
273
274 Returns
275 -------
276 pandas.Series
277
278 Examples
279 --------
280
281 >>> from shapely.geometry import Point
282 >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)])
283 >>> s.y
284 0 1.0
285 1 2.0
286 2 3.0
287 dtype: float64
288
289 See Also
290 --------
291
292 GeoSeries.x
293 GeoSeries.z
294
295 """
202296 return _delegate_property("y", self)
297
298 @property
299 def z(self):
300 """Return the z location of point geometries in a GeoSeries
301
302 Returns
303 -------
304 pandas.Series
305
306 Examples
307 --------
308
309 >>> from shapely.geometry import Point
310 >>> s = geopandas.GeoSeries([Point(1, 1, 1), Point(2, 2, 2), Point(3, 3, 3)])
311 >>> s.z
312 0 1.0
313 1 2.0
314 2 3.0
315 dtype: float64
316
317 See Also
318 --------
319
320 GeoSeries.x
321 GeoSeries.y
322
323 """
324 return _delegate_property("z", self)
203325
204326 @classmethod
205327 def from_file(cls, filename, **kwargs):
207329
208330 Can load a ``GeoSeries`` from a file from any format recognized by
209331 `fiona`. See http://fiona.readthedocs.io/en/latest/manual.html for details.
332 From a file with attributes loads only geometry column. Note that to do
333 that, GeoPandas first loads the whole GeoDataFrame.
210334
211335 Parameters
212336 ----------
218342 These arguments are passed to fiona.open, and can be used to
219343 access multi-layer data, data stored within archives (zip files),
220344 etc.
345
346 Examples
347 --------
348
349 >>> path = geopandas.datasets.get_path('nybb')
350 >>> s = geopandas.GeoSeries.from_file(path)
351 >>> s
352 0 MULTIPOLYGON (((970217.022 145643.332, 970227....
353 1 MULTIPOLYGON (((1029606.077 156073.814, 102957...
354 2 MULTIPOLYGON (((1021176.479 151374.797, 102100...
355 3 MULTIPOLYGON (((981219.056 188655.316, 980940....
356 4 MULTIPOLYGON (((1012821.806 229228.265, 101278...
357 Name: geometry, dtype: geometry
358
359 See Also
360 --------
361 read_file : read file to GeoDataFame
221362 """
222363 from geopandas import GeoDataFrame
223364
224365 df = GeoDataFrame.from_file(filename, **kwargs)
225366
226367 return GeoSeries(df.geometry, crs=df.crs)
368
369 @classmethod
370 def from_wkb(cls, data, index=None, crs=None, **kwargs):
371 """
372 Alternate constructor to create a ``GeoSeries``
373 from a list or array of WKB objects
374
375 Parameters
376 ----------
377 data : array-like or Series
378 Series, list or array of WKB objects
379 index : array-like or Index
380 The index for the GeoSeries.
381 crs : value, optional
382 Coordinate Reference System of the geometry objects. Can be anything
383 accepted by
384 :meth:`pyproj.CRS.from_user_input() <pyproj.crs.CRS.from_user_input>`,
385 such as an authority string (eg "EPSG:4326") or a WKT string.
386 kwargs
387 Additional arguments passed to the Series constructor,
388 e.g. ``name``.
389
390 Returns
391 -------
392 GeoSeries
393
394 See Also
395 --------
396 GeoSeries.from_wkt
397
398 """
399 return cls._from_wkb_or_wkb(from_wkb, data, index=index, crs=crs, **kwargs)
400
401 @classmethod
402 def from_wkt(cls, data, index=None, crs=None, **kwargs):
403 """
404 Alternate constructor to create a ``GeoSeries``
405 from a list or array of WKT objects
406
407 Parameters
408 ----------
409 data : array-like, Series
410 Series, list, or array of WKT objects
411 index : array-like or Index
412 The index for the GeoSeries.
413 crs : value, optional
414 Coordinate Reference System of the geometry objects. Can be anything
415 accepted by
416 :meth:`pyproj.CRS.from_user_input() <pyproj.crs.CRS.from_user_input>`,
417 such as an authority string (eg "EPSG:4326") or a WKT string.
418 kwargs
419 Additional arguments passed to the Series constructor,
420 e.g. ``name``.
421
422 Returns
423 -------
424 GeoSeries
425
426 See Also
427 --------
428 GeoSeries.from_wkb
429
430 Examples
431 --------
432
433 >>> wkts = [
434 ... 'POINT (1 1)',
435 ... 'POINT (2 2)',
436 ... 'POINT (3 3)',
437 ... ]
438 >>> s = geopandas.GeoSeries.from_wkt(wkts)
439 >>> s
440 0 POINT (1.00000 1.00000)
441 1 POINT (2.00000 2.00000)
442 2 POINT (3.00000 3.00000)
443 dtype: geometry
444 """
445 return cls._from_wkb_or_wkb(from_wkt, data, index=index, crs=crs, **kwargs)
446
447 @classmethod
448 def _from_wkb_or_wkb(
449 cls, from_wkb_or_wkt_function, data, index=None, crs=None, **kwargs
450 ):
451 """Create a GeoSeries from either WKT or WKB values"""
452 if isinstance(data, Series):
453 if index is not None:
454 data = data.reindex(index)
455 else:
456 index = data.index
457 data = data.values
458 return cls(from_wkb_or_wkt_function(data, crs=crs), index=index, **kwargs)
227459
228460 @property
229461 def __geo_interface__(self):
233465 represents the ``GeoSeries`` as a GeoJSON-like ``FeatureCollection``.
234466 Note that the features will have an empty ``properties`` dict as they
235467 don't have associated attributes (geometry only).
468
469 Examples
470 --------
471
472 >>> from shapely.geometry import Point
473 >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)])
474 >>> s.__geo_interface__
475 {'type': 'FeatureCollection', 'features': [{'id': '0', 'type': 'Feature', \
476 'properties': {}, 'geometry': {'type': 'Point', 'coordinates': (1.0, 1.0)}, \
477 'bbox': (1.0, 1.0, 1.0, 1.0)}, {'id': '1', 'type': 'Feature', \
478 'properties': {}, 'geometry': {'type': 'Point', 'coordinates': (2.0, 2.0)}, \
479 'bbox': (2.0, 2.0, 2.0, 2.0)}, {'id': '2', 'type': 'Feature', 'properties': \
480 {}, 'geometry': {'type': 'Point', 'coordinates': (3.0, 3.0)}, 'bbox': (3.0, \
481 3.0, 3.0, 3.0)}], 'bbox': (1.0, 1.0, 3.0, 3.0)}
236482 """
237483 from geopandas import GeoDataFrame
238484
267513
268514 See Also
269515 --------
270 GeoDataFrame.to_file
516 GeoDataFrame.to_file : write GeoDataFrame to file
517 read_file : read file to GeoDataFame
518
519 Examples
520 --------
521
522 >>> s.to_file('series.shp') # doctest: +SKIP
523
524 >>> s.to_file('series.gpkg', driver='GPKG', layer='name1') # doctest: +SKIP
525
526 >>> s.to_file('series.geojson', driver='GeoJSON') # doctest: +SKIP
271527 """
272528 from geopandas import GeoDataFrame
273529
295551 if type(val) == Series:
296552 val.__class__ = GeoSeries
297553 val.crs = self.crs
298 val._invalidate_sindex()
299554 return val
300555
301556 def __getitem__(self, key):
314569 return self._wrapped_pandas_method("select", *args, **kwargs)
315570
316571 @inherit_doc(pd.Series)
317 def apply(self, func, args=(), **kwargs):
318 result = super().apply(func, args=args, **kwargs)
572 def apply(self, func, convert_dtype=True, args=(), **kwargs):
573 result = super().apply(func, convert_dtype=convert_dtype, args=args, **kwargs)
319574 if isinstance(result, GeoSeries):
320575 if self.crs is not None:
321576 result.set_crs(self.crs, inplace=True)
342597 -------
343598 A boolean pandas Series of the same size as the GeoSeries,
344599 True where a value is NA.
600
601 Examples
602 --------
603
604 >>> from shapely.geometry import Polygon
605 >>> s = geopandas.GeoSeries(
606 ... [Polygon([(0, 0), (1, 1), (0, 1)]), None, Polygon([])]
607 ... )
608 >>> s
609 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
610 1 None
611 2 GEOMETRYCOLLECTION EMPTY
612 dtype: geometry
613 >>> s.isna()
614 0 False
615 1 True
616 2 False
617 dtype: bool
345618
346619 See Also
347620 --------
383656 -------
384657 A boolean pandas Series of the same size as the GeoSeries,
385658 False where a value is NA.
659
660 Examples
661 --------
662
663 >>> from shapely.geometry import Polygon
664 >>> s = geopandas.GeoSeries(
665 ... [Polygon([(0, 0), (1, 1), (0, 1)]), None, Polygon([])]
666 ... )
667 >>> s
668 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
669 1 None
670 2 GEOMETRYCOLLECTION EMPTY
671 dtype: geometry
672 >>> s.notna()
673 0 True
674 1 False
675 2 True
676 dtype: bool
386677
387678 See Also
388679 --------
413704 """Fill NA values with a geometry (empty polygon by default).
414705
415706 "method" is currently not implemented for pandas <= 0.12.
707
708 Examples
709 --------
710
711 >>> from shapely.geometry import Polygon
712 >>> s = geopandas.GeoSeries(
713 ... [
714 ... Polygon([(0, 0), (1, 1), (0, 1)]),
715 ... None,
716 ... Polygon([(0, 0), (-1, 1), (0, -1)]),
717 ... ]
718 ... )
719 >>> s
720 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
721 1 None
722 2 POLYGON ((0.00000 0.00000, -1.00000 1.00000, 0...
723 dtype: geometry
724
725 >>> s.fillna()
726 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
727 1 GEOMETRYCOLLECTION EMPTY
728 2 POLYGON ((0.00000 0.00000, -1.00000 1.00000, 0...
729 dtype: geometry
730
731 >>> s.fillna(Polygon([(0, 1), (2, 1), (1, 2)]))
732 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0....
733 1 POLYGON ((0.00000 1.00000, 2.00000 1.00000, 1....
734 2 POLYGON ((0.00000 0.00000, -1.00000 1.00000, 0...
735 dtype: geometry
736
737 See Also
738 --------
739 GeoSeries.isna : detect missing values
416740 """
417741 if value is None:
418742 value = BaseGeometry()
441765 return plot_series(self, *args, **kwargs)
442766
443767 plot.__doc__ = plot_series.__doc__
768
769 def explode(self):
770 """
771 Explode multi-part geometries into multiple single geometries.
772
773 Single rows can become multiple rows.
774 This is analogous to PostGIS's ST_Dump(). The 'path' index is the
775 second level of the returned MultiIndex
776
777 Returns
778 ------
779 A GeoSeries with a MultiIndex. The levels of the MultiIndex are the
780 original index and a zero-based integer index that counts the
781 number of single geometries within a multi-part geometry.
782
783 Examples
784 --------
785 >>> from shapely.geometry import MultiPoint
786 >>> s = geopandas.GeoSeries(
787 ... [MultiPoint([(0, 0), (1, 1)]), MultiPoint([(2, 2), (3, 3), (4, 4)])]
788 ... )
789 >>> s
790 0 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000)
791 1 MULTIPOINT (2.00000 2.00000, 3.00000 3.00000, ...
792 dtype: geometry
793
794 >>> s.explode()
795 0 0 POINT (0.00000 0.00000)
796 1 POINT (1.00000 1.00000)
797 1 0 POINT (2.00000 2.00000)
798 1 POINT (3.00000 3.00000)
799 2 POINT (4.00000 4.00000)
800 dtype: geometry
801
802 See also
803 --------
804 GeoDataFrame.explode
805
806 """
807
808 if compat.USE_PYGEOS and compat.PYGEOS_GE_09:
809 import pygeos # noqa
810
811 geometries, outer_idx = pygeos.get_parts(
812 self.values.data, return_index=True
813 )
814
815 if len(outer_idx):
816 # Generate inner index as a range per value of outer_idx
817 # 1. identify the start of each run of values in outer_idx
818 # 2. count number of values per run
819 # 3. use cumulative sums to create an incremental range
820 # starting at 0 in each run
821 run_start = np.r_[True, outer_idx[:-1] != outer_idx[1:]]
822 counts = np.diff(np.r_[np.nonzero(run_start)[0], len(outer_idx)])
823 inner_index = (~run_start).cumsum()
824 inner_index -= np.repeat(inner_index[run_start], counts)
825
826 else:
827 inner_index = []
828
829 # extract original index values based on integer index
830 outer_index = self.index.take(outer_idx)
831
832 index = MultiIndex.from_arrays(
833 [outer_index, inner_index], names=self.index.names + [None]
834 )
835
836 return GeoSeries(geometries, index=index, crs=self.crs).__finalize__(self)
837
838 # else PyGEOS is not available or version <= 0.8
839
840 index = []
841 geometries = []
842 for idx, s in self.geometry.iteritems():
843 if s.type.startswith("Multi") or s.type == "GeometryCollection":
844 geoms = s.geoms
845 idxs = [(idx, i) for i in range(len(geoms))]
846 else:
847 geoms = [s]
848 idxs = [(idx, 0)]
849 index.extend(idxs)
850 geometries.extend(geoms)
851 index = MultiIndex.from_tuples(index, names=self.index.names + [None])
852 return GeoSeries(geometries, index=index, crs=self.crs).__finalize__(self)
444853
445854 #
446855 # Additional methods
472881 Returns
473882 -------
474883 GeoSeries
884
885 Examples
886 --------
887 >>> from shapely.geometry import Point
888 >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)])
889 >>> s
890 0 POINT (1.00000 1.00000)
891 1 POINT (2.00000 2.00000)
892 2 POINT (3.00000 3.00000)
893 dtype: geometry
894
895 Setting CRS to a GeoSeries without one:
896
897 >>> s.crs is None
898 True
899
900 >>> s = s.set_crs('epsg:3857')
901 >>> s.crs # doctest: +SKIP
902 <Projected CRS: EPSG:3857>
903 Name: WGS 84 / Pseudo-Mercator
904 Axis Info [cartesian]:
905 - X[east]: Easting (metre)
906 - Y[north]: Northing (metre)
907 Area of Use:
908 - name: World - 85°S to 85°N
909 - bounds: (-180.0, -85.06, 180.0, 85.06)
910 Coordinate Operation:
911 - name: Popular Visualisation Pseudo-Mercator
912 - method: Popular Visualisation Pseudo Mercator
913 Datum: World Geodetic System 1984
914 - Ellipsoid: WGS 84
915 - Prime Meridian: Greenwich
916
917 Overriding existing CRS:
918
919 >>> s = s.set_crs(4326, allow_override=True)
920
921 Without ``allow_override=True``, ``set_crs`` returns an error if you try to
922 override CRS.
923
924 See Also
925 --------
926 GeoSeries.to_crs : re-project to another CRS
927
475928 """
476929 if crs is not None:
477930 crs = CRS.from_user_input(crs)
520973 Returns
521974 -------
522975 GeoSeries
523 """
524 if self.crs is None:
525 raise ValueError(
526 "Cannot transform naive geometries. "
527 "Please set a crs on the object first."
528 )
529 if crs is not None:
530 crs = CRS.from_user_input(crs)
531 elif epsg is not None:
532 crs = CRS.from_epsg(epsg)
533 else:
534 raise ValueError("Must pass either crs or epsg.")
535
536 # skip if the input CRS and output CRS are the exact same
537 if self.crs.is_exact_same(crs):
538 return self
539
540 transformer = Transformer.from_crs(self.crs, crs, always_xy=True)
541
542 new_data = vectorized.transform(self.values.data, transformer.transform)
976
977 Examples
978 --------
979 >>> from shapely.geometry import Point
980 >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)], crs=4326)
981 >>> s
982 0 POINT (1.00000 1.00000)
983 1 POINT (2.00000 2.00000)
984 2 POINT (3.00000 3.00000)
985 dtype: geometry
986 >>> s.crs # doctest: +SKIP
987 <Geographic 2D CRS: EPSG:4326>
988 Name: WGS 84
989 Axis Info [ellipsoidal]:
990 - Lat[north]: Geodetic latitude (degree)
991 - Lon[east]: Geodetic longitude (degree)
992 Area of Use:
993 - name: World
994 - bounds: (-180.0, -90.0, 180.0, 90.0)
995 Datum: World Geodetic System 1984
996 - Ellipsoid: WGS 84
997 - Prime Meridian: Greenwich
998
999 >>> s = s.to_crs(3857)
1000 >>> s
1001 0 POINT (111319.491 111325.143)
1002 1 POINT (222638.982 222684.209)
1003 2 POINT (333958.472 334111.171)
1004 dtype: geometry
1005 >>> s.crs # doctest: +SKIP
1006 <Projected CRS: EPSG:3857>
1007 Name: WGS 84 / Pseudo-Mercator
1008 Axis Info [cartesian]:
1009 - X[east]: Easting (metre)
1010 - Y[north]: Northing (metre)
1011 Area of Use:
1012 - name: World - 85°S to 85°N
1013 - bounds: (-180.0, -85.06, 180.0, 85.06)
1014 Coordinate Operation:
1015 - name: Popular Visualisation Pseudo-Mercator
1016 - method: Popular Visualisation Pseudo Mercator
1017 Datum: World Geodetic System 1984
1018 - Ellipsoid: WGS 84
1019 - Prime Meridian: Greenwich
1020
1021 See Also
1022 --------
1023 GeoSeries.set_crs : assign CRS
1024
1025 """
5431026 return GeoSeries(
544 GeometryArray(new_data), crs=crs, index=self.index, name=self.name
1027 self.values.to_crs(crs=crs, epsg=epsg), index=self.index, name=self.name
5451028 )
1029
1030 def estimate_utm_crs(self, datum_name="WGS 84"):
1031 """Returns the estimated UTM CRS based on the bounds of the dataset.
1032
1033 .. versionadded:: 0.9
1034
1035 .. note:: Requires pyproj 3+
1036
1037 Parameters
1038 ----------
1039 datum_name : str, optional
1040 The name of the datum to use in the query. Default is WGS 84.
1041
1042 Returns
1043 -------
1044 pyproj.CRS
1045
1046 Examples
1047 --------
1048 >>> world = geopandas.read_file(
1049 ... geopandas.datasets.get_path("naturalearth_lowres")
1050 ... )
1051 >>> germany = world.loc[world.name == "Germany"]
1052 >>> germany.geometry.estimate_utm_crs() # doctest: +SKIP
1053 <Projected CRS: EPSG:32632>
1054 Name: WGS 84 / UTM zone 32N
1055 Axis Info [cartesian]:
1056 - E[east]: Easting (metre)
1057 - N[north]: Northing (metre)
1058 Area of Use:
1059 - name: World - N hemisphere - 6°E to 12°E - by country
1060 - bounds: (6.0, 0.0, 12.0, 84.0)
1061 Coordinate Operation:
1062 - name: UTM zone 32N
1063 - method: Transverse Mercator
1064 Datum: World Geodetic System 1984
1065 - Ellipsoid: WGS 84
1066 - Prime Meridian: Greenwich
1067 """
1068 return self.values.estimate_utm_crs(datum_name)
5461069
5471070 def to_json(self, **kwargs):
5481071 """
5511074 Parameters
5521075 ----------
5531076 *kwargs* that will be passed to json.dumps().
1077
1078 Returns
1079 -------
1080 JSON string
1081
1082 Examples
1083 --------
1084 >>> from shapely.geometry import Point
1085 >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)])
1086 >>> s
1087 0 POINT (1.00000 1.00000)
1088 1 POINT (2.00000 2.00000)
1089 2 POINT (3.00000 3.00000)
1090 dtype: geometry
1091
1092 >>> s.to_json()
1093 '{"type": "FeatureCollection", "features": [{"id": "0", "type": "Feature", "pr\
1094 operties": {}, "geometry": {"type": "Point", "coordinates": [1.0, 1.0]}, "bbox": [1.0,\
1095 1.0, 1.0, 1.0]}, {"id": "1", "type": "Feature", "properties": {}, "geometry": {"type"\
1096 : "Point", "coordinates": [2.0, 2.0]}, "bbox": [2.0, 2.0, 2.0, 2.0]}, {"id": "2", "typ\
1097 e": "Feature", "properties": {}, "geometry": {"type": "Point", "coordinates": [3.0, 3.\
1098 0]}, "bbox": [3.0, 3.0, 3.0, 3.0]}], "bbox": [1.0, 1.0, 3.0, 3.0]}'
1099
1100 See Also
1101 --------
1102 GeoSeries.to_file : write GeoSeries to file
5541103 """
5551104 return json.dumps(self.__geo_interface__, **kwargs)
1105
1106 def to_wkb(self, hex=False, **kwargs):
1107 """
1108 Convert GeoSeries geometries to WKB
1109
1110 Parameters
1111 ----------
1112 hex : bool
1113 If true, export the WKB as a hexadecimal string.
1114 The default is to return a binary bytes object.
1115 kwargs
1116 Additional keyword args will be passed to
1117 :func:`pygeos.to_wkb` if pygeos is installed.
1118
1119 Returns
1120 -------
1121 Series
1122 WKB representations of the geometries
1123
1124 See also
1125 --------
1126 GeoSeries.to_wkt
1127 """
1128 return Series(to_wkb(self.array, hex=hex, **kwargs), index=self.index)
1129
1130 def to_wkt(self, **kwargs):
1131 """
1132 Convert GeoSeries geometries to WKT
1133
1134 Parameters
1135 ----------
1136 kwargs
1137 Keyword args will be passed to :func:`pygeos.to_wkt`
1138 if pygeos is installed.
1139
1140 Returns
1141 -------
1142 Series
1143 WKT representations of the geometries
1144
1145 Examples
1146 --------
1147 >>> from shapely.geometry import Point
1148 >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)])
1149 >>> s
1150 0 POINT (1.00000 1.00000)
1151 1 POINT (2.00000 2.00000)
1152 2 POINT (3.00000 3.00000)
1153 dtype: geometry
1154
1155 >>> s.to_wkt()
1156 0 POINT (1 1)
1157 1 POINT (2 2)
1158 2 POINT (3 3)
1159 dtype: object
1160
1161 See also
1162 --------
1163 GeoSeries.to_wkb
1164 """
1165 return Series(to_wkt(self.array, **kwargs), index=self.index)
5561166
5571167 #
5581168 # Implement standard operators for GeoSeries
44 from pandas import DataFrame
55
66 from geopandas._compat import import_optional_dependency
7 from geopandas.array import from_wkb, to_wkb
7 from geopandas.array import from_wkb
88 from geopandas import GeoDataFrame
99 import geopandas
1010
7575 return json.dumps(metadata).encode("utf-8")
7676
7777
78 def _encode_wkb(df):
79 """Encode all geometry columns in the GeoDataFrame to WKB.
80
81 Parameters
82 ----------
83 df : GeoDataFrame
84
85 Returns
86 -------
87 DataFrame
88 geometry columns are encoded to WKB
89 """
90
91 df = DataFrame(df.copy())
92
93 # Encode all geometry columns to WKB
94 for col in df.columns[df.dtypes == "geometry"]:
95 df[col] = to_wkb(df[col].values)
96
97 return df
98
99
10078 def _decode_metadata(metadata_str):
10179 """Decode a UTF-8 encoded JSON string to dict
10280
207185 # create geo metadata before altering incoming data frame
208186 geo_metadata = _create_metadata(df)
209187
210 df = _encode_wkb(df)
188 df = df.to_wkb()
211189
212190 table = Table.from_pandas(df, preserve_index=index)
213191
393371 Returns
394372 -------
395373 GeoDataFrame
374
375 Examples
376 --------
377 >>> df = geopandas.read_parquet("data.parquet") # doctest: +SKIP
378
379 Specifying columns to read:
380
381 >>> df = geopandas.read_parquet(
382 ... "data.parquet",
383 ... columns=["geometry", "pop_est"]
384 ... ) # doctest: +SKIP
396385 """
397386
398387 parquet = import_optional_dependency(
438427 Returns
439428 -------
440429 GeoDataFrame
430
431 Examples
432 --------
433 >>> df = geopandas.read_feather("data.feather") # doctest: +SKIP
434
435 Specifying columns to read:
436
437 >>> df = geopandas.read_feather(
438 ... "data.feather",
439 ... columns=["geometry", "pop_est"]
440 ... ) # doctest: +SKIP
441441 """
442442
443443 feather = import_optional_dependency(
00 from distutils.version import LooseVersion
11
2 import io
2 import warnings
33 import numpy as np
44 import pandas as pd
55
6 import fiona
76 import pyproj
87 from shapely.geometry import mapping
98 from shapely.geometry.base import BaseGeometry
109
1110 try:
11 import fiona
12
13 fiona_import_error = None
14 except ImportError as err:
15 fiona = None
16 fiona_import_error = str(err)
17
18 try:
1219 from fiona import Env as fiona_env
1320 except ImportError:
14 from fiona import drivers as fiona_env
21 try:
22 from fiona import drivers as fiona_env
23 except ImportError:
24 fiona_env = None
1525
1626 from geopandas import GeoDataFrame, GeoSeries
1727
2232 from urllib.parse import uses_netloc, uses_params, uses_relative
2333
2434
25 _FIONA18 = LooseVersion(fiona.__version__) >= LooseVersion("1.8")
2635 _VALID_URLS = set(uses_relative + uses_netloc + uses_params)
2736 _VALID_URLS.discard("")
37
38
39 def _check_fiona(func):
40 if fiona is None:
41 raise ImportError(
42 f"the {func} requires the 'fiona' package, but it is not installed or does "
43 f"not import correctly.\nImporting fiona resulted in: {fiona_import_error}"
44 )
2845
2946
3047 def _is_url(url):
3350 return parse_url(url).scheme in _VALID_URLS
3451 except Exception:
3552 return False
53
54
55 def _is_zip(path):
56 """Check if a given path is a zipfile"""
57 parsed = fiona.path.ParsedPath.from_uri(path)
58 return (
59 parsed.archive.endswith(".zip")
60 if parsed.archive
61 else parsed.path.endswith(".zip")
62 )
3663
3764
3865 def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs):
6794
6895 Examples
6996 --------
70 >>> df = geopandas.read_file("nybb.shp")
97 >>> df = geopandas.read_file("nybb.shp") # doctest: +SKIP
98
99 Specifying layer of GPKG:
100
101 >>> df = geopandas.read_file("file.gpkg", layer='cities') # doctest: +SKIP
102
103 Reading only first 10 rows:
104
105 >>> df = geopandas.read_file("nybb.shp", rows=10) # doctest: +SKIP
106
107 Reading only geometries intersecting ``mask``:
108
109 >>> df = geopandas.read_file("nybb.shp", mask=polygon) # doctest: +SKIP
110
111 Reading only geometries intersecting ``bbox``:
112
113 >>> df = geopandas.read_file("nybb.shp", bbox=(0, 10, 0, 20)) # doctest: +SKIP
71114
72115 Returns
73116 -------
80123 may fail. In this case, the proper encoding can be specified explicitly
81124 by using the encoding keyword parameter, e.g. ``encoding='utf-8'``.
82125 """
126 _check_fiona("'read_file' function")
83127 if _is_url(filename):
84128 req = _urlopen(filename)
85129 path_or_bytes = req.read()
86130 reader = fiona.BytesCollection
87 elif isinstance(filename, io.TextIOBase):
88 path_or_bytes = filename.read()
89 reader = fiona.open
131 elif pd.api.types.is_file_like(filename):
132 data = filename.read()
133 path_or_bytes = data.encode("utf-8") if isinstance(data, str) else data
134 reader = fiona.BytesCollection
90135 else:
136 # Opening a file via URL or file-like-object above automatically detects a
137 # zipped file. In order to match that behavior, attempt to add a zip scheme
138 # if missing.
139 if _is_zip(str(filename)):
140 parsed = fiona.parse_path(str(filename))
141 if isinstance(parsed, fiona.path.ParsedPath):
142 # If fiona is able to parse the path, we can safely look at the scheme
143 # and update it to have a zip scheme if necessary.
144 schemes = (parsed.scheme or "").split("+")
145 if "zip" not in schemes:
146 parsed.scheme = "+".join(["zip"] + schemes)
147 filename = parsed.name
148 elif isinstance(parsed, fiona.path.UnparsedPath) and not str(
149 filename
150 ).startswith("/vsi"):
151 # If fiona is unable to parse the path, it might have a Windows drive
152 # scheme. Try adding zip:// to the front. If the path starts with "/vsi"
153 # it is a legacy GDAL path type, so let it pass unmodified.
154 filename = "zip://" + parsed.name
91155 path_or_bytes = filename
92156 reader = fiona.open
93157
175239 index=None,
176240 mode="w",
177241 crs=None,
178 **kwargs
242 **kwargs,
179243 ):
180244 """
181245 Write this GeoDataFrame to an OGR data source
182246
183247 A dictionary of supported OGR providers is available via:
184248 >>> import fiona
185 >>> fiona.supported_drivers
249 >>> fiona.supported_drivers # doctest: +SKIP
186250
187251 Parameters
188252 ----------
226290 may fail. In this case, the proper encoding can be specified explicitly
227291 by using the encoding keyword parameter, e.g. ``encoding='utf-8'``.
228292 """
293 _check_fiona("'to_file' method")
229294 if index is None:
230295 # Determine if index attribute(s) should be saved to file
231296 index = list(df.index.names) != [None] or type(df.index) not in (
240305 crs = pyproj.CRS.from_user_input(crs)
241306 else:
242307 crs = df.crs
308
309 if driver == "ESRI Shapefile" and any([len(c) > 10 for c in df.columns.tolist()]):
310 warnings.warn(
311 "Column names longer than 10 characters will be truncated when saved to "
312 "ESRI Shapefile.",
313 stacklevel=3,
314 )
315
243316 with fiona_env():
244317 crs_wkt = None
245318 try:
274347 out_type = type(np.zeros(1, in_type).item()).__name__
275348 if out_type == "long":
276349 out_type = "int"
277 if not _FIONA18 and out_type == "bool":
278 raise ValueError(
279 'column "{}" is boolean type, '.format(column)
280 + "which is unsupported in file writing with fiona "
281 "< 1.8. Consider casting the column to int type."
282 )
283350 return out_type
284351
285352 properties = OrderedDict(
306373 """
307374 Determine the geometry types in the GeoDataFrame for the schema.
308375 """
309 if _FIONA18:
310 # Starting from Fiona 1.8, schema submitted to fiona to write a gdf
311 # can have mixed geometries:
312 # - 3D and 2D shapes can coexist in inferred schema
313 # - Shape and MultiShape types can (and must) coexist in inferred
314 # schema
315 geom_types_2D = df[~df.geometry.has_z].geometry.geom_type.unique()
316 geom_types_2D = [gtype for gtype in geom_types_2D if gtype is not None]
317 geom_types_3D = df[df.geometry.has_z].geometry.geom_type.unique()
318 geom_types_3D = ["3D " + gtype for gtype in geom_types_3D if gtype is not None]
319 geom_types = geom_types_3D + geom_types_2D
320
321 else:
322 # Before Fiona 1.8, schema submitted to write a gdf should have
323 # one single geometry type whenever possible:
324 # - 3D and 2D shapes cannot coexist in inferred schema
325 # - Shape and MultiShape can not coexist in inferred schema
326 geom_types = _geometry_types_back_compat(df)
376 geom_types_2D = df[~df.geometry.has_z].geometry.geom_type.unique()
377 geom_types_2D = [gtype for gtype in geom_types_2D if gtype is not None]
378 geom_types_3D = df[df.geometry.has_z].geometry.geom_type.unique()
379 geom_types_3D = ["3D " + gtype for gtype in geom_types_3D if gtype is not None]
380 geom_types = geom_types_3D + geom_types_2D
327381
328382 if len(geom_types) == 0:
329383 # Default geometry type supported by Fiona
334388 geom_types = geom_types[0]
335389
336390 return geom_types
337
338
339 def _geometry_types_back_compat(df):
340 """
341 for backward compatibility with Fiona<1.8 only
342 """
343 unique_geom_types = df.geometry.geom_type.unique()
344 unique_geom_types = [gtype for gtype in unique_geom_types if gtype is not None]
345
346 # merge single and Multi types (eg Polygon and MultiPolygon)
347 unique_geom_types = [
348 gtype
349 for gtype in unique_geom_types
350 if not gtype.startswith("Multi") or gtype[5:] not in unique_geom_types
351 ]
352
353 if df.geometry.has_z.any():
354 # declare all geometries as 3D geometries
355 unique_geom_types = ["3D " + type for type in unique_geom_types]
356 # by default, all geometries are 2D geometries
357
358 return unique_geom_types
00 import warnings
1 from contextlib import contextmanager
12
23 import pandas as pd
34
67 from geopandas import GeoDataFrame
78
89 from .. import _compat as compat
10
11
12 @contextmanager
13 def _get_conn(conn_or_engine):
14 """
15 Yield a connection within a transaction context.
16
17 Engine.begin() returns a Connection with an implicit Transaction while
18 Connection.begin() returns the Transaction. This helper will always return a
19 Connection with an implicit (possibly nested) Transaction.
20
21 Parameters
22 ----------
23 conn_or_engine : Connection or Engine
24 A sqlalchemy Connection or Engine instance
25 Returns
26 -------
27 Connection
28 """
29 from sqlalchemy.engine.base import Engine, Connection
30
31 if isinstance(conn_or_engine, Connection):
32 with conn_or_engine.begin():
33 yield conn_or_engine
34 elif isinstance(conn_or_engine, Engine):
35 with conn_or_engine.begin() as conn:
36 yield conn
37 else:
38 raise ValueError(f"Unknown Connectable: {conn_or_engine}")
939
1040
1141 def _df_to_geodf(df, geom_col="geom", crs=None):
82112 sql : string
83113 SQL query to execute in selecting entries from database, or name
84114 of the table to read from the database.
85 con : DB connection object or SQLAlchemy engine
115 con : sqlalchemy.engine.Connection or sqlalchemy.engine.Engine
86116 Active connection to the database to query.
87117 geom_col : string, default 'geom'
88118 column name to convert to shapely geometries
105135 Examples
106136 --------
107137 PostGIS
108 >>> sql = "SELECT geom, kind FROM polygons"
138
139 >>> from sqlalchemy import create_engine # doctest: +SKIP
140 >>> db_connection_url = "postgres://myusername:mypassword@myhost:5432/mydatabase"
141 >>> con = create_engine(db_connection_url) # doctest: +SKIP
142 >>> sql = "SELECT geom, highway FROM roads"
143 >>> df = geopandas.read_postgis(sql, con) # doctest: +SKIP
144
109145 SpatiaLite
110 >>> sql = "SELECT ST_AsBinary(geom) AS geom, kind FROM polygons"
111 >>> df = geopandas.read_postgis(sql, con)
146
147 >>> sql = "SELECT ST_Binary(geom) AS geom, highway FROM roads"
148 >>> df = geopandas.read_postgis(sql, con) # doctest: +SKIP
112149 """
113150
114151 if chunksize is None:
169206 such as GeometryCollection([Point, LineStrings])
170207 - if any of the geometries has Z-coordinate, all records will
171208 be written with 3D.
172 """
209 """
173210 geom_types = list(gdf.geometry.geom_type.unique())
174211 has_curve = False
175212
268305
269306 dbapi_conn = conn.connection
270307 with dbapi_conn.cursor() as cur:
271 sql = "COPY {} ({}) FROM STDIN WITH CSV".format(tbl.table.fullname, columns)
308 sql = 'COPY "{}"."{}" ({}) FROM STDIN WITH CSV'.format(
309 tbl.table.schema, tbl.table.name, columns
310 )
272311 cur.copy_expert(sql=sql, file=s_buf)
273312
274313
293332 ----------
294333 name : str
295334 Name of the target table.
296 con : sqlalchemy.engine.Engine
335 con : sqlalchemy.engine.Connection or sqlalchemy.engine.Engine
297336 Active connection to the PostGIS database.
298337 if_exists : {'fail', 'replace', 'append'}, default 'fail'
299338 How to behave if the table already exists:
321360 Examples
322361 --------
323362
324 >>> from sqlalchemy import create_engine
363 >>> from sqlalchemy import create_engine # doctest: +SKIP
325364 >>> engine = create_engine("postgres://myusername:mypassword@myhost:5432\
326 /mydatabase";)
327 >>> gdf.to_postgis("my_table", engine)
365 /mydatabase";) # doctest: +SKIP
366 >>> gdf.to_postgis("my_table", engine) # doctest: +SKIP
328367 """
329368 try:
330369 from geoalchemy2 import Geometry
361400 # Convert geometries to EWKB
362401 gdf = _convert_to_ewkb(gdf, geom_name, srid)
363402
403 if schema is not None:
404 schema_name = schema
405 else:
406 schema_name = "public"
407
364408 if if_exists == "append":
365409 # Check that the geometry srid matches with the current GeoDataFrame
366 with con.begin() as connection:
367 if schema is not None:
368 schema_name = schema
369 else:
370 schema_name = "public"
371
410 with _get_conn(con) as connection:
372411 # Only check SRID if table exists
373 if connection.run_callable(connection.dialect.has_table, name, schema):
412 if connection.dialect.has_table(connection, name, schema):
374413 target_srid = connection.execute(
375414 "SELECT Find_SRID('{schema}', '{table}', '{geom_col}');".format(
376415 schema=schema_name, table=name, geom_col=geom_name
386425 )
387426 raise ValueError(msg)
388427
389 with con.begin() as connection:
428 with _get_conn(con) as connection:
390429
391430 gdf.to_sql(
392431 name,
393432 connection,
394 schema=schema,
433 schema=schema_name,
395434 if_exists=if_exists,
396435 index=index,
397436 index_label=index_label,
1515 _create_metadata,
1616 _decode_metadata,
1717 _encode_metadata,
18 _encode_wkb,
1918 _validate_dataframe,
2019 _validate_metadata,
2120 METADATA_VERSION,
173172 _validate_metadata(metadata)
174173
175174
176 def test_encode_wkb():
177 test_dataset = "naturalearth_lowres"
178 df = read_file(get_path(test_dataset))
179
180 encoded = _encode_wkb(df)
181
182 # make sure original is not modified
183 assert isinstance(df, GeoDataFrame)
184 assert (
185 encoded.geometry.iloc[0][:16]
186 == b"\x01\x06\x00\x00\x00\x03\x00\x00\x00\x01\x03\x00\x00\x00\x01\x00"
187 )
188
189
190175 # TEMPORARY: used to determine if pyarrow fails for roundtripping pandas data
191176 # without geometries
192177 def test_pandas_parquet_roundtrip1(tmpdir):
415400 reader(filename, columns=["name"])
416401
417402
418 def test_parquet_repeat_columns(tmpdir):
419 """Reading repeated columns should return first value of each repeated column
420 """
421
422 test_dataset = "naturalearth_lowres"
423 df = read_file(get_path(test_dataset))
424
425 filename = os.path.join(str(tmpdir), "test.pq")
426 df.to_parquet(filename)
427
428 columns = ["name", "name", "iso_a3", "name", "geometry"]
429 pq_df = read_parquet(filename, columns=columns)
430
431 assert pq_df.columns.tolist() == ["name", "iso_a3", "geometry"]
432
433
434403 def test_promote_secondary_geometry(tmpdir, file_format):
435404 """Reading a subset of columns that does not include the primary geometry
436405 column should promote the first geometry column present.
00 from collections import OrderedDict
11 import datetime
2 from distutils.version import LooseVersion
32 import io
43 import os
54 import pathlib
65 import tempfile
7 import sys
86
97 import numpy as np
108 import pandas as pd
1412
1513 import geopandas
1614 from geopandas import GeoDataFrame, read_file
17 from geopandas.io.file import fiona_env, _FIONA18
18 from geopandas._compat import PANDAS_GE_024
15 from geopandas.io.file import fiona_env
1916
2017 from geopandas.testing import assert_geodataframe_equal, assert_geoseries_equal
2118 from geopandas.tests.util import PACKAGE_DIR, validate_boro_df
3532
3633 @pytest.fixture
3734 def df_null():
38 return read_file(os.path.join(PACKAGE_DIR, "examples", "null_geom.geojson"))
35 return read_file(
36 os.path.join(PACKAGE_DIR, "geopandas", "tests", "data", "null_geom.geojson")
37 )
3938
4039
4140 @pytest.fixture
4241 def file_path():
43 return os.path.join(PACKAGE_DIR, "examples", "null_geom.geojson")
42 return os.path.join(PACKAGE_DIR, "geopandas", "tests", "data", "null_geom.geojson")
4443
4544
4645 @pytest.fixture
8685
8786
8887 @pytest.mark.parametrize("driver,ext", driver_ext_pairs)
89 @pytest.mark.skipif(not _FIONA18, reason="pathlib support added to fiona in 1.8")
9088 def test_to_file_pathlib(tmpdir, df_nybb, df_null, driver, ext):
9189 """ Test to_file and from_file """
9290 temppath = pathlib.Path(os.path.join(str(tmpdir), "boros." + ext))
110108 }
111109 )
112110
113 if LooseVersion(fiona.__version__) < LooseVersion("1.8"):
114 with pytest.raises(ValueError):
115 df.to_file(tempfilename, driver=driver)
116 else:
117 df.to_file(tempfilename, driver=driver)
118 result = read_file(tempfilename)
119 if driver == "GeoJSON":
120 # geojson by default assumes epsg:4326
121 result.crs = None
122 if driver == "ESRI Shapefile":
123 # Shapefile does not support boolean, so is read back as int
124 df["b"] = df["b"].astype("int64")
125 # PY2: column names 'mixed' instead of 'unicode'
126 assert_geodataframe_equal(result, df, check_column_type=False)
127
128
129 @pytest.mark.skipif(
130 (sys.version_info < (3, 0)) and sys.platform.startswith("win"),
131 reason="GPKG tests failing on AppVeyor for Python 2.7",
132 )
111 df.to_file(tempfilename, driver=driver)
112 result = read_file(tempfilename)
113 if driver == "GeoJSON":
114 # geojson by default assumes epsg:4326
115 result.crs = None
116 if driver == "ESRI Shapefile":
117 # Shapefile does not support boolean, so is read back as int
118 df["b"] = df["b"].astype("int64")
119 assert_geodataframe_equal(result, df)
120
121
133122 def test_to_file_datetime(tmpdir):
134123 """Test writing a data file with the datetime column type"""
135124 tempfilename = os.path.join(str(tmpdir), "test_datetime.gpkg")
171160 """ Test various integer type columns (GH#93) """
172161 tempfilename = os.path.join(str(tmpdir), "int.shp")
173162 int_types = [
174 np.int,
175163 np.int8,
176164 np.int16,
177165 np.int32,
181169 np.uint16,
182170 np.uint32,
183171 np.uint64,
184 np.long,
185172 ]
186173 geometry = df_points.geometry
187174 data = dict(
192179 df.to_file(tempfilename)
193180
194181
195 @pytest.mark.skipif(not PANDAS_GE_024, reason="pandas >= 0.24 needed")
196182 def test_to_file_int64(tmpdir, df_points):
197183 tempfilename = os.path.join(str(tmpdir), "int64.shp")
198184 geometry = df_points.geometry
242228 assert result_schema == schema
243229
244230
231 def test_to_file_column_len(tmpdir, df_points):
232 """
233 Ensure that a warning about truncation is given when a geodataframe with
234 column names longer than 10 characters is saved to shapefile
235 """
236 tempfilename = os.path.join(str(tmpdir), "test.shp")
237
238 df = df_points.iloc[:1].copy()
239 df["0123456789A"] = ["the column name is 11 characters"]
240
241 with pytest.warns(
242 UserWarning, match="Column names longer than 10 characters will be truncated"
243 ):
244 df.to_file(tempfilename, driver="ESRI Shapefile")
245
246
245247 @pytest.mark.parametrize("driver,ext", driver_ext_pairs)
246248 def test_append_file(tmpdir, df_nybb, df_null, driver, ext):
247249 """ Test to_file with append mode and from_file """
258260 assert "geometry" in df
259261 assert len(df) == (5 * 2)
260262 expected = pd.concat([df_nybb] * 2, ignore_index=True)
261 assert_geodataframe_equal(df, expected)
263 assert_geodataframe_equal(df, expected, check_less_precise=True)
262264
263265 # Write layer with null geometry out to file
264266 tempfilename = os.path.join(str(tmpdir), "null_geom." + ext)
269271 assert "geometry" in df
270272 assert len(df) == (2 * 2)
271273 expected = pd.concat([df_null] * 2, ignore_index=True)
272 assert_geodataframe_equal(df, expected)
274 assert_geodataframe_equal(df, expected, check_less_precise=True)
273275
274276
275277 # -----------------------------------------------------------------------------
295297 def test_read_file_remote_geojson_url():
296298 url = (
297299 "https://raw.githubusercontent.com/geopandas/geopandas/"
298 "master/examples/null_geom.geojson"
300 "master/geopandas/tests/data/null_geom.geojson"
299301 )
300302 gdf = read_file(url)
301303 assert isinstance(gdf, geopandas.GeoDataFrame)
302304
303305
304 @pytest.mark.skipif(
305 not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8"
306 )
306 @pytest.mark.web
307 def test_read_file_remote_zipfile_url():
308 url = (
309 "https://raw.githubusercontent.com/geopandas/geopandas/"
310 "master/geopandas/datasets/nybb_16a.zip"
311 )
312 gdf = read_file(url)
313 assert isinstance(gdf, geopandas.GeoDataFrame)
314
315
307316 def test_read_file_textio(file_path):
308317 file_text_stream = open(file_path)
309318 file_stringio = io.StringIO(open(file_path).read())
313322 assert isinstance(gdf_stringio, geopandas.GeoDataFrame)
314323
315324
316 @pytest.mark.skipif(
317 not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8"
318 )
319325 def test_read_file_bytesio(file_path):
320326 file_binary_stream = open(file_path, "rb")
321327 file_bytesio = io.BytesIO(open(file_path, "rb").read())
325331 assert isinstance(gdf_bytesio, geopandas.GeoDataFrame)
326332
327333
328 @pytest.mark.skipif(
329 not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8"
330 )
331334 def test_read_file_raw_stream(file_path):
332335 file_raw_stream = open(file_path, "rb", buffering=0)
333336 gdf_raw_stream = read_file(file_raw_stream)
334337 assert isinstance(gdf_raw_stream, geopandas.GeoDataFrame)
335338
336339
337 @pytest.mark.skipif(
338 not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8"
339 )
340340 def test_read_file_pathlib(file_path):
341341 path_object = pathlib.Path(file_path)
342342 gdf_path_object = read_file(path_object)
343343 assert isinstance(gdf_path_object, geopandas.GeoDataFrame)
344344
345345
346 @pytest.mark.skipif(
347 not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8"
348 )
349346 def test_read_file_tempfile():
350347 temp = tempfile.TemporaryFile()
351348 temp.write(
368365 temp.close()
369366
370367
368 def test_read_binary_file_fsspec():
369 fsspec = pytest.importorskip("fsspec")
370 # Remove the zip scheme so fsspec doesn't open as a zipped file,
371 # instead we want to read as bytes and let fiona decode it.
372 path = geopandas.datasets.get_path("nybb")[6:]
373 with fsspec.open(path, "rb") as f:
374 gdf = read_file(f)
375 assert isinstance(gdf, geopandas.GeoDataFrame)
376
377
378 def test_read_text_file_fsspec(file_path):
379 fsspec = pytest.importorskip("fsspec")
380 with fsspec.open(file_path, "r") as f:
381 gdf = read_file(f)
382 assert isinstance(gdf, geopandas.GeoDataFrame)
383
384
385 def test_infer_zipped_file():
386 # Remove the zip scheme so that the test for a zipped file can
387 # check it and add it back.
388 path = geopandas.datasets.get_path("nybb")[6:]
389 gdf = read_file(path)
390 assert isinstance(gdf, geopandas.GeoDataFrame)
391
392 # Check that it can sucessfully add a zip scheme to a path that already has a scheme
393 gdf = read_file("file+file://" + path)
394 assert isinstance(gdf, geopandas.GeoDataFrame)
395
396 # Check that it can add a zip scheme for a path that includes a subpath
397 # within the archive.
398 gdf = read_file(path + "!nybb.shp")
399 assert isinstance(gdf, geopandas.GeoDataFrame)
400
401
402 def test_allow_legacy_gdal_path():
403 # Construct a GDAL-style zip path.
404 path = "/vsizip/" + geopandas.datasets.get_path("nybb")[6:]
405 gdf = read_file(path)
406 assert isinstance(gdf, geopandas.GeoDataFrame)
407
408
371409 def test_read_file_filtered(df_nybb):
372410 full_df_shape = df_nybb.shape
373411 nybb_filename = geopandas.datasets.get_path("nybb")
424462 read_file(geopandas.datasets.get_path("nybb"), rows="not_a_slice")
425463
426464
427 @pytest.mark.skipif(
428 LooseVersion(fiona.__version__) < LooseVersion("1.8"),
429 reason="Ignore geometry only available in Fiona 1.8",
430 )
431465 def test_read_file__ignore_geometry():
432466 pdf = geopandas.read_file(
433 geopandas.datasets.get_path("naturalearth_lowres"), ignore_geometry=True,
467 geopandas.datasets.get_path("naturalearth_lowres"), ignore_geometry=True
434468 )
435469 assert "geometry" not in pdf.columns
436470 assert isinstance(pdf, pd.DataFrame) and not isinstance(pdf, geopandas.GeoDataFrame)
437471
438472
439 @pytest.mark.skipif(
440 LooseVersion(fiona.__version__) < LooseVersion("1.8"),
441 reason="Ignore fields only available in Fiona 1.8",
442 )
443473 def test_read_file__ignore_all_fields():
444474 gdf = geopandas.read_file(
445475 geopandas.datasets.get_path("naturalearth_lowres"),
0 from enum import Enum
10 import os
2 import sys
31
42 from shapely.geometry import (
53 LineString,
1210
1311 import geopandas
1412 from geopandas import GeoDataFrame
15 from geopandas.io.file import _FIONA18
1613
1714 from geopandas.testing import assert_geodataframe_equal
1815 import pytest
6764 # TEST TOOLING
6865
6966
70 class _Fiona(Enum):
71 below_1_8 = "fiona_below_1_8"
72 above_1_8 = "fiona_above_1_8"
73
74
7567 class _ExpectedError:
7668 def __init__(self, error_type, error_message_match):
7769 self.type = error_type
8880 )
8981
9082
91 def _expect_writing(gdf, ogr_driver, fiona_version):
92 return _ExpectedErrorBuilder(_composite_key(gdf, ogr_driver, fiona_version))
93
94
95 def _composite_key(gdf, ogr_driver, fiona_version):
96 return frozenset([id(gdf), ogr_driver, fiona_version.value])
97
98
99 def _expected_error_on(gdf, ogr_driver, is_fiona_above_1_8):
100 if is_fiona_above_1_8:
101 composite_key = _composite_key(gdf, ogr_driver, _Fiona.above_1_8)
102 else:
103 composite_key = _composite_key(gdf, ogr_driver, _Fiona.below_1_8)
83 def _expect_writing(gdf, ogr_driver):
84 return _ExpectedErrorBuilder(_composite_key(gdf, ogr_driver))
85
86
87 def _composite_key(gdf, ogr_driver):
88 return frozenset([id(gdf), ogr_driver])
89
90
91 def _expected_error_on(gdf, ogr_driver):
92 composite_key = _composite_key(gdf, ogr_driver)
10493 return _expected_exceptions.get(composite_key, None)
10594
10695
140129 # 'ESRI Shapefile' driver supports writing LineString/MultiLinestring and
141130 # Polygon/MultiPolygon but does not mention Point/MultiPoint
142131 # see https://www.gdal.org/drv_shapefile.html
143 for driver in ("ESRI Shapefile", "GPKG"):
144 _expect_writing(gdf, driver, _Fiona.below_1_8).to_raise(
145 ValueError,
146 "Record's geometry type does not match collection schema's geometry "
147 "type: 'MultiPoint' != 'Point'",
148 )
149 _expect_writing(gdf, "ESRI Shapefile", _Fiona.above_1_8).to_raise(
150 RuntimeError, "Failed to write record"
151 )
132 _expect_writing(gdf, "ESRI Shapefile").to_raise(RuntimeError, "Failed to write record")
152133
153134 # ------------------
154135 # gdf with LineStrings
172153 geometry=[MultiLineString(city_hall_walls), city_hall_walls[0]],
173154 )
174155 _geodataframes_to_write.append(gdf)
175 _expect_writing(gdf, "GPKG", _Fiona.below_1_8).to_raise(
176 ValueError,
177 "Record's geometry type does not match collection schema's geometry "
178 "type: 'MultiLineString' != 'LineString'",
179 )
180156
181157 # ------------------
182158 # gdf with Polygons
205181 ],
206182 )
207183 _geodataframes_to_write.append(gdf)
208 _expect_writing(gdf, "GPKG", _Fiona.below_1_8).to_raise(
209 ValueError,
210 "Record's geometry type does not match collection schema's geometry "
211 "type: 'MultiPolygon' != 'Polygon'",
212 )
213184
214185 # ------------------
215186 # gdf with null geometry and Point
242213 )
243214 _geodataframes_to_write.append(gdf)
244215 # Not supported by 'ESRI Shapefile' driver
245 for driver in ("ESRI Shapefile", "GPKG"):
246 _expect_writing(gdf, driver, _Fiona.below_1_8).to_raise(
247 AttributeError, "'list' object has no attribute 'lstrip'"
248 )
249 _expect_writing(gdf, "ESRI Shapefile", _Fiona.above_1_8).to_raise(
250 RuntimeError, "Failed to write record"
251 )
216 _expect_writing(gdf, "ESRI Shapefile").to_raise(RuntimeError, "Failed to write record")
252217
253218 # ------------------
254219 # gdf with all 2D shape types and 3D Point mixed together
267232 )
268233 _geodataframes_to_write.append(gdf)
269234 # Not supported by 'ESRI Shapefile' driver
270 for driver in ("ESRI Shapefile", "GPKG"):
271 _expect_writing(gdf, driver, _Fiona.below_1_8).to_raise(
272 AttributeError, "'list' object has no attribute 'lstrip'"
273 )
274 _expect_writing(gdf, "ESRI Shapefile", _Fiona.above_1_8).to_raise(
275 RuntimeError, "Failed to write record"
276 )
235 _expect_writing(gdf, "ESRI Shapefile").to_raise(RuntimeError, "Failed to write record")
277236
278237
279238 @pytest.fixture(params=_geodataframes_to_write)
289248 def test_to_file_roundtrip(tmpdir, geodataframe, ogr_driver):
290249 output_file = os.path.join(str(tmpdir), "output_file")
291250
292 expected_error = _expected_error_on(geodataframe, ogr_driver, _FIONA18)
251 expected_error = _expected_error_on(geodataframe, ogr_driver)
293252 if expected_error:
294 with pytest.raises(expected_error.type, match=expected_error.match):
253 with pytest.raises(RuntimeError, match="Failed to write record"):
295254 geodataframe.to_file(output_file, driver=ogr_driver)
296255 else:
297256 geodataframe.to_file(output_file, driver=ogr_driver)
298257
299258 reloaded = geopandas.read_file(output_file)
300259
301 check_column_type = "equiv"
302 if sys.version_info[0] < 3:
303 # do not check column types in python 2 (mixed string/unicode)
304 check_column_type = False
305
306 assert_geodataframe_equal(
307 geodataframe, reloaded, check_column_type=check_column_type
308 )
260 assert_geodataframe_equal(geodataframe, reloaded, check_column_type="equiv")
1010
1111 import pandas as pd
1212 import numpy as np
13 import pytest
1413 from geopandas import GeoDataFrame
15 from geopandas.io.file import _FIONA18, infer_schema
16 from geopandas._compat import PANDAS_GE_024
14 from geopandas.io.file import infer_schema
1715
1816 # Credit: Polygons below come from Montreal city Open Data portal
1917 # http://donnees.ville.montreal.qc.ca/dataset/unites-evaluation-fonciere
8987 ]
9088 )
9189
92 if _FIONA18:
93 assert infer_schema(df) == {
94 "geometry": ["MultiPoint", "Point"],
95 "properties": OrderedDict(),
96 }
97 else:
98 assert infer_schema(df) == {"geometry": "Point", "properties": OrderedDict()}
90 assert infer_schema(df) == {
91 "geometry": ["MultiPoint", "Point"],
92 "properties": OrderedDict(),
93 }
9994
10095
10196 def test_infer_schema_only_multipoints():
119114 def test_infer_schema_linestrings_and_multilinestrings():
120115 df = GeoDataFrame(geometry=[MultiLineString(city_hall_walls), city_hall_walls[0]])
121116
122 if _FIONA18:
123 assert infer_schema(df) == {
124 "geometry": ["MultiLineString", "LineString"],
125 "properties": OrderedDict(),
126 }
127 else:
128 assert infer_schema(df) == {
129 "geometry": "LineString",
130 "properties": OrderedDict(),
131 }
117 assert infer_schema(df) == {
118 "geometry": ["MultiLineString", "LineString"],
119 "properties": OrderedDict(),
120 }
132121
133122
134123 def test_infer_schema_only_multilinestrings():
154143 ]
155144 )
156145
157 if _FIONA18:
158 assert infer_schema(df) == {
159 "geometry": ["MultiPolygon", "Polygon"],
160 "properties": OrderedDict(),
161 }
162 else:
163 assert infer_schema(df) == {"geometry": "Polygon", "properties": OrderedDict()}
146 assert infer_schema(df) == {
147 "geometry": ["MultiPolygon", "Polygon"],
148 "properties": OrderedDict(),
149 }
164150
165151
166152 def test_infer_schema_only_multipolygons():
181167 ]
182168 )
183169
184 if _FIONA18:
185 assert infer_schema(df) == {
186 "geometry": [
187 "MultiPolygon",
188 "Polygon",
189 "MultiLineString",
190 "LineString",
191 "MultiPoint",
192 "Point",
193 ],
194 "properties": OrderedDict(),
195 }
196 else:
197 assert infer_schema(df) == {
198 "geometry": ["Polygon", "LineString", "Point"],
199 "properties": OrderedDict(),
200 }
170 assert infer_schema(df) == {
171 "geometry": [
172 "MultiPolygon",
173 "Polygon",
174 "MultiLineString",
175 "LineString",
176 "MultiPoint",
177 "Point",
178 ],
179 "properties": OrderedDict(),
180 }
201181
202182
203183 def test_infer_schema_mixed_3D_shape_type():
213193 ]
214194 )
215195
216 if _FIONA18:
217 assert infer_schema(df) == {
218 "geometry": [
219 "3D Point",
220 "MultiPolygon",
221 "Polygon",
222 "MultiLineString",
223 "LineString",
224 "MultiPoint",
225 "Point",
226 ],
227 "properties": OrderedDict(),
228 }
229 else:
230 assert infer_schema(df) == {
231 "geometry": ["3D Polygon", "3D LineString", "3D Point"],
232 "properties": OrderedDict(),
233 }
196 assert infer_schema(df) == {
197 "geometry": [
198 "3D Point",
199 "MultiPolygon",
200 "Polygon",
201 "MultiLineString",
202 "LineString",
203 "MultiPoint",
204 "Point",
205 ],
206 "properties": OrderedDict(),
207 }
234208
235209
236210 def test_infer_schema_mixed_3D_Point():
237211 df = GeoDataFrame(geometry=[city_hall_balcony, point_3D])
238212
239 if _FIONA18:
240 assert infer_schema(df) == {
241 "geometry": ["3D Point", "Point"],
242 "properties": OrderedDict(),
243 }
244 else:
245 assert infer_schema(df) == {"geometry": "3D Point", "properties": OrderedDict()}
213 assert infer_schema(df) == {
214 "geometry": ["3D Point", "Point"],
215 "properties": OrderedDict(),
216 }
246217
247218
248219 def test_infer_schema_only_3D_Points():
254225 def test_infer_schema_mixed_3D_linestring():
255226 df = GeoDataFrame(geometry=[city_hall_walls[0], linestring_3D])
256227
257 if _FIONA18:
258 assert infer_schema(df) == {
259 "geometry": ["3D LineString", "LineString"],
260 "properties": OrderedDict(),
261 }
262 else:
263 assert infer_schema(df) == {
264 "geometry": "3D LineString",
265 "properties": OrderedDict(),
266 }
228 assert infer_schema(df) == {
229 "geometry": ["3D LineString", "LineString"],
230 "properties": OrderedDict(),
231 }
267232
268233
269234 def test_infer_schema_only_3D_linestrings():
278243 def test_infer_schema_mixed_3D_Polygon():
279244 df = GeoDataFrame(geometry=[city_hall_boundaries, polygon_3D])
280245
281 if _FIONA18:
282 assert infer_schema(df) == {
283 "geometry": ["3D Polygon", "Polygon"],
284 "properties": OrderedDict(),
285 }
286 else:
287 assert infer_schema(df) == {
288 "geometry": "3D Polygon",
289 "properties": OrderedDict(),
290 }
246 assert infer_schema(df) == {
247 "geometry": ["3D Polygon", "Polygon"],
248 "properties": OrderedDict(),
249 }
291250
292251
293252 def test_infer_schema_only_3D_Polygons():
318277 assert infer_schema(df) == {"geometry": "Unknown", "properties": OrderedDict()}
319278
320279
321 @pytest.mark.skipif(not PANDAS_GE_024, reason="pandas >= 0.24 needed")
322280 def test_infer_schema_int64():
323281 int64col = pd.array([1, np.nan], dtype=pd.Int64Dtype())
324282 df = GeoDataFrame(geometry=[city_hall_entrance, city_hall_balcony])
1313 import pytest
1414 from geopandas.testing import assert_geodataframe_equal
1515 from geopandas import _compat as compat
16
16 import geopandas
17 from shapely.geometry import Point
1718
1819 DATA_PATH = pathlib.Path(os.path.dirname(__file__)) / "data"
1920
3233 @pytest.fixture(params=files, ids=[p.split("/")[-1] for p in files])
3334 def legacy_pickle(request):
3435 return request.param
36
37
38 @pytest.fixture
39 def with_use_pygeos_false():
40 orig = geopandas.options.use_pygeos
41 geopandas.options.use_pygeos = not orig
42 yield
43 geopandas.options.use_pygeos = orig
3544
3645
3746 @pytest.mark.skipif(
5766 value.to_pickle(path)
5867 result = pd.read_pickle(path)
5968 assert_geodataframe_equal(result, value)
69 assert isinstance(result.has_sindex, bool)
70
71
72 @pytest.mark.skipif(not compat.HAS_PYGEOS, reason="requires pygeos to test #1745")
73 def test_pygeos_switch(tmpdir, with_use_pygeos_false):
74 gdf_crs = geopandas.GeoDataFrame(
75 {"a": [0.1, 0.2, 0.3], "geometry": [Point(1, 1), Point(2, 2), Point(3, 3)]},
76 crs="EPSG:4326",
77 )
78 path = str(tmpdir / "gdf_crs.pickle")
79 gdf_crs.to_pickle(path)
80 result = pd.read_pickle(path)
81 assert_geodataframe_equal(result, gdf_crs)
1010 import geopandas
1111 from geopandas import GeoDataFrame, read_file, read_postgis
1212
13 from geopandas.io.sql import _write_postgis as write_postgis
13 from geopandas.io.sql import _get_conn as get_conn, _write_postgis as write_postgis
1414 from geopandas.tests.util import create_postgis, create_spatialite, validate_boro_df
1515 import pytest
1616
110110 con.close()
111111
112112
113 def drop_table_if_exists(engine, table):
113 def drop_table_if_exists(conn_or_engine, table):
114114 sqlalchemy = pytest.importorskip("sqlalchemy")
115115
116 if engine.has_table(table):
117 metadata = sqlalchemy.MetaData(engine)
116 if conn_or_engine.dialect.has_table(conn_or_engine, table):
117 metadata = sqlalchemy.MetaData(conn_or_engine)
118118 metadata.reflect()
119119 table = metadata.tables.get(table)
120120 if table is not None:
187187
188188
189189 class TestIO:
190 def test_get_conn(self, engine_postgis):
191 Connection = pytest.importorskip("sqlalchemy.engine.base").Connection
192
193 engine = engine_postgis
194 with get_conn(engine) as output:
195 assert isinstance(output, Connection)
196 with engine.connect() as conn:
197 with get_conn(conn) as output:
198 assert isinstance(output, Connection)
199 with pytest.raises(ValueError):
200 with get_conn(object()):
201 pass
202
190203 def test_read_postgis_default(self, connection_postgis, df_nybb):
191204 con = connection_postgis
192205 create_postgis(con, df_nybb)
329342 sql = "SELECT * FROM {table};".format(table=table)
330343 df = read_postgis(sql, engine, geom_col="geometry")
331344 validate_boro_df(df)
345
346 def test_write_postgis_uppercase_tablename(self, engine_postgis, df_nybb):
347 """Tests writing GeoDataFrame to PostGIS with uppercase tablename."""
348 engine = engine_postgis
349 table = "aTestTable"
350
351 # If table exists, delete it before trying to write with defaults
352 drop_table_if_exists(engine, table)
353
354 # Write to db
355 write_postgis(df_nybb, con=engine, name=table, if_exists="fail")
356 # Validate
357 sql = 'SELECT * FROM "{table}";'.format(table=table)
358 df = read_postgis(sql, engine, geom_col="geometry")
359 validate_boro_df(df)
360
361 def test_write_postgis_sqlalchemy_connection(self, engine_postgis, df_nybb):
362 """Tests that GeoDataFrame can be written to PostGIS with defaults."""
363 with engine_postgis.begin() as con:
364 table = "nybb_con"
365
366 # If table exists, delete it before trying to write with defaults
367 drop_table_if_exists(con, table)
368
369 # Write to db
370 write_postgis(df_nybb, con=con, name=table, if_exists="fail")
371 # Validate
372 sql = "SELECT * FROM {table};".format(table=table)
373 df = read_postgis(sql, con, geom_col="geometry")
374 validate_boro_df(df)
332375
333376 def test_write_postgis_fail_when_table_exists(self, engine_postgis, df_nybb):
334377 """
4444 return geoms, np.arange(len(geoms))
4545
4646 for ix, geom in enumerate(geoms):
47 if geom.type.startswith(prefix):
48 for poly in geom:
47 if geom is not None and geom.type.startswith(prefix) and not geom.is_empty:
48 for poly in geom.geoms:
4949 components.append(poly)
5050 component_index.append(ix)
5151 else:
6262 it (in place) to the correct length/formats with help of 'multiindex', unless
6363 the value appears to already be a valid (single) value for the key.
6464 """
65 import matplotlib
6566 from matplotlib.colors import is_color_like
6667 from typing import Iterable
68
69 mpl = matplotlib.__version__
70 if mpl >= LooseVersion("3.4") or (mpl > LooseVersion("3.3.2") and "+" in mpl):
71 # alpha is supported as array argument with matplotlib 3.4+
72 scalar_kwargs = ["marker"]
73 else:
74 scalar_kwargs = ["marker", "alpha"]
6775
6876 for att, value in kwargs.items():
6977 if "color" in att: # color(s), edgecolor(s), facecolor(s)
7785 and isinstance(value[1], Iterable)
7886 ):
7987 continue
80 elif att in ["marker", "alpha"]:
88 elif att in scalar_kwargs:
8189 # For these attributes, only a single value is allowed, so never expand.
8290 continue
8391
8492 if pd.api.types.is_list_like(value):
8593 kwargs[att] = np.take(value, multiindex, axis=0)
94
95
96 def _PolygonPatch(polygon, **kwargs):
97 """Constructs a matplotlib patch from a Polygon geometry
98
99 The `kwargs` are those supported by the matplotlib.patches.PathPatch class
100 constructor. Returns an instance of matplotlib.patches.PathPatch.
101
102 Example (using Shapely Point and a matplotlib axes)::
103
104 b = shapely.geometry.Point(0, 0).buffer(1.0)
105 patch = _PolygonPatch(b, fc='blue', ec='blue', alpha=0.5)
106 ax.add_patch(patch)
107
108 GeoPandas originally relied on the descartes package by Sean Gillies
109 (BSD license, https://pypi.org/project/descartes) for PolygonPatch, but
110 this dependency was removed in favor of the below matplotlib code.
111 """
112 from matplotlib.patches import PathPatch
113 from matplotlib.path import Path
114
115 path = Path.make_compound_path(
116 Path(np.asarray(polygon.exterior.coords)[:, :2]),
117 *[Path(np.asarray(ring.coords)[:, :2]) for ring in polygon.interiors],
118 )
119 return PathPatch(path, **kwargs)
86120
87121
88122 def _plot_polygon_collection(
114148 -------
115149 collection : matplotlib.collections.Collection that was plotted
116150 """
117
118 try:
119 from descartes.patch import PolygonPatch
120 except ImportError:
121 raise ImportError(
122 "The descartes package is required for plotting polygons in geopandas. "
123 "You can install it using 'conda install -c conda-forge descartes' or "
124 "'pip install descartes'."
125 )
126151 from matplotlib.collections import PatchCollection
127152
128153 geoms, multiindex = _flatten_multi_geoms(geoms)
142167
143168 _expand_kwargs(kwargs, multiindex)
144169
145 collection = PatchCollection([PolygonPatch(poly) for poly in geoms], **kwargs)
170 collection = PatchCollection(
171 [_PolygonPatch(poly) for poly in geoms if not poly.is_empty], **kwargs
172 )
146173
147174 if values is not None:
148175 collection.set_array(np.asarray(values))
199226
200227 _expand_kwargs(kwargs, multiindex)
201228
202 segments = [np.array(linestring)[:, :2] for linestring in geoms]
229 segments = [np.array(linestring.coords)[:, :2] for linestring in geoms]
203230 collection = LineCollection(segments, **kwargs)
204231
205232 if values is not None:
226253 vmax=None,
227254 marker="o",
228255 markersize=None,
229 **kwargs
256 **kwargs,
230257 ):
231258 """
232259 Plots a collection of Point and MultiPoint geometries to `ax`
253280 raise ValueError("Can only specify one of 'values' and 'color' kwargs")
254281
255282 geoms, multiindex = _flatten_multi_geoms(geoms)
256 if values is not None:
257 values = np.take(values, multiindex, axis=0)
258
259 x = [p.x for p in geoms]
260 y = [p.y for p in geoms]
283 # values are expanded below as kwargs["c"]
284
285 x = [p.x if not p.is_empty else None for p in geoms]
286 y = [p.y if not p.is_empty else None for p in geoms]
261287
262288 # matplotlib 1.4 does not support c=None, and < 2.0 does not support s=None
263289 if values is not None:
312338 figsize : pair of floats (default None)
313339 Size of the resulting matplotlib.figure.Figure. If the argument
314340 ax is given explicitly, figsize is ignored.
315 aspect : 'auto', 'equal' or float (default 'auto')
341 aspect : 'auto', 'equal', None or float (default 'auto')
316342 Set aspect of axis. If 'auto', the default aspect for map plots is 'equal'; if
317343 however data are not projected (coordinates are long/lat), the aspect is by
318344 default set to 1/cos(s_y * pi/180) with s_y the y coordinate of the middle of
319345 the GeoSeries (the mean of the y range of bounding box) so that a long/lat
320346 square appears square in the middle of the plot. This implies an
321 Equirectangular projection. It can also be set manually (float) as the ratio
322 of y-unit to x-unit.
347 Equirectangular projection. If None, the aspect of `ax` won't be changed. It can
348 also be set manually (float) as the ratio of y-unit to x-unit.
323349 **style_kwds : dict
324350 Color options to be passed on to the actual plot function, such
325351 as ``edgecolor``, ``facecolor``, ``linewidth``, ``markersize``,
365391 # https://github.com/edzer/sp/blob/master/R/mapasp.R
366392 else:
367393 ax.set_aspect("equal")
368 else:
394 elif aspect is not None:
369395 ax.set_aspect(aspect)
370396
371397 if s.empty:
372398 warnings.warn(
373399 "The GeoSeries you are attempting to plot is "
374400 "empty. Nothing has been displayed.",
401 UserWarning,
402 )
403 return ax
404
405 if s.is_empty.all():
406 warnings.warn(
407 "The GeoSeries you are attempting to plot is "
408 "composed of empty geometries. Nothing has been displayed.",
375409 UserWarning,
376410 )
377411 return ax
453487 classification_kwds=None,
454488 missing_kwds=None,
455489 aspect="auto",
456 **style_kwds
490 **style_kwds,
457491 ):
458492 """
459493 Plot a GeoDataFrame.
464498
465499 Parameters
466500 ----------
467 df : GeoDataFrame
468 The GeoDataFrame to be plotted. Currently Polygon,
469 MultiPolygon, LineString, MultiLineString and Point
470 geometries can be plotted.
471501 column : str, np.array, pd.Series (default None)
472502 The name of the dataframe column, np.array, or pd.Series to be plotted.
473503 If np.array or pd.Series are used then it must have same length as
474504 dataframe. Values are used to color the plot. Ignored if `color` is
475505 also set.
506 kind: str
507 The kind of plots to produce:
508 - 'geo': Map (default)
509 Pandas Kinds
510 - 'line' : line plot
511 - 'bar' : vertical bar plot
512 - 'barh' : horizontal bar plot
513 - 'hist' : histogram
514 - 'box' : BoxPlot
515 - 'kde' : Kernel Density Estimation plot
516 - 'density' : same as 'kde'
517 - 'area' : area plot
518 - 'pie' : pie plot
519 - 'scatter' : scatter plot
520 - 'hexbin' : hexbin plot.
476521 cmap : str (default None)
477522 The name of a colormap recognized by matplotlib.
478523 color : str (default None)
525570 A list of legend labels to override the auto-generated labels.
526571 Needs to have the same number of elements as the number of
527572 classes (`k`).
573 interval : boolean (default False)
574 An option to control brackets from mapclassify legend.
575 If True, open/closed interval brackets are shown in the legend.
528576 categories : list-like
529577 Ordered list-like object of categories to be used for categorical plot.
530578 classification_kwds : dict (default None)
534582 to be passed on to geometries with missing values in addition to
535583 or overwriting other style kwds. If None, geometries with missing
536584 values are not plotted.
537 aspect : 'auto', 'equal' or float (default 'auto')
585 aspect : 'auto', 'equal', None or float (default 'auto')
538586 Set aspect of axis. If 'auto', the default aspect for map plots is 'equal'; if
539587 however data are not projected (coordinates are long/lat), the aspect is by
540588 default set to 1/cos(df_y * pi/180) with df_y the y coordinate of the middle of
541589 the GeoDataFrame (the mean of the y range of bounding box) so that a long/lat
542590 square appears square in the middle of the plot. This implies an
543 Equirectangular projection. It can also be set manually (float) as the ratio
544 of y-unit to x-unit.
591 Equirectangular projection. If None, the aspect of `ax` won't be changed. It can
592 also be set manually (float) as the ratio of y-unit to x-unit.
545593
546594 **style_kwds : dict
547595 Style options to be passed on to the actual plot function, such
551599 Returns
552600 -------
553601 ax : matplotlib axes instance
602
603 Examples
604 --------
605 >>> df = geopandas.read_file(geopandas.datasets.get_path("naturalearth_lowres"))
606 >>> df.head() # doctest: +SKIP
607 pop_est continent name iso_a3 \
608 gdp_md_est geometry
609 0 920938 Oceania Fiji FJI 8374.0 MULTIPOLY\
610 GON (((180.00000 -16.06713, 180.00000...
611 1 53950935 Africa Tanzania TZA 150600.0 POLYGON (\
612 (33.90371 -0.95000, 34.07262 -1.05982...
613 2 603253 Africa W. Sahara ESH 906.5 POLYGON (\
614 (-8.66559 27.65643, -8.66512 27.58948...
615 3 35623680 North America Canada CAN 1674000.0 MULTIPOLY\
616 GON (((-122.84000 49.00000, -122.9742...
617 4 326625791 North America United States of America USA 18560000.0 MULTIPOLY\
618 GON (((-122.84000 49.00000, -120.0000...
619
620 >>> df.plot("pop_est", cmap="Blues") # doctest: +SKIP
621
622 See the User Guide page :doc:`../../user_guide/mapping` for details.
554623
555624 """
556625 if "colormap" in style_kwds:
596665 # https://github.com/edzer/sp/blob/master/R/mapasp.R
597666 else:
598667 ax.set_aspect("equal")
599 else:
668 elif aspect is not None:
600669 ax.set_aspect(aspect)
670
671 # GH 1555
672 # if legend_kwds set, copy so we don't update it in place
673 if legend_kwds is not None:
674 legend_kwds = legend_kwds.copy()
601675
602676 if df.empty:
603677 warnings.warn(
619693 figsize=figsize,
620694 markersize=markersize,
621695 aspect=aspect,
622 **style_kwds
696 **style_kwds,
623697 )
624698
625699 # To accept pd.Series and np.arrays as column
630704 )
631705 else:
632706 values = column
707
708 # Make sure index of a Series matches index of df
709 if isinstance(values, pd.Series):
710 values = values.reindex(df.index)
633711 else:
634712 values = df[column]
635713
687765 fmt = "{:.2f}"
688766 if legend_kwds is not None and "fmt" in legend_kwds:
689767 fmt = legend_kwds.pop("fmt")
768
690769 categories = binning.get_legend_classes(fmt)
770 if legend_kwds is not None:
771 show_interval = legend_kwds.pop("interval", False)
772 else:
773 show_interval = False
774 if not show_interval:
775 categories = [c[1:-1] for c in categories]
691776 values = np.array(binning.yb)
692777
693778 # fill values with placeholder where were NaNs originally to map them properly
745830 vmax=mx,
746831 markersize=markersize,
747832 cmap=cmap,
748 **style_kwds
749 )
750
751 if missing_kwds is not None:
833 **style_kwds,
834 )
835
836 if missing_kwds is not None and not expl_series[nan_idx].empty:
752837 if color:
753838 if "color" not in missing_kwds:
754839 missing_kwds["color"] = color
824909 return ax
825910
826911
912 if geopandas._compat.PANDAS_GE_025:
913 from pandas.plotting import PlotAccessor
914
915 class GeoplotAccessor(PlotAccessor):
916
917 __doc__ = plot_dataframe.__doc__
918 _pandas_kinds = PlotAccessor._all_kinds
919
920 def __call__(self, *args, **kwargs):
921 data = self._parent.copy()
922 kind = kwargs.pop("kind", "geo")
923 if kind == "geo":
924 return plot_dataframe(data, *args, **kwargs)
925 if kind in self._pandas_kinds:
926 # Access pandas plots
927 return PlotAccessor(data)(kind=kind, **kwargs)
928 else:
929 # raise error
930 raise ValueError(f"{kind} is not a valid plot kind")
931
932 def geo(self, *args, **kwargs):
933 return self(kind="geo", *args, **kwargs)
934
935
827936 def _mapclassify_choro(values, scheme, **classification_kwds):
828937 """
829938 Wrapper for choropleth schemes from mapclassify for use with plot_dataframe
843952 **classification_kwds : dict
844953 Keyword arguments for classification scheme
845954 For details see mapclassify documentation:
846 https://mapclassify.readthedocs.io/en/latest/api.html
955 https://pysal.org/mapclassify/api.html
847956
848957 Returns
849958 -------
0 from collections import namedtuple
1 from warnings import warn
0 from textwrap import dedent
1 import warnings
22
33 from shapely.geometry.base import BaseGeometry
44 import pandas as pd
77 from . import _compat as compat
88
99
10 VALID_QUERY_PREDICATES = {
11 None,
12 "intersects",
13 "within",
14 "contains",
15 "overlaps",
16 "crosses",
17 "touches",
18 }
19
20
21 def has_sindex():
22 """Dynamically checks for ability to generate spatial index.
23 """
24 try:
25 get_sindex_class()
26 return True
27 except ImportError:
28 return False
29
30
31 def get_sindex_class():
10 def _get_sindex_class():
3211 """Dynamically chooses a spatial indexing backend.
3312
3413 Required to comply with _compat.USE_PYGEOS.
4423 )
4524
4625
26 class BaseSpatialIndex:
27 @property
28 def valid_query_predicates(self):
29 """Returns valid predicates for this spatial index.
30
31 Returns
32 -------
33 set
34 Set of valid predicates for this spatial index.
35
36 Examples
37 --------
38 >>> from shapely.geometry import Point
39 >>> s = geopandas.GeoSeries([Point(0, 0), Point(1, 1)])
40 >>> s.sindex.valid_query_predicates # doctest: +SKIP
41 {'contains', 'crosses', 'intersects', 'within', 'touches', \
42 'overlaps', None, 'covers', 'contains_properly'}
43 """
44 raise NotImplementedError
45
46 def query(self, geometry, predicate=None, sort=False):
47 """Return the index of all geometries in the tree with extents that
48 intersect the envelope of the input geometry.
49
50 When using the ``rtree`` package, this is not a vectorized function.
51 If speed is important, please use PyGEOS.
52
53 Parameters
54 ----------
55 geometry : shapely geometry
56 A single shapely geometry to query against the spatial index.
57 predicate : {None, 'intersects', 'within', 'contains', \
58 'overlaps', 'crosses', 'touches'}, optional
59 If predicate is provided, the input geometry is
60 tested using the predicate function against each item
61 in the tree whose extent intersects the envelope of the
62 input geometry: predicate(input_geometry, tree_geometry).
63 If possible, prepared geometries are used to help
64 speed up the predicate operation.
65 sort : bool, default False
66 If True, the results will be sorted in ascending order.
67 If False, results are often sorted but there is no guarantee.
68
69 Returns
70 -------
71 matches : ndarray of shape (n_results, )
72 Integer indices for matching geometries from the spatial index.
73
74 Examples
75 --------
76 >>> from shapely.geometry import Point, box
77 >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10)))
78 >>> s
79 0 POINT (0.00000 0.00000)
80 1 POINT (1.00000 1.00000)
81 2 POINT (2.00000 2.00000)
82 3 POINT (3.00000 3.00000)
83 4 POINT (4.00000 4.00000)
84 5 POINT (5.00000 5.00000)
85 6 POINT (6.00000 6.00000)
86 7 POINT (7.00000 7.00000)
87 8 POINT (8.00000 8.00000)
88 9 POINT (9.00000 9.00000)
89 dtype: geometry
90
91 >>> s.sindex.query(box(1, 1, 3, 3))
92 array([1, 2, 3])
93
94 >>> s.sindex.query(box(1, 1, 3, 3), predicate="contains")
95 array([2])
96 """
97 raise NotImplementedError
98
99 def query_bulk(self, geometry, predicate=None, sort=False):
100 """
101 Returns all combinations of each input geometry and geometries in
102 the tree where the envelope of each input geometry intersects with
103 the envelope of a tree geometry.
104
105 In the context of a spatial join, input geometries are the “left”
106 geometries that determine the order of the results, and tree geometries
107 are “right” geometries that are joined against the left geometries.
108 This effectively performs an inner join, where only those combinations
109 of geometries that can be joined based on envelope overlap or optional
110 predicate are returned.
111
112 When using the ``rtree`` package, this is not a vectorized function
113 and may be slow. If speed is important, please use PyGEOS.
114
115 Parameters
116 ----------
117 geometry : {GeoSeries, GeometryArray, numpy.array of PyGEOS geometries}
118 Accepts GeoPandas geometry iterables (GeoSeries, GeometryArray)
119 or a numpy array of PyGEOS geometries.
120 predicate : {None, 'intersects', 'within', 'contains', 'overlaps', \
121 'crosses', 'touches'}, optional
122 If predicate is provided, the input geometries are tested using
123 the predicate function against each item in the tree whose extent
124 intersects the envelope of the each input geometry:
125 predicate(input_geometry, tree_geometry). If possible, prepared
126 geometries are used to help speed up the predicate operation.
127 sort : bool, default False
128 If True, results sorted lexicographically using
129 geometry's indexes as the primary key and the sindex's indexes as the
130 secondary key. If False, no additional sorting is applied.
131
132 Returns
133 -------
134 ndarray with shape (2, n)
135 The first subarray contains input geometry integer indexes.
136 The second subarray contains tree geometry integer indexes.
137
138 Examples
139 --------
140 >>> from shapely.geometry import Point, box
141 >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10)))
142 >>> s
143 0 POINT (0.00000 0.00000)
144 1 POINT (1.00000 1.00000)
145 2 POINT (2.00000 2.00000)
146 3 POINT (3.00000 3.00000)
147 4 POINT (4.00000 4.00000)
148 5 POINT (5.00000 5.00000)
149 6 POINT (6.00000 6.00000)
150 7 POINT (7.00000 7.00000)
151 8 POINT (8.00000 8.00000)
152 9 POINT (9.00000 9.00000)
153 dtype: geometry
154 >>> s2 = geopandas.GeoSeries([box(2, 2, 4, 4), box(5, 5, 6, 6)])
155 >>> s2
156 0 POLYGON ((4.00000 2.00000, 4.00000 4.00000, 2....
157 1 POLYGON ((6.00000 5.00000, 6.00000 6.00000, 5....
158 dtype: geometry
159
160 >>> s.sindex.query_bulk(s2)
161 array([[0, 0, 0, 1, 1],
162 [2, 3, 4, 5, 6]])
163
164 >>> s.sindex.query_bulk(s2, predicate="contains")
165 array([[0],
166 [3]])
167 """
168 raise NotImplementedError
169
170 def intersection(self, coordinates):
171 """Compatibility wrapper for rtree.index.Index.intersection,
172 use ``query`` intead.
173
174 Parameters
175 ----------
176 coordinates : sequence or array
177 Sequence of the form (min_x, min_y, max_x, max_y)
178 to query a rectangle or (x, y) to query a point.
179
180 Examples
181 --------
182 >>> from shapely.geometry import Point, box
183 >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10)))
184 >>> s
185 0 POINT (0.00000 0.00000)
186 1 POINT (1.00000 1.00000)
187 2 POINT (2.00000 2.00000)
188 3 POINT (3.00000 3.00000)
189 4 POINT (4.00000 4.00000)
190 5 POINT (5.00000 5.00000)
191 6 POINT (6.00000 6.00000)
192 7 POINT (7.00000 7.00000)
193 8 POINT (8.00000 8.00000)
194 9 POINT (9.00000 9.00000)
195 dtype: geometry
196
197 >>> s.sindex.intersection(box(1, 1, 3, 3).bounds)
198 array([1, 2, 3])
199
200 Alternatively, you can use ``query``:
201
202 >>> s.sindex.query(box(1, 1, 3, 3))
203 array([1, 2, 3])
204
205 """
206 raise NotImplementedError
207
208 @property
209 def size(self):
210 """Size of the spatial index
211
212 Number of leaves (input geometries) in the index.
213
214 Examples
215 --------
216 >>> from shapely.geometry import Point
217 >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10)))
218 >>> s
219 0 POINT (0.00000 0.00000)
220 1 POINT (1.00000 1.00000)
221 2 POINT (2.00000 2.00000)
222 3 POINT (3.00000 3.00000)
223 4 POINT (4.00000 4.00000)
224 5 POINT (5.00000 5.00000)
225 6 POINT (6.00000 6.00000)
226 7 POINT (7.00000 7.00000)
227 8 POINT (8.00000 8.00000)
228 9 POINT (9.00000 9.00000)
229 dtype: geometry
230
231 >>> s.sindex.size
232 10
233 """
234 raise NotImplementedError
235
236 @property
237 def is_empty(self):
238 """Check if the spatial index is empty
239
240 Examples
241 --------
242 >>> from shapely.geometry import Point
243 >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10)))
244 >>> s
245 0 POINT (0.00000 0.00000)
246 1 POINT (1.00000 1.00000)
247 2 POINT (2.00000 2.00000)
248 3 POINT (3.00000 3.00000)
249 4 POINT (4.00000 4.00000)
250 5 POINT (5.00000 5.00000)
251 6 POINT (6.00000 6.00000)
252 7 POINT (7.00000 7.00000)
253 8 POINT (8.00000 8.00000)
254 9 POINT (9.00000 9.00000)
255 dtype: geometry
256
257 >>> s.sindex.is_empty
258 False
259
260 >>> s2 = geopandas.GeoSeries()
261 >>> s2.sindex.is_empty
262 True
263 """
264 raise NotImplementedError
265
266
267 def doc(docstring):
268 """
269 A decorator take docstring from passed object and it to decorated one.
270 """
271
272 def decorator(decorated):
273 decorated.__doc__ = dedent(docstring.__doc__ or "")
274 return decorated
275
276 return decorator
277
278
47279 if compat.HAS_RTREE:
48280
49281 import rtree.index # noqa
50282 from rtree.core import RTreeError # noqa
51283 from shapely.prepared import prep # noqa
52284
53 class SpatialIndex(rtree.index.Index):
54 """Original rtree wrapper, kept for backwards compatibility.
55 """
285 class SpatialIndex(rtree.index.Index, BaseSpatialIndex):
286 """Original rtree wrapper, kept for backwards compatibility."""
56287
57288 def __init__(self, *args):
58 super().__init__(self, *args)
59
289 warnings.warn(
290 "Directly using SpatialIndex is deprecated, and the class will be "
291 "removed in a future version. Access the spatial index through the "
292 "`GeoSeries.sindex` attribute, or use `rtree.index.Index` directly.",
293 FutureWarning,
294 stacklevel=2,
295 )
296 super().__init__(*args)
297
298 @doc(BaseSpatialIndex.intersection)
299 def intersection(self, coordinates, *args, **kwargs):
300 return super().intersection(coordinates, *args, **kwargs)
301
302 @doc(BaseSpatialIndex.size)
60303 @property
61304 def size(self):
62305 return len(self.leaves()[0][1])
63306
307 @doc(BaseSpatialIndex.is_empty)
64308 @property
65309 def is_empty(self):
66310 if len(self.leaves()) > 1:
72316
73317 Parameters
74318 ----------
75 geometry : GeoSeries
76 GeoSeries from which to build the spatial index.
77 """
78
79 # set of valid predicates for this spatial index
80 # by default, the global set
81 valid_query_predicates = VALID_QUERY_PREDICATES
319 geometry : np.array of Shapely geometries
320 Geometries from which to build the spatial index.
321 """
82322
83323 def __init__(self, geometry):
84324 stream = (
85 (i, item.bounds, idx)
86 for i, (idx, item) in enumerate(geometry.iteritems())
325 (i, item.bounds, None)
326 for i, item in enumerate(geometry)
87327 if pd.notnull(item) and not item.is_empty
88328 )
89329 try:
96336 super().__init__()
97337
98338 # store reference to geometries for predicate queries
99 self.geometries = geometry.geometry.values
339 self.geometries = geometry
100340 # create a prepared geometry cache
101341 self._prepared_geometries = np.array(
102342 [None] * self.geometries.size, dtype=object
103343 )
104344
345 @doc(BaseSpatialIndex.valid_query_predicates)
346 @property
347 def valid_query_predicates(self):
348 return {
349 None,
350 "intersects",
351 "within",
352 "contains",
353 "overlaps",
354 "crosses",
355 "touches",
356 "covers",
357 "contains_properly",
358 }
359
360 @doc(BaseSpatialIndex.query)
105361 def query(self, geometry, predicate=None, sort=False):
106 """Compatibility layer for pygeos.query.
107
108 This is not a vectorized function, if speed is important,
109 please use PyGEOS.
110
111 Parameters
112 ----------
113 geometry : shapely geometry
114 A single shapely geometry to query against the spatial index.
115 predicate : {None, 'intersects', 'within', 'contains', \
116 'overlaps', 'crosses', 'touches'}, optional
117 If predicate is provided, the input geometry is
118 tested using the predicate function against each item
119 in the tree whose extent intersects the envelope of the
120 input geometry: predicate(input_geometry, tree_geometry).
121 If possible, prepared geometries are used to help
122 speed up the predicate operation.
123 sort : bool, default False
124 If True, the results will be sorted in ascending order.
125 If False, results are often sorted but there is no guarantee.
126
127 Returns
128 -------
129 matches : ndarray of shape (n_results, )
130 Integer indices for matching geometries from the spatial index.
131 """
132
133362 # handle invalid predicates
134363 if predicate not in self.valid_query_predicates:
135364 raise ValueError(
156385
157386 # query tree
158387 bounds = geometry.bounds # rtree operates on bounds
159 tree_idx = list(self.intersection(bounds, objects=False))
388 tree_idx = list(self.intersection(bounds))
160389
161390 if not tree_idx:
162391 return np.array([], dtype=np.intp)
186415 elif predicate is not None:
187416 # For the remaining predicates,
188417 # we compare input_geom.predicate(tree_geom)
189 if predicate in ("contains", "intersects"):
418 if predicate in (
419 "contains",
420 "intersects",
421 "covers",
422 "contains_properly",
423 ):
190424 # prepare this input geometry
191425 geometry = prep(geometry)
192426 tree_idx = [
203437 # unsorted
204438 return np.array(tree_idx, dtype=np.intp)
205439
440 @doc(BaseSpatialIndex.query_bulk)
206441 def query_bulk(self, geometry, predicate=None, sort=False):
207 """Compatibility layer for pygeos.query_bulk.
208
209 Iterates over `geometry` and queries index.
210 This operation is not vectorized and may be slow.
211 Use PyGEOS with `query_bulk` for speed.
212
213 Parameters
214 ----------
215 geometry : {GeoSeries, GeometryArray, numpy.array of PyGEOS geometries}
216 Accepts GeoPandas geometry iterables (GeoSeries, GeometryArray)
217 or a numpy array of PyGEOS geometries.
218 predicate : {None, 'intersects', 'within', 'contains', 'overlaps', \
219 'crosses', 'touches'}, optional
220 If predicate is provided, the input geometries are tested using
221 the predicate function against each item in the tree whose extent
222 intersects the envelope of the each input geometry:
223 predicate(input_geometry, tree_geometry). If possible, prepared
224 geometries are used to help speed up the predicate operation.
225 sort : bool, default False
226 If True, results sorted lexicographically using
227 geometry's indexes as the primary key and the sindex's indexes as the
228 secondary key. If False, no additional sorting is applied.
229
230 Returns
231 -------
232 ndarray with shape (2, n)
233 The first subarray contains input geometry integer indexes.
234 The second subarray contains tree geometry integer indexes.
235 """
236442 # Iterates over geometry, applying func.
237443 tree_index = []
238444 input_geometry_index = []
243449 input_geometry_index.extend([i] * len(res))
244450 return np.vstack([input_geometry_index, tree_index])
245451
246 def intersection(self, coordinates, objects=False):
247 """Find tree geometries that intersect the input coordinates.
248
249 Parameters
250 ----------
251 coordinates : sequence or array
252 Sequence of the form (min_x, min_y, max_x, max_y)
253 to query a rectangle or (x, y) to query a point.
254 objects : boolean, default False
255 If True, return the label based indexes. If False, integer indexes
256 are returned.
257 """
258 if objects:
259 warn(
260 "`objects` is deprecated and will be removed in a future version. "
261 "Instead, use `iloc` to index your GeoSeries/GeoDataFrame using "
262 "integer indexes returned by `intersection`.",
263 FutureWarning,
264 )
265 return super().intersection(coordinates, objects)
266
452 @doc(BaseSpatialIndex.intersection)
453 def intersection(self, coordinates):
454 return super().intersection(coordinates, objects=False)
455
456 @doc(BaseSpatialIndex.size)
267457 @property
268458 def size(self):
269 return len(self.leaves()[0][1])
270
459 if hasattr(self, "_size"):
460 size = self._size
461 else:
462 # self.leaves are lists of tuples of (int, lists...)
463 # index [0][1] always has an element, even for empty sindex
464 # for an empty index, it will be an empty list
465 size = len(self.leaves()[0][1])
466 self._size = size
467 return size
468
469 @doc(BaseSpatialIndex.is_empty)
271470 @property
272471 def is_empty(self):
273 return self.size == 0
472 return self.geometries.size == 0 or self.size == 0
274473
275474 def __len__(self):
276475 return self.size
279478 if compat.HAS_PYGEOS:
280479
281480 from . import geoseries # noqa
282 from .array import GeometryArray, _shapely_to_geom # noqa
481 from . import array # noqa
283482 import pygeos # noqa
284483
285484 class PyGEOSSTRTreeIndex(pygeos.STRtree):
288487
289488 Parameters
290489 ----------
291 geometry : GeoSeries
292 GeoSeries from which to build the spatial index.
293 """
294
295 # helper for loc/label based indexing in `intersection` method
296 with_objects = namedtuple("with_objects", "object id")
297
298 # set of valid predicates for this spatial index
299 # by default, the global set
300 valid_query_predicates = VALID_QUERY_PREDICATES
490 geometry : np.array of PyGEOS geometries
491 Geometries from which to build the spatial index.
492 """
301493
302494 def __init__(self, geometry):
303 # for compatibility with old RTree implementation, store ids/indexes
304 original_indexes = geometry.index
305495 # set empty geometries to None to avoid segfault on GEOS <= 3.6
306496 # see:
307497 # https://github.com/pygeos/pygeos/issues/146
308498 # https://github.com/pygeos/pygeos/issues/147
309 non_empty = geometry.values.data.copy()
499 non_empty = geometry.copy()
310500 non_empty[pygeos.is_empty(non_empty)] = None
311501 # set empty geometries to None to mantain indexing
312 self.objects = self.ids = original_indexes
313502 super().__init__(non_empty)
314503 # store geometries, including empty geometries for user access
315 self.geometries = geometry.values.data.copy()
316
317 def query(self, geometry, predicate=None, sort=False):
318 """Wrapper for pygeos.query.
319
320 This also ensures a deterministic (sorted) order for the results.
321
322 Parameters
323 ----------
324 geometry : single PyGEOS geometry
325 predicate : {None, 'intersects', 'within', 'contains', \
326 'overlaps', 'crosses', 'touches'}, optional
327 If predicate is provided, the input geometry is tested
328 using the predicate function against each item in the
329 tree whose extent intersects the envelope of the input
330 geometry: predicate(input_geometry, tree_geometry).
331 sort : bool, default False
332 If True, the results will be sorted in ascending order.
333 If False, results are often sorted but there is no guarantee.
504 self.geometries = geometry.copy()
505
506 @property
507 def valid_query_predicates(self):
508 """Returns valid predicates for the used spatial index.
334509
335510 Returns
336511 -------
337 matches : ndarray of shape (n_results, )
338 Integer indices for matching geometries from the spatial index.
339
340 See also
512 set
513 Set of valid predicates for this spatial index.
514
515 Examples
341516 --------
342 See PyGEOS.strtree documentation for more information.
517 >>> from shapely.geometry import Point
518 >>> s = geopandas.GeoSeries([Point(0, 0), Point(1, 1)])
519 >>> s.sindex.valid_query_predicates # doctest: +SKIP
520 {'contains', 'crosses', 'covered_by', None, 'intersects', 'within', \
521 'touches', 'overlaps', 'contains_properly', 'covers'}
343522 """
344
523 return pygeos.strtree.VALID_PREDICATES | set([None])
524
525 @doc(BaseSpatialIndex.query)
526 def query(self, geometry, predicate=None, sort=False):
345527 if predicate not in self.valid_query_predicates:
346528 raise ValueError(
347529 "Got `predicate` = `{}`; ".format(predicate)
351533 )
352534
353535 if isinstance(geometry, BaseGeometry):
354 geometry = _shapely_to_geom(geometry)
536 geometry = array._shapely_to_geom(geometry)
355537
356538 matches = super().query(geometry=geometry, predicate=predicate)
357539
360542
361543 return matches
362544
545 @doc(BaseSpatialIndex.query_bulk)
363546 def query_bulk(self, geometry, predicate=None, sort=False):
364 """Wrapper to expose underlaying pygeos objects to pygeos.query_bulk.
365
366 This also allows a deterministic (sorted) order for the results.
367
368
369 Parameters
370 ----------
371 geometry : {GeoSeries, GeometryArray, numpy.array of PyGEOS geometries}
372 Accepts GeoPandas geometry iterables (GeoSeries, GeometryArray)
373 or a numpy array of PyGEOS geometries.
374 predicate : {None, 'intersects', 'within', 'contains', \
375 'overlaps', 'crosses', 'touches'}, optional
376 If predicate is provided, the input geometry is tested
377 using the predicate function against each item in the
378 index whose extent intersects the envelope of the input geometry:
379 predicate(input_geometry, tree_geometry).
380 sort : bool, default False
381 If True, results sorted lexicographically using
382 geometry's indexes as the primary key and the sindex's indexes as the
383 secondary key. If False, no additional sorting is applied.
384
385 Returns
386 -------
387 ndarray with shape (2, n)
388 The first subarray contains input geometry integer indexes.
389 The second subarray contains tree geometry integer indexes.
390
391 See also
392 --------
393 See PyGEOS.strtree documentation for more information.
394 """
395
396547 if predicate not in self.valid_query_predicates:
397548 raise ValueError(
398549 "Got `predicate` = `{}`, `predicate` must be one of {}".format(
401552 )
402553 if isinstance(geometry, geoseries.GeoSeries):
403554 geometry = geometry.values.data
404 elif isinstance(geometry, GeometryArray):
555 elif isinstance(geometry, array.GeometryArray):
405556 geometry = geometry.data
406557 elif not isinstance(geometry, np.ndarray):
407558 geometry = np.asarray(geometry)
416567
417568 return res
418569
419 def intersection(self, coordinates, objects=False):
420 """Wrapper for pygeos.query that uses the RTree API.
421
422 Parameters
423 ----------
424 coordinates : sequence or array
425 Sequence of the form (min_x, min_y, max_x, max_y)
426 to query a rectangle or (x, y) to query a point.
427 objects : boolean, default False
428 If True, return the label based indexes. If False, integer indexes
429 are returned.
430 """
431 if objects:
432 warn(
433 "`objects` is deprecated and will be removed in a future version. "
434 "Instead, use `iloc` to index your GeoSeries/GeoDataFrame using "
435 "integer indexes returned by `intersection`.",
436 FutureWarning,
437 )
438
570 @doc(BaseSpatialIndex.intersection)
571 def intersection(self, coordinates):
439572 # convert bounds to geometry
440573 # the old API uses tuples of bound, but pygeos uses geometries
441574 try:
462595 "Got `coordinates` = {}.".format(coordinates)
463596 )
464597
465 if objects:
466 objs = self.objects[indexes].values
467 ids = self.ids[indexes]
468 return [
469 self.with_objects(id=id, object=obj) for id, obj in zip(ids, objs)
470 ]
471 else:
472 return indexes
473
598 return indexes
599
600 @doc(BaseSpatialIndex.size)
474601 @property
475602 def size(self):
476603 return len(self)
477604
605 @doc(BaseSpatialIndex.is_empty)
478606 @property
479607 def is_empty(self):
480608 return len(self) == 0
66
77 from geopandas import GeoDataFrame, GeoSeries
88 from geopandas.array import GeometryDtype
9 from geopandas import _vectorized
910
1011
1112 def _isna(this):
6667 check_less_precise=False,
6768 check_geom_type=False,
6869 check_crs=True,
70 normalize=False,
6971 ):
7072 """
7173 Test util for checking that two GeoSeries are equal.
8890 check_crs: bool, default True
8991 If `check_series_type` is True, then also check that the
9092 crs matches.
93 normalize: bool, default False
94 If True, normalize the geometries before comparing equality.
95 Typically useful with ``check_less_precise=True``, which uses
96 ``geom_almost_equals`` and requires exact coordinate order.
9197 """
9298 assert len(left) == len(right), "%d != %d" % (len(left), len(right))
9399
119125 right.type,
120126 )
121127
128 if normalize:
129 left = GeoSeries(_vectorized.normalize(left.array.data))
130 right = GeoSeries(_vectorized.normalize(right.array.data))
131
122132 if not check_crs:
123133 with warnings.catch_warnings():
124134 warnings.filterwarnings("ignore", "CRS mismatch", UserWarning)
125 if check_less_precise:
126 assert geom_almost_equals(left, right)
127 else:
128 assert geom_equals(left, right)
129 else:
130 if check_less_precise:
131 assert geom_almost_equals(left, right)
132 else:
133 assert geom_equals(left, right)
135 _check_equality(left, right, check_less_precise)
136 else:
137 _check_equality(left, right, check_less_precise)
138
139
140 def _truncated_string(geom):
141 """Truncated WKT repr of geom"""
142 s = str(geom)
143 if len(s) > 100:
144 return s[:100] + "..."
145 else:
146 return s
147
148
149 def _check_equality(left, right, check_less_precise):
150 assert_error_message = (
151 "{0} out of {1} geometries are not {3}equal.\n"
152 "Indices where geometries are not {3}equal: {2} \n"
153 "The first not {3}equal geometry:\n"
154 "Left: {4}\n"
155 "Right: {5}\n"
156 )
157 if check_less_precise:
158 precise = "almost "
159 if not geom_almost_equals(left, right):
160 unequal_left_geoms = left[~left.geom_almost_equals(right)]
161 unequal_right_geoms = right[~left.geom_almost_equals(right)]
162 raise AssertionError(
163 assert_error_message.format(
164 len(unequal_left_geoms),
165 len(left),
166 unequal_left_geoms.index.to_list(),
167 precise,
168 _truncated_string(unequal_left_geoms.iloc[0]),
169 _truncated_string(unequal_right_geoms.iloc[0]),
170 )
171 )
172 else:
173 precise = ""
174 if not geom_equals(left, right):
175 unequal_left_geoms = left[~left.geom_almost_equals(right)]
176 unequal_right_geoms = right[~left.geom_almost_equals(right)]
177 raise AssertionError(
178 assert_error_message.format(
179 len(unequal_left_geoms),
180 len(left),
181 unequal_left_geoms.index.to_list(),
182 precise,
183 _truncated_string(unequal_left_geoms.iloc[0]),
184 _truncated_string(unequal_right_geoms.iloc[0]),
185 )
186 )
134187
135188
136189 def assert_geodataframe_equal(
144197 check_less_precise=False,
145198 check_geom_type=False,
146199 check_crs=True,
200 normalize=False,
147201 ):
148202 """
149203 Check that two GeoDataFrames are equal/
167221 check_crs: bool, default True
168222 If `check_frame_type` is True, then also check that the
169223 crs matches.
224 normalize: bool, default False
225 If True, normalize the geometries before comparing equality.
226 Typically useful with ``check_less_precise=True``, which uses
227 ``geom_almost_equals`` and requires exact coordinate order.
170228 """
171229 try:
172230 # added from pandas 0.20
194252 # shape comparison
195253 assert left.shape == right.shape, (
196254 "GeoDataFrame shape mismatch, left: {lshape!r}, right: {rshape!r}.\n"
197 "Left columns: {lcols!r}, right columns: {rcols!r}".format(
198 lshape=left.shape,
199 rshape=right.shape,
200 lcols=left.columns,
201 rcols=right.columns,
202 )
255 "Left columns: {lcols!r}, right columns: {rcols!r}"
256 ).format(
257 lshape=left.shape, rshape=right.shape, lcols=left.columns, rcols=right.columns
203258 )
204259
205260 if check_like:
216271 assert_geoseries_equal(
217272 left[col],
218273 right[col],
274 normalize=normalize,
219275 check_dtype=check_dtype,
220276 check_less_precise=check_less_precise,
221277 check_geom_type=check_geom_type,
0 {
1 "type": "FeatureCollection",
2 "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
3
4 "features": [
5 { "type": "Feature", "properties": { "Name": "Null Geometry" }, "geometry": null },
6 { "type": "Feature", "properties": { "Name": "SF to NY" }, "geometry": { "type": "LineString", "coordinates": [ [ -122.4051293283311, 37.786780113640894 ], [ -73.859832357849271, 40.487594916296196 ] ] } }
7 ]
8 }
0 {"type": "FeatureCollection", "features": [{"id": "9", "type": "Feature", "properties": {"acres": 4.96074455173779, "idx": 9, "value": 2}, "geometry": {"type": "Polygon", "coordinates": [[[-95.58937565036604, 60.755964062925905], [-95.58937565036604, 60.75598209180554], [-95.58936454178152, 60.75598209180555], [-95.58936454178152, 60.75599110624536], [-95.58935343319699, 60.75599110624537], [-95.58934232461245, 60.75599110624537], [-95.58934232461245, 60.75600012068519], [-95.58933121602794, 60.75600012068519], [-95.58933121602794, 60.756009135125026], [-95.5893201074434, 60.75600913512501], [-95.5893201074434, 60.75601814956483], [-95.58930899885887, 60.75601814956484], [-95.58929789027435, 60.75601814956484], [-95.58929789027435, 60.756027164004664], [-95.58928678168982, 60.756027164004664], [-95.58927567310528, 60.756027164004664], [-95.58927567310528, 60.75603617844449], [-95.58926456452075, 60.75603617844449], [-95.58926456452075, 60.756045192884315], [-95.5892534559362, 60.75604519288431], [-95.5892423473517, 60.7560451928843], [-95.5892423473517, 60.75605420732413], [-95.58923123876716, 60.75605420732413], [-95.58923123876716, 60.75607223620378], [-95.58922013018262, 60.75607223620377], [-95.58922013018262, 60.7560812506436], [-95.58920902159808, 60.7560812506436], [-95.58920902159808, 60.756099279523234], [-95.58919791301358, 60.756099279523234], [-95.58919791301358, 60.756117308402885], [-95.58918680442903, 60.756117308402885], [-95.58918680442903, 60.75612632284271], [-95.5891756958445, 60.75612632284271], [-95.5891756958445, 60.75614435172235], [-95.58916458725996, 60.756144351722334], [-95.58916458725996, 60.756162380602], [-95.58915347867546, 60.756162380602], [-95.58915347867546, 60.75617139504182], [-95.58914237009091, 60.75617139504182], [-95.58914237009091, 60.75618942392147], [-95.58913126150641, 60.75618942392147], [-95.58913126150641, 60.75621646724094], [-95.58912015292186, 60.75621646724094], [-95.58912015292186, 60.75625252500023], [-95.58910904433733, 60.75625252500023], [-95.58910904433733, 60.756279568319705], [-95.58909793575279, 60.756279568319705], [-95.58909793575279, 60.756288582759524], [-95.58908682716829, 60.75628858275951], [-95.58908682716829, 60.756306611639175], [-95.58907571858374, 60.75630661163917], [-95.58907571858374, 60.75632464051881], [-95.58906460999921, 60.75632464051881], [-95.58906460999921, 60.75633365495864], [-95.58905350141468, 60.75633365495864], [-95.58905350141468, 60.756351683838275], [-95.58904239283017, 60.756351683838275], [-95.58904239283017, 60.75636971271793], [-95.58903128424562, 60.75636971271793], [-95.58903128424562, 60.756387741597564], [-95.58902017566109, 60.75638774159757], [-95.58902017566109, 60.75639675603739], [-95.58900906707656, 60.7563967560374], [-95.58900906707656, 60.756414784917034], [-95.58899795849204, 60.756414784917034], [-95.58899795849204, 60.75643281379669], [-95.58898684990751, 60.7564328137967], [-95.58898684990751, 60.756441828236504], [-95.58897574132297, 60.75644182823651], [-95.58897574132297, 60.75645985711615], [-95.58896463273845, 60.75645985711616], [-95.58896463273845, 60.75648690043562], [-95.58895352415392, 60.75648690043561], [-95.58895352415392, 60.75679339138959], [-95.58894241556939, 60.756793391389586], [-95.58894241556939, 60.75682043470906], [-95.58893130698488, 60.756820434709056], [-95.58893130698488, 60.756829449148874], [-95.58892019840034, 60.756829449148874], [-95.58892019840034, 60.75684747802852], [-95.5889090898158, 60.756847478028526], [-95.5889090898158, 60.75686550690818], [-95.58889798123127, 60.75686550690817], [-95.58889798123127, 60.756874521348], [-95.58888687264673, 60.75687452134798], [-95.58888687264673, 60.75689255022763], [-95.58887576406222, 60.75689255022763], [-95.58887576406222, 60.75691057910728], [-95.58886465547768, 60.756910579107284], [-95.58886465547768, 60.75692860798693], [-95.58885354689315, 60.75692860798692], [-95.58885354689315, 60.756937622426754], [-95.5888424383086, 60.75693762242674], [-95.5888424383086, 60.7569556513064], [-95.5888313297241, 60.756955651306406], [-95.5888313297241, 60.75697368018604], [-95.58882022113956, 60.75697368018604], [-95.58882022113956, 60.756982694625854], [-95.58880911255503, 60.756982694625854], [-95.58880911255503, 60.75700072350551], [-95.58879800397048, 60.75700072350551], [-95.58879800397048, 60.75702776682498], [-95.58878689538598, 60.75702776682499], [-95.58878689538598, 60.757063824584264], [-95.58877578680143, 60.75706382458427], [-95.58877578680143, 60.75707283902409], [-95.58876467821693, 60.7570728390241], [-95.58876467821693, 60.7570818534639], [-95.58875356963239, 60.757081853463916], [-95.58875356963239, 60.75709086790375], [-95.58874246104786, 60.75709086790374], [-95.58873135246331, 60.757090867903734], [-95.58873135246331, 60.75709988234357], [-95.58870913529427, 60.75709988234356], [-95.58869802670974, 60.75709988234356], [-95.58869802670974, 60.75710889678338], [-95.58845363785008, 60.757108896783386], [-95.58844252926555, 60.75710889678338], [-95.58844252926555, 60.757117911223204], [-95.58843142068103, 60.75711791122322], [-95.5884203120965, 60.75711791122322], [-95.5884203120965, 60.75712692566304], [-95.58840920351196, 60.75712692566302], [-95.58840920351196, 60.757135940102856], [-95.58837587775838, 60.757135940102856], [-95.58836476917384, 60.75713594010286], [-95.58836476917384, 60.757144954542674], [-95.58828700908214, 60.75714495454267], [-95.5882759004976, 60.75714495454267], [-95.5882759004976, 60.7571539689825], [-95.58820924899044, 60.7571539689825], [-95.58820924899044, 60.757144954542674], [-95.58819814040592, 60.75714495454267], [-95.58819814040592, 60.757135940102856], [-95.58818703182139, 60.757135940102856], [-95.58818703182139, 60.75712692566304], [-95.58817592323685, 60.75712692566303], [-95.58817592323685, 60.757117911223204], [-95.58816481465232, 60.75711791122322], [-95.58816481465232, 60.75710889678338], [-95.58815370606777, 60.75710889678338], [-95.58815370606777, 60.75709086790374], [-95.58814259748327, 60.75709086790374], [-95.58814259748327, 60.757072839024104], [-95.58813148889872, 60.7570728390241], [-95.58813148889872, 60.75705481014444], [-95.5881203803142, 60.75705481014444], [-95.5881203803142, 60.75660408815332], [-95.58810927172965, 60.75660408815332], [-95.58810927172965, 60.75658605927365], [-95.58809816314515, 60.756586059273666], [-95.58809816314515, 60.75656803039402], [-95.5880870545606, 60.75656803039402], [-95.5880870545606, 60.7565590159542], [-95.58807594597607, 60.75655901595421], [-95.58807594597607, 60.75655000151438], [-95.58806483739156, 60.75655000151438], [-95.58806483739156, 60.756540987074565], [-95.58805372880703, 60.75654098707455], [-95.58805372880703, 60.75653197263474], [-95.58804262022248, 60.75653197263473], [-95.58804262022248, 60.75652295819491], [-95.58802040305343, 60.75652295819491], [-95.58802040305343, 60.75651394375508], [-95.58799818588436, 60.75651394375509], [-95.58799818588436, 60.75650492931526], [-95.58797596871531, 60.75650492931526], [-95.58797596871531, 60.756495914875444], [-95.58792042579266, 60.75649591487544], [-95.58792042579266, 60.75648690043562], [-95.58789820862361, 60.75648690043561], [-95.58789820862361, 60.75647788599579], [-95.58787599145457, 60.75647788599579], [-95.58787599145457, 60.75646887155597], [-95.58786488287002, 60.75646887155597], [-95.58786488287002, 60.756459857116155], [-95.58784266570096, 60.75645985711616], [-95.58784266570096, 60.75645084267633], [-95.58782044853191, 60.75645084267634], [-95.58782044853191, 60.75644182823651], [-95.58780933994737, 60.75644182823651], [-95.58780933994737, 60.75643281379668], [-95.5877871227783, 60.756432813796685], [-95.5877871227783, 60.75642379935685], [-95.58776490560925, 60.75642379935686], [-95.58776490560925, 60.75641478491704], [-95.58775379702472, 60.756414784917034], [-95.58775379702472, 60.756405770477215], [-95.58774268844017, 60.75640577047721], [-95.58774268844017, 60.75639675603739], [-95.58773157985567, 60.75639675603738], [-95.58773157985567, 60.75638774159756], [-95.58772047127113, 60.75638774159757], [-95.58772047127113, 60.756378727157745], [-95.58770936268662, 60.756378727157745], [-95.58770936268662, 60.756360698278094], [-95.58769825410208, 60.756360698278094], [-95.58769825410208, 60.75634266939846], [-95.58768714551755, 60.75634266939845], [-95.58768714551755, 60.7563246405188], [-95.587676036933, 60.756324640518805], [-95.587676036933, 60.75631562607899], [-95.5876649283485, 60.75631562607898], [-95.5876649283485, 60.756297597199335], [-95.58765381976396, 60.75629759719934], [-95.58765381976396, 60.7562795683197], [-95.58764271117943, 60.7562795683197], [-95.58764271117943, 60.756261539440054], [-95.58763160259488, 60.75626153944006], [-95.58763160259488, 60.75624351056042], [-95.58762049401038, 60.75624351056042], [-95.58762049401038, 60.7558108174489], [-95.58763160259488, 60.755810817448925], [-95.58763160259488, 60.75578377412945], [-95.58764271117943, 60.755783774129455], [-95.58764271117943, 60.755765745249796], [-95.58765381976396, 60.75576574524981], [-95.58765381976396, 60.75575673080998], [-95.5876649283485, 60.755756730809985], [-95.5876649283485, 60.75574771637016], [-95.587676036933, 60.75574771637016], [-95.587676036933, 60.755729687490515], [-95.58768714551755, 60.755729687490515], [-95.58769825410208, 60.755729687490515], [-95.58769825410208, 60.755720673050696], [-95.58770936268662, 60.75572067305069], [-95.58770936268662, 60.75571165861086], [-95.58772047127113, 60.755711658610856], [-95.58772047127113, 60.75570264417103], [-95.58773157985567, 60.755702644171045], [-95.58774268844017, 60.75570264417104], [-95.58774268844017, 60.75569362973122], [-95.58775379702472, 60.75569362973121], [-95.58777601419379, 60.75569362973122], [-95.58777601419379, 60.75568461529139], [-95.58780933994737, 60.75568461529141], [-95.58780933994737, 60.75569362973122], [-95.58783155711644, 60.75569362973123], [-95.58783155711644, 60.75570264417104], [-95.58785377428549, 60.755702644171045], [-95.58785377428549, 60.75571165861086], [-95.58787599145457, 60.75571165861086], [-95.58787599145457, 60.75572067305069], [-95.58789820862361, 60.75572067305069], [-95.58789820862361, 60.75572968749052], [-95.58790931720813, 60.75572968749053], [-95.58790931720813, 60.75573870193034], [-95.58793153437719, 60.75573870193034], [-95.58793153437719, 60.75574771637016], [-95.58795375154625, 60.755747716370166], [-95.58795375154625, 60.75575673080996], [-95.58797596871531, 60.75575673080998], [-95.58797596871531, 60.755765745249796], [-95.58798707729986, 60.7557657452498], [-95.58798707729986, 60.75577475968964], [-95.5880092944689, 60.755774759689636], [-95.5880092944689, 60.75578377412945], [-95.58803151163798, 60.75578377412945], [-95.58803151163798, 60.75579278856928], [-95.58804262022248, 60.75579278856928], [-95.58804262022248, 60.75580180300909], [-95.58806483739156, 60.755801803009085], [-95.58806483739156, 60.755810817448925], [-95.5880870545606, 60.75581081744891], [-95.5880870545606, 60.75581983188873], [-95.58832033483573, 60.75581983188873], [-95.58832033483573, 60.75581081744892], [-95.58833144342026, 60.75581081744891], [-95.58833144342026, 60.75580180300909], [-95.58834255200479, 60.75580180300909], [-95.58834255200479, 60.75579278856928], [-95.58835366058933, 60.75579278856927], [-95.58835366058933, 60.75576574524981], [-95.58836476917384, 60.7557657452498], [-95.58836476917384, 60.75573870193034], [-95.58837587775838, 60.75573870193033], [-95.58837587775838, 60.75568461529141], [-95.58836476917384, 60.75568461529141], [-95.58836476917384, 60.755666586411756], [-95.58835366058933, 60.75566658641174], [-95.58835366058933, 60.75565757197193], [-95.58834255200479, 60.75565757197194], [-95.58834255200479, 60.755648557532105], [-95.58833144342026, 60.7556485575321], [-95.58833144342026, 60.755639543092286], [-95.58832033483573, 60.755639543092286], [-95.58832033483573, 60.75563052865246], [-95.58830922625121, 60.75563052865246], [-95.58830922625121, 60.755621514212635], [-95.58828700908214, 60.75562151421264], [-95.58828700908214, 60.75561249977282], [-95.58826479191309, 60.75561249977282], [-95.58826479191309, 60.755603485333], [-95.58825368332856, 60.755603485333], [-95.58825368332856, 60.75559447089318], [-95.58824257474404, 60.75559447089316], [-95.58824257474404, 60.75558545645335], [-95.5882314661595, 60.755585456453346], [-95.5882314661595, 60.75557644201353], [-95.58822035757497, 60.75557644201353], [-95.58822035757497, 60.75556742757371], [-95.58820924899044, 60.75556742757369], [-95.58820924899044, 60.75554939869405], [-95.58819814040592, 60.75554939869406], [-95.58819814040592, 60.75553136981441], [-95.58818703182139, 60.75553136981442], [-95.58818703182139, 60.75551334093476], [-95.58817592323685, 60.755513340934776], [-95.58817592323685, 60.75550432649495], [-95.58816481465232, 60.75550432649495], [-95.58816481465232, 60.7554862976153], [-95.58815370606777, 60.75548629761529], [-95.58815370606777, 60.75546826873566], [-95.58814259748327, 60.75546826873565], [-95.58814259748327, 60.75545023985601], [-95.58813148889872, 60.755450239855996], [-95.58813148889872, 60.755432210976366], [-95.5881203803142, 60.755432210976366], [-95.5881203803142, 60.755260936619734], [-95.58813148889872, 60.75526093661973], [-95.58813148889872, 60.755233893300264], [-95.58814259748327, 60.75523389330026], [-95.58814259748327, 60.75521586442062], [-95.58815370606777, 60.75521586442063], [-95.58815370606777, 60.755206849980794], [-95.58816481465232, 60.755206849980794], [-95.58816481465232, 60.75518882110116], [-95.58817592323685, 60.75518882110116], [-95.58817592323685, 60.75517079222149], [-95.58818703182139, 60.7551707922215], [-95.58818703182139, 60.75516177778168], [-95.58819814040592, 60.75516177778167], [-95.58819814040592, 60.755143748902036], [-95.58820924899044, 60.755143748902036], [-95.58820924899044, 60.75492740234629], [-95.58822035757497, 60.7549274023463], [-95.58822035757497, 60.754909373466646], [-95.5882314661595, 60.75490937346664], [-95.5882314661595, 60.754891344586994], [-95.58824257474404, 60.754891344587], [-95.58824257474404, 60.75488233014718], [-95.58825368332856, 60.75488233014717], [-95.58825368332856, 60.754873315707364], [-95.58826479191309, 60.75487331570736], [-95.5882759004976, 60.75487331570735], [-95.5882759004976, 60.754864301267524], [-95.58830922625121, 60.75486430126753], [-95.58830922625121, 60.75487331570735], [-95.58833144342026, 60.754873315707364], [-95.58833144342026, 60.754882330147176], [-95.58835366058933, 60.75488233014717], [-95.58835366058933, 60.754891344586994], [-95.58837587775838, 60.754891344586994], [-95.58837587775838, 60.754900359026834], [-95.58839809492746, 60.75490035902682], [-95.58839809492746, 60.754909373466646], [-95.58840920351196, 60.75490937346664], [-95.58840920351196, 60.75491838790648], [-95.58843142068103, 60.75491838790648], [-95.58843142068103, 60.7549274023463], [-95.58845363785008, 60.75492740234629], [-95.58845363785008, 60.75493641678613], [-95.58847585501913, 60.754936416786116], [-95.58847585501913, 60.754945431225934], [-95.58848696360367, 60.75494543122592], [-95.58848696360367, 60.75495444566575], [-95.5884980721882, 60.754954445665746], [-95.5884980721882, 60.754963460105586], [-95.58850918077275, 60.754963460105586], [-95.58850918077275, 60.754972474545404], [-95.58852028935725, 60.754972474545404], [-95.58852028935725, 60.75498148898524], [-95.5885313979418, 60.75498148898522], [-95.5885313979418, 60.754999517864874], [-95.58854250652632, 60.75499951786488], [-95.58854250652632, 60.75501754674452], [-95.58855361511087, 60.75501754674452], [-95.58855361511087, 60.755026561184344], [-95.5885647236954, 60.75502656118434], [-95.5885647236954, 60.75503557562417], [-95.58857583227991, 60.75503557562416], [-95.58857583227991, 60.75504459006399], [-95.58858694086445, 60.75504459006399], [-95.58858694086445, 60.755053604503814], [-95.58859804944898, 60.755053604503814], [-95.58859804944898, 60.755062618943626], [-95.58862026661804, 60.755062618943626], [-95.58862026661804, 60.75507163338346], [-95.58864248378708, 60.75507163338346], [-95.58864248378708, 60.75508064782328], [-95.58865359237161, 60.75508064782327], [-95.58865359237161, 60.75508966226311], [-95.58867580954069, 60.75508966226311], [-95.58867580954069, 60.75509867670293], [-95.58869802670974, 60.75509867670293], [-95.58869802670974, 60.75510769114275], [-95.58870913529427, 60.75510769114275], [-95.58870913529427, 60.75511670558255], [-95.58873135246331, 60.755116705582566], [-95.58873135246331, 60.755125720022384], [-95.58875356963239, 60.75512572002238], [-95.58875356963239, 60.75513473446221], [-95.58880911255503, 60.75513473446222], [-95.58880911255503, 60.755143748902036], [-95.5888313297241, 60.755143748902036], [-95.5888313297241, 60.755152763341854], [-95.58885354689315, 60.75515276334186], [-95.58885354689315, 60.755170792221506], [-95.58886465547768, 60.75517079222149], [-95.58886465547768, 60.75524290774008], [-95.58885354689315, 60.75524290774008], [-95.58885354689315, 60.75526093661973], [-95.5888424383086, 60.75526093661973], [-95.5888424383086, 60.75526995105955], [-95.5888313297241, 60.75526995105955], [-95.58882022113956, 60.755269951059546], [-95.58882022113956, 60.75527896549938], [-95.58862026661804, 60.755278965499365], [-95.58860915803352, 60.75527896549937], [-95.58860915803352, 60.7552879799392], [-95.58859804944898, 60.7552879799392], [-95.58858694086445, 60.75528797993919], [-95.58858694086445, 60.75529699437902], [-95.58857583227991, 60.755296994379016], [-95.58857583227991, 60.75530600881885], [-95.5885647236954, 60.75530600881885], [-95.5885647236954, 60.755324037698486], [-95.58855361511087, 60.75532403769849], [-95.58855361511087, 60.755351081017956], [-95.58854250652632, 60.75535108101796], [-95.58854250652632, 60.755432210976366], [-95.58855361511087, 60.755432210976366], [-95.58855361511087, 60.75544122541619], [-95.5885647236954, 60.755441225416185], [-95.5885647236954, 60.755459254295836], [-95.58857583227991, 60.755459254295836], [-95.58857583227991, 60.75547728317547], [-95.58858694086445, 60.75547728317548], [-95.58858694086445, 60.7554862976153], [-95.58859804944898, 60.755486297615285], [-95.58859804944898, 60.75550432649495], [-95.58860915803352, 60.755504326494936], [-95.58860915803352, 60.75552235537458], [-95.58862026661804, 60.75552235537459], [-95.58862026661804, 60.75556742757369], [-95.58863137520257, 60.7555674275737], [-95.58863137520257, 60.755585456453346], [-95.58864248378708, 60.75558545645334], [-95.58864248378708, 60.755603485333], [-95.58865359237161, 60.755603485333], [-95.58865359237161, 60.75562151421265], [-95.58866470095614, 60.75562151421264], [-95.58866470095614, 60.75563052865246], [-95.58867580954069, 60.75563052865245], [-95.58867580954069, 60.75563954309229], [-95.5886869181252, 60.755639543092286], [-95.5886869181252, 60.755648557532105], [-95.58869802670974, 60.755648557532105], [-95.58869802670974, 60.75565757197193], [-95.58870913529427, 60.75565757197193], [-95.58870913529427, 60.75566658641174], [-95.58873135246331, 60.75566658641175], [-95.58873135246331, 60.75567560085157], [-95.58875356963239, 60.75567560085157], [-95.58875356963239, 60.75568461529141], [-95.58895352415392, 60.755684615291415], [-95.58895352415392, 60.75569362973122], [-95.58897574132297, 60.755693629731226], [-95.58897574132297, 60.75570264417104], [-95.58898684990751, 60.755702644171045], [-95.58898684990751, 60.75571165861086], [-95.58900906707656, 60.755711658610856], [-95.58900906707656, 60.75572067305069], [-95.58903128424562, 60.755720673050696], [-95.58903128424562, 60.755729687490515], [-95.58904239283017, 60.755729687490515], [-95.58904239283017, 60.75573870193034], [-95.58906460999921, 60.75573870193034], [-95.58906460999921, 60.75574771637015], [-95.58908682716829, 60.75574771637015], [-95.58908682716829, 60.755756730809985], [-95.58909793575279, 60.75575673080998], [-95.58909793575279, 60.7557657452498], [-95.58912015292186, 60.7557657452498], [-95.58912015292186, 60.755774759689636], [-95.58913126150641, 60.75577475968963], [-95.58913126150641, 60.75578377412944], [-95.58915347867546, 60.75578377412944], [-95.58915347867546, 60.755792788569266], [-95.58916458725996, 60.75579278856928], [-95.58916458725996, 60.755801803009085], [-95.58918680442903, 60.755801803009085], [-95.58918680442903, 60.75581081744891], [-95.58920902159808, 60.75581081744892], [-95.58920902159808, 60.75581983188873], [-95.58922013018262, 60.75581983188873], [-95.58922013018262, 60.75582884632856], [-95.5892423473517, 60.75582884632856], [-95.5892423473517, 60.75583786076839], [-95.5892534559362, 60.755837860768395], [-95.5892534559362, 60.7558468752082], [-95.58927567310528, 60.75584687520821], [-95.58927567310528, 60.755855889648025], [-95.58928678168982, 60.755855889648025], [-95.58928678168982, 60.75586490408786], [-95.58930899885887, 60.75586490408785], [-95.58930899885887, 60.755873918527676], [-95.5893201074434, 60.75587391852767], [-95.5893201074434, 60.75588293296748], [-95.58934232461245, 60.755882932967474], [-95.58934232461245, 60.75589194740732], [-95.58936454178152, 60.755891947407314], [-95.58936454178152, 60.755900961847146], [-95.58937565036604, 60.755900961847146], [-95.58937565036604, 60.755964062925905]]]}}]}
0 {"type": "FeatureCollection", "features": [{"id": "77", "type": "Feature", "properties": {"acres": 3.859654188573176, "idx": 77, "value": 1}, "geometry": {"type": "Polygon", "coordinates": [[[-95.58719836779824, 60.755928005166616], [-95.5871872592137, 60.7559280051666], [-95.5871872592137, 60.75552235537458], [-95.58717615062918, 60.75552235537459], [-95.58717615062918, 60.75468401247108], [-95.58716504204466, 60.75468401247108], [-95.58716504204466, 60.75448569479499], [-95.5871761506293, 60.75448569479499], [-95.5871872592137, 60.75448569479498], [-95.5871872592137, 60.754494709234805], [-95.58719836779824, 60.754494709234805], [-95.58719836779824, 60.754503723674624], [-95.58720947638278, 60.754503723674624], [-95.58720947638278, 60.75451273811445], [-95.5872205849673, 60.75451273811445], [-95.5872205849673, 60.75452175255427], [-95.58723169355183, 60.754521752554275], [-95.58723169355183, 60.75453076699409], [-95.58724280213636, 60.75453076699409], [-95.58724280213636, 60.75453978143392], [-95.5872539107209, 60.75453978143391], [-95.5872539107209, 60.75454879587373], [-95.5872650193054, 60.75454879587374], [-95.5872650193054, 60.754557810313564], [-95.58727612788995, 60.75455781031357], [-95.58727612788995, 60.7545758391932], [-95.58728723647448, 60.7545758391932], [-95.58728723647448, 60.75461189695249], [-95.58729834505903, 60.7546118969525], [-95.58729834505903, 60.75462992583214], [-95.58730945364353, 60.75462992583214], [-95.58730945364353, 60.754647954711785], [-95.58732056222807, 60.754647954711785], [-95.58732056222807, 60.75466598359144], [-95.5873316708126, 60.75466598359144], [-95.5873316708126, 60.75468401247107], [-95.58734277939715, 60.754684012471074], [-95.58734277939715, 60.7546930269109], [-95.58735388798165, 60.75469302691089], [-95.58735388798165, 60.754711055790544], [-95.5873649965662, 60.754711055790544], [-95.5873649965662, 60.75472908467019], [-95.5873761051507, 60.754729084670196], [-95.5873761051507, 60.75474711354984], [-95.58738721373524, 60.75474711354984], [-95.58738721373524, 60.75475612798965], [-95.58739832231977, 60.75475612798965], [-95.58739832231977, 60.754765142429484], [-95.58740943090432, 60.75476514242948], [-95.58740943090432, 60.7547741568693], [-95.58742053948882, 60.7547741568693], [-95.58742053948882, 60.75478317130912], [-95.58743164807336, 60.75478317130912], [-95.58743164807336, 60.75479218574895], [-95.58745386524244, 60.75479218574894], [-95.58745386524244, 60.75480120018877], [-95.58747608241148, 60.75480120018877], [-95.58747608241148, 60.75481021462859], [-95.58748719099601, 60.7548102146286], [-95.58748719099601, 60.75481922906841], [-95.58749829958055, 60.75481922906842], [-95.58749829958055, 60.75482824350824], [-95.58750940816509, 60.754828243508236], [-95.58750940816509, 60.75483725794807], [-95.5875205167496, 60.75483725794807], [-95.5875205167496, 60.75484627238787], [-95.58753162533414, 60.75484627238789], [-95.58753162533414, 60.75486430126754], [-95.58754273391865, 60.75486430126753], [-95.58754273391865, 60.754882330147176], [-95.58755384250318, 60.75488233014718], [-95.58755384250318, 60.754891344586994], [-95.58756495108771, 60.754891344587], [-95.58756495108771, 60.754900359026834], [-95.58757605967226, 60.75490035902682], [-95.58757605967226, 60.75490937346665], [-95.58758716825677, 60.754909373466646], [-95.58758716825677, 60.75491838790648], [-95.5875982768413, 60.75491838790647], [-95.5875982768413, 60.75492740234629], [-95.58762049401038, 60.75492740234629], [-95.58762049401038, 60.754936416786116], [-95.58769825410208, 60.75493641678611], [-95.58769825410208, 60.7549274023463], [-95.5877093626868, 60.75492740234629], [-95.58773157985567, 60.7549274023463], [-95.58773157985567, 60.75491838790648], [-95.5877426884403, 60.75491838790648], [-95.58775379702472, 60.75491838790647], [-95.58775379702472, 60.75490937346665], [-95.58776490560925, 60.75490937346664], [-95.58776490560925, 60.75490035902683], [-95.58777601419379, 60.75490035902683], [-95.58777601419379, 60.754891344586994], [-95.5877871227783, 60.75489134458701], [-95.5877871227783, 60.75483725794807], [-95.58777601419379, 60.75483725794806], [-95.58777601419379, 60.75481922906842], [-95.58776490560925, 60.75481922906842], [-95.58776490560925, 60.7548102146286], [-95.58775379702472, 60.7548102146286], [-95.58775379702472, 60.75479218574894], [-95.58774268844017, 60.75479218574894], [-95.58774268844017, 60.7547741568693], [-95.58773157985567, 60.75477415686929], [-95.58773157985567, 60.754756127989644], [-95.58772047127113, 60.754756127989644], [-95.58772047127113, 60.75474711354983], [-95.58770936268662, 60.75474711354984], [-95.58770936268662, 60.75472908467019], [-95.58769825410208, 60.754729084670196], [-95.58769825410208, 60.754711055790544], [-95.58768714551755, 60.754711055790544], [-95.58768714551755, 60.7546930269109], [-95.587676036933, 60.7546930269109], [-95.587676036933, 60.75468401247108], [-95.5876649283485, 60.75468401247108], [-95.5876649283485, 60.75466598359144], [-95.58765381976396, 60.754665983591444], [-95.58765381976396, 60.75464795471179], [-95.58764271117943, 60.754647954711785], [-95.58764271117943, 60.75462992583215], [-95.58763160259488, 60.75462992583214], [-95.58763160259488, 60.7546118969525], [-95.58762049401038, 60.75461189695249], [-95.58762049401038, 60.75458485363303], [-95.58763160259488, 60.754584853633034], [-95.58763160259488, 60.75455781031358], [-95.58764271117943, 60.754557810313564], [-95.58764271117943, 60.75453978143393], [-95.58765381976396, 60.75453978143392], [-95.58765381976396, 60.75453076699409], [-95.5876649283485, 60.75453076699409], [-95.5876649283485, 60.75451273811445], [-95.587676036933, 60.754512738114435], [-95.587676036933, 60.7544947092348], [-95.58768714551755, 60.7544947092348], [-95.58768714551755, 60.75448569479498], [-95.58769825410208, 60.75448569479499], [-95.58769825410208, 60.75446766591533], [-95.58770936268662, 60.75446766591532], [-95.58770936268662, 60.75444963703569], [-95.58772047127113, 60.75444963703569], [-95.58772047127113, 60.75444062259586], [-95.58773157985567, 60.754440622595865], [-95.58773157985567, 60.754422593716214], [-95.58774268844017, 60.75442259371622], [-95.58774268844017, 60.754413579276395], [-95.58775379702485, 60.75441357927639], [-95.58776490560925, 60.75441357927639], [-95.58776490560925, 60.754404564836584], [-95.58777601419379, 60.75440456483658], [-95.58777601419379, 60.75439555039674], [-95.58778712277842, 60.754395550396744], [-95.58779823136284, 60.75439555039675], [-95.58779823136284, 60.754386535956925], [-95.5878093399475, 60.75438653595693], [-95.58782044853191, 60.754386535956925], [-95.58782044853191, 60.754377521517114], [-95.58783155711644, 60.754377521517114], [-95.58783155711644, 60.75436850707728], [-95.58784266570109, 60.75436850707729], [-95.58785377428549, 60.75436850707728], [-95.58785377428549, 60.75435949263747], [-95.58786488287015, 60.75435949263747], [-95.58787599145457, 60.75435949263746], [-95.58787599145457, 60.75435047819764], [-95.58788710003908, 60.75435047819763], [-95.58788710003908, 60.75434146375782], [-95.58789820862374, 60.75434146375782], [-95.58790931720813, 60.75434146375782], [-95.58790931720813, 60.754332449318], [-95.58792042579284, 60.754332449317985], [-95.58794264296174, 60.754332449317985], [-95.58794264296174, 60.75432343487817], [-95.58814259748327, 60.754323434878174], [-95.58814259748327, 60.75433244931799], [-95.58816481465232, 60.754332449317985], [-95.58816481465232, 60.75434146375782], [-95.58818703182139, 60.75434146375782], [-95.58818703182139, 60.75435047819764], [-95.58820924899044, 60.754350478197644], [-95.58820924899044, 60.75435949263746], [-95.5882314661595, 60.75435949263746], [-95.5882314661595, 60.75436850707728], [-95.58824257474404, 60.75436850707729], [-95.58824257474404, 60.754377521517114], [-95.58826479191309, 60.75437752151711], [-95.58826479191309, 60.75438653595694], [-95.58828700908214, 60.75438653595692], [-95.58828700908214, 60.754395550396744], [-95.58830922625121, 60.75439555039675], [-95.58830922625121, 60.75440456483658], [-95.58832033483573, 60.75440456483657], [-95.58832033483573, 60.754413579276395], [-95.58833144342026, 60.7544135792764], [-95.58833144342026, 60.754422593716214], [-95.58834255200479, 60.754422593716214], [-95.58834255200479, 60.75443160815605], [-95.58835366058933, 60.75443160815605], [-95.58835366058933, 60.754440622595865], [-95.58836476917384, 60.754440622595865], [-95.58836476917384, 60.75445865147551], [-95.58837587775838, 60.75445865147551], [-95.58837587775838, 60.754476680355154], [-95.58838698634291, 60.75447668035514], [-95.58838698634291, 60.75448569479499], [-95.58839809492746, 60.75448569479499], [-95.58839809492746, 60.7544947092348], [-95.58840920351196, 60.7544947092348], [-95.58840920351196, 60.75450372367462], [-95.5884203120965, 60.754503723674624], [-95.5884203120965, 60.75451273811444], [-95.58843142068103, 60.75451273811444], [-95.58843142068103, 60.75452175255426], [-95.58845363785008, 60.75452175255427], [-95.58845363785008, 60.75453076699409], [-95.58847585501913, 60.75453076699409], [-95.58847585501913, 60.754539781433905], [-95.58848696360367, 60.75453978143391], [-95.58848696360367, 60.75454879587374], [-95.5884980721882, 60.75454879587374], [-95.5884980721882, 60.75455781031357], [-95.58850918077275, 60.75455781031356], [-95.58850918077275, 60.75456682475338], [-95.58852028935725, 60.75456682475338], [-95.58852028935725, 60.7545758391932], [-95.5885313979418, 60.7545758391932], [-95.5885313979418, 60.754593868072845], [-95.58854250652632, 60.754593868072845], [-95.58854250652632, 60.75461189695248], [-95.58855361511087, 60.7546118969525], [-95.58855361511087, 60.75462091139233], [-95.5885647236954, 60.75462091139232], [-95.5885647236954, 60.754629925832134], [-95.58857583227991, 60.754629925832134], [-95.58857583227991, 60.754638940271974], [-95.58858694086445, 60.75463894027197], [-95.58858694086445, 60.754647954711785], [-95.58859804944898, 60.754647954711785], [-95.58859804944898, 60.75465696915161], [-95.58862026661804, 60.75465696915162], [-95.58862026661804, 60.754665983591444], [-95.58864248378708, 60.754665983591444], [-95.58864248378708, 60.754674998031255], [-95.58865359237161, 60.75467499803125], [-95.58865359237161, 60.75468401247108], [-95.58867580954069, 60.754684012471074], [-95.58867580954069, 60.75469302691089], [-95.58869802670974, 60.75469302691089], [-95.58869802670974, 60.75470204135073], [-95.58870913529427, 60.754702041350725], [-95.58870913529427, 60.754711055790544], [-95.58873135246331, 60.75471105579055], [-95.58873135246331, 60.75472007023037], [-95.58875356963239, 60.75472007023037], [-95.58875356963239, 60.754729084670196], [-95.58880911255503, 60.754729084670196], [-95.58880911255503, 60.75473809911001], [-95.5888313297241, 60.75473809911002], [-95.5888313297241, 60.75474711354983], [-95.58885354689315, 60.75474711354983], [-95.58885354689315, 60.75475612798965], [-95.58887576406222, 60.754756127989644], [-95.58887576406222, 60.75476514242948], [-95.58889798123127, 60.754765142429484], [-95.58889798123127, 60.7547741568693], [-95.5889090898158, 60.75477415686931], [-95.5889090898158, 60.75478317130913], [-95.58893130698488, 60.75478317130912], [-95.58893130698488, 60.75479218574894], [-95.58895352415392, 60.75479218574895], [-95.58895352415392, 60.754801200188766], [-95.58913126150641, 60.75480120018877], [-95.58913126150641, 60.754792185748954], [-95.58914237009104, 60.75479218574895], [-95.58915347867546, 60.754792185748954], [-95.58915347867546, 60.75478317130914], [-95.58916458725996, 60.75478317130913], [-95.58916458725996, 60.754774156869296], [-95.58917569584463, 60.75477415686931], [-95.58918680442903, 60.7547741568693], [-95.58918680442903, 60.75476514242948], [-95.5891979130137, 60.754765142429484], [-95.58920902159808, 60.754765142429484], [-95.58920902159808, 60.75475612798965], [-95.58922013018262, 60.754756127989666], [-95.58922013018262, 60.75474711354983], [-95.58923123876728, 60.75474711354983], [-95.5892423473517, 60.75474711354984], [-95.5892423473517, 60.754738099110014], [-95.58925345593639, 60.754738099110014], [-95.58927567310528, 60.754738099110014], [-95.58927567310528, 60.754729084670196], [-95.58944230187322, 60.75472908467019], [-95.58944230187322, 60.75473809911002], [-95.58943119328869, 60.754738099110014], [-95.58943119328869, 60.75475612798966], [-95.58942008470416, 60.75475612798965], [-95.58942008470416, 60.754774156869296], [-95.58940897611964, 60.754774156869296], [-95.58940897611964, 60.754792185748954], [-95.5893978675351, 60.754792185748954], [-95.5893978675351, 60.754801200188766], [-95.58938675895057, 60.754801200188766], [-95.58938675895057, 60.75482824350824], [-95.58937565036604, 60.75482824350824], [-95.58937565036604, 60.75483725794807], [-95.58936454178152, 60.75483725794807], [-95.58936454178152, 60.754855286827706], [-95.58935343319699, 60.754855286827706], [-95.58935343319699, 60.754873315707364], [-95.58934232461245, 60.75487331570736], [-95.58934232461245, 60.754891344587], [-95.58933121602794, 60.75489134458701], [-95.58933121602794, 60.754909373466646], [-95.5893201074434, 60.75490937346665], [-95.5893201074434, 60.75491838790648], [-95.58930899885887, 60.75491838790648], [-95.58930899885887, 60.75493641678611], [-95.58929789027435, 60.754936416786116], [-95.58929789027435, 60.75495444566575], [-95.58928678168982, 60.75495444566575], [-95.58928678168982, 60.7549724745454], [-95.58927567310528, 60.754972474545404], [-95.58927567310528, 60.754990503425056], [-95.58926456452075, 60.75499050342504], [-95.58926456452075, 60.755008532304686], [-95.5892534559362, 60.755008532304686], [-95.5892534559362, 60.75501754674452], [-95.5892423473517, 60.75501754674452], [-95.5892423473517, 60.75503557562416], [-95.58923123876716, 60.75503557562416], [-95.58923123876716, 60.75505360450382], [-95.58922013018262, 60.7550536045038], [-95.58922013018262, 60.75506261894363], [-95.58920902159808, 60.75506261894363], [-95.58920902159808, 60.75507163338345], [-95.58919791301358, 60.755071633383466], [-95.58919791301358, 60.75508064782327], [-95.58918680442903, 60.75508064782327], [-95.58918680442903, 60.7550896622631], [-95.5891756958445, 60.75508966226311], [-95.5891756958445, 60.75510769114275], [-95.58916458725996, 60.75510769114275], [-95.58916458725996, 60.755116705582566], [-95.58915347867546, 60.75511670558255], [-95.58915347867546, 60.755125720022384], [-95.58914237009091, 60.75512572002239], [-95.58914237009091, 60.755143748902036], [-95.58913126150641, 60.75514374890204], [-95.58913126150641, 60.755152763341854], [-95.58912015292186, 60.75515276334186], [-95.58912015292186, 60.75516177778168], [-95.58910904433733, 60.75516177778169], [-95.58910904433733, 60.7551707922215], [-95.58909793575279, 60.755170792221506], [-95.58909793575279, 60.75517980666133], [-95.58908682716829, 60.75517980666133], [-95.58908682716829, 60.75519783554097], [-95.58907571858374, 60.755197835540976], [-95.58907571858374, 60.7552068499808], [-95.58906460999921, 60.7552068499808], [-95.58906460999921, 60.75521586442063], [-95.58905350141468, 60.755215864420634], [-95.58905350141468, 60.75522487886044], [-95.58904239283017, 60.75522487886044], [-95.58904239283017, 60.75524290774008], [-95.58903128424562, 60.75524290774008], [-95.58903128424562, 60.75525192217991], [-95.58902017566109, 60.75525192217991], [-95.58902017566109, 60.75526093661975], [-95.58900906707656, 60.75526093661973], [-95.58900906707656, 60.75527896549938], [-95.58899795849204, 60.75527896549938], [-95.58899795849204, 60.755287979939204], [-95.58898684990751, 60.75528797993919], [-95.58898684990751, 60.75529699437903], [-95.58897574132297, 60.75529699437902], [-95.58897574132297, 60.75530600881885], [-95.58896463273845, 60.75530600881885], [-95.58896463273845, 60.7553240376985], [-95.58895352415392, 60.75532403769849], [-95.58895352415392, 60.75533305213831], [-95.58894241556939, 60.75533305213831], [-95.58894241556939, 60.75534206657814], [-95.58893130698488, 60.75534206657813], [-95.58893130698488, 60.75536009545778], [-95.58892019840034, 60.75536009545778], [-95.58892019840034, 60.75536910989761], [-95.5889090898158, 60.755369109897615], [-95.5889090898158, 60.755378124337426], [-95.58889798123127, 60.75537812433742], [-95.58889798123127, 60.755387138777245], [-95.58888687264673, 60.755387138777245], [-95.58888687264673, 60.75539615321708], [-95.58887576406222, 60.75539615321708], [-95.58887576406222, 60.755414182096715], [-95.58886465547768, 60.755414182096715], [-95.58886465547768, 60.75542319653654], [-95.58885354689315, 60.755423196536555], [-95.58885354689315, 60.755441225416185], [-95.5888424383086, 60.755441225416185], [-95.5888424383086, 60.75545925429584], [-95.5888313297241, 60.755459254295836], [-95.5888313297241, 60.755477283175466], [-95.58882022113956, 60.755477283175466], [-95.58882022113956, 60.75549531205512], [-95.58880911255503, 60.755495312055125], [-95.58880911255503, 60.75551334093477], [-95.58879800397048, 60.75551334093477], [-95.58879800397048, 60.75554939869406], [-95.58878689538598, 60.75554939869405], [-95.58878689538598, 60.755594470893165], [-95.58879800397048, 60.755594470893165], [-95.58879800397048, 60.755603485333], [-95.58880911255503, 60.755603485333], [-95.58880911255503, 60.75561249977282], [-95.58882022113956, 60.755612499772816], [-95.58882022113956, 60.75562151421263], [-95.5888313297241, 60.75562151421264], [-95.5888313297241, 60.755630528652446], [-95.58885354689315, 60.75563052865245], [-95.58885354689315, 60.755639543092286], [-95.58886465547768, 60.75563954309228], [-95.58886465547768, 60.755648557532105], [-95.58888687264673, 60.755648557532105], [-95.58888687264673, 60.75565757197192], [-95.5889090898158, 60.75565757197193], [-95.5889090898158, 60.755666586411756], [-95.58892019840034, 60.755666586411756], [-95.58892019840034, 60.75567560085157], [-95.58894241556939, 60.75567560085157], [-95.58894241556939, 60.75568461529141], [-95.58876467821693, 60.75568461529139], [-95.58876467821693, 60.755675600851575], [-95.58875356963239, 60.75567560085157], [-95.58875356963239, 60.755666586411756], [-95.58874246104786, 60.755666586411756], [-95.58874246104786, 60.75565757197192], [-95.58873135246331, 60.75565757197193], [-95.58873135246331, 60.755639543092286], [-95.58872024387881, 60.75563954309229], [-95.58872024387881, 60.75562151421264], [-95.58870913529427, 60.75562151421264], [-95.58870913529427, 60.75554038425424], [-95.58872024387881, 60.75554038425425], [-95.58872024387881, 60.755522355374595], [-95.58873135246331, 60.75552235537459], [-95.58873135246331, 60.755513340934776], [-95.58874246104786, 60.75551334093476], [-95.58874246104786, 60.75549531205512], [-95.58875356963239, 60.75549531205512], [-95.58875356963239, 60.75547728317548], [-95.58876467821693, 60.75547728317547], [-95.58876467821693, 60.755468268735655], [-95.58877578680143, 60.755468268735655], [-95.58877578680143, 60.755441225416185], [-95.58878689538598, 60.75544122541619], [-95.58878689538598, 60.755387138777245], [-95.58877578680143, 60.755387138777245], [-95.58877578680143, 60.75536910989761], [-95.58876467821693, 60.7553691098976], [-95.58876467821693, 60.755351081017956], [-95.58875356963239, 60.75535108101796], [-95.58875356963239, 60.75534206657814], [-95.58874246104786, 60.75534206657813], [-95.58874246104786, 60.75533305213831], [-95.58873135246331, 60.75533305213831], [-95.58873135246331, 60.75532403769849], [-95.58872024387881, 60.75532403769849], [-95.58872024387881, 60.75531502325866], [-95.58870913529427, 60.75531502325867], [-95.58870913529427, 60.75530600881885], [-95.5886869181252, 60.75530600881885], [-95.5886869181252, 60.75529699437902], [-95.58866470095614, 60.755296994379016], [-95.58866470095614, 60.755287979939204], [-95.58864248378708, 60.7552879799392], [-95.58864248378708, 60.75527896549937], [-95.58858694086445, 60.75527896549938], [-95.58858694086445, 60.75526995105955], [-95.5885647236954, 60.75526995105956], [-95.5885647236954, 60.75526093661974], [-95.58854250652632, 60.755260936619734], [-95.58854250652632, 60.75525192217991], [-95.5885313979418, 60.75525192217991], [-95.5885313979418, 60.755242907740076], [-95.58852028935725, 60.755242907740076], [-95.58852028935725, 60.755233893300264], [-95.5884980721882, 60.755233893300264], [-95.5884980721882, 60.75522487886043], [-95.58847585501913, 60.755224878860446], [-95.58847585501913, 60.755215864420634], [-95.58846474643462, 60.75521586442063], [-95.58846474643462, 60.7552068499808], [-95.58844252926555, 60.7552068499808], [-95.58844252926555, 60.755197835540976], [-95.58843142068103, 60.75519783554097], [-95.58843142068103, 60.75518882110114], [-95.58840920351196, 60.75518882110116], [-95.58840920351196, 60.755179806661324], [-95.58838698634291, 60.75517980666134], [-95.58838698634291, 60.75517079222151], [-95.58837587775838, 60.75517079222149], [-95.58837587775838, 60.75516177778168], [-95.58835366058933, 60.75516177778167], [-95.58835366058933, 60.75515276334184], [-95.58833144342026, 60.75515276334186], [-95.58833144342026, 60.75514374890204], [-95.58830922625121, 60.755143748902036], [-95.58830922625121, 60.755134734462224], [-95.58810927172965, 60.75513473446222], [-95.58810927172965, 60.75514374890204], [-95.58808705456079, 60.755143748902036], [-95.58807594597607, 60.755143748902036], [-95.58807594597607, 60.755152763341854], [-95.58806483739168, 60.75515276334186], [-95.58805372880703, 60.755152763341854], [-95.58805372880703, 60.75516177778169], [-95.58804262022248, 60.75516177778168], [-95.58804262022248, 60.755170792221506], [-95.58803151163798, 60.7551707922215], [-95.58803151163798, 60.75517980666134], [-95.58802040305356, 60.755179806661324], [-95.5880092944689, 60.75517980666133], [-95.5880092944689, 60.755197835540976], [-95.58799818588436, 60.75519783554097], [-95.58799818588436, 60.755206849980794], [-95.58798707729986, 60.75520684998081], [-95.58798707729986, 60.755215864420634], [-95.58797596871531, 60.75521586442063], [-95.58797596871531, 60.755233893300264], [-95.58796486013078, 60.755233893300264], [-95.58796486013078, 60.755260936619734], [-95.58795375154625, 60.75526093661973], [-95.58795375154625, 60.755441225416185], [-95.58794264296174, 60.755441225416185], [-95.58794264296174, 60.755468268735655], [-95.58793153437719, 60.755468268735655], [-95.58793153437719, 60.75547728317548], [-95.58792042579266, 60.75547728317547], [-95.58792042579266, 60.755495312055125], [-95.58790931720813, 60.75549531205512], [-95.58790931720813, 60.75550432649495], [-95.58789820862361, 60.75550432649495], [-95.58789820862361, 60.75551334093476], [-95.58788710003908, 60.75551334093477], [-95.58788710003908, 60.75552235537458], [-95.5878759914547, 60.75552235537459], [-95.58786488287002, 60.75552235537459], [-95.58786488287002, 60.75553136981442], [-95.58785377428549, 60.75553136981441], [-95.58785377428549, 60.75554038425424], [-95.58783155711663, 60.75554038425424], [-95.58782044853191, 60.75554038425424], [-95.58782044853191, 60.75554939869406], [-95.58775379702472, 60.75554939869405], [-95.58775379702472, 60.75554038425424], [-95.58773157985567, 60.75554038425424], [-95.58773157985567, 60.75553136981442], [-95.58770936268662, 60.75553136981441], [-95.58770936268662, 60.75552235537459], [-95.58769825410208, 60.75552235537459], [-95.58769825410208, 60.75551334093476], [-95.587676036933, 60.75551334093477], [-95.587676036933, 60.75550432649494], [-95.58765381976396, 60.755504326494936], [-95.58765381976396, 60.75549531205512], [-95.58764271117943, 60.755495312055125], [-95.58764271117943, 60.755486297615285], [-95.58762049401038, 60.7554862976153], [-95.58762049401038, 60.75547728317547], [-95.5875982768413, 60.755477283175466], [-95.5875982768413, 60.75546826873566], [-95.58758716825677, 60.755468268735655], [-95.58758716825677, 60.75545925429583], [-95.58757605967226, 60.755459254295836], [-95.58757605967226, 60.755450239855996], [-95.58756495108771, 60.75545023985601], [-95.58756495108771, 60.755441225416185], [-95.58755384250318, 60.755441225416185], [-95.58755384250318, 60.755432210976366], [-95.58754273391865, 60.755432210976366], [-95.58754273391865, 60.7554141820967], [-95.58753162533414, 60.755414182096715], [-95.58753162533414, 60.75539615321708], [-95.5875205167496, 60.75539615321708], [-95.5875205167496, 60.75537812433743], [-95.58750940816509, 60.75537812433742], [-95.58750940816509, 60.755369109897615], [-95.58749829958055, 60.75536910989761], [-95.58749829958055, 60.75535108101796], [-95.58748719099601, 60.75535108101795], [-95.58748719099601, 60.75533305213831], [-95.58747608241148, 60.75533305213832], [-95.58747608241148, 60.75531502325867], [-95.58746497382697, 60.75531502325866], [-95.58746497382697, 60.75529699437902], [-95.58745386524244, 60.75529699437901], [-95.58745386524244, 60.755116705582566], [-95.5874427566579, 60.75511670558255], [-95.5874427566579, 60.75510769114275], [-95.58743164807336, 60.75510769114275], [-95.58743164807336, 60.755098676702914], [-95.58740943090432, 60.755098676702914], [-95.58740943090432, 60.7550896622631], [-95.5873316708126, 60.755089662263096], [-95.5873316708126, 60.755098676702914], [-95.5873205622282, 60.75509867670292], [-95.58730945364353, 60.755098676702914], [-95.58730945364353, 60.75510769114275], [-95.58729834505903, 60.755107691142754], [-95.58729834505903, 60.7551257200224], [-95.58728723647448, 60.755125720022384], [-95.58728723647448, 60.7555674275737], [-95.58729834505903, 60.7555674275737], [-95.58729834505903, 60.755585456453346], [-95.58730945364353, 60.755585456453346], [-95.58730945364353, 60.75560348533298], [-95.58732056222807, 60.75560348533298], [-95.58732056222807, 60.75562151421264], [-95.5873316708126, 60.75562151421264], [-95.5873316708126, 60.75563052865246], [-95.58734277939715, 60.755630528652446], [-95.58734277939715, 60.75563954309227], [-95.58735388798165, 60.755639543092286], [-95.58735388798165, 60.755648557532105], [-95.5873649965662, 60.75564855753211], [-95.5873649965662, 60.75565757197193], [-95.5873761051507, 60.75565757197192], [-95.5873761051507, 60.755666586411756], [-95.58739832231977, 60.755666586411756], [-95.58739832231977, 60.75567560085157], [-95.58742053948882, 60.75567560085157], [-95.58742053948882, 60.75568461529141], [-95.58747608241148, 60.75568461529141], [-95.58747608241148, 60.75569362973121], [-95.58748719099601, 60.75569362973122], [-95.58748719099601, 60.75570264417104], [-95.58749829958055, 60.755702644171045], [-95.58749829958055, 60.755711658610856], [-95.58750940816509, 60.755711658610856], [-95.58750940816509, 60.75573870193034], [-95.5875205167496, 60.75573870193035], [-95.5875205167496, 60.7557657452498], [-95.58750940816509, 60.7557657452498], [-95.58750940816509, 60.755801803009085], [-95.58749829958055, 60.75580180300909], [-95.58749829958055, 60.75581081744892], [-95.58748719099601, 60.755810817448925], [-95.58748719099601, 60.755819831888736], [-95.58745386524268, 60.755819831888736], [-95.5874427566579, 60.75581983188873], [-95.5874427566579, 60.75582884632856], [-95.587420539489, 60.75582884632856], [-95.58740943090432, 60.75582884632856], [-95.58740943090432, 60.75583786076839], [-95.5873983223199, 60.755837860768395], [-95.58738721373524, 60.75583786076838], [-95.58738721373524, 60.7558468752082], [-95.5873761051507, 60.7558468752082], [-95.5873761051507, 60.755855889648025], [-95.58736499656632, 60.755855889648025], [-95.58735388798165, 60.75585588964804], [-95.58735388798165, 60.75586490408785], [-95.58734277939728, 60.75586490408786], [-95.5873316708126, 60.75586490408785], [-95.5873316708126, 60.75587391852767], [-95.58732056222807, 60.755873918527676], [-95.58732056222807, 60.75588293296749], [-95.58730945364366, 60.755882932967495], [-95.58729834505903, 60.75588293296748], [-95.58729834505903, 60.75589194740732], [-95.58727612789012, 60.755891947407314], [-95.5872650193054, 60.75589194740732], [-95.5872650193054, 60.75590096184715], [-95.58725391072103, 60.75590096184715], [-95.58724280213636, 60.75590096184715], [-95.58724280213636, 60.75590997628696], [-95.58722058496747, 60.755909976286965], [-95.58720947638278, 60.755909976286965], [-95.58720947638278, 60.755918990726784], [-95.58719836779824, 60.755918990726784], [-95.58719836779824, 60.755928005166616]]]}}]}
1010 "pytest",
1111 "py",
1212 "ipython",
13 # 'matplotlib', # matplotlib gets imported by pandas, see below
14 "descartes",
13 # fiona actually gets imported if installed (but error suppressed until used)
14 # "fiona",
15 # "matplotlib", # matplotlib gets imported by pandas, see below
1516 "mapclassify",
1617 # 'rtree', # rtree actually gets imported if installed
1718 "sqlalchemy",
33 import pandas as pd
44 import six
55
6 from pyproj import CRS
67 import shapely
78 import shapely.affinity
89 import shapely.geometry
5152
5253
5354 def test_points():
54 x = np.arange(10).astype(np.float)
55 y = np.arange(10).astype(np.float) ** 2
55 x = np.arange(10).astype(np.float64)
56 y = np.arange(10).astype(np.float64) ** 2
5657
5758 points = points_from_xy(x, y)
5859 assert isinstance(points, GeometryArray)
116117 return {"type": "Point", "coordinates": (self.x, self.y)}
117118
118119 result = from_shapely([Point(1.0, 2.0), Point(3.0, 4.0)])
120
119121 expected = from_shapely(
120122 [shapely.geometry.Point(1.0, 2.0), shapely.geometry.Point(3.0, 4.0)]
121123 )
124
122125 assert all(v.equals(t) for v, t in zip(result, expected))
123126
124127
325328
326329
327330 @pytest.mark.parametrize(
328 "attr,args", [("equals_exact", (0.1,)), ("almost_equals", (3,))],
331 "attr,args", [("equals_exact", (0.1,)), ("almost_equals", (3,))]
329332 )
330333 def test_equals_deprecation(attr, args):
331334 point = points[0]
478481 assert result.tolist() == expected
479482
480483
484 def test_is_ring():
485 g = [
486 shapely.geometry.LinearRing([(0, 0), (1, 1), (1, -1)]),
487 shapely.geometry.LineString([(0, 0), (1, 1), (1, -1)]),
488 shapely.geometry.LineString([(0, 0), (1, 1), (1, -1), (0, 0)]),
489 shapely.geometry.Polygon([(0, 0), (1, 1), (1, -1)]),
490 shapely.geometry.Polygon(),
491 None,
492 ]
493 expected = [True, False, True, True, False, False]
494
495 result = from_shapely(g).is_ring
496
497 assert result.tolist() == expected
498
499
481500 @pytest.mark.parametrize("attr", ["area", "length"])
482501 def test_unary_float(attr):
483502 na_value = np.nan
484503 result = getattr(T, attr)
485504 assert isinstance(result, np.ndarray)
486 assert result.dtype == np.float
505 assert result.dtype == np.dtype("float64")
487506 expected = [getattr(t, attr) if t is not None else na_value for t in triangles]
488507 np.testing.assert_allclose(result, expected)
489508
752771 res = a1 != a2
753772 assert res.tolist() == [False, True, False]
754773
774 # check the correct expansion of list-like geometry
775 multi_poly = shapely.geometry.MultiPolygon(
776 [shapely.geometry.box(0, 0, 1, 1), shapely.geometry.box(3, 3, 4, 4)]
777 )
778 a3 = from_shapely([points[1], points[2], points[3], multi_poly])
779
780 res = a3 == multi_poly
781 assert res.tolist() == [False, False, False, True]
782
755783
756784 def test_dir():
757785 assert "contains" in dir(P)
855883 t1 = T.copy()
856884 t1[0] = pd.NA
857885 assert t1[0] is None
886
887
888 def test_shift_has_crs():
889 t = T.copy()
890 t.crs = 4326
891 assert t.shift(1).crs == t.crs
892 assert t.shift(0).crs == t.crs
893 assert t.shift(-1).crs == t.crs
894
895
896 @pytest.mark.skipif(
897 not compat.PANDAS_GE_115, reason="crs only preserved in unique after pandas 1.1.5"
898 )
899 def test_unique_has_crs():
900 t = T.copy()
901 t.crs = 4326
902 assert t.unique().crs == t.crs
903
904
905 class TestEstimateUtmCrs:
906 def setup_method(self):
907 self.esb = shapely.geometry.Point(-73.9847, 40.7484)
908 self.sol = shapely.geometry.Point(-74.0446, 40.6893)
909 self.landmarks = from_shapely([self.esb, self.sol], crs="epsg:4326")
910
911 def test_estimate_utm_crs__geographic(self):
912 if compat.PYPROJ_LT_3:
913 with pytest.raises(RuntimeError, match=r"pyproj 3\+ required"):
914 self.landmarks.estimate_utm_crs()
915 else:
916 assert self.landmarks.estimate_utm_crs() == CRS("EPSG:32618")
917 assert self.landmarks.estimate_utm_crs("NAD83") == CRS("EPSG:26918")
918
919 @pytest.mark.skipif(compat.PYPROJ_LT_3, reason="requires pyproj 3 or higher")
920 def test_estimate_utm_crs__projected(self):
921 assert self.landmarks.to_crs("EPSG:3857").estimate_utm_crs() == CRS(
922 "EPSG:32618"
923 )
924
925 @pytest.mark.skipif(compat.PYPROJ_LT_3, reason="requires pyproj 3 or higher")
926 def test_estimate_utm_crs__out_of_bounds(self):
927 with pytest.raises(RuntimeError, match="Unable to determine UTM CRS"):
928 from_shapely(
929 [shapely.geometry.Polygon([(0, 90), (1, 90), (2, 90)])], crs="EPSG:4326"
930 ).estimate_utm_crs()
931
932 @pytest.mark.skipif(compat.PYPROJ_LT_3, reason="requires pyproj 3 or higher")
933 def test_estimate_utm_crs__missing_crs(self):
934 with pytest.raises(RuntimeError, match="crs must be set"):
935 from_shapely(
936 [shapely.geometry.Polygon([(0, 90), (1, 90), (2, 90)])]
937 ).estimate_utm_crs()
4343
4444 def test_to_crs_transform():
4545 df = df_epsg26918()
46 lonlat = df.to_crs(epsg=4326)
47 utm = lonlat.to_crs(epsg=26918)
48 assert_geodataframe_equal(df, utm, check_less_precise=True)
49
50
51 def test_to_crs_transform__missing_data():
52 # https://github.com/geopandas/geopandas/issues/1573
53 df = df_epsg26918()
54 df.loc[3, "geometry"] = None
4655 lonlat = df.to_crs(epsg=4326)
4756 utm = lonlat.to_crs(epsg=26918)
4857 assert_geodataframe_equal(df, utm, check_less_precise=True)
382391 assert df.column1.crs == self.wgs
383392 assert df.column1.values.crs == self.wgs
384393
385 def test_to_crs(self):
394 def test_geoseries_to_crs(self):
386395 s = GeoSeries(self.geoms, crs=27700)
387396 s = s.to_crs(4326)
388397 assert s.crs == self.wgs
401410 df = df.to_crs(3857)
402411 assert df.col1.crs == self.wgs
403412 assert df.col1.values.crs == self.wgs
413
414 def test_array_to_crs(self):
415 arr = from_shapely(self.geoms, crs=27700)
416 arr = arr.to_crs(4326)
417 assert arr.crs == self.wgs
404418
405419 def test_from_shapely(self):
406420 arr = from_shapely(self.geoms, crs=27700)
528542 # CRS should be assigned to geometry
529543 def test_deprecation(self):
530544 with pytest.warns(FutureWarning):
531 GeoDataFrame([], crs=27700)
545 df = GeoDataFrame([], crs=27700)
546
547 # https://github.com/geopandas/geopandas/issues/1548
548 # ensure we still have converted the crs value to a CRS object
549 assert isinstance(df.crs, pyproj.CRS)
532550
533551 with pytest.warns(FutureWarning):
534552 df = GeoDataFrame([])
535553 df.crs = 27700
554
555 assert isinstance(df.crs, pyproj.CRS)
536556
537557 # make sure that geometry column from list has CRS (__setitem__)
538558 def test_setitem_geometry(self):
558578
559579 # apply preserves the CRS if the result is a GeoSeries
560580 result = s.apply(lambda x: x.centroid)
581 assert result.crs == 27700
582
583 def test_apply_geodataframe(self):
584 df = GeoDataFrame({"col1": [0, 1]}, geometry=self.geoms, crs=27700)
585 assert df.crs == 27700
586
587 # apply preserves the CRS if the result is a GeoDataFrame
588 result = df.apply(lambda col: col, axis=0)
589 assert result.crs == 27700
590 result = df.apply(lambda row: row, axis=1)
561591 assert result.crs == 27700
562592
563593
22
33 import geopandas
44 from geopandas import GeoDataFrame, read_file
5 from geopandas import _compat as compat
56
67 from pandas.testing import assert_frame_equal
78 import pytest
9899 test = nybb_polydf.dissolve("manhattan_bronx", as_index=False)
99100 comparison = first.reset_index()
100101 assert_frame_equal(comparison, test, check_column_type=False)
102
103
104 def test_dissolve_none(nybb_polydf):
105 test = nybb_polydf.dissolve(by=None)
106 expected = GeoDataFrame(
107 {
108 nybb_polydf.geometry.name: [nybb_polydf.geometry.unary_union],
109 "BoroName": ["Staten Island"],
110 "BoroCode": [5],
111 "manhattan_bronx": [5],
112 },
113 geometry=nybb_polydf.geometry.name,
114 crs=nybb_polydf.crs,
115 )
116 assert_frame_equal(expected, test, check_column_type=False)
117
118
119 def test_dissolve_none_mean(nybb_polydf):
120 test = nybb_polydf.dissolve(aggfunc="mean")
121 expected = GeoDataFrame(
122 {
123 nybb_polydf.geometry.name: [nybb_polydf.geometry.unary_union],
124 "BoroCode": [3.0],
125 "manhattan_bronx": [5.4],
126 },
127 geometry=nybb_polydf.geometry.name,
128 crs=nybb_polydf.crs,
129 )
130 assert_frame_equal(expected, test, check_column_type=False)
131
132
133 def test_dissolve_level():
134 gdf = geopandas.GeoDataFrame(
135 {
136 "a": [1, 1, 2, 2],
137 "b": [3, 4, 4, 4],
138 "c": [3, 4, 5, 6],
139 "geometry": geopandas.array.from_wkt(
140 ["POINT (0 0)", "POINT (1 1)", "POINT (2 2)", "POINT (3 3)"]
141 ),
142 }
143 ).set_index(["a", "b", "c"])
144
145 expected_a = geopandas.GeoDataFrame(
146 {
147 "a": [1, 2],
148 "geometry": geopandas.array.from_wkt(
149 ["MULTIPOINT (0 0, 1 1)", "MULTIPOINT (2 2, 3 3)"]
150 ),
151 }
152 ).set_index("a")
153 expected_b = geopandas.GeoDataFrame(
154 {
155 "b": [3, 4],
156 "geometry": geopandas.array.from_wkt(
157 ["POINT (0 0)", "MULTIPOINT (1 1, 2 2, 3 3)"]
158 ),
159 }
160 ).set_index("b")
161 expected_ab = geopandas.GeoDataFrame(
162 {
163 "a": [1, 1, 2],
164 "b": [3, 4, 4],
165 "geometry": geopandas.array.from_wkt(
166 ["POINT (0 0)", "POINT (1 1)", "MULTIPOINT (2 2, 3 3)"]
167 ),
168 }
169 ).set_index(["a", "b"])
170
171 assert_frame_equal(expected_a, gdf.dissolve(level=0))
172 assert_frame_equal(expected_a, gdf.dissolve(level="a"))
173 assert_frame_equal(expected_b, gdf.dissolve(level=1))
174 assert_frame_equal(expected_b, gdf.dissolve(level="b"))
175 assert_frame_equal(expected_ab, gdf.dissolve(level=[0, 1]))
176 assert_frame_equal(expected_ab, gdf.dissolve(level=["a", "b"]))
177
178
179 def test_dissolve_sort():
180 gdf = geopandas.GeoDataFrame(
181 {
182 "a": [2, 1, 1],
183 "geometry": geopandas.array.from_wkt(
184 ["POINT (0 0)", "POINT (1 1)", "POINT (2 2)"]
185 ),
186 }
187 )
188
189 expected_unsorted = geopandas.GeoDataFrame(
190 {
191 "a": [2, 1],
192 "geometry": geopandas.array.from_wkt(
193 ["POINT (0 0)", "MULTIPOINT (1 1, 2 2)"]
194 ),
195 }
196 ).set_index("a")
197 expected_sorted = expected_unsorted.sort_index()
198
199 assert_frame_equal(expected_sorted, gdf.dissolve("a"))
200 assert_frame_equal(expected_unsorted, gdf.dissolve("a", sort=False))
201
202
203 @pytest.mark.skipif(
204 not compat.PANDAS_GE_025,
205 reason="'observed' param behavior changed in pandas 0.25.0",
206 )
207 def test_dissolve_categorical():
208 gdf = geopandas.GeoDataFrame(
209 {
210 "cat": pd.Categorical(["a", "a", "b", "b"]),
211 "noncat": [1, 1, 1, 2],
212 "to_agg": [1, 2, 3, 4],
213 "geometry": geopandas.array.from_wkt(
214 ["POINT (0 0)", "POINT (1 1)", "POINT (2 2)", "POINT (3 3)"]
215 ),
216 }
217 )
218
219 # when observed=False we get an additional observation
220 # that wasn't in the original data
221 expected_gdf_observed_false = geopandas.GeoDataFrame(
222 {
223 "cat": pd.Categorical(["a", "a", "b", "b"]),
224 "noncat": [1, 2, 1, 2],
225 "geometry": geopandas.array.from_wkt(
226 [
227 "MULTIPOINT (0 0, 1 1)",
228 None,
229 "POINT (2 2)",
230 "POINT (3 3)",
231 ]
232 ),
233 "to_agg": [1, None, 3, 4],
234 }
235 ).set_index(["cat", "noncat"])
236
237 # when observed=True we do not get any additional observations
238 expected_gdf_observed_true = geopandas.GeoDataFrame(
239 {
240 "cat": pd.Categorical(["a", "b", "b"]),
241 "noncat": [1, 1, 2],
242 "geometry": geopandas.array.from_wkt(
243 ["MULTIPOINT (0 0, 1 1)", "POINT (2 2)", "POINT (3 3)"]
244 ),
245 "to_agg": [1, 3, 4],
246 }
247 ).set_index(["cat", "noncat"])
248
249 assert_frame_equal(expected_gdf_observed_false, gdf.dissolve(["cat", "noncat"]))
250 assert_frame_equal(
251 expected_gdf_observed_true, gdf.dissolve(["cat", "noncat"], observed=True)
252 )
253
254
255 @pytest.mark.skipif(
256 not compat.PANDAS_GE_11, reason="dropna groupby kwarg added in pandas 1.1.0"
257 )
258 def test_dissolve_dropna():
259 gdf = geopandas.GeoDataFrame(
260 {
261 "a": [1, 1, None],
262 "geometry": geopandas.array.from_wkt(
263 ["POINT (0 0)", "POINT (1 1)", "POINT (2 2)"]
264 ),
265 }
266 )
267
268 expected_with_na = geopandas.GeoDataFrame(
269 {
270 "a": [1.0, np.nan],
271 "geometry": geopandas.array.from_wkt(
272 ["MULTIPOINT (0 0, 1 1)", "POINT (2 2)"]
273 ),
274 }
275 ).set_index("a")
276 expected_no_na = geopandas.GeoDataFrame(
277 {
278 "a": [1.0],
279 "geometry": geopandas.array.from_wkt(["MULTIPOINT (0 0, 1 1)"]),
280 }
281 ).set_index("a")
282
283 assert_frame_equal(expected_with_na, gdf.dissolve("a", dropna=False))
284 assert_frame_equal(expected_no_na, gdf.dissolve("a"))
285
286
287 @pytest.mark.skipif(
288 compat.PANDAS_GE_11, reason="dropna warning is only emitted if pandas < 1.1.0"
289 )
290 def test_dissolve_dropna_warn(nybb_polydf):
291 # No warning with default params
292 with pytest.warns(None) as record:
293 nybb_polydf.dissolve()
294
295 for r in record:
296 assert "dropna kwarg is not supported" not in str(r.message)
297
298 # Warning is emitted with non-default dropna value
299 with pytest.warns(
300 UserWarning, match="dropna kwarg is not supported for pandas < 1.1.0"
301 ):
302 nybb_polydf.dissolve(dropna=False)
1515 import operator
1616
1717 import numpy as np
18 from numpy.testing import assert_array_equal
1819 import pandas as pd
1920 from pandas.tests.extension import base as extension_tests
2021
2122 import shapely.geometry
2223
23 from geopandas._compat import PANDAS_GE_024
2424 from geopandas.array import GeometryArray, GeometryDtype, from_shapely
2525
2626 import pytest
3030 # -----------------------------------------------------------------------------
3131
3232
33 if not PANDAS_GE_024:
34 # pandas 0.23.4 doesn't have those tests yet, so adding dummy classes
35 # to derive from here
36 extension_tests.BaseNoReduceTests = object
37 extension_tests.BaseArithmeticOpsTests = object
38 extension_tests.BaseComparisonOpsTests = object
39 extension_tests.BasePrintingTests = object
40 extension_tests.BaseParsingTests = object
41
42
4333 not_yet_implemented = pytest.mark.skip(reason="Not yet implemented")
4434 no_sorting = pytest.mark.skip(reason="Sorting not supported")
45 skip_pandas_below_024 = pytest.mark.skipif(
46 not PANDAS_GE_024, reason="Sorting not supported"
47 )
4835
4936
5037 # -----------------------------------------------------------------------------
5946
6047
6148 def make_data():
62 a = np.array([shapely.geometry.Point(i, i) for i in range(100)], dtype=object)
49 a = np.empty(100, dtype=object)
50 a[:] = [shapely.geometry.Point(i, i) for i in range(100)]
6351 ga = from_shapely(a)
6452 return ga
6553
291279 def test_array_type_with_arg(self, data, dtype):
292280 assert dtype.construct_array_type() is GeometryArray
293281
294 @skip_pandas_below_024
295282 def test_registry(self, data, dtype):
296283 s = pd.Series(np.asarray(data), dtype=object)
297284 result = s.astype("geometry")
301288
302289
303290 class TestInterface(extension_tests.BaseInterfaceTests):
304 pass
291 def test_array_interface(self, data):
292 # we are overriding this base test because the creation of `expected`
293 # potentionally doesn't work for shapely geometries
294 # TODO can be removed with Shapely 2.0
295 result = np.array(data)
296 assert result[0] == data[0]
297
298 result = np.array(data, dtype=object)
299 # expected = np.array(list(data), dtype=object)
300 expected = np.empty(len(data), dtype=object)
301 expected[:] = list(data)
302 assert_array_equal(result, expected)
303
304 def test_contains(self, data, data_missing):
305 # overrided due to the inconsistency between
306 # GeometryDtype.na_value = np.nan
307 # and None being used as NA in array
308
309 # ensure data without missing values
310 data = data[~data.isna()]
311
312 # first elements are non-missing
313 assert data[0] in data
314 assert data_missing[0] in data_missing
315
316 assert None in data_missing
317 assert None not in data
318 assert pd.NaT not in data_missing
305319
306320
307321 class TestConstructors(extension_tests.BaseConstructorsTests):
402416 expected = s.combine(other, op)
403417 self.assert_series_equal(result, expected)
404418
405 @skip_pandas_below_024
406419 def test_compare_scalar(self, data, all_compare_operators): # noqa
407420 op_name = all_compare_operators
408421 s = pd.Series(data)
409422 self._compare_other(s, data, op_name, data[0])
410423
411 @skip_pandas_below_024
412424 def test_compare_array(self, data, all_compare_operators): # noqa
413425 op_name = all_compare_operators
414426 s = pd.Series(data)
506518
507519 @no_sorting
508520 def test_argmin_argmax_all_na(self):
521 pass
522
523 @no_sorting
524 def test_argreduce_series(self):
525 pass
526
527 @no_sorting
528 def test_argmax_argmin_no_skipna_notimplemented(self):
509529 pass
510530
511531
0 import numpy as np
10 import pandas as pd
21
32 from shapely.geometry import Point
87
98 from geopandas.tests.util import assert_geoseries_equal, mock
109 from pandas.testing import assert_series_equal
10 from geopandas.testing import assert_geodataframe_equal
1111 import pytest
1212
1313 geopy = pytest.importorskip("geopy")
105105 # TODO we should probably replace this with a missing value instead of point?
106106 # assert len(row["geometry"].coords) == 0
107107 assert row["geometry"].is_empty
108 assert np.isnan(row["address"])
108 assert row["address"] is None
109
110
111 @pytest.mark.parametrize("geocode_result", (None, (None, None)))
112 def test_prepare_geocode_result_when_result_is(geocode_result):
113
114 result = {0: geocode_result}
115 expected_output = GeoDataFrame(
116 {"geometry": [Point()], "address": [None]},
117 crs="EPSG:4326",
118 )
119
120 output = _prepare_geocode_result(result)
121
122 assert_geodataframe_equal(output, expected_output)
109123
110124
111125 def test_bad_provider_forward():
11 import os
22 import shutil
33 import tempfile
4 from distutils.version import LooseVersion
45
56 import numpy as np
67 import pandas as pd
78
8 import fiona
9 import pyproj
10 from pyproj import CRS
911 from pyproj.exceptions import CRSError
1012 from shapely.geometry import Point
1113
1719 from geopandas.tests.util import PACKAGE_DIR, validate_boro_df
1820 from pandas.testing import assert_frame_equal, assert_index_equal, assert_series_equal
1921 import pytest
22
23
24 PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3")
2025
2126
2227 class TestDataFrame:
3439 ],
3540 crs=self.crs,
3641 )
37 self.df3 = read_file(os.path.join(PACKAGE_DIR, "examples", "null_geom.geojson"))
42 self.df3 = read_file(
43 os.path.join(PACKAGE_DIR, "geopandas", "tests", "data", "null_geom.geojson")
44 )
3845
3946 def teardown_method(self):
4047 shutil.rmtree(self.tempdir)
207214 df2 = self.df.rename_geometry("new_name", inplace=True)
208215 assert df2 is None
209216 assert self.df.geometry.name == "new_name"
217
218 # existing column error
219 msg = "Column named Shape_Area already exists"
220 with pytest.raises(ValueError, match=msg):
221 df2 = self.df.rename_geometry("Shape_Area")
222 with pytest.raises(ValueError, match=msg):
223 self.df.rename_geometry("Shape_Area", inplace=True)
210224
211225 def test_set_geometry(self):
212226 geom = GeoSeries([Point(x, y) for x, y in zip(range(5), range(5))])
350364 data = json.loads(text)
351365 assert data["type"] == "FeatureCollection"
352366 assert len(data["features"]) == 5
367 assert "id" in data["features"][0].keys()
353368
354369 def test_to_json_geom_col(self):
355370 df = self.df.copy()
361376 data = json.loads(text)
362377 assert data["type"] == "FeatureCollection"
363378 assert len(data["features"]) == 5
379
380 def test_to_json_only_geom_column(self):
381 text = self.df[["geometry"]].to_json()
382 data = json.loads(text)
383 assert len(data["features"]) == 5
384 assert "id" in data["features"][0].keys()
364385
365386 def test_to_json_na(self):
366387 # Set a value as nan and make sure it's written
421442 assert np.isnan(props["Shape_Leng"])
422443 assert "Shape_Area" in props
423444
445 def test_to_json_drop_id(self):
446 text = self.df.to_json(drop_id=True)
447 data = json.loads(text)
448 assert len(data["features"]) == 5
449 for f in data["features"]:
450 assert "id" not in f.keys()
451
452 def test_to_json_drop_id_only_geom_column(self):
453 text = self.df[["geometry"]].to_json(drop_id=True)
454 data = json.loads(text)
455 assert len(data["features"]) == 5
456 for f in data["features"]:
457 assert "id" not in f.keys()
458
424459 def test_copy(self):
425460 df2 = self.df.copy()
426461 assert type(df2) is GeoDataFrame
465500 assert_frame_equal(self.df2.loc[5:], self.df2.cx[:, 5:])
466501 assert_frame_equal(self.df2.loc[5:], self.df2.cx[5:, 5:])
467502
503 def test_from_dict(self):
504 data = {"A": [1], "geometry": [Point(0.0, 0.0)]}
505 df = GeoDataFrame.from_dict(data, crs=3857)
506 assert df.crs == "epsg:3857"
507 assert df._geometry_column_name == "geometry"
508
509 data = {"B": [1], "location": [Point(0.0, 0.0)]}
510 df = GeoDataFrame.from_dict(data, geometry="location")
511 assert df._geometry_column_name == "location"
512
468513 def test_from_features(self):
514 fiona = pytest.importorskip("fiona")
469515 nybb_filename = geopandas.datasets.get_path("nybb")
470516 with fiona.open(nybb_filename) as f:
471517 features = list(f)
549595
550596 def test_dataframe_to_geodataframe(self):
551597 df = pd.DataFrame(
552 {"A": range(len(self.df)), "location": list(self.df.geometry)},
598 {"A": range(len(self.df)), "location": np.array(self.df.geometry)},
553599 index=self.df.index,
554600 )
555601 gf = df.set_geometry("location", crs=self.df.crs)
651697 assert_frame_equal(self.df, unpickled)
652698 assert self.df.crs == unpickled.crs
653699
700 def test_estimate_utm_crs(self):
701 if PYPROJ_LT_3:
702 with pytest.raises(RuntimeError, match=r"pyproj 3\+ required"):
703 self.df.estimate_utm_crs()
704 else:
705 assert self.df.estimate_utm_crs() == CRS("EPSG:32618")
706 assert self.df.estimate_utm_crs("NAD83") == CRS("EPSG:26918")
707
708 def test_to_wkb(self):
709 wkbs0 = [
710 (
711 b"\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00"
712 b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
713 ), # POINT (0 0)
714 (
715 b"\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00"
716 b"\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?"
717 ), # POINT (1 1)
718 ]
719 wkbs1 = [
720 (
721 b"\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00"
722 b"\x00\x00@\x00\x00\x00\x00\x00\x00\x00@"
723 ), # POINT (2 2)
724 (
725 b"\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00"
726 b"\x00\x08@\x00\x00\x00\x00\x00\x00\x08@"
727 ), # POINT (3 3)
728 ]
729 gs0 = GeoSeries.from_wkb(wkbs0)
730 gs1 = GeoSeries.from_wkb(wkbs1)
731 gdf = GeoDataFrame({"geom_col0": gs0, "geom_col1": gs1})
732
733 expected_df = pd.DataFrame({"geom_col0": wkbs0, "geom_col1": wkbs1})
734 assert_frame_equal(expected_df, gdf.to_wkb())
735
736 def test_to_wkt(self):
737 wkts0 = ["POINT (0 0)", "POINT (1 1)"]
738 wkts1 = ["POINT (2 2)", "POINT (3 3)"]
739 gs0 = GeoSeries.from_wkt(wkts0)
740 gs1 = GeoSeries.from_wkt(wkts1)
741 gdf = GeoDataFrame({"gs0": gs0, "gs1": gs1})
742
743 expected_df = pd.DataFrame({"gs0": wkts0, "gs1": wkts1})
744 assert_frame_equal(expected_df, gdf.to_wkt())
745
654746
655747 def check_geodataframe(df, geometry_column="geometry"):
656748 assert isinstance(df, GeoDataFrame)
1010 from geopandas import GeoDataFrame, GeoSeries
1111 from geopandas.base import GeoPandasBase
1212
13 from geopandas.testing import assert_geodataframe_equal
1314 from geopandas.tests.util import assert_geoseries_equal, geom_almost_equals, geom_equals
1415 from geopandas import _compat as compat
1516 from pandas.testing import assert_frame_equal, assert_series_equal
2829 self.t1 = Polygon([(0, 0), (1, 0), (1, 1)])
2930 self.t2 = Polygon([(0, 0), (1, 1), (0, 1)])
3031 self.t3 = Polygon([(2, 0), (3, 0), (3, 1)])
32 self.tz = Polygon([(1, 1, 1), (2, 2, 2), (3, 3, 3)])
33 self.tz1 = Polygon([(2, 2, 2), (1, 1, 1), (3, 3, 3)])
3134 self.sq = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
35 self.sqz = Polygon([(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4)])
3236 self.t4 = Polygon([(0, 0), (3, 0), (3, 3), (0, 2)])
3337 self.t5 = Polygon([(2, 0), (3, 0), (3, 3), (2, 3)])
3438 self.inner_sq = Polygon(
5155 self.g1 = GeoSeries([self.t1, self.sq])
5256 self.g2 = GeoSeries([self.sq, self.t1])
5357 self.g3 = GeoSeries([self.t1, self.t2])
58 self.gz = GeoSeries([self.tz, self.sqz, self.tz1])
5459 self.g3.crs = "epsg:4326"
5560 self.g4 = GeoSeries([self.t2, self.t1])
5661 self.g4.crs = "epsg:4326"
6166 self.a1.index = ["A", "B"]
6267 self.a2 = self.g2.copy()
6368 self.a2.index = ["B", "C"]
64 self.esb = Point(-73.9847, 40.7484)
65 self.sol = Point(-74.0446, 40.6893)
69 self.esb = Point(-73.9847, 40.7484, 30.3244)
70 self.sol = Point(-74.0446, 40.6893, 31.2344)
6671 self.landmarks = GeoSeries([self.esb, self.sol], crs="epsg:4326")
72 self.pt2d = Point(-73.9847, 40.7484)
73 self.landmarks_mixed = GeoSeries([self.esb, self.sol, self.pt2d], crs=4326)
6774 self.l1 = LineString([(0, 0), (0, 1), (1, 1)])
6875 self.l2 = LineString([(0, 0), (1, 0), (1, 1), (0, 1)])
6976 self.g5 = GeoSeries([self.l1, self.l2])
7380 self.empty = GeoSeries([])
7481 self.all_none = GeoSeries([None, None])
7582 self.empty_poly = Polygon()
83 self.g9 = GeoSeries(self.g0, index=range(1, 8))
7684
7785 # Crossed lines
7886 self.l3 = LineString([(0, 0), (1, 1)])
8997 )
9098 self.gdf3 = GeoDataFrame(
9199 {"geometry": self.g3, "col3": [4, 5], "col4": ["rand", "string"]}
100 )
101 self.gdfz = GeoDataFrame(
102 {"geometry": self.gz, "col3": [4, 5, 6], "col4": ["rand", "string", "geo"]}
92103 )
93104
94105 def _test_unary_real(self, op, expected, a):
233244 "intersection", self.all_none, self.g1, self.empty
234245 )
235246
247 assert len(self.g0.intersection(self.g9, align=True) == 8)
248 assert len(self.g0.intersection(self.g9, align=False) == 7)
249
236250 def test_union_series(self):
237251 self._test_binary_topological("union", self.sq, self.g1, self.g2)
238252
253 assert len(self.g0.union(self.g9, align=True) == 8)
254 assert len(self.g0.union(self.g9, align=False) == 7)
255
239256 def test_union_polygon(self):
240257 self._test_binary_topological("union", self.sq, self.g1, self.t2)
241258
242259 def test_symmetric_difference_series(self):
243260 self._test_binary_topological("symmetric_difference", self.sq, self.g3, self.g4)
261
262 assert len(self.g0.symmetric_difference(self.g9, align=True) == 8)
263 assert len(self.g0.symmetric_difference(self.g9, align=False) == 7)
244264
245265 def test_symmetric_difference_poly(self):
246266 expected = GeoSeries([GeometryCollection(), self.sq], crs=self.g3.crs)
251271 def test_difference_series(self):
252272 expected = GeoSeries([GeometryCollection(), self.t2])
253273 self._test_binary_topological("difference", expected, self.g1, self.g2)
274
275 assert len(self.g0.difference(self.g9, align=True) == 8)
276 assert len(self.g0.difference(self.g9, align=False) == 7)
254277
255278 def test_difference_poly(self):
256279 expected = GeoSeries([self.t1, self.t1])
330353 expected = [True, False, True, False, False, False, False]
331354 assert_array_dtype_equal(expected, self.g0.contains(self.t1))
332355
356 expected = [False, True, True, True, True, True, False, False]
357 assert_array_dtype_equal(expected, self.g0.contains(self.g9, align=True))
358
359 expected = [False, False, True, False, False, False, False]
360 assert_array_dtype_equal(expected, self.g0.contains(self.g9, align=False))
361
333362 def test_length(self):
334363 expected = Series(np.array([2 + np.sqrt(2), 4]), index=self.g1.index)
335364 self._test_unary_real("length", expected, self.g1)
348377 expected = [False, True]
349378 assert_array_dtype_equal(expected, self.crossed_lines.crosses(self.l3))
350379
380 expected = [False] * 8
381 assert_array_dtype_equal(expected, self.g0.crosses(self.g9, align=True))
382
383 expected = [False] * 7
384 assert_array_dtype_equal(expected, self.g0.crosses(self.g9, align=False))
385
351386 def test_disjoint(self):
352387 expected = [False, False, False, False, False, True, False]
353388 assert_array_dtype_equal(expected, self.g0.disjoint(self.t1))
389
390 expected = [False] * 8
391 assert_array_dtype_equal(expected, self.g0.disjoint(self.g9, align=True))
392
393 expected = [False, False, False, False, True, False, False]
394 assert_array_dtype_equal(expected, self.g0.disjoint(self.g9, align=False))
354395
355396 def test_relate(self):
356397 expected = Series(
370411 expected = Series(["FF0FFF212", None], index=self.g6.index)
371412 assert_array_dtype_equal(expected, self.g6.relate(self.na_none))
372413
414 expected = Series(
415 [
416 None,
417 "2FFF1FFF2",
418 "2FFF1FFF2",
419 "2FFF1FFF2",
420 "2FFF1FFF2",
421 "0FFFFFFF2",
422 None,
423 None,
424 ],
425 index=range(8),
426 )
427
428 assert_array_dtype_equal(expected, self.g0.relate(self.g9, align=True))
429
430 expected = Series(
431 [
432 "FF2F11212",
433 "2FF11F212",
434 "212FF1FF2",
435 "FF2F1F212",
436 "FF2FF10F2",
437 None,
438 None,
439 ],
440 index=self.g0.index,
441 )
442 assert_array_dtype_equal(expected, self.g0.relate(self.g9, align=False))
443
373444 def test_distance(self):
374445 expected = Series(
375446 np.array([np.sqrt((5 - 1) ** 2 + (5 - 1) ** 2), np.nan]), self.na_none.index
379450 expected = Series(np.array([np.sqrt(4 ** 2 + 4 ** 2), np.nan]), self.g6.index)
380451 assert_array_dtype_equal(expected, self.g6.distance(self.na_none))
381452
453 expected = Series(np.array([np.nan, 0, 0, 0, 0, 0, np.nan, np.nan]), range(8))
454 assert_array_dtype_equal(expected, self.g0.distance(self.g9, align=True))
455
456 val = self.g0.iloc[4].distance(self.g9.iloc[4])
457 expected = Series(np.array([0, 0, 0, 0, val, np.nan, np.nan]), self.g0.index)
458 assert_array_dtype_equal(expected, self.g0.distance(self.g9, align=False))
459
382460 def test_distance_crs_warning(self):
383461 with pytest.warns(UserWarning, match="Geometry is in a geographic CRS"):
384462 self.g4.distance(self.p0)
399477 expected = [False] * 7
400478 assert_array_dtype_equal(expected, self.g0.intersects(self.empty_poly))
401479
480 expected = [False, True, True, True, True, True, False, False]
481 assert_array_dtype_equal(expected, self.g0.intersects(self.g9, align=True))
482
483 expected = [True, True, True, True, False, False, False]
484 assert_array_dtype_equal(expected, self.g0.intersects(self.g9, align=False))
485
402486 def test_overlaps(self):
403487 expected = [True, True, False, False, False, False, False]
404488 assert_array_dtype_equal(expected, self.g0.overlaps(self.inner_sq))
406490 expected = [False, False]
407491 assert_array_dtype_equal(expected, self.g4.overlaps(self.t1))
408492
493 expected = [False] * 8
494 assert_array_dtype_equal(expected, self.g0.overlaps(self.g9, align=True))
495
496 expected = [False] * 7
497 assert_array_dtype_equal(expected, self.g0.overlaps(self.g9, align=False))
498
409499 def test_touches(self):
410500 expected = [False, True, False, False, False, False, False]
411501 assert_array_dtype_equal(expected, self.g0.touches(self.t1))
412502
503 expected = [False] * 8
504 assert_array_dtype_equal(expected, self.g0.touches(self.g9, align=True))
505
506 expected = [True, False, False, True, False, False, False]
507 assert_array_dtype_equal(expected, self.g0.touches(self.g9, align=False))
508
413509 def test_within(self):
414510 expected = [True, False, False, False, False, False, False]
415511 assert_array_dtype_equal(expected, self.g0.within(self.t1))
416512
417513 expected = [True, True, True, True, True, False, False]
418514 assert_array_dtype_equal(expected, self.g0.within(self.sq))
515
516 expected = [False, True, True, True, True, True, False, False]
517 assert_array_dtype_equal(expected, self.g0.within(self.g9, align=True))
518
519 expected = [False, True, False, False, False, False, False]
520 assert_array_dtype_equal(expected, self.g0.within(self.g9, align=False))
419521
420522 def test_covers_itself(self):
421523 # Each polygon in a Series covers itself
427529 res = self.g7.covers(self.g8)
428530 exp = Series([True, False])
429531 assert_series_equal(res, exp)
532
533 expected = [False, True, True, True, True, True, False, False]
534 assert_array_dtype_equal(expected, self.g0.covers(self.g9, align=True))
535
536 expected = [False, False, True, False, False, False, False]
537 assert_array_dtype_equal(expected, self.g0.covers(self.g9, align=False))
430538
431539 def test_covers_inverse(self):
432540 res = self.g8.covers(self.g7)
442550 exp = Series([True, True])
443551 assert_series_equal(res, exp)
444552
553 expected = [False, True, True, True, True, True, False, False]
554 assert_array_dtype_equal(expected, self.g0.covered_by(self.g9, align=True))
555
556 expected = [False, True, False, False, False, False, False]
557 assert_array_dtype_equal(expected, self.g0.covered_by(self.g9, align=False))
558
445559 def test_is_valid(self):
446560 expected = Series(np.array([True] * len(self.g1)), self.g1.index)
447561 self._test_unary_real("is_valid", expected, self.g1)
462576 expected = Series([False, True], self.g_3d.index)
463577 self._test_unary_real("has_z", expected, self.g_3d)
464578
465 def test_xy_points(self):
579 def test_xyz_points(self):
466580 expected_x = [-73.9847, -74.0446]
467581 expected_y = [40.7484, 40.6893]
582 expected_z = [30.3244, 31.2344]
468583
469584 assert_array_dtype_equal(expected_x, self.landmarks.geometry.x)
470585 assert_array_dtype_equal(expected_y, self.landmarks.geometry.y)
471
472 def test_xy_polygons(self):
586 assert_array_dtype_equal(expected_z, self.landmarks.geometry.z)
587
588 # mixed dimensions
589 expected_z = [30.3244, 31.2344, np.nan]
590 assert_array_dtype_equal(expected_z, self.landmarks_mixed.geometry.z)
591
592 def test_xyz_polygons(self):
473593 # accessing x attribute in polygon geoseries should raise an error
474594 with pytest.raises(ValueError):
475595 _ = self.gdf1.geometry.x
476596 # and same for accessing y attribute in polygon geoseries
477597 with pytest.raises(ValueError):
478598 _ = self.gdf1.geometry.y
599 # and same for accessing z attribute in polygon geoseries
600 with pytest.raises(ValueError):
601 _ = self.gdfz.geometry.z
479602
480603 def test_centroid(self):
481604 polygon = Polygon([(-1, -1), (1, -1), (1, 1), (-1, 1)])
551674
552675 expected = Series([1.0, 0.5], index=self.g5.index)
553676 self._test_binary_real("project", expected, self.g5, p, normalized=True)
677
678 s = GeoSeries([Point(2, 2), Point(0.5, 0.5)], index=[1, 2])
679 expected = Series([np.nan, 2.0, np.nan])
680 assert_series_equal(self.g5.project(s), expected)
681
682 expected = Series([2.0, 0.5], index=self.g5.index)
683 assert_series_equal(self.g5.project(s, align=False), expected)
554684
555685 def test_affine_transform(self):
556686 # 45 degree reflection matrix
670800 # do not warn for 0
671801 self.g4.buffer(0)
672802
673 assert len(record) == 0
803 for r in record:
804 assert "Geometry is in a geographic CRS." not in str(r.message)
674805
675806 def test_envelope(self):
676807 e = self.g3.envelope
690821
691822 def test_explode_geoseries(self):
692823 s = GeoSeries(
693 [MultiPoint([(0, 0), (1, 1)]), MultiPoint([(2, 2), (3, 3), (4, 4)])]
824 [MultiPoint([(0, 0), (1, 1)]), MultiPoint([(2, 2), (3, 3), (4, 4)])],
825 crs=4326,
694826 )
695827 s.index.name = "test_index_name"
696828 expected_index_name = ["test_index_name", None]
698830 expected = GeoSeries(
699831 [Point(0, 0), Point(1, 1), Point(2, 2), Point(3, 3), Point(4, 4)],
700832 index=MultiIndex.from_tuples(index, names=expected_index_name),
833 crs=4326,
701834 )
702835 assert_geoseries_equal(expected, s.explode())
703836
736869 names=[index_name, None],
737870 )
738871 expected_df = expected_df.set_index(expected_index)
739 if not compat.PANDAS_GE_024:
740 expected_df = expected_df[["level_1", "geometry"]]
741872 assert_frame_equal(test_df, expected_df)
873
874 @pytest.mark.skipif(
875 not compat.PANDAS_GE_025,
876 reason="pandas explode introduced in pandas 0.25",
877 )
878 def test_explode_pandas_fallback(self):
879 d = {
880 "col1": [["name1", "name2"], ["name3", "name4"]],
881 "geometry": [
882 MultiPoint([(1, 2), (3, 4)]),
883 MultiPoint([(2, 1), (0, 0)]),
884 ],
885 }
886 gdf = GeoDataFrame(d, crs=4326)
887 expected_df = GeoDataFrame(
888 {
889 "col1": ["name1", "name2", "name3", "name4"],
890 "geometry": [
891 MultiPoint([(1, 2), (3, 4)]),
892 MultiPoint([(1, 2), (3, 4)]),
893 MultiPoint([(2, 1), (0, 0)]),
894 MultiPoint([(2, 1), (0, 0)]),
895 ],
896 },
897 index=[0, 0, 1, 1],
898 crs=4326,
899 )
900
901 # Test with column provided as arg
902 exploded_df = gdf.explode("col1")
903 assert_geodataframe_equal(exploded_df, expected_df)
904
905 # Test with column provided as kwarg
906 exploded_df = gdf.explode(column="col1")
907 assert_geodataframe_equal(exploded_df, expected_df)
908
909 @pytest.mark.skipif(
910 not compat.PANDAS_GE_11,
911 reason="ignore_index keyword introduced in pandas 1.1.0",
912 )
913 def test_explode_pandas_fallback_ignore_index(self):
914 d = {
915 "col1": [["name1", "name2"], ["name3", "name4"]],
916 "geometry": [
917 MultiPoint([(1, 2), (3, 4)]),
918 MultiPoint([(2, 1), (0, 0)]),
919 ],
920 }
921 gdf = GeoDataFrame(d, crs=4326)
922 expected_df = GeoDataFrame(
923 {
924 "col1": ["name1", "name2", "name3", "name4"],
925 "geometry": [
926 MultiPoint([(1, 2), (3, 4)]),
927 MultiPoint([(1, 2), (3, 4)]),
928 MultiPoint([(2, 1), (0, 0)]),
929 MultiPoint([(2, 1), (0, 0)]),
930 ],
931 },
932 crs=4326,
933 )
934
935 # Test with column provided as arg
936 exploded_df = gdf.explode("col1", ignore_index=True)
937 assert_geodataframe_equal(exploded_df, expected_df)
938
939 # Test with column provided as kwarg
940 exploded_df = gdf.explode(column="col1", ignore_index=True)
941 assert_geodataframe_equal(exploded_df, expected_df)
742942
743943 #
744944 # Test '&', '|', '^', and '-'
77 from numpy.testing import assert_array_equal
88 import pandas as pd
99
10 from pyproj import CRS
1011 from shapely.geometry import (
1112 LineString,
1213 MultiLineString,
1819 from shapely.geometry.base import BaseGeometry
1920
2021 from geopandas import GeoSeries, GeoDataFrame
22 from geopandas._compat import PYPROJ_LT_3
2123 from geopandas.array import GeometryArray, GeometryDtype
24 from geopandas.testing import assert_geoseries_equal
2225
2326 from geopandas.tests.util import geom_equals
2427 from pandas.testing import assert_series_equal
129132
130133 def test_geom_equals_align(self):
131134 with pytest.warns(UserWarning, match="The indices .+ different"):
132 a = self.a1.geom_equals(self.a2)
135 a = self.a1.geom_equals(self.a2, align=True)
133136 exp = pd.Series([False, True, False], index=["A", "B", "C"])
137 assert_series_equal(a, exp)
138
139 a = self.a1.geom_equals(self.a2, align=False)
140 exp = pd.Series([False, False], index=["A", "B"])
134141 assert_series_equal(a, exp)
135142
136143 def test_geom_almost_equals(self):
138145 assert np.all(self.g1.geom_almost_equals(self.g1))
139146 assert_array_equal(self.g1.geom_almost_equals(self.sq), [False, True])
140147
148 assert_array_equal(
149 self.a1.geom_almost_equals(self.a2, align=True), [False, True, False]
150 )
151 assert_array_equal(
152 self.a1.geom_almost_equals(self.a2, align=False), [False, False]
153 )
154
141155 def test_geom_equals_exact(self):
142156 # TODO: test tolerance parameter
143157 assert np.all(self.g1.geom_equals_exact(self.g1, 0.001))
144158 assert_array_equal(self.g1.geom_equals_exact(self.sq, 0.001), [False, True])
159
160 assert_array_equal(
161 self.a1.geom_equals_exact(self.a2, 0.001, align=True), [False, True, False]
162 )
163 assert_array_equal(
164 self.a1.geom_equals_exact(self.a2, 0.001, align=False), [False, False]
165 )
145166
146167 def test_equal_comp_op(self):
147168 s = GeoSeries([Point(x, x) for x in range(3)])
181202 with pytest.raises(ValueError):
182203 self.landmarks.to_crs(crs=None, epsg=None)
183204
205 def test_estimate_utm_crs__geographic(self):
206 if PYPROJ_LT_3:
207 with pytest.raises(RuntimeError, match=r"pyproj 3\+ required"):
208 self.landmarks.estimate_utm_crs()
209 else:
210 assert self.landmarks.estimate_utm_crs() == CRS("EPSG:32618")
211 assert self.landmarks.estimate_utm_crs("NAD83") == CRS("EPSG:26918")
212
213 @pytest.mark.skipif(PYPROJ_LT_3, reason="requires pyproj 3 or higher")
214 def test_estimate_utm_crs__projected(self):
215 assert self.landmarks.to_crs("EPSG:3857").estimate_utm_crs() == CRS(
216 "EPSG:32618"
217 )
218
219 @pytest.mark.skipif(PYPROJ_LT_3, reason="requires pyproj 3 or higher")
220 def test_estimate_utm_crs__out_of_bounds(self):
221 with pytest.raises(RuntimeError, match="Unable to determine UTM CRS"):
222 GeoSeries(
223 [Polygon([(0, 90), (1, 90), (2, 90)])], crs="EPSG:4326"
224 ).estimate_utm_crs()
225
226 @pytest.mark.skipif(PYPROJ_LT_3, reason="requires pyproj 3 or higher")
227 def test_estimate_utm_crs__missing_crs(self):
228 with pytest.raises(RuntimeError, match="crs must be set"):
229 GeoSeries([Polygon([(0, 90), (1, 90), (2, 90)])]).estimate_utm_crs()
230
184231 def test_fillna(self):
185232 # default is to fill with empty geometry
186233 na = self.na_none.fillna()
235282 reprojected_dict = self.g3.to_crs({"proj": "utm", "zone": "30N"})
236283 assert np.all(reprojected_string.geom_almost_equals(reprojected_dict))
237284
285 def test_from_wkb(self):
286 assert_geoseries_equal(self.g1, GeoSeries.from_wkb([self.t1.wkb, self.sq.wkb]))
287
288 def test_from_wkb_series(self):
289 s = pd.Series([self.t1.wkb, self.sq.wkb], index=[1, 2])
290 expected = self.g1.copy()
291 expected.index = pd.Index([1, 2])
292 assert_geoseries_equal(expected, GeoSeries.from_wkb(s))
293
294 def test_from_wkb_series_with_index(self):
295 index = [0]
296 s = pd.Series([self.t1.wkb, self.sq.wkb], index=[0, 2])
297 expected = self.g1.reindex(index)
298 assert_geoseries_equal(expected, GeoSeries.from_wkb(s, index=index))
299
300 def test_from_wkt(self):
301 assert_geoseries_equal(self.g1, GeoSeries.from_wkt([self.t1.wkt, self.sq.wkt]))
302
303 def test_from_wkt_series(self):
304 s = pd.Series([self.t1.wkt, self.sq.wkt], index=[1, 2])
305 expected = self.g1.copy()
306 expected.index = pd.Index([1, 2])
307 assert_geoseries_equal(expected, GeoSeries.from_wkt(s))
308
309 def test_from_wkt_series_with_index(self):
310 index = [0]
311 s = pd.Series([self.t1.wkt, self.sq.wkt], index=[0, 2])
312 expected = self.g1.reindex(index)
313 assert_geoseries_equal(expected, GeoSeries.from_wkt(s, index=index))
314
315 def test_to_wkb(self):
316 assert_series_equal(pd.Series([self.t1.wkb, self.sq.wkb]), self.g1.to_wkb())
317 assert_series_equal(
318 pd.Series([self.t1.wkb_hex, self.sq.wkb_hex]), self.g1.to_wkb(hex=True)
319 )
320
321 def test_to_wkt(self):
322 assert_series_equal(pd.Series([self.t1.wkt, self.sq.wkt]), self.g1.to_wkt())
323
238324
239325 def test_missing_values_empty_warning():
240326 s = GeoSeries([Point(1, 1), None, np.nan, BaseGeometry(), Polygon()])
341427 check_geoseries(s)
342428
343429 s = GeoSeries()
430 check_geoseries(s)
431
432 def test_data_is_none(self):
433 s = GeoSeries(index=range(3))
344434 check_geoseries(s)
345435
346436 def test_from_series(self):
11
22 import pandas as pd
33
4 from shapely.geometry import Point, Polygon, LineString, GeometryCollection
4 from shapely.geometry import Point, Polygon, LineString, GeometryCollection, box
55 from fiona.errors import DriverError
66
77 import geopandas
1313 DATA = os.path.join(os.path.abspath(os.path.dirname(__file__)), "data", "overlay")
1414
1515
16 pytestmark = pytest.mark.skipif(
17 not geopandas.sindex.has_sindex(), reason="overlay requires spatial index"
18 )
16 pytestmark = pytest.mark.skip_no_sindex
1917
2018
2119 @pytest.fixture
108106 def test_overlay_nybb(how):
109107 polydf = read_file(geopandas.datasets.get_path("nybb"))
110108
111 # construct circles dataframe
112 N = 10
113 b = [int(x) for x in polydf.total_bounds]
114 polydf2 = GeoDataFrame(
115 [
116 {"geometry": Point(x, y).buffer(10000), "value1": x + y, "value2": x - y}
117 for x, y in zip(
118 range(b[0], b[2], int((b[2] - b[0]) / N)),
119 range(b[1], b[3], int((b[3] - b[1]) / N)),
120 )
121 ],
122 crs=polydf.crs,
123 )
109 # The circles have been constructed and saved at the time the expected
110 # results were created (exact output of buffer algorithm can slightly
111 # change over time -> use saved ones)
112 # # construct circles dataframe
113 # N = 10
114 # b = [int(x) for x in polydf.total_bounds]
115 # polydf2 = GeoDataFrame(
116 # [
117 # {"geometry": Point(x, y).buffer(10000), "value1": x + y, "value2": x - y}
118 # for x, y in zip(
119 # range(b[0], b[2], int((b[2] - b[0]) / N)),
120 # range(b[1], b[3], int((b[3] - b[1]) / N)),
121 # )
122 # ],
123 # crs=polydf.crs,
124 # )
125 polydf2 = read_file(os.path.join(DATA, "nybb_qgis", "polydf2.shp"))
124126
125127 result = overlay(polydf, polydf2, how=how)
126128
187189 result.geometry.bounds, expected.geometry.bounds, check_less_precise=True
188190 )
189191
190 # now drop multipolygons
191 result.geometry[result.geometry.geom_type == "MultiPolygon"] = None
192 expected.geometry[expected.geometry.geom_type == "MultiPolygon"] = None
192 # There are two cases where the multipolygon have a different number
193 # of sub-geometries -> not solved by normalize (and thus drop for now)
194 if how == "symmetric_difference":
195 expected.loc[9, "geometry"] = None
196 result.loc[9, "geometry"] = None
197
198 if how == "union":
199 expected.loc[24, "geometry"] = None
200 result.loc[24, "geometry"] = None
193201
194202 assert_geodataframe_equal(
195 result, expected, check_crs=False, check_column_type=False
203 result,
204 expected,
205 normalize=True,
206 check_crs=False,
207 check_column_type=False,
208 check_less_precise=True,
196209 )
197210
198211
245258 result = result.sort_values(["col1", "col2"]).reset_index(drop=True)
246259
247260 assert_geodataframe_equal(
248 result, expected, check_column_type=False, check_less_precise=True
261 result,
262 expected,
263 normalize=True,
264 check_column_type=False,
265 check_less_precise=True,
249266 )
250267
251268
364381 expected = GeoDataFrame(
365382 [[1, 1, i1], [3, 2, i2]], columns=["col3", "col2", "geometry"]
366383 )
367 result = overlay(df3, df2)
384 result = overlay(df3, df2, keep_geom_type=True)
368385 assert_geodataframe_equal(result, expected)
386
387
388 def test_warn_on_keep_geom_type(dfs):
389
390 df1, df2 = dfs
391 polys3 = GeoSeries(
392 [
393 Polygon([(1, 1), (3, 1), (3, 3), (1, 3)]),
394 Polygon([(-1, 1), (1, 1), (1, 3), (-1, 3)]),
395 Polygon([(3, 3), (5, 3), (5, 5), (3, 5)]),
396 ]
397 )
398 df3 = GeoDataFrame({"geometry": polys3})
399
400 with pytest.warns(UserWarning, match="`keep_geom_type=True` in overlay"):
401 overlay(df2, df3, keep_geom_type=None)
369402
370403
371404 @pytest.mark.parametrize(
470503 assert_geodataframe_equal(
471504 result,
472505 expected,
506 normalize=True,
473507 check_column_type=False,
474508 check_less_precise=True,
475509 check_crs=False,
521555 df1 = GeoDataFrame({"col1": [1, 2], "geometry": polys1})
522556 with pytest.raises(TypeError):
523557 overlay(dfcol, df1, keep_geom_type=True)
558
559
560 def test_keep_geom_type_geometry_collection():
561 # GH 1581
562
563 df1 = read_file(os.path.join(DATA, "geom_type", "df1.geojson"))
564 df2 = read_file(os.path.join(DATA, "geom_type", "df2.geojson"))
565
566 intersection = overlay(df1, df2, keep_geom_type=True)
567 assert len(intersection) == 1
568 assert (intersection.geom_type == "Polygon").all()
569
570 intersection = overlay(df1, df2, keep_geom_type=False)
571 assert len(intersection) == 1
572 assert (intersection.geom_type == "GeometryCollection").all()
573
574
575 @pytest.mark.parametrize("make_valid", [True, False])
576 def test_overlap_make_valid(make_valid):
577 bowtie = Polygon([(1, 1), (9, 9), (9, 1), (1, 9), (1, 1)])
578 assert not bowtie.is_valid
579 fixed_bowtie = bowtie.buffer(0)
580 assert fixed_bowtie.is_valid
581
582 df1 = GeoDataFrame({"col1": ["region"], "geometry": GeoSeries([box(0, 0, 10, 10)])})
583 df_bowtie = GeoDataFrame(
584 {"col1": ["invalid", "valid"], "geometry": GeoSeries([bowtie, fixed_bowtie])}
585 )
586
587 if make_valid:
588 df_overlay_bowtie = overlay(df1, df_bowtie, make_valid=make_valid)
589 assert df_overlay_bowtie.at[0, "geometry"].equals(fixed_bowtie)
590 assert df_overlay_bowtie.at[1, "geometry"].equals(fixed_bowtie)
591 else:
592 with pytest.raises(ValueError, match="1 invalid input geometries"):
593 overlay(df1, df_bowtie, make_valid=make_valid)
88
99 import geopandas
1010 from geopandas import GeoDataFrame, GeoSeries
11 from geopandas._compat import PANDAS_GE_024, PANDAS_GE_025, PANDAS_GE_11
11 import geopandas._compat as compat
1212 from geopandas.array import from_shapely
1313
1414 from geopandas.testing import assert_geodataframe_equal, assert_geoseries_equal
3838 assert "POINT" in df._repr_html_()
3939
4040
41 @pytest.mark.skipif(
42 not PANDAS_GE_024, reason="formatting for EA only implemented in 0.24.0"
43 )
4441 def test_repr_boxed_display_precision():
4542 # geographic coordinates
4643 p1 = Point(10.123456789, 50.123456789)
7370 def test_repr_empty():
7471 # https://github.com/geopandas/geopandas/issues/1195
7572 s = GeoSeries([])
76 if PANDAS_GE_025:
73 if compat.PANDAS_GE_025:
7774 # repr with correct name fixed in pandas 0.25
7875 assert repr(s) == "GeoSeries([], dtype: geometry)"
7976 else:
274271 exp = pd.Series([3, 4], index=["value1", "value2"])
275272 assert_series_equal(df.sum(), exp)
276273
277 # series methods raise error
274 # series methods raise error (not supported for geometry)
278275 with pytest.raises(TypeError):
279276 s.sum()
280277
281278 with pytest.raises(TypeError):
282279 s.max()
283280
284 with pytest.raises(TypeError):
281 with pytest.raises((TypeError, ValueError)):
282 # TODO: remove ValueError after pandas-dev/pandas#32749
285283 s.idxmax()
286284
287285 # numerical ops raise an error
298296 assert_frame_equal(res, exp)
299297
300298
301 @pytest.mark.skipif(
302 not PANDAS_GE_024, reason="where for EA only implemented in 0.24.0 (GH24114)"
303 )
304299 def test_where(s):
305300 res = s.where(np.array([True, False, True]))
306301 exp = GeoSeries([Point(0, 0), None, Point(2, 2)])
459454
460455 # applying on the geometry column
461456 res = df.groupby("value2")["geometry"].apply(lambda x: x.cascaded_union)
462 if PANDAS_GE_11:
457 if compat.PANDAS_GE_11:
463458 exp = GeoSeries(
464459 [shapely.geometry.MultiPoint([(0, 0), (2, 2)]), Point(1, 1)],
465460 index=pd.Index([1, 2], name="value2"),
516511 result = subset.apply(lambda geom: geom.is_empty)
517512 expected = subset.is_empty
518513 np.testing.assert_allclose(result, expected)
514
515
516 def test_apply_convert_dtypes_keyword(s):
517 # ensure the convert_dtypes keyword is accepted
518 res = s.apply(lambda x: x, convert_dtype=True, args=())
519 assert_geoseries_equal(res, s)
520
521
522 @pytest.mark.parametrize("crs", [None, "EPSG:4326"])
523 def test_apply_no_geometry_result(df, crs):
524 if crs:
525 df = df.set_crs(crs)
526 result = df.apply(lambda col: col.astype(str), axis=0)
527 # TODO this should actually not return a GeoDataFrame
528 assert isinstance(result, GeoDataFrame)
529 expected = df.astype(str)
530 assert_frame_equal(result, expected)
531
532 result = df.apply(lambda col: col.astype(str), axis=1)
533 assert isinstance(result, GeoDataFrame)
534 assert_frame_equal(result, expected)
535
536
537 @pytest.mark.skipif(not compat.PANDAS_GE_10, reason="attrs introduced in pandas 1.0")
538 def test_preserve_attrs(df):
539 # https://github.com/geopandas/geopandas/issues/1654
540 df.attrs["name"] = "my_name"
541 attrs = {"name": "my_name"}
542 assert df.attrs == attrs
543
544 # preserve attrs in indexing operations
545 for subset in [df[:2], df[df["value1"] > 2], df[["value2", "geometry"]]]:
546 assert df.attrs == attrs
547
548 # preserve attrs in methods
549 df2 = df.reset_index()
550 assert df2.attrs == attrs
551
552
553 @pytest.mark.skipif(not compat.PANDAS_GE_12, reason="attrs introduced in pandas 1.0")
554 def test_preserve_flags(df):
555 # https://github.com/geopandas/geopandas/issues/1654
556 df = df.set_flags(allows_duplicate_labels=False)
557 assert df.flags.allows_duplicate_labels is False
558
559 # preserve flags in indexing operations
560 for subset in [df[:2], df[df["value1"] > 2], df[["value2", "geometry"]]]:
561 assert df.flags.allows_duplicate_labels is False
562
563 # preserve attrs in methods
564 df2 = df.reset_index()
565 assert df2.flags.allows_duplicate_labels is False
566
567 # it is honored for operations that introduce duplicate labels
568 with pytest.raises(ValueError):
569 df.reindex([0, 0, 1])
570
571 with pytest.raises(ValueError):
572 df[["value1", "value1", "geometry"]]
573
574 with pytest.raises(ValueError):
575 pd.concat([df, df])
0 from distutils.version import LooseVersion
01 import itertools
12 import warnings
23
34 import numpy as np
45 import pandas as pd
56
7 from shapely import wkt
68 from shapely.affinity import rotate
79 from shapely.geometry import (
810 MultiPolygon,
1820
1921 from geopandas import GeoDataFrame, GeoSeries, read_file
2022 from geopandas.datasets import get_path
23 import geopandas._compat as compat
2124
2225 import pytest
2326
2427 matplotlib = pytest.importorskip("matplotlib")
2528 matplotlib.use("Agg")
2629 import matplotlib.pyplot as plt # noqa
30
31 try: # skipif and importorskip do not work for decorators
32 from matplotlib.testing.decorators import check_figures_equal
33
34 MPL_DECORATORS = True
35 except ImportError:
36 MPL_DECORATORS = False
2737
2838
2939 @pytest.fixture(autouse=True)
3848 except KeyError:
3949 MPL_DFT_COLOR = matplotlib.rcParams["axes.color_cycle"][0]
4050
51 plt.rcParams.update({"figure.max_open_warning": 0})
52
4153
4254 class TestPointPlotting:
4355 def setup_method(self):
8597 expected_colors = cmap(np.arange(self.N) / (self.N - 1))
8698 _check_colors(self.N, ax.collections[0].get_facecolors(), expected_colors)
8799
100 def test_series_color_no_index(self):
101
102 # Color order with ordered index
103 colors_ord = pd.Series(["a", "b", "c", "a", "b", "c", "a", "b", "c", "a"])
104
105 # Plot using Series as color
106 ax1 = self.df.plot(colors_ord)
107
108 # Correct answer: Add as column to df and plot
109 self.df["colors_ord"] = colors_ord
110 ax2 = self.df.plot("colors_ord")
111
112 # Confirm out-of-order index re-sorted
113 point_colors1 = ax1.collections[0].get_facecolors()
114 point_colors2 = ax2.collections[0].get_facecolors()
115 np.testing.assert_array_equal(point_colors1[1], point_colors2[1])
116
117 def test_series_color_index(self):
118
119 # Color order with out-of-order index
120 colors_ord = pd.Series(
121 ["a", "a", "a", "a", "b", "b", "b", "c", "c", "c"],
122 index=[0, 3, 6, 9, 1, 4, 7, 2, 5, 8],
123 )
124
125 # Plot using Series as color
126 ax1 = self.df.plot(colors_ord)
127
128 # Correct answer: Add as column to df and plot
129 self.df["colors_ord"] = colors_ord
130 ax2 = self.df.plot("colors_ord")
131
132 # Confirm out-of-order index re-sorted
133 point_colors1 = ax1.collections[0].get_facecolors()
134 point_colors2 = ax2.collections[0].get_facecolors()
135 np.testing.assert_array_equal(point_colors1[1], point_colors2[1])
136
88137 def test_colormap(self):
89138
90139 # without specifying values but cmap specified -> no uniform color
108157 # colors
109158 ax = self.points.plot(cmap=plt.get_cmap("Set1", lut=5))
110159 cmap = plt.get_cmap("Set1", lut=5)
111 exp_colors = cmap(list(range(5)) * 3)
160 exp_colors = cmap(list(range(5)) * 2)
112161 _check_colors(self.N, ax.collections[0].get_facecolors(), exp_colors)
113162
114163 def test_single_color(self):
170219 def test_style_kwargs_alpha(self):
171220 ax = self.df.plot(alpha=0.7)
172221 np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha())
173 with pytest.raises(TypeError): # no list allowed for alpha
174 ax = self.df.plot(alpha=[0.7, 0.2])
222 try:
223 ax = self.df.plot(alpha=np.linspace(0, 0.0, 1.0, self.N))
224 except TypeError:
225 # no list allowed for alpha up to matplotlib 3.3
226 pass
227 else:
228 np.testing.assert_array_equal(
229 np.linspace(0, 0.0, 1.0, self.N), ax.collections[0].get_alpha()
230 )
175231
176232 def test_legend(self):
177233 with warnings.catch_warnings(record=True) as _: # don't print warning
187243 # the colorbar matches the Point colors
188244 ax = self.df.plot(column="values", cmap="RdYlGn", legend=True)
189245 point_colors = ax.collections[0].get_facecolors()
190 cbar_colors = ax.get_figure().axes[1].collections[0].get_facecolors()
246 cbar_colors = _get_colorbar_ax(ax.get_figure()).collections[-1].get_facecolors()
191247 # first point == bottom of colorbar
192248 np.testing.assert_array_equal(point_colors[0], cbar_colors[0])
193249 # last point == top of colorbar
197253 # the colorbar matches the Point colors
198254 ax = self.df.plot(column="values", categorical=True, legend=True)
199255 point_colors = ax.collections[0].get_facecolors()
200 cbar_colors = ax.get_legend().axes.collections[0].get_facecolors()
256 cbar_colors = ax.get_legend().axes.collections[-1].get_facecolors()
201257 # first point == bottom of colorbar
202258 np.testing.assert_array_equal(point_colors[0], cbar_colors[0])
203259 # last point == top of colorbar
210266 )
211267 ax = self.df[1:].plot(column="exp", cmap="RdYlGn", legend=True, norm=norm)
212268 point_colors = ax.collections[0].get_facecolors()
213 cbar_colors = ax.get_figure().axes[1].collections[0].get_facecolors()
269 cbar_colors = _get_colorbar_ax(ax.get_figure()).collections[-1].get_facecolors()
214270 # first point == bottom of colorbar
215271 np.testing.assert_array_equal(point_colors[0], cbar_colors[0])
216272 # last point == top of colorbar
232288 np.testing.assert_array_equal(actual_colors_orig[1], actual_colors_sub[0])
233289
234290 def test_empty_plot(self):
291
292 s = GeoSeries([Polygon()])
293 with pytest.warns(UserWarning):
294 ax = s.plot()
295 assert len(ax.collections) == 0
235296 s = GeoSeries([])
236297 with pytest.warns(UserWarning):
237298 ax = s.plot()
241302 ax = df.plot()
242303 assert len(ax.collections) == 0
243304
305 def test_empty_geometry(self):
306
307 if compat.USE_PYGEOS:
308 s = GeoSeries([wkt.loads("POLYGON EMPTY")])
309 s = GeoSeries(
310 [Polygon([(0, 0), (1, 0), (1, 1)]), wkt.loads("POLYGON EMPTY")]
311 )
312 ax = s.plot()
313 assert len(ax.collections) == 1
314 if not compat.USE_PYGEOS:
315 s = GeoSeries([Polygon([(0, 0), (1, 0), (1, 1)]), Polygon()])
316 ax = s.plot()
317 assert len(ax.collections) == 1
318
319 # more complex case with GEOMETRYCOLLECTION EMPTY, POINT EMPTY and NONE
320 poly = Polygon([(-1, -1), (-1, 2), (2, 2), (2, -1), (-1, -1)])
321 point = Point(0, 1)
322 point_ = Point(10, 10)
323 empty_point = Point()
324
325 gdf = GeoDataFrame(geometry=[point, empty_point, point_])
326 gdf["geometry"] = gdf.intersection(poly)
327 gdf.loc[3] = [None]
328 ax = gdf.plot()
329 assert len(ax.collections) == 1
330
244331 def test_multipoints(self):
245332
246333 # MultiPoints
248335 _check_colors(4, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR] * 4)
249336
250337 ax = self.df2.plot(column="values")
251 cmap = plt.get_cmap()
338 cmap = plt.get_cmap(lut=2)
252339 expected_colors = [cmap(0)] * self.N + [cmap(1)] * self.N
253 _check_colors(2, ax.collections[0].get_facecolors(), expected_colors)
340 _check_colors(20, ax.collections[0].get_facecolors(), expected_colors)
254341
255342 ax = self.df2.plot(color=["r", "b"])
256343 # colors are repeated for all components within a MultiPolygon
257 _check_colors(2, ax.collections[0].get_facecolors(), ["r"] * 10 + ["b"] * 10)
344 _check_colors(20, ax.collections[0].get_facecolors(), ["r"] * 10 + ["b"] * 10)
258345
259346 def test_multipoints_alpha(self):
260347 ax = self.df2.plot(alpha=0.7)
261348 np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha())
262 with pytest.raises(TypeError): # no list allowed for alpha
349 try:
263350 ax = self.df2.plot(alpha=[0.7, 0.2])
351 except TypeError:
352 # no list allowed for alpha up to matplotlib 3.3
353 pass
354 else:
355 np.testing.assert_array_equal(
356 [0.7] * 10 + [0.2] * 10, ax.collections[0].get_alpha()
357 )
264358
265359 def test_categories(self):
266360 self.df["cats_object"] = ["cat1", "cat2"] * 5
440534 def test_style_kwargs_alpha(self):
441535 ax = self.df.plot(alpha=0.7)
442536 np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha())
443 with pytest.raises(TypeError): # no list allowed for alpha
444 ax = self.df.plot(alpha=[0.7, 0.2])
537 try:
538 ax = self.df.plot(alpha=np.linspace(0, 0.0, 1.0, self.N))
539 except TypeError:
540 # no list allowed for alpha up to matplotlib 3.3
541 pass
542 else:
543 np.testing.assert_array_equal(
544 np.linspace(0, 0.0, 1.0, self.N), ax.collections[0].get_alpha()
545 )
445546
446547 def test_subplots_norm(self):
447548 # colors of subplots are the same as for plot (norm is applied)
461562 # MultiLineStrings
462563 ax = self.df2.plot()
463564 assert len(ax.collections[0].get_paths()) == 4
464 _check_colors(4, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR] * 4)
565 _check_colors(4, ax.collections[0].get_edgecolors(), [MPL_DFT_COLOR] * 4)
465566
466567 ax = self.df2.plot("values")
467568 cmap = plt.get_cmap(lut=2)
468569 # colors are repeated for all components within a MultiLineString
469570 expected_colors = [cmap(0), cmap(0), cmap(1), cmap(1)]
470 _check_colors(4, ax.collections[0].get_facecolors(), expected_colors)
571 _check_colors(4, ax.collections[0].get_edgecolors(), expected_colors)
471572
472573 ax = self.df2.plot(color=["r", "b"])
473574 # colors are repeated for all components within a MultiLineString
474 _check_colors(4, ax.collections[0].get_facecolors(), ["r", "r", "b", "b"])
575 _check_colors(4, ax.collections[0].get_edgecolors(), ["r", "r", "b", "b"])
475576
476577
477578 class TestPolygonPlotting:
497598 ax = self.polys.plot(color="green")
498599 _check_colors(2, ax.collections[0].get_facecolors(), ["green"] * 2)
499600 # color only sets facecolor
500 _check_colors(2, ax.collections[0].get_edgecolors(), ["k"] * 2)
601 assert len(ax.collections[0].get_edgecolors()) == 0
501602
502603 ax = self.df.plot(color="green")
503604 _check_colors(2, ax.collections[0].get_facecolors(), ["green"] * 2)
504 _check_colors(2, ax.collections[0].get_edgecolors(), ["k"] * 2)
605 assert len(ax.collections[0].get_edgecolors()) == 0
505606
506607 # check rgba tuple GH1178
507608 ax = self.df.plot(color=(0.5, 0.5, 0.5))
601702 # alpha
602703 ax = self.df.plot(alpha=0.7)
603704 np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha())
604 with pytest.raises(TypeError): # no list allowed for alpha
705 try:
605706 ax = self.df.plot(alpha=[0.7, 0.2])
707 except TypeError:
708 # no list allowed for alpha up to matplotlib 3.3
709 pass
710 else:
711 np.testing.assert_array_equal([0.7, 0.2], ax.collections[0].get_alpha())
606712
607713 def test_legend_kwargs(self):
608714
625731 legend=True,
626732 legend_kwds={"label": label_txt},
627733 )
628
629 assert ax.get_figure().axes[1].get_ylabel() == label_txt
734 cax = _get_colorbar_ax(ax.get_figure())
735 assert cax.get_ylabel() == label_txt
630736
631737 ax = self.df.plot(
632738 column="values",
635741 legend_kwds={"label": label_txt, "orientation": "horizontal"},
636742 )
637743
638 assert ax.get_figure().axes[1].get_xlabel() == label_txt
744 cax = _get_colorbar_ax(ax.get_figure())
745 assert cax.get_xlabel() == label_txt
639746
640747 def test_fmt_ignore(self):
641748 # test if fmt is removed if scheme is not passed (it would raise Error)
699806 def test_multipolygons_alpha(self):
700807 ax = self.df2.plot(alpha=0.7)
701808 np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha())
702 with pytest.raises(TypeError): # no list allowed for alpha
809 try:
703810 ax = self.df2.plot(alpha=[0.7, 0.2])
811 except TypeError:
812 # no list allowed for alpha up to matplotlib 3.3
813 pass
814 else:
815 np.testing.assert_array_equal(
816 [0.7, 0.7, 0.2, 0.2], ax.collections[0].get_alpha()
817 )
704818
705819 def test_subplots_norm(self):
706820 # colors of subplots are the same as for plot (norm is applied)
753867 def test_colors(self):
754868 # default uniform color
755869 ax = self.series.plot()
756 _check_colors(1, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR]) # poly
757 _check_colors(2, ax.collections[1].get_edgecolors(), [MPL_DFT_COLOR]) # line
758 _check_colors(2, ax.collections[2].get_facecolors(), [MPL_DFT_COLOR]) # point
870 _check_colors(
871 2, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR] * 2
872 ) # poly
873 _check_colors(
874 2, ax.collections[1].get_edgecolors(), [MPL_DFT_COLOR] * 2
875 ) # line
876 _check_colors(1, ax.collections[2].get_facecolors(), [MPL_DFT_COLOR]) # point
759877
760878 def test_values(self):
761879 ax = self.df.plot("values")
762880 cmap = plt.get_cmap()
763 exp_colors = cmap(np.arange(2) / 1)
764 _check_colors(1, ax.collections[0].get_facecolors(), exp_colors) # poly
765 _check_colors(2, ax.collections[1].get_edgecolors(), [exp_colors[0]]) # line
766 _check_colors(2, ax.collections[2].get_facecolors(), [exp_colors[1]]) # point
881 exp_colors = cmap([0.0, 1.0])
882 _check_colors(2, ax.collections[0].get_facecolors(), exp_colors) # poly
883 _check_colors(
884 2, ax.collections[1].get_edgecolors(), [exp_colors[0]] * 2
885 ) # line
886 _check_colors(1, ax.collections[2].get_facecolors(), [exp_colors[1]]) # point
767887
768888
769889 class TestNonuniformGeometryPlotting:
845965 def test_style_kwargs_alpha(self):
846966 ax = self.df.plot(alpha=0.7)
847967 np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha())
848 with pytest.raises(TypeError): # no list allowed for alpha
849 ax = self.df.plot(alpha=[0.7, 0.2, 0.9])
968 # TODO splitting array-like arguments for the different plot types
969 # is not yet supported - https://github.com/geopandas/geopandas/issues/1379
970 # try:
971 # ax = self.df.plot(alpha=[0.7, 0.2, 0.9])
972 # except TypeError:
973 # # no list allowed for alpha up to matplotlib 3.3
974 # pass
975 # else:
976 # np.testing.assert_array_equal(
977 # [0.7, 0.2, 0.9], ax.collections[0].get_alpha()
978 # )
850979
851980
852981 class TestGeographicAspect:
8761005 def test_manual(self):
8771006 ax = self.north.geometry.plot(aspect="equal")
8781007 assert ax.get_aspect() in ["equal", 1.0]
1008 self.north.geometry.plot(ax=ax, aspect=None)
1009 assert ax.get_aspect() in ["equal", 1.0]
8791010 ax2 = self.north.geometry.plot(aspect=0.5)
1011 assert ax2.get_aspect() == 0.5
1012 self.north.geometry.plot(ax=ax2, aspect=None)
8801013 assert ax2.get_aspect() == 0.5
8811014 ax3 = self.north_proj.geometry.plot(aspect=0.5)
8821015 assert ax3.get_aspect() == 0.5
1016 self.north_proj.geometry.plot(ax=ax3, aspect=None)
1017 assert ax3.get_aspect() == 0.5
8831018 ax = self.north.plot(aspect="equal")
1019 assert ax.get_aspect() in ["equal", 1.0]
1020 self.north.plot(ax=ax, aspect=None)
8841021 assert ax.get_aspect() in ["equal", 1.0]
8851022 ax2 = self.north.plot(aspect=0.5)
8861023 assert ax2.get_aspect() == 0.5
1024 self.north.plot(ax=ax2, aspect=None)
1025 assert ax2.get_aspect() == 0.5
8871026 ax3 = self.north_proj.plot(aspect=0.5)
1027 assert ax3.get_aspect() == 0.5
1028 self.north_proj.plot(ax=ax3, aspect=None)
8881029 assert ax3.get_aspect() == 0.5
8891030 ax = self.north.plot("pop_est", aspect="equal")
8901031 assert ax.get_aspect() in ["equal", 1.0]
1032 self.north.plot("pop_est", ax=ax, aspect=None)
1033 assert ax.get_aspect() in ["equal", 1.0]
8911034 ax2 = self.north.plot("pop_est", aspect=0.5)
8921035 assert ax2.get_aspect() == 0.5
1036 self.north.plot("pop_est", ax=ax2, aspect=None)
1037 assert ax2.get_aspect() == 0.5
8931038 ax3 = self.north_proj.plot("pop_est", aspect=0.5)
1039 assert ax3.get_aspect() == 0.5
1040 self.north_proj.plot("pop_est", ax=ax3, aspect=None)
8941041 assert ax3.get_aspect() == 0.5
8951042
8961043
9151062 )
9161063 labels = [t.get_text() for t in ax.get_legend().get_texts()]
9171064 expected = [
918 u"[ 140.00, 5217064.00]",
919 u"( 5217064.00, 19532732.33]",
920 u"( 19532732.33, 1379302771.00]",
1065 u" 140.00, 5217064.00",
1066 u" 5217064.00, 19532732.33",
1067 u" 19532732.33, 1379302771.00",
9211068 ]
9221069 assert labels == expected
9231070
9501097 column="NEGATIVES", scheme="FISHER_JENKS", k=3, cmap="OrRd", legend=True
9511098 )
9521099 labels = [t.get_text() for t in ax.get_legend().get_texts()]
953 expected = [u"[-10.00, -3.41]", u"( -3.41, 3.30]", u"( 3.30, 10.00]"]
1100 expected = [u"-10.00, -3.41", u" -3.41, 3.30", u" 3.30, 10.00"]
9541101 assert labels == expected
9551102
9561103 def test_fmt(self):
9631110 legend_kwds={"fmt": "{:.0f}"},
9641111 )
9651112 labels = [t.get_text() for t in ax.get_legend().get_texts()]
966 expected = [u"[-10, -3]", u"( -3, 3]", u"( 3, 10]"]
1113 expected = [u"-10, -3", u" -3, 3", u" 3, 10"]
1114 assert labels == expected
1115
1116 def test_interval(self):
1117 ax = self.df.plot(
1118 column="NEGATIVES",
1119 scheme="FISHER_JENKS",
1120 k=3,
1121 cmap="OrRd",
1122 legend=True,
1123 legend_kwds={"interval": True},
1124 )
1125 labels = [t.get_text() for t in ax.get_legend().get_texts()]
1126 expected = [u"[-10.00, -3.41]", u"( -3.41, 3.30]", u"( 3.30, 10.00]"]
9671127 assert labels == expected
9681128
9691129 @pytest.mark.parametrize("scheme", ["FISHER_JENKS", "FISHERJENKS"])
9861146 legend=True,
9871147 )
9881148 labels = [t.get_text() for t in ax.get_legend().get_texts()]
989 expected = ["[ 140.00, 9961396.00]", "( 9961396.00, 1379302771.00]"]
1149 expected = [" 140.00, 9961396.00", " 9961396.00, 1379302771.00"]
9901150 assert labels == expected
9911151
9921152 def test_invalid_scheme(self):
10161176 # base case
10171177 with warnings.catch_warnings(record=True) as _: # don't print warning
10181178 ax = self.df.plot(column="pop_est", cmap="OrRd", legend=True)
1019 plot_height = ax.get_figure().get_axes()[0].get_position().height
1020 legend_height = ax.get_figure().get_axes()[1].get_position().height
1179 plot_height = _get_ax(ax.get_figure(), "").get_position().height
1180 legend_height = _get_ax(ax.get_figure(), "<colorbar>").get_position().height
10211181 assert abs(plot_height - legend_height) >= 1e-6
10221182 # fix heights with cax argument
1023 ax2 = plt.axes()
1183 fig, ax2 = plt.subplots()
10241184 from mpl_toolkits.axes_grid1 import make_axes_locatable
10251185
10261186 divider = make_axes_locatable(ax2)
1027 cax = divider.append_axes("right", size="5%", pad=0.1)
1187 cax = divider.append_axes("right", size="5%", pad=0.1, label="fixed_colorbar")
10281188 with warnings.catch_warnings(record=True) as _:
10291189 ax2 = self.df.plot(
10301190 column="pop_est", cmap="OrRd", legend=True, cax=cax, ax=ax2
10311191 )
1032 plot_height = ax2.get_figure().get_axes()[0].get_position().height
1033 legend_height = ax2.get_figure().get_axes()[1].get_position().height
1192 plot_height = _get_ax(fig, "").get_position().height
1193 legend_height = _get_ax(fig, "fixed_colorbar").get_position().height
10341194 assert abs(plot_height - legend_height) < 1e-6
10351195
10361196
12061366 coll = _plot_linestring_collection(ax, self.lines, self.values, vmin=3, vmax=5)
12071367 fig.canvas.draw_idle()
12081368 cmap = plt.get_cmap()
1209 expected_colors = cmap([0])
1210 _check_colors(self.N, coll.get_color(), expected_colors)
1369 expected_colors = [cmap(0)]
1370 _check_colors(self.N, coll.get_color(), expected_colors * 3)
12111371 ax.cla()
12121372
12131373 def test_polygons(self):
12221382 # default: single default matplotlib color
12231383 coll = _plot_polygon_collection(ax, self.polygons)
12241384 _check_colors(self.N, coll.get_facecolor(), [MPL_DFT_COLOR] * self.N)
1225 _check_colors(self.N, coll.get_edgecolor(), ["k"] * self.N)
1385 assert len(coll.get_edgecolor()) == 0
12261386 ax.cla()
12271387
12281388 # default: color sets both facecolor and edgecolor
12571417 # only setting facecolor keeps default for edgecolor
12581418 coll = _plot_polygon_collection(ax, self.polygons, facecolor="g")
12591419 _check_colors(self.N, coll.get_facecolor(), ["g"] * self.N)
1260 _check_colors(self.N, coll.get_edgecolor(), ["k"] * self.N)
1420 assert len(coll.get_edgecolor()) == 0
12611421 ax.cla()
12621422
12631423 # custom facecolor and edgecolor
13001460 coll = _plot_polygon_collection(ax, self.polygons, self.values, vmin=3, vmax=5)
13011461 fig.canvas.draw_idle()
13021462 cmap = plt.get_cmap()
1303 exp_colors = cmap([0])
1304 _check_colors(self.N, coll.get_facecolor(), exp_colors)
1463 exp_colors = [cmap(0)]
1464 _check_colors(self.N, coll.get_facecolor(), exp_colors * 3)
13051465 ax.cla()
13061466
13071467 # override edgecolor
13121472 _check_colors(self.N, coll.get_facecolor(), exp_colors)
13131473 _check_colors(self.N, coll.get_edgecolor(), ["g"] * self.N)
13141474 ax.cla()
1475
1476
1477 @pytest.mark.skipif(not compat.PANDAS_GE_025, reason="requires pandas > 0.24")
1478 class TestGeoplotAccessor:
1479 def setup_method(self):
1480 geometries = [Polygon([(0, 0), (1, 0), (1, 1)]), Point(1, 3)]
1481 x = [1, 2]
1482 y = [10, 20]
1483 self.gdf = GeoDataFrame(
1484 {"geometry": geometries, "x": x, "y": y}, crs="EPSG:4326"
1485 )
1486 self.df = pd.DataFrame({"x": x, "y": y})
1487
1488 def compare_figures(self, kind, fig_test, fig_ref, kwargs):
1489 """Compare Figures."""
1490 ax_pandas_1 = fig_test.subplots()
1491 self.df.plot(kind=kind, ax=ax_pandas_1, **kwargs)
1492 ax_geopandas_1 = fig_ref.subplots()
1493 self.gdf.plot(kind=kind, ax=ax_geopandas_1, **kwargs)
1494
1495 ax_pandas_2 = fig_test.subplots()
1496 getattr(self.df.plot, kind)(ax=ax_pandas_2, **kwargs)
1497 ax_geopandas_2 = fig_ref.subplots()
1498 getattr(self.gdf.plot, kind)(ax=ax_geopandas_2, **kwargs)
1499
1500 _pandas_kinds = []
1501 if compat.PANDAS_GE_025:
1502 from geopandas.plotting import GeoplotAccessor
1503
1504 _pandas_kinds = GeoplotAccessor._pandas_kinds
1505
1506 if MPL_DECORATORS:
1507
1508 @pytest.mark.parametrize("kind", _pandas_kinds)
1509 @check_figures_equal(extensions=["png", "pdf"])
1510 def test_pandas_kind(self, kind, fig_test, fig_ref):
1511 """Test Pandas kind."""
1512 import importlib
1513
1514 _scipy_dependent_kinds = ["kde", "density"] # Needs scipy
1515 _y_kinds = ["pie"] # Needs y
1516 _xy_kinds = ["scatter", "hexbin"] # Needs x & y
1517 kwargs = {}
1518 if kind in _scipy_dependent_kinds:
1519 if not importlib.util.find_spec("scipy"):
1520 with pytest.raises(
1521 ModuleNotFoundError, match="No module named 'scipy'"
1522 ):
1523 self.gdf.plot(kind=kind)
1524 elif kind in _y_kinds:
1525 kwargs = {"y": "y"}
1526 elif kind in _xy_kinds:
1527 kwargs = {"x": "x", "y": "y"}
1528
1529 self.compare_figures(kind, fig_test, fig_ref, kwargs)
1530 plt.close("all")
1531
1532 @check_figures_equal(extensions=["png", "pdf"])
1533 def test_geo_kind(self, fig_test, fig_ref):
1534 """Test Geo kind."""
1535 ax1 = fig_test.subplots()
1536 self.gdf.plot(ax=ax1)
1537 ax2 = fig_ref.subplots()
1538 getattr(self.gdf.plot, "geo")(ax=ax2)
1539 plt.close("all")
1540
1541 def test_invalid_kind(self):
1542 """Test invalid kinds."""
1543 with pytest.raises(ValueError, match="error is not a valid plot kind"):
1544 self.gdf.plot(kind="error")
1545 with pytest.raises(
1546 AttributeError,
1547 match="'GeoplotAccessor' object has no attribute 'error'",
1548 ):
1549 self.gdf.plot.error()
13151550
13161551
13171552 def test_column_values():
13481583 # Check raised error: is df rows number equal to column legth?
13491584 with pytest.raises(ValueError, match="different number of rows"):
13501585 ax = df.plot(column=np.array([1, 2, 3]))
1586
1587
1588 def test_polygon_patch():
1589 # test adapted from descartes by Sean Gillies
1590 # (BSD license, https://pypi.org/project/descartes).
1591 from geopandas.plotting import _PolygonPatch
1592 from matplotlib.patches import PathPatch
1593
1594 polygon = (
1595 Point(0, 0).buffer(10.0).difference(MultiPoint([(-5, 0), (5, 0)]).buffer(3.0))
1596 )
1597
1598 patch = _PolygonPatch(polygon)
1599 assert isinstance(patch, PathPatch)
1600 path = patch.get_path()
1601 if compat.GEOS_GE_390:
1602 assert len(path.vertices) == len(path.codes) == 195
1603 else:
1604 assert len(path.vertices) == len(path.codes) == 198
13511605
13521606
13531607 def _check_colors(N, actual_colors, expected_colors, alpha=None):
13801634 actual_colors = map(tuple, actual_colors)
13811635 all_actual_colors = list(itertools.islice(itertools.cycle(actual_colors), N))
13821636
1637 assert len(all_actual_colors) == len(expected_colors), (
1638 "Different " "lengths of actual and expected colors!"
1639 )
1640
13831641 for actual, expected in zip(all_actual_colors, expected_colors):
13841642 assert actual == conv.to_rgba(expected, alpha=alpha), "{} != {}".format(
13851643 actual, conv.to_rgba(expected, alpha=alpha)
13871645
13881646
13891647 def _style_to_linestring_onoffseq(linestyle, linewidth):
1390 """ Converts a linestyle string representation, namely one of:
1391 ['dashed', 'dotted', 'dashdot', 'solid'],
1392 documented in `Collections.set_linestyle`,
1393 to the form `onoffseq`.
1648 """Converts a linestyle string representation, namely one of:
1649 ['dashed', 'dotted', 'dashdot', 'solid'],
1650 documented in `Collections.set_linestyle`,
1651 to the form `onoffseq`.
13941652 """
13951653 offset, dashes = matplotlib.lines._get_dash_pattern(linestyle)
13961654 return matplotlib.lines._scale_dashes(offset, dashes, linewidth)
14011659 # TODO: Vertices values are twice the actual path; unclear, why.
14021660 path = matplotlib.markers.MarkerStyle(markerstyle).get_path()
14031661 return path.vertices / 2
1662
1663
1664 def _get_ax(fig, label):
1665 """
1666 Helper function to not rely on the order of `fig.axes`.
1667 Previously, we did `fig.axes[1]`, but in matplotlib 3.4 the order switched
1668 and the colorbar ax was first and subplot ax second.
1669 """
1670 if matplotlib.__version__ < LooseVersion("3.0.0"):
1671 if label == "<colorbar>":
1672 return fig.axes[1]
1673 elif label == "":
1674 return fig.axes[0]
1675 for ax in fig.axes:
1676 if ax.get_label() == label:
1677 return ax
1678 else:
1679 raise ValueError("no ax found with label {0}".format(label))
1680
1681
1682 def _get_colorbar_ax(fig):
1683 return _get_ax(fig, "<colorbar>")
1111
1212 import geopandas
1313 from geopandas import _compat as compat
14 from geopandas import GeoDataFrame, GeoSeries, read_file, sindex, datasets
14 from geopandas import GeoDataFrame, GeoSeries, read_file, datasets
1515
1616 import pytest
1717 import numpy as np
1818
1919
20 class TestNoSindex:
21 @pytest.mark.skipif(sindex.has_sindex(), reason="Spatial index present, skipping")
22 def test_no_sindex_installed(self):
23 """Checks that an error is raised when no spatial index is present."""
24 with pytest.raises(ImportError):
25 sindex.get_sindex_class()
26
27 @pytest.mark.skipif(
28 compat.HAS_RTREE or not compat.HAS_PYGEOS,
29 reason="rtree cannot be disabled via flags",
30 )
31 def test_no_sindex_active(self):
32 """Checks that an error is given when rtree is not installed
33 and compat.USE_PYGEOS is False.
34 """
35 state = compat.USE_PYGEOS # try to save state
36 compat.set_use_pygeos(False)
37 with pytest.raises(ImportError):
38 sindex.get_sindex_class()
39 compat.set_use_pygeos(state) # try to restore state
40
41
4220 @pytest.mark.skipif(sys.platform.startswith("win"), reason="fails on AppVeyor")
43 @pytest.mark.skipif(not sindex.has_sindex(), reason="Spatial index absent, skipping")
21 @pytest.mark.skip_no_sindex
4422 class TestSeriesSindex:
23 def test_has_sindex(self):
24 """Test the has_sindex method."""
25 t1 = Polygon([(0, 0), (1, 0), (1, 1)])
26 t2 = Polygon([(0, 0), (1, 1), (0, 1)])
27
28 d = GeoDataFrame({"geom": [t1, t2]}, geometry="geom")
29 assert not d.has_sindex
30 d.sindex
31 assert d.has_sindex
32 d.geometry.values._sindex = None
33 assert not d.has_sindex
34 d.sindex
35 assert d.has_sindex
36
37 s = GeoSeries([t1, t2])
38 assert not s.has_sindex
39 s.sindex
40 assert s.has_sindex
41 s.values._sindex = None
42 assert not s.has_sindex
43 s.sindex
44 assert s.has_sindex
45
4546 def test_empty_geoseries(self):
4647 """Tests creating a spatial index from an empty GeoSeries."""
47 with pytest.warns(FutureWarning, match="Generated spatial index is empty"):
48 # TODO: add checking len(GeoSeries().sindex) == 0 once deprecated
49 assert not GeoSeries(dtype=object).sindex
48 s = GeoSeries(dtype=object)
49 assert not s.sindex
50 assert len(s.sindex) == 0
5051
5152 def test_point(self):
5253 s = GeoSeries([Point(0, 0)])
5960 def test_empty_point(self):
6061 """Tests that a single empty Point results in an empty tree."""
6162 s = GeoSeries([Point()])
62
63 with pytest.warns(FutureWarning, match="Generated spatial index is empty"):
64 # TODO: add checking len(s) == 0 once deprecated
65 assert not s.sindex
66
67 assert s._sindex_generated is True
63 assert not s.sindex
64 assert len(s.sindex) == 0
6865
6966 def test_polygons(self):
7067 t1 = Polygon([(0, 0), (1, 0), (1, 1)])
8582
8683 def test_lazy_build(self):
8784 s = GeoSeries([Point(0, 0)])
88 assert s._sindex is None
85 assert s.values._sindex is None
8986 assert s.sindex.size == 1
90 assert s._sindex is not None
87 assert s.values._sindex is not None
88
89 def test_rebuild_on_item_change(self):
90 s = GeoSeries([Point(0, 0)])
91 original_index = s.sindex
92 s.iloc[0] = Point(0, 0)
93 assert s.sindex is not original_index
94
95 def test_rebuild_on_slice(self):
96 s = GeoSeries([Point(0, 0), Point(0, 0)])
97 original_index = s.sindex
98 # Select a couple of rows
99 sliced = s.iloc[:1]
100 assert sliced.sindex is not original_index
101 # Select all rows
102 sliced = s.iloc[:]
103 assert sliced.sindex is original_index
104 # Select all rows and flip
105 sliced = s.iloc[::-1]
106 assert sliced.sindex is not original_index
91107
92108
93109 @pytest.mark.skipif(sys.platform.startswith("win"), reason="fails on AppVeyor")
94 @pytest.mark.skipif(not sindex.has_sindex(), reason="Spatial index absent, skipping")
110 @pytest.mark.skip_no_sindex
95111 class TestFrameSindex:
96112 def setup_method(self):
97113 data = {
98114 "A": range(5),
99115 "B": range(-5, 0),
100 "location": [Point(x, y) for x, y in zip(range(5), range(5))],
116 "geom": [Point(x, y) for x, y in zip(range(5), range(5))],
101117 }
102 self.df = GeoDataFrame(data, geometry="location")
118 self.df = GeoDataFrame(data, geometry="geom")
103119
104120 def test_sindex(self):
105121 self.df.crs = "epsg:4326"
106122 assert self.df.sindex.size == 5
107 with pytest.warns(FutureWarning, match="`objects` is deprecated"):
108 # TODO: remove warning check once deprecated
109 hits = list(self.df.sindex.intersection((2.5, 2.5, 4, 4), objects=True))
123 hits = list(self.df.sindex.intersection((2.5, 2.5, 4, 4)))
110124 assert len(hits) == 2
111 assert hits[0].object == 3
125 assert hits[0] == 3
112126
113127 def test_lazy_build(self):
114 assert self.df._sindex is None
128 assert self.df.geometry.values._sindex is None
115129 assert self.df.sindex.size == 5
116 assert self.df._sindex is not None
130 assert self.df.geometry.values._sindex is not None
117131
118132 def test_sindex_rebuild_on_set_geometry(self):
119133 # First build the sindex
120134 assert self.df.sindex is not None
135 original_index = self.df.sindex
121136 self.df.set_geometry(
122137 [Point(x, y) for x, y in zip(range(5, 10), range(5, 10))], inplace=True
123138 )
124 assert self.df._sindex_generated is False
139 assert self.df.sindex is not original_index
140
141 def test_rebuild_on_row_slice(self):
142 # Select a subset of rows rebuilds
143 original_index = self.df.sindex
144 sliced = self.df.iloc[:1]
145 assert sliced.sindex is not original_index
146 # Slicing all does not rebuild
147 original_index = self.df.sindex
148 sliced = self.df.iloc[:]
149 assert sliced.sindex is original_index
150 # Re-ordering rebuilds
151 sliced = self.df.iloc[::-1]
152 assert sliced.sindex is not original_index
153
154 def test_rebuild_on_single_col_selection(self):
155 """Selecting a single column should not rebuild the spatial index."""
156 # Selecting geometry column preserves the index
157 original_index = self.df.sindex
158 geometry_col = self.df["geom"]
159 assert geometry_col.sindex is original_index
160 geometry_col = self.df.geometry
161 assert geometry_col.sindex is original_index
162
163 @pytest.mark.skipif(
164 not compat.PANDAS_GE_10, reason="Column selection returns a copy on pd<=1.0.0"
165 )
166 def test_rebuild_on_multiple_col_selection(self):
167 """Selecting a subset of columns preserves the index."""
168 original_index = self.df.sindex
169 # Selecting a subset of columns preserves the index
170 subset1 = self.df[["geom", "A"]]
171 assert subset1.sindex is original_index
172 subset2 = self.df[["A", "geom"]]
173 assert subset2.sindex is original_index
125174
126175
127176 # Skip to accommodate Shapely geometries being unhashable
134183 def test_merge_geo(self):
135184 # First check that we gets hits from the boros frame.
136185 tree = self.boros.sindex
137 with pytest.warns(FutureWarning, match="`objects` is deprecated"):
138 # TODO: remove warning check once deprecated
139 hits = tree.intersection((1012821.80, 229228.26), objects=True)
140 res = [self.boros.loc[hit.object]["BoroName"] for hit in hits]
186 hits = tree.intersection((1012821.80, 229228.26))
187 res = [self.boros.iloc[hit]["BoroName"] for hit in hits]
141188 assert res == ["Bronx", "Queens"]
142189
143190 # Check that we only get the Bronx from this view.
144191 first = self.boros[self.boros["BoroCode"] < 3]
145192 tree = first.sindex
146 with pytest.warns(FutureWarning, match="`objects` is deprecated"):
147 # TODO: remove warning check once deprecated
148 hits = tree.intersection((1012821.80, 229228.26), objects=True)
149 res = [first.loc[hit.object]["BoroName"] for hit in hits]
193 hits = tree.intersection((1012821.80, 229228.26))
194 res = [first.iloc[hit]["BoroName"] for hit in hits]
150195 assert res == ["Bronx"]
151196
152197 # Check that we only get Queens from this view.
153198 second = self.boros[self.boros["BoroCode"] >= 3]
154199 tree = second.sindex
155 with pytest.warns(FutureWarning, match="`objects` is deprecated"):
156 # TODO: remove warning check once deprecated
157 hits = tree.intersection((1012821.80, 229228.26), objects=True)
158 res = ([second.loc[hit.object]["BoroName"] for hit in hits],)
200 hits = tree.intersection((1012821.80, 229228.26))
201 res = ([second.iloc[hit]["BoroName"] for hit in hits],)
159202 assert res == ["Queens"]
160203
161204 # Get both the Bronx and Queens again.
163206 assert len(merged) == 5
164207 assert merged.sindex.size == 5
165208 tree = merged.sindex
166 with pytest.warns(FutureWarning, match="`objects` is deprecated"):
167 # TODO: remove warning check once deprecated
168 hits = tree.intersection((1012821.80, 229228.26), objects=True)
169 res = [merged.loc[hit.object]["BoroName"] for hit in hits]
209 hits = tree.intersection((1012821.80, 229228.26))
210 res = [merged.iloc[hit]["BoroName"] for hit in hits]
170211 assert res == ["Bronx", "Queens"]
171212
172213
173 @pytest.mark.skipif(not sindex.has_sindex(), reason="Spatial index absent, skipping")
214 @pytest.mark.skip_no_sindex
174215 class TestPygeosInterface:
175216 def setup_method(self):
176217 data = {
177 "location": [Point(x, y) for x, y in zip(range(5), range(5))]
218 "geom": [Point(x, y) for x, y in zip(range(5), range(5))]
178219 + [box(10, 10, 20, 20)] # include a box geometry
179220 }
180 self.df = GeoDataFrame(data, geometry="location")
181 self.expected_size = len(data["location"])
221 self.df = GeoDataFrame(data, geometry="geom")
222 self.expected_size = len(data["geom"])
182223
183224 # --------------------------- `intersection` tests -------------------------- #
184225 @pytest.mark.parametrize(
255296 box(-0.5, -0.5, 1.5, 1.5),
256297 [],
257298 ), # bbox intersects but geom does not touch
299 (
300 "contains",
301 box(10, 10, 20, 20),
302 [5],
303 ), # contains but does not contains_properly
304 (
305 "covers",
306 box(-0.5, -0.5, 1, 1),
307 [0, 1],
308 ), # covers (0, 0) and (1, 1)
309 (
310 "covers",
311 box(0.001, 0.001, 0.99, 0.99),
312 [],
313 ), # does not cover any
314 (
315 "covers",
316 box(0, 0, 1, 1),
317 [0, 1],
318 ), # covers but does not contain
319 (
320 "contains_properly",
321 box(0, 0, 1, 1),
322 [],
323 ), # intersects but does not contain
324 (
325 "contains_properly",
326 box(0, 0, 1.001, 1.001),
327 [1],
328 ), # intersects 2 and contains 1
329 (
330 "contains_properly",
331 box(0.5, 0.5, 1.001, 1.001),
332 [1],
333 ), # intersects 1 and contains 1
334 (
335 "contains_properly",
336 box(0.5, 0.5, 1.5, 1.5),
337 [1],
338 ), # intersects and contains
339 (
340 "contains_properly",
341 box(-1, -1, 2, 2),
342 [0, 1],
343 ), # intersects and contains multiple
344 (
345 "contains_properly",
346 box(10, 10, 20, 20),
347 [],
348 ), # contains but does not contains_properly
258349 ),
259350 )
260351 def test_query(self, predicate, test_geom, expected):
263354 assert_array_equal(res, expected)
264355
265356 def test_query_invalid_geometry(self):
266 """Tests the `query` method with invalid geometry.
267 """
357 """Tests the `query` method with invalid geometry."""
268358 with pytest.raises(TypeError):
269359 self.df.sindex.query("notavalidgeom")
270360
279369 ],
280370 )
281371 def test_query_empty_geometry(self, test_geom, expected_value):
282 """Tests the `query` method with empty geometry.
283 """
372 """Tests the `query` method with empty geometry."""
284373 res = self.df.sindex.query(test_geom)
285374 assert_array_equal(res, expected_value)
286375
287376 def test_query_invalid_predicate(self):
288 """Tests the `query` method with invalid predicates.
289 """
377 """Tests the `query` method with invalid predicates."""
290378 test_geom = box(-1, -1, -0.5, -0.5)
291379 with pytest.raises(ValueError):
292380 self.df.sindex.query(test_geom, predicate="test")
323411
324412 test_geo = test_df.geometry.values.data[0]
325413 res = tree_df.sindex.query(test_geo, sort=sort)
414
415 # asserting the same elements
416 assert sorted(res) == sorted(expected)
417 # asserting the exact array can fail if sort=False
326418 try:
327419 assert_array_equal(res, expected)
328420 except AssertionError as e:
329 if not compat.USE_PYGEOS and sort is False:
421 if sort is False:
330422 pytest.xfail(
331423 "rtree results are known to be unordered, see "
332424 "https://github.com/geopandas/geopandas/issues/1337\n"
356448 ("within", [(0.25, 0.28, 0.75, 0.75)], [[], []]), # does not intersect
357449 ("within", [(0, 0, 10, 10)], [[], []]), # intersects but is not within
358450 ("within", [(11, 11, 12, 12)], [[0], [5]]), # intersects and is within
359 ("contains", [(0, 0, 1, 1)], [[], []]), # intersects but does not contain
451 (
452 "contains",
453 [(0, 0, 1, 1)],
454 [[], []],
455 ), # intersects and covers, but does not contain
360456 (
361457 "contains",
362458 [(0, 0, 1.001, 1.001)],
373469 [(-1, -1, 2, 2)],
374470 [[0, 0], [0, 1]],
375471 ), # intersects and contains multiple
472 (
473 "contains",
474 [(10, 10, 20, 20)],
475 [[0], [5]],
476 ), # contains but does not contains_properly
477 ("touches", [(-1, -1, 0, 0)], [[0], [0]]), # bbox intersects and touches
478 (
479 "touches",
480 [(-0.5, -0.5, 1.5, 1.5)],
481 [[], []],
482 ), # bbox intersects but geom does not touch
483 (
484 "covers",
485 [(-0.5, -0.5, 1, 1)],
486 [[0, 0], [0, 1]],
487 ), # covers (0, 0) and (1, 1)
488 (
489 "covers",
490 [(0.001, 0.001, 0.99, 0.99)],
491 [[], []],
492 ), # does not cover any
493 (
494 "covers",
495 [(0, 0, 1, 1)],
496 [[0, 0], [0, 1]],
497 ), # covers but does not contain
498 (
499 "contains_properly",
500 [(0, 0, 1, 1)],
501 [[], []],
502 ), # intersects but does not contain
503 (
504 "contains_properly",
505 [(0, 0, 1.001, 1.001)],
506 [[0], [1]],
507 ), # intersects 2 and contains 1
508 (
509 "contains_properly",
510 [(0.5, 0.5, 1.001, 1.001)],
511 [[0], [1]],
512 ), # intersects 1 and contains 1
513 (
514 "contains_properly",
515 [(0.5, 0.5, 1.5, 1.5)],
516 [[0], [1]],
517 ), # intersects and contains
518 (
519 "contains_properly",
520 [(-1, -1, 2, 2)],
521 [[0, 0], [0, 1]],
522 ), # intersects and contains multiple
523 (
524 "contains_properly",
525 [(10, 10, 20, 20)],
526 [[], []],
527 ), # contains but does not contains_properly
376528 ),
377529 )
378530 def test_query_bulk(self, predicate, test_geom, expected):
399551 ],
400552 )
401553 def test_query_bulk_empty_geometry(self, test_geoms, expected_value):
402 """Tests the `query_bulk` method with an empty geometry.
403 """
554 """Tests the `query_bulk` method with an empty geometry."""
404555 # pass through GeoSeries to have GeoPandas
405556 # determine if it should use shapely or pygeos geometry objects
406557 # note: for this test, test_geoms (note plural) is a list already
409560 assert_array_equal(res, expected_value)
410561
411562 def test_query_bulk_empty_input_array(self):
412 """Tests the `query_bulk` method with an empty input array.
413 """
563 """Tests the `query_bulk` method with an empty input array."""
414564 test_array = np.array([], dtype=object)
415565 expected_value = [[], []]
416566 res = self.df.sindex.query_bulk(test_array)
417567 assert_array_equal(res, expected_value)
418568
419569 def test_query_bulk_invalid_input_geometry(self):
420 """Tests the `query_bulk` method with invalid input for the `geometry` parameter.
570 """
571 Tests the `query_bulk` method with invalid input for the `geometry` parameter.
421572 """
422573 test_array = "notanarray"
423574 with pytest.raises(TypeError):
424575 self.df.sindex.query_bulk(test_array)
425576
426577 def test_query_bulk_invalid_predicate(self):
427 """Tests the `query_bulk` method with invalid predicates.
428 """
578 """Tests the `query_bulk` method with invalid predicates."""
429579 test_geom_bounds = (-1, -1, -0.5, -0.5)
430580 test_predicate = "test"
431581
502652 test_df = geopandas.GeoDataFrame(geometry=test_polys)
503653
504654 res = tree_df.sindex.query_bulk(test_df.geometry, sort=sort)
655
656 # asserting the same elements
657 assert sorted(res[0]) == sorted(expected[0])
658 assert sorted(res[1]) == sorted(expected[1])
659 # asserting the exact array can fail if sort=False
505660 try:
506661 assert_array_equal(res, expected)
507662 except AssertionError as e:
508 if not compat.USE_PYGEOS and sort is False:
663 if sort is False:
509664 pytest.xfail(
510665 "rtree results are known to be unordered, see "
511666 "https://github.com/geopandas/geopandas/issues/1337\n"
517672 # --------------------------- misc tests ---------------------------- #
518673
519674 def test_empty_tree_geometries(self):
520 """Tests building sindex with interleaved empty geometries.
521 """
675 """Tests building sindex with interleaved empty geometries."""
522676 geoms = [Point(0, 0), None, Point(), Point(1, 1), Point()]
523677 df = geopandas.GeoDataFrame(geometry=geoms)
524678 assert df.sindex.query(Point(1, 1))[0] == 3
534688 def test_is_empty(self):
535689 """Tests the `is_empty` property."""
536690 # create empty tree
537 cls_ = sindex.get_sindex_class()
538 empty = geopandas.GeoSeries(dtype=object)
539 tree = cls_(empty)
540 assert tree.is_empty
691 empty = geopandas.GeoSeries([], dtype=object)
692 assert empty.sindex.is_empty
693 empty = geopandas.GeoSeries([None])
694 assert empty.sindex.is_empty
695 empty = geopandas.GeoSeries([Point()])
696 assert empty.sindex.is_empty
541697 # create a non-empty tree
542698 non_empty = geopandas.GeoSeries([Point(0, 0)])
543 tree = cls_(non_empty)
544 assert not tree.is_empty
699 assert not non_empty.sindex.is_empty
545700
546701 @pytest.mark.parametrize(
547702 "predicate, expected_shape",
562717
563718 res = world.sindex.query_bulk(capitals.geometry, predicate)
564719 assert res.shape == expected_shape
720
721
722 @pytest.mark.skipif(not compat.HAS_RTREE, reason="no rtree installed")
723 def test_old_spatial_index_deprecated():
724 t1 = Polygon([(0, 0), (1, 0), (1, 1)])
725 t2 = Polygon([(0, 0), (1, 1), (0, 1)])
726
727 stream = ((i, item.bounds, None) for i, item in enumerate([t1, t2]))
728
729 with pytest.warns(FutureWarning):
730 idx = geopandas.sindex.SpatialIndex(stream)
731
732 assert list(idx.intersection((0, 0, 1, 1))) == [0, 1]
4545 s4.crs = 4326
4646 s5 = s2.copy()
4747 s5.crs = 27700
48
49 s6 = GeoSeries(
50 [
51 Polygon([(0, 3), (0, 0), (2, 0), (2, 2)]),
52 Polygon([(2, 2), (4, 2), (4, 4), (2, 4)]),
53 ]
54 )
55
4856 df4 = GeoDataFrame(
4957 {"col1": [1, 2], "geometry": s1.copy(), "geom2": s4.copy(), "geom3": s5.copy()},
5058 crs=3857,
6270 assert_geoseries_equal(s3, s2, check_series_type=False, check_dtype=False)
6371 assert_geoseries_equal(s1, s4, check_series_type=False)
6472
65 with pytest.raises(AssertionError):
73 with pytest.raises(AssertionError) as error:
6674 assert_geoseries_equal(s1, s2, check_less_precise=True)
75 assert "1 out of 2 geometries are not almost equal" in str(error.value)
76 assert "not almost equal: [0]" in str(error.value)
77
78 with pytest.raises(AssertionError) as error:
79 assert_geoseries_equal(s2, s6, check_less_precise=False)
80 assert "1 out of 2 geometries are not equal" in str(error.value)
81 assert "not equal: [0]" in str(error.value)
6782
6883
6984 def test_geodataframe():
9797 "psycopg2",
9898 "geoalchemy2",
9999 "pyarrow",
100 "pygeos",
100101 ]
101102
102103 def get_version(module):
6565 # Clip the data with the polygon
6666 if isinstance(gdf_sub, GeoDataFrame):
6767 clipped = gdf_sub.copy()
68 clipped["geometry"] = gdf_sub.intersection(poly)
68 clipped[gdf.geometry.name] = gdf_sub.intersection(poly)
6969 else:
7070 # GeoSeries
7171 clipped = gdf_sub.intersection(poly)
105105 --------
106106 Clip points (global cities) with a polygon (the South American continent):
107107
108 >>> import geopandas
109 >>> path =
110108 >>> world = geopandas.read_file(
111109 ... geopandas.datasets.get_path('naturalearth_lowres'))
112110 >>> south_america = world[world['continent'] == "South America"]
114112 ... geopandas.datasets.get_path('naturalearth_cities'))
115113 >>> capitals.shape
116114 (202, 2)
115
117116 >>> sa_capitals = geopandas.clip(capitals, south_america)
118117 >>> sa_capitals.shape
119118 (12, 2)
126125 if not isinstance(mask, (GeoDataFrame, GeoSeries, Polygon, MultiPolygon)):
127126 raise TypeError(
128127 "'mask' should be GeoDataFrame, GeoSeries or"
129 "(Multi)Polygon, got {}".format(type(gdf))
128 "(Multi)Polygon, got {}".format(type(mask))
130129 )
131130
132131 if isinstance(mask, (GeoDataFrame, GeoSeries)):
00 from collections import defaultdict
11 import time
22
3 import numpy as np
43 import pandas as pd
54
65 from shapely.geometry import Point
5251
5352 Examples
5453 --------
55 >>> df = geocode(['boston, ma', '1600 pennsylvania ave. washington, dc'])
56 >>> df
57 address \\
58 0 Boston, MA, USA
59 1 1600 Pennsylvania Avenue Northwest, President'...
60 geometry
61 0 POINT (-71.0597732 42.3584308)
62 1 POINT (-77.0365305 38.8977332)
54 >>> df = geopandas.tools.geocode( # doctest: +SKIP
55 ... ["boston, ma", "1600 pennsylvania ave. washington, dc"]
56 ... )
57 >>> df # doctest: +SKIP
58 geometry address
59 0 POINT (-71.05863 42.35899) Boston, MA, United States
60 1 POINT (-77.03651 38.89766) 1600 Pennsylvania Ave NW, Washington, DC 20006...
6361 """
6462
6563 if provider is None:
107105
108106 Examples
109107 --------
110 >>> df = reverse_geocode([Point(-71.0594869, 42.3584697),
111 Point(-77.0365305, 38.8977332)])
112 >>> df
113 address \\
114 0 29 Court Square, Boston, MA 02108, USA
115 1 1600 Pennsylvania Avenue Northwest, President'...
116 geometry
117 0 POINT (-71.0594869 42.3584697)
118 1 POINT (-77.0365305 38.8977332)
108 >>> from shapely.geometry import Point
109 >>> df = geopandas.tools.reverse_geocode( # doctest: +SKIP
110 ... [Point(-71.0594869, 42.3584697), Point(-77.0365305, 38.8977332)]
111 ... )
112 >>> df # doctest: +SKIP
113 geometry address
114 0 POINT (-71.05941 42.35837) 29 Court Sq, Boston, MA 02108, United States
115 1 POINT (-77.03641 38.89766) 1600 Pennsylvania Ave NW, Washington, DC 20006...
119116 """
120117
121118 if provider is None:
168165 index = []
169166
170167 for i, s in results.items():
171 address, loc = s
172168
173 # loc is lat, lon and we want lon, lat
174 if loc is None:
169 if s is None:
175170 p = Point()
171 address = None
172
176173 else:
177 p = Point(loc[1], loc[0])
174 address, loc = s
178175
179 if address is None:
180 address = np.nan
176 # loc is lat, lon and we want lon, lat
177 if loc is None:
178 p = Point()
179 else:
180 p = Point(loc[1], loc[0])
181181
182182 d["geometry"].append(p)
183183 d["address"].append(address)
136136 return dfunion.reindex(columns=columns)
137137
138138
139 def overlay(df1, df2, how="intersection", make_valid=True, keep_geom_type=True):
139 def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True):
140140 """Perform spatial overlay between two GeoDataFrames.
141141
142142 Currently only supports data GeoDataFrames with uniform geometry types,
143143 i.e. containing only (Multi)Polygons, or only (Multi)Points, or a
144144 combination of (Multi)LineString and LinearRing shapes.
145145 Implements several methods that are all effectively subsets of the union.
146
147 See the User Guide page :doc:`../../user_guide/set_operations` for details.
146148
147149 Parameters
148150 ----------
153155 'identity', 'symmetric_difference' or 'difference'.
154156 keep_geom_type : bool
155157 If True, return only geometries of the same geometry type as df1 has,
156 if False, return all resulting gemetries.
158 if False, return all resulting geometries. Default is None,
159 which will set keep_geom_type to True but warn upon dropping
160 geometries.
161 make_valid : bool, default True
162 If True, any invalid input geometries are corrected with a call to `buffer(0)`,
163 if False, a `ValueError` is raised if any input geometries are invalid.
157164
158165 Returns
159166 -------
161168 GeoDataFrame with new set of polygons and attributes
162169 resulting from the overlay
163170
171 Examples
172 --------
173 >>> from shapely.geometry import Polygon
174 >>> polys1 = geopandas.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)]),
175 ... Polygon([(2,2), (4,2), (4,4), (2,4)])])
176 >>> polys2 = geopandas.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)]),
177 ... Polygon([(3,3), (5,3), (5,5), (3,5)])])
178 >>> df1 = geopandas.GeoDataFrame({'geometry': polys1, 'df1_data':[1,2]})
179 >>> df2 = geopandas.GeoDataFrame({'geometry': polys2, 'df2_data':[1,2]})
180
181 >>> geopandas.overlay(df1, df2, how='union')
182 df1_data df2_data geometry
183 0 1.0 1.0 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2....
184 1 2.0 1.0 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2....
185 2 2.0 2.0 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4....
186 3 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0....
187 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000...
188 5 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000...
189 6 NaN 2.0 POLYGON ((3.00000 4.00000, 3.00000 5.00000, 5....
190
191 >>> geopandas.overlay(df1, df2, how='intersection')
192 df1_data df2_data geometry
193 0 1 1 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2....
194 1 2 1 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2....
195 2 2 2 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4....
196
197 >>> geopandas.overlay(df1, df2, how='symmetric_difference')
198 df1_data df2_data geometry
199 0 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0....
200 1 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000...
201 2 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000...
202 3 NaN 2.0 POLYGON ((3.00000 4.00000, 3.00000 5.00000, 5....
203
204 >>> geopandas.overlay(df1, df2, how='difference')
205 geometry df1_data
206 0 POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... 1
207 1 MULTIPOLYGON (((2.00000 3.00000, 2.00000 4.000... 2
208
209 >>> geopandas.overlay(df1, df2, how='identity')
210 df1_data df2_data geometry
211 0 1.0 1.0 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2....
212 1 2.0 1.0 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2....
213 2 2.0 2.0 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4....
214 3 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0....
215 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000...
216
217 See also
218 --------
219 sjoin : spatial join
220
221 Notes
222 ------
223 Every operation in GeoPandas is planar, i.e. the potential third
224 dimension is not taken into account.
164225 """
165226 # Allowed operations
166227 allowed_hows = [
184245 if not _check_crs(df1, df2):
185246 _crs_mismatch_warn(df1, df2, stacklevel=3)
186247
248 if keep_geom_type is None:
249 keep_geom_type = True
250 keep_geom_type_warning = True
251 else:
252 keep_geom_type_warning = False
253
187254 polys = ["Polygon", "MultiPolygon"]
188255 lines = ["LineString", "MultiLineString", "LinearRing"]
189256 points = ["Point", "MultiPoint"]
197264 )
198265
199266 # Computations
200 df1 = df1.copy()
201 df2 = df2.copy()
202 if df1.geom_type.isin(polys).all():
203 df1[df1._geometry_column_name] = df1.geometry.buffer(0)
204 if df2.geom_type.isin(polys).all():
205 df2[df2._geometry_column_name] = df2.geometry.buffer(0)
267 def _make_valid(df):
268 df = df.copy()
269 if df.geom_type.isin(polys).all():
270 mask = ~df.geometry.is_valid
271 col = df._geometry_column_name
272 if make_valid:
273 df.loc[mask, col] = df.loc[mask, col].buffer(0)
274 elif mask.any():
275 raise ValueError(
276 "You have passed make_valid=False along with "
277 f"{mask.sum()} invalid input geometries. "
278 "Use make_valid=True or make sure that all geometries "
279 "are valid before using overlay."
280 )
281 return df
282
283 df1 = _make_valid(df1)
284 df2 = _make_valid(df2)
206285
207286 with warnings.catch_warnings(): # CRS checked above, supress array-level warning
208287 warnings.filterwarnings("ignore", message="CRS mismatch between the CRS")
219298 result = dfunion[dfunion["__idx1"].notnull()].copy()
220299
221300 if keep_geom_type:
222 type = df1.geom_type.iloc[0]
223 if type in polys:
224 result = result.loc[result.geom_type.isin(polys)]
225 elif type in lines:
226 result = result.loc[result.geom_type.isin(lines)]
227 elif type in points:
228 result = result.loc[result.geom_type.isin(points)]
301 key_order = result.keys()
302 exploded = result.reset_index(drop=True).explode()
303 exploded = exploded.reset_index(level=0)
304
305 orig_num_geoms = result.shape[0]
306 geom_type = df1.geom_type.iloc[0]
307 if geom_type in polys:
308 exploded = exploded.loc[exploded.geom_type.isin(polys)]
309 elif geom_type in lines:
310 exploded = exploded.loc[exploded.geom_type.isin(lines)]
311 elif geom_type in points:
312 exploded = exploded.loc[exploded.geom_type.isin(points)]
229313 else:
230 raise TypeError("`keep_geom_type` does not support {}.".format(type))
314 raise TypeError("`keep_geom_type` does not support {}.".format(geom_type))
315
316 # level_0 created with above reset_index operation
317 # and represents the original geometry collections
318 result = exploded.dissolve(by="level_0")[key_order]
319
320 if (result.shape[0] != orig_num_geoms) and keep_geom_type_warning:
321 num_dropped = orig_num_geoms - result.shape[0]
322 warnings.warn(
323 "`keep_geom_type=True` in overlay resulted in {} dropped "
324 "geometries of different geometry types than df1 has. "
325 "Set `keep_geom_type=False` to retain all "
326 "geometries".format(num_dropped),
327 UserWarning,
328 stacklevel=2,
329 )
231330
232331 result.reset_index(drop=True, inplace=True)
233332 result.drop(["__idx1", "__idx2"], axis=1, inplace=True)
99 left_df, right_df, how="inner", op="intersects", lsuffix="left", rsuffix="right"
1010 ):
1111 """Spatial join of two GeoDataFrames.
12
13 See the User Guide page :doc:`../../user_guide/mergingdata` for details.
14
1215
1316 Parameters
1417 ----------
2124 * 'inner': use intersection of keys from both dfs; retain only
2225 left_df geometry column
2326 op : string, default 'intersects'
24 Binary predicate, one of {'intersects', 'contains', 'within'}.
25 See http://shapely.readthedocs.io/en/latest/manual.html#binary-predicates.
27 Binary predicate. Valid values are determined by the spatial index used.
28 You can check the valid values in left_df or right_df as
29 ``left_df.sindex.valid_query_predicates`` or
30 ``right_df.sindex.valid_query_predicates``
2631 lsuffix : string, default 'left'
2732 Suffix to apply to overlapping column names (left GeoDataFrame).
2833 rsuffix : string, default 'right'
2934 Suffix to apply to overlapping column names (right GeoDataFrame).
3035
36 Examples
37 --------
38 >>> countries = geopandas.read_file(geopandas.datasets.get_\
39 path("naturalearth_lowres"))
40 >>> cities = geopandas.read_file(geopandas.datasets.get_path("naturalearth_cities"))
41 >>> countries.head() # doctest: +SKIP
42 pop_est continent name \
43 iso_a3 gdp_md_est geometry
44 0 920938 Oceania Fiji FJI 8374.0 MULTIPOLY\
45 GON (((180.00000 -16.06713, 180.00000...
46 1 53950935 Africa Tanzania TZA 150600.0 POLYGON (\
47 (33.90371 -0.95000, 34.07262 -1.05982...
48 2 603253 Africa W. Sahara ESH 906.5 POLYGON (\
49 (-8.66559 27.65643, -8.66512 27.58948...
50 3 35623680 North America Canada CAN 1674000.0 MULTIPOLY\
51 GON (((-122.84000 49.00000, -122.9742...
52 4 326625791 North America United States of America USA 18560000.0 MULTIPOLY\
53 GON (((-122.84000 49.00000, -120.0000...
54 >>> cities.head()
55 name geometry
56 0 Vatican City POINT (12.45339 41.90328)
57 1 San Marino POINT (12.44177 43.93610)
58 2 Vaduz POINT (9.51667 47.13372)
59 3 Luxembourg POINT (6.13000 49.61166)
60 4 Palikir POINT (158.14997 6.91664)
61
62 >>> cities_w_country_data = geopandas.sjoin(cities, countries)
63 >>> cities_w_country_data.head() # doctest: +SKIP
64 name_left geometry index_right pop_est continent name_\
65 right iso_a3 gdp_md_est
66 0 Vatican City POINT (12.45339 41.90328) 141 62137802 Europe \
67 Italy ITA 2221000.0
68 1 San Marino POINT (12.44177 43.93610) 141 62137802 Europe \
69 Italy ITA 2221000.0
70 192 Rome POINT (12.48131 41.89790) 141 62137802 Europe \
71 Italy ITA 2221000.0
72 2 Vaduz POINT (9.51667 47.13372) 114 8754413 Europe Au\
73 stria AUT 416600.0
74 184 Vienna POINT (16.36469 48.20196) 114 8754413 Europe Au\
75 stria AUT 416600.0
76
77 See also
78 --------
79 overlay : overlay operation resulting in a new geometry
80
81 Notes
82 ------
83 Every operation in GeoPandas is planar, i.e. the potential third
84 dimension is not taken into account.
85 """
86 _basic_checks(left_df, right_df, how, lsuffix, rsuffix)
87
88 indices = _geom_predicate_query(left_df, right_df, op)
89
90 joined = _frame_join(indices, left_df, right_df, how, lsuffix, rsuffix)
91
92 return joined
93
94
95 def _basic_checks(left_df, right_df, how, lsuffix, rsuffix):
96 """Checks the validity of join input parameters.
97
98 `how` must be one of the valid options.
99 `'index_'` concatenated with `lsuffix` or `rsuffix` must not already
100 exist as columns in the left or right data frames.
101
102 Parameters
103 ------------
104 left_df : GeoDataFrame
105 right_df : GeoData Frame
106 how : str, one of 'left', 'right', 'inner'
107 join type
108 lsuffix : str
109 left index suffix
110 rsuffix : str
111 right index suffix
31112 """
32113 if not isinstance(left_df, GeoDataFrame):
33114 raise ValueError(
42123 allowed_hows = ["left", "right", "inner"]
43124 if how not in allowed_hows:
44125 raise ValueError(
45 '`how` was "%s" but is expected to be in %s' % (how, allowed_hows)
46 )
47
48 allowed_ops = ["contains", "within", "intersects"]
49 if op not in allowed_ops:
50 raise ValueError(
51 '`op` was "%s" but is expected to be in %s' % (op, allowed_ops)
126 '`how` was "{}" but is expected to be in {}'.format(how, allowed_hows)
52127 )
53128
54129 if not _check_crs(left_df, right_df):
55 _crs_mismatch_warn(left_df, right_df, stacklevel=3)
56
57 index_left = "index_%s" % lsuffix
58 index_right = "index_%s" % rsuffix
130 _crs_mismatch_warn(left_df, right_df, stacklevel=4)
131
132 index_left = "index_{}".format(lsuffix)
133 index_right = "index_{}".format(rsuffix)
59134
60135 # due to GH 352
61136 if any(left_df.columns.isin([index_left, index_right])) or any(
66141 " joined".format(index_left, index_right)
67142 )
68143
69 # query index
144
145 def _geom_predicate_query(left_df, right_df, op):
146 """Compute geometric comparisons and get matching indices.
147
148 Parameters
149 ----------
150 left_df : GeoDataFrame
151 right_df : GeoDataFrame
152 op : string
153 Binary predicate to query.
154
155 Returns
156 -------
157 DataFrame
158 DataFrame with matching indices in
159 columns named `_key_left` and `_key_right`.
160 """
70161 with warnings.catch_warnings():
71162 # We don't need to show our own warning here
72163 # TODO remove this once the deprecation has been enforced
89180
90181 if sindex:
91182 l_idx, r_idx = sindex.query_bulk(input_geoms, predicate=predicate, sort=False)
92 result = pd.DataFrame({"_key_left": l_idx, "_key_right": r_idx})
183 indices = pd.DataFrame({"_key_left": l_idx, "_key_right": r_idx})
93184 else:
94185 # when sindex is empty / has no valid geometries
95 result = pd.DataFrame(columns=["_key_left", "_key_right"], dtype=float)
186 indices = pd.DataFrame(columns=["_key_left", "_key_right"], dtype=float)
96187 if op == "within":
97188 # within is implemented as the inverse of contains
98189 # flip back the results
99 result = result.rename(
190 indices = indices.rename(
100191 columns={"_key_left": "_key_right", "_key_right": "_key_left"}
101192 )
102193
194 return indices
195
196
197 def _frame_join(indices, left_df, right_df, how, lsuffix, rsuffix):
198 """Join the GeoDataFrames at the DataFrame level.
199
200 Parameters
201 ----------
202 indices : DataFrame
203 Indexes returned by the geometric join.
204 Must have columns `_key_left` and `_key_right`
205 with integer indices representing the matches
206 from `left_df` and `right_df` respectively.
207 left_df : GeoDataFrame
208 right_df : GeoDataFrame
209 lsuffix : string
210 Suffix to apply to overlapping column names (left GeoDataFrame).
211 rsuffix : string
212 Suffix to apply to overlapping column names (right GeoDataFrame).
213 how : string
214 The type of join to use on the DataFrame level.
215
216 Returns
217 -------
218 GeoDataFrame
219 Joined GeoDataFrame.
220 """
103221 # the spatial index only allows limited (numeric) index types, but an
104222 # index in geopandas may be any arbitrary dtype. so reset both indices now
105223 # and store references to the original indices, to be reaffixed later.
106224 # GH 352
225 index_left = "index_{}".format(lsuffix)
107226 left_df = left_df.copy(deep=True)
108227 try:
109228 left_index_name = left_df.index.name
110229 left_df.index = left_df.index.rename(index_left)
111230 except TypeError:
112231 index_left = [
113 "index_%s" % lsuffix + str(pos)
232 "index_{}".format(lsuffix + str(pos))
114233 for pos, ix in enumerate(left_df.index.names)
115234 ]
116235 left_index_name = left_df.index.names
117236 left_df.index = left_df.index.rename(index_left)
118237 left_df = left_df.reset_index()
119238
239 index_right = "index_{}".format(rsuffix)
120240 right_df = right_df.copy(deep=True)
121241 try:
122242 right_index_name = right_df.index.name
123243 right_df.index = right_df.index.rename(index_right)
124244 except TypeError:
125245 index_right = [
126 "index_%s" % rsuffix + str(pos)
246 "index_{}".format(rsuffix + str(pos))
127247 for pos, ix in enumerate(right_df.index.names)
128248 ]
129249 right_index_name = right_df.index.names
132252
133253 # perform join on the dataframes
134254 if how == "inner":
135 result = result.set_index("_key_left")
255 indices = indices.set_index("_key_left")
136256 joined = (
137 left_df.merge(result, left_index=True, right_index=True)
257 left_df.merge(indices, left_index=True, right_index=True)
138258 .merge(
139259 right_df.drop(right_df.geometry.name, axis=1),
140260 left_on="_key_right",
141261 right_index=True,
142 suffixes=("_%s" % lsuffix, "_%s" % rsuffix),
262 suffixes=("_{}".format(lsuffix), "_{}".format(rsuffix)),
143263 )
144264 .set_index(index_left)
145265 .drop(["_key_right"], axis=1)
150270 joined.index.name = left_index_name
151271
152272 elif how == "left":
153 result = result.set_index("_key_left")
273 indices = indices.set_index("_key_left")
154274 joined = (
155 left_df.merge(result, left_index=True, right_index=True, how="left")
275 left_df.merge(indices, left_index=True, right_index=True, how="left")
156276 .merge(
157277 right_df.drop(right_df.geometry.name, axis=1),
158278 how="left",
159279 left_on="_key_right",
160280 right_index=True,
161 suffixes=("_%s" % lsuffix, "_%s" % rsuffix),
281 suffixes=("_{}".format(lsuffix), "_{}".format(rsuffix)),
162282 )
163283 .set_index(index_left)
164284 .drop(["_key_right"], axis=1)
172292 joined = (
173293 left_df.drop(left_df.geometry.name, axis=1)
174294 .merge(
175 result.merge(
295 indices.merge(
176296 right_df, left_on="_key_right", right_index=True, how="right"
177297 ),
178298 left_index=True,
1313 import pytest
1414
1515
16 pytestmark = pytest.mark.skipif(
17 not geopandas.sindex.has_sindex(), reason="clip requires spatial index"
18 )
16 pytestmark = pytest.mark.skip_no_sindex
1917
2018
2119 @pytest.fixture
202200 assert_geodataframe_equal(clip_pts, exp)
203201
204202
203 def test_clip_points_geom_col_rename(point_gdf, single_rectangle_gdf):
204 """Test clipping a points GDF with a generic polygon geometry."""
205 point_gdf_geom_col_rename = point_gdf.rename_geometry("geometry2")
206 clip_pts = clip(point_gdf_geom_col_rename, single_rectangle_gdf)
207 pts = np.array([[2, 2], [3, 4], [9, 8]])
208 exp = GeoDataFrame(
209 [Point(xy) for xy in pts],
210 columns=["geometry2"],
211 crs="EPSG:4326",
212 geometry="geometry2",
213 )
214 assert_geodataframe_equal(clip_pts, exp)
215
216
205217 def test_clip_poly(buffered_locations, single_rectangle_gdf):
206218 """Test clipping a polygon GDF with a generic polygon geometry."""
207219 clipped_poly = clip(buffered_locations, single_rectangle_gdf)
208220 assert len(clipped_poly.geometry) == 3
209221 assert all(clipped_poly.geom_type == "Polygon")
222
223
224 def test_clip_poly_geom_col_rename(buffered_locations, single_rectangle_gdf):
225 """Test clipping a polygon GDF with a generic polygon geometry."""
226
227 poly_gdf_geom_col_rename = buffered_locations.rename_geometry("geometry2")
228 clipped_poly = clip(poly_gdf_geom_col_rename, single_rectangle_gdf)
229 assert len(clipped_poly.geometry) == 3
230 assert "geometry" not in clipped_poly.keys()
231 assert "geometry2" in clipped_poly.keys()
210232
211233
212234 def test_clip_poly_series(buffered_locations, single_rectangle_gdf):
55 from shapely.geometry import Point, Polygon, GeometryCollection
66
77 import geopandas
8 from geopandas import GeoDataFrame, GeoSeries, read_file, sindex, sjoin
8 from geopandas import GeoDataFrame, GeoSeries, read_file, sjoin
99
1010 from pandas.testing import assert_frame_equal
1111 import pytest
1212
1313
14 pytestmark = pytest.mark.skipif(
15 not sindex.has_sindex(), reason="sjoin requires spatial index"
16 )
14 pytestmark = pytest.mark.skip_no_sindex
1715
1816
1917 @pytest.fixture()
00 # required
1 fiona>=1.7
2 pandas>=0.23.4
1 fiona>=1.8
2 pandas>=0.24
33 pyproj>=2.2.0
4 shapely>=1.5
4 shapely>=1.6
55
66 # geodatabase access
77 psycopg2>=2.5.1
1111 geopy
1212
1313 # plotting
14 descartes>=1.0
15 matplotlib>=2.0
14 matplotlib>=2.2
1615 mapclassify
1716
1817 # testing
19 mock>=1.0.1 # technically not need for python >= 3.3
2018 pytest>=3.1.0
2119 pytest-cov
2220 codecov
2828 if os.environ.get("READTHEDOCS", False) == "True":
2929 INSTALL_REQUIRES = []
3030 else:
31 INSTALL_REQUIRES = ["pandas >= 0.23.0", "shapely", "fiona", "pyproj >= 2.2.0"]
31 INSTALL_REQUIRES = [
32 "pandas >= 0.24.0",
33 "shapely >= 1.6",
34 "fiona >= 1.8",
35 "pyproj >= 2.2.0",
36 ]
3237
3338 # get all data dirs in the datasets module
3439 data_files = []
6166 "geopandas.tools.tests",
6267 ],
6368 package_data={"geopandas": data_files},
64 python_requires=">=3.5",
69 python_requires=">=3.6",
6570 install_requires=INSTALL_REQUIRES,
6671 cmdclass=versioneer.get_cmdclass(),
6772 )