--- /srv/reproducible-results/rbuild-debian/r-b-build.CPQD7Kdd/b1/pandas_2.2.3+dfsg-9_i386.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.CPQD7Kdd/b2/pandas_2.2.3+dfsg-9_i386.changes ├── Files │ @@ -1,5 +1,5 @@ │ │ - 39f30fe22772d4b07a6d835e9f71373d 10795276 doc optional python-pandas-doc_2.2.3+dfsg-9_all.deb │ + 926cd03e08958cb2271d3a7c4015e91a 10795400 doc optional python-pandas-doc_2.2.3+dfsg-9_all.deb │ ff4af08d5d4be9b6503081ef9dc78c9f 34673412 debug optional python3-pandas-lib-dbgsym_2.2.3+dfsg-9_i386.deb │ 9fa8e6a808a40e70629057e4c8befb8e 4409080 python optional python3-pandas-lib_2.2.3+dfsg-9_i386.deb │ 6f05a87b66230b056112f4c7c394692b 3096828 python optional python3-pandas_2.2.3+dfsg-9_all.deb ├── python-pandas-doc_2.2.3+dfsg-9_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-03-29 13:01:52.000000 debian-binary │ │ --rw-r--r-- 0 0 0 147376 2025-03-29 13:01:52.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 10647708 2025-03-29 13:01:52.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 147392 2025-03-29 13:01:52.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 10647816 2025-03-29 13:01:52.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: python-pandas-doc │ │ │ │ Source: pandas │ │ │ │ Version: 2.2.3+dfsg-9 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian Science Team │ │ │ │ -Installed-Size: 209906 │ │ │ │ +Installed-Size: 209904 │ │ │ │ Depends: libjs-sphinxdoc (>= 8.1), libjs-mathjax │ │ │ │ Suggests: python3-pandas │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://pandas.pydata.org/ │ │ │ │ Description: data structures for "relational" or "labeled" data - documentation │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -6256,74 +6256,74 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 210184 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/reference/series.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 48665 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/reference/style.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 48657 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/reference/testing.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 53295 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/reference/window.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 244 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/release.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 269 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/reshaping.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17010 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2359369 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/searchindex.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2359162 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/searchindex.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 259 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/sparse.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 244 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/style.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 255 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/text.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 256 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/timedeltas.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 277 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/timeseries.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 272 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/tutorials.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 171380 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/10min.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 283833 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 283834 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 435940 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/basics.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 36646 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/boolean.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 217513 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/categorical.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18313 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/cookbook.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66164 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/copy_on_write.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 160414 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/dsintro.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 81376 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/duplicates.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 121090 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 121051 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 107882 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/gotchas.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 300850 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/groupby.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 59715 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 395486 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/indexing.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 41778 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/integer_na.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1145820 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/io.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 208885 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/merging.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 178690 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/missing_data.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 112153 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/options.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 147524 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/pyarrow.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 146148 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/pyarrow.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 162660 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/reshaping.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 115581 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/scale.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 65811 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/sparse.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 698240 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 87843 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 87800 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 165302 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/text.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 100947 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/timedeltas.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 486621 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/timeseries.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 204461 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/visualization.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 141947 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/window.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 270 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/visualization.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 107681 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10569 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/index.html.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 83987 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.10.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66492 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.10.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 82312 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.11.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 104316 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.12.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 222537 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 222535 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 89385 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 243730 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.14.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 83262 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.14.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 252303 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 68280 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 75128 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.2.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 145199 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.16.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 115292 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.16.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 115518 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.16.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 64656 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.16.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 230436 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.17.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 94984 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.17.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 222566 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.18.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 171419 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.18.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 231394 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.17.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 95028 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.17.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 224090 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.18.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 171888 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.18.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 349334 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.19.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 45179 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.19.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 48525 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.19.2.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 406224 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.20.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 52898 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.20.2.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 43404 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.20.3.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 255124 2025-03-29 13:01:52.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.21.0.html │ │ │ ├── ./usr/share/doc/python-pandas-doc/html/searchindex.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -21485,24 +21485,24 @@ │ │ │ │ │ "000830": 2214, │ │ │ │ │ "000895": 2195, │ │ │ │ │ "000951": 2186, │ │ │ │ │ "000k": 1489, │ │ │ │ │ "000m": 1489, │ │ │ │ │ "000n": 1489, │ │ │ │ │ "000z": 2294, │ │ │ │ │ - "001": [532, 874, 1467, 2193, 2232, 2264], │ │ │ │ │ + "001": [532, 874, 1467, 2232, 2264], │ │ │ │ │ "001000": [917, 919, 922, 929, 1876, 2209], │ │ │ │ │ "001294": 2210, │ │ │ │ │ "001372": 2207, │ │ │ │ │ "001376": 2207, │ │ │ │ │ "001427": 2214, │ │ │ │ │ "001438": 2195, │ │ │ │ │ "001486": [102, 1158], │ │ │ │ │ "00180": 2294, │ │ │ │ │ - "002": [2193, 2264], │ │ │ │ │ + "002": 2264, │ │ │ │ │ "002000": 2232, │ │ │ │ │ "002040": 2235, │ │ │ │ │ "002118": [2230, 2231], │ │ │ │ │ "002653": 2207, │ │ │ │ │ "002846": 2229, │ │ │ │ │ "003": [2185, 2193, 2235], │ │ │ │ │ "003144": 2210, │ │ │ │ │ @@ -21510,15 +21510,15 @@ │ │ │ │ │ "003494": 15, │ │ │ │ │ "003507": [2209, 2218], │ │ │ │ │ "003556": 2207, │ │ │ │ │ "00360": 2294, │ │ │ │ │ "003733": 2207, │ │ │ │ │ "003932": 2216, │ │ │ │ │ "003945": 2210, │ │ │ │ │ - "004": [2186, 2227], │ │ │ │ │ + "004": [2186, 2193, 2227], │ │ │ │ │ "004000": 2232, │ │ │ │ │ "004005006": [287, 939], │ │ │ │ │ "004054": 2229, │ │ │ │ │ "004091": [2204, 2257], │ │ │ │ │ "004127": 2207, │ │ │ │ │ "004194": 2186, │ │ │ │ │ "004201": 2186, │ │ │ │ │ @@ -21531,32 +21531,35 @@ │ │ │ │ │ "005000": 2218, │ │ │ │ │ "005361": 2207, │ │ │ │ │ "005383": 2220, │ │ │ │ │ "005446": 2219, │ │ │ │ │ "005462": 2191, │ │ │ │ │ "005977": 2199, │ │ │ │ │ "005979": 2186, │ │ │ │ │ + "006": 2193, │ │ │ │ │ "006123": 2207, │ │ │ │ │ "006154": [2185, 2197, 2199, 2202, 2204, 2215, 2257], │ │ │ │ │ "0062": 2191, │ │ │ │ │ "006349": 2195, │ │ │ │ │ "006438": 2215, │ │ │ │ │ "006549": [182, 760], │ │ │ │ │ "006695": 2186, │ │ │ │ │ "006747": [2185, 2197, 2199, 2202, 2204, 2215], │ │ │ │ │ "006871": 2212, │ │ │ │ │ "006888": 2220, │ │ │ │ │ "006938": 2207, │ │ │ │ │ + "007": 2193, │ │ │ │ │ "007200": 2184, │ │ │ │ │ "007207": [2184, 2214], │ │ │ │ │ "007717": 2199, │ │ │ │ │ "007824": 15, │ │ │ │ │ "007952": 2207, │ │ │ │ │ "007996": 2186, │ │ │ │ │ "007f": 203, │ │ │ │ │ + "008": 2193, │ │ │ │ │ "008182": 2204, │ │ │ │ │ "008298": 2186, │ │ │ │ │ "008344": 2207, │ │ │ │ │ "008358": 2207, │ │ │ │ │ "008500": 15, │ │ │ │ │ "008543": [102, 1158], │ │ │ │ │ "008943": [102, 1158], │ │ │ │ │ @@ -21569,54 +21572,54 @@ │ │ │ │ │ "009783": 2207, │ │ │ │ │ "009797": 2186, │ │ │ │ │ "009826": [102, 1158, 2205], │ │ │ │ │ "009920": [2184, 2195, 2214], │ │ │ │ │ "00am": 2230, │ │ │ │ │ "00index": 2218, │ │ │ │ │ "01": [3, 15, 16, 17, 19, 29, 30, 31, 79, 80, 82, 88, 107, 121, 182, 187, 207, 213, 218, 219, 230, 242, 261, 270, 271, 276, 277, 278, 283, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 326, 329, 330, 331, 332, 333, 345, 362, 363, 423, 445, 510, 511, 513, 514, 515, 516, 517, 519, 521, 523, 525, 529, 531, 532, 533, 534, 535, 536, 537, 541, 542, 543, 544, 545, 546, 547, 548, 549, 551, 554, 556, 557, 558, 560, 561, 562, 563, 564, 565, 566, 575, 591, 592, 593, 600, 629, 637, 639, 640, 641, 642, 643, 644, 645, 646, 647, 649, 650, 651, 652, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 665, 666, 667, 668, 670, 671, 673, 674, 675, 676, 677, 678, 679, 680, 684, 685, 686, 688, 689, 696, 760, 763, 781, 788, 793, 804, 817, 874, 893, 898, 899, 902, 903, 904, 905, 909, 910, 917, 919, 922, 929, 934, 939, 940, 943, 944, 945, 948, 949, 953, 954, 957, 959, 960, 969, 972, 982, 984, 997, 1000, 1001, 1003, 1004, 1005, 1011, 1014, 1016, 1017, 1020, 1021, 1024, 1051, 1075, 1078, 1106, 1118, 1122, 1141, 1144, 1145, 1147, 1157, 1164, 1170, 1171, 1176, 1180, 1185, 1192, 1195, 1197, 1206, 1214, 1221, 1227, 1228, 1233, 1239, 1245, 1246, 1253, 1256, 1258, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1277, 1278, 1279, 1280, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1344, 1345, 1367, 1391, 1392, 1393, 1436, 1447, 1452, 1475, 1488, 1490, 1498, 1500, 1501, 1506, 1524, 1542, 1560, 1620, 1699, 1720, 1741, 1793, 1815, 1857, 1930, 1947, 1982, 2036, 2054, 2090, 2108, 2127, 2163, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2204, 2205, 2206, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2240, 2241, 2246, 2249, 2261, 2264, 2265, 2271, 2283, 2289, 2294, 2298, 2302, 2307], │ │ │ │ │ + "010": 2193, │ │ │ │ │ "0100": [575, 893, 957, 970, 997, 1004, 1014, 1016, 1020, 1021, 1498, 2186, 2199, 2210, 2246, 2271], │ │ │ │ │ "010000": [954, 1894], │ │ │ │ │ "010010012": [923, 2209], │ │ │ │ │ "010026": 2191, │ │ │ │ │ "010081": 15, │ │ │ │ │ "010165": 2199, │ │ │ │ │ "010589": 2193, │ │ │ │ │ "010670": [102, 1158], │ │ │ │ │ "0108": 2257, │ │ │ │ │ "010903": 2207, │ │ │ │ │ + "011": 2193, │ │ │ │ │ "011111": [182, 760], │ │ │ │ │ "011342": 2207, │ │ │ │ │ "011351": 2207, │ │ │ │ │ "011374": 2195, │ │ │ │ │ "011470": 2207, │ │ │ │ │ "011736": 2186, │ │ │ │ │ "011829": 2207, │ │ │ │ │ "01183": 2229, │ │ │ │ │ "011860": [182, 760], │ │ │ │ │ "011975": 2207, │ │ │ │ │ - "012": 2193, │ │ │ │ │ "012108": 2207, │ │ │ │ │ "012299": 2207, │ │ │ │ │ "0123456789123456": [2164, 2165], │ │ │ │ │ "012549": 2207, │ │ │ │ │ "012694": 2199, │ │ │ │ │ "012922": 2219, │ │ │ │ │ - "013": 2193, │ │ │ │ │ "013086": 15, │ │ │ │ │ "0133": 2202, │ │ │ │ │ "013448": 2207, │ │ │ │ │ "013605": 2207, │ │ │ │ │ "013684": [182, 760], │ │ │ │ │ "013692": [102, 1158], │ │ │ │ │ "013747": 2199, │ │ │ │ │ "013768": 2230, │ │ │ │ │ "013810": [182, 760], │ │ │ │ │ "013863": 2199, │ │ │ │ │ "013960": [2185, 2197, 2199, 2202, 2204, 2215, 2257], │ │ │ │ │ - "014": [2191, 2193], │ │ │ │ │ + "014": 2191, │ │ │ │ │ "014061": 2207, │ │ │ │ │ "014073": 2204, │ │ │ │ │ "014103": 2207, │ │ │ │ │ "014138": 2191, │ │ │ │ │ "014144": [102, 1158], │ │ │ │ │ "014648": 2186, │ │ │ │ │ "014752": 2235, │ │ │ │ │ @@ -21640,15 +21643,15 @@ │ │ │ │ │ "017106": 2207, │ │ │ │ │ "017118": 2199, │ │ │ │ │ "017152": 2186, │ │ │ │ │ "017263": 2207, │ │ │ │ │ "017276": 2191, │ │ │ │ │ "017587": [2184, 2195, 2214], │ │ │ │ │ "017796": 2207, │ │ │ │ │ - "018": [2193, 2199], │ │ │ │ │ + "018": 2199, │ │ │ │ │ "018007": 2207, │ │ │ │ │ "018117": 2191, │ │ │ │ │ "018193": 2207, │ │ │ │ │ "018409": 2207, │ │ │ │ │ "018601": [2184, 2214], │ │ │ │ │ "018808": 2207, │ │ │ │ │ "018904": 2207, │ │ │ │ │ @@ -21671,15 +21674,14 @@ │ │ │ │ │ "020208": 2195, │ │ │ │ │ "020376": 2207, │ │ │ │ │ "020399": 2195, │ │ │ │ │ "020485": 2207, │ │ │ │ │ "020544": 2186, │ │ │ │ │ "020762": 2220, │ │ │ │ │ "020940": 2230, │ │ │ │ │ - "021": 2193, │ │ │ │ │ "021244": 2207, │ │ │ │ │ "021255": 2230, │ │ │ │ │ "021292": 2186, │ │ │ │ │ "021377": 2207, │ │ │ │ │ "021382": 2184, │ │ │ │ │ "021499": 2186, │ │ │ │ │ "02155": 30, │ │ │ │ │ @@ -21704,15 +21706,15 @@ │ │ │ │ │ "024580": [2184, 2195, 2214], │ │ │ │ │ "024738": [102, 1158], │ │ │ │ │ "024786": 2207, │ │ │ │ │ "024810": 2207, │ │ │ │ │ "0249": [267, 896], │ │ │ │ │ "024925": 2195, │ │ │ │ │ "024967": 2207, │ │ │ │ │ - "025": [2186, 2222, 2227], │ │ │ │ │ + "025": [2186, 2193, 2222, 2227], │ │ │ │ │ "025054": 2184, │ │ │ │ │ "025270": 2186, │ │ │ │ │ "025363": 2186, │ │ │ │ │ "025367": 2207, │ │ │ │ │ "025747": [2191, 2197, 2207], │ │ │ │ │ "026036": 2207, │ │ │ │ │ "026158": 2210, │ │ │ │ │ @@ -21774,15 +21776,15 @@ │ │ │ │ │ "033350": 2207, │ │ │ │ │ "033387": 2186, │ │ │ │ │ "033606": 2186, │ │ │ │ │ "0336061024141463": 2186, │ │ │ │ │ "033695": 2186, │ │ │ │ │ "033718": 2204, │ │ │ │ │ "033823": 2210, │ │ │ │ │ - "034": [1433, 2193], │ │ │ │ │ + "034": 1433, │ │ │ │ │ "034069": 2195, │ │ │ │ │ "034326": [2184, 2257], │ │ │ │ │ "034374": 2210, │ │ │ │ │ "034446": 2207, │ │ │ │ │ "034512": 2207, │ │ │ │ │ "034523": 2210, │ │ │ │ │ "034571": 2197, │ │ │ │ │ @@ -21833,14 +21835,15 @@ │ │ │ │ │ "041": [1447, 2200, 2232], │ │ │ │ │ "041290": 2197, │ │ │ │ │ "041575": 2219, │ │ │ │ │ "041665": 2205, │ │ │ │ │ "041898": 2207, │ │ │ │ │ "041927": 2199, │ │ │ │ │ "041933": 2184, │ │ │ │ │ + "042": 2193, │ │ │ │ │ "042041": 2207, │ │ │ │ │ "042275": [283, 910], │ │ │ │ │ "042322": 2207, │ │ │ │ │ "042379": [2184, 2195, 2214], │ │ │ │ │ "0424": 2257, │ │ │ │ │ "042856": 2218, │ │ │ │ │ "042935": 2207, │ │ │ │ │ @@ -21964,15 +21967,15 @@ │ │ │ │ │ "059481": 2207, │ │ │ │ │ "059552": 2207, │ │ │ │ │ "059761": 2207, │ │ │ │ │ "059869e": 2191, │ │ │ │ │ "059881": 2210, │ │ │ │ │ "059904": 2214, │ │ │ │ │ "05t00": 2261, │ │ │ │ │ - "06": [26, 27, 29, 30, 31, 207, 213, 218, 230, 273, 292, 294, 332, 363, 526, 534, 536, 637, 644, 646, 688, 781, 788, 793, 804, 900, 969, 993, 1075, 1344, 1441, 1442, 1449, 1450, 1452, 1489, 1497, 1500, 1506, 1524, 1598, 1677, 2184, 2186, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2222, 2226, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2264, 2271, 2298, 2302], │ │ │ │ │ + "06": [26, 27, 29, 30, 31, 207, 213, 218, 230, 273, 292, 294, 332, 363, 526, 534, 536, 637, 644, 646, 688, 781, 788, 793, 804, 900, 969, 993, 1075, 1344, 1441, 1442, 1449, 1450, 1452, 1489, 1497, 1500, 1506, 1524, 1598, 1677, 2184, 2186, 2193, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2222, 2226, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2264, 2271, 2298, 2302], │ │ │ │ │ "060015": 2207, │ │ │ │ │ "060074": 2185, │ │ │ │ │ "060603": 2207, │ │ │ │ │ "060654": 2207, │ │ │ │ │ "060777": 2207, │ │ │ │ │ "061019": 2199, │ │ │ │ │ "061068": 2210, │ │ │ │ │ @@ -22002,14 +22005,15 @@ │ │ │ │ │ "064034": [15, 2191], │ │ │ │ │ "064423": 2207, │ │ │ │ │ "064434": 2207, │ │ │ │ │ "065587": 2218, │ │ │ │ │ "065761": 2207, │ │ │ │ │ "065818": [2204, 2207], │ │ │ │ │ "065934": [182, 760], │ │ │ │ │ + "066": 2193, │ │ │ │ │ "066126": 2207, │ │ │ │ │ "066510": 2210, │ │ │ │ │ "066533": 2210, │ │ │ │ │ "066786": 2207, │ │ │ │ │ "067091": 2199, │ │ │ │ │ "067137": 2197, │ │ │ │ │ "067503": 2207, │ │ │ │ │ @@ -22098,41 +22102,40 @@ │ │ │ │ │ "079587": 2230, │ │ │ │ │ "079631": 2207, │ │ │ │ │ "0797": 2202, │ │ │ │ │ "079769": 2207, │ │ │ │ │ "079915": 2193, │ │ │ │ │ "07t00": 2261, │ │ │ │ │ "08": [29, 30, 107, 207, 213, 230, 264, 273, 277, 292, 294, 316, 326, 330, 332, 629, 644, 646, 670, 680, 685, 688, 781, 788, 804, 900, 903, 1075, 1145, 1164, 1221, 1274, 1289, 1344, 1441, 1442, 1449, 1450, 1452, 1495, 1497, 1506, 1598, 1657, 1677, 1699, 1720, 1741, 2184, 2185, 2186, 2191, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2218, 2220, 2222, 2226, 2228, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2271, 2294, 2307], │ │ │ │ │ + "080": 2193, │ │ │ │ │ "0800": [953, 2210], │ │ │ │ │ "080174": 2207, │ │ │ │ │ "080372": 2199, │ │ │ │ │ "080952": [2184, 2214], │ │ │ │ │ "081009": 2195, │ │ │ │ │ "081161": 2216, │ │ │ │ │ "081249": 2207, │ │ │ │ │ "081304": 2207, │ │ │ │ │ "081447": 2210, │ │ │ │ │ "081666": 2211, │ │ │ │ │ "081748": 2210, │ │ │ │ │ "081842": 2207, │ │ │ │ │ - "082": 2193, │ │ │ │ │ "082240": [2185, 2191, 2197, 2199], │ │ │ │ │ "082423": [2191, 2197], │ │ │ │ │ "082523": 2207, │ │ │ │ │ "082764": 2197, │ │ │ │ │ "082900": 2214, │ │ │ │ │ "082901": 2212, │ │ │ │ │ "082960": 2207, │ │ │ │ │ "083010": 2207, │ │ │ │ │ "083333": 2222, │ │ │ │ │ "083352": 2191, │ │ │ │ │ "08335394550": 1371, │ │ │ │ │ "083515": 15, │ │ │ │ │ "083675": 2207, │ │ │ │ │ - "084": 2193, │ │ │ │ │ "084601": 2191, │ │ │ │ │ "084844": [2185, 2191, 2197, 2202, 2204], │ │ │ │ │ "084917": 2195, │ │ │ │ │ "084n": 2202, │ │ │ │ │ "084u": 2202, │ │ │ │ │ "085070": 2207, │ │ │ │ │ "085193": 2207, │ │ │ │ │ @@ -22253,20 +22256,20 @@ │ │ │ │ │ "0n": [1489, 2298], │ │ │ │ │ "0px": 2207, │ │ │ │ │ "0rc0": 13, │ │ │ │ │ "0th": [26, 249, 882, 1202, 2185, 2197, 2199, 2235], │ │ │ │ │ "0x00": 2294, │ │ │ │ │ "0x40": 2294, │ │ │ │ │ "0x7efd0c0b0690": 3, │ │ │ │ │ - "0xdb416310": 2197, │ │ │ │ │ - "0xdbeee850": 2195, │ │ │ │ │ - "0xe0d134c8": 2246, │ │ │ │ │ - "0xe0d71580": 2199, │ │ │ │ │ - "0xe18ec480": 2230, │ │ │ │ │ - "0xe5f40938": 2210, │ │ │ │ │ + "0xbfe91828": 2230, │ │ │ │ │ + "0xd66d1440": 2199, │ │ │ │ │ + "0xd8440280": 2197, │ │ │ │ │ + "0xd8e4ba58": 2195, │ │ │ │ │ + "0xe40a1398": 2210, │ │ │ │ │ + "0xe601e3a0": 2246, │ │ │ │ │ "1": [1, 2, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 42, 44, 46, 49, 54, 56, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 143, 144, 145, 146, 148, 149, 151, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 177, 178, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 319, 321, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 337, 339, 341, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 361, 363, 364, 366, 367, 370, 371, 372, 375, 376, 377, 378, 380, 382, 384, 385, 386, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 414, 415, 416, 417, 419, 420, 421, 422, 423, 424, 425, 426, 427, 429, 430, 431, 432, 433, 434, 435, 436, 437, 440, 446, 449, 450, 451, 455, 456, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 473, 475, 476, 477, 478, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 495, 496, 498, 499, 500, 501, 502, 503, 505, 509, 510, 511, 514, 516, 519, 525, 531, 532, 533, 534, 536, 540, 543, 545, 547, 548, 549, 551, 557, 558, 561, 565, 568, 569, 571, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 589, 590, 591, 592, 593, 594, 595, 596, 597, 599, 600, 601, 602, 603, 604, 609, 613, 614, 615, 616, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 671, 673, 674, 675, 676, 678, 679, 680, 681, 682, 683, 684, 686, 688, 689, 690, 691, 692, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 709, 710, 711, 712, 713, 714, 715, 716, 717, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 743, 744, 747, 748, 749, 750, 751, 752, 753, 755, 756, 758, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 810, 812, 813, 814, 815, 816, 817, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 891, 892, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 912, 913, 914, 916, 918, 921, 923, 927, 930, 938, 939, 940, 941, 942, 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 957, 959, 960, 970, 977, 979, 981, 984, 994, 997, 1003, 1004, 1005, 1006, 1011, 1012, 1021, 1031, 1032, 1033, 1034, 1035, 1036, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1091, 1092, 1093, 1095, 1096, 1097, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1118, 1119, 1121, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1347, 1348, 1350, 1354, 1355, 1358, 1359, 1362, 1363, 1368, 1369, 1372, 1373, 1374, 1375, 1377, 1380, 1381, 1382, 1383, 1384, 1385, 1387, 1388, 1389, 1390, 1391, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1413, 1414, 1415, 1416, 1417, 1419, 1421, 1422, 1423, 1424, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1453, 1454, 1455, 1457, 1458, 1459, 1460, 1462, 1463, 1464, 1466, 1467, 1468, 1469, 1470, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1482, 1483, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1502, 1506, 1507, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1524, 1525, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1542, 1543, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1560, 1561, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1578, 1580, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1598, 1600, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1620, 1621, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1637, 1638, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1657, 1659, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1677, 1679, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1699, 1701, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1720, 1722, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1741, 1742, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1758, 1759, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1793, 1794, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1815, 1816, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1839, 1840, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1857, 1858, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1876, 1877, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1894, 1895, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1912, 1913, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1930, 1931, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1947, 1948, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1964, 1965, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1982, 1983, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2018, 2019, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2036, 2037, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2054, 2055, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2073, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2090, 2091, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2108, 2109, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2127, 2128, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2145, 2146, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2163, 2164, 2165, 2166, 2184, 2185, 2186, 2187, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2208, 2209, 2210, 2211, 2212, 2214, 2216, 2217, 2218, 2220, 2222, 2224, 2225, 2227, 2228, 2230, 2232, 2238, 2240, 2241, 2243, 2245, 2246, 2249, 2257, 2259, 2260, 2263, 2298, 2307, 2309, 2310], │ │ │ │ │ "10": [2, 3, 5, 6, 9, 10, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 68, 69, 74, 80, 83, 84, 85, 88, 91, 94, 97, 98, 102, 105, 109, 111, 113, 119, 120, 121, 129, 133, 137, 138, 139, 140, 142, 144, 160, 163, 171, 173, 187, 188, 189, 190, 192, 193, 199, 202, 203, 204, 206, 207, 212, 213, 215, 216, 217, 220, 221, 222, 223, 228, 230, 234, 244, 258, 265, 268, 275, 276, 278, 284, 286, 288, 289, 293, 295, 296, 298, 300, 302, 316, 317, 318, 322, 323, 324, 329, 330, 331, 345, 395, 423, 427, 440, 445, 509, 514, 516, 534, 536, 544, 546, 551, 554, 556, 560, 562, 568, 569, 570, 571, 572, 577, 583, 592, 594, 595, 596, 600, 620, 621, 627, 635, 639, 641, 645, 647, 648, 649, 650, 652, 670, 671, 673, 677, 678, 679, 681, 684, 685, 686, 695, 696, 708, 713, 714, 738, 741, 763, 764, 765, 766, 768, 781, 787, 788, 798, 804, 808, 836, 837, 838, 839, 840, 841, 842, 843, 844, 849, 852, 863, 868, 874, 889, 895, 902, 904, 912, 923, 940, 942, 943, 944, 948, 957, 959, 960, 970, 982, 984, 995, 997, 1001, 1003, 1004, 1005, 1011, 1016, 1020, 1021, 1069, 1071, 1072, 1075, 1109, 1154, 1158, 1162, 1163, 1173, 1174, 1175, 1180, 1185, 1189, 1195, 1200, 1205, 1219, 1220, 1230, 1239, 1246, 1250, 1256, 1261, 1264, 1267, 1284, 1288, 1291, 1292, 1294, 1297, 1298, 1299, 1306, 1308, 1319, 1324, 1343, 1344, 1345, 1350, 1367, 1387, 1391, 1403, 1411, 1416, 1418, 1420, 1421, 1440, 1447, 1451, 1452, 1458, 1462, 1467, 1473, 1478, 1479, 1482, 1485, 1488, 1490, 1491, 1498, 1598, 1657, 1677, 1699, 1720, 1741, 1758, 1894, 1912, 2018, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2234, 2235, 2238, 2240, 2241, 2246, 2249, 2254, 2257, 2260, 2261, 2264, 2265, 2271, 2277, 2283, 2289, 2290, 2294, 2298, 2302, 2307, 2308], │ │ │ │ │ "100": [3, 15, 17, 22, 30, 68, 97, 98, 111, 118, 132, 135, 141, 142, 145, 159, 161, 175, 182, 192, 202, 207, 212, 213, 233, 273, 303, 345, 359, 360, 427, 577, 587, 588, 620, 621, 655, 709, 717, 760, 781, 787, 788, 900, 1345, 1391, 1398, 1447, 1457, 1472, 1473, 1488, 1490, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2220, 2222, 2223, 2225, 2226, 2230, 2231, 2232, 2235, 2241, 2242, 2246, 2249, 2302, 2307], │ │ │ │ │ "1000": [9, 10, 15, 24, 25, 28, 29, 32, 102, 141, 183, 191, 193, 194, 427, 717, 761, 767, 768, 769, 874, 1154, 1158, 1456, 1465, 1467, 1876, 1964, 2184, 2185, 2186, 2188, 2193, 2195, 2199, 2205, 2206, 2207, 2210, 2211, 2220, 2223, 2229, 2230, 2235, 2238, 2246, 2249, 2261, 2294], │ │ │ │ │ "10000": [192, 1485, 2185, 2201, 2206, 2210, 2220, 2228, 2266], │ │ │ │ │ "100000": [1354, 1372, 2199, 2201, 2210], │ │ │ │ │ "1000000": [144, 2199, 2228], │ │ │ │ │ @@ -23026,15 +23029,15 @@ │ │ │ │ │ "118810": 28, │ │ │ │ │ "11885": 2230, │ │ │ │ │ "11886": 2232, │ │ │ │ │ "1189": [2185, 2197], │ │ │ │ │ "11897": 2235, │ │ │ │ │ "11898": 2235, │ │ │ │ │ "11899": 2230, │ │ │ │ │ - "119": [268, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2230, 2232, 2265], │ │ │ │ │ + "119": [268, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2230, 2232, 2265], │ │ │ │ │ "1190": [2185, 2197], │ │ │ │ │ "1191": [2185, 2197], │ │ │ │ │ "11915": [2230, 2235], │ │ │ │ │ "11916": 2199, │ │ │ │ │ "1192": [2184, 2186], │ │ │ │ │ "11920": 2232, │ │ │ │ │ "11920871129693428": 2210, │ │ │ │ │ @@ -23424,15 +23427,15 @@ │ │ │ │ │ "12988": 2231, │ │ │ │ │ "12995": 2232, │ │ │ │ │ "12997": 2294, │ │ │ │ │ "12h": [84, 595, 2210, 2231, 2239, 2240], │ │ │ │ │ "12pt": 2207, │ │ │ │ │ "12th": 2199, │ │ │ │ │ "13": [9, 15, 16, 17, 18, 19, 24, 25, 26, 28, 29, 30, 31, 32, 77, 108, 127, 133, 134, 157, 182, 187, 208, 213, 230, 268, 288, 341, 420, 522, 524, 530, 564, 566, 639, 703, 708, 732, 760, 763, 782, 788, 799, 804, 940, 1169, 1226, 1276, 1298, 1299, 1306, 1308, 1397, 1430, 1447, 1498, 1501, 1598, 1657, 1677, 2090, 2184, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2217, 2220, 2221, 2222, 2223, 2225, 2226, 2228, 2229, 2231, 2232, 2238, 2240, 2241, 2246, 2249, 2257, 2261, 2264, 2265, 2271, 2277, 2283, 2289, 2294, 2298, 2302, 2307], │ │ │ │ │ - "130": [15, 1443, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2203, 2204, 2208, 2210, 2211, 2225, 2232, 2283], │ │ │ │ │ + "130": [15, 1443, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2203, 2204, 2208, 2210, 2211, 2225, 2232, 2283], │ │ │ │ │ "13000": [2185, 2220], │ │ │ │ │ "13000101": 1498, │ │ │ │ │ "13001": 2232, │ │ │ │ │ "13005": 2231, │ │ │ │ │ "13006": 2232, │ │ │ │ │ "13008": 2231, │ │ │ │ │ "13012": 2241, │ │ │ │ │ @@ -24073,15 +24076,15 @@ │ │ │ │ │ "14781": 2241, │ │ │ │ │ "147824074": 1006, │ │ │ │ │ "14784": 2235, │ │ │ │ │ "147855": 2235, │ │ │ │ │ "14792": 2235, │ │ │ │ │ "147970": 2207, │ │ │ │ │ "14798": 2235, │ │ │ │ │ - "148": [2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2210, 2211, 2232], │ │ │ │ │ + "148": [2185, 2186, 2188, 2195, 2197, 2199, 2200, 2201, 2202, 2210, 2211, 2232], │ │ │ │ │ "14800": 2235, │ │ │ │ │ "148032": 2199, │ │ │ │ │ "148084": 15, │ │ │ │ │ "148098": 2210, │ │ │ │ │ "14811": 2277, │ │ │ │ │ "14816": 2235, │ │ │ │ │ "1482": 2202, │ │ │ │ │ @@ -24150,15 +24153,15 @@ │ │ │ │ │ "14982": 2235, │ │ │ │ │ "14983": 2235, │ │ │ │ │ "1499": 2212, │ │ │ │ │ "14992": 2235, │ │ │ │ │ "14998": 2235, │ │ │ │ │ "14t15": [955, 956, 957, 962, 970, 983, 990, 995, 997, 999, 1002, 1006, 1007, 1008, 1009, 1013, 1014], │ │ │ │ │ "15": [4, 15, 16, 17, 18, 19, 22, 25, 26, 29, 30, 31, 72, 73, 81, 88, 91, 108, 112, 116, 121, 127, 133, 137, 157, 186, 208, 213, 230, 258, 268, 271, 277, 278, 345, 586, 600, 696, 703, 708, 732, 762, 782, 788, 804, 889, 899, 903, 904, 953, 955, 956, 957, 958, 970, 973, 992, 995, 997, 999, 1005, 1008, 1009, 1013, 1014, 1018, 1103, 1147, 1157, 1170, 1171, 1173, 1176, 1180, 1185, 1188, 1195, 1197, 1198, 1202, 1206, 1214, 1227, 1228, 1233, 1239, 1245, 1246, 1249, 1256, 1258, 1263, 1265, 1268, 1272, 1273, 1274, 1275, 1277, 1278, 1279, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1297, 1321, 1334, 1458, 1485, 1498, 1500, 1506, 1524, 1542, 1560, 1578, 1598, 1657, 1677, 1758, 1839, 1876, 1894, 1912, 1964, 2018, 2036, 2054, 2090, 2184, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2225, 2226, 2227, 2228, 2230, 2231, 2232, 2235, 2238, 2240, 2243, 2246, 2249, 2257, 2261, 2264, 2265, 2271, 2277, 2283, 2289, 2294, 2298, 2302, 2307], │ │ │ │ │ - "150": [15, 111, 118, 132, 135, 159, 161, 175, 213, 233, 788, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2201, 2204, 2210, 2211], │ │ │ │ │ + "150": [15, 111, 118, 132, 135, 159, 161, 175, 213, 233, 788, 2185, 2186, 2188, 2195, 2197, 2199, 2200, 2201, 2204, 2210, 2211], │ │ │ │ │ "1500": [2212, 2241, 2246], │ │ │ │ │ "15000": [2185, 2220], │ │ │ │ │ "15001": 2238, │ │ │ │ │ "150025": 2207, │ │ │ │ │ "150031": 2207, │ │ │ │ │ "150036": [2220, 2230], │ │ │ │ │ "15005": 2235, │ │ │ │ │ @@ -24319,15 +24322,15 @@ │ │ │ │ │ "15495": 2238, │ │ │ │ │ "1549507744": 2199, │ │ │ │ │ "1549507744249032": 2197, │ │ │ │ │ "154951": [15, 2185, 2197, 2199, 2202], │ │ │ │ │ "154971": 22, │ │ │ │ │ "154975": 22, │ │ │ │ │ "15498": 2235, │ │ │ │ │ - "155": [1447, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2201, 2207, 2210, 2211, 2232], │ │ │ │ │ + "155": [1447, 2185, 2186, 2188, 2195, 2197, 2199, 2200, 2201, 2207, 2210, 2211, 2232], │ │ │ │ │ "15501": 2246, │ │ │ │ │ "15503": 2235, │ │ │ │ │ "15504": 2235, │ │ │ │ │ "15506": 2246, │ │ │ │ │ "15507": 2238, │ │ │ │ │ "15516": 2235, │ │ │ │ │ "15520": 2235, │ │ │ │ │ @@ -24520,15 +24523,15 @@ │ │ │ │ │ "161657": 2195, │ │ │ │ │ "1617": [16, 17, 18, 19, 2199, 2203, 2235, 2298], │ │ │ │ │ "16179": 2236, │ │ │ │ │ "16180": 2236, │ │ │ │ │ "16189": 2246, │ │ │ │ │ "1619": [16, 17, 18, 19, 2199, 2203, 2235, 2298], │ │ │ │ │ "16199": 2237, │ │ │ │ │ - "162": [2185, 2186, 2188, 2191, 2195, 2197, 2199, 2201, 2205, 2210, 2211, 2231, 2235], │ │ │ │ │ + "162": [2185, 2186, 2188, 2191, 2195, 2197, 2199, 2201, 2210, 2211, 2231, 2235], │ │ │ │ │ "1620": [16, 17, 18, 19, 2199, 2203, 2235, 2298], │ │ │ │ │ "16209": 2236, │ │ │ │ │ "1621": [2194, 2201, 2203, 2283, 2294, 2307], │ │ │ │ │ "16211": 2238, │ │ │ │ │ "162114": 2207, │ │ │ │ │ "16212": 2238, │ │ │ │ │ "16223": [2235, 2241], │ │ │ │ │ @@ -24550,15 +24553,15 @@ │ │ │ │ │ "162754": 2191, │ │ │ │ │ "16282": 2236, │ │ │ │ │ "16284": 2241, │ │ │ │ │ "16285": 2236, │ │ │ │ │ "16288": 2236, │ │ │ │ │ "16291": 2236, │ │ │ │ │ "162969": 2185, │ │ │ │ │ - "163": [2185, 2186, 2188, 2193, 2195, 2197, 2199, 2201, 2210, 2211], │ │ │ │ │ + "163": [2185, 2186, 2188, 2195, 2197, 2199, 2201, 2210, 2211], │ │ │ │ │ "1630": 2263, │ │ │ │ │ "163008": 2186, │ │ │ │ │ "16301": 2238, │ │ │ │ │ "16302": 2236, │ │ │ │ │ "16306": 2236, │ │ │ │ │ "16316": 2249, │ │ │ │ │ "16319": 2236, │ │ │ │ │ @@ -24959,15 +24962,15 @@ │ │ │ │ │ "17656": 2265, │ │ │ │ │ "1766": 2199, │ │ │ │ │ "176896": 2207, │ │ │ │ │ "17690": 2241, │ │ │ │ │ "17691": 2249, │ │ │ │ │ "17697": 2246, │ │ │ │ │ "1769950": [182, 760], │ │ │ │ │ - "177": [259, 890, 2185, 2186, 2188, 2195, 2197, 2199, 2200, 2203, 2210, 2211, 2283, 2298], │ │ │ │ │ + "177": [259, 890, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2203, 2210, 2211, 2283, 2298], │ │ │ │ │ "17704": 2238, │ │ │ │ │ "177045": 2186, │ │ │ │ │ "17710": 2238, │ │ │ │ │ "17717": 2241, │ │ │ │ │ "17722": 2241, │ │ │ │ │ "177310": 2207, │ │ │ │ │ "17738": 2238, │ │ │ │ │ @@ -24980,15 +24983,15 @@ │ │ │ │ │ "17758": 2241, │ │ │ │ │ "1776": [195, 770, 2263], │ │ │ │ │ "17776": 2239, │ │ │ │ │ "17778": [2241, 2242], │ │ │ │ │ "17780": 2238, │ │ │ │ │ "17791": 2239, │ │ │ │ │ "17798": 2238, │ │ │ │ │ - "178": [69, 109, 129, 171, 173, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 275, 2185, 2186, 2188, 2195, 2197, 2199, 2200, 2203, 2210, 2211, 2212, 2283, 2298], │ │ │ │ │ + "178": [69, 109, 129, 171, 173, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 275, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2203, 2210, 2211, 2212, 2283, 2298], │ │ │ │ │ "178035": 2207, │ │ │ │ │ "17812": 2249, │ │ │ │ │ "17813": 2241, │ │ │ │ │ "17820": 2249, │ │ │ │ │ "1783": 2263, │ │ │ │ │ "17830": 2241, │ │ │ │ │ "17832": 2246, │ │ │ │ │ @@ -25081,15 +25084,15 @@ │ │ │ │ │ "18178": 2239, │ │ │ │ │ "1818": 2217, │ │ │ │ │ "18184": 2241, │ │ │ │ │ "18186": 2239, │ │ │ │ │ "18187": 2239, │ │ │ │ │ "181873": 2207, │ │ │ │ │ "18198": 2294, │ │ │ │ │ - "182": [176, 179, 2185, 2186, 2188, 2195, 2197, 2199, 2200, 2210, 2211, 2298], │ │ │ │ │ + "182": [176, 179, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2210, 2211, 2298], │ │ │ │ │ "18203": 2239, │ │ │ │ │ "18213": 2241, │ │ │ │ │ "18216": 2239, │ │ │ │ │ "18217": [2241, 2265], │ │ │ │ │ "18218": 2241, │ │ │ │ │ "18221": 2241, │ │ │ │ │ "18222": 2265, │ │ │ │ │ @@ -25750,19 +25753,20 @@ │ │ │ │ │ "2021": [288, 296, 318, 639, 652, 673, 940, 943, 948, 957, 970, 997, 1542, 2201, 2207, 2213, 2277, 2289, 2294], │ │ │ │ │ "2022": [5, 22, 523, 525, 528, 537, 982, 1185, 1246, 1288, 1491, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1542, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1560, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1578, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1598, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1620, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1637, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1657, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1677, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1699, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1720, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1758, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1776, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1793, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1815, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1839, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1857, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1876, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1894, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1912, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1930, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1947, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1964, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1982, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 2000, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2018, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2036, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2054, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2108, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2127, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2145, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2186, 2203, 2213, 2227, 2298, 2302, 2307], │ │ │ │ │ "2022a": 2294, │ │ │ │ │ "2023": [34, 270, 298, 301, 320, 363, 511, 519, 526, 533, 543, 544, 545, 546, 547, 548, 549, 551, 554, 555, 556, 557, 558, 560, 563, 564, 565, 566, 567, 651, 894, 898, 954, 959, 960, 982, 984, 1000, 1001, 1003, 1004, 1005, 1011, 1016, 1020, 1021, 1024, 1122, 1141, 1147, 1157, 1170, 1171, 1176, 1180, 1185, 1195, 1197, 1206, 1214, 1227, 1228, 1233, 1239, 1245, 1246, 1256, 1258, 1268, 1271, 1273, 1274, 1277, 1278, 1279, 1280, 1282, 1283, 1284, 1285, 1287, 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1297, 1501, 1620, 1930, 2090, 2127, 2145, 2213], │ │ │ │ │ "202380": 2207, │ │ │ │ │ "20239": [2241, 2265], │ │ │ │ │ "2024": [270, 544, 546, 555, 567, 894, 898, 2127, 2213], │ │ │ │ │ - "2025": [36, 544, 546, 555, 567, 894, 898, 2228], │ │ │ │ │ + "2025": [36, 544, 546, 555, 567, 894, 898], │ │ │ │ │ "20251": 2307, │ │ │ │ │ "2026": 2228, │ │ │ │ │ "202602": 2205, │ │ │ │ │ "202646": 2230, │ │ │ │ │ + "2027": 2228, │ │ │ │ │ "20271": 2241, │ │ │ │ │ "202872": [2184, 2214], │ │ │ │ │ "202946": 2207, │ │ │ │ │ "203": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2211, 2231, 2253], │ │ │ │ │ "2030": 2265, │ │ │ │ │ "20303": 2265, │ │ │ │ │ "20306": 2302, │ │ │ │ │ @@ -26195,15 +26199,15 @@ │ │ │ │ │ "21867": 2246, │ │ │ │ │ "218745": 2207, │ │ │ │ │ "21877": 2246, │ │ │ │ │ "218792": 2230, │ │ │ │ │ "21891": 2246, │ │ │ │ │ "21892": 2289, │ │ │ │ │ "218983": 2217, │ │ │ │ │ - "219": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2211], │ │ │ │ │ + "219": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2211, 2218], │ │ │ │ │ "219049": 2207, │ │ │ │ │ "219115": 2184, │ │ │ │ │ "219182": 2205, │ │ │ │ │ "219217": [2185, 2197, 2199, 2202, 2204], │ │ │ │ │ "21925": 2246, │ │ │ │ │ "219296": 2207, │ │ │ │ │ "2193": 2246, │ │ │ │ │ @@ -26411,15 +26415,15 @@ │ │ │ │ │ "22818": [2283, 2298], │ │ │ │ │ "22835": 2246, │ │ │ │ │ "22858": 2246, │ │ │ │ │ "22860": 2246, │ │ │ │ │ "22862": 2246, │ │ │ │ │ "22880": 2246, │ │ │ │ │ "22887": 2246, │ │ │ │ │ - "229": [2185, 2186, 2188, 2195, 2197, 2199, 2210], │ │ │ │ │ + "229": [2185, 2186, 2188, 2193, 2195, 2197, 2199, 2210], │ │ │ │ │ "22903": 2246, │ │ │ │ │ "22905": 2246, │ │ │ │ │ "22912": 2246, │ │ │ │ │ "22922": 2246, │ │ │ │ │ "229349": 2207, │ │ │ │ │ "22938": 2246, │ │ │ │ │ "229453": 2197, │ │ │ │ │ @@ -26573,15 +26577,15 @@ │ │ │ │ │ "23675": 2246, │ │ │ │ │ "23677": 2246, │ │ │ │ │ "23679": 2249, │ │ │ │ │ "23682": 2246, │ │ │ │ │ "23683": 2249, │ │ │ │ │ "23687": 2246, │ │ │ │ │ "23697": 2289, │ │ │ │ │ - "237": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2218, 2220, 2298], │ │ │ │ │ + "237": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2220, 2298], │ │ │ │ │ "237000": [2185, 2220], │ │ │ │ │ "23705": 2249, │ │ │ │ │ "23711": 2246, │ │ │ │ │ "237124": 2207, │ │ │ │ │ "237159": 2199, │ │ │ │ │ "23719": 2265, │ │ │ │ │ "237242": [2191, 2207], │ │ │ │ │ @@ -27051,15 +27055,15 @@ │ │ │ │ │ "25851": 2249, │ │ │ │ │ "25860": 2249, │ │ │ │ │ "258648": 2210, │ │ │ │ │ "25871": 2249, │ │ │ │ │ "25880": 2298, │ │ │ │ │ "25893": 2249, │ │ │ │ │ "258993": 2197, │ │ │ │ │ - "259": [2185, 2186, 2188, 2195, 2197, 2199, 2210], │ │ │ │ │ + "259": [2186, 2188, 2193, 2195, 2197, 2199, 2205, 2210], │ │ │ │ │ "25905": 2249, │ │ │ │ │ "25913": 2249, │ │ │ │ │ "259200": [683, 2298], │ │ │ │ │ "259200000000000": [931, 933, 937], │ │ │ │ │ "25922": 2249, │ │ │ │ │ "259260": 2228, │ │ │ │ │ "25928": 2249, │ │ │ │ │ @@ -27269,15 +27273,15 @@ │ │ │ │ │ "268413": 2207, │ │ │ │ │ "2685": 2221, │ │ │ │ │ "268520": [2184, 2195, 2214], │ │ │ │ │ "2686": 2215, │ │ │ │ │ "2687": 2215, │ │ │ │ │ "2689": 2215, │ │ │ │ │ "268968": 2207, │ │ │ │ │ - "269": [2185, 2186, 2188, 2195, 2197, 2199, 2210], │ │ │ │ │ + "269": [2186, 2188, 2195, 2197, 2199, 2210], │ │ │ │ │ "2690": 2215, │ │ │ │ │ "26916": 2249, │ │ │ │ │ "26919": 2283, │ │ │ │ │ "2692": 2215, │ │ │ │ │ "269219": [242, 817], │ │ │ │ │ "26934": 2249, │ │ │ │ │ "26939": 2265, │ │ │ │ │ @@ -27311,15 +27315,15 @@ │ │ │ │ │ "2707": 2199, │ │ │ │ │ "27080": 2250, │ │ │ │ │ "27081": 2271, │ │ │ │ │ "27082": 2249, │ │ │ │ │ "27083": 2249, │ │ │ │ │ "27084": 2249, │ │ │ │ │ "27088": 2249, │ │ │ │ │ - "271": [2186, 2188, 2195, 2197, 2199, 2210], │ │ │ │ │ + "271": [2186, 2188, 2195, 2197, 2199, 2205, 2210], │ │ │ │ │ "2710": [2202, 2216], │ │ │ │ │ "27101": 2277, │ │ │ │ │ "2710197": 2202, │ │ │ │ │ "27103": 2265, │ │ │ │ │ "27104": 2277, │ │ │ │ │ "27106": 2265, │ │ │ │ │ "27110": 2249, │ │ │ │ │ @@ -27433,15 +27437,14 @@ │ │ │ │ │ "276183": 2257, │ │ │ │ │ "2762": [2184, 2186, 2191], │ │ │ │ │ "276232": [15, 2184, 2185, 2186, 2191, 2197, 2199, 2202, 2210, 2214, 2215, 2216, 2218, 2225, 2231, 2241, 2264], │ │ │ │ │ "27636": 2250, │ │ │ │ │ "276386": 2207, │ │ │ │ │ "27642": 2250, │ │ │ │ │ "276464": 2230, │ │ │ │ │ - "2765": 2193, │ │ │ │ │ "27656": [2294, 2298], │ │ │ │ │ "27660": 2265, │ │ │ │ │ "2766617129497566": 2257, │ │ │ │ │ "276662": [2185, 2197, 2199, 2202, 2215, 2257], │ │ │ │ │ "27668": 2265, │ │ │ │ │ "2767": 2191, │ │ │ │ │ "27676": 2265, │ │ │ │ │ @@ -27797,15 +27800,15 @@ │ │ │ │ │ "29564": 2289, │ │ │ │ │ "29565": 2265, │ │ │ │ │ "29570": 2277, │ │ │ │ │ "295722": 2235, │ │ │ │ │ "29578": 2265, │ │ │ │ │ "295968": 2207, │ │ │ │ │ "295989": 2197, │ │ │ │ │ - "296": [514, 516, 2186, 2197, 2199, 2210, 2255], │ │ │ │ │ + "296": [514, 516, 2186, 2193, 2197, 2199, 2210, 2255], │ │ │ │ │ "2960": 2221, │ │ │ │ │ "29608": 2265, │ │ │ │ │ "29618": 2298, │ │ │ │ │ "29623": 2283, │ │ │ │ │ "29624": 2265, │ │ │ │ │ "296326": 2207, │ │ │ │ │ "29641": 2265, │ │ │ │ │ @@ -27974,15 +27977,15 @@ │ │ │ │ │ "304611": 2197, │ │ │ │ │ "30463": 2265, │ │ │ │ │ "304662": 2199, │ │ │ │ │ "304762": 2207, │ │ │ │ │ "30482": 2298, │ │ │ │ │ "30484": 2271, │ │ │ │ │ "30489": 2298, │ │ │ │ │ - "305": [2186, 2197, 2199, 2210], │ │ │ │ │ + "305": [2185, 2186, 2197, 2199, 2210], │ │ │ │ │ "30511": 2271, │ │ │ │ │ "305288": 2207, │ │ │ │ │ "305384": 2197, │ │ │ │ │ "30543": 2271, │ │ │ │ │ "30546": 2298, │ │ │ │ │ "30562": 2298, │ │ │ │ │ "305657": 2207, │ │ │ │ │ @@ -29061,15 +29064,15 @@ │ │ │ │ │ "35869": 2277, │ │ │ │ │ "35873": 2283, │ │ │ │ │ "35876": 2273, │ │ │ │ │ "35878": 2273, │ │ │ │ │ "35882": 2273, │ │ │ │ │ "35889": 2277, │ │ │ │ │ "35897": 2274, │ │ │ │ │ - "359": [69, 109, 129, 171, 173, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 275, 2186, 2193, 2197, 2199, 2207, 2210, 2255, 2298], │ │ │ │ │ + "359": [69, 109, 129, 171, 173, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 275, 2186, 2197, 2199, 2207, 2210, 2255, 2298], │ │ │ │ │ "3590": 2217, │ │ │ │ │ "35923": 2283, │ │ │ │ │ "359235": 2207, │ │ │ │ │ "359261": 2191, │ │ │ │ │ "359284": 2195, │ │ │ │ │ "359299": 2191, │ │ │ │ │ "35931": 2273, │ │ │ │ │ @@ -29258,15 +29261,15 @@ │ │ │ │ │ "36870": 2277, │ │ │ │ │ "368714": 2184, │ │ │ │ │ "368824": 2230, │ │ │ │ │ "36888": 2277, │ │ │ │ │ "36889": 2275, │ │ │ │ │ "36893": 2283, │ │ │ │ │ "36895": 2277, │ │ │ │ │ - "369": [2186, 2197, 2199, 2210], │ │ │ │ │ + "369": [2185, 2186, 2197, 2199, 2210], │ │ │ │ │ "36900": 2298, │ │ │ │ │ "36904": 2275, │ │ │ │ │ "36907": 2277, │ │ │ │ │ "36908": 2277, │ │ │ │ │ "369081": 2207, │ │ │ │ │ "36909": 2283, │ │ │ │ │ "3691": 2217, │ │ │ │ │ @@ -29421,23 +29424,22 @@ │ │ │ │ │ "37705": 2277, │ │ │ │ │ "37711": 2276, │ │ │ │ │ "37722": 2277, │ │ │ │ │ "377245": 15, │ │ │ │ │ "37725": 2277, │ │ │ │ │ "377263": 2207, │ │ │ │ │ "37733": 2277, │ │ │ │ │ - "3773406912": 2246, │ │ │ │ │ "37748": 2277, │ │ │ │ │ "37750": 2289, │ │ │ │ │ "377535": 2186, │ │ │ │ │ "37755": 2276, │ │ │ │ │ "37758": 2277, │ │ │ │ │ "377642": 2210, │ │ │ │ │ "37768": 2277, │ │ │ │ │ - "3777": 2218, │ │ │ │ │ + "3777": [2193, 2218], │ │ │ │ │ "37782": 2302, │ │ │ │ │ "377887": 2207, │ │ │ │ │ "37799": 2277, │ │ │ │ │ "378": [2186, 2197, 2199, 2207, 2210, 2231], │ │ │ │ │ "3780": 2222, │ │ │ │ │ "37804": 2283, │ │ │ │ │ "378163": 2207, │ │ │ │ │ @@ -29445,18 +29447,20 @@ │ │ │ │ │ "37821": 2277, │ │ │ │ │ "378261": 2218, │ │ │ │ │ "37827": 2277, │ │ │ │ │ "378298": 2207, │ │ │ │ │ "378430": 2207, │ │ │ │ │ "378528": 2197, │ │ │ │ │ "37867": 2277, │ │ │ │ │ + "3786966512": 2246, │ │ │ │ │ "3787": 2228, │ │ │ │ │ "37877": [2277, 2298], │ │ │ │ │ "378782": 993, │ │ │ │ │ "378849": 2191, │ │ │ │ │ + "3788646784": 2246, │ │ │ │ │ "37899": 2289, │ │ │ │ │ "379": [2186, 2197, 2199, 2210, 2231], │ │ │ │ │ "37901": 2277, │ │ │ │ │ "37909": 2277, │ │ │ │ │ "379098": 2207, │ │ │ │ │ "37910": 2276, │ │ │ │ │ "37918": 2298, │ │ │ │ │ @@ -29640,15 +29644,14 @@ │ │ │ │ │ "3877": 2217, │ │ │ │ │ "38774": 2278, │ │ │ │ │ "38778": 2283, │ │ │ │ │ "38780": 2283, │ │ │ │ │ "38782": 2283, │ │ │ │ │ "38787": 2283, │ │ │ │ │ "38788": 2278, │ │ │ │ │ - "3879182560": 2246, │ │ │ │ │ "38792": 2283, │ │ │ │ │ "387949": 2207, │ │ │ │ │ "38798": 2298, │ │ │ │ │ "388": [2186, 2197, 2199, 2210], │ │ │ │ │ "38801": 2278, │ │ │ │ │ "3881": [2202, 2220], │ │ │ │ │ "388138": 2210, │ │ │ │ │ @@ -30595,15 +30598,15 @@ │ │ │ │ │ "430489": 2199, │ │ │ │ │ "4305": 2218, │ │ │ │ │ "430505": 2186, │ │ │ │ │ "43059": 2289, │ │ │ │ │ "43075": 2286, │ │ │ │ │ "43080": 2289, │ │ │ │ │ "430860": [2207, 2212], │ │ │ │ │ - "431": [28, 2186, 2193, 2199, 2210, 2298], │ │ │ │ │ + "431": [28, 2186, 2199, 2210, 2298], │ │ │ │ │ "43101": 2289, │ │ │ │ │ "43102": 2289, │ │ │ │ │ "43108": 2286, │ │ │ │ │ "431125": 2184, │ │ │ │ │ "43115": 2289, │ │ │ │ │ "431186": 2199, │ │ │ │ │ "4312": 2218, │ │ │ │ │ @@ -31309,15 +31312,15 @@ │ │ │ │ │ "45967": 2294, │ │ │ │ │ "45981": 2298, │ │ │ │ │ "459855": 2207, │ │ │ │ │ "45986": [2294, 2298], │ │ │ │ │ "45991": 2294, │ │ │ │ │ "45999": 2294, │ │ │ │ │ "46": [17, 19, 23, 29, 278, 331, 686, 904, 1323, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2249, 2265, 2271, 2277, 2283, 2297, 2302], │ │ │ │ │ - "460": [2199, 2205, 2210], │ │ │ │ │ + "460": [2199, 2210], │ │ │ │ │ "46001": 2294, │ │ │ │ │ "4601": 2218, │ │ │ │ │ "46015": 2294, │ │ │ │ │ "46018": 2291, │ │ │ │ │ "46026": 2294, │ │ │ │ │ "46037": 2291, │ │ │ │ │ "4604": 2218, │ │ │ │ │ @@ -32060,15 +32063,15 @@ │ │ │ │ │ "4987": 2225, │ │ │ │ │ "4988": 2238, │ │ │ │ │ "498861": 2191, │ │ │ │ │ "49888": 2300, │ │ │ │ │ "49889": 2299, │ │ │ │ │ "49890": 2298, │ │ │ │ │ "49897": 2298, │ │ │ │ │ - "499": [2184, 2185, 2199, 2205, 2210, 2249], │ │ │ │ │ + "499": [2184, 2199, 2205, 2210, 2249], │ │ │ │ │ "49907": 2297, │ │ │ │ │ "499148": 2207, │ │ │ │ │ "49921": 2298, │ │ │ │ │ "49922": 2298, │ │ │ │ │ "49929": 2298, │ │ │ │ │ "4993": 2218, │ │ │ │ │ "49944": 2302, │ │ │ │ │ @@ -32358,15 +32361,15 @@ │ │ │ │ │ "5125": 2218, │ │ │ │ │ "51254": 2302, │ │ │ │ │ "51258": 2298, │ │ │ │ │ "512743": 2193, │ │ │ │ │ "51276": 2302, │ │ │ │ │ "5129": 2220, │ │ │ │ │ "51299": 2298, │ │ │ │ │ - "513": [2193, 2199], │ │ │ │ │ + "513": 2199, │ │ │ │ │ "51302": 2298, │ │ │ │ │ "51316": 2298, │ │ │ │ │ "51349": 2298, │ │ │ │ │ "513520": 2207, │ │ │ │ │ "51353": 2302, │ │ │ │ │ "5136": [2192, 2197], │ │ │ │ │ "513600": 2207, │ │ │ │ │ @@ -32684,15 +32687,15 @@ │ │ │ │ │ "52979": 2302, │ │ │ │ │ "52981": 2302, │ │ │ │ │ "52986": 2302, │ │ │ │ │ "529895": 2219, │ │ │ │ │ "52998": 2302, │ │ │ │ │ "52w": 1433, │ │ │ │ │ "53": [15, 17, 19, 24, 25, 28, 29, 32, 532, 662, 957, 1377, 1793, 1815, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2249, 2271, 2283, 2294], │ │ │ │ │ - "530": 2199, │ │ │ │ │ + "530": [2199, 2205], │ │ │ │ │ "53001": 2300, │ │ │ │ │ "53009": 2302, │ │ │ │ │ "530113": 2207, │ │ │ │ │ "53013": 2302, │ │ │ │ │ "53014": 2302, │ │ │ │ │ "53039": 2302, │ │ │ │ │ "53045": 2302, │ │ │ │ │ @@ -32702,15 +32705,15 @@ │ │ │ │ │ "530570": 2260, │ │ │ │ │ "53058": 2302, │ │ │ │ │ "530606": 2207, │ │ │ │ │ "53077": 2300, │ │ │ │ │ "53088": 2302, │ │ │ │ │ "530905": 2204, │ │ │ │ │ "53093": 2300, │ │ │ │ │ - "531": [2193, 2199], │ │ │ │ │ + "531": 2199, │ │ │ │ │ "53103": 2302, │ │ │ │ │ "5310949": 2202, │ │ │ │ │ "531096": 2230, │ │ │ │ │ "5311": 2202, │ │ │ │ │ "53111": 2307, │ │ │ │ │ "53117": 2300, │ │ │ │ │ "5312": 2218, │ │ │ │ │ @@ -32854,15 +32857,15 @@ │ │ │ │ │ "53746": 2302, │ │ │ │ │ "53747": 2302, │ │ │ │ │ "53767": 2302, │ │ │ │ │ "5377": 2271, │ │ │ │ │ "53786": 2302, │ │ │ │ │ "537874": 2207, │ │ │ │ │ "53792": 2302, │ │ │ │ │ - "538": [2191, 2199], │ │ │ │ │ + "538": [2191, 2199, 2205], │ │ │ │ │ "53806": 2302, │ │ │ │ │ "53811": 2302, │ │ │ │ │ "53831": 2302, │ │ │ │ │ "53832": 2302, │ │ │ │ │ "53846": 2304, │ │ │ │ │ "538468": 2210, │ │ │ │ │ "53854": 2302, │ │ │ │ │ @@ -32884,15 +32887,15 @@ │ │ │ │ │ "539708": 2195, │ │ │ │ │ "53979": 2302, │ │ │ │ │ "53983": 2302, │ │ │ │ │ "539890": 2257, │ │ │ │ │ "539990": 2210, │ │ │ │ │ "53h": 2209, │ │ │ │ │ "54": [15, 17, 19, 29, 213, 345, 788, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2225, 2226, 2228, 2230, 2231, 2232, 2235, 2238, 2241, 2246, 2249, 2271, 2283], │ │ │ │ │ - "540": [69, 109, 129, 171, 173, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 275, 2193, 2199], │ │ │ │ │ + "540": [69, 109, 129, 171, 173, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 275, 2199], │ │ │ │ │ "5401": 2277, │ │ │ │ │ "54011": 2302, │ │ │ │ │ "540132": 2207, │ │ │ │ │ "5402": 2219, │ │ │ │ │ "540338": 2235, │ │ │ │ │ "54037": 2302, │ │ │ │ │ "54063": 2302, │ │ │ │ │ @@ -32963,15 +32966,15 @@ │ │ │ │ │ "54466": 2308, │ │ │ │ │ "54467": 2307, │ │ │ │ │ "54477": 2302, │ │ │ │ │ "544785": 2207, │ │ │ │ │ "54480": 2307, │ │ │ │ │ "544883": 2166, │ │ │ │ │ "54495": 2302, │ │ │ │ │ - "545": [1444, 2193, 2199, 2203, 2257], │ │ │ │ │ + "545": [1444, 2199, 2203, 2257], │ │ │ │ │ "545034": 2186, │ │ │ │ │ "54508": 2302, │ │ │ │ │ "545163": 2207, │ │ │ │ │ "5453": 2220, │ │ │ │ │ "545371": 2207, │ │ │ │ │ "54550": 2307, │ │ │ │ │ "54564": 2307, │ │ │ │ │ @@ -33772,15 +33775,15 @@ │ │ │ │ │ "6098": 2219, │ │ │ │ │ "609836": 2186, │ │ │ │ │ "61": [15, 17, 19, 26, 27, 31, 242, 283, 532, 817, 910, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2223, 2226, 2228, 2230, 2231, 2232, 2235, 2241, 2246, 2271], │ │ │ │ │ "610": 2199, │ │ │ │ │ "6105": 2219, │ │ │ │ │ "610691": 2199, │ │ │ │ │ "610871": 2207, │ │ │ │ │ - "611": 2199, │ │ │ │ │ + "611": [2193, 2199], │ │ │ │ │ "6111": 2186, │ │ │ │ │ "611107": 2207, │ │ │ │ │ "611112": 2218, │ │ │ │ │ "611185": 2197, │ │ │ │ │ "6113": [2186, 2228], │ │ │ │ │ "6114": 2186, │ │ │ │ │ "611510": 2184, │ │ │ │ │ @@ -33871,15 +33874,15 @@ │ │ │ │ │ "6209": 2219, │ │ │ │ │ "621": 2199, │ │ │ │ │ "621034": 2186, │ │ │ │ │ "6212": 2219, │ │ │ │ │ "6214": 2218, │ │ │ │ │ "621452": 2207, │ │ │ │ │ "621592": 2207, │ │ │ │ │ - "622": [16, 17, 18, 19, 2197, 2199, 2202, 2203, 2205, 2231, 2235, 2298], │ │ │ │ │ + "622": [16, 17, 18, 19, 2193, 2197, 2199, 2202, 2203, 2231, 2235, 2298], │ │ │ │ │ "622109": 2230, │ │ │ │ │ "6223": 2220, │ │ │ │ │ "622526": 2186, │ │ │ │ │ "622638": 2207, │ │ │ │ │ "622727": 2195, │ │ │ │ │ "622970": 2207, │ │ │ │ │ "623": [16, 17, 18, 19, 2199, 2203, 2235, 2298], │ │ │ │ │ @@ -33937,23 +33940,21 @@ │ │ │ │ │ "6289": 2220, │ │ │ │ │ "628992": 2257, │ │ │ │ │ "629": 2199, │ │ │ │ │ "6290": 2220, │ │ │ │ │ "629003": 2207, │ │ │ │ │ "629165": 2230, │ │ │ │ │ "6292": [2220, 2230], │ │ │ │ │ - "6295": 2203, │ │ │ │ │ "629546": 2219, │ │ │ │ │ - "6296": [2203, 2220], │ │ │ │ │ + "6296": 2220, │ │ │ │ │ "629675": 2185, │ │ │ │ │ - "6297": [2203, 2220], │ │ │ │ │ - "6298": 2203, │ │ │ │ │ - "6299": [2203, 2220], │ │ │ │ │ + "6297": 2220, │ │ │ │ │ + "6299": 2220, │ │ │ │ │ "63": [15, 17, 19, 213, 788, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2226, 2227, 2228, 2230, 2232, 2235, 2241, 2246, 2271], │ │ │ │ │ - "630": [2199, 2205, 2218], │ │ │ │ │ + "630": 2199, │ │ │ │ │ "630110": 15, │ │ │ │ │ "630256": 2207, │ │ │ │ │ "630482": 2207, │ │ │ │ │ "631": 2199, │ │ │ │ │ "631095": 2195, │ │ │ │ │ "6313": 2220, │ │ │ │ │ "631502": 2207, │ │ │ │ │ @@ -34101,15 +34102,14 @@ │ │ │ │ │ "6496": [2221, 2222], │ │ │ │ │ "649646": 2207, │ │ │ │ │ "649682": 28, │ │ │ │ │ "649711": 2212, │ │ │ │ │ "649727": 2191, │ │ │ │ │ "649748": 2186, │ │ │ │ │ "64bit": 2298, │ │ │ │ │ - "64ec62289cb4": 2203, │ │ │ │ │ "65": [17, 19, 259, 890, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246, 2255, 2271], │ │ │ │ │ "650": [2199, 2298], │ │ │ │ │ "65000000": [176, 179, 754, 757, 1242, 1243], │ │ │ │ │ "6504": 2220, │ │ │ │ │ "650762": 2199, │ │ │ │ │ "650776": 2202, │ │ │ │ │ "650794": [121, 696], │ │ │ │ │ @@ -34466,14 +34466,15 @@ │ │ │ │ │ "689": 2199, │ │ │ │ │ "6893": 2220, │ │ │ │ │ "6894": 2220, │ │ │ │ │ "689569": 2207, │ │ │ │ │ "6897": 2221, │ │ │ │ │ "6899": 2220, │ │ │ │ │ "69": [17, 19, 188, 189, 764, 765, 1433, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2226, 2228, 2230, 2232, 2235, 2241, 2246, 2271], │ │ │ │ │ + "690": 2218, │ │ │ │ │ "6900": 2220, │ │ │ │ │ "6902": 2199, │ │ │ │ │ "690288": 2191, │ │ │ │ │ "6903": 2199, │ │ │ │ │ "6904": [2199, 2220], │ │ │ │ │ "690438": 2191, │ │ │ │ │ "690539": 2235, │ │ │ │ │ @@ -34492,28 +34493,26 @@ │ │ │ │ │ "691592": 2207, │ │ │ │ │ "691944": 2207, │ │ │ │ │ "692": 2199, │ │ │ │ │ "6923": 2220, │ │ │ │ │ "692424": 2186, │ │ │ │ │ "692498": 2207, │ │ │ │ │ "6926": 2220, │ │ │ │ │ - "692651": 2228, │ │ │ │ │ "6927": 2220, │ │ │ │ │ "6929": 2277, │ │ │ │ │ "693": [1433, 2199], │ │ │ │ │ "6930": 2230, │ │ │ │ │ "693043": 2210, │ │ │ │ │ "6932": 2222, │ │ │ │ │ "693205": [2184, 2214], │ │ │ │ │ "693429": 28, │ │ │ │ │ "6937": 2221, │ │ │ │ │ "693884": 2210, │ │ │ │ │ "6939": 2220, │ │ │ │ │ "694": 2199, │ │ │ │ │ - "694263": 2228, │ │ │ │ │ "694268": 28, │ │ │ │ │ "6945": 2241, │ │ │ │ │ "694592": 2207, │ │ │ │ │ "695": 2199, │ │ │ │ │ "6951": 2220, │ │ │ │ │ "695148": 2186, │ │ │ │ │ "6952": 2220, │ │ │ │ │ @@ -35401,15 +35400,15 @@ │ │ │ │ │ "809185": 2219, │ │ │ │ │ "8092": 2222, │ │ │ │ │ "809797": 2207, │ │ │ │ │ "809829": 2207, │ │ │ │ │ "809926": 2207, │ │ │ │ │ "80px": 2207, │ │ │ │ │ "81": [15, 187, 763, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2218, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246, 2249, 2271], │ │ │ │ │ - "810": [182, 760, 2193, 2200, 2298], │ │ │ │ │ + "810": [182, 760, 2200, 2298], │ │ │ │ │ "8100": 2199, │ │ │ │ │ "8103": 2222, │ │ │ │ │ "810332": 2207, │ │ │ │ │ "810340": 2186, │ │ │ │ │ "810847": 2195, │ │ │ │ │ "811": [2200, 2298], │ │ │ │ │ "8110935116651191": 2186, │ │ │ │ │ @@ -35652,15 +35651,15 @@ │ │ │ │ │ "848896": 2193, │ │ │ │ │ "848974": 2197, │ │ │ │ │ "849": [16, 17, 18, 19, 2199, 2235], │ │ │ │ │ "8494": 2223, │ │ │ │ │ "8496": 2241, │ │ │ │ │ "84960": 2210, │ │ │ │ │ "849980": 2195, │ │ │ │ │ - "85": [182, 190, 193, 718, 760, 766, 768, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2218, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246], │ │ │ │ │ + "85": [182, 190, 193, 718, 760, 766, 768, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2218, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246], │ │ │ │ │ "850": [16, 17, 18, 19, 2199, 2235], │ │ │ │ │ "850083": 2207, │ │ │ │ │ "8501": 2222, │ │ │ │ │ "850229": 2235, │ │ │ │ │ "850287": 2207, │ │ │ │ │ "8504": 2202, │ │ │ │ │ "850458": 2207, │ │ │ │ │ @@ -35729,15 +35728,15 @@ │ │ │ │ │ "8592": 2223, │ │ │ │ │ "8594": 2265, │ │ │ │ │ "859511": 2207, │ │ │ │ │ "859588": [2220, 2228, 2230, 2231], │ │ │ │ │ "8596": 2232, │ │ │ │ │ "859691": 2191, │ │ │ │ │ "85a3": 2241, │ │ │ │ │ - "86": [16, 1433, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246], │ │ │ │ │ + "86": [16, 1433, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246], │ │ │ │ │ "860": [182, 760, 2199], │ │ │ │ │ "860059": 2204, │ │ │ │ │ "8601": [662, 923, 983, 2199, 2209, 2210, 2230, 2235, 2241, 2271, 2277, 2283, 2298], │ │ │ │ │ "8602": 2224, │ │ │ │ │ "860312": 2199, │ │ │ │ │ "8607": 2223, │ │ │ │ │ "860736": 15, │ │ │ │ │ @@ -36064,23 +36063,25 @@ │ │ │ │ │ "901": 2199, │ │ │ │ │ "9011": 2224, │ │ │ │ │ "9012": 2224, │ │ │ │ │ "9016": 2225, │ │ │ │ │ "902": 2199, │ │ │ │ │ "903": 2199, │ │ │ │ │ "9031": 2246, │ │ │ │ │ + "903170": 2228, │ │ │ │ │ "903246": 2207, │ │ │ │ │ "903450": 1340, │ │ │ │ │ "9037": 2225, │ │ │ │ │ "903794": 2186, │ │ │ │ │ "904": 2199, │ │ │ │ │ "9046": 2277, │ │ │ │ │ + "904676": 2228, │ │ │ │ │ "904807": 2191, │ │ │ │ │ "9049": 2225, │ │ │ │ │ - "905": [2193, 2199], │ │ │ │ │ + "905": 2199, │ │ │ │ │ "905029": 2207, │ │ │ │ │ "905122": 2199, │ │ │ │ │ "9052": 2230, │ │ │ │ │ "9054": 2226, │ │ │ │ │ "9057": 2227, │ │ │ │ │ "905793e": 2204, │ │ │ │ │ "905836": 2215, │ │ │ │ │ @@ -36802,15 +36803,15 @@ │ │ │ │ │ "__eq__": [1031, 1068, 2186, 2246, 2289, 2307], │ │ │ │ │ "__finalize__": [2192, 2194, 2197, 2199, 2218, 2220, 2298], │ │ │ │ │ "__floordiv__": [2241, 2307], │ │ │ │ │ "__from_arrow__": [10, 1068, 2299, 2302], │ │ │ │ │ "__fspath__": 2238, │ │ │ │ │ "__func__": 2202, │ │ │ │ │ "__getattr__": [15, 2199, 2218], │ │ │ │ │ - "__getattribute__": [10, 2203, 2294], │ │ │ │ │ + "__getattribute__": [10, 2294], │ │ │ │ │ "__getitem__": [2, 203, 1031, 1064, 1387, 2185, 2191, 2193, 2194, 2197, 2217, 2225, 2226, 2246, 2249, 2254, 2257, 2265, 2271, 2274, 2277, 2283, 2286, 2289, 2294, 2295, 2297, 2298, 2300, 2301, 2302, 2306, 2307, 2308], │ │ │ │ │ "__getstate__": 2218, │ │ │ │ │ "__git_version__": 2246, │ │ │ │ │ "__globally__": 2190, │ │ │ │ │ "__gt__": 2188, │ │ │ │ │ "__hash__": [1068, 2246, 2302], │ │ │ │ │ "__index_level_": 9, │ │ │ │ │ @@ -36844,15 +36845,14 @@ │ │ │ │ │ "__str__": 2217, │ │ │ │ │ "__sub__": 2241, │ │ │ │ │ "__subclasses__": 2186, │ │ │ │ │ "__truediv__": 2307, │ │ │ │ │ "__unicode__": [2217, 2220, 2249], │ │ │ │ │ "__version__": [5, 2199], │ │ │ │ │ "__xor__": 2298, │ │ │ │ │ - "_accessor": 2203, │ │ │ │ │ "_accumul": [1031, 2298], │ │ │ │ │ "_add_arithmetic_op": 10, │ │ │ │ │ "_add_comparison_op": 10, │ │ │ │ │ "_add_offset": 2210, │ │ │ │ │ "_add_timedeltalike_scalar": 2210, │ │ │ │ │ "_allows_duplicate_label": 2192, │ │ │ │ │ "_array_strptime_with_fallback": 2210, │ │ │ │ │ @@ -36866,15 +36866,14 @@ │ │ │ │ │ "_bootstrap": [2199, 2203, 2212, 2298], │ │ │ │ │ "_buffer": [16, 17, 18, 19, 2199, 2235], │ │ │ │ │ "_built_with_meson": 5, │ │ │ │ │ "_cacheabl": 2246, │ │ │ │ │ "_call_chain": [16, 17, 18, 19, 2199, 2235], │ │ │ │ │ "_call_with_frames_remov": 2199, │ │ │ │ │ "_caller": 153, │ │ │ │ │ - "_can_hold_identifiers_and_holds_nam": 2203, │ │ │ │ │ "_check_deprecated_callable_usag": [2185, 2197], │ │ │ │ │ "_check_for_loc": 2193, │ │ │ │ │ "_check_indexing_error": [2185, 2191, 2194], │ │ │ │ │ "_check_is_chained_assignment_poss": 2197, │ │ │ │ │ "_check_setitem_copi": 2197, │ │ │ │ │ "_check_tokenize_statu": 2199, │ │ │ │ │ "_cmp_method": 2186, │ │ │ │ │ @@ -36960,15 +36959,14 @@ │ │ │ │ │ "_hash": 2235, │ │ │ │ │ "_hash_pandas_object": 1043, │ │ │ │ │ "_ilocindex": 2197, │ │ │ │ │ "_import_class": 2199, │ │ │ │ │ "_indexed_sam": [2186, 2218], │ │ │ │ │ "_indexslic": 440, │ │ │ │ │ "_inferred_dtyp": [2208, 2249], │ │ │ │ │ - "_info_axi": 2203, │ │ │ │ │ "_internal_nam": 10, │ │ │ │ │ "_internal_names_set": 10, │ │ │ │ │ "_is_boolean": [1056, 1068, 1081], │ │ │ │ │ "_is_copi": 2197, │ │ │ │ │ "_is_mixed_typ": 2197, │ │ │ │ │ "_is_numer": [1068, 2246, 2298], │ │ │ │ │ "_is_scalar_access": [2185, 2197], │ │ │ │ │ @@ -37609,15 +37607,15 @@ │ │ │ │ │ "attende": 0, │ │ │ │ │ "attent": [3, 10, 2197, 2205, 2207, 2214, 2216], │ │ │ │ │ "attr": [15, 227, 705, 802, 1394, 1423, 1475, 1487, 2169, 2180, 2192, 2199, 2203, 2241, 2265, 2277, 2289, 2298, 2302, 2307], │ │ │ │ │ "attr_col": [272, 2199], │ │ │ │ │ "attribut": [4, 9, 10, 15, 24, 25, 31, 37, 38, 39, 46, 49, 63, 85, 107, 142, 153, 203, 210, 230, 249, 257, 266, 267, 272, 280, 286, 334, 337, 341, 342, 343, 344, 354, 386, 423, 441, 442, 443, 444, 445, 457, 459, 478, 487, 494, 509, 510, 514, 516, 532, 538, 540, 568, 573, 596, 629, 783, 784, 804, 882, 896, 914, 915, 916, 927, 930, 938, 953, 1027, 1028, 1029, 1030, 1031, 1068, 1069, 1071, 1072, 1078, 1081, 1090, 1091, 1117, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1140, 1141, 1142, 1143, 1144, 1164, 1168, 1202, 1203, 1221, 1263, 1264, 1342, 1345, 1347, 1374, 1387, 1391, 1394, 1395, 1396, 1402, 1403, 1404, 1405, 1413, 1414, 1420, 1421, 1422, 1424, 1432, 1433, 1435, 1436, 1475, 1487, 1488, 1490, 1494, 1495, 1496, 1506, 1524, 1542, 1560, 1578, 1598, 1620, 1637, 1657, 1677, 1699, 1720, 1741, 1758, 1776, 1793, 1815, 1839, 1857, 1876, 1894, 1912, 1930, 1947, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2127, 2145, 2167, 2172, 2184, 2185, 2192, 2193, 2196, 2199, 2202, 2203, 2204, 2206, 2208, 2210, 2211, 2214, 2216, 2217, 2218, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2236, 2238, 2239, 2241, 2242, 2246, 2249, 2251, 2253, 2254, 2257, 2259, 2263, 2265, 2271, 2273, 2277, 2278, 2280, 2283, 2289, 2292, 2293, 2295, 2297, 2298, 2302, 2307], │ │ │ │ │ "attribute2": [1395, 1396, 1413, 1414], │ │ │ │ │ "attributeconflictwarn": [2217, 2294], │ │ │ │ │ - "attributeerror": [10, 15, 845, 1069, 1071, 1072, 2203, 2220, 2221, 2222, 2225, 2226, 2227, 2228, 2230, 2231, 2232, 2233, 2235, 2238, 2239, 2241, 2246, 2247, 2249, 2250, 2265, 2266, 2269, 2271, 2274, 2275, 2276, 2278, 2279, 2281, 2283, 2286, 2289, 2290, 2294, 2295, 2298, 2301, 2302, 2307, 2308], │ │ │ │ │ + "attributeerror": [10, 15, 845, 1069, 1071, 1072, 2220, 2221, 2222, 2225, 2226, 2227, 2228, 2230, 2231, 2232, 2233, 2235, 2238, 2239, 2241, 2246, 2247, 2249, 2250, 2265, 2266, 2269, 2271, 2274, 2275, 2276, 2278, 2279, 2281, 2283, 2286, 2289, 2290, 2294, 2295, 2298, 2301, 2302, 2307, 2308], │ │ │ │ │ "attrs_onli": [1487, 2199], │ │ │ │ │ "audienc": 2207, │ │ │ │ │ "audit": [16, 17, 18, 19, 2199, 2222, 2235], │ │ │ │ │ "aug": [1699, 1720, 2210, 2213], │ │ │ │ │ "augment": [2225, 2231, 2277], │ │ │ │ │ "augspurg": [35, 2247, 2248], │ │ │ │ │ "august": [586, 2210, 2213], │ │ │ │ │ @@ -37738,15 +37736,15 @@ │ │ │ │ │ "barboursvil": 2199, │ │ │ │ │ "bare": [2, 2199, 2222, 2241, 2277], │ │ │ │ │ "barf": 2217, │ │ │ │ │ "barh": [26, 186, 188, 762, 764, 1188, 1249, 2211, 2220, 2221, 2228, 2260, 2294], │ │ │ │ │ "bark": 1365, │ │ │ │ │ "barplot": 2222, │ │ │ │ │ "barycentr": [146, 720, 1280, 2201, 2218], │ │ │ │ │ - "base": [1, 3, 4, 5, 10, 11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 31, 32, 34, 49, 65, 83, 84, 88, 107, 111, 112, 121, 127, 136, 137, 138, 141, 142, 144, 147, 157, 160, 184, 187, 212, 213, 218, 224, 240, 248, 253, 276, 278, 279, 285, 286, 288, 296, 318, 328, 331, 345, 352, 415, 433, 445, 459, 478, 540, 568, 573, 594, 595, 600, 629, 633, 639, 652, 673, 686, 696, 703, 712, 714, 717, 718, 732, 738, 754, 757, 763, 787, 788, 793, 816, 823, 836, 837, 838, 839, 840, 841, 842, 843, 844, 881, 886, 902, 904, 905, 913, 938, 940, 943, 948, 952, 1031, 1040, 1052, 1068, 1073, 1075, 1119, 1125, 1141, 1148, 1149, 1164, 1173, 1193, 1207, 1208, 1221, 1242, 1243, 1254, 1265, 1269, 1270, 1286, 1342, 1343, 1398, 1423, 1431, 1444, 1453, 1467, 1470, 1474, 1475, 1498, 1519, 1537, 1556, 1574, 1593, 1614, 1633, 1650, 1672, 1693, 1715, 1736, 1754, 1772, 1789, 1808, 1830, 1853, 1870, 1890, 1908, 1926, 1943, 1960, 1978, 1995, 2013, 2032, 2050, 2068, 2086, 2103, 2121, 2141, 2159, 2163, 2166, 2183, 2184, 2185, 2187, 2188, 2191, 2192, 2194, 2195, 2196, 2199, 2200, 2201, 2203, 2207, 2208, 2210, 2211, 2212, 2213, 2214, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2236, 2238, 2240, 2241, 2246, 2249, 2253, 2255, 2261, 2264, 2265, 2274, 2277, 2283, 2291, 2298, 2302], │ │ │ │ │ + "base": [1, 3, 4, 5, 10, 11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 31, 32, 34, 49, 65, 83, 84, 88, 107, 111, 112, 121, 127, 136, 137, 138, 141, 142, 144, 147, 157, 160, 184, 187, 212, 213, 218, 224, 240, 248, 253, 276, 278, 279, 285, 286, 288, 296, 318, 328, 331, 345, 352, 415, 433, 445, 459, 478, 540, 568, 573, 594, 595, 600, 629, 633, 639, 652, 673, 686, 696, 703, 712, 714, 717, 718, 732, 738, 754, 757, 763, 787, 788, 793, 816, 823, 836, 837, 838, 839, 840, 841, 842, 843, 844, 881, 886, 902, 904, 905, 913, 938, 940, 943, 948, 952, 1031, 1040, 1052, 1068, 1073, 1075, 1119, 1125, 1141, 1148, 1149, 1164, 1173, 1193, 1207, 1208, 1221, 1242, 1243, 1254, 1265, 1269, 1270, 1286, 1342, 1343, 1398, 1423, 1431, 1444, 1453, 1467, 1470, 1474, 1475, 1498, 1519, 1537, 1556, 1574, 1593, 1614, 1633, 1650, 1672, 1693, 1715, 1736, 1754, 1772, 1789, 1808, 1830, 1853, 1870, 1890, 1908, 1926, 1943, 1960, 1978, 1995, 2013, 2032, 2050, 2068, 2086, 2103, 2121, 2141, 2159, 2163, 2166, 2183, 2184, 2185, 2187, 2188, 2191, 2192, 2193, 2194, 2195, 2196, 2199, 2200, 2201, 2203, 2207, 2208, 2210, 2211, 2212, 2213, 2214, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2236, 2238, 2240, 2241, 2246, 2249, 2253, 2255, 2261, 2264, 2265, 2274, 2277, 2283, 2291, 2298, 2302], │ │ │ │ │ "base_dtyp": 2199, │ │ │ │ │ "base_pars": 2199, │ │ │ │ │ "base_typ": [2194, 2201, 2203, 2294, 2302, 2307], │ │ │ │ │ "basebal": [15, 2186, 2191, 2197, 2227, 2231], │ │ │ │ │ "baseblockmanag": [2197, 2199, 2298], │ │ │ │ │ "basebooleanreducetest": 2307, │ │ │ │ │ "basebuff": [16, 17, 18, 19, 2199, 2235], │ │ │ │ │ @@ -38272,15 +38270,15 @@ │ │ │ │ │ "cheat": [21, 2234], │ │ │ │ │ "check": [1, 2, 4, 5, 6, 8, 12, 13, 18, 21, 22, 23, 24, 25, 26, 27, 30, 32, 36, 62, 75, 80, 81, 147, 153, 163, 169, 228, 256, 284, 346, 384, 386, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 420, 445, 447, 448, 453, 454, 455, 461, 469, 473, 478, 500, 501, 584, 592, 603, 615, 741, 799, 836, 837, 838, 839, 840, 841, 842, 843, 844, 888, 912, 976, 977, 978, 979, 1076, 1079, 1081, 1082, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1093, 1095, 1097, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1110, 1111, 1112, 1113, 1114, 1115, 1127, 1136, 1141, 1146, 1184, 1345, 1354, 1370, 1391, 1441, 1442, 1446, 1449, 1450, 1475, 1482, 1483, 1488, 1490, 1493, 1494, 1495, 1496, 1499, 1512, 1530, 1548, 1566, 1586, 1607, 1626, 1643, 1665, 1686, 1707, 1728, 1747, 1765, 1782, 1801, 1823, 1846, 1863, 1883, 1901, 1919, 1936, 1953, 1971, 1988, 2006, 2025, 2043, 2061, 2079, 2096, 2114, 2133, 2151, 2168, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2208, 2211, 2217, 2218, 2220, 2222, 2224, 2225, 2227, 2228, 2229, 2230, 2231, 2232, 2234, 2235, 2238, 2240, 2241, 2246, 2253, 2255, 2261, 2265, 2271, 2277, 2279, 2283, 2289, 2294, 2298, 2302, 2307, 2308], │ │ │ │ │ "check_array_index": 2172, │ │ │ │ │ "check_categor": [1494, 1495, 1496, 2242], │ │ │ │ │ "check_category_ord": 1496, │ │ │ │ │ "check_column_typ": 1494, │ │ │ │ │ "check_datetimelike_compat": [1494, 1496], │ │ │ │ │ - "check_dict_or_set_index": [2193, 2197], │ │ │ │ │ + "check_dict_or_set_index": 2197, │ │ │ │ │ "check_dtyp": [1493, 1494, 1496, 2271, 2272, 2299], │ │ │ │ │ "check_dtype_backend": 2199, │ │ │ │ │ "check_exact": [1493, 1494, 1495, 1496, 2272, 2277, 2307, 2308], │ │ │ │ │ "check_extens": 2294, │ │ │ │ │ "check_flag": [1494, 1496, 2290], │ │ │ │ │ "check_frame_typ": 1494, │ │ │ │ │ "check_freq": [1494, 1496, 2278], │ │ │ │ │ @@ -40270,15 +40268,15 @@ │ │ │ │ │ "get_indexer_non_uniqu": [379, 2192, 2197, 2238, 2243, 2246, 2249, 2265, 2277, 2289], │ │ │ │ │ "get_indexer_nonuniqu": 2302, │ │ │ │ │ "get_ipython": 2193, │ │ │ │ │ "get_item": [2191, 2194], │ │ │ │ │ "get_jit_argu": 2212, │ │ │ │ │ "get_letter_typ": 2195, │ │ │ │ │ "get_level_valu": [1416, 2185, 2218, 2220, 2228, 2232, 2241, 2246, 2253, 2256], │ │ │ │ │ - "get_loc": [2, 362, 383, 426, 492, 2185, 2191, 2194, 2197, 2225, 2228, 2231, 2235, 2238, 2241, 2246, 2249, 2265, 2271, 2273, 2277, 2283, 2289, 2298, 2299], │ │ │ │ │ + "get_loc": [2, 362, 383, 426, 492, 2185, 2191, 2193, 2194, 2197, 2225, 2228, 2231, 2235, 2238, 2241, 2246, 2249, 2265, 2271, 2273, 2277, 2283, 2289, 2298, 2299], │ │ │ │ │ "get_loc_level": 2246, │ │ │ │ │ "get_local": 2265, │ │ │ │ │ "get_local_scop": 2193, │ │ │ │ │ "get_method": [16, 17, 18, 19, 2199, 2235], │ │ │ │ │ "get_near_stock_pric": [2216, 2223], │ │ │ │ │ "get_offset": [2265, 2298], │ │ │ │ │ "get_offset_nam": [2230, 2238], │ │ │ │ │ @@ -40838,15 +40836,15 @@ │ │ │ │ │ "inject": [120, 1387], │ │ │ │ │ "inkwarg": 2199, │ │ │ │ │ "inlin": [3, 2196, 2199, 2207, 2218, 2229, 2246], │ │ │ │ │ "inner": [16, 17, 19, 25, 30, 74, 96, 110, 153, 169, 241, 279, 404, 583, 619, 821, 1146, 1446, 1448, 2186, 2193, 2200, 2204, 2208, 2220, 2246, 2254, 2283, 2289, 2307], │ │ │ │ │ "inner_join": [16, 17, 19], │ │ │ │ │ "innermost": [247, 880, 1478, 2231], │ │ │ │ │ "inplac": [16, 17, 18, 19, 87, 89, 92, 111, 112, 114, 120, 124, 125, 146, 163, 181, 203, 209, 210, 212, 214, 228, 233, 234, 284, 370, 418, 421, 483, 500, 598, 601, 616, 633, 634, 636, 700, 701, 720, 741, 759, 783, 784, 787, 789, 807, 808, 912, 1166, 1167, 1223, 1224, 1280, 1387, 2190, 2192, 2214, 2215, 2218, 2220, 2221, 2222, 2228, 2229, 2230, 2231, 2235, 2238, 2241, 2246, 2265, 2271, 2273, 2275, 2276, 2277, 2278, 2289, 2290, 2291, 2292, 2293, 2295, 2297, 2298, 2302, 2307], │ │ │ │ │ - "input": [2, 3, 10, 13, 20, 24, 30, 31, 34, 49, 56, 63, 68, 69, 76, 78, 81, 85, 91, 92, 94, 97, 99, 100, 107, 108, 109, 120, 126, 129, 131, 134, 141, 143, 160, 162, 163, 171, 173, 183, 197, 199, 204, 206, 211, 212, 213, 215, 216, 217, 218, 219, 220, 221, 222, 227, 230, 233, 234, 244, 246, 256, 259, 264, 270, 273, 275, 278, 281, 284, 286, 346, 351, 354, 378, 380, 405, 415, 425, 426, 459, 465, 489, 499, 540, 573, 577, 578, 585, 596, 603, 616, 617, 620, 622, 629, 630, 631, 694, 702, 706, 707, 709, 710, 713, 717, 719, 734, 738, 739, 740, 741, 747, 749, 750, 753, 761, 773, 777, 780, 785, 787, 788, 790, 791, 792, 793, 795, 796, 797, 802, 804, 856, 877, 878, 888, 890, 893, 900, 901, 904, 912, 916, 927, 930, 938, 953, 1031, 1076, 1078, 1090, 1116, 1117, 1118, 1121, 1123, 1124, 1125, 1152, 1154, 1155, 1156, 1164, 1202, 1203, 1204, 1211, 1213, 1221, 1230, 1264, 1298, 1299, 1305, 1306, 1308, 1322, 1323, 1325, 1342, 1343, 1354, 1389, 1390, 1392, 1393, 1395, 1396, 1397, 1398, 1403, 1404, 1406, 1407, 1408, 1409, 1410, 1411, 1413, 1414, 1417, 1418, 1430, 1433, 1441, 1442, 1449, 1450, 1458, 1467, 1469, 1470, 1475, 1482, 1486, 1487, 1498, 1499, 1500, 2163, 2172, 2184, 2185, 2186, 2187, 2188, 2191, 2193, 2194, 2195, 2196, 2197, 2199, 2200, 2201, 2203, 2204, 2208, 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, 2227, 2228, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2238, 2241, 2242, 2246, 2249, 2250, 2257, 2263, 2264, 2265, 2267, 2269, 2271, 2272, 2273, 2274, 2275, 2277, 2278, 2283, 2284, 2287, 2289, 2291, 2292, 2293, 2294, 2298, 2299, 2302, 2306, 2307, 2308, 2309], │ │ │ │ │ + "input": [2, 3, 10, 13, 20, 24, 30, 31, 34, 49, 56, 63, 68, 69, 76, 78, 81, 85, 91, 92, 94, 97, 99, 100, 107, 108, 109, 120, 126, 129, 131, 134, 141, 143, 160, 162, 163, 171, 173, 183, 197, 199, 204, 206, 211, 212, 213, 215, 216, 217, 218, 219, 220, 221, 222, 227, 230, 233, 234, 244, 246, 256, 259, 264, 270, 273, 275, 278, 281, 284, 286, 346, 351, 354, 378, 380, 405, 415, 425, 426, 459, 465, 489, 499, 540, 573, 577, 578, 585, 596, 603, 616, 617, 620, 622, 629, 630, 631, 694, 702, 706, 707, 709, 710, 713, 717, 719, 734, 738, 739, 740, 741, 747, 749, 750, 753, 761, 773, 777, 780, 785, 787, 788, 790, 791, 792, 793, 795, 796, 797, 802, 804, 856, 877, 878, 888, 890, 893, 900, 901, 904, 912, 916, 927, 930, 938, 953, 1031, 1076, 1078, 1090, 1116, 1117, 1118, 1121, 1123, 1124, 1125, 1152, 1154, 1155, 1156, 1164, 1202, 1203, 1204, 1211, 1213, 1221, 1230, 1264, 1298, 1299, 1305, 1306, 1308, 1322, 1323, 1325, 1342, 1343, 1354, 1389, 1390, 1392, 1393, 1395, 1396, 1397, 1398, 1403, 1404, 1406, 1407, 1408, 1409, 1410, 1411, 1413, 1414, 1417, 1418, 1430, 1433, 1441, 1442, 1449, 1450, 1458, 1467, 1469, 1470, 1475, 1482, 1486, 1487, 1498, 1499, 1500, 2163, 2172, 2184, 2185, 2186, 2187, 2188, 2191, 2193, 2194, 2195, 2196, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, 2227, 2228, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2238, 2241, 2242, 2246, 2249, 2250, 2257, 2263, 2264, 2265, 2267, 2269, 2271, 2272, 2273, 2274, 2275, 2277, 2278, 2283, 2284, 2287, 2289, 2291, 2292, 2293, 2294, 2298, 2299, 2302, 2306, 2307, 2308, 2309], │ │ │ │ │ "input_arrai": 2199, │ │ │ │ │ "insec": 873, │ │ │ │ │ "insensit": [533, 857, 1469, 1486, 2202, 2221, 2277], │ │ │ │ │ "insert": [2, 34, 63, 214, 255, 258, 267, 420, 789, 799, 821, 889, 896, 1061, 1345, 1391, 1416, 1488, 1490, 2185, 2186, 2191, 2193, 2195, 2196, 2202, 2207, 2217, 2218, 2219, 2220, 2221, 2222, 2225, 2226, 2228, 2229, 2233, 2238, 2242, 2246, 2249, 2265, 2271, 2277, 2283, 2289, 2293, 2294, 2298, 2302, 2304, 2306, 2307], │ │ │ │ │ "insert_on_conflict_noth": [267, 896], │ │ │ │ │ "insert_on_conflict_upd": [267, 896], │ │ │ │ │ "insid": [2, 8, 13, 22, 25, 77, 89, 124, 146, 203, 251, 259, 375, 466, 601, 700, 720, 884, 890, 1031, 1054, 1118, 1280, 1469, 1486, 1498, 2186, 2193, 2194, 2196, 2197, 2199, 2201, 2227, 2241, 2246, 2249, 2261, 2263, 2264, 2265, 2271, 2307], │ │ │ │ │ @@ -40972,15 +40970,15 @@ │ │ │ │ │ "ip": [10, 2241], │ │ │ │ │ "ipaddress": 10, │ │ │ │ │ "iparrai": 2241, │ │ │ │ │ "ipc": 2199, │ │ │ │ │ "ipi": 2202, │ │ │ │ │ "ipv4address": 10, │ │ │ │ │ "ipv6": [10, 1031], │ │ │ │ │ - "ipython": [4, 26, 257, 1069, 1071, 1072, 1345, 1391, 1488, 1490, 2184, 2186, 2193, 2194, 2196, 2197, 2199, 2203, 2207, 2219, 2222, 2227, 2230, 2232, 2235, 2236, 2242, 2246, 2247, 2251, 2257, 2258, 2265], │ │ │ │ │ + "ipython": [4, 26, 257, 1069, 1071, 1072, 1345, 1391, 1488, 1490, 2184, 2186, 2193, 2194, 2196, 2197, 2199, 2207, 2219, 2222, 2227, 2230, 2232, 2235, 2236, 2242, 2246, 2247, 2251, 2257, 2258, 2265], │ │ │ │ │ "ipythondir": 2202, │ │ │ │ │ "ipywidget": 2207, │ │ │ │ │ "iqr": [91, 190, 766, 1458], │ │ │ │ │ "iri": [1455, 1461, 2191, 2211, 2225], │ │ │ │ │ "irow": [2216, 2228, 2235, 2257], │ │ │ │ │ "irregular": [15, 2210, 2234, 2235, 2261, 2275, 2277], │ │ │ │ │ "irrelev": [0, 2298], │ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html │ │ │ │ @@ -1847,25 +1847,25 @@ │ │ │ │ In [141]: indexer = np.arange(10000) │ │ │ │ │ │ │ │ In [142]: random.shuffle(indexer) │ │ │ │ │ │ │ │ In [143]: %timeit arr[indexer] │ │ │ │ .....: %timeit arr.take(indexer, axis=0) │ │ │ │ .....: │ │ │ │ -499 us +- 2.13 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ -217 us +- 7.17 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ +305 us +- 59.8 ns per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ +124 us +- 177 ns per loop (mean +- std. dev. of 7 runs, 10,000 loops each) │ │ │ │ │ │ │ │ │ │ │ │
In [144]: ser = pd.Series(arr[:, 0])
│ │ │ │  
│ │ │ │  In [145]: %timeit ser.iloc[indexer]
│ │ │ │     .....: %timeit ser.take(indexer)
│ │ │ │     .....: 
│ │ │ │ -269 us +- 1.29 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ -259 us +- 2.03 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ +199 us +- 52.1 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)
│ │ │ │ +369 us +- 63.9 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │  
│ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │

Index types#

│ │ │ │

We have discussed MultiIndex in the previous sections pretty extensively. │ │ │ │ Documentation about DatetimeIndex and PeriodIndex are shown here, │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1245,23 +1245,23 @@ │ │ │ │ │ In [141]: indexer = np.arange(10000) │ │ │ │ │ │ │ │ │ │ In [142]: random.shuffle(indexer) │ │ │ │ │ │ │ │ │ │ In [143]: %timeit arr[indexer] │ │ │ │ │ .....: %timeit arr.take(indexer, axis=0) │ │ │ │ │ .....: │ │ │ │ │ -499 us +- 2.13 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ │ -217 us +- 7.17 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ │ +305 us +- 59.8 ns per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ │ +124 us +- 177 ns per loop (mean +- std. dev. of 7 runs, 10,000 loops each) │ │ │ │ │ In [144]: ser = pd.Series(arr[:, 0]) │ │ │ │ │ │ │ │ │ │ In [145]: %timeit ser.iloc[indexer] │ │ │ │ │ .....: %timeit ser.take(indexer) │ │ │ │ │ .....: │ │ │ │ │ -269 us +- 1.29 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ │ -259 us +- 2.03 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ │ +199 us +- 52.1 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each) │ │ │ │ │ +369 us +- 63.9 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ │ ********** IInnddeexx ttyyppeess_## ********** │ │ │ │ │ We have discussed MultiIndex in the previous sections pretty extensively. │ │ │ │ │ Documentation about DatetimeIndex and PeriodIndex are shown _h_e_r_e, and │ │ │ │ │ documentation about TimedeltaIndex is found _h_e_r_e. │ │ │ │ │ In the following sub-sections we will highlight some other index types. │ │ │ │ │ ******** CCaatteeggoorriiccaallIInnddeexx_## ******** │ │ │ │ │ _C_a_t_e_g_o_r_i_c_a_l_I_n_d_e_x is a type of index that is useful for supporting indexing with │ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html │ │ │ │ @@ -592,31 +592,31 @@ │ │ │ │ ...: s += f(a + i * dx) │ │ │ │ ...: return s * dx │ │ │ │ ...: │ │ │ │ │ │ │ │ │ │ │ │

We achieve our result by using DataFrame.apply() (row-wise):

│ │ │ │
In [5]: %timeit df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ -150 ms +- 5.27 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +177 ms +- 20.7 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │  
│ │ │ │
│ │ │ │

Let’s take a look and see where the time is spent during this operation │ │ │ │ using the prun ipython magic function:

│ │ │ │
# most time consuming 4 calls
│ │ │ │  In [6]: %prun -l 4 df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]), axis=1)  # noqa E999
│ │ │ │ -         605946 function calls (605928 primitive calls) in 1.021 seconds
│ │ │ │ +         605946 function calls (605928 primitive calls) in 0.296 seconds
│ │ │ │  
│ │ │ │     Ordered by: internal time
│ │ │ │     List reduced from 159 to 4 due to restriction <4>
│ │ │ │  
│ │ │ │     ncalls  tottime  percall  cumtime  percall filename:lineno(function)
│ │ │ │ -     1000    0.531    0.001    0.905    0.001 <ipython-input-4-c2a74e076cf0>:1(integrate_f)
│ │ │ │ -   552423    0.374    0.000    0.374    0.000 <ipython-input-3-c138bdd570e3>:1(f)
│ │ │ │ -     3000    0.019    0.000    0.082    0.000 series.py:1095(__getitem__)
│ │ │ │ -    16098    0.014    0.000    0.018    0.000 {built-in method builtins.isinstance}
│ │ │ │ +     1000    0.178    0.000    0.259    0.000 <ipython-input-4-c2a74e076cf0>:1(integrate_f)
│ │ │ │ +   552423    0.080    0.000    0.080    0.000 <ipython-input-3-c138bdd570e3>:1(f)
│ │ │ │ +     3000    0.006    0.000    0.025    0.000 series.py:1095(__getitem__)
│ │ │ │ +     3000    0.004    0.000    0.011    0.000 series.py:1220(_get_value)
│ │ │ │  
│ │ │ │
│ │ │ │

By far the majority of time is spend inside either integrate_f or f, │ │ │ │ hence we’ll concentrate our efforts cythonizing these two functions.

│ │ │ │
│ │ │ │
│ │ │ │

Plain Cython#

│ │ │ │ @@ -634,15 +634,15 @@ │ │ │ │ ...: for i in range(N): │ │ │ │ ...: s += f_plain(a + i * dx) │ │ │ │ ...: return s * dx │ │ │ │ ...: │ │ │ │ │ │ │ │ │ │ │ │
In [9]: %timeit df.apply(lambda x: integrate_f_plain(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ -130 ms +- 359 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +182 ms +- 21.5 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │  
│ │ │ │
│ │ │ │

This has improved the performance compared to the pure Python approach by one-third.

│ │ │ │
│ │ │ │
│ │ │ │

Declaring C types#

│ │ │ │

We can annotate the function variables and return types as well as use cdef │ │ │ │ @@ -658,36 +658,36 @@ │ │ │ │ ....: for i in range(N): │ │ │ │ ....: s += f_typed(a + i * dx) │ │ │ │ ....: return s * dx │ │ │ │ ....: │ │ │ │ │ │ │ │ │ │ │ │

In [11]: %timeit df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ -22.8 ms +- 148 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +20.3 ms +- 93.9 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │  
│ │ │ │
│ │ │ │

Annotating the functions with C types yields an over ten times performance improvement compared to │ │ │ │ the original Python implementation.

│ │ │ │
│ │ │ │
│ │ │ │

Using ndarray#

│ │ │ │

When re-profiling, time is spent creating a Series from each row, and calling __getitem__ from both │ │ │ │ the index and the series (three times for each row). These Python function calls are expensive and │ │ │ │ can be improved by passing an np.ndarray.

│ │ │ │
In [12]: %prun -l 4 df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ -         52523 function calls (52505 primitive calls) in 0.119 seconds
│ │ │ │ +         52523 function calls (52505 primitive calls) in 0.066 seconds
│ │ │ │  
│ │ │ │     Ordered by: internal time
│ │ │ │     List reduced from 157 to 4 due to restriction <4>
│ │ │ │  
│ │ │ │     ncalls  tottime  percall  cumtime  percall filename:lineno(function)
│ │ │ │ -     3000    0.019    0.000    0.084    0.000 series.py:1095(__getitem__)
│ │ │ │ -    16098    0.014    0.000    0.018    0.000 {built-in method builtins.isinstance}
│ │ │ │ -     3000    0.013    0.000    0.034    0.000 series.py:1220(_get_value)
│ │ │ │ -     3000    0.012    0.000    0.021    0.000 indexing.py:2765(check_dict_or_set_indexers)
│ │ │ │ +     3000    0.010    0.000    0.042    0.000 series.py:1095(__getitem__)
│ │ │ │ +     3000    0.007    0.000    0.019    0.000 series.py:1220(_get_value)
│ │ │ │ +     3000    0.007    0.000    0.008    0.000 base.py:3777(get_loc)
│ │ │ │ +    16098    0.006    0.000    0.008    0.000 {built-in method builtins.isinstance}
│ │ │ │  
│ │ │ │
│ │ │ │
In [13]: %%cython
│ │ │ │     ....: cimport numpy as np
│ │ │ │     ....: import numpy as np
│ │ │ │     ....: cdef double f_typed(double x) except? -2:
│ │ │ │     ....:     return x * (x - 1)
│ │ │ │ @@ -722,33 +722,33 @@
│ │ │ │  
│ │ │ │

This implementation creates an array of zeros and inserts the result │ │ │ │ of integrate_f_typed applied over each row. Looping over an ndarray is faster │ │ │ │ in Cython than looping over a Series object.

│ │ │ │

Since apply_integrate_f is typed to accept an np.ndarray, Series.to_numpy() │ │ │ │ calls are needed to utilize this function.

│ │ │ │
In [14]: %timeit apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(), df["N"].to_numpy())
│ │ │ │ -2.42 ms +- 2.27 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ +3.42 ms +- 20 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │  
│ │ │ │
│ │ │ │

Performance has improved from the prior implementation by almost ten times.

│ │ │ │
│ │ │ │
│ │ │ │

Disabling compiler directives#

│ │ │ │

The majority of the time is now spent in apply_integrate_f. Disabling Cython’s boundscheck │ │ │ │ and wraparound checks can yield more performance.

│ │ │ │
In [15]: %prun -l 4 apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(), df["N"].to_numpy())
│ │ │ │ -         78 function calls in 0.003 seconds
│ │ │ │ +         78 function calls in 0.004 seconds
│ │ │ │  
│ │ │ │     Ordered by: internal time
│ │ │ │     List reduced from 21 to 4 due to restriction <4>
│ │ │ │  
│ │ │ │     ncalls  tottime  percall  cumtime  percall filename:lineno(function)
│ │ │ │ -        1    0.002    0.002    0.003    0.003 <string>:1(<module>)
│ │ │ │ +        1    0.003    0.003    0.004    0.004 <string>:1(<module>)
│ │ │ │          1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
│ │ │ │ -        1    0.000    0.000    0.003    0.003 {built-in method builtins.exec}
│ │ │ │ +        1    0.000    0.000    0.004    0.004 {built-in method builtins.exec}
│ │ │ │          3    0.000    0.000    0.000    0.000 frame.py:4062(__getitem__)
│ │ │ │  
│ │ │ │
│ │ │ │
In [16]: %%cython
│ │ │ │     ....: cimport cython
│ │ │ │     ....: cimport numpy as np
│ │ │ │     ....: import numpy as np
│ │ │ │ @@ -1180,19 +1180,19 @@
│ │ │ │  compared to standard Python syntax for large DataFrame. This engine requires the
│ │ │ │  optional dependency numexpr to be installed.

│ │ │ │

The 'python' engine is generally not useful except for testing │ │ │ │ other evaluation engines against it. You will achieve no performance │ │ │ │ benefits using eval() with engine='python' and may │ │ │ │ incur a performance hit.

│ │ │ │
In [40]: %timeit df1 + df2 + df3 + df4
│ │ │ │ -540 ms +- 41.9 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ +622 ms +- 31 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │  
│ │ │ │
│ │ │ │
In [41]: %timeit pd.eval("df1 + df2 + df3 + df4", engine="python")
│ │ │ │ -513 ms +- 19.9 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ +585 ms +- 27.6 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │  
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │

The DataFrame.eval() method#

│ │ │ │

In addition to the top level pandas.eval() function you can also │ │ │ │ evaluate an expression in the “context” of a DataFrame.

│ │ │ │ @@ -1307,39 +1307,39 @@ │ │ │ │
In [58]: nrows, ncols = 20000, 100
│ │ │ │  
│ │ │ │  In [59]: df1, df2, df3, df4 = [pd.DataFrame(np.random.randn(nrows, ncols)) for _ in range(4)]
│ │ │ │  
│ │ │ │
│ │ │ │

DataFrame arithmetic:

│ │ │ │
In [60]: %timeit df1 + df2 + df3 + df4
│ │ │ │ -545 ms +- 52.5 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ +611 ms +- 45.4 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │  
│ │ │ │
│ │ │ │
In [61]: %timeit pd.eval("df1 + df2 + df3 + df4")
│ │ │ │ -163 ms +- 7.86 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +201 ms +- 28.4 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │  
│ │ │ │
│ │ │ │

DataFrame comparison:

│ │ │ │
In [62]: %timeit (df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)
│ │ │ │ -32.6 ms +- 431 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +35.7 ms +- 1.29 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │  
│ │ │ │
│ │ │ │
In [63]: %timeit pd.eval("(df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)")
│ │ │ │ -9.13 ms +- 30.6 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ +17.2 ms +- 1.32 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │  
│ │ │ │
│ │ │ │

DataFrame arithmetic with unaligned axes.

│ │ │ │
In [64]: s = pd.Series(np.random.randn(50))
│ │ │ │  
│ │ │ │  In [65]: %timeit df1 + df2 + df3 + df4 + s
│ │ │ │ -810 ms +- 23.1 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ +1.06 s +- 54.5 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │  
│ │ │ │
│ │ │ │
In [66]: %timeit pd.eval("df1 + df2 + df3 + df4 + s")
│ │ │ │ -155 ms +- 4.85 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +229 ms +- 42.6 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │  
│ │ │ │
│ │ │ │
│ │ │ │

Note

│ │ │ │

Operations such as

│ │ │ │
1 and 2  # would parse to 1 & 2, but should evaluate to 2
│ │ │ │  3 or 4  # would parse to 3 | 4, but should evaluate to 3
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -110,33 +110,32 @@
│ │ │ │ │     ...:     dx = (b - a) / N
│ │ │ │ │     ...:     for i in range(N):
│ │ │ │ │     ...:         s += f(a + i * dx)
│ │ │ │ │     ...:     return s * dx
│ │ │ │ │     ...:
│ │ │ │ │  We achieve our result by using _D_a_t_a_F_r_a_m_e_._a_p_p_l_y_(_) (row-wise):
│ │ │ │ │  In [5]: %timeit df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ │ -150 ms +- 5.27 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +177 ms +- 20.7 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │  Let’s take a look and see where the time is spent during this operation using
│ │ │ │ │  the _p_r_u_n_ _i_p_y_t_h_o_n_ _m_a_g_i_c_ _f_u_n_c_t_i_o_n:
│ │ │ │ │  # most time consuming 4 calls
│ │ │ │ │  In [6]: %prun -l 4 df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]),
│ │ │ │ │  axis=1)  # noqa E999
│ │ │ │ │ -         605946 function calls (605928 primitive calls) in 1.021 seconds
│ │ │ │ │ +         605946 function calls (605928 primitive calls) in 0.296 seconds
│ │ │ │ │  
│ │ │ │ │     Ordered by: internal time
│ │ │ │ │     List reduced from 159 to 4 due to restriction <4>
│ │ │ │ │  
│ │ │ │ │     ncalls  tottime  percall  cumtime  percall filename:lineno(function)
│ │ │ │ │ -     1000    0.531    0.001    0.905    0.001 :1
│ │ │ │ │ +     1000    0.178    0.000    0.259    0.000 :1
│ │ │ │ │  (integrate_f)
│ │ │ │ │ -   552423    0.374    0.000    0.374    0.000 :1
│ │ │ │ │ +   552423    0.080    0.000    0.080    0.000 :1
│ │ │ │ │  (f)
│ │ │ │ │ -     3000    0.019    0.000    0.082    0.000 series.py:1095(__getitem__)
│ │ │ │ │ -    16098    0.014    0.000    0.018    0.000 {built-in method
│ │ │ │ │ -builtins.isinstance}
│ │ │ │ │ +     3000    0.006    0.000    0.025    0.000 series.py:1095(__getitem__)
│ │ │ │ │ +     3000    0.004    0.000    0.011    0.000 series.py:1220(_get_value)
│ │ │ │ │  By far the majority of time is spend inside either integrate_f or f, hence
│ │ │ │ │  we’ll concentrate our efforts cythonizing these two functions.
│ │ │ │ │  ******** PPllaaiinn CCyytthhoonn_## ********
│ │ │ │ │  First we’re going to need to import the Cython magic function to IPython:
│ │ │ │ │  In [7]: %load_ext Cython
│ │ │ │ │  Now, let’s simply copy our functions over to Cython:
│ │ │ │ │  In [8]: %%cython
│ │ │ │ │ @@ -147,15 +146,15 @@
│ │ │ │ │     ...:     dx = (b - a) / N
│ │ │ │ │     ...:     for i in range(N):
│ │ │ │ │     ...:         s += f_plain(a + i * dx)
│ │ │ │ │     ...:     return s * dx
│ │ │ │ │     ...:
│ │ │ │ │  In [9]: %timeit df.apply(lambda x: integrate_f_plain(x["a"], x["b"], x["N"]),
│ │ │ │ │  axis=1)
│ │ │ │ │ -130 ms +- 359 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +182 ms +- 21.5 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │  This has improved the performance compared to the pure Python approach by one-
│ │ │ │ │  third.
│ │ │ │ │  ******** DDeeccllaarriinngg CC ttyyppeess_## ********
│ │ │ │ │  We can annotate the function variables and return types as well as use cdef and
│ │ │ │ │  cpdef to improve performance:
│ │ │ │ │  In [10]: %%cython
│ │ │ │ │     ....: cdef double f_typed(double x) except? -2:
│ │ │ │ │ @@ -167,36 +166,35 @@
│ │ │ │ │     ....:     dx = (b - a) / N
│ │ │ │ │     ....:     for i in range(N):
│ │ │ │ │     ....:         s += f_typed(a + i * dx)
│ │ │ │ │     ....:     return s * dx
│ │ │ │ │     ....:
│ │ │ │ │  In [11]: %timeit df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x["N"]),
│ │ │ │ │  axis=1)
│ │ │ │ │ -22.8 ms +- 148 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +20.3 ms +- 93.9 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │  Annotating the functions with C types yields an over ten times performance
│ │ │ │ │  improvement compared to the original Python implementation.
│ │ │ │ │  ******** UUssiinngg nnddaarrrraayy_## ********
│ │ │ │ │  When re-profiling, time is spent creating a _S_e_r_i_e_s from each row, and calling
│ │ │ │ │  __getitem__ from both the index and the series (three times for each row).
│ │ │ │ │  These Python function calls are expensive and can be improved by passing an
│ │ │ │ │  np.ndarray.
│ │ │ │ │  In [12]: %prun -l 4 df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x
│ │ │ │ │  ["N"]), axis=1)
│ │ │ │ │ -         52523 function calls (52505 primitive calls) in 0.119 seconds
│ │ │ │ │ +         52523 function calls (52505 primitive calls) in 0.066 seconds
│ │ │ │ │  
│ │ │ │ │     Ordered by: internal time
│ │ │ │ │     List reduced from 157 to 4 due to restriction <4>
│ │ │ │ │  
│ │ │ │ │     ncalls  tottime  percall  cumtime  percall filename:lineno(function)
│ │ │ │ │ -     3000    0.019    0.000    0.084    0.000 series.py:1095(__getitem__)
│ │ │ │ │ -    16098    0.014    0.000    0.018    0.000 {built-in method
│ │ │ │ │ +     3000    0.010    0.000    0.042    0.000 series.py:1095(__getitem__)
│ │ │ │ │ +     3000    0.007    0.000    0.019    0.000 series.py:1220(_get_value)
│ │ │ │ │ +     3000    0.007    0.000    0.008    0.000 base.py:3777(get_loc)
│ │ │ │ │ +    16098    0.006    0.000    0.008    0.000 {built-in method
│ │ │ │ │  builtins.isinstance}
│ │ │ │ │ -     3000    0.013    0.000    0.034    0.000 series.py:1220(_get_value)
│ │ │ │ │ -     3000    0.012    0.000    0.021    0.000 indexing.py:2765
│ │ │ │ │ -(check_dict_or_set_indexers)
│ │ │ │ │  In [13]: %%cython
│ │ │ │ │     ....: cimport numpy as np
│ │ │ │ │     ....: import numpy as np
│ │ │ │ │     ....: cdef double f_typed(double x) except? -2:
│ │ │ │ │     ....:     return x * (x - 1)
│ │ │ │ │     ....: cpdef double integrate_f_typed(double a, double b, int N):
│ │ │ │ │     ....:     cdef int i
│ │ │ │ │ @@ -237,31 +235,31 @@
│ │ │ │ │  This implementation creates an array of zeros and inserts the result of
│ │ │ │ │  integrate_f_typed applied over each row. Looping over an ndarray is faster in
│ │ │ │ │  Cython than looping over a _S_e_r_i_e_s object.
│ │ │ │ │  Since apply_integrate_f is typed to accept an np.ndarray, _S_e_r_i_e_s_._t_o___n_u_m_p_y_(_)
│ │ │ │ │  calls are needed to utilize this function.
│ │ │ │ │  In [14]: %timeit apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(), df
│ │ │ │ │  ["N"].to_numpy())
│ │ │ │ │ -2.42 ms +- 2.27 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ +3.42 ms +- 20 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │  Performance has improved from the prior implementation by almost ten times.
│ │ │ │ │  ******** DDiissaabblliinngg ccoommppiilleerr ddiirreeccttiivveess_## ********
│ │ │ │ │  The majority of the time is now spent in apply_integrate_f. Disabling Cython’s
│ │ │ │ │  boundscheck and wraparound checks can yield more performance.
│ │ │ │ │  In [15]: %prun -l 4 apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(),
│ │ │ │ │  df["N"].to_numpy())
│ │ │ │ │ -         78 function calls in 0.003 seconds
│ │ │ │ │ +         78 function calls in 0.004 seconds
│ │ │ │ │  
│ │ │ │ │     Ordered by: internal time
│ │ │ │ │     List reduced from 21 to 4 due to restriction <4>
│ │ │ │ │  
│ │ │ │ │     ncalls  tottime  percall  cumtime  percall filename:lineno(function)
│ │ │ │ │ -        1    0.002    0.002    0.003    0.003 :1()
│ │ │ │ │ +        1    0.003    0.003    0.004    0.004 :1()
│ │ │ │ │          1    0.000    0.000    0.000    0.000 {method 'disable' of
│ │ │ │ │  '_lsprof.Profiler' objects}
│ │ │ │ │ -        1    0.000    0.000    0.003    0.003 {built-in method builtins.exec}
│ │ │ │ │ +        1    0.000    0.000    0.004    0.004 {built-in method builtins.exec}
│ │ │ │ │          3    0.000    0.000    0.000    0.000 frame.py:4062(__getitem__)
│ │ │ │ │  In [16]: %%cython
│ │ │ │ │     ....: cimport cython
│ │ │ │ │     ....: cimport numpy as np
│ │ │ │ │     ....: import numpy as np
│ │ │ │ │     ....: cdef np.float64_t f_typed(np.float64_t x) except? -2:
│ │ │ │ │     ....:     return x * (x - 1)
│ │ │ │ │ @@ -648,17 +646,17 @@
│ │ │ │ │  The 'numexpr' engine is the more performant engine that can yield performance
│ │ │ │ │  improvements compared to standard Python syntax for large _D_a_t_a_F_r_a_m_e. This
│ │ │ │ │  engine requires the optional dependency numexpr to be installed.
│ │ │ │ │  The 'python' engine is generally nnoott useful except for testing other evaluation
│ │ │ │ │  engines against it. You will achieve nnoo performance benefits using _e_v_a_l_(_) with
│ │ │ │ │  engine='python' and may incur a performance hit.
│ │ │ │ │  In [40]: %timeit df1 + df2 + df3 + df4
│ │ │ │ │ -540 ms +- 41.9 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │ +622 ms +- 31 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │  In [41]: %timeit pd.eval("df1 + df2 + df3 + df4", engine="python")
│ │ │ │ │ -513 ms +- 19.9 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │ +585 ms +- 27.6 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │  ******** TThhee _DD_aa_tt_aa_FF_rr_aa_mm_ee_.._ee_vv_aa_ll_((_)) mmeetthhoodd_## ********
│ │ │ │ │  In addition to the top level _p_a_n_d_a_s_._e_v_a_l_(_) function you can also evaluate an
│ │ │ │ │  expression in the “context” of a _D_a_t_a_F_r_a_m_e.
│ │ │ │ │  In [42]: df = pd.DataFrame(np.random.randn(5, 2), columns=["a", "b"])
│ │ │ │ │  
│ │ │ │ │  In [43]: df.eval("a + b")
│ │ │ │ │  Out[43]:
│ │ │ │ │ @@ -755,29 +753,29 @@
│ │ │ │ │  _p_a_n_d_a_s_._e_v_a_l_(_) works well with expressions containing large arrays.
│ │ │ │ │  In [58]: nrows, ncols = 20000, 100
│ │ │ │ │  
│ │ │ │ │  In [59]: df1, df2, df3, df4 = [pd.DataFrame(np.random.randn(nrows, ncols)) for
│ │ │ │ │  _ in range(4)]
│ │ │ │ │  _D_a_t_a_F_r_a_m_e arithmetic:
│ │ │ │ │  In [60]: %timeit df1 + df2 + df3 + df4
│ │ │ │ │ -545 ms +- 52.5 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │ +611 ms +- 45.4 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │  In [61]: %timeit pd.eval("df1 + df2 + df3 + df4")
│ │ │ │ │ -163 ms +- 7.86 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +201 ms +- 28.4 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │  _D_a_t_a_F_r_a_m_e comparison:
│ │ │ │ │  In [62]: %timeit (df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)
│ │ │ │ │ -32.6 ms +- 431 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +35.7 ms +- 1.29 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │  In [63]: %timeit pd.eval("(df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)")
│ │ │ │ │ -9.13 ms +- 30.6 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ +17.2 ms +- 1.32 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │  _D_a_t_a_F_r_a_m_e arithmetic with unaligned axes.
│ │ │ │ │  In [64]: s = pd.Series(np.random.randn(50))
│ │ │ │ │  
│ │ │ │ │  In [65]: %timeit df1 + df2 + df3 + df4 + s
│ │ │ │ │ -810 ms +- 23.1 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │ +1.06 s +- 54.5 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │  In [66]: %timeit pd.eval("df1 + df2 + df3 + df4 + s")
│ │ │ │ │ -155 ms +- 4.85 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +229 ms +- 42.6 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)
│ │ │ │ │  Note
│ │ │ │ │  Operations such as
│ │ │ │ │  1 and 2  # would parse to 1 & 2, but should evaluate to 2
│ │ │ │ │  3 or 4  # would parse to 3 | 4, but should evaluate to 3
│ │ │ │ │  ~1  # this is okay, but slower when using eval
│ │ │ │ │  should be performed in Python. An exception will be raised if you try to
│ │ │ │ │  perform any boolean/bitwise operations with scalar operands that are not of
│ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/pyarrow.html
│ │ │ │ @@ -986,26 +986,19 @@
│ │ │ │  Cell In[33], line 1
│ │ │ │  ----> 1 table = pa.table([pa.array([1, 2, 3], type=pa.int64())], names=["a"])
│ │ │ │  
│ │ │ │  NameError: name 'pa' is not defined
│ │ │ │  
│ │ │ │  In [34]: df = table.to_pandas(types_mapper=pd.ArrowDtype)
│ │ │ │  ---------------------------------------------------------------------------
│ │ │ │ -AttributeError                            Traceback (most recent call last)
│ │ │ │ -<ipython-input-34-64ec62289cb4> in ?()
│ │ │ │ +NameError                                 Traceback (most recent call last)
│ │ │ │ +Cell In[34], line 1
│ │ │ │  ----> 1 df = table.to_pandas(types_mapper=pd.ArrowDtype)
│ │ │ │  
│ │ │ │ -/usr/lib/python3/dist-packages/pandas/core/generic.py in ?(self, name)
│ │ │ │ -   6295             and name not in self._accessors
│ │ │ │ -   6296             and self._info_axis._can_hold_identifiers_and_holds_name(name)
│ │ │ │ -   6297         ):
│ │ │ │ -   6298             return self[name]
│ │ │ │ --> 6299         return object.__getattribute__(self, name)
│ │ │ │ -
│ │ │ │ -AttributeError: 'DataFrame' object has no attribute 'to_pandas'
│ │ │ │ +NameError: name 'table' is not defined
│ │ │ │  
│ │ │ │  In [35]: df
│ │ │ │  Out[35]: 
│ │ │ │       a    b
│ │ │ │  0  xxx  yyy
│ │ │ │  1   ¡¡   ¡¡
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -526,27 +526,19 @@
│ │ │ │ │  Cell In[33], line 1
│ │ │ │ │  ----> 1 table = pa.table([pa.array([1, 2, 3], type=pa.int64())], names=["a"])
│ │ │ │ │  
│ │ │ │ │  NameError: name 'pa' is not defined
│ │ │ │ │  
│ │ │ │ │  In [34]: df = table.to_pandas(types_mapper=pd.ArrowDtype)
│ │ │ │ │  ---------------------------------------------------------------------------
│ │ │ │ │ -AttributeError                            Traceback (most recent call last)
│ │ │ │ │ - in ?()
│ │ │ │ │ +NameError                                 Traceback (most recent call last)
│ │ │ │ │ +Cell In[34], line 1
│ │ │ │ │  ----> 1 df = table.to_pandas(types_mapper=pd.ArrowDtype)
│ │ │ │ │  
│ │ │ │ │ -/usr/lib/python3/dist-packages/pandas/core/generic.py in ?(self, name)
│ │ │ │ │ -   6295             and name not in self._accessors
│ │ │ │ │ -   6296             and self._info_axis._can_hold_identifiers_and_holds_name
│ │ │ │ │ -(name)
│ │ │ │ │ -   6297         ):
│ │ │ │ │ -   6298             return self[name]
│ │ │ │ │ --> 6299         return object.__getattribute__(self, name)
│ │ │ │ │ -
│ │ │ │ │ -AttributeError: 'DataFrame' object has no attribute 'to_pandas'
│ │ │ │ │ +NameError: name 'table' is not defined
│ │ │ │ │  
│ │ │ │ │  In [35]: df
│ │ │ │ │  Out[35]:
│ │ │ │ │       a    b
│ │ │ │ │  0  xxx  yyy
│ │ │ │ │  1   ¡¡   ¡¡
│ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/scale.html
│ │ │ │ @@ -1086,16 +1086,16 @@
│ │ │ │     ....: files = pathlib.Path("data/timeseries/").glob("ts*.parquet")
│ │ │ │     ....: counts = pd.Series(dtype=int)
│ │ │ │     ....: for path in files:
│ │ │ │     ....:     df = pd.read_parquet(path)
│ │ │ │     ....:     counts = counts.add(df["name"].value_counts(), fill_value=0)
│ │ │ │     ....: counts.astype(int)
│ │ │ │     ....: 
│ │ │ │ -CPU times: user 162 us, sys: 460 us, total: 622 us
│ │ │ │ -Wall time: 630 us
│ │ │ │ +CPU times: user 271 us, sys: 259 us, total: 530 us
│ │ │ │ +Wall time: 538 us
│ │ │ │  Out[32]: Series([], dtype: int32)
│ │ │ │  
│ │ │ │
│ │ │ │

Some readers, like pandas.read_csv(), offer parameters to control the │ │ │ │ chunksize when reading a single file.

│ │ │ │

Manually chunking is an OK option for workflows that don’t │ │ │ │ require too sophisticated of operations. Some operations, like pandas.DataFrame.groupby(), are │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -644,16 +644,16 @@ │ │ │ │ │ ....: files = pathlib.Path("data/timeseries/").glob("ts*.parquet") │ │ │ │ │ ....: counts = pd.Series(dtype=int) │ │ │ │ │ ....: for path in files: │ │ │ │ │ ....: df = pd.read_parquet(path) │ │ │ │ │ ....: counts = counts.add(df["name"].value_counts(), fill_value=0) │ │ │ │ │ ....: counts.astype(int) │ │ │ │ │ ....: │ │ │ │ │ -CPU times: user 162 us, sys: 460 us, total: 622 us │ │ │ │ │ -Wall time: 630 us │ │ │ │ │ +CPU times: user 271 us, sys: 259 us, total: 530 us │ │ │ │ │ +Wall time: 538 us │ │ │ │ │ Out[32]: Series([], dtype: int32) │ │ │ │ │ Some readers, like _p_a_n_d_a_s_._r_e_a_d___c_s_v_(_), offer parameters to control the chunksize │ │ │ │ │ when reading a single file. │ │ │ │ │ Manually chunking is an OK option for workflows that don’t require too │ │ │ │ │ sophisticated of operations. Some operations, like _p_a_n_d_a_s_._D_a_t_a_F_r_a_m_e_._g_r_o_u_p_b_y_(_), │ │ │ │ │ are much harder to do chunkwise. In these cases, you may be better switching to │ │ │ │ │ a different library that implements these out-of-core algorithms for you. │ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz │ │ │ │ ├── style.ipynb │ │ │ │ │ ├── Pretty-printed │ │ │ │ │ │┄ Similarity: 0.9985610875706213% │ │ │ │ │ │┄ Differences: {"'cells'": "{1: {'metadata': {'execution': {'iopub.execute_input': '2026-05-03T19:44:33.845345Z', " │ │ │ │ │ │┄ "'iopub.status.busy': '2026-05-03T19:44:33.845105Z', 'iopub.status.idle': " │ │ │ │ │ │┄ "'2026-05-03T19:44:34.235274Z', 'shell.execute_reply': " │ │ │ │ │ │┄ "'2026-05-03T19:44:34.234607Z'}}}, 3: {'metadata': {'execution': " │ │ │ │ │ │┄ "{'iopub.execute_input': '2026-05-03T19:44:34.237753Z', 'iopub.status.busy': " │ │ │ │ │ │┄ "'2026-05-03T19:44:34.237445Z', 'iopub.status.idle': '2026-05-03T19:44:3 […] │ │ │ │ │ │ @@ -39,18 +39,18 @@ │ │ │ │ │ │ ] │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ "cell_type": "code", │ │ │ │ │ │ "execution_count": 1, │ │ │ │ │ │ "metadata": { │ │ │ │ │ │ "execution": { │ │ │ │ │ │ - "iopub.execute_input": "2025-03-31T12:10:18.920313Z", │ │ │ │ │ │ - "iopub.status.busy": "2025-03-31T12:10:18.920009Z", │ │ │ │ │ │ - "iopub.status.idle": "2025-03-31T12:10:19.702226Z", │ │ │ │ │ │ - "shell.execute_reply": "2025-03-31T12:10:19.701242Z" │ │ │ │ │ │ + "iopub.execute_input": "2026-05-03T19:44:33.845345Z", │ │ │ │ │ │ + "iopub.status.busy": "2026-05-03T19:44:33.845105Z", │ │ │ │ │ │ + "iopub.status.idle": "2026-05-03T19:44:34.235274Z", │ │ │ │ │ │ + "shell.execute_reply": "2026-05-03T19:44:34.234607Z" │ │ │ │ │ │ }, │ │ │ │ │ │ "nbsphinx": "hidden" │ │ │ │ │ │ }, │ │ │ │ │ │ "outputs": [], │ │ │ │ │ │ "source": [ │ │ │ │ │ │ "import matplotlib.pyplot\n", │ │ │ │ │ │ "# We have this here to trigger matplotlib's font cache stuff.\n", │ │ │ │ │ │ @@ -77,36 +77,36 @@ │ │ │ │ │ │ ] │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ "cell_type": "code", │ │ │ │ │ │ "execution_count": 2, │ │ │ │ │ │ "metadata": { │ │ │ │ │ │ "execution": { │ │ │ │ │ │ - "iopub.execute_input": "2025-03-31T12:10:19.705752Z", │ │ │ │ │ │ - "iopub.status.busy": "2025-03-31T12:10:19.705364Z", │ │ │ │ │ │ - "iopub.status.idle": "2025-03-31T12:10:20.318721Z", │ │ │ │ │ │ - "shell.execute_reply": "2025-03-31T12:10:20.317763Z" │ │ │ │ │ │ + "iopub.execute_input": "2026-05-03T19:44:34.237753Z", │ │ │ │ │ │ + "iopub.status.busy": "2026-05-03T19:44:34.237445Z", │ │ │ │ │ │ + "iopub.status.idle": "2026-05-03T19:44:34.528179Z", │ │ │ │ │ │ + "shell.execute_reply": "2026-05-03T19:44:34.527483Z" │ │ │ │ │ │ } │ │ │ │ │ │ }, │ │ │ │ │ │ "outputs": [], │ │ │ │ │ │ "source": [ │ │ │ │ │ │ "import pandas as pd\n", │ │ │ │ │ │ "import numpy as np\n", │ │ │ │ │ │ "import matplotlib as mpl\n" │ │ │ │ │ │ ] │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ "cell_type": "code", │ │ │ │ │ │ "execution_count": 3, │ │ │ │ │ │ "metadata": { │ │ │ │ │ │ "execution": { │ │ │ │ │ │ - "iopub.execute_input": "2025-03-31T12:10:20.322096Z", │ │ │ │ │ │ - "iopub.status.busy": "2025-03-31T12:10:20.321680Z", │ │ │ │ │ │ - "iopub.status.idle": "2025-03-31T12:10:20.425042Z", │ │ │ │ │ │ - "shell.execute_reply": "2025-03-31T12:10:20.424082Z" │ │ │ │ │ │ + "iopub.execute_input": "2026-05-03T19:44:34.530470Z", │ │ │ │ │ │ + "iopub.status.busy": "2026-05-03T19:44:34.530173Z", │ │ │ │ │ │ + "iopub.status.idle": "2026-05-03T19:44:34.587165Z", │ │ │ │ │ │ + "shell.execute_reply": "2026-05-03T19:44:34.586556Z" │ │ │ │ │ │ }, │ │ │ │ │ │ "nbsphinx": "hidden" │ │ │ │ │ │ }, │ │ │ │ │ │ "outputs": [], │ │ │ │ │ │ "source": [ │ │ │ │ │ │ "# For reproducibility - this doesn't respect uuid_len or positionally-passed uuid but the places here that use that coincidentally bypass this anyway\n", │ │ │ │ │ │ "from pandas.io.formats.style import Styler\n", │ │ │ │ │ │ @@ -123,18 +123,18 @@ │ │ │ │ │ │ ] │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ "cell_type": "code", │ │ │ │ │ │ "execution_count": 4, │ │ │ │ │ │ "metadata": { │ │ │ │ │ │ "execution": { │ │ │ │ │ │ - "iopub.execute_input": "2025-03-31T12:10:20.428297Z", │ │ │ │ │ │ - "iopub.status.busy": "2025-03-31T12:10:20.427918Z", │ │ │ │ │ │ - "iopub.status.idle": "2025-03-31T12:10:20.440991Z", │ │ │ │ │ │ - "shell.execute_reply": "2025-03-31T12:10:20.440123Z" │ │ │ │ │ │ + "iopub.execute_input": "2026-05-03T19:44:34.589156Z", │ │ │ │ │ │ + "iopub.status.busy": "2026-05-03T19:44:34.588867Z", │ │ │ │ │ │ + "iopub.status.idle": "2026-05-03T19:44:34.597950Z", │ │ │ │ │ │ + "shell.execute_reply": "2026-05-03T19:44:34.597355Z" │ │ │ │ │ │ } │ │ │ │ │ │ }, │ │ │ │ │ │ "outputs": [ │ │ │ │ │ │ { │ │ │ │ │ │ "data": { │ │ │ │ │ │ "text/html": [ │ │ │ │ │ │ "