Repository: totalhack/zillion Branch: master Commit: c670be726770 Files: 117 Total size: 2.7 MB Directory structure: gitextract_rw4myeyk/ ├── .gitattributes ├── .github/ │ └── FUNDING.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .pylintrc ├── .readthedocs.yml ├── AUTHORS.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── dev_config.yml ├── docker-compose-nlp.yml ├── docker-compose.yml ├── docs/ │ ├── build_markdown.py │ ├── markdown/ │ │ ├── contributing.md │ │ ├── readme_badges.md │ │ ├── readme_contents.md │ │ ├── readme_docs.md │ │ ├── readme_how_to_contribute.md │ │ ├── readme_intro.md │ │ └── readme_toc.md │ ├── mkdocs/ │ │ ├── api.md │ │ ├── contributing.md │ │ ├── css/ │ │ │ └── extra.css │ │ ├── index.md │ │ ├── zillion.configs.md │ │ ├── zillion.core.md │ │ ├── zillion.datasource.md │ │ ├── zillion.dialects.md │ │ ├── zillion.field.md │ │ ├── zillion.model.md │ │ ├── zillion.nlp.md │ │ ├── zillion.report.md │ │ ├── zillion.scripts.md │ │ ├── zillion.sql_utils.md │ │ ├── zillion.version.md │ │ └── zillion.warehouse.md │ ├── mkdocs_index.md │ ├── readme.md │ └── requirements.txt ├── examples/ │ ├── baseball_warehouse.json │ ├── example_wh_config.json │ ├── minimal_example.py │ └── sample_config.yaml ├── mkdocs.yml ├── pyproject.toml ├── tests/ │ ├── __init__.py │ ├── conftest.py │ ├── dma_zip.csv │ ├── dma_zip.html │ ├── dma_zip.json │ ├── dma_zip.xlsx │ ├── pytest.ini │ ├── setup/ │ │ ├── campaigns.csv │ │ ├── common.sqlite.sql │ │ ├── create_testdb2_sqlite.py │ │ ├── duckdb/ │ │ │ ├── load.sql │ │ │ └── schema.sql │ │ ├── init_mysql_data.sh │ │ ├── init_postgres_data.sh │ │ ├── leads.csv │ │ ├── partner_sibling.csv │ │ ├── partners.csv │ │ ├── sales.csv │ │ ├── testdb1.sqlite.sql │ │ ├── zillion_db.sqlite.sql │ │ ├── zillion_test.mysql.sql │ │ └── zillion_test.postgres.sql │ ├── test_adhoc_ds_config.json │ ├── test_config.yaml │ ├── test_core.py │ ├── test_duckdb.py │ ├── test_duckdb_wh_config.json │ ├── test_example_wh_config.py │ ├── test_include_wh_config.json │ ├── test_mysql.py │ ├── test_mysql_ds_config.json │ ├── test_nlp.py │ ├── test_performance.py │ ├── test_postgresql.py │ ├── test_postgresql_ds_config.json │ ├── test_reports.py │ ├── test_scripts.py │ ├── test_sqlite_ds_config.json │ ├── test_table_config.json │ ├── test_utils.py │ ├── test_wh_config.json │ ├── testdb1 │ ├── testdb2 │ ├── zillion_test_0.7.duckdb │ └── zillion_test_1.x.duckdb └── zillion/ ├── __init__.py ├── configs.py ├── core.py ├── datasource.py ├── dialects/ │ ├── __init__.py │ ├── conversions.py │ ├── duckdb.py │ ├── mysql.py │ ├── postgresql.py │ └── sqlite.py ├── field.py ├── model.py ├── nlp.py ├── report.py ├── scripts/ │ ├── __init__.py │ ├── bootstrap_datasource_config.py │ ├── json_to_yaml.py │ ├── load_config.py │ ├── run_report.py │ └── yaml_to_json.py ├── sql_utils.py ├── version.py ├── warehouse.py └── zillion_test ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ # This is a hack to get lingquist to ignore the SQL dumps that are causing # this repo to not be viewed as a pythong project. tests/* linguist-documentation ================================================ FILE: .github/FUNDING.yml ================================================ github: [totalhack] ================================================ FILE: .gitignore ================================================ *.egg-info build docs/site *.pyc *.out dist .DS_Store .idea/ tests/test_wh_config.yaml volumes .python-version GEMINI.md test-all.sh ================================================ FILE: .pre-commit-config.yaml ================================================ repos: - repo: https://github.com/psf/black rev: stable hooks: - id: black language_version: python3.7 ================================================ FILE: .pylintrc ================================================ [MASTER] # A comma-separated list of package or module names from where C extensions may # be loaded. Extensions are loading into the active Python interpreter and may # run arbitrary code. extension-pkg-whitelist= # Add files or directories to the blacklist. They should be base names, not # paths. ignore=CVS # Add files or directories matching the regex patterns to the blacklist. The # regex matches against base names, not paths. ignore-patterns= # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= # Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the # number of processors available to use. jobs=1 # Control the amount of potential inferred values when inferring a single # object. This can help the performance when dealing with large functions or # complex, nested conditions. limit-inference-results=100 # List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= # Pickle collected data for later comparisons. persistent=yes # Specify a configuration file. #rcfile= # When enabled, pylint would attempt to guess common misconfiguration and emit # user-friendly hints instead of false-positive error messages. suggestion-mode=yes # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no [MESSAGES CONTROL] # Only show warnings with the listed confidence levels. Leave empty to show # all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. confidence= # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifiers separated by comma (,) or put this # option multiple times (only on the command line, not in the configuration # file where it should appear only once). You can also use "--disable=all" to # disable everything first and then reenable specific checks. For example, if # you want to run only the similarities checker, you can use "--disable=all # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use "--disable=all --enable=classes # --disable=W". disable=print-statement, parameter-unpacking, unpacking-in-except, old-raise-syntax, backtick, long-suffix, old-ne-operator, old-octal-literal, import-star-module-level, non-ascii-bytes-literal, raw-checker-failed, bad-inline-option, locally-disabled, file-ignored, suppressed-message, useless-suppression, deprecated-pragma, use-symbolic-message-instead, apply-builtin, basestring-builtin, buffer-builtin, cmp-builtin, coerce-builtin, execfile-builtin, file-builtin, long-builtin, raw_input-builtin, reduce-builtin, standarderror-builtin, unicode-builtin, xrange-builtin, coerce-method, delslice-method, getslice-method, setslice-method, no-absolute-import, old-division, dict-iter-method, dict-view-method, next-method-called, metaclass-assignment, indexing-exception, raising-string, reload-builtin, oct-method, hex-method, nonzero-method, cmp-method, input-builtin, round-builtin, intern-builtin, unichr-builtin, map-builtin-not-iterating, zip-builtin-not-iterating, range-builtin-not-iterating, filter-builtin-not-iterating, using-cmp-argument, eq-without-hash, div-method, idiv-method, rdiv-method, exception-message-attribute, invalid-str-codec, sys-max-int, bad-python3-import, deprecated-string-function, deprecated-str-translate-call, deprecated-itertools-function, deprecated-types-field, next-method-defined, dict-items-not-iterating, dict-keys-not-iterating, dict-values-not-iterating, deprecated-operator-function, deprecated-urllib-function, xreadlines-attribute, deprecated-sys-function, exception-escape, comprehension-escape, bad-continuation, too-many-lines, redefined-builtin, too-few-public-methods, too-many-ancestors, invalid-name, no-member, unnecessary-pass, abstract-method, arguments-differ, no-self-use, protected-access, too-many-arguments, unused-argument, attribute-defined-outside-init, broad-except, return-in-init, bare-except, unused-wildcard-import, too-many-locals, too-many-branches, duplicate-code # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time (only on the command line, not in the configuration file where # it should appear only once). See also the "--disable" option for examples. enable=c-extension-no-member [REPORTS] # Python expression which should return a note less than 10 (10 is the highest # note). You have access to the variables errors warning, statement which # respectively contain the number of errors / warnings messages and the total # number of statements analyzed. This is used by the global evaluation report # (RP0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Template used to display messages. This is a python new-style format string # used to format the message information. See doc for all details. #msg-template= # Set the output format. Available formats are text, parseable, colorized, json # and msvs (visual studio). You can also give a reporter class, e.g. # mypackage.mymodule.MyReporterClass. output-format=text # Tells whether to display a full report or only the messages. reports=no # Activate the evaluation score. score=yes [REFACTORING] # Maximum number of nested blocks for function / method body max-nested-blocks=5 # Complete name of functions that never returns. When checking for # inconsistent-return-statements if a never returning function is called then # it will be considered as an explicit return statement and no message will be # printed. never-returning-functions=sys.exit [BASIC] # Naming style matching correct argument names. argument-naming-style=snake_case # Regular expression matching correct argument names. Overrides argument- # naming-style. #argument-rgx= # Naming style matching correct attribute names. attr-naming-style=snake_case # Regular expression matching correct attribute names. Overrides attr-naming- # style. #attr-rgx= # Bad variable names which should always be refused, separated by a comma. bad-names=foo, bar, baz, toto, tutu, tata # Naming style matching correct class attribute names. class-attribute-naming-style=any # Regular expression matching correct class attribute names. Overrides class- # attribute-naming-style. #class-attribute-rgx= # Naming style matching correct class names. class-naming-style=PascalCase # Regular expression matching correct class names. Overrides class-naming- # style. #class-rgx= # Naming style matching correct constant names. const-naming-style=UPPER_CASE # Regular expression matching correct constant names. Overrides const-naming- # style. #const-rgx= # Minimum line length for functions/classes that require docstrings, shorter # ones are exempt. docstring-min-length=-1 # Naming style matching correct function names. function-naming-style=snake_case # Regular expression matching correct function names. Overrides function- # naming-style. #function-rgx= # Good variable names which should always be accepted, separated by a comma. good-names=i, j, k, ex, Run, _ # Include a hint for the correct naming format with invalid-name. include-naming-hint=no # Naming style matching correct inline iteration names. inlinevar-naming-style=any # Regular expression matching correct inline iteration names. Overrides # inlinevar-naming-style. #inlinevar-rgx= # Naming style matching correct method names. method-naming-style=snake_case # Regular expression matching correct method names. Overrides method-naming- # style. #method-rgx= # Naming style matching correct module names. module-naming-style=snake_case # Regular expression matching correct module names. Overrides module-naming- # style. #module-rgx= # Colon-delimited sets of names that determine each other's naming style when # the name regexes allow several styles. name-group= # Regular expression which should only match function or class names that do # not require a docstring. no-docstring-rgx=^_ # List of decorators that produce properties, such as abc.abstractproperty. Add # to this list to register other decorators that produce valid properties. # These decorators are taken in consideration only for invalid-name. property-classes=abc.abstractproperty # Naming style matching correct variable names. variable-naming-style=snake_case # Regular expression matching correct variable names. Overrides variable- # naming-style. #variable-rgx= [FORMAT] # Expected format of line ending, e.g. empty (any line ending), LF or CRLF. expected-line-ending-format= # Regexp for a line that is allowed to be longer than the limit. ignore-long-lines=^\s*(# )??$ # Number of spaces of indent required inside a hanging or continued line. indent-after-paren=4 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' # Maximum number of characters on a single line. max-line-length=100 # Maximum number of lines in a module. max-module-lines=1000 # List of optional constructs for which whitespace checking is disabled. `dict- # separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. # `trailing-comma` allows a space between comma and closing bracket: (a, ). # `empty-line` allows space-only lines. no-space-check=trailing-comma, dict-separator # Allow the body of a class to be on the same line as the declaration if body # contains single statement. single-line-class-stmt=no # Allow the body of an if to be on the same line as the test if there is no # else. single-line-if-stmt=no [LOGGING] # Format style used to check logging format string. `old` means using % # formatting, while `new` is for `{}` formatting. logging-format-style=old # Logging modules to check that the string format arguments are in logging # function parameter format. logging-modules=logging [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. notes=FIXME, XXX, TODO [SIMILARITIES] # Ignore comments when computing similarities. ignore-comments=yes # Ignore docstrings when computing similarities. ignore-docstrings=yes # Ignore imports when computing similarities. ignore-imports=no # Minimum lines number of a similarity. min-similarity-lines=4 [SPELLING] # Limits count of emitted suggestions for spelling mistakes. max-spelling-suggestions=4 # Spelling dictionary name. Available dictionaries: none. To make it working # install python-enchant package.. spelling-dict= # List of comma separated words that should not be checked. spelling-ignore-words= # A path to a file that contains private dictionary; one word per line. spelling-private-dict-file= # Tells whether to store unknown words to indicated private dictionary in # --spelling-private-dict-file option instead of raising a message. spelling-store-unknown-words=no [STRING] # This flag controls whether the implicit-str-concat-in-sequence should # generate a warning on implicit string concatenation in sequences defined over # several lines. check-str-concat-over-line-jumps=no [TYPECHECK] # List of decorators that produce context managers, such as # contextlib.contextmanager. Add to this list to register other decorators that # produce valid context managers. contextmanager-decorators=contextlib.contextmanager # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E1101 when accessed. Python regular # expressions are accepted. generated-members= # Tells whether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). ignore-mixin-members=yes # Tells whether to warn about missing members when the owner of the attribute # is inferred to be None. ignore-none=yes # This flag controls whether pylint should warn about no-member and similar # checks whenever an opaque object is returned when inferring. The inference # can return multiple potential results while evaluating a Python object, but # some branches might not be evaluated, which results in partial inference. In # that case, it might be useful to still emit no-member and other checks for # the rest of the inferred objects. ignore-on-opaque-inference=yes # List of class names for which member attributes should not be checked (useful # for classes with dynamically set attributes). This supports the use of # qualified names. ignored-classes=optparse.Values,thread._local,_thread._local # List of module names for which member attributes should not be checked # (useful for modules/projects where namespaces are manipulated during runtime # and thus existing member attributes cannot be deduced by static analysis. It # supports qualified module names, as well as Unix pattern matching. ignored-modules= # Show a hint with possible names when a member name was not found. The aspect # of finding the hint is based on edit distance. missing-member-hint=yes # The minimum edit distance a name should have in order to be considered a # similar match for a missing member name. missing-member-hint-distance=1 # The total number of similar names that should be taken in consideration when # showing a hint for a missing member. missing-member-max-choices=1 [VARIABLES] # List of additional names supposed to be defined in builtins. Remember that # you should avoid defining new builtins when possible. additional-builtins= # Tells whether unused global variables should be treated as a violation. allow-global-unused-variables=yes # List of strings which can identify a callback function by name. A callback # name must start or end with one of those strings. callbacks=cb_, _cb # A regular expression matching the name of dummy variables (i.e. expected to # not be used). dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ # Argument names that match this expression will be ignored. Default to name # with leading underscore. ignored-argument-names=_.*|^ignored_|^unused_ # Tells whether we should check for unused import in __init__ files. init-import=no # List of qualified module names which can have objects that can redefine # builtins. redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io [CLASSES] # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__, __new__, setUp # List of member names, which should be excluded from the protected access # warning. exclude-protected=_asdict, _fields, _replace, _source, _make # List of valid names for the first argument in a class method. valid-classmethod-first-arg=cls # List of valid names for the first argument in a metaclass class method. valid-metaclass-classmethod-first-arg=cls [DESIGN] # Maximum number of arguments for function / method. max-args=5 # Maximum number of attributes for a class (see R0902). max-attributes=7 # Maximum number of boolean expressions in an if statement. max-bool-expr=5 # Maximum number of branch for function / method body. max-branches=12 # Maximum number of locals for function / method body. max-locals=15 # Maximum number of parents for a class (see R0901). max-parents=7 # Maximum number of public methods for a class (see R0904). max-public-methods=20 # Maximum number of return / yield for function / method body. max-returns=6 # Maximum number of statements in function / method body. max-statements=50 # Minimum number of public methods for a class (see R0903). min-public-methods=2 [IMPORTS] # Allow wildcard imports from modules that define __all__. allow-wildcard-with-all=no # Analyse import fallback blocks. This can be used to support both Python 2 and # 3 compatible code, which means that the block might have code that exists # only in one or another interpreter, leading to false positives when analysed. analyse-fallback-blocks=no # Deprecated modules which should not be used, separated by a comma. deprecated-modules=optparse,tkinter.tix # Create a graph of external dependencies in the given file (report RP0402 must # not be disabled). ext-import-graph= # Create a graph of every (i.e. internal and external) dependencies in the # given file (report RP0402 must not be disabled). import-graph= # Create a graph of internal dependencies in the given file (report RP0402 must # not be disabled). int-import-graph= # Force import order to recognize a module as part of the standard # compatibility libraries. known-standard-library= # Force import order to recognize a module as part of a third party library. known-third-party=enchant [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "BaseException, Exception". overgeneral-exceptions=BaseException, Exception ================================================ FILE: .readthedocs.yml ================================================ mkdocs: configuration: mkdocs.yml python: version: 3.7 install: - requirements: docs/requirements.txt ================================================ FILE: AUTHORS.md ================================================ Zillion is written and maintained by [@totalhack](https://github.com/totalhack). Contributors welcome! # **Core Contributors** - [@totalhack](https://github.com/totalhack) # **Patches and Suggestions** Please see the [contributing](https://github.com/totalhack/zillion/blob/master/CONTRIBUTING.md) guide for more information. ================================================ FILE: CODE_OF_CONDUCT.md ================================================ [This](https://www.kennethreitz.org/essays/be-cordial-or-be-on-your-way) is a good starting point. ================================================ FILE: CONTRIBUTING.md ================================================ Your help and feedback are greatly appreciated. Whether it's supporting/testing a new datasource type, finding bugs, or suggesting features, every little bit helps make `Zillion` reach its potential. Please also consider manicuring or configuring datasets that others may find useful. With as little as a CSV and a short JSON configuration file you can give back to the community. You can host these shared datasources easily with GitHub. ## **How to Contribute** 1. Check for open issues or open a new issue to start a discussion around a feature idea or a bug. 2. Fork [the repository](https://github.com/totalhack/zillion) on GitHub to start making your changes to the **master** branch (or branch off of it). 3. Write a test which shows that the bug was fixed or that the feature works as expected. 4. Send a [pull request](https://help.github.com/en/articles/creating-a-pull-request-from-a-fork). Add yourself to [AUTHORS](https://github.com/totalhack/zillion/blob/master/AUTHORS.md). ## **Development Setup** ```shell # Clone this repo git clone https://github.com/totalhack/zillion.git cd zillion # Install dependencies # Note: activate your venv first if desired! pip install ".[dev]" # Bring up test databases -- test data will init the first time # You can optionally run these DBs directly on your machine instead docker-compose up # Run tests export ZILLION_CONFIG=$(pwd)/tests/test_config.yaml cd tests pytest ``` ## **Good Bug Reports** Please be aware of the following things when filing bug reports: 1. Avoid raising duplicate issues. *Please* use the GitHub issue search feature to check whether your bug report or feature request has been mentioned in the past. Duplicate bug reports and feature requests are a huge maintenance burden on the limited resources of the project. If it is clear from your report that you would have struggled to find the original, that's ok, but if searching for a selection of words in your issue title would have found the duplicate then the issue will likely be closed. 2. When filing bug reports about exceptions or tracebacks, please include the *complete* traceback. Partial tracebacks, or just the exception text, are not helpful. Issues that do not contain complete tracebacks may be closed without warning. 3. Make sure you provide a suitable amount of information to work with. ## **Questions** The GitHub issue tracker is for *bug reports* and *feature requests*. Please do not use it to ask questions about how to use Zillion. ================================================ FILE: LICENSE ================================================ The MIT License (MIT) Copyright (c) 2019-present, Kurt Matarese Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: Makefile ================================================ PY := $(shell which python) ENV := $(abspath $(dir $(PY))/..) PIP := $(ENV)/bin/pip UV := $(ENV)/bin/uv PACKAGE_NAME := zillion TEST_ENV := /tmp/zillion_pip_test VERSION = $(shell $(PY) -c "import re,sys;print(re.search(r'__version__\\s*=\\s*[\\\"\\']([^\\\"\\']+)[\\\"\\']', open('zillion/version.py').read()).group(1))") all: develop # bootstrap venv and tooling bootstrap: python -m venv $(ENV) $(PIP) install -U pip setuptools wheel build twine uv clean: rm -rf build dist *.egg-info pinned-requirements.txt docs: cd docs && $(PY) build_markdown.py deploy_docs: $(PIP) install -U mkdocs mkdocs-material mkdocs-material-extensions cd docs && mkdocs gh-deploy lock: $(UV) lock sync-dev: $(UV) sync --dev --active --extra dev --extra mysql --extra postgres --extra duckdb sync-ci: $(UV) sync --locked --active sync-runtime: $(UV) sync --locked --active # build wheel/sdist via pyproject build: $(PY) -m build # export pinned requirements (optional, for pip-only CI/Docker) requirements: $(UV) export --format requirements-txt -o pinned-requirements.txt # install built wheel into env install-wheel: build $(PIP) install --force-reinstall dist/$(PACKAGE_NAME)-$(VERSION)-py3-none-any.whl uninstall: if $(PIP) freeze 2>&1 | grep -q "^$(PACKAGE_NAME)=="; then \ $(PIP) uninstall -y $(PACKAGE_NAME); \ else \ echo "No installed package found!"; \ fi dist: clean build upload: $(PY) -m twine upload dist/* test_upload: $(PY) -m twine upload --repository-url "https://test.pypi.org/legacy/" dist/* # create a clean test venv; if uv.lock exists, optionally use uv inside the test venv to sync test_env: rm -rf $(TEST_ENV) $(PY) -m venv $(TEST_ENV) $(TEST_ENV)/bin/pip install -U pip if [ -f uv.lock ]; then \ $(TEST_ENV)/bin/pip install uv; \ $(TEST_ENV)/bin/uv sync --locked; \ fi # publish to PyPI then smoke-test install in a clean venv pip: dist upload test_env sleep 30 $(TEST_ENV)/bin/pip install -U $(PACKAGE_NAME)==$(VERSION) $(TEST_ENV)/bin/python -c "import $(PACKAGE_NAME)" # publish to TestPyPI then smoke-test install from TestPyPI in a clean venv test_pip: dist test_upload test_env sleep 30 $(TEST_ENV)/bin/pip install -i "https://test.pypi.org/simple/" --extra-index-url "https://pypi.org/simple/" $(PACKAGE_NAME)==$(VERSION) $(TEST_ENV)/bin/python -c "import $(PACKAGE_NAME)" .PHONY: all bootstrap clean docs deploy_docs develop build export-pinned install uninstall dist upload test_upload test_env pip test_pip ================================================ FILE: README.md ================================================ Zillion: Make sense of it all ============================= [![Generic badge](https://img.shields.io/badge/Status-Alpha-yellow.svg)](https://shields.io/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![License: MIT](https://img.shields.io/badge/license-MIT-blue) ![Python 3.6+](https://img.shields.io/badge/python-3.6%2B-blue) [![Downloads](https://static.pepy.tech/badge/zillion)](https://pepy.tech/project/zillion) **Introduction** ---------------- `Zillion` is a data modeling and analytics tool that allows combining and analyzing data from multiple datasources through a simple API. It acts as a semantic layer on top of your data, writes SQL so you don't have to, and easily bolts onto existing database infrastructure via SQLAlchemy Core. The `Zillion` NLP extension has experimental support for AI-powered natural language querying and warehouse configuration. With `Zillion` you can: * Define a warehouse that contains a variety of SQL and/or file-like datasources * Define or reflect metrics, dimensions, and relationships in your data * Run multi-datasource reports and combine the results in a DataFrame * Flexibly aggregate your data with multi-level rollups and table pivots * Customize or combine fields with formulas * Apply technical transformations including rolling, cumulative, and rank statistics * Apply automatic type conversions - i.e. get a "year" dimension for free from a "date" column * Save and share report specifications * Utilize ad hoc or public datasources, tables, and fields to enrich reports * Query your warehouse with natural language (NLP extension) * Leverage AI to bootstrap your warehouse configurations (NLP extension) **Table of Contents** --------------------- * [Installation](#installation) * [Primer](#primer) * [Metrics and Dimensions](#metrics-and-dimensions) * [Warehouse Theory](#warehouse-theory) * [Query Layers](#query-layers) * [Warehouse Creation](#warehouse-creation) * [Executing Reports](#executing-reports) * [Natural Language Querying](#natural-language-querying) * [Zillion Configuration](#zillion-configuration) * [Example - Sales Analytics](#example-sales-analytics) * [Warehouse Configuration](#example-warehouse-config) * [Reports](#example-reports) * [Advanced Topics](#advanced-topics) * [Subreports](#subreports) * [FormulaMetrics](#formula-metrics) * [Divisor Metrics](#divisor-metrics) * [Aggregation Variants](#aggregation-variants) * [FormulaDimensions](#formula-dimensions) * [DataSource Formulas](#datasource-formulas) * [Type Conversions](#type-conversions) * [AdHocMetrics](#adhoc-metrics) * [AdHocDimensions](#adhoc-dimensions) * [AdHocDataTables](#adhoc-data-tables) * [Technicals](#technicals) * [Config Variables](#config-variables) * [DataSource Priority](#datasource-priority) * [Supported DataSources](#supported-datasources) * [Multiprocess Considerations](#multiprocess-considerations) * [Demo UI / Web API](#demo-ui) * [Docs](#documentation) * [How to Contribute](#how-to-contribute) **Installation** ---------------- > **Warning**: This project is in an alpha state and is subject to change. Please test carefully for production usage and report any issues. ```shell $ pip install zillion or $ pip install zillion[nlp] ``` --- **Primer** ---------- The following is meant to give a quick overview of some theory and nomenclature used in data warehousing with `Zillion` which will be useful if you are newer to this area. You can also skip below for a usage [example](#example-sales-analytics) or warehouse/datasource creation [quickstart](#warehouse-creation) options. In short: `Zillion` writes SQL for you and makes data accessible through a very simple API: ```python result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "=", "Partner A") ] ) ``` ### **Metrics and Dimensions** In `Zillion` there are two main types of `Fields` that will be used in your report requests: 1. `Dimensions`: attributes of data used for labelling, grouping, and filtering 2. `Metrics`: facts and measures that may be broken down along dimensions A `Field` encapsulates the concept of a column in your data. For example, you may have a `Field` called "revenue". That `Field` may occur across several datasources or possibly in multiple tables within a single datasource. `Zillion` understands that all of those columns represent the same concept, and it can try to use any of them to satisfy reports requesting "revenue". Likewise there are two main types of tables used to structure your warehouse: 1. `Dimension Tables`: reference/attribute tables containing only related dimensions 2. `Metric Tables`: fact tables that may contain metrics and some related dimensions/attributes Dimension tables are often static or slowly growing in terms of row count and contain attributes tied to a primary key. Some common examples would be lists of US Zip Codes or company/partner directories. Metric tables are generally more transactional in nature. Some common examples would be records for web requests, ecommerce sales, or stock market price history. ### **Warehouse Theory** If you really want to go deep on dimensional modeling and the drill-across querying technique `Zillion` employs, I recommend reading Ralph Kimball's [book](https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/books/data-warehouse-dw-toolkit/) on data warehousing. To summarize, [drill-across querying](https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/drilling-across/) forms one or more queries to satisfy a report request for `metrics` that may exist across multiple datasources and/or tables at a particular `dimension` grain. `Zillion` supports flexible warehouse setups such as [snowflake](https://en.wikipedia.org/wiki/Snowflake_schema) or [star](https://en.wikipedia.org/wiki/Star_schema) schemas, though it isn't picky about it. You can specify table relationships through a parent-child lineage, and `Zillion` can also infer acceptable joins based on the presence of dimension table primary keys. `Zillion` does not support many-to-many relationships at this time, though most analytics-focused scenarios should be able to work around that by adding views to the model if needed. ### **Query Layers** `Zillion` reports can be thought of as running in two layers: 1. `DataSource Layer`: SQL queries against the warehouse's datasources 2. `Combined Layer`: A final SQL query against the combined data from the DataSource Layer The Combined Layer is just another SQL database (in-memory SQLite by default) that is used to tie the datasource data together and apply a few additional features such as rollups, row filters, row limits, sorting, pivots, and technical computations. ### **Warehouse Creation** There are multiple ways to quickly initialize a warehouse from a local or remote file: ```python # Path/link to a CSV, XLSX, XLS, JSON, HTML, or Google Sheet # This builds a single-table Warehouse for quick/ad-hoc analysis. url = "https://raw.githubusercontent.com/totalhack/zillion/master/tests/dma_zip.xlsx" wh = Warehouse.from_data_file(url, ["Zip_Code"]) # Second arg is primary key # Path/link to a sqlite database # This can build a single or multi-table Warehouse url = "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true" wh = Warehouse.from_db_file(url) # Path/link to a WarehouseConfigSchema (or pass a dict) # This is the recommended production approach! config = "https://raw.githubusercontent.com/totalhack/zillion/master/examples/example_wh_config.json" wh = Warehouse(config=config) ``` Zillion also provides a helper script to boostrap a DataSource configuration file for an existing database. See `zillion.scripts.bootstrap_datasource_config.py`. The bootstrap script requires a connection/database url and output file as arguments. See `--help` output for more options, including the optional `--nlp` flag that leverages OpenAI to infer configuration information such as column types, table types, and table relationships. The NLP feature requires the NLP extension to be installed as well as the following set in your `Zillion` config file: * OPENAI_MODEL * OPENAI_API_KEY ### **Executing Reports** The main purpose of `Zillion` is to execute reports against a `Warehouse`. At a high level you will be crafting reports as follows: ```python result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "=", "Partner A") ] ) print(result.df) # Pandas DataFrame ``` When comparing to writing SQL, it's helpful to think of the dimensions as the target columns of a **group by** SQL statement. Think of the metrics as the columns you are **aggregating**. Think of the criteria as the **where clause**. Your criteria are applied in the DataSource Layer SQL queries. The `ReportResult` has a Pandas DataFrame with the dimensions as the index and the metrics as the columns. A `Report` is said to have a `grain`, which defines the dimensions each metric must be able to join to in order to satisfy the `Report` requirements. The `grain` is a combination of **all** dimensions, including those referenced in criteria or in metric formulas. In the example above, the `grain` would be `{date, partner}`. Both "revenue" and "leads" must be able to join to those dimensions for this report to be possible. These concepts can take time to sink in and obviously vary with the specifics of your data model, but you will become more familiar with them as you start putting together reports against your data warehouses. ### **Natural Language Querying** With the NLP extension `Zillion` has experimental support for natural language querying of your data warehouse. For example: ```python result = warehouse.execute_text("revenue and leads by date last month") print(result.df) # Pandas DataFrame ``` This NLP feature requires a running instance of Qdrant (vector database) and the following values set in your `Zillion` config file: * QDRANT_HOST * OPENAI_API_KEY Embeddings will be produced and stored in both Qdrant and a local cache. The vector database will be initialized the first time you try to use this by analyzing all fields in your warehouse. An example docker file to run Qdrant is provided in the root of this repo. You have some control over how fields get embedded. Namely in the configuration for any field you can choose whether to exclude a field from embeddings or override which embeddings map to that field. All fields are included by default. The following example would exclude the `net_revenue` field from being embedded and map `revenue` metric requests to the `gross_revenue` field. ```javascript { "name": "gross_revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "meta": { "nlp": { // enabled defaults to true "embedding_text": "revenue" // str or list of str } } }, { "name": "net_revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "meta": { "nlp": { "enabled": false } } }, ``` Additionally you may also exclude fields via the following warehouse-level configuration settings: ```javascript { "meta": { "nlp": { "field_disabled_patterns": [ // list of regex patterns to exclude "rpl_ma_5" ], "field_disabled_groups": [ // list of "groups" to exclude, assuming you have // set group value in the field's meta dict. "No NLP" ] } }, ... } ``` If a field is disabled at any of the aforementioned levels it will be ignored. This type of control becomes useful as your data model gets more complex and you want to guide the NLP logic in cases where it could confuse similarly named fields. Any time you adjust which fields are excluded you will want to force recreation of your embeddings collection using the `force_recreate` flag on `Warehouse.init_embeddings`. > *Note:* This feature is in its infancy. It's usefulness will depend on the quality of both the input query and your data model (i.e. good field names)! ### **Zillion Configuration** In addition to configuring the structure of your `Warehouse`, which will be discussed further below, `Zillion` has a global configuration to control some basic settings. The `ZILLION_CONFIG` environment var can point to a yaml config file. See `examples/sample_config.yaml` for more details on what values can be set. Environment vars prefixed with ZILLION_ can override config settings (i.e. ZILLION_DB_URL will override DB_URL). The database used to store Zillion report specs can be configured by setting the DB_URL value in your `Zillion` config to a valid database connection string. By default a SQLite DB in /tmp is used. --- **Example - Sales Analytics** ----------------------------- Below we will walk through a simple hypothetical sales data model that demonstrates basic `DataSource` and `Warehouse` configuration and then shows some sample [reports](#example-reports). The data is a simple SQLite database that is part of the `Zillion` test code. For reference, the schema is as follows: ```sql CREATE TABLE partners ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE campaigns ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL UNIQUE, category VARCHAR NOT NULL, partner_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE leads ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL, campaign_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE sales ( id INTEGER PRIMARY KEY, item VARCHAR NOT NULL, quantity INTEGER NOT NULL, revenue DECIMAL(10, 2), lead_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` ### **Warehouse Configuration** A `Warehouse` may be created from a JSON or YAML configuration that defines its fields, datasources, and tables. The code below shows how it can be done in as little as one line of code if you have a pointer to a JSON/YAML `Warehouse` config. ```python from zillion import Warehouse wh = Warehouse(config="https://raw.githubusercontent.com/totalhack/zillion/master/examples/example_wh_config.json") ``` This example config uses a `data_url` in its `DataSource` `connect` info that tells `Zillion` to dynamically download that data and connect to it as a SQLite database. This is useful for quick examples or analysis, though in most scenarios you would put a connection string to an existing database like you see [here](https://raw.githubusercontent.com/totalhack/zillion/master/tests/test_mysql_ds_config.json) The basics of `Zillion's` warehouse configuration structure are as follows: A `Warehouse` config has the following main sections: * `metrics`: optional list of metric configs for global metrics * `dimensions`: optional list of dimension configs for global dimensions * `datasources`: mapping of datasource names to datasource configs or config URLs A `DataSource` config has the following main sections: * `connect`: database connection url or dict of connect params * `metrics`: optional list of metric configs specific to this datasource * `dimensions`: optional list of dimension configs specific to this datasource * `tables`: mapping of table names to table configs or config URLs > Tip: datasource and table configs may also be replaced with a URL that points to a local or remote config file. In this example all four tables in our database are included in the config, two as dimension tables and two as metric tables. The tables are linked through a parent->child relationship: partners to campaigns, and leads to sales. Some tables also utilize the `create_fields` flag to automatically create `Fields` on the datasource from column definitions. Other metrics and dimensions are defined explicitly. To view the structure of this `Warehouse` after init you can use the `print_info` method which shows all metrics, dimensions, tables, and columns that are part of your data warehouse: ```python wh.print_info() # Formatted print of the Warehouse structure ``` For a deeper dive of the config schema please see the full [docs](https://totalhack.github.io/zillion/zillion.configs/). ### **Reports** **Example:** Get sales, leads, and revenue by partner: ```python result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["partner_name"] ) print(result.df) """ sales leads revenue partner_name Partner A 11 4 165.0 Partner B 2 2 19.0 Partner C 5 1 118.5 """ ``` **Example:** Let's limit to Partner A and break down by its campaigns: ```python result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["campaign_name"], criteria=[("partner_name", "=", "Partner A")] ) print(result.df) """ sales leads revenue campaign_name Campaign 1A 5 2 83 Campaign 2A 6 2 82 """ ``` **Example:** The output below shows rollups at the campaign level within each partner, and also a rollup of totals at the partner and campaign level. > *Note:* the output contains a special character to mark DataFrame rollup rows that were added to the result. The [ReportResult](https://totalhack.github.io/zillion/zillion.report/#reportresult) object contains some helper attributes to automatically access or filter rollups, as well as a `df_display` attribute that returns the result with friendlier display values substituted for special characters. The under-the-hood special character is left here for illustration, but may not render the same in all scenarios. ```python from zillion import RollupTypes result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["partner_name", "campaign_name"], rollup=RollupTypes.ALL ) print(result.df) """ sales leads revenue partner_name campaign_name Partner A Campaign 1A 5.0 2.0 83.0 Campaign 2A 6.0 2.0 82.0 􏿿 11.0 4.0 165.0 Partner B Campaign 1B 1.0 1.0 6.0 Campaign 2B 1.0 1.0 13.0 􏿿 2.0 2.0 19.0 Partner C Campaign 1C 5.0 1.0 118.5 􏿿 5.0 1.0 118.5 􏿿 􏿿 18.0 7.0 302.5 """ ``` See the `Report` [docs](https://totalhack.github.io/zillion/zillion.report/#report) for more information on supported rollup behavior. **Example:** Save a report spec (not the data): First you must make sure you have saved your `Warehouse`, as saved reports are scoped to a particular `Warehouse` ID. To save a `Warehouse` you must provide a URL that points to the complete config. ```python name = "My Unique Warehouse Name" config_url = wh.save(name, config_url) # wh.id is populated after this spec_id = wh.save_report( metrics=["sales", "leads", "revenue"], dimensions=["partner_name"] ) ``` > *Note*: If you built your `Warehouse` in python from a list of `DataSources`, or passed in a `dict` for the `config` param on init, there currently is not a built-in way to output a complete config to a file for reference when saving. **Example:** Load and run a report from a spec ID: ```python result = wh.execute_id(spec_id) ``` This assumes you have saved this report ID previously in the database specified by the DB_URL in your `Zillion` yaml configuration. **Example:** Unsupported Grain If you attempt an impossible report, you will get an `UnsupportedGrainException`. The report below is impossible because it attempts to break down the leads metric by a dimension that only exists in a child table. Generally speaking, child tables can join back up to parents (and "siblings" of parents) to find dimensions, but not the other way around. ```python # Fails with UnsupportedGrainException result = wh.execute( metrics=["leads"], dimensions=["sale_id"] ) ``` --- **Advanced Topics** ------------------- ### **Subreports** Sometimes you need subquery-like functionality in order to filter one report to the results of some other (that perhaps required a different grain). Zillion provides a simplistic way of doing that by using the `in report` or `not in report` criteria operations. There are two supported ways to specify the subreport: passing a report spec ID or passing a dict of report params. ```python # Assuming you have saved report 1234 and it has "partner" as a dimension: result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "in report", 1234) ] ) # Or with a dict: result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "in report", dict( metrics=[...], dimension=["partner"], criteria=[...] )) ] ) ``` The criteria field used in `in report` or `not in report` must be a dimension in the subreport. Note that subreports are executed at `Report` object initialization time instead of during `execute` -- as such they can not be killed using `Report.kill`. This may change down the road. ### **Formula Metrics** In our example above our config included a formula-based metric called "rpl", which is simply `revenue / leads`. A `FormulaMetric` combines other metrics and/or dimensions to calculate a new metric at the Combined Layer of querying. The syntax must match your Combined Layer database, which is SQLite in our example. ```json { "name": "rpl", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}" } ``` ### **Divisor Metrics** As a convenience, rather than having to repeatedly define formula metrics for rate variants of a core metric, you can specify a divisor metric configuration on a non-formula metric. As an example, say you have a `revenue` metric and want to create variants for `revenue_per_lead` and `revenue_per_sale`. You can define your revenue metric as follows: ```json { "name": "revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "divisors": { "metrics": [ "leads", "sales" ] } } ``` See `zillion.configs.DivisorsConfigSchema` for more details on configuration options, such as overriding naming templates, formula templates, and rounding. ### **Aggregation Variants** Another minor convenience feature is the ability to automatically generate variants of metrics for different aggregation types in a single field configuration instead of across multiple fields in your config file. As an example, say you have a `sales` column in your data and want to create variants for `sales_mean` and `sales_sum`. You can define your metric as follows: ```json { "name": "sales", "aggregation": { "mean": { "type": "numeric(10,2)", "rounding": 2 }, "sum": { "type": "integer" } } } ``` The resulting warehouse would not have a `sales` metric, but would instead have `sales_mean` and `sales_sum`. Note that you can further customize the settings for the generated fields, such as setting a custom name, by specifying that in the nested settings for that aggregation type. In practice this is not a big efficiency gain over just defining the metrics separately, but some may prefer this approach. ### **Formula Dimensions** Experimental support exists for `FormulaDimension` fields as well. A `FormulaDimension` can only use other dimensions as part of its formula, and it also gets evaluated in the Combined Layer database. As an additional restriction, a `FormulaDimension` can not be used in report criteria as those filters are evaluated at the DataSource Layer. The following example assumes a SQLite Combined Layer database: ```json { "name": "partner_is_a", "formula": "{partner_name} = 'Partner A'" } ``` ### **DataSource Formulas** Our example also includes a metric "sales" whose value is calculated via formula at the DataSource Layer of querying. Note the following in the `fields` list for the "id" param in the "main.sales" table. These formulas are in the syntax of the particular `DataSource` database technology, which also happens to be SQLite in our example. ```json "fields": [ "sale_id", {"name":"sales", "ds_formula": "COUNT(DISTINCT sales.id)"} ] ``` ### **Type Conversions** Our example also automatically created a handful of dimensions from the "created_at" columns of the leads and sales tables. Support for automatic type conversions is limited, but for date/datetime columns in supported `DataSource` technologies you can get a variety of dimensions for free this way. The output of `wh.print_info` will show the added dimensions, which are prefixed with "lead_" or "sale_" as specified by the optional `type_conversion_prefix` in the config for each table. Some examples of auto-generated dimensions in our example warehouse include sale_hour, sale_day_name, sale_month, sale_year, etc. As an optimization in the where clause of underlying report queries, `Zillion` will try to apply conversions to criteria values instead of columns. For example, it is generally more efficient to query as `my_datetime > '2020-01-01' and my_datetime < '2020-01-02'` instead of `DATE(my_datetime) == '2020-01-01'`, because the latter can prevent index usage in many database technologies. The ability to apply conversions to values instead of columns varies by field and `DataSource` technology as well. To prevent type conversions, set `skip_conversion_fields` to `true` on your `DataSource` config. See `zillion.field.TYPE_ALLOWED_CONVERSIONS` and `zillion.field.DIALECT_CONVERSIONS` for more details on currently supported conversions. ### **Ad Hoc Metrics** You may also define metrics "ad hoc" with each report request. Below is an example that creates a revenue-per-lead metric on the fly. These only exist within the scope of the report, and the name can not conflict with any existing fields: ```python result = wh.execute( metrics=[ "leads", {"formula": "{revenue}/{leads}", "name": "my_rpl"} ], dimensions=["partner_name"] ) ``` ### **Ad Hoc Dimensions** You may also define dimensions "ad hoc" with each report request. Below is an example that creates a dimension that partitions on a particular dimension value on the fly. Ad Hoc Dimensions are a subclass of `FormulaDimension`s and therefore have the same restrictions, such as not being able to use a metric as a formula field. These only exist within the scope of the report, and the name can not conflict with any existing fields: ```python result = wh.execute( metrics=["leads"], dimensions=[{"name": "partner_is_a", "formula": "{partner_name} = 'Partner A'"] ) ``` ### **Ad Hoc Tables** `Zillion` also supports creation or syncing of ad hoc tables in your database during `DataSource` or `Warehouse` init. An example of a table config that does this is shown [here](https://github.com/totalhack/zillion/blob/master/tests/test_adhoc_ds_config.json). It uses the table config's `data_url` and `if_exists` params to control the syncing and/or creation of the "main.dma_zip" table from a remote CSV in a SQLite database. The same can be done in other database types too. The potential performance drawbacks to such an approach should be obvious, particularly if you are initializing your warehouse often or if the remote data file is large. It is often better to sync and create your data ahead of time so you have complete schema control, but this method can be very useful in certain scenarios. > **Warning**: be careful not to overwrite existing tables in your database! ### **Technicals** There are a variety of technical computations that can be applied to metrics to compute rolling, cumulative, or rank statistics. For example, to compute a 5-point moving average on revenue one might define a new metric as follows: ```json { "name": "revenue_ma_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "mean(5)" } ``` Technical computations are computed at the Combined Layer, whereas the "aggregation" is done at the DataSource Layer (hence needing to define both above). For more info on how shorthand technical strings are parsed, see the [parse_technical_string](https://totalhack.github.io/zillion/zillion.configs/#parse_technical_string) code. For a full list of supported technical types see `zillion.core.TechnicalTypes`. Technicals also support two modes: "group" and "all". The mode controls how to apply the technical computation across the data's dimensions. In "group" mode, it computes the technical across the last dimension, whereas in "all" mode in computes the technical across all data without any regard for dimensions. The point of this becomes more clear if you try to do a "cumsum" technical across data broken down by something like ["partner_name", "date"]. If "group" mode is used (the default in most cases) it will do cumulative sums *within* each partner over the date ranges. If "all" mode is used, it will do a cumulative sum across every data row. You can be explicit about the mode by appending it to the technical string: i.e. "cumsum:all" or "mean(5):group" --- ### **Config Variables** If you'd like to avoid putting sensitive connection information directly in your `DataSource` configs you can leverage config variables. In your `Zillion` yaml config you can specify a `DATASOURCE_CONTEXTS` section as follows: ```yaml DATASOURCE_CONTEXTS: my_ds_name: user: user123 pass: goodpassword host: 127.0.0.1 schema: reporting ``` Then when your `DataSource` config for the datasource named "my_ds_name" is read, it can use this context to populate variables in your connection url: ```json "datasources": { "my_ds_name": { "connect": "mysql+pymysql://{user}:{pass}@{host}/{schema}" ... } } ``` ### **DataSource Priority** On `Warehouse` init you can specify a default priority order for datasources by name. This will come into play when a report could be satisfied by multiple datasources. `DataSources` earlier in the list will be higher priority. This would be useful if you wanted to favor a set of faster, aggregate tables that are grouped in a `DataSource`. ```python wh = Warehouse(config=config, ds_priority=["aggr_ds", "raw_ds", ...]) ``` **Supported DataSources** ------------------------- `Zillion's` goal is to support any database technology that SQLAlchemy supports (pictured below). That said the support and testing levels in `Zillion` vary at the moment. In particular, the ability to do type conversions, database reflection, and kill running queries all require some database-specific code for support. The following list summarizes known support levels. Your mileage may vary with untested database technologies that SQLAlchemy supports (it might work just fine, just hasn't been tested yet). Please report bugs and help add more support! * SQLite: supported * MySQL: supported * PostgreSQL: supported * DuckDB: supported * BigQuery, Redshift, Snowflake, SingleStore, PlanetScale, etc: not tested but would like to support these SQLAlchemy has connectors to many popular databases. The barrier to support many of these is likely pretty low given the simple nature of the sql operations `Zillion` uses. ![SQLAlchemy Connectors](https://github.com/totalhack/zillion/blob/master/docs/images/sqlalchemy_connectors.webp?raw=true) Note that the above is different than the database support for the Combined Layer database. Currently only SQLite is supported there; that should be sufficient for most use cases but more options will be added down the road. **Multiprocess Considerations** ------------------------------- If you plan to run `Zillion` in a multiprocess scenario, whether on a single node or across multiple nodes, there are a couple of things to consider: * SQLite DataSources do not scale well and may run into locking issues with multiple processes trying to access them on the same node. * Any file-based database technology that isn't centrally accessible would be challenging when using multiple nodes. * Ad Hoc DataSource and Ad Hoc Table downloads should be avoided as they may conflict/repeat across each process. Offload this to an external ETL process that is better suited to manage those data flows in a scalable production scenario. Note that you can still use the default SQLite in-memory Combined Layer DB without issues, as that is made on the fly with each report request and requires no coordination/communication with other processes or nodes. **Demo UI / Web API** -------------------- [Zillion Web UI](https://github.com/totalhack/zillion-web) is a demo UI and web API for Zillion that also includes an experimental ChatGPT plugin. See the README there for more info on installation and project structure. Please note that the code is light on testing and polish, but is expected to work in modern browsers. Also ChatGPT plugins are quite slow at the moment, so currently that is mostly for fun and not that useful. --- **Documentation** ----------------- More thorough documentation can be found [here](https://totalhack.github.io/zillion/). You can supplement your knowledge by perusing the [tests](https://github.com/totalhack/zillion/tree/master/tests) directory or the [API reference](https://totalhack.github.io/zillion/). --- **How to Contribute** --------------------- Please See the [contributing](https://github.com/totalhack/zillion/blob/master/CONTRIBUTING.md) guide for more information. If you are looking for inspiration, adding support and tests for additional database technologies would be a great help. ================================================ FILE: dev_config.yml ================================================ DEBUG: false LOG_LEVEL: WARNING LOAD_TABLE_CHUNK_SIZE: 5000 DB_URL: sqlite:////tmp/zillion.db ADHOC_DATASOURCE_DIRECTORY: /tmp # OPENAI_API_KEY: xyz OPENAI_MODEL: gpt-3.5-turbo QDRANT_HOST: localhost DATASOURCE_QUERY_MODE: "sequential" DATASOURCE_QUERY_TIMEOUT: null DATASOURCE_QUERY_WORKERS: 4 DB_ENGINE_POOL_SIZE: 7 DATASOURCE_CONTEXTS: testdb2: schema: testdb2 test_adhoc_db: user: totalhack duckdb: schema: zillion_test mysql: user: root host: 127.0.0.1 schema: zillion_test postgresql: user: postgres host: 127.0.0.1 schema: zillion_test TEST: MySQLHost: 127.0.0.1 MySQLPort: 3306 MySQLUser: root MySQLTestSchema: zillion_test PostgreSQLHost: 127.0.0.1 PostgreSQLPort: 5432 PostgreSQLUser: postgres PostgreSQLTestSchema: zillion_test DuckDBTestSchemaBase: zillion_test ================================================ FILE: docker-compose-nlp.yml ================================================ version: "3.8" services: qdrant: image: qdrant/qdrant ports: - 6333:6333 - 6334:6334 environment: - TZ=America/New_York volumes: - ./volumes/qdrant:/qdrant/storage ================================================ FILE: docker-compose.yml ================================================ version: "3.8" services: mysql: image: mysql:8.0.32 ports: - 3306:3306 command: ['--default-authentication-plugin=mysql_native_password', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci'] environment: - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=zillion_test - MYSQL_ALLOW_EMPTY_PASSWORD=1 - TZ=America/New_York volumes: - test-mysql8-data:/var/lib/mysql/ postgres: image: postgres:15 ports: - 5432:5432 environment: - PGDATA=/var/lib/postgresql/data/pgdata_test - POSTGRES_SERVER=127.0.0.1 - POSTGRES_USER=postgres - POSTGRES_PASSWORD= - POSTGRES_HOST_AUTH_METHOD=trust - POSTGRES_DB=zillion_test volumes: - test-pg15-data:/var/lib/postgresql/data/pgdata_test volumes: test-pg15-data: test-mysql8-data: ================================================ FILE: docs/build_markdown.py ================================================ import enum import importlib import inspect import os import pkgutil import shutil import markdown from tlbx import st import zillion CWD = os.path.dirname(os.path.abspath(__file__)) OPTS = dict( extensions=["pymdownx.snippets", "admonition"], extension_configs={"pymdownx.snippets": {"base_path": CWD}}, ) def get_classes(module): return set( [ x for x in inspect.getmembers(module, inspect.isclass) if (not x[0].startswith("_")) and x[1].__module__ == module.__name__ and not type(x[1]) is enum.EnumMeta ] ) def get_funcs(module): return set( [ x for x in inspect.getmembers(module, inspect.isfunction) if (not x[0].startswith("_")) and x[1].__module__ == module.__name__ ] ) def get_object_attributes(obj): return set( [y[0] for y in inspect.getmembers(obj, lambda x: not inspect.isroutine(x))] ) def get_zillion_members(obj): member_set = set() for cls in obj.mro(): if not cls.__module__.startswith("zillion"): break member_set |= cls.__dict__.keys() member_set = {x for x in member_set if (not x.startswith("_"))} member_set -= get_object_attributes(obj) return sorted(member_set) def process_markdown(infile, outfile, **opts): with open(infile, "r") as f: text = f.read() md = markdown.Markdown(**opts) md.convert(text) md = u"\n".join(md.lines) with open(outfile, "w") as f: f.write(md) def linkcode_resolve(obj): try: fn = inspect.getsourcefile(inspect.unwrap(obj)) except TypeError: fn = None if not fn: return None try: source, lineno = inspect.getsourcelines(obj) except OSError: lineno = None if lineno: linespec = "#L{:d}-L{:d}".format(lineno, lineno + len(source) - 1) else: linespec = "" fn = os.path.relpath(fn, start=os.path.dirname(zillion.__file__)) return "https://github.com/totalhack/zillion/blob/master/zillion/" "{}{}".format( fn, linespec ) def create_module_file(fullname): module = importlib.import_module(fullname) classes = get_classes(module) funcs = get_funcs(module) out = "[//]: # (This is an auto-generated file. Do not edit)\n" out += "# Module %s\n\n" % fullname for name, obj in sorted(classes): if issubclass(obj, Exception): # These cause errors in inspect.signature call in mkautodoc continue codelink = linkcode_resolve(obj) if codelink: out += "\n## [%s](%s)\n\n" % (name, codelink) else: out += "\n## %s\n\n" % name if obj.__bases__ and obj.__bases__ != (object,): base_names = ", ".join( [x.__module__ + "." + x.__name__ for x in obj.__bases__] ) out += "*Bases*: %s\n\n" % base_names members = get_zillion_members(obj) if members: members = ":members: " + " ".join(members) else: members = "" out += CLASS_TEMPLATE % dict(name=fullname + "." + name, members=members) out += "\n" for name, obj in sorted(funcs): codelink = linkcode_resolve(obj) if codelink: out += "\n## [%s](%s)\n\n" % (name, codelink) else: out += "\n## %s\n\n" % name out += FUNC_TEMPLATE % dict(name=fullname + "." + name) out += "\n" filename = "%s/mkdocs/%s" % (CWD, fullname + ".md") print("Writing %s" % filename) with open(filename, "w") as f: f.write(out) # -------- Build main README INPUT_FILE = "%s/readme.md" % CWD OUTPUT_FILE = "%s/../README.md" % CWD print("Building %s from %s" % (OUTPUT_FILE, INPUT_FILE)) process_markdown(INPUT_FILE, OUTPUT_FILE, **OPTS) # -------- CONTRIBUTING.md INPUT_FILE = "%s/markdown/contributing.md" % CWD OUTPUT_FILE = "%s/../CONTRIBUTING.md" % CWD print("Building %s from %s" % (OUTPUT_FILE, INPUT_FILE)) shutil.copyfile(INPUT_FILE, OUTPUT_FILE) INPUT_FILE = "%s/markdown/contributing.md" % CWD OUTPUT_FILE = "%s/mkdocs/contributing.md" % CWD print("Building %s from %s" % (OUTPUT_FILE, INPUT_FILE)) shutil.copyfile(INPUT_FILE, OUTPUT_FILE) # -------- Build mkdocs index INPUT_FILE = "%s/mkdocs_index.md" % CWD OUTPUT_FILE = "%s/mkdocs/index.md" % CWD print("Building %s from %s" % (OUTPUT_FILE, INPUT_FILE)) process_markdown(INPUT_FILE, OUTPUT_FILE, **OPTS) # -------- Build API docs API_FILE = "%s/mkdocs/api.md" % CWD out = "# API Reference\n" CLASS_TEMPLATE = """::: %(name)s :docstring: %(members)s """ FUNC_TEMPLATE = """::: %(name)s :docstring: """ walk = pkgutil.walk_packages(["../zillion"]) for module in walk: fullname = "zillion." + module.name path = fullname + ".md" md = "* [%s](%s)" % (fullname, path) out += "\n%s" % md create_module_file(fullname) with open(API_FILE, "w") as f: f.write(out) ================================================ FILE: docs/markdown/contributing.md ================================================ Your help and feedback are greatly appreciated. Whether it's supporting/testing a new datasource type, finding bugs, or suggesting features, every little bit helps make `Zillion` reach its potential. Please also consider manicuring or configuring datasets that others may find useful. With as little as a CSV and a short JSON configuration file you can give back to the community. You can host these shared datasources easily with GitHub. ## **How to Contribute** 1. Check for open issues or open a new issue to start a discussion around a feature idea or a bug. 2. Fork [the repository](https://github.com/totalhack/zillion) on GitHub to start making your changes to the **master** branch (or branch off of it). 3. Write a test which shows that the bug was fixed or that the feature works as expected. 4. Send a [pull request](https://help.github.com/en/articles/creating-a-pull-request-from-a-fork). Add yourself to [AUTHORS](https://github.com/totalhack/zillion/blob/master/AUTHORS.md). ## **Development Setup** ```shell # Clone this repo git clone https://github.com/totalhack/zillion.git cd zillion # Install dependencies # Note: activate your venv first if desired! pip install ".[dev]" # Bring up test databases -- test data will init the first time # You can optionally run these DBs directly on your machine instead docker-compose up # Run tests export ZILLION_CONFIG=$(pwd)/tests/test_config.yaml cd tests pytest ``` ## **Good Bug Reports** Please be aware of the following things when filing bug reports: 1. Avoid raising duplicate issues. *Please* use the GitHub issue search feature to check whether your bug report or feature request has been mentioned in the past. Duplicate bug reports and feature requests are a huge maintenance burden on the limited resources of the project. If it is clear from your report that you would have struggled to find the original, that's ok, but if searching for a selection of words in your issue title would have found the duplicate then the issue will likely be closed. 2. When filing bug reports about exceptions or tracebacks, please include the *complete* traceback. Partial tracebacks, or just the exception text, are not helpful. Issues that do not contain complete tracebacks may be closed without warning. 3. Make sure you provide a suitable amount of information to work with. ## **Questions** The GitHub issue tracker is for *bug reports* and *feature requests*. Please do not use it to ask questions about how to use Zillion. ================================================ FILE: docs/markdown/readme_badges.md ================================================ [![Generic badge](https://img.shields.io/badge/Status-Alpha-yellow.svg)](https://shields.io/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![License: MIT](https://img.shields.io/badge/license-MIT-blue) ![Python 3.6+](https://img.shields.io/badge/python-3.6%2B-blue) [![Downloads](https://static.pepy.tech/badge/zillion)](https://pepy.tech/project/zillion) ================================================ FILE: docs/markdown/readme_contents.md ================================================ **Installation** ---------------- > **Warning**: This project is in an alpha state and is subject to change. Please test carefully for production usage and report any issues. ```shell $ pip install zillion or $ pip install zillion[nlp] ``` --- **Primer** ---------- The following is meant to give a quick overview of some theory and nomenclature used in data warehousing with `Zillion` which will be useful if you are newer to this area. You can also skip below for a usage [example](#example-sales-analytics) or warehouse/datasource creation [quickstart](#warehouse-creation) options. In short: `Zillion` writes SQL for you and makes data accessible through a very simple API: ```python result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "=", "Partner A") ] ) ``` ### **Metrics and Dimensions** In `Zillion` there are two main types of `Fields` that will be used in your report requests: 1. `Dimensions`: attributes of data used for labelling, grouping, and filtering 2. `Metrics`: facts and measures that may be broken down along dimensions A `Field` encapsulates the concept of a column in your data. For example, you may have a `Field` called "revenue". That `Field` may occur across several datasources or possibly in multiple tables within a single datasource. `Zillion` understands that all of those columns represent the same concept, and it can try to use any of them to satisfy reports requesting "revenue". Likewise there are two main types of tables used to structure your warehouse: 1. `Dimension Tables`: reference/attribute tables containing only related dimensions 2. `Metric Tables`: fact tables that may contain metrics and some related dimensions/attributes Dimension tables are often static or slowly growing in terms of row count and contain attributes tied to a primary key. Some common examples would be lists of US Zip Codes or company/partner directories. Metric tables are generally more transactional in nature. Some common examples would be records for web requests, ecommerce sales, or stock market price history. ### **Warehouse Theory** If you really want to go deep on dimensional modeling and the drill-across querying technique `Zillion` employs, I recommend reading Ralph Kimball's [book](https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/books/data-warehouse-dw-toolkit/) on data warehousing. To summarize, [drill-across querying](https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/drilling-across/) forms one or more queries to satisfy a report request for `metrics` that may exist across multiple datasources and/or tables at a particular `dimension` grain. `Zillion` supports flexible warehouse setups such as [snowflake](https://en.wikipedia.org/wiki/Snowflake_schema) or [star](https://en.wikipedia.org/wiki/Star_schema) schemas, though it isn't picky about it. You can specify table relationships through a parent-child lineage, and `Zillion` can also infer acceptable joins based on the presence of dimension table primary keys. `Zillion` does not support many-to-many relationships at this time, though most analytics-focused scenarios should be able to work around that by adding views to the model if needed. ### **Query Layers** `Zillion` reports can be thought of as running in two layers: 1. `DataSource Layer`: SQL queries against the warehouse's datasources 2. `Combined Layer`: A final SQL query against the combined data from the DataSource Layer The Combined Layer is just another SQL database (in-memory SQLite by default) that is used to tie the datasource data together and apply a few additional features such as rollups, row filters, row limits, sorting, pivots, and technical computations. ### **Warehouse Creation** There are multiple ways to quickly initialize a warehouse from a local or remote file: ```python # Path/link to a CSV, XLSX, XLS, JSON, HTML, or Google Sheet # This builds a single-table Warehouse for quick/ad-hoc analysis. url = "https://raw.githubusercontent.com/totalhack/zillion/master/tests/dma_zip.xlsx" wh = Warehouse.from_data_file(url, ["Zip_Code"]) # Second arg is primary key # Path/link to a sqlite database # This can build a single or multi-table Warehouse url = "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true" wh = Warehouse.from_db_file(url) # Path/link to a WarehouseConfigSchema (or pass a dict) # This is the recommended production approach! config = "https://raw.githubusercontent.com/totalhack/zillion/master/examples/example_wh_config.json" wh = Warehouse(config=config) ``` Zillion also provides a helper script to boostrap a DataSource configuration file for an existing database. See `zillion.scripts.bootstrap_datasource_config.py`. The bootstrap script requires a connection/database url and output file as arguments. See `--help` output for more options, including the optional `--nlp` flag that leverages OpenAI to infer configuration information such as column types, table types, and table relationships. The NLP feature requires the NLP extension to be installed as well as the following set in your `Zillion` config file: * OPENAI_MODEL * OPENAI_API_KEY ### **Executing Reports** The main purpose of `Zillion` is to execute reports against a `Warehouse`. At a high level you will be crafting reports as follows: ```python result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "=", "Partner A") ] ) print(result.df) # Pandas DataFrame ``` When comparing to writing SQL, it's helpful to think of the dimensions as the target columns of a **group by** SQL statement. Think of the metrics as the columns you are **aggregating**. Think of the criteria as the **where clause**. Your criteria are applied in the DataSource Layer SQL queries. The `ReportResult` has a Pandas DataFrame with the dimensions as the index and the metrics as the columns. A `Report` is said to have a `grain`, which defines the dimensions each metric must be able to join to in order to satisfy the `Report` requirements. The `grain` is a combination of **all** dimensions, including those referenced in criteria or in metric formulas. In the example above, the `grain` would be `{date, partner}`. Both "revenue" and "leads" must be able to join to those dimensions for this report to be possible. These concepts can take time to sink in and obviously vary with the specifics of your data model, but you will become more familiar with them as you start putting together reports against your data warehouses. ### **Natural Language Querying** With the NLP extension `Zillion` has experimental support for natural language querying of your data warehouse. For example: ```python result = warehouse.execute_text("revenue and leads by date last month") print(result.df) # Pandas DataFrame ``` This NLP feature requires a running instance of Qdrant (vector database) and the following values set in your `Zillion` config file: * QDRANT_HOST * OPENAI_API_KEY Embeddings will be produced and stored in both Qdrant and a local cache. The vector database will be initialized the first time you try to use this by analyzing all fields in your warehouse. An example docker file to run Qdrant is provided in the root of this repo. You have some control over how fields get embedded. Namely in the configuration for any field you can choose whether to exclude a field from embeddings or override which embeddings map to that field. All fields are included by default. The following example would exclude the `net_revenue` field from being embedded and map `revenue` metric requests to the `gross_revenue` field. ```javascript { "name": "gross_revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "meta": { "nlp": { // enabled defaults to true "embedding_text": "revenue" // str or list of str } } }, { "name": "net_revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "meta": { "nlp": { "enabled": false } } }, ``` Additionally you may also exclude fields via the following warehouse-level configuration settings: ```javascript { "meta": { "nlp": { "field_disabled_patterns": [ // list of regex patterns to exclude "rpl_ma_5" ], "field_disabled_groups": [ // list of "groups" to exclude, assuming you have // set group value in the field's meta dict. "No NLP" ] } }, ... } ``` If a field is disabled at any of the aforementioned levels it will be ignored. This type of control becomes useful as your data model gets more complex and you want to guide the NLP logic in cases where it could confuse similarly named fields. Any time you adjust which fields are excluded you will want to force recreation of your embeddings collection using the `force_recreate` flag on `Warehouse.init_embeddings`. > *Note:* This feature is in its infancy. It's usefulness will depend on the quality of both the input query and your data model (i.e. good field names)! ### **Zillion Configuration** In addition to configuring the structure of your `Warehouse`, which will be discussed further below, `Zillion` has a global configuration to control some basic settings. The `ZILLION_CONFIG` environment var can point to a yaml config file. See `examples/sample_config.yaml` for more details on what values can be set. Environment vars prefixed with ZILLION_ can override config settings (i.e. ZILLION_DB_URL will override DB_URL). The database used to store Zillion report specs can be configured by setting the DB_URL value in your `Zillion` config to a valid database connection string. By default a SQLite DB in /tmp is used. --- **Example - Sales Analytics** ----------------------------- Below we will walk through a simple hypothetical sales data model that demonstrates basic `DataSource` and `Warehouse` configuration and then shows some sample [reports](#example-reports). The data is a simple SQLite database that is part of the `Zillion` test code. For reference, the schema is as follows: ```sql CREATE TABLE partners ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE campaigns ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL UNIQUE, category VARCHAR NOT NULL, partner_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE leads ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL, campaign_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE sales ( id INTEGER PRIMARY KEY, item VARCHAR NOT NULL, quantity INTEGER NOT NULL, revenue DECIMAL(10, 2), lead_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` ### **Warehouse Configuration** A `Warehouse` may be created from a JSON or YAML configuration that defines its fields, datasources, and tables. The code below shows how it can be done in as little as one line of code if you have a pointer to a JSON/YAML `Warehouse` config. ```python from zillion import Warehouse wh = Warehouse(config="https://raw.githubusercontent.com/totalhack/zillion/master/examples/example_wh_config.json") ``` This example config uses a `data_url` in its `DataSource` `connect` info that tells `Zillion` to dynamically download that data and connect to it as a SQLite database. This is useful for quick examples or analysis, though in most scenarios you would put a connection string to an existing database like you see [here](https://raw.githubusercontent.com/totalhack/zillion/master/tests/test_mysql_ds_config.json) The basics of `Zillion's` warehouse configuration structure are as follows: A `Warehouse` config has the following main sections: * `metrics`: optional list of metric configs for global metrics * `dimensions`: optional list of dimension configs for global dimensions * `datasources`: mapping of datasource names to datasource configs or config URLs A `DataSource` config has the following main sections: * `connect`: database connection url or dict of connect params * `metrics`: optional list of metric configs specific to this datasource * `dimensions`: optional list of dimension configs specific to this datasource * `tables`: mapping of table names to table configs or config URLs > Tip: datasource and table configs may also be replaced with a URL that points to a local or remote config file. In this example all four tables in our database are included in the config, two as dimension tables and two as metric tables. The tables are linked through a parent->child relationship: partners to campaigns, and leads to sales. Some tables also utilize the `create_fields` flag to automatically create `Fields` on the datasource from column definitions. Other metrics and dimensions are defined explicitly. To view the structure of this `Warehouse` after init you can use the `print_info` method which shows all metrics, dimensions, tables, and columns that are part of your data warehouse: ```python wh.print_info() # Formatted print of the Warehouse structure ``` For a deeper dive of the config schema please see the full [docs](https://totalhack.github.io/zillion/zillion.configs/). ### **Reports** **Example:** Get sales, leads, and revenue by partner: ```python result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["partner_name"] ) print(result.df) """ sales leads revenue partner_name Partner A 11 4 165.0 Partner B 2 2 19.0 Partner C 5 1 118.5 """ ``` **Example:** Let's limit to Partner A and break down by its campaigns: ```python result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["campaign_name"], criteria=[("partner_name", "=", "Partner A")] ) print(result.df) """ sales leads revenue campaign_name Campaign 1A 5 2 83 Campaign 2A 6 2 82 """ ``` **Example:** The output below shows rollups at the campaign level within each partner, and also a rollup of totals at the partner and campaign level. > *Note:* the output contains a special character to mark DataFrame rollup rows that were added to the result. The [ReportResult](https://totalhack.github.io/zillion/zillion.report/#reportresult) object contains some helper attributes to automatically access or filter rollups, as well as a `df_display` attribute that returns the result with friendlier display values substituted for special characters. The under-the-hood special character is left here for illustration, but may not render the same in all scenarios. ```python from zillion import RollupTypes result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["partner_name", "campaign_name"], rollup=RollupTypes.ALL ) print(result.df) """ sales leads revenue partner_name campaign_name Partner A Campaign 1A 5.0 2.0 83.0 Campaign 2A 6.0 2.0 82.0 􏿿 11.0 4.0 165.0 Partner B Campaign 1B 1.0 1.0 6.0 Campaign 2B 1.0 1.0 13.0 􏿿 2.0 2.0 19.0 Partner C Campaign 1C 5.0 1.0 118.5 􏿿 5.0 1.0 118.5 􏿿 􏿿 18.0 7.0 302.5 """ ``` See the `Report` [docs](https://totalhack.github.io/zillion/zillion.report/#report) for more information on supported rollup behavior. **Example:** Save a report spec (not the data): First you must make sure you have saved your `Warehouse`, as saved reports are scoped to a particular `Warehouse` ID. To save a `Warehouse` you must provide a URL that points to the complete config. ```python name = "My Unique Warehouse Name" config_url = wh.save(name, config_url) # wh.id is populated after this spec_id = wh.save_report( metrics=["sales", "leads", "revenue"], dimensions=["partner_name"] ) ``` > *Note*: If you built your `Warehouse` in python from a list of `DataSources`, or passed in a `dict` for the `config` param on init, there currently is not a built-in way to output a complete config to a file for reference when saving. **Example:** Load and run a report from a spec ID: ```python result = wh.execute_id(spec_id) ``` This assumes you have saved this report ID previously in the database specified by the DB_URL in your `Zillion` yaml configuration. **Example:** Unsupported Grain If you attempt an impossible report, you will get an `UnsupportedGrainException`. The report below is impossible because it attempts to break down the leads metric by a dimension that only exists in a child table. Generally speaking, child tables can join back up to parents (and "siblings" of parents) to find dimensions, but not the other way around. ```python # Fails with UnsupportedGrainException result = wh.execute( metrics=["leads"], dimensions=["sale_id"] ) ``` --- **Advanced Topics** ------------------- ### **Subreports** Sometimes you need subquery-like functionality in order to filter one report to the results of some other (that perhaps required a different grain). Zillion provides a simplistic way of doing that by using the `in report` or `not in report` criteria operations. There are two supported ways to specify the subreport: passing a report spec ID or passing a dict of report params. ```python # Assuming you have saved report 1234 and it has "partner" as a dimension: result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "in report", 1234) ] ) # Or with a dict: result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "in report", dict( metrics=[...], dimension=["partner"], criteria=[...] )) ] ) ``` The criteria field used in `in report` or `not in report` must be a dimension in the subreport. Note that subreports are executed at `Report` object initialization time instead of during `execute` -- as such they can not be killed using `Report.kill`. This may change down the road. ### **Formula Metrics** In our example above our config included a formula-based metric called "rpl", which is simply `revenue / leads`. A `FormulaMetric` combines other metrics and/or dimensions to calculate a new metric at the Combined Layer of querying. The syntax must match your Combined Layer database, which is SQLite in our example. ```json { "name": "rpl", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}" } ``` ### **Divisor Metrics** As a convenience, rather than having to repeatedly define formula metrics for rate variants of a core metric, you can specify a divisor metric configuration on a non-formula metric. As an example, say you have a `revenue` metric and want to create variants for `revenue_per_lead` and `revenue_per_sale`. You can define your revenue metric as follows: ```json { "name": "revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "divisors": { "metrics": [ "leads", "sales" ] } } ``` See `zillion.configs.DivisorsConfigSchema` for more details on configuration options, such as overriding naming templates, formula templates, and rounding. ### **Aggregation Variants** Another minor convenience feature is the ability to automatically generate variants of metrics for different aggregation types in a single field configuration instead of across multiple fields in your config file. As an example, say you have a `sales` column in your data and want to create variants for `sales_mean` and `sales_sum`. You can define your metric as follows: ```json { "name": "sales", "aggregation": { "mean": { "type": "numeric(10,2)", "rounding": 2 }, "sum": { "type": "integer" } } } ``` The resulting warehouse would not have a `sales` metric, but would instead have `sales_mean` and `sales_sum`. Note that you can further customize the settings for the generated fields, such as setting a custom name, by specifying that in the nested settings for that aggregation type. In practice this is not a big efficiency gain over just defining the metrics separately, but some may prefer this approach. ### **Formula Dimensions** Experimental support exists for `FormulaDimension` fields as well. A `FormulaDimension` can only use other dimensions as part of its formula, and it also gets evaluated in the Combined Layer database. As an additional restriction, a `FormulaDimension` can not be used in report criteria as those filters are evaluated at the DataSource Layer. The following example assumes a SQLite Combined Layer database: ```json { "name": "partner_is_a", "formula": "{partner_name} = 'Partner A'" } ``` ### **DataSource Formulas** Our example also includes a metric "sales" whose value is calculated via formula at the DataSource Layer of querying. Note the following in the `fields` list for the "id" param in the "main.sales" table. These formulas are in the syntax of the particular `DataSource` database technology, which also happens to be SQLite in our example. ```json "fields": [ "sale_id", {"name":"sales", "ds_formula": "COUNT(DISTINCT sales.id)"} ] ``` ### **Type Conversions** Our example also automatically created a handful of dimensions from the "created_at" columns of the leads and sales tables. Support for automatic type conversions is limited, but for date/datetime columns in supported `DataSource` technologies you can get a variety of dimensions for free this way. The output of `wh.print_info` will show the added dimensions, which are prefixed with "lead_" or "sale_" as specified by the optional `type_conversion_prefix` in the config for each table. Some examples of auto-generated dimensions in our example warehouse include sale_hour, sale_day_name, sale_month, sale_year, etc. As an optimization in the where clause of underlying report queries, `Zillion` will try to apply conversions to criteria values instead of columns. For example, it is generally more efficient to query as `my_datetime > '2020-01-01' and my_datetime < '2020-01-02'` instead of `DATE(my_datetime) == '2020-01-01'`, because the latter can prevent index usage in many database technologies. The ability to apply conversions to values instead of columns varies by field and `DataSource` technology as well. To prevent type conversions, set `skip_conversion_fields` to `true` on your `DataSource` config. See `zillion.field.TYPE_ALLOWED_CONVERSIONS` and `zillion.field.DIALECT_CONVERSIONS` for more details on currently supported conversions. ### **Ad Hoc Metrics** You may also define metrics "ad hoc" with each report request. Below is an example that creates a revenue-per-lead metric on the fly. These only exist within the scope of the report, and the name can not conflict with any existing fields: ```python result = wh.execute( metrics=[ "leads", {"formula": "{revenue}/{leads}", "name": "my_rpl"} ], dimensions=["partner_name"] ) ``` ### **Ad Hoc Dimensions** You may also define dimensions "ad hoc" with each report request. Below is an example that creates a dimension that partitions on a particular dimension value on the fly. Ad Hoc Dimensions are a subclass of `FormulaDimension`s and therefore have the same restrictions, such as not being able to use a metric as a formula field. These only exist within the scope of the report, and the name can not conflict with any existing fields: ```python result = wh.execute( metrics=["leads"], dimensions=[{"name": "partner_is_a", "formula": "{partner_name} = 'Partner A'"] ) ``` ### **Ad Hoc Tables** `Zillion` also supports creation or syncing of ad hoc tables in your database during `DataSource` or `Warehouse` init. An example of a table config that does this is shown [here](https://github.com/totalhack/zillion/blob/master/tests/test_adhoc_ds_config.json). It uses the table config's `data_url` and `if_exists` params to control the syncing and/or creation of the "main.dma_zip" table from a remote CSV in a SQLite database. The same can be done in other database types too. The potential performance drawbacks to such an approach should be obvious, particularly if you are initializing your warehouse often or if the remote data file is large. It is often better to sync and create your data ahead of time so you have complete schema control, but this method can be very useful in certain scenarios. > **Warning**: be careful not to overwrite existing tables in your database! ### **Technicals** There are a variety of technical computations that can be applied to metrics to compute rolling, cumulative, or rank statistics. For example, to compute a 5-point moving average on revenue one might define a new metric as follows: ```json { "name": "revenue_ma_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "mean(5)" } ``` Technical computations are computed at the Combined Layer, whereas the "aggregation" is done at the DataSource Layer (hence needing to define both above). For more info on how shorthand technical strings are parsed, see the [parse_technical_string](https://totalhack.github.io/zillion/zillion.configs/#parse_technical_string) code. For a full list of supported technical types see `zillion.core.TechnicalTypes`. Technicals also support two modes: "group" and "all". The mode controls how to apply the technical computation across the data's dimensions. In "group" mode, it computes the technical across the last dimension, whereas in "all" mode in computes the technical across all data without any regard for dimensions. The point of this becomes more clear if you try to do a "cumsum" technical across data broken down by something like ["partner_name", "date"]. If "group" mode is used (the default in most cases) it will do cumulative sums *within* each partner over the date ranges. If "all" mode is used, it will do a cumulative sum across every data row. You can be explicit about the mode by appending it to the technical string: i.e. "cumsum:all" or "mean(5):group" --- ### **Config Variables** If you'd like to avoid putting sensitive connection information directly in your `DataSource` configs you can leverage config variables. In your `Zillion` yaml config you can specify a `DATASOURCE_CONTEXTS` section as follows: ```yaml DATASOURCE_CONTEXTS: my_ds_name: user: user123 pass: goodpassword host: 127.0.0.1 schema: reporting ``` Then when your `DataSource` config for the datasource named "my_ds_name" is read, it can use this context to populate variables in your connection url: ```json "datasources": { "my_ds_name": { "connect": "mysql+pymysql://{user}:{pass}@{host}/{schema}" ... } } ``` ### **DataSource Priority** On `Warehouse` init you can specify a default priority order for datasources by name. This will come into play when a report could be satisfied by multiple datasources. `DataSources` earlier in the list will be higher priority. This would be useful if you wanted to favor a set of faster, aggregate tables that are grouped in a `DataSource`. ```python wh = Warehouse(config=config, ds_priority=["aggr_ds", "raw_ds", ...]) ``` **Supported DataSources** ------------------------- `Zillion's` goal is to support any database technology that SQLAlchemy supports (pictured below). That said the support and testing levels in `Zillion` vary at the moment. In particular, the ability to do type conversions, database reflection, and kill running queries all require some database-specific code for support. The following list summarizes known support levels. Your mileage may vary with untested database technologies that SQLAlchemy supports (it might work just fine, just hasn't been tested yet). Please report bugs and help add more support! * SQLite: supported * MySQL: supported * PostgreSQL: supported * DuckDB: supported * BigQuery, Redshift, Snowflake, SingleStore, PlanetScale, etc: not tested but would like to support these SQLAlchemy has connectors to many popular databases. The barrier to support many of these is likely pretty low given the simple nature of the sql operations `Zillion` uses. ![SQLAlchemy Connectors](https://github.com/totalhack/zillion/blob/master/docs/images/sqlalchemy_connectors.webp?raw=true) Note that the above is different than the database support for the Combined Layer database. Currently only SQLite is supported there; that should be sufficient for most use cases but more options will be added down the road. **Multiprocess Considerations** ------------------------------- If you plan to run `Zillion` in a multiprocess scenario, whether on a single node or across multiple nodes, there are a couple of things to consider: * SQLite DataSources do not scale well and may run into locking issues with multiple processes trying to access them on the same node. * Any file-based database technology that isn't centrally accessible would be challenging when using multiple nodes. * Ad Hoc DataSource and Ad Hoc Table downloads should be avoided as they may conflict/repeat across each process. Offload this to an external ETL process that is better suited to manage those data flows in a scalable production scenario. Note that you can still use the default SQLite in-memory Combined Layer DB without issues, as that is made on the fly with each report request and requires no coordination/communication with other processes or nodes. **Demo UI / Web API** -------------------- [Zillion Web UI](https://github.com/totalhack/zillion-web) is a demo UI and web API for Zillion that also includes an experimental ChatGPT plugin. See the README there for more info on installation and project structure. Please note that the code is light on testing and polish, but is expected to work in modern browsers. Also ChatGPT plugins are quite slow at the moment, so currently that is mostly for fun and not that useful. ================================================ FILE: docs/markdown/readme_docs.md ================================================ **Documentation** ----------------- More thorough documentation can be found [here](https://totalhack.github.io/zillion/). You can supplement your knowledge by perusing the [tests](https://github.com/totalhack/zillion/tree/master/tests) directory or the [API reference](https://totalhack.github.io/zillion/). ================================================ FILE: docs/markdown/readme_how_to_contribute.md ================================================ **How to Contribute** --------------------- Please See the [contributing](https://github.com/totalhack/zillion/blob/master/CONTRIBUTING.md) guide for more information. If you are looking for inspiration, adding support and tests for additional database technologies would be a great help. ================================================ FILE: docs/markdown/readme_intro.md ================================================ **Introduction** ---------------- `Zillion` is a data modeling and analytics tool that allows combining and analyzing data from multiple datasources through a simple API. It acts as a semantic layer on top of your data, writes SQL so you don't have to, and easily bolts onto existing database infrastructure via SQLAlchemy Core. The `Zillion` NLP extension has experimental support for AI-powered natural language querying and warehouse configuration. With `Zillion` you can: * Define a warehouse that contains a variety of SQL and/or file-like datasources * Define or reflect metrics, dimensions, and relationships in your data * Run multi-datasource reports and combine the results in a DataFrame * Flexibly aggregate your data with multi-level rollups and table pivots * Customize or combine fields with formulas * Apply technical transformations including rolling, cumulative, and rank statistics * Apply automatic type conversions - i.e. get a "year" dimension for free from a "date" column * Save and share report specifications * Utilize ad hoc or public datasources, tables, and fields to enrich reports * Query your warehouse with natural language (NLP extension) * Leverage AI to bootstrap your warehouse configurations (NLP extension) ================================================ FILE: docs/markdown/readme_toc.md ================================================ **Table of Contents** --------------------- * [Installation](#installation) * [Primer](#primer) * [Metrics and Dimensions](#metrics-and-dimensions) * [Warehouse Theory](#warehouse-theory) * [Query Layers](#query-layers) * [Warehouse Creation](#warehouse-creation) * [Executing Reports](#executing-reports) * [Natural Language Querying](#natural-language-querying) * [Zillion Configuration](#zillion-configuration) * [Example - Sales Analytics](#example-sales-analytics) * [Warehouse Configuration](#example-warehouse-config) * [Reports](#example-reports) * [Advanced Topics](#advanced-topics) * [Subreports](#subreports) * [FormulaMetrics](#formula-metrics) * [Divisor Metrics](#divisor-metrics) * [Aggregation Variants](#aggregation-variants) * [FormulaDimensions](#formula-dimensions) * [DataSource Formulas](#datasource-formulas) * [Type Conversions](#type-conversions) * [AdHocMetrics](#adhoc-metrics) * [AdHocDimensions](#adhoc-dimensions) * [AdHocDataTables](#adhoc-data-tables) * [Technicals](#technicals) * [Config Variables](#config-variables) * [DataSource Priority](#datasource-priority) * [Supported DataSources](#supported-datasources) * [Multiprocess Considerations](#multiprocess-considerations) * [Demo UI / Web API](#demo-ui) * [Docs](#documentation) * [How to Contribute](#how-to-contribute) ================================================ FILE: docs/mkdocs/api.md ================================================ # API Reference * [zillion.configs](zillion.configs.md) * [zillion.core](zillion.core.md) * [zillion.datasource](zillion.datasource.md) * [zillion.dialects](zillion.dialects.md) * [zillion.field](zillion.field.md) * [zillion.model](zillion.model.md) * [zillion.nlp](zillion.nlp.md) * [zillion.report](zillion.report.md) * [zillion.scripts](zillion.scripts.md) * [zillion.sql_utils](zillion.sql_utils.md) * [zillion.version](zillion.version.md) * [zillion.warehouse](zillion.warehouse.md) ================================================ FILE: docs/mkdocs/contributing.md ================================================ Your help and feedback are greatly appreciated. Whether it's supporting/testing a new datasource type, finding bugs, or suggesting features, every little bit helps make `Zillion` reach its potential. Please also consider manicuring or configuring datasets that others may find useful. With as little as a CSV and a short JSON configuration file you can give back to the community. You can host these shared datasources easily with GitHub. ## **How to Contribute** 1. Check for open issues or open a new issue to start a discussion around a feature idea or a bug. 2. Fork [the repository](https://github.com/totalhack/zillion) on GitHub to start making your changes to the **master** branch (or branch off of it). 3. Write a test which shows that the bug was fixed or that the feature works as expected. 4. Send a [pull request](https://help.github.com/en/articles/creating-a-pull-request-from-a-fork). Add yourself to [AUTHORS](https://github.com/totalhack/zillion/blob/master/AUTHORS.md). ## **Development Setup** ```shell # Clone this repo git clone https://github.com/totalhack/zillion.git cd zillion # Install dependencies # Note: activate your venv first if desired! pip install ".[dev]" # Bring up test databases -- test data will init the first time # You can optionally run these DBs directly on your machine instead docker-compose up # Run tests export ZILLION_CONFIG=$(pwd)/tests/test_config.yaml cd tests pytest ``` ## **Good Bug Reports** Please be aware of the following things when filing bug reports: 1. Avoid raising duplicate issues. *Please* use the GitHub issue search feature to check whether your bug report or feature request has been mentioned in the past. Duplicate bug reports and feature requests are a huge maintenance burden on the limited resources of the project. If it is clear from your report that you would have struggled to find the original, that's ok, but if searching for a selection of words in your issue title would have found the duplicate then the issue will likely be closed. 2. When filing bug reports about exceptions or tracebacks, please include the *complete* traceback. Partial tracebacks, or just the exception text, are not helpful. Issues that do not contain complete tracebacks may be closed without warning. 3. Make sure you provide a suitable amount of information to work with. ## **Questions** The GitHub issue tracker is for *bug reports* and *feature requests*. Please do not use it to ask questions about how to use Zillion. ================================================ FILE: docs/mkdocs/css/extra.css ================================================ pre { color: white !important; } .md-clipboard:before { color: rgb(255, 255, 255); } .codehilite:hover .md-clipboard:before,.md-typeset .highlight:hover .md-clipboard:before,pre:hover .md-clipboard:before { color: rgba(255, 255, 255, 0.54) !important } .md-typeset code { font-size: 0.87em; } .md-typeset pre > code { background-color: transparent; color: #cccccc; } .md-typeset p > code { color: black; } .md-typeset li > code { color: black; } /* mkautodoc */ div.autodoc-docstring { padding-left: 20px; margin-bottom: 30px; border-left: 5px solid rgba(230, 230, 230); } div.autodoc-members { padding-left: 20px; margin-bottom: 15px; } div.autodoc-signature { color: black; } .autodoc-signature code { color: black; } .autodoc-param { font-size: 0.95em; } ================================================ FILE: docs/mkdocs/index.md ================================================ [![Generic badge](https://img.shields.io/badge/Status-Alpha-yellow.svg)](https://shields.io/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![License: MIT](https://img.shields.io/badge/license-MIT-blue) ![Python 3.6+](https://img.shields.io/badge/python-3.6%2B-blue) [![Downloads](https://static.pepy.tech/badge/zillion)](https://pepy.tech/project/zillion) **Introduction** ---------------- `Zillion` is a data modeling and analytics tool that allows combining and analyzing data from multiple datasources through a simple API. It acts as a semantic layer on top of your data, writes SQL so you don't have to, and easily bolts onto existing database infrastructure via SQLAlchemy Core. The `Zillion` NLP extension has experimental support for AI-powered natural language querying and warehouse configuration. With `Zillion` you can: * Define a warehouse that contains a variety of SQL and/or file-like datasources * Define or reflect metrics, dimensions, and relationships in your data * Run multi-datasource reports and combine the results in a DataFrame * Flexibly aggregate your data with multi-level rollups and table pivots * Customize or combine fields with formulas * Apply technical transformations including rolling, cumulative, and rank statistics * Apply automatic type conversions - i.e. get a "year" dimension for free from a "date" column * Save and share report specifications * Utilize ad hoc or public datasources, tables, and fields to enrich reports * Query your warehouse with natural language (NLP extension) * Leverage AI to bootstrap your warehouse configurations (NLP extension) --- **Installation** ---------------- > **Warning**: This project is in an alpha state and is subject to change. Please test carefully for production usage and report any issues. ```shell $ pip install zillion or $ pip install zillion[nlp] ``` --- **Primer** ---------- The following is meant to give a quick overview of some theory and nomenclature used in data warehousing with `Zillion` which will be useful if you are newer to this area. You can also skip below for a usage [example](#example-sales-analytics) or warehouse/datasource creation [quickstart](#warehouse-creation) options. In short: `Zillion` writes SQL for you and makes data accessible through a very simple API: ```python result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "=", "Partner A") ] ) ``` ### **Metrics and Dimensions** In `Zillion` there are two main types of `Fields` that will be used in your report requests: 1. `Dimensions`: attributes of data used for labelling, grouping, and filtering 2. `Metrics`: facts and measures that may be broken down along dimensions A `Field` encapsulates the concept of a column in your data. For example, you may have a `Field` called "revenue". That `Field` may occur across several datasources or possibly in multiple tables within a single datasource. `Zillion` understands that all of those columns represent the same concept, and it can try to use any of them to satisfy reports requesting "revenue". Likewise there are two main types of tables used to structure your warehouse: 1. `Dimension Tables`: reference/attribute tables containing only related dimensions 2. `Metric Tables`: fact tables that may contain metrics and some related dimensions/attributes Dimension tables are often static or slowly growing in terms of row count and contain attributes tied to a primary key. Some common examples would be lists of US Zip Codes or company/partner directories. Metric tables are generally more transactional in nature. Some common examples would be records for web requests, ecommerce sales, or stock market price history. ### **Warehouse Theory** If you really want to go deep on dimensional modeling and the drill-across querying technique `Zillion` employs, I recommend reading Ralph Kimball's [book](https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/books/data-warehouse-dw-toolkit/) on data warehousing. To summarize, [drill-across querying](https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/drilling-across/) forms one or more queries to satisfy a report request for `metrics` that may exist across multiple datasources and/or tables at a particular `dimension` grain. `Zillion` supports flexible warehouse setups such as [snowflake](https://en.wikipedia.org/wiki/Snowflake_schema) or [star](https://en.wikipedia.org/wiki/Star_schema) schemas, though it isn't picky about it. You can specify table relationships through a parent-child lineage, and `Zillion` can also infer acceptable joins based on the presence of dimension table primary keys. `Zillion` does not support many-to-many relationships at this time, though most analytics-focused scenarios should be able to work around that by adding views to the model if needed. ### **Query Layers** `Zillion` reports can be thought of as running in two layers: 1. `DataSource Layer`: SQL queries against the warehouse's datasources 2. `Combined Layer`: A final SQL query against the combined data from the DataSource Layer The Combined Layer is just another SQL database (in-memory SQLite by default) that is used to tie the datasource data together and apply a few additional features such as rollups, row filters, row limits, sorting, pivots, and technical computations. ### **Warehouse Creation** There are multiple ways to quickly initialize a warehouse from a local or remote file: ```python # Path/link to a CSV, XLSX, XLS, JSON, HTML, or Google Sheet # This builds a single-table Warehouse for quick/ad-hoc analysis. url = "https://raw.githubusercontent.com/totalhack/zillion/master/tests/dma_zip.xlsx" wh = Warehouse.from_data_file(url, ["Zip_Code"]) # Second arg is primary key # Path/link to a sqlite database # This can build a single or multi-table Warehouse url = "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true" wh = Warehouse.from_db_file(url) # Path/link to a WarehouseConfigSchema (or pass a dict) # This is the recommended production approach! config = "https://raw.githubusercontent.com/totalhack/zillion/master/examples/example_wh_config.json" wh = Warehouse(config=config) ``` Zillion also provides a helper script to boostrap a DataSource configuration file for an existing database. See `zillion.scripts.bootstrap_datasource_config.py`. The bootstrap script requires a connection/database url and output file as arguments. See `--help` output for more options, including the optional `--nlp` flag that leverages OpenAI to infer configuration information such as column types, table types, and table relationships. The NLP feature requires the NLP extension to be installed as well as the following set in your `Zillion` config file: * OPENAI_MODEL * OPENAI_API_KEY ### **Executing Reports** The main purpose of `Zillion` is to execute reports against a `Warehouse`. At a high level you will be crafting reports as follows: ```python result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "=", "Partner A") ] ) print(result.df) # Pandas DataFrame ``` When comparing to writing SQL, it's helpful to think of the dimensions as the target columns of a **group by** SQL statement. Think of the metrics as the columns you are **aggregating**. Think of the criteria as the **where clause**. Your criteria are applied in the DataSource Layer SQL queries. The `ReportResult` has a Pandas DataFrame with the dimensions as the index and the metrics as the columns. A `Report` is said to have a `grain`, which defines the dimensions each metric must be able to join to in order to satisfy the `Report` requirements. The `grain` is a combination of **all** dimensions, including those referenced in criteria or in metric formulas. In the example above, the `grain` would be `{date, partner}`. Both "revenue" and "leads" must be able to join to those dimensions for this report to be possible. These concepts can take time to sink in and obviously vary with the specifics of your data model, but you will become more familiar with them as you start putting together reports against your data warehouses. ### **Natural Language Querying** With the NLP extension `Zillion` has experimental support for natural language querying of your data warehouse. For example: ```python result = warehouse.execute_text("revenue and leads by date last month") print(result.df) # Pandas DataFrame ``` This NLP feature requires a running instance of Qdrant (vector database) and the following values set in your `Zillion` config file: * QDRANT_HOST * OPENAI_API_KEY Embeddings will be produced and stored in both Qdrant and a local cache. The vector database will be initialized the first time you try to use this by analyzing all fields in your warehouse. An example docker file to run Qdrant is provided in the root of this repo. You have some control over how fields get embedded. Namely in the configuration for any field you can choose whether to exclude a field from embeddings or override which embeddings map to that field. All fields are included by default. The following example would exclude the `net_revenue` field from being embedded and map `revenue` metric requests to the `gross_revenue` field. ```javascript { "name": "gross_revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "meta": { "nlp": { // enabled defaults to true "embedding_text": "revenue" // str or list of str } } }, { "name": "net_revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "meta": { "nlp": { "enabled": false } } }, ``` Additionally you may also exclude fields via the following warehouse-level configuration settings: ```javascript { "meta": { "nlp": { "field_disabled_patterns": [ // list of regex patterns to exclude "rpl_ma_5" ], "field_disabled_groups": [ // list of "groups" to exclude, assuming you have // set group value in the field's meta dict. "No NLP" ] } }, ... } ``` If a field is disabled at any of the aforementioned levels it will be ignored. This type of control becomes useful as your data model gets more complex and you want to guide the NLP logic in cases where it could confuse similarly named fields. Any time you adjust which fields are excluded you will want to force recreation of your embeddings collection using the `force_recreate` flag on `Warehouse.init_embeddings`. > *Note:* This feature is in its infancy. It's usefulness will depend on the quality of both the input query and your data model (i.e. good field names)! ### **Zillion Configuration** In addition to configuring the structure of your `Warehouse`, which will be discussed further below, `Zillion` has a global configuration to control some basic settings. The `ZILLION_CONFIG` environment var can point to a yaml config file. See `examples/sample_config.yaml` for more details on what values can be set. Environment vars prefixed with ZILLION_ can override config settings (i.e. ZILLION_DB_URL will override DB_URL). The database used to store Zillion report specs can be configured by setting the DB_URL value in your `Zillion` config to a valid database connection string. By default a SQLite DB in /tmp is used. --- **Example - Sales Analytics** ----------------------------- Below we will walk through a simple hypothetical sales data model that demonstrates basic `DataSource` and `Warehouse` configuration and then shows some sample [reports](#example-reports). The data is a simple SQLite database that is part of the `Zillion` test code. For reference, the schema is as follows: ```sql CREATE TABLE partners ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE campaigns ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL UNIQUE, category VARCHAR NOT NULL, partner_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE leads ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL, campaign_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE sales ( id INTEGER PRIMARY KEY, item VARCHAR NOT NULL, quantity INTEGER NOT NULL, revenue DECIMAL(10, 2), lead_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` ### **Warehouse Configuration** A `Warehouse` may be created from a JSON or YAML configuration that defines its fields, datasources, and tables. The code below shows how it can be done in as little as one line of code if you have a pointer to a JSON/YAML `Warehouse` config. ```python from zillion import Warehouse wh = Warehouse(config="https://raw.githubusercontent.com/totalhack/zillion/master/examples/example_wh_config.json") ``` This example config uses a `data_url` in its `DataSource` `connect` info that tells `Zillion` to dynamically download that data and connect to it as a SQLite database. This is useful for quick examples or analysis, though in most scenarios you would put a connection string to an existing database like you see [here](https://raw.githubusercontent.com/totalhack/zillion/master/tests/test_mysql_ds_config.json) The basics of `Zillion's` warehouse configuration structure are as follows: A `Warehouse` config has the following main sections: * `metrics`: optional list of metric configs for global metrics * `dimensions`: optional list of dimension configs for global dimensions * `datasources`: mapping of datasource names to datasource configs or config URLs A `DataSource` config has the following main sections: * `connect`: database connection url or dict of connect params * `metrics`: optional list of metric configs specific to this datasource * `dimensions`: optional list of dimension configs specific to this datasource * `tables`: mapping of table names to table configs or config URLs > Tip: datasource and table configs may also be replaced with a URL that points to a local or remote config file. In this example all four tables in our database are included in the config, two as dimension tables and two as metric tables. The tables are linked through a parent->child relationship: partners to campaigns, and leads to sales. Some tables also utilize the `create_fields` flag to automatically create `Fields` on the datasource from column definitions. Other metrics and dimensions are defined explicitly. To view the structure of this `Warehouse` after init you can use the `print_info` method which shows all metrics, dimensions, tables, and columns that are part of your data warehouse: ```python wh.print_info() # Formatted print of the Warehouse structure ``` For a deeper dive of the config schema please see the full [docs](https://totalhack.github.io/zillion/zillion.configs/). ### **Reports** **Example:** Get sales, leads, and revenue by partner: ```python result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["partner_name"] ) print(result.df) """ sales leads revenue partner_name Partner A 11 4 165.0 Partner B 2 2 19.0 Partner C 5 1 118.5 """ ``` **Example:** Let's limit to Partner A and break down by its campaigns: ```python result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["campaign_name"], criteria=[("partner_name", "=", "Partner A")] ) print(result.df) """ sales leads revenue campaign_name Campaign 1A 5 2 83 Campaign 2A 6 2 82 """ ``` **Example:** The output below shows rollups at the campaign level within each partner, and also a rollup of totals at the partner and campaign level. > *Note:* the output contains a special character to mark DataFrame rollup rows that were added to the result. The [ReportResult](https://totalhack.github.io/zillion/zillion.report/#reportresult) object contains some helper attributes to automatically access or filter rollups, as well as a `df_display` attribute that returns the result with friendlier display values substituted for special characters. The under-the-hood special character is left here for illustration, but may not render the same in all scenarios. ```python from zillion import RollupTypes result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["partner_name", "campaign_name"], rollup=RollupTypes.ALL ) print(result.df) """ sales leads revenue partner_name campaign_name Partner A Campaign 1A 5.0 2.0 83.0 Campaign 2A 6.0 2.0 82.0 􏿿 11.0 4.0 165.0 Partner B Campaign 1B 1.0 1.0 6.0 Campaign 2B 1.0 1.0 13.0 􏿿 2.0 2.0 19.0 Partner C Campaign 1C 5.0 1.0 118.5 􏿿 5.0 1.0 118.5 􏿿 􏿿 18.0 7.0 302.5 """ ``` See the `Report` [docs](https://totalhack.github.io/zillion/zillion.report/#report) for more information on supported rollup behavior. **Example:** Save a report spec (not the data): First you must make sure you have saved your `Warehouse`, as saved reports are scoped to a particular `Warehouse` ID. To save a `Warehouse` you must provide a URL that points to the complete config. ```python name = "My Unique Warehouse Name" config_url = wh.save(name, config_url) # wh.id is populated after this spec_id = wh.save_report( metrics=["sales", "leads", "revenue"], dimensions=["partner_name"] ) ``` > *Note*: If you built your `Warehouse` in python from a list of `DataSources`, or passed in a `dict` for the `config` param on init, there currently is not a built-in way to output a complete config to a file for reference when saving. **Example:** Load and run a report from a spec ID: ```python result = wh.execute_id(spec_id) ``` This assumes you have saved this report ID previously in the database specified by the DB_URL in your `Zillion` yaml configuration. **Example:** Unsupported Grain If you attempt an impossible report, you will get an `UnsupportedGrainException`. The report below is impossible because it attempts to break down the leads metric by a dimension that only exists in a child table. Generally speaking, child tables can join back up to parents (and "siblings" of parents) to find dimensions, but not the other way around. ```python # Fails with UnsupportedGrainException result = wh.execute( metrics=["leads"], dimensions=["sale_id"] ) ``` --- **Advanced Topics** ------------------- ### **Subreports** Sometimes you need subquery-like functionality in order to filter one report to the results of some other (that perhaps required a different grain). Zillion provides a simplistic way of doing that by using the `in report` or `not in report` criteria operations. There are two supported ways to specify the subreport: passing a report spec ID or passing a dict of report params. ```python # Assuming you have saved report 1234 and it has "partner" as a dimension: result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "in report", 1234) ] ) # Or with a dict: result = warehouse.execute( metrics=["revenue", "leads"], dimensions=["date"], criteria=[ ("date", ">", "2020-01-01"), ("partner", "in report", dict( metrics=[...], dimension=["partner"], criteria=[...] )) ] ) ``` The criteria field used in `in report` or `not in report` must be a dimension in the subreport. Note that subreports are executed at `Report` object initialization time instead of during `execute` -- as such they can not be killed using `Report.kill`. This may change down the road. ### **Formula Metrics** In our example above our config included a formula-based metric called "rpl", which is simply `revenue / leads`. A `FormulaMetric` combines other metrics and/or dimensions to calculate a new metric at the Combined Layer of querying. The syntax must match your Combined Layer database, which is SQLite in our example. ```json { "name": "rpl", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}" } ``` ### **Divisor Metrics** As a convenience, rather than having to repeatedly define formula metrics for rate variants of a core metric, you can specify a divisor metric configuration on a non-formula metric. As an example, say you have a `revenue` metric and want to create variants for `revenue_per_lead` and `revenue_per_sale`. You can define your revenue metric as follows: ```json { "name": "revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "divisors": { "metrics": [ "leads", "sales" ] } } ``` See `zillion.configs.DivisorsConfigSchema` for more details on configuration options, such as overriding naming templates, formula templates, and rounding. ### **Aggregation Variants** Another minor convenience feature is the ability to automatically generate variants of metrics for different aggregation types in a single field configuration instead of across multiple fields in your config file. As an example, say you have a `sales` column in your data and want to create variants for `sales_mean` and `sales_sum`. You can define your metric as follows: ```json { "name": "sales", "aggregation": { "mean": { "type": "numeric(10,2)", "rounding": 2 }, "sum": { "type": "integer" } } } ``` The resulting warehouse would not have a `sales` metric, but would instead have `sales_mean` and `sales_sum`. Note that you can further customize the settings for the generated fields, such as setting a custom name, by specifying that in the nested settings for that aggregation type. In practice this is not a big efficiency gain over just defining the metrics separately, but some may prefer this approach. ### **Formula Dimensions** Experimental support exists for `FormulaDimension` fields as well. A `FormulaDimension` can only use other dimensions as part of its formula, and it also gets evaluated in the Combined Layer database. As an additional restriction, a `FormulaDimension` can not be used in report criteria as those filters are evaluated at the DataSource Layer. The following example assumes a SQLite Combined Layer database: ```json { "name": "partner_is_a", "formula": "{partner_name} = 'Partner A'" } ``` ### **DataSource Formulas** Our example also includes a metric "sales" whose value is calculated via formula at the DataSource Layer of querying. Note the following in the `fields` list for the "id" param in the "main.sales" table. These formulas are in the syntax of the particular `DataSource` database technology, which also happens to be SQLite in our example. ```json "fields": [ "sale_id", {"name":"sales", "ds_formula": "COUNT(DISTINCT sales.id)"} ] ``` ### **Type Conversions** Our example also automatically created a handful of dimensions from the "created_at" columns of the leads and sales tables. Support for automatic type conversions is limited, but for date/datetime columns in supported `DataSource` technologies you can get a variety of dimensions for free this way. The output of `wh.print_info` will show the added dimensions, which are prefixed with "lead_" or "sale_" as specified by the optional `type_conversion_prefix` in the config for each table. Some examples of auto-generated dimensions in our example warehouse include sale_hour, sale_day_name, sale_month, sale_year, etc. As an optimization in the where clause of underlying report queries, `Zillion` will try to apply conversions to criteria values instead of columns. For example, it is generally more efficient to query as `my_datetime > '2020-01-01' and my_datetime < '2020-01-02'` instead of `DATE(my_datetime) == '2020-01-01'`, because the latter can prevent index usage in many database technologies. The ability to apply conversions to values instead of columns varies by field and `DataSource` technology as well. To prevent type conversions, set `skip_conversion_fields` to `true` on your `DataSource` config. See `zillion.field.TYPE_ALLOWED_CONVERSIONS` and `zillion.field.DIALECT_CONVERSIONS` for more details on currently supported conversions. ### **Ad Hoc Metrics** You may also define metrics "ad hoc" with each report request. Below is an example that creates a revenue-per-lead metric on the fly. These only exist within the scope of the report, and the name can not conflict with any existing fields: ```python result = wh.execute( metrics=[ "leads", {"formula": "{revenue}/{leads}", "name": "my_rpl"} ], dimensions=["partner_name"] ) ``` ### **Ad Hoc Dimensions** You may also define dimensions "ad hoc" with each report request. Below is an example that creates a dimension that partitions on a particular dimension value on the fly. Ad Hoc Dimensions are a subclass of `FormulaDimension`s and therefore have the same restrictions, such as not being able to use a metric as a formula field. These only exist within the scope of the report, and the name can not conflict with any existing fields: ```python result = wh.execute( metrics=["leads"], dimensions=[{"name": "partner_is_a", "formula": "{partner_name} = 'Partner A'"] ) ``` ### **Ad Hoc Tables** `Zillion` also supports creation or syncing of ad hoc tables in your database during `DataSource` or `Warehouse` init. An example of a table config that does this is shown [here](https://github.com/totalhack/zillion/blob/master/tests/test_adhoc_ds_config.json). It uses the table config's `data_url` and `if_exists` params to control the syncing and/or creation of the "main.dma_zip" table from a remote CSV in a SQLite database. The same can be done in other database types too. The potential performance drawbacks to such an approach should be obvious, particularly if you are initializing your warehouse often or if the remote data file is large. It is often better to sync and create your data ahead of time so you have complete schema control, but this method can be very useful in certain scenarios. > **Warning**: be careful not to overwrite existing tables in your database! ### **Technicals** There are a variety of technical computations that can be applied to metrics to compute rolling, cumulative, or rank statistics. For example, to compute a 5-point moving average on revenue one might define a new metric as follows: ```json { "name": "revenue_ma_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "mean(5)" } ``` Technical computations are computed at the Combined Layer, whereas the "aggregation" is done at the DataSource Layer (hence needing to define both above). For more info on how shorthand technical strings are parsed, see the [parse_technical_string](https://totalhack.github.io/zillion/zillion.configs/#parse_technical_string) code. For a full list of supported technical types see `zillion.core.TechnicalTypes`. Technicals also support two modes: "group" and "all". The mode controls how to apply the technical computation across the data's dimensions. In "group" mode, it computes the technical across the last dimension, whereas in "all" mode in computes the technical across all data without any regard for dimensions. The point of this becomes more clear if you try to do a "cumsum" technical across data broken down by something like ["partner_name", "date"]. If "group" mode is used (the default in most cases) it will do cumulative sums *within* each partner over the date ranges. If "all" mode is used, it will do a cumulative sum across every data row. You can be explicit about the mode by appending it to the technical string: i.e. "cumsum:all" or "mean(5):group" --- ### **Config Variables** If you'd like to avoid putting sensitive connection information directly in your `DataSource` configs you can leverage config variables. In your `Zillion` yaml config you can specify a `DATASOURCE_CONTEXTS` section as follows: ```yaml DATASOURCE_CONTEXTS: my_ds_name: user: user123 pass: goodpassword host: 127.0.0.1 schema: reporting ``` Then when your `DataSource` config for the datasource named "my_ds_name" is read, it can use this context to populate variables in your connection url: ```json "datasources": { "my_ds_name": { "connect": "mysql+pymysql://{user}:{pass}@{host}/{schema}" ... } } ``` ### **DataSource Priority** On `Warehouse` init you can specify a default priority order for datasources by name. This will come into play when a report could be satisfied by multiple datasources. `DataSources` earlier in the list will be higher priority. This would be useful if you wanted to favor a set of faster, aggregate tables that are grouped in a `DataSource`. ```python wh = Warehouse(config=config, ds_priority=["aggr_ds", "raw_ds", ...]) ``` **Supported DataSources** ------------------------- `Zillion's` goal is to support any database technology that SQLAlchemy supports (pictured below). That said the support and testing levels in `Zillion` vary at the moment. In particular, the ability to do type conversions, database reflection, and kill running queries all require some database-specific code for support. The following list summarizes known support levels. Your mileage may vary with untested database technologies that SQLAlchemy supports (it might work just fine, just hasn't been tested yet). Please report bugs and help add more support! * SQLite: supported * MySQL: supported * PostgreSQL: supported * DuckDB: supported * BigQuery, Redshift, Snowflake, SingleStore, PlanetScale, etc: not tested but would like to support these SQLAlchemy has connectors to many popular databases. The barrier to support many of these is likely pretty low given the simple nature of the sql operations `Zillion` uses. ![SQLAlchemy Connectors](https://github.com/totalhack/zillion/blob/master/docs/images/sqlalchemy_connectors.webp?raw=true) Note that the above is different than the database support for the Combined Layer database. Currently only SQLite is supported there; that should be sufficient for most use cases but more options will be added down the road. **Multiprocess Considerations** ------------------------------- If you plan to run `Zillion` in a multiprocess scenario, whether on a single node or across multiple nodes, there are a couple of things to consider: * SQLite DataSources do not scale well and may run into locking issues with multiple processes trying to access them on the same node. * Any file-based database technology that isn't centrally accessible would be challenging when using multiple nodes. * Ad Hoc DataSource and Ad Hoc Table downloads should be avoided as they may conflict/repeat across each process. Offload this to an external ETL process that is better suited to manage those data flows in a scalable production scenario. Note that you can still use the default SQLite in-memory Combined Layer DB without issues, as that is made on the fly with each report request and requires no coordination/communication with other processes or nodes. **Demo UI / Web API** -------------------- [Zillion Web UI](https://github.com/totalhack/zillion-web) is a demo UI and web API for Zillion that also includes an experimental ChatGPT plugin. See the README there for more info on installation and project structure. Please note that the code is light on testing and polish, but is expected to work in modern browsers. Also ChatGPT plugins are quite slow at the moment, so currently that is mostly for fun and not that useful. ================================================ FILE: docs/mkdocs/zillion.configs.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.configs ## [AdHocFieldSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L982-L985) *Bases*: zillion.configs.FormulaFieldConfigSchema ::: zillion.configs.AdHocFieldSchema :docstring: ## [AdHocMetricSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L988-L1015) *Bases*: zillion.configs.AdHocFieldSchema ::: zillion.configs.AdHocMetricSchema :docstring: ## [BaseSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L541-L556) *Bases*: marshmallow.schema.Schema ::: zillion.configs.BaseSchema :docstring: ## [BollingerTechnical](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1609-L1637) *Bases*: zillion.configs.RollingTechnical ::: zillion.configs.BollingerTechnical :docstring: :members: apply get_default_mode parse_technical_string_params ## [ColumnConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L648-L651) *Bases*: zillion.configs.ColumnInfoSchema ::: zillion.configs.ColumnConfigSchema :docstring: ## [ColumnFieldConfigField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L610-L615) *Bases*: marshmallow.fields.Field ::: zillion.configs.ColumnFieldConfigField :docstring: ## [ColumnFieldConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L594-L607) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.ColumnFieldConfigSchema :docstring: ## [ColumnInfo](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1324-L1410) *Bases*: zillion.configs.ZillionInfo, tlbx.logging_utils.PrintMixin ::: zillion.configs.ColumnInfo :docstring: :members: add_field create field_ds_formula get_criteria_conversion get_field get_field_names get_fields has_field has_field_ds_formula schema_load schema_validate ## [ColumnInfoSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L618-L645) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.ColumnInfoSchema :docstring: ## [ConfigMixin](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1228-L1245) ::: zillion.configs.ConfigMixin :docstring: :members: from_config to_config ## [DataSourceConfigField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1124-L1130) *Bases*: marshmallow.fields.Field ::: zillion.configs.DataSourceConfigField :docstring: ## [DataSourceConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1069-L1121) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.DataSourceConfigSchema :docstring: ## [DataSourceConnectField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1036-L1041) *Bases*: marshmallow.fields.Field ::: zillion.configs.DataSourceConnectField :docstring: ## [DataSourceConnectSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1026-L1033) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.DataSourceConnectSchema :docstring: ## [DataSourceCriteriaConversionsField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L575-L583) *Bases*: marshmallow.fields.Field ::: zillion.configs.DataSourceCriteriaConversionsField :docstring: ## [DiffTechnical](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1561-L1576) *Bases*: zillion.configs.PandasTechnical ::: zillion.configs.DiffTechnical :docstring: :members: apply get_default_mode parse_technical_string_params ## [DimensionConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L968-L971) *Bases*: zillion.configs.FieldConfigSchema, zillion.configs.DimensionConfigSchemaMixin ::: zillion.configs.DimensionConfigSchema :docstring: ## [DimensionConfigSchemaMixin](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L945-L965) ::: zillion.configs.DimensionConfigSchemaMixin :docstring: ## [DimensionValuesField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L586-L591) *Bases*: marshmallow.fields.Field ::: zillion.configs.DimensionValuesField :docstring: ## [DivisorsConfigField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L914-L919) *Bases*: marshmallow.fields.Field ::: zillion.configs.DivisorsConfigField :docstring: ## [DivisorsConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L892-L911) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.DivisorsConfigSchema :docstring: ## [FieldConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L796-L819) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.FieldConfigSchema :docstring: ## [FieldMetaNLPConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L765-L779) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.FieldMetaNLPConfigSchema :docstring: ## [FormulaDimensionConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L974-L979) *Bases*: zillion.configs.FormulaFieldConfigSchema, zillion.configs.DimensionConfigSchemaMixin ::: zillion.configs.FormulaDimensionConfigSchema :docstring: ## [FormulaFieldConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L822-L847) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.FormulaFieldConfigSchema :docstring: ## [FormulaMetricConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L939-L942) *Bases*: zillion.configs.FormulaFieldConfigSchema, zillion.configs.MetricConfigSchemaMixin ::: zillion.configs.FormulaMetricConfigSchema :docstring: ## [MetricConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L922-L936) *Bases*: zillion.configs.FieldConfigSchema, zillion.configs.MetricConfigSchemaMixin ::: zillion.configs.MetricConfigSchema :docstring: ## [MetricConfigSchemaMixin](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L850-L889) ::: zillion.configs.MetricConfigSchemaMixin :docstring: ## [NLPEmbeddingTextField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L757-L762) *Bases*: marshmallow.fields.Field ::: zillion.configs.NLPEmbeddingTextField :docstring: ## [PandasTechnical](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1530-L1542) *Bases*: zillion.configs.Technical ::: zillion.configs.PandasTechnical :docstring: :members: apply get_default_mode parse_technical_string_params ## [PolyNested](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L520-L538) *Bases*: marshmallow.fields.Nested ::: zillion.configs.PolyNested :docstring: ## [RankTechnical](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1545-L1558) *Bases*: zillion.configs.PandasTechnical ::: zillion.configs.RankTechnical :docstring: :members: apply get_default_mode parse_technical_string_params ## [RollingTechnical](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1579-L1606) *Bases*: zillion.configs.Technical ::: zillion.configs.RollingTechnical :docstring: :members: apply get_default_mode parse_technical_string_params ## [TableConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L715-L754) *Bases*: zillion.configs.TableInfoSchema ::: zillion.configs.TableConfigSchema :docstring: ## [TableInfo](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1316-L1321) *Bases*: zillion.configs.ZillionInfo, tlbx.logging_utils.PrintMixin ::: zillion.configs.TableInfo :docstring: :members: create schema_load schema_validate ## [TableInfoSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L662-L712) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.TableInfoSchema :docstring: ## [TableNameField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1018-L1023) *Bases*: marshmallow.fields.String ::: zillion.configs.TableNameField :docstring: ## [TableTypeField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L654-L659) *Bases*: marshmallow.fields.Field ::: zillion.configs.TableTypeField :docstring: ## [Technical](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1416-L1527) *Bases*: tlbx.object_utils.MappingMixin, tlbx.logging_utils.PrintMixin ::: zillion.configs.Technical :docstring: :members: apply get_default_mode parse_technical_string_params ## [TechnicalField](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L567-L572) *Bases*: marshmallow.fields.Field ::: zillion.configs.TechnicalField :docstring: ## [TechnicalInfoSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L559-L564) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.TechnicalInfoSchema :docstring: ## [WarehouseConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1154-L1225) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.WarehouseConfigSchema :docstring: ## [WarehouseMetaNLPConfigSchema](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1133-L1151) *Bases*: zillion.configs.BaseSchema ::: zillion.configs.WarehouseMetaNLPConfigSchema :docstring: ## [ZillionInfo](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1248-L1313) *Bases*: tlbx.object_utils.MappingMixin ::: zillion.configs.ZillionInfo :docstring: :members: create schema_load schema_validate ## [check_field_meta_nlp_config](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L782-L793) ::: zillion.configs.check_field_meta_nlp_config :docstring: ## [check_metric_configs](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1044-L1066) ::: zillion.configs.check_metric_configs :docstring: ## [create_technical](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1721-L1745) ::: zillion.configs.create_technical :docstring: ## [default_field_display_name](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L217-L231) ::: zillion.configs.default_field_display_name :docstring: ## [default_field_name](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L201-L214) ::: zillion.configs.default_field_name :docstring: ## [field_safe_name](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L182-L198) ::: zillion.configs.field_safe_name :docstring: ## [get_aggregation_metrics](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L503-L516) ::: zillion.configs.get_aggregation_metrics :docstring: ## [get_divisor_metrics](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L457-L500) ::: zillion.configs.get_divisor_metrics :docstring: ## [has_valid_sqlalchemy_type_values](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L300-L307) ::: zillion.configs.has_valid_sqlalchemy_type_values :docstring: ## [is_active](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L234-L240) ::: zillion.configs.is_active :docstring: ## [is_valid_aggregation](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L310-L319) ::: zillion.configs.is_valid_aggregation :docstring: ## [is_valid_column_field_config](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L322-L330) ::: zillion.configs.is_valid_column_field_config :docstring: ## [is_valid_connect_type](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L408-L416) ::: zillion.configs.is_valid_connect_type :docstring: ## [is_valid_datasource_config](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L430-L436) ::: zillion.configs.is_valid_datasource_config :docstring: ## [is_valid_datasource_connect](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L419-L427) ::: zillion.configs.is_valid_datasource_connect :docstring: ## [is_valid_datasource_criteria_conversions](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L365-L405) ::: zillion.configs.is_valid_datasource_criteria_conversions :docstring: ## [is_valid_dimension_values](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L356-L362) ::: zillion.configs.is_valid_dimension_values :docstring: ## [is_valid_divisors_config](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L448-L454) ::: zillion.configs.is_valid_divisors_config :docstring: ## [is_valid_field_display_name](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L278-L287) ::: zillion.configs.is_valid_field_display_name :docstring: ## [is_valid_field_name](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L264-L275) ::: zillion.configs.is_valid_field_name :docstring: ## [is_valid_field_nlp_embedding_text_config](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L439-L445) ::: zillion.configs.is_valid_field_nlp_embedding_text_config :docstring: ## [is_valid_if_exists](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L257-L261) ::: zillion.configs.is_valid_if_exists :docstring: ## [is_valid_sqlalchemy_type](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L290-L297) ::: zillion.configs.is_valid_sqlalchemy_type :docstring: ## [is_valid_table_name](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L250-L254) ::: zillion.configs.is_valid_table_name :docstring: ## [is_valid_table_type](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L243-L247) ::: zillion.configs.is_valid_table_type :docstring: ## [is_valid_technical](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L347-L353) ::: zillion.configs.is_valid_technical :docstring: ## [is_valid_technical_mode](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L340-L344) ::: zillion.configs.is_valid_technical_mode :docstring: ## [is_valid_technical_type](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L333-L337) ::: zillion.configs.is_valid_technical_type :docstring: ## [load_datasource_config](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L137-L153) ::: zillion.configs.load_datasource_config :docstring: ## [load_datasource_config_from_env](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L156-L160) ::: zillion.configs.load_datasource_config_from_env :docstring: ## [load_warehouse_config](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L111-L127) ::: zillion.configs.load_warehouse_config :docstring: ## [load_warehouse_config_from_env](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L130-L134) ::: zillion.configs.load_warehouse_config_from_env :docstring: ## [parse_schema_file](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L86-L108) ::: zillion.configs.parse_schema_file :docstring: ## [parse_technical_string](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L1690-L1718) ::: zillion.configs.parse_technical_string :docstring: ## [table_safe_name](https://github.com/totalhack/zillion/blob/master/zillion/configs.py#L163-L179) ::: zillion.configs.table_safe_name :docstring: ================================================ FILE: docs/mkdocs/zillion.core.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.core ## [AggregationTypes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L162-L171) ::: zillion.core.AggregationTypes :docstring: ## [DataSourceQueryModes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L223-L227) ::: zillion.core.DataSourceQueryModes :docstring: ## [ExecutionState](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L230-L235) ::: zillion.core.ExecutionState :docstring: ## [FieldTypes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L148-L152) ::: zillion.core.FieldTypes :docstring: ## [IfExistsModes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L238-L248) ::: zillion.core.IfExistsModes :docstring: ## [IfFileExistsModes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L251-L258) *Bases*: zillion.core.IfExistsModes ::: zillion.core.IfFileExistsModes :docstring: ## [OrderByTypes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L216-L220) ::: zillion.core.OrderByTypes :docstring: ## [RollupTypes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L209-L213) ::: zillion.core.RollupTypes :docstring: ## [TableTypes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L155-L159) ::: zillion.core.TableTypes :docstring: ## [TechnicalModes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L194-L206) ::: zillion.core.TechnicalModes :docstring: ## [TechnicalTypes](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L174-L191) ::: zillion.core.TechnicalTypes :docstring: ## [dbg](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L507-L511) ::: zillion.core.dbg :docstring: ## [dbgsql](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L514-L518) ::: zillion.core.dbgsql :docstring: ## [dictmerge](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L380-L407) ::: zillion.core.dictmerge :docstring: ## [download_file](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L310-L320) ::: zillion.core.download_file :docstring: ## [error](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L535-L539) ::: zillion.core.error :docstring: ## [get_modified_time](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L323-L325) ::: zillion.core.get_modified_time :docstring: ## [get_time_since_modified](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L328-L330) ::: zillion.core.get_time_since_modified :docstring: ## [get_zillion_config_log_level](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L477-L478) ::: zillion.core.get_zillion_config_log_level :docstring: ## [igetattr](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L284-L291) ::: zillion.core.igetattr :docstring: ## [info](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L521-L525) ::: zillion.core.info :docstring: ## [load_json_or_yaml_from_str](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L340-L377) ::: zillion.core.load_json_or_yaml_from_str :docstring: ## [load_yaml](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L333-L337) ::: zillion.core.load_yaml :docstring: ## [load_zillion_config](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L410-L471) ::: zillion.core.load_zillion_config :docstring: ## [powerset](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L264-L269) ::: zillion.core.powerset :docstring: ## [raiseif](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L272-L275) ::: zillion.core.raiseif :docstring: ## [raiseifnot](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L278-L281) ::: zillion.core.raiseifnot :docstring: ## [read_filepath_or_buffer](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L294-L307) ::: zillion.core.read_filepath_or_buffer :docstring: ## [set_log_level](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L501-L504) ::: zillion.core.set_log_level :docstring: ## [set_log_level_from_config](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L484-L495) ::: zillion.core.set_log_level_from_config :docstring: ## [warn](https://github.com/totalhack/zillion/blob/master/zillion/core.py#L528-L532) ::: zillion.core.warn :docstring: ================================================ FILE: docs/mkdocs/zillion.datasource.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.datasource ## [AdHocDataTable](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L1652-L1870) *Bases*: tlbx.logging_utils.PrintMixin ::: zillion.datasource.AdHocDataTable :docstring: :members: get_dataframe table_exists to_sql ## [CSVDataTable](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L1889-L1899) *Bases*: zillion.datasource.AdHocDataTable ::: zillion.datasource.CSVDataTable :docstring: :members: get_dataframe table_exists to_sql ## [DataSource](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L494-L1649) *Bases*: zillion.field.FieldManagerMixin, tlbx.logging_utils.PrintMixin ::: zillion.datasource.DataSource :docstring: :members: add_dimension add_metric apply_config directly_has_dimension directly_has_field directly_has_metric find_descendent_tables find_neighbor_tables find_possible_table_sets from_data_file from_datatables from_db_file get_child_field_managers get_columns_with_field get_dialect_name get_dim_tables_with_dim get_dimension get_dimension_configs get_dimension_names get_dimensions get_direct_dimension_configs get_direct_dimensions get_direct_fields get_direct_metric_configs get_direct_metrics get_field get_field_instances get_field_managers get_field_names get_fields get_metric get_metric_configs get_metric_names get_metric_tables_with_metric get_metrics get_params get_possible_joins get_table get_tables_with_field has_dimension has_field has_metric has_table print_dimensions print_info print_metrics ## [ExcelDataTable](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L1902-L1914) *Bases*: zillion.datasource.AdHocDataTable ::: zillion.datasource.ExcelDataTable :docstring: :members: get_dataframe table_exists to_sql ## [GoogleSheetsDataTable](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L1944-L1966) *Bases*: zillion.datasource.AdHocDataTable ::: zillion.datasource.GoogleSheetsDataTable :docstring: :members: get_dataframe table_exists to_sql ## [HTMLDataTable](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L1928-L1941) *Bases*: zillion.datasource.AdHocDataTable ::: zillion.datasource.HTMLDataTable :docstring: :members: get_dataframe table_exists to_sql ## [JSONDataTable](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L1917-L1925) *Bases*: zillion.datasource.AdHocDataTable ::: zillion.datasource.JSONDataTable :docstring: :members: get_dataframe table_exists to_sql ## [Join](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L341-L451) *Bases*: tlbx.logging_utils.PrintMixin ::: zillion.datasource.Join :docstring: :members: add_field add_fields add_join_part_tables combine get_covered_fields join_fields_for_table join_parts_for_table ## [JoinPart](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L331-L338) *Bases*: tlbx.logging_utils.PrintMixin ::: zillion.datasource.JoinPart :docstring: ## [NeighborTable](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L484-L491) *Bases*: tlbx.logging_utils.PrintMixin ::: zillion.datasource.NeighborTable :docstring: ## [SQLiteDataTable](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L1873-L1886) *Bases*: zillion.datasource.AdHocDataTable ::: zillion.datasource.SQLiteDataTable :docstring: :members: get_dataframe table_exists to_sql ## [TableSet](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L280-L328) *Bases*: tlbx.logging_utils.PrintMixin ::: zillion.datasource.TableSet :docstring: :members: get_covered_fields get_covered_metrics ## [connect_url_to_metadata](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L88-L101) ::: zillion.datasource.connect_url_to_metadata :docstring: ## [data_url_to_metadata](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L132-L166) ::: zillion.datasource.data_url_to_metadata :docstring: ## [datatable_from_config](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L1969-L2015) ::: zillion.datasource.datatable_from_config :docstring: ## [entity_name_from_file](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L56-L57) ::: zillion.datasource.entity_name_from_file :docstring: ## [get_adhoc_datasource_filename](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L219-L222) ::: zillion.datasource.get_adhoc_datasource_filename :docstring: ## [get_adhoc_datasource_url](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L225-L227) ::: zillion.datasource.get_adhoc_datasource_url :docstring: ## [get_ds_config_context](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L60-L62) ::: zillion.datasource.get_ds_config_context :docstring: ## [get_engine_extra_kwargs](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L73-L85) ::: zillion.datasource.get_engine_extra_kwargs :docstring: ## [join_from_path](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L454-L481) ::: zillion.datasource.join_from_path :docstring: ## [metadata_from_connect](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L169-L189) ::: zillion.datasource.metadata_from_connect :docstring: ## [parse_replace_after](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L104-L129) ::: zillion.datasource.parse_replace_after :docstring: ## [populate_url_context](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L65-L70) ::: zillion.datasource.populate_url_context :docstring: ## [reflect_metadata](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L192-L216) ::: zillion.datasource.reflect_metadata :docstring: ## [url_connect](https://github.com/totalhack/zillion/blob/master/zillion/datasource.py#L230-L277) ::: zillion.datasource.url_connect :docstring: ================================================ FILE: docs/mkdocs/zillion.dialects.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.dialects ================================================ FILE: docs/mkdocs/zillion.field.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.field ## [AdHocDimension](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L765-L780) *Bases*: zillion.field.FormulaDimension ::: zillion.field.AdHocDimension :docstring: :members: copy create from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields to_config ## [AdHocField](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L677-L690) *Bases*: zillion.field.FormulaField ::: zillion.field.AdHocField :docstring: :members: copy create from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields to_config ## [AdHocMetric](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L693-L762) *Bases*: zillion.field.FormulaMetric ::: zillion.field.AdHocMetric :docstring: :members: copy create from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields to_config ## [Dimension](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L333-L455) *Bases*: zillion.field.Field ::: zillion.field.Dimension :docstring: :members: copy from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields get_values is_valid_value sort to_config ## [Field](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L37-L170) *Bases*: zillion.configs.ConfigMixin, tlbx.logging_utils.PrintMixin ::: zillion.field.Field :docstring: :members: copy from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields to_config ## [FieldManagerMixin](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L815-L1167) ::: zillion.field.FieldManagerMixin :docstring: :members: add_dimension add_metric directly_has_dimension directly_has_field directly_has_metric get_child_field_managers get_dimension get_dimension_configs get_dimension_names get_dimensions get_direct_dimension_configs get_direct_dimensions get_direct_fields get_direct_metric_configs get_direct_metrics get_field get_field_instances get_field_managers get_field_names get_fields get_metric get_metric_configs get_metric_names get_metrics has_dimension has_field has_metric print_dimensions print_metrics ## [FormulaDimension](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L575-L591) *Bases*: zillion.field.FormulaField ::: zillion.field.FormulaDimension :docstring: :members: copy from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields to_config ## [FormulaField](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L458-L572) *Bases*: zillion.field.Field ::: zillion.field.FormulaField :docstring: :members: copy from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields to_config ## [FormulaMetric](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L594-L674) *Bases*: zillion.field.FormulaField ::: zillion.field.FormulaMetric :docstring: :members: copy from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields to_config ## [Metric](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L173-L330) *Bases*: zillion.field.Field ::: zillion.field.Metric :docstring: :members: copy from_config get_all_raw_fields get_ds_expression get_final_select_clause get_formula_fields to_config ## [create_dimension](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L799-L812) ::: zillion.field.create_dimension :docstring: ## [create_metric](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L783-L796) ::: zillion.field.create_metric :docstring: ## [get_conversions_for_type](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1350-L1366) ::: zillion.field.get_conversions_for_type :docstring: ## [get_dialect_type_conversions](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1381-L1434) ::: zillion.field.get_dialect_type_conversions :docstring: ## [get_table_dimensions](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1196-L1219) ::: zillion.field.get_table_dimensions :docstring: ## [get_table_field_column](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1244-L1265) ::: zillion.field.get_table_field_column :docstring: ## [get_table_fields](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1222-L1241) ::: zillion.field.get_table_fields :docstring: ## [get_table_metrics](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1170-L1193) ::: zillion.field.get_table_metrics :docstring: ## [replace_non_named_formula_args](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1369-L1378) ::: zillion.field.replace_non_named_formula_args :docstring: ## [sort_by_value_order](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1325-L1347) ::: zillion.field.sort_by_value_order :docstring: ## [table_field_allows_grain](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1268-L1285) ::: zillion.field.table_field_allows_grain :docstring: ## [values_from_db](https://github.com/totalhack/zillion/blob/master/zillion/field.py#L1288-L1322) ::: zillion.field.values_from_db :docstring: ================================================ FILE: docs/mkdocs/zillion.model.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.model ================================================ FILE: docs/mkdocs/zillion.nlp.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.nlp ## [build_chain](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L708-L733) ::: zillion.nlp.build_chain :docstring: ## [build_llm](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L678-L705) ::: zillion.nlp.build_llm :docstring: ## [field_name_to_embedding_text](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L558-L560) ::: zillion.nlp.field_name_to_embedding_text :docstring: ## [get_dimensions_prompt_str](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1092-L1093) ::: zillion.nlp.get_dimensions_prompt_str :docstring: ## [get_field_fuzzy](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L972-L1020) ::: zillion.nlp.get_field_fuzzy :docstring: ## [get_field_name_variants](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L943-L964) ::: zillion.nlp.get_field_name_variants :docstring: ## [get_fields_prompt_str](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1074-L1085) ::: zillion.nlp.get_fields_prompt_str :docstring: ## [get_metrics_prompt_str](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1088-L1089) ::: zillion.nlp.get_metrics_prompt_str :docstring: ## [get_nlp_table_info](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1270-L1296) ::: zillion.nlp.get_nlp_table_info :docstring: ## [get_nlp_table_relationships](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1178-L1224) ::: zillion.nlp.get_nlp_table_relationships :docstring: ## [get_openai_class](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L654-L657) ::: zillion.nlp.get_openai_class :docstring: ## [get_openai_model_context_size](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L660-L675) ::: zillion.nlp.get_openai_model_context_size :docstring: ## [get_warehouse_collection_name](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L563-L575) ::: zillion.nlp.get_warehouse_collection_name :docstring: ## [hash_text](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L46-L48) ::: zillion.nlp.hash_text :docstring: ## [init_warehouse_embeddings](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L600-L651) ::: zillion.nlp.init_warehouse_embeddings :docstring: ## [map_warehouse_report_params](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1023-L1071) ::: zillion.nlp.map_warehouse_report_params :docstring: ## [parse_nlp_table_info](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1244-L1264) ::: zillion.nlp.parse_nlp_table_info :docstring: ## [parse_nlp_table_relationships](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1151-L1175) ::: zillion.nlp.parse_nlp_table_relationships :docstring: ## [parse_text_to_report_json_output](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L870-L888) ::: zillion.nlp.parse_text_to_report_json_output :docstring: ## [text_to_report_params](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L1100-L1135) ::: zillion.nlp.text_to_report_params :docstring: ## [warehouse_field_nlp_enabled](https://github.com/totalhack/zillion/blob/master/zillion/nlp.py#L578-L597) ::: zillion.nlp.warehouse_field_nlp_enabled :docstring: ================================================ FILE: docs/mkdocs/zillion.report.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.report ## [BaseCombinedResult](https://github.com/totalhack/zillion/blob/master/zillion/report.py#L707-L833) ::: zillion.report.BaseCombinedResult :docstring: :members: add_warning clean_up create_table get_conn get_cursor get_final_result get_metric_clause ifnull_clause load_table ## [DataSourceQuery](https://github.com/totalhack/zillion/blob/master/zillion/report.py#L162-L647) *Bases*: zillion.report.ExecutionStateMixin, tlbx.logging_utils.PrintMixin ::: zillion.report.DataSourceQuery :docstring: :members: add_metric covers_field covers_metric execute get_conn get_datasource get_datasource_name get_dialect_name get_tables kill ## [DataSourceQueryResult](https://github.com/totalhack/zillion/blob/master/zillion/report.py#L688-L704) *Bases*: tlbx.logging_utils.PrintMixin ::: zillion.report.DataSourceQueryResult :docstring: ## [DataSourceQuerySummary](https://github.com/totalhack/zillion/blob/master/zillion/report.py#L650-L685) *Bases*: tlbx.logging_utils.PrintMixin ::: zillion.report.DataSourceQuerySummary :docstring: :members: format ## [ExecutionStateMixin](https://github.com/totalhack/zillion/blob/master/zillion/report.py#L50-L159) ::: zillion.report.ExecutionStateMixin :docstring: ## [Report](https://github.com/totalhack/zillion/blob/master/zillion/report.py#L1448-L2365) *Bases*: zillion.report.ExecutionStateMixin ::: zillion.report.Report :docstring: :members: delete execute from_params from_text get_dimension_grain get_grain get_json get_params kill load load_warehouse_id_for_report save ## [ReportResult](https://github.com/totalhack/zillion/blob/master/zillion/report.py#L2368-L2454) *Bases*: tlbx.logging_utils.PrintMixin ::: zillion.report.ReportResult :docstring: ## [SQLiteMemoryCombinedResult](https://github.com/totalhack/zillion/blob/master/zillion/report.py#L836-L1445) *Bases*: zillion.report.BaseCombinedResult ::: zillion.report.SQLiteMemoryCombinedResult :docstring: :members: add_warning clean_up create_table get_conn get_cursor get_final_result get_metric_clause ifnull_clause load_table ================================================ FILE: docs/mkdocs/zillion.scripts.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.scripts ================================================ FILE: docs/mkdocs/zillion.sql_utils.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.sql_utils ## [aggregation_to_sqla_func](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L250-L252) ::: zillion.sql_utils.aggregation_to_sqla_func :docstring: ## [check_metadata_url](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L440-L453) ::: zillion.sql_utils.check_metadata_url :docstring: ## [column_fullname](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L316-L336) ::: zillion.sql_utils.column_fullname :docstring: ## [comment](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L456-L459) ::: zillion.sql_utils.comment :docstring: ## [contains_aggregation](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L110-L140) ::: zillion.sql_utils.contains_aggregation :docstring: ## [contains_sql_keywords](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L83-L107) ::: zillion.sql_utils.contains_sql_keywords :docstring: ## [filter_dialect_schemas](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L521-L548) ::: zillion.sql_utils.filter_dialect_schemas :docstring: ## [get_postgres_pid](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L562-L566) ::: zillion.sql_utils.get_postgres_pid :docstring: ## [get_postgres_schemas](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L551-L559) ::: zillion.sql_utils.get_postgres_schemas :docstring: ## [get_schema_and_table_name](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L339-L348) ::: zillion.sql_utils.get_schema_and_table_name :docstring: ## [get_schemas](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L490-L493) ::: zillion.sql_utils.get_schemas :docstring: ## [get_sqla_criterion_expr](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L351-L437) ::: zillion.sql_utils.get_sqla_criterion_expr :docstring: ## [infer_aggregation_and_rounding](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L213-L247) ::: zillion.sql_utils.infer_aggregation_and_rounding :docstring: ## [is_numeric_type](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L255-L260) ::: zillion.sql_utils.is_numeric_type :docstring: ## [is_probably_metric](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L263-L293) ::: zillion.sql_utils.is_probably_metric :docstring: ## [printexpr](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L311-L313) ::: zillion.sql_utils.printexpr :docstring: ## [sqla_compile](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L296-L308) ::: zillion.sql_utils.sqla_compile :docstring: ## [to_duckdb_type](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L514-L518) ::: zillion.sql_utils.to_duckdb_type :docstring: ## [to_generic_sa_type](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L195-L210) ::: zillion.sql_utils.to_generic_sa_type :docstring: ## [to_mysql_type](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L499-L501) ::: zillion.sql_utils.to_mysql_type :docstring: ## [to_postgresql_type](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L504-L506) ::: zillion.sql_utils.to_postgresql_type :docstring: ## [to_sqlite_type](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L509-L511) ::: zillion.sql_utils.to_sqlite_type :docstring: ## [type_string_to_sa_type](https://github.com/totalhack/zillion/blob/master/zillion/sql_utils.py#L143-L192) ::: zillion.sql_utils.type_string_to_sa_type :docstring: ================================================ FILE: docs/mkdocs/zillion.version.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.version ================================================ FILE: docs/mkdocs/zillion.warehouse.md ================================================ [//]: # (This is an auto-generated file. Do not edit) # Module zillion.warehouse ## [Warehouse](https://github.com/totalhack/zillion/blob/master/zillion/warehouse.py#L16-L1209) *Bases*: zillion.field.FieldManagerMixin ::: zillion.warehouse.Warehouse :docstring: :members: add_datasource add_dimension add_metric apply_config delete delete_report directly_has_dimension directly_has_field directly_has_metric execute execute_id execute_text from_data_file from_db_file get_child_field_managers get_datasource get_dimension get_dimension_configs get_dimension_names get_dimension_table_set get_dimensions get_direct_dimension_configs get_direct_dimensions get_direct_fields get_direct_metric_configs get_direct_metrics get_field get_field_instances get_field_managers get_field_names get_fields get_metric get_metric_configs get_metric_names get_metric_table_set get_metrics has_dimension has_field has_metric init_embeddings load load_report load_report_and_warehouse load_warehouse_for_report print_dimensions print_info print_metrics remove_datasource run_integrity_checks save save_report ================================================ FILE: docs/mkdocs_index.md ================================================ --8<-- "markdown/readme_badges.md" --8<-- "markdown/readme_intro.md" --- --8<-- "markdown/readme_contents.md" ================================================ FILE: docs/readme.md ================================================ Zillion: Make sense of it all ============================= --8<-- "markdown/readme_badges.md" --8<-- "markdown/readme_intro.md" --8<-- "markdown/readme_toc.md" --8<-- "markdown/readme_contents.md" --- --8<-- "markdown/readme_docs.md" --- --8<-- "markdown/readme_how_to_contribute.md" ================================================ FILE: docs/requirements.txt ================================================ zillion mkdocs==1.1.2 mkdocs-material==5.2.1 mkdocs-material-extensions==1.0 mkdocs-minify-plugin==0.3.0 mkautodoc==0.1.0 ================================================ FILE: examples/baseball_warehouse.json ================================================ { "metrics": [ { "name": "games", "display_name": "G", "type": "integer", "aggregation": "sum" }, { "name": "at_bats", "display_name": "AB", "type": "integer", "aggregation": "sum" }, { "name": "runs", "display_name": "R", "type": "integer", "aggregation": "sum" }, { "name": "hits", "display_name": "H", "type": "integer", "aggregation": "sum" }, { "name": "singles", "display_name": "1B", "aggregation": "sum", "formula": "{hits} - {doubles} - {triples} - {home_runs}" }, { "name": "doubles", "display_name": "2B", "type": "integer", "aggregation": "sum" }, { "name": "triples", "display_name": "3B", "type": "integer", "aggregation": "sum" }, { "name": "home_runs", "display_name": "HR", "type": "integer", "aggregation": "sum" }, { "name": "runs_batted_in", "display_name": "RBI", "type": "integer", "aggregation": "sum" }, { "name": "stolen_bases", "display_name": "SB", "type": "integer", "aggregation": "sum" }, { "name": "caught_stealing", "display_name": "CS", "type": "integer", "aggregation": "sum" }, { "name": "walks", "display_name": "BB", "type": "integer", "aggregation": "sum" }, { "name": "strikeouts", "display_name": "SO", "type": "integer", "aggregation": "sum" }, { "name": "intentional_walks", "display_name": "IBB", "type": "integer", "aggregation": "sum" }, { "name": "hit_by_pitch", "display_name": "HBP", "type": "integer", "aggregation": "sum" }, { "name": "sacrifice_hits", "display_name": "SH", "type": "integer", "aggregation": "sum" }, { "name": "sacrifice_flies", "display_name": "SF", "type": "integer", "aggregation": "sum" }, { "name": "grounded_into_double_plays", "display_name": "GIDP", "type": "integer", "aggregation": "sum" }, { "name": "batting_average", "display_name": "AVG", "aggregation": "mean", "rounding": 3, "formula": "1.0*{hits}/{at_bats}", "description": "Hits per At Bat" }, { "name": "on_base_percentage", "display_name": "OBP", "aggregation": "mean", "rounding": 3, "formula": "1.0*({hits} + {walks} + {hit_by_pitch})/({at_bats} + {walks} + {hit_by_pitch} + {sacrifice_flies})", "description": "(Hits + Walks + Hit By Pitch) / (At Bats + Walks + Hit By Pitch + Sacrifice Flies)" }, { "name": "slugging_percentage", "display_name": "SLG", "aggregation": "mean", "rounding": 3, "formula": "1.0*({singles} + 2*{doubles} + 3*{triples} + 4*{home_runs})/{at_bats}", "description": "(Singles + 2xDoubles + 3xTriples + 4xHome Runs) / At Bats" }, { "name": "on_base_plus_slugging", "display_name": "OPS", "aggregation": "mean", "rounding": 3, "formula": "1.0*({on_base_percentage} + {slugging_percentage})", "description": "OBP + SLG" } ], "dimensions": [ { "name": "player_id", "display_name": "Player ID", "type": "string(10)", "description": "A unique code assigned to each player" }, { "name": "year", "display_name": "Year", "type": "integer", "description": "Year" }, { "name": "stint", "display_name": "Stint", "type": "integer", "description": "Player's stint (order of appearances within a season)" }, { "name": "team_id", "display_name": "Team ID", "type": "string(3)", "description": "A unique ID for a franchise/year combination" }, { "name": "league_id", "display_name": "League ID", "type": "string(2)", "description": "Unique ID for the league" }, { "name": "franchise_id", "display_name": "Franchise ID", "type": "string(3)", "description": "A unique ID for the franchise" }, { "name": "franchise_name", "display_name": "Franchise Name", "type": "string(50)", "description": "Full name of the franchise" }, { "name": "ballpark", "display_name": "Ballpark", "type": "string(50)", "description": "Name of the ballpark" }, { "name": "birth_year", "display_name": "Birth Year", "type": "integer", "description": "Year player was born" }, { "name": "birth_country", "display_name": "Birth Country", "type": "string(32)", "description": "Country where player was born" }, { "name": "birth_state", "display_name": "Birth State", "type": "string(3)", "description": "State where player was born" }, { "name": "first_name", "display_name": "First Name", "type": "string(32)", "description": "Player's first name" }, { "name": "last_name", "display_name": "Last Name", "type": "string(32)", "description": "Player's last name" }, { "name": "weight", "display_name": "Weight", "type": "integer", "description": "Player's weight in pounds" }, { "name": "height", "display_name": "Height", "type": "integer", "description": "Player's height in inches" }, { "name": "bats", "display_name": "Bats", "type": "string(5)", "description": "Player's batting hand (left, right, or both)" }, { "name": "throws", "display_name": "Throws", "type": "string(5)", "description": "Player's throwing hand (left or right)" }, { "name": "debut_date", "display_name": "Debut Date", "type": "date", "description": "Date that player made first major league appearance" } ], "datasources": { "baseball_data_bank": { "connect": "sqlite:////tmp/baseball.db", "tables": { "main.people": { "type": "dimension", "data_url": "https://raw.githubusercontent.com/chadwickbureau/baseballdatabank/master/core/People.csv", "if_exists": "ignore", "primary_key": [ "player_id" ], "columns": { "playerID": { "fields": [ "player_id" ] }, "birthYear": { "fields": [ "birth_year" ] }, "birthCountry": { "fields": [ "birth_country" ] }, "birthState": { "fields": [ "birth_state" ] }, "nameFirst": { "fields": [ "first_name" ] }, "nameLast": { "fields": [ "last_name" ] }, "weight": { "fields": [ "weight" ] }, "height": { "fields": [ "height" ] }, "bats": { "fields": [ "bats" ] }, "throws": { "fields": [ "throws" ] }, "debut": { "fields": [ "debut_date" ] } } }, "main.teams": { "type": "dimension", "data_url": "https://raw.githubusercontent.com/chadwickbureau/baseballdatabank/master/core/Teams.csv", "if_exists": "ignore", "parent": "main.franchises", "primary_key": [ "year", "league_id", "team_id" ], "columns": { "yearID": { "fields": [ "year" ] }, "lgID": { "fields": [ "league_id" ] }, "teamID": { "fields": [ "team_id" ] }, "franchID": { "fields": [ "franchise_id" ] }, "park": { "fields": [ "ballpark" ] } } }, "main.franchises": { "type": "dimension", "data_url": "https://raw.githubusercontent.com/chadwickbureau/baseballdatabank/master/core/TeamsFranchises.csv", "if_exists": "ignore", "primary_key": [ "franchise_id" ], "columns": { "franchID": { "fields": [ "franchise_id" ] }, "franchName": { "fields": [ "franchise_name" ] } } }, "main.batting": { "type": "metric", "data_url": "https://raw.githubusercontent.com/chadwickbureau/baseballdatabank/master/core/Batting.csv", "if_exists": "ignore", "primary_key": [ "player_id", "year", "stint" ], "columns": { "playerID": { "fields": [ "player_id" ] }, "yearID": { "fields": [ "year" ] }, "stint": { "fields": [ "stint" ] }, "teamID": { "fields": [ "team_id" ] }, "lgID": { "fields": [ "league_id" ] }, "G": { "fields": [ "games" ] }, "AB": { "fields": [ "at_bats" ] }, "R": { "fields": [ "runs" ] }, "H": { "fields": [ "hits" ] }, "2B": { "fields": [ "doubles" ] }, "3B": { "fields": [ "triples" ] }, "HR": { "fields": [ "home_runs" ] }, "RBI": { "fields": [ "runs_batted_in" ] }, "SB": { "fields": [ "stolen_bases" ] }, "CS": { "fields": [ "caught_stealing" ] }, "BB": { "fields": [ "walks" ] }, "SO": { "fields": [ "strikeouts" ] }, "IBB": { "fields": [ "intentional_walks" ] }, "HBP": { "fields": [ "hit_by_pitch" ] }, "SH": { "fields": [ "sacrifice_hits" ] }, "SF": { "fields": [ "sacrifice_flies" ] }, "GIDP": { "fields": [ "grounded_into_double_plays" ] } } } } } } } ================================================ FILE: examples/example_wh_config.json ================================================ { "metrics": [ { "name": "revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2 }, { "name": "leads", "type": "integer", "aggregation": "sum" }, { "name": "sales", "type": "integer", "aggregation": "sum" }, { "name": "rpl", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}" } ], "dimensions": [ { "name": "partner_id", "type": "integer" }, { "name": "partner_name", "type": "string(32)" }, { "name": "campaign_id", "type": "integer" }, { "name": "campaign_name", "type": "string(32)" } ], "datasources": { "testdb1": { "connect": { "params": { "data_url": "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true", "if_exists": "replace" } }, "tables": { "main.partners": { "type": "dimension", "primary_key": ["partner_id"], "columns": { "id": { "fields": ["partner_id"] }, "name": { "fields": ["partner_name"] } } }, "main.campaigns": { "type": "dimension", "parent": "main.partners", "primary_key": ["campaign_id"], "columns": { "id": { "fields": ["campaign_id"] }, "name": { "fields": ["campaign_name"] }, "partner_id": { "fields": ["partner_id"] } } }, "main.leads": { "type": "metric", "create_fields": true, "primary_key": ["lead_id"], "columns": { "id": { "fields": [ "lead_id", {"name": "leads", "ds_formula": "COUNT(DISTINCT leads.id)"} ] }, "created_at": { "fields": ["lead_created_at"], "allow_type_conversions": true, "type_conversion_prefix": "lead_" }, "campaign_id": { "fields": ["campaign_id"] } } }, "main.sales": { "type": "metric", "create_fields": true, "parent": "main.leads", "primary_key": ["sale_id"], "columns": { "id": { "fields": [ "sale_id", {"name":"sales", "ds_formula": "COUNT(DISTINCT sales.id)"} ] }, "created_at": { "fields": ["sale_created_at"], "allow_type_conversions": true, "type_conversion_prefix": "sale_" }, "lead_id": { "fields": ["lead_id"] }, "revenue": { "fields": ["revenue"] } } } } } } } ================================================ FILE: examples/minimal_example.py ================================================ from zillion import Warehouse config = "https://raw.githubusercontent.com/totalhack/zillion/master/examples/example_wh_config.json" wh = Warehouse(config=config) result = wh.execute(metrics=["revenue"], dimensions=["partner_name"]) print(result.df) ================================================ FILE: examples/sample_config.yaml ================================================ # Note: env var substitution is supported via $FOO or ${FOO} syntax # Turn on debug logging DEBUG: false # Control the Zillion logger's log level. DEBUG flag overrides this. LOG_LEVEL: WARNING # Chunk size for loading datasource query results at the combined layer LOAD_TABLE_CHUNK_SIZE: 5000 # Connection string for Zillion metadata DB DB_URL: sqlite:////tmp/zillion.db # If NLP extras are installed: # OPENAI_API_KEY: # OPENAI_MODEL: gpt-3.5-turbo # QDRANT_HOST: localhost # Where to store adhoc SQLite databases ADHOC_DATASOURCE_DIRECTORY: /tmp # Either "sequential" or "multithread" DATASOURCE_QUERY_MODE: sequential # Set a timeout in seconds for datasource layer queries DATASOURCE_QUERY_TIMEOUT: null # Max number of parallel query threads DATASOURCE_QUERY_WORKERS: 4 # Limit the number of joins to consider in each possible combination of joins # when searching for combinations that satisfy the report grain. This is # necessary to prevent combinatorial explosion for larger schema with many # ways to satisfy a report, typically coming into play for many-dimensional # reports. This effectively limits the number of joins in a single query. DATASOURCE_MAX_JOINS: null # Once we reach N join combos that cover the grain we will stop searching DATASOURCE_MAX_JOIN_CANDIDATES: 100 # These vars can be used to substitute values in connection URLs by datasource. DATASOURCE_CONTEXTS: test_datasource1: schema: testdb2 somevar: other_val test_datasource2: user: totalhack pass: foo ================================================ FILE: mkdocs.yml ================================================ site_name: Zillion site_description: Make sense of it all. site_author: totalhack site_url: https://totalhack.github.io/zillion/ docs_dir: docs/mkdocs site_dir: docs/site repo_name: totalhack/zillion repo_url: https://github.com/totalhack/zillion copyright: Copyright © 2020 - present @totalhack theme: name: material language: en palette: scheme: default primary: blue grey accent: light blue font: text: Roboto code: Roboto Mono icon: logo: material/chart-donut favicon: images/chart-donut.png plugins: - search - minify: minify_html: true extra: social: - icon: fontawesome/brands/github-alt link: https://github.com/totalhack/zillion extra_css: - css/extra.css markdown_extensions: - codehilite: guess_lang: false use_pygments: true noclasses: true pygments_style: monokai - toc: permalink: true - mkautodoc nav: - 'Getting Started': 'index.md' - 'API Reference': - 'zillion.configs': 'zillion.configs.md' - 'zillion.core': 'zillion.core.md' - 'zillion.datasource': 'zillion.datasource.md' - 'zillion.field': 'zillion.field.md' - 'zillion.report': 'zillion.report.md' - 'zillion.sql_utils': 'zillion.sql_utils.md' - 'zillion.warehouse': 'zillion.warehouse.md' - 'Contributing': 'contributing.md' - 'Star on Github': 'https://github.com/totalhack/zillion' ================================================ FILE: pyproject.toml ================================================ [build-system] requires = ["setuptools>=61", "wheel"] build-backend = "setuptools.build_meta" [project] name = "zillion" description = "Make sense of it all. Data modeling and analytics with a sprinkle of AI." readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.9" license = { file = "LICENSE" } authors = [{ name = "totalhack" }] dynamic = ["version"] classifiers = [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", ] dependencies = [ "climax~=0.4.0", "lxml>=4.9.3", "marshmallow==3.21.0; python_version >= \"3.12\"", "marshmallow==3.20.1; python_version < \"3.12\"", "networkx>=3.0", "ordered-set~=4.1.0", "pandas>=2.0.0,<3; python_version >= \"3.13\"", "pandas>=1.1,<3; python_version < \"3.13\"", "numpy>=1.26,<2", # pandas extras you listed: "openpyxl>=3.0.7,<3.1.1", "pymysql~=1.0.2", "pyyaml>=6.0", # Required by stopit "setuptools>=65", "simplejson~=3.17.0", "stopit~=1.1.2", "sqlalchemy>=1.4.49,<2; python_version >= \"3.12\"", "sqlalchemy>=1.3,<2; python_version < \"3.12\"", "sqlparse~=0.3.1", "tabulate~=0.8.7", "tlbx~=0.1.22", "xlrd~=1.2.0", ] [project.optional-dependencies] mysql = ["pymysql~=1.0.2"] postgres = ["psycopg2-binary~=2.9.5"] duckdb = [ "duckdb==0.7.1; python_version == '3.9'", "duckdb-engine==0.7.*; python_version == '3.9'", "duckdb>=0.7.1,<1.0; python_version >= '3.10' and python_version < '3.12'", "duckdb-engine>=0.7,<0.10; python_version >= '3.10' and python_version < '3.12'", "duckdb>=1.0.0; python_version >= '3.12'", "duckdb-engine>=0.10,<1.0; python_version >= '3.12'", ] nlp = [ "langchain==0.0.115", "openai==0.27.2", "tiktoken==0.3.3", "qdrant-client==1.1.3", ] dev = [ "black", "pre-commit", "pylint>=3.0", "pytest==7.1.2", "pytest-xdist==3.1.0", "twine>=5", "wheel", "mkdocs==1.1.2", "mkdocs-material==5.2.1", "mkdocs-material-extensions==1.0", "mkautodoc==0.2.0", "psycopg2-binary>=2.9.5", "jinja2<3.1.0", ] [project.urls] Homepage = "https://github.com/totalhack/zillion" Source = "https://github.com/totalhack/zillion" Issues = "https://github.com/totalhack/zillion/issues" [tool.setuptools] include-package-data = true [tool.setuptools.packages.find] include = ["zillion*"] exclude = ["tests*", "docs*", "examples*"] [tool.setuptools.dynamic] version = { attr = "zillion.version.__version__" } ================================================ FILE: tests/__init__.py ================================================ ================================================ FILE: tests/conftest.py ================================================ import pytest import sys import time from tlbx import json from zillion.core import zillion_config from .test_utils import * def pytest_addoption(parser): parser.addoption( "--nlp", action="store_true", dest="nlp", default=False, help="enable nlp decorated tests", ) parser.addoption( "--longrun", action="store_true", dest="longrun", default=False, help="enable longrun decorated tests", ) def pytest_configure(config): markexprs = [] if not config.option.longrun: markexprs.append("not longrun") if not config.option.nlp: markexprs.append("not nlp") if markexprs: setattr(config.option, "markexpr", " and ".join(markexprs)) @pytest.fixture(scope="session") def mysql_setup(): conn = get_sqlalchemy_mysql_conn() try: conn.execute("select 1 from zillion_test.partners") except Exception as e: if "doesn't exist" not in str(e): raise print("Doing MySQL database setup...") mysql_data_init() finally: conn.close() @pytest.fixture(scope="session") def postgresql_setup(): conn = get_sqlalchemy_postgresql_conn() res = conn.execute( "SELECT EXISTS ( " "SELECT FROM " " pg_tables " "WHERE " "schemaname = 'zillion_test' AND " "tablename = 'partners' " ")" ) res = res.fetchone() if not res or res[0] is False: print("Doing PostgreSQL database setup...") postgresql_data_init() @pytest.fixture(scope="session") def duckdb_setup(): conn = get_sqlalchemy_duckdb_conn() try: conn.execute("select 1 from zillion_test.partners") except Exception as e: if "does not exist" not in str(e): raise print("Doing DuckDB database setup...") duckdb_data_init(conn) finally: conn.close() @pytest.fixture(scope="function") def config(): return copy.deepcopy(TEST_WH_CONFIG) @pytest.fixture(scope="function") def ds_config(): config = copy.deepcopy(TEST_WH_CONFIG) return config["datasources"]["testdb1"] @pytest.fixture(scope="function") def adhoc_config(): return copy.deepcopy(TEST_ADHOC_CONFIG) @pytest.fixture(scope="function") def wh(config): return Warehouse(config=config) @pytest.fixture(scope="function") def saved_wh(): name = "test_warehouse_%s" % time.time() config_url = REMOTE_CONFIG_URL wh = Warehouse(config=config_url) wh_id = wh.save(name, config_url, meta=dict(test=1)) yield wh try: Warehouse.delete(wh_id) except: # noqa: E722 pass @pytest.fixture(scope="function") def adhoc_ds(config): return get_adhoc_datasource() @pytest.fixture(scope="function") def mysql_ds_config(mysql_setup): return load_datasource_config("test_mysql_ds_config.json") @pytest.fixture(scope="function") def mysql_ds(mysql_ds_config): return DataSource("mysql", config=mysql_ds_config) @pytest.fixture(scope="function") def mysql_wh(mysql_ds): return Warehouse(datasources=[mysql_ds]) @pytest.fixture(scope="function") def postgresql_ds_config(postgresql_setup): return load_datasource_config("test_postgresql_ds_config.json") @pytest.fixture(scope="function") def postgresql_ds(postgresql_ds_config): return DataSource("postgresql", config=postgresql_ds_config) @pytest.fixture(scope="function") def postgresql_wh(postgresql_ds): return Warehouse(datasources=[postgresql_ds]) @pytest.fixture(scope="function") def duckdb_wh(): with open("test_duckdb_wh_config.json") as f: cfg = json.load(f) test_config = zillion_config["TEST"] schema_base = test_config["DuckDBTestSchemaBase"] if sys.version_info >= (3, 12): schema = f"{schema_base}_1.x.duckdb" else: schema = f"{schema_base}_0.7.duckdb" cfg["datasources"]["zillion_test"]["connect"] = f"duckdb:///{schema}" config = load_warehouse_config(cfg) return Warehouse(config=config) @pytest.fixture def pymysql_conn(): conn = get_pymysql_conn() yield conn try: conn.close() except: # noqa: E722 pass @pytest.fixture def sqlalchemy_mysql_conn(): conn = get_sqlalchemy_mysql_conn() yield conn try: conn.close() except: # noqa: E722 pass ================================================ FILE: tests/dma_zip.csv ================================================ Zip_Code,DMA_Code,DMA_Description 501,501,NEW YORK 544,501,NEW YORK 1001,543,SPRINGFIELD - HOLYOKE 1002,543,SPRINGFIELD - HOLYOKE 1003,543,SPRINGFIELD - HOLYOKE 1004,543,SPRINGFIELD - HOLYOKE 1005,506,BOSTON (MANCHESTER) 1007,543,SPRINGFIELD - HOLYOKE 1008,543,SPRINGFIELD - HOLYOKE 1009,543,SPRINGFIELD - HOLYOKE 1010,543,SPRINGFIELD - HOLYOKE 1011,543,SPRINGFIELD - HOLYOKE 1012,543,SPRINGFIELD - HOLYOKE 1013,543,SPRINGFIELD - HOLYOKE 1014,543,SPRINGFIELD - HOLYOKE 1020,543,SPRINGFIELD - HOLYOKE 1021,543,SPRINGFIELD - HOLYOKE 1022,543,SPRINGFIELD - HOLYOKE 1026,543,SPRINGFIELD - HOLYOKE 1027,543,SPRINGFIELD - HOLYOKE 1028,543,SPRINGFIELD - HOLYOKE 1029,532,ALBANY - SCHENECTADY - TROY 1030,543,SPRINGFIELD - HOLYOKE 1031,506,BOSTON (MANCHESTER) 1032,543,SPRINGFIELD - HOLYOKE 1033,543,SPRINGFIELD - HOLYOKE 1034,543,SPRINGFIELD - HOLYOKE 1035,543,SPRINGFIELD - HOLYOKE 1036,543,SPRINGFIELD - HOLYOKE 1037,506,BOSTON (MANCHESTER) 1038,543,SPRINGFIELD - HOLYOKE 1039,543,SPRINGFIELD - HOLYOKE 1040,543,SPRINGFIELD - HOLYOKE 1041,543,SPRINGFIELD - HOLYOKE 1050,543,SPRINGFIELD - HOLYOKE 1053,543,SPRINGFIELD - HOLYOKE 1054,543,SPRINGFIELD - HOLYOKE 1056,543,SPRINGFIELD - HOLYOKE 1057,543,SPRINGFIELD - HOLYOKE 1059,543,SPRINGFIELD - HOLYOKE 1060,543,SPRINGFIELD - HOLYOKE 1061,543,SPRINGFIELD - HOLYOKE 1062,543,SPRINGFIELD - HOLYOKE 1063,543,SPRINGFIELD - HOLYOKE 1066,543,SPRINGFIELD - HOLYOKE 1068,506,BOSTON (MANCHESTER) 1069,543,SPRINGFIELD - HOLYOKE 1070,543,SPRINGFIELD - HOLYOKE 1071,543,SPRINGFIELD - HOLYOKE 1072,543,SPRINGFIELD - HOLYOKE 1073,543,SPRINGFIELD - HOLYOKE 1074,506,BOSTON (MANCHESTER) 1075,543,SPRINGFIELD - HOLYOKE 1077,543,SPRINGFIELD - HOLYOKE 1079,543,SPRINGFIELD - HOLYOKE 1080,543,SPRINGFIELD - HOLYOKE 1081,543,SPRINGFIELD - HOLYOKE 1082,543,SPRINGFIELD - HOLYOKE 1083,506,BOSTON (MANCHESTER) 1084,543,SPRINGFIELD - HOLYOKE 1085,543,SPRINGFIELD - HOLYOKE 1086,543,SPRINGFIELD - HOLYOKE 1088,543,SPRINGFIELD - HOLYOKE 1089,543,SPRINGFIELD - HOLYOKE 1090,543,SPRINGFIELD - HOLYOKE 1092,506,BOSTON (MANCHESTER) 1093,543,SPRINGFIELD - HOLYOKE 1094,506,BOSTON (MANCHESTER) 1095,543,SPRINGFIELD - HOLYOKE 1096,543,SPRINGFIELD - HOLYOKE 1097,543,SPRINGFIELD - HOLYOKE 1098,543,SPRINGFIELD - HOLYOKE 1101,543,SPRINGFIELD - HOLYOKE 1102,543,SPRINGFIELD - HOLYOKE 1103,543,SPRINGFIELD - HOLYOKE 1104,543,SPRINGFIELD - HOLYOKE 1105,543,SPRINGFIELD - HOLYOKE 1106,543,SPRINGFIELD - HOLYOKE 1107,543,SPRINGFIELD - HOLYOKE 1108,543,SPRINGFIELD - HOLYOKE 1109,543,SPRINGFIELD - HOLYOKE 1111,543,SPRINGFIELD - HOLYOKE 1115,543,SPRINGFIELD - HOLYOKE 1116,543,SPRINGFIELD - HOLYOKE 1118,543,SPRINGFIELD - HOLYOKE 1119,543,SPRINGFIELD - HOLYOKE 1128,543,SPRINGFIELD - HOLYOKE 1129,543,SPRINGFIELD - HOLYOKE 1133,543,SPRINGFIELD - HOLYOKE 1138,543,SPRINGFIELD - HOLYOKE 1139,543,SPRINGFIELD - HOLYOKE 1144,543,SPRINGFIELD - HOLYOKE 1151,543,SPRINGFIELD - HOLYOKE 1152,543,SPRINGFIELD - HOLYOKE 1195,543,SPRINGFIELD - HOLYOKE 1199,543,SPRINGFIELD - HOLYOKE 1201,532,ALBANY - SCHENECTADY - TROY 1202,532,ALBANY - SCHENECTADY - TROY 1203,532,ALBANY - SCHENECTADY - TROY 1220,532,ALBANY - SCHENECTADY - TROY 1222,532,ALBANY - SCHENECTADY - TROY 1223,532,ALBANY - SCHENECTADY - TROY 1224,532,ALBANY - SCHENECTADY - TROY 1225,532,ALBANY - SCHENECTADY - TROY 1226,532,ALBANY - SCHENECTADY - TROY 1227,532,ALBANY - SCHENECTADY - TROY 1229,532,ALBANY - SCHENECTADY - TROY 1230,532,ALBANY - SCHENECTADY - TROY 1235,532,ALBANY - SCHENECTADY - TROY 1236,532,ALBANY - SCHENECTADY - TROY 1237,532,ALBANY - SCHENECTADY - TROY 1238,532,ALBANY - SCHENECTADY - TROY 1240,532,ALBANY - SCHENECTADY - TROY 1242,532,ALBANY - SCHENECTADY - TROY 1243,543,SPRINGFIELD - HOLYOKE 1244,532,ALBANY - SCHENECTADY - TROY 1245,532,ALBANY - SCHENECTADY - TROY 1247,532,ALBANY - SCHENECTADY - TROY 1252,532,ALBANY - SCHENECTADY - TROY 1253,532,ALBANY - SCHENECTADY - TROY 1254,532,ALBANY - SCHENECTADY - TROY 1255,532,ALBANY - SCHENECTADY - TROY 1256,532,ALBANY - SCHENECTADY - TROY 1257,532,ALBANY - SCHENECTADY - TROY 1258,532,ALBANY - SCHENECTADY - TROY 1259,532,ALBANY - SCHENECTADY - TROY 1260,532,ALBANY - SCHENECTADY - TROY 1262,532,ALBANY - SCHENECTADY - TROY 1263,532,ALBANY - SCHENECTADY - TROY 1264,532,ALBANY - SCHENECTADY - TROY 1266,532,ALBANY - SCHENECTADY - TROY 1267,532,ALBANY - SCHENECTADY - TROY 1270,532,ALBANY - SCHENECTADY - TROY 1301,543,SPRINGFIELD - HOLYOKE 1302,543,SPRINGFIELD - HOLYOKE 1330,543,SPRINGFIELD - HOLYOKE 1331,506,BOSTON (MANCHESTER) 1337,543,SPRINGFIELD - HOLYOKE 1338,543,SPRINGFIELD - HOLYOKE 1339,543,SPRINGFIELD - HOLYOKE 1340,543,SPRINGFIELD - HOLYOKE 1341,543,SPRINGFIELD - HOLYOKE 1342,543,SPRINGFIELD - HOLYOKE 1343,532,ALBANY - SCHENECTADY - TROY 1344,543,SPRINGFIELD - HOLYOKE 1346,543,SPRINGFIELD - HOLYOKE 1347,543,SPRINGFIELD - HOLYOKE 1349,543,SPRINGFIELD - HOLYOKE 1350,543,SPRINGFIELD - HOLYOKE 1351,543,SPRINGFIELD - HOLYOKE 1354,543,SPRINGFIELD - HOLYOKE 1355,543,SPRINGFIELD - HOLYOKE 1360,543,SPRINGFIELD - HOLYOKE 1364,543,SPRINGFIELD - HOLYOKE 1366,506,BOSTON (MANCHESTER) 1367,543,SPRINGFIELD - HOLYOKE 1368,506,BOSTON (MANCHESTER) 1370,543,SPRINGFIELD - HOLYOKE 1373,543,SPRINGFIELD - HOLYOKE 1375,543,SPRINGFIELD - HOLYOKE 1376,543,SPRINGFIELD - HOLYOKE 1378,543,SPRINGFIELD - HOLYOKE 1379,543,SPRINGFIELD - HOLYOKE 1380,543,SPRINGFIELD - HOLYOKE 1420,506,BOSTON (MANCHESTER) 1430,506,BOSTON (MANCHESTER) 1431,506,BOSTON (MANCHESTER) 1432,506,BOSTON (MANCHESTER) 1434,506,BOSTON (MANCHESTER) 1436,506,BOSTON (MANCHESTER) 1438,506,BOSTON (MANCHESTER) 1440,506,BOSTON (MANCHESTER) 1441,506,BOSTON (MANCHESTER) 1450,506,BOSTON (MANCHESTER) 1451,506,BOSTON (MANCHESTER) 1452,506,BOSTON (MANCHESTER) 1453,506,BOSTON (MANCHESTER) 1460,506,BOSTON (MANCHESTER) 1462,506,BOSTON (MANCHESTER) 1463,506,BOSTON (MANCHESTER) 1464,506,BOSTON (MANCHESTER) 1467,506,BOSTON (MANCHESTER) 1468,506,BOSTON (MANCHESTER) 1469,506,BOSTON (MANCHESTER) 1470,506,BOSTON (MANCHESTER) 1471,506,BOSTON (MANCHESTER) 1472,506,BOSTON (MANCHESTER) 1473,506,BOSTON (MANCHESTER) 1474,506,BOSTON (MANCHESTER) 1475,506,BOSTON (MANCHESTER) 1477,506,BOSTON (MANCHESTER) 1501,506,BOSTON (MANCHESTER) 1503,506,BOSTON (MANCHESTER) 1504,506,BOSTON (MANCHESTER) 1505,506,BOSTON (MANCHESTER) 1506,506,BOSTON (MANCHESTER) 1507,506,BOSTON (MANCHESTER) 1508,506,BOSTON (MANCHESTER) 1509,506,BOSTON (MANCHESTER) 1510,506,BOSTON (MANCHESTER) 1515,506,BOSTON (MANCHESTER) 1516,506,BOSTON (MANCHESTER) 1517,506,BOSTON (MANCHESTER) 1518,506,BOSTON (MANCHESTER) 1519,506,BOSTON (MANCHESTER) 1520,506,BOSTON (MANCHESTER) 1521,543,SPRINGFIELD - HOLYOKE 1522,506,BOSTON (MANCHESTER) 1523,506,BOSTON (MANCHESTER) 1524,506,BOSTON (MANCHESTER) 1525,506,BOSTON (MANCHESTER) 1526,506,BOSTON (MANCHESTER) 1527,506,BOSTON (MANCHESTER) 1529,506,BOSTON (MANCHESTER) 1531,506,BOSTON (MANCHESTER) 1532,506,BOSTON (MANCHESTER) 1534,506,BOSTON (MANCHESTER) 1535,506,BOSTON (MANCHESTER) 1536,506,BOSTON (MANCHESTER) 1537,506,BOSTON (MANCHESTER) 1538,506,BOSTON (MANCHESTER) 1540,506,BOSTON (MANCHESTER) 1541,506,BOSTON (MANCHESTER) 1542,506,BOSTON (MANCHESTER) 1543,506,BOSTON (MANCHESTER) 1545,506,BOSTON (MANCHESTER) 1546,506,BOSTON (MANCHESTER) 1550,506,BOSTON (MANCHESTER) 1560,506,BOSTON (MANCHESTER) 1561,506,BOSTON (MANCHESTER) 1562,506,BOSTON (MANCHESTER) 1564,506,BOSTON (MANCHESTER) 1566,506,BOSTON (MANCHESTER) 1568,506,BOSTON (MANCHESTER) 1569,506,BOSTON (MANCHESTER) 1570,506,BOSTON (MANCHESTER) 1571,506,BOSTON (MANCHESTER) 1580,506,BOSTON (MANCHESTER) 1581,506,BOSTON (MANCHESTER) 1582,506,BOSTON (MANCHESTER) 1583,506,BOSTON (MANCHESTER) 1585,506,BOSTON (MANCHESTER) 1586,506,BOSTON (MANCHESTER) 1588,506,BOSTON (MANCHESTER) 1590,506,BOSTON (MANCHESTER) 1601,506,BOSTON (MANCHESTER) 1602,506,BOSTON (MANCHESTER) 1603,506,BOSTON (MANCHESTER) 1604,506,BOSTON (MANCHESTER) 1605,506,BOSTON (MANCHESTER) 1606,506,BOSTON (MANCHESTER) 1607,506,BOSTON (MANCHESTER) 1608,506,BOSTON (MANCHESTER) 1609,506,BOSTON (MANCHESTER) 1610,506,BOSTON (MANCHESTER) 1611,506,BOSTON (MANCHESTER) 1612,506,BOSTON (MANCHESTER) 1613,506,BOSTON (MANCHESTER) 1614,506,BOSTON (MANCHESTER) 1615,506,BOSTON (MANCHESTER) 1653,506,BOSTON (MANCHESTER) 1654,506,BOSTON (MANCHESTER) 1655,506,BOSTON (MANCHESTER) 1701,506,BOSTON (MANCHESTER) 1702,506,BOSTON (MANCHESTER) 1703,506,BOSTON (MANCHESTER) 1704,506,BOSTON (MANCHESTER) 1705,506,BOSTON (MANCHESTER) 1718,506,BOSTON (MANCHESTER) 1719,506,BOSTON (MANCHESTER) 1720,506,BOSTON (MANCHESTER) 1721,506,BOSTON (MANCHESTER) 1730,506,BOSTON (MANCHESTER) 1731,506,BOSTON (MANCHESTER) 1740,506,BOSTON (MANCHESTER) 1741,506,BOSTON (MANCHESTER) 1742,506,BOSTON (MANCHESTER) 1745,506,BOSTON (MANCHESTER) 1746,506,BOSTON (MANCHESTER) 1747,506,BOSTON (MANCHESTER) 1748,506,BOSTON (MANCHESTER) 1749,506,BOSTON (MANCHESTER) 1752,506,BOSTON (MANCHESTER) 1754,506,BOSTON (MANCHESTER) 1756,506,BOSTON (MANCHESTER) 1757,506,BOSTON (MANCHESTER) 1760,506,BOSTON (MANCHESTER) 1770,506,BOSTON (MANCHESTER) 1772,506,BOSTON (MANCHESTER) 1773,506,BOSTON (MANCHESTER) 1775,506,BOSTON (MANCHESTER) 1776,506,BOSTON (MANCHESTER) 1778,506,BOSTON (MANCHESTER) 1784,506,BOSTON (MANCHESTER) 1801,506,BOSTON (MANCHESTER) 1803,506,BOSTON (MANCHESTER) 1805,506,BOSTON (MANCHESTER) 1806,506,BOSTON (MANCHESTER) 1807,506,BOSTON (MANCHESTER) 1808,506,BOSTON (MANCHESTER) 1810,506,BOSTON (MANCHESTER) 1812,506,BOSTON (MANCHESTER) 1813,506,BOSTON (MANCHESTER) 1815,506,BOSTON (MANCHESTER) 1821,506,BOSTON (MANCHESTER) 1822,506,BOSTON (MANCHESTER) 1824,506,BOSTON (MANCHESTER) 1826,506,BOSTON (MANCHESTER) 1827,506,BOSTON (MANCHESTER) 1830,506,BOSTON (MANCHESTER) 1831,506,BOSTON (MANCHESTER) 1832,506,BOSTON (MANCHESTER) 1833,506,BOSTON (MANCHESTER) 1834,506,BOSTON (MANCHESTER) 1835,506,BOSTON (MANCHESTER) 1840,506,BOSTON (MANCHESTER) 1841,506,BOSTON (MANCHESTER) 1842,506,BOSTON (MANCHESTER) 1843,506,BOSTON (MANCHESTER) 1844,506,BOSTON (MANCHESTER) 1845,506,BOSTON (MANCHESTER) 1850,506,BOSTON (MANCHESTER) 1851,506,BOSTON (MANCHESTER) 1852,506,BOSTON (MANCHESTER) 1853,506,BOSTON (MANCHESTER) 1854,506,BOSTON (MANCHESTER) 1860,506,BOSTON (MANCHESTER) 1862,506,BOSTON (MANCHESTER) 1863,506,BOSTON (MANCHESTER) 1864,506,BOSTON (MANCHESTER) 1865,506,BOSTON (MANCHESTER) 1866,506,BOSTON (MANCHESTER) 1867,506,BOSTON (MANCHESTER) 1876,506,BOSTON (MANCHESTER) 1879,506,BOSTON (MANCHESTER) 1880,506,BOSTON (MANCHESTER) 1885,506,BOSTON (MANCHESTER) 1886,506,BOSTON (MANCHESTER) 1887,506,BOSTON (MANCHESTER) 1888,506,BOSTON (MANCHESTER) 1889,506,BOSTON (MANCHESTER) 1890,506,BOSTON (MANCHESTER) 1899,506,BOSTON (MANCHESTER) 1901,506,BOSTON (MANCHESTER) 1902,506,BOSTON (MANCHESTER) 1903,506,BOSTON (MANCHESTER) 1904,506,BOSTON (MANCHESTER) 1905,506,BOSTON (MANCHESTER) 1906,506,BOSTON (MANCHESTER) 1907,506,BOSTON (MANCHESTER) 1908,506,BOSTON (MANCHESTER) 1910,506,BOSTON (MANCHESTER) 1913,506,BOSTON (MANCHESTER) 1915,506,BOSTON (MANCHESTER) 1921,506,BOSTON (MANCHESTER) 1922,506,BOSTON (MANCHESTER) 1923,506,BOSTON (MANCHESTER) 1929,506,BOSTON (MANCHESTER) 1930,506,BOSTON (MANCHESTER) 1931,506,BOSTON (MANCHESTER) 1936,506,BOSTON (MANCHESTER) 1937,506,BOSTON (MANCHESTER) 1938,506,BOSTON (MANCHESTER) 1940,506,BOSTON (MANCHESTER) 1944,506,BOSTON (MANCHESTER) 1945,506,BOSTON (MANCHESTER) 1949,506,BOSTON (MANCHESTER) 1950,506,BOSTON (MANCHESTER) 1951,506,BOSTON (MANCHESTER) 1952,506,BOSTON (MANCHESTER) 1960,506,BOSTON (MANCHESTER) 1961,506,BOSTON (MANCHESTER) 1965,506,BOSTON (MANCHESTER) 1966,506,BOSTON (MANCHESTER) 1969,506,BOSTON (MANCHESTER) 1970,506,BOSTON (MANCHESTER) 1971,506,BOSTON (MANCHESTER) 1982,506,BOSTON (MANCHESTER) 1983,506,BOSTON (MANCHESTER) 1984,506,BOSTON (MANCHESTER) 1985,506,BOSTON (MANCHESTER) 2018,506,BOSTON (MANCHESTER) 2019,506,BOSTON (MANCHESTER) 2020,506,BOSTON (MANCHESTER) 2021,506,BOSTON (MANCHESTER) 2025,506,BOSTON (MANCHESTER) 2026,506,BOSTON (MANCHESTER) 2027,506,BOSTON (MANCHESTER) 2030,506,BOSTON (MANCHESTER) 2031,521,PROVIDENCE - NEW BEDFORD 2032,506,BOSTON (MANCHESTER) 2035,506,BOSTON (MANCHESTER) 2038,506,BOSTON (MANCHESTER) 2040,506,BOSTON (MANCHESTER) 2041,506,BOSTON (MANCHESTER) 2043,506,BOSTON (MANCHESTER) 2044,506,BOSTON (MANCHESTER) 2045,506,BOSTON (MANCHESTER) 2047,506,BOSTON (MANCHESTER) 2048,521,PROVIDENCE - NEW BEDFORD 2050,506,BOSTON (MANCHESTER) 2051,506,BOSTON (MANCHESTER) 2052,506,BOSTON (MANCHESTER) 2053,506,BOSTON (MANCHESTER) 2054,506,BOSTON (MANCHESTER) 2055,506,BOSTON (MANCHESTER) 2056,506,BOSTON (MANCHESTER) 2059,506,BOSTON (MANCHESTER) 2060,506,BOSTON (MANCHESTER) 2061,506,BOSTON (MANCHESTER) 2062,506,BOSTON (MANCHESTER) 2065,506,BOSTON (MANCHESTER) 2066,506,BOSTON (MANCHESTER) 2067,506,BOSTON (MANCHESTER) 2070,506,BOSTON (MANCHESTER) 2071,506,BOSTON (MANCHESTER) 2072,506,BOSTON (MANCHESTER) 2081,506,BOSTON (MANCHESTER) 2090,506,BOSTON (MANCHESTER) 2093,506,BOSTON (MANCHESTER) 2108,506,BOSTON (MANCHESTER) 2109,506,BOSTON (MANCHESTER) 2110,506,BOSTON (MANCHESTER) 2111,506,BOSTON (MANCHESTER) 2112,506,BOSTON (MANCHESTER) 2113,506,BOSTON (MANCHESTER) 2114,506,BOSTON (MANCHESTER) 2115,506,BOSTON (MANCHESTER) 2116,506,BOSTON (MANCHESTER) 2117,506,BOSTON (MANCHESTER) 2118,506,BOSTON (MANCHESTER) 2119,506,BOSTON (MANCHESTER) 2120,506,BOSTON (MANCHESTER) 2121,506,BOSTON (MANCHESTER) 2122,506,BOSTON (MANCHESTER) 2123,506,BOSTON (MANCHESTER) 2124,506,BOSTON (MANCHESTER) 2125,506,BOSTON (MANCHESTER) 2126,506,BOSTON (MANCHESTER) 2127,506,BOSTON (MANCHESTER) 2128,506,BOSTON (MANCHESTER) 2129,506,BOSTON (MANCHESTER) 2130,506,BOSTON (MANCHESTER) 2131,506,BOSTON (MANCHESTER) 2132,506,BOSTON (MANCHESTER) 2133,506,BOSTON (MANCHESTER) 2134,506,BOSTON (MANCHESTER) 2135,506,BOSTON (MANCHESTER) 2136,506,BOSTON (MANCHESTER) 2137,506,BOSTON (MANCHESTER) 2138,506,BOSTON (MANCHESTER) 2139,506,BOSTON (MANCHESTER) 2140,506,BOSTON (MANCHESTER) 2141,506,BOSTON (MANCHESTER) 2142,506,BOSTON (MANCHESTER) 2143,506,BOSTON (MANCHESTER) 2144,506,BOSTON (MANCHESTER) 2145,506,BOSTON (MANCHESTER) 2148,506,BOSTON (MANCHESTER) 2149,506,BOSTON (MANCHESTER) 2150,506,BOSTON (MANCHESTER) 2151,506,BOSTON (MANCHESTER) 2152,506,BOSTON (MANCHESTER) 2153,506,BOSTON (MANCHESTER) 2155,506,BOSTON (MANCHESTER) 2156,506,BOSTON (MANCHESTER) 2163,506,BOSTON (MANCHESTER) 2169,506,BOSTON (MANCHESTER) 2170,506,BOSTON (MANCHESTER) 2171,506,BOSTON (MANCHESTER) 2176,506,BOSTON (MANCHESTER) 2180,506,BOSTON (MANCHESTER) 2184,506,BOSTON (MANCHESTER) 2185,506,BOSTON (MANCHESTER) 2186,506,BOSTON (MANCHESTER) 2187,506,BOSTON (MANCHESTER) 2188,506,BOSTON (MANCHESTER) 2189,506,BOSTON (MANCHESTER) 2190,506,BOSTON (MANCHESTER) 2191,506,BOSTON (MANCHESTER) 2196,506,BOSTON (MANCHESTER) 2199,506,BOSTON (MANCHESTER) 2201,506,BOSTON (MANCHESTER) 2203,506,BOSTON (MANCHESTER) 2204,506,BOSTON (MANCHESTER) 2205,506,BOSTON (MANCHESTER) 2206,506,BOSTON (MANCHESTER) 2207,506,BOSTON (MANCHESTER) 2210,506,BOSTON (MANCHESTER) 2211,506,BOSTON (MANCHESTER) 2212,506,BOSTON (MANCHESTER) 2215,506,BOSTON (MANCHESTER) 2216,506,BOSTON (MANCHESTER) 2217,506,BOSTON (MANCHESTER) 2222,506,BOSTON (MANCHESTER) 2228,506,BOSTON (MANCHESTER) 2238,506,BOSTON (MANCHESTER) 2239,506,BOSTON (MANCHESTER) 2266,506,BOSTON (MANCHESTER) 2269,506,BOSTON (MANCHESTER) 2284,506,BOSTON (MANCHESTER) 2295,506,BOSTON (MANCHESTER) 2297,506,BOSTON (MANCHESTER) 2298,506,BOSTON (MANCHESTER) 2301,506,BOSTON (MANCHESTER) 2302,506,BOSTON (MANCHESTER) 2303,506,BOSTON (MANCHESTER) 2304,506,BOSTON (MANCHESTER) 2305,506,BOSTON (MANCHESTER) 2322,506,BOSTON (MANCHESTER) 2324,506,BOSTON (MANCHESTER) 2325,506,BOSTON (MANCHESTER) 2327,506,BOSTON (MANCHESTER) 2330,506,BOSTON (MANCHESTER) 2331,506,BOSTON (MANCHESTER) 2332,506,BOSTON (MANCHESTER) 2333,506,BOSTON (MANCHESTER) 2334,521,PROVIDENCE - NEW BEDFORD 2337,506,BOSTON (MANCHESTER) 2338,506,BOSTON (MANCHESTER) 2339,506,BOSTON (MANCHESTER) 2340,506,BOSTON (MANCHESTER) 2341,506,BOSTON (MANCHESTER) 2343,506,BOSTON (MANCHESTER) 2344,506,BOSTON (MANCHESTER) 2345,506,BOSTON (MANCHESTER) 2346,506,BOSTON (MANCHESTER) 2347,506,BOSTON (MANCHESTER) 2348,506,BOSTON (MANCHESTER) 2349,506,BOSTON (MANCHESTER) 2350,506,BOSTON (MANCHESTER) 2351,506,BOSTON (MANCHESTER) 2355,506,BOSTON (MANCHESTER) 2356,521,PROVIDENCE - NEW BEDFORD 2357,521,PROVIDENCE - NEW BEDFORD 2358,506,BOSTON (MANCHESTER) 2359,506,BOSTON (MANCHESTER) 2360,506,BOSTON (MANCHESTER) 2361,506,BOSTON (MANCHESTER) 2362,506,BOSTON (MANCHESTER) 2364,506,BOSTON (MANCHESTER) 2366,506,BOSTON (MANCHESTER) 2367,506,BOSTON (MANCHESTER) 2368,506,BOSTON (MANCHESTER) 2370,506,BOSTON (MANCHESTER) 2375,521,PROVIDENCE - NEW BEDFORD 2379,506,BOSTON (MANCHESTER) 2381,506,BOSTON (MANCHESTER) 2382,506,BOSTON (MANCHESTER) 2420,506,BOSTON (MANCHESTER) 2421,506,BOSTON (MANCHESTER) 2445,506,BOSTON (MANCHESTER) 2446,506,BOSTON (MANCHESTER) 2447,506,BOSTON (MANCHESTER) 2451,506,BOSTON (MANCHESTER) 2452,506,BOSTON (MANCHESTER) 2453,506,BOSTON (MANCHESTER) 2454,506,BOSTON (MANCHESTER) 2455,506,BOSTON (MANCHESTER) 2456,506,BOSTON (MANCHESTER) 2457,506,BOSTON (MANCHESTER) 2458,506,BOSTON (MANCHESTER) 2459,506,BOSTON (MANCHESTER) 2460,506,BOSTON (MANCHESTER) 2461,506,BOSTON (MANCHESTER) 2462,506,BOSTON (MANCHESTER) 2464,506,BOSTON (MANCHESTER) 2465,506,BOSTON (MANCHESTER) 2466,506,BOSTON (MANCHESTER) 2467,506,BOSTON (MANCHESTER) 2468,506,BOSTON (MANCHESTER) 2471,506,BOSTON (MANCHESTER) 2472,506,BOSTON (MANCHESTER) 2474,506,BOSTON (MANCHESTER) 2475,506,BOSTON (MANCHESTER) 2476,506,BOSTON (MANCHESTER) 2477,506,BOSTON (MANCHESTER) 2478,506,BOSTON (MANCHESTER) 2479,506,BOSTON (MANCHESTER) 2481,506,BOSTON (MANCHESTER) 2482,506,BOSTON (MANCHESTER) 2492,506,BOSTON (MANCHESTER) 2493,506,BOSTON (MANCHESTER) 2494,506,BOSTON (MANCHESTER) 2495,506,BOSTON (MANCHESTER) 2532,506,BOSTON (MANCHESTER) 2534,506,BOSTON (MANCHESTER) 2535,506,BOSTON (MANCHESTER) 2536,506,BOSTON (MANCHESTER) 2537,506,BOSTON (MANCHESTER) 2538,506,BOSTON (MANCHESTER) 2539,506,BOSTON (MANCHESTER) 2540,506,BOSTON (MANCHESTER) 2541,506,BOSTON (MANCHESTER) 2542,506,BOSTON (MANCHESTER) 2543,506,BOSTON (MANCHESTER) 2552,506,BOSTON (MANCHESTER) 2553,506,BOSTON (MANCHESTER) 2554,506,BOSTON (MANCHESTER) 2556,506,BOSTON (MANCHESTER) 2557,506,BOSTON (MANCHESTER) 2558,506,BOSTON (MANCHESTER) 2559,506,BOSTON (MANCHESTER) 2561,506,BOSTON (MANCHESTER) 2562,506,BOSTON (MANCHESTER) 2563,506,BOSTON (MANCHESTER) 2564,506,BOSTON (MANCHESTER) 2565,506,BOSTON (MANCHESTER) 2568,506,BOSTON (MANCHESTER) 2571,506,BOSTON (MANCHESTER) 2573,506,BOSTON (MANCHESTER) 2574,506,BOSTON (MANCHESTER) 2575,506,BOSTON (MANCHESTER) 2576,506,BOSTON (MANCHESTER) 2584,506,BOSTON (MANCHESTER) 2601,506,BOSTON (MANCHESTER) 2630,506,BOSTON (MANCHESTER) 2631,506,BOSTON (MANCHESTER) 2632,506,BOSTON (MANCHESTER) 2633,506,BOSTON (MANCHESTER) 2634,506,BOSTON (MANCHESTER) 2635,506,BOSTON (MANCHESTER) 2636,506,BOSTON (MANCHESTER) 2637,506,BOSTON (MANCHESTER) 2638,506,BOSTON (MANCHESTER) 2639,506,BOSTON (MANCHESTER) 2641,506,BOSTON (MANCHESTER) 2642,506,BOSTON (MANCHESTER) 2643,506,BOSTON (MANCHESTER) 2644,506,BOSTON (MANCHESTER) 2645,506,BOSTON (MANCHESTER) 2646,506,BOSTON (MANCHESTER) 2647,506,BOSTON (MANCHESTER) 2648,506,BOSTON (MANCHESTER) 2649,506,BOSTON (MANCHESTER) 2650,506,BOSTON (MANCHESTER) 2651,506,BOSTON (MANCHESTER) 2652,506,BOSTON (MANCHESTER) 2653,506,BOSTON (MANCHESTER) 2655,506,BOSTON (MANCHESTER) 2657,506,BOSTON (MANCHESTER) 2659,506,BOSTON (MANCHESTER) 2660,506,BOSTON (MANCHESTER) 2661,506,BOSTON (MANCHESTER) 2662,506,BOSTON (MANCHESTER) 2663,506,BOSTON (MANCHESTER) 2664,506,BOSTON (MANCHESTER) 2666,506,BOSTON (MANCHESTER) 2667,506,BOSTON (MANCHESTER) 2668,506,BOSTON (MANCHESTER) 2669,506,BOSTON (MANCHESTER) 2670,506,BOSTON (MANCHESTER) 2671,506,BOSTON (MANCHESTER) 2672,506,BOSTON (MANCHESTER) 2673,506,BOSTON (MANCHESTER) 2675,506,BOSTON (MANCHESTER) 2702,521,PROVIDENCE - NEW BEDFORD 2703,521,PROVIDENCE - NEW BEDFORD 2712,521,PROVIDENCE - NEW BEDFORD 2713,506,BOSTON (MANCHESTER) 2714,521,PROVIDENCE - NEW BEDFORD 2715,521,PROVIDENCE - NEW BEDFORD 2717,521,PROVIDENCE - NEW BEDFORD 2718,521,PROVIDENCE - NEW BEDFORD 2719,521,PROVIDENCE - NEW BEDFORD 2720,521,PROVIDENCE - NEW BEDFORD 2721,521,PROVIDENCE - NEW BEDFORD 2722,521,PROVIDENCE - NEW BEDFORD 2723,521,PROVIDENCE - NEW BEDFORD 2724,521,PROVIDENCE - NEW BEDFORD 2725,521,PROVIDENCE - NEW BEDFORD 2726,521,PROVIDENCE - NEW BEDFORD 2738,506,BOSTON (MANCHESTER) 2739,506,BOSTON (MANCHESTER) 2740,521,PROVIDENCE - NEW BEDFORD 2741,521,PROVIDENCE - NEW BEDFORD 2742,521,PROVIDENCE - NEW BEDFORD 2743,521,PROVIDENCE - NEW BEDFORD 2744,521,PROVIDENCE - NEW BEDFORD 2745,521,PROVIDENCE - NEW BEDFORD 2746,521,PROVIDENCE - NEW BEDFORD 2747,521,PROVIDENCE - NEW BEDFORD 2748,521,PROVIDENCE - NEW BEDFORD 2760,521,PROVIDENCE - NEW BEDFORD 2761,521,PROVIDENCE - NEW BEDFORD 2762,506,BOSTON (MANCHESTER) 2763,521,PROVIDENCE - NEW BEDFORD 2764,521,PROVIDENCE - NEW BEDFORD 2766,521,PROVIDENCE - NEW BEDFORD 2767,521,PROVIDENCE - NEW BEDFORD 2768,521,PROVIDENCE - NEW BEDFORD 2769,521,PROVIDENCE - NEW BEDFORD 2770,506,BOSTON (MANCHESTER) 2771,521,PROVIDENCE - NEW BEDFORD 2777,521,PROVIDENCE - NEW BEDFORD 2779,521,PROVIDENCE - NEW BEDFORD 2780,521,PROVIDENCE - NEW BEDFORD 2783,521,PROVIDENCE - NEW BEDFORD 2790,521,PROVIDENCE - NEW BEDFORD 2791,521,PROVIDENCE - NEW BEDFORD 2801,521,PROVIDENCE - NEW BEDFORD 2802,521,PROVIDENCE - NEW BEDFORD 2804,521,PROVIDENCE - NEW BEDFORD 2806,521,PROVIDENCE - NEW BEDFORD 2807,521,PROVIDENCE - NEW BEDFORD 2808,521,PROVIDENCE - NEW BEDFORD 2809,521,PROVIDENCE - NEW BEDFORD 2812,521,PROVIDENCE - NEW BEDFORD 2813,521,PROVIDENCE - NEW BEDFORD 2814,521,PROVIDENCE - NEW BEDFORD 2815,521,PROVIDENCE - NEW BEDFORD 2816,521,PROVIDENCE - NEW BEDFORD 2817,521,PROVIDENCE - NEW BEDFORD 2818,521,PROVIDENCE - NEW BEDFORD 2822,521,PROVIDENCE - NEW BEDFORD 2823,521,PROVIDENCE - NEW BEDFORD 2824,521,PROVIDENCE - NEW BEDFORD 2825,521,PROVIDENCE - NEW BEDFORD 2826,521,PROVIDENCE - NEW BEDFORD 2827,521,PROVIDENCE - NEW BEDFORD 2828,521,PROVIDENCE - NEW BEDFORD 2829,521,PROVIDENCE - NEW BEDFORD 2830,521,PROVIDENCE - NEW BEDFORD 2831,521,PROVIDENCE - NEW BEDFORD 2832,521,PROVIDENCE - NEW BEDFORD 2833,521,PROVIDENCE - NEW BEDFORD 2835,521,PROVIDENCE - NEW BEDFORD 2836,521,PROVIDENCE - NEW BEDFORD 2837,521,PROVIDENCE - NEW BEDFORD 2838,521,PROVIDENCE - NEW BEDFORD 2839,521,PROVIDENCE - NEW BEDFORD 2840,521,PROVIDENCE - NEW BEDFORD 2841,521,PROVIDENCE - NEW BEDFORD 2842,521,PROVIDENCE - NEW BEDFORD 2852,521,PROVIDENCE - NEW BEDFORD 2857,521,PROVIDENCE - NEW BEDFORD 2858,521,PROVIDENCE - NEW BEDFORD 2859,521,PROVIDENCE - NEW BEDFORD 2860,521,PROVIDENCE - NEW BEDFORD 2861,521,PROVIDENCE - NEW BEDFORD 2862,521,PROVIDENCE - NEW BEDFORD 2863,521,PROVIDENCE - NEW BEDFORD 2864,521,PROVIDENCE - NEW BEDFORD 2865,521,PROVIDENCE - NEW BEDFORD 2871,521,PROVIDENCE - NEW BEDFORD 2872,521,PROVIDENCE - NEW BEDFORD 2873,521,PROVIDENCE - NEW BEDFORD 2874,521,PROVIDENCE - NEW BEDFORD 2875,521,PROVIDENCE - NEW BEDFORD 2876,521,PROVIDENCE - NEW BEDFORD 2877,521,PROVIDENCE - NEW BEDFORD 2878,521,PROVIDENCE - NEW BEDFORD 2879,521,PROVIDENCE - NEW BEDFORD 2880,521,PROVIDENCE - NEW BEDFORD 2881,521,PROVIDENCE - NEW BEDFORD 2882,521,PROVIDENCE - NEW BEDFORD 2883,521,PROVIDENCE - NEW BEDFORD 2885,521,PROVIDENCE - NEW BEDFORD 2886,521,PROVIDENCE - NEW BEDFORD 2887,521,PROVIDENCE - NEW BEDFORD 2888,521,PROVIDENCE - NEW BEDFORD 2889,521,PROVIDENCE - NEW BEDFORD 2891,521,PROVIDENCE - NEW BEDFORD 2892,521,PROVIDENCE - NEW BEDFORD 2893,521,PROVIDENCE - NEW BEDFORD 2894,521,PROVIDENCE - NEW BEDFORD 2895,521,PROVIDENCE - NEW BEDFORD 2896,521,PROVIDENCE - NEW BEDFORD 2898,521,PROVIDENCE - NEW BEDFORD 2901,521,PROVIDENCE - NEW BEDFORD 2902,521,PROVIDENCE - NEW BEDFORD 2903,521,PROVIDENCE - NEW BEDFORD 2904,521,PROVIDENCE - NEW BEDFORD 2905,521,PROVIDENCE - NEW BEDFORD 2906,521,PROVIDENCE - NEW BEDFORD 2907,521,PROVIDENCE - NEW BEDFORD 2908,521,PROVIDENCE - NEW BEDFORD 2909,521,PROVIDENCE - NEW BEDFORD 2910,521,PROVIDENCE - NEW BEDFORD 2911,521,PROVIDENCE - NEW BEDFORD 2912,521,PROVIDENCE - NEW BEDFORD 2914,521,PROVIDENCE - NEW BEDFORD 2915,521,PROVIDENCE - NEW BEDFORD 2916,521,PROVIDENCE - NEW BEDFORD 2917,521,PROVIDENCE - NEW BEDFORD 2918,521,PROVIDENCE - NEW BEDFORD 2919,521,PROVIDENCE - NEW BEDFORD 2920,521,PROVIDENCE - NEW BEDFORD 2921,521,PROVIDENCE - NEW BEDFORD 2940,521,PROVIDENCE - NEW BEDFORD 3031,506,BOSTON (MANCHESTER) 3032,506,BOSTON (MANCHESTER) 3033,506,BOSTON (MANCHESTER) 3034,506,BOSTON (MANCHESTER) 3036,506,BOSTON (MANCHESTER) 3037,506,BOSTON (MANCHESTER) 3038,506,BOSTON (MANCHESTER) 3040,506,BOSTON (MANCHESTER) 3041,506,BOSTON (MANCHESTER) 3042,506,BOSTON (MANCHESTER) 3043,506,BOSTON (MANCHESTER) 3044,506,BOSTON (MANCHESTER) 3045,506,BOSTON (MANCHESTER) 3046,506,BOSTON (MANCHESTER) 3047,506,BOSTON (MANCHESTER) 3048,506,BOSTON (MANCHESTER) 3049,506,BOSTON (MANCHESTER) 3051,506,BOSTON (MANCHESTER) 3052,506,BOSTON (MANCHESTER) 3053,506,BOSTON (MANCHESTER) 3054,506,BOSTON (MANCHESTER) 3055,506,BOSTON (MANCHESTER) 3057,506,BOSTON (MANCHESTER) 3060,506,BOSTON (MANCHESTER) 3061,506,BOSTON (MANCHESTER) 3062,506,BOSTON (MANCHESTER) 3063,506,BOSTON (MANCHESTER) 3064,506,BOSTON (MANCHESTER) 3070,506,BOSTON (MANCHESTER) 3071,506,BOSTON (MANCHESTER) 3073,506,BOSTON (MANCHESTER) 3076,506,BOSTON (MANCHESTER) 3077,506,BOSTON (MANCHESTER) 3079,506,BOSTON (MANCHESTER) 3082,506,BOSTON (MANCHESTER) 3084,506,BOSTON (MANCHESTER) 3086,506,BOSTON (MANCHESTER) 3087,506,BOSTON (MANCHESTER) 3101,506,BOSTON (MANCHESTER) 3102,506,BOSTON (MANCHESTER) 3103,506,BOSTON (MANCHESTER) 3104,506,BOSTON (MANCHESTER) 3105,506,BOSTON (MANCHESTER) 3106,506,BOSTON (MANCHESTER) 3107,506,BOSTON (MANCHESTER) 3108,506,BOSTON (MANCHESTER) 3109,506,BOSTON (MANCHESTER) 3110,506,BOSTON (MANCHESTER) 3111,506,BOSTON (MANCHESTER) 3215,523,BURLINGTON - PLATTSBURGH 3216,506,BOSTON (MANCHESTER) 3217,523,BURLINGTON - PLATTSBURGH 3218,506,BOSTON (MANCHESTER) 3220,506,BOSTON (MANCHESTER) 3221,506,BOSTON (MANCHESTER) 3222,523,BURLINGTON - PLATTSBURGH 3223,523,BURLINGTON - PLATTSBURGH 3224,506,BOSTON (MANCHESTER) 3225,506,BOSTON (MANCHESTER) 3226,506,BOSTON (MANCHESTER) 3227,500,PORTLAND - AUBURN 3229,506,BOSTON (MANCHESTER) 3230,506,BOSTON (MANCHESTER) 3231,506,BOSTON (MANCHESTER) 3233,506,BOSTON (MANCHESTER) 3234,506,BOSTON (MANCHESTER) 3235,506,BOSTON (MANCHESTER) 3237,506,BOSTON (MANCHESTER) 3238,523,BURLINGTON - PLATTSBURGH 3240,523,BURLINGTON - PLATTSBURGH 3241,523,BURLINGTON - PLATTSBURGH 3242,506,BOSTON (MANCHESTER) 3243,506,BOSTON (MANCHESTER) 3244,506,BOSTON (MANCHESTER) 3245,523,BURLINGTON - PLATTSBURGH 3246,506,BOSTON (MANCHESTER) 3247,506,BOSTON (MANCHESTER) 3249,506,BOSTON (MANCHESTER) 3251,523,BURLINGTON - PLATTSBURGH 3252,506,BOSTON (MANCHESTER) 3253,506,BOSTON (MANCHESTER) 3254,500,PORTLAND - AUBURN 3255,506,BOSTON (MANCHESTER) 3256,506,BOSTON (MANCHESTER) 3257,506,BOSTON (MANCHESTER) 3258,506,BOSTON (MANCHESTER) 3259,500,PORTLAND - AUBURN 3260,506,BOSTON (MANCHESTER) 3261,506,BOSTON (MANCHESTER) 3262,523,BURLINGTON - PLATTSBURGH 3263,506,BOSTON (MANCHESTER) 3264,523,BURLINGTON - PLATTSBURGH 3266,523,BURLINGTON - PLATTSBURGH 3268,506,BOSTON (MANCHESTER) 3269,506,BOSTON (MANCHESTER) 3272,506,BOSTON (MANCHESTER) 3273,506,BOSTON (MANCHESTER) 3274,523,BURLINGTON - PLATTSBURGH 3275,506,BOSTON (MANCHESTER) 3276,506,BOSTON (MANCHESTER) 3278,506,BOSTON (MANCHESTER) 3279,523,BURLINGTON - PLATTSBURGH 3280,523,BURLINGTON - PLATTSBURGH 3281,506,BOSTON (MANCHESTER) 3282,523,BURLINGTON - PLATTSBURGH 3284,523,BURLINGTON - PLATTSBURGH 3285,523,BURLINGTON - PLATTSBURGH 3287,506,BOSTON (MANCHESTER) 3289,506,BOSTON (MANCHESTER) 3290,506,BOSTON (MANCHESTER) 3291,506,BOSTON (MANCHESTER) 3293,523,BURLINGTON - PLATTSBURGH 3298,506,BOSTON (MANCHESTER) 3299,506,BOSTON (MANCHESTER) 3301,506,BOSTON (MANCHESTER) 3302,506,BOSTON (MANCHESTER) 3303,506,BOSTON (MANCHESTER) 3304,506,BOSTON (MANCHESTER) 3305,506,BOSTON (MANCHESTER) 3307,506,BOSTON (MANCHESTER) 3431,506,BOSTON (MANCHESTER) 3435,506,BOSTON (MANCHESTER) 3440,506,BOSTON (MANCHESTER) 3441,506,BOSTON (MANCHESTER) 3442,506,BOSTON (MANCHESTER) 3443,506,BOSTON (MANCHESTER) 3444,506,BOSTON (MANCHESTER) 3445,506,BOSTON (MANCHESTER) 3446,506,BOSTON (MANCHESTER) 3447,506,BOSTON (MANCHESTER) 3448,506,BOSTON (MANCHESTER) 3449,506,BOSTON (MANCHESTER) 3450,506,BOSTON (MANCHESTER) 3451,506,BOSTON (MANCHESTER) 3452,506,BOSTON (MANCHESTER) 3455,506,BOSTON (MANCHESTER) 3456,506,BOSTON (MANCHESTER) 3457,506,BOSTON (MANCHESTER) 3458,506,BOSTON (MANCHESTER) 3461,506,BOSTON (MANCHESTER) 3462,506,BOSTON (MANCHESTER) 3464,506,BOSTON (MANCHESTER) 3465,506,BOSTON (MANCHESTER) 3466,506,BOSTON (MANCHESTER) 3467,506,BOSTON (MANCHESTER) 3468,506,BOSTON (MANCHESTER) 3469,506,BOSTON (MANCHESTER) 3470,506,BOSTON (MANCHESTER) 3561,523,BURLINGTON - PLATTSBURGH 3570,500,PORTLAND - AUBURN 3574,523,BURLINGTON - PLATTSBURGH 3575,500,PORTLAND - AUBURN 3576,500,PORTLAND - AUBURN 3579,500,PORTLAND - AUBURN 3580,523,BURLINGTON - PLATTSBURGH 3581,500,PORTLAND - AUBURN 3582,500,PORTLAND - AUBURN 3583,500,PORTLAND - AUBURN 3584,500,PORTLAND - AUBURN 3585,523,BURLINGTON - PLATTSBURGH 3586,523,BURLINGTON - PLATTSBURGH 3588,500,PORTLAND - AUBURN 3589,500,PORTLAND - AUBURN 3590,500,PORTLAND - AUBURN 3592,500,PORTLAND - AUBURN 3593,500,PORTLAND - AUBURN 3595,500,PORTLAND - AUBURN 3597,500,PORTLAND - AUBURN 3598,500,PORTLAND - AUBURN 3601,523,BURLINGTON - PLATTSBURGH 3602,506,BOSTON (MANCHESTER) 3603,523,BURLINGTON - PLATTSBURGH 3604,506,BOSTON (MANCHESTER) 3605,523,BURLINGTON - PLATTSBURGH 3607,523,BURLINGTON - PLATTSBURGH 3608,506,BOSTON (MANCHESTER) 3609,506,BOSTON (MANCHESTER) 3740,523,BURLINGTON - PLATTSBURGH 3741,523,BURLINGTON - PLATTSBURGH 3743,523,BURLINGTON - PLATTSBURGH 3745,523,BURLINGTON - PLATTSBURGH 3746,523,BURLINGTON - PLATTSBURGH 3748,523,BURLINGTON - PLATTSBURGH 3749,523,BURLINGTON - PLATTSBURGH 3750,523,BURLINGTON - PLATTSBURGH 3751,523,BURLINGTON - PLATTSBURGH 3752,523,BURLINGTON - PLATTSBURGH 3753,523,BURLINGTON - PLATTSBURGH 3754,523,BURLINGTON - PLATTSBURGH 3755,523,BURLINGTON - PLATTSBURGH 3756,523,BURLINGTON - PLATTSBURGH 3765,523,BURLINGTON - PLATTSBURGH 3766,523,BURLINGTON - PLATTSBURGH 3768,523,BURLINGTON - PLATTSBURGH 3769,523,BURLINGTON - PLATTSBURGH 3770,523,BURLINGTON - PLATTSBURGH 3771,523,BURLINGTON - PLATTSBURGH 3773,523,BURLINGTON - PLATTSBURGH 3774,523,BURLINGTON - PLATTSBURGH 3777,523,BURLINGTON - PLATTSBURGH 3779,523,BURLINGTON - PLATTSBURGH 3780,523,BURLINGTON - PLATTSBURGH 3781,523,BURLINGTON - PLATTSBURGH 3782,523,BURLINGTON - PLATTSBURGH 3784,523,BURLINGTON - PLATTSBURGH 3785,523,BURLINGTON - PLATTSBURGH 3801,506,BOSTON (MANCHESTER) 3802,506,BOSTON (MANCHESTER) 3803,506,BOSTON (MANCHESTER) 3804,506,BOSTON (MANCHESTER) ================================================ FILE: tests/dma_zip.html ================================================
Zip_Code DMA_Code DMA_Description
501 501 NEW YORK
544 501 NEW YORK
1001 543 SPRINGFIELD - HOLYOKE
1002 543 SPRINGFIELD - HOLYOKE
1003 543 SPRINGFIELD - HOLYOKE
1004 543 SPRINGFIELD - HOLYOKE
1005 506 BOSTON (MANCHESTER)
1007 543 SPRINGFIELD - HOLYOKE
1008 543 SPRINGFIELD - HOLYOKE
1009 543 SPRINGFIELD - HOLYOKE
1010 543 SPRINGFIELD - HOLYOKE
1011 543 SPRINGFIELD - HOLYOKE
1012 543 SPRINGFIELD - HOLYOKE
1013 543 SPRINGFIELD - HOLYOKE
1014 543 SPRINGFIELD - HOLYOKE
1020 543 SPRINGFIELD - HOLYOKE
1021 543 SPRINGFIELD - HOLYOKE
1022 543 SPRINGFIELD - HOLYOKE
1026 543 SPRINGFIELD - HOLYOKE
1027 543 SPRINGFIELD - HOLYOKE
1028 543 SPRINGFIELD - HOLYOKE
1029 532 ALBANY - SCHENECTADY - TROY
1030 543 SPRINGFIELD - HOLYOKE
1031 506 BOSTON (MANCHESTER)
1032 543 SPRINGFIELD - HOLYOKE
1033 543 SPRINGFIELD - HOLYOKE
1034 543 SPRINGFIELD - HOLYOKE
1035 543 SPRINGFIELD - HOLYOKE
1036 543 SPRINGFIELD - HOLYOKE
1037 506 BOSTON (MANCHESTER)
1038 543 SPRINGFIELD - HOLYOKE
1039 543 SPRINGFIELD - HOLYOKE
1040 543 SPRINGFIELD - HOLYOKE
1041 543 SPRINGFIELD - HOLYOKE
1050 543 SPRINGFIELD - HOLYOKE
1053 543 SPRINGFIELD - HOLYOKE
1054 543 SPRINGFIELD - HOLYOKE
1056 543 SPRINGFIELD - HOLYOKE
1057 543 SPRINGFIELD - HOLYOKE
1059 543 SPRINGFIELD - HOLYOKE
1060 543 SPRINGFIELD - HOLYOKE
1061 543 SPRINGFIELD - HOLYOKE
1062 543 SPRINGFIELD - HOLYOKE
1063 543 SPRINGFIELD - HOLYOKE
1066 543 SPRINGFIELD - HOLYOKE
1068 506 BOSTON (MANCHESTER)
1069 543 SPRINGFIELD - HOLYOKE
1070 543 SPRINGFIELD - HOLYOKE
1071 543 SPRINGFIELD - HOLYOKE
1072 543 SPRINGFIELD - HOLYOKE
1073 543 SPRINGFIELD - HOLYOKE
1074 506 BOSTON (MANCHESTER)
1075 543 SPRINGFIELD - HOLYOKE
1077 543 SPRINGFIELD - HOLYOKE
1079 543 SPRINGFIELD - HOLYOKE
1080 543 SPRINGFIELD - HOLYOKE
1081 543 SPRINGFIELD - HOLYOKE
1082 543 SPRINGFIELD - HOLYOKE
1083 506 BOSTON (MANCHESTER)
1084 543 SPRINGFIELD - HOLYOKE
1085 543 SPRINGFIELD - HOLYOKE
1086 543 SPRINGFIELD - HOLYOKE
1088 543 SPRINGFIELD - HOLYOKE
1089 543 SPRINGFIELD - HOLYOKE
1090 543 SPRINGFIELD - HOLYOKE
1092 506 BOSTON (MANCHESTER)
1093 543 SPRINGFIELD - HOLYOKE
1094 506 BOSTON (MANCHESTER)
1095 543 SPRINGFIELD - HOLYOKE
1096 543 SPRINGFIELD - HOLYOKE
1097 543 SPRINGFIELD - HOLYOKE
1098 543 SPRINGFIELD - HOLYOKE
1101 543 SPRINGFIELD - HOLYOKE
1102 543 SPRINGFIELD - HOLYOKE
1103 543 SPRINGFIELD - HOLYOKE
1104 543 SPRINGFIELD - HOLYOKE
1105 543 SPRINGFIELD - HOLYOKE
1106 543 SPRINGFIELD - HOLYOKE
1107 543 SPRINGFIELD - HOLYOKE
1108 543 SPRINGFIELD - HOLYOKE
1109 543 SPRINGFIELD - HOLYOKE
1111 543 SPRINGFIELD - HOLYOKE
1115 543 SPRINGFIELD - HOLYOKE
1116 543 SPRINGFIELD - HOLYOKE
1118 543 SPRINGFIELD - HOLYOKE
1119 543 SPRINGFIELD - HOLYOKE
1128 543 SPRINGFIELD - HOLYOKE
1129 543 SPRINGFIELD - HOLYOKE
1133 543 SPRINGFIELD - HOLYOKE
1138 543 SPRINGFIELD - HOLYOKE
1139 543 SPRINGFIELD - HOLYOKE
1144 543 SPRINGFIELD - HOLYOKE
1151 543 SPRINGFIELD - HOLYOKE
1152 543 SPRINGFIELD - HOLYOKE
1195 543 SPRINGFIELD - HOLYOKE
1199 543 SPRINGFIELD - HOLYOKE
1201 532 ALBANY - SCHENECTADY - TROY
1202 532 ALBANY - SCHENECTADY - TROY
1203 532 ALBANY - SCHENECTADY - TROY
1220 532 ALBANY - SCHENECTADY - TROY
1222 532 ALBANY - SCHENECTADY - TROY
1223 532 ALBANY - SCHENECTADY - TROY
1224 532 ALBANY - SCHENECTADY - TROY
1225 532 ALBANY - SCHENECTADY - TROY
1226 532 ALBANY - SCHENECTADY - TROY
1227 532 ALBANY - SCHENECTADY - TROY
1229 532 ALBANY - SCHENECTADY - TROY
1230 532 ALBANY - SCHENECTADY - TROY
1235 532 ALBANY - SCHENECTADY - TROY
1236 532 ALBANY - SCHENECTADY - TROY
1237 532 ALBANY - SCHENECTADY - TROY
1238 532 ALBANY - SCHENECTADY - TROY
1240 532 ALBANY - SCHENECTADY - TROY
1242 532 ALBANY - SCHENECTADY - TROY
1243 543 SPRINGFIELD - HOLYOKE
1244 532 ALBANY - SCHENECTADY - TROY
1245 532 ALBANY - SCHENECTADY - TROY
1247 532 ALBANY - SCHENECTADY - TROY
1252 532 ALBANY - SCHENECTADY - TROY
1253 532 ALBANY - SCHENECTADY - TROY
1254 532 ALBANY - SCHENECTADY - TROY
1255 532 ALBANY - SCHENECTADY - TROY
1256 532 ALBANY - SCHENECTADY - TROY
1257 532 ALBANY - SCHENECTADY - TROY
1258 532 ALBANY - SCHENECTADY - TROY
1259 532 ALBANY - SCHENECTADY - TROY
1260 532 ALBANY - SCHENECTADY - TROY
1262 532 ALBANY - SCHENECTADY - TROY
1263 532 ALBANY - SCHENECTADY - TROY
1264 532 ALBANY - SCHENECTADY - TROY
1266 532 ALBANY - SCHENECTADY - TROY
1267 532 ALBANY - SCHENECTADY - TROY
1270 532 ALBANY - SCHENECTADY - TROY
1301 543 SPRINGFIELD - HOLYOKE
1302 543 SPRINGFIELD - HOLYOKE
1330 543 SPRINGFIELD - HOLYOKE
1331 506 BOSTON (MANCHESTER)
1337 543 SPRINGFIELD - HOLYOKE
1338 543 SPRINGFIELD - HOLYOKE
1339 543 SPRINGFIELD - HOLYOKE
1340 543 SPRINGFIELD - HOLYOKE
1341 543 SPRINGFIELD - HOLYOKE
1342 543 SPRINGFIELD - HOLYOKE
1343 532 ALBANY - SCHENECTADY - TROY
1344 543 SPRINGFIELD - HOLYOKE
1346 543 SPRINGFIELD - HOLYOKE
1347 543 SPRINGFIELD - HOLYOKE
1349 543 SPRINGFIELD - HOLYOKE
1350 543 SPRINGFIELD - HOLYOKE
1351 543 SPRINGFIELD - HOLYOKE
1354 543 SPRINGFIELD - HOLYOKE
1355 543 SPRINGFIELD - HOLYOKE
1360 543 SPRINGFIELD - HOLYOKE
1364 543 SPRINGFIELD - HOLYOKE
1366 506 BOSTON (MANCHESTER)
1367 543 SPRINGFIELD - HOLYOKE
1368 506 BOSTON (MANCHESTER)
1370 543 SPRINGFIELD - HOLYOKE
1373 543 SPRINGFIELD - HOLYOKE
1375 543 SPRINGFIELD - HOLYOKE
1376 543 SPRINGFIELD - HOLYOKE
1378 543 SPRINGFIELD - HOLYOKE
1379 543 SPRINGFIELD - HOLYOKE
1380 543 SPRINGFIELD - HOLYOKE
1420 506 BOSTON (MANCHESTER)
1430 506 BOSTON (MANCHESTER)
1431 506 BOSTON (MANCHESTER)
1432 506 BOSTON (MANCHESTER)
1434 506 BOSTON (MANCHESTER)
1436 506 BOSTON (MANCHESTER)
1438 506 BOSTON (MANCHESTER)
1440 506 BOSTON (MANCHESTER)
1441 506 BOSTON (MANCHESTER)
1450 506 BOSTON (MANCHESTER)
1451 506 BOSTON (MANCHESTER)
1452 506 BOSTON (MANCHESTER)
1453 506 BOSTON (MANCHESTER)
1460 506 BOSTON (MANCHESTER)
1462 506 BOSTON (MANCHESTER)
1463 506 BOSTON (MANCHESTER)
1464 506 BOSTON (MANCHESTER)
1467 506 BOSTON (MANCHESTER)
1468 506 BOSTON (MANCHESTER)
1469 506 BOSTON (MANCHESTER)
1470 506 BOSTON (MANCHESTER)
1471 506 BOSTON (MANCHESTER)
1472 506 BOSTON (MANCHESTER)
1473 506 BOSTON (MANCHESTER)
1474 506 BOSTON (MANCHESTER)
1475 506 BOSTON (MANCHESTER)
1477 506 BOSTON (MANCHESTER)
1501 506 BOSTON (MANCHESTER)
1503 506 BOSTON (MANCHESTER)
1504 506 BOSTON (MANCHESTER)
1505 506 BOSTON (MANCHESTER)
1506 506 BOSTON (MANCHESTER)
1507 506 BOSTON (MANCHESTER)
1508 506 BOSTON (MANCHESTER)
1509 506 BOSTON (MANCHESTER)
1510 506 BOSTON (MANCHESTER)
1515 506 BOSTON (MANCHESTER)
1516 506 BOSTON (MANCHESTER)
1517 506 BOSTON (MANCHESTER)
1518 506 BOSTON (MANCHESTER)
1519 506 BOSTON (MANCHESTER)
1520 506 BOSTON (MANCHESTER)
1521 543 SPRINGFIELD - HOLYOKE
1522 506 BOSTON (MANCHESTER)
1523 506 BOSTON (MANCHESTER)
1524 506 BOSTON (MANCHESTER)
1525 506 BOSTON (MANCHESTER)
1526 506 BOSTON (MANCHESTER)
1527 506 BOSTON (MANCHESTER)
1529 506 BOSTON (MANCHESTER)
1531 506 BOSTON (MANCHESTER)
1532 506 BOSTON (MANCHESTER)
1534 506 BOSTON (MANCHESTER)
1535 506 BOSTON (MANCHESTER)
1536 506 BOSTON (MANCHESTER)
1537 506 BOSTON (MANCHESTER)
1538 506 BOSTON (MANCHESTER)
1540 506 BOSTON (MANCHESTER)
1541 506 BOSTON (MANCHESTER)
1542 506 BOSTON (MANCHESTER)
1543 506 BOSTON (MANCHESTER)
1545 506 BOSTON (MANCHESTER)
1546 506 BOSTON (MANCHESTER)
1550 506 BOSTON (MANCHESTER)
1560 506 BOSTON (MANCHESTER)
1561 506 BOSTON (MANCHESTER)
1562 506 BOSTON (MANCHESTER)
1564 506 BOSTON (MANCHESTER)
1566 506 BOSTON (MANCHESTER)
1568 506 BOSTON (MANCHESTER)
1569 506 BOSTON (MANCHESTER)
1570 506 BOSTON (MANCHESTER)
1571 506 BOSTON (MANCHESTER)
1580 506 BOSTON (MANCHESTER)
1581 506 BOSTON (MANCHESTER)
1582 506 BOSTON (MANCHESTER)
1583 506 BOSTON (MANCHESTER)
1585 506 BOSTON (MANCHESTER)
1586 506 BOSTON (MANCHESTER)
1588 506 BOSTON (MANCHESTER)
1590 506 BOSTON (MANCHESTER)
1601 506 BOSTON (MANCHESTER)
1602 506 BOSTON (MANCHESTER)
1603 506 BOSTON (MANCHESTER)
1604 506 BOSTON (MANCHESTER)
1605 506 BOSTON (MANCHESTER)
1606 506 BOSTON (MANCHESTER)
1607 506 BOSTON (MANCHESTER)
1608 506 BOSTON (MANCHESTER)
1609 506 BOSTON (MANCHESTER)
1610 506 BOSTON (MANCHESTER)
1611 506 BOSTON (MANCHESTER)
1612 506 BOSTON (MANCHESTER)
1613 506 BOSTON (MANCHESTER)
1614 506 BOSTON (MANCHESTER)
1615 506 BOSTON (MANCHESTER)
1653 506 BOSTON (MANCHESTER)
1654 506 BOSTON (MANCHESTER)
1655 506 BOSTON (MANCHESTER)
1701 506 BOSTON (MANCHESTER)
1702 506 BOSTON (MANCHESTER)
1703 506 BOSTON (MANCHESTER)
1704 506 BOSTON (MANCHESTER)
1705 506 BOSTON (MANCHESTER)
1718 506 BOSTON (MANCHESTER)
1719 506 BOSTON (MANCHESTER)
1720 506 BOSTON (MANCHESTER)
1721 506 BOSTON (MANCHESTER)
1730 506 BOSTON (MANCHESTER)
1731 506 BOSTON (MANCHESTER)
1740 506 BOSTON (MANCHESTER)
1741 506 BOSTON (MANCHESTER)
1742 506 BOSTON (MANCHESTER)
1745 506 BOSTON (MANCHESTER)
1746 506 BOSTON (MANCHESTER)
1747 506 BOSTON (MANCHESTER)
1748 506 BOSTON (MANCHESTER)
1749 506 BOSTON (MANCHESTER)
1752 506 BOSTON (MANCHESTER)
1754 506 BOSTON (MANCHESTER)
1756 506 BOSTON (MANCHESTER)
1757 506 BOSTON (MANCHESTER)
1760 506 BOSTON (MANCHESTER)
1770 506 BOSTON (MANCHESTER)
1772 506 BOSTON (MANCHESTER)
1773 506 BOSTON (MANCHESTER)
1775 506 BOSTON (MANCHESTER)
1776 506 BOSTON (MANCHESTER)
1778 506 BOSTON (MANCHESTER)
1784 506 BOSTON (MANCHESTER)
1801 506 BOSTON (MANCHESTER)
1803 506 BOSTON (MANCHESTER)
1805 506 BOSTON (MANCHESTER)
1806 506 BOSTON (MANCHESTER)
1807 506 BOSTON (MANCHESTER)
1808 506 BOSTON (MANCHESTER)
1810 506 BOSTON (MANCHESTER)
1812 506 BOSTON (MANCHESTER)
1813 506 BOSTON (MANCHESTER)
1815 506 BOSTON (MANCHESTER)
1821 506 BOSTON (MANCHESTER)
1822 506 BOSTON (MANCHESTER)
1824 506 BOSTON (MANCHESTER)
1826 506 BOSTON (MANCHESTER)
1827 506 BOSTON (MANCHESTER)
1830 506 BOSTON (MANCHESTER)
1831 506 BOSTON (MANCHESTER)
1832 506 BOSTON (MANCHESTER)
1833 506 BOSTON (MANCHESTER)
1834 506 BOSTON (MANCHESTER)
1835 506 BOSTON (MANCHESTER)
1840 506 BOSTON (MANCHESTER)
1841 506 BOSTON (MANCHESTER)
1842 506 BOSTON (MANCHESTER)
1843 506 BOSTON (MANCHESTER)
1844 506 BOSTON (MANCHESTER)
1845 506 BOSTON (MANCHESTER)
1850 506 BOSTON (MANCHESTER)
1851 506 BOSTON (MANCHESTER)
1852 506 BOSTON (MANCHESTER)
1853 506 BOSTON (MANCHESTER)
1854 506 BOSTON (MANCHESTER)
1860 506 BOSTON (MANCHESTER)
1862 506 BOSTON (MANCHESTER)
1863 506 BOSTON (MANCHESTER)
1864 506 BOSTON (MANCHESTER)
1865 506 BOSTON (MANCHESTER)
1866 506 BOSTON (MANCHESTER)
1867 506 BOSTON (MANCHESTER)
1876 506 BOSTON (MANCHESTER)
1879 506 BOSTON (MANCHESTER)
1880 506 BOSTON (MANCHESTER)
1885 506 BOSTON (MANCHESTER)
1886 506 BOSTON (MANCHESTER)
1887 506 BOSTON (MANCHESTER)
1888 506 BOSTON (MANCHESTER)
1889 506 BOSTON (MANCHESTER)
1890 506 BOSTON (MANCHESTER)
1899 506 BOSTON (MANCHESTER)
1901 506 BOSTON (MANCHESTER)
1902 506 BOSTON (MANCHESTER)
1903 506 BOSTON (MANCHESTER)
1904 506 BOSTON (MANCHESTER)
1905 506 BOSTON (MANCHESTER)
1906 506 BOSTON (MANCHESTER)
1907 506 BOSTON (MANCHESTER)
1908 506 BOSTON (MANCHESTER)
1910 506 BOSTON (MANCHESTER)
1913 506 BOSTON (MANCHESTER)
1915 506 BOSTON (MANCHESTER)
1921 506 BOSTON (MANCHESTER)
1922 506 BOSTON (MANCHESTER)
1923 506 BOSTON (MANCHESTER)
1929 506 BOSTON (MANCHESTER)
1930 506 BOSTON (MANCHESTER)
1931 506 BOSTON (MANCHESTER)
1936 506 BOSTON (MANCHESTER)
1937 506 BOSTON (MANCHESTER)
1938 506 BOSTON (MANCHESTER)
1940 506 BOSTON (MANCHESTER)
1944 506 BOSTON (MANCHESTER)
1945 506 BOSTON (MANCHESTER)
1949 506 BOSTON (MANCHESTER)
1950 506 BOSTON (MANCHESTER)
1951 506 BOSTON (MANCHESTER)
1952 506 BOSTON (MANCHESTER)
1960 506 BOSTON (MANCHESTER)
1961 506 BOSTON (MANCHESTER)
1965 506 BOSTON (MANCHESTER)
1966 506 BOSTON (MANCHESTER)
1969 506 BOSTON (MANCHESTER)
1970 506 BOSTON (MANCHESTER)
1971 506 BOSTON (MANCHESTER)
1982 506 BOSTON (MANCHESTER)
1983 506 BOSTON (MANCHESTER)
1984 506 BOSTON (MANCHESTER)
1985 506 BOSTON (MANCHESTER)
2018 506 BOSTON (MANCHESTER)
2019 506 BOSTON (MANCHESTER)
2020 506 BOSTON (MANCHESTER)
2021 506 BOSTON (MANCHESTER)
2025 506 BOSTON (MANCHESTER)
2026 506 BOSTON (MANCHESTER)
2027 506 BOSTON (MANCHESTER)
2030 506 BOSTON (MANCHESTER)
2031 521 PROVIDENCE - NEW BEDFORD
2032 506 BOSTON (MANCHESTER)
2035 506 BOSTON (MANCHESTER)
2038 506 BOSTON (MANCHESTER)
2040 506 BOSTON (MANCHESTER)
2041 506 BOSTON (MANCHESTER)
2043 506 BOSTON (MANCHESTER)
2044 506 BOSTON (MANCHESTER)
2045 506 BOSTON (MANCHESTER)
2047 506 BOSTON (MANCHESTER)
2048 521 PROVIDENCE - NEW BEDFORD
2050 506 BOSTON (MANCHESTER)
2051 506 BOSTON (MANCHESTER)
2052 506 BOSTON (MANCHESTER)
2053 506 BOSTON (MANCHESTER)
2054 506 BOSTON (MANCHESTER)
2055 506 BOSTON (MANCHESTER)
2056 506 BOSTON (MANCHESTER)
2059 506 BOSTON (MANCHESTER)
2060 506 BOSTON (MANCHESTER)
2061 506 BOSTON (MANCHESTER)
2062 506 BOSTON (MANCHESTER)
2065 506 BOSTON (MANCHESTER)
2066 506 BOSTON (MANCHESTER)
2067 506 BOSTON (MANCHESTER)
2070 506 BOSTON (MANCHESTER)
2071 506 BOSTON (MANCHESTER)
2072 506 BOSTON (MANCHESTER)
2081 506 BOSTON (MANCHESTER)
2090 506 BOSTON (MANCHESTER)
2093 506 BOSTON (MANCHESTER)
2108 506 BOSTON (MANCHESTER)
2109 506 BOSTON (MANCHESTER)
2110 506 BOSTON (MANCHESTER)
2111 506 BOSTON (MANCHESTER)
2112 506 BOSTON (MANCHESTER)
2113 506 BOSTON (MANCHESTER)
2114 506 BOSTON (MANCHESTER)
2115 506 BOSTON (MANCHESTER)
2116 506 BOSTON (MANCHESTER)
2117 506 BOSTON (MANCHESTER)
2118 506 BOSTON (MANCHESTER)
2119 506 BOSTON (MANCHESTER)
2120 506 BOSTON (MANCHESTER)
2121 506 BOSTON (MANCHESTER)
2122 506 BOSTON (MANCHESTER)
2123 506 BOSTON (MANCHESTER)
2124 506 BOSTON (MANCHESTER)
2125 506 BOSTON (MANCHESTER)
2126 506 BOSTON (MANCHESTER)
2127 506 BOSTON (MANCHESTER)
2128 506 BOSTON (MANCHESTER)
2129 506 BOSTON (MANCHESTER)
2130 506 BOSTON (MANCHESTER)
2131 506 BOSTON (MANCHESTER)
2132 506 BOSTON (MANCHESTER)
2133 506 BOSTON (MANCHESTER)
2134 506 BOSTON (MANCHESTER)
2135 506 BOSTON (MANCHESTER)
2136 506 BOSTON (MANCHESTER)
2137 506 BOSTON (MANCHESTER)
2138 506 BOSTON (MANCHESTER)
2139 506 BOSTON (MANCHESTER)
2140 506 BOSTON (MANCHESTER)
2141 506 BOSTON (MANCHESTER)
2142 506 BOSTON (MANCHESTER)
2143 506 BOSTON (MANCHESTER)
2144 506 BOSTON (MANCHESTER)
2145 506 BOSTON (MANCHESTER)
2148 506 BOSTON (MANCHESTER)
2149 506 BOSTON (MANCHESTER)
2150 506 BOSTON (MANCHESTER)
2151 506 BOSTON (MANCHESTER)
2152 506 BOSTON (MANCHESTER)
2153 506 BOSTON (MANCHESTER)
2155 506 BOSTON (MANCHESTER)
2156 506 BOSTON (MANCHESTER)
2163 506 BOSTON (MANCHESTER)
2169 506 BOSTON (MANCHESTER)
2170 506 BOSTON (MANCHESTER)
2171 506 BOSTON (MANCHESTER)
2176 506 BOSTON (MANCHESTER)
2180 506 BOSTON (MANCHESTER)
2184 506 BOSTON (MANCHESTER)
2185 506 BOSTON (MANCHESTER)
2186 506 BOSTON (MANCHESTER)
2187 506 BOSTON (MANCHESTER)
2188 506 BOSTON (MANCHESTER)
2189 506 BOSTON (MANCHESTER)
2190 506 BOSTON (MANCHESTER)
2191 506 BOSTON (MANCHESTER)
2196 506 BOSTON (MANCHESTER)
2199 506 BOSTON (MANCHESTER)
2201 506 BOSTON (MANCHESTER)
2203 506 BOSTON (MANCHESTER)
2204 506 BOSTON (MANCHESTER)
2205 506 BOSTON (MANCHESTER)
2206 506 BOSTON (MANCHESTER)
2207 506 BOSTON (MANCHESTER)
2210 506 BOSTON (MANCHESTER)
2211 506 BOSTON (MANCHESTER)
2212 506 BOSTON (MANCHESTER)
2215 506 BOSTON (MANCHESTER)
2216 506 BOSTON (MANCHESTER)
2217 506 BOSTON (MANCHESTER)
2222 506 BOSTON (MANCHESTER)
2228 506 BOSTON (MANCHESTER)
2238 506 BOSTON (MANCHESTER)
2239 506 BOSTON (MANCHESTER)
2266 506 BOSTON (MANCHESTER)
2269 506 BOSTON (MANCHESTER)
2284 506 BOSTON (MANCHESTER)
2295 506 BOSTON (MANCHESTER)
2297 506 BOSTON (MANCHESTER)
2298 506 BOSTON (MANCHESTER)
2301 506 BOSTON (MANCHESTER)
2302 506 BOSTON (MANCHESTER)
2303 506 BOSTON (MANCHESTER)
2304 506 BOSTON (MANCHESTER)
2305 506 BOSTON (MANCHESTER)
2322 506 BOSTON (MANCHESTER)
2324 506 BOSTON (MANCHESTER)
2325 506 BOSTON (MANCHESTER)
2327 506 BOSTON (MANCHESTER)
2330 506 BOSTON (MANCHESTER)
2331 506 BOSTON (MANCHESTER)
2332 506 BOSTON (MANCHESTER)
2333 506 BOSTON (MANCHESTER)
2334 521 PROVIDENCE - NEW BEDFORD
2337 506 BOSTON (MANCHESTER)
2338 506 BOSTON (MANCHESTER)
2339 506 BOSTON (MANCHESTER)
2340 506 BOSTON (MANCHESTER)
2341 506 BOSTON (MANCHESTER)
2343 506 BOSTON (MANCHESTER)
2344 506 BOSTON (MANCHESTER)
2345 506 BOSTON (MANCHESTER)
2346 506 BOSTON (MANCHESTER)
2347 506 BOSTON (MANCHESTER)
2348 506 BOSTON (MANCHESTER)
2349 506 BOSTON (MANCHESTER)
2350 506 BOSTON (MANCHESTER)
2351 506 BOSTON (MANCHESTER)
2355 506 BOSTON (MANCHESTER)
2356 521 PROVIDENCE - NEW BEDFORD
2357 521 PROVIDENCE - NEW BEDFORD
2358 506 BOSTON (MANCHESTER)
2359 506 BOSTON (MANCHESTER)
2360 506 BOSTON (MANCHESTER)
2361 506 BOSTON (MANCHESTER)
2362 506 BOSTON (MANCHESTER)
2364 506 BOSTON (MANCHESTER)
2366 506 BOSTON (MANCHESTER)
2367 506 BOSTON (MANCHESTER)
2368 506 BOSTON (MANCHESTER)
2370 506 BOSTON (MANCHESTER)
2375 521 PROVIDENCE - NEW BEDFORD
2379 506 BOSTON (MANCHESTER)
2381 506 BOSTON (MANCHESTER)
2382 506 BOSTON (MANCHESTER)
2420 506 BOSTON (MANCHESTER)
2421 506 BOSTON (MANCHESTER)
2445 506 BOSTON (MANCHESTER)
2446 506 BOSTON (MANCHESTER)
2447 506 BOSTON (MANCHESTER)
2451 506 BOSTON (MANCHESTER)
2452 506 BOSTON (MANCHESTER)
2453 506 BOSTON (MANCHESTER)
2454 506 BOSTON (MANCHESTER)
2455 506 BOSTON (MANCHESTER)
2456 506 BOSTON (MANCHESTER)
2457 506 BOSTON (MANCHESTER)
2458 506 BOSTON (MANCHESTER)
2459 506 BOSTON (MANCHESTER)
2460 506 BOSTON (MANCHESTER)
2461 506 BOSTON (MANCHESTER)
2462 506 BOSTON (MANCHESTER)
2464 506 BOSTON (MANCHESTER)
2465 506 BOSTON (MANCHESTER)
2466 506 BOSTON (MANCHESTER)
2467 506 BOSTON (MANCHESTER)
2468 506 BOSTON (MANCHESTER)
2471 506 BOSTON (MANCHESTER)
2472 506 BOSTON (MANCHESTER)
2474 506 BOSTON (MANCHESTER)
2475 506 BOSTON (MANCHESTER)
2476 506 BOSTON (MANCHESTER)
2477 506 BOSTON (MANCHESTER)
2478 506 BOSTON (MANCHESTER)
2479 506 BOSTON (MANCHESTER)
2481 506 BOSTON (MANCHESTER)
2482 506 BOSTON (MANCHESTER)
2492 506 BOSTON (MANCHESTER)
2493 506 BOSTON (MANCHESTER)
2494 506 BOSTON (MANCHESTER)
2495 506 BOSTON (MANCHESTER)
2532 506 BOSTON (MANCHESTER)
2534 506 BOSTON (MANCHESTER)
2535 506 BOSTON (MANCHESTER)
2536 506 BOSTON (MANCHESTER)
2537 506 BOSTON (MANCHESTER)
2538 506 BOSTON (MANCHESTER)
2539 506 BOSTON (MANCHESTER)
2540 506 BOSTON (MANCHESTER)
2541 506 BOSTON (MANCHESTER)
2542 506 BOSTON (MANCHESTER)
2543 506 BOSTON (MANCHESTER)
2552 506 BOSTON (MANCHESTER)
2553 506 BOSTON (MANCHESTER)
2554 506 BOSTON (MANCHESTER)
2556 506 BOSTON (MANCHESTER)
2557 506 BOSTON (MANCHESTER)
2558 506 BOSTON (MANCHESTER)
2559 506 BOSTON (MANCHESTER)
2561 506 BOSTON (MANCHESTER)
2562 506 BOSTON (MANCHESTER)
2563 506 BOSTON (MANCHESTER)
2564 506 BOSTON (MANCHESTER)
2565 506 BOSTON (MANCHESTER)
2568 506 BOSTON (MANCHESTER)
2571 506 BOSTON (MANCHESTER)
2573 506 BOSTON (MANCHESTER)
2574 506 BOSTON (MANCHESTER)
2575 506 BOSTON (MANCHESTER)
2576 506 BOSTON (MANCHESTER)
2584 506 BOSTON (MANCHESTER)
2601 506 BOSTON (MANCHESTER)
2630 506 BOSTON (MANCHESTER)
2631 506 BOSTON (MANCHESTER)
2632 506 BOSTON (MANCHESTER)
2633 506 BOSTON (MANCHESTER)
2634 506 BOSTON (MANCHESTER)
2635 506 BOSTON (MANCHESTER)
2636 506 BOSTON (MANCHESTER)
2637 506 BOSTON (MANCHESTER)
2638 506 BOSTON (MANCHESTER)
2639 506 BOSTON (MANCHESTER)
2641 506 BOSTON (MANCHESTER)
2642 506 BOSTON (MANCHESTER)
2643 506 BOSTON (MANCHESTER)
2644 506 BOSTON (MANCHESTER)
2645 506 BOSTON (MANCHESTER)
2646 506 BOSTON (MANCHESTER)
2647 506 BOSTON (MANCHESTER)
2648 506 BOSTON (MANCHESTER)
2649 506 BOSTON (MANCHESTER)
2650 506 BOSTON (MANCHESTER)
2651 506 BOSTON (MANCHESTER)
2652 506 BOSTON (MANCHESTER)
2653 506 BOSTON (MANCHESTER)
2655 506 BOSTON (MANCHESTER)
2657 506 BOSTON (MANCHESTER)
2659 506 BOSTON (MANCHESTER)
2660 506 BOSTON (MANCHESTER)
2661 506 BOSTON (MANCHESTER)
2662 506 BOSTON (MANCHESTER)
2663 506 BOSTON (MANCHESTER)
2664 506 BOSTON (MANCHESTER)
2666 506 BOSTON (MANCHESTER)
2667 506 BOSTON (MANCHESTER)
2668 506 BOSTON (MANCHESTER)
2669 506 BOSTON (MANCHESTER)
2670 506 BOSTON (MANCHESTER)
2671 506 BOSTON (MANCHESTER)
2672 506 BOSTON (MANCHESTER)
2673 506 BOSTON (MANCHESTER)
2675 506 BOSTON (MANCHESTER)
2702 521 PROVIDENCE - NEW BEDFORD
2703 521 PROVIDENCE - NEW BEDFORD
2712 521 PROVIDENCE - NEW BEDFORD
2713 506 BOSTON (MANCHESTER)
2714 521 PROVIDENCE - NEW BEDFORD
2715 521 PROVIDENCE - NEW BEDFORD
2717 521 PROVIDENCE - NEW BEDFORD
2718 521 PROVIDENCE - NEW BEDFORD
2719 521 PROVIDENCE - NEW BEDFORD
2720 521 PROVIDENCE - NEW BEDFORD
2721 521 PROVIDENCE - NEW BEDFORD
2722 521 PROVIDENCE - NEW BEDFORD
2723 521 PROVIDENCE - NEW BEDFORD
2724 521 PROVIDENCE - NEW BEDFORD
2725 521 PROVIDENCE - NEW BEDFORD
2726 521 PROVIDENCE - NEW BEDFORD
2738 506 BOSTON (MANCHESTER)
2739 506 BOSTON (MANCHESTER)
2740 521 PROVIDENCE - NEW BEDFORD
2741 521 PROVIDENCE - NEW BEDFORD
2742 521 PROVIDENCE - NEW BEDFORD
2743 521 PROVIDENCE - NEW BEDFORD
2744 521 PROVIDENCE - NEW BEDFORD
2745 521 PROVIDENCE - NEW BEDFORD
2746 521 PROVIDENCE - NEW BEDFORD
2747 521 PROVIDENCE - NEW BEDFORD
2748 521 PROVIDENCE - NEW BEDFORD
2760 521 PROVIDENCE - NEW BEDFORD
2761 521 PROVIDENCE - NEW BEDFORD
2762 506 BOSTON (MANCHESTER)
2763 521 PROVIDENCE - NEW BEDFORD
2764 521 PROVIDENCE - NEW BEDFORD
2766 521 PROVIDENCE - NEW BEDFORD
2767 521 PROVIDENCE - NEW BEDFORD
2768 521 PROVIDENCE - NEW BEDFORD
2769 521 PROVIDENCE - NEW BEDFORD
2770 506 BOSTON (MANCHESTER)
2771 521 PROVIDENCE - NEW BEDFORD
2777 521 PROVIDENCE - NEW BEDFORD
2779 521 PROVIDENCE - NEW BEDFORD
2780 521 PROVIDENCE - NEW BEDFORD
2783 521 PROVIDENCE - NEW BEDFORD
2790 521 PROVIDENCE - NEW BEDFORD
2791 521 PROVIDENCE - NEW BEDFORD
2801 521 PROVIDENCE - NEW BEDFORD
2802 521 PROVIDENCE - NEW BEDFORD
2804 521 PROVIDENCE - NEW BEDFORD
2806 521 PROVIDENCE - NEW BEDFORD
2807 521 PROVIDENCE - NEW BEDFORD
2808 521 PROVIDENCE - NEW BEDFORD
2809 521 PROVIDENCE - NEW BEDFORD
2812 521 PROVIDENCE - NEW BEDFORD
2813 521 PROVIDENCE - NEW BEDFORD
2814 521 PROVIDENCE - NEW BEDFORD
2815 521 PROVIDENCE - NEW BEDFORD
2816 521 PROVIDENCE - NEW BEDFORD
2817 521 PROVIDENCE - NEW BEDFORD
2818 521 PROVIDENCE - NEW BEDFORD
2822 521 PROVIDENCE - NEW BEDFORD
2823 521 PROVIDENCE - NEW BEDFORD
2824 521 PROVIDENCE - NEW BEDFORD
2825 521 PROVIDENCE - NEW BEDFORD
2826 521 PROVIDENCE - NEW BEDFORD
2827 521 PROVIDENCE - NEW BEDFORD
2828 521 PROVIDENCE - NEW BEDFORD
2829 521 PROVIDENCE - NEW BEDFORD
2830 521 PROVIDENCE - NEW BEDFORD
2831 521 PROVIDENCE - NEW BEDFORD
2832 521 PROVIDENCE - NEW BEDFORD
2833 521 PROVIDENCE - NEW BEDFORD
2835 521 PROVIDENCE - NEW BEDFORD
2836 521 PROVIDENCE - NEW BEDFORD
2837 521 PROVIDENCE - NEW BEDFORD
2838 521 PROVIDENCE - NEW BEDFORD
2839 521 PROVIDENCE - NEW BEDFORD
2840 521 PROVIDENCE - NEW BEDFORD
2841 521 PROVIDENCE - NEW BEDFORD
2842 521 PROVIDENCE - NEW BEDFORD
2852 521 PROVIDENCE - NEW BEDFORD
2857 521 PROVIDENCE - NEW BEDFORD
2858 521 PROVIDENCE - NEW BEDFORD
2859 521 PROVIDENCE - NEW BEDFORD
2860 521 PROVIDENCE - NEW BEDFORD
2861 521 PROVIDENCE - NEW BEDFORD
2862 521 PROVIDENCE - NEW BEDFORD
2863 521 PROVIDENCE - NEW BEDFORD
2864 521 PROVIDENCE - NEW BEDFORD
2865 521 PROVIDENCE - NEW BEDFORD
2871 521 PROVIDENCE - NEW BEDFORD
2872 521 PROVIDENCE - NEW BEDFORD
2873 521 PROVIDENCE - NEW BEDFORD
2874 521 PROVIDENCE - NEW BEDFORD
2875 521 PROVIDENCE - NEW BEDFORD
2876 521 PROVIDENCE - NEW BEDFORD
2877 521 PROVIDENCE - NEW BEDFORD
2878 521 PROVIDENCE - NEW BEDFORD
2879 521 PROVIDENCE - NEW BEDFORD
2880 521 PROVIDENCE - NEW BEDFORD
2881 521 PROVIDENCE - NEW BEDFORD
2882 521 PROVIDENCE - NEW BEDFORD
2883 521 PROVIDENCE - NEW BEDFORD
2885 521 PROVIDENCE - NEW BEDFORD
2886 521 PROVIDENCE - NEW BEDFORD
2887 521 PROVIDENCE - NEW BEDFORD
2888 521 PROVIDENCE - NEW BEDFORD
2889 521 PROVIDENCE - NEW BEDFORD
2891 521 PROVIDENCE - NEW BEDFORD
2892 521 PROVIDENCE - NEW BEDFORD
2893 521 PROVIDENCE - NEW BEDFORD
2894 521 PROVIDENCE - NEW BEDFORD
2895 521 PROVIDENCE - NEW BEDFORD
2896 521 PROVIDENCE - NEW BEDFORD
2898 521 PROVIDENCE - NEW BEDFORD
2901 521 PROVIDENCE - NEW BEDFORD
2902 521 PROVIDENCE - NEW BEDFORD
2903 521 PROVIDENCE - NEW BEDFORD
2904 521 PROVIDENCE - NEW BEDFORD
2905 521 PROVIDENCE - NEW BEDFORD
2906 521 PROVIDENCE - NEW BEDFORD
2907 521 PROVIDENCE - NEW BEDFORD
2908 521 PROVIDENCE - NEW BEDFORD
2909 521 PROVIDENCE - NEW BEDFORD
2910 521 PROVIDENCE - NEW BEDFORD
2911 521 PROVIDENCE - NEW BEDFORD
2912 521 PROVIDENCE - NEW BEDFORD
2914 521 PROVIDENCE - NEW BEDFORD
2915 521 PROVIDENCE - NEW BEDFORD
2916 521 PROVIDENCE - NEW BEDFORD
2917 521 PROVIDENCE - NEW BEDFORD
2918 521 PROVIDENCE - NEW BEDFORD
2919 521 PROVIDENCE - NEW BEDFORD
2920 521 PROVIDENCE - NEW BEDFORD
2921 521 PROVIDENCE - NEW BEDFORD
2940 521 PROVIDENCE - NEW BEDFORD
3031 506 BOSTON (MANCHESTER)
3032 506 BOSTON (MANCHESTER)
3033 506 BOSTON (MANCHESTER)
3034 506 BOSTON (MANCHESTER)
3036 506 BOSTON (MANCHESTER)
3037 506 BOSTON (MANCHESTER)
3038 506 BOSTON (MANCHESTER)
3040 506 BOSTON (MANCHESTER)
3041 506 BOSTON (MANCHESTER)
3042 506 BOSTON (MANCHESTER)
3043 506 BOSTON (MANCHESTER)
3044 506 BOSTON (MANCHESTER)
3045 506 BOSTON (MANCHESTER)
3046 506 BOSTON (MANCHESTER)
3047 506 BOSTON (MANCHESTER)
3048 506 BOSTON (MANCHESTER)
3049 506 BOSTON (MANCHESTER)
3051 506 BOSTON (MANCHESTER)
3052 506 BOSTON (MANCHESTER)
3053 506 BOSTON (MANCHESTER)
3054 506 BOSTON (MANCHESTER)
3055 506 BOSTON (MANCHESTER)
3057 506 BOSTON (MANCHESTER)
3060 506 BOSTON (MANCHESTER)
3061 506 BOSTON (MANCHESTER)
3062 506 BOSTON (MANCHESTER)
3063 506 BOSTON (MANCHESTER)
3064 506 BOSTON (MANCHESTER)
3070 506 BOSTON (MANCHESTER)
3071 506 BOSTON (MANCHESTER)
3073 506 BOSTON (MANCHESTER)
3076 506 BOSTON (MANCHESTER)
3077 506 BOSTON (MANCHESTER)
3079 506 BOSTON (MANCHESTER)
3082 506 BOSTON (MANCHESTER)
3084 506 BOSTON (MANCHESTER)
3086 506 BOSTON (MANCHESTER)
3087 506 BOSTON (MANCHESTER)
3101 506 BOSTON (MANCHESTER)
3102 506 BOSTON (MANCHESTER)
3103 506 BOSTON (MANCHESTER)
3104 506 BOSTON (MANCHESTER)
3105 506 BOSTON (MANCHESTER)
3106 506 BOSTON (MANCHESTER)
3107 506 BOSTON (MANCHESTER)
3108 506 BOSTON (MANCHESTER)
3109 506 BOSTON (MANCHESTER)
3110 506 BOSTON (MANCHESTER)
3111 506 BOSTON (MANCHESTER)
3215 523 BURLINGTON - PLATTSBURGH
3216 506 BOSTON (MANCHESTER)
3217 523 BURLINGTON - PLATTSBURGH
3218 506 BOSTON (MANCHESTER)
3220 506 BOSTON (MANCHESTER)
3221 506 BOSTON (MANCHESTER)
3222 523 BURLINGTON - PLATTSBURGH
3223 523 BURLINGTON - PLATTSBURGH
3224 506 BOSTON (MANCHESTER)
3225 506 BOSTON (MANCHESTER)
3226 506 BOSTON (MANCHESTER)
3227 500 PORTLAND - AUBURN
3229 506 BOSTON (MANCHESTER)
3230 506 BOSTON (MANCHESTER)
3231 506 BOSTON (MANCHESTER)
3233 506 BOSTON (MANCHESTER)
3234 506 BOSTON (MANCHESTER)
3235 506 BOSTON (MANCHESTER)
3237 506 BOSTON (MANCHESTER)
3238 523 BURLINGTON - PLATTSBURGH
3240 523 BURLINGTON - PLATTSBURGH
3241 523 BURLINGTON - PLATTSBURGH
3242 506 BOSTON (MANCHESTER)
3243 506 BOSTON (MANCHESTER)
3244 506 BOSTON (MANCHESTER)
3245 523 BURLINGTON - PLATTSBURGH
3246 506 BOSTON (MANCHESTER)
3247 506 BOSTON (MANCHESTER)
3249 506 BOSTON (MANCHESTER)
3251 523 BURLINGTON - PLATTSBURGH
3252 506 BOSTON (MANCHESTER)
3253 506 BOSTON (MANCHESTER)
3254 500 PORTLAND - AUBURN
3255 506 BOSTON (MANCHESTER)
3256 506 BOSTON (MANCHESTER)
3257 506 BOSTON (MANCHESTER)
3258 506 BOSTON (MANCHESTER)
3259 500 PORTLAND - AUBURN
3260 506 BOSTON (MANCHESTER)
3261 506 BOSTON (MANCHESTER)
3262 523 BURLINGTON - PLATTSBURGH
3263 506 BOSTON (MANCHESTER)
3264 523 BURLINGTON - PLATTSBURGH
3266 523 BURLINGTON - PLATTSBURGH
3268 506 BOSTON (MANCHESTER)
3269 506 BOSTON (MANCHESTER)
3272 506 BOSTON (MANCHESTER)
3273 506 BOSTON (MANCHESTER)
3274 523 BURLINGTON - PLATTSBURGH
3275 506 BOSTON (MANCHESTER)
3276 506 BOSTON (MANCHESTER)
3278 506 BOSTON (MANCHESTER)
3279 523 BURLINGTON - PLATTSBURGH
3280 523 BURLINGTON - PLATTSBURGH
3281 506 BOSTON (MANCHESTER)
3282 523 BURLINGTON - PLATTSBURGH
3284 523 BURLINGTON - PLATTSBURGH
3285 523 BURLINGTON - PLATTSBURGH
3287 506 BOSTON (MANCHESTER)
3289 506 BOSTON (MANCHESTER)
3290 506 BOSTON (MANCHESTER)
3291 506 BOSTON (MANCHESTER)
3293 523 BURLINGTON - PLATTSBURGH
3298 506 BOSTON (MANCHESTER)
3299 506 BOSTON (MANCHESTER)
3301 506 BOSTON (MANCHESTER)
3302 506 BOSTON (MANCHESTER)
3303 506 BOSTON (MANCHESTER)
3304 506 BOSTON (MANCHESTER)
3305 506 BOSTON (MANCHESTER)
3307 506 BOSTON (MANCHESTER)
3431 506 BOSTON (MANCHESTER)
3435 506 BOSTON (MANCHESTER)
3440 506 BOSTON (MANCHESTER)
3441 506 BOSTON (MANCHESTER)
3442 506 BOSTON (MANCHESTER)
3443 506 BOSTON (MANCHESTER)
3444 506 BOSTON (MANCHESTER)
3445 506 BOSTON (MANCHESTER)
3446 506 BOSTON (MANCHESTER)
3447 506 BOSTON (MANCHESTER)
3448 506 BOSTON (MANCHESTER)
3449 506 BOSTON (MANCHESTER)
3450 506 BOSTON (MANCHESTER)
3451 506 BOSTON (MANCHESTER)
3452 506 BOSTON (MANCHESTER)
3455 506 BOSTON (MANCHESTER)
3456 506 BOSTON (MANCHESTER)
3457 506 BOSTON (MANCHESTER)
3458 506 BOSTON (MANCHESTER)
3461 506 BOSTON (MANCHESTER)
3462 506 BOSTON (MANCHESTER)
3464 506 BOSTON (MANCHESTER)
3465 506 BOSTON (MANCHESTER)
3466 506 BOSTON (MANCHESTER)
3467 506 BOSTON (MANCHESTER)
3468 506 BOSTON (MANCHESTER)
3469 506 BOSTON (MANCHESTER)
3470 506 BOSTON (MANCHESTER)
3561 523 BURLINGTON - PLATTSBURGH
3570 500 PORTLAND - AUBURN
3574 523 BURLINGTON - PLATTSBURGH
3575 500 PORTLAND - AUBURN
3576 500 PORTLAND - AUBURN
3579 500 PORTLAND - AUBURN
3580 523 BURLINGTON - PLATTSBURGH
3581 500 PORTLAND - AUBURN
3582 500 PORTLAND - AUBURN
3583 500 PORTLAND - AUBURN
3584 500 PORTLAND - AUBURN
3585 523 BURLINGTON - PLATTSBURGH
3586 523 BURLINGTON - PLATTSBURGH
3588 500 PORTLAND - AUBURN
3589 500 PORTLAND - AUBURN
3590 500 PORTLAND - AUBURN
3592 500 PORTLAND - AUBURN
3593 500 PORTLAND - AUBURN
3595 500 PORTLAND - AUBURN
3597 500 PORTLAND - AUBURN
3598 500 PORTLAND - AUBURN
3601 523 BURLINGTON - PLATTSBURGH
3602 506 BOSTON (MANCHESTER)
3603 523 BURLINGTON - PLATTSBURGH
3604 506 BOSTON (MANCHESTER)
3605 523 BURLINGTON - PLATTSBURGH
3607 523 BURLINGTON - PLATTSBURGH
3608 506 BOSTON (MANCHESTER)
3609 506 BOSTON (MANCHESTER)
3740 523 BURLINGTON - PLATTSBURGH
3741 523 BURLINGTON - PLATTSBURGH
3743 523 BURLINGTON - PLATTSBURGH
3745 523 BURLINGTON - PLATTSBURGH
3746 523 BURLINGTON - PLATTSBURGH
3748 523 BURLINGTON - PLATTSBURGH
3749 523 BURLINGTON - PLATTSBURGH
3750 523 BURLINGTON - PLATTSBURGH
3751 523 BURLINGTON - PLATTSBURGH
3752 523 BURLINGTON - PLATTSBURGH
3753 523 BURLINGTON - PLATTSBURGH
3754 523 BURLINGTON - PLATTSBURGH
3755 523 BURLINGTON - PLATTSBURGH
3756 523 BURLINGTON - PLATTSBURGH
3765 523 BURLINGTON - PLATTSBURGH
3766 523 BURLINGTON - PLATTSBURGH
3768 523 BURLINGTON - PLATTSBURGH
3769 523 BURLINGTON - PLATTSBURGH
3770 523 BURLINGTON - PLATTSBURGH
3771 523 BURLINGTON - PLATTSBURGH
3773 523 BURLINGTON - PLATTSBURGH
3774 523 BURLINGTON - PLATTSBURGH
3777 523 BURLINGTON - PLATTSBURGH
3779 523 BURLINGTON - PLATTSBURGH
3780 523 BURLINGTON - PLATTSBURGH
3781 523 BURLINGTON - PLATTSBURGH
3782 523 BURLINGTON - PLATTSBURGH
3784 523 BURLINGTON - PLATTSBURGH
3785 523 BURLINGTON - PLATTSBURGH
3801 506 BOSTON (MANCHESTER)
3802 506 BOSTON (MANCHESTER)
3803 506 BOSTON (MANCHESTER)
3804 506 BOSTON (MANCHESTER)
================================================ FILE: tests/dma_zip.json ================================================ {"schema": {"fields":[{"name":"Zip_Code","type":"integer"},{"name":"DMA_Code","type":"integer"},{"name":"DMA_Description","type":"string"}],"primaryKey":["Zip_Code"],"pandas_version":"0.20.0"}, "data": [{"Zip_Code":501,"DMA_Code":501,"DMA_Description":"NEW YORK"},{"Zip_Code":544,"DMA_Code":501,"DMA_Description":"NEW YORK"},{"Zip_Code":1001,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1002,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1003,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1004,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1005,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1007,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1008,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1009,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1010,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1011,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1012,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1013,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1014,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1020,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1021,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1022,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1026,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1027,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1028,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1029,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1030,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1031,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1032,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1033,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1034,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1035,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1036,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1037,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1038,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1039,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1040,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1041,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1050,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1053,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1054,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1056,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1057,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1059,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1060,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1061,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1062,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1063,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1066,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1068,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1069,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1070,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1071,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1072,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1073,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1074,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1075,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1077,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1079,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1080,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1081,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1082,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1083,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1084,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1085,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1086,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1088,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1089,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1090,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1092,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1093,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1094,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1095,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1096,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1097,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1098,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1101,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1102,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1103,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1104,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1105,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1106,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1107,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1108,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1109,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1111,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1115,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1116,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1118,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1119,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1128,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1129,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1133,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1138,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1139,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1144,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1151,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1152,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1195,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1199,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1201,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1202,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1203,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1220,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1222,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1223,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1224,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1225,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1226,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1227,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1229,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1230,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1235,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1236,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1237,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1238,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1240,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1242,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1243,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1244,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1245,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1247,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1252,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1253,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1254,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1255,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1256,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1257,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1258,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1259,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1260,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1262,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1263,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1264,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1266,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1267,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1270,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1301,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1302,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1330,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1331,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1337,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1338,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1339,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1340,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1341,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1342,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1343,"DMA_Code":532,"DMA_Description":"ALBANY - SCHENECTADY - TROY"},{"Zip_Code":1344,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1346,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1347,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1349,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1350,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1351,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1354,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1355,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1360,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1364,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1366,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1367,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1368,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1370,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1373,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1375,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1376,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1378,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1379,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1380,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1420,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1430,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1431,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1432,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1434,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1436,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1438,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1440,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1441,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1450,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1451,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1452,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1453,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1460,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1462,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1463,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1464,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1467,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1468,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1469,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1470,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1471,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1472,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1473,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1474,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1475,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1477,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1501,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1503,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1504,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1505,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1506,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1507,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1508,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1509,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1510,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1515,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1516,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1517,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1518,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1519,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1520,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1521,"DMA_Code":543,"DMA_Description":"SPRINGFIELD - HOLYOKE"},{"Zip_Code":1522,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1523,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1524,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1525,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1526,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1527,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1529,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1531,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1532,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1534,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1535,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1536,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1537,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1538,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1540,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1541,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1542,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1543,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1545,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1546,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1550,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1560,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1561,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1562,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1564,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1566,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1568,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1569,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1570,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1571,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1580,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1581,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1582,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1583,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1585,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1586,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1588,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1590,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1601,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1602,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1603,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1604,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1605,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1606,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1607,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1608,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1609,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1610,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1611,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1612,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1613,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1614,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1615,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1653,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1654,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1655,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1701,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1702,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1703,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1704,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1705,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1718,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1719,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1720,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1721,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1730,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1731,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1740,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1741,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1742,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1745,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1746,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1747,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1748,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1749,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1752,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1754,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1756,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1757,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1760,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1770,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1772,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1773,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1775,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1776,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1778,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1784,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1801,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1803,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1805,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1806,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1807,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1808,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1810,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1812,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1813,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1815,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1821,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1822,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1824,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1826,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1827,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1830,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1831,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1832,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1833,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1834,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1835,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1840,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1841,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1842,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1843,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1844,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1845,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1850,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1851,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1852,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1853,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1854,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1860,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1862,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1863,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1864,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1865,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1866,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1867,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1876,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1879,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1880,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1885,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1886,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1887,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1888,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1889,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1890,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1899,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1901,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1902,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1903,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1904,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1905,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1906,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1907,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1908,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1910,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1913,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1915,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1921,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1922,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1923,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1929,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1930,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1931,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1936,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1937,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1938,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1940,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1944,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1945,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1949,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1950,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1951,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1952,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1960,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1961,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1965,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1966,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1969,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1970,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1971,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1982,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1983,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1984,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":1985,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2018,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2019,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2020,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2021,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2025,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2026,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2027,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2030,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2031,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2032,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2035,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2038,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2040,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2041,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2043,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2044,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2045,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2047,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2048,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2050,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2051,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2052,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2053,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2054,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2055,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2056,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2059,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2060,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2061,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2062,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2065,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2066,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2067,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2070,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2071,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2072,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2081,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2090,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2093,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2108,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2109,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2110,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2111,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2112,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2113,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2114,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2115,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2116,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2117,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2118,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2119,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2120,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2121,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2122,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2123,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2124,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2125,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2126,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2127,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2128,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2129,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2130,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2131,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2132,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2133,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2134,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2135,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2136,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2137,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2138,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2139,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2140,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2141,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2142,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2143,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2144,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2145,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2148,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2149,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2150,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2151,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2152,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2153,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2155,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2156,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2163,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2169,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2170,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2171,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2176,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2180,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2184,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2185,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2186,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2187,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2188,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2189,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2190,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2191,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2196,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2199,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2201,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2203,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2204,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2205,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2206,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2207,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2210,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2211,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2212,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2215,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2216,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2217,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2222,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2228,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2238,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2239,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2266,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2269,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2284,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2295,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2297,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2298,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2301,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2302,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2303,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2304,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2305,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2322,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2324,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2325,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2327,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2330,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2331,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2332,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2333,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2334,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2337,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2338,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2339,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2340,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2341,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2343,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2344,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2345,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2346,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2347,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2348,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2349,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2350,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2351,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2355,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2356,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2357,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2358,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2359,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2360,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2361,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2362,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2364,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2366,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2367,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2368,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2370,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2375,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2379,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2381,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2382,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2420,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2421,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2445,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2446,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2447,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2451,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2452,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2453,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2454,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2455,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2456,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2457,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2458,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2459,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2460,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2461,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2462,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2464,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2465,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2466,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2467,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2468,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2471,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2472,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2474,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2475,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2476,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2477,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2478,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2479,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2481,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2482,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2492,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2493,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2494,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2495,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2532,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2534,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2535,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2536,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2537,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2538,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2539,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2540,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2541,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2542,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2543,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2552,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2553,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2554,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2556,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2557,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2558,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2559,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2561,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2562,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2563,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2564,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2565,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2568,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2571,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2573,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2574,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2575,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2576,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2584,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2601,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2630,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2631,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2632,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2633,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2634,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2635,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2636,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2637,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2638,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2639,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2641,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2642,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2643,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2644,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2645,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2646,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2647,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2648,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2649,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2650,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2651,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2652,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2653,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2655,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2657,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2659,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2660,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2661,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2662,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2663,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2664,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2666,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2667,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2668,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2669,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2670,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2671,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2672,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2673,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2675,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2702,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2703,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2712,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2713,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2714,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2715,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2717,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2718,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2719,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2720,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2721,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2722,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2723,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2724,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2725,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2726,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2738,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2739,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2740,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2741,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2742,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2743,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2744,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2745,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2746,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2747,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2748,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2760,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2761,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2762,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2763,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2764,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2766,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2767,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2768,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2769,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2770,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":2771,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2777,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2779,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2780,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2783,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2790,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2791,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2801,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2802,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2804,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2806,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2807,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2808,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2809,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2812,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2813,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2814,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2815,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2816,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2817,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2818,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2822,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2823,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2824,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2825,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2826,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2827,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2828,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2829,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2830,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2831,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2832,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2833,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2835,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2836,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2837,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2838,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2839,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2840,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2841,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2842,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2852,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2857,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2858,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2859,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2860,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2861,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2862,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2863,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2864,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2865,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2871,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2872,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2873,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2874,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2875,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2876,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2877,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2878,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2879,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2880,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2881,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2882,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2883,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2885,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2886,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2887,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2888,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2889,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2891,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2892,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2893,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2894,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2895,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2896,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2898,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2901,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2902,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2903,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2904,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2905,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2906,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2907,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2908,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2909,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2910,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2911,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2912,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2914,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2915,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2916,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2917,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2918,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2919,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2920,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2921,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":2940,"DMA_Code":521,"DMA_Description":"PROVIDENCE - NEW BEDFORD"},{"Zip_Code":3031,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3032,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3033,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3034,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3036,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3037,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3038,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3040,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3041,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3042,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3043,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3044,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3045,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3046,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3047,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3048,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3049,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3051,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3052,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3053,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3054,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3055,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3057,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3060,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3061,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3062,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3063,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3064,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3070,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3071,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3073,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3076,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3077,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3079,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3082,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3084,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3086,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3087,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3101,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3102,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3103,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3104,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3105,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3106,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3107,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3108,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3109,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3110,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3111,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3215,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3216,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3217,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3218,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3220,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3221,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3222,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3223,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3224,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3225,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3226,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3227,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3229,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3230,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3231,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3233,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3234,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3235,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3237,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3238,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3240,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3241,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3242,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3243,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3244,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3245,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3246,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3247,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3249,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3251,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3252,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3253,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3254,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3255,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3256,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3257,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3258,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3259,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3260,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3261,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3262,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3263,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3264,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3266,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3268,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3269,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3272,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3273,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3274,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3275,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3276,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3278,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3279,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3280,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3281,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3282,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3284,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3285,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3287,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3289,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3290,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3291,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3293,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3298,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3299,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3301,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3302,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3303,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3304,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3305,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3307,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3431,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3435,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3440,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3441,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3442,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3443,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3444,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3445,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3446,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3447,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3448,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3449,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3450,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3451,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3452,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3455,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3456,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3457,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3458,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3461,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3462,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3464,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3465,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3466,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3467,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3468,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3469,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3470,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3561,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3570,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3574,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3575,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3576,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3579,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3580,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3581,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3582,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3583,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3584,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3585,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3586,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3588,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3589,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3590,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3592,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3593,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3595,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3597,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3598,"DMA_Code":500,"DMA_Description":"PORTLAND - AUBURN"},{"Zip_Code":3601,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3602,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3603,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3604,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3605,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3607,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3608,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3609,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3740,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3741,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3743,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3745,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3746,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3748,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3749,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3750,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3751,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3752,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3753,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3754,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3755,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3756,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3765,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3766,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3768,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3769,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3770,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3771,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3773,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3774,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3777,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3779,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3780,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3781,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3782,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3784,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3785,"DMA_Code":523,"DMA_Description":"BURLINGTON - PLATTSBURGH"},{"Zip_Code":3801,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3802,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3803,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"},{"Zip_Code":3804,"DMA_Code":506,"DMA_Description":"BOSTON (MANCHESTER)"}]} ================================================ FILE: tests/pytest.ini ================================================ [pytest] addopts = -p no:warnings markers = longrun: long running test nlp: tests that require the nlp extension ================================================ FILE: tests/setup/campaigns.csv ================================================ id,name,category,partner_id,created_at 1,"Campaign 1A",fruits,1,"2019-03-26 21:02:15" 2,"Campaign 2A",vegetables,1,"2019-03-26 21:02:15" 3,"Campaign 1B",fruits,2,"2019-03-26 21:02:15" 4,"Campaign 2B",vegetables,2,"2019-03-26 21:02:15" 5,"Campaign 1C",fruits,3,"2019-03-26 21:02:15" 6,"Campaign 2C",vegetables,3,"2019-03-26 21:02:15" ================================================ FILE: tests/setup/common.sqlite.sql ================================================ DROP TABLE IF EXISTS partners; CREATE TABLE IF NOT EXISTS partners ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); DROP TABLE IF EXISTS partner_sibling; CREATE TABLE IF NOT EXISTS partner_sibling ( partner_id INTEGER PRIMARY KEY, sibling_dim VARCHAR NOT NULL UNIQUE ); DROP TABLE IF EXISTS campaigns; CREATE TABLE IF NOT EXISTS campaigns ( id INTEGER PRIMARY KEY, name VARCHAR NOT NULL UNIQUE, category VARCHAR NOT NULL, partner_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ================================================ FILE: tests/setup/create_testdb2_sqlite.py ================================================ from sqlite3 import connect, Row from test_utils import get_testdb_url from tlbx import st, rmfile, shell CREATE_AGGREGATED_STATS = """CREATE TABLE aggregated_stats ( partner_id int, campaign_id int, leads int default 0, sales int default 0, revenue decimal(10,2) default 0.0, primary key (partner_id, campaign_id)) """ LOAD_AGGREGATED_STATS = """REPLACE INTO aggregated_stats SELECT c.partner_id, c.id as campaign_id, count(distinct l.id) as leads, count(distinct s.id) as sales, sum(s.revenue) as revenue from testdb1.sales s join testdb1.leads l on s.lead_id=l.id join testdb1.campaigns c on l.campaign_id=c.id group by 1,2 """ if __name__ == "__main__": rmfile("testdb2", ignore_missing=True) shell("touch testdb2") conn = connect("testdb2") cursor = conn.cursor() with open("common.sqlite.sql", "r") as sql_file: sql_script = sql_file.read() cursor.executescript(sql_script) conn.commit() cursor.execute('ATTACH DATABASE "testdb1" AS testdb1') cursor.execute("REPLACE into partners SELECT * FROM testdb1.partners") cursor.execute("REPLACE into campaigns SELECT * FROM testdb1.campaigns") cursor.execute(CREATE_AGGREGATED_STATS) cursor.execute(LOAD_AGGREGATED_STATS) conn.commit() ================================================ FILE: tests/setup/duckdb/load.sql ================================================ ================================================ FILE: tests/setup/duckdb/schema.sql ================================================ ================================================ FILE: tests/setup/init_mysql_data.sh ================================================ #! /usr/bin/env bash # Exit in case of error set -e docker exec -i `docker-compose ps -q mysql | xargs docker inspect --format '{{ .Name }}' | sed 's/\/\(.*\)/\1/'` mysql -u root zillion_test < zillion_test.mysql.sql ================================================ FILE: tests/setup/init_postgres_data.sh ================================================ #! /usr/bin/env bash # Exit in case of error set -e docker exec -i -u postgres `docker-compose ps -q postgres | xargs docker inspect --format '{{ .Name }}' | sed 's/\/\(.*\)/\1/'` psql -U postgres -d zillion_test < zillion_test.postgres.sql ================================================ FILE: tests/setup/leads.csv ================================================ id,name,campaign_id,created_at 1,"John Doe",1,"2020-04-30 23:24:11" 2,"Jane Doe",1,"2020-04-30 23:24:11" 3,"Jim Doe",2,"2020-04-30 23:24:11" 4,"Jeff Doe",2,"2020-04-30 23:24:11" 5,"Jeremy Doe",3,"2020-04-30 23:24:11" 6,"Jessica Doe",4,"2020-04-30 23:24:11" 7,"Jay Doe",5,"2020-04-30 23:24:11" 8,,5,"2020-04-30 23:24:11" ================================================ FILE: tests/setup/partner_sibling.csv ================================================ partner_id,sibling_dim 1,"Partner A Sibling Dim" 2,"Partner B Sibling Dim" ================================================ FILE: tests/setup/partners.csv ================================================ id,name,created_at 1,"Partner A","2019-03-26 21:02:15" 2,"Partner B","2019-03-26 21:02:15" 3,"Partner C","2019-03-26 21:02:15" ================================================ FILE: tests/setup/sales.csv ================================================ id,item,quantity,revenue,lead_id,created_at 1,apple,10,10,1,"2020-04-30 23:24:11" 2,orange,15,7,1,"2020-04-30 23:24:11" 3,lemon,11,30,1,"2020-04-30 23:24:11" 4,lime,12,24,1,"2020-04-30 23:24:11" 5,lemon,20,12,2,"2020-04-30 23:24:11" 6,lettuce,30,8,3,"2020-04-30 23:24:11" 7,potato,21,18,3,"2020-04-30 23:24:11" 8,broccoli,25,17,3,"2020-04-30 23:24:11" 9,potato,5,11,4,"2020-04-30 23:24:11" 10,cauliflower,50,17,4,"2020-04-30 23:24:11" 11,broccoli,25,11,4,"2020-04-30 23:24:11" 12,apple,35,6,5,"2020-04-30 23:24:11" 13,lettuce,12,13,6,"2020-04-30 23:24:11" 14,orange,18,7.5,7,"2020-04-30 23:24:11" 15,apple,24,15,7,"2020-04-30 23:24:11" 16,lemon,36,9,7,"2020-04-30 23:24:11" 17,lime,25,46,7,"2020-04-30 23:24:11" 18,clementine,32,41,7,"2020-04-30 23:24:11" ================================================ FILE: tests/setup/testdb1.sqlite.sql ================================================ DROP TABLE IF EXISTS leads; CREATE TABLE IF NOT EXISTS leads ( id INTEGER PRIMARY KEY, name VARCHAR DEFAULT NULL, campaign_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); DROP TABLE IF EXISTS sales; CREATE TABLE IF NOT EXISTS sales ( id INTEGER PRIMARY KEY, item VARCHAR NOT NULL, quantity INTEGER NOT NULL, revenue DECIMAL(10, 2), lead_id INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT OR IGNORE INTO partners (name, created_at) VALUES ('Partner A', '2019-03-26 21:02:15'); INSERT OR IGNORE INTO partners (name, created_at) VALUES ('Partner B', '2019-03-26 21:02:15'); INSERT OR IGNORE INTO partners (name, created_at) VALUES ('Partner C', '2019-03-26 21:02:15'); INSERT OR IGNORE INTO partner_sibling (partner_id, sibling_dim) VALUES (1, "Partner A Sibling Dim"); INSERT OR IGNORE INTO partner_sibling (partner_id, sibling_dim) VALUES (2, "Partner B Sibling Dim"); INSERT OR IGNORE INTO campaigns (name, category, partner_id, created_at) VALUES ('Campaign 1A', 'fruits', 1, '2019-03-26 21:02:15'); INSERT OR IGNORE INTO campaigns (name, category, partner_id, created_at) VALUES ('Campaign 2A', 'vegetables', 1, '2019-03-26 21:02:15'); INSERT OR IGNORE INTO campaigns (name, category, partner_id, created_at) VALUES ('Campaign 1B', 'fruits', 2, '2019-03-26 21:02:15'); INSERT OR IGNORE INTO campaigns (name, category, partner_id, created_at) VALUES ('Campaign 2B', 'vegetables', 2, '2019-03-26 21:02:15'); INSERT OR IGNORE INTO campaigns (name, category, partner_id, created_at) VALUES ('Campaign 1C', 'fruits', 3, '2019-03-26 21:02:15'); INSERT OR IGNORE INTO campaigns (name, category, partner_id, created_at) VALUES ('Campaign 2C', 'vegetables', 3, '2019-03-26 21:02:15'); INSERT INTO leads (id, name, campaign_id, created_at) VALUES (1, 'John Doe', 1, '2020-04-30 23:24:11'); INSERT INTO leads (id, name, campaign_id, created_at) VALUES (2, 'Jane Doe', 1, '2020-04-30 23:24:11'); INSERT INTO leads (id, name, campaign_id, created_at) VALUES (3, 'Jim Doe', 2, '2020-04-30 23:24:11'); INSERT INTO leads (id, name, campaign_id, created_at) VALUES (4, 'Jeff Doe', 2, '2020-04-30 23:24:11'); INSERT INTO leads (id, name, campaign_id, created_at) VALUES (5, 'Jeremy Doe', 3, '2020-04-30 23:24:11'); INSERT INTO leads (id, name, campaign_id, created_at) VALUES (6, 'Jessica Doe', 4, '2020-04-30 23:24:11'); INSERT INTO leads (id, name, campaign_id, created_at) VALUES (7, 'Jay Doe', 5, '2020-04-30 23:24:11'); INSERT INTO leads (id, name, campaign_id, created_at) VALUES (8, NULL, 5, '2020-04-30 23:24:11'); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('apple', 10, 10.0, 1, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('orange', 15, 7.0, 1, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('lemon', 11, 30.0, 1, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('lime', 12, 24.0, 1, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('lemon', 20, 12.0, 2, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('lettuce', 30, 8.0, 3, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('potato', 21, 18.0, 3, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('broccoli', 25, 17.0, 3, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('potato', 5, 11.0, 4, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('cauliflower', 50, 17.0, 4, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('broccoli', 25, 11.0, 4, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('apple', 35, 6.0, 5, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('lettuce', 12, 13.0, 6, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('orange', 18, 7.5, 7, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('apple', 24, 15.0, 7, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('lemon', 36, 9.0, 7, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('lime', 25, 46.0, 7, "2020-04-30 23:24:11"); INSERT INTO sales (item, quantity, revenue, lead_id, created_at) VALUES ('clementine', 32, 41.0, 7, "2020-04-30 23:24:11"); ================================================ FILE: tests/setup/zillion_db.sqlite.sql ================================================ CREATE TABLE IF NOT EXISTS warehouses ( id INTEGER NOT NULL, name VARCHAR(128) NOT NULL, params TEXT NOT NULL, meta TEXT, created_at DATETIME DEFAULT (CURRENT_TIMESTAMP), PRIMARY KEY (id), UNIQUE (name) ); CREATE TABLE IF NOT EXISTS report_specs ( id INTEGER NOT NULL, warehouse_id INTEGER NOT NULL, params TEXT, meta TEXT, created_at DATETIME DEFAULT (CURRENT_TIMESTAMP), PRIMARY KEY (id) ); ================================================ FILE: tests/setup/zillion_test.mysql.sql ================================================ -- MySQL dump 10.13 Distrib 5.7.28, for osx10.14 (x86_64) -- -- Host: localhost Database: zillion_test -- ------------------------------------------------------ -- Server version 5.7.28 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Current Database: `zillion_test` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `zillion_test` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `zillion_test`; -- -- Table structure for table `campaign_cost` -- DROP TABLE IF EXISTS `campaign_cost`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `campaign_cost` ( `campaign_id` int(11) NOT NULL, `cost` decimal(10,2) DEFAULT NULL, `clicks` int(11) DEFAULT NULL, PRIMARY KEY (`campaign_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `campaign_cost` -- LOCK TABLES `campaign_cost` WRITE; /*!40000 ALTER TABLE `campaign_cost` DISABLE KEYS */; INSERT INTO `campaign_cost` VALUES (1,10.00,25),(2,15.00,35),(3,14.00,24),(4,18.00,85),(5,8.00,16),(6,12.00,15); /*!40000 ALTER TABLE `campaign_cost` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `campaigns` -- DROP TABLE IF EXISTS `campaigns`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `campaigns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `category` varchar(50) NOT NULL, `partner_id` int(11) NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `idx_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `campaigns` -- LOCK TABLES `campaigns` WRITE; /*!40000 ALTER TABLE `campaigns` DISABLE KEYS */; INSERT INTO `campaigns` VALUES (1,'Campaign 1A','fruits',1,'2019-03-26 21:02:15'),(2,'Campaign 2A','vegetables',1,'2019-03-26 21:02:15'),(3,'Campaign 1B','fruits',2,'2019-03-26 21:02:15'),(4,'Campaign 2B','vegetables',2,'2019-03-26 21:02:15'),(5,'Campaign 1C','fruits',3,'2019-03-26 21:02:15'),(6,'Campaign 2C','vegetables',3,'2019-03-26 21:02:15'); /*!40000 ALTER TABLE `campaigns` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `partners` -- DROP TABLE IF EXISTS `partners`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `partners` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `idx_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `partners` -- LOCK TABLES `partners` WRITE; /*!40000 ALTER TABLE `partners` DISABLE KEYS */; INSERT INTO `partners` VALUES (1,'Partner A','2019-03-26 21:02:15'),(2,'Partner B','2019-03-26 21:02:15'),(3,'Partner C','2019-03-26 21:02:15'); /*!40000 ALTER TABLE `partners` ENABLE KEYS */; UNLOCK TABLES; -- -- Current Database: `zillion_test2` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `zillion_test2` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `zillion_test2`; -- -- Table structure for table `campaign_transactions` -- DROP TABLE IF EXISTS `campaign_transactions`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `campaign_transactions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `campaign_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `idx_campaign_id` (`campaign_id`) ) ENGINE=InnoDB AUTO_INCREMENT=99001 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `campaign_transactions` -- LOCK TABLES `campaign_transactions` WRITE; /*!40000 ALTER TABLE `campaign_transactions` DISABLE KEYS */; INSERT INTO `campaign_transactions` VALUES (3,1),(5,1),(9,1),(13,1),(23,1),(29,1),(35,1),(36,1),(43,1),(52,1),(55,1),(60,1),(61,1),(62,1),(72,1),(89,1),(92,1),(97,1),(109,1),(128,1),(136,1),(140,1),(151,1),(153,1),(167,1),(168,1),(173,1),(175,1),(185,1),(189,1),(190,1),(196,1),(199,1),(201,1),(204,1),(211,1),(216,1),(225,1),(226,1),(236,1),(244,1),(258,1),(269,1),(271,1),(278,1),(280,1),(296,1),(310,1),(316,1),(326,1),(331,1),(332,1),(334,1),(342,1),(355,1),(359,1),(360,1),(364,1),(365,1),(369,1),(385,1),(387,1),(395,1),(397,1),(402,1),(411,1),(425,1),(426,1),(432,1),(435,1),(462,1),(464,1),(468,1),(475,1),(476,1),(485,1),(494,1),(499,1),(503,1),(506,1),(520,1),(522,1),(523,1),(524,1),(528,1),(530,1),(544,1),(547,1),(579,1),(583,1),(588,1),(591,1),(598,1),(599,1),(604,1),(608,1),(610,1),(626,1),(639,1),(642,1),(649,1),(651,1),(658,1),(659,1),(672,1),(675,1),(678,1),(681,1),(683,1),(698,1),(729,1),(746,1),(753,1),(754,1),(760,1),(763,1),(765,1),(771,1),(774,1),(785,1),(793,1),(806,1),(807,1),(814,1),(837,1),(846,1),(849,1),(859,1),(865,1),(866,1),(872,1),(877,1),(879,1),(881,1),(898,1),(899,1),(902,1),(903,1),(907,1),(911,1),(916,1),(947,1),(952,1),(957,1),(958,1),(961,1),(971,1),(972,1),(975,1),(994,1),(997,1),(1001,1),(1002,1),(1011,1),(1019,1),(1026,1),(1032,1),(1046,1),(1053,1),(1055,1),(1061,1),(1062,1),(1068,1),(1070,1),(1071,1),(1098,1),(1100,1),(1102,1),(1104,1),(1107,1),(1110,1),(1126,1),(1128,1),(1134,1),(1136,1),(1137,1),(1142,1),(1145,1),(1146,1),(1149,1),(1150,1),(1174,1),(1179,1),(1186,1),(1190,1),(1192,1),(1194,1),(1205,1),(1207,1),(1209,1),(1220,1),(1228,1),(1244,1),(1252,1),(1257,1),(1258,1),(1259,1),(1260,1),(1265,1),(1266,1),(1269,1),(1273,1),(1274,1),(1278,1),(1280,1),(1291,1),(1297,1),(1301,1),(1312,1),(1315,1),(1322,1),(1325,1),(1331,1),(1332,1),(1333,1),(1337,1),(1349,1),(1359,1),(1366,1),(1391,1),(1394,1),(1396,1),(1404,1),(1405,1),(1412,1),(1417,1),(1425,1),(1431,1),(1436,1),(1448,1),(1456,1),(1474,1),(1475,1),(1476,1),(1477,1),(1497,1),(1498,1),(1506,1),(1510,1),(1511,1),(1514,1),(1515,1),(1525,1),(1528,1),(1568,1),(1569,1),(1573,1),(1574,1),(1578,1),(1593,1),(1595,1),(1598,1),(1621,1),(1644,1),(1648,1),(1650,1),(1655,1),(1658,1),(1674,1),(1683,1),(1691,1),(1692,1),(1699,1),(1703,1),(1717,1),(1734,1),(1758,1),(1764,1),(1767,1),(1773,1),(1777,1),(1781,1),(1786,1),(1787,1),(1796,1),(1799,1),(1805,1),(1815,1),(1819,1),(1828,1),(1829,1),(1836,1),(1843,1),(1844,1),(1851,1),(1853,1),(1876,1),(1882,1),(1884,1),(1889,1),(1895,1),(1897,1),(1901,1),(1905,1),(1907,1),(1913,1),(1914,1),(1926,1),(1931,1),(1935,1),(1942,1),(1945,1),(1962,1),(1967,1),(1969,1),(1974,1),(1977,1),(1978,1),(1985,1),(1988,1),(1989,1),(1992,1),(1995,1),(2002,1),(2005,1),(2011,1),(2012,1),(2020,1),(2021,1),(2022,1),(2028,1),(2029,1),(2030,1),(2039,1),(2042,1),(2051,1),(2061,1),(2067,1),(2076,1),(2106,1),(2125,1),(2130,1),(2131,1),(2134,1),(2141,1),(2142,1),(2151,1),(2155,1),(2163,1),(2164,1),(2165,1),(2172,1),(2198,1),(2199,1),(2214,1),(2223,1),(2235,1),(2239,1),(2242,1),(2247,1),(2257,1),(2273,1),(2276,1),(2287,1),(2290,1),(2303,1),(2311,1),(2334,1),(2339,1),(2344,1),(2347,1),(2350,1),(2353,1),(2369,1),(2383,1),(2385,1),(2388,1),(2389,1),(2396,1),(2404,1),(2411,1),(2412,1),(2422,1),(2441,1),(2446,1),(2456,1),(2459,1),(2462,1),(2473,1),(2475,1),(2478,1),(2488,1),(2499,1),(2500,1),(2504,1),(2505,1),(2507,1),(2511,1),(2513,1),(2515,1),(2517,1),(2525,1),(2541,1),(2546,1),(2549,1),(2550,1),(2562,1),(2572,1),(2574,1),(2586,1),(2596,1),(2599,1),(2604,1),(2605,1),(2627,1),(2631,1),(2634,1),(2637,1),(2640,1),(2647,1),(2661,1),(2669,1),(2670,1),(2682,1),(2685,1),(2686,1),(2712,1),(2715,1),(2718,1),(2719,1),(2724,1),(2730,1),(2736,1),(2741,1),(2744,1),(2774,1),(2779,1),(2786,1),(2790,1),(2791,1),(2792,1),(2798,1),(2801,1),(2810,1),(2812,1),(2813,1),(2817,1),(2823,1),(2825,1),(2826,1),(2829,1),(2835,1),(2844,1),(2847,1),(2849,1),(2858,1),(2872,1),(2874,1),(2878,1),(2880,1),(2890,1),(2895,1),(2897,1),(2919,1),(2921,1),(2925,1),(2943,1),(2945,1),(2946,1),(2954,1),(2958,1),(2965,1),(2978,1),(2983,1),(2984,1),(3006,1),(3010,1),(3012,1),(3027,1),(3031,1),(3032,1),(3034,1),(3044,1),(3053,1),(3054,1),(3056,1),(3065,1),(3085,1),(3092,1),(3093,1),(3101,1),(3105,1),(3111,1),(3128,1),(3142,1),(3152,1),(3158,1),(3164,1),(3167,1),(3168,1),(3178,1),(3179,1),(3221,1),(3224,1),(3230,1),(3231,1),(3235,1),(3236,1),(3239,1),(3245,1),(3246,1),(3248,1),(3249,1),(3251,1),(3252,1),(3264,1),(3271,1),(3276,1),(3277,1),(3287,1),(3288,1),(3309,1),(3310,1),(3316,1),(3318,1),(3319,1),(3323,1),(3329,1),(3333,1),(3341,1),(3342,1),(3346,1),(3362,1),(3365,1),(3366,1),(3373,1),(3376,1),(3377,1),(3380,1),(3382,1),(3388,1),(3390,1),(3393,1),(3395,1),(3405,1),(3411,1),(3419,1),(3433,1),(3440,1),(3441,1),(3446,1),(3447,1),(3455,1),(3464,1),(3468,1),(3470,1),(3471,1),(3475,1),(3476,1),(3479,1),(3484,1),(3487,1),(3488,1),(3492,1),(3509,1),(3524,1),(3528,1),(3529,1),(3541,1),(3544,1),(3549,1),(3557,1),(3564,1),(3578,1),(3579,1),(3582,1),(3584,1),(3590,1),(3601,1),(3609,1),(3611,1),(3615,1),(3622,1),(3625,1),(3628,1),(3641,1),(3644,1),(3650,1),(3660,1),(3670,1),(3679,1),(3696,1),(3703,1),(3714,1),(3719,1),(3720,1),(3721,1),(3736,1),(3740,1),(3742,1),(3743,1),(3748,1),(3750,1),(3755,1),(3764,1),(3768,1),(3790,1),(3793,1),(3797,1),(3807,1),(3814,1),(3816,1),(3817,1),(3821,1),(3823,1),(3831,1),(3848,1),(3851,1),(3857,1),(3870,1),(3872,1),(3876,1),(3889,1),(3894,1),(3912,1),(3937,1),(3941,1),(3950,1),(3951,1),(3960,1),(3961,1),(3965,1),(3966,1),(3981,1),(3984,1),(3994,1),(4007,1),(4019,1),(4020,1),(4022,1),(4026,1),(4034,1),(4046,1),(4051,1),(4058,1),(4065,1),(4067,1),(4069,1),(4073,1),(4077,1),(4083,1),(4089,1),(4091,1),(4095,1),(4097,1),(4104,1),(4114,1),(4117,1),(4118,1),(4119,1),(4120,1),(4133,1),(4137,1),(4148,1),(4154,1),(4156,1),(4164,1),(4166,1),(4167,1),(4171,1),(4181,1),(4202,1),(4215,1),(4223,1),(4224,1),(4227,1),(4230,1),(4231,1),(4237,1),(4243,1),(4255,1),(4272,1),(4284,1),(4287,1),(4289,1),(4291,1),(4297,1),(4307,1),(4314,1),(4315,1),(4316,1),(4317,1),(4318,1),(4319,1),(4328,1),(4341,1),(4361,1),(4367,1),(4371,1),(4376,1),(4382,1),(4387,1),(4390,1),(4394,1),(4398,1),(4402,1),(4403,1),(4404,1),(4415,1),(4423,1),(4424,1),(4430,1),(4446,1),(4448,1),(4459,1),(4464,1),(4470,1),(4479,1),(4481,1),(4485,1),(4506,1),(4510,1),(4517,1),(4520,1),(4523,1),(4527,1),(4536,1),(4541,1),(4549,1),(4567,1),(4572,1),(4575,1),(4576,1),(4577,1),(4587,1),(4592,1),(4593,1),(4595,1),(4600,1),(4612,1),(4622,1),(4623,1),(4629,1),(4631,1),(4640,1),(4642,1),(4651,1),(4656,1),(4663,1),(4665,1),(4683,1),(4689,1),(4693,1),(4697,1),(4698,1),(4711,1),(4715,1),(4718,1),(4719,1),(4724,1),(4727,1),(4737,1),(4740,1),(4747,1),(4752,1),(4756,1),(4759,1),(4768,1),(4779,1),(4793,1),(4794,1),(4796,1),(4799,1),(4802,1),(4809,1),(4823,1),(4829,1),(4838,1),(4839,1),(4840,1),(4844,1),(4846,1),(4852,1),(4855,1),(4865,1),(4866,1),(4875,1),(4877,1),(4887,1),(4889,1),(4890,1),(4893,1),(4895,1),(4896,1),(4899,1),(4901,1),(4906,1),(4916,1),(4922,1),(4939,1),(4943,1),(4944,1),(4962,1),(4963,1),(4972,1),(4976,1),(4979,1),(4980,1),(4986,1),(4989,1),(5003,1),(5016,1),(5039,1),(5042,1),(5044,1),(5047,1),(5065,1),(5068,1),(5072,1),(5075,1),(5081,1),(5082,1),(5085,1),(5089,1),(5091,1),(5106,1),(5109,1),(5110,1),(5113,1),(5120,1),(5133,1),(5137,1),(5146,1),(5162,1),(5163,1),(5164,1),(5168,1),(5180,1),(5188,1),(5194,1),(5205,1),(5211,1),(5218,1),(5225,1),(5232,1),(5233,1),(5240,1),(5241,1),(5247,1),(5253,1),(5263,1),(5268,1),(5269,1),(5276,1),(5277,1),(5284,1),(5295,1),(5296,1),(5297,1),(5303,1),(5306,1),(5312,1),(5321,1),(5326,1),(5340,1),(5353,1),(5354,1),(5357,1),(5365,1),(5373,1),(5395,1),(5397,1),(5402,1),(5410,1),(5412,1),(5419,1),(5423,1),(5428,1),(5432,1),(5441,1),(5442,1),(5445,1),(5451,1),(5453,1),(5458,1),(5476,1),(5482,1),(5486,1),(5488,1),(5489,1),(5505,1),(5506,1),(5511,1),(5515,1),(5517,1),(5532,1),(5543,1),(5552,1),(5565,1),(5567,1),(5581,1),(5582,1),(5589,1),(5594,1),(5598,1),(5613,1),(5617,1),(5621,1),(5623,1),(5627,1),(5635,1),(5648,1),(5651,1),(5659,1),(5663,1),(5666,1),(5673,1),(5674,1),(5702,1),(5710,1),(5713,1),(5719,1),(5721,1),(5722,1),(5723,1),(5739,1),(5744,1),(5745,1),(5754,1),(5761,1),(5763,1),(5766,1),(5770,1),(5781,1),(5784,1),(5807,1),(5811,1),(5813,1),(5814,1),(5817,1),(5818,1),(5820,1),(5836,1),(5843,1),(5845,1),(5847,1),(5849,1),(5850,1),(5851,1),(5852,1),(5856,1),(5863,1),(5876,1),(5900,1),(5908,1),(5915,1),(5918,1),(5929,1),(5932,1),(5933,1),(5942,1),(5944,1),(5951,1),(5953,1),(5964,1),(5972,1),(5980,1),(5983,1),(5987,1),(5993,1),(5994,1),(5995,1),(5998,1),(5999,1),(6010,1),(6021,1),(6025,1),(6026,1),(6028,1),(6050,1),(6052,1),(6053,1),(6055,1),(6068,1),(6071,1),(6080,1),(6084,1),(6112,1),(6120,1),(6127,1),(6129,1),(6131,1),(6134,1),(6143,1),(6148,1),(6151,1),(6170,1),(6171,1),(6175,1),(6177,1),(6178,1),(6200,1),(6215,1),(6220,1),(6226,1),(6238,1),(6240,1),(6241,1),(6251,1),(6253,1),(6259,1),(6277,1),(6281,1),(6295,1),(6303,1),(6306,1),(6307,1),(6318,1),(6327,1),(6331,1),(6339,1),(6341,1),(6344,1),(6346,1),(6348,1),(6355,1),(6356,1),(6366,1),(6367,1),(6371,1),(6376,1),(6377,1),(6393,1),(6412,1),(6429,1),(6432,1),(6433,1),(6436,1),(6445,1),(6446,1),(6452,1),(6460,1),(6463,1),(6482,1),(6483,1),(6493,1),(6495,1),(6497,1),(6516,1),(6517,1),(6522,1),(6540,1),(6543,1),(6547,1),(6548,1),(6551,1),(6554,1),(6564,1),(6569,1),(6574,1),(6595,1),(6603,1),(6605,1),(6610,1),(6621,1),(6626,1),(6636,1),(6637,1),(6648,1),(6649,1),(6651,1),(6654,1),(6655,1),(6667,1),(6669,1),(6680,1),(6684,1),(6686,1),(6695,1),(6697,1),(6703,1),(6707,1),(6708,1),(6716,1),(6717,1),(6718,1),(6729,1),(6741,1),(6745,1),(6750,1),(6755,1),(6758,1),(6763,1),(6764,1),(6765,1),(6768,1),(6772,1),(6781,1),(6787,1),(6791,1),(6792,1),(6795,1),(6796,1),(6800,1),(6804,1),(6805,1),(6806,1),(6820,1),(6826,1),(6827,1),(6829,1),(6833,1),(6838,1),(6848,1),(6860,1),(6864,1),(6867,1),(6869,1),(6870,1),(6872,1),(6874,1),(6882,1),(6883,1),(6887,1),(6893,1),(6898,1),(6916,1),(6926,1),(6927,1),(6930,1),(6936,1),(6942,1),(6946,1),(6952,1),(6981,1),(6991,1),(6996,1),(7011,1),(7016,1),(7019,1),(7023,1),(7024,1),(7050,1),(7063,1),(7065,1),(7071,1),(7077,1),(7080,1),(7081,1),(7085,1),(7089,1),(7098,1),(7109,1),(7112,1),(7123,1),(7126,1),(7148,1),(7155,1),(7156,1),(7157,1),(7160,1),(7161,1),(7163,1),(7174,1),(7177,1),(7178,1),(7195,1),(7205,1),(7208,1),(7209,1),(7218,1),(7226,1),(7234,1),(7246,1),(7250,1),(7251,1),(7254,1),(7256,1),(7272,1),(7285,1),(7304,1),(7305,1),(7319,1),(7339,1),(7344,1),(7350,1),(7351,1),(7358,1),(7360,1),(7367,1),(7371,1),(7372,1),(7382,1),(7384,1),(7387,1),(7390,1),(7397,1),(7403,1),(7410,1),(7412,1),(7414,1),(7428,1),(7429,1),(7438,1),(7447,1),(7448,1),(7452,1),(7458,1),(7459,1),(7464,1),(7465,1),(7468,1),(7471,1),(7473,1),(7478,1),(7483,1),(7489,1),(7493,1),(7495,1),(7508,1),(7514,1),(7525,1),(7529,1),(7540,1),(7579,1),(7580,1),(7584,1),(7585,1),(7595,1),(7596,1),(7599,1),(7606,1),(7608,1),(7610,1),(7618,1),(7621,1),(7626,1),(7634,1),(7639,1),(7651,1),(7663,1),(7666,1),(7671,1),(7672,1),(7679,1),(7680,1),(7691,1),(7692,1),(7696,1),(7706,1),(7711,1),(7713,1),(7720,1),(7752,1),(7758,1),(7759,1),(7768,1),(7770,1),(7783,1),(7787,1),(7790,1),(7792,1),(7814,1),(7816,1),(7821,1),(7824,1),(7828,1),(7843,1),(7851,1),(7853,1),(7856,1),(7860,1),(7861,1),(7884,1),(7899,1),(7916,1),(7922,1),(7924,1),(7933,1),(7940,1),(7943,1),(7944,1),(7948,1),(7958,1),(7960,1),(7961,1),(7962,1),(7964,1),(7990,1),(7992,1),(7996,1),(8013,1),(8020,1),(8022,1),(8026,1),(8031,1),(8032,1),(8034,1),(8044,1),(8050,1),(8066,1),(8067,1),(8079,1),(8094,1),(8096,1),(8097,1),(8108,1),(8114,1),(8115,1),(8121,1),(8122,1),(8134,1),(8139,1),(8140,1),(8143,1),(8156,1),(8162,1),(8171,1),(8178,1),(8179,1),(8184,1),(8190,1),(8192,1),(8196,1),(8197,1),(8198,1),(8199,1),(8200,1),(8204,1),(8229,1),(8230,1),(8239,1),(8244,1),(8248,1),(8260,1),(8278,1),(8279,1),(8290,1),(8291,1),(8294,1),(8295,1),(8297,1),(8301,1),(8320,1),(8326,1),(8343,1),(8351,1),(8352,1),(8358,1),(8365,1),(8372,1),(8374,1),(8378,1),(8389,1),(8390,1),(8403,1),(8408,1),(8411,1),(8422,1),(8423,1),(8432,1),(8441,1),(8448,1),(8450,1),(8451,1),(8458,1),(8462,1),(8467,1),(8468,1),(8470,1),(8471,1),(8485,1),(8494,1),(8507,1),(8512,1),(8515,1),(8520,1),(8535,1),(8541,1),(8544,1),(8545,1),(8548,1),(8561,1),(8563,1),(8565,1),(8568,1),(8573,1),(8577,1),(8578,1),(8580,1),(8589,1),(8598,1),(8600,1),(8601,1),(8603,1),(8621,1),(8638,1),(8645,1),(8658,1),(8664,1),(8687,1),(8691,1),(8693,1),(8696,1),(8697,1),(8699,1),(8718,1),(8732,1),(8733,1),(8752,1),(8756,1),(8757,1),(8761,1),(8762,1),(8763,1),(8764,1),(8765,1),(8776,1),(8792,1),(8797,1),(8800,1),(8807,1),(8812,1),(8813,1),(8825,1),(8835,1),(8837,1),(8842,1),(8843,1),(8846,1),(8861,1),(8863,1),(8865,1),(8882,1),(8883,1),(8884,1),(8889,1),(8902,1),(8916,1),(8920,1),(8921,1),(8928,1),(8929,1),(8933,1),(8938,1),(8939,1),(8947,1),(8960,1),(8970,1),(8972,1),(8977,1),(8987,1),(8999,1),(9010,1),(9023,1),(9028,1),(9030,1),(9037,1),(9038,1),(9040,1),(9044,1),(9045,1),(9054,1),(9062,1),(9063,1),(9071,1),(9075,1),(9077,1),(9081,1),(9085,1),(9086,1),(9090,1),(9096,1),(9100,1),(9101,1),(9107,1),(9108,1),(9111,1),(9114,1),(9118,1),(9129,1),(9130,1),(9135,1),(9138,1),(9139,1),(9173,1),(9175,1),(9202,1),(9212,1),(9220,1),(9241,1),(9249,1),(9252,1),(9255,1),(9258,1),(9259,1),(9268,1),(9270,1),(9272,1),(9276,1),(9277,1),(9280,1),(9284,1),(9285,1),(9296,1),(9297,1),(9309,1),(9326,1),(9329,1),(9331,1),(9338,1),(9350,1),(9353,1),(9355,1),(9359,1),(9362,1),(9373,1),(9374,1),(9386,1),(9391,1),(9395,1),(9399,1),(9420,1),(9434,1),(9439,1),(9440,1),(9441,1),(9444,1),(9445,1),(9447,1),(9466,1),(9503,1),(9505,1),(9511,1),(9513,1),(9515,1),(9516,1),(9517,1),(9519,1),(9529,1),(9538,1),(9539,1),(9540,1),(9544,1),(9547,1),(9550,1),(9562,1),(9563,1),(9573,1),(9577,1),(9579,1),(9583,1),(9592,1),(9605,1),(9606,1),(9608,1),(9609,1),(9610,1),(9617,1),(9618,1),(9641,1),(9649,1),(9651,1),(9658,1),(9660,1),(9685,1),(9691,1),(9693,1),(9697,1),(9698,1),(9703,1),(9704,1),(9706,1),(9713,1),(9715,1),(9718,1),(9731,1),(9736,1),(9743,1),(9757,1),(9758,1),(9766,1),(9775,1),(9778,1),(9785,1),(9787,1),(9790,1),(9795,1),(9797,1),(9803,1),(9814,1),(9836,1),(9838,1),(9849,1),(9860,1),(9862,1),(9870,1),(9882,1),(9898,1),(9901,1),(9910,1),(9915,1),(9926,1),(9929,1),(9956,1),(9959,1),(9971,1),(9978,1),(9979,1),(9985,1),(9990,1),(9995,1),(9996,1),(10010,1),(10013,1),(10027,1),(10028,1),(10029,1),(10040,1),(10052,1),(10064,1),(10066,1),(10068,1),(10073,1),(10076,1),(10081,1),(10090,1),(10098,1),(10100,1),(10102,1),(10104,1),(10118,1),(10122,1),(10131,1),(10137,1),(10152,1),(10156,1),(10158,1),(10164,1),(10180,1),(10181,1),(10198,1),(10201,1),(10224,1),(10225,1),(10228,1),(10235,1),(10238,1),(10241,1),(10251,1),(10266,1),(10274,1),(10275,1),(10280,1),(10283,1),(10284,1),(10287,1),(10293,1),(10305,1),(10306,1),(10311,1),(10315,1),(10317,1),(10333,1),(10336,1),(10338,1),(10349,1),(10351,1),(10355,1),(10356,1),(10367,1),(10369,1),(10371,1),(10380,1),(10381,1),(10382,1),(10393,1),(10394,1),(10399,1),(10416,1),(10424,1),(10440,1),(10444,1),(10455,1),(10466,1),(10479,1),(10490,1),(10493,1),(10499,1),(10506,1),(10508,1),(10532,1),(10534,1),(10537,1),(10552,1),(10554,1),(10559,1),(10562,1),(10578,1),(10580,1),(10591,1),(10594,1),(10618,1),(10620,1),(10627,1),(10630,1),(10651,1),(10654,1),(10660,1),(10661,1),(10663,1),(10671,1),(10679,1),(10681,1),(10689,1),(10707,1),(10709,1),(10716,1),(10718,1),(10720,1),(10735,1),(10746,1),(10747,1),(10757,1),(10760,1),(10762,1),(10765,1),(10768,1),(10772,1),(10778,1),(10788,1),(10797,1),(10801,1),(10805,1),(10807,1),(10808,1),(10809,1),(10810,1),(10815,1),(10820,1),(10825,1),(10827,1),(10842,1),(10847,1),(10856,1),(10860,1),(10862,1),(10869,1),(10873,1),(10875,1),(10879,1),(10880,1),(10895,1),(10897,1),(10901,1),(10915,1),(10917,1),(10925,1),(10929,1),(10949,1),(10955,1),(10960,1),(10963,1),(10965,1),(10976,1),(10982,1),(10983,1),(10984,1),(10986,1),(10988,1),(10990,1),(11001,1),(11002,1),(11016,1),(11020,1),(11028,1),(11029,1),(11032,1),(11044,1),(11047,1),(11048,1),(11050,1),(11053,1),(11057,1),(11071,1),(11077,1),(11078,1),(11079,1),(11091,1),(11093,1),(11097,1),(11100,1),(11101,1),(11107,1),(11114,1),(11119,1),(11120,1),(11126,1),(11139,1),(11141,1),(11142,1),(11144,1),(11145,1),(11152,1),(11154,1),(11174,1),(11182,1),(11193,1),(11194,1),(11219,1),(11222,1),(11225,1),(11242,1),(11246,1),(11249,1),(11250,1),(11255,1),(11260,1),(11268,1),(11275,1),(11277,1),(11295,1),(11302,1),(11310,1),(11311,1),(11312,1),(11314,1),(11315,1),(11325,1),(11328,1),(11330,1),(11338,1),(11341,1),(11344,1),(11354,1),(11365,1),(11373,1),(11380,1),(11383,1),(11386,1),(11389,1),(11405,1),(11408,1),(11425,1),(11430,1),(11444,1),(11451,1),(11459,1),(11462,1),(11464,1),(11466,1),(11468,1),(11476,1),(11482,1),(11489,1),(11490,1),(11491,1),(11494,1),(11495,1),(11499,1),(11509,1),(11512,1),(11514,1),(11520,1),(11534,1),(11536,1),(11538,1),(11544,1),(11564,1),(11566,1),(11578,1),(11580,1),(11583,1),(11595,1),(11597,1),(11603,1),(11607,1),(11613,1),(11618,1),(11633,1),(11644,1),(11663,1),(11667,1),(11678,1),(11679,1),(11688,1),(11692,1),(11694,1),(11697,1),(11699,1),(11703,1),(11705,1),(11706,1),(11716,1),(11725,1),(11731,1),(11733,1),(11736,1),(11741,1),(11752,1),(11758,1),(11770,1),(11789,1),(11793,1),(11796,1),(11814,1),(11816,1),(11818,1),(11830,1),(11837,1),(11842,1),(11846,1),(11861,1),(11864,1),(11880,1),(11883,1),(11885,1),(11890,1),(11895,1),(11906,1),(11912,1),(11932,1),(11935,1),(11941,1),(11944,1),(11948,1),(11952,1),(11959,1),(11962,1),(11969,1),(11973,1),(11975,1),(11977,1),(11981,1),(11982,1),(11983,1),(11985,1),(12001,1),(12006,1),(12008,1),(12014,1),(12019,1),(12032,1),(12037,1),(12044,1),(12045,1),(12053,1),(12064,1),(12066,1),(12068,1),(12079,1),(12085,1),(12098,1),(12102,1),(12116,1),(12133,1),(12141,1),(12158,1),(12163,1),(12166,1),(12170,1),(12176,1),(12182,1),(12183,1),(12187,1),(12188,1),(12191,1),(12195,1),(12202,1),(12205,1),(12210,1),(12224,1),(12226,1),(12238,1),(12240,1),(12248,1),(12264,1),(12269,1),(12273,1),(12274,1),(12288,1),(12306,1),(12310,1),(12313,1),(12314,1),(12316,1),(12323,1),(12327,1),(12336,1),(12346,1),(12347,1),(12349,1),(12354,1),(12359,1),(12364,1),(12372,1),(12375,1),(12378,1),(12387,1),(12393,1),(12396,1),(12397,1),(12399,1),(12401,1),(12407,1),(12413,1),(12420,1),(12423,1),(12431,1),(12433,1),(12436,1),(12437,1),(12441,1),(12448,1),(12454,1),(12455,1),(12468,1),(12477,1),(12480,1),(12483,1),(12484,1),(12491,1),(12501,1),(12502,1),(12505,1),(12529,1),(12537,1),(12538,1),(12545,1),(12550,1),(12551,1),(12559,1),(12568,1),(12569,1),(12575,1),(12581,1),(12584,1),(12591,1),(12600,1),(12606,1),(12611,1),(12615,1),(12638,1),(12643,1),(12644,1),(12647,1),(12661,1),(12676,1),(12689,1),(12690,1),(12694,1),(12697,1),(12699,1),(12705,1),(12718,1),(12721,1),(12724,1),(12739,1),(12740,1),(12750,1),(12752,1),(12755,1),(12756,1),(12767,1),(12777,1),(12790,1),(12791,1),(12793,1),(12800,1),(12806,1),(12809,1),(12824,1),(12826,1),(12827,1),(12843,1),(12852,1),(12860,1),(12870,1),(12872,1),(12874,1),(12875,1),(12885,1),(12893,1),(12894,1),(12906,1),(12907,1),(12916,1),(12918,1),(12919,1),(12920,1),(12928,1),(12939,1),(12940,1),(12943,1),(12946,1),(12955,1),(12957,1),(12961,1),(12963,1),(12970,1),(12978,1),(12988,1),(12996,1),(13001,1),(13002,1),(13019,1),(13020,1),(13023,1),(13037,1),(13038,1),(13042,1),(13043,1),(13044,1),(13046,1),(13047,1),(13053,1),(13058,1),(13062,1),(13095,1),(13102,1),(13109,1),(13110,1),(13112,1),(13116,1),(13136,1),(13139,1),(13146,1),(13155,1),(13162,1),(13165,1),(13174,1),(13186,1),(13194,1),(13195,1),(13204,1),(13219,1),(13220,1),(13222,1),(13227,1),(13228,1),(13236,1),(13239,1),(13246,1),(13247,1),(13252,1),(13262,1),(13269,1),(13270,1),(13275,1),(13287,1),(13303,1),(13319,1),(13327,1),(13331,1),(13338,1),(13347,1),(13355,1),(13356,1),(13364,1),(13388,1),(13389,1),(13397,1),(13411,1),(13412,1),(13416,1),(13432,1),(13434,1),(13445,1),(13453,1),(13458,1),(13463,1),(13470,1),(13473,1),(13476,1),(13489,1),(13490,1),(13505,1),(13509,1),(13533,1),(13557,1),(13559,1),(13562,1),(13564,1),(13567,1),(13593,1),(13594,1),(13596,1),(13597,1),(13599,1),(13612,1),(13614,1),(13621,1),(13624,1),(13625,1),(13627,1),(13632,1),(13635,1),(13636,1),(13637,1),(13638,1),(13640,1),(13644,1),(13649,1),(13652,1),(13655,1),(13658,1),(13659,1),(13665,1),(13667,1),(13670,1),(13678,1),(13688,1),(13689,1),(13690,1),(13693,1),(13701,1),(13702,1),(13704,1),(13719,1),(13727,1),(13732,1),(13743,1),(13749,1),(13757,1),(13768,1),(13773,1),(13776,1),(13778,1),(13785,1),(13786,1),(13789,1),(13792,1),(13797,1),(13808,1),(13810,1),(13825,1),(13826,1),(13827,1),(13829,1),(13833,1),(13835,1),(13850,1),(13853,1),(13861,1),(13864,1),(13874,1),(13886,1),(13898,1),(13908,1),(13912,1),(13913,1),(13917,1),(13927,1),(13929,1),(13931,1),(13952,1),(13953,1),(13954,1),(13958,1),(13959,1),(13960,1),(13967,1),(13970,1),(13973,1),(13977,1),(13978,1),(13987,1),(13998,1),(13999,1),(14003,1),(14015,1),(14020,1),(14022,1),(14033,1),(14045,1),(14046,1),(14048,1),(14054,1),(14055,1),(14060,1),(14071,1),(14078,1),(14084,1),(14094,1),(14105,1),(14110,1),(14116,1),(14117,1),(14127,1),(14128,1),(14138,1),(14140,1),(14141,1),(14143,1),(14144,1),(14154,1),(14158,1),(14162,1),(14166,1),(14171,1),(14173,1),(14178,1),(14184,1),(14185,1),(14191,1),(14207,1),(14208,1),(14214,1),(14229,1),(14243,1),(14245,1),(14247,1),(14277,1),(14280,1),(14288,1),(14298,1),(14300,1),(14305,1),(14310,1),(14318,1),(14324,1),(14331,1),(14346,1),(14361,1),(14364,1),(14366,1),(14374,1),(14375,1),(14380,1),(14381,1),(14388,1),(14390,1),(14398,1),(14401,1),(14413,1),(14414,1),(14417,1),(14422,1),(14437,1),(14445,1),(14446,1),(14465,1),(14472,1),(14473,1),(14474,1),(14482,1),(14487,1),(14496,1),(14514,1),(14517,1),(14519,1),(14532,1),(14542,1),(14545,1),(14547,1),(14552,1),(14556,1),(14561,1),(14569,1),(14572,1),(14576,1),(14579,1),(14598,1),(14607,1),(14612,1),(14620,1),(14621,1),(14623,1),(14624,1),(14627,1),(14629,1),(14634,1),(14667,1),(14684,1),(14703,1),(14717,1),(14731,1),(14732,1),(14738,1),(14752,1),(14755,1),(14758,1),(14771,1),(14772,1),(14775,1),(14780,1),(14788,1),(14809,1),(14817,1),(14818,1),(14821,1),(14827,1),(14835,1),(14840,1),(14841,1),(14843,1),(14850,1),(14858,1),(14863,1),(14864,1),(14867,1),(14868,1),(14877,1),(14878,1),(14881,1),(14892,1),(14899,1),(14904,1),(14908,1),(14913,1),(14931,1),(14936,1),(14937,1),(14946,1),(14948,1),(14954,1),(14957,1),(14959,1),(14964,1),(14968,1),(14972,1),(14976,1),(14978,1),(14980,1),(14981,1),(14987,1),(15000,1),(15001,1),(15004,1),(15012,1),(15016,1),(15022,1),(15030,1),(15031,1),(15040,1),(15041,1),(15045,1),(15051,1),(15061,1),(15063,1),(15064,1),(15070,1),(15071,1),(15075,1),(15086,1),(15099,1),(15100,1),(15109,1),(15114,1),(15128,1),(15133,1),(15141,1),(15143,1),(15150,1),(15157,1),(15158,1),(15163,1),(15164,1),(15166,1),(15186,1),(15206,1),(15214,1),(15228,1),(15229,1),(15230,1),(15233,1),(15249,1),(15255,1),(15270,1),(15274,1),(15277,1),(15280,1),(15292,1),(15302,1),(15303,1),(15311,1),(15317,1),(15319,1),(15321,1),(15333,1),(15341,1),(15344,1),(15347,1),(15349,1),(15372,1),(15385,1),(15403,1),(15404,1),(15407,1),(15412,1),(15420,1),(15426,1),(15430,1),(15433,1),(15439,1),(15449,1),(15455,1),(15456,1),(15462,1),(15466,1),(15468,1),(15470,1),(15476,1),(15487,1),(15489,1),(15494,1),(15497,1),(15501,1),(15508,1),(15525,1),(15530,1),(15531,1),(15533,1),(15537,1),(15543,1),(15544,1),(15562,1),(15567,1),(15570,1),(15585,1),(15590,1),(15591,1),(15592,1),(15595,1),(15596,1),(15602,1),(15605,1),(15608,1),(15610,1),(15611,1),(15613,1),(15620,1),(15623,1),(15632,1),(15634,1),(15640,1),(15643,1),(15647,1),(15654,1),(15665,1),(15671,1),(15679,1),(15681,1),(15686,1),(15687,1),(15689,1),(15693,1),(15697,1),(15703,1),(15704,1),(15705,1),(15706,1),(15716,1),(15719,1),(15724,1),(15734,1),(15735,1),(15749,1),(15761,1),(15765,1),(15766,1),(15772,1),(15776,1),(15778,1),(15781,1),(15785,1),(15789,1),(15793,1),(15795,1),(15800,1),(15802,1),(15809,1),(15811,1),(15815,1),(15816,1),(15819,1),(15823,1),(15830,1),(15842,1),(15847,1),(15848,1),(15849,1),(15866,1),(15877,1),(15878,1),(15882,1),(15891,1),(15898,1),(15901,1),(15910,1),(15915,1),(15920,1),(15923,1),(15935,1),(15938,1),(15943,1),(15944,1),(15948,1),(15963,1),(15967,1),(15969,1),(15972,1),(15982,1),(15987,1),(16001,1),(16004,1),(16005,1),(16013,1),(16015,1),(16016,1),(16018,1),(16023,1),(16030,1),(16039,1),(16044,1),(16049,1),(16063,1),(16066,1),(16067,1),(16080,1),(16084,1),(16092,1),(16095,1),(16099,1),(16119,1),(16121,1),(16125,1),(16129,1),(16133,1),(16135,1),(16136,1),(16138,1),(16159,1),(16169,1),(16175,1),(16185,1),(16205,1),(16213,1),(16231,1),(16238,1),(16248,1),(16256,1),(16262,1),(16263,1),(16267,1),(16275,1),(16283,1),(16290,1),(16293,1),(16295,1),(16311,1),(16314,1),(16316,1),(16321,1),(16326,1),(16328,1),(16330,1),(16342,1),(16349,1),(16354,1),(16356,1),(16357,1),(16367,1),(16380,1),(16388,1),(16389,1),(16390,1),(16393,1),(16407,1),(16410,1),(16413,1),(16418,1),(16421,1),(16430,1),(16432,1),(16463,1),(16477,1),(16481,1),(16488,1),(16490,1),(16495,1),(16503,1),(16508,1),(16512,1),(16526,1),(16528,1),(16537,1),(16544,1),(16551,1),(16560,1),(16563,1),(16573,1),(16575,1),(16580,1),(16588,1),(16590,1),(16591,1),(16599,1),(16606,1),(16607,1),(16609,1),(16621,1),(16629,1),(16634,1),(16638,1),(16642,1),(16662,1),(16665,1),(16667,1),(16670,1),(16674,1),(16692,1),(16695,1),(16714,1),(16718,1),(16725,1),(16726,1),(16734,1),(16738,1),(16742,1),(16750,1),(16762,1),(16769,1),(16771,1),(16772,1),(16776,1),(16785,1),(16792,1),(16795,1),(16806,1),(16818,1),(16833,1),(16836,1),(16837,1),(16867,1),(16870,1),(16879,1),(16883,1),(16884,1),(16899,1),(16905,1),(16910,1),(16919,1),(16925,1),(16928,1),(16929,1),(16933,1),(16939,1),(16943,1),(16958,1),(16960,1),(16965,1),(16967,1),(16972,1),(16984,1),(16986,1),(16993,1),(16996,1),(17002,1),(17013,1),(17015,1),(17021,1),(17025,1),(17027,1),(17033,1),(17044,1),(17045,1),(17049,1),(17057,1),(17058,1),(17071,1),(17073,1),(17075,1),(17093,1),(17107,1),(17111,1),(17114,1),(17118,1),(17123,1),(17140,1),(17147,1),(17149,1),(17160,1),(17168,1),(17170,1),(17173,1),(17175,1),(17177,1),(17183,1),(17193,1),(17194,1),(17195,1),(17200,1),(17201,1),(17202,1),(17204,1),(17209,1),(17210,1),(17220,1),(17248,1),(17249,1),(17252,1),(17282,1),(17284,1),(17287,1),(17290,1),(17293,1),(17299,1),(17303,1),(17306,1),(17320,1),(17341,1),(17342,1),(17343,1),(17355,1),(17356,1),(17375,1),(17377,1),(17382,1),(17387,1),(17402,1),(17404,1),(17411,1),(17412,1),(17425,1),(17427,1),(17428,1),(17434,1),(17442,1),(17458,1),(17460,1),(17461,1),(17462,1),(17466,1),(17467,1),(17475,1),(17481,1),(17485,1),(17489,1),(17505,1),(17521,1),(17522,1),(17530,1),(17541,1),(17545,1),(17546,1),(17547,1),(17562,1),(17565,1),(17568,1),(17576,1),(17578,1),(17579,1),(17590,1),(17595,1),(17596,1),(17597,1),(17606,1),(17608,1),(17618,1),(17623,1),(17624,1),(17625,1),(17628,1),(17630,1),(17636,1),(17637,1),(17644,1),(17645,1),(17661,1),(17666,1),(17668,1),(17686,1),(17711,1),(17721,1),(17724,1),(17734,1),(17735,1),(17740,1),(17744,1),(17750,1),(17751,1),(17752,1),(17753,1),(17757,1),(17761,1),(17767,1),(17783,1),(17788,1),(17791,1),(17806,1),(17823,1),(17824,1),(17848,1),(17851,1),(17855,1),(17856,1),(17862,1),(17876,1),(17881,1),(17889,1),(17892,1),(17893,1),(17895,1),(17905,1),(17909,1),(17910,1),(17913,1),(17924,1),(17930,1),(17933,1),(17940,1),(17946,1),(17951,1),(17954,1),(17957,1),(17967,1),(17969,1),(17980,1),(17991,1),(17995,1),(17996,1),(18009,1),(18022,1),(18026,1),(18030,1),(18041,1),(18049,1),(18053,1),(18055,1),(18063,1),(18064,1),(18066,1),(18074,1),(18075,1),(18091,1),(18102,1),(18103,1),(18123,1),(18126,1),(18130,1),(18138,1),(18148,1),(18150,1),(18151,1),(18155,1),(18161,1),(18185,1),(18192,1),(18193,1),(18200,1),(18201,1),(18210,1),(18213,1),(18215,1),(18217,1),(18228,1),(18229,1),(18236,1),(18246,1),(18251,1),(18253,1),(18255,1),(18261,1),(18262,1),(18274,1),(18277,1),(18279,1),(18288,1),(18289,1),(18293,1),(18294,1),(18300,1),(18301,1),(18303,1),(18309,1),(18312,1),(18318,1),(18319,1),(18320,1),(18324,1),(18325,1),(18328,1),(18330,1),(18336,1),(18346,1),(18349,1),(18387,1),(18391,1),(18392,1),(18396,1),(18403,1),(18406,1),(18409,1),(18419,1),(18468,1),(18477,1),(18478,1),(18487,1),(18504,1),(18505,1),(18506,1),(18507,1),(18508,1),(18516,1),(18517,1),(18527,1),(18530,1),(18535,1),(18541,1),(18547,1),(18551,1),(18553,1),(18557,1),(18558,1),(18560,1),(18565,1),(18567,1),(18570,1),(18585,1),(18587,1),(18591,1),(18593,1),(18594,1),(18595,1),(18598,1),(18603,1),(18607,1),(18609,1),(18637,1),(18641,1),(18646,1),(18648,1),(18652,1),(18653,1),(18660,1),(18668,1),(18669,1),(18675,1),(18680,1),(18684,1),(18687,1),(18698,1),(18703,1),(18707,1),(18708,1),(18710,1),(18727,1),(18731,1),(18742,1),(18743,1),(18747,1),(18748,1),(18750,1),(18753,1),(18757,1),(18763,1),(18764,1),(18766,1),(18768,1),(18789,1),(18799,1),(18802,1),(18804,1),(18821,1),(18832,1),(18840,1),(18846,1),(18848,1),(18849,1),(18850,1),(18859,1),(18865,1),(18871,1),(18875,1),(18900,1),(18910,1),(18915,1),(18916,1),(18917,1),(18918,1),(18924,1),(18925,1),(18932,1),(18936,1),(18946,1),(18959,1),(18962,1),(18967,1),(18975,1),(18980,1),(18987,1),(18988,1),(18992,1),(19012,1),(19024,1),(19025,1),(19034,1),(19035,1),(19041,1),(19055,1),(19057,1),(19065,1),(19067,1),(19068,1),(19075,1),(19077,1),(19079,1),(19100,1),(19105,1),(19114,1),(19123,1),(19133,1),(19138,1),(19151,1),(19153,1),(19154,1),(19158,1),(19169,1),(19192,1),(19204,1),(19205,1),(19206,1),(19207,1),(19211,1),(19213,1),(19214,1),(19222,1),(19224,1),(19240,1),(19256,1),(19262,1),(19265,1),(19271,1),(19272,1),(19273,1),(19281,1),(19294,1),(19303,1),(19308,1),(19313,1),(19315,1),(19319,1),(19322,1),(19328,1),(19338,1),(19339,1),(19340,1),(19347,1),(19356,1),(19362,1),(19367,1),(19370,1),(19371,1),(19375,1),(19377,1),(19382,1),(19384,1),(19386,1),(19399,1),(19405,1),(19416,1),(19422,1),(19431,1),(19448,1),(19449,1),(19454,1),(19457,1),(19459,1),(19483,1),(19484,1),(19485,1),(19489,1),(19506,1),(19513,1),(19515,1),(19533,1),(19535,1),(19538,1),(19545,1),(19551,1),(19554,1),(19559,1),(19565,1),(19570,1),(19573,1),(19574,1),(19578,1),(19579,1),(19589,1),(19596,1),(19598,1),(19599,1),(19605,1),(19608,1),(19609,1),(19618,1),(19622,1),(19631,1),(19634,1),(19640,1),(19642,1),(19652,1),(19659,1),(19660,1),(19671,1),(19675,1),(19677,1),(19678,1),(19679,1),(19682,1),(19685,1),(19690,1),(19704,1),(19706,1),(19732,1),(19748,1),(19750,1),(19752,1),(19759,1),(19764,1),(19766,1),(19767,1),(19772,1),(19773,1),(19782,1),(19798,1),(19799,1),(19804,1),(19818,1),(19821,1),(19825,1),(19826,1),(19829,1),(19833,1),(19839,1),(19845,1),(19857,1),(19858,1),(19870,1),(19879,1),(19889,1),(19893,1),(19904,1),(19913,1),(19917,1),(19922,1),(19923,1),(19932,1),(19933,1),(19937,1),(19945,1),(19960,1),(19962,1),(19963,1),(19967,1),(19986,1),(19987,1),(19996,1),(20003,1),(20004,1),(20005,1),(20029,1),(20043,1),(20054,1),(20062,1),(20063,1),(20073,1),(20079,1),(20092,1),(20109,1),(20111,1),(20117,1),(20133,1),(20134,1),(20143,1),(20152,1),(20157,1),(20163,1),(20174,1),(20176,1),(20186,1),(20188,1),(20192,1),(20205,1),(20208,1),(20218,1),(20242,1),(20250,1),(20257,1),(20258,1),(20267,1),(20274,1),(20287,1),(20291,1),(20306,1),(20312,1),(20313,1),(20319,1),(20337,1),(20339,1),(20344,1),(20345,1),(20350,1),(20351,1),(20352,1),(20364,1),(20377,1),(20380,1),(20386,1),(20392,1),(20400,1),(20401,1),(20403,1),(20406,1),(20417,1),(20418,1),(20436,1),(20440,1),(20447,1),(20449,1),(20455,1),(20456,1),(20457,1),(20460,1),(20472,1),(20496,1),(20498,1),(20502,1),(20505,1),(20510,1),(20514,1),(20523,1),(20529,1),(20532,1),(20538,1),(20542,1),(20551,1),(20559,1),(20574,1),(20577,1),(20580,1),(20582,1),(20585,1),(20586,1),(20587,1),(20590,1),(20595,1),(20600,1),(20609,1),(20611,1),(20617,1),(20619,1),(20621,1),(20625,1),(20626,1),(20628,1),(20630,1),(20635,1),(20636,1),(20639,1),(20649,1),(20652,1),(20654,1),(20659,1),(20665,1),(20670,1),(20672,1),(20679,1),(20680,1),(20686,1),(20698,1),(20712,1),(20719,1),(20738,1),(20743,1),(20749,1),(20756,1),(20765,1),(20768,1),(20770,1),(20776,1),(20790,1),(20794,1),(20801,1),(20811,1),(20818,1),(20824,1),(20829,1),(20830,1),(20837,1),(20849,1),(20857,1),(20859,1),(20862,1),(20872,1),(20881,1),(20882,1),(20904,1),(20906,1),(20908,1),(20939,1),(20942,1),(20947,1),(20950,1),(20966,1),(20971,1),(20986,1),(20992,1),(20996,1),(20998,1),(21006,1),(21011,1),(21012,1),(21014,1),(21017,1),(21018,1),(21019,1),(21022,1),(21027,1),(21034,1),(21037,1),(21039,1),(21041,1),(21042,1),(21043,1),(21044,1),(21054,1),(21058,1),(21065,1),(21066,1),(21076,1),(21083,1),(21088,1),(21115,1),(21116,1),(21117,1),(21119,1),(21126,1),(21130,1),(21131,1),(21133,1),(21136,1),(21139,1),(21149,1),(21152,1),(21159,1),(21161,1),(21170,1),(21171,1),(21176,1),(21177,1),(21201,1),(21203,1),(21206,1),(21207,1),(21208,1),(21217,1),(21220,1),(21222,1),(21227,1),(21230,1),(21231,1),(21258,1),(21259,1),(21260,1),(21266,1),(21272,1),(21273,1),(21278,1),(21282,1),(21283,1),(21288,1),(21291,1),(21295,1),(21303,1),(21326,1),(21332,1),(21333,1),(21335,1),(21338,1),(21340,1),(21343,1),(21345,1),(21351,1),(21363,1),(21379,1),(21390,1),(21393,1),(21394,1),(21399,1),(21434,1),(21438,1),(21454,1),(21461,1),(21464,1),(21484,1),(21501,1),(21504,1),(21509,1),(21513,1),(21517,1),(21518,1),(21519,1),(21522,1),(21524,1),(21526,1),(21527,1),(21534,1),(21536,1),(21551,1),(21557,1),(21564,1),(21578,1),(21579,1),(21589,1),(21601,1),(21603,1),(21613,1),(21627,1),(21630,1),(21635,1),(21637,1),(21638,1),(21639,1),(21640,1),(21649,1),(21652,1),(21653,1),(21667,1),(21675,1),(21676,1),(21680,1),(21681,1),(21682,1),(21686,1),(21689,1),(21708,1),(21715,1),(21717,1),(21722,1),(21723,1),(21724,1),(21728,1),(21735,1),(21743,1),(21745,1),(21758,1),(21760,1),(21762,1),(21764,1),(21765,1),(21769,1),(21786,1),(21791,1),(21816,1),(21835,1),(21837,1),(21841,1),(21842,1),(21857,1),(21858,1),(21863,1),(21874,1),(21877,1),(21880,1),(21897,1),(21900,1),(21903,1),(21909,1),(21910,1),(21924,1),(21925,1),(21927,1),(21930,1),(21932,1),(21935,1),(21936,1),(21945,1),(21947,1),(21948,1),(21958,1),(21967,1),(21980,1),(21984,1),(21986,1),(21990,1),(21996,1),(22004,1),(22005,1),(22006,1),(22008,1),(22018,1),(22023,1),(22024,1),(22025,1),(22027,1),(22042,1),(22047,1),(22066,1),(22068,1),(22069,1),(22072,1),(22079,1),(22082,1),(22083,1),(22090,1),(22098,1),(22104,1),(22106,1),(22125,1),(22126,1),(22132,1),(22139,1),(22140,1),(22161,1),(22162,1),(22165,1),(22172,1),(22180,1),(22182,1),(22191,1),(22193,1),(22194,1),(22200,1),(22203,1),(22209,1),(22217,1),(22221,1),(22225,1),(22229,1),(22232,1),(22240,1),(22241,1),(22247,1),(22250,1),(22253,1),(22258,1),(22262,1),(22265,1),(22272,1),(22278,1),(22283,1),(22285,1),(22288,1),(22292,1),(22295,1),(22302,1),(22307,1),(22317,1),(22324,1),(22344,1),(22353,1),(22376,1),(22377,1),(22387,1),(22388,1),(22400,1),(22405,1),(22406,1),(22408,1),(22410,1),(22412,1),(22414,1),(22429,1),(22435,1),(22441,1),(22449,1),(22467,1),(22469,1),(22470,1),(22473,1),(22476,1),(22479,1),(22480,1),(22481,1),(22486,1),(22491,1),(22496,1),(22509,1),(22519,1),(22526,1),(22527,1),(22529,1),(22535,1),(22541,1),(22562,1),(22568,1),(22572,1),(22577,1),(22578,1),(22582,1),(22607,1),(22617,1),(22625,1),(22631,1),(22635,1),(22636,1),(22642,1),(22649,1),(22660,1),(22665,1),(22667,1),(22685,1),(22690,1),(22694,1),(22706,1),(22711,1),(22712,1),(22714,1),(22716,1),(22719,1),(22735,1),(22740,1),(22753,1),(22754,1),(22756,1),(22765,1),(22766,1),(22772,1),(22777,1),(22784,1),(22808,1),(22809,1),(22812,1),(22823,1),(22824,1),(22831,1),(22841,1),(22843,1),(22844,1),(22859,1),(22861,1),(22862,1),(22863,1),(22865,1),(22866,1),(22872,1),(22877,1),(22882,1),(22884,1),(22887,1),(22891,1),(22902,1),(22904,1),(22922,1),(22939,1),(22943,1),(22947,1),(22958,1),(22959,1),(22962,1),(22969,1),(22970,1),(22973,1),(22974,1),(22981,1),(22989,1),(22999,1),(23003,1),(23005,1),(23009,1),(23013,1),(23014,1),(23017,1),(23018,1),(23026,1),(23031,1),(23038,1),(23041,1),(23050,1),(23059,1),(23067,1),(23072,1),(23079,1),(23081,1),(23084,1),(23089,1),(23104,1),(23106,1),(23108,1),(23109,1),(23135,1),(23147,1),(23152,1),(23155,1),(23164,1),(23187,1),(23205,1),(23229,1),(23231,1),(23233,1),(23236,1),(23250,1),(23251,1),(23255,1),(23263,1),(23272,1),(23273,1),(23279,1),(23280,1),(23285,1),(23294,1),(23298,1),(23309,1),(23310,1),(23314,1),(23327,1),(23330,1),(23348,1),(23354,1),(23359,1),(23367,1),(23369,1),(23387,1),(23389,1),(23390,1),(23395,1),(23404,1),(23407,1),(23417,1),(23422,1),(23430,1),(23431,1),(23436,1),(23444,1),(23449,1),(23450,1),(23457,1),(23459,1),(23466,1),(23474,1),(23475,1),(23476,1),(23480,1),(23490,1),(23493,1),(23496,1),(23504,1),(23510,1),(23511,1),(23519,1),(23522,1),(23525,1),(23526,1),(23537,1),(23540,1),(23543,1),(23549,1),(23550,1),(23557,1),(23562,1),(23567,1),(23569,1),(23575,1),(23589,1),(23606,1),(23610,1),(23612,1),(23629,1),(23651,1),(23658,1),(23661,1),(23664,1),(23667,1),(23669,1),(23670,1),(23673,1),(23687,1),(23701,1),(23706,1),(23715,1),(23717,1),(23727,1),(23729,1),(23730,1),(23743,1),(23746,1),(23752,1),(23759,1),(23773,1),(23786,1),(23810,1),(23811,1),(23817,1),(23822,1),(23825,1),(23829,1),(23832,1),(23838,1),(23840,1),(23845,1),(23847,1),(23849,1),(23859,1),(23863,1),(23867,1),(23875,1),(23882,1),(23889,1),(23893,1),(23901,1),(23904,1),(23912,1),(23914,1),(23919,1),(23924,1),(23928,1),(23942,1),(23945,1),(23946,1),(23948,1),(23950,1),(23959,1),(23961,1),(23968,1),(23970,1),(23983,1),(23990,1),(23997,1),(24010,1),(24016,1),(24024,1),(24029,1),(24033,1),(24034,1),(24045,1),(24050,1),(24055,1),(24059,1),(24065,1),(24066,1),(24070,1),(24088,1),(24089,1),(24094,1),(24095,1),(24100,1),(24105,1),(24106,1),(24107,1),(24126,1),(24127,1),(24136,1),(24142,1),(24152,1),(24153,1),(24158,1),(24163,1),(24171,1),(24175,1),(24183,1),(24189,1),(24191,1),(24193,1),(24198,1),(24209,1),(24213,1),(24214,1),(24220,1),(24227,1),(24231,1),(24234,1),(24235,1),(24238,1),(24240,1),(24241,1),(24244,1),(24246,1),(24252,1),(24254,1),(24256,1),(24263,1),(24269,1),(24271,1),(24274,1),(24284,1),(24285,1),(24286,1),(24296,1),(24298,1),(24301,1),(24304,1),(24312,1),(24316,1),(24320,1),(24326,1),(24336,1),(24341,1),(24344,1),(24345,1),(24346,1),(24349,1),(24350,1),(24354,1),(24357,1),(24360,1),(24381,1),(24383,1),(24384,1),(24406,1),(24407,1),(24424,1),(24425,1),(24426,1),(24431,1),(24438,1),(24439,1),(24440,1),(24445,1),(24448,1),(24459,1),(24471,1),(24473,1),(24478,1),(24480,1),(24483,1),(24484,1),(24501,1),(24508,1),(24509,1),(24514,1),(24515,1),(24520,1),(24535,1),(24537,1),(24543,1),(24550,1),(24555,1),(24560,1),(24563,1),(24565,1),(24570,1),(24577,1),(24580,1),(24600,1),(24604,1),(24608,1),(24614,1),(24617,1),(24620,1),(24624,1),(24632,1),(24646,1),(24647,1),(24648,1),(24662,1),(24666,1),(24674,1),(24690,1),(24691,1),(24698,1),(24701,1),(24703,1),(24717,1),(24719,1),(24723,1),(24728,1),(24732,1),(24736,1),(24738,1),(24747,1),(24755,1),(24757,1),(24760,1),(24766,1),(24771,1),(24779,1),(24786,1),(24794,1),(24800,1),(24801,1),(24803,1),(24807,1),(24809,1),(24811,1),(24820,1),(24827,1),(24850,1),(24859,1),(24875,1),(24885,1),(24887,1),(24889,1),(24890,1),(24900,1),(24903,1),(24920,1),(24921,1),(24946,1),(24947,1),(24948,1),(24956,1),(24958,1),(24961,1),(24962,1),(24963,1),(24969,1),(24970,1),(24983,1),(24988,1),(24991,1),(25001,1),(25009,1),(25015,1),(25017,1),(25022,1),(25023,1),(25035,1),(25054,1),(25065,1),(25067,1),(25081,1),(25083,1),(25087,1),(25094,1),(25103,1),(25111,1),(25119,1),(25130,1),(25145,1),(25146,1),(25149,1),(25156,1),(25163,1),(25170,1),(25171,1),(25175,1),(25176,1),(25192,1),(25195,1),(25212,1),(25215,1),(25226,1),(25229,1),(25233,1),(25238,1),(25241,1),(25246,1),(25247,1),(25248,1),(25256,1),(25257,1),(25263,1),(25269,1),(25281,1),(25290,1),(25291,1),(25297,1),(25305,1),(25308,1),(25317,1),(25321,1),(25324,1),(25326,1),(25333,1),(25334,1),(25348,1),(25349,1),(25350,1),(25354,1),(25357,1),(25365,1),(25372,1),(25377,1),(25387,1),(25397,1),(25398,1),(25403,1),(25405,1),(25407,1),(25423,1),(25429,1),(25433,1),(25439,1),(25440,1),(25452,1),(25457,1),(25460,1),(25477,1),(25478,1),(25480,1),(25481,1),(25493,1),(25495,1),(25501,1),(25503,1),(25509,1),(25511,1),(25513,1),(25515,1),(25516,1),(25518,1),(25520,1),(25526,1),(25528,1),(25529,1),(25531,1),(25536,1),(25551,1),(25557,1),(25565,1),(25567,1),(25569,1),(25570,1),(25576,1),(25580,1),(25582,1),(25586,1),(25601,1),(25602,1),(25615,1),(25616,1),(25620,1),(25623,1),(25624,1),(25628,1),(25632,1),(25639,1),(25643,1),(25651,1),(25656,1),(25657,1),(25658,1),(25672,1),(25676,1),(25685,1),(25688,1),(25698,1),(25700,1),(25702,1),(25715,1),(25716,1),(25719,1),(25720,1),(25724,1),(25725,1),(25733,1),(25734,1),(25744,1),(25751,1),(25754,1),(25759,1),(25761,1),(25765,1),(25772,1),(25776,1),(25810,1),(25818,1),(25820,1),(25821,1),(25825,1),(25826,1),(25833,1),(25842,1),(25846,1),(25847,1),(25848,1),(25851,1),(25852,1),(25854,1),(25859,1),(25861,1),(25863,1),(25887,1),(25888,1),(25891,1),(25893,1),(25896,1),(25897,1),(25901,1),(25905,1),(25910,1),(25915,1),(25936,1),(25937,1),(25946,1),(25950,1),(25951,1),(25952,1),(25959,1),(25963,1),(25966,1),(25977,1),(25988,1),(25995,1),(26013,1),(26021,1),(26022,1),(26032,1),(26033,1),(26042,1),(26051,1),(26053,1),(26061,1),(26069,1),(26070,1),(26077,1),(26079,1),(26080,1),(26083,1),(26097,1),(26099,1),(26126,1),(26132,1),(26133,1),(26136,1),(26143,1),(26148,1),(26151,1),(26159,1),(26160,1),(26162,1),(26168,1),(26169,1),(26180,1),(26182,1),(26195,1),(26209,1),(26211,1),(26220,1),(26221,1),(26226,1),(26227,1),(26243,1),(26244,1),(26247,1),(26248,1),(26249,1),(26262,1),(26264,1),(26265,1),(26283,1),(26284,1),(26287,1),(26291,1),(26298,1),(26304,1),(26311,1),(26322,1),(26324,1),(26327,1),(26328,1),(26330,1),(26335,1),(26338,1),(26347,1),(26348,1),(26354,1),(26356,1),(26357,1),(26364,1),(26366,1),(26368,1),(26369,1),(26386,1),(26387,1),(26408,1),(26412,1),(26425,1),(26428,1),(26432,1),(26437,1),(26444,1),(26447,1),(26448,1),(26449,1),(26454,1),(26461,1),(26463,1),(26473,1),(26476,1),(26495,1),(26496,1),(26500,1),(26503,1),(26511,1),(26513,1),(26514,1),(26519,1),(26522,1),(26533,1),(26534,1),(26543,1),(26548,1),(26557,1),(26558,1),(26568,1),(26569,1),(26574,1),(26578,1),(26586,1),(26629,1),(26631,1),(26633,1),(26635,1),(26640,1),(26642,1),(26644,1),(26648,1),(26666,1),(26669,1),(26670,1),(26677,1),(26678,1),(26683,1),(26694,1),(26701,1),(26702,1),(26706,1),(26719,1),(26721,1),(26733,1),(26734,1),(26739,1),(26760,1),(26762,1),(26764,1),(26785,1),(26786,1),(26790,1),(26799,1),(26804,1),(26808,1),(26812,1),(26813,1),(26830,1),(26833,1),(26836,1),(26846,1),(26852,1),(26858,1),(26877,1),(26881,1),(26910,1),(26912,1),(26913,1),(26915,1),(26922,1),(26924,1),(26935,1),(26949,1),(26954,1),(26959,1),(26969,1),(26971,1),(26972,1),(26979,1),(26983,1),(26988,1),(26998,1),(27009,1),(27022,1),(27025,1),(27035,1),(27041,1),(27042,1),(27043,1),(27052,1),(27065,1),(27075,1),(27078,1),(27079,1),(27093,1),(27104,1),(27115,1),(27143,1),(27147,1),(27149,1),(27151,1),(27154,1),(27158,1),(27161,1),(27163,1),(27177,1),(27178,1),(27180,1),(27186,1),(27196,1),(27213,1),(27219,1),(27220,1),(27231,1),(27233,1),(27235,1),(27236,1),(27240,1),(27245,1),(27257,1),(27258,1),(27263,1),(27269,1),(27280,1),(27281,1),(27282,1),(27283,1),(27284,1),(27285,1),(27290,1),(27293,1),(27305,1),(27315,1),(27329,1),(27340,1),(27342,1),(27351,1),(27355,1),(27361,1),(27364,1),(27369,1),(27372,1),(27377,1),(27389,1),(27392,1),(27395,1),(27399,1),(27406,1),(27409,1),(27413,1),(27415,1),(27418,1),(27420,1),(27425,1),(27426,1),(27427,1),(27443,1),(27445,1),(27447,1),(27449,1),(27464,1),(27471,1),(27475,1),(27481,1),(27489,1),(27503,1),(27530,1),(27532,1),(27537,1),(27541,1),(27543,1),(27544,1),(27549,1),(27550,1),(27552,1),(27554,1),(27556,1),(27560,1),(27565,1),(27583,1),(27587,1),(27590,1),(27599,1),(27601,1),(27607,1),(27617,1),(27621,1),(27626,1),(27628,1),(27629,1),(27630,1),(27634,1),(27643,1),(27646,1),(27647,1),(27648,1),(27660,1),(27663,1),(27680,1),(27683,1),(27685,1),(27691,1),(27694,1),(27718,1),(27728,1),(27738,1),(27740,1),(27741,1),(27751,1),(27752,1),(27757,1),(27758,1),(27762,1),(27766,1),(27775,1),(27778,1),(27780,1),(27781,1),(27788,1),(27795,1),(27796,1),(27805,1),(27812,1),(27815,1),(27839,1),(27840,1),(27845,1),(27852,1),(27858,1),(27865,1),(27871,1),(27881,1),(27885,1),(27897,1),(27901,1),(27906,1),(27909,1),(27910,1),(27917,1),(27930,1),(27949,1),(27950,1),(27953,1),(27958,1),(27964,1),(27968,1),(27972,1),(27973,1),(27975,1),(27996,1),(28000,1),(28001,1),(28019,1),(28022,1),(28029,1),(28042,1),(28043,1),(28048,1),(28049,1),(28053,1),(28059,1),(28060,1),(28064,1),(28075,1),(28078,1),(28079,1),(28081,1),(28085,1),(28093,1),(28098,1),(28103,1),(28106,1),(28107,1),(28109,1),(28116,1),(28121,1),(28124,1),(28133,1),(28136,1),(28137,1),(28141,1),(28143,1),(28148,1),(28159,1),(28168,1),(28174,1),(28175,1),(28181,1),(28192,1),(28194,1),(28207,1),(28212,1),(28215,1),(28216,1),(28217,1),(28218,1),(28223,1),(28224,1),(28225,1),(28229,1),(28232,1),(28235,1),(28237,1),(28243,1),(28255,1),(28261,1),(28263,1),(28264,1),(28274,1),(28303,1),(28320,1),(28329,1),(28330,1),(28337,1),(28338,1),(28341,1),(28342,1),(28344,1),(28346,1),(28351,1),(28353,1),(28354,1),(28358,1),(28360,1),(28366,1),(28369,1),(28379,1),(28387,1),(28407,1),(28408,1),(28416,1),(28445,1),(28455,1),(28463,1),(28464,1),(28473,1),(28480,1),(28483,1),(28484,1),(28490,1),(28495,1),(28503,1),(28505,1),(28506,1),(28507,1),(28510,1),(28512,1),(28513,1),(28516,1),(28517,1),(28519,1),(28522,1),(28524,1),(28536,1),(28539,1),(28541,1),(28542,1),(28545,1),(28556,1),(28561,1),(28567,1),(28573,1),(28574,1),(28581,1),(28582,1),(28589,1),(28599,1),(28605,1),(28611,1),(28615,1),(28621,1),(28634,1),(28636,1),(28638,1),(28645,1),(28663,1),(28667,1),(28669,1),(28680,1),(28682,1),(28684,1),(28686,1),(28687,1),(28689,1),(28691,1),(28697,1),(28700,1),(28703,1),(28715,1),(28718,1),(28728,1),(28740,1),(28761,1),(28763,1),(28774,1),(28780,1),(28781,1),(28782,1),(28787,1),(28788,1),(28796,1),(28797,1),(28810,1),(28811,1),(28815,1),(28830,1),(28832,1),(28833,1),(28851,1),(28853,1),(28857,1),(28871,1),(28873,1),(28876,1),(28883,1),(28887,1),(28890,1),(28892,1),(28895,1),(28899,1),(28906,1),(28912,1),(28914,1),(28916,1),(28931,1),(28944,1),(28950,1),(28954,1),(28960,1),(28965,1),(28971,1),(28975,1),(28979,1),(28996,1),(29011,1),(29014,1),(29020,1),(29026,1),(29029,1),(29038,1),(29042,1),(29046,1),(29053,1),(29061,1),(29070,1),(29073,1),(29076,1),(29079,1),(29084,1),(29095,1),(29105,1),(29107,1),(29113,1),(29118,1),(29123,1),(29136,1),(29150,1),(29164,1),(29165,1),(29168,1),(29174,1),(29181,1),(29186,1),(29188,1),(29195,1),(29198,1),(29201,1),(29208,1),(29214,1),(29219,1),(29228,1),(29240,1),(29254,1),(29257,1),(29258,1),(29263,1),(29278,1),(29280,1),(29283,1),(29293,1),(29310,1),(29312,1),(29329,1),(29331,1),(29337,1),(29348,1),(29353,1),(29358,1),(29363,1),(29375,1),(29384,1),(29391,1),(29392,1),(29399,1),(29402,1),(29407,1),(29409,1),(29419,1),(29434,1),(29437,1),(29439,1),(29443,1),(29447,1),(29456,1),(29461,1),(29466,1),(29467,1),(29469,1),(29482,1),(29485,1),(29502,1),(29504,1),(29513,1),(29523,1),(29529,1),(29533,1),(29537,1),(29538,1),(29540,1),(29548,1),(29564,1),(29569,1),(29577,1),(29579,1),(29582,1),(29587,1),(29596,1),(29610,1),(29626,1),(29627,1),(29634,1),(29635,1),(29641,1),(29646,1),(29650,1),(29657,1),(29658,1),(29659,1),(29662,1),(29672,1),(29676,1),(29677,1),(29684,1),(29686,1),(29689,1),(29690,1),(29691,1),(29697,1),(29710,1),(29712,1),(29717,1),(29721,1),(29735,1),(29736,1),(29740,1),(29741,1),(29742,1),(29748,1),(29751,1),(29756,1),(29759,1),(29764,1),(29777,1),(29786,1),(29802,1),(29803,1),(29810,1),(29817,1),(29819,1),(29829,1),(29835,1),(29838,1),(29841,1),(29842,1),(29844,1),(29847,1),(29849,1),(29852,1),(29856,1),(29864,1),(29870,1),(29879,1),(29880,1),(29882,1),(29884,1),(29885,1),(29886,1),(29887,1),(29896,1),(29912,1),(29927,1),(29931,1),(29935,1),(29938,1),(29941,1),(29945,1),(29949,1),(29953,1),(29957,1),(29960,1),(29963,1),(29971,1),(29973,1),(29974,1),(29975,1),(29977,1),(29988,1),(29992,1),(29999,1),(30002,1),(30004,1),(30009,1),(30011,1),(30012,1),(30034,1),(30037,1),(30040,1),(30044,1),(30047,1),(30048,1),(30053,1),(30057,1),(30062,1),(30064,1),(30076,1),(30088,1),(30091,1),(30093,1),(30106,1),(30111,1),(30117,1),(30132,1),(30133,1),(30134,1),(30135,1),(30136,1),(30138,1),(30139,1),(30142,1),(30146,1),(30155,1),(30157,1),(30158,1),(30165,1),(30175,1),(30182,1),(30183,1),(30185,1),(30192,1),(30194,1),(30200,1),(30205,1),(30208,1),(30217,1),(30230,1),(30248,1),(30262,1),(30263,1),(30271,1),(30286,1),(30298,1),(30300,1),(30304,1),(30306,1),(30307,1),(30308,1),(30309,1),(30318,1),(30325,1),(30329,1),(30333,1),(30376,1),(30383,1),(30387,1),(30388,1),(30392,1),(30401,1),(30408,1),(30409,1),(30417,1),(30419,1),(30424,1),(30425,1),(30426,1),(30428,1),(30431,1),(30438,1),(30443,1),(30447,1),(30448,1),(30451,1),(30457,1),(30459,1),(30469,1),(30473,1),(30480,1),(30482,1),(30484,1),(30486,1),(30490,1),(30504,1),(30505,1),(30526,1),(30529,1),(30536,1),(30542,1),(30547,1),(30556,1),(30559,1),(30560,1),(30562,1),(30567,1),(30570,1),(30571,1),(30573,1),(30589,1),(30591,1),(30594,1),(30598,1),(30600,1),(30602,1),(30611,1),(30616,1),(30632,1),(30652,1),(30669,1),(30676,1),(30679,1),(30681,1),(30686,1),(30687,1),(30701,1),(30705,1),(30709,1),(30715,1),(30719,1),(30731,1),(30734,1),(30736,1),(30749,1),(30757,1),(30770,1),(30777,1),(30787,1),(30790,1),(30795,1),(30798,1),(30808,1),(30811,1),(30835,1),(30837,1),(30839,1),(30842,1),(30855,1),(30867,1),(30872,1),(30878,1),(30883,1),(30890,1),(30891,1),(30896,1),(30898,1),(30904,1),(30922,1),(30924,1),(30926,1),(30927,1),(30932,1),(30934,1),(30941,1),(30950,1),(30952,1),(30964,1),(30965,1),(30967,1),(30971,1),(30981,1),(30989,1),(31002,1),(31005,1),(31006,1),(31007,1),(31008,1),(31013,1),(31015,1),(31017,1),(31019,1),(31020,1),(31034,1),(31038,1),(31050,1),(31054,1),(31059,1),(31068,1),(31071,1),(31077,1),(31085,1),(31088,1),(31092,1),(31096,1),(31111,1),(31125,1),(31129,1),(31132,1),(31133,1),(31143,1),(31150,1),(31153,1),(31156,1),(31157,1),(31158,1),(31168,1),(31171,1),(31180,1),(31181,1),(31185,1),(31188,1),(31195,1),(31201,1),(31203,1),(31205,1),(31209,1),(31211,1),(31213,1),(31219,1),(31226,1),(31234,1),(31235,1),(31246,1),(31248,1),(31257,1),(31266,1),(31273,1),(31274,1),(31279,1),(31292,1),(31302,1),(31305,1),(31308,1),(31317,1),(31320,1),(31321,1),(31332,1),(31343,1),(31347,1),(31350,1),(31352,1),(31357,1),(31358,1),(31359,1),(31364,1),(31383,1),(31396,1),(31400,1),(31406,1),(31409,1),(31411,1),(31427,1),(31429,1),(31436,1),(31439,1),(31440,1),(31441,1),(31460,1),(31465,1),(31471,1),(31474,1),(31478,1),(31479,1),(31487,1),(31495,1),(31497,1),(31500,1),(31512,1),(31519,1),(31521,1),(31530,1),(31536,1),(31563,1),(31567,1),(31576,1),(31583,1),(31584,1),(31592,1),(31595,1),(31599,1),(31605,1),(31610,1),(31618,1),(31625,1),(31626,1),(31627,1),(31634,1),(31635,1),(31639,1),(31640,1),(31655,1),(31657,1),(31659,1),(31663,1),(31666,1),(31675,1),(31678,1),(31679,1),(31680,1),(31683,1),(31701,1),(31711,1),(31723,1),(31732,1),(31733,1),(31734,1),(31735,1),(31755,1),(31763,1),(31764,1),(31766,1),(31767,1),(31775,1),(31780,1),(31787,1),(31794,1),(31798,1),(31802,1),(31806,1),(31812,1),(31820,1),(31822,1),(31823,1),(31833,1),(31834,1),(31841,1),(31850,1),(31856,1),(31863,1),(31869,1),(31871,1),(31875,1),(31883,1),(31888,1),(31897,1),(31898,1),(31900,1),(31918,1),(31923,1),(31924,1),(31926,1),(31939,1),(31941,1),(31962,1),(31982,1),(31989,1),(31990,1),(31994,1),(31998,1),(32003,1),(32005,1),(32016,1),(32017,1),(32026,1),(32038,1),(32043,1),(32046,1),(32049,1),(32057,1),(32059,1),(32063,1),(32077,1),(32081,1),(32102,1),(32105,1),(32106,1),(32108,1),(32115,1),(32119,1),(32131,1),(32135,1),(32150,1),(32154,1),(32159,1),(32161,1),(32164,1),(32181,1),(32186,1),(32187,1),(32200,1),(32205,1),(32206,1),(32211,1),(32214,1),(32219,1),(32226,1),(32227,1),(32229,1),(32253,1),(32260,1),(32264,1),(32267,1),(32272,1),(32279,1),(32286,1),(32300,1),(32304,1),(32305,1),(32313,1),(32316,1),(32328,1),(32329,1),(32334,1),(32344,1),(32355,1),(32361,1),(32373,1),(32386,1),(32388,1),(32397,1),(32403,1),(32405,1),(32407,1),(32409,1),(32417,1),(32419,1),(32422,1),(32430,1),(32433,1),(32434,1),(32435,1),(32462,1),(32469,1),(32471,1),(32472,1),(32476,1),(32477,1),(32481,1),(32483,1),(32491,1),(32497,1),(32498,1),(32504,1),(32517,1),(32520,1),(32521,1),(32523,1),(32537,1),(32545,1),(32562,1),(32570,1),(32574,1),(32575,1),(32580,1),(32581,1),(32589,1),(32593,1),(32598,1),(32602,1),(32603,1),(32605,1),(32610,1),(32621,1),(32623,1),(32625,1),(32629,1),(32636,1),(32638,1),(32647,1),(32651,1),(32653,1),(32667,1),(32669,1),(32675,1),(32683,1),(32690,1),(32697,1),(32698,1),(32709,1),(32710,1),(32713,1),(32729,1),(32742,1),(32746,1),(32755,1),(32762,1),(32788,1),(32800,1),(32805,1),(32814,1),(32817,1),(32818,1),(32830,1),(32831,1),(32832,1),(32839,1),(32847,1),(32848,1),(32854,1),(32863,1),(32865,1),(32869,1),(32871,1),(32872,1),(32873,1),(32880,1),(32882,1),(32884,1),(32885,1),(32897,1),(32903,1),(32908,1),(32911,1),(32914,1),(32915,1),(32916,1),(32917,1),(32939,1),(32940,1),(32947,1),(32950,1),(32965,1),(32969,1),(32970,1),(32973,1),(32978,1),(32995,1),(33003,1),(33008,1),(33015,1),(33021,1),(33026,1),(33030,1),(33035,1),(33040,1),(33049,1),(33057,1),(33058,1),(33059,1),(33063,1),(33069,1),(33075,1),(33083,1),(33089,1),(33092,1),(33100,1),(33104,1),(33107,1),(33108,1),(33109,1),(33119,1),(33132,1),(33148,1),(33151,1),(33163,1),(33165,1),(33181,1),(33182,1),(33183,1),(33184,1),(33189,1),(33190,1),(33192,1),(33199,1),(33200,1),(33216,1),(33220,1),(33222,1),(33223,1),(33229,1),(33232,1),(33237,1),(33246,1),(33248,1),(33253,1),(33260,1),(33262,1),(33268,1),(33273,1),(33274,1),(33288,1),(33305,1),(33306,1),(33314,1),(33317,1),(33318,1),(33327,1),(33329,1),(33338,1),(33341,1),(33361,1),(33363,1),(33372,1),(33373,1),(33383,1),(33384,1),(33386,1),(33406,1),(33407,1),(33410,1),(33420,1),(33426,1),(33431,1),(33434,1),(33436,1),(33442,1),(33450,1),(33458,1),(33472,1),(33483,1),(33496,1),(33497,1),(33501,1),(33504,1),(33511,1),(33512,1),(33514,1),(33521,1),(33526,1),(33532,1),(33535,1),(33537,1),(33538,1),(33548,1),(33550,1),(33553,1),(33565,1),(33570,1),(33580,1),(33584,1),(33589,1),(33590,1),(33603,1),(33607,1),(33615,1),(33616,1),(33617,1),(33618,1),(33621,1),(33632,1),(33636,1),(33639,1),(33641,1),(33642,1),(33646,1),(33650,1),(33658,1),(33666,1),(33683,1),(33686,1),(33688,1),(33690,1),(33698,1),(33702,1),(33711,1),(33730,1),(33734,1),(33742,1),(33743,1),(33748,1),(33753,1),(33758,1),(33760,1),(33767,1),(33775,1),(33779,1),(33783,1),(33786,1),(33788,1),(33796,1),(33799,1),(33806,1),(33811,1),(33849,1),(33858,1),(33861,1),(33865,1),(33867,1),(33868,1),(33872,1),(33874,1),(33877,1),(33878,1),(33880,1),(33882,1),(33888,1),(33897,1),(33899,1),(33902,1),(33914,1),(33921,1),(33924,1),(33928,1),(33940,1),(33944,1),(33949,1),(33951,1),(33961,1),(33962,1),(33965,1),(33969,1),(33971,1),(33978,1),(33984,1),(33992,1),(33996,1),(33999,1),(34000,1),(34009,1),(34012,1),(34016,1),(34031,1),(34053,1),(34054,1),(34063,1),(34066,1),(34067,1),(34071,1),(34075,1),(34077,1),(34081,1),(34082,1),(34083,1),(34090,1),(34092,1),(34095,1),(34098,1),(34100,1),(34108,1),(34109,1),(34110,1),(34112,1),(34116,1),(34129,1),(34137,1),(34142,1),(34150,1),(34163,1),(34165,1),(34176,1),(34177,1),(34182,1),(34186,1),(34192,1),(34235,1),(34236,1),(34252,1),(34253,1),(34257,1),(34277,1),(34289,1),(34294,1),(34299,1),(34301,1),(34302,1),(34310,1),(34311,1),(34314,1),(34319,1),(34330,1),(34336,1),(34346,1),(34363,1),(34365,1),(34367,1),(34369,1),(34379,1),(34391,1),(34394,1),(34412,1),(34413,1),(34414,1),(34416,1),(34422,1),(34429,1),(34445,1),(34453,1),(34458,1),(34463,1),(34465,1),(34468,1),(34476,1),(34485,1),(34490,1),(34492,1),(34501,1),(34507,1),(34512,1),(34519,1),(34525,1),(34529,1),(34534,1),(34539,1),(34544,1),(34548,1),(34552,1),(34554,1),(34558,1),(34561,1),(34568,1),(34572,1),(34574,1),(34576,1),(34578,1),(34582,1),(34589,1),(34592,1),(34598,1),(34600,1),(34606,1),(34618,1),(34632,1),(34642,1),(34643,1),(34661,1),(34666,1),(34681,1),(34691,1),(34694,1),(34695,1),(34697,1),(34700,1),(34711,1),(34716,1),(34719,1),(34725,1),(34726,1),(34742,1),(34743,1),(34748,1),(34759,1),(34773,1),(34774,1),(34780,1),(34783,1),(34789,1),(34791,1),(34803,1),(34804,1),(34807,1),(34808,1),(34826,1),(34833,1),(34848,1),(34858,1),(34861,1),(34885,1),(34888,1),(34892,1),(34898,1),(34903,1),(34904,1),(34907,1),(34908,1),(34926,1),(34934,1),(34940,1),(34942,1),(34953,1),(34991,1),(34994,1),(34995,1),(34996,1),(35004,1),(35008,1),(35012,1),(35021,1),(35022,1),(35026,1),(35028,1),(35032,1),(35035,1),(35040,1),(35050,1),(35055,1),(35059,1),(35061,1),(35064,1),(35065,1),(35076,1),(35078,1),(35080,1),(35083,1),(35087,1),(35093,1),(35094,1),(35096,1),(35104,1),(35117,1),(35118,1),(35123,1),(35138,1),(35143,1),(35148,1),(35149,1),(35155,1),(35162,1),(35167,1),(35172,1),(35177,1),(35181,1),(35205,1),(35214,1),(35217,1),(35235,1),(35238,1),(35239,1),(35244,1),(35245,1),(35266,1),(35269,1),(35287,1),(35294,1),(35307,1),(35308,1),(35311,1),(35321,1),(35324,1),(35328,1),(35331,1),(35337,1),(35339,1),(35345,1),(35346,1),(35347,1),(35361,1),(35365,1),(35374,1),(35375,1),(35382,1),(35387,1),(35392,1),(35396,1),(35397,1),(35399,1),(35400,1),(35401,1),(35418,1),(35423,1),(35425,1),(35427,1),(35439,1),(35440,1),(35441,1),(35455,1),(35466,1),(35468,1),(35469,1),(35470,1),(35473,1),(35475,1),(35481,1),(35483,1),(35484,1),(35486,1),(35490,1),(35491,1),(35502,1),(35506,1),(35507,1),(35514,1),(35518,1),(35524,1),(35528,1),(35539,1),(35541,1),(35549,1),(35560,1),(35574,1),(35580,1),(35581,1),(35595,1),(35597,1),(35602,1),(35606,1),(35618,1),(35621,1),(35624,1),(35628,1),(35633,1),(35653,1),(35666,1),(35673,1),(35674,1),(35678,1),(35679,1),(35690,1),(35694,1),(35698,1),(35699,1),(35705,1),(35708,1),(35709,1),(35710,1),(35712,1),(35713,1),(35720,1),(35763,1),(35766,1),(35768,1),(35772,1),(35781,1),(35786,1),(35794,1),(35803,1),(35806,1),(35814,1),(35827,1),(35829,1),(35832,1),(35841,1),(35857,1),(35861,1),(35863,1),(35877,1),(35879,1),(35880,1),(35883,1),(35885,1),(35895,1),(35900,1),(35902,1),(35903,1),(35905,1),(35909,1),(35917,1),(35921,1),(35930,1),(35932,1),(35937,1),(35941,1),(35947,1),(35948,1),(35954,1),(35968,1),(35969,1),(35973,1),(35979,1),(35984,1),(35985,1),(36001,1),(36016,1),(36030,1),(36056,1),(36058,1),(36059,1),(36063,1),(36071,1),(36073,1),(36079,1),(36084,1),(36087,1),(36091,1),(36094,1),(36102,1),(36103,1),(36113,1),(36122,1),(36127,1),(36133,1),(36135,1),(36141,1),(36144,1),(36150,1),(36152,1),(36163,1),(36164,1),(36165,1),(36178,1),(36187,1),(36189,1),(36192,1),(36195,1),(36199,1),(36201,1),(36204,1),(36208,1),(36216,1),(36225,1),(36226,1),(36230,1),(36232,1),(36239,1),(36243,1),(36244,1),(36246,1),(36249,1),(36251,1),(36253,1),(36255,1),(36262,1),(36263,1),(36266,1),(36274,1),(36290,1),(36291,1),(36299,1),(36302,1),(36303,1),(36316,1),(36322,1),(36325,1),(36326,1),(36328,1),(36342,1),(36353,1),(36363,1),(36371,1),(36373,1),(36374,1),(36376,1),(36380,1),(36382,1),(36390,1),(36395,1),(36403,1),(36409,1),(36411,1),(36418,1),(36422,1),(36426,1),(36434,1),(36437,1),(36438,1),(36439,1),(36447,1),(36470,1),(36471,1),(36472,1),(36483,1),(36484,1),(36488,1),(36489,1),(36503,1),(36509,1),(36510,1),(36519,1),(36523,1),(36525,1),(36527,1),(36534,1),(36535,1),(36536,1),(36542,1),(36561,1),(36563,1),(36570,1),(36571,1),(36602,1),(36605,1),(36607,1),(36610,1),(36617,1),(36618,1),(36623,1),(36627,1),(36651,1),(36657,1),(36669,1),(36693,1),(36698,1),(36701,1),(36726,1),(36734,1),(36739,1),(36740,1),(36757,1),(36766,1),(36774,1),(36778,1),(36787,1),(36791,1),(36798,1),(36805,1),(36810,1),(36813,1),(36816,1),(36822,1),(36824,1),(36838,1),(36841,1),(36844,1),(36850,1),(36857,1),(36861,1),(36866,1),(36873,1),(36875,1),(36878,1),(36882,1),(36884,1),(36897,1),(36898,1),(36899,1),(36900,1),(36911,1),(36913,1),(36914,1),(36917,1),(36937,1),(36945,1),(36953,1),(36958,1),(36959,1),(36962,1),(36966,1),(36967,1),(36976,1),(36982,1),(36983,1),(36988,1),(36994,1),(37001,1),(37012,1),(37016,1),(37020,1),(37024,1),(37029,1),(37044,1),(37046,1),(37047,1),(37051,1),(37065,1),(37069,1),(37085,1),(37086,1),(37095,1),(37101,1),(37106,1),(37112,1),(37120,1),(37124,1),(37132,1),(37135,1),(37141,1),(37146,1),(37154,1),(37157,1),(37162,1),(37167,1),(37184,1),(37193,1),(37205,1),(37209,1),(37213,1),(37221,1),(37225,1),(37227,1),(37229,1),(37230,1),(37247,1),(37256,1),(37273,1),(37279,1),(37286,1),(37295,1),(37306,1),(37308,1),(37321,1),(37338,1),(37344,1),(37347,1),(37364,1),(37365,1),(37368,1),(37370,1),(37379,1),(37383,1),(37397,1),(37398,1),(37406,1),(37407,1),(37413,1),(37442,1),(37443,1),(37444,1),(37452,1),(37454,1),(37463,1),(37467,1),(37469,1),(37470,1),(37477,1),(37485,1),(37488,1),(37502,1),(37507,1),(37518,1),(37525,1),(37531,1),(37534,1),(37537,1),(37547,1),(37553,1),(37556,1),(37578,1),(37593,1),(37596,1),(37598,1),(37602,1),(37613,1),(37620,1),(37622,1),(37625,1),(37633,1),(37634,1),(37639,1),(37646,1),(37649,1),(37650,1),(37655,1),(37658,1),(37663,1),(37666,1),(37673,1),(37676,1),(37678,1),(37683,1),(37701,1),(37705,1),(37709,1),(37718,1),(37719,1),(37720,1),(37723,1),(37750,1),(37768,1),(37774,1),(37775,1),(37777,1),(37781,1),(37782,1),(37787,1),(37789,1),(37798,1),(37802,1),(37836,1),(37846,1),(37849,1),(37850,1),(37853,1),(37859,1),(37860,1),(37862,1),(37876,1),(37879,1),(37882,1),(37896,1),(37899,1),(37901,1),(37906,1),(37907,1),(37919,1),(37933,1),(37936,1),(37940,1),(37941,1),(37945,1),(37947,1),(37952,1),(37958,1),(37961,1),(37972,1),(37984,1),(37985,1),(37987,1),(37994,1),(38002,1),(38004,1),(38009,1),(38016,1),(38021,1),(38043,1),(38046,1),(38047,1),(38049,1),(38065,1),(38068,1),(38070,1),(38075,1),(38076,1),(38090,1),(38096,1),(38099,1),(38103,1),(38108,1),(38112,1),(38134,1),(38137,1),(38143,1),(38149,1),(38152,1),(38159,1),(38162,1),(38168,1),(38180,1),(38183,1),(38186,1),(38205,1),(38209,1),(38224,1),(38228,1),(38230,1),(38243,1),(38246,1),(38250,1),(38252,1),(38255,1),(38265,1),(38268,1),(38271,1),(38273,1),(38274,1),(38276,1),(38281,1),(38295,1),(38296,1),(38300,1),(38301,1),(38309,1),(38312,1),(38313,1),(38317,1),(38318,1),(38320,1),(38326,1),(38341,1),(38344,1),(38347,1),(38349,1),(38354,1),(38361,1),(38373,1),(38376,1),(38403,1),(38409,1),(38433,1),(38434,1),(38442,1),(38447,1),(38451,1),(38468,1),(38472,1),(38475,1),(38482,1),(38484,1),(38493,1),(38498,1),(38499,1),(38504,1),(38508,1),(38509,1),(38512,1),(38519,1),(38521,1),(38523,1),(38525,1),(38541,1),(38545,1),(38550,1),(38554,1),(38559,1),(38566,1),(38568,1),(38571,1),(38574,1),(38577,1),(38578,1),(38579,1),(38585,1),(38592,1),(38593,1),(38594,1),(38612,1),(38613,1),(38615,1),(38635,1),(38637,1),(38640,1),(38646,1),(38647,1),(38654,1),(38659,1),(38660,1),(38669,1),(38674,1),(38677,1),(38680,1),(38684,1),(38692,1),(38693,1),(38700,1),(38703,1),(38718,1),(38724,1),(38735,1),(38738,1),(38744,1),(38747,1),(38748,1),(38749,1),(38759,1),(38766,1),(38783,1),(38787,1),(38794,1),(38795,1),(38796,1),(38800,1),(38807,1),(38808,1),(38811,1),(38812,1),(38815,1),(38817,1),(38842,1),(38847,1),(38851,1),(38852,1),(38855,1),(38859,1),(38860,1),(38866,1),(38867,1),(38876,1),(38882,1),(38884,1),(38891,1),(38892,1),(38895,1),(38910,1),(38916,1),(38920,1),(38922,1),(38924,1),(38928,1),(38932,1),(38945,1),(38956,1),(38960,1),(38972,1),(38973,1),(38974,1),(38975,1),(38993,1),(39004,1),(39005,1),(39009,1),(39011,1),(39015,1),(39016,1),(39019,1),(39022,1),(39024,1),(39026,1),(39030,1),(39043,1),(39047,1),(39055,1),(39067,1),(39069,1),(39083,1),(39100,1),(39104,1),(39105,1),(39113,1),(39126,1),(39134,1),(39138,1),(39140,1),(39141,1),(39143,1),(39147,1),(39148,1),(39162,1),(39179,1),(39188,1),(39193,1),(39194,1),(39197,1),(39207,1),(39221,1),(39226,1),(39232,1),(39233,1),(39235,1),(39242,1),(39249,1),(39250,1),(39251,1),(39255,1),(39259,1),(39262,1),(39265,1),(39270,1),(39272,1),(39282,1),(39284,1),(39289,1),(39294,1),(39297,1),(39298,1),(39299,1),(39307,1),(39310,1),(39322,1),(39328,1),(39338,1),(39340,1),(39345,1),(39348,1),(39349,1),(39360,1),(39389,1),(39397,1),(39406,1),(39409,1),(39417,1),(39423,1),(39424,1),(39425,1),(39426,1),(39432,1),(39442,1),(39443,1),(39446,1),(39464,1),(39465,1),(39468,1),(39469,1),(39473,1),(39475,1),(39478,1),(39488,1),(39491,1),(39493,1),(39499,1),(39508,1),(39516,1),(39525,1),(39530,1),(39537,1),(39543,1),(39544,1),(39546,1),(39547,1),(39549,1),(39554,1),(39556,1),(39565,1),(39566,1),(39584,1),(39592,1),(39595,1),(39600,1),(39602,1),(39606,1),(39607,1),(39610,1),(39615,1),(39635,1),(39636,1),(39639,1),(39649,1),(39655,1),(39660,1),(39661,1),(39662,1),(39667,1),(39677,1),(39678,1),(39685,1),(39693,1),(39696,1),(39708,1),(39721,1),(39726,1),(39728,1),(39731,1),(39739,1),(39742,1),(39749,1),(39753,1),(39759,1),(39767,1),(39769,1),(39777,1),(39785,1),(39795,1),(39799,1),(39801,1),(39805,1),(39816,1),(39819,1),(39823,1),(39828,1),(39834,1),(39835,1),(39838,1),(39846,1),(39849,1),(39852,1),(39856,1),(39859,1),(39867,1),(39877,1),(39878,1),(39879,1),(39892,1),(39896,1),(39908,1),(39919,1),(39925,1),(39933,1),(39935,1),(39937,1),(39942,1),(39944,1),(39948,1),(39949,1),(39952,1),(39966,1),(39975,1),(39983,1),(40005,1),(40011,1),(40014,1),(40019,1),(40046,1),(40049,1),(40052,1),(40054,1),(40055,1),(40061,1),(40063,1),(40065,1),(40069,1),(40074,1),(40080,1),(40084,1),(40087,1),(40088,1),(40089,1),(40093,1),(40102,1),(40105,1),(40114,1),(40122,1),(40126,1),(40131,1),(40132,1),(40134,1),(40137,1),(40139,1),(40141,1),(40144,1),(40148,1),(40152,1),(40158,1),(40161,1),(40174,1),(40175,1),(40178,1),(40186,1),(40197,1),(40198,1),(40201,1),(40204,1),(40218,1),(40227,1),(40237,1),(40238,1),(40242,1),(40245,1),(40246,1),(40249,1),(40253,1),(40257,1),(40264,1),(40271,1),(40272,1),(40276,1),(40284,1),(40290,1),(40294,1),(40295,1),(40299,1),(40303,1),(40306,1),(40309,1),(40310,1),(40313,1),(40324,1),(40327,1),(40331,1),(40335,1),(40349,1),(40363,1),(40365,1),(40382,1),(40383,1),(40384,1),(40393,1),(40402,1),(40408,1),(40411,1),(40414,1),(40419,1),(40424,1),(40428,1),(40441,1),(40442,1),(40451,1),(40452,1),(40461,1),(40468,1),(40476,1),(40477,1),(40486,1),(40487,1),(40488,1),(40503,1),(40513,1),(40515,1),(40516,1),(40526,1),(40528,1),(40540,1),(40545,1),(40552,1),(40556,1),(40562,1),(40565,1),(40566,1),(40568,1),(40584,1),(40610,1),(40612,1),(40621,1),(40622,1),(40624,1),(40638,1),(40642,1),(40644,1),(40648,1),(40651,1),(40657,1),(40663,1),(40665,1),(40677,1),(40682,1),(40695,1),(40710,1),(40711,1),(40720,1),(40721,1),(40722,1),(40725,1),(40726,1),(40731,1),(40734,1),(40736,1),(40740,1),(40753,1),(40754,1),(40759,1),(40764,1),(40775,1),(40783,1),(40789,1),(40800,1),(40801,1),(40818,1),(40827,1),(40828,1),(40835,1),(40839,1),(40841,1),(40843,1),(40860,1),(40869,1),(40874,1),(40876,1),(40880,1),(40891,1),(40900,1),(40908,1),(40909,1),(40916,1),(40918,1),(40921,1),(40924,1),(40929,1),(40937,1),(40938,1),(40941,1),(40944,1),(40945,1),(40952,1),(40955,1),(40976,1),(40983,1),(40989,1),(40991,1),(41004,1),(41011,1),(41012,1),(41019,1),(41023,1),(41025,1),(41041,1),(41043,1),(41058,1),(41059,1),(41063,1),(41076,1),(41078,1),(41085,1),(41090,1),(41097,1),(41104,1),(41134,1),(41137,1),(41140,1),(41144,1),(41146,1),(41149,1),(41167,1),(41177,1),(41181,1),(41196,1),(41197,1),(41199,1),(41204,1),(41206,1),(41208,1),(41215,1),(41219,1),(41226,1),(41234,1),(41235,1),(41242,1),(41267,1),(41269,1),(41271,1),(41272,1),(41273,1),(41284,1),(41287,1),(41295,1),(41298,1),(41321,1),(41324,1),(41325,1),(41332,1),(41334,1),(41337,1),(41338,1),(41340,1),(41354,1),(41367,1),(41376,1),(41382,1),(41385,1),(41394,1),(41401,1),(41405,1),(41408,1),(41411,1),(41413,1),(41422,1),(41434,1),(41435,1),(41440,1),(41447,1),(41451,1),(41453,1),(41455,1),(41457,1),(41463,1),(41486,1),(41496,1),(41500,1),(41502,1),(41509,1),(41515,1),(41519,1),(41525,1),(41536,1),(41545,1),(41552,1),(41553,1),(41571,1),(41580,1),(41585,1),(41587,1),(41597,1),(41602,1),(41605,1),(41609,1),(41612,1),(41613,1),(41619,1),(41626,1),(41636,1),(41640,1),(41656,1),(41667,1),(41672,1),(41673,1),(41676,1),(41680,1),(41685,1),(41688,1),(41690,1),(41691,1),(41697,1),(41701,1),(41704,1),(41709,1),(41721,1),(41724,1),(41747,1),(41751,1),(41752,1),(41759,1),(41767,1),(41779,1),(41789,1),(41796,1),(41803,1),(41816,1),(41819,1),(41823,1),(41828,1),(41849,1),(41853,1),(41863,1),(41871,1),(41877,1),(41880,1),(41897,1),(41898,1),(41902,1),(41906,1),(41909,1),(41910,1),(41911,1),(41913,1),(41922,1),(41928,1),(41938,1),(41941,1),(41949,1),(41953,1),(41957,1),(41958,1),(41972,1),(41986,1),(41988,1),(41997,1),(41998,1),(42003,1),(42010,1),(42017,1),(42020,1),(42027,1),(42036,1),(42041,1),(42051,1),(42062,1),(42076,1),(42078,1),(42090,1),(42093,1),(42097,1),(42113,1),(42117,1),(42129,1),(42142,1),(42146,1),(42159,1),(42165,1),(42186,1),(42200,1),(42209,1),(42219,1),(42223,1),(42225,1),(42240,1),(42245,1),(42247,1),(42249,1),(42260,1),(42262,1),(42271,1),(42274,1),(42279,1),(42280,1),(42285,1),(42287,1),(42291,1),(42297,1),(42305,1),(42314,1),(42315,1),(42324,1),(42327,1),(42334,1),(42343,1),(42346,1),(42353,1),(42359,1),(42362,1),(42372,1),(42373,1),(42377,1),(42381,1),(42392,1),(42399,1),(42400,1),(42402,1),(42406,1),(42407,1),(42455,1),(42471,1),(42479,1),(42489,1),(42490,1),(42504,1),(42505,1),(42507,1),(42512,1),(42521,1),(42528,1),(42532,1),(42535,1),(42543,1),(42550,1),(42553,1),(42554,1),(42555,1),(42559,1),(42565,1),(42572,1),(42580,1),(42584,1),(42587,1),(42593,1),(42597,1),(42600,1),(42601,1),(42610,1),(42616,1),(42624,1),(42647,1),(42658,1),(42661,1),(42663,1),(42664,1),(42665,1),(42671,1),(42676,1),(42677,1),(42684,1),(42696,1),(42700,1),(42701,1),(42707,1),(42709,1),(42710,1),(42711,1),(42718,1),(42719,1),(42724,1),(42731,1),(42732,1),(42737,1),(42763,1),(42764,1),(42771,1),(42777,1),(42799,1),(42809,1),(42812,1),(42826,1),(42828,1),(42831,1),(42832,1),(42845,1),(42852,1),(42885,1),(42888,1),(42893,1),(42896,1),(42905,1),(42909,1),(42911,1),(42923,1),(42927,1),(42930,1),(42933,1),(42936,1),(42937,1),(42940,1),(42944,1),(42949,1),(42950,1),(42955,1),(42963,1),(42965,1),(42969,1),(42974,1),(42993,1),(42994,1),(43026,1),(43034,1),(43044,1),(43048,1),(43057,1),(43058,1),(43060,1),(43069,1),(43079,1),(43087,1),(43092,1),(43095,1),(43101,1),(43104,1),(43107,1),(43108,1),(43109,1),(43117,1),(43126,1),(43132,1),(43147,1),(43150,1),(43157,1),(43166,1),(43167,1),(43169,1),(43171,1),(43173,1),(43177,1),(43183,1),(43188,1),(43190,1),(43192,1),(43197,1),(43201,1),(43203,1),(43219,1),(43229,1),(43230,1),(43238,1),(43240,1),(43246,1),(43249,1),(43288,1),(43292,1),(43294,1),(43302,1),(43322,1),(43341,1),(43342,1),(43351,1),(43352,1),(43353,1),(43360,1),(43362,1),(43364,1),(43373,1),(43378,1),(43386,1),(43390,1),(43393,1),(43403,1),(43408,1),(43414,1),(43419,1),(43440,1),(43445,1),(43462,1),(43475,1),(43481,1),(43485,1),(43513,1),(43524,1),(43552,1),(43556,1),(43557,1),(43566,1),(43589,1),(43593,1),(43599,1),(43612,1),(43614,1),(43623,1),(43626,1),(43628,1),(43634,1),(43646,1),(43660,1),(43662,1),(43663,1),(43665,1),(43674,1),(43677,1),(43682,1),(43688,1),(43690,1),(43694,1),(43695,1),(43702,1),(43703,1),(43705,1),(43715,1),(43719,1),(43724,1),(43730,1),(43734,1),(43747,1),(43750,1),(43757,1),(43767,1),(43780,1),(43782,1),(43792,1),(43796,1),(43802,1),(43805,1),(43809,1),(43811,1),(43812,1),(43817,1),(43822,1),(43832,1),(43834,1),(43847,1),(43852,1),(43857,1),(43858,1),(43901,1),(43903,1),(43906,1),(43910,1),(43924,1),(43938,1),(43941,1),(43949,1),(43951,1),(43959,1),(43960,1),(43972,1),(43978,1),(43980,1),(43982,1),(43986,1),(43990,1),(43996,1),(43999,1),(44012,1),(44014,1),(44022,1),(44033,1),(44038,1),(44040,1),(44061,1),(44090,1),(44092,1),(44098,1),(44100,1),(44116,1),(44124,1),(44128,1),(44135,1),(44136,1),(44139,1),(44147,1),(44150,1),(44151,1),(44152,1),(44153,1),(44162,1),(44170,1),(44192,1),(44194,1),(44200,1),(44207,1),(44212,1),(44223,1),(44226,1),(44250,1),(44251,1),(44271,1),(44272,1),(44276,1),(44281,1),(44286,1),(44287,1),(44292,1),(44294,1),(44304,1),(44306,1),(44317,1),(44323,1),(44324,1),(44326,1),(44330,1),(44338,1),(44343,1),(44348,1),(44360,1),(44369,1),(44373,1),(44374,1),(44375,1),(44376,1),(44377,1),(44381,1),(44385,1),(44393,1),(44400,1),(44411,1),(44418,1),(44428,1),(44435,1),(44447,1),(44455,1),(44457,1),(44459,1),(44460,1),(44466,1),(44469,1),(44472,1),(44486,1),(44498,1),(44513,1),(44522,1),(44527,1),(44532,1),(44535,1),(44539,1),(44545,1),(44546,1),(44555,1),(44561,1),(44579,1),(44581,1),(44583,1),(44584,1),(44592,1),(44629,1),(44639,1),(44643,1),(44657,1),(44666,1),(44682,1),(44683,1),(44687,1),(44692,1),(44705,1),(44712,1),(44717,1),(44726,1),(44729,1),(44730,1),(44733,1),(44738,1),(44743,1),(44746,1),(44750,1),(44760,1),(44770,1),(44772,1),(44776,1),(44777,1),(44779,1),(44780,1),(44781,1),(44785,1),(44786,1),(44812,1),(44813,1),(44814,1),(44823,1),(44830,1),(44847,1),(44850,1),(44855,1),(44856,1),(44862,1),(44865,1),(44866,1),(44874,1),(44876,1),(44879,1),(44883,1),(44889,1),(44890,1),(44891,1),(44900,1),(44901,1),(44908,1),(44909,1),(44914,1),(44931,1),(44937,1),(44942,1),(44945,1),(44947,1),(44953,1),(44957,1),(44961,1),(44962,1),(44969,1),(44970,1),(44972,1),(44977,1),(44980,1),(44983,1),(44995,1),(44997,1),(45007,1),(45009,1),(45016,1),(45020,1),(45028,1),(45029,1),(45030,1),(45035,1),(45050,1),(45061,1),(45082,1),(45092,1),(45119,1),(45130,1),(45136,1),(45139,1),(45146,1),(45148,1),(45150,1),(45158,1),(45175,1),(45179,1),(45182,1),(45191,1),(45192,1),(45210,1),(45216,1),(45217,1),(45223,1),(45230,1),(45231,1),(45234,1),(45238,1),(45245,1),(45250,1),(45263,1),(45267,1),(45276,1),(45284,1),(45289,1),(45296,1),(45300,1),(45308,1),(45320,1),(45321,1),(45322,1),(45323,1),(45331,1),(45335,1),(45346,1),(45348,1),(45350,1),(45352,1),(45357,1),(45359,1),(45364,1),(45367,1),(45382,1),(45383,1),(45385,1),(45386,1),(45389,1),(45395,1),(45399,1),(45405,1),(45414,1),(45415,1),(45426,1),(45433,1),(45434,1),(45442,1),(45444,1),(45446,1),(45450,1),(45452,1),(45454,1),(45466,1),(45479,1),(45485,1),(45490,1),(45493,1),(45495,1),(45496,1),(45499,1),(45508,1),(45509,1),(45512,1),(45514,1),(45517,1),(45522,1),(45523,1),(45527,1),(45533,1),(45538,1),(45539,1),(45542,1),(45543,1),(45544,1),(45549,1),(45551,1),(45558,1),(45569,1),(45570,1),(45575,1),(45582,1),(45583,1),(45584,1),(45591,1),(45603,1),(45606,1),(45611,1),(45616,1),(45619,1),(45621,1),(45623,1),(45624,1),(45627,1),(45632,1),(45639,1),(45645,1),(45647,1),(45654,1),(45655,1),(45662,1),(45665,1),(45666,1),(45669,1),(45679,1),(45706,1),(45713,1),(45716,1),(45718,1),(45741,1),(45743,1),(45750,1),(45753,1),(45754,1),(45761,1),(45763,1),(45774,1),(45777,1),(45781,1),(45795,1),(45802,1),(45809,1),(45834,1),(45837,1),(45841,1),(45844,1),(45851,1),(45854,1),(45871,1),(45874,1),(45887,1),(45894,1),(45899,1),(45904,1),(45927,1),(45929,1),(45931,1),(45943,1),(45960,1),(45971,1),(45973,1),(45977,1),(45979,1),(45985,1),(46005,1),(46027,1),(46029,1),(46031,1),(46032,1),(46037,1),(46038,1),(46059,1),(46062,1),(46071,1),(46073,1),(46076,1),(46096,1),(46098,1),(46099,1),(46106,1),(46108,1),(46124,1),(46130,1),(46132,1),(46135,1),(46142,1),(46144,1),(46153,1),(46160,1),(46166,1),(46169,1),(46176,1),(46195,1),(46198,1),(46203,1),(46206,1),(46209,1),(46215,1),(46219,1),(46229,1),(46231,1),(46234,1),(46236,1),(46239,1),(46241,1),(46243,1),(46251,1),(46252,1),(46254,1),(46262,1),(46263,1),(46266,1),(46273,1),(46276,1),(46282,1),(46286,1),(46292,1),(46300,1),(46303,1),(46307,1),(46308,1),(46327,1),(46332,1),(46334,1),(46339,1),(46345,1),(46357,1),(46358,1),(46372,1),(46377,1),(46380,1),(46384,1),(46390,1),(46393,1),(46399,1),(46413,1),(46421,1),(46425,1),(46435,1),(46445,1),(46451,1),(46453,1),(46469,1),(46470,1),(46474,1),(46484,1),(46488,1),(46502,1),(46507,1),(46509,1),(46513,1),(46525,1),(46527,1),(46532,1),(46559,1),(46571,1),(46577,1),(46586,1),(46588,1),(46597,1),(46598,1),(46599,1),(46608,1),(46614,1),(46620,1),(46636,1),(46640,1),(46647,1),(46652,1),(46658,1),(46659,1),(46695,1),(46697,1),(46705,1),(46712,1),(46720,1),(46725,1),(46727,1),(46730,1),(46732,1),(46733,1),(46738,1),(46742,1),(46743,1),(46754,1),(46757,1),(46762,1),(46770,1),(46777,1),(46787,1),(46796,1),(46805,1),(46806,1),(46807,1),(46814,1),(46816,1),(46822,1),(46825,1),(46837,1),(46858,1),(46862,1),(46867,1),(46875,1),(46881,1),(46888,1),(46892,1),(46897,1),(46898,1),(46904,1),(46906,1),(46910,1),(46930,1),(46941,1),(46943,1),(46951,1),(46953,1),(46954,1),(46955,1),(46960,1),(46961,1),(46970,1),(46972,1),(46976,1),(46978,1),(46982,1),(46989,1),(46993,1),(47000,1),(47004,1),(47006,1),(47012,1),(47015,1),(47022,1),(47025,1),(47049,1),(47051,1),(47055,1),(47060,1),(47071,1),(47079,1),(47085,1),(47087,1),(47089,1),(47097,1),(47103,1),(47104,1),(47109,1),(47123,1),(47127,1),(47129,1),(47131,1),(47138,1),(47161,1),(47165,1),(47169,1),(47172,1),(47175,1),(47178,1),(47202,1),(47205,1),(47226,1),(47227,1),(47236,1),(47238,1),(47239,1),(47244,1),(47245,1),(47248,1),(47255,1),(47262,1),(47272,1),(47274,1),(47288,1),(47299,1),(47309,1),(47310,1),(47314,1),(47317,1),(47336,1),(47345,1),(47348,1),(47353,1),(47355,1),(47357,1),(47364,1),(47365,1),(47368,1),(47371,1),(47375,1),(47381,1),(47387,1),(47394,1),(47395,1),(47396,1),(47398,1),(47403,1),(47408,1),(47423,1),(47425,1),(47432,1),(47436,1),(47442,1),(47443,1),(47447,1),(47454,1),(47459,1),(47461,1),(47462,1),(47476,1),(47478,1),(47480,1),(47488,1),(47494,1),(47505,1),(47519,1),(47520,1),(47527,1),(47528,1),(47529,1),(47532,1),(47541,1),(47546,1),(47554,1),(47564,1),(47565,1),(47574,1),(47576,1),(47578,1),(47586,1),(47595,1),(47607,1),(47608,1),(47611,1),(47615,1),(47620,1),(47622,1),(47625,1),(47632,1),(47639,1),(47640,1),(47646,1),(47658,1),(47659,1),(47664,1),(47667,1),(47668,1),(47669,1),(47682,1),(47689,1),(47704,1),(47708,1),(47727,1),(47731,1),(47736,1),(47737,1),(47738,1),(47740,1),(47742,1),(47751,1),(47753,1),(47754,1),(47755,1),(47767,1),(47769,1),(47771,1),(47800,1),(47812,1),(47823,1),(47824,1),(47831,1),(47843,1),(47845,1),(47848,1),(47852,1),(47854,1),(47858,1),(47867,1),(47868,1),(47871,1),(47872,1),(47880,1),(47888,1),(47889,1),(47891,1),(47898,1),(47899,1),(47900,1),(47903,1),(47906,1),(47910,1),(47915,1),(47932,1),(47933,1),(47934,1),(47935,1),(47942,1),(47946,1),(47954,1),(47958,1),(47980,1),(47981,1),(47984,1),(47992,1),(47999,1),(48001,1),(48036,1),(48055,1),(48059,1),(48063,1),(48065,1),(48070,1),(48082,1),(48086,1),(48104,1),(48106,1),(48121,1),(48140,1),(48142,1),(48145,1),(48154,1),(48161,1),(48162,1),(48180,1),(48181,1),(48187,1),(48191,1),(48194,1),(48198,1),(48203,1),(48204,1),(48207,1),(48211,1),(48216,1),(48228,1),(48229,1),(48237,1),(48246,1),(48251,1),(48256,1),(48262,1),(48268,1),(48270,1),(48275,1),(48279,1),(48280,1),(48281,1),(48282,1),(48287,1),(48289,1),(48299,1),(48302,1),(48306,1),(48307,1),(48309,1),(48312,1),(48315,1),(48329,1),(48334,1),(48336,1),(48347,1),(48350,1),(48355,1),(48357,1),(48373,1),(48381,1),(48385,1),(48388,1),(48394,1),(48395,1),(48396,1),(48408,1),(48409,1),(48411,1),(48422,1),(48426,1),(48437,1),(48441,1),(48443,1),(48449,1),(48451,1),(48452,1),(48472,1),(48476,1),(48483,1),(48493,1),(48496,1),(48511,1),(48513,1),(48514,1),(48515,1),(48522,1),(48523,1),(48527,1),(48540,1),(48547,1),(48556,1),(48558,1),(48560,1),(48567,1),(48577,1),(48579,1),(48586,1),(48599,1),(48602,1),(48605,1),(48608,1),(48613,1),(48623,1),(48626,1),(48628,1),(48631,1),(48640,1),(48641,1),(48642,1),(48648,1),(48652,1),(48670,1),(48676,1),(48681,1),(48689,1),(48707,1),(48712,1),(48717,1),(48724,1),(48727,1),(48728,1),(48735,1),(48742,1),(48746,1),(48748,1),(48751,1),(48752,1),(48753,1),(48758,1),(48762,1),(48764,1),(48765,1),(48766,1),(48776,1),(48786,1),(48797,1),(48804,1),(48816,1),(48821,1),(48843,1),(48846,1),(48848,1),(48853,1),(48855,1),(48859,1),(48868,1),(48873,1),(48874,1),(48884,1),(48888,1),(48897,1),(48904,1),(48911,1),(48922,1),(48924,1),(48931,1),(48939,1),(48942,1),(48949,1),(48954,1),(48960,1),(48962,1),(48966,1),(48979,1),(48988,1),(48989,1),(48991,1),(48997,1),(48998,1),(49000,1),(49011,1),(49023,1),(49029,1),(49030,1),(49039,1),(49040,1),(49045,1),(49048,1),(49052,1),(49056,1),(49057,1),(49063,1),(49064,1),(49067,1),(49070,1),(49073,1),(49080,1),(49081,1),(49090,1),(49097,1),(49102,1),(49121,1),(49128,1),(49133,1),(49139,1),(49141,1),(49148,1),(49162,1),(49164,1),(49168,1),(49169,1),(49175,1),(49178,1),(49179,1),(49184,1),(49185,1),(49186,1),(49190,1),(49199,1),(49207,1),(49209,1),(49212,1),(49213,1),(49221,1),(49227,1),(49231,1),(49232,1),(49245,1),(49249,1),(49251,1),(49264,1),(49266,1),(49271,1),(49275,1),(49279,1),(49280,1),(49291,1),(49294,1),(49305,1),(49308,1),(49309,1),(49325,1),(49327,1),(49333,1),(49335,1),(49343,1),(49355,1),(49363,1),(49368,1),(49369,1),(49376,1),(49399,1),(49406,1),(49407,1),(49413,1),(49424,1),(49440,1),(49446,1),(49447,1),(49455,1),(49465,1),(49475,1),(49476,1),(49478,1),(49481,1),(49483,1),(49484,1),(49493,1),(49494,1),(49496,1),(49503,1),(49520,1),(49539,1),(49544,1),(49547,1),(49549,1),(49553,1),(49557,1),(49561,1),(49574,1),(49581,1),(49598,1),(49600,1),(49602,1),(49607,1),(49612,1),(49616,1),(49618,1),(49624,1),(49633,1),(49638,1),(49644,1),(49646,1),(49653,1),(49674,1),(49677,1),(49707,1),(49708,1),(49710,1),(49716,1),(49722,1),(49723,1),(49734,1),(49739,1),(49743,1),(49746,1),(49749,1),(49759,1),(49762,1),(49764,1),(49768,1),(49772,1),(49778,1),(49785,1),(49786,1),(49790,1),(49798,1),(49802,1),(49818,1),(49823,1),(49834,1),(49847,1),(49851,1),(49852,1),(49854,1),(49857,1),(49861,1),(49875,1),(49881,1),(49898,1),(49904,1),(49910,1),(49917,1),(49924,1),(49927,1),(49929,1),(49933,1),(49936,1),(49939,1),(49940,1),(49946,1),(49950,1),(49962,1),(49969,1),(49970,1),(49978,1),(49981,1),(49992,1),(49995,1),(50000,1),(50006,1),(50018,1),(50023,1),(50033,1),(50048,1),(50056,1),(50059,1),(50070,1),(50085,1),(50087,1),(50091,1),(50098,1),(50104,1),(50108,1),(50109,1),(50115,1),(50126,1),(50127,1),(50139,1),(50141,1),(50152,1),(50155,1),(50156,1),(50159,1),(50163,1),(50164,1),(50169,1),(50182,1),(50194,1),(50201,1),(50203,1),(50210,1),(50217,1),(50219,1),(50225,1),(50235,1),(50236,1),(50250,1),(50259,1),(50269,1),(50270,1),(50276,1),(50283,1),(50293,1),(50294,1),(50306,1),(50313,1),(50323,1),(50345,1),(50352,1),(50356,1),(50357,1),(50368,1),(50369,1),(50370,1),(50379,1),(50397,1),(50400,1),(50404,1),(50407,1),(50429,1),(50435,1),(50460,1),(50482,1),(50483,1),(50494,1),(50500,1),(50501,1),(50509,1),(50510,1),(50514,1),(50515,1),(50516,1),(50525,1),(50529,1),(50534,1),(50544,1),(50551,1),(50553,1),(50554,1),(50556,1),(50561,1),(50562,1),(50563,1),(50569,1),(50571,1),(50576,1),(50579,1),(50612,1),(50618,1),(50622,1),(50627,1),(50639,1),(50644,1),(50647,1),(50650,1),(50654,1),(50671,1),(50679,1),(50680,1),(50682,1),(50688,1),(50691,1),(50692,1),(50693,1),(50699,1),(50700,1),(50705,1),(50706,1),(50712,1),(50715,1),(50717,1),(50720,1),(50726,1),(50732,1),(50741,1),(50760,1),(50761,1),(50767,1),(50769,1),(50777,1),(50782,1),(50785,1),(50804,1),(50809,1),(50810,1),(50823,1),(50831,1),(50832,1),(50837,1),(50841,1),(50842,1),(50849,1),(50850,1),(50851,1),(50852,1),(50866,1),(50870,1),(50871,1),(50877,1),(50882,1),(50890,1),(50897,1),(50902,1),(50904,1),(50910,1),(50911,1),(50912,1),(50920,1),(50923,1),(50926,1),(50928,1),(50932,1),(50936,1),(50943,1),(50950,1),(50951,1),(50952,1),(50969,1),(50979,1),(50982,1),(50984,1),(50990,1),(50992,1),(51003,1),(51019,1),(51034,1),(51059,1),(51064,1),(51073,1),(51100,1),(51106,1),(51109,1),(51112,1),(51116,1),(51119,1),(51128,1),(51129,1),(51140,1),(51141,1),(51143,1),(51146,1),(51158,1),(51170,1),(51173,1),(51174,1),(51176,1),(51178,1),(51188,1),(51197,1),(51198,1),(51210,1),(51226,1),(51239,1),(51245,1),(51247,1),(51253,1),(51258,1),(51260,1),(51264,1),(51265,1),(51271,1),(51276,1),(51282,1),(51287,1),(51291,1),(51300,1),(51308,1),(51313,1),(51318,1),(51320,1),(51331,1),(51338,1),(51340,1),(51341,1),(51347,1),(51352,1),(51367,1),(51378,1),(51382,1),(51384,1),(51386,1),(51390,1),(51392,1),(51394,1),(51395,1),(51396,1),(51402,1),(51403,1),(51404,1),(51412,1),(51417,1),(51422,1),(51424,1),(51428,1),(51430,1),(51442,1),(51471,1),(51477,1),(51492,1),(51506,1),(51508,1),(51521,1),(51524,1),(51525,1),(51529,1),(51531,1),(51537,1),(51539,1),(51546,1),(51550,1),(51553,1),(51560,1),(51565,1),(51567,1),(51572,1),(51582,1),(51593,1),(51600,1),(51607,1),(51618,1),(51621,1),(51625,1),(51636,1),(51649,1),(51652,1),(51654,1),(51657,1),(51662,1),(51673,1),(51688,1),(51693,1),(51694,1),(51697,1),(51701,1),(51702,1),(51712,1),(51718,1),(51721,1),(51724,1),(51729,1),(51730,1),(51748,1),(51751,1),(51757,1),(51764,1),(51773,1),(51780,1),(51782,1),(51795,1),(51804,1),(51810,1),(51812,1),(51824,1),(51825,1),(51828,1),(51829,1),(51831,1),(51839,1),(51840,1),(51850,1),(51854,1),(51858,1),(51859,1),(51860,1),(51867,1),(51882,1),(51887,1),(51888,1),(51901,1),(51905,1),(51908,1),(51921,1),(51939,1),(51950,1),(51962,1),(51972,1),(51974,1),(51975,1),(51981,1),(51987,1),(52002,1),(52004,1),(52005,1),(52007,1),(52011,1),(52012,1),(52015,1),(52016,1),(52023,1),(52026,1),(52027,1),(52041,1),(52054,1),(52055,1),(52056,1),(52070,1),(52072,1),(52078,1),(52097,1),(52098,1),(52114,1),(52122,1),(52131,1),(52145,1),(52147,1),(52149,1),(52154,1),(52159,1),(52165,1),(52167,1),(52171,1),(52173,1),(52175,1),(52176,1),(52177,1),(52191,1),(52193,1),(52202,1),(52205,1),(52207,1),(52210,1),(52211,1),(52214,1),(52220,1),(52246,1),(52248,1),(52250,1),(52260,1),(52263,1),(52264,1),(52282,1),(52284,1),(52285,1),(52289,1),(52290,1),(52303,1),(52308,1),(52309,1),(52323,1),(52325,1),(52335,1),(52338,1),(52356,1),(52358,1),(52359,1),(52368,1),(52372,1),(52395,1),(52396,1),(52403,1),(52409,1),(52410,1),(52413,1),(52416,1),(52422,1),(52427,1),(52430,1),(52438,1),(52443,1),(52446,1),(52455,1),(52461,1),(52469,1),(52471,1),(52477,1),(52480,1),(52488,1),(52496,1),(52498,1),(52509,1),(52510,1),(52511,1),(52524,1),(52535,1),(52536,1),(52544,1),(52549,1),(52551,1),(52557,1),(52560,1),(52561,1),(52562,1),(52564,1),(52568,1),(52577,1),(52581,1),(52582,1),(52583,1),(52586,1),(52587,1),(52593,1),(52594,1),(52595,1),(52597,1),(52599,1),(52618,1),(52631,1),(52634,1),(52635,1),(52637,1),(52641,1),(52647,1),(52650,1),(52651,1),(52657,1),(52661,1),(52664,1),(52668,1),(52669,1),(52678,1),(52685,1),(52688,1),(52689,1),(52692,1),(52694,1),(52702,1),(52705,1),(52707,1),(52712,1),(52713,1),(52718,1),(52732,1),(52741,1),(52747,1),(52751,1),(52752,1),(52766,1),(52778,1),(52782,1),(52793,1),(52797,1),(52799,1),(52816,1),(52820,1),(52827,1),(52828,1),(52834,1),(52839,1),(52844,1),(52847,1),(52857,1),(52864,1),(52865,1),(52870,1),(52875,1),(52901,1),(52917,1),(52918,1),(52924,1),(52940,1),(52948,1),(52957,1),(52958,1),(52959,1),(52978,1),(52979,1),(53001,1),(53005,1),(53012,1),(53024,1),(53027,1),(53029,1),(53032,1),(53041,1),(53049,1),(53057,1),(53065,1),(53075,1),(53088,1),(53097,1),(53107,1),(53118,1),(53120,1),(53122,1),(53134,1),(53138,1),(53159,1),(53165,1),(53166,1),(53176,1),(53186,1),(53190,1),(53200,1),(53205,1),(53207,1),(53216,1),(53233,1),(53239,1),(53241,1),(53251,1),(53255,1),(53270,1),(53285,1),(53294,1),(53310,1),(53313,1),(53326,1),(53328,1),(53329,1),(53339,1),(53349,1),(53362,1),(53378,1),(53382,1),(53392,1),(53393,1),(53395,1),(53398,1),(53399,1),(53408,1),(53426,1),(53427,1),(53429,1),(53430,1),(53442,1),(53444,1),(53446,1),(53448,1),(53452,1),(53453,1),(53457,1),(53463,1),(53465,1),(53477,1),(53504,1),(53516,1),(53525,1),(53533,1),(53541,1),(53553,1),(53554,1),(53557,1),(53566,1),(53569,1),(53575,1),(53577,1),(53581,1),(53588,1),(53590,1),(53598,1),(53604,1),(53615,1),(53619,1),(53624,1),(53633,1),(53635,1),(53637,1),(53650,1),(53651,1),(53658,1),(53663,1),(53667,1),(53688,1),(53690,1),(53702,1),(53703,1),(53709,1),(53746,1),(53749,1),(53758,1),(53760,1),(53769,1),(53771,1),(53790,1),(53792,1),(53801,1),(53803,1),(53815,1),(53817,1),(53824,1),(53826,1),(53835,1),(53845,1),(53846,1),(53849,1),(53853,1),(53861,1),(53863,1),(53868,1),(53882,1),(53885,1),(53890,1),(53891,1),(53900,1),(53904,1),(53913,1),(53923,1),(53928,1),(53934,1),(53936,1),(53946,1),(53960,1),(53974,1),(53976,1),(53981,1),(53982,1),(53987,1),(53999,1),(54001,1),(54026,1),(54036,1),(54044,1),(54045,1),(54058,1),(54061,1),(54077,1),(54088,1),(54091,1),(54094,1),(54095,1),(54099,1),(54103,1),(54108,1),(54110,1),(54127,1),(54144,1),(54146,1),(54150,1),(54152,1),(54165,1),(54172,1),(54175,1),(54176,1),(54192,1),(54199,1),(54214,1),(54215,1),(54216,1),(54218,1),(54223,1),(54238,1),(54244,1),(54275,1),(54292,1),(54301,1),(54315,1),(54329,1),(54331,1),(54343,1),(54350,1),(54356,1),(54357,1),(54367,1),(54370,1),(54380,1),(54389,1),(54391,1),(54395,1),(54398,1),(54412,1),(54414,1),(54416,1),(54424,1),(54429,1),(54432,1),(54437,1),(54438,1),(54460,1),(54461,1),(54469,1),(54480,1),(54482,1),(54495,1),(54501,1),(54510,1),(54511,1),(54514,1),(54517,1),(54518,1),(54519,1),(54528,1),(54529,1),(54535,1),(54537,1),(54539,1),(54548,1),(54552,1),(54555,1),(54573,1),(54575,1),(54584,1),(54593,1),(54598,1),(54625,1),(54627,1),(54634,1),(54638,1),(54640,1),(54643,1),(54647,1),(54650,1),(54652,1),(54668,1),(54674,1),(54675,1),(54692,1),(54706,1),(54712,1),(54714,1),(54724,1),(54727,1),(54728,1),(54735,1),(54740,1),(54744,1),(54749,1),(54750,1),(54752,1),(54772,1),(54776,1),(54779,1),(54808,1),(54836,1),(54845,1),(54855,1),(54857,1),(54861,1),(54868,1),(54872,1),(54873,1),(54883,1),(54888,1),(54893,1),(54902,1),(54912,1),(54919,1),(54920,1),(54944,1),(54947,1),(54948,1),(54950,1),(54957,1),(54970,1),(54976,1),(54979,1),(54984,1),(54993,1),(54997,1),(54998,1),(55006,1),(55013,1),(55019,1),(55020,1),(55023,1),(55025,1),(55029,1),(55030,1),(55040,1),(55046,1),(55055,1),(55060,1),(55063,1),(55071,1),(55086,1),(55092,1),(55100,1),(55109,1),(55110,1),(55111,1),(55115,1),(55119,1),(55125,1),(55138,1),(55139,1),(55144,1),(55146,1),(55147,1),(55159,1),(55166,1),(55191,1),(55193,1),(55198,1),(55203,1),(55204,1),(55205,1),(55207,1),(55213,1),(55218,1),(55223,1),(55227,1),(55229,1),(55230,1),(55233,1),(55240,1),(55242,1),(55246,1),(55251,1),(55285,1),(55287,1),(55297,1),(55305,1),(55316,1),(55325,1),(55333,1),(55334,1),(55335,1),(55336,1),(55337,1),(55340,1),(55348,1),(55357,1),(55361,1),(55362,1),(55363,1),(55371,1),(55378,1),(55381,1),(55383,1),(55385,1),(55386,1),(55394,1),(55395,1),(55396,1),(55400,1),(55405,1),(55413,1),(55425,1),(55438,1),(55441,1),(55454,1),(55464,1),(55483,1),(55488,1),(55494,1),(55516,1),(55519,1),(55522,1),(55523,1),(55530,1),(55551,1),(55554,1),(55558,1),(55561,1),(55566,1),(55572,1),(55575,1),(55584,1),(55586,1),(55598,1),(55616,1),(55625,1),(55629,1),(55630,1),(55631,1),(55634,1),(55635,1),(55655,1),(55659,1),(55668,1),(55672,1),(55682,1),(55689,1),(55696,1),(55698,1),(55707,1),(55709,1),(55718,1),(55720,1),(55721,1),(55727,1),(55728,1),(55744,1),(55747,1),(55748,1),(55764,1),(55766,1),(55775,1),(55778,1),(55786,1),(55802,1),(55816,1),(55823,1),(55837,1),(55851,1),(55854,1),(55859,1),(55861,1),(55865,1),(55882,1),(55887,1),(55894,1),(55903,1),(55911,1),(55912,1),(55921,1),(55931,1),(55939,1),(55941,1),(55949,1),(55959,1),(55970,1),(55971,1),(55979,1),(55992,1),(56001,1),(56004,1),(56008,1),(56027,1),(56041,1),(56042,1),(56043,1),(56044,1),(56052,1),(56053,1),(56066,1),(56082,1),(56090,1),(56094,1),(56104,1),(56110,1),(56114,1),(56132,1),(56139,1),(56149,1),(56150,1),(56173,1),(56178,1),(56182,1),(56183,1),(56192,1),(56195,1),(56200,1),(56211,1),(56217,1),(56221,1),(56230,1),(56240,1),(56243,1),(56246,1),(56256,1),(56259,1),(56264,1),(56273,1),(56275,1),(56278,1),(56283,1),(56289,1),(56292,1),(56296,1),(56300,1),(56307,1),(56308,1),(56309,1),(56318,1),(56326,1),(56331,1),(56333,1),(56337,1),(56341,1),(56344,1),(56347,1),(56352,1),(56353,1),(56366,1),(56371,1),(56372,1),(56378,1),(56384,1),(56388,1),(56393,1),(56400,1),(56408,1),(56426,1),(56431,1),(56440,1),(56444,1),(56450,1),(56459,1),(56469,1),(56475,1),(56482,1),(56500,1),(56506,1),(56507,1),(56517,1),(56522,1),(56526,1),(56527,1),(56529,1),(56530,1),(56536,1),(56539,1),(56553,1),(56560,1),(56570,1),(56572,1),(56577,1),(56583,1),(56588,1),(56591,1),(56598,1),(56601,1),(56607,1),(56610,1),(56611,1),(56612,1),(56613,1),(56621,1),(56622,1),(56637,1),(56639,1),(56645,1),(56648,1),(56651,1),(56661,1),(56682,1),(56690,1),(56709,1),(56711,1),(56713,1),(56717,1),(56721,1),(56724,1),(56729,1),(56751,1),(56752,1),(56770,1),(56786,1),(56798,1),(56810,1),(56817,1),(56823,1),(56825,1),(56830,1),(56837,1),(56856,1),(56857,1),(56864,1),(56869,1),(56876,1),(56889,1),(56891,1),(56892,1),(56904,1),(56909,1),(56911,1),(56914,1),(56915,1),(56916,1),(56919,1),(56925,1),(56935,1),(56941,1),(56943,1),(56949,1),(56954,1),(56956,1),(56957,1),(56966,1),(56985,1),(56992,1),(56998,1),(57000,1),(57018,1),(57026,1),(57038,1),(57039,1),(57042,1),(57047,1),(57054,1),(57062,1),(57063,1),(57068,1),(57077,1),(57078,1),(57084,1),(57103,1),(57108,1),(57109,1),(57110,1),(57111,1),(57113,1),(57125,1),(57129,1),(57135,1),(57137,1),(57138,1),(57139,1),(57143,1),(57145,1),(57157,1),(57159,1),(57160,1),(57165,1),(57169,1),(57174,1),(57190,1),(57193,1),(57205,1),(57208,1),(57211,1),(57222,1),(57226,1),(57231,1),(57232,1),(57239,1),(57251,1),(57253,1),(57254,1),(57263,1),(57265,1),(57273,1),(57274,1),(57278,1),(57283,1),(57284,1),(57293,1),(57295,1),(57299,1),(57303,1),(57306,1),(57310,1),(57317,1),(57322,1),(57330,1),(57335,1),(57343,1),(57347,1),(57365,1),(57371,1),(57375,1),(57384,1),(57390,1),(57392,1),(57405,1),(57409,1),(57419,1),(57428,1),(57432,1),(57433,1),(57436,1),(57442,1),(57446,1),(57448,1),(57454,1),(57456,1),(57460,1),(57465,1),(57468,1),(57489,1),(57498,1),(57500,1),(57508,1),(57513,1),(57546,1),(57548,1),(57556,1),(57559,1),(57568,1),(57571,1),(57578,1),(57589,1),(57601,1),(57610,1),(57613,1),(57615,1),(57623,1),(57630,1),(57641,1),(57646,1),(57658,1),(57667,1),(57673,1),(57685,1),(57688,1),(57696,1),(57702,1),(57703,1),(57712,1),(57716,1),(57717,1),(57722,1),(57726,1),(57772,1),(57774,1),(57775,1),(57790,1),(57822,1),(57824,1),(57827,1),(57829,1),(57835,1),(57841,1),(57849,1),(57859,1),(57862,1),(57871,1),(57872,1),(57873,1),(57878,1),(57879,1),(57881,1),(57899,1),(57911,1),(57926,1),(57933,1),(57934,1),(57946,1),(57952,1),(57957,1),(57960,1),(57967,1),(57988,1),(57991,1),(57993,1),(58016,1),(58031,1),(58037,1),(58045,1),(58048,1),(58050,1),(58057,1),(58062,1),(58066,1),(58075,1),(58078,1),(58090,1),(58094,1),(58102,1),(58105,1),(58112,1),(58131,1),(58134,1),(58137,1),(58155,1),(58163,1),(58168,1),(58169,1),(58172,1),(58195,1),(58196,1),(58198,1),(58203,1),(58206,1),(58213,1),(58224,1),(58228,1),(58235,1),(58236,1),(58239,1),(58251,1),(58263,1),(58293,1),(58298,1),(58303,1),(58313,1),(58319,1),(58325,1),(58327,1),(58360,1),(58362,1),(58363,1),(58365,1),(58394,1),(58400,1),(58404,1),(58411,1),(58412,1),(58420,1),(58427,1),(58433,1),(58438,1),(58449,1),(58459,1),(58468,1),(58471,1),(58480,1),(58481,1),(58493,1),(58494,1),(58501,1),(58508,1),(58511,1),(58513,1),(58524,1),(58532,1),(58547,1),(58555,1),(58556,1),(58569,1),(58570,1),(58573,1),(58579,1),(58591,1),(58594,1),(58596,1),(58607,1),(58624,1),(58633,1),(58634,1),(58639,1),(58651,1),(58656,1),(58657,1),(58672,1),(58675,1),(58681,1),(58683,1),(58686,1),(58695,1),(58701,1),(58711,1),(58714,1),(58721,1),(58726,1),(58751,1),(58760,1),(58763,1),(58776,1),(58786,1),(58788,1),(58790,1),(58791,1),(58795,1),(58797,1),(58820,1),(58829,1),(58867,1),(58876,1),(58889,1),(58898,1),(58917,1),(58918,1),(58922,1),(58925,1),(58927,1),(58928,1),(58929,1),(58935,1),(58941,1),(58944,1),(58950,1),(58954,1),(58960,1),(58962,1),(58971,1),(58972,1),(58976,1),(58977,1),(58984,1),(58989,1),(58993,1),(59006,1),(59012,1),(59021,1),(59024,1),(59027,1),(59031,1),(59035,1),(59036,1),(59037,1),(59038,1),(59039,1),(59047,1),(59052,1),(59054,1),(59055,1),(59058,1),(59060,1),(59067,1),(59073,1),(59087,1),(59089,1),(59092,1),(59098,1),(59103,1),(59107,1),(59108,1),(59121,1),(59123,1),(59145,1),(59159,1),(59163,1),(59168,1),(59169,1),(59175,1),(59177,1),(59180,1),(59182,1),(59185,1),(59186,1),(59187,1),(59188,1),(59189,1),(59193,1),(59194,1),(59197,1),(59199,1),(59210,1),(59216,1),(59217,1),(59238,1),(59244,1),(59260,1),(59262,1),(59271,1),(59278,1),(59281,1),(59284,1),(59286,1),(59297,1),(59319,1),(59336,1),(59339,1),(59341,1),(59343,1),(59346,1),(59353,1),(59357,1),(59359,1),(59360,1),(59363,1),(59375,1),(59378,1),(59386,1),(59389,1),(59391,1),(59396,1),(59403,1),(59405,1),(59411,1),(59412,1),(59431,1),(59437,1),(59438,1),(59441,1),(59443,1),(59456,1),(59460,1),(59473,1),(59475,1),(59483,1),(59506,1),(59510,1),(59521,1),(59526,1),(59527,1),(59559,1),(59562,1),(59573,1),(59578,1),(59579,1),(59585,1),(59601,1),(59615,1),(59616,1),(59626,1),(59629,1),(59631,1),(59639,1),(59640,1),(59645,1),(59646,1),(59663,1),(59673,1),(59683,1),(59684,1),(59687,1),(59688,1),(59689,1),(59692,1),(59697,1),(59699,1),(59716,1),(59717,1),(59726,1),(59727,1),(59730,1),(59733,1),(59734,1),(59736,1),(59745,1),(59762,1),(59765,1),(59768,1),(59771,1),(59775,1),(59784,1),(59785,1),(59787,1),(59801,1),(59808,1),(59809,1),(59822,1),(59824,1),(59826,1),(59827,1),(59836,1),(59843,1),(59845,1),(59860,1),(59864,1),(59867,1),(59868,1),(59872,1),(59875,1),(59878,1),(59881,1),(59892,1),(59893,1),(59894,1),(59910,1),(59926,1),(59930,1),(59933,1),(59936,1),(59945,1),(59948,1),(59950,1),(59952,1),(59963,1),(59964,1),(59969,1),(59975,1),(59978,1),(59979,1),(59983,1),(59986,1),(59990,1),(59991,1),(60002,1),(60031,1),(60042,1),(60048,1),(60053,1),(60056,1),(60063,1),(60073,1),(60075,1),(60077,1),(60079,1),(60081,1),(60083,1),(60088,1),(60093,1),(60096,1),(60108,1),(60121,1),(60128,1),(60133,1),(60142,1),(60145,1),(60157,1),(60158,1),(60184,1),(60195,1),(60198,1),(60203,1),(60207,1),(60213,1),(60235,1),(60239,1),(60243,1),(60244,1),(60246,1),(60247,1),(60251,1),(60254,1),(60256,1),(60257,1),(60258,1),(60267,1),(60278,1),(60284,1),(60288,1),(60294,1),(60305,1),(60317,1),(60323,1),(60324,1),(60338,1),(60347,1),(60351,1),(60360,1),(60365,1),(60391,1),(60407,1),(60409,1),(60410,1),(60417,1),(60419,1),(60424,1),(60427,1),(60436,1),(60443,1),(60447,1),(60452,1),(60459,1),(60472,1),(60478,1),(60488,1),(60489,1),(60510,1),(60511,1),(60512,1),(60520,1),(60526,1),(60531,1),(60536,1),(60539,1),(60543,1),(60555,1),(60557,1),(60575,1),(60577,1),(60578,1),(60580,1),(60581,1),(60582,1),(60588,1),(60591,1),(60594,1),(60600,1),(60604,1),(60611,1),(60615,1),(60625,1),(60628,1),(60629,1),(60630,1),(60635,1),(60651,1),(60654,1),(60666,1),(60689,1),(60698,1),(60703,1),(60708,1),(60715,1),(60722,1),(60726,1),(60737,1),(60744,1),(60750,1),(60756,1),(60757,1),(60763,1),(60767,1),(60768,1),(60769,1),(60772,1),(60785,1),(60788,1),(60792,1),(60796,1),(60806,1),(60808,1),(60809,1),(60814,1),(60821,1),(60825,1),(60829,1),(60832,1),(60847,1),(60872,1),(60888,1),(60894,1),(60895,1),(60897,1),(60914,1),(60917,1),(60919,1),(60927,1),(60957,1),(60960,1),(60964,1),(60971,1),(60974,1),(60975,1),(60976,1),(60980,1),(60982,1),(60984,1),(60994,1),(61019,1),(61040,1),(61044,1),(61049,1),(61050,1),(61053,1),(61054,1),(61055,1),(61065,1),(61080,1),(61082,1),(61091,1),(61094,1),(61110,1),(61114,1),(61116,1),(61120,1),(61122,1),(61123,1),(61132,1),(61139,1),(61144,1),(61147,1),(61150,1),(61151,1),(61166,1),(61171,1),(61172,1),(61186,1),(61188,1),(61206,1),(61209,1),(61227,1),(61240,1),(61242,1),(61273,1),(61279,1),(61283,1),(61289,1),(61303,1),(61310,1),(61311,1),(61312,1),(61322,1),(61331,1),(61336,1),(61339,1),(61340,1),(61343,1),(61364,1),(61373,1),(61374,1),(61381,1),(61387,1),(61388,1),(61390,1),(61400,1),(61406,1),(61409,1),(61411,1),(61417,1),(61442,1),(61448,1),(61457,1),(61459,1),(61461,1),(61471,1),(61474,1),(61475,1),(61478,1),(61490,1),(61492,1),(61500,1),(61508,1),(61513,1),(61538,1),(61547,1),(61550,1),(61551,1),(61554,1),(61556,1),(61557,1),(61565,1),(61569,1),(61570,1),(61578,1),(61581,1),(61587,1),(61590,1),(61619,1),(61622,1),(61626,1),(61633,1),(61637,1),(61642,1),(61647,1),(61662,1),(61664,1),(61670,1),(61674,1),(61679,1),(61682,1),(61685,1),(61695,1),(61699,1),(61704,1),(61707,1),(61709,1),(61713,1),(61716,1),(61717,1),(61718,1),(61719,1),(61721,1),(61722,1),(61727,1),(61729,1),(61734,1),(61747,1),(61751,1),(61756,1),(61763,1),(61770,1),(61780,1),(61787,1),(61796,1),(61797,1),(61798,1),(61803,1),(61806,1),(61819,1),(61826,1),(61827,1),(61833,1),(61866,1),(61872,1),(61880,1),(61884,1),(61895,1),(61903,1),(61920,1),(61923,1),(61925,1),(61931,1),(61948,1),(61951,1),(61959,1),(61963,1),(61966,1),(61967,1),(61985,1),(62002,1),(62003,1),(62004,1),(62005,1),(62033,1),(62038,1),(62039,1),(62040,1),(62047,1),(62048,1),(62052,1),(62059,1),(62061,1),(62077,1),(62084,1),(62088,1),(62096,1),(62100,1),(62103,1),(62106,1),(62108,1),(62121,1),(62125,1),(62127,1),(62138,1),(62139,1),(62140,1),(62141,1),(62142,1),(62144,1),(62147,1),(62156,1),(62164,1),(62166,1),(62177,1),(62184,1),(62191,1),(62194,1),(62202,1),(62213,1),(62216,1),(62234,1),(62235,1),(62247,1),(62254,1),(62255,1),(62256,1),(62259,1),(62262,1),(62263,1),(62268,1),(62269,1),(62272,1),(62278,1),(62289,1),(62293,1),(62299,1),(62300,1),(62303,1),(62310,1),(62319,1),(62326,1),(62344,1),(62348,1),(62353,1),(62354,1),(62358,1),(62377,1),(62378,1),(62382,1),(62383,1),(62388,1),(62391,1),(62392,1),(62397,1),(62398,1),(62400,1),(62401,1),(62403,1),(62408,1),(62418,1),(62424,1),(62431,1),(62432,1),(62435,1),(62438,1),(62440,1),(62450,1),(62452,1),(62467,1),(62471,1),(62472,1),(62473,1),(62477,1),(62478,1),(62485,1),(62491,1),(62504,1),(62507,1),(62509,1),(62513,1),(62530,1),(62538,1),(62562,1),(62572,1),(62573,1),(62574,1),(62576,1),(62589,1),(62602,1),(62603,1),(62607,1),(62609,1),(62637,1),(62642,1),(62647,1),(62648,1),(62651,1),(62657,1),(62660,1),(62671,1),(62672,1),(62675,1),(62694,1),(62701,1),(62704,1),(62709,1),(62720,1),(62731,1),(62740,1),(62748,1),(62757,1),(62761,1),(62764,1),(62772,1),(62774,1),(62776,1),(62778,1),(62780,1),(62782,1),(62783,1),(62788,1),(62792,1),(62802,1),(62806,1),(62810,1),(62811,1),(62812,1),(62823,1),(62831,1),(62836,1),(62849,1),(62851,1),(62869,1),(62873,1),(62875,1),(62876,1),(62884,1),(62893,1),(62898,1),(62901,1),(62908,1),(62913,1),(62915,1),(62921,1),(62926,1),(62939,1),(62946,1),(62948,1),(62951,1),(62956,1),(62968,1),(62977,1),(62983,1),(62992,1),(62994,1),(63001,1),(63025,1),(63033,1),(63040,1),(63045,1),(63052,1),(63053,1),(63054,1),(63055,1),(63065,1),(63066,1),(63089,1),(63094,1),(63097,1),(63112,1),(63113,1),(63119,1),(63122,1),(63123,1),(63129,1),(63133,1),(63134,1),(63138,1),(63139,1),(63145,1),(63146,1),(63147,1),(63151,1),(63157,1),(63162,1),(63183,1),(63193,1),(63196,1),(63200,1),(63205,1),(63213,1),(63216,1),(63233,1),(63239,1),(63245,1),(63249,1),(63261,1),(63262,1),(63270,1),(63274,1),(63275,1),(63279,1),(63280,1),(63282,1),(63290,1),(63311,1),(63318,1),(63328,1),(63337,1),(63351,1),(63353,1),(63362,1),(63370,1),(63373,1),(63376,1),(63386,1),(63388,1),(63392,1),(63404,1),(63412,1),(63419,1),(63421,1),(63426,1),(63427,1),(63429,1),(63437,1),(63438,1),(63439,1),(63440,1),(63442,1),(63448,1),(63455,1),(63476,1),(63480,1),(63486,1),(63489,1),(63491,1),(63508,1),(63511,1),(63514,1),(63525,1),(63535,1),(63544,1),(63551,1),(63552,1),(63560,1),(63565,1),(63568,1),(63572,1),(63579,1),(63584,1),(63586,1),(63588,1),(63589,1),(63592,1),(63606,1),(63617,1),(63619,1),(63634,1),(63639,1),(63642,1),(63646,1),(63649,1),(63653,1),(63659,1),(63662,1),(63670,1),(63671,1),(63672,1),(63678,1),(63681,1),(63689,1),(63697,1),(63709,1),(63715,1),(63718,1),(63723,1),(63739,1),(63742,1),(63743,1),(63753,1),(63769,1),(63779,1),(63785,1),(63789,1),(63802,1),(63809,1),(63820,1),(63825,1),(63850,1),(63859,1),(63863,1),(63866,1),(63873,1),(63874,1),(63880,1),(63899,1),(63900,1),(63901,1),(63903,1),(63905,1),(63906,1),(63910,1),(63925,1),(63926,1),(63927,1),(63928,1),(63935,1),(63936,1),(63939,1),(63960,1),(63962,1),(63964,1),(63970,1),(63971,1),(63976,1),(63988,1),(63993,1),(64002,1),(64016,1),(64024,1),(64029,1),(64030,1),(64033,1),(64037,1),(64053,1),(64057,1),(64061,1),(64069,1),(64086,1),(64087,1),(64091,1),(64095,1),(64103,1),(64109,1),(64114,1),(64116,1),(64117,1),(64130,1),(64138,1),(64146,1),(64157,1),(64159,1),(64175,1),(64179,1),(64185,1),(64198,1),(64203,1),(64208,1),(64209,1),(64213,1),(64222,1),(64224,1),(64225,1),(64235,1),(64238,1),(64244,1),(64257,1),(64258,1),(64264,1),(64268,1),(64269,1),(64271,1),(64279,1),(64283,1),(64284,1),(64288,1),(64290,1),(64294,1),(64296,1),(64303,1),(64308,1),(64309,1),(64314,1),(64319,1),(64321,1),(64324,1),(64325,1),(64333,1),(64348,1),(64351,1),(64353,1),(64355,1),(64357,1),(64360,1),(64361,1),(64365,1),(64366,1),(64368,1),(64373,1),(64383,1),(64390,1),(64392,1),(64393,1),(64395,1),(64401,1),(64402,1),(64413,1),(64416,1),(64424,1),(64428,1),(64431,1),(64437,1),(64445,1),(64458,1),(64460,1),(64462,1),(64466,1),(64470,1),(64472,1),(64473,1),(64490,1),(64491,1),(64494,1),(64505,1),(64509,1),(64512,1),(64527,1),(64529,1),(64530,1),(64534,1),(64538,1),(64544,1),(64549,1),(64552,1),(64559,1),(64575,1),(64583,1),(64598,1),(64610,1),(64612,1),(64620,1),(64624,1),(64637,1),(64641,1),(64643,1),(64647,1),(64651,1),(64655,1),(64660,1),(64676,1),(64678,1),(64682,1),(64695,1),(64704,1),(64717,1),(64723,1),(64725,1),(64730,1),(64735,1),(64738,1),(64740,1),(64743,1),(64746,1),(64749,1),(64753,1),(64759,1),(64761,1),(64763,1),(64769,1),(64778,1),(64783,1),(64786,1),(64791,1),(64794,1),(64796,1),(64798,1),(64800,1),(64802,1),(64807,1),(64810,1),(64819,1),(64822,1),(64828,1),(64831,1),(64834,1),(64842,1),(64846,1),(64855,1),(64861,1),(64871,1),(64876,1),(64881,1),(64884,1),(64890,1),(64896,1),(64899,1),(64900,1),(64901,1),(64907,1),(64927,1),(64932,1),(64935,1),(64941,1),(64948,1),(64960,1),(64966,1),(64967,1),(64969,1),(64973,1),(64975,1),(64976,1),(64981,1),(64988,1),(64998,1),(65000,1),(65002,1),(65006,1),(65015,1),(65018,1),(65026,1),(65027,1),(65033,1),(65042,1),(65045,1),(65046,1),(65055,1),(65056,1),(65080,1),(65081,1),(65110,1),(65118,1),(65124,1),(65134,1),(65140,1),(65147,1),(65157,1),(65165,1),(65171,1),(65179,1),(65193,1),(65203,1),(65216,1),(65217,1),(65222,1),(65240,1),(65243,1),(65247,1),(65250,1),(65261,1),(65266,1),(65273,1),(65283,1),(65288,1),(65294,1),(65297,1),(65298,1),(65299,1),(65326,1),(65327,1),(65338,1),(65355,1),(65362,1),(65369,1),(65371,1),(65386,1),(65390,1),(65413,1),(65419,1),(65424,1),(65427,1),(65430,1),(65440,1),(65445,1),(65447,1),(65449,1),(65451,1),(65461,1),(65469,1),(65470,1),(65476,1),(65479,1),(65487,1),(65491,1),(65492,1),(65493,1),(65496,1),(65505,1),(65512,1),(65519,1),(65520,1),(65534,1),(65548,1),(65550,1),(65552,1),(65559,1),(65563,1),(65565,1),(65568,1),(65574,1),(65583,1),(65586,1),(65587,1),(65593,1),(65602,1),(65604,1),(65605,1),(65609,1),(65612,1),(65620,1),(65625,1),(65641,1),(65648,1),(65650,1),(65651,1),(65652,1),(65658,1),(65661,1),(65669,1),(65679,1),(65683,1),(65695,1),(65709,1),(65727,1),(65738,1),(65740,1),(65743,1),(65745,1),(65747,1),(65770,1),(65773,1),(65782,1),(65783,1),(65784,1),(65798,1),(65803,1),(65808,1),(65811,1),(65819,1),(65826,1),(65837,1),(65839,1),(65846,1),(65847,1),(65852,1),(65857,1),(65860,1),(65866,1),(65882,1),(65887,1),(65889,1),(65894,1),(65896,1),(65898,1),(65901,1),(65907,1),(65909,1),(65913,1),(65920,1),(65930,1),(65934,1),(65935,1),(65943,1),(65944,1),(65947,1),(65951,1),(65954,1),(65955,1),(65972,1),(65986,1),(65991,1),(65992,1),(65994,1),(65997,1),(66008,1),(66012,1),(66013,1),(66016,1),(66019,1),(66020,1),(66024,1),(66041,1),(66044,1),(66048,1),(66053,1),(66058,1),(66060,1),(66062,1),(66063,1),(66073,1),(66076,1),(66078,1),(66079,1),(66082,1),(66096,1),(66097,1),(66106,1),(66107,1),(66112,1),(66118,1),(66119,1),(66120,1),(66121,1),(66126,1),(66127,1),(66138,1),(66139,1),(66152,1),(66157,1),(66166,1),(66170,1),(66175,1),(66181,1),(66194,1),(66199,1),(66202,1),(66232,1),(66236,1),(66237,1),(66241,1),(66252,1),(66258,1),(66260,1),(66268,1),(66291,1),(66294,1),(66296,1),(66301,1),(66303,1),(66322,1),(66328,1),(66334,1),(66353,1),(66360,1),(66362,1),(66371,1),(66375,1),(66378,1),(66380,1),(66382,1),(66392,1),(66393,1),(66395,1),(66403,1),(66407,1),(66417,1),(66424,1),(66436,1),(66449,1),(66450,1),(66453,1),(66463,1),(66466,1),(66467,1),(66483,1),(66485,1),(66486,1),(66490,1),(66493,1),(66499,1),(66501,1),(66505,1),(66510,1),(66514,1),(66521,1),(66526,1),(66531,1),(66533,1),(66538,1),(66539,1),(66548,1),(66555,1),(66558,1),(66559,1),(66562,1),(66567,1),(66569,1),(66570,1),(66587,1),(66604,1),(66611,1),(66629,1),(66639,1),(66648,1),(66650,1),(66657,1),(66664,1),(66671,1),(66680,1),(66682,1),(66701,1),(66706,1),(66707,1),(66720,1),(66731,1),(66733,1),(66741,1),(66750,1),(66771,1),(66774,1),(66785,1),(66786,1),(66787,1),(66792,1),(66794,1),(66797,1),(66814,1),(66816,1),(66824,1),(66825,1),(66826,1),(66828,1),(66831,1),(66833,1),(66838,1),(66844,1),(66855,1),(66861,1),(66862,1),(66872,1),(66892,1),(66895,1),(66898,1),(66905,1),(66909,1),(66920,1),(66925,1),(66927,1),(66929,1),(66936,1),(66938,1),(66950,1),(66964,1),(66971,1),(66973,1),(66978,1),(66984,1),(66995,1),(66999,1),(67000,1),(67018,1),(67028,1),(67052,1),(67059,1),(67074,1),(67077,1),(67081,1),(67088,1),(67098,1),(67115,1),(67116,1),(67131,1),(67133,1),(67138,1),(67139,1),(67149,1),(67150,1),(67151,1),(67168,1),(67180,1),(67183,1),(67187,1),(67194,1),(67196,1),(67197,1),(67204,1),(67205,1),(67207,1),(67208,1),(67224,1),(67232,1),(67240,1),(67243,1),(67256,1),(67271,1),(67274,1),(67278,1),(67288,1),(67297,1),(67306,1),(67308,1),(67312,1),(67318,1),(67340,1),(67346,1),(67361,1),(67373,1),(67374,1),(67385,1),(67400,1),(67402,1),(67404,1),(67413,1),(67417,1),(67418,1),(67426,1),(67430,1),(67437,1),(67456,1),(67472,1),(67474,1),(67488,1),(67489,1),(67490,1),(67492,1),(67495,1),(67500,1),(67511,1),(67513,1),(67520,1),(67522,1),(67527,1),(67528,1),(67533,1),(67547,1),(67555,1),(67560,1),(67569,1),(67572,1),(67577,1),(67590,1),(67591,1),(67593,1),(67602,1),(67604,1),(67607,1),(67612,1),(67619,1),(67626,1),(67634,1),(67647,1),(67649,1),(67652,1),(67656,1),(67658,1),(67671,1),(67677,1),(67678,1),(67689,1),(67699,1),(67702,1),(67707,1),(67708,1),(67721,1),(67727,1),(67728,1),(67730,1),(67731,1),(67733,1),(67740,1),(67746,1),(67758,1),(67760,1),(67777,1),(67779,1),(67803,1),(67807,1),(67813,1),(67831,1),(67839,1),(67844,1),(67850,1),(67869,1),(67877,1),(67895,1),(67918,1),(67929,1),(67932,1),(67937,1),(67946,1),(67950,1),(67961,1),(67976,1),(67979,1),(67981,1),(67988,1),(67999,1),(68008,1),(68012,1),(68014,1),(68017,1),(68021,1),(68026,1),(68027,1),(68034,1),(68048,1),(68055,1),(68058,1),(68061,1),(68065,1),(68077,1),(68093,1),(68098,1),(68102,1),(68109,1),(68110,1),(68112,1),(68124,1),(68127,1),(68132,1),(68133,1),(68141,1),(68143,1),(68160,1),(68164,1),(68165,1),(68166,1),(68179,1),(68180,1),(68184,1),(68185,1),(68187,1),(68188,1),(68194,1),(68197,1),(68198,1),(68201,1),(68210,1),(68237,1),(68242,1),(68261,1),(68267,1),(68268,1),(68272,1),(68284,1),(68300,1),(68310,1),(68314,1),(68316,1),(68319,1),(68343,1),(68347,1),(68366,1),(68371,1),(68374,1),(68375,1),(68381,1),(68382,1),(68408,1),(68417,1),(68425,1),(68433,1),(68444,1),(68446,1),(68460,1),(68463,1),(68468,1),(68474,1),(68481,1),(68487,1),(68489,1),(68494,1),(68496,1),(68500,1),(68507,1),(68511,1),(68518,1),(68519,1),(68523,1),(68547,1),(68559,1),(68565,1),(68567,1),(68573,1),(68579,1),(68594,1),(68597,1),(68603,1),(68611,1),(68612,1),(68613,1),(68624,1),(68627,1),(68631,1),(68648,1),(68662,1),(68677,1),(68678,1),(68679,1),(68681,1),(68687,1),(68693,1),(68716,1),(68735,1),(68745,1),(68746,1),(68752,1),(68773,1),(68797,1),(68801,1),(68805,1),(68820,1),(68824,1),(68828,1),(68832,1),(68836,1),(68850,1),(68855,1),(68860,1),(68871,1),(68875,1),(68882,1),(68884,1),(68886,1),(68888,1),(68900,1),(68915,1),(68928,1),(68929,1),(68932,1),(68933,1),(68947,1),(68960,1),(68965,1),(68969,1),(68977,1),(68980,1),(68983,1),(68988,1),(68995,1),(68998,1),(69002,1),(69014,1),(69022,1),(69031,1),(69032,1),(69033,1),(69036,1),(69041,1),(69045,1),(69063,1),(69077,1),(69078,1),(69079,1),(69081,1),(69083,1),(69087,1),(69098,1),(69100,1),(69102,1),(69104,1),(69107,1),(69108,1),(69119,1),(69125,1),(69132,1),(69133,1),(69134,1),(69135,1),(69136,1),(69138,1),(69143,1),(69144,1),(69147,1),(69150,1),(69151,1),(69152,1),(69156,1),(69161,1),(69168,1),(69170,1),(69171,1),(69174,1),(69177,1),(69184,1),(69186,1),(69188,1),(69190,1),(69210,1),(69216,1),(69225,1),(69226,1),(69227,1),(69237,1),(69238,1),(69241,1),(69243,1),(69245,1),(69246,1),(69249,1),(69251,1),(69254,1),(69274,1),(69289,1),(69293,1),(69294,1),(69295,1),(69297,1),(69300,1),(69305,1),(69310,1),(69312,1),(69314,1),(69316,1),(69317,1),(69325,1),(69332,1),(69337,1),(69343,1),(69357,1),(69359,1),(69362,1),(69378,1),(69387,1),(69390,1),(69397,1),(69404,1),(69409,1),(69413,1),(69414,1),(69418,1),(69432,1),(69436,1),(69440,1),(69444,1),(69453,1),(69461,1),(69465,1),(69468,1),(69471,1),(69472,1),(69474,1),(69476,1),(69482,1),(69486,1),(69487,1),(69488,1),(69496,1),(69502,1),(69509,1),(69512,1),(69515,1),(69521,1),(69532,1),(69540,1),(69541,1),(69543,1),(69549,1),(69551,1),(69557,1),(69562,1),(69565,1),(69576,1),(69577,1),(69580,1),(69581,1),(69591,1),(69592,1),(69594,1),(69596,1),(69598,1),(69601,1),(69605,1),(69621,1),(69625,1),(69626,1),(69627,1),(69630,1),(69637,1),(69640,1),(69657,1),(69658,1),(69659,1),(69660,1),(69661,1),(69668,1),(69672,1),(69680,1),(69682,1),(69684,1),(69703,1),(69710,1),(69731,1),(69734,1),(69743,1),(69744,1),(69747,1),(69748,1),(69756,1),(69758,1),(69761,1),(69765,1),(69767,1),(69768,1),(69786,1),(69788,1),(69792,1),(69797,1),(69805,1),(69811,1),(69812,1),(69814,1),(69815,1),(69818,1),(69820,1),(69821,1),(69822,1),(69824,1),(69828,1),(69829,1),(69839,1),(69840,1),(69843,1),(69848,1),(69851,1),(69866,1),(69871,1),(69872,1),(69893,1),(69896,1),(69909,1),(69910,1),(69917,1),(69920,1),(69926,1),(69929,1),(69940,1),(69951,1),(69979,1),(69984,1),(69987,1),(69991,1),(69993,1),(69996,1),(70001,1),(70002,1),(70004,1),(70006,1),(70012,1),(70018,1),(70019,1),(70029,1),(70033,1),(70054,1),(70059,1),(70061,1),(70081,1),(70106,1),(70109,1),(70112,1),(70121,1),(70122,1),(70124,1),(70125,1),(70131,1),(70135,1),(70136,1),(70144,1),(70150,1),(70151,1),(70159,1),(70162,1),(70164,1),(70165,1),(70166,1),(70185,1),(70203,1),(70204,1),(70206,1),(70214,1),(70215,1),(70219,1),(70220,1),(70227,1),(70233,1),(70242,1),(70245,1),(70249,1),(70251,1),(70263,1),(70274,1),(70281,1),(70285,1),(70286,1),(70296,1),(70300,1),(70302,1),(70304,1),(70306,1),(70307,1),(70316,1),(70321,1),(70325,1),(70328,1),(70329,1),(70361,1),(70362,1),(70369,1),(70382,1),(70384,1),(70393,1),(70414,1),(70415,1),(70418,1),(70421,1),(70424,1),(70437,1),(70441,1),(70447,1),(70449,1),(70453,1),(70456,1),(70458,1),(70473,1),(70478,1),(70479,1),(70485,1),(70491,1),(70494,1),(70495,1),(70500,1),(70510,1),(70511,1),(70513,1),(70522,1),(70535,1),(70547,1),(70559,1),(70561,1),(70564,1),(70565,1),(70581,1),(70585,1),(70598,1),(70603,1),(70605,1),(70608,1),(70616,1),(70621,1),(70623,1),(70624,1),(70626,1),(70629,1),(70636,1),(70643,1),(70650,1),(70655,1),(70658,1),(70659,1),(70662,1),(70666,1),(70676,1),(70680,1),(70687,1),(70690,1),(70704,1),(70728,1),(70736,1),(70741,1),(70742,1),(70748,1),(70754,1),(70757,1),(70761,1),(70764,1),(70769,1),(70770,1),(70775,1),(70783,1),(70784,1),(70789,1),(70790,1),(70792,1),(70795,1),(70812,1),(70813,1),(70821,1),(70832,1),(70833,1),(70838,1),(70840,1),(70845,1),(70853,1),(70860,1),(70863,1),(70866,1),(70867,1),(70870,1),(70874,1),(70878,1),(70883,1),(70887,1),(70894,1),(70906,1),(70914,1),(70950,1),(70959,1),(70962,1),(70968,1),(70976,1),(70984,1),(70985,1),(70994,1),(71001,1),(71009,1),(71012,1),(71019,1),(71025,1),(71026,1),(71042,1),(71046,1),(71057,1),(71073,1),(71080,1),(71082,1),(71084,1),(71090,1),(71094,1),(71095,1),(71105,1),(71106,1),(71114,1),(71137,1),(71140,1),(71141,1),(71147,1),(71148,1),(71153,1),(71156,1),(71177,1),(71182,1),(71184,1),(71187,1),(71188,1),(71189,1),(71191,1),(71195,1),(71204,1),(71209,1),(71227,1),(71232,1),(71234,1),(71244,1),(71248,1),(71255,1),(71267,1),(71274,1),(71277,1),(71279,1),(71293,1),(71294,1),(71295,1),(71301,1),(71316,1),(71319,1),(71332,1),(71335,1),(71336,1),(71362,1),(71365,1),(71366,1),(71370,1),(71393,1),(71397,1),(71401,1),(71403,1),(71406,1),(71415,1),(71418,1),(71439,1),(71458,1),(71466,1),(71475,1),(71477,1),(71478,1),(71481,1),(71487,1),(71490,1),(71494,1),(71495,1),(71499,1),(71521,1),(71530,1),(71535,1),(71539,1),(71545,1),(71549,1),(71560,1),(71575,1),(71587,1),(71590,1),(71594,1),(71595,1),(71599,1),(71603,1),(71610,1),(71622,1),(71623,1),(71632,1),(71636,1),(71638,1),(71640,1),(71641,1),(71647,1),(71650,1),(71668,1),(71671,1),(71683,1),(71698,1),(71700,1),(71701,1),(71708,1),(71722,1),(71727,1),(71739,1),(71742,1),(71751,1),(71790,1),(71791,1),(71792,1),(71793,1),(71795,1),(71804,1),(71808,1),(71813,1),(71814,1),(71818,1),(71822,1),(71830,1),(71840,1),(71842,1),(71860,1),(71870,1),(71872,1),(71876,1),(71877,1),(71878,1),(71885,1),(71886,1),(71890,1),(71898,1),(71899,1),(71903,1),(71917,1),(71934,1),(71940,1),(71941,1),(71951,1),(71955,1),(71958,1),(71963,1),(71974,1),(71980,1),(71982,1),(71997,1),(71998,1),(72000,1),(72001,1),(72011,1),(72013,1),(72018,1),(72020,1),(72027,1),(72037,1),(72043,1),(72060,1),(72063,1),(72073,1),(72074,1),(72079,1),(72095,1),(72104,1),(72106,1),(72108,1),(72133,1),(72145,1),(72147,1),(72153,1),(72156,1),(72161,1),(72166,1),(72167,1),(72173,1),(72174,1),(72189,1),(72190,1),(72205,1),(72207,1),(72208,1),(72209,1),(72214,1),(72223,1),(72246,1),(72247,1),(72254,1),(72259,1),(72262,1),(72269,1),(72272,1),(72274,1),(72278,1),(72293,1),(72297,1),(72302,1),(72310,1),(72314,1),(72318,1),(72330,1),(72332,1),(72333,1),(72334,1),(72335,1),(72341,1),(72344,1),(72347,1),(72352,1),(72367,1),(72371,1),(72379,1),(72381,1),(72388,1),(72391,1),(72398,1),(72400,1),(72406,1),(72408,1),(72416,1),(72417,1),(72422,1),(72428,1),(72429,1),(72435,1),(72436,1),(72448,1),(72450,1),(72458,1),(72459,1),(72462,1),(72464,1),(72466,1),(72474,1),(72478,1),(72488,1),(72499,1),(72502,1),(72503,1),(72507,1),(72509,1),(72510,1),(72521,1),(72528,1),(72529,1),(72532,1),(72533,1),(72538,1),(72550,1),(72554,1),(72567,1),(72573,1),(72585,1),(72605,1),(72613,1),(72619,1),(72620,1),(72623,1),(72629,1),(72631,1),(72634,1),(72635,1),(72645,1),(72648,1),(72649,1),(72652,1),(72658,1),(72665,1),(72678,1),(72683,1),(72684,1),(72714,1),(72715,1),(72718,1),(72719,1),(72726,1),(72742,1),(72744,1),(72746,1),(72752,1),(72755,1),(72756,1),(72759,1),(72764,1),(72765,1),(72770,1),(72771,1),(72772,1),(72773,1),(72780,1),(72796,1),(72797,1),(72810,1),(72815,1),(72816,1),(72818,1),(72821,1),(72828,1),(72831,1),(72857,1),(72874,1),(72878,1),(72879,1),(72884,1),(72886,1),(72887,1),(72894,1),(72895,1),(72899,1),(72906,1),(72908,1),(72915,1),(72922,1),(72926,1),(72928,1),(72936,1),(72939,1),(72941,1),(72942,1),(72943,1),(72944,1),(72946,1),(72957,1),(72967,1),(72969,1),(72974,1),(72975,1),(72978,1),(72988,1),(72991,1),(72998,1),(72999,1),(73000,1),(73001,1),(73006,1),(73009,1),(73011,1),(73013,1),(73019,1),(73028,1),(73032,1),(73035,1),(73039,1),(73057,1),(73058,1),(73063,1),(73064,1),(73067,1),(73072,1),(73074,1),(73081,1),(73083,1),(73091,1),(73092,1),(73096,1),(73097,1),(73102,1),(73103,1),(73107,1),(73109,1),(73110,1),(73112,1),(73118,1),(73131,1),(73147,1),(73151,1),(73152,1),(73153,1),(73156,1),(73160,1),(73174,1),(73175,1),(73185,1),(73195,1),(73197,1),(73203,1),(73232,1),(73235,1),(73239,1),(73251,1),(73255,1),(73278,1),(73285,1),(73291,1),(73302,1),(73303,1),(73314,1),(73315,1),(73321,1),(73326,1),(73330,1),(73335,1),(73336,1),(73339,1),(73341,1),(73342,1),(73344,1),(73350,1),(73351,1),(73355,1),(73357,1),(73364,1),(73367,1),(73373,1),(73374,1),(73383,1),(73399,1),(73402,1),(73405,1),(73409,1),(73415,1),(73424,1),(73428,1),(73429,1),(73432,1),(73435,1),(73438,1),(73443,1),(73452,1),(73466,1),(73469,1),(73471,1),(73472,1),(73500,1),(73502,1),(73507,1),(73510,1),(73513,1),(73514,1),(73515,1),(73516,1),(73525,1),(73536,1),(73541,1),(73542,1),(73546,1),(73551,1),(73560,1),(73565,1),(73566,1),(73571,1),(73574,1),(73575,1),(73578,1),(73594,1),(73599,1),(73605,1),(73619,1),(73621,1),(73624,1),(73648,1),(73653,1),(73655,1),(73663,1),(73672,1),(73673,1),(73681,1),(73696,1),(73703,1),(73709,1),(73717,1),(73721,1),(73727,1),(73733,1),(73739,1),(73742,1),(73746,1),(73749,1),(73756,1),(73760,1),(73765,1),(73769,1),(73772,1),(73780,1),(73783,1),(73788,1),(73790,1),(73795,1),(73797,1),(73799,1),(73817,1),(73818,1),(73827,1),(73833,1),(73835,1),(73843,1),(73852,1),(73856,1),(73857,1),(73858,1),(73867,1),(73881,1),(73882,1),(73888,1),(73889,1),(73893,1),(73901,1),(73907,1),(73913,1),(73916,1),(73919,1),(73925,1),(73937,1),(73944,1),(73946,1),(73950,1),(73985,1),(73986,1),(73993,1),(74008,1),(74010,1),(74016,1),(74019,1),(74023,1),(74024,1),(74025,1),(74027,1),(74048,1),(74054,1),(74055,1),(74056,1),(74059,1),(74061,1),(74065,1),(74067,1),(74068,1),(74069,1),(74078,1),(74081,1),(74088,1),(74091,1),(74098,1),(74105,1),(74109,1),(74110,1),(74112,1),(74117,1),(74124,1),(74128,1),(74132,1),(74133,1),(74135,1),(74137,1),(74143,1),(74147,1),(74150,1),(74163,1),(74173,1),(74179,1),(74184,1),(74190,1),(74200,1),(74201,1),(74207,1),(74210,1),(74217,1),(74226,1),(74229,1),(74236,1),(74238,1),(74249,1),(74261,1),(74269,1),(74272,1),(74273,1),(74290,1),(74306,1),(74309,1),(74310,1),(74320,1),(74321,1),(74326,1),(74327,1),(74336,1),(74344,1),(74350,1),(74355,1),(74361,1),(74362,1),(74380,1),(74402,1),(74405,1),(74408,1),(74415,1),(74423,1),(74424,1),(74426,1),(74443,1),(74451,1),(74455,1),(74466,1),(74482,1),(74486,1),(74490,1),(74501,1),(74503,1),(74511,1),(74531,1),(74532,1),(74556,1),(74557,1),(74565,1),(74567,1),(74569,1),(74571,1),(74572,1),(74574,1),(74577,1),(74583,1),(74593,1),(74598,1),(74603,1),(74611,1),(74614,1),(74617,1),(74624,1),(74626,1),(74632,1),(74640,1),(74649,1),(74653,1),(74658,1),(74661,1),(74662,1),(74667,1),(74672,1),(74675,1),(74676,1),(74690,1),(74694,1),(74695,1),(74697,1),(74720,1),(74723,1),(74730,1),(74735,1),(74738,1),(74749,1),(74752,1),(74754,1),(74762,1),(74764,1),(74767,1),(74769,1),(74777,1),(74780,1),(74810,1),(74814,1),(74823,1),(74825,1),(74826,1),(74830,1),(74832,1),(74859,1),(74864,1),(74867,1),(74879,1),(74887,1),(74891,1),(74909,1),(74919,1),(74920,1),(74922,1),(74926,1),(74932,1),(74937,1),(74941,1),(74948,1),(74955,1),(74956,1),(74970,1),(74975,1),(74990,1),(74993,1),(75000,1),(75002,1),(75004,1),(75006,1),(75008,1),(75009,1),(75011,1),(75024,1),(75042,1),(75046,1),(75054,1),(75058,1),(75060,1),(75091,1),(75092,1),(75095,1),(75103,1),(75104,1),(75113,1),(75117,1),(75119,1),(75125,1),(75135,1),(75137,1),(75140,1),(75162,1),(75163,1),(75164,1),(75167,1),(75170,1),(75178,1),(75180,1),(75189,1),(75193,1),(75204,1),(75209,1),(75215,1),(75222,1),(75235,1),(75240,1),(75248,1),(75250,1),(75260,1),(75264,1),(75265,1),(75270,1),(75277,1),(75278,1),(75282,1),(75283,1),(75284,1),(75288,1),(75304,1),(75305,1),(75313,1),(75314,1),(75316,1),(75325,1),(75326,1),(75329,1),(75346,1),(75349,1),(75351,1),(75369,1),(75389,1),(75391,1),(75396,1),(75406,1),(75407,1),(75408,1),(75416,1),(75419,1),(75422,1),(75429,1),(75434,1),(75441,1),(75445,1),(75449,1),(75463,1),(75476,1),(75477,1),(75484,1),(75493,1),(75496,1),(75498,1),(75503,1),(75514,1),(75516,1),(75521,1),(75523,1),(75524,1),(75530,1),(75532,1),(75548,1),(75550,1),(75551,1),(75567,1),(75569,1),(75577,1),(75579,1),(75580,1),(75586,1),(75589,1),(75591,1),(75606,1),(75608,1),(75613,1),(75615,1),(75619,1),(75627,1),(75630,1),(75635,1),(75637,1),(75641,1),(75648,1),(75659,1),(75663,1),(75665,1),(75674,1),(75684,1),(75695,1),(75697,1),(75699,1),(75701,1),(75711,1),(75728,1),(75729,1),(75735,1),(75736,1),(75739,1),(75742,1),(75746,1),(75764,1),(75768,1),(75773,1),(75780,1),(75785,1),(75787,1),(75793,1),(75805,1),(75808,1),(75821,1),(75828,1),(75832,1),(75835,1),(75838,1),(75841,1),(75850,1),(75865,1),(75870,1),(75879,1),(75885,1),(75890,1),(75898,1),(75904,1),(75920,1),(75928,1),(75929,1),(75935,1),(75959,1),(75961,1),(75966,1),(75988,1),(75991,1),(75998,1),(76004,1),(76011,1),(76024,1),(76029,1),(76030,1),(76031,1),(76036,1),(76041,1),(76043,1),(76045,1),(76056,1),(76058,1),(76060,1),(76071,1),(76072,1),(76077,1),(76080,1),(76083,1),(76084,1),(76085,1),(76087,1),(76097,1),(76108,1),(76110,1),(76114,1),(76117,1),(76118,1),(76119,1),(76122,1),(76140,1),(76145,1),(76166,1),(76168,1),(76178,1),(76183,1),(76186,1),(76188,1),(76196,1),(76209,1),(76227,1),(76236,1),(76244,1),(76249,1),(76258,1),(76260,1),(76274,1),(76280,1),(76281,1),(76283,1),(76294,1),(76298,1),(76308,1),(76313,1),(76315,1),(76319,1),(76329,1),(76337,1),(76345,1),(76349,1),(76350,1),(76361,1),(76367,1),(76369,1),(76371,1),(76375,1),(76378,1),(76382,1),(76411,1),(76412,1),(76420,1),(76430,1),(76432,1),(76438,1),(76441,1),(76445,1),(76450,1),(76452,1),(76458,1),(76460,1),(76461,1),(76463,1),(76467,1),(76473,1),(76474,1),(76480,1),(76483,1),(76484,1),(76486,1),(76488,1),(76491,1),(76494,1),(76505,1),(76506,1),(76510,1),(76512,1),(76516,1),(76527,1),(76528,1),(76541,1),(76552,1),(76553,1),(76554,1),(76556,1),(76557,1),(76564,1),(76567,1),(76578,1),(76586,1),(76591,1),(76606,1),(76615,1),(76617,1),(76618,1),(76625,1),(76627,1),(76633,1),(76636,1),(76643,1),(76648,1),(76652,1),(76655,1),(76657,1),(76659,1),(76660,1),(76663,1),(76664,1),(76668,1),(76670,1),(76671,1),(76679,1),(76689,1),(76696,1),(76705,1),(76706,1),(76707,1),(76712,1),(76726,1),(76728,1),(76742,1),(76743,1),(76747,1),(76751,1),(76753,1),(76756,1),(76764,1),(76770,1),(76771,1),(76778,1),(76780,1),(76786,1),(76793,1),(76795,1),(76805,1),(76807,1),(76813,1),(76814,1),(76816,1),(76819,1),(76820,1),(76824,1),(76832,1),(76842,1),(76845,1),(76847,1),(76855,1),(76860,1),(76862,1),(76864,1),(76872,1),(76873,1),(76881,1),(76894,1),(76897,1),(76902,1),(76904,1),(76908,1),(76909,1),(76912,1),(76916,1),(76921,1),(76924,1),(76926,1),(76935,1),(76937,1),(76948,1),(76949,1),(76950,1),(76955,1),(76960,1),(76965,1),(76970,1),(76974,1),(76977,1),(76979,1),(76983,1),(76986,1),(77009,1),(77045,1),(77046,1),(77047,1),(77051,1),(77065,1),(77072,1),(77074,1),(77080,1),(77084,1),(77094,1),(77101,1),(77105,1),(77109,1),(77111,1),(77112,1),(77113,1),(77115,1),(77123,1),(77137,1),(77144,1),(77148,1),(77162,1),(77168,1),(77170,1),(77174,1),(77188,1),(77191,1),(77194,1),(77195,1),(77204,1),(77208,1),(77209,1),(77216,1),(77222,1),(77224,1),(77226,1),(77237,1),(77240,1),(77251,1),(77255,1),(77266,1),(77274,1),(77275,1),(77291,1),(77305,1),(77307,1),(77313,1),(77314,1),(77316,1),(77317,1),(77332,1),(77335,1),(77345,1),(77352,1),(77366,1),(77384,1),(77385,1),(77395,1),(77397,1),(77401,1),(77405,1),(77407,1),(77419,1),(77429,1),(77432,1),(77445,1),(77446,1),(77453,1),(77459,1),(77463,1),(77469,1),(77471,1),(77477,1),(77481,1),(77487,1),(77488,1),(77499,1),(77501,1),(77504,1),(77508,1),(77512,1),(77513,1),(77526,1),(77527,1),(77531,1),(77546,1),(77555,1),(77557,1),(77561,1),(77570,1),(77576,1),(77582,1),(77590,1),(77592,1),(77598,1),(77599,1),(77602,1),(77604,1),(77605,1),(77606,1),(77608,1),(77613,1),(77614,1),(77615,1),(77625,1),(77630,1),(77636,1),(77645,1),(77654,1),(77659,1),(77663,1),(77669,1),(77675,1),(77683,1),(77685,1),(77690,1),(77698,1),(77703,1),(77707,1),(77708,1),(77713,1),(77716,1),(77718,1),(77724,1),(77725,1),(77730,1),(77741,1),(77745,1),(77748,1),(77749,1),(77762,1),(77765,1),(77770,1),(77787,1),(77793,1),(77798,1),(77803,1),(77804,1),(77805,1),(77812,1),(77815,1),(77824,1),(77829,1),(77837,1),(77840,1),(77841,1),(77847,1),(77849,1),(77858,1),(77866,1),(77869,1),(77873,1),(77899,1),(77911,1),(77925,1),(77926,1),(77932,1),(77936,1),(77937,1),(77941,1),(77947,1),(77951,1),(77958,1),(77966,1),(77974,1),(77976,1),(77985,1),(77990,1),(77996,1),(78012,1),(78017,1),(78019,1),(78026,1),(78037,1),(78041,1),(78057,1),(78068,1),(78077,1),(78078,1),(78086,1),(78087,1),(78088,1),(78094,1),(78099,1),(78108,1),(78121,1),(78126,1),(78130,1),(78138,1),(78148,1),(78151,1),(78156,1),(78164,1),(78181,1),(78183,1),(78188,1),(78189,1),(78194,1),(78199,1),(78207,1),(78209,1),(78212,1),(78219,1),(78220,1),(78230,1),(78231,1),(78232,1),(78236,1),(78238,1),(78240,1),(78244,1),(78254,1),(78259,1),(78263,1),(78271,1),(78275,1),(78285,1),(78286,1),(78295,1),(78303,1),(78304,1),(78308,1),(78315,1),(78318,1),(78322,1),(78323,1),(78324,1),(78334,1),(78356,1),(78362,1),(78364,1),(78370,1),(78377,1),(78384,1),(78389,1),(78391,1),(78423,1),(78424,1),(78430,1),(78436,1),(78445,1),(78463,1),(78464,1),(78471,1),(78488,1),(78491,1),(78494,1),(78496,1),(78506,1),(78521,1),(78551,1),(78572,1),(78581,1),(78597,1),(78600,1),(78601,1),(78606,1),(78616,1),(78619,1),(78631,1),(78633,1),(78637,1),(78638,1),(78659,1),(78663,1),(78664,1),(78669,1),(78676,1),(78678,1),(78684,1),(78689,1),(78691,1),(78695,1),(78698,1),(78699,1),(78701,1),(78705,1),(78713,1),(78718,1),(78723,1),(78729,1),(78730,1),(78733,1),(78748,1),(78754,1),(78757,1),(78762,1),(78776,1),(78779,1),(78780,1),(78784,1),(78792,1),(78796,1),(78799,1),(78802,1),(78817,1),(78819,1),(78821,1),(78826,1),(78832,1),(78841,1),(78851,1),(78859,1),(78866,1),(78871,1),(78876,1),(78880,1),(78907,1),(78924,1),(78927,1),(78929,1),(78931,1),(78933,1),(78943,1),(78945,1),(78952,1),(78968,1),(78975,1),(78984,1),(78998,1),(79005,1),(79009,1),(79012,1),(79013,1),(79015,1),(79018,1),(79020,1),(79024,1),(79029,1),(79040,1),(79043,1),(79046,1),(79056,1),(79073,1),(79074,1),(79077,1),(79085,1),(79087,1),(79094,1),(79099,1),(79100,1),(79120,1),(79121,1),(79122,1),(79124,1),(79125,1),(79126,1),(79143,1),(79150,1),(79151,1),(79162,1),(79168,1),(79169,1),(79170,1),(79173,1),(79187,1),(79195,1),(79199,1),(79227,1),(79235,1),(79241,1),(79250,1),(79252,1),(79261,1),(79273,1),(79277,1),(79278,1),(79279,1),(79289,1),(79300,1),(79318,1),(79321,1),(79325,1),(79348,1),(79350,1),(79351,1),(79358,1),(79371,1),(79378,1),(79386,1),(79392,1),(79399,1),(79407,1),(79416,1),(79417,1),(79421,1),(79422,1),(79435,1),(79439,1),(79442,1),(79449,1),(79461,1),(79464,1),(79468,1),(79469,1),(79476,1),(79480,1),(79485,1),(79491,1),(79492,1),(79502,1),(79511,1),(79520,1),(79525,1),(79527,1),(79531,1),(79549,1),(79552,1),(79567,1),(79580,1),(79588,1),(79591,1),(79592,1),(79605,1),(79613,1),(79630,1),(79633,1),(79643,1),(79648,1),(79649,1),(79653,1),(79654,1),(79657,1),(79670,1),(79676,1),(79683,1),(79688,1),(79695,1),(79696,1),(79704,1),(79710,1),(79717,1),(79720,1),(79724,1),(79729,1),(79731,1),(79740,1),(79744,1),(79758,1),(79760,1),(79779,1),(79785,1),(79786,1),(79787,1),(79794,1),(79796,1),(79803,1),(79826,1),(79842,1),(79844,1),(79848,1),(79862,1),(79865,1),(79869,1),(79872,1),(79881,1),(79887,1),(79892,1),(79910,1),(79914,1),(79919,1),(79924,1),(79927,1),(79933,1),(79940,1),(79942,1),(79946,1),(79948,1),(79951,1),(79960,1),(79967,1),(79969,1),(79975,1),(79979,1),(79980,1),(79982,1),(79985,1),(79989,1),(79990,1),(79995,1),(79998,1),(80000,1),(80006,1),(80011,1),(80025,1),(80032,1),(80040,1),(80042,1),(80045,1),(80067,1),(80087,1),(80093,1),(80103,1),(80112,1),(80114,1),(80117,1),(80126,1),(80127,1),(80150,1),(80153,1),(80155,1),(80170,1),(80176,1),(80184,1),(80185,1),(80188,1),(80189,1),(80197,1),(80231,1),(80247,1),(80249,1),(80259,1),(80262,1),(80274,1),(80296,1),(80309,1),(80310,1),(80328,1),(80330,1),(80333,1),(80334,1),(80335,1),(80339,1),(80347,1),(80353,1),(80361,1),(80375,1),(80380,1),(80386,1),(80413,1),(80420,1),(80427,1),(80449,1),(80452,1),(80454,1),(80455,1),(80456,1),(80458,1),(80475,1),(80479,1),(80489,1),(80493,1),(80498,1),(80510,1),(80516,1),(80517,1),(80521,1),(80541,1),(80555,1),(80559,1),(80560,1),(80564,1),(80573,1),(80579,1),(80607,1),(80620,1),(80626,1),(80642,1),(80651,1),(80655,1),(80662,1),(80663,1),(80678,1),(80679,1),(80680,1),(80685,1),(80690,1),(80696,1),(80699,1),(80703,1),(80704,1),(80705,1),(80710,1),(80730,1),(80742,1),(80758,1),(80765,1),(80769,1),(80771,1),(80777,1),(80783,1),(80792,1),(80793,1),(80796,1),(80800,1),(80801,1),(80802,1),(80807,1),(80808,1),(80819,1),(80820,1),(80828,1),(80830,1),(80832,1),(80835,1),(80837,1),(80841,1),(80843,1),(80850,1),(80860,1),(80883,1),(80884,1),(80887,1),(80896,1),(80900,1),(80913,1),(80925,1),(80929,1),(80931,1),(80943,1),(80946,1),(80952,1),(80955,1),(80958,1),(80967,1),(80969,1),(80977,1),(80978,1),(80986,1),(80989,1),(80990,1),(80991,1),(80992,1),(80995,1),(80998,1),(81005,1),(81010,1),(81015,1),(81033,1),(81037,1),(81039,1),(81040,1),(81044,1),(81046,1),(81047,1),(81049,1),(81056,1),(81067,1),(81085,1),(81096,1),(81099,1),(81105,1),(81111,1),(81116,1),(81117,1),(81119,1),(81122,1),(81130,1),(81131,1),(81139,1),(81157,1),(81167,1),(81179,1),(81187,1),(81188,1),(81191,1),(81193,1),(81196,1),(81202,1),(81206,1),(81216,1),(81228,1),(81231,1),(81233,1),(81243,1),(81252,1),(81269,1),(81270,1),(81271,1),(81274,1),(81280,1),(81287,1),(81295,1),(81298,1),(81309,1),(81310,1),(81311,1),(81313,1),(81315,1),(81318,1),(81327,1),(81328,1),(81334,1),(81336,1),(81346,1),(81348,1),(81349,1),(81353,1),(81361,1),(81370,1),(81378,1),(81385,1),(81390,1),(81400,1),(81401,1),(81407,1),(81412,1),(81413,1),(81415,1),(81429,1),(81431,1),(81438,1),(81453,1),(81454,1),(81462,1),(81474,1),(81481,1),(81482,1),(81495,1),(81499,1),(81500,1),(81504,1),(81505,1),(81520,1),(81524,1),(81525,1),(81528,1),(81530,1),(81533,1),(81534,1),(81536,1),(81547,1),(81549,1),(81565,1),(81569,1),(81572,1),(81578,1),(81588,1),(81590,1),(81591,1),(81592,1),(81607,1),(81618,1),(81622,1),(81626,1),(81634,1),(81643,1),(81646,1),(81652,1),(81655,1),(81668,1),(81675,1),(81680,1),(81688,1),(81695,1),(81715,1),(81720,1),(81724,1),(81740,1),(81756,1),(81759,1),(81763,1),(81774,1),(81779,1),(81782,1),(81786,1),(81792,1),(81798,1),(81805,1),(81806,1),(81809,1),(81811,1),(81815,1),(81821,1),(81824,1),(81831,1),(81832,1),(81852,1),(81866,1),(81871,1),(81873,1),(81876,1),(81890,1),(81896,1),(81906,1),(81913,1),(81914,1),(81925,1),(81926,1),(81936,1),(81945,1),(81947,1),(81954,1),(81959,1),(81961,1),(81965,1),(81966,1),(81967,1),(81969,1),(81971,1),(81972,1),(81980,1),(81981,1),(81989,1),(81990,1),(81993,1),(81994,1),(82006,1),(82029,1),(82032,1),(82037,1),(82042,1),(82046,1),(82051,1),(82055,1),(82060,1),(82061,1),(82073,1),(82076,1),(82079,1),(82081,1),(82083,1),(82085,1),(82112,1),(82123,1),(82128,1),(82142,1),(82143,1),(82146,1),(82157,1),(82163,1),(82167,1),(82177,1),(82180,1),(82184,1),(82186,1),(82190,1),(82213,1),(82215,1),(82220,1),(82222,1),(82235,1),(82236,1),(82255,1),(82259,1),(82273,1),(82279,1),(82283,1),(82294,1),(82298,1),(82307,1),(82318,1),(82319,1),(82320,1),(82346,1),(82348,1),(82363,1),(82366,1),(82381,1),(82394,1),(82398,1),(82404,1),(82410,1),(82414,1),(82416,1),(82424,1),(82425,1),(82428,1),(82447,1),(82448,1),(82468,1),(82483,1),(82494,1),(82495,1),(82496,1),(82497,1),(82501,1),(82502,1),(82511,1),(82515,1),(82523,1),(82526,1),(82551,1),(82552,1),(82566,1),(82571,1),(82573,1),(82575,1),(82576,1),(82579,1),(82580,1),(82581,1),(82585,1),(82589,1),(82590,1),(82603,1),(82604,1),(82617,1),(82620,1),(82625,1),(82632,1),(82643,1),(82649,1),(82667,1),(82675,1),(82677,1),(82686,1),(82689,1),(82692,1),(82695,1),(82696,1),(82702,1),(82706,1),(82708,1),(82712,1),(82718,1),(82724,1),(82731,1),(82735,1),(82742,1),(82745,1),(82750,1),(82757,1),(82759,1),(82762,1),(82764,1),(82773,1),(82790,1),(82793,1),(82832,1),(82841,1),(82846,1),(82859,1),(82873,1),(82878,1),(82881,1),(82891,1),(82892,1),(82897,1),(82908,1),(82911,1),(82923,1),(82937,1),(82942,1),(82948,1),(82951,1),(82957,1),(82960,1),(82965,1),(82973,1),(82976,1),(82980,1),(82983,1),(82984,1),(82985,1),(82992,1),(82998,1),(83006,1),(83008,1),(83009,1),(83022,1),(83035,1),(83036,1),(83056,1),(83062,1),(83063,1),(83064,1),(83065,1),(83075,1),(83077,1),(83078,1),(83080,1),(83083,1),(83084,1),(83100,1),(83110,1),(83113,1),(83114,1),(83122,1),(83125,1),(83133,1),(83136,1),(83145,1),(83159,1),(83172,1),(83177,1),(83181,1),(83185,1),(83188,1),(83190,1),(83202,1),(83214,1),(83217,1),(83221,1),(83223,1),(83231,1),(83233,1),(83237,1),(83238,1),(83239,1),(83249,1),(83253,1),(83268,1),(83269,1),(83273,1),(83274,1),(83278,1),(83280,1),(83284,1),(83285,1),(83294,1),(83298,1),(83299,1),(83301,1),(83307,1),(83310,1),(83331,1),(83349,1),(83352,1),(83357,1),(83360,1),(83363,1),(83365,1),(83373,1),(83374,1),(83379,1),(83382,1),(83386,1),(83390,1),(83391,1),(83394,1),(83400,1),(83411,1),(83426,1),(83435,1),(83441,1),(83455,1),(83457,1),(83459,1),(83462,1),(83463,1),(83467,1),(83497,1),(83498,1),(83512,1),(83518,1),(83522,1),(83531,1),(83533,1),(83541,1),(83544,1),(83551,1),(83556,1),(83573,1),(83580,1),(83585,1),(83593,1),(83605,1),(83606,1),(83609,1),(83616,1),(83618,1),(83628,1),(83630,1),(83638,1),(83652,1),(83654,1),(83660,1),(83670,1),(83683,1),(83687,1),(83689,1),(83690,1),(83691,1),(83699,1),(83700,1),(83701,1),(83705,1),(83708,1),(83710,1),(83711,1),(83713,1),(83723,1),(83734,1),(83735,1),(83748,1),(83753,1),(83758,1),(83773,1),(83775,1),(83781,1),(83782,1),(83786,1),(83787,1),(83790,1),(83797,1),(83799,1),(83809,1),(83810,1),(83811,1),(83814,1),(83827,1),(83828,1),(83830,1),(83841,1),(83869,1),(83871,1),(83876,1),(83880,1),(83885,1),(83888,1),(83897,1),(83907,1),(83934,1),(83939,1),(83944,1),(83945,1),(83946,1),(83948,1),(83958,1),(83959,1),(83967,1),(83968,1),(83970,1),(83988,1),(84006,1),(84011,1),(84018,1),(84038,1),(84040,1),(84045,1),(84049,1),(84050,1),(84051,1),(84057,1),(84067,1),(84079,1),(84082,1),(84085,1),(84086,1),(84094,1),(84107,1),(84113,1),(84115,1),(84123,1),(84131,1),(84146,1),(84156,1),(84165,1),(84167,1),(84176,1),(84187,1),(84191,1),(84198,1),(84200,1),(84205,1),(84207,1),(84216,1),(84218,1),(84226,1),(84231,1),(84238,1),(84248,1),(84249,1),(84251,1),(84254,1),(84268,1),(84287,1),(84288,1),(84289,1),(84294,1),(84295,1),(84298,1),(84301,1),(84318,1),(84321,1),(84325,1),(84335,1),(84338,1),(84339,1),(84347,1),(84363,1),(84367,1),(84371,1),(84376,1),(84381,1),(84399,1),(84409,1),(84422,1),(84426,1),(84433,1),(84441,1),(84445,1),(84446,1),(84453,1),(84462,1),(84466,1),(84469,1),(84476,1),(84482,1),(84489,1),(84496,1),(84501,1),(84503,1),(84508,1),(84512,1),(84534,1),(84535,1),(84542,1),(84547,1),(84552,1),(84553,1),(84555,1),(84558,1),(84562,1),(84568,1),(84574,1),(84583,1),(84584,1),(84585,1),(84597,1),(84598,1),(84600,1),(84602,1),(84609,1),(84613,1),(84614,1),(84642,1),(84653,1),(84654,1),(84660,1),(84662,1),(84675,1),(84683,1),(84684,1),(84692,1),(84696,1),(84702,1),(84707,1),(84708,1),(84709,1),(84714,1),(84718,1),(84719,1),(84722,1),(84733,1),(84745,1),(84749,1),(84755,1),(84774,1),(84782,1),(84795,1),(84802,1),(84808,1),(84814,1),(84815,1),(84819,1),(84823,1),(84825,1),(84831,1),(84836,1),(84839,1),(84844,1),(84851,1),(84855,1),(84856,1),(84857,1),(84860,1),(84868,1),(84871,1),(84875,1),(84878,1),(84885,1),(84887,1),(84895,1),(84901,1),(84904,1),(84909,1),(84914,1),(84922,1),(84926,1),(84938,1),(84944,1),(84947,1),(84948,1),(84949,1),(84951,1),(84954,1),(84959,1),(84961,1),(84971,1),(84972,1),(84973,1),(84974,1),(85015,1),(85023,1),(85036,1),(85039,1),(85042,1),(85044,1),(85062,1),(85071,1),(85091,1),(85100,1),(85111,1),(85119,1),(85122,1),(85129,1),(85132,1),(85136,1),(85142,1),(85149,1),(85151,1),(85153,1),(85155,1),(85169,1),(85174,1),(85175,1),(85177,1),(85189,1),(85196,1),(85200,1),(85207,1),(85214,1),(85223,1),(85229,1),(85236,1),(85242,1),(85246,1),(85253,1),(85260,1),(85270,1),(85275,1),(85278,1),(85280,1),(85288,1),(85293,1),(85295,1),(85296,1),(85301,1),(85335,1),(85339,1),(85342,1),(85347,1),(85361,1),(85369,1),(85374,1),(85379,1),(85384,1),(85388,1),(85389,1),(85390,1),(85395,1),(85408,1),(85411,1),(85415,1),(85418,1),(85421,1),(85444,1),(85451,1),(85454,1),(85457,1),(85458,1),(85461,1),(85474,1),(85483,1),(85491,1),(85497,1),(85499,1),(85504,1),(85526,1),(85529,1),(85540,1),(85553,1),(85554,1),(85556,1),(85571,1),(85576,1),(85578,1),(85582,1),(85593,1),(85597,1),(85602,1),(85609,1),(85611,1),(85617,1),(85620,1),(85624,1),(85627,1),(85634,1),(85636,1),(85651,1),(85659,1),(85663,1),(85668,1),(85669,1),(85687,1),(85700,1),(85703,1),(85706,1),(85708,1),(85737,1),(85738,1),(85742,1),(85745,1),(85753,1),(85754,1),(85768,1),(85770,1),(85772,1),(85776,1),(85783,1),(85793,1),(85797,1),(85798,1),(85800,1),(85812,1),(85821,1),(85822,1),(85842,1),(85843,1),(85844,1),(85850,1),(85857,1),(85858,1),(85868,1),(85877,1),(85893,1),(85896,1),(85900,1),(85908,1),(85914,1),(85919,1),(85924,1),(85928,1),(85932,1),(85933,1),(85949,1),(85957,1),(85960,1),(85965,1),(85969,1),(85973,1),(85977,1),(85978,1),(85988,1),(85991,1),(85999,1),(86004,1),(86007,1),(86019,1),(86031,1),(86035,1),(86037,1),(86038,1),(86042,1),(86047,1),(86049,1),(86051,1),(86053,1),(86056,1),(86058,1),(86069,1),(86070,1),(86072,1),(86076,1),(86083,1),(86087,1),(86089,1),(86094,1),(86111,1),(86118,1),(86122,1),(86124,1),(86125,1),(86127,1),(86149,1),(86153,1),(86156,1),(86158,1),(86179,1),(86186,1),(86187,1),(86189,1),(86209,1),(86215,1),(86219,1),(86225,1),(86226,1),(86228,1),(86229,1),(86236,1),(86243,1),(86288,1),(86294,1),(86303,1),(86304,1),(86330,1),(86335,1),(86337,1),(86353,1),(86360,1),(86369,1),(86390,1),(86391,1),(86402,1),(86420,1),(86424,1),(86426,1),(86427,1),(86434,1),(86437,1),(86439,1),(86443,1),(86451,1),(86453,1),(86456,1),(86458,1),(86459,1),(86464,1),(86466,1),(86476,1),(86477,1),(86499,1),(86500,1),(86507,1),(86509,1),(86518,1),(86522,1),(86530,1),(86531,1),(86532,1),(86537,1),(86541,1),(86544,1),(86550,1),(86552,1),(86570,1),(86573,1),(86579,1),(86580,1),(86584,1),(86586,1),(86588,1),(86601,1),(86606,1),(86607,1),(86608,1),(86609,1),(86615,1),(86620,1),(86625,1),(86635,1),(86638,1),(86639,1),(86646,1),(86647,1),(86653,1),(86656,1),(86659,1),(86665,1),(86672,1),(86673,1),(86682,1),(86695,1),(86705,1),(86707,1),(86711,1),(86719,1),(86743,1),(86745,1),(86749,1),(86753,1),(86769,1),(86774,1),(86780,1),(86784,1),(86790,1),(86791,1),(86803,1),(86808,1),(86811,1),(86841,1),(86846,1),(86849,1),(86852,1),(86853,1),(86862,1),(86865,1),(86868,1),(86882,1),(86883,1),(86888,1),(86898,1),(86904,1),(86911,1),(86917,1),(86918,1),(86922,1),(86925,1),(86939,1),(86948,1),(86949,1),(86955,1),(86964,1),(86966,1),(86980,1),(87004,1),(87013,1),(87016,1),(87020,1),(87021,1),(87022,1),(87031,1),(87035,1),(87042,1),(87043,1),(87066,1),(87068,1),(87081,1),(87084,1),(87085,1),(87087,1),(87089,1),(87093,1),(87097,1),(87100,1),(87107,1),(87109,1),(87115,1),(87116,1),(87117,1),(87118,1),(87144,1),(87148,1),(87152,1),(87161,1),(87163,1),(87165,1),(87166,1),(87174,1),(87182,1),(87184,1),(87191,1),(87204,1),(87206,1),(87207,1),(87212,1),(87218,1),(87223,1),(87234,1),(87249,1),(87266,1),(87268,1),(87272,1),(87273,1),(87276,1),(87285,1),(87308,1),(87319,1),(87326,1),(87330,1),(87335,1),(87336,1),(87339,1),(87341,1),(87346,1),(87349,1),(87354,1),(87356,1),(87359,1),(87361,1),(87371,1),(87373,1),(87379,1),(87396,1),(87398,1),(87399,1),(87406,1),(87410,1),(87411,1),(87430,1),(87439,1),(87452,1),(87453,1),(87462,1),(87477,1),(87486,1),(87490,1),(87497,1),(87504,1),(87505,1),(87518,1),(87520,1),(87521,1),(87526,1),(87551,1),(87567,1),(87568,1),(87570,1),(87580,1),(87586,1),(87590,1),(87593,1),(87602,1),(87612,1),(87619,1),(87633,1),(87637,1),(87642,1),(87651,1),(87659,1),(87663,1),(87664,1),(87668,1),(87673,1),(87674,1),(87677,1),(87679,1),(87682,1),(87687,1),(87698,1),(87701,1),(87715,1),(87723,1),(87738,1),(87744,1),(87749,1),(87755,1),(87760,1),(87779,1),(87786,1),(87787,1),(87799,1),(87800,1),(87801,1),(87802,1),(87844,1),(87851,1),(87863,1),(87866,1),(87867,1),(87869,1),(87874,1),(87879,1),(87885,1),(87895,1),(87898,1),(87902,1),(87906,1),(87908,1),(87911,1),(87915,1),(87918,1),(87921,1),(87928,1),(87931,1),(87940,1),(87945,1),(87950,1),(87959,1),(87964,1),(87969,1),(87971,1),(87978,1),(87983,1),(87985,1),(87986,1),(87989,1),(87992,1),(87999,1),(88001,1),(88011,1),(88023,1),(88028,1),(88030,1),(88059,1),(88062,1),(88065,1),(88073,1),(88075,1),(88079,1),(88090,1),(88093,1),(88103,1),(88105,1),(88113,1),(88122,1),(88137,1),(88140,1),(88157,1),(88160,1),(88165,1),(88171,1),(88176,1),(88182,1),(88192,1),(88202,1),(88210,1),(88219,1),(88221,1),(88231,1),(88238,1),(88245,1),(88259,1),(88271,1),(88281,1),(88286,1),(88287,1),(88297,1),(88308,1),(88310,1),(88337,1),(88338,1),(88346,1),(88352,1),(88359,1),(88362,1),(88369,1),(88376,1),(88380,1),(88381,1),(88391,1),(88407,1),(88415,1),(88429,1),(88433,1),(88443,1),(88446,1),(88452,1),(88454,1),(88462,1),(88469,1),(88471,1),(88475,1),(88477,1),(88495,1),(88504,1),(88521,1),(88526,1),(88535,1),(88536,1),(88543,1),(88550,1),(88551,1),(88555,1),(88557,1),(88558,1),(88560,1),(88574,1),(88585,1),(88590,1),(88593,1),(88598,1),(88605,1),(88609,1),(88619,1),(88620,1),(88622,1),(88633,1),(88645,1),(88650,1),(88652,1),(88658,1),(88662,1),(88673,1),(88688,1),(88706,1),(88723,1),(88728,1),(88729,1),(88730,1),(88732,1),(88734,1),(88737,1),(88750,1),(88766,1),(88768,1),(88774,1),(88779,1),(88782,1),(88792,1),(88801,1),(88814,1),(88816,1),(88820,1),(88822,1),(88824,1),(88834,1),(88836,1),(88837,1),(88840,1),(88841,1),(88844,1),(88867,1),(88885,1),(88886,1),(88887,1),(88888,1),(88902,1),(88910,1),(88916,1),(88925,1),(88926,1),(88932,1),(88942,1),(88948,1),(88949,1),(88964,1),(88965,1),(88969,1),(88975,1),(88976,1),(88986,1),(89001,1),(89006,1),(89014,1),(89018,1),(89022,1),(89023,1),(89032,1),(89040,1),(89047,1),(89069,1),(89076,1),(89078,1),(89088,1),(89090,1),(89093,1),(89094,1),(89108,1),(89116,1),(89117,1),(89123,1),(89124,1),(89125,1),(89132,1),(89147,1),(89149,1),(89151,1),(89154,1),(89160,1),(89184,1),(89187,1),(89188,1),(89207,1),(89217,1),(89221,1),(89223,1),(89226,1),(89227,1),(89229,1),(89231,1),(89235,1),(89241,1),(89242,1),(89250,1),(89255,1),(89259,1),(89276,1),(89282,1),(89290,1),(89293,1),(89294,1),(89297,1),(89300,1),(89307,1),(89313,1),(89316,1),(89321,1),(89331,1),(89339,1),(89343,1),(89347,1),(89364,1),(89379,1),(89385,1),(89387,1),(89396,1),(89397,1),(89400,1),(89401,1),(89410,1),(89417,1),(89444,1),(89451,1),(89452,1),(89476,1),(89479,1),(89482,1),(89486,1),(89488,1),(89490,1),(89497,1),(89498,1),(89501,1),(89506,1),(89510,1),(89521,1),(89524,1),(89527,1),(89548,1),(89551,1),(89564,1),(89569,1),(89571,1),(89574,1),(89585,1),(89589,1),(89593,1),(89598,1),(89605,1),(89617,1),(89623,1),(89630,1),(89635,1),(89639,1),(89646,1),(89663,1),(89672,1),(89676,1),(89679,1),(89695,1),(89697,1),(89712,1),(89713,1),(89714,1),(89715,1),(89716,1),(89720,1),(89724,1),(89728,1),(89747,1),(89749,1),(89757,1),(89761,1),(89762,1),(89764,1),(89775,1),(89787,1),(89793,1),(89795,1),(89806,1),(89811,1),(89818,1),(89820,1),(89821,1),(89832,1),(89835,1),(89848,1),(89852,1),(89867,1),(89868,1),(89870,1),(89873,1),(89877,1),(89878,1),(89882,1),(89891,1),(89892,1),(89894,1),(89904,1),(89923,1),(89926,1),(89929,1),(89935,1),(89942,1),(89943,1),(89944,1),(89945,1),(89950,1),(89952,1),(89957,1),(89965,1),(89969,1),(89979,1),(89982,1),(89985,1),(89996,1),(90001,1),(90006,1),(90014,1),(90016,1),(90028,1),(90035,1),(90041,1),(90046,1),(90050,1),(90067,1),(90073,1),(90084,1),(90093,1),(90096,1),(90099,1),(90101,1),(90106,1),(90111,1),(90115,1),(90119,1),(90131,1),(90137,1),(90140,1),(90142,1),(90144,1),(90146,1),(90151,1),(90152,1),(90156,1),(90157,1),(90158,1),(90163,1),(90164,1),(90167,1),(90168,1),(90171,1),(90172,1),(90179,1),(90185,1),(90188,1),(90198,1),(90199,1),(90210,1),(90221,1),(90224,1),(90229,1),(90232,1),(90239,1),(90240,1),(90243,1),(90244,1),(90250,1),(90259,1),(90260,1),(90261,1),(90264,1),(90277,1),(90278,1),(90302,1),(90321,1),(90323,1),(90326,1),(90328,1),(90333,1),(90337,1),(90339,1),(90342,1),(90346,1),(90348,1),(90351,1),(90361,1),(90369,1),(90379,1),(90393,1),(90395,1),(90396,1),(90398,1),(90401,1),(90402,1),(90411,1),(90413,1),(90427,1),(90432,1),(90434,1),(90437,1),(90448,1),(90466,1),(90469,1),(90482,1),(90486,1),(90488,1),(90489,1),(90490,1),(90496,1),(90502,1),(90511,1),(90514,1),(90518,1),(90531,1),(90533,1),(90536,1),(90539,1),(90557,1),(90571,1),(90582,1),(90592,1),(90595,1),(90598,1),(90605,1),(90607,1),(90608,1),(90615,1),(90623,1),(90624,1),(90633,1),(90636,1),(90641,1),(90643,1),(90654,1),(90655,1),(90657,1),(90666,1),(90674,1),(90677,1),(90686,1),(90708,1),(90725,1),(90726,1),(90729,1),(90732,1),(90744,1),(90755,1),(90756,1),(90757,1),(90763,1),(90768,1),(90777,1),(90786,1),(90789,1),(90793,1),(90796,1),(90802,1),(90803,1),(90806,1),(90813,1),(90823,1),(90831,1),(90844,1),(90845,1),(90846,1),(90847,1),(90852,1),(90858,1),(90860,1),(90865,1),(90880,1),(90891,1),(90895,1),(90896,1),(90899,1),(90906,1),(90907,1),(90908,1),(90914,1),(90915,1),(90917,1),(90924,1),(90927,1),(90952,1),(90962,1),(90976,1),(90988,1),(90989,1),(90991,1),(91000,1),(91006,1),(91012,1),(91015,1),(91024,1),(91043,1),(91047,1),(91076,1),(91095,1),(91102,1),(91111,1),(91116,1),(91122,1),(91132,1),(91141,1),(91144,1),(91151,1),(91157,1),(91158,1),(91160,1),(91166,1),(91171,1),(91172,1),(91176,1),(91177,1),(91185,1),(91190,1),(91194,1),(91202,1),(91203,1),(91208,1),(91217,1),(91227,1),(91228,1),(91240,1),(91243,1),(91250,1),(91265,1),(91267,1),(91271,1),(91276,1),(91281,1),(91285,1),(91290,1),(91291,1),(91295,1),(91297,1),(91298,1),(91302,1),(91307,1),(91321,1),(91325,1),(91327,1),(91328,1),(91341,1),(91350,1),(91357,1),(91358,1),(91361,1),(91370,1),(91371,1),(91378,1),(91391,1),(91393,1),(91402,1),(91409,1),(91414,1),(91421,1),(91431,1),(91435,1),(91437,1),(91442,1),(91453,1),(91462,1),(91476,1),(91488,1),(91491,1),(91497,1),(91499,1),(91506,1),(91507,1),(91515,1),(91521,1),(91527,1),(91543,1),(91558,1),(91565,1),(91578,1),(91586,1),(91595,1),(91600,1),(91604,1),(91615,1),(91623,1),(91627,1),(91637,1),(91653,1),(91654,1),(91655,1),(91656,1),(91666,1),(91673,1),(91677,1),(91682,1),(91689,1),(91690,1),(91693,1),(91699,1),(91723,1),(91734,1),(91740,1),(91743,1),(91755,1),(91758,1),(91760,1),(91763,1),(91771,1),(91772,1),(91774,1),(91776,1),(91777,1),(91781,1),(91782,1),(91784,1),(91789,1),(91795,1),(91797,1),(91799,1),(91804,1),(91806,1),(91812,1),(91824,1),(91828,1),(91833,1),(91848,1),(91852,1),(91858,1),(91861,1),(91866,1),(91867,1),(91869,1),(91874,1),(91889,1),(91890,1),(91897,1),(91899,1),(91920,1),(91932,1),(91935,1),(91944,1),(91958,1),(91959,1),(91977,1),(91978,1),(91984,1),(91986,1),(91995,1),(92001,1),(92002,1),(92015,1),(92025,1),(92031,1),(92035,1),(92051,1),(92056,1),(92057,1),(92066,1),(92076,1),(92095,1),(92098,1),(92099,1),(92103,1),(92108,1),(92114,1),(92124,1),(92125,1),(92126,1),(92127,1),(92134,1),(92139,1),(92145,1),(92148,1),(92150,1),(92153,1),(92154,1),(92155,1),(92158,1),(92161,1),(92163,1),(92173,1),(92177,1),(92184,1),(92190,1),(92191,1),(92197,1),(92198,1),(92202,1),(92216,1),(92235,1),(92240,1),(92249,1),(92256,1),(92257,1),(92259,1),(92261,1),(92283,1),(92288,1),(92299,1),(92301,1),(92306,1),(92313,1),(92315,1),(92317,1),(92330,1),(92335,1),(92347,1),(92348,1),(92349,1),(92382,1),(92390,1),(92398,1),(92399,1),(92400,1),(92401,1),(92402,1),(92404,1),(92411,1),(92415,1),(92423,1),(92437,1),(92438,1),(92444,1),(92447,1),(92448,1),(92449,1),(92470,1),(92477,1),(92478,1),(92480,1),(92483,1),(92488,1),(92491,1),(92498,1),(92502,1),(92517,1),(92518,1),(92520,1),(92523,1),(92533,1),(92545,1),(92549,1),(92555,1),(92565,1),(92568,1),(92591,1),(92592,1),(92593,1),(92599,1),(92603,1),(92605,1),(92606,1),(92608,1),(92611,1),(92616,1),(92623,1),(92633,1),(92634,1),(92638,1),(92653,1),(92654,1),(92659,1),(92664,1),(92666,1),(92669,1),(92687,1),(92694,1),(92697,1),(92703,1),(92709,1),(92711,1),(92712,1),(92713,1),(92719,1),(92725,1),(92734,1),(92736,1),(92737,1),(92738,1),(92754,1),(92755,1),(92765,1),(92766,1),(92781,1),(92783,1),(92791,1),(92792,1),(92798,1),(92803,1),(92806,1),(92815,1),(92818,1),(92819,1),(92823,1),(92826,1),(92841,1),(92842,1),(92845,1),(92876,1),(92877,1),(92882,1),(92886,1),(92889,1),(92890,1),(92891,1),(92907,1),(92916,1),(92917,1),(92919,1),(92926,1),(92929,1),(92930,1),(92938,1),(92945,1),(92957,1),(92958,1),(92960,1),(92965,1),(92977,1),(92996,1),(92998,1),(92999,1),(93024,1),(93025,1),(93028,1),(93047,1),(93052,1),(93059,1),(93066,1),(93069,1),(93083,1),(93085,1),(93092,1),(93093,1),(93097,1),(93103,1),(93106,1),(93118,1),(93123,1),(93140,1),(93143,1),(93147,1),(93157,1),(93162,1),(93165,1),(93182,1),(93191,1),(93198,1),(93203,1),(93207,1),(93208,1),(93213,1),(93220,1),(93226,1),(93229,1),(93230,1),(93231,1),(93251,1),(93261,1),(93270,1),(93271,1),(93280,1),(93281,1),(93289,1),(93295,1),(93296,1),(93301,1),(93306,1),(93307,1),(93311,1),(93318,1),(93321,1),(93326,1),(93332,1),(93341,1),(93343,1),(93348,1),(93355,1),(93357,1),(93370,1),(93374,1),(93377,1),(93379,1),(93387,1),(93398,1),(93403,1),(93404,1),(93408,1),(93410,1),(93419,1),(93424,1),(93425,1),(93426,1),(93429,1),(93442,1),(93458,1),(93466,1),(93471,1),(93478,1),(93480,1),(93487,1),(93488,1),(93505,1),(93506,1),(93509,1),(93511,1),(93518,1),(93524,1),(93528,1),(93533,1),(93538,1),(93543,1),(93553,1),(93559,1),(93570,1),(93577,1),(93582,1),(93591,1),(93593,1),(93612,1),(93615,1),(93616,1),(93617,1),(93627,1),(93631,1),(93636,1),(93646,1),(93650,1),(93660,1),(93661,1),(93662,1),(93678,1),(93684,1),(93686,1),(93694,1),(93704,1),(93705,1),(93707,1),(93715,1),(93721,1),(93723,1),(93729,1),(93735,1),(93737,1),(93741,1),(93749,1),(93750,1),(93753,1),(93759,1),(93769,1),(93773,1),(93774,1),(93781,1),(93783,1),(93785,1),(93798,1),(93807,1),(93820,1),(93824,1),(93826,1),(93827,1),(93834,1),(93837,1),(93851,1),(93854,1),(93858,1),(93859,1),(93861,1),(93864,1),(93866,1),(93870,1),(93872,1),(93873,1),(93874,1),(93876,1),(93879,1),(93883,1),(93896,1),(93905,1),(93911,1),(93919,1),(93938,1),(93944,1),(93949,1),(93950,1),(93951,1),(93952,1),(93965,1),(93968,1),(93981,1),(93982,1),(93984,1),(93987,1),(93997,1),(94001,1),(94003,1),(94007,1),(94010,1),(94012,1),(94015,1),(94016,1),(94019,1),(94034,1),(94037,1),(94043,1),(94046,1),(94051,1),(94054,1),(94065,1),(94066,1),(94078,1),(94079,1),(94082,1),(94083,1),(94086,1),(94093,1),(94094,1),(94097,1),(94099,1),(94109,1),(94118,1),(94120,1),(94121,1),(94126,1),(94129,1),(94144,1),(94149,1),(94156,1),(94168,1),(94170,1),(94175,1),(94176,1),(94178,1),(94189,1),(94191,1),(94196,1),(94201,1),(94209,1),(94213,1),(94226,1),(94239,1),(94244,1),(94248,1),(94250,1),(94256,1),(94261,1),(94265,1),(94273,1),(94285,1),(94286,1),(94292,1),(94303,1),(94318,1),(94348,1),(94354,1),(94362,1),(94370,1),(94373,1),(94376,1),(94380,1),(94393,1),(94400,1),(94404,1),(94427,1),(94439,1),(94446,1),(94468,1),(94470,1),(94476,1),(94481,1),(94486,1),(94488,1),(94489,1),(94490,1),(94493,1),(94502,1),(94508,1),(94515,1),(94522,1),(94524,1),(94527,1),(94532,1),(94537,1),(94538,1),(94539,1),(94544,1),(94556,1),(94566,1),(94571,1),(94572,1),(94575,1),(94580,1),(94584,1),(94586,1),(94587,1),(94592,1),(94626,1),(94628,1),(94631,1),(94637,1),(94643,1),(94645,1),(94654,1),(94670,1),(94682,1),(94702,1),(94718,1),(94724,1),(94728,1),(94743,1),(94744,1),(94751,1),(94755,1),(94767,1),(94775,1),(94781,1),(94790,1),(94795,1),(94800,1),(94821,1),(94823,1),(94844,1),(94847,1),(94848,1),(94852,1),(94859,1),(94861,1),(94864,1),(94865,1),(94877,1),(94882,1),(94885,1),(94890,1),(94892,1),(94894,1),(94921,1),(94925,1),(94933,1),(94936,1),(94944,1),(94950,1),(94957,1),(94966,1),(94967,1),(94971,1),(94974,1),(94975,1),(94979,1),(94986,1),(94989,1),(94998,1),(95000,1),(95011,1),(95013,1),(95020,1),(95026,1),(95034,1),(95036,1),(95052,1),(95059,1),(95071,1),(95072,1),(95073,1),(95074,1),(95077,1),(95085,1),(95095,1),(95099,1),(95103,1),(95108,1),(95109,1),(95110,1),(95127,1),(95130,1),(95131,1),(95142,1),(95149,1),(95154,1),(95165,1),(95167,1),(95169,1),(95170,1),(95174,1),(95180,1),(95193,1),(95194,1),(95197,1),(95217,1),(95225,1),(95233,1),(95235,1),(95236,1),(95243,1),(95246,1),(95257,1),(95259,1),(95260,1),(95264,1),(95265,1),(95267,1),(95271,1),(95275,1),(95301,1),(95307,1),(95308,1),(95313,1),(95318,1),(95338,1),(95347,1),(95351,1),(95352,1),(95360,1),(95365,1),(95367,1),(95373,1),(95383,1),(95385,1),(95397,1),(95402,1),(95404,1),(95409,1),(95422,1),(95427,1),(95438,1),(95442,1),(95446,1),(95461,1),(95462,1),(95488,1),(95492,1),(95495,1),(95503,1),(95504,1),(95506,1),(95516,1),(95518,1),(95520,1),(95525,1),(95528,1),(95535,1),(95537,1),(95548,1),(95551,1),(95552,1),(95555,1),(95560,1),(95564,1),(95568,1),(95580,1),(95582,1),(95593,1),(95596,1),(95606,1),(95608,1),(95614,1),(95621,1),(95622,1),(95629,1),(95653,1),(95662,1),(95675,1),(95693,1),(95699,1),(95705,1),(95707,1),(95710,1),(95719,1),(95726,1),(95732,1),(95738,1),(95750,1),(95761,1),(95766,1),(95789,1),(95796,1),(95797,1),(95800,1),(95815,1),(95825,1),(95828,1),(95830,1),(95846,1),(95852,1),(95854,1),(95858,1),(95864,1),(95872,1),(95876,1),(95877,1),(95891,1),(95892,1),(95895,1),(95896,1),(95900,1),(95902,1),(95909,1),(95911,1),(95915,1),(95916,1),(95924,1),(95926,1),(95928,1),(95941,1),(95943,1),(95944,1),(95945,1),(95956,1),(95957,1),(95958,1),(95968,1),(95974,1),(95984,1),(95990,1),(95992,1),(96001,1),(96003,1),(96010,1),(96014,1),(96016,1),(96017,1),(96028,1),(96040,1),(96041,1),(96052,1),(96059,1),(96060,1),(96063,1),(96064,1),(96082,1),(96083,1),(96092,1),(96104,1),(96107,1),(96113,1),(96117,1),(96122,1),(96131,1),(96135,1),(96148,1),(96149,1),(96152,1),(96154,1),(96166,1),(96174,1),(96184,1),(96190,1),(96198,1),(96205,1),(96209,1),(96215,1),(96216,1),(96217,1),(96227,1),(96228,1),(96232,1),(96248,1),(96251,1),(96257,1),(96268,1),(96272,1),(96278,1),(96291,1),(96293,1),(96297,1),(96301,1),(96304,1),(96306,1),(96321,1),(96326,1),(96329,1),(96333,1),(96348,1),(96349,1),(96350,1),(96359,1),(96361,1),(96363,1),(96371,1),(96373,1),(96379,1),(96386,1),(96389,1),(96406,1),(96409,1),(96415,1),(96417,1),(96418,1),(96419,1),(96423,1),(96442,1),(96458,1),(96470,1),(96475,1),(96476,1),(96498,1),(96508,1),(96509,1),(96515,1),(96522,1),(96528,1),(96529,1),(96534,1),(96539,1),(96540,1),(96541,1),(96549,1),(96550,1),(96554,1),(96558,1),(96559,1),(96569,1),(96575,1),(96576,1),(96585,1),(96586,1),(96587,1),(96593,1),(96598,1),(96599,1),(96600,1),(96607,1),(96608,1),(96611,1),(96615,1),(96616,1),(96623,1),(96624,1),(96625,1),(96631,1),(96660,1),(96662,1),(96672,1),(96674,1),(96678,1),(96681,1),(96682,1),(96706,1),(96716,1),(96724,1),(96728,1),(96733,1),(96736,1),(96744,1),(96754,1),(96760,1),(96768,1),(96771,1),(96780,1),(96787,1),(96791,1),(96793,1),(96800,1),(96805,1),(96806,1),(96815,1),(96820,1),(96821,1),(96829,1),(96833,1),(96837,1),(96840,1),(96843,1),(96871,1),(96876,1),(96878,1),(96882,1),(96885,1),(96893,1),(96894,1),(96901,1),(96902,1),(96926,1),(96936,1),(96939,1),(96946,1),(96948,1),(96950,1),(96952,1),(96958,1),(96985,1),(96990,1),(96993,1),(96996,1),(96997,1),(97009,1),(97017,1),(97029,1),(97030,1),(97034,1),(97040,1),(97043,1),(97050,1),(97063,1),(97069,1),(97079,1),(97082,1),(97090,1),(97097,1),(97102,1),(97103,1),(97121,1),(97127,1),(97130,1),(97137,1),(97139,1),(97141,1),(97149,1),(97154,1),(97157,1),(97158,1),(97173,1),(97187,1),(97188,1),(97191,1),(97194,1),(97201,1),(97208,1),(97212,1),(97218,1),(97225,1),(97227,1),(97230,1),(97250,1),(97252,1),(97253,1),(97262,1),(97270,1),(97272,1),(97275,1),(97282,1),(97292,1),(97310,1),(97313,1),(97323,1),(97328,1),(97339,1),(97340,1),(97360,1),(97370,1),(97373,1),(97376,1),(97379,1),(97387,1),(97405,1),(97423,1),(97425,1),(97432,1),(97442,1),(97444,1),(97447,1),(97458,1),(97462,1),(97465,1),(97470,1),(97473,1),(97480,1),(97493,1),(97496,1),(97504,1),(97506,1),(97513,1),(97514,1),(97524,1),(97531,1),(97538,1),(97551,1),(97553,1),(97556,1),(97560,1),(97565,1),(97574,1),(97583,1),(97595,1),(97596,1),(97602,1),(97606,1),(97616,1),(97619,1),(97622,1),(97627,1),(97656,1),(97659,1),(97663,1),(97665,1),(97666,1),(97672,1),(97684,1),(97693,1),(97696,1),(97700,1),(97705,1),(97708,1),(97723,1),(97739,1),(97749,1),(97750,1),(97752,1),(97755,1),(97762,1),(97769,1),(97773,1),(97775,1),(97776,1),(97780,1),(97781,1),(97789,1),(97790,1),(97820,1),(97825,1),(97827,1),(97839,1),(97847,1),(97849,1),(97851,1),(97858,1),(97873,1),(97875,1),(97885,1),(97888,1),(97892,1),(97893,1),(97898,1),(97900,1),(97908,1),(97921,1),(97922,1),(97923,1),(97928,1),(97933,1),(97936,1),(97949,1),(97951,1),(97961,1),(97983,1),(97984,1),(97987,1),(97995,1),(98000,1),(98007,1),(98015,1),(98018,1),(98041,1),(98044,1),(98045,1),(98047,1),(98051,1),(98052,1),(98053,1),(98054,1),(98081,1),(98089,1),(98097,1),(98099,1),(98107,1),(98112,1),(98115,1),(98133,1),(98134,1),(98143,1),(98146,1),(98150,1),(98156,1),(98158,1),(98161,1),(98164,1),(98177,1),(98180,1),(98181,1),(98182,1),(98183,1),(98188,1),(98195,1),(98200,1),(98206,1),(98210,1),(98213,1),(98225,1),(98229,1),(98237,1),(98239,1),(98244,1),(98246,1),(98247,1),(98250,1),(98251,1),(98257,1),(98261,1),(98266,1),(98269,1),(98275,1),(98288,1),(98298,1),(98307,1),(98309,1),(98320,1),(98325,1),(98336,1),(98352,1),(98354,1),(98355,1),(98356,1),(98360,1),(98369,1),(98373,1),(98377,1),(98381,1),(98383,1),(98400,1),(98416,1),(98418,1),(98421,1),(98434,1),(98441,1),(98444,1),(98454,1),(98459,1),(98465,1),(98468,1),(98477,1),(98503,1),(98505,1),(98513,1),(98516,1),(98526,1),(98527,1),(98529,1),(98539,1),(98543,1),(98545,1),(98558,1),(98560,1),(98565,1),(98567,1),(98572,1),(98573,1),(98578,1),(98581,1),(98583,1),(98588,1),(98595,1),(98612,1),(98627,1),(98641,1),(98648,1),(98654,1),(98657,1),(98665,1),(98670,1),(98676,1),(98686,1),(98693,1),(98702,1),(98707,1),(98714,1),(98715,1),(98719,1),(98725,1),(98737,1),(98739,1),(98741,1),(98743,1),(98750,1),(98753,1),(98760,1),(98764,1),(98769,1),(98777,1),(98808,1),(98811,1),(98827,1),(98832,1),(98833,1),(98837,1),(98847,1),(98859,1),(98860,1),(98861,1),(98862,1),(98863,1),(98871,1),(98874,1),(98875,1),(98882,1),(98884,1),(98885,1),(98890,1),(98900,1),(98913,1),(98918,1),(98920,1),(98923,1),(98931,1),(98935,1),(98947,1),(98956,1),(98959,1),(98960,1),(98961,1),(98962,1),(98963,1),(98977,1),(98983,1),(98989,1),(11,2),(15,2),(21,2),(31,2),(37,2),(46,2),(63,2),(67,2),(75,2),(77,2),(84,2),(99,2),(105,2),(115,2),(121,2),(125,2),(148,2),(149,2),(152,2),(165,2),(166,2),(177,2),(183,2),(186,2),(194,2),(197,2),(214,2),(224,2),(228,2),(239,2),(255,2),(259,2),(262,2),(264,2),(272,2),(273,2),(274,2),(276,2),(289,2),(297,2),(298,2),(299,2),(303,2),(304,2),(309,2),(313,2),(317,2),(330,2),(333,2),(352,2),(353,2),(357,2),(363,2),(372,2),(373,2),(382,2),(386,2),(392,2),(394,2),(396,2),(405,2),(416,2),(418,2),(421,2),(428,2),(429,2),(430,2),(434,2),(440,2),(447,2),(448,2),(450,2),(458,2),(477,2),(480,2),(490,2),(491,2),(502,2),(504,2),(508,2),(526,2),(541,2),(553,2),(555,2),(560,2),(569,2),(570,2),(572,2),(586,2),(596,2),(611,2),(613,2),(620,2),(625,2),(631,2),(634,2),(640,2),(653,2),(668,2),(673,2),(684,2),(686,2),(699,2),(703,2),(709,2),(712,2),(718,2),(719,2),(722,2),(724,2),(731,2),(733,2),(738,2),(743,2),(756,2),(767,2),(770,2),(775,2),(778,2),(779,2),(786,2),(792,2),(796,2),(804,2),(813,2),(818,2),(819,2),(824,2),(826,2),(830,2),(835,2),(836,2),(843,2),(848,2),(850,2),(853,2),(854,2),(869,2),(871,2),(875,2),(878,2),(891,2),(894,2),(895,2),(900,2),(901,2),(914,2),(915,2),(918,2),(921,2),(922,2),(923,2),(936,2),(938,2),(940,2),(941,2),(943,2),(944,2),(965,2),(966,2),(979,2),(987,2),(990,2),(1004,2),(1006,2),(1007,2),(1008,2),(1016,2),(1022,2),(1030,2),(1033,2),(1037,2),(1038,2),(1044,2),(1063,2),(1087,2),(1092,2),(1097,2),(1109,2),(1121,2),(1140,2),(1152,2),(1164,2),(1175,2),(1181,2),(1182,2),(1196,2),(1202,2),(1204,2),(1212,2),(1214,2),(1233,2),(1239,2),(1240,2),(1241,2),(1246,2),(1253,2),(1262,2),(1275,2),(1281,2),(1283,2),(1295,2),(1296,2),(1307,2),(1308,2),(1317,2),(1320,2),(1327,2),(1334,2),(1340,2),(1356,2),(1360,2),(1362,2),(1367,2),(1371,2),(1372,2),(1400,2),(1401,2),(1408,2),(1415,2),(1418,2),(1421,2),(1427,2),(1428,2),(1433,2),(1437,2),(1440,2),(1442,2),(1446,2),(1459,2),(1460,2),(1461,2),(1463,2),(1465,2),(1471,2),(1481,2),(1485,2),(1521,2),(1526,2),(1548,2),(1549,2),(1556,2),(1558,2),(1559,2),(1561,2),(1566,2),(1567,2),(1570,2),(1587,2),(1588,2),(1606,2),(1610,2),(1611,2),(1619,2),(1628,2),(1630,2),(1634,2),(1636,2),(1639,2),(1643,2),(1653,2),(1664,2),(1675,2),(1679,2),(1695,2),(1698,2),(1704,2),(1716,2),(1724,2),(1740,2),(1751,2),(1762,2),(1763,2),(1785,2),(1792,2),(1801,2),(1809,2),(1813,2),(1820,2),(1821,2),(1823,2),(1831,2),(1834,2),(1837,2),(1847,2),(1849,2),(1858,2),(1899,2),(1909,2),(1919,2),(1923,2),(1929,2),(1944,2),(1949,2),(1964,2),(1965,2),(1986,2),(2006,2),(2013,2),(2023,2),(2031,2),(2035,2),(2044,2),(2045,2),(2048,2),(2049,2),(2059,2),(2060,2),(2062,2),(2069,2),(2077,2),(2079,2),(2086,2),(2096,2),(2097,2),(2098,2),(2104,2),(2108,2),(2113,2),(2115,2),(2116,2),(2117,2),(2122,2),(2138,2),(2156,2),(2160,2),(2166,2),(2182,2),(2183,2),(2187,2),(2193,2),(2208,2),(2210,2),(2215,2),(2216,2),(2217,2),(2228,2),(2229,2),(2230,2),(2236,2),(2243,2),(2252,2),(2253,2),(2256,2),(2263,2),(2266,2),(2270,2),(2271,2),(2283,2),(2285,2),(2288,2),(2295,2),(2296,2),(2299,2),(2301,2),(2314,2),(2320,2),(2324,2),(2326,2),(2327,2),(2328,2),(2332,2),(2342,2),(2356,2),(2360,2),(2367,2),(2371,2),(2376,2),(2379,2),(2381,2),(2390,2),(2395,2),(2407,2),(2408,2),(2410,2),(2415,2),(2419,2),(2424,2),(2430,2),(2431,2),(2438,2),(2439,2),(2447,2),(2449,2),(2467,2),(2472,2),(2484,2),(2486,2),(2496,2),(2497,2),(2506,2),(2508,2),(2509,2),(2512,2),(2516,2),(2518,2),(2532,2),(2535,2),(2551,2),(2555,2),(2561,2),(2568,2),(2573,2),(2578,2),(2579,2),(2580,2),(2585,2),(2587,2),(2600,2),(2608,2),(2615,2),(2619,2),(2628,2),(2635,2),(2638,2),(2649,2),(2656,2),(2660,2),(2667,2),(2675,2),(2681,2),(2684,2),(2687,2),(2696,2),(2699,2),(2720,2),(2721,2),(2722,2),(2739,2),(2750,2),(2758,2),(2759,2),(2761,2),(2794,2),(2799,2),(2806,2),(2808,2),(2820,2),(2821,2),(2830,2),(2840,2),(2842,2),(2845,2),(2852,2),(2859,2),(2861,2),(2862,2),(2868,2),(2882,2),(2885,2),(2889,2),(2891,2),(2934,2),(2937,2),(2942,2),(2950,2),(2963,2),(2972,2),(2975,2),(2977,2),(2994,2),(2999,2),(3009,2),(3013,2),(3014,2),(3015,2),(3018,2),(3019,2),(3023,2),(3029,2),(3035,2),(3043,2),(3047,2),(3049,2),(3055,2),(3060,2),(3062,2),(3064,2),(3080,2),(3084,2),(3090,2),(3091,2),(3116,2),(3124,2),(3136,2),(3137,2),(3139,2),(3143,2),(3154,2),(3174,2),(3180,2),(3182,2),(3184,2),(3210,2),(3222,2),(3225,2),(3226,2),(3228,2),(3261,2),(3263,2),(3272,2),(3280,2),(3281,2),(3284,2),(3293,2),(3300,2),(3301,2),(3302,2),(3304,2),(3312,2),(3320,2),(3322,2),(3325,2),(3331,2),(3340,2),(3344,2),(3352,2),(3355,2),(3359,2),(3370,2),(3378,2),(3379,2),(3386,2),(3392,2),(3396,2),(3401,2),(3406,2),(3435,2),(3448,2),(3460,2),(3463,2),(3466,2),(3474,2),(3480,2),(3491,2),(3494,2),(3495,2),(3498,2),(3504,2),(3522,2),(3531,2),(3533,2),(3540,2),(3548,2),(3552,2),(3554,2),(3556,2),(3565,2),(3585,2),(3588,2),(3593,2),(3598,2),(3602,2),(3606,2),(3619,2),(3629,2),(3634,2),(3642,2),(3649,2),(3654,2),(3658,2),(3661,2),(3662,2),(3663,2),(3674,2),(3678,2),(3697,2),(3702,2),(3712,2),(3722,2),(3727,2),(3729,2),(3732,2),(3738,2),(3745,2),(3747,2),(3758,2),(3772,2),(3776,2),(3783,2),(3788,2),(3791,2),(3798,2),(3804,2),(3806,2),(3813,2),(3818,2),(3825,2),(3829,2),(3835,2),(3850,2),(3853,2),(3871,2),(3874,2),(3875,2),(3885,2),(3888,2),(3893,2),(3896,2),(3900,2),(3904,2),(3909,2),(3910,2),(3911,2),(3916,2),(3917,2),(3919,2),(3922,2),(3931,2),(3934,2),(3936,2),(3946,2),(3975,2),(3980,2),(3989,2),(3990,2),(3991,2),(3995,2),(3996,2),(3998,2),(4018,2),(4021,2),(4024,2),(4032,2),(4035,2),(4038,2),(4040,2),(4044,2),(4047,2),(4053,2),(4055,2),(4056,2),(4070,2),(4072,2),(4075,2),(4079,2),(4081,2),(4084,2),(4093,2),(4107,2),(4109,2),(4110,2),(4112,2),(4122,2),(4125,2),(4127,2),(4143,2),(4146,2),(4186,2),(4189,2),(4204,2),(4207,2),(4229,2),(4233,2),(4238,2),(4239,2),(4240,2),(4242,2),(4248,2),(4257,2),(4259,2),(4261,2),(4263,2),(4267,2),(4268,2),(4276,2),(4285,2),(4286,2),(4290,2),(4294,2),(4295,2),(4298,2),(4303,2),(4309,2),(4329,2),(4332,2),(4334,2),(4337,2),(4338,2),(4348,2),(4354,2),(4360,2),(4365,2),(4366,2),(4370,2),(4373,2),(4386,2),(4393,2),(4400,2),(4401,2),(4419,2),(4420,2),(4421,2),(4431,2),(4435,2),(4438,2),(4439,2),(4443,2),(4447,2),(4450,2),(4457,2),(4458,2),(4460,2),(4461,2),(4465,2),(4478,2),(4480,2),(4483,2),(4494,2),(4499,2),(4500,2),(4509,2),(4529,2),(4540,2),(4551,2),(4558,2),(4570,2),(4585,2),(4606,2),(4607,2),(4609,2),(4618,2),(4621,2),(4625,2),(4626,2),(4628,2),(4636,2),(4638,2),(4646,2),(4648,2),(4649,2),(4650,2),(4653,2),(4654,2),(4658,2),(4664,2),(4669,2),(4686,2),(4691,2),(4702,2),(4706,2),(4708,2),(4744,2),(4753,2),(4762,2),(4766,2),(4771,2),(4773,2),(4775,2),(4785,2),(4789,2),(4790,2),(4795,2),(4798,2),(4800,2),(4803,2),(4807,2),(4813,2),(4819,2),(4821,2),(4828,2),(4835,2),(4836,2),(4841,2),(4848,2),(4854,2),(4857,2),(4863,2),(4864,2),(4872,2),(4873,2),(4879,2),(4886,2),(4897,2),(4898,2),(4929,2),(4930,2),(4937,2),(4938,2),(4942,2),(4950,2),(4952,2),(4955,2),(4956,2),(4967,2),(4983,2),(4992,2),(4993,2),(5007,2),(5008,2),(5009,2),(5011,2),(5014,2),(5017,2),(5018,2),(5028,2),(5035,2),(5036,2),(5045,2),(5049,2),(5050,2),(5052,2),(5058,2),(5067,2),(5073,2),(5080,2),(5088,2),(5093,2),(5095,2),(5096,2),(5103,2),(5104,2),(5105,2),(5107,2),(5111,2),(5127,2),(5138,2),(5139,2),(5140,2),(5144,2),(5151,2),(5153,2),(5160,2),(5161,2),(5167,2),(5175,2),(5187,2),(5191,2),(5199,2),(5220,2),(5221,2),(5224,2),(5234,2),(5250,2),(5257,2),(5259,2),(5260,2),(5265,2),(5278,2),(5287,2),(5289,2),(5293,2),(5313,2),(5332,2),(5334,2),(5336,2),(5339,2),(5348,2),(5356,2),(5359,2),(5368,2),(5376,2),(5378,2),(5393,2),(5394,2),(5403,2),(5406,2),(5411,2),(5433,2),(5447,2),(5448,2),(5449,2),(5460,2),(5478,2),(5484,2),(5491,2),(5497,2),(5499,2),(5502,2),(5503,2),(5504,2),(5512,2),(5519,2),(5521,2),(5545,2),(5548,2),(5554,2),(5556,2),(5572,2),(5573,2),(5590,2),(5591,2),(5593,2),(5602,2),(5604,2),(5605,2),(5610,2),(5612,2),(5625,2),(5636,2),(5643,2),(5647,2),(5658,2),(5660,2),(5670,2),(5672,2),(5675,2),(5676,2),(5688,2),(5690,2),(5693,2),(5705,2),(5706,2),(5708,2),(5711,2),(5726,2),(5734,2),(5748,2),(5752,2),(5756,2),(5757,2),(5762,2),(5768,2),(5782,2),(5788,2),(5797,2),(5801,2),(5802,2),(5804,2),(5815,2),(5816,2),(5819,2),(5822,2),(5828,2),(5834,2),(5837,2),(5839,2),(5841,2),(5860,2),(5877,2),(5894,2),(5903,2),(5910,2),(5927,2),(5931,2),(5934,2),(5936,2),(5940,2),(5941,2),(5956,2),(5957,2),(5961,2),(5969,2),(5981,2),(5984,2),(6003,2),(6005,2),(6006,2),(6008,2),(6011,2),(6018,2),(6020,2),(6022,2),(6027,2),(6035,2),(6039,2),(6045,2),(6054,2),(6058,2),(6060,2),(6063,2),(6079,2),(6085,2),(6089,2),(6091,2),(6096,2),(6098,2),(6100,2),(6125,2),(6139,2),(6145,2),(6147,2),(6154,2),(6158,2),(6161,2),(6163,2),(6168,2),(6174,2),(6190,2),(6192,2),(6194,2),(6195,2),(6197,2),(6198,2),(6203,2),(6208,2),(6212,2),(6214,2),(6223,2),(6224,2),(6230,2),(6237,2),(6243,2),(6263,2),(6266,2),(6276,2),(6290,2),(6291,2),(6292,2),(6298,2),(6300,2),(6301,2),(6304,2),(6308,2),(6309,2),(6315,2),(6322,2),(6323,2),(6332,2),(6334,2),(6338,2),(6360,2),(6362,2),(6370,2),(6378,2),(6382,2),(6383,2),(6384,2),(6389,2),(6394,2),(6396,2),(6397,2),(6403,2),(6406,2),(6408,2),(6409,2),(6414,2),(6418,2),(6419,2),(6434,2),(6439,2),(6440,2),(6442,2),(6443,2),(6449,2),(6454,2),(6457,2),(6462,2),(6469,2),(6471,2),(6481,2),(6484,2),(6486,2),(6502,2),(6507,2),(6509,2),(6536,2),(6549,2),(6550,2),(6553,2),(6556,2),(6563,2),(6575,2),(6579,2),(6580,2),(6582,2),(6585,2),(6589,2),(6598,2),(6599,2),(6613,2),(6615,2),(6620,2),(6625,2),(6627,2),(6628,2),(6629,2),(6634,2),(6640,2),(6650,2),(6656,2),(6659,2),(6661,2),(6666,2),(6678,2),(6681,2),(6688,2),(6700,2),(6705,2),(6721,2),(6732,2),(6737,2),(6754,2),(6771,2),(6776,2),(6778,2),(6782,2),(6785,2),(6790,2),(6793,2),(6809,2),(6812,2),(6834,2),(6836,2),(6841,2),(6847,2),(6852,2),(6853,2),(6854,2),(6855,2),(6857,2),(6863,2),(6871,2),(6878,2),(6886,2),(6895,2),(6903,2),(6908,2),(6911,2),(6925,2),(6933,2),(6937,2),(6938,2),(6944,2),(6949,2),(6951,2),(6955,2),(6956,2),(6966,2),(6967,2),(6976,2),(6980,2),(6984,2),(6987,2),(7001,2),(7002,2),(7003,2),(7005,2),(7008,2),(7025,2),(7032,2),(7039,2),(7048,2),(7054,2),(7056,2),(7059,2),(7061,2),(7066,2),(7069,2),(7070,2),(7072,2),(7073,2),(7088,2),(7091,2),(7092,2),(7094,2),(7095,2),(7102,2),(7107,2),(7117,2),(7121,2),(7124,2),(7128,2),(7137,2),(7144,2),(7145,2),(7150,2),(7152,2),(7170,2),(7179,2),(7193,2),(7194,2),(7196,2),(7207,2),(7210,2),(7211,2),(7212,2),(7215,2),(7219,2),(7232,2),(7235,2),(7238,2),(7242,2),(7248,2),(7277,2),(7281,2),(7283,2),(7291,2),(7293,2),(7294,2),(7295,2),(7296,2),(7306,2),(7308,2),(7314,2),(7317,2),(7322,2),(7324,2),(7327,2),(7342,2),(7343,2),(7347,2),(7361,2),(7366,2),(7370,2),(7380,2),(7394,2),(7396,2),(7406,2),(7407,2),(7409,2),(7413,2),(7422,2),(7432,2),(7436,2),(7443,2),(7444,2),(7446,2),(7449,2),(7470,2),(7472,2),(7486,2),(7496,2),(7499,2),(7501,2),(7506,2),(7520,2),(7527,2),(7542,2),(7547,2),(7548,2),(7550,2),(7556,2),(7572,2),(7582,2),(7586,2),(7588,2),(7593,2),(7597,2),(7598,2),(7600,2),(7603,2),(7605,2),(7609,2),(7611,2),(7612,2),(7620,2),(7632,2),(7637,2),(7646,2),(7678,2),(7681,2),(7688,2),(7689,2),(7690,2),(7708,2),(7714,2),(7716,2),(7717,2),(7722,2),(7724,2),(7730,2),(7740,2),(7748,2),(7760,2),(7762,2),(7763,2),(7767,2),(7779,2),(7785,2),(7789,2),(7797,2),(7803,2),(7807,2),(7813,2),(7827,2),(7841,2),(7849,2),(7862,2),(7873,2),(7875,2),(7878,2),(7885,2),(7888,2),(7889,2),(7900,2),(7906,2),(7912,2),(7913,2),(7914,2),(7926,2),(7938,2),(7953,2),(7956,2),(7965,2),(7967,2),(7969,2),(7971,2),(7977,2),(7980,2),(7984,2),(7985,2),(7991,2),(7993,2),(8004,2),(8008,2),(8016,2),(8017,2),(8024,2),(8033,2),(8035,2),(8036,2),(8046,2),(8051,2),(8056,2),(8057,2),(8058,2),(8059,2),(8064,2),(8068,2),(8070,2),(8071,2),(8072,2),(8077,2),(8080,2),(8081,2),(8083,2),(8086,2),(8089,2),(8099,2),(8107,2),(8116,2),(8123,2),(8125,2),(8141,2),(8153,2),(8165,2),(8169,2),(8183,2),(8185,2),(8186,2),(8195,2),(8203,2),(8210,2),(8217,2),(8220,2),(8221,2),(8223,2),(8226,2),(8234,2),(8235,2),(8246,2),(8251,2),(8254,2),(8257,2),(8269,2),(8271,2),(8280,2),(8284,2),(8318,2),(8324,2),(8329,2),(8345,2),(8346,2),(8353,2),(8359,2),(8366,2),(8371,2),(8377,2),(8382,2),(8383,2),(8385,2),(8398,2),(8399,2),(8402,2),(8410,2),(8442,2),(8443,2),(8446,2),(8452,2),(8453,2),(8473,2),(8476,2),(8478,2),(8479,2),(8480,2),(8488,2),(8492,2),(8496,2),(8498,2),(8502,2),(8503,2),(8513,2),(8553,2),(8557,2),(8560,2),(8564,2),(8576,2),(8581,2),(8602,2),(8605,2),(8607,2),(8608,2),(8615,2),(8617,2),(8622,2),(8630,2),(8641,2),(8643,2),(8647,2),(8649,2),(8655,2),(8674,2),(8680,2),(8695,2),(8698,2),(8704,2),(8716,2),(8740,2),(8746,2),(8748,2),(8754,2),(8772,2),(8774,2),(8790,2),(8803,2),(8817,2),(8820,2),(8821,2),(8831,2),(8840,2),(8858,2),(8866,2),(8867,2),(8872,2),(8888,2),(8895,2),(8899,2),(8904,2),(8907,2),(8913,2),(8917,2),(8925,2),(8936,2),(8940,2),(8944,2),(8946,2),(8949,2),(8954,2),(8962,2),(8967,2),(8971,2),(8981,2),(8984,2),(8993,2),(8994,2),(9000,2),(9001,2),(9005,2),(9007,2),(9008,2),(9018,2),(9025,2),(9029,2),(9046,2),(9047,2),(9051,2),(9053,2),(9072,2),(9074,2),(9076,2),(9083,2),(9091,2),(9098,2),(9099,2),(9104,2),(9119,2),(9120,2),(9122,2),(9124,2),(9125,2),(9132,2),(9133,2),(9146,2),(9149,2),(9151,2),(9153,2),(9156,2),(9157,2),(9158,2),(9161,2),(9166,2),(9172,2),(9176,2),(9179,2),(9190,2),(9197,2),(9210,2),(9216,2),(9217,2),(9218,2),(9228,2),(9230,2),(9231,2),(9235,2),(9236,2),(9238,2),(9242,2),(9245,2),(9254,2),(9256,2),(9260,2),(9261,2),(9266,2),(9269,2),(9274,2),(9282,2),(9287,2),(9295,2),(9300,2),(9308,2),(9318,2),(9321,2),(9325,2),(9328,2),(9333,2),(9335,2),(9343,2),(9346,2),(9347,2),(9354,2),(9365,2),(9368,2),(9369,2),(9371,2),(9384,2),(9390,2),(9396,2),(9398,2),(9401,2),(9402,2),(9406,2),(9409,2),(9411,2),(9414,2),(9421,2),(9428,2),(9430,2),(9432,2),(9437,2),(9442,2),(9463,2),(9470,2),(9475,2),(9477,2),(9483,2),(9492,2),(9495,2),(9497,2),(9499,2),(9506,2),(9523,2),(9531,2),(9536,2),(9552,2),(9553,2),(9558,2),(9560,2),(9561,2),(9566,2),(9570,2),(9572,2),(9574,2),(9581,2),(9586,2),(9588,2),(9596,2),(9598,2),(9600,2),(9602,2),(9611,2),(9613,2),(9619,2),(9620,2),(9622,2),(9628,2),(9639,2),(9648,2),(9654,2),(9656,2),(9661,2),(9668,2),(9669,2),(9670,2),(9671,2),(9677,2),(9681,2),(9684,2),(9690,2),(9705,2),(9717,2),(9729,2),(9732,2),(9733,2),(9737,2),(9740,2),(9744,2),(9749,2),(9750,2),(9751,2),(9761,2),(9763,2),(9765,2),(9767,2),(9773,2),(9776,2),(9784,2),(9794,2),(9798,2),(9802,2),(9806,2),(9817,2),(9819,2),(9822,2),(9823,2),(9825,2),(9829,2),(9843,2),(9847,2),(9853,2),(9855,2),(9863,2),(9865,2),(9866,2),(9869,2),(9872,2),(9875,2),(9877,2),(9881,2),(9891,2),(9902,2),(9916,2),(9920,2),(9922,2),(9937,2),(9939,2),(9942,2),(9945,2),(9952,2),(9960,2),(9965,2),(9970,2),(9980,2),(9983,2),(9986,2),(9993,2),(10001,2),(10002,2),(10004,2),(10016,2),(10017,2),(10022,2),(10026,2),(10033,2),(10036,2),(10041,2),(10047,2),(10056,2),(10062,2),(10067,2),(10094,2),(10135,2),(10139,2),(10145,2),(10150,2),(10153,2),(10165,2),(10166,2),(10172,2),(10175,2),(10177,2),(10182,2),(10184,2),(10193,2),(10194,2),(10196,2),(10210,2),(10219,2),(10226,2),(10232,2),(10239,2),(10245,2),(10255,2),(10258,2),(10261,2),(10262,2),(10264,2),(10268,2),(10270,2),(10272,2),(10273,2),(10279,2),(10288,2),(10302,2),(10303,2),(10313,2),(10325,2),(10326,2),(10330,2),(10346,2),(10359,2),(10364,2),(10366,2),(10373,2),(10379,2),(10383,2),(10388,2),(10395,2),(10400,2),(10403,2),(10412,2),(10417,2),(10419,2),(10431,2),(10438,2),(10439,2),(10446,2),(10447,2),(10448,2),(10451,2),(10458,2),(10473,2),(10475,2),(10481,2),(10483,2),(10487,2),(10507,2),(10510,2),(10520,2),(10522,2),(10523,2),(10525,2),(10527,2),(10545,2),(10549,2),(10551,2),(10563,2),(10570,2),(10574,2),(10579,2),(10584,2),(10592,2),(10597,2),(10602,2),(10606,2),(10610,2),(10613,2),(10616,2),(10622,2),(10623,2),(10624,2),(10629,2),(10632,2),(10634,2),(10637,2),(10639,2),(10641,2),(10642,2),(10645,2),(10647,2),(10648,2),(10649,2),(10674,2),(10688,2),(10700,2),(10705,2),(10706,2),(10708,2),(10712,2),(10724,2),(10743,2),(10745,2),(10750,2),(10751,2),(10756,2),(10761,2),(10763,2),(10774,2),(10777,2),(10780,2),(10785,2),(10790,2),(10793,2),(10800,2),(10821,2),(10826,2),(10828,2),(10830,2),(10833,2),(10841,2),(10844,2),(10846,2),(10851,2),(10857,2),(10859,2),(10867,2),(10888,2),(10890,2),(10899,2),(10902,2),(10904,2),(10907,2),(10912,2),(10919,2),(10923,2),(10924,2),(10927,2),(10936,2),(10937,2),(10943,2),(10946,2),(10952,2),(10959,2),(10961,2),(10964,2),(10968,2),(10969,2),(10974,2),(10975,2),(10985,2),(10989,2),(10993,2),(10995,2),(10996,2),(10997,2),(11006,2),(11008,2),(11018,2),(11027,2),(11037,2),(11039,2),(11040,2),(11041,2),(11043,2),(11049,2),(11086,2),(11087,2),(11089,2),(11102,2),(11106,2),(11110,2),(11111,2),(11113,2),(11118,2),(11122,2),(11128,2),(11130,2),(11132,2),(11135,2),(11150,2),(11151,2),(11157,2),(11161,2),(11164,2),(11171,2),(11175,2),(11184,2),(11188,2),(11189,2),(11202,2),(11205,2),(11218,2),(11220,2),(11244,2),(11252,2),(11254,2),(11264,2),(11273,2),(11276,2),(11284,2),(11289,2),(11291,2),(11292,2),(11323,2),(11326,2),(11329,2),(11345,2),(11356,2),(11357,2),(11369,2),(11370,2),(11372,2),(11388,2),(11403,2),(11409,2),(11411,2),(11415,2),(11416,2),(11419,2),(11420,2),(11427,2),(11431,2),(11434,2),(11438,2),(11442,2),(11443,2),(11445,2),(11447,2),(11448,2),(11449,2),(11465,2),(11469,2),(11470,2),(11477,2),(11481,2),(11498,2),(11500,2),(11502,2),(11503,2),(11504,2),(11521,2),(11522,2),(11525,2),(11526,2),(11533,2),(11535,2),(11546,2),(11551,2),(11556,2),(11562,2),(11567,2),(11568,2),(11572,2),(11574,2),(11605,2),(11609,2),(11621,2),(11625,2),(11626,2),(11630,2),(11635,2),(11640,2),(11643,2),(11647,2),(11649,2),(11660,2),(11664,2),(11670,2),(11677,2),(11701,2),(11711,2),(11713,2),(11724,2),(11726,2),(11734,2),(11735,2),(11747,2),(11749,2),(11753,2),(11760,2),(11762,2),(11766,2),(11783,2),(11787,2),(11794,2),(11797,2),(11798,2),(11799,2),(11800,2),(11807,2),(11809,2),(11810,2),(11815,2),(11821,2),(11822,2),(11824,2),(11828,2),(11835,2),(11849,2),(11850,2),(11857,2),(11859,2),(11866,2),(11867,2),(11869,2),(11870,2),(11876,2),(11879,2),(11901,2),(11904,2),(11905,2),(11909,2),(11946,2),(11949,2),(11964,2),(11967,2),(11968,2),(11972,2),(11978,2),(11984,2),(11987,2),(11998,2),(12005,2),(12011,2),(12012,2),(12017,2),(12021,2),(12022,2),(12026,2),(12041,2),(12046,2),(12058,2),(12059,2),(12063,2),(12067,2),(12078,2),(12084,2),(12088,2),(12091,2),(12103,2),(12104,2),(12105,2),(12113,2),(12124,2),(12127,2),(12130,2),(12139,2),(12150,2),(12154,2),(12162,2),(12169,2),(12174,2),(12179,2),(12194,2),(12201,2),(12217,2),(12225,2),(12230,2),(12231,2),(12234,2),(12243,2),(12250,2),(12254,2),(12268,2),(12271,2),(12275,2),(12276,2),(12282,2),(12283,2),(12290,2),(12292,2),(12293,2),(12303,2),(12312,2),(12328,2),(12330,2),(12333,2),(12353,2),(12367,2),(12368,2),(12369,2),(12373,2),(12386,2),(12405,2),(12411,2),(12418,2),(12421,2),(12426,2),(12445,2),(12447,2),(12449,2),(12451,2),(12452,2),(12459,2),(12470,2),(12474,2),(12478,2),(12479,2),(12481,2),(12496,2),(12499,2),(12510,2),(12517,2),(12518,2),(12526,2),(12547,2),(12549,2),(12555,2),(12570,2),(12574,2),(12577,2),(12588,2),(12589,2),(12590,2),(12593,2),(12598,2),(12603,2),(12604,2),(12607,2),(12613,2),(12617,2),(12619,2),(12627,2),(12633,2),(12642,2),(12653,2),(12658,2),(12659,2),(12662,2),(12669,2),(12670,2),(12678,2),(12701,2),(12703,2),(12706,2),(12709,2),(12710,2),(12712,2),(12715,2),(12719,2),(12720,2),(12722,2),(12727,2),(12729,2),(12732,2),(12737,2),(12741,2),(12751,2),(12759,2),(12776,2),(12781,2),(12792,2),(12799,2),(12802,2),(12808,2),(12814,2),(12823,2),(12833,2),(12838,2),(12854,2),(12856,2),(12861,2),(12865,2),(12868,2),(12871,2),(12878,2),(12884,2),(12922,2),(12927,2),(12929,2),(12938,2),(12944,2),(12951,2),(12952,2),(12954,2),(12962,2),(12976,2),(12980,2),(12987,2),(12995,2),(13004,2),(13006,2),(13009,2),(13012,2),(13016,2),(13021,2),(13025,2),(13028,2),(13031,2),(13036,2),(13048,2),(13055,2),(13059,2),(13061,2),(13065,2),(13067,2),(13072,2),(13074,2),(13075,2),(13078,2),(13084,2),(13091,2),(13097,2),(13098,2),(13101,2),(13105,2),(13111,2),(13114,2),(13130,2),(13134,2),(13164,2),(13176,2),(13185,2),(13189,2),(13192,2),(13197,2),(13200,2),(13205,2),(13211,2),(13213,2),(13214,2),(13215,2),(13223,2),(13225,2),(13226,2),(13230,2),(13235,2),(13243,2),(13245,2),(13254,2),(13259,2),(13279,2),(13285,2),(13286,2),(13289,2),(13290,2),(13291,2),(13304,2),(13307,2),(13311,2),(13313,2),(13315,2),(13328,2),(13343,2),(13346,2),(13353,2),(13365,2),(13371,2),(13376,2),(13378,2),(13381,2),(13393,2),(13394,2),(13409,2),(13423,2),(13424,2),(13428,2),(13431,2),(13437,2),(13438,2),(13452,2),(13457,2),(13459,2),(13460,2),(13462,2),(13467,2),(13482,2),(13484,2),(13491,2),(13493,2),(13494,2),(13497,2),(13498,2),(13502,2),(13504,2),(13517,2),(13520,2),(13527,2),(13528,2),(13529,2),(13532,2),(13539,2),(13540,2),(13543,2),(13544,2),(13565,2),(13576,2),(13577,2),(13578,2),(13580,2),(13602,2),(13610,2),(13626,2),(13639,2),(13646,2),(13648,2),(13663,2),(13679,2),(13681,2),(13684,2),(13685,2),(13699,2),(13700,2),(13703,2),(13709,2),(13711,2),(13712,2),(13715,2),(13721,2),(13724,2),(13729,2),(13730,2),(13733,2),(13734,2),(13738,2),(13742,2),(13746,2),(13747,2),(13763,2),(13771,2),(13783,2),(13784,2),(13787,2),(13791,2),(13794,2),(13809,2),(13815,2),(13816,2),(13828,2),(13844,2),(13848,2),(13852,2),(13857,2),(13858,2),(13863,2),(13865,2),(13867,2),(13868,2),(13870,2),(13871,2),(13877,2),(13878,2),(13885,2),(13887,2),(13890,2),(13892,2),(13893,2),(13901,2),(13905,2),(13914,2),(13921,2),(13928,2),(13938,2),(13940,2),(13957,2),(13964,2),(13969,2),(13971,2),(13979,2),(13981,2),(13982,2),(13986,2),(13990,2),(14001,2),(14002,2),(14008,2),(14010,2),(14017,2),(14021,2),(14025,2),(14035,2),(14037,2),(14066,2),(14076,2),(14082,2),(14085,2),(14087,2),(14089,2),(14109,2),(14134,2),(14149,2),(14150,2),(14151,2),(14153,2),(14155,2),(14163,2),(14167,2),(14169,2),(14176,2),(14177,2),(14180,2),(14202,2),(14203,2),(14216,2),(14218,2),(14235,2),(14237,2),(14244,2),(14250,2),(14254,2),(14256,2),(14259,2),(14264,2),(14265,2),(14278,2),(14284,2),(14289,2),(14293,2),(14299,2),(14304,2),(14311,2),(14314,2),(14327,2),(14333,2),(14343,2),(14348,2),(14371,2),(14383,2),(14399,2),(14410,2),(14424,2),(14429,2),(14438,2),(14449,2),(14466,2),(14468,2),(14471,2),(14475,2),(14476,2),(14477,2),(14480,2),(14494,2),(14502,2),(14509,2),(14511,2),(14513,2),(14515,2),(14523,2),(14524,2),(14535,2),(14537,2),(14546,2),(14548,2),(14559,2),(14563,2),(14564,2),(14567,2),(14575,2),(14586,2),(14592,2),(14600,2),(14605,2),(14606,2),(14608,2),(14619,2),(14625,2),(14626,2),(14640,2),(14645,2),(14647,2),(14648,2),(14654,2),(14656,2),(14665,2),(14672,2),(14673,2),(14675,2),(14680,2),(14682,2),(14683,2),(14690,2),(14692,2),(14694,2),(14700,2),(14702,2),(14704,2),(14710,2),(14711,2),(14716,2),(14720,2),(14729,2),(14739,2),(14742,2),(14753,2),(14754,2),(14759,2),(14766,2),(14768,2),(14769,2),(14785,2),(14795,2),(14801,2),(14803,2),(14804,2),(14806,2),(14815,2),(14819,2),(14823,2),(14825,2),(14833,2),(14839,2),(14851,2),(14856,2),(14857,2),(14865,2),(14871,2),(14882,2),(14894,2),(14895,2),(14896,2),(14897,2),(14903,2),(14905,2),(14915,2),(14941,2),(14943,2),(14945,2),(14958,2),(14962,2),(14965,2),(14970,2),(14975,2),(14986,2),(14991,2),(15002,2),(15003,2),(15006,2),(15023,2),(15032,2),(15035,2),(15042,2),(15050,2),(15069,2),(15077,2),(15079,2),(15082,2),(15088,2),(15095,2),(15096,2),(15105,2),(15124,2),(15125,2),(15127,2),(15130,2),(15142,2),(15147,2),(15170,2),(15173,2),(15178,2),(15181,2),(15183,2),(15185,2),(15198,2),(15208,2),(15212,2),(15218,2),(15226,2),(15227,2),(15236,2),(15245,2),(15247,2),(15254,2),(15256,2),(15257,2),(15262,2),(15263,2),(15264,2),(15267,2),(15271,2),(15272,2),(15278,2),(15283,2),(15284,2),(15295,2),(15296,2),(15298,2),(15299,2),(15300,2),(15305,2),(15309,2),(15313,2),(15334,2),(15351,2),(15353,2),(15357,2),(15360,2),(15361,2),(15362,2),(15365,2),(15368,2),(15370,2),(15373,2),(15376,2),(15380,2),(15384,2),(15396,2),(15410,2),(15414,2),(15416,2),(15425,2),(15429,2),(15432,2),(15435,2),(15436,2),(15445,2),(15448,2),(15450,2),(15459,2),(15460,2),(15465,2),(15467,2),(15483,2),(15488,2),(15503,2),(15509,2),(15514,2),(15523,2),(15527,2),(15528,2),(15529,2),(15532,2),(15536,2),(15539,2),(15545,2),(15548,2),(15550,2),(15552,2),(15557,2),(15564,2),(15569,2),(15576,2),(15578,2),(15581,2),(15582,2),(15600,2),(15616,2),(15618,2),(15626,2),(15641,2),(15650,2),(15657,2),(15670,2),(15677,2),(15680,2),(15684,2),(15694,2),(15695,2),(15709,2),(15713,2),(15717,2),(15718,2),(15729,2),(15739,2),(15741,2),(15751,2),(15756,2),(15760,2),(15767,2),(15768,2),(15769,2),(15774,2),(15783,2),(15791,2),(15792,2),(15801,2),(15807,2),(15814,2),(15822,2),(15829,2),(15832,2),(15834,2),(15841,2),(15850,2),(15851,2),(15858,2),(15861,2),(15863,2),(15870,2),(15873,2),(15881,2),(15886,2),(15889,2),(15893,2),(15911,2),(15916,2),(15921,2),(15924,2),(15930,2),(15932,2),(15936,2),(15941,2),(15955,2),(15956,2),(15962,2),(15973,2),(15981,2),(15985,2),(15991,2),(15993,2),(15999,2),(16002,2),(16006,2),(16007,2),(16011,2),(16017,2),(16027,2),(16033,2),(16036,2),(16037,2),(16042,2),(16045,2),(16046,2),(16048,2),(16054,2),(16065,2),(16074,2),(16075,2),(16086,2),(16088,2),(16089,2),(16090,2),(16093,2),(16094,2),(16097,2),(16100,2),(16103,2),(16105,2),(16109,2),(16110,2),(16112,2),(16113,2),(16118,2),(16124,2),(16127,2),(16137,2),(16140,2),(16143,2),(16146,2),(16147,2),(16150,2),(16151,2),(16153,2),(16162,2),(16165,2),(16176,2),(16177,2),(16184,2),(16187,2),(16190,2),(16194,2),(16197,2),(16201,2),(16207,2),(16209,2),(16210,2),(16217,2),(16219,2),(16221,2),(16222,2),(16223,2),(16225,2),(16226,2),(16236,2),(16245,2),(16246,2),(16250,2),(16254,2),(16273,2),(16285,2),(16298,2),(16313,2),(16317,2),(16331,2),(16332,2),(16336,2),(16344,2),(16355,2),(16365,2),(16371,2),(16375,2),(16399,2),(16400,2),(16401,2),(16411,2),(16415,2),(16420,2),(16423,2),(16426,2),(16431,2),(16435,2),(16440,2),(16454,2),(16455,2),(16464,2),(16478,2),(16489,2),(16497,2),(16506,2),(16513,2),(16515,2),(16517,2),(16519,2),(16523,2),(16525,2),(16538,2),(16539,2),(16550,2),(16557,2),(16558,2),(16559,2),(16562,2),(16564,2),(16565,2),(16578,2),(16592,2),(16600,2),(16608,2),(16636,2),(16637,2),(16639,2),(16644,2),(16645,2),(16648,2),(16650,2),(16664,2),(16678,2),(16679,2),(16682,2),(16684,2),(16689,2),(16691,2),(16696,2),(16699,2),(16702,2),(16708,2),(16719,2),(16731,2),(16737,2),(16741,2),(16753,2),(16754,2),(16765,2),(16766,2),(16778,2),(16781,2),(16782,2),(16783,2),(16813,2),(16814,2),(16815,2),(16820,2),(16822,2),(16834,2),(16842,2),(16855,2),(16857,2),(16862,2),(16873,2),(16876,2),(16882,2),(16887,2),(16888,2),(16890,2),(16894,2),(16897,2),(16904,2),(16908,2),(16911,2),(16915,2),(16916,2),(16923,2),(16932,2),(16941,2),(16947,2),(16948,2),(16954,2),(16955,2),(16956,2),(16959,2),(16962,2),(16968,2),(16978,2),(16988,2),(16994,2),(16995,2),(16997,2),(17007,2),(17011,2),(17012,2),(17014,2),(17020,2),(17040,2),(17059,2),(17064,2),(17067,2),(17069,2),(17072,2),(17078,2),(17081,2),(17082,2),(17084,2),(17090,2),(17099,2),(17119,2),(17121,2),(17125,2),(17135,2),(17136,2),(17144,2),(17148,2),(17158,2),(17162,2),(17172,2),(17182,2),(17186,2),(17188,2),(17190,2),(17203,2),(17213,2),(17217,2),(17218,2),(17219,2),(17225,2),(17228,2),(17237,2),(17243,2),(17257,2),(17258,2),(17259,2),(17264,2),(17265,2),(17266,2),(17270,2),(17272,2),(17277,2),(17296,2),(17297,2),(17302,2),(17307,2),(17308,2),(17312,2),(17321,2),(17328,2),(17329,2),(17330,2),(17336,2),(17348,2),(17357,2),(17358,2),(17362,2),(17366,2),(17368,2),(17376,2),(17381,2),(17386,2),(17388,2),(17393,2),(17396,2),(17397,2),(17398,2),(17403,2),(17406,2),(17407,2),(17410,2),(17414,2),(17415,2),(17421,2),(17429,2),(17436,2),(17441,2),(17443,2),(17449,2),(17471,2),(17472,2),(17478,2),(17480,2),(17487,2),(17490,2),(17494,2),(17503,2),(17515,2),(17516,2),(17525,2),(17526,2),(17531,2),(17534,2),(17538,2),(17543,2),(17548,2),(17549,2),(17553,2),(17563,2),(17570,2),(17583,2),(17587,2),(17589,2),(17592,2),(17594,2),(17598,2),(17600,2),(17609,2),(17611,2),(17612,2),(17613,2),(17626,2),(17633,2),(17652,2),(17653,2),(17659,2),(17667,2),(17679,2),(17680,2),(17681,2),(17685,2),(17689,2),(17692,2),(17693,2),(17698,2),(17703,2),(17712,2),(17738,2),(17742,2),(17747,2),(17748,2),(17762,2),(17764,2),(17770,2),(17771,2),(17776,2),(17777,2),(17800,2),(17803,2),(17815,2),(17819,2),(17834,2),(17842,2),(17846,2),(17853,2),(17861,2),(17866,2),(17870,2),(17874,2),(17879,2),(17884,2),(17885,2),(17886,2),(17890,2),(17891,2),(17899,2),(17904,2),(17908,2),(17911,2),(17914,2),(17926,2),(17931,2),(17941,2),(17959,2),(17964,2),(17970,2),(17972,2),(17981,2),(17983,2),(17997,2),(18001,2),(18008,2),(18012,2),(18015,2),(18016,2),(18037,2),(18045,2),(18058,2),(18059,2),(18067,2),(18073,2),(18079,2),(18082,2),(18090,2),(18099,2),(18107,2),(18112,2),(18122,2),(18124,2),(18136,2),(18146,2),(18157,2),(18163,2),(18166,2),(18167,2),(18171,2),(18189,2),(18209,2),(18219,2),(18225,2),(18230,2),(18233,2),(18234,2),(18237,2),(18240,2),(18252,2),(18260,2),(18267,2),(18275,2),(18280,2),(18281,2),(18299,2),(18310,2),(18321,2),(18338,2),(18350,2),(18361,2),(18369,2),(18371,2),(18378,2),(18380,2),(18381,2),(18382,2),(18386,2),(18397,2),(18413,2),(18417,2),(18421,2),(18425,2),(18426,2),(18429,2),(18448,2),(18451,2),(18455,2),(18458,2),(18459,2),(18466,2),(18479,2),(18509,2),(18513,2),(18522,2),(18529,2),(18537,2),(18555,2),(18572,2),(18577,2),(18580,2),(18586,2),(18600,2),(18604,2),(18606,2),(18610,2),(18617,2),(18619,2),(18621,2),(18628,2),(18650,2),(18651,2),(18655,2),(18664,2),(18666,2),(18685,2),(18691,2),(18692,2),(18693,2),(18697,2),(18706,2),(18709,2),(18724,2),(18730,2),(18732,2),(18733,2),(18734,2),(18745,2),(18749,2),(18752,2),(18755,2),(18759,2),(18761,2),(18762,2),(18769,2),(18781,2),(18792,2),(18793,2),(18796,2),(18809,2),(18844,2),(18852,2),(18858,2),(18862,2),(18868,2),(18873,2),(18878,2),(18881,2),(18882,2),(18883,2),(18884,2),(18886,2),(18887,2),(18890,2),(18892,2),(18897,2),(18898,2),(18904,2),(18908,2),(18926,2),(18933,2),(18939,2),(18949,2),(18956,2),(18970,2),(18984,2),(18985,2),(18997,2),(18999,2),(19000,2),(19011,2),(19029,2),(19050,2),(19051,2),(19060,2),(19063,2),(19072,2),(19073,2),(19087,2),(19092,2),(19098,2),(19102,2),(19113,2),(19116,2),(19117,2),(19120,2),(19121,2),(19122,2),(19132,2),(19140,2),(19142,2),(19143,2),(19150,2),(19186,2),(19187,2),(19202,2),(19203,2),(19209,2),(19217,2),(19219,2),(19225,2),(19230,2),(19242,2),(19246,2),(19250,2),(19259,2),(19260,2),(19275,2),(19278,2),(19280,2),(19283,2),(19284,2),(19297,2),(19302,2),(19307,2),(19314,2),(19316,2),(19321,2),(19327,2),(19334,2),(19341,2),(19342,2),(19351,2),(19352,2),(19361,2),(19363,2),(19366,2),(19372,2),(19378,2),(19393,2),(19396,2),(19401,2),(19411,2),(19415,2),(19421,2),(19440,2),(19447,2),(19453,2),(19458,2),(19462,2),(19464,2),(19465,2),(19466,2),(19474,2),(19475,2),(19479,2),(19491,2),(19493,2),(19496,2),(19503,2),(19505,2),(19514,2),(19522,2),(19534,2),(19537,2),(19540,2),(19547,2),(19548,2),(19556,2),(19561,2),(19564,2),(19567,2),(19580,2),(19591,2),(19620,2),(19627,2),(19633,2),(19637,2),(19639,2),(19648,2),(19657,2),(19665,2),(19669,2),(19672,2),(19691,2),(19699,2),(19717,2),(19722,2),(19729,2),(19733,2),(19740,2),(19741,2),(19744,2),(19749,2),(19756,2),(19774,2),(19777,2),(19786,2),(19788,2),(19793,2),(19794,2),(19800,2),(19827,2),(19831,2),(19832,2),(19834,2),(19847,2),(19849,2),(19850,2),(19851,2),(19856,2),(19861,2),(19863,2),(19877,2),(19884,2),(19891,2),(19896,2),(19901,2),(19905,2),(19911,2),(19919,2),(19944,2),(19948,2),(19949,2),(19951,2),(19959,2),(19968,2),(19978,2),(19982,2),(19985,2),(19993,2),(19998,2),(20002,2),(20007,2),(20008,2),(20012,2),(20014,2),(20017,2),(20018,2),(20026,2),(20033,2),(20041,2),(20042,2),(20045,2),(20052,2),(20056,2),(20059,2),(20068,2),(20077,2),(20078,2),(20080,2),(20087,2),(20088,2),(20091,2),(20094,2),(20108,2),(20120,2),(20135,2),(20151,2),(20168,2),(20177,2),(20181,2),(20183,2),(20184,2),(20185,2),(20187,2),(20190,2),(20194,2),(20209,2),(20221,2),(20226,2),(20236,2),(20241,2),(20244,2),(20247,2),(20248,2),(20253,2),(20255,2),(20273,2),(20280,2),(20288,2),(20301,2),(20303,2),(20304,2),(20316,2),(20321,2),(20333,2),(20334,2),(20335,2),(20338,2),(20346,2),(20348,2),(20353,2),(20358,2),(20366,2),(20368,2),(20399,2),(20402,2),(20405,2),(20408,2),(20410,2),(20414,2),(20415,2),(20423,2),(20429,2),(20435,2),(20442,2),(20448,2),(20450,2),(20453,2),(20461,2),(20463,2),(20480,2),(20481,2),(20488,2),(20492,2),(20497,2),(20511,2),(20519,2),(20520,2),(20521,2),(20534,2),(20537,2),(20540,2),(20541,2),(20547,2),(20554,2),(20570,2),(20575,2),(20578,2),(20579,2),(20610,2),(20616,2),(20624,2),(20632,2),(20634,2),(20641,2),(20651,2),(20660,2),(20661,2),(20664,2),(20674,2),(20678,2),(20681,2),(20684,2),(20687,2),(20692,2),(20695,2),(20704,2),(20707,2),(20718,2),(20722,2),(20726,2),(20730,2),(20737,2),(20745,2),(20751,2),(20755,2),(20764,2),(20767,2),(20773,2),(20777,2),(20783,2),(20787,2),(20791,2),(20803,2),(20806,2),(20826,2),(20832,2),(20838,2),(20841,2),(20845,2),(20846,2),(20848,2),(20875,2),(20877,2),(20883,2),(20885,2),(20888,2),(20894,2),(20895,2),(20896,2),(20917,2),(20919,2),(20929,2),(20934,2),(20937,2),(20941,2),(20945,2),(20955,2),(20957,2),(20964,2),(20968,2),(20970,2),(20975,2),(20981,2),(20990,2),(21025,2),(21029,2),(21035,2),(21049,2),(21060,2),(21071,2),(21075,2),(21077,2),(21082,2),(21086,2),(21095,2),(21098,2),(21105,2),(21108,2),(21112,2),(21125,2),(21134,2),(21142,2),(21148,2),(21156,2),(21164,2),(21169,2),(21191,2),(21194,2),(21212,2),(21213,2),(21225,2),(21234,2),(21238,2),(21252,2),(21256,2),(21261,2),(21270,2),(21275,2),(21280,2),(21286,2),(21294,2),(21296,2),(21297,2),(21299,2),(21302,2),(21304,2),(21305,2),(21313,2),(21314,2),(21320,2),(21322,2),(21328,2),(21334,2),(21337,2),(21348,2),(21352,2),(21353,2),(21354,2),(21355,2),(21369,2),(21377,2),(21388,2),(21392,2),(21398,2),(21401,2),(21405,2),(21408,2),(21412,2),(21414,2),(21415,2),(21424,2),(21426,2),(21428,2),(21429,2),(21430,2),(21435,2),(21443,2),(21455,2),(21458,2),(21467,2),(21468,2),(21474,2),(21481,2),(21482,2),(21500,2),(21514,2),(21520,2),(21523,2),(21538,2),(21540,2),(21541,2),(21543,2),(21544,2),(21546,2),(21552,2),(21555,2),(21566,2),(21571,2),(21574,2),(21577,2),(21582,2),(21587,2),(21594,2),(21604,2),(21620,2),(21621,2),(21643,2),(21651,2),(21657,2),(21659,2),(21660,2),(21663,2),(21677,2),(21679,2),(21698,2),(21699,2),(21716,2),(21733,2),(21742,2),(21751,2),(21756,2),(21761,2),(21768,2),(21770,2),(21771,2),(21772,2),(21782,2),(21795,2),(21800,2),(21801,2),(21807,2),(21808,2),(21810,2),(21811,2),(21823,2),(21828,2),(21830,2),(21840,2),(21843,2),(21849,2),(21850,2),(21852,2),(21853,2),(21856,2),(21862,2),(21864,2),(21868,2),(21871,2),(21872,2),(21876,2),(21883,2),(21884,2),(21885,2),(21895,2),(21901,2),(21902,2),(21908,2),(21918,2),(21921,2),(21926,2),(21933,2),(21934,2),(21939,2),(21956,2),(21974,2),(21981,2),(21982,2),(21995,2),(22000,2),(22002,2),(22009,2),(22011,2),(22017,2),(22026,2),(22041,2),(22043,2),(22052,2),(22054,2),(22056,2),(22058,2),(22071,2),(22077,2),(22103,2),(22113,2),(22115,2),(22116,2),(22121,2),(22128,2),(22143,2),(22149,2),(22152,2),(22155,2),(22168,2),(22169,2),(22171,2),(22179,2),(22183,2),(22188,2),(22189,2),(22197,2),(22199,2),(22205,2),(22210,2),(22220,2),(22226,2),(22246,2),(22254,2),(22261,2),(22304,2),(22306,2),(22309,2),(22313,2),(22315,2),(22322,2),(22328,2),(22330,2),(22341,2),(22343,2),(22347,2),(22348,2),(22351,2),(22356,2),(22361,2),(22362,2),(22364,2),(22366,2),(22369,2),(22372,2),(22375,2),(22381,2),(22383,2),(22395,2),(22396,2),(22404,2),(22411,2),(22416,2),(22422,2),(22424,2),(22432,2),(22439,2),(22440,2),(22446,2),(22450,2),(22475,2),(22477,2),(22482,2),(22483,2),(22484,2),(22489,2),(22506,2),(22511,2),(22514,2),(22517,2),(22522,2),(22524,2),(22532,2),(22547,2),(22550,2),(22558,2),(22580,2),(22581,2),(22588,2),(22603,2),(22609,2),(22610,2),(22614,2),(22618,2),(22621,2),(22622,2),(22623,2),(22627,2),(22630,2),(22637,2),(22638,2),(22641,2),(22645,2),(22648,2),(22651,2),(22658,2),(22687,2),(22699,2),(22704,2),(22710,2),(22724,2),(22730,2),(22738,2),(22750,2),(22778,2),(22779,2),(22780,2),(22785,2),(22790,2),(22797,2),(22799,2),(22822,2),(22826,2),(22828,2),(22858,2),(22867,2),(22879,2),(22889,2),(22892,2),(22896,2),(22898,2),(22907,2),(22911,2),(22916,2),(22917,2),(22919,2),(22923,2),(22926,2),(22927,2),(22935,2),(22940,2),(22949,2),(22957,2),(22963,2),(22964,2),(22965,2),(22967,2),(22971,2),(22972,2),(22975,2),(22979,2),(22997,2),(23002,2),(23015,2),(23023,2),(23032,2),(23039,2),(23043,2),(23047,2),(23055,2),(23058,2),(23068,2),(23074,2),(23075,2),(23085,2),(23092,2),(23103,2),(23117,2),(23130,2),(23131,2),(23133,2),(23141,2),(23142,2),(23149,2),(23153,2),(23160,2),(23171,2),(23174,2),(23181,2),(23191,2),(23198,2),(23202,2),(23206,2),(23211,2),(23213,2),(23216,2),(23225,2),(23238,2),(23249,2),(23252,2),(23258,2),(23262,2),(23267,2),(23268,2),(23270,2),(23275,2),(23283,2),(23287,2),(23288,2),(23291,2),(23293,2),(23295,2),(23296,2),(23303,2),(23304,2),(23306,2),(23315,2),(23318,2),(23319,2),(23321,2),(23334,2),(23336,2),(23337,2),(23338,2),(23343,2),(23358,2),(23366,2),(23386,2),(23394,2),(23398,2),(23401,2),(23403,2),(23405,2),(23408,2),(23412,2),(23413,2),(23426,2),(23428,2),(23429,2),(23443,2),(23452,2),(23453,2),(23464,2),(23467,2),(23473,2),(23483,2),(23486,2),(23487,2),(23492,2),(23495,2),(23499,2),(23507,2),(23514,2),(23516,2),(23517,2),(23521,2),(23532,2),(23545,2),(23546,2),(23548,2),(23553,2),(23555,2),(23558,2),(23583,2),(23590,2),(23595,2),(23603,2),(23604,2),(23609,2),(23611,2),(23616,2),(23617,2),(23618,2),(23628,2),(23630,2),(23631,2),(23636,2),(23643,2),(23644,2),(23650,2),(23656,2),(23663,2),(23676,2),(23678,2),(23686,2),(23688,2),(23690,2),(23698,2),(23700,2),(23708,2),(23711,2),(23716,2),(23721,2),(23724,2),(23731,2),(23754,2),(23760,2),(23763,2),(23767,2),(23784,2),(23795,2),(23797,2),(23803,2),(23816,2),(23823,2),(23824,2),(23830,2),(23833,2),(23844,2),(23876,2),(23883,2),(23886,2),(23890,2),(23899,2),(23908,2),(23920,2),(23937,2),(23940,2),(23960,2),(23969,2),(23978,2),(23979,2),(23985,2),(23989,2),(23993,2),(24003,2),(24005,2),(24008,2),(24014,2),(24017,2),(24019,2),(24038,2),(24039,2),(24042,2),(24043,2),(24048,2),(24057,2),(24060,2),(24061,2),(24071,2),(24081,2),(24082,2),(24084,2),(24108,2),(24109,2),(24110,2),(24113,2),(24114,2),(24119,2),(24122,2),(24124,2),(24125,2),(24131,2),(24154,2),(24156,2),(24160,2),(24167,2),(24169,2),(24173,2),(24177,2),(24180,2),(24181,2),(24185,2),(24188,2),(24192,2),(24197,2),(24205,2),(24208,2),(24218,2),(24245,2),(24251,2),(24253,2),(24259,2),(24260,2),(24268,2),(24270,2),(24278,2),(24279,2),(24287,2),(24292,2),(24293,2),(24295,2),(24297,2),(24303,2),(24327,2),(24333,2),(24335,2),(24352,2),(24356,2),(24365,2),(24369,2),(24372,2),(24373,2),(24380,2),(24386,2),(24388,2),(24390,2),(24392,2),(24393,2),(24396,2),(24405,2),(24408,2),(24412,2),(24422,2),(24435,2),(24436,2),(24454,2),(24458,2),(24464,2),(24469,2),(24474,2),(24476,2),(24479,2),(24489,2),(24499,2),(24507,2),(24511,2),(24512,2),(24517,2),(24522,2),(24527,2),(24532,2),(24534,2),(24540,2),(24542,2),(24548,2),(24557,2),(24571,2),(24573,2),(24579,2),(24581,2),(24584,2),(24587,2),(24588,2),(24590,2),(24594,2),(24595,2),(24598,2),(24603,2),(24607,2),(24615,2),(24629,2),(24637,2),(24644,2),(24656,2),(24663,2),(24671,2),(24677,2),(24680,2),(24683,2),(24684,2),(24689,2),(24697,2),(24702,2),(24707,2),(24712,2),(24721,2),(24725,2),(24729,2),(24730,2),(24735,2),(24759,2),(24763,2),(24764,2),(24767,2),(24774,2),(24775,2),(24777,2),(24780,2),(24784,2),(24796,2),(24802,2),(24818,2),(24821,2),(24841,2),(24843,2),(24847,2),(24848,2),(24856,2),(24876,2),(24883,2),(24886,2),(24915,2),(24923,2),(24928,2),(24929,2),(24930,2),(24932,2),(24957,2),(24960,2),(24965,2),(24977,2),(24979,2),(24985,2),(24995,2),(24998,2),(25000,2),(25004,2),(25005,2),(25011,2),(25019,2),(25020,2),(25026,2),(25040,2),(25045,2),(25048,2),(25052,2),(25055,2),(25059,2),(25060,2),(25072,2),(25079,2),(25084,2),(25090,2),(25092,2),(25093,2),(25097,2),(25116,2),(25123,2),(25132,2),(25172,2),(25183,2),(25196,2),(25198,2),(25203,2),(25210,2),(25219,2),(25227,2),(25235,2),(25237,2),(25240,2),(25261,2),(25272,2),(25277,2),(25283,2),(25285,2),(25287,2),(25292,2),(25295,2),(25298,2),(25304,2),(25314,2),(25315,2),(25322,2),(25325,2),(25332,2),(25347,2),(25353,2),(25356,2),(25358,2),(25360,2),(25361,2),(25371,2),(25390,2),(25391,2),(25399,2),(25400,2),(25417,2),(25418,2),(25419,2),(25424,2),(25431,2),(25438,2),(25443,2),(25447,2),(25449,2),(25455,2),(25459,2),(25465,2),(25469,2),(25470,2),(25471,2),(25474,2),(25485,2),(25490,2),(25507,2),(25517,2),(25519,2),(25524,2),(25540,2),(25541,2),(25545,2),(25550,2),(25554,2),(25559,2),(25561,2),(25563,2),(25573,2),(25574,2),(25587,2),(25588,2),(25591,2),(25592,2),(25605,2),(25606,2),(25607,2),(25609,2),(25617,2),(25626,2),(25634,2),(25635,2),(25645,2),(25647,2),(25649,2),(25660,2),(25663,2),(25664,2),(25665,2),(25684,2),(25694,2),(25695,2),(25696,2),(25709,2),(25723,2),(25731,2),(25737,2),(25738,2),(25742,2),(25745,2),(25746,2),(25747,2),(25753,2),(25758,2),(25764,2),(25767,2),(25773,2),(25774,2),(25783,2),(25788,2),(25790,2),(25798,2),(25804,2),(25813,2),(25817,2),(25822,2),(25828,2),(25829,2),(25839,2),(25845,2),(25855,2),(25860,2),(25866,2),(25871,2),(25874,2),(25883,2),(25884,2),(25895,2),(25906,2),(25922,2),(25935,2),(25942,2),(25948,2),(25953,2),(25954,2),(25955,2),(25958,2),(25961,2),(25964,2),(25965,2),(25975,2),(25990,2),(25997,2),(26000,2),(26004,2),(26006,2),(26016,2),(26018,2),(26019,2),(26026,2),(26036,2),(26039,2),(26044,2),(26045,2),(26054,2),(26056,2),(26058,2),(26059,2),(26064,2),(26068,2),(26073,2),(26081,2),(26084,2),(26088,2),(26090,2),(26093,2),(26094,2),(26098,2),(26100,2),(26101,2),(26104,2),(26105,2),(26109,2),(26123,2),(26138,2),(26147,2),(26150,2),(26152,2),(26155,2),(26161,2),(26163,2),(26166,2),(26167,2),(26171,2),(26174,2),(26179,2),(26187,2),(26192,2),(26194,2),(26201,2),(26203,2),(26206,2),(26213,2),(26217,2),(26219,2),(26223,2),(26228,2),(26229,2),(26231,2),(26239,2),(26241,2),(26251,2),(26254,2),(26256,2),(26257,2),(26258,2),(26267,2),(26270,2),(26279,2),(26297,2),(26315,2),(26318,2),(26339,2),(26345,2),(26352,2),(26360,2),(26362,2),(26363,2),(26371,2),(26372,2),(26377,2),(26378,2),(26379,2),(26381,2),(26389,2),(26398,2),(26399,2),(26400,2),(26402,2),(26403,2),(26405,2),(26406,2),(26407,2),(26409,2),(26419,2),(26420,2),(26422,2),(26426,2),(26430,2),(26434,2),(26439,2),(26441,2),(26443,2),(26452,2),(26456,2),(26459,2),(26462,2),(26467,2),(26474,2),(26480,2),(26486,2),(26487,2),(26493,2),(26497,2),(26505,2),(26518,2),(26538,2),(26546,2),(26555,2),(26561,2),(26564,2),(26565,2),(26587,2),(26589,2),(26592,2),(26594,2),(26599,2),(26601,2),(26608,2),(26613,2),(26615,2),(26639,2),(26645,2),(26651,2),(26652,2),(26659,2),(26662,2),(26671,2),(26675,2),(26676,2),(26679,2),(26686,2),(26688,2),(26698,2),(26705,2),(26713,2),(26718,2),(26722,2),(26735,2),(26738,2),(26748,2),(26750,2),(26751,2),(26759,2),(26763,2),(26772,2),(26774,2),(26775,2),(26778,2),(26788,2),(26805,2),(26814,2),(26818,2),(26819,2),(26822,2),(26824,2),(26827,2),(26829,2),(26854,2),(26857,2),(26859,2),(26860,2),(26864,2),(26868,2),(26869,2),(26873,2),(26880,2),(26883,2),(26889,2),(26892,2),(26896,2),(26897,2),(26900,2),(26902,2),(26903,2),(26914,2),(26921,2),(26934,2),(26937,2),(26940,2),(26942,2),(26946,2),(26947,2),(26957,2),(26964,2),(26975,2),(26978,2),(26980,2),(26991,2),(26995,2),(26999,2),(27002,2),(27003,2),(27004,2),(27005,2),(27021,2),(27026,2),(27040,2),(27045,2),(27047,2),(27056,2),(27057,2),(27061,2),(27064,2),(27070,2),(27076,2),(27077,2),(27106,2),(27108,2),(27109,2),(27112,2),(27116,2),(27128,2),(27129,2),(27164,2),(27169,2),(27171,2),(27175,2),(27183,2),(27189,2),(27192,2),(27200,2),(27202,2),(27223,2),(27228,2),(27242,2),(27249,2),(27251,2),(27252,2),(27254,2),(27265,2),(27276,2),(27297,2),(27307,2),(27314,2),(27326,2),(27328,2),(27331,2),(27333,2),(27335,2),(27353,2),(27358,2),(27365,2),(27368,2),(27381,2),(27384,2),(27388,2),(27400,2),(27408,2),(27410,2),(27419,2),(27423,2),(27433,2),(27437,2),(27439,2),(27446,2),(27454,2),(27456,2),(27460,2),(27467,2),(27480,2),(27484,2),(27485,2),(27488,2),(27497,2),(27499,2),(27501,2),(27510,2),(27513,2),(27514,2),(27515,2),(27521,2),(27524,2),(27536,2),(27539,2),(27540,2),(27545,2),(27553,2),(27555,2),(27572,2),(27575,2),(27578,2),(27580,2),(27581,2),(27582,2),(27589,2),(27597,2),(27603,2),(27609,2),(27610,2),(27611,2),(27615,2),(27619,2),(27631,2),(27639,2),(27641,2),(27645,2),(27651,2),(27652,2),(27659,2),(27667,2),(27668,2),(27670,2),(27681,2),(27687,2),(27693,2),(27702,2),(27712,2),(27715,2),(27735,2),(27737,2),(27739,2),(27744,2),(27748,2),(27750,2),(27753,2),(27769,2),(27771,2),(27785,2),(27786,2),(27789,2),(27792,2),(27799,2),(27814,2),(27826,2),(27833,2),(27837,2),(27838,2),(27844,2),(27847,2),(27857,2),(27859,2),(27867,2),(27874,2),(27876,2),(27886,2),(27891,2),(27894,2),(27895,2),(27899,2),(27903,2),(27907,2),(27908,2),(27918,2),(27922,2),(27925,2),(27937,2),(27959,2),(27963,2),(27976,2),(27979,2),(27980,2),(27983,2),(27986,2),(27997,2),(28004,2),(28010,2),(28016,2),(28018,2),(28027,2),(28030,2),(28031,2),(28039,2),(28045,2),(28046,2),(28063,2),(28065,2),(28073,2),(28077,2),(28080,2),(28083,2),(28100,2),(28102,2),(28108,2),(28117,2),(28122,2),(28135,2),(28140,2),(28157,2),(28162,2),(28163,2),(28172,2),(28176,2),(28179,2),(28193,2),(28195,2),(28196,2),(28199,2),(28203,2),(28210,2),(28226,2),(28227,2),(28247,2),(28260,2),(28268,2),(28273,2),(28279,2),(28282,2),(28283,2),(28284,2),(28287,2),(28292,2),(28294,2),(28295,2),(28300,2),(28306,2),(28312,2),(28322,2),(28323,2),(28331,2),(28349,2),(28359,2),(28374,2),(28377,2),(28380,2),(28382,2),(28384,2),(28386,2),(28395,2),(28397,2),(28398,2),(28403,2),(28414,2),(28418,2),(28422,2),(28428,2),(28433,2),(28434,2),(28444,2),(28446,2),(28450,2),(28456,2),(28461,2),(28465,2),(28467,2),(28469,2),(28485,2),(28487,2),(28488,2),(28499,2),(28501,2),(28518,2),(28526,2),(28543,2),(28547,2),(28558,2),(28560,2),(28591,2),(28604,2),(28609,2),(28613,2),(28614,2),(28624,2),(28625,2),(28626,2),(28637,2),(28640,2),(28642,2),(28647,2),(28648,2),(28650,2),(28654,2),(28656,2),(28658,2),(28670,2),(28678,2),(28683,2),(28688,2),(28692,2),(28695,2),(28699,2),(28704,2),(28708,2),(28713,2),(28717,2),(28720,2),(28721,2),(28724,2),(28731,2),(28734,2),(28735,2),(28741,2),(28748,2),(28754,2),(28755,2),(28765,2),(28771,2),(28772,2),(28803,2),(28806,2),(28822,2),(28825,2),(28827,2),(28829,2),(28835,2),(28842,2),(28845,2),(28865,2),(28868,2),(28869,2),(28882,2),(28893,2),(28905,2),(28913,2),(28929,2),(28934,2),(28940,2),(28943,2),(28948,2),(28952,2),(28962,2),(28963,2),(28967,2),(28973,2),(28986,2),(28988,2),(28989,2),(28997,2),(28999,2),(29000,2),(29002,2),(29007,2),(29008,2),(29017,2),(29023,2),(29037,2),(29060,2),(29067,2),(29080,2),(29081,2),(29082,2),(29086,2),(29090,2),(29096,2),(29106,2),(29115,2),(29121,2),(29125,2),(29141,2),(29142,2),(29149,2),(29152,2),(29157,2),(29161,2),(29163,2),(29169,2),(29176,2),(29177,2),(29183,2),(29187,2),(29199,2),(29200,2),(29204,2),(29216,2),(29229,2),(29231,2),(29233,2),(29238,2),(29244,2),(29249,2),(29262,2),(29286,2),(29294,2),(29298,2),(29302,2),(29309,2),(29316,2),(29317,2),(29318,2),(29320,2),(29325,2),(29327,2),(29334,2),(29335,2),(29338,2),(29341,2),(29347,2),(29359,2),(29371,2),(29376,2),(29378,2),(29379,2),(29383,2),(29385,2),(29398,2),(29408,2),(29410,2),(29417,2),(29422,2),(29425,2),(29426,2),(29429,2),(29433,2),(29448,2),(29472,2),(29478,2),(29483,2),(29489,2),(29492,2),(29494,2),(29503,2),(29506,2),(29508,2),(29510,2),(29512,2),(29517,2),(29519,2),(29525,2),(29535,2),(29539,2),(29541,2),(29555,2),(29557,2),(29558,2),(29576,2),(29581,2),(29583,2),(29584,2),(29599,2),(29601,2),(29604,2),(29606,2),(29614,2),(29618,2),(29621,2),(29625,2),(29631,2),(29649,2),(29666,2),(29680,2),(29682,2),(29692,2),(29711,2),(29722,2),(29730,2),(29739,2),(29750,2),(29767,2),(29770,2),(29783,2),(29799,2),(29814,2),(29824,2),(29826,2),(29830,2),(29850,2),(29853,2),(29861,2),(29872,2),(29873,2),(29875,2),(29892,2),(29898,2),(29901,2),(29904,2),(29910,2),(29913,2),(29917,2),(29918,2),(29920,2),(29923,2),(29926,2),(29939,2),(29944,2),(29947,2),(29948,2),(29950,2),(29952,2),(29955,2),(29956,2),(29976,2),(29983,2),(29987,2),(29990,2),(30006,2),(30013,2),(30024,2),(30033,2),(30036,2),(30039,2),(30043,2),(30046,2),(30050,2),(30052,2),(30054,2),(30061,2),(30066,2),(30070,2),(30074,2),(30078,2),(30083,2),(30086,2),(30087,2),(30090,2),(30092,2),(30105,2),(30126,2),(30143,2),(30148,2),(30159,2),(30170,2),(30186,2),(30188,2),(30190,2),(30196,2),(30199,2),(30204,2),(30209,2),(30234,2),(30236,2),(30246,2),(30252,2),(30270,2),(30281,2),(30284,2),(30285,2),(30295,2),(30315,2),(30317,2),(30322,2),(30330,2),(30340,2),(30341,2),(30342,2),(30344,2),(30355,2),(30356,2),(30358,2),(30360,2),(30368,2),(30377,2),(30381,2),(30391,2),(30393,2),(30395,2),(30396,2),(30398,2),(30402,2),(30403,2),(30404,2),(30411,2),(30442,2),(30446,2),(30449,2),(30453,2),(30470,2),(30478,2),(30483,2),(30489,2),(30501,2),(30506,2),(30508,2),(30517,2),(30522,2),(30541,2),(30551,2),(30557,2),(30563,2),(30568,2),(30572,2),(30577,2),(30590,2),(30593,2),(30597,2),(30601,2),(30608,2),(30610,2),(30612,2),(30620,2),(30627,2),(30629,2),(30634,2),(30638,2),(30645,2),(30654,2),(30658,2),(30662,2),(30666,2),(30674,2),(30690,2),(30692,2),(30695,2),(30699,2),(30702,2),(30703,2),(30711,2),(30712,2),(30716,2),(30728,2),(30729,2),(30735,2),(30742,2),(30747,2),(30761,2),(30773,2),(30779,2),(30782,2),(30789,2),(30794,2),(30799,2),(30826,2),(30831,2),(30838,2),(30845,2),(30846,2),(30850,2),(30851,2),(30852,2),(30861,2),(30868,2),(30869,2),(30870,2),(30885,2),(30894,2),(30897,2),(30902,2),(30906,2),(30908,2),(30910,2),(30914,2),(30930,2),(30946,2),(30951,2),(30954,2),(30956,2),(30958,2),(30960,2),(30961,2),(30966,2),(30970,2),(30972,2),(30976,2),(30979,2),(30982,2),(30985,2),(30987,2),(30996,2),(31000,2),(31014,2),(31023,2),(31025,2),(31027,2),(31040,2),(31042,2),(31049,2),(31058,2),(31061,2),(31062,2),(31075,2),(31089,2),(31095,2),(31100,2),(31114,2),(31115,2),(31118,2),(31120,2),(31128,2),(31135,2),(31137,2),(31141,2),(31145,2),(31146,2),(31163,2),(31167,2),(31179,2),(31192,2),(31197,2),(31210,2),(31214,2),(31215,2),(31216,2),(31217,2),(31232,2),(31236,2),(31238,2),(31239,2),(31240,2),(31249,2),(31250,2),(31251,2),(31252,2),(31260,2),(31275,2),(31307,2),(31311,2),(31329,2),(31331,2),(31340,2),(31344,2),(31345,2),(31351,2),(31366,2),(31380,2),(31387,2),(31389,2),(31399,2),(31401,2),(31404,2),(31417,2),(31419,2),(31426,2),(31432,2),(31443,2),(31446,2),(31447,2),(31449,2),(31450,2),(31452,2),(31456,2),(31462,2),(31477,2),(31484,2),(31490,2),(31502,2),(31505,2),(31510,2),(31514,2),(31515,2),(31517,2),(31534,2),(31537,2),(31553,2),(31554,2),(31556,2),(31557,2),(31560,2),(31562,2),(31566,2),(31569,2),(31575,2),(31578,2),(31581,2),(31591,2),(31600,2),(31608,2),(31611,2),(31620,2),(31632,2),(31641,2),(31646,2),(31648,2),(31658,2),(31660,2),(31673,2),(31684,2),(31685,2),(31698,2),(31704,2),(31705,2),(31710,2),(31718,2),(31719,2),(31720,2),(31721,2),(31739,2),(31753,2),(31756,2),(31760,2),(31770,2),(31778,2),(31781,2),(31782,2),(31783,2),(31784,2),(31793,2),(31800,2),(31804,2),(31810,2),(31816,2),(31825,2),(31849,2),(31853,2),(31861,2),(31865,2),(31867,2),(31870,2),(31877,2),(31878,2),(31889,2),(31890,2),(31901,2),(31904,2),(31907,2),(31909,2),(31917,2),(31925,2),(31938,2),(31943,2),(31952,2),(31958,2),(31967,2),(31968,2),(31971,2),(31976,2),(31980,2),(31996,2),(31997,2),(32002,2),(32011,2),(32015,2),(32020,2),(32025,2),(32032,2),(32045,2),(32058,2),(32062,2),(32069,2),(32079,2),(32082,2),(32095,2),(32107,2),(32109,2),(32112,2),(32122,2),(32130,2),(32133,2),(32136,2),(32138,2),(32141,2),(32149,2),(32155,2),(32156,2),(32157,2),(32166,2),(32167,2),(32171,2),(32176,2),(32179,2),(32190,2),(32195,2),(32197,2),(32199,2),(32209,2),(32234,2),(32239,2),(32241,2),(32248,2),(32258,2),(32269,2),(32277,2),(32280,2),(32284,2),(32292,2),(32294,2),(32295,2),(32309,2),(32315,2),(32322,2),(32324,2),(32325,2),(32349,2),(32367,2),(32387,2),(32390,2),(32391,2),(32393,2),(32399,2),(32408,2),(32410,2),(32411,2),(32413,2),(32418,2),(32420,2),(32425,2),(32429,2),(32432,2),(32437,2),(32442,2),(32452,2),(32453,2),(32456,2),(32457,2),(32460,2),(32461,2),(32474,2),(32475,2),(32505,2),(32508,2),(32511,2),(32512,2),(32515,2),(32527,2),(32532,2),(32533,2),(32539,2),(32554,2),(32563,2),(32565,2),(32568,2),(32590,2),(32592,2),(32599,2),(32600,2),(32604,2),(32612,2),(32613,2),(32620,2),(32630,2),(32635,2),(32656,2),(32666,2),(32670,2),(32672,2),(32680,2),(32687,2),(32691,2),(32703,2),(32706,2),(32721,2),(32723,2),(32724,2),(32727,2),(32730,2),(32731,2),(32733,2),(32734,2),(32738,2),(32741,2),(32744,2),(32747,2),(32752,2),(32754,2),(32757,2),(32764,2),(32773,2),(32774,2),(32775,2),(32784,2),(32786,2),(32790,2),(32797,2),(32799,2),(32801,2),(32806,2),(32807,2),(32810,2),(32826,2),(32833,2),(32866,2),(32868,2),(32876,2),(32878,2),(32886,2),(32887,2),(32888,2),(32891,2),(32895,2),(32896,2),(32898,2),(32935,2),(32941,2),(32944,2),(32946,2),(32952,2),(32957,2),(32958,2),(32959,2),(32963,2),(32972,2),(32977,2),(32983,2),(32989,2),(32990,2),(32991,2),(32993,2),(32997,2),(33000,2),(33012,2),(33014,2),(33020,2),(33041,2),(33048,2),(33051,2),(33056,2),(33071,2),(33080,2),(33088,2),(33101,2),(33103,2),(33105,2),(33110,2),(33111,2),(33112,2),(33123,2),(33127,2),(33141,2),(33164,2),(33173,2),(33177,2),(33194,2),(33206,2),(33217,2),(33224,2),(33225,2),(33226,2),(33228,2),(33235,2),(33244,2),(33249,2),(33250,2),(33251,2),(33254,2),(33256,2),(33258,2),(33264,2),(33265,2),(33277,2),(33283,2),(33284,2),(33285,2),(33290,2),(33307,2),(33308,2),(33321,2),(33326,2),(33345,2),(33348,2),(33349,2),(33350,2),(33355,2),(33356,2),(33364,2),(33379,2),(33385,2),(33393,2),(33397,2),(33399,2),(33403,2),(33423,2),(33425,2),(33427,2),(33432,2),(33435,2),(33438,2),(33449,2),(33452,2),(33454,2),(33457,2),(33461,2),(33470,2),(33479,2),(33487,2),(33492,2),(33498,2),(33500,2),(33505,2),(33524,2),(33529,2),(33539,2),(33545,2),(33554,2),(33557,2),(33561,2),(33566,2),(33574,2),(33578,2),(33591,2),(33596,2),(33600,2),(33601,2),(33602,2),(33608,2),(33612,2),(33619,2),(33623,2),(33629,2),(33644,2),(33647,2),(33651,2),(33652,2),(33653,2),(33656,2),(33657,2),(33669,2),(33675,2),(33689,2),(33692,2),(33699,2),(33700,2),(33709,2),(33725,2),(33726,2),(33732,2),(33733,2),(33735,2),(33741,2),(33745,2),(33752,2),(33757,2),(33768,2),(33781,2),(33787,2),(33797,2),(33801,2),(33803,2),(33804,2),(33813,2),(33816,2),(33824,2),(33837,2),(33840,2),(33869,2),(33879,2),(33885,2),(33905,2),(33908,2),(33915,2),(33918,2),(33937,2),(33941,2),(33942,2),(33945,2),(33950,2),(33954,2),(33960,2),(33974,2),(33975,2),(33977,2),(33995,2),(34008,2),(34010,2),(34015,2),(34017,2),(34018,2),(34022,2),(34024,2),(34036,2),(34041,2),(34046,2),(34050,2),(34055,2),(34062,2),(34074,2),(34080,2),(34086,2),(34087,2),(34089,2),(34106,2),(34117,2),(34123,2),(34126,2),(34127,2),(34138,2),(34139,2),(34146,2),(34153,2),(34154,2),(34159,2),(34172,2),(34173,2),(34174,2),(34175,2),(34185,2),(34203,2),(34208,2),(34212,2),(34223,2),(34225,2),(34226,2),(34231,2),(34248,2),(34250,2),(34254,2),(34258,2),(34261,2),(34262,2),(34266,2),(34268,2),(34269,2),(34275,2),(34287,2),(34295,2),(34297,2),(34306,2),(34313,2),(34332,2),(34337,2),(34339,2),(34342,2),(34343,2),(34347,2),(34350,2),(34353,2),(34358,2),(34360,2),(34368,2),(34378,2),(34383,2),(34388,2),(34399,2),(34406,2),(34409,2),(34421,2),(34444,2),(34446,2),(34450,2),(34452,2),(34477,2),(34478,2),(34483,2),(34491,2),(34493,2),(34494,2),(34498,2),(34499,2),(34502,2),(34509,2),(34518,2),(34541,2),(34550,2),(34562,2),(34564,2),(34566,2),(34575,2),(34585,2),(34587,2),(34590,2),(34601,2),(34607,2),(34612,2),(34621,2),(34627,2),(34629,2),(34640,2),(34644,2),(34652,2),(34655,2),(34659,2),(34684,2),(34689,2),(34696,2),(34707,2),(34712,2),(34713,2),(34720,2),(34721,2),(34728,2),(34729,2),(34730,2),(34736,2),(34744,2),(34745,2),(34754,2),(34757,2),(34772,2),(34775,2),(34784,2),(34785,2),(34786,2),(34792,2),(34797,2),(34798,2),(34802,2),(34805,2),(34814,2),(34817,2),(34827,2),(34829,2),(34832,2),(34842,2),(34846,2),(34854,2),(34870,2),(34871,2),(34872,2),(34891,2),(34900,2),(34905,2),(34906,2),(34912,2),(34916,2),(34917,2),(34921,2),(34935,2),(34947,2),(34962,2),(34965,2),(34969,2),(34970,2),(34977,2),(34978,2),(34987,2),(34990,2),(34997,2),(35003,2),(35005,2),(35014,2),(35019,2),(35023,2),(35033,2),(35042,2),(35043,2),(35045,2),(35052,2),(35054,2),(35062,2),(35063,2),(35066,2),(35073,2),(35092,2),(35100,2),(35112,2),(35120,2),(35121,2),(35125,2),(35129,2),(35130,2),(35132,2),(35134,2),(35140,2),(35147,2),(35153,2),(35156,2),(35157,2),(35169,2),(35175,2),(35184,2),(35188,2),(35192,2),(35200,2),(35204,2),(35206,2),(35212,2),(35213,2),(35215,2),(35218,2),(35220,2),(35228,2),(35240,2),(35242,2),(35246,2),(35250,2),(35252,2),(35255,2),(35268,2),(35270,2),(35273,2),(35274,2),(35290,2),(35291,2),(35313,2),(35327,2),(35335,2),(35340,2),(35342,2),(35343,2),(35357,2),(35366,2),(35367,2),(35380,2),(35386,2),(35395,2),(35405,2),(35407,2),(35417,2),(35419,2),(35420,2),(35431,2),(35443,2),(35449,2),(35450,2),(35452,2),(35453,2),(35454,2),(35456,2),(35459,2),(35463,2),(35478,2),(35496,2),(35525,2),(35530,2),(35545,2),(35546,2),(35548,2),(35552,2),(35559,2),(35570,2),(35578,2),(35583,2),(35585,2),(35594,2),(35596,2),(35611,2),(35613,2),(35616,2),(35617,2),(35619,2),(35627,2),(35630,2),(35656,2),(35682,2),(35686,2),(35687,2),(35692,2),(35696,2),(35715,2),(35716,2),(35718,2),(35721,2),(35728,2),(35731,2),(35738,2),(35743,2),(35745,2),(35758,2),(35759,2),(35762,2),(35767,2),(35770,2),(35771,2),(35782,2),(35783,2),(35792,2),(35796,2),(35798,2),(35800,2),(35808,2),(35810,2),(35817,2),(35819,2),(35821,2),(35839,2),(35844,2),(35845,2),(35853,2),(35855,2),(35866,2),(35867,2),(35889,2),(35898,2),(35906,2),(35912,2),(35916,2),(35919,2),(35924,2),(35927,2),(35942,2),(35946,2),(35951,2),(35955,2),(35957,2),(35958,2),(35971,2),(35994,2),(36009,2),(36010,2),(36013,2),(36026,2),(36027,2),(36036,2),(36044,2),(36046,2),(36051,2),(36054,2),(36057,2),(36065,2),(36067,2),(36068,2),(36069,2),(36072,2),(36075,2),(36076,2),(36083,2),(36106,2),(36109,2),(36123,2),(36129,2),(36130,2),(36132,2),(36140,2),(36147,2),(36176,2),(36182,2),(36198,2),(36206,2),(36218,2),(36229,2),(36234,2),(36235,2),(36252,2),(36256,2),(36268,2),(36275,2),(36276,2),(36277,2),(36281,2),(36282,2),(36285,2),(36287,2),(36297,2),(36300,2),(36313,2),(36319,2),(36339,2),(36341,2),(36344,2),(36357,2),(36360,2),(36370,2),(36375,2),(36379,2),(36384,2),(36393,2),(36406,2),(36410,2),(36413,2),(36421,2),(36427,2),(36432,2),(36433,2),(36440,2),(36448,2),(36451,2),(36456,2),(36457,2),(36463,2),(36479,2),(36480,2),(36490,2),(36497,2),(36499,2),(36501,2),(36508,2),(36526,2),(36546,2),(36547,2),(36564,2),(36567,2),(36569,2),(36583,2),(36590,2),(36595,2),(36604,2),(36614,2),(36632,2),(36638,2),(36646,2),(36647,2),(36650,2),(36652,2),(36656,2),(36660,2),(36673,2),(36676,2),(36686,2),(36703,2),(36708,2),(36709,2),(36712,2),(36713,2),(36715,2),(36716,2),(36719,2),(36721,2),(36729,2),(36732,2),(36737,2),(36742,2),(36745,2),(36746,2),(36750,2),(36751,2),(36753,2),(36754,2),(36755,2),(36760,2),(36761,2),(36767,2),(36769,2),(36772,2),(36781,2),(36784,2),(36792,2),(36793,2),(36794,2),(36814,2),(36817,2),(36821,2),(36828,2),(36829,2),(36833,2),(36834,2),(36846,2),(36859,2),(36864,2),(36886,2),(36887,2),(36888,2),(36889,2),(36901,2),(36903,2),(36906,2),(36921,2),(36942,2),(36948,2),(36950,2),(36954,2),(36955,2),(36956,2),(36960,2),(36971,2),(36972,2),(36973,2),(36980,2),(36986,2),(36989,2),(36992,2),(36998,2),(37002,2),(37004,2),(37007,2),(37013,2),(37014,2),(37032,2),(37035,2),(37037,2),(37038,2),(37043,2),(37063,2),(37068,2),(37087,2),(37089,2),(37097,2),(37098,2),(37102,2),(37115,2),(37117,2),(37137,2),(37153,2),(37156,2),(37159,2),(37161,2),(37169,2),(37177,2),(37178,2),(37180,2),(37181,2),(37189,2),(37196,2),(37198,2),(37199,2),(37203,2),(37211,2),(37219,2),(37224,2),(37233,2),(37234,2),(37241,2),(37242,2),(37250,2),(37255,2),(37258,2),(37259,2),(37265,2),(37275,2),(37277,2),(37281,2),(37282,2),(37285,2),(37291,2),(37298,2),(37311,2),(37315,2),(37317,2),(37331,2),(37333,2),(37336,2),(37342,2),(37345,2),(37348,2),(37353,2),(37357,2),(37367,2),(37372,2),(37374,2),(37384,2),(37394,2),(37395,2),(37410,2),(37412,2),(37432,2),(37439,2),(37447,2),(37453,2),(37466,2),(37479,2),(37482,2),(37487,2),(37490,2),(37497,2),(37498,2),(37501,2),(37527,2),(37538,2),(37560,2),(37569,2),(37574,2),(37576,2),(37581,2),(37587,2),(37591,2),(37599,2),(37603,2),(37608,2),(37610,2),(37612,2),(37618,2),(37626,2),(37629,2),(37631,2),(37638,2),(37645,2),(37656,2),(37660,2),(37665,2),(37668,2),(37669,2),(37671,2),(37674,2),(37679,2),(37681,2),(37685,2),(37694,2),(37698,2),(37699,2),(37702,2),(37714,2),(37721,2),(37722,2),(37725,2),(37726,2),(37729,2),(37738,2),(37763,2),(37764,2),(37765,2),(37767,2),(37771,2),(37773,2),(37778,2),(37779,2),(37784,2),(37786,2),(37791,2),(37792,2),(37800,2),(37801,2),(37804,2),(37808,2),(37814,2),(37827,2),(37828,2),(37834,2),(37840,2),(37844,2),(37858,2),(37861,2),(37863,2),(37864,2),(37878,2),(37883,2),(37893,2),(37903,2),(37904,2),(37917,2),(37918,2),(37930,2),(37931,2),(37934,2),(37937,2),(37956,2),(37963,2),(37974,2),(37975,2),(37986,2),(37996,2),(38005,2),(38008,2),(38020,2),(38025,2),(38027,2),(38028,2),(38029,2),(38032,2),(38037,2),(38039,2),(38041,2),(38045,2),(38060,2),(38061,2),(38062,2),(38079,2),(38082,2),(38085,2),(38095,2),(38098,2),(38100,2),(38113,2),(38128,2),(38135,2),(38138,2),(38139,2),(38147,2),(38153,2),(38157,2),(38160,2),(38169,2),(38171,2),(38172,2),(38174,2),(38176,2),(38184,2),(38187,2),(38189,2),(38190,2),(38193,2),(38195,2),(38198,2),(38202,2),(38217,2),(38219,2),(38220,2),(38222,2),(38232,2),(38234,2),(38235,2),(38240,2),(38241,2),(38251,2),(38254,2),(38256,2),(38259,2),(38263,2),(38270,2),(38286,2),(38291,2),(38293,2),(38304,2),(38311,2),(38319,2),(38322,2),(38325,2),(38329,2),(38336,2),(38338,2),(38348,2),(38351,2),(38355,2),(38357,2),(38372,2),(38377,2),(38378,2),(38379,2),(38386,2),(38388,2),(38401,2),(38402,2),(38414,2),(38416,2),(38423,2),(38424,2),(38432,2),(38436,2),(38445,2),(38457,2),(38459,2),(38460,2),(38462,2),(38464,2),(38465,2),(38476,2),(38483,2),(38485,2),(38500,2),(38502,2),(38507,2),(38511,2),(38535,2),(38536,2),(38537,2),(38548,2),(38552,2),(38565,2),(38570,2),(38582,2),(38588,2),(38589,2),(38590,2),(38601,2),(38604,2),(38607,2),(38614,2),(38619,2),(38620,2),(38621,2),(38622,2),(38626,2),(38628,2),(38643,2),(38652,2),(38664,2),(38670,2),(38672,2),(38679,2),(38681,2),(38686,2),(38688,2),(38691,2),(38696,2),(38702,2),(38705,2),(38713,2),(38721,2),(38725,2),(38728,2),(38730,2),(38741,2),(38752,2),(38755,2),(38763,2),(38768,2),(38769,2),(38776,2),(38777,2),(38791,2),(38793,2),(38806,2),(38810,2),(38822,2),(38829,2),(38836,2),(38838,2),(38841,2),(38849,2),(38857,2),(38863,2),(38874,2),(38878,2),(38879,2),(38883,2),(38888,2),(38890,2),(38900,2),(38906,2),(38908,2),(38912,2),(38914,2),(38925,2),(38934,2),(38942,2),(38947,2),(38953,2),(38964,2),(38966,2),(38968,2),(38969,2),(38976,2),(38984,2),(38985,2),(38989,2),(38991,2),(38999,2),(39001,2),(39002,2),(39013,2),(39014,2),(39017,2),(39018,2),(39034,2),(39045,2),(39049,2),(39054,2),(39058,2),(39065,2),(39094,2),(39117,2),(39128,2),(39135,2),(39142,2),(39150,2),(39155,2),(39159,2),(39163,2),(39167,2),(39168,2),(39172,2),(39175,2),(39176,2),(39186,2),(39203,2),(39204,2),(39210,2),(39211,2),(39217,2),(39227,2),(39234,2),(39239,2),(39240,2),(39244,2),(39247,2),(39260,2),(39261,2),(39264,2),(39269,2),(39271,2),(39276,2),(39277,2),(39278,2),(39281,2),(39291,2),(39302,2),(39303,2),(39304,2),(39309,2),(39313,2),(39315,2),(39355,2),(39357,2),(39367,2),(39374,2),(39377,2),(39381,2),(39383,2),(39400,2),(39407,2),(39410,2),(39416,2),(39430,2),(39447,2),(39449,2),(39459,2),(39470,2),(39472,2),(39485,2),(39487,2),(39489,2),(39496,2),(39498,2),(39502,2),(39506,2),(39509,2),(39514,2),(39529,2),(39534,2),(39536,2),(39548,2),(39560,2),(39563,2),(39569,2),(39574,2),(39579,2),(39580,2),(39581,2),(39582,2),(39587,2),(39588,2),(39613,2),(39618,2),(39620,2),(39621,2),(39622,2),(39625,2),(39628,2),(39644,2),(39645,2),(39647,2),(39652,2),(39659,2),(39669,2),(39671,2),(39673,2),(39675,2),(39690,2),(39699,2),(39717,2),(39725,2),(39729,2),(39730,2),(39738,2),(39741,2),(39744,2),(39748,2),(39750,2),(39752,2),(39754,2),(39756,2),(39758,2),(39760,2),(39761,2),(39763,2),(39765,2),(39768,2),(39778,2),(39780,2),(39781,2),(39782,2),(39797,2),(39800,2),(39810,2),(39815,2),(39825,2),(39829,2),(39840,2),(39844,2),(39845,2),(39847,2),(39857,2),(39863,2),(39870,2),(39872,2),(39888,2),(39890,2),(39897,2),(39899,2),(39900,2),(39902,2),(39903,2),(39909,2),(39914,2),(39917,2),(39918,2),(39934,2),(39943,2),(39951,2),(39955,2),(39956,2),(39963,2),(39977,2),(39982,2),(39987,2),(39993,2),(40000,2),(40012,2),(40015,2),(40020,2),(40021,2),(40022,2),(40029,2),(40030,2),(40035,2),(40036,2),(40042,2),(40064,2),(40070,2),(40072,2),(40073,2),(40079,2),(40090,2),(40091,2),(40097,2),(40106,2),(40107,2),(40109,2),(40110,2),(40113,2),(40124,2),(40130,2),(40135,2),(40140,2),(40156,2),(40160,2),(40177,2),(40189,2),(40199,2),(40215,2),(40222,2),(40224,2),(40226,2),(40230,2),(40235,2),(40241,2),(40247,2),(40250,2),(40260,2),(40261,2),(40273,2),(40283,2),(40286,2),(40289,2),(40293,2),(40296,2),(40301,2),(40322,2),(40325,2),(40332,2),(40333,2),(40343,2),(40350,2),(40356,2),(40362,2),(40373,2),(40377,2),(40380,2),(40385,2),(40391,2),(40404,2),(40427,2),(40435,2),(40446,2),(40457,2),(40460,2),(40470,2),(40472,2),(40483,2),(40485,2),(40489,2),(40491,2),(40493,2),(40494,2),(40499,2),(40500,2),(40504,2),(40508,2),(40518,2),(40519,2),(40522,2),(40523,2),(40525,2),(40530,2),(40532,2),(40534,2),(40535,2),(40548,2),(40555,2),(40558,2),(40559,2),(40561,2),(40574,2),(40579,2),(40583,2),(40588,2),(40592,2),(40593,2),(40599,2),(40600,2),(40617,2),(40618,2),(40625,2),(40627,2),(40640,2),(40646,2),(40647,2),(40652,2),(40653,2),(40654,2),(40669,2),(40674,2),(40676,2),(40680,2),(40687,2),(40689,2),(40690,2),(40696,2),(40700,2),(40707,2),(40718,2),(40719,2),(40727,2),(40728,2),(40739,2),(40742,2),(40747,2),(40755,2),(40756,2),(40762,2),(40765,2),(40770,2),(40776,2),(40784,2),(40795,2),(40805,2),(40814,2),(40822,2),(40823,2),(40832,2),(40856,2),(40857,2),(40863,2),(40864,2),(40867,2),(40875,2),(40878,2),(40882,2),(40887,2),(40893,2),(40894,2),(40896,2),(40897,2),(40899,2),(40923,2),(40927,2),(40939,2),(40947,2),(40951,2),(40959,2),(40960,2),(40961,2),(40966,2),(40967,2),(40968,2),(40971,2),(40974,2),(41000,2),(41009,2),(41015,2),(41016,2),(41018,2),(41021,2),(41037,2),(41046,2),(41050,2),(41054,2),(41056,2),(41068,2),(41071,2),(41079,2),(41080,2),(41081,2),(41083,2),(41100,2),(41101,2),(41112,2),(41113,2),(41116,2),(41119,2),(41121,2),(41123,2),(41133,2),(41162,2),(41166,2),(41175,2),(41180,2),(41183,2),(41186,2),(41189,2),(41191,2),(41198,2),(41200,2),(41213,2),(41217,2),(41222,2),(41232,2),(41236,2),(41238,2),(41243,2),(41246,2),(41249,2),(41250,2),(41255,2),(41258,2),(41264,2),(41265,2),(41276,2),(41277,2),(41293,2),(41303,2),(41304,2),(41307,2),(41322,2),(41329,2),(41330,2),(41331,2),(41333,2),(41336,2),(41341,2),(41347,2),(41351,2),(41352,2),(41355,2),(41359,2),(41370,2),(41375,2),(41390,2),(41391,2),(41392,2),(41399,2),(41409,2),(41430,2),(41449,2),(41452,2),(41456,2),(41458,2),(41459,2),(41460,2),(41462,2),(41464,2),(41467,2),(41470,2),(41472,2),(41474,2),(41475,2),(41476,2),(41488,2),(41492,2),(41493,2),(41495,2),(41499,2),(41524,2),(41526,2),(41527,2),(41528,2),(41540,2),(41549,2),(41550,2),(41562,2),(41566,2),(41576,2),(41581,2),(41590,2),(41595,2),(41615,2),(41617,2),(41627,2),(41641,2),(41642,2),(41646,2),(41647,2),(41654,2),(41660,2),(41662,2),(41666,2),(41668,2),(41670,2),(41674,2),(41675,2),(41679,2),(41682,2),(41694,2),(41700,2),(41710,2),(41711,2),(41712,2),(41716,2),(41731,2),(41740,2),(41742,2),(41753,2),(41755,2),(41760,2),(41763,2),(41770,2),(41772,2),(41782,2),(41785,2),(41800,2),(41804,2),(41805,2),(41806,2),(41808,2),(41809,2),(41812,2),(41836,2),(41837,2),(41843,2),(41847,2),(41848,2),(41850,2),(41860,2),(41861,2),(41870,2),(41874,2),(41878,2),(41879,2),(41885,2),(41887,2),(41888,2),(41899,2),(41905,2),(41912,2),(41916,2),(41921,2),(41924,2),(41925,2),(41931,2),(41937,2),(41939,2),(41945,2),(41961,2),(41963,2),(41977,2),(41996,2),(42001,2),(42006,2),(42011,2),(42012,2),(42022,2),(42033,2),(42034,2),(42039,2),(42069,2),(42073,2),(42081,2),(42091,2),(42098,2),(42103,2),(42106,2),(42110,2),(42114,2),(42115,2),(42120,2),(42131,2),(42137,2),(42138,2),(42139,2),(42148,2),(42157,2),(42161,2),(42167,2),(42173,2),(42177,2),(42178,2),(42180,2),(42182,2),(42183,2),(42187,2),(42193,2),(42195,2),(42201,2),(42203,2),(42207,2),(42215,2),(42217,2),(42224,2),(42228,2),(42229,2),(42232,2),(42248,2),(42253,2),(42257,2),(42259,2),(42264,2),(42266,2),(42267,2),(42269,2),(42275,2),(42277,2),(42294,2),(42295,2),(42303,2),(42308,2),(42311,2),(42312,2),(42313,2),(42316,2),(42317,2),(42318,2),(42338,2),(42350,2),(42356,2),(42358,2),(42364,2),(42365,2),(42368,2),(42374,2),(42375,2),(42380,2),(42384,2),(42405,2),(42411,2),(42414,2),(42421,2),(42426,2),(42442,2),(42448,2),(42450,2),(42451,2),(42453,2),(42454,2),(42460,2),(42473,2),(42475,2),(42476,2),(42477,2),(42478,2),(42480,2),(42482,2),(42483,2),(42497,2),(42498,2),(42506,2),(42511,2),(42515,2),(42520,2),(42523,2),(42540,2),(42547,2),(42563,2),(42567,2),(42573,2),(42586,2),(42590,2),(42596,2),(42604,2),(42618,2),(42625,2),(42633,2),(42634,2),(42636,2),(42637,2),(42644,2),(42656,2),(42668,2),(42672,2),(42675,2),(42679,2),(42680,2),(42692,2),(42693,2),(42695,2),(42703,2),(42714,2),(42720,2),(42723,2),(42729,2),(42757,2),(42758,2),(42762,2),(42769,2),(42779,2),(42781,2),(42787,2),(42789,2),(42797,2),(42800,2),(42801,2),(42803,2),(42805,2),(42806,2),(42808,2),(42814,2),(42815,2),(42821,2),(42823,2),(42854,2),(42860,2),(42864,2),(42873,2),(42874,2),(42876,2),(42879,2),(42883,2),(42889,2),(42894,2),(42902,2),(42904,2),(42917,2),(42924,2),(42925,2),(42931,2),(42932,2),(42938,2),(42939,2),(42948,2),(42951,2),(42959,2),(42968,2),(42970,2),(42975,2),(42977,2),(42979,2),(42981,2),(42985,2),(42986,2),(42991,2),(42996,2),(42997,2),(42999,2),(43000,2),(43002,2),(43008,2),(43010,2),(43020,2),(43021,2),(43025,2),(43032,2),(43035,2),(43067,2),(43085,2),(43088,2),(43093,2),(43097,2),(43113,2),(43114,2),(43116,2),(43121,2),(43123,2),(43131,2),(43138,2),(43143,2),(43146,2),(43149,2),(43155,2),(43182,2),(43185,2),(43191,2),(43209,2),(43211,2),(43223,2),(43225,2),(43227,2),(43228,2),(43234,2),(43237,2),(43242,2),(43255,2),(43257,2),(43261,2),(43263,2),(43268,2),(43271,2),(43279,2),(43280,2),(43281,2),(43283,2),(43285,2),(43286,2),(43293,2),(43295,2),(43310,2),(43317,2),(43328,2),(43329,2),(43331,2),(43332,2),(43333,2),(43344,2),(43354,2),(43356,2),(43358,2),(43367,2),(43377,2),(43389,2),(43397,2),(43404,2),(43405,2),(43406,2),(43413,2),(43433,2),(43437,2),(43447,2),(43448,2),(43457,2),(43463,2),(43465,2),(43467,2),(43470,2),(43476,2),(43488,2),(43491,2),(43492,2),(43497,2),(43502,2),(43515,2),(43534,2),(43542,2),(43548,2),(43564,2),(43568,2),(43569,2),(43571,2),(43577,2),(43583,2),(43601,2),(43605,2),(43610,2),(43615,2),(43627,2),(43630,2),(43641,2),(43647,2),(43649,2),(43653,2),(43654,2),(43659,2),(43661,2),(43669,2),(43686,2),(43689,2),(43696,2),(43726,2),(43727,2),(43729,2),(43741,2),(43742,2),(43752,2),(43754,2),(43763,2),(43777,2),(43783,2),(43788,2),(43795,2),(43801,2),(43804,2),(43826,2),(43842,2),(43844,2),(43846,2),(43856,2),(43859,2),(43862,2),(43866,2),(43868,2),(43870,2),(43876,2),(43879,2),(43888,2),(43892,2),(43902,2),(43904,2),(43908,2),(43913,2),(43915,2),(43916,2),(43925,2),(43926,2),(43927,2),(43930,2),(43932,2),(43942,2),(43975,2),(43981,2),(43983,2),(44013,2),(44017,2),(44027,2),(44028,2),(44029,2),(44042,2),(44044,2),(44049,2),(44056,2),(44057,2),(44060,2),(44063,2),(44065,2),(44068,2),(44069,2),(44086,2),(44087,2),(44088,2),(44096,2),(44105,2),(44117,2),(44123,2),(44127,2),(44138,2),(44148,2),(44149,2),(44156,2),(44158,2),(44159,2),(44163,2),(44169,2),(44180,2),(44184,2),(44201,2),(44215,2),(44216,2),(44220,2),(44233,2),(44235,2),(44240,2),(44252,2),(44258,2),(44266,2),(44273,2),(44274,2),(44280,2),(44291,2),(44296,2),(44298,2),(44336,2),(44337,2),(44342,2),(44350,2),(44352,2),(44354,2),(44365,2),(44372,2),(44378,2),(44382,2),(44388,2),(44395,2),(44401,2),(44409,2),(44410,2),(44413,2),(44417,2),(44425,2),(44433,2),(44445,2),(44446,2),(44449,2),(44450,2),(44452,2),(44464,2),(44473,2),(44474,2),(44476,2),(44481,2),(44482,2),(44484,2),(44485,2),(44494,2),(44500,2),(44510,2),(44512,2),(44514,2),(44515,2),(44520,2),(44525,2),(44534,2),(44541,2),(44557,2),(44564,2),(44566,2),(44571,2),(44576,2),(44577,2),(44578,2),(44585,2),(44587,2),(44594,2),(44596,2),(44599,2),(44601,2),(44602,2),(44605,2),(44607,2),(44612,2),(44616,2),(44627,2),(44630,2),(44635,2),(44641,2),(44645,2),(44649,2),(44651,2),(44654,2),(44660,2),(44665,2),(44667,2),(44671,2),(44684,2),(44685,2),(44700,2),(44703,2),(44711,2),(44716,2),(44723,2),(44724,2),(44735,2),(44739,2),(44740,2),(44745,2),(44747,2),(44749,2),(44756,2),(44763,2),(44765,2),(44769,2),(44793,2),(44796,2),(44801,2),(44802,2),(44811,2),(44822,2),(44827,2),(44836,2),(44838,2),(44840,2),(44842,2),(44844,2),(44846,2),(44858,2),(44875,2),(44888,2),(44895,2),(44898,2),(44902,2),(44903,2),(44910,2),(44917,2),(44923,2),(44933,2),(44965,2),(44971,2),(44975,2),(44984,2),(44985,2),(44987,2),(44991,2),(44992,2),(45004,2),(45006,2),(45017,2),(45019,2),(45024,2),(45027,2),(45032,2),(45034,2),(45042,2),(45043,2),(45048,2),(45059,2),(45064,2),(45072,2),(45075,2),(45077,2),(45078,2),(45083,2),(45089,2),(45091,2),(45095,2),(45099,2),(45104,2),(45105,2),(45109,2),(45124,2),(45149,2),(45157,2),(45164,2),(45169,2),(45178,2),(45183,2),(45190,2),(45194,2),(45195,2),(45198,2),(45201,2),(45203,2),(45205,2),(45206,2),(45208,2),(45219,2),(45221,2),(45235,2),(45237,2),(45242,2),(45246,2),(45251,2),(45255,2),(45257,2),(45260,2),(45264,2),(45265,2),(45272,2),(45277,2),(45285,2),(45295,2),(45307,2),(45309,2),(45313,2),(45324,2),(45325,2),(45326,2),(45344,2),(45349,2),(45362,2),(45363,2),(45369,2),(45375,2),(45384,2),(45388,2),(45392,2),(45396,2),(45419,2),(45425,2),(45447,2),(45449,2),(45459,2),(45463,2),(45465,2),(45470,2),(45473,2),(45482,2),(45484,2),(45491,2),(45497,2),(45529,2),(45535,2),(45536,2),(45540,2),(45541,2),(45547,2),(45552,2),(45556,2),(45565,2),(45567,2),(45572,2),(45579,2),(45590,2),(45593,2),(45600,2),(45602,2),(45610,2),(45625,2),(45629,2),(45640,2),(45652,2),(45659,2),(45667,2),(45668,2),(45680,2),(45687,2),(45688,2),(45700,2),(45702,2),(45704,2),(45707,2),(45708,2),(45709,2),(45714,2),(45717,2),(45729,2),(45731,2),(45735,2),(45758,2),(45760,2),(45765,2),(45766,2),(45768,2),(45769,2),(45772,2),(45780,2),(45786,2),(45791,2),(45798,2),(45800,2),(45807,2),(45812,2),(45814,2),(45815,2),(45819,2),(45827,2),(45828,2),(45835,2),(45840,2),(45857,2),(45863,2),(45868,2),(45877,2),(45879,2),(45880,2),(45890,2),(45896,2),(45902,2),(45915,2),(45920,2),(45921,2),(45934,2),(45942,2),(45948,2),(45949,2),(45952,2),(45953,2),(45959,2),(45965,2),(45967,2),(45969,2),(45981,2),(45982,2),(45983,2),(45994,2),(46006,2),(46012,2),(46014,2),(46015,2),(46022,2),(46040,2),(46041,2),(46046,2),(46054,2),(46055,2),(46065,2),(46072,2),(46077,2),(46078,2),(46089,2),(46102,2),(46107,2),(46117,2),(46118,2),(46122,2),(46128,2),(46140,2),(46143,2),(46146,2),(46150,2),(46152,2),(46154,2),(46163,2),(46165,2),(46172,2),(46174,2),(46181,2),(46182,2),(46200,2),(46205,2),(46208,2),(46211,2),(46221,2),(46227,2),(46235,2),(46238,2),(46242,2),(46250,2),(46255,2),(46267,2),(46278,2),(46283,2),(46285,2),(46287,2),(46288,2),(46293,2),(46302,2),(46310,2),(46312,2),(46314,2),(46315,2),(46319,2),(46320,2),(46324,2),(46326,2),(46338,2),(46342,2),(46343,2),(46352,2),(46354,2),(46363,2),(46364,2),(46365,2),(46367,2),(46382,2),(46388,2),(46389,2),(46404,2),(46406,2),(46409,2),(46426,2),(46430,2),(46441,2),(46457,2),(46458,2),(46459,2),(46468,2),(46472,2),(46482,2),(46485,2),(46490,2),(46492,2),(46504,2),(46508,2),(46510,2),(46517,2),(46529,2),(46536,2),(46542,2),(46544,2),(46548,2),(46551,2),(46552,2),(46554,2),(46567,2),(46570,2),(46592,2),(46595,2),(46602,2),(46603,2),(46617,2),(46619,2),(46624,2),(46626,2),(46627,2),(46628,2),(46633,2),(46634,2),(46643,2),(46649,2),(46655,2),(46657,2),(46661,2),(46662,2),(46676,2),(46678,2),(46680,2),(46682,2),(46683,2),(46689,2),(46691,2),(46698,2),(46699,2),(46704,2),(46724,2),(46737,2),(46739,2),(46751,2),(46753,2),(46766,2),(46772,2),(46773,2),(46783,2),(46786,2),(46791,2),(46792,2),(46815,2),(46818,2),(46820,2),(46824,2),(46829,2),(46830,2),(46846,2),(46847,2),(46849,2),(46887,2),(46896,2),(46902,2),(46905,2),(46908,2),(46911,2),(46919,2),(46926,2),(46934,2),(46935,2),(46938,2),(46945,2),(46947,2),(46965,2),(46966,2),(46988,2),(47005,2),(47009,2),(47016,2),(47018,2),(47021,2),(47029,2),(47033,2),(47041,2),(47043,2),(47057,2),(47070,2),(47077,2),(47084,2),(47092,2),(47098,2),(47101,2),(47102,2),(47107,2),(47111,2),(47112,2),(47117,2),(47119,2),(47130,2),(47135,2),(47148,2),(47152,2),(47167,2),(47184,2),(47194,2),(47196,2),(47199,2),(47201,2),(47204,2),(47213,2),(47215,2),(47218,2),(47232,2),(47242,2),(47246,2),(47251,2),(47253,2),(47256,2),(47257,2),(47268,2),(47282,2),(47286,2),(47287,2),(47293,2),(47296,2),(47298,2),(47318,2),(47321,2),(47328,2),(47334,2),(47339,2),(47351,2),(47380,2),(47392,2),(47400,2),(47401,2),(47415,2),(47420,2),(47421,2),(47426,2),(47430,2),(47438,2),(47440,2),(47441,2),(47449,2),(47452,2),(47453,2),(47458,2),(47470,2),(47472,2),(47474,2),(47477,2),(47483,2),(47497,2),(47507,2),(47511,2),(47514,2),(47517,2),(47518,2),(47539,2),(47542,2),(47543,2),(47545,2),(47556,2),(47557,2),(47563,2),(47568,2),(47584,2),(47588,2),(47589,2),(47603,2),(47610,2),(47628,2),(47629,2),(47633,2),(47642,2),(47643,2),(47647,2),(47670,2),(47671,2),(47679,2),(47686,2),(47691,2),(47698,2),(47703,2),(47716,2),(47717,2),(47725,2),(47734,2),(47739,2),(47743,2),(47747,2),(47766,2),(47772,2),(47779,2),(47783,2),(47786,2),(47789,2),(47809,2),(47810,2),(47814,2),(47818,2),(47822,2),(47830,2),(47834,2),(47840,2),(47855,2),(47857,2),(47859,2),(47860,2),(47861,2),(47869,2),(47882,2),(47885,2),(47890,2),(47905,2),(47907,2),(47913,2),(47918,2),(47919,2),(47930,2),(47937,2),(47939,2),(47948,2),(47955,2),(47962,2),(47963,2),(47965,2),(47967,2),(47968,2),(47973,2),(47988,2),(47989,2),(47993,2),(48005,2),(48006,2),(48007,2),(48008,2),(48012,2),(48013,2),(48022,2),(48050,2),(48051,2),(48058,2),(48066,2),(48067,2),(48068,2),(48073,2),(48077,2),(48080,2),(48083,2),(48096,2),(48098,2),(48116,2),(48117,2),(48118,2),(48122,2),(48123,2),(48124,2),(48135,2),(48137,2),(48139,2),(48143,2),(48163,2),(48164,2),(48165,2),(48167,2),(48168,2),(48171,2),(48174,2),(48183,2),(48195,2),(48202,2),(48209,2),(48218,2),(48221,2),(48224,2),(48225,2),(48230,2),(48239,2),(48250,2),(48254,2),(48255,2),(48265,2),(48277,2),(48311,2),(48320,2),(48353,2),(48366,2),(48367,2),(48370,2),(48372,2),(48393,2),(48398,2),(48410,2),(48417,2),(48424,2),(48429,2),(48430,2),(48436,2),(48442,2),(48444,2),(48446,2),(48462,2),(48463,2),(48473,2),(48474,2),(48482,2),(48488,2),(48491,2),(48509,2),(48518,2),(48534,2),(48537,2),(48539,2),(48543,2),(48545,2),(48549,2),(48553,2),(48554,2),(48555,2),(48559,2),(48566,2),(48589,2),(48592,2),(48598,2),(48600,2),(48603,2),(48606,2),(48609,2),(48611,2),(48612,2),(48620,2),(48624,2),(48634,2),(48645,2),(48646,2),(48657,2),(48664,2),(48669,2),(48673,2),(48684,2),(48692,2),(48699,2),(48704,2),(48706,2),(48718,2),(48725,2),(48726,2),(48767,2),(48778,2),(48780,2),(48781,2),(48787,2),(48789,2),(48805,2),(48807,2),(48808,2),(48810,2),(48814,2),(48815,2),(48829,2),(48838,2),(48841,2),(48875,2),(48877,2),(48882,2),(48891,2),(48896,2),(48902,2),(48909,2),(48916,2),(48921,2),(48925,2),(48934,2),(48937,2),(48948,2),(48957,2),(48958,2),(48967,2),(48970,2),(48980,2),(48982,2),(48985,2),(48993,2),(48999,2),(49003,2),(49007,2),(49008,2),(49012,2),(49016,2),(49019,2),(49027,2),(49028,2),(49034,2),(49035,2),(49036,2),(49047,2),(49049,2),(49050,2),(49059,2),(49065,2),(49066,2),(49075,2),(49077,2),(49092,2),(49098,2),(49107,2),(49113,2),(49117,2),(49118,2),(49120,2),(49122,2),(49124,2),(49134,2),(49144,2),(49152,2),(49157,2),(49158,2),(49160,2),(49177,2),(49180,2),(49191,2),(49194,2),(49198,2),(49208,2),(49210,2),(49216,2),(49236,2),(49244,2),(49248,2),(49250,2),(49254,2),(49257,2),(49258,2),(49260,2),(49261,2),(49263,2),(49274,2),(49276,2),(49283,2),(49290,2),(49292,2),(49296,2),(49299,2),(49301,2),(49302,2),(49303,2),(49306,2),(49311,2),(49322,2),(49323,2),(49337,2),(49342,2),(49349,2),(49353,2),(49357,2),(49361,2),(49370,2),(49378,2),(49388,2),(49391,2),(49392,2),(49397,2),(49402,2),(49404,2),(49417,2),(49422,2),(49426,2),(49427,2),(49429,2),(49435,2),(49441,2),(49448,2),(49451,2),(49452,2),(49453,2),(49458,2),(49464,2),(49468,2),(49471,2),(49479,2),(49486,2),(49489,2),(49504,2),(49512,2),(49524,2),(49527,2),(49530,2),(49531,2),(49537,2),(49541,2),(49552,2),(49555,2),(49563,2),(49575,2),(49576,2),(49577,2),(49583,2),(49584,2),(49586,2),(49590,2),(49599,2),(49604,2),(49617,2),(49621,2),(49629,2),(49630,2),(49634,2),(49636,2),(49643,2),(49649,2),(49663,2),(49672,2),(49673,2),(49684,2),(49687,2),(49688,2),(49689,2),(49700,2),(49712,2),(49718,2),(49725,2),(49726,2),(49729,2),(49741,2),(49742,2),(49750,2),(49754,2),(49760,2),(49761,2),(49771,2),(49775,2),(49782,2),(49783,2),(49795,2),(49805,2),(49806,2),(49810,2),(49812,2),(49815,2),(49817,2),(49824,2),(49827,2),(49837,2),(49839,2),(49844,2),(49853,2),(49866,2),(49868,2),(49869,2),(49872,2),(49874,2),(49877,2),(49878,2),(49879,2),(49887,2),(49896,2),(49899,2),(49900,2),(49902,2),(49916,2),(49919,2),(49925,2),(49943,2),(49947,2),(49949,2),(49954,2),(49955,2),(49957,2),(49963,2),(49966,2),(49974,2),(49980,2),(49984,2),(49989,2),(49997,2),(50009,2),(50016,2),(50021,2),(50035,2),(50050,2),(50051,2),(50065,2),(50105,2),(50110,2),(50114,2),(50119,2),(50124,2),(50129,2),(50134,2),(50135,2),(50146,2),(50147,2),(50161,2),(50162,2),(50171,2),(50202,2),(50207,2),(50214,2),(50215,2),(50216,2),(50218,2),(50221,2),(50222,2),(50224,2),(50230,2),(50231,2),(50241,2),(50244,2),(50245,2),(50261,2),(50263,2),(50271,2),(50274,2),(50277,2),(50284,2),(50288,2),(50296,2),(50300,2),(50304,2),(50311,2),(50317,2),(50328,2),(50343,2),(50349,2),(50355,2),(50359,2),(50361,2),(50377,2),(50390,2),(50396,2),(50398,2),(50401,2),(50402,2),(50405,2),(50409,2),(50414,2),(50418,2),(50419,2),(50420,2),(50432,2),(50436,2),(50456,2),(50459,2),(50463,2),(50469,2),(50471,2),(50472,2),(50479,2),(50490,2),(50491,2),(50502,2),(50508,2),(50518,2),(50521,2),(50524,2),(50533,2),(50547,2),(50565,2),(50573,2),(50578,2),(50582,2),(50589,2),(50592,2),(50595,2),(50600,2),(50615,2),(50616,2),(50619,2),(50621,2),(50633,2),(50634,2),(50638,2),(50648,2),(50660,2),(50669,2),(50673,2),(50675,2),(50686,2),(50689,2),(50690,2),(50694,2),(50698,2),(50704,2),(50708,2),(50710,2),(50716,2),(50719,2),(50725,2),(50744,2),(50749,2),(50754,2),(50759,2),(50764,2),(50768,2),(50772,2),(50774,2),(50783,2),(50797,2),(50801,2),(50807,2),(50814,2),(50818,2),(50829,2),(50844,2),(50845,2),(50846,2),(50856,2),(50863,2),(50864,2),(50881,2),(50885,2),(50887,2),(50889,2),(50895,2),(50900,2),(50903,2),(50916,2),(50933,2),(50935,2),(50944,2),(50948,2),(50956,2),(50965,2),(50966,2),(50970,2),(50977,2),(50988,2),(50995,2),(50996,2),(51006,2),(51008,2),(51013,2),(51015,2),(51024,2),(51042,2),(51046,2),(51050,2),(51072,2),(51094,2),(51097,2),(51098,2),(51101,2),(51102,2),(51103,2),(51108,2),(51125,2),(51126,2),(51127,2),(51130,2),(51131,2),(51132,2),(51136,2),(51137,2),(51138,2),(51139,2),(51144,2),(51157,2),(51165,2),(51172,2),(51180,2),(51187,2),(51193,2),(51195,2),(51199,2),(51203,2),(51204,2),(51212,2),(51215,2),(51225,2),(51232,2),(51236,2),(51241,2),(51243,2),(51246,2),(51248,2),(51254,2),(51255,2),(51269,2),(51273,2),(51277,2),(51297,2),(51312,2),(51315,2),(51316,2),(51328,2),(51334,2),(51343,2),(51345,2),(51358,2),(51359,2),(51362,2),(51363,2),(51364,2),(51366,2),(51377,2),(51385,2),(51399,2),(51407,2),(51409,2),(51410,2),(51431,2),(51436,2),(51443,2),(51458,2),(51459,2),(51460,2),(51463,2),(51464,2),(51468,2),(51474,2),(51476,2),(51478,2),(51482,2),(51484,2),(51486,2),(51490,2),(51499,2),(51532,2),(51535,2),(51542,2),(51548,2),(51557,2),(51563,2),(51564,2),(51568,2),(51589,2),(51599,2),(51602,2),(51603,2),(51605,2),(51610,2),(51613,2),(51614,2),(51626,2),(51627,2),(51628,2),(51629,2),(51641,2),(51644,2),(51650,2),(51651,2),(51660,2),(51661,2),(51663,2),(51675,2),(51677,2),(51679,2),(51681,2),(51708,2),(51722,2),(51731,2),(51742,2),(51746,2),(51765,2),(51766,2),(51774,2),(51783,2),(51785,2),(51788,2),(51792,2),(51793,2),(51798,2),(51799,2),(51800,2),(51811,2),(51820,2),(51821,2),(51822,2),(51827,2),(51830,2),(51842,2),(51845,2),(51851,2),(51853,2),(51856,2),(51865,2),(51869,2),(51871,2),(51874,2),(51889,2),(51895,2),(51896,2),(51898,2),(51900,2),(51909,2),(51914,2),(51915,2),(51928,2),(51936,2),(51944,2),(51951,2),(51956,2),(51970,2),(51977,2),(51984,2),(51991,2),(51992,2),(51997,2),(51998,2),(51999,2),(52009,2),(52020,2),(52025,2),(52030,2),(52040,2),(52046,2),(52049,2),(52060,2),(52061,2),(52065,2),(52073,2),(52103,2),(52104,2),(52105,2),(52108,2),(52120,2),(52125,2),(52138,2),(52139,2),(52141,2),(52142,2),(52143,2),(52146,2),(52155,2),(52158,2),(52166,2),(52190,2),(52201,2),(52217,2),(52223,2),(52224,2),(52231,2),(52235,2),(52239,2),(52241,2),(52243,2),(52254,2),(52255,2),(52257,2),(52298,2),(52328,2),(52329,2),(52339,2),(52342,2),(52348,2),(52352,2),(52362,2),(52365,2),(52378,2),(52379,2),(52382,2),(52387,2),(52391,2),(52397,2),(52404,2),(52407,2),(52429,2),(52434,2),(52436,2),(52437,2),(52452,2),(52454,2),(52465,2),(52472,2),(52482,2),(52484,2),(52490,2),(52499,2),(52502,2),(52518,2),(52527,2),(52529,2),(52532,2),(52538,2),(52553,2),(52555,2),(52558,2),(52563,2),(52566,2),(52571,2),(52575,2),(52596,2),(52623,2),(52630,2),(52632,2),(52633,2),(52642,2),(52643,2),(52649,2),(52659,2),(52672,2),(52673,2),(52676,2),(52680,2),(52684,2),(52700,2),(52703,2),(52704,2),(52710,2),(52715,2),(52719,2),(52723,2),(52731,2),(52740,2),(52761,2),(52768,2),(52773,2),(52781,2),(52785,2),(52796,2),(52805,2),(52807,2),(52809,2),(52810,2),(52815,2),(52819,2),(52830,2),(52832,2),(52835,2),(52855,2),(52866,2),(52879,2),(52883,2),(52885,2),(52888,2),(52897,2),(52898,2),(52899,2),(52902,2),(52903,2),(52905,2),(52907,2),(52911,2),(52912,2),(52925,2),(52936,2),(52938,2),(52942,2),(52962,2),(52973,2),(52984,2),(52990,2),(52992,2),(52997,2),(52998,2),(53006,2),(53020,2),(53022,2),(53035,2),(53040,2),(53050,2),(53056,2),(53063,2),(53084,2),(53089,2),(53093,2),(53095,2),(53100,2),(53111,2),(53130,2),(53140,2),(53148,2),(53152,2),(53169,2),(53172,2),(53174,2),(53180,2),(53182,2),(53187,2),(53194,2),(53197,2),(53209,2),(53210,2),(53212,2),(53223,2),(53231,2),(53238,2),(53240,2),(53243,2),(53252,2),(53253,2),(53264,2),(53269,2),(53276,2),(53279,2),(53280,2),(53283,2),(53295,2),(53296,2),(53304,2),(53306,2),(53312,2),(53320,2),(53337,2),(53342,2),(53350,2),(53351,2),(53352,2),(53354,2),(53360,2),(53373,2),(53383,2),(53394,2),(53400,2),(53403,2),(53412,2),(53414,2),(53418,2),(53434,2),(53435,2),(53450,2),(53456,2),(53459,2),(53460,2),(53462,2),(53468,2),(53475,2),(53478,2),(53481,2),(53484,2),(53488,2),(53490,2),(53491,2),(53494,2),(53501,2),(53503,2),(53506,2),(53509,2),(53510,2),(53514,2),(53517,2),(53519,2),(53520,2),(53529,2),(53534,2),(53545,2),(53547,2),(53550,2),(53555,2),(53562,2),(53568,2),(53570,2),(53572,2),(53597,2),(53603,2),(53608,2),(53614,2),(53616,2),(53628,2),(53629,2),(53632,2),(53636,2),(53641,2),(53643,2),(53645,2),(53653,2),(53671,2),(53675,2),(53691,2),(53695,2),(53705,2),(53712,2),(53713,2),(53717,2),(53718,2),(53727,2),(53729,2),(53731,2),(53732,2),(53733,2),(53748,2),(53757,2),(53764,2),(53766,2),(53768,2),(53774,2),(53781,2),(53789,2),(53794,2),(53797,2),(53799,2),(53813,2),(53816,2),(53834,2),(53838,2),(53842,2),(53848,2),(53856,2),(53865,2),(53870,2),(53871,2),(53872,2),(53873,2),(53877,2),(53878,2),(53888,2),(53892,2),(53902,2),(53910,2),(53919,2),(53920,2),(53930,2),(53959,2),(53978,2),(53983,2),(53985,2),(53997,2),(54019,2),(54020,2),(54031,2),(54032,2),(54035,2),(54041,2),(54042,2),(54046,2),(54048,2),(54053,2),(54055,2),(54060,2),(54089,2),(54097,2),(54100,2),(54101,2),(54105,2),(54109,2),(54116,2),(54123,2),(54130,2),(54139,2),(54140,2),(54147,2),(54149,2),(54155,2),(54156,2),(54160,2),(54163,2),(54178,2),(54179,2),(54184,2),(54201,2),(54220,2),(54221,2),(54226,2),(54229,2),(54239,2),(54242,2),(54243,2),(54247,2),(54249,2),(54254,2),(54256,2),(54263,2),(54268,2),(54273,2),(54274,2),(54280,2),(54281,2),(54285,2),(54288,2),(54290,2),(54291,2),(54293,2),(54299,2),(54312,2),(54330,2),(54334,2),(54335,2),(54342,2),(54345,2),(54349,2),(54352,2),(54364,2),(54373,2),(54376,2),(54378,2),(54397,2),(54400,2),(54402,2),(54404,2),(54435,2),(54447,2),(54449,2),(54459,2),(54471,2),(54481,2),(54485,2),(54486,2),(54494,2),(54502,2),(54504,2),(54506,2),(54515,2),(54516,2),(54522,2),(54526,2),(54531,2),(54532,2),(54536,2),(54541,2),(54546,2),(54550,2),(54553,2),(54556,2),(54558,2),(54568,2),(54574,2),(54582,2),(54585,2),(54595,2),(54596,2),(54608,2),(54609,2),(54615,2),(54616,2),(54621,2),(54651,2),(54657,2),(54663,2),(54669,2),(54671,2),(54681,2),(54686,2),(54696,2),(54697,2),(54699,2),(54701,2),(54707,2),(54709,2),(54720,2),(54723,2),(54725,2),(54729,2),(54731,2),(54733,2),(54738,2),(54746,2),(54747,2),(54753,2),(54757,2),(54758,2),(54759,2),(54762,2),(54764,2),(54767,2),(54769,2),(54784,2),(54788,2),(54789,2),(54794,2),(54795,2),(54800,2),(54803,2),(54806,2),(54812,2),(54824,2),(54827,2),(54831,2),(54837,2),(54841,2),(54850,2),(54851,2),(54856,2),(54865,2),(54869,2),(54880,2),(54881,2),(54885,2),(54886,2),(54887,2),(54889,2),(54890,2),(54892,2),(54897,2),(54898,2),(54903,2),(54908,2),(54911,2),(54917,2),(54921,2),(54925,2),(54926,2),(54927,2),(54934,2),(54941,2),(54952,2),(54955,2),(54962,2),(54985,2),(54996,2),(55008,2),(55024,2),(55027,2),(55028,2),(55033,2),(55045,2),(55048,2),(55049,2),(55050,2),(55059,2),(55068,2),(55073,2),(55081,2),(55095,2),(55096,2),(55098,2),(55103,2),(55112,2),(55113,2),(55143,2),(55151,2),(55160,2),(55162,2),(55181,2),(55184,2),(55192,2),(55195,2),(55196,2),(55206,2),(55232,2),(55238,2),(55248,2),(55259,2),(55262,2),(55263,2),(55274,2),(55278,2),(55289,2),(55296,2),(55300,2),(55309,2),(55311,2),(55315,2),(55319,2),(55326,2),(55352,2),(55356,2),(55372,2),(55375,2),(55377,2),(55382,2),(55388,2),(55389,2),(55397,2),(55407,2),(55409,2),(55416,2),(55424,2),(55428,2),(55437,2),(55455,2),(55456,2),(55466,2),(55476,2),(55477,2),(55478,2),(55489,2),(55504,2),(55514,2),(55515,2),(55524,2),(55526,2),(55547,2),(55557,2),(55563,2),(55567,2),(55568,2),(55573,2),(55578,2),(55579,2),(55590,2),(55607,2),(55610,2),(55611,2),(55613,2),(55614,2),(55632,2),(55633,2),(55642,2),(55644,2),(55648,2),(55649,2),(55656,2),(55657,2),(55662,2),(55669,2),(55671,2),(55684,2),(55688,2),(55699,2),(55705,2),(55716,2),(55719,2),(55732,2),(55743,2),(55753,2),(55765,2),(55770,2),(55780,2),(55781,2),(55784,2),(55789,2),(55797,2),(55803,2),(55805,2),(55814,2),(55827,2),(55828,2),(55834,2),(55841,2),(55842,2),(55843,2),(55846,2),(55847,2),(55855,2),(55857,2),(55864,2),(55883,2),(55895,2),(55898,2),(55899,2),(55900,2),(55905,2),(55918,2),(55919,2),(55924,2),(55926,2),(55927,2),(55932,2),(55933,2),(55935,2),(55936,2),(55955,2),(55957,2),(55960,2),(55964,2),(55972,2),(55973,2),(55975,2),(55986,2),(56018,2),(56026,2),(56035,2),(56040,2),(56047,2),(56057,2),(56062,2),(56069,2),(56070,2),(56074,2),(56075,2),(56085,2),(56087,2),(56089,2),(56095,2),(56101,2),(56103,2),(56119,2),(56124,2),(56126,2),(56136,2),(56159,2),(56166,2),(56171,2),(56176,2),(56180,2),(56189,2),(56193,2),(56206,2),(56208,2),(56220,2),(56222,2),(56226,2),(56231,2),(56232,2),(56253,2),(56254,2),(56263,2),(56277,2),(56284,2),(56288,2),(56294,2),(56302,2),(56310,2),(56314,2),(56315,2),(56325,2),(56335,2),(56336,2),(56338,2),(56354,2),(56355,2),(56361,2),(56373,2),(56375,2),(56382,2),(56385,2),(56387,2),(56389,2),(56398,2),(56406,2),(56415,2),(56419,2),(56420,2),(56421,2),(56433,2),(56441,2),(56447,2),(56457,2),(56464,2),(56471,2),(56473,2),(56476,2),(56477,2),(56489,2),(56493,2),(56495,2),(56504,2),(56505,2),(56513,2),(56515,2),(56521,2),(56525,2),(56533,2),(56540,2),(56543,2),(56547,2),(56548,2),(56550,2),(56566,2),(56571,2),(56587,2),(56593,2),(56599,2),(56615,2),(56618,2),(56623,2),(56624,2),(56642,2),(56653,2),(56671,2),(56673,2),(56679,2),(56680,2),(56689,2),(56693,2),(56704,2),(56712,2),(56740,2),(56748,2),(56758,2),(56761,2),(56767,2),(56782,2),(56793,2),(56796,2),(56800,2),(56807,2),(56808,2),(56832,2),(56834,2),(56849,2),(56868,2),(56873,2),(56893,2),(56898,2),(56905,2),(56913,2),(56917,2),(56918,2),(56922,2),(56924,2),(56928,2),(56944,2),(56945,2),(56947,2),(56960,2),(56961,2),(56962,2),(56964,2),(56970,2),(56971,2),(56973,2),(56978,2),(56980,2),(56981,2),(56991,2),(56994,2),(56996,2),(57003,2),(57006,2),(57013,2),(57015,2),(57017,2),(57021,2),(57027,2),(57029,2),(57033,2),(57040,2),(57044,2),(57046,2),(57049,2),(57057,2),(57071,2),(57072,2),(57075,2),(57086,2),(57090,2),(57092,2),(57104,2),(57112,2),(57114,2),(57124,2),(57132,2),(57134,2),(57149,2),(57151,2),(57164,2),(57166,2),(57172,2),(57175,2),(57176,2),(57177,2),(57179,2),(57180,2),(57188,2),(57212,2),(57220,2),(57221,2),(57224,2),(57244,2),(57247,2),(57249,2),(57252,2),(57261,2),(57266,2),(57270,2),(57272,2),(57277,2),(57280,2),(57282,2),(57287,2),(57290,2),(57294,2),(57311,2),(57314,2),(57332,2),(57337,2),(57345,2),(57346,2),(57349,2),(57359,2),(57361,2),(57364,2),(57387,2),(57389,2),(57391,2),(57402,2),(57403,2),(57411,2),(57425,2),(57427,2),(57429,2),(57452,2),(57455,2),(57464,2),(57466,2),(57470,2),(57472,2),(57473,2),(57482,2),(57484,2),(57490,2),(57502,2),(57503,2),(57523,2),(57525,2),(57528,2),(57530,2),(57531,2),(57535,2),(57541,2),(57542,2),(57545,2),(57552,2),(57562,2),(57573,2),(57580,2),(57583,2),(57597,2),(57599,2),(57618,2),(57620,2),(57622,2),(57626,2),(57634,2),(57635,2),(57637,2),(57655,2),(57668,2),(57670,2),(57672,2),(57687,2),(57693,2),(57705,2),(57707,2),(57710,2),(57711,2),(57728,2),(57730,2),(57732,2),(57733,2),(57734,2),(57737,2),(57740,2),(57757,2),(57761,2),(57768,2),(57778,2),(57780,2),(57788,2),(57791,2),(57795,2),(57797,2),(57805,2),(57813,2),(57814,2),(57818,2),(57819,2),(57825,2),(57830,2),(57832,2),(57833,2),(57856,2),(57857,2),(57864,2),(57869,2),(57876,2),(57880,2),(57890,2),(57900,2),(57903,2),(57904,2),(57912,2),(57919,2),(57929,2),(57931,2),(57945,2),(57951,2),(57953,2),(57954,2),(57955,2),(57956,2),(57985,2),(57989,2),(57990,2),(57995,2),(58000,2),(58001,2),(58005,2),(58008,2),(58017,2),(58021,2),(58032,2),(58036,2),(58042,2),(58044,2),(58046,2),(58049,2),(58054,2),(58060,2),(58065,2),(58072,2),(58076,2),(58091,2),(58092,2),(58103,2),(58107,2),(58119,2),(58121,2),(58122,2),(58127,2),(58129,2),(58133,2),(58135,2),(58141,2),(58142,2),(58151,2),(58158,2),(58170,2),(58173,2),(58176,2),(58177,2),(58180,2),(58184,2),(58186,2),(58191,2),(58193,2),(58221,2),(58227,2),(58247,2),(58258,2),(58266,2),(58268,2),(58269,2),(58270,2),(58272,2),(58279,2),(58286,2),(58288,2),(58289,2),(58290,2),(58296,2),(58309,2),(58316,2),(58318,2),(58326,2),(58330,2),(58334,2),(58344,2),(58345,2),(58346,2),(58368,2),(58369,2),(58375,2),(58382,2),(58383,2),(58386,2),(58391,2),(58393,2),(58396,2),(58407,2),(58408,2),(58419,2),(58421,2),(58425,2),(58428,2),(58429,2),(58437,2),(58439,2),(58452,2),(58454,2),(58460,2),(58464,2),(58465,2),(58466,2),(58467,2),(58475,2),(58477,2),(58482,2),(58486,2),(58487,2),(58489,2),(58496,2),(58499,2),(58500,2),(58522,2),(58541,2),(58550,2),(58553,2),(58557,2),(58574,2),(58577,2),(58582,2),(58583,2),(58587,2),(58599,2),(58600,2),(58614,2),(58626,2),(58637,2),(58638,2),(58643,2),(58644,2),(58645,2),(58650,2),(58660,2),(58662,2),(58668,2),(58677,2),(58700,2),(58705,2),(58709,2),(58712,2),(58715,2),(58716,2),(58717,2),(58727,2),(58733,2),(58749,2),(58753,2),(58755,2),(58757,2),(58771,2),(58782,2),(58784,2),(58787,2),(58796,2),(58800,2),(58804,2),(58809,2),(58812,2),(58815,2),(58819,2),(58828,2),(58835,2),(58848,2),(58853,2),(58868,2),(58870,2),(58871,2),(58884,2),(58885,2),(58888,2),(58893,2),(58904,2),(58908,2),(58915,2),(58936,2),(58940,2),(58947,2),(58956,2),(58996,2),(59005,2),(59030,2),(59044,2),(59048,2),(59049,2),(59050,2),(59057,2),(59070,2),(59081,2),(59084,2),(59095,2),(59100,2),(59104,2),(59109,2),(59113,2),(59118,2),(59120,2),(59122,2),(59128,2),(59129,2),(59134,2),(59135,2),(59143,2),(59146,2),(59147,2),(59148,2),(59162,2),(59167,2),(59176,2),(59179,2),(59181,2),(59190,2),(59192,2),(59198,2),(59214,2),(59223,2),(59224,2),(59234,2),(59237,2),(59241,2),(59246,2),(59251,2),(59263,2),(59264,2),(59265,2),(59277,2),(59290,2),(59300,2),(59304,2),(59308,2),(59309,2),(59314,2),(59321,2),(59323,2),(59340,2),(59350,2),(59362,2),(59365,2),(59383,2),(59384,2),(59388,2),(59392,2),(59394,2),(59404,2),(59409,2),(59415,2),(59416,2),(59420,2),(59424,2),(59426,2),(59430,2),(59432,2),(59439,2),(59442,2),(59448,2),(59455,2),(59465,2),(59479,2),(59485,2),(59489,2),(59508,2),(59516,2),(59530,2),(59534,2),(59542,2),(59547,2),(59550,2),(59557,2),(59570,2),(59571,2),(59572,2),(59574,2),(59576,2),(59577,2),(59584,2),(59587,2),(59589,2),(59590,2),(59595,2),(59597,2),(59607,2),(59609,2),(59625,2),(59635,2),(59636,2),(59637,2),(59647,2),(59659,2),(59665,2),(59712,2),(59714,2),(59718,2),(59720,2),(59723,2),(59738,2),(59741,2),(59743,2),(59748,2),(59749,2),(59750,2),(59763,2),(59766,2),(59772,2),(59777,2),(59788,2),(59794,2),(59796,2),(59797,2),(59800,2),(59802,2),(59803,2),(59804,2),(59813,2),(59818,2),(59819,2),(59834,2),(59835,2),(59846,2),(59851,2),(59862,2),(59863,2),(59876,2),(59880,2),(59883,2),(59889,2),(59899,2),(59909,2),(59920,2),(59925,2),(59931,2),(59934,2),(59938,2),(59956,2),(59959,2),(59960,2),(59962,2),(59972,2),(59988,2),(59989,2),(59993,2),(60000,2),(60012,2),(60032,2),(60037,2),(60039,2),(60043,2),(60045,2),(60054,2),(60062,2),(60067,2),(60068,2),(60071,2),(60074,2),(60080,2),(60082,2),(60092,2),(60103,2),(60111,2),(60113,2),(60114,2),(60116,2),(60127,2),(60131,2),(60136,2),(60137,2),(60148,2),(60153,2),(60154,2),(60161,2),(60174,2),(60179,2),(60180,2),(60181,2),(60183,2),(60193,2),(60196,2),(60197,2),(60199,2),(60206,2),(60209,2),(60212,2),(60220,2),(60221,2),(60225,2),(60241,2),(60249,2),(60253,2),(60259,2),(60260,2),(60261,2),(60262,2),(60270,2),(60276,2),(60277,2),(60279,2),(60289,2),(60293,2),(60300,2),(60307,2),(60334,2),(60336,2),(60343,2),(60344,2),(60353,2),(60355,2),(60356,2),(60358,2),(60364,2),(60370,2),(60371,2),(60372,2),(60378,2),(60388,2),(60392,2),(60396,2),(60397,2),(60401,2),(60402,2),(60404,2),(60416,2),(60418,2),(60435,2),(60439,2),(60449,2),(60461,2),(60465,2),(60467,2),(60476,2),(60492,2),(60516,2),(60521,2),(60524,2),(60535,2),(60538,2),(60546,2),(60550,2),(60556,2),(60583,2),(60587,2),(60589,2),(60597,2),(60606,2),(60613,2),(60614,2),(60616,2),(60636,2),(60638,2),(60645,2),(60647,2),(60652,2),(60653,2),(60659,2),(60661,2),(60663,2),(60679,2),(60685,2),(60696,2),(60697,2),(60699,2),(60700,2),(60702,2),(60710,2),(60711,2),(60719,2),(60725,2),(60727,2),(60728,2),(60736,2),(60749,2),(60765,2),(60766,2),(60770,2),(60774,2),(60777,2),(60779,2),(60782,2),(60784,2),(60791,2),(60795,2),(60798,2),(60800,2),(60803,2),(60812,2),(60815,2),(60822,2),(60824,2),(60835,2),(60836,2),(60837,2),(60840,2),(60844,2),(60854,2),(60856,2),(60863,2),(60864,2),(60868,2),(60874,2),(60877,2),(60878,2),(60881,2),(60883,2),(60886,2),(60887,2),(60890,2),(60891,2),(60893,2),(60898,2),(60901,2),(60906,2),(60910,2),(60922,2),(60929,2),(60931,2),(60940,2),(60946,2),(60949,2),(60952,2),(60954,2),(60959,2),(60962,2),(60968,2),(60972,2),(60986,2),(60987,2),(60988,2),(60990,2),(61008,2),(61014,2),(61024,2),(61036,2),(61037,2),(61047,2),(61051,2),(61052,2),(61056,2),(61061,2),(61064,2),(61067,2),(61076,2),(61078,2),(61079,2),(61088,2),(61099,2),(61108,2),(61112,2),(61118,2),(61127,2),(61129,2),(61130,2),(61141,2),(61165,2),(61167,2),(61168,2),(61169,2),(61175,2),(61176,2),(61181,2),(61182,2),(61183,2),(61184,2),(61191,2),(61194,2),(61200,2),(61223,2),(61236,2),(61241,2),(61246,2),(61255,2),(61256,2),(61259,2),(61262,2),(61264,2),(61269,2),(61276,2),(61284,2),(61296,2),(61297,2),(61300,2),(61304,2),(61318,2),(61320,2),(61337,2),(61351,2),(61352,2),(61359,2),(61361,2),(61366,2),(61368,2),(61369,2),(61370,2),(61401,2),(61402,2),(61412,2),(61413,2),(61428,2),(61431,2),(61446,2),(61451,2),(61458,2),(61463,2),(61467,2),(61482,2),(61489,2),(61491,2),(61503,2),(61507,2),(61509,2),(61521,2),(61527,2),(61532,2),(61533,2),(61541,2),(61546,2),(61560,2),(61564,2),(61566,2),(61571,2),(61582,2),(61602,2),(61604,2),(61630,2),(61632,2),(61655,2),(61658,2),(61660,2),(61665,2),(61668,2),(61669,2),(61671,2),(61673,2),(61676,2),(61684,2),(61689,2),(61690,2),(61705,2),(61714,2),(61732,2),(61741,2),(61742,2),(61758,2),(61762,2),(61768,2),(61771,2),(61775,2),(61790,2),(61793,2),(61802,2),(61805,2),(61807,2),(61808,2),(61818,2),(61829,2),(61842,2),(61843,2),(61851,2),(61856,2),(61860,2),(61868,2),(61874,2),(61876,2),(61889,2),(61890,2),(61893,2),(61896,2),(61900,2),(61901,2),(61906,2),(61915,2),(61924,2),(61936,2),(61937,2),(61941,2),(61949,2),(61957,2),(61964,2),(61970,2),(61977,2),(61982,2),(61986,2),(61987,2),(61990,2),(61994,2),(61995,2),(61998,2),(62000,2),(62006,2),(62007,2),(62008,2),(62011,2),(62015,2),(62019,2),(62028,2),(62030,2),(62034,2),(62065,2),(62081,2),(62107,2),(62112,2),(62120,2),(62128,2),(62135,2),(62143,2),(62148,2),(62151,2),(62158,2),(62167,2),(62169,2),(62170,2),(62182,2),(62197,2),(62201,2),(62204,2),(62205,2),(62206,2),(62210,2),(62214,2),(62217,2),(62220,2),(62222,2),(62224,2),(62228,2),(62231,2),(62245,2),(62249,2),(62251,2),(62260,2),(62261,2),(62266,2),(62270,2),(62276,2),(62296,2),(62301,2),(62302,2),(62305,2),(62315,2),(62317,2),(62318,2),(62325,2),(62328,2),(62333,2),(62339,2),(62340,2),(62349,2),(62351,2),(62352,2),(62363,2),(62367,2),(62368,2),(62371,2),(62373,2),(62379,2),(62385,2),(62396,2),(62399,2),(62404,2),(62405,2),(62409,2),(62411,2),(62413,2),(62420,2),(62426,2),(62428,2),(62430,2),(62439,2),(62457,2),(62469,2),(62483,2),(62487,2),(62497,2),(62505,2),(62512,2),(62524,2),(62548,2),(62557,2),(62558,2),(62559,2),(62571,2),(62575,2),(62580,2),(62585,2),(62586,2),(62614,2),(62622,2),(62623,2),(62627,2),(62632,2),(62634,2),(62635,2),(62645,2),(62646,2),(62652,2),(62653,2),(62656,2),(62678,2),(62691,2),(62692,2),(62697,2),(62703,2),(62712,2),(62715,2),(62717,2),(62722,2),(62732,2),(62735,2),(62739,2),(62745,2),(62752,2),(62763,2),(62786,2),(62796,2),(62798,2),(62799,2),(62814,2),(62825,2),(62846,2),(62850,2),(62854,2),(62855,2),(62860,2),(62863,2),(62864,2),(62879,2),(62896,2),(62902,2),(62903,2),(62909,2),(62910,2),(62911,2),(62917,2),(62918,2),(62931,2),(62934,2),(62936,2),(62938,2),(62942,2),(62947,2),(62950,2),(62952,2),(62953,2),(62963,2),(62964,2),(62965,2),(62979,2),(62982,2),(62999,2),(63008,2),(63011,2),(63018,2),(63022,2),(63024,2),(63026,2),(63032,2),(63039,2),(63043,2),(63058,2),(63061,2),(63064,2),(63068,2),(63073,2),(63074,2),(63085,2),(63086,2),(63088,2),(63100,2),(63101,2),(63107,2),(63116,2),(63130,2),(63137,2),(63143,2),(63150,2),(63154,2),(63158,2),(63161,2),(63163,2),(63167,2),(63172,2),(63176,2),(63178,2),(63185,2),(63203,2),(63206,2),(63215,2),(63223,2),(63225,2),(63227,2),(63228,2),(63231,2),(63240,2),(63247,2),(63263,2),(63269,2),(63281,2),(63303,2),(63305,2),(63313,2),(63314,2),(63326,2),(63327,2),(63330,2),(63331,2),(63334,2),(63338,2),(63340,2),(63343,2),(63344,2),(63360,2),(63364,2),(63368,2),(63369,2),(63378,2),(63379,2),(63383,2),(63387,2),(63393,2),(63406,2),(63407,2),(63415,2),(63424,2),(63428,2),(63430,2),(63435,2),(63452,2),(63458,2),(63463,2),(63464,2),(63470,2),(63477,2),(63478,2),(63483,2),(63495,2),(63497,2),(63507,2),(63509,2),(63520,2),(63526,2),(63530,2),(63531,2),(63538,2),(63539,2),(63540,2),(63550,2),(63557,2),(63566,2),(63578,2),(63585,2),(63591,2),(63596,2),(63599,2),(63601,2),(63603,2),(63610,2),(63614,2),(63618,2),(63620,2),(63625,2),(63630,2),(63631,2),(63633,2),(63640,2),(63641,2),(63648,2),(63650,2),(63663,2),(63688,2),(63702,2),(63705,2),(63717,2),(63736,2),(63740,2),(63749,2),(63751,2),(63760,2),(63763,2),(63765,2),(63767,2),(63775,2),(63782,2),(63786,2),(63787,2),(63806,2),(63808,2),(63814,2),(63816,2),(63824,2),(63827,2),(63828,2),(63835,2),(63836,2),(63849,2),(63853,2),(63857,2),(63862,2),(63868,2),(63870,2),(63871,2),(63886,2),(63893,2),(63895,2),(63898,2),(63907,2),(63917,2),(63923,2),(63932,2),(63933,2),(63937,2),(63945,2),(63946,2),(63952,2),(63957,2),(63959,2),(63963,2),(63980,2),(63984,2),(63986,2),(63990,2),(63994,2),(63995,2),(63999,2),(64005,2),(64009,2),(64014,2),(64022,2),(64026,2),(64036,2),(64042,2),(64046,2),(64059,2),(64065,2),(64075,2),(64077,2),(64098,2),(64100,2),(64102,2),(64107,2),(64108,2),(64113,2),(64118,2),(64119,2),(64120,2),(64129,2),(64145,2),(64156,2),(64158,2),(64161,2),(64166,2),(64168,2),(64169,2),(64171,2),(64177,2),(64180,2),(64181,2),(64182,2),(64183,2),(64189,2),(64192,2),(64194,2),(64197,2),(64201,2),(64211,2),(64220,2),(64227,2),(64231,2),(64232,2),(64243,2),(64248,2),(64249,2),(64254,2),(64256,2),(64259,2),(64266,2),(64273,2),(64277,2),(64280,2),(64285,2),(64310,2),(64312,2),(64316,2),(64323,2),(64328,2),(64335,2),(64354,2),(64356,2),(64359,2),(64364,2),(64377,2),(64384,2),(64414,2),(64418,2),(64426,2),(64430,2),(64440,2),(64454,2),(64456,2),(64464,2),(64477,2),(64480,2),(64492,2),(64497,2),(64498,2),(64500,2),(64503,2),(64513,2),(64520,2),(64521,2),(64522,2),(64523,2),(64533,2),(64542,2),(64548,2),(64557,2),(64562,2),(64563,2),(64564,2),(64568,2),(64573,2),(64576,2),(64578,2),(64579,2),(64580,2),(64588,2),(64594,2),(64603,2),(64609,2),(64615,2),(64621,2),(64626,2),(64635,2),(64642,2),(64644,2),(64646,2),(64650,2),(64670,2),(64673,2),(64683,2),(64690,2),(64696,2),(64698,2),(64699,2),(64700,2),(64728,2),(64745,2),(64748,2),(64756,2),(64770,2),(64775,2),(64777,2),(64780,2),(64781,2),(64797,2),(64799,2),(64806,2),(64816,2),(64821,2),(64825,2),(64835,2),(64837,2),(64839,2),(64845,2),(64848,2),(64851,2),(64857,2),(64858,2),(64859,2),(64862,2),(64867,2),(64868,2),(64873,2),(64888,2),(64893,2),(64895,2),(64910,2),(64911,2),(64912,2),(64917,2),(64926,2),(64929,2),(64944,2),(64950,2),(64951,2),(64954,2),(64956,2),(64963,2),(64964,2),(64965,2),(64978,2),(64979,2),(64990,2),(64993,2),(64994,2),(64995,2),(64996,2),(65003,2),(65010,2),(65012,2),(65013,2),(65016,2),(65022,2),(65029,2),(65032,2),(65036,2),(65040,2),(65041,2),(65043,2),(65048,2),(65049,2),(65062,2),(65064,2),(65067,2),(65068,2),(65094,2),(65097,2),(65100,2),(65105,2),(65117,2),(65121,2),(65125,2),(65126,2),(65127,2),(65132,2),(65135,2),(65148,2),(65150,2),(65152,2),(65153,2),(65170,2),(65180,2),(65184,2),(65190,2),(65196,2),(65200,2),(65208,2),(65209,2),(65210,2),(65212,2),(65220,2),(65228,2),(65232,2),(65234,2),(65235,2),(65241,2),(65244,2),(65251,2),(65252,2),(65254,2),(65255,2),(65257,2),(65258,2),(65260,2),(65265,2),(65267,2),(65268,2),(65269,2),(65272,2),(65276,2),(65287,2),(65290,2),(65302,2),(65303,2),(65306,2),(65308,2),(65313,2),(65319,2),(65328,2),(65332,2),(65356,2),(65359,2),(65363,2),(65373,2),(65379,2),(65384,2),(65385,2),(65396,2),(65402,2),(65404,2),(65408,2),(65412,2),(65415,2),(65416,2),(65426,2),(65431,2),(65437,2),(65441,2),(65442,2),(65443,2),(65444,2),(65446,2),(65450,2),(65454,2),(65458,2),(65459,2),(65460,2),(65465,2),(65467,2),(65471,2),(65472,2),(65494,2),(65501,2),(65503,2),(65506,2),(65516,2),(65517,2),(65525,2),(65526,2),(65529,2),(65536,2),(65537,2),(65538,2),(65542,2),(65547,2),(65551,2),(65554,2),(65564,2),(65573,2),(65577,2),(65582,2),(65590,2),(65597,2),(65616,2),(65624,2),(65627,2),(65628,2),(65639,2),(65642,2),(65656,2),(65663,2),(65664,2),(65667,2),(65672,2),(65680,2),(65681,2),(65688,2),(65698,2),(65701,2),(65707,2),(65708,2),(65720,2),(65723,2),(65730,2),(65734,2),(65735,2),(65759,2),(65771,2),(65772,2),(65778,2),(65787,2),(65788,2),(65791,2),(65795,2),(65796,2),(65797,2),(65802,2),(65806,2),(65807,2),(65810,2),(65816,2),(65821,2),(65828,2),(65833,2),(65835,2),(65838,2),(65842,2),(65843,2),(65845,2),(65851,2),(65855,2),(65858,2),(65871,2),(65874,2),(65878,2),(65880,2),(65888,2),(65895,2),(65902,2),(65904,2),(65912,2),(65917,2),(65921,2),(65924,2),(65936,2),(65949,2),(65950,2),(65953,2),(65961,2),(65963,2),(65967,2),(65968,2),(65974,2),(65975,2),(65979,2),(65980,2),(65981,2),(65984,2),(65998,2),(66001,2),(66002,2),(66003,2),(66005,2),(66014,2),(66026,2),(66035,2),(66036,2),(66059,2),(66064,2),(66065,2),(66066,2),(66069,2),(66085,2),(66088,2),(66099,2),(66104,2),(66111,2),(66123,2),(66125,2),(66129,2),(66148,2),(66155,2),(66159,2),(66172,2),(66173,2),(66176,2),(66187,2),(66188,2),(66196,2),(66209,2),(66213,2),(66217,2),(66220,2),(66225,2),(66238,2),(66243,2),(66245,2),(66246,2),(66250,2),(66253,2),(66255,2),(66264,2),(66278,2),(66285,2),(66297,2),(66298,2),(66300,2),(66306,2),(66308,2),(66313,2),(66317,2),(66318,2),(66320,2),(66321,2),(66327,2),(66330,2),(66337,2),(66338,2),(66340,2),(66346,2),(66368,2),(66370,2),(66372,2),(66374,2),(66381,2),(66389,2),(66396,2),(66416,2),(66428,2),(66429,2),(66433,2),(66435,2),(66438,2),(66441,2),(66460,2),(66468,2),(66469,2),(66470,2),(66471,2),(66476,2),(66478,2),(66494,2),(66495,2),(66504,2),(66506,2),(66507,2),(66509,2),(66512,2),(66528,2),(66529,2),(66536,2),(66540,2),(66542,2),(66544,2),(66549,2),(66556,2),(66557,2),(66575,2),(66578,2),(66584,2),(66617,2),(66621,2),(66625,2),(66630,2),(66633,2),(66636,2),(66644,2),(66649,2),(66651,2),(66653,2),(66655,2),(66659,2),(66667,2),(66669,2),(66673,2),(66684,2),(66691,2),(66694,2),(66710,2),(66713,2),(66717,2),(66725,2),(66740,2),(66746,2),(66751,2),(66783,2),(66791,2),(66793,2),(66799,2),(66804,2),(66811,2),(66812,2),(66827,2),(66834,2),(66851,2),(66852,2),(66858,2),(66859,2),(66863,2),(66869,2),(66874,2),(66879,2),(66882,2),(66886,2),(66896,2),(66902,2),(66903,2),(66913,2),(66917,2),(66921,2),(66924,2),(66928,2),(66935,2),(66940,2),(66957,2),(66972,2),(66976,2),(66979,2),(66981,2),(66982,2),(66986,2),(66992,2),(66996,2),(67003,2),(67010,2),(67012,2),(67014,2),(67022,2),(67027,2),(67030,2),(67032,2),(67033,2),(67039,2),(67051,2),(67061,2),(67082,2),(67092,2),(67093,2),(67100,2),(67123,2),(67130,2),(67135,2),(67144,2),(67145,2),(67146,2),(67153,2),(67159,2),(67163,2),(67164,2),(67171,2),(67185,2),(67193,2),(67198,2),(67199,2),(67200,2),(67201,2),(67203,2),(67212,2),(67215,2),(67222,2),(67223,2),(67226,2),(67234,2),(67242,2),(67248,2),(67253,2),(67279,2),(67282,2),(67286,2),(67291,2),(67298,2),(67303,2),(67304,2),(67329,2),(67331,2),(67333,2),(67347,2),(67348,2),(67354,2),(67356,2),(67363,2),(67364,2),(67367,2),(67369,2),(67377,2),(67384,2),(67389,2),(67394,2),(67396,2),(67398,2),(67410,2),(67423,2),(67427,2),(67436,2),(67447,2),(67449,2),(67451,2),(67452,2),(67460,2),(67462,2),(67463,2),(67465,2),(67473,2),(67480,2),(67482,2),(67485,2),(67499,2),(67501,2),(67504,2),(67509,2),(67512,2),(67514,2),(67515,2),(67517,2),(67534,2),(67535,2),(67537,2),(67543,2),(67545,2),(67552,2),(67557,2),(67562,2),(67564,2),(67584,2),(67611,2),(67616,2),(67617,2),(67624,2),(67625,2),(67628,2),(67629,2),(67632,2),(67637,2),(67654,2),(67659,2),(67664,2),(67666,2),(67670,2),(67672,2),(67673,2),(67680,2),(67682,2),(67684,2),(67686,2),(67687,2),(67692,2),(67695,2),(67712,2),(67716,2),(67719,2),(67734,2),(67736,2),(67743,2),(67759,2),(67762,2),(67763,2),(67766,2),(67775,2),(67778,2),(67781,2),(67782,2),(67784,2),(67802,2),(67816,2),(67817,2),(67821,2),(67826,2),(67836,2),(67838,2),(67840,2),(67848,2),(67865,2),(67879,2),(67880,2),(67882,2),(67889,2),(67890,2),(67891,2),(67897,2),(67911,2),(67914,2),(67916,2),(67923,2),(67926,2),(67927,2),(67934,2),(67935,2),(67938,2),(67944,2),(67958,2),(67963,2),(67964,2),(67966,2),(67969,2),(67970,2),(67971,2),(67980,2),(67983,2),(67984,2),(67994,2),(68006,2),(68011,2),(68024,2),(68028,2),(68029,2),(68040,2),(68045,2),(68047,2),(68056,2),(68067,2),(68080,2),(68088,2),(68090,2),(68095,2),(68101,2),(68111,2),(68114,2),(68117,2),(68121,2),(68122,2),(68126,2),(68130,2),(68142,2),(68147,2),(68157,2),(68158,2),(68174,2),(68175,2),(68191,2),(68196,2),(68205,2),(68207,2),(68211,2),(68216,2),(68220,2),(68224,2),(68226,2),(68228,2),(68230,2),(68244,2),(68253,2),(68257,2),(68259,2),(68264,2),(68269,2),(68276,2),(68283,2),(68291,2),(68292,2),(68293,2),(68295,2),(68302,2),(68303,2),(68305,2),(68312,2),(68313,2),(68321,2),(68324,2),(68339,2),(68345,2),(68346,2),(68348,2),(68360,2),(68362,2),(68363,2),(68377,2),(68385,2),(68390,2),(68391,2),(68400,2),(68403,2),(68407,2),(68420,2),(68441,2),(68442,2),(68445,2),(68455,2),(68456,2),(68469,2),(68470,2),(68471,2),(68495,2),(68504,2),(68524,2),(68529,2),(68538,2),(68540,2),(68544,2),(68546,2),(68561,2),(68582,2),(68585,2),(68586,2),(68587,2),(68588,2),(68598,2),(68602,2),(68608,2),(68615,2),(68629,2),(68639,2),(68642,2),(68656,2),(68658,2),(68665,2),(68680,2),(68689,2),(68690,2),(68695,2),(68696,2),(68703,2),(68709,2),(68717,2),(68718,2),(68719,2),(68720,2),(68723,2),(68728,2),(68729,2),(68734,2),(68755,2),(68759,2),(68764,2),(68768,2),(68776,2),(68778,2),(68780,2),(68782,2),(68788,2),(68789,2),(68798,2),(68800,2),(68804,2),(68807,2),(68809,2),(68810,2),(68823,2),(68825,2),(68835,2),(68843,2),(68853,2),(68859,2),(68866,2),(68870,2),(68872,2),(68879,2),(68881,2),(68885,2),(68894,2),(68896,2),(68897,2),(68902,2),(68908,2),(68909,2),(68911,2),(68920,2),(68921,2),(68923,2),(68940,2),(68941,2),(68944,2),(68945,2),(68955,2),(68957,2),(68959,2),(68964,2),(68971,2),(68974,2),(68975,2),(68987,2),(68989,2),(68990,2),(68991,2),(69006,2),(69009,2),(69016,2),(69023,2),(69034,2),(69037,2),(69043,2),(69061,2),(69069,2),(69071,2),(69084,2),(69088,2),(69091,2),(69095,2),(69096,2),(69105,2),(69116,2),(69118,2),(69140,2),(69155,2),(69165,2),(69167,2),(69180,2),(69181,2),(69182,2),(69198,2),(69201,2),(69206,2),(69209,2),(69217,2),(69218,2),(69242,2),(69260,2),(69266,2),(69271,2),(69278,2),(69283,2),(69284,2),(69296,2),(69298,2),(69301,2),(69302,2),(69306,2),(69308,2),(69311,2),(69319,2),(69322,2),(69324,2),(69330,2),(69333,2),(69338,2),(69340,2),(69347,2),(69349,2),(69351,2),(69367,2),(69368,2),(69379,2),(69380,2),(69384,2),(69391,2),(69396,2),(69398,2),(69399,2),(69403,2),(69405,2),(69411,2),(69412,2),(69415,2),(69416,2),(69424,2),(69429,2),(69449,2),(69451,2),(69452,2),(69454,2),(69457,2),(69464,2),(69466,2),(69484,2),(69489,2),(69490,2),(69516,2),(69523,2),(69536,2),(69539,2),(69545,2),(69546,2),(69550,2),(69560,2),(69561,2),(69564,2),(69567,2),(69582,2),(69589,2),(69608,2),(69610,2),(69613,2),(69616,2),(69620,2),(69634,2),(69641,2),(69653,2),(69667,2),(69670,2),(69673,2),(69675,2),(69694,2),(69704,2),(69711,2),(69715,2),(69716,2),(69719,2),(69722,2),(69729,2),(69733,2),(69736,2),(69745,2),(69746,2),(69750,2),(69759,2),(69763,2),(69791,2),(69801,2),(69803,2),(69804,2),(69823,2),(69832,2),(69833,2),(69835,2),(69837,2),(69847,2),(69863,2),(69867,2),(69876,2),(69880,2),(69886,2),(69890,2),(69898,2),(69901,2),(69911,2),(69918,2),(69919,2),(69927,2),(69932,2),(69936,2),(69942,2),(69947,2),(69968,2),(69975,2),(69983,2),(69985,2),(69992,2),(69997,2),(69998,2),(69999,2),(70005,2),(70013,2),(70020,2),(70026,2),(70028,2),(70036,2),(70038,2),(70039,2),(70041,2),(70042,2),(70043,2),(70058,2),(70066,2),(70071,2),(70083,2),(70090,2),(70092,2),(70093,2),(70094,2),(70097,2),(70101,2),(70103,2),(70110,2),(70119,2),(70120,2),(70123,2),(70129,2),(70138,2),(70142,2),(70143,2),(70147,2),(70148,2),(70154,2),(70157,2),(70167,2),(70168,2),(70170,2),(70174,2),(70177,2),(70188,2),(70217,2),(70218,2),(70222,2),(70237,2),(70238,2),(70241,2),(70250,2),(70252,2),(70257,2),(70260,2),(70264,2),(70265,2),(70277,2),(70291,2),(70297,2),(70303,2),(70326,2),(70335,2),(70336,2),(70339,2),(70343,2),(70347,2),(70348,2),(70353,2),(70368,2),(70373,2),(70375,2),(70383,2),(70388,2),(70399,2),(70400,2),(70407,2),(70411,2),(70425,2),(70426,2),(70427,2),(70428,2),(70435,2),(70439,2),(70443,2),(70444,2),(70448,2),(70457,2),(70462,2),(70465,2),(70472,2),(70483,2),(70488,2),(70489,2),(70497,2),(70503,2),(70512,2),(70515,2),(70516,2),(70517,2),(70519,2),(70527,2),(70528,2),(70538,2),(70541,2),(70549,2),(70552,2),(70557,2),(70574,2),(70583,2),(70588,2),(70600,2),(70606,2),(70612,2),(70613,2),(70619,2),(70632,2),(70633,2),(70634,2),(70644,2),(70656,2),(70657,2),(70663,2),(70667,2),(70669,2),(70713,2),(70715,2),(70716,2),(70735,2),(70737,2),(70739,2),(70745,2),(70746,2),(70752,2),(70763,2),(70788,2),(70803,2),(70804,2),(70806,2),(70808,2),(70809,2),(70810,2),(70816,2),(70823,2),(70824,2),(70836,2),(70839,2),(70846,2),(70850,2),(70856,2),(70864,2),(70869,2),(70876,2),(70881,2),(70889,2),(70890,2),(70895,2),(70901,2),(70910,2),(70919,2),(70922,2),(70925,2),(70927,2),(70931,2),(70934,2),(70936,2),(70945,2),(70961,2),(70963,2),(70969,2),(70983,2),(70991,2),(70995,2),(70999,2),(71004,2),(71010,2),(71011,2),(71014,2),(71015,2),(71018,2),(71034,2),(71044,2),(71047,2),(71056,2),(71069,2),(71074,2),(71075,2),(71077,2),(71078,2),(71102,2),(71107,2),(71110,2),(71127,2),(71131,2),(71132,2),(71146,2),(71151,2),(71154,2),(71158,2),(71159,2),(71161,2),(71166,2),(71171,2),(71185,2),(71190,2),(71205,2),(71214,2),(71225,2),(71228,2),(71230,2),(71233,2),(71236,2),(71239,2),(71242,2),(71247,2),(71251,2),(71257,2),(71276,2),(71283,2),(71287,2),(71288,2),(71298,2),(71304,2),(71306,2),(71321,2),(71334,2),(71339,2),(71342,2),(71346,2),(71347,2),(71349,2),(71355,2),(71357,2),(71358,2),(71363,2),(71369,2),(71380,2),(71381,2),(71386,2),(71388,2),(71390,2),(71410,2),(71414,2),(71427,2),(71437,2),(71443,2),(71450,2),(71451,2),(71452,2),(71453,2),(71455,2),(71459,2),(71463,2),(71469,2),(71470,2),(71471,2),(71479,2),(71483,2),(71493,2),(71496,2),(71500,2),(71508,2),(71512,2),(71514,2),(71517,2),(71520,2),(71533,2),(71536,2),(71538,2),(71548,2),(71556,2),(71558,2),(71582,2),(71588,2),(71591,2),(71592,2),(71600,2),(71609,2),(71611,2),(71614,2),(71616,2),(71620,2),(71624,2),(71627,2),(71629,2),(71631,2),(71634,2),(71635,2),(71646,2),(71648,2),(71656,2),(71661,2),(71662,2),(71666,2),(71672,2),(71676,2),(71679,2),(71681,2),(71685,2),(71687,2),(71694,2),(71706,2),(71718,2),(71723,2),(71728,2),(71730,2),(71732,2),(71738,2),(71741,2),(71746,2),(71756,2),(71764,2),(71770,2),(71774,2),(71779,2),(71787,2),(71788,2),(71794,2),(71802,2),(71809,2),(71812,2),(71817,2),(71820,2),(71821,2),(71823,2),(71833,2),(71844,2),(71848,2),(71864,2),(71865,2),(71867,2),(71871,2),(71883,2),(71887,2),(71889,2),(71893,2),(71908,2),(71911,2),(71915,2),(71924,2),(71949,2),(71959,2),(71961,2),(71983,2),(71986,2),(71988,2),(71994,2),(72005,2),(72019,2),(72022,2),(72030,2),(72033,2),(72035,2),(72044,2),(72045,2),(72047,2),(72048,2),(72053,2),(72058,2),(72066,2),(72069,2),(72071,2),(72072,2),(72075,2),(72081,2),(72084,2),(72086,2),(72091,2),(72093,2),(72113,2),(72117,2),(72123,2),(72132,2),(72141,2),(72155,2),(72157,2),(72158,2),(72160,2),(72175,2),(72182,2),(72191,2),(72192,2),(72200,2),(72212,2),(72218,2),(72224,2),(72228,2),(72235,2),(72241,2),(72251,2),(72273,2),(72285,2),(72292,2),(72300,2),(72309,2),(72316,2),(72319,2),(72326,2),(72342,2),(72358,2),(72360,2),(72376,2),(72404,2),(72405,2),(72407,2),(72427,2),(72433,2),(72446,2),(72451,2),(72454,2),(72455,2),(72472,2),(72491,2),(72500,2),(72506,2),(72511,2),(72512,2),(72526,2),(72531,2),(72535,2),(72543,2),(72545,2),(72547,2),(72548,2),(72551,2),(72553,2),(72556,2),(72558,2),(72565,2),(72574,2),(72576,2),(72579,2),(72590,2),(72594,2),(72601,2),(72602,2),(72603,2),(72610,2),(72611,2),(72630,2),(72636,2),(72637,2),(72638,2),(72643,2),(72653,2),(72655,2),(72656,2),(72667,2),(72696,2),(72697,2),(72705,2),(72706,2),(72733,2),(72743,2),(72748,2),(72766,2),(72768,2),(72779,2),(72785,2),(72788,2),(72792,2),(72795,2),(72805,2),(72807,2),(72813,2),(72817,2),(72819,2),(72823,2),(72825,2),(72835,2),(72836,2),(72838,2),(72840,2),(72843,2),(72846,2),(72864,2),(72867,2),(72870,2),(72885,2),(72891,2),(72898,2),(72900,2),(72910,2),(72918,2),(72920,2),(72923,2),(72945,2),(72951,2),(72961,2),(72962,2),(72973,2),(72977,2),(72983,2),(72984,2),(72986,2),(72996,2),(73003,2),(73010,2),(73012,2),(73018,2),(73020,2),(73021,2),(73022,2),(73027,2),(73041,2),(73045,2),(73049,2),(73050,2),(73073,2),(73075,2),(73082,2),(73093,2),(73095,2),(73111,2),(73114,2),(73127,2),(73128,2),(73142,2),(73144,2),(73163,2),(73171,2),(73178,2),(73212,2),(73219,2),(73220,2),(73223,2),(73233,2),(73240,2),(73241,2),(73242,2),(73244,2),(73257,2),(73259,2),(73260,2),(73261,2),(73266,2),(73267,2),(73268,2),(73271,2),(73275,2),(73276,2),(73281,2),(73282,2),(73283,2),(73287,2),(73289,2),(73309,2),(73311,2),(73320,2),(73322,2),(73324,2),(73333,2),(73343,2),(73346,2),(73348,2),(73349,2),(73353,2),(73378,2),(73395,2),(73397,2),(73406,2),(73418,2),(73422,2),(73426,2),(73433,2),(73445,2),(73455,2),(73467,2),(73477,2),(73479,2),(73494,2),(73497,2),(73504,2),(73509,2),(73527,2),(73529,2),(73530,2),(73543,2),(73544,2),(73547,2),(73549,2),(73553,2),(73561,2),(73570,2),(73572,2),(73579,2),(73583,2),(73586,2),(73596,2),(73601,2),(73603,2),(73606,2),(73613,2),(73616,2),(73620,2),(73625,2),(73629,2),(73630,2),(73632,2),(73634,2),(73635,2),(73650,2),(73662,2),(73669,2),(73685,2),(73687,2),(73688,2),(73689,2),(73698,2),(73701,2),(73705,2),(73708,2),(73718,2),(73728,2),(73730,2),(73745,2),(73748,2),(73754,2),(73777,2),(73784,2),(73791,2),(73801,2),(73803,2),(73821,2),(73826,2),(73829,2),(73830,2),(73832,2),(73838,2),(73839,2),(73855,2),(73861,2),(73868,2),(73883,2),(73890,2),(73900,2),(73908,2),(73915,2),(73923,2),(73929,2),(73934,2),(73939,2),(73948,2),(73951,2),(73955,2),(73956,2),(73962,2),(73969,2),(73974,2),(73975,2),(73989,2),(73996,2),(74003,2),(74020,2),(74026,2),(74043,2),(74057,2),(74060,2),(74063,2),(74070,2),(74075,2),(74082,2),(74085,2),(74097,2),(74111,2),(74115,2),(74120,2),(74134,2),(74140,2),(74146,2),(74156,2),(74160,2),(74162,2),(74166,2),(74174,2),(74175,2),(74177,2),(74182,2),(74187,2),(74188,2),(74193,2),(74198,2),(74205,2),(74221,2),(74248,2),(74254,2),(74264,2),(74266,2),(74277,2),(74281,2),(74282,2),(74283,2),(74288,2),(74295,2),(74300,2),(74301,2),(74307,2),(74330,2),(74346,2),(74348,2),(74353,2),(74359,2),(74360,2),(74364,2),(74368,2),(74375,2),(74388,2),(74390,2),(74391,2),(74393,2),(74403,2),(74418,2),(74420,2),(74433,2),(74438,2),(74440,2),(74445,2),(74450,2),(74452,2),(74465,2),(74470,2),(74487,2),(74488,2),(74497,2),(74499,2),(74502,2),(74510,2),(74522,2),(74528,2),(74533,2),(74539,2),(74550,2),(74552,2),(74563,2),(74573,2),(74581,2),(74586,2),(74587,2),(74592,2),(74595,2),(74597,2),(74602,2),(74605,2),(74606,2),(74619,2),(74627,2),(74646,2),(74657,2),(74669,2),(74683,2),(74684,2),(74686,2),(74701,2),(74705,2),(74706,2),(74712,2),(74741,2),(74745,2),(74750,2),(74756,2),(74757,2),(74765,2),(74772,2),(74779,2),(74781,2),(74782,2),(74783,2),(74793,2),(74794,2),(74800,2),(74805,2),(74808,2),(74812,2),(74813,2),(74820,2),(74836,2),(74837,2),(74838,2),(74843,2),(74852,2),(74856,2),(74875,2),(74881,2),(74885,2),(74892,2),(74897,2),(74904,2),(74911,2),(74933,2),(74934,2),(74938,2),(74939,2),(74946,2),(74959,2),(74965,2),(74978,2),(74981,2),(74982,2),(74983,2),(74987,2),(74988,2),(74989,2),(74991,2),(74992,2),(74996,2),(74997,2),(75001,2),(75010,2),(75014,2),(75027,2),(75039,2),(75043,2),(75044,2),(75048,2),(75049,2),(75070,2),(75073,2),(75086,2),(75089,2),(75093,2),(75101,2),(75105,2),(75106,2),(75107,2),(75112,2),(75130,2),(75133,2),(75136,2),(75138,2),(75149,2),(75151,2),(75160,2),(75161,2),(75165,2),(75168,2),(75171,2),(75175,2),(75181,2),(75184,2),(75185,2),(75198,2),(75201,2),(75205,2),(75206,2),(75212,2),(75225,2),(75230,2),(75239,2),(75254,2),(75257,2),(75269,2),(75271,2),(75275,2),(75294,2),(75296,2),(75308,2),(75310,2),(75315,2),(75335,2),(75340,2),(75341,2),(75342,2),(75347,2),(75348,2),(75354,2),(75356,2),(75371,2),(75376,2),(75383,2),(75392,2),(75401,2),(75410,2),(75432,2),(75440,2),(75459,2),(75467,2),(75470,2),(75495,2),(75501,2),(75508,2),(75518,2),(75520,2),(75529,2),(75534,2),(75538,2),(75541,2),(75544,2),(75557,2),(75561,2),(75568,2),(75576,2),(75590,2),(75602,2),(75611,2),(75612,2),(75618,2),(75625,2),(75631,2),(75646,2),(75652,2),(75656,2),(75664,2),(75671,2),(75672,2),(75675,2),(75680,2),(75685,2),(75689,2),(75690,2),(75692,2),(75700,2),(75703,2),(75712,2),(75717,2),(75721,2),(75731,2),(75740,2),(75741,2),(75750,2),(75751,2),(75752,2),(75754,2),(75755,2),(75757,2),(75758,2),(75760,2),(75774,2),(75788,2),(75795,2),(75799,2),(75809,2),(75810,2),(75811,2),(75823,2),(75827,2),(75848,2),(75855,2),(75856,2),(75858,2),(75859,2),(75867,2),(75868,2),(75880,2),(75889,2),(75900,2),(75901,2),(75908,2),(75913,2),(75916,2),(75917,2),(75918,2),(75942,2),(75946,2),(75947,2),(75951,2),(75956,2),(75964,2),(75972,2),(75984,2),(75986,2),(75992,2),(75993,2),(75994,2),(75996,2),(76001,2),(76002,2),(76006,2),(76013,2),(76016,2),(76020,2),(76022,2),(76026,2),(76042,2),(76044,2),(76049,2),(76055,2),(76061,2),(76063,2),(76064,2),(76079,2),(76082,2),(76086,2),(76092,2),(76095,2),(76098,2),(76116,2),(76120,2),(76121,2),(76124,2),(76128,2),(76131,2),(76134,2),(76135,2),(76138,2),(76142,2),(76143,2),(76156,2),(76159,2),(76173,2),(76177,2),(76182,2),(76187,2),(76190,2),(76199,2),(76202,2),(76205,2),(76208,2),(76211,2),(76213,2),(76215,2),(76216,2),(76221,2),(76229,2),(76231,2),(76240,2),(76246,2),(76248,2),(76251,2),(76255,2),(76265,2),(76270,2),(76286,2),(76290,2),(76303,2),(76306,2),(76310,2),(76311,2),(76321,2),(76323,2),(76327,2),(76331,2),(76332,2),(76364,2),(76366,2),(76370,2),(76385,2),(76386,2),(76387,2),(76389,2),(76390,2),(76422,2),(76423,2),(76426,2),(76428,2),(76442,2),(76444,2),(76446,2),(76459,2),(76479,2),(76481,2),(76490,2),(76497,2),(76502,2),(76517,2),(76518,2),(76523,2),(76531,2),(76532,2),(76533,2),(76542,2),(76546,2),(76547,2),(76548,2),(76551,2),(76560,2),(76562,2),(76570,2),(76575,2),(76577,2),(76583,2),(76595,2),(76597,2),(76607,2),(76608,2),(76611,2),(76612,2),(76622,2),(76630,2),(76647,2),(76650,2),(76656,2),(76658,2),(76672,2),(76677,2),(76682,2),(76683,2),(76684,2),(76691,2),(76693,2),(76699,2),(76700,2),(76717,2),(76727,2),(76729,2),(76731,2),(76732,2),(76754,2),(76760,2),(76801,2),(76806,2),(76810,2),(76830,2),(76833,2),(76835,2),(76838,2),(76841,2),(76863,2),(76884,2),(76890,2),(76893,2),(76900,2),(76910,2),(76915,2),(76917,2),(76919,2),(76929,2),(76945,2),(76961,2),(76967,2),(76968,2),(76972,2),(76995,2),(76999,2),(77003,2),(77004,2),(77006,2),(77008,2),(77023,2),(77030,2),(77035,2),(77040,2),(77041,2),(77044,2),(77049,2),(77055,2),(77069,2),(77071,2),(77078,2),(77097,2),(77100,2),(77103,2),(77117,2),(77118,2),(77119,2),(77124,2),(77131,2),(77139,2),(77141,2),(77142,2),(77151,2),(77154,2),(77159,2),(77163,2),(77167,2),(77169,2),(77183,2),(77202,2),(77211,2),(77218,2),(77221,2),(77227,2),(77233,2),(77236,2),(77238,2),(77260,2),(77262,2),(77263,2),(77265,2),(77267,2),(77272,2),(77273,2),(77279,2),(77283,2),(77308,2),(77309,2),(77318,2),(77321,2),(77324,2),(77329,2),(77331,2),(77336,2),(77356,2),(77358,2),(77360,2),(77362,2),(77371,2),(77399,2),(77410,2),(77411,2),(77414,2),(77422,2),(77424,2),(77444,2),(77472,2),(77473,2),(77480,2),(77485,2),(77489,2),(77492,2),(77493,2),(77496,2),(77505,2),(77514,2),(77525,2),(77533,2),(77534,2),(77538,2),(77541,2),(77554,2),(77559,2),(77575,2),(77579,2),(77584,2),(77609,2),(77612,2),(77619,2),(77642,2),(77644,2),(77650,2),(77653,2),(77657,2),(77668,2),(77676,2),(77679,2),(77697,2),(77699,2),(77701,2),(77710,2),(77717,2),(77722,2),(77726,2),(77747,2),(77759,2),(77766,2),(77773,2),(77786,2),(77796,2),(77808,2),(77831,2),(77834,2),(77836,2),(77852,2),(77857,2),(77871,2),(77874,2),(77875,2),(77885,2),(77892,2),(77893,2),(77894,2),(77900,2),(77909,2),(77920,2),(77938,2),(77939,2),(77943,2),(77957,2),(77964,2),(77971,2),(77978,2),(77987,2),(77992,2),(77993,2),(78001,2),(78006,2),(78015,2),(78023,2),(78024,2),(78027,2),(78029,2),(78042,2),(78044,2),(78049,2),(78053,2),(78059,2),(78060,2),(78072,2),(78080,2),(78083,2),(78095,2),(78147,2),(78150,2),(78154,2),(78160,2),(78163,2),(78173,2),(78177,2),(78178,2),(78191,2),(78193,2),(78198,2),(78210,2),(78215,2),(78216,2),(78217,2),(78221,2),(78228,2),(78235,2),(78243,2),(78246,2),(78247,2),(78250,2),(78252,2),(78262,2),(78274,2),(78288,2),(78294,2),(78301,2),(78316,2),(78317,2),(78327,2),(78328,2),(78337,2),(78339,2),(78350,2),(78359,2),(78373,2),(78375,2),(78380,2),(78381,2),(78388,2),(78397,2),(78399,2),(78407,2),(78410,2),(78412,2),(78425,2),(78435,2),(78444,2),(78455,2),(78458,2),(78469,2),(78472,2),(78483,2),(78486,2),(78489,2),(78498,2),(78502,2),(78507,2),(78514,2),(78516,2),(78518,2),(78529,2),(78530,2),(78539,2),(78541,2),(78552,2),(78563,2),(78565,2),(78578,2),(78580,2),(78583,2),(78584,2),(78603,2),(78608,2),(78618,2),(78621,2),(78622,2),(78640,2),(78643,2),(78645,2),(78649,2),(78660,2),(78661,2),(78670,2),(78675,2),(78680,2),(78682,2),(78685,2),(78687,2),(78690,2),(78693,2),(78696,2),(78711,2),(78715,2),(78720,2),(78722,2),(78726,2),(78732,2),(78737,2),(78741,2),(78744,2),(78746,2),(78756,2),(78760,2),(78761,2),(78769,2),(78787,2),(78803,2),(78814,2),(78824,2),(78828,2),(78830,2),(78834,2),(78837,2),(78839,2),(78844,2),(78845,2),(78846,2),(78853,2),(78854,2),(78855,2),(78865,2),(78873,2),(78877,2),(78882,2),(78897,2),(78903,2),(78905,2),(78908,2),(78912,2),(78940,2),(78942,2),(78948,2),(78954,2),(78955,2),(78965,2),(78970,2),(78977,2),(78983,2),(78986,2),(78996,2),(78999,2),(79000,2),(79001,2),(79011,2),(79019,2),(79034,2),(79035,2),(79037,2),(79038,2),(79058,2),(79070,2),(79080,2),(79081,2),(79091,2),(79104,2),(79108,2),(79112,2),(79118,2),(79119,2),(79128,2),(79136,2),(79137,2),(79138,2),(79142,2),(79146,2),(79147,2),(79166,2),(79171,2),(79174,2),(79178,2),(79183,2),(79185,2),(79188,2),(79189,2),(79190,2),(79197,2),(79201,2),(79202,2),(79205,2),(79207,2),(79210,2),(79213,2),(79219,2),(79233,2),(79236,2),(79238,2),(79244,2),(79247,2),(79257,2),(79260,2),(79264,2),(79290,2),(79308,2),(79309,2),(79323,2),(79329,2),(79342,2),(79343,2),(79353,2),(79354,2),(79359,2),(79373,2),(79377,2),(79383,2),(79384,2),(79393,2),(79398,2),(79406,2),(79413,2),(79431,2),(79438,2),(79441,2),(79443,2),(79444,2),(79458,2),(79459,2),(79467,2),(79474,2),(79479,2),(79484,2),(79486,2),(79488,2),(79489,2),(79497,2),(79500,2),(79504,2),(79505,2),(79506,2),(79509,2),(79522,2),(79532,2),(79533,2),(79535,2),(79545,2),(79546,2),(79550,2),(79556,2),(79557,2),(79560,2),(79561,2),(79569,2),(79583,2),(79585,2),(79586,2),(79593,2),(79601,2),(79610,2),(79632,2),(79634,2),(79638,2),(79655,2),(79661,2),(79662,2),(79664,2),(79671,2),(79673,2),(79677,2),(79680,2),(79684,2),(79685,2),(79687,2),(79694,2),(79698,2),(79699,2),(79732,2),(79734,2),(79743,2),(79746,2),(79747,2),(79748,2),(79763,2),(79766,2),(79767,2),(79768,2),(79773,2),(79798,2),(79802,2),(79815,2),(79823,2),(79824,2),(79835,2),(79837,2),(79839,2),(79843,2),(79849,2),(79860,2),(79866,2),(79889,2),(79890,2),(79904,2),(79909,2),(79913,2),(79917,2),(79920,2),(79922,2),(79923,2),(79932,2),(79934,2),(79962,2),(79965,2),(79968,2),(79973,2),(79977,2),(79981,2),(79984,2),(79986,2),(79987,2),(80002,2),(80005,2),(80016,2),(80018,2),(80033,2),(80038,2),(80048,2),(80051,2),(80052,2),(80053,2),(80059,2),(80063,2),(80072,2),(80076,2),(80082,2),(80104,2),(80120,2),(80129,2),(80131,2),(80144,2),(80145,2),(80154,2),(80160,2),(80164,2),(80183,2),(80187,2),(80194,2),(80200,2),(80204,2),(80206,2),(80211,2),(80213,2),(80217,2),(80227,2),(80228,2),(80230,2),(80238,2),(80244,2),(80251,2),(80253,2),(80256,2),(80261,2),(80273,2),(80275,2),(80280,2),(80281,2),(80282,2),(80285,2),(80294,2),(80302,2),(80303,2),(80305,2),(80329,2),(80332,2),(80336,2),(80341,2),(80343,2),(80350,2),(80355,2),(80357,2),(80359,2),(80360,2),(80379,2),(80385,2),(80387,2),(80389,2),(80392,2),(80395,2),(80406,2),(80416,2),(80421,2),(80423,2),(80428,2),(80433,2),(80438,2),(80439,2),(80442,2),(80448,2),(80450,2),(80464,2),(80474,2),(80483,2),(80487,2),(80491,2),(80495,2),(80500,2),(80502,2),(80520,2),(80524,2),(80531,2),(80537,2),(80542,2),(80544,2),(80547,2),(80552,2),(80566,2),(80575,2),(80582,2),(80592,2),(80596,2),(80617,2),(80624,2),(80629,2),(80630,2),(80637,2),(80641,2),(80652,2),(80653,2),(80661,2),(80667,2),(80684,2),(80693,2),(80708,2),(80709,2),(80716,2),(80717,2),(80719,2),(80723,2),(80724,2),(80725,2),(80735,2),(80740,2),(80749,2),(80751,2),(80756,2),(80761,2),(80781,2),(80795,2),(80809,2),(80811,2),(80815,2),(80816,2),(80821,2),(80826,2),(80833,2),(80839,2),(80849,2),(80851,2),(80852,2),(80854,2),(80865,2),(80868,2),(80870,2),(80874,2),(80875,2),(80880,2),(80889,2),(80890,2),(80901,2),(80903,2),(80916,2),(80917,2),(80920,2),(80930,2),(80947,2),(80976,2),(80980,2),(80984,2),(81012,2),(81013,2),(81027,2),(81030,2),(81038,2),(81042,2),(81048,2),(81051,2),(81060,2),(81071,2),(81081,2),(81082,2),(81089,2),(81115,2),(81120,2),(81126,2),(81128,2),(81129,2),(81133,2),(81141,2),(81153,2),(81154,2),(81155,2),(81158,2),(81159,2),(81164,2),(81165,2),(81166,2),(81168,2),(81169,2),(81178,2),(81186,2),(81195,2),(81198,2),(81207,2),(81219,2),(81221,2),(81223,2),(81224,2),(81246,2),(81249,2),(81250,2),(81256,2),(81265,2),(81272,2),(81277,2),(81282,2),(81283,2),(81290,2),(81293,2),(81300,2),(81304,2),(81319,2),(81321,2),(81326,2),(81331,2),(81337,2),(81342,2),(81352,2),(81357,2),(81367,2),(81369,2),(81379,2),(81381,2),(81382,2),(81388,2),(81389,2),(81394,2),(81404,2),(81410,2),(81417,2),(81419,2),(81420,2),(81428,2),(81444,2),(81445,2),(81457,2),(81458,2),(81468,2),(81489,2),(81494,2),(81497,2),(81498,2),(81501,2),(81512,2),(81516,2),(81521,2),(81540,2),(81544,2),(81545,2),(81555,2),(81556,2),(81577,2),(81582,2),(81586,2),(81596,2),(81599,2),(81603,2),(81605,2),(81614,2),(81615,2),(81621,2),(81635,2),(81642,2),(81648,2),(81663,2),(81664,2),(81672,2),(81674,2),(81676,2),(81677,2),(81683,2),(81685,2),(81686,2),(81699,2),(81716,2),(81723,2),(81735,2),(81736,2),(81743,2),(81745,2),(81753,2),(81760,2),(81761,2),(81764,2),(81769,2),(81772,2),(81803,2),(81804,2),(81810,2),(81820,2),(81837,2),(81850,2),(81853,2),(81858,2),(81880,2),(81885,2),(81887,2),(81888,2),(81902,2),(81904,2),(81915,2),(81920,2),(81928,2),(81930,2),(81931,2),(81935,2),(81939,2),(81940,2),(81948,2),(81963,2),(81968,2),(81984,2),(81985,2),(81998,2),(81999,2),(82009,2),(82026,2),(82028,2),(82038,2),(82071,2),(82086,2),(82089,2),(82097,2),(82098,2),(82099,2),(82111,2),(82118,2),(82127,2),(82141,2),(82154,2),(82160,2),(82162,2),(82164,2),(82165,2),(82176,2),(82178,2),(82185,2),(82187,2),(82191,2),(82196,2),(82197,2),(82206,2),(82217,2),(82218,2),(82223,2),(82229,2),(82245,2),(82254,2),(82261,2),(82264,2),(82266,2),(82267,2),(82277,2),(82286,2),(82296,2),(82299,2),(82306,2),(82312,2),(82321,2),(82322,2),(82324,2),(82327,2),(82335,2),(82336,2),(82337,2),(82342,2),(82344,2),(82353,2),(82354,2),(82356,2),(82364,2),(82365,2),(82371,2),(82372,2),(82378,2),(82385,2),(82389,2),(82400,2),(82401,2),(82408,2),(82413,2),(82418,2),(82422,2),(82426,2),(82434,2),(82437,2),(82438,2),(82439,2),(82441,2),(82446,2),(82449,2),(82454,2),(82456,2),(82459,2),(82472,2),(82482,2),(82489,2),(82504,2),(82521,2),(82522,2),(82530,2),(82537,2),(82558,2),(82559,2),(82560,2),(82577,2),(82582,2),(82584,2),(82594,2),(82598,2),(82601,2),(82602,2),(82607,2),(82609,2),(82613,2),(82615,2),(82623,2),(82628,2),(82631,2),(82634,2),(82637,2),(82644,2),(82646,2),(82651,2),(82657,2),(82658,2),(82662,2),(82665,2),(82673,2),(82674,2),(82679,2),(82683,2),(82690,2),(82700,2),(82710,2),(82725,2),(82727,2),(82732,2),(82740,2),(82744,2),(82748,2),(82752,2),(82754,2),(82758,2),(82760,2),(82781,2),(82784,2),(82786,2),(82805,2),(82809,2),(82813,2),(82814,2),(82818,2),(82819,2),(82821,2),(82827,2),(82844,2),(82851,2),(82852,2),(82857,2),(82866,2),(82868,2),(82869,2),(82875,2),(82877,2),(82879,2),(82886,2),(82887,2),(82888,2),(82895,2),(82896,2),(82898,2),(82912,2),(82917,2),(82932,2),(82933,2),(82936,2),(82939,2),(82941,2),(82945,2),(82947,2),(82949,2),(82964,2),(82967,2),(82972,2),(82977,2),(82981,2),(82988,2),(82990,2),(82996,2),(83016,2),(83017,2),(83029,2),(83041,2),(83044,2),(83046,2),(83049,2),(83051,2),(83059,2),(83068,2),(83088,2),(83089,2),(83091,2),(83094,2),(83096,2),(83097,2),(83099,2),(83103,2),(83116,2),(83118,2),(83123,2),(83131,2),(83135,2),(83147,2),(83151,2),(83162,2),(83171,2),(83173,2),(83175,2),(83179,2),(83184,2),(83189,2),(83206,2),(83209,2),(83210,2),(83215,2),(83216,2),(83226,2),(83228,2),(83234,2),(83240,2),(83241,2),(83242,2),(83276,2),(83297,2),(83302,2),(83313,2),(83316,2),(83317,2),(83318,2),(83321,2),(83322,2),(83328,2),(83330,2),(83337,2),(83339,2),(83346,2),(83353,2),(83355,2),(83367,2),(83371,2),(83372,2),(83378,2),(83383,2),(83388,2),(83389,2),(83399,2),(83402,2),(83422,2),(83423,2),(83424,2),(83425,2),(83429,2),(83437,2),(83438,2),(83445,2),(83446,2),(83447,2),(83460,2),(83461,2),(83466,2),(83474,2),(83479,2),(83485,2),(83491,2),(83494,2),(83495,2),(83499,2),(83504,2),(83510,2),(83513,2),(83517,2),(83538,2),(83543,2),(83558,2),(83559,2),(83562,2),(83566,2),(83587,2),(83594,2),(83601,2),(83611,2),(83613,2),(83615,2),(83627,2),(83632,2),(83636,2),(83637,2),(83647,2),(83648,2),(83651,2),(83653,2),(83659,2),(83664,2),(83667,2),(83672,2),(83677,2),(83680,2),(83681,2),(83693,2),(83695,2),(83704,2),(83706,2),(83717,2),(83727,2),(83728,2),(83729,2),(83733,2),(83740,2),(83749,2),(83751,2),(83764,2),(83767,2),(83770,2),(83788,2),(83792,2),(83793,2),(83803,2),(83804,2),(83805,2),(83812,2),(83825,2),(83826,2),(83831,2),(83839,2),(83844,2),(83848,2),(83852,2),(83867,2),(83870,2),(83874,2),(83898,2),(83900,2),(83901,2),(83906,2),(83910,2),(83912,2),(83926,2),(83928,2),(83933,2),(83935,2),(83937,2),(83952,2),(83953,2),(83963,2),(83965,2),(83974,2),(83975,2),(83977,2),(83983,2),(83999,2),(84007,2),(84008,2),(84021,2),(84022,2),(84023,2),(84027,2),(84029,2),(84031,2),(84035,2),(84041,2),(84043,2),(84054,2),(84083,2),(84084,2),(84102,2),(84111,2),(84112,2),(84127,2),(84138,2),(84140,2),(84142,2),(84144,2),(84148,2),(84151,2),(84152,2),(84153,2),(84160,2),(84162,2),(84164,2),(84169,2),(84175,2),(84178,2),(84185,2),(84204,2),(84210,2),(84219,2),(84241,2),(84250,2),(84256,2),(84257,2),(84267,2),(84271,2),(84272,2),(84274,2),(84276,2),(84292,2),(84300,2),(84315,2),(84319,2),(84327,2),(84333,2),(84342,2),(84343,2),(84350,2),(84352,2),(84355,2),(84359,2),(84368,2),(84377,2),(84383,2),(84387,2),(84391,2),(84396,2),(84405,2),(84411,2),(84414,2),(84424,2),(84428,2),(84442,2),(84454,2),(84457,2),(84458,2),(84461,2),(84463,2),(84494,2),(84498,2),(84509,2),(84524,2),(84543,2),(84556,2),(84561,2),(84565,2),(84569,2),(84577,2),(84581,2),(84588,2),(84589,2),(84591,2),(84595,2),(84599,2),(84610,2),(84615,2),(84616,2),(84617,2),(84620,2),(84624,2),(84628,2),(84633,2),(84641,2),(84643,2),(84648,2),(84655,2),(84656,2),(84676,2),(84681,2),(84686,2),(84693,2),(84705,2),(84710,2),(84723,2),(84735,2),(84737,2),(84740,2),(84744,2),(84747,2),(84752,2),(84753,2),(84756,2),(84758,2),(84768,2),(84777,2),(84785,2),(84788,2),(84789,2),(84791,2),(84796,2),(84797,2),(84809,2),(84810,2),(84820,2),(84822,2),(84829,2),(84837,2),(84846,2),(84850,2),(84863,2),(84864,2),(84865,2),(84891,2),(84897,2),(84900,2),(84906,2),(84908,2),(84912,2),(84924,2),(84927,2),(84934,2),(84935,2),(84939,2),(84940,2),(84952,2),(84955,2),(84960,2),(84980,2),(84987,2),(84992,2),(84998,2),(85007,2),(85009,2),(85025,2),(85041,2),(85052,2),(85066,2),(85073,2),(85075,2),(85077,2),(85079,2),(85093,2),(85099,2),(85101,2),(85113,2),(85135,2),(85140,2),(85144,2),(85147,2),(85161,2),(85165,2),(85167,2),(85172,2),(85176,2),(85180,2),(85184,2),(85201,2),(85202,2),(85217,2),(85226,2),(85233,2),(85239,2),(85243,2),(85254,2),(85256,2),(85273,2),(85282,2),(85283,2),(85290,2),(85292,2),(85297,2),(85305,2),(85306,2),(85308,2),(85309,2),(85312,2),(85318,2),(85320,2),(85331,2),(85332,2),(85362,2),(85372,2),(85378,2),(85385,2),(85392,2),(85397,2),(85405,2),(85413,2),(85419,2),(85420,2),(85424,2),(85434,2),(85436,2),(85438,2),(85439,2),(85466,2),(85478,2),(85479,2),(85482,2),(85488,2),(85492,2),(85496,2),(85505,2),(85507,2),(85518,2),(85530,2),(85532,2),(85542,2),(85543,2),(85544,2),(85547,2),(85552,2),(85562,2),(85565,2),(85587,2),(85588,2),(85610,2),(85613,2),(85615,2),(85626,2),(85633,2),(85640,2),(85642,2),(85648,2),(85650,2),(85655,2),(85673,2),(85681,2),(85685,2),(85688,2),(85689,2),(85690,2),(85692,2),(85695,2),(85697,2),(85715,2),(85720,2),(85728,2),(85732,2),(85741,2),(85761,2),(85788,2),(85794,2),(85799,2),(85801,2),(85804,2),(85808,2),(85809,2),(85815,2),(85816,2),(85819,2),(85834,2),(85836,2),(85845,2),(85849,2),(85854,2),(85862,2),(85872,2),(85873,2),(85879,2),(85885,2),(85889,2),(85901,2),(85904,2),(85915,2),(85917,2),(85918,2),(85923,2),(85929,2),(85938,2),(85950,2),(85956,2),(85958,2),(85961,2),(85966,2),(85989,2),(85996,2),(86014,2),(86017,2),(86025,2),(86032,2),(86043,2),(86048,2),(86054,2),(86077,2),(86078,2),(86084,2),(86086,2),(86090,2),(86096,2),(86104,2),(86116,2),(86121,2),(86126,2),(86139,2),(86140,2),(86144,2),(86152,2),(86162,2),(86165,2),(86168,2),(86180,2),(86184,2),(86191,2),(86192,2),(86197,2),(86213,2),(86234,2),(86241,2),(86249,2),(86266,2),(86277,2),(86278,2),(86300,2),(86302,2),(86316,2),(86317,2),(86320,2),(86323,2),(86329,2),(86336,2),(86344,2),(86349,2),(86352,2),(86356,2),(86362,2),(86364,2),(86365,2),(86373,2),(86382,2),(86383,2),(86385,2),(86395,2),(86398,2),(86400,2),(86411,2),(86418,2),(86419,2),(86421,2),(86440,2),(86447,2),(86449,2),(86454,2),(86461,2),(86463,2),(86471,2),(86473,2),(86475,2),(86478,2),(86480,2),(86481,2),(86492,2),(86493,2),(86510,2),(86535,2),(86545,2),(86558,2),(86559,2),(86563,2),(86568,2),(86581,2),(86590,2),(86599,2),(86604,2),(86614,2),(86617,2),(86619,2),(86628,2),(86634,2),(86644,2),(86686,2),(86693,2),(86697,2),(86699,2),(86700,2),(86717,2),(86724,2),(86725,2),(86735,2),(86736,2),(86737,2),(86744,2),(86748,2),(86751,2),(86754,2),(86758,2),(86761,2),(86763,2),(86767,2),(86773,2),(86776,2),(86778,2),(86787,2),(86789,2),(86798,2),(86799,2),(86801,2),(86820,2),(86824,2),(86829,2),(86830,2),(86832,2),(86837,2),(86843,2),(86844,2),(86847,2),(86867,2),(86880,2),(86881,2),(86889,2),(86891,2),(86893,2),(86897,2),(86909,2),(86910,2),(86914,2),(86915,2),(86945,2),(86946,2),(86947,2),(86956,2),(86958,2),(86959,2),(86967,2),(86977,2),(86978,2),(86982,2),(86985,2),(86987,2),(86990,2),(87001,2),(87005,2),(87017,2),(87025,2),(87026,2),(87038,2),(87047,2),(87050,2),(87052,2),(87054,2),(87055,2),(87057,2),(87064,2),(87069,2),(87078,2),(87080,2),(87082,2),(87086,2),(87095,2),(87106,2),(87112,2),(87129,2),(87134,2),(87136,2),(87143,2),(87147,2),(87158,2),(87159,2),(87169,2),(87181,2),(87186,2),(87189,2),(87194,2),(87202,2),(87208,2),(87221,2),(87245,2),(87254,2),(87261,2),(87269,2),(87274,2),(87277,2),(87278,2),(87292,2),(87297,2),(87302,2),(87303,2),(87307,2),(87310,2),(87314,2),(87318,2),(87329,2),(87338,2),(87344,2),(87368,2),(87369,2),(87374,2),(87380,2),(87381,2),(87387,2),(87389,2),(87391,2),(87405,2),(87417,2),(87421,2),(87423,2),(87431,2),(87432,2),(87433,2),(87436,2),(87457,2),(87464,2),(87465,2),(87485,2),(87493,2),(87494,2),(87508,2),(87512,2),(87514,2),(87516,2),(87529,2),(87531,2),(87539,2),(87544,2),(87546,2),(87561,2),(87564,2),(87566,2),(87582,2),(87583,2),(87588,2),(87594,2),(87600,2),(87601,2),(87609,2),(87634,2),(87640,2),(87644,2),(87661,2),(87680,2),(87681,2),(87699,2),(87721,2),(87728,2),(87729,2),(87730,2),(87742,2),(87747,2),(87751,2),(87752,2),(87761,2),(87765,2),(87775,2),(87778,2),(87781,2),(87784,2),(87785,2),(87791,2),(87806,2),(87812,2),(87813,2),(87814,2),(87817,2),(87818,2),(87828,2),(87829,2),(87838,2),(87842,2),(87847,2),(87853,2),(87856,2),(87865,2),(87868,2),(87881,2),(87883,2),(87890,2),(87892,2),(87896,2),(87904,2),(87905,2),(87907,2),(87914,2),(87923,2),(87936,2),(87937,2),(87943,2),(87944,2),(87946,2),(87954,2),(87960,2),(87961,2),(87967,2),(87977,2),(87982,2),(87990,2),(87993,2),(87996,2),(88000,2),(88029,2),(88036,2),(88042,2),(88044,2),(88049,2),(88067,2),(88069,2),(88071,2),(88074,2),(88082,2),(88083,2),(88084,2),(88086,2),(88088,2),(88091,2),(88092,2),(88108,2),(88109,2),(88115,2),(88120,2),(88128,2),(88130,2),(88132,2),(88134,2),(88135,2),(88156,2),(88161,2),(88172,2),(88184,2),(88186,2),(88205,2),(88209,2),(88216,2),(88220,2),(88223,2),(88224,2),(88258,2),(88261,2),(88275,2),(88277,2),(88288,2),(88293,2),(88296,2),(88302,2),(88314,2),(88319,2),(88324,2),(88327,2),(88330,2),(88335,2),(88340,2),(88345,2),(88347,2),(88349,2),(88355,2),(88357,2),(88360,2),(88388,2),(88402,2),(88409,2),(88414,2),(88418,2),(88440,2),(88442,2),(88461,2),(88465,2),(88470,2),(88480,2),(88482,2),(88485,2),(88496,2),(88507,2),(88508,2),(88510,2),(88514,2),(88527,2),(88539,2),(88548,2),(88553,2),(88562,2),(88563,2),(88564,2),(88568,2),(88575,2),(88582,2),(88594,2),(88595,2),(88599,2),(88606,2),(88610,2),(88614,2),(88618,2),(88627,2),(88628,2),(88630,2),(88631,2),(88636,2),(88641,2),(88642,2),(88656,2),(88660,2),(88663,2),(88668,2),(88675,2),(88679,2),(88693,2),(88700,2),(88711,2),(88713,2),(88742,2),(88747,2),(88748,2),(88760,2),(88765,2),(88767,2),(88784,2),(88786,2),(88790,2),(88795,2),(88803,2),(88810,2),(88812,2),(88823,2),(88829,2),(88830,2),(88838,2),(88854,2),(88856,2),(88860,2),(88862,2),(88864,2),(88869,2),(88873,2),(88874,2),(88883,2),(88896,2),(88898,2),(88911,2),(88921,2),(88922,2),(88927,2),(88933,2),(88940,2),(88945,2),(88950,2),(88952,2),(88954,2),(88957,2),(88959,2),(88966,2),(88972,2),(88993,2),(88998,2),(88999,2),(89002,2),(89009,2),(89015,2),(89016,2),(89021,2),(89028,2),(89038,2),(89044,2),(89045,2),(89051,2),(89052,2),(89057,2),(89063,2),(89064,2),(89065,2),(89067,2),(89073,2),(89074,2),(89075,2),(89079,2),(89086,2),(89089,2),(89097,2),(89101,2),(89135,2),(89145,2),(89150,2),(89159,2),(89166,2),(89168,2),(89170,2),(89171,2),(89173,2),(89189,2),(89191,2),(89192,2),(89199,2),(89202,2),(89203,2),(89208,2),(89209,2),(89215,2),(89243,2),(89251,2),(89253,2),(89258,2),(89262,2),(89264,2),(89274,2),(89281,2),(89283,2),(89289,2),(89291,2),(89295,2),(89309,2),(89319,2),(89330,2),(89333,2),(89341,2),(89344,2),(89351,2),(89356,2),(89359,2),(89377,2),(89383,2),(89390,2),(89395,2),(89404,2),(89408,2),(89422,2),(89423,2),(89424,2),(89430,2),(89433,2),(89436,2),(89447,2),(89453,2),(89454,2),(89456,2),(89461,2),(89463,2),(89471,2),(89473,2),(89477,2),(89480,2),(89483,2),(89485,2),(89489,2),(89491,2),(89499,2),(89502,2),(89508,2),(89513,2),(89514,2),(89515,2),(89530,2),(89534,2),(89543,2),(89544,2),(89550,2),(89559,2),(89566,2),(89580,2),(89595,2),(89602,2),(89608,2),(89610,2),(89611,2),(89613,2),(89642,2),(89648,2),(89652,2),(89653,2),(89658,2),(89659,2),(89664,2),(89665,2),(89667,2),(89668,2),(89675,2),(89683,2),(89684,2),(89696,2),(89710,2),(89711,2),(89719,2),(89750,2),(89754,2),(89756,2),(89763,2),(89777,2),(89778,2),(89779,2),(89784,2),(89788,2),(89789,2),(89790,2),(89791,2),(89797,2),(89814,2),(89817,2),(89824,2),(89830,2),(89850,2),(89853,2),(89854,2),(89862,2),(89863,2),(89866,2),(89874,2),(89880,2),(89884,2),(89896,2),(89905,2),(89914,2),(89918,2),(89919,2),(89920,2),(89927,2),(89930,2),(89931,2),(89932,2),(89934,2),(89936,2),(89973,2),(89978,2),(89988,2),(89997,2),(89998,2),(89999,2),(90000,2),(90002,2),(90007,2),(90018,2),(90031,2),(90032,2),(90033,2),(90034,2),(90039,2),(90043,2),(90044,2),(90062,2),(90065,2),(90070,2),(90076,2),(90078,2),(90081,2),(90103,2),(90108,2),(90109,2),(90114,2),(90132,2),(90153,2),(90162,2),(90175,2),(90176,2),(90187,2),(90189,2),(90190,2),(90193,2),(90194,2),(90200,2),(90202,2),(90205,2),(90214,2),(90215,2),(90216,2),(90230,2),(90255,2),(90262,2),(90263,2),(90265,2),(90267,2),(90282,2),(90283,2),(90285,2),(90286,2),(90290,2),(90306,2),(90307,2),(90316,2),(90320,2),(90322,2),(90327,2),(90331,2),(90341,2),(90357,2),(90362,2),(90376,2),(90382,2),(90386,2),(90391,2),(90399,2),(90407,2),(90409,2),(90410,2),(90435,2),(90443,2),(90447,2),(90460,2),(90463,2),(90470,2),(90475,2),(90494,2),(90499,2),(90503,2),(90504,2),(90509,2),(90523,2),(90528,2),(90530,2),(90535,2),(90543,2),(90545,2),(90550,2),(90552,2),(90554,2),(90561,2),(90570,2),(90576,2),(90577,2),(90580,2),(90583,2),(90587,2),(90594,2),(90614,2),(90622,2),(90640,2),(90642,2),(90646,2),(90648,2),(90659,2),(90660,2),(90661,2),(90667,2),(90669,2),(90672,2),(90679,2),(90680,2),(90693,2),(90695,2),(90710,2),(90711,2),(90712,2),(90713,2),(90716,2),(90720,2),(90723,2),(90740,2),(90741,2),(90746,2),(90747,2),(90748,2),(90767,2),(90772,2),(90775,2),(90779,2),(90783,2),(90787,2),(90801,2),(90815,2),(90825,2),(90851,2),(90857,2),(90863,2),(90867,2),(90872,2),(90875,2),(90879,2),(90882,2),(90892,2),(90921,2),(90922,2),(90925,2),(90928,2),(90935,2),(90940,2),(90948,2),(90957,2),(90958,2),(90972,2),(90977,2),(90986,2),(90990,2),(91002,2),(91011,2),(91016,2),(91030,2),(91031,2),(91035,2),(91042,2),(91044,2),(91046,2),(91050,2),(91059,2),(91070,2),(91072,2),(91074,2),(91087,2),(91098,2),(91108,2),(91112,2),(91119,2),(91120,2),(91134,2),(91135,2),(91137,2),(91138,2),(91159,2),(91163,2),(91173,2),(91175,2),(91179,2),(91180,2),(91189,2),(91196,2),(91197,2),(91205,2),(91207,2),(91210,2),(91219,2),(91233,2),(91238,2),(91241,2),(91245,2),(91247,2),(91253,2),(91254,2),(91255,2),(91261,2),(91262,2),(91269,2),(91273,2),(91284,2),(91293,2),(91299,2),(91301,2),(91304,2),(91306,2),(91310,2),(91315,2),(91331,2),(91333,2),(91337,2),(91343,2),(91347,2),(91349,2),(91377,2),(91380,2),(91383,2),(91384,2),(91394,2),(91395,2),(91401,2),(91403,2),(91411,2),(91412,2),(91420,2),(91425,2),(91428,2),(91433,2),(91436,2),(91445,2),(91455,2),(91457,2),(91465,2),(91472,2),(91495,2),(91496,2),(91516,2),(91519,2),(91528,2),(91530,2),(91536,2),(91549,2),(91553,2),(91556,2),(91557,2),(91561,2),(91566,2),(91572,2),(91580,2),(91581,2),(91588,2),(91589,2),(91591,2),(91597,2),(91598,2),(91606,2),(91608,2),(91609,2),(91610,2),(91614,2),(91621,2),(91628,2),(91633,2),(91639,2),(91642,2),(91645,2),(91647,2),(91651,2),(91668,2),(91670,2),(91671,2),(91678,2),(91679,2),(91683,2),(91694,2),(91697,2),(91702,2),(91704,2),(91707,2),(91710,2),(91718,2),(91726,2),(91727,2),(91733,2),(91735,2),(91736,2),(91738,2),(91741,2),(91742,2),(91744,2),(91751,2),(91759,2),(91764,2),(91765,2),(91773,2),(91780,2),(91787,2),(91796,2),(91802,2),(91807,2),(91816,2),(91818,2),(91822,2),(91835,2),(91836,2),(91837,2),(91841,2),(91843,2),(91844,2),(91845,2),(91853,2),(91863,2),(91877,2),(91879,2),(91880,2),(91882,2),(91884,2),(91887,2),(91900,2),(91906,2),(91909,2),(91916,2),(91925,2),(91926,2),(91933,2),(91934,2),(91941,2),(91946,2),(91947,2),(91949,2),(91951,2),(91960,2),(91962,2),(91967,2),(91974,2),(91979,2),(91987,2),(91993,2),(92007,2),(92036,2),(92043,2),(92045,2),(92046,2),(92050,2),(92070,2),(92081,2),(92086,2),(92088,2),(92093,2),(92113,2),(92116,2),(92120,2),(92128,2),(92130,2),(92138,2),(92140,2),(92146,2),(92149,2),(92156,2),(92162,2),(92176,2),(92180,2),(92181,2),(92183,2),(92188,2),(92195,2),(92203,2),(92204,2),(92219,2),(92227,2),(92228,2),(92234,2),(92238,2),(92241,2),(92244,2),(92245,2),(92252,2),(92253,2),(92258,2),(92260,2),(92265,2),(92267,2),(92268,2),(92273,2),(92279,2),(92280,2),(92282,2),(92284,2),(92294,2),(92295,2),(92314,2),(92322,2),(92323,2),(92325,2),(92327,2),(92328,2),(92334,2),(92338,2),(92344,2),(92345,2),(92371,2),(92372,2),(92380,2),(92385,2),(92386,2),(92391,2),(92393,2),(92395,2),(92403,2),(92410,2),(92412,2),(92420,2),(92439,2),(92445,2),(92452,2),(92455,2),(92469,2),(92475,2),(92481,2),(92492,2),(92500,2),(92511,2),(92512,2),(92521,2),(92537,2),(92539,2),(92557,2),(92558,2),(92560,2),(92561,2),(92566,2),(92569,2),(92572,2),(92574,2),(92579,2),(92580,2),(92587,2),(92594,2),(92622,2),(92625,2),(92627,2),(92630,2),(92631,2),(92639,2),(92663,2),(92672,2),(92676,2),(92691,2),(92707,2),(92740,2),(92750,2),(92751,2),(92752,2),(92753,2),(92763,2),(92767,2),(92785,2),(92796,2),(92799,2),(92801,2),(92805,2),(92843,2),(92847,2),(92851,2),(92854,2),(92857,2),(92868,2),(92869,2),(92874,2),(92875,2),(92878,2),(92887,2),(92895,2),(92896,2),(92900,2),(92914,2),(92918,2),(92920,2),(92936,2),(92941,2),(92944,2),(92949,2),(92950,2),(92952,2),(92955,2),(92962,2),(92970,2),(92982,2),(92983,2),(92987,2),(92988,2),(92990,2),(92992,2),(93009,2),(93011,2),(93017,2),(93023,2),(93036,2),(93037,2),(93038,2),(93040,2),(93048,2),(93067,2),(93068,2),(93072,2),(93081,2),(93084,2),(93088,2),(93090,2),(93094,2),(93099,2),(93107,2),(93108,2),(93110,2),(93113,2),(93117,2),(93120,2),(93130,2),(93131,2),(93134,2),(93138,2),(93141,2),(93148,2),(93159,2),(93163,2),(93169,2),(93172,2),(93177,2),(93184,2),(93186,2),(93193,2),(93216,2),(93217,2),(93218,2),(93227,2),(93233,2),(93243,2),(93245,2),(93250,2),(93257,2),(93265,2),(93267,2),(93274,2),(93275,2),(93277,2),(93278,2),(93279,2),(93288,2),(93303,2),(93314,2),(93319,2),(93322,2),(93324,2),(93325,2),(93342,2),(93353,2),(93360,2),(93375,2),(93384,2),(93392,2),(93394,2),(93395,2),(93402,2),(93413,2),(93453,2),(93455,2),(93459,2),(93464,2),(93470,2),(93479,2),(93486,2),(93489,2),(93495,2),(93507,2),(93510,2),(93513,2),(93514,2),(93520,2),(93531,2),(93535,2),(93545,2),(93547,2),(93548,2),(93551,2),(93552,2),(93563,2),(93564,2),(93569,2),(93571,2),(93585,2),(93586,2),(93600,2),(93606,2),(93618,2),(93623,2),(93624,2),(93635,2),(93645,2),(93648,2),(93653,2),(93672,2),(93673,2),(93676,2),(93681,2),(93683,2),(93691,2),(93695,2),(93702,2),(93710,2),(93713,2),(93717,2),(93718,2),(93728,2),(93730,2),(93731,2),(93736,2),(93739,2),(93743,2),(93747,2),(93751,2),(93752,2),(93754,2),(93757,2),(93770,2),(93782,2),(93786,2),(93788,2),(93804,2),(93805,2),(93810,2),(93811,2),(93818,2),(93832,2),(93838,2),(93841,2),(93856,2),(93865,2),(93881,2),(93891,2),(93898,2),(93917,2),(93920,2),(93923,2),(93928,2),(93929,2),(93946,2),(93956,2),(93958,2),(93960,2),(93969,2),(93970,2),(93985,2),(93992,2),(93998,2),(94000,2),(94005,2),(94011,2),(94014,2),(94021,2),(94038,2),(94044,2),(94056,2),(94060,2),(94061,2),(94063,2),(94076,2),(94077,2),(94087,2),(94090,2),(94092,2),(94105,2),(94106,2),(94115,2),(94123,2),(94127,2),(94132,2),(94134,2),(94139,2),(94140,2),(94145,2),(94147,2),(94150,2),(94151,2),(94159,2),(94169,2),(94173,2),(94183,2),(94197,2),(94205,2),(94206,2),(94211,2),(94212,2),(94220,2),(94224,2),(94236,2),(94246,2),(94247,2),(94252,2),(94253,2),(94259,2),(94260,2),(94264,2),(94278,2),(94296,2),(94312,2),(94314,2),(94316,2),(94319,2),(94321,2),(94325,2),(94335,2),(94337,2),(94338,2),(94341,2),(94356,2),(94361,2),(94364,2),(94369,2),(94382,2),(94392,2),(94403,2),(94407,2),(94410,2),(94420,2),(94423,2),(94432,2),(94437,2),(94442,2),(94447,2),(94448,2),(94453,2),(94458,2),(94461,2),(94462,2),(94465,2),(94472,2),(94474,2),(94480,2),(94499,2),(94511,2),(94514,2),(94518,2),(94519,2),(94521,2),(94529,2),(94547,2),(94548,2),(94554,2),(94558,2),(94559,2),(94565,2),(94573,2),(94574,2),(94590,2),(94593,2),(94614,2),(94618,2),(94623,2),(94625,2),(94646,2),(94663,2),(94665,2),(94666,2),(94668,2),(94678,2),(94681,2),(94684,2),(94693,2),(94696,2),(94700,2),(94703,2),(94715,2),(94716,2),(94721,2),(94730,2),(94735,2),(94736,2),(94745,2),(94756,2),(94757,2),(94759,2),(94761,2),(94772,2),(94776,2),(94779,2),(94780,2),(94793,2),(94802,2),(94803,2),(94805,2),(94807,2),(94812,2),(94816,2),(94828,2),(94829,2),(94830,2),(94839,2),(94842,2),(94843,2),(94849,2),(94858,2),(94862,2),(94875,2),(94886,2),(94888,2),(94889,2),(94895,2),(94900,2),(94910,2),(94912,2),(94913,2),(94927,2),(94930,2),(94931,2),(94945,2),(94946,2),(94949,2),(94955,2),(94983,2),(94985,2),(94992,2),(95009,2),(95010,2),(95027,2),(95037,2),(95044,2),(95045,2),(95051,2),(95057,2),(95061,2),(95063,2),(95070,2),(95082,2),(95083,2),(95092,2),(95098,2),(95102,2),(95111,2),(95120,2),(95122,2),(95143,2),(95145,2),(95153,2),(95158,2),(95161,2),(95162,2),(95182,2),(95183,2),(95186,2),(95190,2),(95191,2),(95195,2),(95199,2),(95202,2),(95209,2),(95213,2),(95218,2),(95250,2),(95252,2),(95253,2),(95261,2),(95270,2),(95276,2),(95277,2),(95279,2),(95286,2),(95289,2),(95291,2),(95302,2),(95304,2),(95321,2),(95322,2),(95332,2),(95334,2),(95336,2),(95341,2),(95343,2),(95344,2),(95348,2),(95353,2),(95356,2),(95366,2),(95417,2),(95418,2),(95419,2),(95426,2),(95428,2),(95429,2),(95448,2),(95453,2),(95454,2),(95456,2),(95459,2),(95467,2),(95485,2),(95505,2),(95509,2),(95513,2),(95524,2),(95531,2),(95532,2),(95536,2),(95539,2),(95543,2),(95549,2),(95550,2),(95553,2),(95558,2),(95569,2),(95576,2),(95581,2),(95584,2),(95585,2),(95588,2),(95589,2),(95594,2),(95600,2),(95604,2),(95615,2),(95617,2),(95619,2),(95628,2),(95634,2),(95636,2),(95644,2),(95649,2),(95661,2),(95670,2),(95678,2),(95679,2),(95685,2),(95690,2),(95697,2),(95702,2),(95704,2),(95706,2),(95713,2),(95721,2),(95725,2),(95729,2),(95740,2),(95768,2),(95775,2),(95776,2),(95786,2),(95787,2),(95792,2),(95794,2),(95795,2),(95805,2),(95809,2),(95813,2),(95816,2),(95820,2),(95821,2),(95823,2),(95833,2),(95845,2),(95850,2),(95863,2),(95865,2),(95878,2),(95879,2),(95887,2),(95901,2),(95905,2),(95906,2),(95910,2),(95918,2),(95923,2),(95927,2),(95930,2),(95946,2),(95964,2),(95969,2),(95970,2),(95977,2),(95981,2),(95983,2),(95985,2),(95988,2),(96004,2),(96005,2),(96008,2),(96031,2),(96039,2),(96046,2),(96061,2),(96067,2),(96072,2),(96074,2),(96076,2),(96084,2),(96089,2),(96096,2),(96097,2),(96099,2),(96100,2),(96103,2),(96123,2),(96163,2),(96170,2),(96178,2),(96182,2),(96186,2),(96193,2),(96195,2),(96218,2),(96225,2),(96231,2),(96233,2),(96240,2),(96243,2),(96254,2),(96255,2),(96260,2),(96271,2),(96273,2),(96276,2),(96280,2),(96287,2),(96289,2),(96292,2),(96299,2),(96302,2),(96305,2),(96320,2),(96325,2),(96332,2),(96337,2),(96338,2),(96341,2),(96353,2),(96354,2),(96368,2),(96370,2),(96376,2),(96377,2),(96382,2),(96388,2),(96391,2),(96395,2),(96397,2),(96402,2),(96425,2),(96434,2),(96449,2),(96453,2),(96459,2),(96464,2),(96465,2),(96483,2),(96485,2),(96490,2),(96492,2),(96493,2),(96504,2),(96513,2),(96516,2),(96517,2),(96518,2),(96520,2),(96542,2),(96555,2),(96564,2),(96596,2),(96605,2),(96606,2),(96609,2),(96612,2),(96628,2),(96635,2),(96636,2),(96641,2),(96644,2),(96647,2),(96651,2),(96655,2),(96657,2),(96669,2),(96675,2),(96684,2),(96686,2),(96687,2),(96691,2),(96693,2),(96695,2),(96699,2),(96702,2),(96709,2),(96713,2),(96719,2),(96720,2),(96721,2),(96723,2),(96725,2),(96726,2),(96730,2),(96747,2),(96750,2),(96753,2),(96756,2),(96758,2),(96763,2),(96764,2),(96765,2),(96772,2),(96775,2),(96797,2),(96804,2),(96824,2),(96825,2),(96831,2),(96834,2),(96835,2),(96839,2),(96845,2),(96846,2),(96849,2),(96852,2),(96863,2),(96869,2),(96872,2),(96888,2),(96891,2),(96892,2),(96903,2),(96905,2),(96912,2),(96915,2),(96916,2),(96920,2),(96921,2),(96922,2),(96924,2),(96933,2),(96942,2),(96947,2),(96949,2),(96956,2),(96960,2),(96961,2),(96963,2),(96966,2),(96971,2),(96973,2),(96974,2),(96976,2),(96980,2),(96983,2),(96987,2),(96998,2),(97005,2),(97008,2),(97011,2),(97014,2),(97016,2),(97020,2),(97021,2),(97026,2),(97027,2),(97031,2),(97035,2),(97054,2),(97059,2),(97078,2),(97083,2),(97084,2),(97086,2),(97094,2),(97095,2),(97098,2),(97106,2),(97123,2),(97129,2),(97131,2),(97135,2),(97140,2),(97147,2),(97155,2),(97156,2),(97159,2),(97163,2),(97164,2),(97167,2),(97168,2),(97177,2),(97183,2),(97192,2),(97207,2),(97213,2),(97215,2),(97220,2),(97223,2),(97226,2),(97229,2),(97235,2),(97236,2),(97241,2),(97246,2),(97247,2),(97248,2),(97251,2),(97271,2),(97273,2),(97274,2),(97276,2),(97288,2),(97300,2),(97304,2),(97308,2),(97315,2),(97320,2),(97321,2),(97327,2),(97341,2),(97348,2),(97349,2),(97350,2),(97355,2),(97362,2),(97371,2),(97388,2),(97389,2),(97397,2),(97414,2),(97415,2),(97418,2),(97422,2),(97437,2),(97439,2),(97440,2),(97443,2),(97448,2),(97449,2),(97450,2),(97461,2),(97472,2),(97484,2),(97489,2),(97490,2),(97494,2),(97499,2),(97507,2),(97517,2),(97520,2),(97530,2),(97532,2),(97533,2),(97535,2),(97564,2),(97570,2),(97578,2),(97580,2),(97581,2),(97584,2),(97586,2),(97597,2),(97601,2),(97604,2),(97608,2),(97609,2),(97625,2),(97629,2),(97638,2),(97641,2),(97646,2),(97649,2),(97655,2),(97662,2),(97667,2),(97675,2),(97679,2),(97683,2),(97701,2),(97702,2),(97711,2),(97712,2),(97724,2),(97738,2),(97741,2),(97751,2),(97758,2),(97763,2),(97764,2),(97765,2),(97771,2),(97778,2),(97783,2),(97793,2),(97795,2),(97796,2),(97800,2),(97806,2),(97807,2),(97810,2),(97828,2),(97833,2),(97834,2),(97840,2),(97848,2),(97854,2),(97855,2),(97857,2),(97860,2),(97872,2),(97877,2),(97879,2),(97883,2),(97902,2),(97906,2),(97913,2),(97919,2),(97945,2),(97950,2),(97952,2),(97959,2),(97965,2),(97966,2),(97967,2),(97970,2),(97971,2),(97975,2),(97980,2),(97982,2),(97986,2),(97997,2),(98001,2),(98005,2),(98016,2),(98021,2),(98028,2),(98029,2),(98034,2),(98036,2),(98040,2),(98063,2),(98070,2),(98076,2),(98084,2),(98091,2),(98096,2),(98100,2),(98102,2),(98109,2),(98110,2),(98113,2),(98119,2),(98128,2),(98132,2),(98153,2),(98154,2),(98162,2),(98163,2),(98166,2),(98173,2),(98185,2),(98191,2),(98192,2),(98204,2),(98207,2),(98214,2),(98217,2),(98219,2),(98224,2),(98227,2),(98233,2),(98234,2),(98242,2),(98243,2),(98260,2),(98263,2),(98264,2),(98268,2),(98287,2),(98297,2),(98315,2),(98331,2),(98345,2),(98371,2),(98375,2),(98389,2),(98390,2),(98395,2),(98396,2),(98405,2),(98406,2),(98411,2),(98424,2),(98433,2),(98439,2),(98443,2),(98445,2),(98457,2),(98463,2),(98466,2),(98467,2),(98469,2),(98483,2),(98491,2),(98492,2),(98495,2),(98507,2),(98511,2),(98519,2),(98523,2),(98524,2),(98534,2),(98538,2),(98542,2),(98544,2),(98549,2),(98556,2),(98561,2),(98566,2),(98570,2),(98575,2),(98579,2),(98586,2),(98589,2),(98593,2),(98594,2),(98599,2),(98604,2),(98607,2),(98610,2),(98616,2),(98629,2),(98631,2),(98644,2),(98652,2),(98653,2),(98668,2),(98669,2),(98690,2),(98696,2),(98703,2),(98706,2),(98710,2),(98711,2),(98712,2),(98717,2),(98720,2),(98748,2),(98758,2),(98770,2),(98779,2),(98782,2),(98784,2),(98786,2),(98787,2),(98795,2),(98797,2),(98802,2),(98809,2),(98813,2),(98825,2),(98829,2),(98846,2),(98886,2),(98888,2),(98891,2),(98892,2),(98897,2),(98907,2),(98911,2),(98919,2),(98922,2),(98929,2),(98937,2),(98938,2),(98940,2),(98941,2),(98942,2),(98943,2),(98946,2),(98949,2),(98964,2),(98970,2),(98971,2),(98978,2),(98992,2),(98999,2),(4,3),(12,3),(16,3),(24,3),(34,3),(39,3),(42,3),(48,3),(49,3),(53,3),(57,3),(78,3),(79,3),(81,3),(94,3),(98,3),(100,3),(102,3),(104,3),(106,3),(114,3),(117,3),(120,3),(124,3),(131,3),(135,3),(137,3),(139,3),(141,3),(144,3),(150,3),(155,3),(164,3),(178,3),(179,3),(181,3),(192,3),(195,3),(203,3),(207,3),(208,3),(217,3),(221,3),(230,3),(232,3),(235,3),(237,3),(238,3),(241,3),(246,3),(248,3),(250,3),(251,3),(252,3),(253,3),(257,3),(263,3),(275,3),(284,3),(288,3),(300,3),(306,3),(308,3),(315,3),(321,3),(338,3),(339,3),(341,3),(344,3),(351,3),(356,3),(374,3),(380,3),(383,3),(384,3),(406,3),(413,3),(420,3),(423,3),(436,3),(437,3),(438,3),(441,3),(443,3),(453,3),(463,3),(467,3),(481,3),(510,3),(511,3),(513,3),(516,3),(521,3),(531,3),(537,3),(543,3),(545,3),(552,3),(557,3),(558,3),(559,3),(562,3),(571,3),(574,3),(576,3),(582,3),(584,3),(585,3),(594,3),(601,3),(603,3),(607,3),(614,3),(616,3),(618,3),(643,3),(645,3),(670,3),(682,3),(690,3),(691,3),(694,3),(695,3),(705,3),(708,3),(714,3),(715,3),(716,3),(723,3),(727,3),(732,3),(736,3),(737,3),(747,3),(749,3),(757,3),(761,3),(762,3),(769,3),(772,3),(783,3),(784,3),(795,3),(798,3),(812,3),(821,3),(834,3),(841,3),(842,3),(861,3),(870,3),(880,3),(906,3),(924,3),(926,3),(928,3),(931,3),(932,3),(935,3),(959,3),(964,3),(967,3),(970,3),(973,3),(974,3),(977,3),(980,3),(991,3),(998,3),(1009,3),(1010,3),(1014,3),(1020,3),(1023,3),(1025,3),(1027,3),(1040,3),(1041,3),(1047,3),(1050,3),(1052,3),(1054,3),(1057,3),(1060,3),(1067,3),(1073,3),(1074,3),(1075,3),(1078,3),(1083,3),(1088,3),(1089,3),(1096,3),(1099,3),(1112,3),(1120,3),(1130,3),(1132,3),(1144,3),(1147,3),(1148,3),(1151,3),(1157,3),(1162,3),(1168,3),(1172,3),(1176,3),(1188,3),(1191,3),(1199,3),(1200,3),(1216,3),(1218,3),(1219,3),(1222,3),(1227,3),(1232,3),(1235,3),(1243,3),(1247,3),(1249,3),(1251,3),(1263,3),(1264,3),(1267,3),(1268,3),(1272,3),(1279,3),(1285,3),(1286,3),(1287,3),(1288,3),(1306,3),(1326,3),(1330,3),(1343,3),(1350,3),(1354,3),(1357,3),(1375,3),(1385,3),(1395,3),(1419,3),(1422,3),(1423,3),(1445,3),(1447,3),(1451,3),(1452,3),(1457,3),(1464,3),(1467,3),(1482,3),(1483,3),(1484,3),(1493,3),(1494,3),(1499,3),(1502,3),(1504,3),(1505,3),(1517,3),(1518,3),(1522,3),(1532,3),(1536,3),(1539,3),(1541,3),(1544,3),(1551,3),(1560,3),(1563,3),(1572,3),(1575,3),(1583,3),(1584,3),(1585,3),(1586,3),(1589,3),(1591,3),(1592,3),(1601,3),(1607,3),(1613,3),(1614,3),(1623,3),(1624,3),(1635,3),(1646,3),(1651,3),(1657,3),(1665,3),(1670,3),(1673,3),(1678,3),(1682,3),(1685,3),(1687,3),(1701,3),(1706,3),(1708,3),(1714,3),(1719,3),(1725,3),(1727,3),(1731,3),(1732,3),(1735,3),(1737,3),(1745,3),(1749,3),(1753,3),(1754,3),(1755,3),(1756,3),(1760,3),(1761,3),(1768,3),(1772,3),(1775,3),(1776,3),(1791,3),(1793,3),(1794,3),(1800,3),(1804,3),(1812,3),(1818,3),(1822,3),(1832,3),(1839,3),(1840,3),(1842,3),(1845,3),(1846,3),(1852,3),(1856,3),(1871,3),(1874,3),(1875,3),(1888,3),(1891,3),(1894,3),(1906,3),(1910,3),(1912,3),(1918,3),(1920,3),(1921,3),(1922,3),(1927,3),(1930,3),(1937,3),(1948,3),(1950,3),(1951,3),(1952,3),(1958,3),(1960,3),(1973,3),(1998,3),(1999,3),(2003,3),(2004,3),(2016,3),(2017,3),(2025,3),(2027,3),(2038,3),(2055,3),(2057,3),(2071,3),(2074,3),(2075,3),(2083,3),(2085,3),(2091,3),(2109,3),(2120,3),(2127,3),(2129,3),(2133,3),(2137,3),(2148,3),(2171,3),(2179,3),(2184,3),(2189,3),(2204,3),(2206,3),(2225,3),(2227,3),(2231,3),(2233,3),(2244,3),(2251,3),(2261,3),(2264,3),(2267,3),(2268,3),(2275,3),(2277,3),(2279,3),(2280,3),(2284,3),(2300,3),(2304,3),(2307,3),(2309,3),(2317,3),(2323,3),(2330,3),(2338,3),(2340,3),(2341,3),(2345,3),(2349,3),(2362,3),(2363,3),(2368,3),(2374,3),(2377,3),(2380,3),(2401,3),(2414,3),(2432,3),(2433,3),(2435,3),(2440,3),(2450,3),(2457,3),(2464,3),(2465,3),(2466,3),(2468,3),(2471,3),(2490,3),(2492,3),(2510,3),(2514,3),(2519,3),(2520,3),(2521,3),(2528,3),(2529,3),(2543,3),(2547,3),(2556,3),(2557,3),(2575,3),(2582,3),(2588,3),(2589,3),(2592,3),(2594,3),(2597,3),(2617,3),(2620,3),(2625,3),(2629,3),(2630,3),(2633,3),(2636,3),(2641,3),(2655,3),(2659,3),(2663,3),(2666,3),(2672,3),(2680,3),(2689,3),(2692,3),(2697,3),(2702,3),(2704,3),(2709,3),(2729,3),(2737,3),(2738,3),(2740,3),(2749,3),(2763,3),(2768,3),(2782,3),(2785,3),(2788,3),(2797,3),(2809,3),(2811,3),(2816,3),(2824,3),(2848,3),(2850,3),(2851,3),(2853,3),(2855,3),(2863,3),(2867,3),(2875,3),(2879,3),(2886,3),(2893,3),(2901,3),(2912,3),(2918,3),(2929,3),(2947,3),(2959,3),(2961,3),(2962,3),(2966,3),(2969,3),(2986,3),(2987,3),(2997,3),(3002,3),(3024,3),(3025,3),(3028,3),(3046,3),(3052,3),(3057,3),(3061,3),(3069,3),(3078,3),(3083,3),(3097,3),(3108,3),(3110,3),(3113,3),(3115,3),(3125,3),(3126,3),(3140,3),(3141,3),(3161,3),(3166,3),(3172,3),(3176,3),(3177,3),(3187,3),(3193,3),(3194,3),(3203,3),(3208,3),(3211,3),(3217,3),(3219,3),(3229,3),(3234,3),(3254,3),(3256,3),(3257,3),(3265,3),(3268,3),(3274,3),(3279,3),(3282,3),(3286,3),(3290,3),(3291,3),(3294,3),(3317,3),(3327,3),(3330,3),(3350,3),(3354,3),(3357,3),(3367,3),(3374,3),(3375,3),(3391,3),(3402,3),(3408,3),(3413,3),(3423,3),(3424,3),(3429,3),(3434,3),(3457,3),(3459,3),(3462,3),(3469,3),(3472,3),(3477,3),(3478,3),(3496,3),(3505,3),(3511,3),(3513,3),(3514,3),(3534,3),(3537,3),(3538,3),(3547,3),(3555,3),(3558,3),(3562,3),(3583,3),(3589,3),(3591,3),(3594,3),(3603,3),(3630,3),(3632,3),(3638,3),(3640,3),(3645,3),(3651,3),(3655,3),(3657,3),(3659,3),(3672,3),(3675,3),(3680,3),(3681,3),(3682,3),(3683,3),(3688,3),(3699,3),(3705,3),(3706,3),(3708,3),(3710,3),(3718,3),(3726,3),(3728,3),(3733,3),(3734,3),(3739,3),(3746,3),(3749,3),(3751,3),(3752,3),(3754,3),(3756,3),(3759,3),(3766,3),(3770,3),(3784,3),(3785,3),(3796,3),(3800,3),(3803,3),(3811,3),(3812,3),(3819,3),(3828,3),(3830,3),(3832,3),(3833,3),(3834,3),(3839,3),(3840,3),(3841,3),(3843,3),(3852,3),(3854,3),(3855,3),(3867,3),(3884,3),(3891,3),(3892,3),(3897,3),(3906,3),(3913,3),(3930,3),(3932,3),(3939,3),(3942,3),(3943,3),(3952,3),(3957,3),(3958,3),(3967,3),(3970,3),(3979,3),(3982,3),(4014,3),(4016,3),(4023,3),(4027,3),(4029,3),(4042,3),(4045,3),(4066,3),(4094,3),(4100,3),(4101,3),(4102,3),(4124,3),(4131,3),(4132,3),(4139,3),(4145,3),(4152,3),(4153,3),(4161,3),(4169,3),(4170,3),(4173,3),(4178,3),(4179,3),(4182,3),(4188,3),(4195,3),(4196,3),(4203,3),(4205,3),(4221,3),(4246,3),(4250,3),(4260,3),(4262,3),(4280,3),(4282,3),(4292,3),(4293,3),(4300,3),(4308,3),(4310,3),(4313,3),(4323,3),(4352,3),(4356,3),(4362,3),(4384,3),(4405,3),(4407,3),(4417,3),(4425,3),(4432,3),(4445,3),(4451,3),(4455,3),(4468,3),(4471,3),(4476,3),(4488,3),(4491,3),(4493,3),(4495,3),(4501,3),(4502,3),(4504,3),(4505,3),(4513,3),(4515,3),(4519,3),(4530,3),(4532,3),(4535,3),(4537,3),(4538,3),(4539,3),(4547,3),(4548,3),(4552,3),(4555,3),(4562,3),(4568,3),(4574,3),(4590,3),(4594,3),(4603,3),(4605,3),(4613,3),(4634,3),(4641,3),(4645,3),(4657,3),(4670,3),(4673,3),(4674,3),(4677,3),(4679,3),(4684,3),(4688,3),(4696,3),(4703,3),(4704,3),(4707,3),(4714,3),(4720,3),(4729,3),(4731,3),(4733,3),(4734,3),(4736,3),(4738,3),(4757,3),(4761,3),(4767,3),(4770,3),(4774,3),(4777,3),(4778,3),(4783,3),(4797,3),(4801,3),(4806,3),(4810,3),(4815,3),(4816,3),(4825,3),(4837,3),(4845,3),(4858,3),(4859,3),(4867,3),(4878,3),(4883,3),(4885,3),(4894,3),(4903,3),(4904,3),(4910,3),(4926,3),(4927,3),(4932,3),(4933,3),(4949,3),(4957,3),(4965,3),(4970,3),(4975,3),(4982,3),(4987,3),(4997,3),(5005,3),(5013,3),(5019,3),(5020,3),(5023,3),(5025,3),(5030,3),(5032,3),(5033,3),(5043,3),(5060,3),(5061,3),(5063,3),(5071,3),(5099,3),(5108,3),(5114,3),(5119,3),(5121,3),(5123,3),(5126,3),(5129,3),(5131,3),(5135,3),(5141,3),(5143,3),(5145,3),(5155,3),(5179,3),(5182,3),(5190,3),(5192,3),(5197,3),(5198,3),(5201,3),(5202,3),(5204,3),(5214,3),(5217,3),(5223,3),(5226,3),(5228,3),(5239,3),(5242,3),(5243,3),(5244,3),(5255,3),(5264,3),(5279,3),(5291,3),(5294,3),(5298,3),(5299,3),(5300,3),(5305,3),(5309,3),(5314,3),(5318,3),(5319,3),(5320,3),(5322,3),(5325,3),(5329,3),(5330,3),(5331,3),(5345,3),(5350,3),(5358,3),(5366,3),(5369,3),(5372,3),(5381,3),(5384,3),(5386,3),(5387,3),(5390,3),(5398,3),(5401,3),(5404,3),(5407,3),(5408,3),(5414,3),(5418,3),(5420,3),(5429,3),(5431,3),(5443,3),(5452,3),(5454,3),(5456,3),(5474,3),(5475,3),(5479,3),(5495,3),(5500,3),(5507,3),(5516,3),(5518,3),(5520,3),(5525,3),(5535,3),(5546,3),(5547,3),(5551,3),(5560,3),(5563,3),(5564,3),(5566,3),(5596,3),(5599,3),(5600,3),(5611,3),(5620,3),(5644,3),(5645,3),(5646,3),(5653,3),(5655,3),(5657,3),(5661,3),(5667,3),(5684,3),(5687,3),(5689,3),(5692,3),(5694,3),(5714,3),(5727,3),(5728,3),(5729,3),(5741,3),(5764,3),(5771,3),(5775,3),(5776,3),(5778,3),(5785,3),(5791,3),(5794,3),(5795,3),(5808,3),(5812,3),(5825,3),(5829,3),(5832,3),(5835,3),(5838,3),(5846,3),(5853,3),(5858,3),(5870,3),(5871,3),(5882,3),(5884,3),(5887,3),(5891,3),(5892,3),(5901,3),(5909,3),(5916,3),(5939,3),(5952,3),(5958,3),(5963,3),(5973,3),(5977,3),(5978,3),(5979,3),(5992,3),(5996,3),(5997,3),(6007,3),(6009,3),(6016,3),(6017,3),(6019,3),(6030,3),(6032,3),(6034,3),(6041,3),(6042,3),(6047,3),(6062,3),(6073,3),(6086,3),(6104,3),(6105,3),(6108,3),(6109,3),(6111,3),(6114,3),(6126,3),(6128,3),(6136,3),(6137,3),(6159,3),(6169,3),(6172,3),(6176,3),(6179,3),(6182,3),(6186,3),(6193,3),(6213,3),(6227,3),(6228,3),(6229,3),(6234,3),(6256,3),(6257,3),(6264,3),(6272,3),(6273,3),(6278,3),(6279,3),(6282,3),(6289,3),(6302,3),(6310,3),(6313,3),(6314,3),(6321,3),(6324,3),(6333,3),(6337,3),(6350,3),(6352,3),(6357,3),(6358,3),(6369,3),(6372,3),(6375,3),(6390,3),(6391,3),(6395,3),(6398,3),(6399,3),(6401,3),(6402,3),(6405,3),(6407,3),(6413,3),(6421,3),(6428,3),(6430,3),(6431,3),(6441,3),(6444,3),(6447,3),(6450,3),(6456,3),(6470,3),(6479,3),(6491,3),(6494,3),(6501,3),(6503,3),(6511,3),(6513,3),(6514,3),(6524,3),(6531,3),(6537,3),(6539,3),(6541,3),(6545,3),(6546,3),(6552,3),(6555,3),(6558,3),(6567,3),(6568,3),(6571,3),(6572,3),(6573,3),(6583,3),(6588,3),(6593,3),(6600,3),(6601,3),(6607,3),(6608,3),(6612,3),(6638,3),(6641,3),(6647,3),(6671,3),(6675,3),(6689,3),(6691,3),(6693,3),(6709,3),(6714,3),(6719,3),(6720,3),(6725,3),(6742,3),(6752,3),(6767,3),(6770,3),(6773,3),(6780,3),(6807,3),(6813,3),(6815,3),(6818,3),(6823,3),(6824,3),(6828,3),(6832,3),(6843,3),(6866,3),(6885,3),(6894,3),(6899,3),(6901,3),(6907,3),(6909,3),(6910,3),(6917,3),(6929,3),(6939,3),(6940,3),(6943,3),(6950,3),(6954,3),(6961,3),(6971,3),(6975,3),(6979,3),(6983,3),(7006,3),(7022,3),(7031,3),(7033,3),(7036,3),(7042,3),(7055,3),(7067,3),(7074,3),(7075,3),(7086,3),(7087,3),(7108,3),(7113,3),(7115,3),(7120,3),(7122,3),(7127,3),(7130,3),(7131,3),(7135,3),(7141,3),(7158,3),(7167,3),(7176,3),(7181,3),(7199,3),(7202,3),(7204,3),(7213,3),(7223,3),(7227,3),(7255,3),(7257,3),(7265,3),(7269,3),(7271,3),(7287,3),(7292,3),(7300,3),(7301,3),(7325,3),(7329,3),(7330,3),(7337,3),(7341,3),(7349,3),(7363,3),(7373,3),(7375,3),(7378,3),(7388,3),(7398,3),(7400,3),(7418,3),(7419,3),(7421,3),(7424,3),(7425,3),(7427,3),(7430,3),(7433,3),(7434,3),(7435,3),(7439,3),(7442,3),(7456,3),(7461,3),(7463,3),(7467,3),(7479,3),(7480,3),(7482,3),(7484,3),(7494,3),(7498,3),(7500,3),(7509,3),(7513,3),(7518,3),(7530,3),(7533,3),(7539,3),(7554,3),(7558,3),(7567,3),(7571,3),(7577,3),(7590,3),(7592,3),(7594,3),(7601,3),(7602,3),(7607,3),(7638,3),(7640,3),(7648,3),(7650,3),(7653,3),(7658,3),(7668,3),(7673,3),(7683,3),(7686,3),(7694,3),(7695,3),(7697,3),(7699,3),(7703,3),(7705,3),(7719,3),(7723,3),(7728,3),(7733,3),(7735,3),(7737,3),(7750,3),(7764,3),(7775,3),(7794,3),(7796,3),(7800,3),(7804,3),(7808,3),(7810,3),(7818,3),(7820,3),(7822,3),(7829,3),(7832,3),(7838,3),(7844,3),(7876,3),(7877,3),(7882,3),(7887,3),(7892,3),(7895,3),(7897,3),(7907,3),(7909,3),(7910,3),(7911,3),(7918,3),(7919,3),(7921,3),(7927,3),(7946,3),(7947,3),(7954,3),(7972,3),(7975,3),(7976,3),(7978,3),(7979,3),(7981,3),(7989,3),(7998,3),(8001,3),(8007,3),(8009,3),(8029,3),(8030,3),(8042,3),(8055,3),(8065,3),(8074,3),(8076,3),(8092,3),(8093,3),(8112,3),(8129,3),(8131,3),(8132,3),(8136,3),(8137,3),(8158,3),(8167,3),(8172,3),(8181,3),(8182,3),(8201,3),(8202,3),(8207,3),(8212,3),(8213,3),(8218,3),(8227,3),(8228,3),(8245,3),(8249,3),(8252,3),(8259,3),(8262,3),(8274,3),(8292,3),(8302,3),(8308,3),(8310,3),(8311,3),(8312,3),(8314,3),(8315,3),(8319,3),(8321,3),(8332,3),(8337,3),(8339,3),(8354,3),(8356,3),(8361,3),(8362,3),(8364,3),(8368,3),(8373,3),(8375,3),(8381,3),(8384,3),(8388,3),(8406,3),(8409,3),(8413,3),(8414,3),(8427,3),(8433,3),(8434,3),(8436,3),(8438,3),(8440,3),(8444,3),(8447,3),(8464,3),(8490,3),(8497,3),(8509,3),(8528,3),(8529,3),(8530,3),(8531,3),(8533,3),(8536,3),(8537,3),(8538,3),(8543,3),(8562,3),(8569,3),(8572,3),(8579,3),(8584,3),(8591,3),(8592,3),(8599,3),(8609,3),(8613,3),(8624,3),(8625,3),(8633,3),(8634,3),(8639,3),(8642,3),(8650,3),(8652,3),(8654,3),(8657,3),(8660,3),(8666,3),(8669,3),(8670,3),(8671,3),(8672,3),(8678,3),(8681,3),(8682,3),(8684,3),(8686,3),(8688,3),(8701,3),(8710,3),(8711,3),(8719,3),(8721,3),(8723,3),(8725,3),(8730,3),(8734,3),(8735,3),(8750,3),(8755,3),(8758,3),(8760,3),(8779,3),(8784,3),(8787,3),(8789,3),(8795,3),(8798,3),(8804,3),(8805,3),(8809,3),(8811,3),(8816,3),(8819,3),(8823,3),(8832,3),(8841,3),(8853,3),(8855,3),(8868,3),(8870,3),(8873,3),(8881,3),(8885,3),(8887,3),(8905,3),(8922,3),(8923,3),(8927,3),(8930,3),(8934,3),(8937,3),(8943,3),(8945,3),(8948,3),(8953,3),(8974,3),(8983,3),(8998,3),(9002,3),(9006,3),(9009,3),(9013,3),(9017,3),(9019,3),(9033,3),(9035,3),(9043,3),(9050,3),(9055,3),(9056,3),(9057,3),(9066,3),(9069,3),(9079,3),(9082,3),(9087,3),(9093,3),(9097,3),(9106,3),(9123,3),(9126,3),(9134,3),(9140,3),(9147,3),(9162,3),(9163,3),(9165,3),(9174,3),(9177,3),(9181,3),(9191,3),(9200,3),(9203,3),(9207,3),(9215,3),(9229,3),(9232,3),(9234,3),(9243,3),(9248,3),(9250,3),(9253,3),(9257,3),(9262,3),(9271,3),(9289,3),(9291,3),(9311,3),(9315,3),(9316,3),(9324,3),(9330,3),(9336,3),(9341,3),(9357,3),(9358,3),(9375,3),(9378,3),(9380,3),(9403,3),(9404,3),(9412,3),(9415,3),(9416,3),(9423,3),(9424,3),(9438,3),(9446,3),(9453,3),(9456,3),(9469,3),(9478,3),(9479,3),(9480,3),(9482,3),(9486,3),(9487,3),(9490,3),(9491,3),(9500,3),(9509,3),(9512,3),(9521,3),(9524,3),(9528,3),(9545,3),(9559,3),(9567,3),(9568,3),(9575,3),(9576,3),(9591,3),(9599,3),(9604,3),(9616,3),(9621,3),(9638,3),(9645,3),(9647,3),(9652,3),(9659,3),(9673,3),(9680,3),(9686,3),(9699,3),(9700,3),(9702,3),(9709,3),(9716,3),(9734,3),(9741,3),(9742,3),(9753,3),(9754,3),(9756,3),(9762,3),(9770,3),(9772,3),(9777,3),(9779,3),(9780,3),(9786,3),(9789,3),(9792,3),(9796,3),(9801,3),(9804,3),(9856,3),(9857,3),(9871,3),(9878,3),(9885,3),(9886,3),(9887,3),(9912,3),(9918,3),(9919,3),(9924,3),(9927,3),(9930,3),(9934,3),(9949,3),(9957,3),(9964,3),(9968,3),(9972,3),(9975,3),(9977,3),(9984,3),(9994,3),(9998,3),(10000,3),(10003,3),(10012,3),(10019,3),(10021,3),(10024,3),(10031,3),(10037,3),(10038,3),(10042,3),(10043,3),(10049,3),(10053,3),(10057,3),(10058,3),(10070,3),(10077,3),(10078,3),(10083,3),(10087,3),(10088,3),(10091,3),(10093,3),(10115,3),(10116,3),(10117,3),(10119,3),(10128,3),(10133,3),(10147,3),(10149,3),(10157,3),(10163,3),(10171,3),(10195,3),(10197,3),(10199,3),(10203,3),(10204,3),(10208,3),(10217,3),(10227,3),(10231,3),(10237,3),(10248,3),(10263,3),(10265,3),(10269,3),(10271,3),(10278,3),(10286,3),(10289,3),(10294,3),(10296,3),(10298,3),(10307,3),(10308,3),(10320,3),(10321,3),(10322,3),(10328,3),(10332,3),(10341,3),(10343,3),(10348,3),(10350,3),(10370,3),(10372,3),(10390,3),(10391,3),(10397,3),(10405,3),(10406,3),(10410,3),(10414,3),(10421,3),(10423,3),(10426,3),(10427,3),(10430,3),(10437,3),(10453,3),(10457,3),(10462,3),(10470,3),(10477,3),(10478,3),(10485,3),(10489,3),(10494,3),(10497,3),(10503,3),(10517,3),(10521,3),(10528,3),(10533,3),(10538,3),(10542,3),(10544,3),(10546,3),(10550,3),(10555,3),(10565,3),(10572,3),(10573,3),(10575,3),(10576,3),(10577,3),(10581,3),(10586,3),(10587,3),(10588,3),(10590,3),(10600,3),(10603,3),(10604,3),(10605,3),(10628,3),(10646,3),(10657,3),(10665,3),(10670,3),(10672,3),(10695,3),(10697,3),(10701,3),(10702,3),(10715,3),(10738,3),(10766,3),(10770,3),(10771,3),(10773,3),(10779,3),(10786,3),(10787,3),(10789,3),(10791,3),(10796,3),(10798,3),(10799,3),(10806,3),(10812,3),(10817,3),(10819,3),(10823,3),(10824,3),(10831,3),(10838,3),(10839,3),(10840,3),(10848,3),(10850,3),(10854,3),(10866,3),(10868,3),(10870,3),(10878,3),(10886,3),(10887,3),(10900,3),(10908,3),(10909,3),(10911,3),(10928,3),(10931,3),(10932,3),(10944,3),(10951,3),(10954,3),(10958,3),(10962,3),(10970,3),(10971,3),(10979,3),(10980,3),(10991,3),(10994,3),(11000,3),(11004,3),(11012,3),(11025,3),(11026,3),(11034,3),(11035,3),(11038,3),(11042,3),(11056,3),(11063,3),(11073,3),(11080,3),(11115,3),(11123,3),(11131,3),(11133,3),(11137,3),(11155,3),(11158,3),(11159,3),(11160,3),(11168,3),(11169,3),(11181,3),(11183,3),(11185,3),(11187,3),(11192,3),(11198,3),(11199,3),(11200,3),(11204,3),(11221,3),(11223,3),(11227,3),(11230,3),(11234,3),(11236,3),(11238,3),(11240,3),(11245,3),(11251,3),(11253,3),(11259,3),(11262,3),(11263,3),(11269,3),(11272,3),(11279,3),(11283,3),(11285,3),(11290,3),(11296,3),(11298,3),(11317,3),(11318,3),(11335,3),(11343,3),(11347,3),(11361,3),(11366,3),(11371,3),(11374,3),(11377,3),(11382,3),(11384,3),(11394,3),(11395,3),(11399,3),(11402,3),(11404,3),(11406,3),(11407,3),(11417,3),(11423,3),(11429,3),(11446,3),(11453,3),(11454,3),(11455,3),(11458,3),(11463,3),(11473,3),(11486,3),(11487,3),(11492,3),(11501,3),(11506,3),(11507,3),(11513,3),(11527,3),(11543,3),(11557,3),(11559,3),(11569,3),(11584,3),(11585,3),(11586,3),(11588,3),(11602,3),(11610,3),(11611,3),(11627,3),(11636,3),(11646,3),(11652,3),(11653,3),(11657,3),(11658,3),(11661,3),(11668,3),(11671,3),(11674,3),(11675,3),(11676,3),(11681,3),(11684,3),(11695,3),(11704,3),(11707,3),(11719,3),(11720,3),(11732,3),(11737,3),(11738,3),(11740,3),(11744,3),(11745,3),(11748,3),(11750,3),(11757,3),(11763,3),(11772,3),(11776,3),(11785,3),(11808,3),(11817,3),(11820,3),(11825,3),(11826,3),(11827,3),(11831,3),(11833,3),(11834,3),(11840,3),(11847,3),(11848,3),(11851,3),(11873,3),(11884,3),(11886,3),(11892,3),(11893,3),(11894,3),(11896,3),(11903,3),(11907,3),(11908,3),(11917,3),(11923,3),(11924,3),(11934,3),(11953,3),(11955,3),(11958,3),(11986,3),(11994,3),(11995,3),(12007,3),(12010,3),(12013,3),(12024,3),(12025,3),(12031,3),(12039,3),(12042,3),(12043,3),(12051,3),(12052,3),(12056,3),(12061,3),(12065,3),(12070,3),(12072,3),(12073,3),(12076,3),(12090,3),(12092,3),(12096,3),(12097,3),(12106,3),(12112,3),(12118,3),(12120,3),(12121,3),(12134,3),(12142,3),(12144,3),(12147,3),(12152,3),(12155,3),(12164,3),(12172,3),(12177,3),(12178,3),(12181,3),(12193,3),(12200,3),(12203,3),(12211,3),(12220,3),(12228,3),(12239,3),(12245,3),(12249,3),(12252,3),(12255,3),(12260,3),(12261,3),(12272,3),(12285,3),(12287,3),(12297,3),(12299,3),(12308,3),(12309,3),(12338,3),(12339,3),(12343,3),(12345,3),(12348,3),(12355,3),(12360,3),(12363,3),(12365,3),(12370,3),(12374,3),(12381,3),(12383,3),(12388,3),(12389,3),(12390,3),(12398,3),(12412,3),(12417,3),(12427,3),(12439,3),(12440,3),(12443,3),(12456,3),(12461,3),(12462,3),(12464,3),(12465,3),(12467,3),(12488,3),(12490,3),(12508,3),(12509,3),(12515,3),(12528,3),(12531,3),(12540,3),(12552,3),(12553,3),(12557,3),(12561,3),(12565,3),(12567,3),(12582,3),(12592,3),(12594,3),(12599,3),(12612,3),(12622,3),(12625,3),(12630,3),(12639,3),(12645,3),(12646,3),(12651,3),(12655,3),(12656,3),(12664,3),(12665,3),(12667,3),(12671,3),(12677,3),(12679,3),(12688,3),(12695,3),(12698,3),(12704,3),(12716,3),(12728,3),(12748,3),(12763,3),(12768,3),(12770,3),(12771,3),(12772,3),(12775,3),(12780,3),(12783,3),(12785,3),(12789,3),(12798,3),(12801,3),(12803,3),(12811,3),(12816,3),(12829,3),(12837,3),(12840,3),(12841,3),(12847,3),(12849,3),(12858,3),(12864,3),(12867,3),(12877,3),(12882,3),(12883,3),(12888,3),(12897,3),(12898,3),(12904,3),(12911,3),(12923,3),(12925,3),(12931,3),(12932,3),(12934,3),(12935,3),(12953,3),(12959,3),(12965,3),(12968,3),(12969,3),(12973,3),(12974,3),(12977,3),(12981,3),(12984,3),(12990,3),(12991,3),(13024,3),(13032,3),(13050,3),(13063,3),(13070,3),(13073,3),(13089,3),(13125,3),(13128,3),(13132,3),(13147,3),(13148,3),(13150,3),(13160,3),(13184,3),(13218,3),(13240,3),(13242,3),(13253,3),(13256,3),(13257,3),(13258,3),(13263,3),(13264,3),(13273,3),(13284,3),(13295,3),(13298,3),(13300,3),(13305,3),(13306,3),(13320,3),(13324,3),(13332,3),(13337,3),(13339,3),(13340,3),(13348,3),(13349,3),(13359,3),(13362,3),(13363,3),(13373,3),(13379,3),(13382,3),(13383,3),(13385,3),(13391,3),(13396,3),(13399,3),(13401,3),(13406,3),(13407,3),(13410,3),(13413,3),(13415,3),(13421,3),(13425,3),(13430,3),(13439,3),(13441,3),(13443,3),(13447,3),(13461,3),(13480,3),(13485,3),(13487,3),(13499,3),(13500,3),(13503,3),(13512,3),(13516,3),(13522,3),(13523,3),(13525,3),(13531,3),(13538,3),(13558,3),(13561,3),(13568,3),(13573,3),(13587,3),(13589,3),(13591,3),(13601,3),(13603,3),(13607,3),(13608,3),(13615,3),(13617,3),(13618,3),(13620,3),(13623,3),(13653,3),(13657,3),(13664,3),(13668,3),(13671,3),(13674,3),(13676,3),(13677,3),(13686,3),(13687,3),(13691,3),(13694,3),(13696,3),(13714,3),(13716,3),(13717,3),(13722,3),(13731,3),(13748,3),(13762,3),(13767,3),(13769,3),(13777,3),(13807,3),(13812,3),(13817,3),(13819,3),(13832,3),(13839,3),(13840,3),(13851,3),(13860,3),(13866,3),(13883,3),(13899,3),(13910,3),(13911,3),(13919,3),(13930,3),(13935,3),(13942,3),(13946,3),(13947,3),(13949,3),(13955,3),(13975,3),(13985,3),(13995,3),(13996,3),(14004,3),(14005,3),(14006,3),(14009,3),(14012,3),(14018,3),(14023,3),(14029,3),(14032,3),(14053,3),(14056,3),(14061,3),(14063,3),(14068,3),(14072,3),(14075,3),(14079,3),(14081,3),(14086,3),(14096,3),(14097,3),(14098,3),(14101,3),(14102,3),(14104,3),(14112,3),(14124,3),(14126,3),(14129,3),(14135,3),(14136,3),(14139,3),(14148,3),(14156,3),(14160,3),(14175,3),(14186,3),(14187,3),(14189,3),(14198,3),(14201,3),(14204,3),(14205,3),(14210,3),(14215,3),(14223,3),(14233,3),(14239,3),(14253,3),(14255,3),(14260,3),(14266,3),(14270,3),(14283,3),(14296,3),(14297,3),(14301,3),(14303,3),(14307,3),(14317,3),(14325,3),(14332,3),(14334,3),(14335,3),(14339,3),(14340,3),(14345,3),(14350,3),(14353,3),(14354,3),(14359,3),(14360,3),(14365,3),(14372,3),(14377,3),(14384,3),(14389,3),(14395,3),(14397,3),(14402,3),(14406,3),(14412,3),(14415,3),(14423,3),(14434,3),(14450,3),(14453,3),(14457,3),(14458,3),(14459,3),(14464,3),(14478,3),(14483,3),(14486,3),(14488,3),(14490,3),(14492,3),(14495,3),(14497,3),(14499,3),(14501,3),(14505,3),(14521,3),(14528,3),(14530,3),(14531,3),(14534,3),(14539,3),(14540,3),(14554,3),(14555,3),(14573,3),(14577,3),(14587,3),(14588,3),(14595,3),(14597,3),(14601,3),(14616,3),(14622,3),(14631,3),(14633,3),(14637,3),(14653,3),(14657,3),(14660,3),(14669,3),(14671,3),(14674,3),(14677,3),(14681,3),(14688,3),(14693,3),(14695,3),(14705,3),(14706,3),(14707,3),(14719,3),(14723,3),(14725,3),(14730,3),(14733,3),(14736,3),(14737,3),(14746,3),(14751,3),(14761,3),(14773,3),(14774,3),(14778,3),(14789,3),(14792,3),(14796,3),(14799,3),(14802,3),(14808,3),(14828,3),(14829,3),(14831,3),(14846,3),(14848,3),(14852,3),(14874,3),(14876,3),(14888,3),(14891,3),(14906,3),(14907,3),(14918,3),(14923,3),(14924,3),(14938,3),(14942,3),(14949,3),(14960,3),(14973,3),(14979,3),(14985,3),(14995,3),(15009,3),(15013,3),(15015,3),(15021,3),(15024,3),(15028,3),(15034,3),(15036,3),(15043,3),(15048,3),(15052,3),(15054,3),(15056,3),(15058,3),(15065,3),(15076,3),(15083,3),(15085,3),(15092,3),(15094,3),(15097,3),(15098,3),(15102,3),(15103,3),(15104,3),(15111,3),(15112,3),(15116,3),(15131,3),(15136,3),(15138,3),(15140,3),(15159,3),(15165,3),(15172,3),(15177,3),(15184,3),(15189,3),(15204,3),(15216,3),(15225,3),(15231,3),(15232,3),(15237,3),(15238,3),(15240,3),(15246,3),(15248,3),(15251,3),(15258,3),(15259,3),(15266,3),(15276,3),(15282,3),(15297,3),(15310,3),(15327,3),(15331,3),(15335,3),(15338,3),(15339,3),(15346,3),(15348,3),(15354,3),(15363,3),(15364,3),(15371,3),(15378,3),(15388,3),(15389,3),(15393,3),(15415,3),(15417,3),(15418,3),(15423,3),(15437,3),(15442,3),(15443,3),(15457,3),(15464,3),(15473,3),(15486,3),(15490,3),(15495,3),(15502,3),(15505,3),(15511,3),(15518,3),(15519,3),(15551,3),(15556,3),(15558,3),(15559,3),(15565,3),(15566,3),(15579,3),(15584,3),(15587,3),(15593,3),(15619,3),(15627,3),(15631,3),(15639,3),(15644,3),(15646,3),(15648,3),(15649,3),(15653,3),(15655,3),(15667,3),(15675,3),(15688,3),(15696,3),(15698,3),(15710,3),(15714,3),(15715,3),(15721,3),(15725,3),(15746,3),(15748,3),(15755,3),(15757,3),(15759,3),(15762,3),(15764,3),(15770,3),(15771,3),(15797,3),(15804,3),(15808,3),(15810,3),(15820,3),(15838,3),(15839,3),(15852,3),(15854,3),(15859,3),(15862,3),(15867,3),(15871,3),(15883,3),(15888,3),(15892,3),(15906,3),(15907,3),(15912,3),(15913,3),(15914,3),(15922,3),(15949,3),(15953,3),(15954,3),(15961,3),(15965,3),(15968,3),(15979,3),(15983,3),(15986,3),(15988,3),(15990,3),(16014,3),(16022,3),(16026,3),(16038,3),(16041,3),(16047,3),(16050,3),(16056,3),(16058,3),(16071,3),(16073,3),(16087,3),(16096,3),(16104,3),(16122,3),(16123,3),(16130,3),(16154,3),(16155,3),(16167,3),(16170,3),(16173,3),(16181,3),(16186,3),(16191,3),(16206,3),(16208,3),(16211,3),(16212,3),(16216,3),(16218,3),(16232,3),(16241,3),(16244,3),(16249,3),(16258,3),(16259,3),(16264,3),(16278,3),(16282,3),(16294,3),(16301,3),(16302,3),(16306,3),(16307,3),(16308,3),(16309,3),(16312,3),(16329,3),(16337,3),(16339,3),(16343,3),(16345,3),(16346,3),(16360,3),(16369,3),(16372,3),(16373,3),(16378,3),(16384,3),(16386,3),(16394,3),(16398,3),(16405,3),(16409,3),(16414,3),(16422,3),(16434,3),(16436,3),(16441,3),(16446,3),(16449,3),(16453,3),(16456,3),(16465,3),(16470,3),(16491,3),(16496,3),(16505,3),(16509,3),(16518,3),(16522,3),(16536,3),(16540,3),(16542,3),(16543,3),(16566,3),(16567,3),(16576,3),(16585,3),(16589,3),(16596,3),(16597,3),(16598,3),(16603,3),(16604,3),(16605,3),(16619,3),(16631,3),(16635,3),(16647,3),(16651,3),(16652,3),(16654,3),(16659,3),(16669,3),(16683,3),(16688,3),(16690,3),(16694,3),(16697,3),(16700,3),(16703,3),(16712,3),(16717,3),(16721,3),(16723,3),(16724,3),(16729,3),(16732,3),(16735,3),(16740,3),(16743,3),(16757,3),(16758,3),(16768,3),(16780,3),(16784,3),(16789,3),(16791,3),(16797,3),(16800,3),(16803,3),(16805,3),(16807,3),(16808,3),(16809,3),(16821,3),(16835,3),(16839,3),(16850,3),(16852,3),(16853,3),(16854,3),(16868,3),(16881,3),(16889,3),(16909,3),(16918,3),(16921,3),(16930,3),(16935,3),(16951,3),(16963,3),(16969,3),(16975,3),(16983,3),(16989,3),(17019,3),(17023,3),(17032,3),(17034,3),(17068,3),(17070,3),(17076,3),(17091,3),(17092,3),(17097,3),(17098,3),(17110,3),(17115,3),(17117,3),(17129,3),(17130,3),(17131,3),(17141,3),(17151,3),(17161,3),(17169,3),(17189,3),(17191,3),(17196,3),(17197,3),(17199,3),(17208,3),(17221,3),(17227,3),(17233,3),(17235,3),(17236,3),(17238,3),(17239,3),(17242,3),(17251,3),(17267,3),(17268,3),(17274,3),(17278,3),(17283,3),(17292,3),(17305,3),(17309,3),(17311,3),(17319,3),(17327,3),(17333,3),(17345,3),(17351,3),(17359,3),(17379,3),(17385,3),(17391,3),(17395,3),(17418,3),(17432,3),(17438,3),(17453,3),(17455,3),(17456,3),(17459,3),(17463,3),(17468,3),(17469,3),(17470,3),(17474,3),(17477,3),(17479,3),(17482,3),(17488,3),(17492,3),(17493,3),(17497,3),(17509,3),(17529,3),(17536,3),(17544,3),(17554,3),(17556,3),(17560,3),(17566,3),(17575,3),(17586,3),(17615,3),(17648,3),(17649,3),(17650,3),(17651,3),(17658,3),(17662,3),(17675,3),(17684,3),(17695,3),(17702,3),(17709,3),(17713,3),(17716,3),(17726,3),(17727,3),(17733,3),(17737,3),(17739,3),(17754,3),(17768,3),(17775,3),(17779,3),(17780,3),(17789,3),(17799,3),(17801,3),(17805,3),(17807,3),(17808,3),(17828,3),(17830,3),(17837,3),(17839,3),(17845,3),(17858,3),(17865,3),(17875,3),(17877,3),(17898,3),(17915,3),(17917,3),(17922,3),(17928,3),(17929,3),(17934,3),(17939,3),(17944,3),(17945,3),(17960,3),(17973,3),(17975,3),(17977,3),(17986,3),(17999,3),(18003,3),(18007,3),(18019,3),(18027,3),(18028,3),(18034,3),(18038,3),(18040,3),(18042,3),(18047,3),(18051,3),(18065,3),(18070,3),(18077,3),(18081,3),(18083,3),(18086,3),(18093,3),(18094,3),(18097,3),(18098,3),(18110,3),(18114,3),(18125,3),(18135,3),(18139,3),(18153,3),(18154,3),(18179,3),(18187,3),(18190,3),(18194,3),(18199,3),(18204,3),(18205,3),(18207,3),(18227,3),(18250,3),(18254,3),(18257,3),(18263,3),(18265,3),(18271,3),(18282,3),(18283,3),(18285,3),(18304,3),(18313,3),(18327,3),(18343,3),(18345,3),(18353,3),(18354,3),(18358,3),(18362,3),(18365,3),(18366,3),(18374,3),(18375,3),(18377,3),(18383,3),(18385,3),(18402,3),(18404,3),(18405,3),(18407,3),(18416,3),(18420,3),(18427,3),(18428,3),(18430,3),(18432,3),(18438,3),(18443,3),(18446,3),(18450,3),(18457,3),(18460,3),(18461,3),(18476,3),(18480,3),(18491,3),(18498,3),(18501,3),(18511,3),(18519,3),(18520,3),(18524,3),(18525,3),(18532,3),(18534,3),(18538,3),(18571,3),(18573,3),(18581,3),(18583,3),(18584,3),(18588,3),(18592,3),(18599,3),(18611,3),(18612,3),(18622,3),(18623,3),(18629,3),(18630,3),(18633,3),(18634,3),(18644,3),(18649,3),(18662,3),(18667,3),(18671,3),(18672,3),(18676,3),(18678,3),(18690,3),(18696,3),(18700,3),(18701,3),(18712,3),(18714,3),(18715,3),(18719,3),(18721,3),(18758,3),(18760,3),(18773,3),(18774,3),(18778,3),(18779,3),(18786,3),(18798,3),(18801,3),(18803,3),(18810,3),(18815,3),(18820,3),(18825,3),(18829,3),(18830,3),(18842,3),(18845,3),(18854,3),(18857,3),(18860,3),(18863,3),(18866,3),(18867,3),(18880,3),(18896,3),(18899,3),(18902,3),(18912,3),(18920,3),(18921,3),(18928,3),(18930,3),(18950,3),(18958,3),(18960,3),(18961,3),(18964,3),(18965,3),(18978,3),(19021,3),(19027,3),(19030,3),(19031,3),(19033,3),(19036,3),(19039,3),(19042,3),(19048,3),(19056,3),(19064,3),(19066,3),(19069,3),(19070,3),(19104,3),(19125,3),(19127,3),(19131,3),(19135,3),(19137,3),(19141,3),(19159,3),(19162,3),(19165,3),(19171,3),(19172,3),(19175,3),(19176,3),(19179,3),(19193,3),(19195,3),(19208,3),(19215,3),(19223,3),(19239,3),(19251,3),(19268,3),(19270,3),(19295,3),(19296,3),(19301,3),(19305,3),(19306,3),(19317,3),(19318,3),(19331,3),(19332,3),(19337,3),(19354,3),(19357,3),(19359,3),(19364,3),(19368,3),(19376,3),(19380,3),(19381,3),(19385,3),(19387,3),(19388,3),(19409,3),(19414,3),(19419,3),(19424,3),(19427,3),(19430,3),(19432,3),(19434,3),(19435,3),(19460,3),(19463,3),(19467,3),(19469,3),(19476,3),(19478,3),(19481,3),(19482,3),(19486,3),(19494,3),(19501,3),(19507,3),(19511,3),(19517,3),(19519,3),(19523,3),(19524,3),(19526,3),(19527,3),(19528,3),(19529,3),(19531,3),(19532,3),(19566,3),(19576,3),(19577,3),(19582,3),(19587,3),(19592,3),(19594,3),(19595,3),(19601,3),(19602,3),(19604,3),(19607,3),(19611,3),(19613,3),(19614,3),(19619,3),(19621,3),(19623,3),(19632,3),(19636,3),(19649,3),(19650,3),(19655,3),(19662,3),(19663,3),(19664,3),(19694,3),(19700,3),(19709,3),(19713,3),(19723,3),(19724,3),(19725,3),(19727,3),(19730,3),(19731,3),(19735,3),(19737,3),(19745,3),(19746,3),(19751,3),(19753,3),(19754,3),(19762,3),(19765,3),(19785,3),(19789,3),(19790,3),(19791,3),(19792,3),(19803,3),(19805,3),(19812,3),(19813,3),(19820,3),(19835,3),(19836,3),(19842,3),(19843,3),(19848,3),(19855,3),(19860,3),(19867,3),(19871,3),(19872,3),(19874,3),(19880,3),(19886,3),(19887,3),(19897,3),(19898,3),(19912,3),(19914,3),(19926,3),(19931,3),(19954,3),(19958,3),(19965,3),(19969,3),(19983,3),(19988,3),(19989,3),(20006,3),(20016,3),(20019,3),(20020,3),(20023,3),(20028,3),(20030,3),(20032,3),(20037,3),(20044,3),(20047,3),(20057,3),(20058,3),(20069,3),(20076,3),(20082,3),(20083,3),(20089,3),(20093,3),(20099,3),(20102,3),(20103,3),(20104,3),(20106,3),(20107,3),(20113,3),(20121,3),(20127,3),(20128,3),(20137,3),(20161,3),(20162,3),(20164,3),(20166,3),(20171,3),(20178,3),(20180,3),(20191,3),(20198,3),(20219,3),(20222,3),(20238,3),(20239,3),(20243,3),(20246,3),(20259,3),(20262,3),(20297,3),(20298,3),(20311,3),(20314,3),(20315,3),(20320,3),(20322,3),(20323,3),(20329,3),(20340,3),(20343,3),(20355,3),(20359,3),(20360,3),(20369,3),(20370,3),(20382,3),(20383,3),(20384,3),(20388,3),(20395,3),(20407,3),(20421,3),(20430,3),(20431,3),(20438,3),(20439,3),(20465,3),(20471,3),(20484,3),(20485,3),(20495,3),(20500,3),(20507,3),(20508,3),(20513,3),(20525,3),(20527,3),(20528,3),(20558,3),(20563,3),(20571,3),(20573,3),(20588,3),(20596,3),(20598,3),(20602,3),(20627,3),(20653,3),(20673,3),(20675,3),(20685,3),(20709,3),(20710,3),(20715,3),(20720,3),(20724,3),(20725,3),(20727,3),(20728,3),(20731,3),(20734,3),(20736,3),(20740,3),(20742,3),(20752,3),(20753,3),(20754,3),(20762,3),(20763,3),(20771,3),(20772,3),(20780,3),(20781,3),(20782,3),(20785,3),(20795,3),(20796,3),(20807,3),(20808,3),(20816,3),(20819,3),(20820,3),(20827,3),(20847,3),(20851,3),(20856,3),(20861,3),(20869,3),(20878,3),(20901,3),(20909,3),(20910,3),(20913,3),(20926,3),(20927,3),(20930,3),(20933,3),(20936,3),(20952,3),(20953,3),(20959,3),(20960,3),(20962,3),(20977,3),(20982,3),(20983,3),(20985,3),(20987,3),(20991,3),(21000,3),(21001,3),(21003,3),(21009,3),(21020,3),(21023,3),(21040,3),(21053,3),(21055,3),(21057,3),(21064,3),(21069,3),(21085,3),(21091,3),(21092,3),(21099,3),(21101,3),(21103,3),(21113,3),(21114,3),(21118,3),(21124,3),(21127,3),(21129,3),(21141,3),(21146,3),(21155,3),(21166,3),(21173,3),(21182,3),(21195,3),(21196,3),(21199,3),(21205,3),(21209,3),(21214,3),(21215,3),(21223,3),(21229,3),(21236,3),(21239,3),(21240,3),(21242,3),(21243,3),(21247,3),(21250,3),(21254,3),(21264,3),(21265,3),(21267,3),(21268,3),(21277,3),(21284,3),(21287,3),(21293,3),(21298,3),(21306,3),(21307,3),(21309,3),(21311,3),(21317,3),(21318,3),(21344,3),(21346,3),(21364,3),(21365,3),(21367,3),(21371,3),(21372,3),(21382,3),(21383,3),(21400,3),(21402,3),(21404,3),(21409,3),(21417,3),(21425,3),(21431,3),(21432,3),(21436,3),(21441,3),(21446,3),(21450,3),(21462,3),(21463,3),(21466,3),(21469,3),(21473,3),(21478,3),(21479,3),(21491,3),(21495,3),(21496,3),(21498,3),(21502,3),(21505,3),(21508,3),(21512,3),(21532,3),(21535,3),(21556,3),(21561,3),(21565,3),(21570,3),(21576,3),(21585,3),(21586,3),(21590,3),(21595,3),(21596,3),(21598,3),(21599,3),(21602,3),(21606,3),(21609,3),(21611,3),(21616,3),(21617,3),(21622,3),(21623,3),(21625,3),(21626,3),(21633,3),(21641,3),(21655,3),(21658,3),(21661,3),(21669,3),(21687,3),(21702,3),(21706,3),(21714,3),(21718,3),(21725,3),(21729,3),(21731,3),(21734,3),(21741,3),(21754,3),(21767,3),(21779,3),(21780,3),(21788,3),(21793,3),(21797,3),(21798,3),(21806,3),(21812,3),(21813,3),(21818,3),(21824,3),(21825,3),(21827,3),(21836,3),(21845,3),(21861,3),(21865,3),(21866,3),(21879,3),(21891,3),(21915,3),(21916,3),(21928,3),(21938,3),(21942,3),(21950,3),(21955,3),(21959,3),(21965,3),(21968,3),(21973,3),(21975,3),(21983,3),(21985,3),(21991,3),(21992,3),(22001,3),(22003,3),(22013,3),(22016,3),(22019,3),(22022,3),(22036,3),(22044,3),(22046,3),(22048,3),(22049,3),(22050,3),(22051,3),(22055,3),(22057,3),(22074,3),(22078,3),(22088,3),(22089,3),(22099,3),(22105,3),(22108,3),(22109,3),(22118,3),(22120,3),(22123,3),(22124,3),(22137,3),(22153,3),(22170,3),(22177,3),(22186,3),(22196,3),(22204,3),(22206,3),(22207,3),(22208,3),(22216,3),(22219,3),(22228,3),(22233,3),(22235,3),(22242,3),(22244,3),(22249,3),(22257,3),(22259,3),(22260,3),(22264,3),(22267,3),(22269,3),(22270,3),(22273,3),(22279,3),(22282,3),(22284,3),(22287,3),(22291,3),(22296,3),(22301,3),(22311,3),(22314,3),(22316,3),(22318,3),(22320,3),(22323,3),(22331,3),(22332,3),(22337,3),(22338,3),(22339,3),(22346,3),(22350,3),(22357,3),(22363,3),(22365,3),(22368,3),(22384,3),(22393,3),(22401,3),(22402,3),(22437,3),(22438,3),(22447,3),(22454,3),(22461,3),(22485,3),(22502,3),(22510,3),(22521,3),(22523,3),(22533,3),(22538,3),(22545,3),(22546,3),(22549,3),(22555,3),(22556,3),(22557,3),(22564,3),(22565,3),(22573,3),(22574,3),(22575,3),(22576,3),(22593,3),(22596,3),(22599,3),(22601,3),(22602,3),(22604,3),(22606,3),(22612,3),(22629,3),(22643,3),(22647,3),(22650,3),(22654,3),(22661,3),(22662,3),(22668,3),(22675,3),(22682,3),(22686,3),(22696,3),(22701,3),(22703,3),(22708,3),(22723,3),(22725,3),(22734,3),(22736,3),(22739,3),(22742,3),(22758,3),(22761,3),(22767,3),(22774,3),(22775,3),(22792,3),(22805,3),(22806,3),(22807,3),(22810,3),(22814,3),(22815,3),(22817,3),(22818,3),(22836,3),(22838,3),(22840,3),(22864,3),(22869,3),(22870,3),(22881,3),(22883,3),(22886,3),(22897,3),(22900,3),(22905,3),(22913,3),(22914,3),(22928,3),(22929,3),(22931,3),(22933,3),(22938,3),(22944,3),(22946,3),(22950,3),(22953,3),(22968,3),(22980,3),(22987,3),(22988,3),(22990,3),(22993,3),(22995,3),(22998,3),(23000,3),(23004,3),(23020,3),(23022,3),(23027,3),(23033,3),(23034,3),(23042,3),(23045,3),(23051,3),(23053,3),(23057,3),(23077,3),(23082,3),(23086,3),(23087,3),(23098,3),(23099,3),(23100,3),(23102,3),(23107,3),(23121,3),(23123,3),(23125,3),(23129,3),(23138,3),(23139,3),(23150,3),(23162,3),(23165,3),(23173,3),(23177,3),(23185,3),(23189,3),(23194,3),(23200,3),(23207,3),(23210,3),(23217,3),(23221,3),(23223,3),(23228,3),(23230,3),(23235,3),(23242,3),(23254,3),(23259,3),(23261,3),(23269,3),(23271,3),(23278,3),(23281,3),(23292,3),(23297,3),(23311,3),(23313,3),(23322,3),(23323,3),(23345,3),(23352,3),(23353,3),(23360,3),(23364,3),(23368,3),(23371,3),(23372,3),(23374,3),(23381,3),(23382,3),(23385,3),(23393,3),(23406,3),(23411,3),(23414,3),(23415,3),(23425,3),(23427,3),(23434,3),(23439,3),(23446,3),(23454,3),(23458,3),(23461,3),(23463,3),(23465,3),(23477,3),(23484,3),(23491,3),(23505,3),(23513,3),(23520,3),(23527,3),(23529,3),(23530,3),(23533,3),(23551,3),(23564,3),(23565,3),(23573,3),(23591,3),(23592,3),(23594,3),(23598,3),(23601,3),(23625,3),(23626,3),(23627,3),(23635,3),(23637,3),(23638,3),(23645,3),(23653,3),(23659,3),(23674,3),(23679,3),(23682,3),(23702,3),(23720,3),(23728,3),(23737,3),(23738,3),(23740,3),(23758,3),(23765,3),(23766,3),(23770,3),(23771,3),(23774,3),(23780,3),(23782,3),(23789,3),(23793,3),(23798,3),(23802,3),(23804,3),(23808,3),(23809,3),(23812,3),(23819,3),(23834,3),(23835,3),(23839,3),(23850,3),(23861,3),(23865,3),(23871,3),(23878,3),(23880,3),(23888,3),(23900,3),(23903,3),(23907,3),(23909,3),(23915,3),(23922,3),(23923,3),(23926,3),(23931,3),(23932,3),(23933,3),(23936,3),(23954,3),(23958,3),(23962,3),(23965,3),(23972,3),(23984,3),(23986,3),(23994,3),(24000,3),(24004,3),(24013,3),(24018,3),(24021,3),(24025,3),(24027,3),(24031,3),(24051,3),(24067,3),(24074,3),(24076,3),(24080,3),(24083,3),(24092,3),(24102,3),(24123,3),(24144,3),(24146,3),(24148,3),(24159,3),(24162,3),(24174,3),(24182,3),(24187,3),(24194,3),(24196,3),(24200,3),(24201,3),(24202,3),(24207,3),(24216,3),(24223,3),(24226,3),(24228,3),(24242,3),(24247,3),(24250,3),(24257,3),(24261,3),(24262,3),(24276,3),(24300,3),(24302,3),(24307,3),(24309,3),(24315,3),(24317,3),(24321,3),(24328,3),(24329,3),(24331,3),(24332,3),(24340,3),(24347,3),(24355,3),(24358,3),(24366,3),(24370,3),(24376,3),(24379,3),(24382,3),(24389,3),(24394,3),(24397,3),(24403,3),(24416,3),(24417,3),(24427,3),(24430,3),(24437,3),(24444,3),(24447,3),(24449,3),(24457,3),(24468,3),(24481,3),(24490,3),(24491,3),(24492,3),(24493,3),(24494,3),(24504,3),(24505,3),(24510,3),(24513,3),(24523,3),(24525,3),(24529,3),(24530,3),(24539,3),(24541,3),(24549,3),(24551,3),(24556,3),(24561,3),(24564,3),(24566,3),(24574,3),(24575,3),(24582,3),(24591,3),(24592,3),(24599,3),(24601,3),(24602,3),(24609,3),(24630,3),(24631,3),(24641,3),(24651,3),(24652,3),(24654,3),(24661,3),(24673,3),(24675,3),(24676,3),(24682,3),(24687,3),(24694,3),(24695,3),(24720,3),(24733,3),(24740,3),(24752,3),(24753,3),(24756,3),(24758,3),(24761,3),(24762,3),(24765,3),(24768,3),(24773,3),(24778,3),(24785,3),(24791,3),(24797,3),(24804,3),(24819,3),(24824,3),(24829,3),(24834,3),(24835,3),(24842,3),(24844,3),(24851,3),(24852,3),(24855,3),(24882,3),(24892,3),(24899,3),(24901,3),(24902,3),(24908,3),(24922,3),(24925,3),(24927,3),(24934,3),(24935,3),(24938,3),(24940,3),(24941,3),(24942,3),(24943,3),(24952,3),(24984,3),(24993,3),(24999,3),(25003,3),(25012,3),(25021,3),(25024,3),(25038,3),(25042,3),(25051,3),(25053,3),(25056,3),(25062,3),(25063,3),(25069,3),(25075,3),(25076,3),(25091,3),(25096,3),(25104,3),(25105,3),(25115,3),(25117,3),(25125,3),(25128,3),(25129,3),(25133,3),(25137,3),(25138,3),(25147,3),(25159,3),(25160,3),(25164,3),(25177,3),(25178,3),(25181,3),(25184,3),(25186,3),(25189,3),(25190,3),(25206,3),(25220,3),(25254,3),(25255,3),(25265,3),(25270,3),(25286,3),(25300,3),(25303,3),(25323,3),(25330,3),(25335,3),(25339,3),(25340,3),(25345,3),(25351,3),(25355,3),(25366,3),(25370,3),(25379,3),(25385,3),(25386,3),(25389,3),(25392,3),(25393,3),(25404,3),(25411,3),(25414,3),(25415,3),(25421,3),(25435,3),(25442,3),(25445,3),(25448,3),(25453,3),(25458,3),(25462,3),(25484,3),(25488,3),(25494,3),(25502,3),(25506,3),(25510,3),(25514,3),(25538,3),(25542,3),(25543,3),(25549,3),(25555,3),(25568,3),(25571,3),(25575,3),(25579,3),(25584,3),(25590,3),(25594,3),(25599,3),(25604,3),(25610,3),(25612,3),(25613,3),(25618,3),(25622,3),(25636,3),(25642,3),(25648,3),(25653,3),(25655,3),(25662,3),(25669,3),(25670,3),(25674,3),(25678,3),(25687,3),(25705,3),(25714,3),(25718,3),(25732,3),(25741,3),(25756,3),(25763,3),(25766,3),(25775,3),(25787,3),(25791,3),(25801,3),(25803,3),(25807,3),(25808,3),(25811,3),(25836,3),(25850,3),(25873,3),(25876,3),(25885,3),(25886,3),(25899,3),(25907,3),(25909,3),(25914,3),(25916,3),(25918,3),(25949,3),(25962,3),(25969,3),(25974,3),(25978,3),(25991,3),(25996,3),(25999,3),(26003,3),(26008,3),(26010,3),(26031,3),(26034,3),(26037,3),(26040,3),(26041,3),(26043,3),(26050,3),(26057,3),(26060,3),(26062,3),(26063,3),(26076,3),(26086,3),(26087,3),(26096,3),(26108,3),(26116,3),(26117,3),(26118,3),(26121,3),(26122,3),(26137,3),(26146,3),(26149,3),(26153,3),(26164,3),(26170,3),(26172,3),(26177,3),(26188,3),(26189,3),(26198,3),(26207,3),(26208,3),(26214,3),(26216,3),(26224,3),(26234,3),(26236,3),(26238,3),(26240,3),(26245,3),(26246,3),(26252,3),(26259,3),(26261,3),(26263,3),(26266,3),(26273,3),(26275,3),(26277,3),(26278,3),(26280,3),(26302,3),(26306,3),(26308,3),(26312,3),(26351,3),(26353,3),(26361,3),(26373,3),(26390,3),(26393,3),(26394,3),(26397,3),(26413,3),(26414,3),(26416,3),(26417,3),(26421,3),(26431,3),(26440,3),(26450,3),(26451,3),(26455,3),(26470,3),(26472,3),(26489,3),(26492,3),(26504,3),(26508,3),(26530,3),(26531,3),(26532,3),(26535,3),(26556,3),(26559,3),(26566,3),(26570,3),(26577,3),(26585,3),(26590,3),(26591,3),(26598,3),(26600,3),(26604,3),(26605,3),(26617,3),(26618,3),(26619,3),(26628,3),(26649,3),(26656,3),(26667,3),(26668,3),(26680,3),(26682,3),(26684,3),(26689,3),(26690,3),(26695,3),(26704,3),(26708,3),(26715,3),(26720,3),(26725,3),(26741,3),(26745,3),(26746,3),(26747,3),(26753,3),(26756,3),(26766,3),(26767,3),(26768,3),(26771,3),(26779,3),(26781,3),(26783,3),(26789,3),(26791,3),(26793,3),(26794,3),(26811,3),(26817,3),(26828,3),(26839,3),(26848,3),(26849,3),(26853,3),(26874,3),(26890,3),(26905,3),(26908,3),(26916,3),(26920,3),(26928,3),(26930,3),(26941,3),(26945,3),(26960,3),(26962,3),(26973,3),(26984,3),(26994,3),(26996,3),(27001,3),(27008,3),(27010,3),(27013,3),(27033,3),(27037,3),(27038,3),(27048,3),(27049,3),(27058,3),(27073,3),(27074,3),(27082,3),(27089,3),(27091,3),(27092,3),(27095,3),(27098,3),(27099,3),(27119,3),(27126,3),(27131,3),(27132,3),(27135,3),(27136,3),(27139,3),(27145,3),(27156,3),(27157,3),(27160,3),(27172,3),(27173,3),(27174,3),(27187,3),(27190,3),(27193,3),(27198,3),(27206,3),(27208,3),(27212,3),(27214,3),(27224,3),(27225,3),(27227,3),(27234,3),(27239,3),(27244,3),(27246,3),(27253,3),(27255,3),(27261,3),(27264,3),(27271,3),(27292,3),(27294,3),(27296,3),(27313,3),(27316,3),(27318,3),(27321,3),(27334,3),(27337,3),(27343,3),(27345,3),(27346,3),(27352,3),(27357,3),(27383,3),(27390,3),(27398,3),(27421,3),(27422,3),(27424,3),(27428,3),(27432,3),(27438,3),(27441,3),(27444,3),(27451,3),(27452,3),(27455,3),(27465,3),(27470,3),(27479,3),(27486,3),(27494,3),(27498,3),(27505,3),(27512,3),(27518,3),(27519,3),(27520,3),(27533,3),(27547,3),(27557,3),(27584,3),(27593,3),(27595,3),(27598,3),(27604,3),(27606,3),(27613,3),(27614,3),(27625,3),(27642,3),(27649,3),(27653,3),(27655,3),(27657,3),(27664,3),(27669,3),(27671,3),(27672,3),(27708,3),(27711,3),(27717,3),(27721,3),(27725,3),(27727,3),(27729,3),(27730,3),(27733,3),(27743,3),(27756,3),(27764,3),(27765,3),(27776,3),(27782,3),(27797,3),(27806,3),(27809,3),(27818,3),(27820,3),(27822,3),(27827,3),(27846,3),(27848,3),(27854,3),(27856,3),(27864,3),(27870,3),(27875,3),(27879,3),(27880,3),(27884,3),(27902,3),(27905,3),(27914,3),(27929,3),(27931,3),(27935,3),(27938,3),(27939,3),(27942,3),(27943,3),(27945,3),(27946,3),(27948,3),(27951,3),(27960,3),(27961,3),(27989,3),(27990,3),(27991,3),(27998,3),(27999,3),(28002,3),(28003,3),(28006,3),(28007,3),(28009,3),(28011,3),(28014,3),(28023,3),(28028,3),(28061,3),(28062,3),(28066,3),(28067,3),(28070,3),(28086,3),(28088,3),(28089,3),(28095,3),(28101,3),(28111,3),(28115,3),(28120,3),(28129,3),(28131,3),(28132,3),(28139,3),(28142,3),(28145,3),(28146,3),(28155,3),(28170,3),(28173,3),(28184,3),(28188,3),(28189,3),(28191,3),(28197,3),(28201,3),(28204,3),(28206,3),(28219,3),(28221,3),(28236,3),(28238,3),(28240,3),(28242,3),(28246,3),(28250,3),(28252,3),(28253,3),(28256,3),(28259,3),(28262,3),(28266,3),(28281,3),(28299,3),(28304,3),(28307,3),(28308,3),(28315,3),(28319,3),(28321,3),(28324,3),(28325,3),(28327,3),(28334,3),(28339,3),(28340,3),(28348,3),(28352,3),(28355,3),(28357,3),(28363,3),(28372,3),(28381,3),(28405,3),(28419,3),(28425,3),(28427,3),(28431,3),(28441,3),(28443,3),(28447,3),(28454,3),(28460,3),(28471,3),(28474,3),(28482,3),(28492,3),(28494,3),(28502,3),(28515,3),(28520,3),(28530,3),(28531,3),(28538,3),(28552,3),(28562,3),(28564,3),(28570,3),(28578,3),(28579,3),(28580,3),(28583,3),(28594,3),(28600,3),(28602,3),(28608,3),(28622,3),(28631,3),(28632,3),(28641,3),(28651,3),(28652,3),(28657,3),(28660,3),(28666,3),(28685,3),(28690,3),(28702,3),(28706,3),(28707,3),(28725,3),(28736,3),(28737,3),(28750,3),(28751,3),(28766,3),(28767,3),(28769,3),(28779,3),(28784,3),(28789,3),(28791,3),(28794,3),(28798,3),(28807,3),(28808,3),(28813,3),(28819,3),(28821,3),(28826,3),(28837,3),(28844,3),(28849,3),(28852,3),(28861,3),(28863,3),(28867,3),(28872,3),(28874,3),(28879,3),(28901,3),(28908,3),(28918,3),(28937,3),(28945,3),(28946,3),(28951,3),(28968,3),(28969,3),(28970,3),(28972,3),(28974,3),(28983,3),(28985,3),(28990,3),(28991,3),(28995,3),(29001,3),(29003,3),(29009,3),(29012,3),(29015,3),(29025,3),(29028,3),(29032,3),(29033,3),(29034,3),(29035,3),(29040,3),(29041,3),(29055,3),(29059,3),(29064,3),(29065,3),(29085,3),(29089,3),(29091,3),(29092,3),(29094,3),(29098,3),(29099,3),(29102,3),(29103,3),(29104,3),(29114,3),(29120,3),(29138,3),(29147,3),(29148,3),(29153,3),(29155,3),(29167,3),(29170,3),(29182,3),(29189,3),(29191,3),(29192,3),(29196,3),(29197,3),(29205,3),(29207,3),(29209,3),(29211,3),(29222,3),(29223,3),(29227,3),(29235,3),(29236,3),(29239,3),(29245,3),(29246,3),(29255,3),(29261,3),(29264,3),(29266,3),(29267,3),(29270,3),(29271,3),(29274,3),(29289,3),(29291,3),(29300,3),(29307,3),(29313,3),(29314,3),(29321,3),(29328,3),(29330,3),(29343,3),(29344,3),(29346,3),(29350,3),(29351,3),(29355,3),(29356,3),(29357,3),(29361,3),(29368,3),(29369,3),(29389,3),(29390,3),(29393,3),(29394,3),(29403,3),(29411,3),(29413,3),(29415,3),(29423,3),(29432,3),(29445,3),(29452,3),(29462,3),(29463,3),(29464,3),(29473,3),(29475,3),(29476,3),(29479,3),(29487,3),(29495,3),(29498,3),(29505,3),(29509,3),(29514,3),(29515,3),(29516,3),(29526,3),(29528,3),(29534,3),(29544,3),(29593,3),(29594,3),(29595,3),(29597,3),(29598,3),(29605,3),(29607,3),(29615,3),(29617,3),(29619,3),(29622,3),(29630,3),(29638,3),(29639,3),(29644,3),(29653,3),(29654,3),(29656,3),(29660,3),(29661,3),(29663,3),(29678,3),(29679,3),(29694,3),(29698,3),(29702,3),(29705,3),(29713,3),(29716,3),(29718,3),(29720,3),(29734,3),(29757,3),(29771,3),(29781,3),(29787,3),(29793,3),(29796,3),(29798,3),(29804,3),(29806,3),(29812,3),(29820,3),(29822,3),(29828,3),(29837,3),(29839,3),(29848,3),(29859,3),(29862,3),(29868,3),(29876,3),(29888,3),(29889,3),(29890,3),(29925,3),(29928,3),(29930,3),(29932,3),(29934,3),(29954,3),(29978,3),(29986,3),(30000,3),(30003,3),(30014,3),(30035,3),(30042,3),(30051,3),(30058,3),(30065,3),(30075,3),(30084,3),(30098,3),(30100,3),(30101,3),(30108,3),(30109,3),(30114,3),(30116,3),(30120,3),(30144,3),(30145,3),(30149,3),(30150,3),(30152,3),(30156,3),(30169,3),(30171,3),(30173,3),(30174,3),(30178,3),(30179,3),(30216,3),(30221,3),(30223,3),(30232,3),(30238,3),(30241,3),(30242,3),(30250,3),(30253,3),(30254,3),(30255,3),(30256,3),(30257,3),(30272,3),(30275,3),(30279,3),(30283,3),(30288,3),(30291,3),(30292,3),(30296,3),(30301,3),(30305,3),(30312,3),(30313,3),(30314,3),(30321,3),(30323,3),(30331,3),(30335,3),(30337,3),(30338,3),(30343,3),(30348,3),(30350,3),(30361,3),(30362,3),(30364,3),(30366,3),(30370,3),(30372,3),(30373,3),(30375,3),(30379,3),(30380,3),(30389,3),(30394,3),(30397,3),(30412,3),(30421,3),(30422,3),(30433,3),(30435,3),(30444,3),(30464,3),(30466,3),(30467,3),(30468,3),(30472,3),(30481,3),(30495,3),(30502,3),(30510,3),(30514,3),(30516,3),(30518,3),(30521,3),(30523,3),(30530,3),(30537,3),(30538,3),(30539,3),(30540,3),(30543,3),(30549,3),(30554,3),(30565,3),(30575,3),(30581,3),(30585,3),(30586,3),(30588,3),(30599,3),(30603,3),(30613,3),(30618,3),(30619,3),(30621,3),(30622,3),(30623,3),(30624,3),(30625,3),(30630,3),(30631,3),(30637,3),(30646,3),(30659,3),(30672,3),(30682,3),(30694,3),(30697,3),(30700,3),(30704,3),(30706,3),(30713,3),(30723,3),(30738,3),(30743,3),(30744,3),(30746,3),(30750,3),(30752,3),(30759,3),(30762,3),(30771,3),(30780,3),(30788,3),(30793,3),(30802,3),(30803,3),(30804,3),(30814,3),(30815,3),(30817,3),(30819,3),(30825,3),(30827,3),(30830,3),(30843,3),(30847,3),(30848,3),(30856,3),(30857,3),(30871,3),(30874,3),(30881,3),(30887,3),(30889,3),(30893,3),(30905,3),(30909,3),(30911,3),(30912,3),(30915,3),(30935,3),(30938,3),(30939,3),(30944,3),(30947,3),(30949,3),(30975,3),(31003,3),(31009,3),(31018,3),(31022,3),(31026,3),(31032,3),(31037,3),(31044,3),(31046,3),(31047,3),(31052,3),(31064,3),(31067,3),(31070,3),(31072,3),(31079,3),(31080,3),(31090,3),(31094,3),(31097,3),(31103,3),(31107,3),(31108,3),(31110,3),(31112,3),(31122,3),(31127,3),(31136,3),(31138,3),(31155,3),(31159,3),(31161,3),(31162,3),(31164,3),(31170,3),(31174,3),(31177,3),(31182,3),(31189,3),(31206,3),(31227,3),(31228,3),(31242,3),(31244,3),(31265,3),(31289,3),(31291,3),(31303,3),(31314,3),(31325,3),(31327,3),(31336,3),(31337,3),(31356,3),(31365,3),(31367,3),(31371,3),(31379,3),(31384,3),(31392,3),(31394,3),(31397,3),(31403,3),(31413,3),(31416,3),(31418,3),(31435,3),(31448,3),(31451,3),(31453,3),(31455,3),(31473,3),(31475,3),(31476,3),(31481,3),(31483,3),(31491,3),(31496,3),(31501,3),(31507,3),(31516,3),(31524,3),(31525,3),(31531,3),(31535,3),(31538,3),(31549,3),(31550,3),(31559,3),(31568,3),(31571,3),(31585,3),(31590,3),(31597,3),(31601,3),(31602,3),(31617,3),(31623,3),(31628,3),(31642,3),(31652,3),(31653,3),(31656,3),(31664,3),(31667,3),(31670,3),(31672,3),(31681,3),(31688,3),(31690,3),(31695,3),(31702,3),(31708,3),(31717,3),(31740,3),(31742,3),(31744,3),(31745,3),(31746,3),(31762,3),(31769,3),(31772,3),(31792,3),(31805,3),(31815,3),(31817,3),(31818,3),(31821,3),(31826,3),(31827,3),(31835,3),(31842,3),(31845,3),(31854,3),(31866,3),(31876,3),(31880,3),(31892,3),(31908,3),(31914,3),(31916,3),(31922,3),(31927,3),(31929,3),(31934,3),(31935,3),(31942,3),(31945,3),(31951,3),(31953,3),(31973,3),(31986,3),(31987,3),(32023,3),(32024,3),(32035,3),(32047,3),(32052,3),(32056,3),(32066,3),(32070,3),(32071,3),(32083,3),(32084,3),(32096,3),(32097,3),(32099,3),(32110,3),(32123,3),(32129,3),(32134,3),(32147,3),(32152,3),(32173,3),(32174,3),(32178,3),(32183,3),(32196,3),(32202,3),(32204,3),(32216,3),(32217,3),(32222,3),(32225,3),(32242,3),(32244,3),(32245,3),(32256,3),(32265,3),(32266,3),(32274,3),(32276,3),(32278,3),(32285,3),(32291,3),(32299,3),(32301,3),(32303,3),(32306,3),(32310,3),(32317,3),(32318,3),(32319,3),(32326,3),(32336,3),(32338,3),(32341,3),(32348,3),(32358,3),(32359,3),(32366,3),(32369,3),(32375,3),(32377,3),(32398,3),(32406,3),(32414,3),(32416,3),(32424,3),(32426,3),(32427,3),(32439,3),(32445,3),(32446,3),(32449,3),(32455,3),(32459,3),(32489,3),(32509,3),(32518,3),(32519,3),(32522,3),(32529,3),(32536,3),(32544,3),(32546,3),(32550,3),(32552,3),(32561,3),(32576,3),(32578,3),(32583,3),(32584,3),(32587,3),(32601,3),(32606,3),(32608,3),(32609,3),(32617,3),(32626,3),(32657,3),(32661,3),(32665,3),(32668,3),(32674,3),(32676,3),(32678,3),(32685,3),(32688,3),(32699,3),(32702,3),(32716,3),(32718,3),(32720,3),(32739,3),(32745,3),(32749,3),(32750,3),(32753,3),(32756,3),(32758,3),(32763,3),(32767,3),(32777,3),(32779,3),(32780,3),(32781,3),(32782,3),(32787,3),(32792,3),(32802,3),(32812,3),(32815,3),(32820,3),(32821,3),(32823,3),(32825,3),(32827,3),(32842,3),(32851,3),(32855,3),(32859,3),(32860,3),(32892,3),(32893,3),(32900,3),(32902,3),(32924,3),(32931,3),(32934,3),(32942,3),(32945,3),(32998,3),(33009,3),(33017,3),(33024,3),(33031,3),(33032,3),(33036,3),(33042,3),(33050,3),(33062,3),(33064,3),(33072,3),(33073,3),(33079,3),(33093,3),(33095,3),(33099,3),(33106,3),(33113,3),(33116,3),(33118,3),(33121,3),(33124,3),(33129,3),(33130,3),(33134,3),(33135,3),(33136,3),(33137,3),(33140,3),(33143,3),(33147,3),(33149,3),(33155,3),(33159,3),(33162,3),(33186,3),(33187,3),(33198,3),(33202,3),(33203,3),(33221,3),(33233,3),(33236,3),(33247,3),(33259,3),(33261,3),(33266,3),(33269,3),(33275,3),(33276,3),(33279,3),(33282,3),(33287,3),(33289,3),(33291,3),(33292,3),(33294,3),(33295,3),(33297,3),(33301,3),(33302,3),(33309,3),(33311,3),(33312,3),(33315,3),(33322,3),(33323,3),(33324,3),(33325,3),(33335,3),(33342,3),(33344,3),(33358,3),(33360,3),(33370,3),(33371,3),(33374,3),(33375,3),(33377,3),(33389,3),(33392,3),(33404,3),(33405,3),(33430,3),(33433,3),(33437,3),(33443,3),(33459,3),(33460,3),(33465,3),(33471,3),(33474,3),(33476,3),(33478,3),(33485,3),(33491,3),(33507,3),(33509,3),(33513,3),(33523,3),(33542,3),(33552,3),(33560,3),(33567,3),(33569,3),(33576,3),(33577,3),(33581,3),(33586,3),(33595,3),(33597,3),(33605,3),(33614,3),(33628,3),(33634,3),(33635,3),(33640,3),(33655,3),(33663,3),(33665,3),(33670,3),(33693,3),(33694,3),(33696,3),(33704,3),(33705,3),(33707,3),(33712,3),(33720,3),(33724,3),(33736,3),(33737,3),(33746,3),(33747,3),(33755,3),(33756,3),(33759,3),(33761,3),(33762,3),(33764,3),(33766,3),(33769,3),(33772,3),(33777,3),(33778,3),(33790,3),(33791,3),(33792,3),(33794,3),(33805,3),(33808,3),(33817,3),(33822,3),(33830,3),(33831,3),(33835,3),(33841,3),(33843,3),(33850,3),(33859,3),(33870,3),(33876,3),(33883,3),(33886,3),(33887,3),(33898,3),(33904,3),(33906,3),(33907,3),(33910,3),(33929,3),(33934,3),(33938,3),(33946,3),(33947,3),(33948,3),(33955,3),(33956,3),(33959,3),(33970,3),(33976,3),(33983,3),(33985,3),(33993,3),(33994,3),(34004,3),(34006,3),(34032,3),(34038,3),(34042,3),(34060,3),(34064,3),(34085,3),(34097,3),(34111,3),(34134,3),(34136,3),(34141,3),(34144,3),(34149,3),(34158,3),(34164,3),(34169,3),(34171,3),(34180,3),(34183,3),(34191,3),(34196,3),(34198,3),(34201,3),(34204,3),(34205,3),(34218,3),(34221,3),(34222,3),(34224,3),(34228,3),(34230,3),(34238,3),(34251,3),(34264,3),(34279,3),(34288,3),(34290,3),(34291,3),(34292,3),(34296,3),(34321,3),(34325,3),(34334,3),(34338,3),(34341,3),(34344,3),(34355,3),(34366,3),(34371,3),(34373,3),(34376,3),(34385,3),(34390,3),(34392,3),(34395,3),(34400,3),(34402,3),(34407,3),(34419,3),(34424,3),(34430,3),(34438,3),(34440,3),(34441,3),(34449,3),(34480,3),(34482,3),(34486,3),(34495,3),(34496,3),(34508,3),(34513,3),(34515,3),(34517,3),(34521,3),(34524,3),(34526,3),(34531,3),(34536,3),(34538,3),(34546,3),(34560,3),(34577,3),(34583,3),(34586,3),(34588,3),(34594,3),(34597,3),(34610,3),(34611,3),(34614,3),(34615,3),(34628,3),(34630,3),(34637,3),(34646,3),(34647,3),(34653,3),(34658,3),(34662,3),(34670,3),(34675,3),(34676,3),(34677,3),(34682,3),(34688,3),(34690,3),(34698,3),(34703,3),(34704,3),(34708,3),(34709,3),(34710,3),(34715,3),(34731,3),(34735,3),(34737,3),(34750,3),(34751,3),(34752,3),(34753,3),(34755,3),(34758,3),(34766,3),(34769,3),(34794,3),(34809,3),(34811,3),(34813,3),(34824,3),(34825,3),(34836,3),(34839,3),(34840,3),(34843,3),(34852,3),(34853,3),(34860,3),(34863,3),(34864,3),(34875,3),(34882,3),(34883,3),(34884,3),(34887,3),(34889,3),(34890,3),(34893,3),(34895,3),(34896,3),(34911,3),(34929,3),(34936,3),(34941,3),(34943,3),(34944,3),(34946,3),(34948,3),(34951,3),(34955,3),(34958,3),(34964,3),(34966,3),(34971,3),(34972,3),(34975,3),(34980,3),(34983,3),(35000,3),(35001,3),(35015,3),(35024,3),(35036,3),(35048,3),(35051,3),(35056,3),(35074,3),(35091,3),(35105,3),(35107,3),(35108,3),(35109,3),(35115,3),(35124,3),(35135,3),(35141,3),(35151,3),(35152,3),(35174,3),(35178,3),(35185,3),(35187,3),(35194,3),(35198,3),(35210,3),(35223,3),(35225,3),(35226,3),(35231,3),(35233,3),(35237,3),(35247,3),(35249,3),(35256,3),(35257,3),(35259,3),(35260,3),(35263,3),(35264,3),(35275,3),(35276,3),(35293,3),(35295,3),(35302,3),(35303,3),(35310,3),(35314,3),(35315,3),(35326,3),(35348,3),(35350,3),(35354,3),(35355,3),(35363,3),(35368,3),(35369,3),(35376,3),(35390,3),(35402,3),(35409,3),(35411,3),(35421,3),(35424,3),(35432,3),(35433,3),(35448,3),(35464,3),(35465,3),(35474,3),(35476,3),(35477,3),(35485,3),(35492,3),(35499,3),(35500,3),(35501,3),(35505,3),(35508,3),(35515,3),(35519,3),(35526,3),(35527,3),(35531,3),(35532,3),(35534,3),(35544,3),(35551,3),(35567,3),(35579,3),(35588,3),(35589,3),(35599,3),(35604,3),(35614,3),(35626,3),(35638,3),(35642,3),(35645,3),(35648,3),(35651,3),(35662,3),(35665,3),(35672,3),(35675,3),(35680,3),(35681,3),(35684,3),(35695,3),(35700,3),(35701,3),(35703,3),(35704,3),(35707,3),(35711,3),(35714,3),(35719,3),(35723,3),(35724,3),(35726,3),(35727,3),(35733,3),(35734,3),(35741,3),(35744,3),(35749,3),(35750,3),(35755,3),(35779,3),(35787,3),(35791,3),(35797,3),(35816,3),(35831,3),(35833,3),(35837,3),(35846,3),(35847,3),(35850,3),(35851,3),(35856,3),(35859,3),(35860,3),(35869,3),(35873,3),(35874,3),(35884,3),(35890,3),(35894,3),(35896,3),(35904,3),(35915,3),(35920,3),(35925,3),(35926,3),(35928,3),(35935,3),(35938,3),(35940,3),(35944,3),(35945,3),(35953,3),(35959,3),(35961,3),(35963,3),(35972,3),(35982,3),(35986,3),(35991,3),(35992,3),(35993,3),(35995,3),(35999,3),(36004,3),(36007,3),(36008,3),(36012,3),(36023,3),(36039,3),(36040,3),(36043,3),(36047,3),(36048,3),(36066,3),(36070,3),(36097,3),(36099,3),(36101,3),(36104,3),(36107,3),(36149,3),(36155,3),(36158,3),(36167,3),(36168,3),(36169,3),(36170,3),(36175,3),(36179,3),(36191,3),(36193,3),(36194,3),(36196,3),(36200,3),(36209,3),(36213,3),(36217,3),(36223,3),(36241,3),(36250,3),(36260,3),(36261,3),(36270,3),(36273,3),(36278,3),(36289,3),(36293,3),(36305,3),(36310,3),(36338,3),(36343,3),(36350,3),(36351,3),(36365,3),(36369,3),(36372,3),(36414,3),(36428,3),(36431,3),(36446,3),(36458,3),(36460,3),(36462,3),(36466,3),(36469,3),(36473,3),(36481,3),(36485,3),(36486,3),(36495,3),(36498,3),(36504,3),(36513,3),(36516,3),(36517,3),(36524,3),(36545,3),(36551,3),(36553,3),(36555,3),(36565,3),(36568,3),(36578,3),(36593,3),(36599,3),(36606,3),(36615,3),(36616,3),(36620,3),(36625,3),(36626,3),(36634,3),(36637,3),(36640,3),(36643,3),(36653,3),(36672,3),(36678,3),(36680,3),(36682,3),(36690,3),(36692,3),(36699,3),(36718,3),(36720,3),(36723,3),(36724,3),(36725,3),(36727,3),(36728,3),(36741,3),(36743,3),(36749,3),(36752,3),(36763,3),(36764,3),(36768,3),(36802,3),(36807,3),(36809,3),(36811,3),(36812,3),(36826,3),(36836,3),(36837,3),(36852,3),(36854,3),(36858,3),(36871,3),(36872,3),(36893,3),(36896,3),(36905,3),(36907,3),(36908,3),(36910,3),(36916,3),(36919,3),(36926,3),(36929,3),(36930,3),(36932,3),(36938,3),(36939,3),(36964,3),(36969,3),(36974,3),(36975,3),(36978,3),(36985,3),(36990,3),(36995,3),(36996,3),(37003,3),(37008,3),(37009,3),(37011,3),(37021,3),(37030,3),(37033,3),(37034,3),(37039,3),(37040,3),(37050,3),(37054,3),(37072,3),(37074,3),(37076,3),(37082,3),(37084,3),(37091,3),(37108,3),(37114,3),(37118,3),(37119,3),(37128,3),(37130,3),(37133,3),(37138,3),(37140,3),(37144,3),(37160,3),(37171,3),(37183,3),(37214,3),(37223,3),(37232,3),(37243,3),(37244,3),(37251,3),(37267,3),(37274,3),(37290,3),(37294,3),(37296,3),(37299,3),(37300,3),(37301,3),(37305,3),(37313,3),(37322,3),(37330,3),(37340,3),(37352,3),(37375,3),(37378,3),(37382,3),(37393,3),(37396,3),(37399,3),(37401,3),(37409,3),(37421,3),(37423,3),(37425,3),(37435,3),(37448,3),(37449,3),(37451,3),(37460,3),(37465,3),(37468,3),(37471,3),(37473,3),(37481,3),(37492,3),(37505,3),(37509,3),(37515,3),(37516,3),(37524,3),(37539,3),(37542,3),(37543,3),(37558,3),(37567,3),(37570,3),(37572,3),(37575,3),(37582,3),(37585,3),(37594,3),(37600,3),(37605,3),(37606,3),(37611,3),(37616,3),(37617,3),(37627,3),(37632,3),(37641,3),(37644,3),(37647,3),(37652,3),(37654,3),(37657,3),(37667,3),(37672,3),(37677,3),(37688,3),(37692,3),(37728,3),(37730,3),(37735,3),(37747,3),(37748,3),(37752,3),(37780,3),(37785,3),(37805,3),(37810,3),(37811,3),(37812,3),(37815,3),(37816,3),(37818,3),(37819,3),(37823,3),(37843,3),(37851,3),(37852,3),(37866,3),(37871,3),(37873,3),(37875,3),(37884,3),(37890,3),(37895,3),(37897,3),(37900,3),(37912,3),(37916,3),(37923,3),(37924,3),(37932,3),(37942,3),(37967,3),(37970,3),(37979,3),(37980,3),(37983,3),(37988,3),(37995,3),(37997,3),(38007,3),(38012,3),(38014,3),(38015,3),(38017,3),(38018,3),(38019,3),(38026,3),(38030,3),(38044,3),(38054,3),(38058,3),(38069,3),(38077,3),(38078,3),(38081,3),(38083,3),(38101,3),(38104,3),(38109,3),(38115,3),(38116,3),(38118,3),(38119,3),(38121,3),(38124,3),(38127,3),(38133,3),(38140,3),(38144,3),(38146,3),(38158,3),(38164,3),(38166,3),(38175,3),(38182,3),(38188,3),(38192,3),(38203,3),(38210,3),(38213,3),(38214,3),(38216,3),(38233,3),(38236,3),(38242,3),(38245,3),(38247,3),(38249,3),(38257,3),(38258,3),(38262,3),(38264,3),(38275,3),(38279,3),(38289,3),(38294,3),(38298,3),(38302,3),(38307,3),(38310,3),(38315,3),(38316,3),(38321,3),(38323,3),(38327,3),(38346,3),(38359,3),(38360,3),(38369,3),(38371,3),(38375,3),(38392,3),(38397,3),(38398,3),(38410,3),(38418,3),(38419,3),(38443,3),(38452,3),(38454,3),(38466,3),(38469,3),(38481,3),(38494,3),(38526,3),(38534,3),(38540,3),(38542,3),(38546,3),(38556,3),(38561,3),(38575,3),(38576,3),(38580,3),(38581,3),(38587,3),(38596,3),(38603,3),(38605,3),(38609,3),(38616,3),(38618,3),(38629,3),(38645,3),(38650,3),(38663,3),(38666,3),(38671,3),(38675,3),(38682,3),(38719,3),(38722,3),(38723,3),(38729,3),(38736,3),(38739,3),(38743,3),(38745,3),(38750,3),(38758,3),(38760,3),(38772,3),(38778,3),(38781,3),(38784,3),(38786,3),(38790,3),(38802,3),(38809,3),(38816,3),(38818,3),(38819,3),(38834,3),(38840,3),(38844,3),(38846,3),(38854,3),(38862,3),(38870,3),(38871,3),(38873,3),(38881,3),(38893,3),(38901,3),(38907,3),(38917,3),(38935,3),(38943,3),(38944,3),(38948,3),(38950,3),(38952,3),(38961,3),(38986,3),(38994,3),(38995,3),(38997,3),(39000,3),(39003,3),(39021,3),(39028,3),(39033,3),(39037,3),(39053,3),(39056,3),(39060,3),(39061,3),(39072,3),(39074,3),(39079,3),(39085,3),(39091,3),(39093,3),(39095,3),(39107,3),(39110,3),(39111,3),(39118,3),(39119,3),(39131,3),(39132,3),(39133,3),(39137,3),(39139,3),(39146,3),(39183,3),(39184,3),(39185,3),(39190,3),(39200,3),(39202,3),(39218,3),(39229,3),(39248,3),(39253,3),(39254,3),(39266,3),(39267,3),(39268,3),(39283,3),(39295,3),(39300,3),(39320,3),(39325,3),(39333,3),(39335,3),(39339,3),(39346,3),(39347,3),(39350,3),(39370,3),(39378,3),(39380,3),(39388,3),(39393,3),(39403,3),(39405,3),(39415,3),(39422,3),(39427,3),(39438,3),(39441,3),(39445,3),(39451,3),(39456,3),(39458,3),(39466,3),(39467,3),(39474,3),(39480,3),(39481,3),(39492,3),(39495,3),(39503,3),(39510,3),(39511,3),(39513,3),(39522,3),(39526,3),(39528,3),(39542,3),(39551,3),(39552,3),(39559,3),(39568,3),(39578,3),(39585,3),(39594,3),(39597,3),(39603,3),(39609,3),(39611,3),(39614,3),(39619,3),(39623,3),(39627,3),(39632,3),(39633,3),(39634,3),(39637,3),(39642,3),(39664,3),(39666,3),(39692,3),(39694,3),(39695,3),(39697,3),(39701,3),(39703,3),(39715,3),(39719,3),(39723,3),(39724,3),(39727,3),(39732,3),(39733,3),(39737,3),(39751,3),(39755,3),(39766,3),(39776,3),(39784,3),(39788,3),(39789,3),(39791,3),(39793,3),(39794,3),(39803,3),(39813,3),(39831,3),(39842,3),(39862,3),(39866,3),(39869,3),(39871,3),(39874,3),(39880,3),(39884,3),(39886,3),(39889,3),(39898,3),(39905,3),(39922,3),(39927,3),(39928,3),(39930,3),(39936,3),(39941,3),(39945,3),(39965,3),(39968,3),(39971,3),(39972,3),(39979,3),(39980,3),(39988,3),(39992,3),(40003,3),(40007,3),(40018,3),(40023,3),(40024,3),(40031,3),(40034,3),(40038,3),(40041,3),(40043,3),(40050,3),(40058,3),(40059,3),(40068,3),(40071,3),(40076,3),(40081,3),(40086,3),(40092,3),(40094,3),(40096,3),(40099,3),(40111,3),(40116,3),(40119,3),(40125,3),(40127,3),(40133,3),(40138,3),(40142,3),(40149,3),(40154,3),(40155,3),(40166,3),(40168,3),(40171,3),(40181,3),(40185,3),(40187,3),(40188,3),(40192,3),(40193,3),(40206,3),(40220,3),(40234,3),(40236,3),(40239,3),(40244,3),(40259,3),(40262,3),(40270,3),(40280,3),(40285,3),(40287,3),(40302,3),(40304,3),(40308,3),(40321,3),(40330,3),(40334,3),(40336,3),(40342,3),(40344,3),(40345,3),(40358,3),(40368,3),(40369,3),(40370,3),(40372,3),(40386,3),(40396,3),(40403,3),(40416,3),(40417,3),(40423,3),(40426,3),(40429,3),(40431,3),(40438,3),(40439,3),(40444,3),(40447,3),(40467,3),(40478,3),(40502,3),(40506,3),(40531,3),(40536,3),(40547,3),(40549,3),(40560,3),(40578,3),(40581,3),(40582,3),(40595,3),(40598,3),(40607,3),(40609,3),(40632,3),(40633,3),(40641,3),(40649,3),(40660,3),(40673,3),(40685,3),(40697,3),(40701,3),(40708,3),(40716,3),(40723,3),(40732,3),(40746,3),(40767,3),(40768,3),(40771,3),(40785,3),(40793,3),(40807,3),(40808,3),(40815,3),(40826,3),(40829,3),(40840,3),(40845,3),(40847,3),(40849,3),(40859,3),(40862,3),(40865,3),(40871,3),(40872,3),(40898,3),(40902,3),(40907,3),(40911,3),(40917,3),(40926,3),(40930,3),(40932,3),(40973,3),(40978,3),(40980,3),(40981,3),(40990,3),(41005,3),(41008,3),(41013,3),(41017,3),(41022,3),(41030,3),(41064,3),(41065,3),(41066,3),(41086,3),(41091,3),(41093,3),(41095,3),(41096,3),(41099,3),(41103,3),(41109,3),(41111,3),(41122,3),(41132,3),(41136,3),(41142,3),(41147,3),(41150,3),(41156,3),(41165,3),(41169,3),(41173,3),(41224,3),(41231,3),(41257,3),(41266,3),(41274,3),(41278,3),(41288,3),(41296,3),(41310,3),(41313,3),(41314,3),(41319,3),(41320,3),(41335,3),(41343,3),(41350,3),(41356,3),(41357,3),(41360,3),(41373,3),(41381,3),(41389,3),(41396,3),(41400,3),(41407,3),(41419,3),(41427,3),(41432,3),(41441,3),(41448,3),(41454,3),(41466,3),(41468,3),(41473,3),(41477,3),(41478,3),(41485,3),(41494,3),(41505,3),(41506,3),(41508,3),(41513,3),(41518,3),(41533,3),(41539,3),(41542,3),(41544,3),(41555,3),(41556,3),(41557,3),(41558,3),(41561,3),(41573,3),(41577,3),(41592,3),(41594,3),(41606,3),(41608,3),(41620,3),(41624,3),(41628,3),(41637,3),(41639,3),(41643,3),(41644,3),(41648,3),(41650,3),(41651,3),(41665,3),(41669,3),(41699,3),(41702,3),(41706,3),(41708,3),(41718,3),(41728,3),(41729,3),(41732,3),(41733,3),(41741,3),(41745,3),(41765,3),(41769,3),(41773,3),(41774,3),(41775,3),(41776,3),(41795,3),(41797,3),(41799,3),(41810,3),(41811,3),(41813,3),(41815,3),(41818,3),(41830,3),(41833,3),(41834,3),(41838,3),(41845,3),(41858,3),(41865,3),(41866,3),(41867,3),(41873,3),(41875,3),(41876,3),(41883,3),(41893,3),(41895,3),(41900,3),(41904,3),(41934,3),(41940,3),(41942,3),(41954,3),(41956,3),(41959,3),(41962,3),(41967,3),(41971,3),(41973,3),(41983,3),(41993,3),(41999,3),(42002,3),(42004,3),(42009,3),(42013,3),(42023,3),(42024,3),(42026,3),(42035,3),(42037,3),(42040,3),(42042,3),(42052,3),(42060,3),(42064,3),(42065,3),(42067,3),(42070,3),(42075,3),(42077,3),(42084,3),(42085,3),(42089,3),(42094,3),(42102,3),(42116,3),(42118,3),(42124,3),(42160,3),(42168,3),(42169,3),(42181,3),(42184,3),(42189,3),(42194,3),(42196,3),(42197,3),(42205,3),(42206,3),(42216,3),(42220,3),(42230,3),(42231,3),(42237,3),(42238,3),(42242,3),(42246,3),(42254,3),(42273,3),(42282,3),(42289,3),(42320,3),(42323,3),(42339,3),(42341,3),(42342,3),(42345,3),(42347,3),(42360,3),(42370,3),(42371,3),(42376,3),(42378,3),(42383,3),(42387,3),(42388,3),(42389,3),(42390,3),(42391,3),(42397,3),(42417,3),(42423,3),(42428,3),(42429,3),(42435,3),(42436,3),(42440,3),(42446,3),(42449,3),(42452,3),(42461,3),(42465,3),(42468,3),(42474,3),(42485,3),(42486,3),(42518,3),(42529,3),(42537,3),(42539,3),(42541,3),(42551,3),(42552,3),(42560,3),(42562,3),(42569,3),(42576,3),(42578,3),(42579,3),(42591,3),(42595,3),(42607,3),(42612,3),(42617,3),(42619,3),(42630,3),(42639,3),(42650,3),(42651,3),(42654,3),(42657,3),(42662,3),(42670,3),(42688,3),(42694,3),(42702,3),(42704,3),(42706,3),(42708,3),(42712,3),(42722,3),(42726,3),(42736,3),(42742,3),(42754,3),(42755,3),(42759,3),(42766,3),(42767,3),(42770,3),(42774,3),(42775,3),(42776,3),(42783,3),(42784,3),(42790,3),(42791,3),(42792,3),(42793,3),(42795,3),(42802,3),(42807,3),(42810,3),(42820,3),(42825,3),(42827,3),(42835,3),(42836,3),(42839,3),(42850,3),(42857,3),(42861,3),(42862,3),(42863,3),(42868,3),(42887,3),(42890,3),(42897,3),(42900,3),(42903,3),(42907,3),(42919,3),(42920,3),(42922,3),(42929,3),(42942,3),(42956,3),(42958,3),(42960,3),(42961,3),(42964,3),(42967,3),(42973,3),(42978,3),(42984,3),(43004,3),(43012,3),(43014,3),(43016,3),(43017,3),(43022,3),(43024,3),(43030,3),(43031,3),(43036,3),(43037,3),(43038,3),(43042,3),(43045,3),(43047,3),(43053,3),(43054,3),(43064,3),(43071,3),(43074,3),(43075,3),(43076,3),(43080,3),(43086,3),(43105,3),(43115,3),(43124,3),(43125,3),(43127,3),(43130,3),(43139,3),(43145,3),(43152,3),(43160,3),(43164,3),(43168,3),(43179,3),(43181,3),(43194,3),(43195,3),(43196,3),(43198,3),(43205,3),(43212,3),(43213,3),(43224,3),(43226,3),(43232,3),(43235,3),(43239,3),(43243,3),(43245,3),(43259,3),(43267,3),(43273,3),(43278,3),(43298,3),(43299,3),(43303,3),(43308,3),(43316,3),(43327,3),(43336,3),(43370,3),(43371,3),(43374,3),(43379,3),(43385,3),(43398,3),(43401,3),(43412,3),(43415,3),(43422,3),(43426,3),(43427,3),(43435,3),(43439,3),(43441,3),(43453,3),(43466,3),(43468,3),(43474,3),(43479,3),(43482,3),(43487,3),(43493,3),(43494,3),(43496,3),(43504,3),(43505,3),(43508,3),(43511,3),(43512,3),(43517,3),(43519,3),(43523,3),(43528,3),(43537,3),(43540,3),(43544,3),(43545,3),(43547,3),(43561,3),(43562,3),(43570,3),(43572,3),(43575,3),(43584,3),(43586,3),(43587,3),(43591,3),(43592,3),(43594,3),(43595,3),(43597,3),(43598,3),(43606,3),(43608,3),(43617,3),(43619,3),(43620,3),(43622,3),(43635,3),(43639,3),(43643,3),(43644,3),(43645,3),(43667,3),(43675,3),(43678,3),(43679,3),(43681,3),(43687,3),(43692,3),(43697,3),(43701,3),(43704,3),(43707,3),(43712,3),(43713,3),(43728,3),(43731,3),(43733,3),(43735,3),(43748,3),(43758,3),(43760,3),(43762,3),(43764,3),(43770,3),(43771,3),(43774,3),(43775,3),(43779,3),(43787,3),(43791,3),(43793,3),(43794,3),(43800,3),(43803,3),(43829,3),(43831,3),(43837,3),(43841,3),(43861,3),(43863,3),(43864,3),(43865,3),(43872,3),(43880,3),(43882,3),(43885,3),(43889,3),(43890,3),(43898,3),(43917,3),(43923,3),(43943,3),(43947,3),(43950,3),(43952,3),(43953,3),(43955,3),(43961,3),(43963,3),(43966,3),(43967,3),(43970,3),(43979,3),(43987,3),(43997,3),(44001,3),(44010,3),(44026,3),(44041,3),(44043,3),(44045,3),(44046,3),(44047,3),(44051,3),(44052,3),(44075,3),(44077,3),(44079,3),(44080,3),(44083,3),(44084,3),(44099,3),(44103,3),(44106,3),(44109,3),(44110,3),(44115,3),(44122,3),(44125,3),(44126,3),(44131,3),(44133,3),(44141,3),(44155,3),(44157,3),(44161,3),(44174,3),(44177,3),(44178,3),(44179,3),(44187,3),(44189,3),(44190,3),(44196,3),(44198,3),(44199,3),(44209,3),(44211,3),(44219,3),(44224,3),(44228,3),(44229,3),(44236,3),(44238,3),(44249,3),(44254,3),(44260,3),(44261,3),(44262,3),(44267,3),(44270,3),(44282,3),(44283,3),(44297,3),(44299,3),(44301,3),(44302,3),(44308,3),(44309,3),(44314,3),(44320,3),(44327,3),(44332,3),(44335,3),(44341,3),(44344,3),(44355,3),(44386,3),(44389,3),(44396,3),(44397,3),(44402,3),(44408,3),(44414,3),(44416,3),(44424,3),(44427,3),(44430,3),(44448,3),(44453,3),(44454,3),(44462,3),(44467,3),(44475,3),(44477,3),(44480,3),(44483,3),(44493,3),(44499,3),(44507,3),(44519,3),(44528,3),(44530,3),(44537,3),(44543,3),(44553,3),(44558,3),(44567,3),(44568,3),(44570,3),(44574,3),(44580,3),(44600,3),(44606,3),(44610,3),(44621,3),(44626,3),(44633,3),(44634,3),(44638,3),(44650,3),(44658,3),(44664,3),(44678,3),(44680,3),(44681,3),(44689,3),(44690,3),(44695,3),(44696,3),(44698,3),(44707,3),(44709,3),(44710,3),(44715,3),(44719,3),(44722,3),(44731,3),(44734,3),(44736,3),(44748,3),(44762,3),(44766,3),(44768,3),(44774,3),(44782,3),(44795,3),(44797,3),(44798,3),(44799,3),(44804,3),(44805,3),(44807,3),(44809,3),(44815,3),(44817,3),(44828,3),(44833,3),(44834,3),(44837,3),(44841,3),(44852,3),(44859,3),(44869,3),(44873,3),(44878,3),(44881,3),(44882,3),(44884,3),(44915,3),(44918,3),(44919,3),(44921,3),(44938,3),(44956,3),(44959,3),(44966,3),(44986,3),(45003,3),(45005,3),(45013,3),(45014,3),(45036,3),(45040,3),(45041,3),(45046,3),(45056,3),(45062,3),(45063,3),(45069,3),(45080,3),(45085,3),(45086,3),(45088,3),(45096,3),(45100,3),(45101,3),(45111,3),(45125,3),(45126,3),(45137,3),(45141,3),(45142,3),(45143,3),(45151,3),(45153,3),(45154,3),(45162,3),(45167,3),(45171,3),(45176,3),(45185,3),(45186,3),(45211,3),(45215,3),(45225,3),(45229,3),(45232,3),(45236,3),(45241,3),(45249,3),(45256,3),(45258,3),(45259,3),(45269,3),(45271,3),(45275,3),(45280,3),(45281,3),(45287,3),(45290,3),(45301,3),(45310,3),(45311,3),(45317,3),(45332,3),(45341,3),(45355,3),(45373,3),(45376,3),(45379,3),(45380,3),(45406,3),(45416,3),(45418,3),(45423,3),(45424,3),(45427,3),(45432,3),(45435,3),(45437,3),(45448,3),(45455,3),(45458,3),(45464,3),(45475,3),(45478,3),(45481,3),(45489,3),(45492,3),(45501,3),(45515,3),(45548,3),(45554,3),(45557,3),(45562,3),(45563,3),(45568,3),(45576,3),(45577,3),(45578,3),(45581,3),(45585,3),(45588,3),(45607,3),(45613,3),(45614,3),(45622,3),(45635,3),(45637,3),(45641,3),(45644,3),(45646,3),(45670,3),(45671,3),(45673,3),(45675,3),(45683,3),(45684,3),(45689,3),(45694,3),(45695,3),(45696,3),(45697,3),(45698,3),(45703,3),(45705,3),(45737,3),(45747,3),(45748,3),(45759,3),(45789,3),(45801,3),(45805,3),(45806,3),(45808,3),(45816,3),(45818,3),(45823,3),(45826,3),(45829,3),(45830,3),(45832,3),(45839,3),(45853,3),(45864,3),(45878,3),(45881,3),(45886,3),(45893,3),(45895,3),(45897,3),(45901,3),(45905,3),(45913,3),(45914,3),(45917,3),(45924,3),(45925,3),(45928,3),(45933,3),(45941,3),(45957,3),(45962,3),(45975,3),(45984,3),(45991,3),(45996,3),(46003,3),(46009,3),(46013,3),(46016,3),(46020,3),(46035,3),(46039,3),(46063,3),(46075,3),(46084,3),(46086,3),(46090,3),(46097,3),(46100,3),(46101,3),(46114,3),(46121,3),(46129,3),(46137,3),(46139,3),(46147,3),(46151,3),(46157,3),(46159,3),(46161,3),(46164,3),(46167,3),(46173,3),(46178,3),(46179,3),(46191,3),(46197,3),(46207,3),(46216,3),(46226,3),(46240,3),(46245,3),(46247,3),(46256,3),(46277,3),(46284,3),(46294,3),(46295,3),(46305,3),(46313,3),(46317,3),(46318,3),(46321,3),(46340,3),(46341,3),(46344,3),(46351,3),(46374,3),(46376,3),(46386,3),(46387,3),(46396,3),(46398,3),(46412,3),(46414,3),(46419,3),(46424,3),(46431,3),(46438,3),(46447,3),(46448,3),(46456,3),(46461,3),(46462,3),(46464,3),(46466,3),(46494,3),(46495,3),(46497,3),(46498,3),(46503,3),(46506,3),(46511,3),(46512,3),(46526,3),(46528,3),(46530,3),(46538,3),(46539,3),(46540,3),(46550,3),(46556,3),(46557,3),(46558,3),(46560,3),(46564,3),(46569,3),(46574,3),(46576,3),(46581,3),(46585,3),(46593,3),(46605,3),(46613,3),(46616,3),(46623,3),(46629,3),(46641,3),(46644,3),(46650,3),(46666,3),(46669,3),(46674,3),(46681,3),(46685,3),(46686,3),(46687,3),(46700,3),(46701,3),(46703,3),(46706,3),(46709,3),(46710,3),(46717,3),(46722,3),(46726,3),(46728,3),(46734,3),(46736,3),(46740,3),(46752,3),(46756,3),(46763,3),(46775,3),(46779,3),(46780,3),(46781,3),(46782,3),(46790,3),(46797,3),(46800,3),(46803,3),(46809,3),(46813,3),(46817,3),(46835,3),(46836,3),(46838,3),(46840,3),(46853,3),(46854,3),(46860,3),(46863,3),(46864,3),(46865,3),(46880,3),(46882,3),(46884,3),(46885,3),(46886,3),(46889,3),(46901,3),(46907,3),(46921,3),(46922,3),(46924,3),(46928,3),(46932,3),(46939,3),(46940,3),(46946,3),(46959,3),(46967,3),(46968,3),(46973,3),(46979,3),(46980,3),(46981,3),(46985,3),(46996,3),(46997,3),(46999,3),(47001,3),(47014,3),(47019,3),(47047,3),(47059,3),(47063,3),(47064,3),(47066,3),(47078,3),(47081,3),(47082,3),(47083,3),(47099,3),(47108,3),(47115,3),(47116,3),(47124,3),(47128,3),(47132,3),(47139,3),(47145,3),(47146,3),(47150,3),(47151,3),(47160,3),(47163,3),(47164,3),(47171,3),(47179,3),(47181,3),(47182,3),(47195,3),(47198,3),(47200,3),(47207,3),(47209,3),(47214,3),(47223,3),(47230,3),(47241,3),(47252,3),(47254,3),(47265,3),(47266,3),(47273,3),(47284,3),(47294,3),(47308,3),(47312,3),(47316,3),(47326,3),(47327,3),(47329,3),(47330,3),(47332,3),(47338,3),(47346,3),(47354,3),(47359,3),(47360,3),(47385,3),(47390,3),(47397,3),(47411,3),(47412,3),(47413,3),(47414,3),(47429,3),(47435,3),(47446,3),(47448,3),(47450,3),(47456,3),(47460,3),(47463,3),(47464,3),(47466,3),(47467,3),(47473,3),(47484,3),(47489,3),(47495,3),(47502,3),(47503,3),(47509,3),(47510,3),(47512,3),(47516,3),(47522,3),(47526,3),(47530,3),(47533,3),(47534,3),(47535,3),(47537,3),(47552,3),(47559,3),(47571,3),(47573,3),(47577,3),(47580,3),(47583,3),(47592,3),(47596,3),(47597,3),(47616,3),(47617,3),(47618,3),(47624,3),(47631,3),(47644,3),(47649,3),(47650,3),(47655,3),(47656,3),(47657,3),(47660,3),(47661,3),(47666,3),(47672,3),(47673,3),(47675,3),(47678,3),(47695,3),(47707,3),(47709,3),(47720,3),(47732,3),(47733,3),(47750,3),(47757,3),(47758,3),(47760,3),(47765,3),(47768,3),(47777,3),(47780,3),(47781,3),(47784,3),(47793,3),(47799,3),(47801,3),(47805,3),(47806,3),(47808,3),(47811,3),(47816,3),(47820,3),(47827,3),(47833,3),(47835,3),(47836,3),(47838,3),(47841,3),(47851,3),(47853,3),(47863,3),(47864,3),(47865,3),(47874,3),(47883,3),(47886,3),(47887,3),(47896,3),(47901,3),(47908,3),(47920,3),(47922,3),(47927,3),(47929,3),(47931,3),(47941,3),(47943,3),(47949,3),(47952,3),(47966,3),(47969,3),(47970,3),(47982,3),(47990,3),(47991,3),(47995,3),(48026,3),(48028,3),(48044,3),(48045,3),(48053,3),(48062,3),(48074,3),(48075,3),(48076,3),(48088,3),(48091,3),(48095,3),(48099,3),(48105,3),(48113,3),(48114,3),(48119,3),(48127,3),(48130,3),(48131,3),(48133,3),(48144,3),(48146,3),(48149,3),(48152,3),(48156,3),(48158,3),(48173,3),(48193,3),(48199,3),(48210,3),(48212,3),(48214,3),(48217,3),(48226,3),(48227,3),(48234,3),(48238,3),(48242,3),(48244,3),(48249,3),(48253,3),(48258,3),(48259,3),(48263,3),(48266,3),(48276,3),(48283,3),(48285,3),(48291,3),(48292,3),(48300,3),(48313,3),(48325,3),(48333,3),(48337,3),(48339,3),(48340,3),(48346,3),(48349,3),(48351,3),(48352,3),(48359,3),(48360,3),(48362,3),(48371,3),(48374,3),(48376,3),(48380,3),(48387,3),(48390,3),(48413,3),(48415,3),(48418,3),(48420,3),(48421,3),(48423,3),(48425,3),(48433,3),(48438,3),(48440,3),(48448,3),(48456,3),(48466,3),(48467,3),(48470,3),(48479,3),(48480,3),(48481,3),(48492,3),(48494,3),(48502,3),(48504,3),(48510,3),(48519,3),(48524,3),(48528,3),(48530,3),(48533,3),(48538,3),(48544,3),(48546,3),(48562,3),(48563,3),(48570,3),(48571,3),(48575,3),(48578,3),(48585,3),(48587,3),(48590,3),(48591,3),(48595,3),(48597,3),(48601,3),(48610,3),(48629,3),(48633,3),(48635,3),(48637,3),(48644,3),(48650,3),(48656,3),(48658,3),(48659,3),(48660,3),(48668,3),(48674,3),(48675,3),(48680,3),(48682,3),(48694,3),(48695,3),(48700,3),(48705,3),(48710,3),(48714,3),(48715,3),(48716,3),(48737,3),(48754,3),(48769,3),(48770,3),(48772,3),(48774,3),(48779,3),(48782,3),(48783,3),(48785,3),(48791,3),(48792,3),(48795,3),(48799,3),(48800,3),(48803,3),(48809,3),(48817,3),(48818,3),(48825,3),(48826,3),(48832,3),(48835,3),(48836,3),(48839,3),(48840,3),(48845,3),(48851,3),(48852,3),(48856,3),(48858,3),(48866,3),(48872,3),(48878,3),(48879,3),(48894,3),(48895,3),(48905,3),(48908,3),(48920,3),(48923,3),(48927,3),(48928,3),(48930,3),(48932,3),(48943,3),(48947,3),(48964,3),(48972,3),(48976,3),(48983,3),(48995,3),(48996,3),(49005,3),(49010,3),(49014,3),(49020,3),(49021,3),(49025,3),(49041,3),(49071,3),(49076,3),(49087,3),(49089,3),(49093,3),(49099,3),(49103,3),(49110,3),(49129,3),(49131,3),(49153,3),(49154,3),(49161,3),(49163,3),(49167,3),(49172,3),(49187,3),(49193,3),(49195,3),(49203,3),(49205,3),(49211,3),(49214,3),(49217,3),(49222,3),(49228,3),(49230,3),(49235,3),(49239,3),(49240,3),(49242,3),(49243,3),(49262,3),(49269,3),(49270,3),(49277,3),(49289,3),(49320,3),(49321,3),(49326,3),(49340,3),(49344,3),(49347,3),(49350,3),(49351,3),(49362,3),(49366,3),(49367,3),(49372,3),(49380,3),(49384,3),(49386,3),(49398,3),(49400,3),(49408,3),(49428,3),(49437,3),(49438,3),(49442,3),(49450,3),(49457,3),(49470,3),(49490,3),(49498,3),(49509,3),(49514,3),(49517,3),(49521,3),(49525,3),(49545,3),(49548,3),(49551,3),(49566,3),(49568,3),(49570,3),(49572,3),(49594,3),(49597,3),(49601,3),(49606,3),(49609,3),(49611,3),(49613,3),(49615,3),(49622,3),(49631,3),(49632,3),(49642,3),(49645,3),(49650,3),(49651,3),(49654,3),(49660,3),(49661,3),(49662,3),(49667,3),(49669,3),(49670,3),(49671,3),(49690,3),(49698,3),(49703,3),(49704,3),(49715,3),(49719,3),(49720,3),(49738,3),(49744,3),(49748,3),(49758,3),(49774,3),(49781,3),(49791,3),(49792,3),(49799,3),(49803,3),(49804,3),(49814,3),(49822,3),(49828,3),(49829,3),(49831,3),(49835,3),(49836,3),(49838,3),(49841,3),(49843,3),(49849,3),(49860,3),(49864,3),(49871,3),(49893,3),(49897,3),(49901,3),(49911,3),(49912,3),(49935,3),(49941,3),(49942,3),(49945,3),(49952,3),(49958,3),(49961,3),(49968,3),(49972,3),(49982,3),(49994,3),(50007,3),(50013,3),(50015,3),(50017,3),(50019,3),(50020,3),(50024,3),(50026,3),(50030,3),(50037,3),(50044,3),(50045,3),(50046,3),(50053,3),(50060,3),(50066,3),(50068,3),(50073,3),(50074,3),(50077,3),(50081,3),(50086,3),(50088,3),(50094,3),(50096,3),(50102,3),(50120,3),(50122,3),(50130,3),(50131,3),(50140,3),(50143,3),(50148,3),(50150,3),(50153,3),(50154,3),(50158,3),(50166,3),(50172,3),(50173,3),(50177,3),(50180,3),(50184,3),(50187,3),(50200,3),(50205,3),(50211,3),(50232,3),(50234,3),(50238,3),(50252,3),(50256,3),(50260,3),(50265,3),(50289,3),(50291,3),(50292,3),(50299,3),(50308,3),(50319,3),(50324,3),(50330,3),(50344,3),(50365,3),(50366,3),(50367,3),(50371,3),(50376,3),(50378,3),(50380,3),(50381,3),(50385,3),(50392,3),(50399,3),(50403,3),(50431,3),(50433,3),(50439,3),(50440,3),(50446,3),(50451,3),(50462,3),(50468,3),(50474,3),(50476,3),(50477,3),(50478,3),(50484,3),(50485,3),(50499,3),(50503,3),(50513,3),(50541,3),(50546,3),(50555,3),(50558,3),(50572,3),(50574,3),(50580,3),(50583,3),(50584,3),(50590,3),(50599,3),(50603,3),(50604,3),(50607,3),(50609,3),(50610,3),(50613,3),(50624,3),(50626,3),(50628,3),(50630,3),(50642,3),(50643,3),(50649,3),(50657,3),(50658,3),(50667,3),(50668,3),(50672,3),(50674,3),(50678,3),(50681,3),(50685,3),(50687,3),(50696,3),(50697,3),(50711,3),(50713,3),(50724,3),(50733,3),(50736,3),(50740,3),(50743,3),(50747,3),(50753,3),(50756,3),(50757,3),(50758,3),(50766,3),(50773,3),(50779,3),(50780,3),(50784,3),(50796,3),(50798,3),(50800,3),(50805,3),(50808,3),(50812,3),(50815,3),(50822,3),(50834,3),(50839,3),(50843,3),(50854,3),(50859,3),(50860,3),(50875,3),(50880,3),(50883,3),(50896,3),(50899,3),(50907,3),(50913,3),(50914,3),(50915,3),(50917,3),(50921,3),(50934,3),(50939,3),(50940,3),(50942,3),(50949,3),(50953,3),(50954,3),(50955,3),(50960,3),(50971,3),(50973,3),(50978,3),(50993,3),(50994,3),(50998,3),(50999,3),(51002,3),(51011,3),(51016,3),(51022,3),(51026,3),(51027,3),(51036,3),(51039,3),(51048,3),(51052,3),(51062,3),(51068,3),(51069,3),(51071,3),(51077,3),(51080,3),(51081,3),(51085,3),(51087,3),(51089,3),(51091,3),(51093,3),(51114,3),(51121,3),(51142,3),(51147,3),(51151,3),(51153,3),(51156,3),(51162,3),(51163,3),(51169,3),(51185,3),(51189,3),(51202,3),(51205,3),(51213,3),(51221,3),(51224,3),(51249,3),(51250,3),(51263,3),(51266,3),(51268,3),(51293,3),(51298,3),(51299,3),(51304,3),(51314,3),(51319,3),(51321,3),(51322,3),(51325,3),(51326,3),(51344,3),(51346,3),(51348,3),(51350,3),(51354,3),(51355,3),(51365,3),(51371,3),(51372,3),(51380,3),(51381,3),(51393,3),(51398,3),(51415,3),(51418,3),(51420,3),(51432,3),(51433,3),(51441,3),(51457,3),(51470,3),(51475,3),(51479,3),(51480,3),(51483,3),(51496,3),(51511,3),(51516,3),(51518,3),(51520,3),(51526,3),(51528,3),(51534,3),(51538,3),(51547,3),(51551,3),(51562,3),(51569,3),(51570,3),(51571,3),(51573,3),(51578,3),(51579,3),(51584,3),(51585,3),(51586,3),(51587,3),(51588,3),(51609,3),(51612,3),(51619,3),(51620,3),(51623,3),(51634,3),(51637,3),(51645,3),(51648,3),(51656,3),(51665,3),(51666,3),(51668,3),(51676,3),(51680,3),(51687,3),(51692,3),(51695,3),(51699,3),(51704,3),(51717,3),(51720,3),(51725,3),(51727,3),(51749,3),(51755,3),(51806,3),(51807,3),(51815,3),(51832,3),(51844,3),(51855,3),(51861,3),(51868,3),(51878,3),(51891,3),(51899,3),(51902,3),(51904,3),(51906,3),(51913,3),(51923,3),(51933,3),(51940,3),(51947,3),(51954,3),(51957,3),(51964,3),(51967,3),(51993,3),(52001,3),(52014,3),(52017,3),(52032,3),(52033,3),(52035,3),(52043,3),(52051,3),(52052,3),(52064,3),(52067,3),(52080,3),(52083,3),(52086,3),(52088,3),(52117,3),(52118,3),(52123,3),(52137,3),(52148,3),(52161,3),(52168,3),(52187,3),(52189,3),(52199,3),(52206,3),(52209,3),(52216,3),(52234,3),(52244,3),(52247,3),(52265,3),(52268,3),(52276,3),(52281,3),(52288,3),(52294,3),(52296,3),(52301,3),(52302,3),(52306,3),(52312,3),(52318,3),(52319,3),(52331,3),(52332,3),(52334,3),(52347,3),(52357,3),(52360,3),(52361,3),(52370,3),(52383,3),(52384,3),(52386,3),(52390,3),(52394,3),(52401,3),(52418,3),(52419,3),(52428,3),(52432,3),(52433,3),(52441,3),(52444,3),(52449,3),(52450,3),(52453,3),(52456,3),(52464,3),(52468,3),(52478,3),(52483,3),(52486,3),(52491,3),(52492,3),(52493,3),(52494,3),(52495,3),(52504,3),(52506,3),(52512,3),(52513,3),(52521,3),(52522,3),(52530,3),(52543,3),(52552,3),(52565,3),(52584,3),(52585,3),(52601,3),(52603,3),(52606,3),(52613,3),(52615,3),(52616,3),(52617,3),(52622,3),(52624,3),(52625,3),(52660,3),(52662,3),(52666,3),(52667,3),(52675,3),(52677,3),(52687,3),(52690,3),(52691,3),(52701,3),(52726,3),(52746,3),(52750,3),(52765,3),(52777,3),(52779,3),(52780,3),(52794,3),(52806,3),(52811,3),(52812,3),(52821,3),(52823,3),(52831,3),(52841,3),(52843,3),(52851,3),(52860,3),(52862,3),(52863,3),(52874,3),(52895,3),(52896,3),(52906,3),(52909,3),(52915,3),(52920,3),(52921,3),(52927,3),(52928,3),(52931,3),(52935,3),(52941,3),(52952,3),(52956,3),(52961,3),(52974,3),(52976,3),(52981,3),(52985,3),(52987,3),(52989,3),(52994,3),(52996,3),(52999,3),(53000,3),(53008,3),(53014,3),(53016,3),(53023,3),(53025,3),(53031,3),(53051,3),(53076,3),(53078,3),(53080,3),(53081,3),(53083,3),(53086,3),(53087,3),(53091,3),(53094,3),(53098,3),(53101,3),(53102,3),(53109,3),(53114,3),(53121,3),(53124,3),(53129,3),(53139,3),(53141,3),(53143,3),(53145,3),(53150,3),(53151,3),(53153,3),(53154,3),(53155,3),(53156,3),(53157,3),(53178,3),(53191,3),(53202,3),(53218,3),(53219,3),(53221,3),(53227,3),(53234,3),(53242,3),(53248,3),(53249,3),(53256,3),(53259,3),(53261,3),(53262,3),(53267,3),(53271,3),(53286,3),(53287,3),(53298,3),(53300,3),(53302,3),(53307,3),(53311,3),(53314,3),(53318,3),(53321,3),(53323,3),(53340,3),(53348,3),(53364,3),(53365,3),(53367,3),(53371,3),(53375,3),(53376,3),(53381,3),(53385,3),(53386,3),(53396,3),(53409,3),(53411,3),(53419,3),(53421,3),(53424,3),(53438,3),(53440,3),(53441,3),(53454,3),(53455,3),(53461,3),(53466,3),(53471,3),(53473,3),(53479,3),(53482,3),(53493,3),(53497,3),(53502,3),(53505,3),(53513,3),(53528,3),(53532,3),(53538,3),(53539,3),(53543,3),(53548,3),(53560,3),(53578,3),(53583,3),(53584,3),(53594,3),(53595,3),(53596,3),(53600,3),(53607,3),(53612,3),(53617,3),(53618,3),(53620,3),(53622,3),(53627,3),(53639,3),(53655,3),(53673,3),(53674,3),(53683,3),(53684,3),(53692,3),(53699,3),(53706,3),(53707,3),(53710,3),(53724,3),(53726,3),(53735,3),(53736,3),(53739,3),(53740,3),(53741,3),(53743,3),(53747,3),(53751,3),(53752,3),(53756,3),(53759,3),(53767,3),(53780,3),(53783,3),(53786,3),(53788,3),(53804,3),(53814,3),(53821,3),(53822,3),(53823,3),(53828,3),(53832,3),(53869,3),(53883,3),(53894,3),(53898,3),(53899,3),(53908,3),(53912,3),(53914,3),(53926,3),(53935,3),(53939,3),(53940,3),(53941,3),(53947,3),(53948,3),(53949,3),(53952,3),(53954,3),(53955,3),(53964,3),(53972,3),(53973,3),(53986,3),(53993,3),(54004,3),(54007,3),(54010,3),(54012,3),(54014,3),(54016,3),(54018,3),(54021,3),(54028,3),(54038,3),(54065,3),(54066,3),(54068,3),(54073,3),(54082,3),(54086,3),(54087,3),(54092,3),(54104,3),(54107,3),(54113,3),(54118,3),(54120,3),(54126,3),(54128,3),(54132,3),(54134,3),(54137,3),(54154,3),(54166,3),(54168,3),(54170,3),(54173,3),(54188,3),(54194,3),(54196,3),(54200,3),(54204,3),(54207,3),(54225,3),(54231,3),(54232,3),(54235,3),(54237,3),(54245,3),(54248,3),(54251,3),(54261,3),(54265,3),(54266,3),(54269,3),(54270,3),(54272,3),(54287,3),(54289,3),(54294,3),(54295,3),(54304,3),(54309,3),(54316,3),(54328,3),(54337,3),(54338,3),(54341,3),(54348,3),(54361,3),(54363,3),(54403,3),(54406,3),(54407,3),(54410,3),(54415,3),(54419,3),(54430,3),(54436,3),(54443,3),(54444,3),(54452,3),(54453,3),(54456,3),(54457,3),(54473,3),(54474,3),(54483,3),(54484,3),(54489,3),(54490,3),(54491,3),(54505,3),(54513,3),(54524,3),(54543,3),(54544,3),(54562,3),(54564,3),(54579,3),(54581,3),(54583,3),(54600,3),(54624,3),(54626,3),(54633,3),(54637,3),(54646,3),(54654,3),(54655,3),(54661,3),(54665,3),(54676,3),(54680,3),(54685,3),(54693,3),(54695,3),(54700,3),(54702,3),(54716,3),(54722,3),(54726,3),(54741,3),(54748,3),(54754,3),(54763,3),(54774,3),(54775,3),(54786,3),(54791,3),(54797,3),(54809,3),(54820,3),(54821,3),(54823,3),(54826,3),(54829,3),(54833,3),(54835,3),(54840,3),(54853,3),(54863,3),(54866,3),(54867,3),(54895,3),(54900,3),(54904,3),(54915,3),(54918,3),(54923,3),(54943,3),(54945,3),(54949,3),(54956,3),(54958,3),(54959,3),(54960,3),(54961,3),(54969,3),(54971,3),(54975,3),(54978,3),(54989,3),(54990,3),(54992,3),(54994,3),(55002,3),(55003,3),(55005,3),(55011,3),(55017,3),(55022,3),(55034,3),(55035,3),(55044,3),(55056,3),(55058,3),(55062,3),(55066,3),(55074,3),(55075,3),(55083,3),(55084,3),(55091,3),(55099,3),(55118,3),(55120,3),(55122,3),(55132,3),(55133,3),(55140,3),(55142,3),(55145,3),(55148,3),(55149,3),(55172,3),(55176,3),(55182,3),(55190,3),(55194,3),(55202,3),(55209,3),(55214,3),(55224,3),(55245,3),(55249,3),(55256,3),(55280,3),(55281,3),(55284,3),(55286,3),(55293,3),(55294,3),(55295,3),(55299,3),(55301,3),(55302,3),(55307,3),(55310,3),(55312,3),(55314,3),(55317,3),(55338,3),(55339,3),(55345,3),(55346,3),(55355,3),(55358,3),(55360,3),(55366,3),(55368,3),(55370,3),(55373,3),(55379,3),(55414,3),(55417,3),(55423,3),(55427,3),(55431,3),(55436,3),(55442,3),(55452,3),(55457,3),(55458,3),(55459,3),(55460,3),(55463,3),(55467,3),(55469,3),(55471,3),(55485,3),(55493,3),(55499,3),(55502,3),(55503,3),(55505,3),(55506,3),(55509,3),(55513,3),(55520,3),(55532,3),(55533,3),(55537,3),(55538,3),(55540,3),(55550,3),(55553,3),(55555,3),(55556,3),(55570,3),(55587,3),(55589,3),(55592,3),(55593,3),(55596,3),(55599,3),(55600,3),(55602,3),(55605,3),(55609,3),(55612,3),(55615,3),(55619,3),(55623,3),(55638,3),(55639,3),(55650,3),(55660,3),(55664,3),(55666,3),(55675,3),(55676,3),(55679,3),(55680,3),(55683,3),(55686,3),(55697,3),(55708,3),(55711,3),(55714,3),(55715,3),(55724,3),(55736,3),(55738,3),(55739,3),(55742,3),(55746,3),(55749,3),(55759,3),(55771,3),(55772,3),(55777,3),(55779,3),(55792,3),(55795,3),(55808,3),(55809,3),(55813,3),(55817,3),(55820,3),(55821,3),(55824,3),(55831,3),(55833,3),(55835,3),(55840,3),(55848,3),(55849,3),(55858,3),(55862,3),(55870,3),(55879,3),(55891,3),(55892,3),(55907,3),(55908,3),(55914,3),(55920,3),(55922,3),(55951,3),(55954,3),(55977,3),(55988,3),(55989,3),(55997,3),(55998,3),(56009,3),(56013,3),(56024,3),(56045,3),(56058,3),(56061,3),(56064,3),(56072,3),(56073,3),(56088,3),(56100,3),(56105,3),(56109,3),(56112,3),(56116,3),(56127,3),(56128,3),(56129,3),(56130,3),(56135,3),(56137,3),(56141,3),(56144,3),(56152,3),(56153,3),(56160,3),(56161,3),(56167,3),(56169,3),(56175,3),(56179,3),(56184,3),(56190,3),(56191,3),(56196,3),(56197,3),(56198,3),(56201,3),(56207,3),(56210,3),(56223,3),(56224,3),(56225,3),(56227,3),(56233,3),(56234,3),(56237,3),(56238,3),(56239,3),(56245,3),(56247,3),(56248,3),(56249,3),(56250,3),(56252,3),(56262,3),(56267,3),(56287,3),(56291,3),(56299,3),(56305,3),(56317,3),(56319,3),(56321,3),(56322,3),(56324,3),(56339,3),(56342,3),(56348,3),(56349,3),(56362,3),(56367,3),(56374,3),(56390,3),(56397,3),(56405,3),(56409,3),(56417,3),(56422,3),(56428,3),(56434,3),(56435,3),(56437,3),(56438,3),(56442,3),(56453,3),(56472,3),(56503,3),(56508,3),(56509,3),(56532,3),(56535,3),(56537,3),(56538,3),(56563,3),(56564,3),(56569,3),(56579,3),(56584,3),(56586,3),(56590,3),(56597,3),(56609,3),(56625,3),(56627,3),(56629,3),(56630,3),(56633,3),(56634,3),(56636,3),(56641,3),(56643,3),(56649,3),(56663,3),(56668,3),(56685,3),(56692,3),(56694,3),(56697,3),(56698,3),(56706,3),(56707,3),(56710,3),(56715,3),(56719,3),(56726,3),(56749,3),(56750,3),(56753,3),(56757,3),(56763,3),(56768,3),(56769,3),(56772,3),(56774,3),(56775,3),(56777,3),(56789,3),(56791,3),(56797,3),(56804,3),(56805,3),(56811,3),(56818,3),(56820,3),(56821,3),(56831,3),(56836,3),(56838,3),(56839,3),(56840,3),(56841,3),(56845,3),(56851,3),(56853,3),(56855,3),(56858,3),(56860,3),(56863,3),(56866,3),(56867,3),(56872,3),(56877,3),(56890,3),(56900,3),(56901,3),(56906,3),(56937,3),(56939,3),(56940,3),(56959,3),(56972,3),(56977,3),(56989,3),(56990,3),(57005,3),(57008,3),(57009,3),(57016,3),(57019,3),(57022,3),(57023,3),(57031,3),(57050,3),(57056,3),(57064,3),(57067,3),(57073,3),(57079,3),(57083,3),(57091,3),(57099,3),(57115,3),(57116,3),(57118,3),(57119,3),(57121,3),(57123,3),(57130,3),(57154,3),(57171,3),(57173,3),(57178,3),(57187,3),(57195,3),(57197,3),(57198,3),(57203,3),(57213,3),(57218,3),(57219,3),(57223,3),(57227,3),(57228,3),(57230,3),(57236,3),(57237,3),(57241,3),(57242,3),(57245,3),(57258,3),(57259,3),(57264,3),(57269,3),(57276,3),(57279,3),(57296,3),(57327,3),(57333,3),(57340,3),(57344,3),(57348,3),(57351,3),(57352,3),(57357,3),(57358,3),(57366,3),(57382,3),(57393,3),(57398,3),(57410,3),(57412,3),(57420,3),(57422,3),(57424,3),(57430,3),(57435,3),(57443,3),(57444,3),(57451,3),(57453,3),(57469,3),(57471,3),(57479,3),(57483,3),(57485,3),(57488,3),(57493,3),(57499,3),(57501,3),(57509,3),(57510,3),(57511,3),(57515,3),(57533,3),(57540,3),(57551,3),(57569,3),(57572,3),(57575,3),(57579,3),(57587,3),(57591,3),(57598,3),(57600,3),(57602,3),(57605,3),(57607,3),(57608,3),(57609,3),(57617,3),(57621,3),(57624,3),(57629,3),(57639,3),(57640,3),(57650,3),(57652,3),(57653,3),(57654,3),(57661,3),(57671,3),(57686,3),(57689,3),(57691,3),(57700,3),(57709,3),(57718,3),(57724,3),(57729,3),(57741,3),(57743,3),(57745,3),(57746,3),(57749,3),(57755,3),(57756,3),(57758,3),(57764,3),(57765,3),(57767,3),(57782,3),(57783,3),(57784,3),(57800,3),(57804,3),(57807,3),(57823,3),(57850,3),(57853,3),(57858,3),(57861,3),(57865,3),(57877,3),(57884,3),(57891,3),(57894,3),(57895,3),(57907,3),(57909,3),(57915,3),(57916,3),(57921,3),(57932,3),(57935,3),(57941,3),(57944,3),(57947,3),(57969,3),(57970,3),(57971,3),(57972,3),(57977,3),(57978,3),(57980,3),(57986,3),(57999,3),(58002,3),(58010,3),(58011,3),(58015,3),(58019,3),(58022,3),(58026,3),(58029,3),(58034,3),(58047,3),(58058,3),(58061,3),(58081,3),(58082,3),(58084,3),(58087,3),(58110,3),(58113,3),(58120,3),(58123,3),(58132,3),(58138,3),(58154,3),(58156,3),(58162,3),(58165,3),(58171,3),(58179,3),(58181,3),(58183,3),(58185,3),(58194,3),(58197,3),(58205,3),(58209,3),(58210,3),(58212,3),(58216,3),(58218,3),(58219,3),(58222,3),(58253,3),(58255,3),(58256,3),(58257,3),(58264,3),(58267,3),(58275,3),(58285,3),(58294,3),(58301,3),(58302,3),(58310,3),(58311,3),(58312,3),(58315,3),(58331,3),(58335,3),(58336,3),(58339,3),(58341,3),(58347,3),(58349,3),(58351,3),(58352,3),(58357,3),(58358,3),(58370,3),(58371,3),(58384,3),(58385,3),(58387,3),(58388,3),(58392,3),(58398,3),(58405,3),(58410,3),(58418,3),(58422,3),(58424,3),(58431,3),(58436,3),(58450,3),(58453,3),(58455,3),(58463,3),(58469,3),(58490,3),(58491,3),(58497,3),(58503,3),(58512,3),(58514,3),(58520,3),(58525,3),(58530,3),(58536,3),(58537,3),(58562,3),(58565,3),(58567,3),(58568,3),(58571,3),(58572,3),(58576,3),(58580,3),(58593,3),(58610,3),(58615,3),(58616,3),(58619,3),(58620,3),(58632,3),(58636,3),(58648,3),(58653,3),(58655,3),(58658,3),(58661,3),(58664,3),(58669,3),(58671,3),(58676,3),(58679,3),(58680,3),(58689,3),(58708,3),(58730,3),(58732,3),(58734,3),(58735,3),(58737,3),(58738,3),(58741,3),(58743,3),(58744,3),(58759,3),(58762,3),(58766,3),(58767,3),(58769,3),(58770,3),(58773,3),(58774,3),(58785,3),(58802,3),(58805,3),(58810,3),(58814,3),(58822,3),(58823,3),(58825,3),(58827,3),(58833,3),(58854,3),(58862,3),(58863,3),(58864,3),(58866,3),(58872,3),(58873,3),(58877,3),(58883,3),(58891,3),(58894,3),(58895,3),(58899,3),(58900,3),(58901,3),(58902,3),(58905,3),(58906,3),(58907,3),(58912,3),(58916,3),(58920,3),(58926,3),(58933,3),(58942,3),(58951,3),(58953,3),(58966,3),(58967,3),(58970,3),(58973,3),(58980,3),(58988,3),(58991,3),(59004,3),(59007,3),(59009,3),(59014,3),(59026,3),(59029,3),(59032,3),(59034,3),(59040,3),(59046,3),(59056,3),(59061,3),(59063,3),(59076,3),(59078,3),(59080,3),(59082,3),(59086,3),(59091,3),(59097,3),(59099,3),(59105,3),(59114,3),(59115,3),(59126,3),(59131,3),(59132,3),(59140,3),(59142,3),(59144,3),(59164,3),(59165,3),(59178,3),(59184,3),(59202,3),(59211,3),(59221,3),(59227,3),(59230,3),(59235,3),(59247,3),(59248,3),(59255,3),(59256,3),(59268,3),(59280,3),(59282,3),(59287,3),(59291,3),(59303,3),(59306,3),(59310,3),(59311,3),(59316,3),(59318,3),(59326,3),(59330,3),(59331,3),(59345,3),(59354,3),(59355,3),(59366,3),(59368,3),(59370,3),(59372,3),(59393,3),(59399,3),(59400,3),(59406,3),(59410,3),(59413,3),(59422,3),(59427,3),(59434,3),(59436,3),(59447,3),(59450,3),(59461,3),(59462,3),(59464,3),(59467,3),(59474,3),(59477,3),(59492,3),(59497,3),(59499,3),(59503,3),(59504,3),(59514,3),(59518,3),(59522,3),(59523,3),(59528,3),(59538,3),(59541,3),(59544,3),(59546,3),(59548,3),(59564,3),(59566,3),(59567,3),(59580,3),(59582,3),(59591,3),(59593,3),(59596,3),(59598,3),(59600,3),(59602,3),(59604,3),(59610,3),(59617,3),(59619,3),(59620,3),(59622,3),(59624,3),(59627,3),(59634,3),(59644,3),(59649,3),(59653,3),(59668,3),(59676,3),(59679,3),(59686,3),(59690,3),(59691,3),(59693,3),(59704,3),(59705,3),(59707,3),(59725,3),(59739,3),(59747,3),(59753,3),(59755,3),(59757,3),(59759,3),(59760,3),(59764,3),(59770,3),(59773,3),(59776,3),(59779,3),(59781,3),(59783,3),(59793,3),(59798,3),(59806,3),(59811,3),(59814,3),(59825,3),(59828,3),(59829,3),(59832,3),(59865,3),(59871,3),(59874,3),(59890,3),(59896,3),(59897,3),(59903,3),(59905,3),(59911,3),(59912,3),(59918,3),(59924,3),(59937,3),(59939,3),(59943,3),(59946,3),(59951,3),(59953,3),(59955,3),(59965,3),(59966,3),(59992,3),(59994,3),(59996,3),(60001,3),(60003,3),(60016,3),(60034,3),(60040,3),(60047,3),(60055,3),(60057,3),(60059,3),(60064,3),(60072,3),(60078,3),(60086,3),(60087,3),(60091,3),(60094,3),(60104,3),(60110,3),(60119,3),(60129,3),(60139,3),(60147,3),(60156,3),(60159,3),(60168,3),(60169,3),(60171,3),(60172,3),(60173,3),(60182,3),(60185,3),(60191,3),(60211,3),(60214,3),(60224,3),(60228,3),(60232,3),(60236,3),(60237,3),(60252,3),(60271,3),(60272,3),(60274,3),(60283,3),(60286,3),(60287,3),(60296,3),(60320,3),(60321,3),(60322,3),(60325,3),(60326,3),(60330,3),(60332,3),(60335,3),(60340,3),(60345,3),(60346,3),(60348,3),(60349,3),(60357,3),(60362,3),(60363,3),(60369,3),(60381,3),(60386,3),(60389,3),(60390,3),(60413,3),(60422,3),(60428,3),(60437,3),(60454,3),(60455,3),(60457,3),(60468,3),(60474,3),(60477,3),(60479,3),(60481,3),(60483,3),(60485,3),(60497,3),(60499,3),(60500,3),(60509,3),(60519,3),(60542,3),(60544,3),(60547,3),(60551,3),(60554,3),(60571,3),(60593,3),(60605,3),(60617,3),(60621,3),(60622,3),(60631,3),(60641,3),(60667,3),(60678,3),(60682,3),(60683,3),(60693,3),(60694,3),(60735,3),(60739,3),(60741,3),(60746,3),(60751,3),(60753,3),(60755,3),(60758,3),(60760,3),(60775,3),(60776,3),(60780,3),(60787,3),(60799,3),(60801,3),(60804,3),(60807,3),(60813,3),(60828,3),(60849,3),(60857,3),(60858,3),(60866,3),(60869,3),(60871,3),(60885,3),(60892,3),(60899,3),(60912,3),(60924,3),(60930,3),(60932,3),(60933,3),(60934,3),(60939,3),(60941,3),(60944,3),(60947,3),(60979,3),(60985,3),(60992,3),(60999,3),(61000,3),(61003,3),(61004,3),(61007,3),(61009,3),(61026,3),(61027,3),(61029,3),(61030,3),(61031,3),(61032,3),(61034,3),(61039,3),(61041,3),(61043,3),(61048,3),(61058,3),(61068,3),(61069,3),(61071,3),(61077,3),(61087,3),(61093,3),(61095,3),(61101,3),(61105,3),(61113,3),(61115,3),(61124,3),(61125,3),(61128,3),(61133,3),(61142,3),(61146,3),(61152,3),(61155,3),(61157,3),(61160,3),(61161,3),(61162,3),(61163,3),(61164,3),(61174,3),(61180,3),(61190,3),(61196,3),(61199,3),(61201,3),(61203,3),(61214,3),(61216,3),(61221,3),(61224,3),(61230,3),(61232,3),(61234,3),(61239,3),(61244,3),(61260,3),(61272,3),(61274,3),(61285,3),(61292,3),(61299,3),(61323,3),(61332,3),(61334,3),(61353,3),(61354,3),(61360,3),(61362,3),(61376,3),(61379,3),(61383,3),(61392,3),(61394,3),(61395,3),(61398,3),(61407,3),(61419,3),(61421,3),(61426,3),(61427,3),(61429,3),(61430,3),(61450,3),(61460,3),(61462,3),(61464,3),(61466,3),(61468,3),(61473,3),(61485,3),(61486,3),(61493,3),(61498,3),(61501,3),(61504,3),(61510,3),(61515,3),(61516,3),(61517,3),(61524,3),(61531,3),(61535,3),(61540,3),(61549,3),(61567,3),(61568,3),(61574,3),(61575,3),(61580,3),(61584,3),(61591,3),(61596,3),(61599,3),(61600,3),(61601,3),(61607,3),(61610,3),(61611,3),(61614,3),(61629,3),(61635,3),(61640,3),(61641,3),(61653,3),(61657,3),(61663,3),(61672,3),(61675,3),(61678,3),(61683,3),(61692,3),(61696,3),(61697,3),(61711,3),(61712,3),(61731,3),(61737,3),(61738,3),(61740,3),(61743,3),(61744,3),(61754,3),(61755,3),(61761,3),(61769,3),(61772,3),(61776,3),(61782,3),(61786,3),(61795,3),(61804,3),(61812,3),(61814,3),(61816,3),(61817,3),(61830,3),(61832,3),(61835,3),(61836,3),(61841,3),(61844,3),(61847,3),(61848,3),(61849,3),(61850,3),(61854,3),(61855,3),(61861,3),(61862,3),(61863,3),(61865,3),(61878,3),(61892,3),(61905,3),(61909,3),(61914,3),(61919,3),(61922,3),(61927,3),(61928,3),(61933,3),(61934,3),(61935,3),(61943,3),(61944,3),(61950,3),(61952,3),(61954,3),(61955,3),(61956,3),(61960,3),(61968,3),(61971,3),(61988,3),(61996,3),(62010,3),(62017,3),(62021,3),(62032,3),(62044,3),(62045,3),(62064,3),(62067,3),(62069,3),(62074,3),(62078,3),(62085,3),(62092,3),(62095,3),(62099,3),(62101,3),(62102,3),(62104,3),(62109,3),(62113,3),(62115,3),(62116,3),(62122,3),(62126,3),(62130,3),(62132,3),(62136,3),(62137,3),(62146,3),(62150,3),(62154,3),(62155,3),(62159,3),(62160,3),(62162,3),(62173,3),(62179,3),(62187,3),(62188,3),(62189,3),(62195,3),(62198,3),(62200,3),(62225,3),(62232,3),(62238,3),(62240,3),(62250,3),(62257,3),(62258,3),(62267,3),(62275,3),(62279,3),(62283,3),(62285,3),(62291,3),(62295,3),(62304,3),(62307,3),(62309,3),(62312,3),(62316,3),(62324,3),(62341,3),(62342,3),(62350,3),(62357,3),(62422,3),(62427,3),(62434,3),(62436,3),(62447,3),(62449,3),(62455,3),(62458,3),(62459,3),(62462,3),(62465,3),(62474,3),(62481,3),(62492,3),(62494,3),(62495,3),(62499,3),(62500,3),(62501,3),(62502,3),(62511,3),(62515,3),(62517,3),(62519,3),(62521,3),(62528,3),(62529,3),(62535,3),(62536,3),(62540,3),(62543,3),(62549,3),(62553,3),(62563,3),(62566,3),(62583,3),(62590,3),(62594,3),(62595,3),(62608,3),(62611,3),(62628,3),(62644,3),(62655,3),(62662,3),(62667,3),(62669,3),(62670,3),(62683,3),(62684,3),(62686,3),(62687,3),(62690,3),(62693,3),(62698,3),(62700,3),(62705,3),(62714,3),(62718,3),(62719,3),(62725,3),(62730,3),(62736,3),(62737,3),(62749,3),(62750,3),(62754,3),(62758,3),(62765,3),(62779,3),(62787,3),(62789,3),(62797,3),(62805,3),(62813,3),(62815,3),(62816,3),(62819,3),(62822,3),(62829,3),(62835,3),(62839,3),(62843,3),(62845,3),(62853,3),(62867,3),(62874,3),(62883,3),(62885,3),(62895,3),(62912,3),(62914,3),(62919,3),(62922,3),(62929,3),(62932,3),(62933,3),(62937,3),(62949,3),(62962,3),(62967,3),(62969,3),(62972,3),(62973,3),(63003,3),(63007,3),(63010,3),(63016,3),(63017,3),(63019,3),(63031,3),(63034,3),(63041,3),(63044,3),(63046,3),(63050,3),(63051,3),(63056,3),(63057,3),(63062,3),(63070,3),(63080,3),(63084,3),(63098,3),(63099,3),(63115,3),(63117,3),(63121,3),(63124,3),(63125,3),(63141,3),(63149,3),(63153,3),(63155,3),(63156,3),(63160,3),(63164,3),(63165,3),(63166,3),(63169,3),(63171,3),(63198,3),(63201,3),(63210,3),(63217,3),(63221,3),(63241,3),(63243,3),(63244,3),(63251,3),(63252,3),(63258,3),(63259,3),(63264,3),(63271,3),(63273,3),(63276,3),(63277,3),(63287,3),(63291,3),(63296,3),(63298,3),(63300,3),(63302,3),(63308,3),(63309,3),(63315,3),(63317,3),(63319,3),(63322,3),(63323,3),(63325,3),(63339,3),(63347,3),(63363,3),(63366,3),(63389,3),(63394,3),(63400,3),(63408,3),(63420,3),(63425,3),(63436,3),(63441,3),(63449,3),(63479,3),(63484,3),(63485,3),(63488,3),(63498,3),(63504,3),(63510,3),(63523,3),(63527,3),(63537,3),(63570,3),(63577,3),(63600,3),(63615,3),(63629,3),(63636,3),(63637,3),(63638,3),(63651,3),(63654,3),(63661,3),(63675,3),(63680,3),(63682,3),(63687,3),(63692,3),(63693,3),(63695,3),(63696,3),(63700,3),(63710,3),(63716,3),(63719,3),(63724,3),(63730,3),(63731,3),(63735,3),(63745,3),(63754,3),(63757,3),(63764,3),(63771,3),(63776,3),(63777,3),(63780,3),(63784,3),(63788,3),(63790,3),(63795,3),(63796,3),(63803,3),(63805,3),(63810,3),(63826,3),(63831,3),(63834,3),(63841,3),(63846,3),(63861,3),(63864,3),(63867,3),(63879,3),(63882,3),(63885,3),(63888,3),(63902,3),(63908,3),(63915,3),(63931,3),(63934,3),(63942,3),(63943,3),(63955,3),(63961,3),(63967,3),(63968,3),(63981,3),(63996,3),(63997,3),(63998,3),(64008,3),(64011,3),(64013,3),(64032,3),(64034,3),(64035,3),(64047,3),(64048,3),(64050,3),(64054,3),(64056,3),(64062,3),(64064,3),(64066,3),(64067,3),(64068,3),(64070,3),(64071,3),(64074,3),(64084,3),(64092,3),(64094,3),(64096,3),(64099,3),(64111,3),(64122,3),(64132,3),(64139,3),(64147,3),(64148,3),(64149,3),(64151,3),(64154,3),(64167,3),(64170,3),(64173,3),(64176,3),(64186,3),(64205,3),(64210,3),(64212,3),(64214,3),(64237,3),(64242,3),(64245,3),(64250,3),(64252,3),(64263,3),(64270,3),(64275,3),(64295,3),(64297,3),(64315,3),(64317,3),(64320,3),(64329,3),(64331,3),(64343,3),(64347,3),(64350,3),(64363,3),(64375,3),(64388,3),(64397,3),(64405,3),(64406,3),(64408,3),(64434,3),(64435,3),(64442,3),(64449,3),(64453,3),(64457,3),(64459,3),(64467,3),(64487,3),(64495,3),(64499,3),(64501,3),(64507,3),(64516,3),(64519,3),(64540,3),(64543,3),(64546,3),(64554,3),(64555,3),(64558,3),(64561,3),(64565,3),(64570,3),(64581,3),(64584,3),(64593,3),(64606,3),(64608,3),(64611,3),(64613,3),(64614,3),(64618,3),(64619,3),(64639,3),(64654,3),(64657,3),(64658,3),(64661,3),(64667,3),(64669,3),(64671,3),(64679,3),(64686,3),(64689,3),(64705,3),(64708,3),(64713,3),(64714,3),(64716,3),(64719,3),(64720,3),(64733,3),(64739,3),(64750,3),(64757,3),(64760,3),(64764,3),(64771,3),(64785,3),(64787,3),(64792,3),(64795,3),(64840,3),(64843,3),(64852,3),(64853,3),(64863,3),(64883,3),(64904,3),(64908,3),(64909,3),(64919,3),(64922,3),(64923,3),(64931,3),(64947,3),(64949,3),(64952,3),(64955,3),(64957,3),(64958,3),(64968,3),(64971,3),(64972,3),(64983,3),(64986,3),(64992,3),(65004,3),(65021,3),(65028,3),(65039,3),(65050,3),(65054,3),(65057,3),(65058,3),(65060,3),(65063,3),(65069,3),(65070,3),(65079,3),(65083,3),(65086,3),(65090,3),(65098,3),(65101,3),(65107,3),(65108,3),(65109,3),(65111,3),(65122,3),(65128,3),(65129,3),(65136,3),(65141,3),(65144,3),(65159,3),(65162,3),(65164,3),(65167,3),(65169,3),(65173,3),(65174,3),(65175,3),(65178,3),(65183,3),(65187,3),(65204,3),(65206,3),(65224,3),(65225,3),(65230,3),(65249,3),(65256,3),(65259,3),(65262,3),(65264,3),(65270,3),(65278,3),(65291,3),(65296,3),(65305,3),(65309,3),(65322,3),(65325,3),(65337,3),(65339,3),(65349,3),(65352,3),(65353,3),(65354,3),(65358,3),(65360,3),(65365,3),(65366,3),(65367,3),(65376,3),(65378,3),(65380,3),(65397,3),(65398,3),(65420,3),(65421,3),(65428,3),(65435,3),(65436,3),(65448,3),(65452,3),(65455,3),(65462,3),(65468,3),(65474,3),(65481,3),(65486,3),(65489,3),(65498,3),(65499,3),(65500,3),(65510,3),(65523,3),(65528,3),(65541,3),(65546,3),(65553,3),(65557,3),(65581,3),(65588,3),(65594,3),(65596,3),(65601,3),(65603,3),(65608,3),(65615,3),(65617,3),(65618,3),(65621,3),(65623,3),(65632,3),(65634,3),(65635,3),(65644,3),(65647,3),(65653,3),(65654,3),(65657,3),(65662,3),(65670,3),(65676,3),(65699,3),(65703,3),(65724,3),(65725,3),(65741,3),(65744,3),(65752,3),(65753,3),(65756,3),(65761,3),(65764,3),(65790,3),(65792,3),(65799,3),(65801,3),(65814,3),(65824,3),(65862,3),(65870,3),(65879,3),(65884,3),(65885,3),(65897,3),(65903,3),(65911,3),(65914,3),(65919,3),(65933,3),(65937,3),(65941,3),(65945,3),(65948,3),(65957,3),(65964,3),(65965,3),(65969,3),(65988,3),(65990,3),(65993,3),(66018,3),(66021,3),(66027,3),(66037,3),(66038,3),(66040,3),(66047,3),(66056,3),(66057,3),(66061,3),(66067,3),(66075,3),(66089,3),(66090,3),(66091,3),(66092,3),(66094,3),(66095,3),(66128,3),(66142,3),(66143,3),(66161,3),(66168,3),(66169,3),(66178,3),(66198,3),(66200,3),(66207,3),(66211,3),(66222,3),(66223,3),(66226,3),(66231,3),(66233,3),(66247,3),(66261,3),(66263,3),(66277,3),(66280,3),(66286,3),(66287,3),(66289,3),(66304,3),(66319,3),(66324,3),(66331,3),(66332,3),(66335,3),(66339,3),(66343,3),(66347,3),(66349,3),(66350,3),(66354,3),(66356,3),(66358,3),(66365,3),(66373,3),(66379,3),(66387,3),(66388,3),(66390,3),(66397,3),(66398,3),(66405,3),(66419,3),(66420,3),(66426,3),(66434,3),(66439,3),(66451,3),(66454,3),(66456,3),(66457,3),(66458,3),(66459,3),(66461,3),(66473,3),(66475,3),(66481,3),(66487,3),(66513,3),(66515,3),(66518,3),(66519,3),(66524,3),(66532,3),(66537,3),(66543,3),(66547,3),(66550,3),(66553,3),(66561,3),(66563,3),(66568,3),(66571,3),(66581,3),(66590,3),(66591,3),(66594,3),(66595,3),(66599,3),(66601,3),(66603,3),(66606,3),(66608,3),(66610,3),(66613,3),(66614,3),(66616,3),(66622,3),(66623,3),(66626,3),(66627,3),(66628,3),(66632,3),(66634,3),(66643,3),(66645,3),(66652,3),(66660,3),(66662,3),(66663,3),(66666,3),(66696,3),(66708,3),(66709,3),(66714,3),(66715,3),(66732,3),(66737,3),(66739,3),(66744,3),(66745,3),(66749,3),(66754,3),(66758,3),(66759,3),(66765,3),(66769,3),(66775,3),(66778,3),(66779,3),(66781,3),(66784,3),(66788,3),(66798,3),(66802,3),(66819,3),(66829,3),(66843,3),(66856,3),(66865,3),(66871,3),(66881,3),(66887,3),(66891,3),(66894,3),(66899,3),(66907,3),(66915,3),(66918,3),(66923,3),(66931,3),(66934,3),(66937,3),(66944,3),(66952,3),(66956,3),(66959,3),(66961,3),(66962,3),(66969,3),(66970,3),(66985,3),(66989,3),(66990,3),(66994,3),(67007,3),(67008,3),(67011,3),(67016,3),(67034,3),(67036,3),(67038,3),(67041,3),(67042,3),(67046,3),(67048,3),(67054,3),(67056,3),(67062,3),(67063,3),(67068,3),(67071,3),(67078,3),(67080,3),(67085,3),(67094,3),(67097,3),(67102,3),(67104,3),(67105,3),(67107,3),(67110,3),(67119,3),(67132,3),(67134,3),(67136,3),(67142,3),(67148,3),(67158,3),(67162,3),(67170,3),(67178,3),(67179,3),(67184,3),(67192,3),(67195,3),(67202,3),(67211,3),(67221,3),(67227,3),(67228,3),(67235,3),(67241,3),(67245,3),(67249,3),(67263,3),(67269,3),(67273,3),(67285,3),(67289,3),(67295,3),(67296,3),(67316,3),(67317,3),(67319,3),(67320,3),(67330,3),(67332,3),(67339,3),(67342,3),(67343,3),(67353,3),(67358,3),(67359,3),(67380,3),(67392,3),(67395,3),(67397,3),(67401,3),(67412,3),(67414,3),(67416,3),(67419,3),(67431,3),(67435,3),(67438,3),(67440,3),(67442,3),(67467,3),(67470,3),(67471,3),(67475,3),(67478,3),(67481,3),(67484,3),(67491,3),(67496,3),(67498,3),(67502,3),(67508,3),(67519,3),(67525,3),(67526,3),(67529,3),(67538,3),(67539,3),(67556,3),(67561,3),(67568,3),(67571,3),(67573,3),(67578,3),(67582,3),(67583,3),(67592,3),(67597,3),(67610,3),(67618,3),(67636,3),(67642,3),(67644,3),(67650,3),(67660,3),(67691,3),(67696,3),(67701,3),(67705,3),(67711,3),(67717,3),(67723,3),(67724,3),(67729,3),(67739,3),(67741,3),(67749,3),(67757,3),(67765,3),(67783,3),(67786,3),(67788,3),(67791,3),(67797,3),(67799,3),(67804,3),(67818,3),(67820,3),(67822,3),(67823,3),(67828,3),(67829,3),(67830,3),(67832,3),(67834,3),(67841,3),(67845,3),(67846,3),(67847,3),(67849,3),(67851,3),(67855,3),(67871,3),(67881,3),(67887,3),(67888,3),(67893,3),(67904,3),(67905,3),(67906,3),(67908,3),(67909,3),(67917,3),(67922,3),(67930,3),(67940,3),(67943,3),(67949,3),(67951,3),(67953,3),(67954,3),(67968,3),(67972,3),(67973,3),(67977,3),(67991,3),(68010,3),(68013,3),(68031,3),(68036,3),(68037,3),(68039,3),(68043,3),(68053,3),(68057,3),(68064,3),(68071,3),(68075,3),(68076,3),(68082,3),(68083,3),(68084,3),(68086,3),(68091,3),(68099,3),(68105,3),(68106,3),(68107,3),(68113,3),(68115,3),(68116,3),(68118,3),(68125,3),(68129,3),(68148,3),(68153,3),(68155,3),(68156,3),(68163,3),(68167,3),(68171,3),(68172,3),(68177,3),(68181,3),(68190,3),(68193,3),(68208,3),(68209,3),(68212,3),(68223,3),(68232,3),(68233,3),(68234,3),(68239,3),(68245,3),(68246,3),(68249,3),(68250,3),(68252,3),(68255,3),(68274,3),(68275,3),(68280,3),(68287,3),(68290,3),(68304,3),(68306,3),(68317,3),(68322,3),(68328,3),(68332,3),(68335,3),(68341,3),(68353,3),(68357,3),(68364,3),(68367,3),(68369,3),(68373,3),(68380,3),(68389,3),(68393,3),(68397,3),(68414,3),(68416,3),(68426,3),(68434,3),(68437,3),(68447,3),(68450,3),(68472,3),(68473,3),(68484,3),(68486,3),(68492,3),(68497,3),(68506,3),(68517,3),(68521,3),(68526,3),(68531,3),(68534,3),(68536,3),(68545,3),(68549,3),(68556,3),(68558,3),(68576,3),(68578,3),(68580,3),(68584,3),(68589,3),(68601,3),(68609,3),(68610,3),(68614,3),(68619,3),(68630,3),(68632,3),(68635,3),(68645,3),(68646,3),(68650,3),(68652,3),(68655,3),(68659,3),(68667,3),(68676,3),(68684,3),(68685,3),(68702,3),(68714,3),(68737,3),(68747,3),(68751,3),(68766,3),(68767,3),(68774,3),(68781,3),(68814,3),(68819,3),(68826,3),(68827,3),(68841,3),(68842,3),(68844,3),(68849,3),(68852,3),(68856,3),(68858,3),(68869,3),(68876,3),(68895,3),(68901,3),(68905,3),(68910,3),(68914,3),(68922,3),(68925,3),(68930,3),(68931,3),(68934,3),(68935,3),(68937,3),(68946,3),(68958,3),(68967,3),(68976,3),(68992,3),(68996,3),(69003,3),(69013,3),(69018,3),(69019,3),(69026,3),(69027,3),(69030,3),(69052,3),(69058,3),(69060,3),(69064,3),(69073,3),(69076,3),(69080,3),(69085,3),(69089,3),(69092,3),(69093,3),(69106,3),(69109,3),(69115,3),(69117,3),(69122,3),(69131,3),(69137,3),(69141,3),(69142,3),(69158,3),(69159,3),(69164,3),(69166,3),(69172,3),(69189,3),(69196,3),(69200,3),(69212,3),(69213,3),(69220,3),(69221,3),(69252,3),(69256,3),(69259,3),(69262,3),(69270,3),(69272,3),(69275,3),(69281,3),(69282,3),(69291,3),(69309,3),(69323,3),(69348,3),(69353,3),(69356,3),(69369,3),(69373,3),(69381,3),(69392,3),(69395,3),(69407,3),(69417,3),(69419,3),(69426,3),(69427,3),(69428,3),(69434,3),(69441,3),(69446,3),(69450,3),(69456,3),(69477,3),(69481,3),(69492,3),(69505,3),(69506,3),(69525,3),(69535,3),(69548,3),(69552,3),(69554,3),(69559,3),(69593,3),(69599,3),(69604,3),(69609,3),(69611,3),(69628,3),(69631,3),(69638,3),(69642,3),(69644,3),(69646,3),(69647,3),(69649,3),(69651,3),(69662,3),(69666,3),(69669,3),(69674,3),(69678,3),(69679,3),(69695,3),(69696,3),(69705,3),(69712,3),(69714,3),(69718,3),(69727,3),(69732,3),(69738,3),(69739,3),(69741,3),(69742,3),(69770,3),(69773,3),(69777,3),(69779,3),(69790,3),(69798,3),(69800,3),(69809,3),(69810,3),(69819,3),(69831,3),(69836,3),(69841,3),(69844,3),(69846,3),(69849,3),(69855,3),(69862,3),(69868,3),(69875,3),(69891,3),(69897,3),(69899,3),(69904,3),(69908,3),(69912,3),(69922,3),(69924,3),(69931,3),(69935,3),(69938,3),(69939,3),(69944,3),(69950,3),(69952,3),(69955,3),(69957,3),(69959,3),(69961,3),(69962,3),(69963,3),(69964,3),(69970,3),(69976,3),(69982,3),(69988,3),(69995,3),(70014,3),(70017,3),(70027,3),(70031,3),(70034,3),(70035,3),(70037,3),(70040,3),(70046,3),(70057,3),(70063,3),(70064,3),(70065,3),(70072,3),(70078,3),(70080,3),(70091,3),(70099,3),(70104,3),(70114,3),(70130,3),(70132,3),(70134,3),(70137,3),(70145,3),(70149,3),(70152,3),(70155,3),(70163,3),(70169,3),(70171,3),(70178,3),(70180,3),(70187,3),(70191,3),(70196,3),(70197,3),(70201,3),(70209,3),(70223,3),(70224,3),(70228,3),(70231,3),(70240,3),(70243,3),(70248,3),(70259,3),(70262,3),(70267,3),(70276,3),(70278,3),(70288,3),(70298,3),(70309,3),(70312,3),(70319,3),(70324,3),(70330,3),(70331,3),(70337,3),(70342,3),(70346,3),(70354,3),(70358,3),(70364,3),(70367,3),(70371,3),(70372,3),(70380,3),(70391,3),(70394,3),(70398,3),(70413,3),(70419,3),(70431,3),(70432,3),(70436,3),(70446,3),(70455,3),(70459,3),(70480,3),(70482,3),(70486,3),(70492,3),(70493,3),(70506,3),(70518,3),(70520,3),(70536,3),(70537,3),(70543,3),(70548,3),(70560,3),(70562,3),(70566,3),(70569,3),(70577,3),(70579,3),(70582,3),(70589,3),(70590,3),(70609,3),(70611,3),(70614,3),(70615,3),(70618,3),(70630,3),(70631,3),(70638,3),(70639,3),(70646,3),(70651,3),(70661,3),(70671,3),(70673,3),(70678,3),(70681,3),(70683,3),(70693,3),(70696,3),(70697,3),(70701,3),(70707,3),(70714,3),(70721,3),(70723,3),(70730,3),(70731,3),(70738,3),(70743,3),(70747,3),(70750,3),(70760,3),(70773,3),(70785,3),(70786,3),(70797,3),(70799,3),(70800,3),(70805,3),(70807,3),(70814,3),(70815,3),(70819,3),(70820,3),(70829,3),(70835,3),(70837,3),(70875,3),(70888,3),(70893,3),(70896,3),(70899,3),(70900,3),(70903,3),(70908,3),(70915,3),(70917,3),(70921,3),(70923,3),(70930,3),(70932,3),(70935,3),(70937,3),(70938,3),(70942,3),(70947,3),(70951,3),(70952,3),(70954,3),(70971,3),(70974,3),(70977,3),(70992,3),(70993,3),(70996,3),(70998,3),(71016,3),(71022,3),(71027,3),(71031,3),(71032,3),(71038,3),(71045,3),(71049,3),(71051,3),(71055,3),(71059,3),(71072,3),(71076,3),(71086,3),(71088,3),(71089,3),(71096,3),(71098,3),(71118,3),(71119,3),(71126,3),(71128,3),(71129,3),(71150,3),(71163,3),(71165,3),(71168,3),(71169,3),(71172,3),(71175,3),(71181,3),(71200,3),(71201,3),(71206,3),(71207,3),(71208,3),(71212,3),(71216,3),(71218,3),(71229,3),(71237,3),(71245,3),(71254,3),(71258,3),(71259,3),(71262,3),(71264,3),(71265,3),(71269,3),(71292,3),(71300,3),(71311,3),(71312,3),(71323,3),(71324,3),(71329,3),(71338,3),(71352,3),(71354,3),(71392,3),(71394,3),(71398,3),(71399,3),(71402,3),(71425,3),(71428,3),(71429,3),(71434,3),(71438,3),(71449,3),(71460,3),(71464,3),(71465,3),(71468,3),(71474,3),(71509,3),(71511,3),(71513,3),(71518,3),(71524,3),(71528,3),(71531,3),(71541,3),(71544,3),(71547,3),(71552,3),(71554,3),(71563,3),(71567,3),(71569,3),(71570,3),(71571,3),(71572,3),(71580,3),(71581,3),(71586,3),(71593,3),(71597,3),(71598,3),(71617,3),(71618,3),(71621,3),(71628,3),(71630,3),(71639,3),(71642,3),(71651,3),(71653,3),(71654,3),(71655,3),(71682,3),(71693,3),(71702,3),(71713,3),(71715,3),(71716,3),(71729,3),(71737,3),(71753,3),(71757,3),(71765,3),(71771,3),(71775,3),(71778,3),(71780,3),(71781,3),(71782,3),(71797,3),(71801,3),(71806,3),(71810,3),(71816,3),(71826,3),(71831,3),(71836,3),(71837,3),(71838,3),(71845,3),(71854,3),(71856,3),(71863,3),(71879,3),(71891,3),(71902,3),(71905,3),(71907,3),(71925,3),(71930,3),(71933,3),(71935,3),(71936,3),(71944,3),(71946,3),(71947,3),(71948,3),(71950,3),(71952,3),(71954,3),(71956,3),(71957,3),(71964,3),(71965,3),(71967,3),(71968,3),(71971,3),(71973,3),(71979,3),(71987,3),(71990,3),(72002,3),(72015,3),(72017,3),(72041,3),(72042,3),(72046,3),(72050,3),(72052,3),(72057,3),(72065,3),(72076,3),(72080,3),(72097,3),(72098,3),(72107,3),(72116,3),(72127,3),(72138,3),(72143,3),(72150,3),(72169,3),(72171,3),(72178,3),(72183,3),(72184,3),(72199,3),(72202,3),(72203,3),(72206,3),(72210,3),(72211,3),(72215,3),(72217,3),(72227,3),(72231,3),(72234,3),(72238,3),(72239,3),(72244,3),(72245,3),(72248,3),(72253,3),(72255,3),(72260,3),(72261,3),(72263,3),(72265,3),(72275,3),(72277,3),(72279,3),(72284,3),(72286,3),(72287,3),(72304,3),(72317,3),(72323,3),(72331,3),(72336,3),(72338,3),(72339,3),(72340,3),(72345,3),(72349,3),(72354,3),(72363,3),(72369,3),(72375,3),(72377,3),(72384,3),(72392,3),(72394,3),(72401,3),(72409,3),(72410,3),(72411,3),(72413,3),(72418,3),(72420,3),(72431,3),(72437,3),(72442,3),(72444,3),(72449,3),(72461,3),(72463,3),(72470,3),(72473,3),(72475,3),(72476,3),(72480,3),(72483,3),(72485,3),(72486,3),(72487,3),(72489,3),(72490,3),(72493,3),(72495,3),(72505,3),(72537,3),(72542,3),(72549,3),(72557,3),(72560,3),(72563,3),(72564,3),(72578,3),(72581,3),(72583,3),(72584,3),(72586,3),(72587,3),(72591,3),(72595,3),(72596,3),(72604,3),(72617,3),(72627,3),(72644,3),(72646,3),(72660,3),(72661,3),(72662,3),(72666,3),(72669,3),(72670,3),(72675,3),(72677,3),(72680,3),(72691,3),(72698,3),(72699,3),(72709,3),(72711,3),(72712,3),(72717,3),(72725,3),(72727,3),(72729,3),(72732,3),(72739,3),(72740,3),(72741,3),(72747,3),(72751,3),(72776,3),(72778,3),(72782,3),(72784,3),(72801,3),(72814,3),(72822,3),(72832,3),(72841,3),(72845,3),(72847,3),(72848,3),(72854,3),(72856,3),(72860,3),(72863,3),(72866,3),(72872,3),(72873,3),(72876,3),(72877,3),(72890,3),(72892,3),(72904,3),(72909,3),(72916,3),(72919,3),(72930,3),(72932,3),(72949,3),(72958,3),(72966,3),(72980,3),(72981,3),(72987,3),(72993,3),(72995,3),(73014,3),(73025,3),(73026,3),(73036,3),(73038,3),(73042,3),(73046,3),(73047,3),(73053,3),(73055,3),(73056,3),(73059,3),(73065,3),(73066,3),(73077,3),(73090,3),(73104,3),(73113,3),(73115,3),(73121,3),(73122,3),(73126,3),(73129,3),(73130,3),(73133,3),(73134,3),(73136,3),(73141,3),(73158,3),(73164,3),(73169,3),(73172,3),(73181,3),(73182,3),(73188,3),(73192,3),(73198,3),(73200,3),(73204,3),(73210,3),(73216,3),(73226,3),(73228,3),(73230,3),(73234,3),(73236,3),(73238,3),(73247,3),(73253,3),(73254,3),(73258,3),(73262,3),(73265,3),(73280,3),(73284,3),(73292,3),(73293,3),(73295,3),(73297,3),(73298,3),(73304,3),(73306,3),(73317,3),(73325,3),(73327,3),(73340,3),(73358,3),(73362,3),(73368,3),(73370,3),(73377,3),(73382,3),(73386,3),(73390,3),(73393,3),(73404,3),(73412,3),(73427,3),(73431,3),(73446,3),(73447,3),(73449,3),(73458,3),(73460,3),(73461,3),(73463,3),(73475,3),(73476,3),(73478,3),(73488,3),(73501,3),(73505,3),(73506,3),(73508,3),(73512,3),(73521,3),(73522,3),(73526,3),(73540,3),(73545,3),(73558,3),(73559,3),(73569,3),(73573,3),(73576,3),(73577,3),(73591,3),(73598,3),(73611,3),(73612,3),(73614,3),(73628,3),(73637,3),(73638,3),(73660,3),(73661,3),(73665,3),(73666,3),(73667,3),(73670,3),(73677,3),(73679,3),(73683,3),(73686,3),(73691,3),(73692,3),(73697,3),(73707,3),(73711,3),(73725,3),(73734,3),(73736,3),(73737,3),(73738,3),(73740,3),(73750,3),(73752,3),(73761,3),(73762,3),(73766,3),(73768,3),(73771,3),(73778,3),(73779,3),(73785,3),(73789,3),(73798,3),(73804,3),(73806,3),(73810,3),(73816,3),(73819,3),(73820,3),(73825,3),(73834,3),(73842,3),(73849,3),(73859,3),(73878,3),(73880,3),(73894,3),(73895,3),(73905,3),(73909,3),(73910,3),(73917,3),(73932,3),(73936,3),(73940,3),(73941,3),(73954,3),(73960,3),(73967,3),(73971,3),(73972,3),(73979,3),(73992,3),(73995,3),(73999,3),(74012,3),(74013,3),(74018,3),(74032,3),(74035,3),(74040,3),(74042,3),(74045,3),(74047,3),(74049,3),(74050,3),(74064,3),(74073,3),(74074,3),(74084,3),(74089,3),(74108,3),(74121,3),(74122,3),(74139,3),(74141,3),(74142,3),(74145,3),(74153,3),(74158,3),(74161,3),(74167,3),(74172,3),(74176,3),(74191,3),(74192,3),(74194,3),(74196,3),(74202,3),(74204,3),(74214,3),(74215,3),(74220,3),(74225,3),(74227,3),(74230,3),(74232,3),(74235,3),(74241,3),(74242,3),(74250,3),(74257,3),(74260,3),(74263,3),(74275,3),(74280,3),(74287,3),(74294,3),(74308,3),(74311,3),(74315,3),(74319,3),(74322,3),(74324,3),(74337,3),(74339,3),(74340,3),(74347,3),(74351,3),(74354,3),(74365,3),(74372,3),(74373,3),(74374,3),(74381,3),(74389,3),(74392,3),(74395,3),(74398,3),(74401,3),(74404,3),(74406,3),(74407,3),(74410,3),(74411,3),(74417,3),(74430,3),(74439,3),(74453,3),(74458,3),(74459,3),(74471,3),(74473,3),(74477,3),(74489,3),(74494,3),(74498,3),(74507,3),(74508,3),(74514,3),(74523,3),(74524,3),(74535,3),(74536,3),(74541,3),(74542,3),(74543,3),(74545,3),(74546,3),(74548,3),(74553,3),(74559,3),(74561,3),(74566,3),(74588,3),(74589,3),(74613,3),(74621,3),(74634,3),(74642,3),(74647,3),(74648,3),(74652,3),(74668,3),(74671,3),(74677,3),(74678,3),(74680,3),(74699,3),(74700,3),(74713,3),(74716,3),(74717,3),(74721,3),(74722,3),(74728,3),(74734,3),(74736,3),(74744,3),(74746,3),(74758,3),(74759,3),(74761,3),(74774,3),(74775,3),(74778,3),(74788,3),(74802,3),(74803,3),(74804,3),(74807,3),(74809,3),(74815,3),(74817,3),(74819,3),(74824,3),(74827,3),(74829,3),(74835,3),(74844,3),(74848,3),(74861,3),(74873,3),(74880,3),(74884,3),(74889,3),(74893,3),(74894,3),(74895,3),(74898,3),(74899,3),(74903,3),(74908,3),(74912,3),(74914,3),(74916,3),(74925,3),(74929,3),(74944,3),(74949,3),(74957,3),(74958,3),(74964,3),(74969,3),(74971,3),(74980,3),(74984,3),(74999,3),(75003,3),(75013,3),(75018,3),(75025,3),(75034,3),(75065,3),(75066,3),(75068,3),(75075,3),(75079,3),(75082,3),(75083,3),(75087,3),(75090,3),(75097,3),(75100,3),(75102,3),(75114,3),(75121,3),(75122,3),(75129,3),(75139,3),(75141,3),(75144,3),(75150,3),(75155,3),(75157,3),(75166,3),(75173,3),(75174,3),(75177,3),(75190,3),(75194,3),(75195,3),(75196,3),(75197,3),(75200,3),(75218,3),(75223,3),(75227,3),(75232,3),(75238,3),(75243,3),(75251,3),(75261,3),(75263,3),(75268,3),(75272,3),(75273,3),(75274,3),(75285,3),(75286,3),(75289,3),(75292,3),(75306,3),(75309,3),(75317,3),(75319,3),(75327,3),(75330,3),(75331,3),(75332,3),(75338,3),(75352,3),(75361,3),(75362,3),(75374,3),(75380,3),(75384,3),(75385,3),(75386,3),(75387,3),(75388,3),(75394,3),(75398,3),(75405,3),(75413,3),(75420,3),(75427,3),(75430,3),(75433,3),(75439,3),(75450,3),(75452,3),(75475,3),(75486,3),(75488,3),(75513,3),(75522,3),(75525,3),(75526,3),(75545,3),(75554,3),(75559,3),(75575,3),(75578,3),(75583,3),(75584,3),(75585,3),(75587,3),(75593,3),(75595,3),(75599,3),(75601,3),(75607,3),(75622,3),(75623,3),(75624,3),(75628,3),(75633,3),(75636,3),(75640,3),(75642,3),(75650,3),(75651,3),(75678,3),(75694,3),(75696,3),(75702,3),(75705,3),(75714,3),(75715,3),(75719,3),(75732,3),(75734,3),(75738,3),(75744,3),(75748,3),(75756,3),(75767,3),(75775,3),(75776,3),(75784,3),(75786,3),(75794,3),(75797,3),(75800,3),(75814,3),(75830,3),(75834,3),(75843,3),(75849,3),(75851,3),(75852,3),(75854,3),(75861,3),(75862,3),(75871,3),(75872,3),(75873,3),(75881,3),(75895,3),(75905,3),(75907,3),(75910,3),(75911,3),(75919,3),(75921,3),(75922,3),(75923,3),(75924,3),(75927,3),(75931,3),(75932,3),(75934,3),(75938,3),(75939,3),(75944,3),(75953,3),(75954,3),(75963,3),(75969,3),(75971,3),(75975,3),(75976,3),(75978,3),(75985,3),(76010,3),(76015,3),(76021,3),(76023,3),(76028,3),(76032,3),(76034,3),(76037,3),(76040,3),(76051,3),(76059,3),(76070,3),(76073,3),(76088,3),(76103,3),(76104,3),(76123,3),(76126,3),(76129,3),(76130,3),(76141,3),(76146,3),(76149,3),(76151,3),(76153,3),(76154,3),(76167,3),(76171,3),(76181,3),(76189,3),(76192,3),(76194,3),(76195,3),(76200,3),(76210,3),(76219,3),(76223,3),(76225,3),(76233,3),(76247,3),(76250,3),(76254,3),(76257,3),(76261,3),(76271,3),(76272,3),(76282,3),(76287,3),(76288,3),(76289,3),(76292,3),(76301,3),(76309,3),(76314,3),(76341,3),(76343,3),(76344,3),(76347,3),(76351,3),(76353,3),(76355,3),(76358,3),(76360,3),(76362,3),(76373,3),(76379,3),(76381,3),(76383,3),(76393,3),(76403,3),(76405,3),(76406,3),(76413,3),(76434,3),(76443,3),(76447,3),(76451,3),(76453,3),(76454,3),(76471,3),(76475,3),(76476,3),(76477,3),(76478,3),(76482,3),(76485,3),(76492,3),(76504,3),(76507,3),(76511,3),(76515,3),(76519,3),(76520,3),(76525,3),(76526,3),(76545,3),(76558,3),(76559,3),(76568,3),(76572,3),(76576,3),(76582,3),(76584,3),(76587,3),(76588,3),(76589,3),(76599,3),(76600,3),(76602,3),(76603,3),(76605,3),(76613,3),(76619,3),(76620,3),(76626,3),(76632,3),(76638,3),(76640,3),(76641,3),(76642,3),(76644,3),(76667,3),(76675,3),(76681,3),(76686,3),(76688,3),(76697,3),(76701,3),(76703,3),(76709,3),(76710,3),(76716,3),(76720,3),(76721,3),(76733,3),(76734,3),(76744,3),(76746,3),(76757,3),(76758,3),(76759,3),(76763,3),(76765,3),(76772,3),(76785,3),(76787,3),(76797,3),(76798,3),(76809,3),(76812,3),(76815,3),(76818,3),(76821,3),(76822,3),(76829,3),(76846,3),(76850,3),(76854,3),(76856,3),(76861,3),(76870,3),(76871,3),(76880,3),(76888,3),(76898,3),(76899,3),(76906,3),(76930,3),(76931,3),(76940,3),(76942,3),(76951,3),(76953,3),(76958,3),(76959,3),(76976,3),(76978,3),(76981,3),(76987,3),(76990,3),(76992,3),(76998,3),(77000,3),(77001,3),(77007,3),(77014,3),(77016,3),(77024,3),(77026,3),(77028,3),(77033,3),(77037,3),(77038,3),(77048,3),(77054,3),(77059,3),(77061,3),(77062,3),(77075,3),(77076,3),(77077,3),(77085,3),(77086,3),(77096,3),(77099,3),(77107,3),(77110,3),(77126,3),(77133,3),(77149,3),(77150,3),(77157,3),(77161,3),(77164,3),(77166,3),(77180,3),(77192,3),(77200,3),(77201,3),(77206,3),(77217,3),(77220,3),(77223,3),(77230,3),(77235,3),(77241,3),(77244,3),(77247,3),(77254,3),(77256,3),(77270,3),(77281,3),(77288,3),(77289,3),(77294,3),(77295,3),(77299,3),(77301,3),(77325,3),(77326,3),(77338,3),(77341,3),(77344,3),(77355,3),(77361,3),(77365,3),(77367,3),(77382,3),(77386,3),(77387,3),(77390,3),(77391,3),(77394,3),(77403,3),(77413,3),(77428,3),(77431,3),(77433,3),(77434,3),(77435,3),(77436,3),(77438,3),(77442,3),(77449,3),(77450,3),(77465,3),(77466,3),(77507,3),(77516,3),(77517,3),(77521,3),(77522,3),(77542,3),(77549,3),(77550,3),(77551,3),(77552,3),(77553,3),(77564,3),(77565,3),(77567,3),(77569,3),(77571,3),(77578,3),(77585,3),(77593,3),(77596,3),(77601,3),(77603,3),(77618,3),(77621,3),(77628,3),(77629,3),(77631,3),(77633,3),(77641,3),(77646,3),(77647,3),(77649,3),(77655,3),(77656,3),(77658,3),(77660,3),(77664,3),(77667,3),(77670,3),(77671,3),(77672,3),(77677,3),(77694,3),(77696,3),(77700,3),(77715,3),(77723,3),(77727,3),(77731,3),(77733,3),(77742,3),(77744,3),(77750,3),(77754,3),(77767,3),(77769,3),(77771,3),(77779,3),(77783,3),(77784,3),(77785,3),(77789,3),(77791,3),(77802,3),(77806,3),(77819,3),(77827,3),(77835,3),(77842,3),(77854,3),(77855,3),(77860,3),(77864,3),(77879,3),(77881,3),(77883,3),(77891,3),(77901,3),(77904,3),(77905,3),(77918,3),(77928,3),(77942,3),(77946,3),(77948,3),(77959,3),(77960,3),(77965,3),(77968,3),(77969,3),(77972,3),(77973,3),(77984,3),(77995,3),(77997,3),(77999,3),(78002,3),(78003,3),(78005,3),(78007,3),(78008,3),(78013,3),(78021,3),(78033,3),(78034,3),(78036,3),(78040,3),(78048,3),(78055,3),(78056,3),(78058,3),(78071,3),(78074,3),(78081,3),(78084,3),(78089,3),(78096,3),(78103,3),(78105,3),(78107,3),(78112,3),(78119,3),(78120,3),(78127,3),(78131,3),(78139,3),(78144,3),(78145,3),(78146,3),(78166,3),(78171,3),(78174,3),(78176,3),(78179,3),(78180,3),(78185,3),(78192,3),(78195,3),(78197,3),(78223,3),(78234,3),(78239,3),(78241,3),(78248,3),(78257,3),(78261,3),(78264,3),(78267,3),(78269,3),(78270,3),(78273,3),(78277,3),(78283,3),(78284,3),(78291,3),(78292,3),(78297,3),(78298,3),(78299,3),(78300,3),(78302,3),(78305,3),(78336,3),(78341,3),(78343,3),(78345,3),(78351,3),(78363,3),(78365,3),(78366,3),(78369,3),(78371,3),(78374,3),(78378,3),(78390,3),(78393,3),(78394,3),(78400,3),(78401,3),(78409,3),(78421,3),(78422,3),(78429,3),(78453,3),(78474,3),(78477,3),(78478,3),(78485,3),(78493,3),(78497,3),(78513,3),(78523,3),(78525,3),(78533,3),(78534,3),(78556,3),(78562,3),(78564,3),(78574,3),(78575,3),(78576,3),(78577,3),(78585,3),(78588,3),(78590,3),(78598,3),(78599,3),(78607,3),(78613,3),(78623,3),(78634,3),(78644,3),(78652,3),(78654,3),(78662,3),(78672,3),(78692,3),(78703,3),(78709,3),(78752,3),(78755,3),(78759,3),(78766,3),(78768,3),(78771,3),(78772,3),(78774,3),(78778,3),(78781,3),(78783,3),(78785,3),(78786,3),(78795,3),(78798,3),(78807,3),(78810,3),(78823,3),(78842,3),(78848,3),(78850,3),(78862,3),(78883,3),(78889,3),(78891,3),(78893,3),(78894,3),(78896,3),(78898,3),(78901,3),(78902,3),(78909,3),(78913,3),(78917,3),(78918,3),(78928,3),(78939,3),(78946,3),(78947,3),(78957,3),(78964,3),(78978,3),(78988,3),(78993,3),(78997,3),(79004,3),(79008,3),(79014,3),(79030,3),(79036,3),(79044,3),(79051,3),(79064,3),(79065,3),(79071,3),(79072,3),(79078,3),(79079,3),(79093,3),(79102,3),(79106,3),(79111,3),(79113,3),(79116,3),(79133,3),(79135,3),(79141,3),(79144,3),(79149,3),(79152,3),(79155,3),(79160,3),(79175,3),(79191,3),(79192,3),(79200,3),(79203,3),(79209,3),(79211,3),(79218,3),(79222,3),(79228,3),(79231,3),(79232,3),(79237,3),(79243,3),(79245,3),(79246,3),(79249,3),(79251,3),(79258,3),(79283,3),(79284,3),(79285,3),(79287,3),(79293,3),(79298,3),(79303,3),(79304,3),(79305,3),(79307,3),(79310,3),(79311,3),(79313,3),(79319,3),(79327,3),(79332,3),(79337,3),(79338,3),(79339,3),(79341,3),(79356,3),(79364,3),(79365,3),(79367,3),(79376,3),(79379,3),(79381,3),(79382,3),(79385,3),(79391,3),(79410,3),(79415,3),(79448,3),(79453,3),(79456,3),(79457,3),(79465,3),(79475,3),(79478,3),(79482,3),(79487,3),(79490,3),(79495,3),(79496,3),(79507,3),(79526,3),(79536,3),(79537,3),(79543,3),(79559,3),(79563,3),(79576,3),(79590,3),(79598,3),(79600,3),(79604,3),(79609,3),(79631,3),(79640,3),(79644,3),(79672,3),(79678,3),(79679,3),(79692,3),(79697,3),(79700,3),(79701,3),(79708,3),(79713,3),(79716,3),(79722,3),(79723,3),(79727,3),(79735,3),(79736,3),(79738,3),(79741,3),(79753,3),(79755,3),(79764,3),(79778,3),(79783,3),(79788,3),(79797,3),(79814,3),(79816,3),(79817,3),(79827,3),(79846,3),(79851,3),(79854,3),(79858,3),(79870,3),(79894,3),(79897,3),(79905,3),(79908,3),(79911,3),(79912,3),(79921,3),(79935,3),(79944,3),(79947,3),(79949,3),(79950,3),(79952,3),(79954,3),(79956,3),(79957,3),(79970,3),(79972,3),(79978,3),(79983,3),(79988,3),(80008,3),(80010,3),(80012,3),(80019,3),(80020,3),(80028,3),(80035,3),(80043,3),(80056,3),(80060,3),(80064,3),(80065,3),(80066,3),(80068,3),(80073,3),(80077,3),(80083,3),(80084,3),(80086,3),(80089,3),(80106,3),(80108,3),(80109,3),(80113,3),(80125,3),(80134,3),(80135,3),(80137,3),(80146,3),(80147,3),(80149,3),(80151,3),(80152,3),(80168,3),(80178,3),(80179,3),(80186,3),(80193,3),(80199,3),(80209,3),(80210,3),(80215,3),(80218,3),(80219,3),(80223,3),(80229,3),(80246,3),(80248,3),(80252,3),(80257,3),(80258,3),(80265,3),(80267,3),(80269,3),(80279,3),(80288,3),(80289,3),(80290,3),(80293,3),(80298,3),(80301,3),(80306,3),(80307,3),(80313,3),(80317,3),(80319,3),(80321,3),(80322,3),(80327,3),(80342,3),(80349,3),(80356,3),(80362,3),(80363,3),(80365,3),(80366,3),(80370,3),(80378,3),(80381,3),(80393,3),(80403,3),(80407,3),(80408,3),(80414,3),(80422,3),(80426,3),(80432,3),(80441,3),(80444,3),(80445,3),(80447,3),(80451,3),(80468,3),(80469,3),(80478,3),(80480,3),(80481,3),(80482,3),(80484,3),(80485,3),(80492,3),(80496,3),(80504,3),(80508,3),(80513,3),(80518,3),(80519,3),(80530,3),(80532,3),(80539,3),(80540,3),(80551,3),(80558,3),(80570,3),(80572,3),(80581,3),(80585,3),(80588,3),(80589,3),(80590,3),(80594,3),(80599,3),(80601,3),(80604,3),(80609,3),(80621,3),(80631,3),(80632,3),(80636,3),(80645,3),(80646,3),(80648,3),(80650,3),(80654,3),(80659,3),(80666,3),(80668,3),(80681,3),(80687,3),(80689,3),(80702,3),(80706,3),(80707,3),(80720,3),(80721,3),(80744,3),(80752,3),(80753,3),(80760,3),(80766,3),(80773,3),(80776,3),(80780,3),(80784,3),(80785,3),(80787,3),(80799,3),(80803,3),(80818,3),(80831,3),(80838,3),(80853,3),(80855,3),(80879,3),(80893,3),(80906,3),(80907,3),(80919,3),(80939,3),(80945,3),(80951,3),(80953,3),(80954,3),(80956,3),(80957,3),(80961,3),(80962,3),(80964,3),(80968,3),(80970,3),(80972,3),(80987,3),(80993,3),(80994,3),(81000,3),(81003,3),(81014,3),(81020,3),(81024,3),(81058,3),(81063,3),(81064,3),(81074,3),(81090,3),(81092,3),(81094,3),(81098,3),(81102,3),(81113,3),(81127,3),(81132,3),(81136,3),(81146,3),(81147,3),(81149,3),(81150,3),(81151,3),(81152,3),(81161,3),(81170,3),(81171,3),(81175,3),(81177,3),(81181,3),(81183,3),(81190,3),(81192,3),(81199,3),(81220,3),(81225,3),(81230,3),(81232,3),(81236,3),(81241,3),(81251,3),(81262,3),(81266,3),(81281,3),(81286,3),(81288,3),(81289,3),(81299,3),(81303,3),(81317,3),(81322,3),(81341,3),(81347,3),(81351,3),(81354,3),(81358,3),(81359,3),(81368,3),(81372,3),(81374,3),(81375,3),(81376,3),(81384,3),(81387,3),(81406,3),(81408,3),(81427,3),(81439,3),(81442,3),(81450,3),(81455,3),(81456,3),(81463,3),(81466,3),(81467,3),(81471,3),(81473,3),(81479,3),(81485,3),(81486,3),(81502,3),(81509,3),(81510,3),(81511,3),(81539,3),(81542,3),(81553,3),(81571,3),(81576,3),(81610,3),(81611,3),(81613,3),(81620,3),(81627,3),(81630,3),(81631,3),(81636,3),(81639,3),(81640,3),(81645,3),(81650,3),(81659,3),(81665,3),(81666,3),(81671,3),(81673,3),(81681,3),(81692,3),(81702,3),(81709,3),(81717,3),(81722,3),(81728,3),(81729,3),(81731,3),(81732,3),(81734,3),(81737,3),(81738,3),(81739,3),(81746,3),(81747,3),(81750,3),(81752,3),(81755,3),(81762,3),(81770,3),(81775,3),(81777,3),(81780,3),(81796,3),(81797,3),(81800,3),(81808,3),(81825,3),(81827,3),(81830,3),(81834,3),(81835,3),(81841,3),(81842,3),(81844,3),(81857,3),(81862,3),(81863,3),(81870,3),(81872,3),(81879,3),(81889,3),(81897,3),(81899,3),(81901,3),(81919,3),(81921,3),(81927,3),(81929,3),(81946,3),(81950,3),(81955,3),(81958,3),(81973,3),(81976,3),(81982,3),(81991,3),(81992,3),(81995,3),(82000,3),(82002,3),(82005,3),(82010,3),(82011,3),(82015,3),(82019,3),(82020,3),(82025,3),(82031,3),(82044,3),(82052,3),(82063,3),(82066,3),(82070,3),(82077,3),(82078,3),(82084,3),(82090,3),(82096,3),(82103,3),(82106,3),(82107,3),(82108,3),(82110,3),(82114,3),(82115,3),(82119,3),(82135,3),(82138,3),(82147,3),(82149,3),(82151,3),(82152,3),(82168,3),(82174,3),(82182,3),(82199,3),(82200,3),(82204,3),(82205,3),(82216,3),(82221,3),(82230,3),(82239,3),(82240,3),(82249,3),(82257,3),(82293,3),(82316,3),(82326,3),(82347,3),(82350,3),(82352,3),(82357,3),(82358,3),(82360,3),(82362,3),(82369,3),(82379,3),(82390,3),(82391,3),(82393,3),(82402,3),(82403,3),(82421,3),(82430,3),(82440,3),(82469,3),(82471,3),(82473,3),(82484,3),(82487,3),(82492,3),(82498,3),(82499,3),(82505,3),(82514,3),(82517,3),(82520,3),(82525,3),(82527,3),(82528,3),(82531,3),(82533,3),(82535,3),(82543,3),(82544,3),(82546,3),(82554,3),(82555,3),(82572,3),(82587,3),(82595,3),(82596,3),(82600,3),(82606,3),(82611,3),(82618,3),(82622,3),(82624,3),(82626,3),(82633,3),(82639,3),(82640,3),(82642,3),(82648,3),(82652,3),(82654,3),(82659,3),(82668,3),(82671,3),(82687,3),(82693,3),(82697,3),(82699,3),(82703,3),(82719,3),(82721,3),(82723,3),(82728,3),(82753,3),(82755,3),(82766,3),(82771,3),(82774,3),(82775,3),(82776,3),(82778,3),(82785,3),(82789,3),(82792,3),(82797,3),(82810,3),(82816,3),(82820,3),(82830,3),(82833,3),(82836,3),(82849,3),(82850,3),(82855,3),(82858,3),(82863,3),(82865,3),(82876,3),(82880,3),(82882,3),(82894,3),(82909,3),(82910,3),(82919,3),(82921,3),(82924,3),(82925,3),(82926,3),(82928,3),(82935,3),(82938,3),(82950,3),(82953,3),(82971,3),(82986,3),(82989,3),(82997,3),(83004,3),(83007,3),(83012,3),(83013,3),(83020,3),(83031,3),(83033,3),(83034,3),(83037,3),(83038,3),(83042,3),(83050,3),(83052,3),(83071,3),(83072,3),(83076,3),(83079,3),(83082,3),(83085,3),(83095,3),(83104,3),(83105,3),(83126,3),(83127,3),(83129,3),(83134,3),(83148,3),(83149,3),(83155,3),(83158,3),(83160,3),(83163,3),(83164,3),(83178,3),(83187,3),(83193,3),(83194,3),(83199,3),(83203,3),(83205,3),(83207,3),(83219,3),(83232,3),(83236,3),(83247,3),(83250,3),(83262,3),(83265,3),(83266,3),(83267,3),(83270,3),(83283,3),(83286,3),(83291,3),(83292,3),(83300,3),(83304,3),(83305,3),(83323,3),(83329,3),(83332,3),(83343,3),(83347,3),(83358,3),(83376,3),(83381,3),(83393,3),(83401,3),(83407,3),(83416,3),(83418,3),(83419,3),(83427,3),(83448,3),(83449,3),(83465,3),(83469,3),(83470,3),(83476,3),(83482,3),(83488,3),(83502,3),(83503,3),(83509,3),(83514,3),(83519,3),(83525,3),(83527,3),(83534,3),(83545,3),(83550,3),(83564,3),(83567,3),(83576,3),(83577,3),(83581,3),(83607,3),(83614,3),(83621,3),(83622,3),(83631,3),(83641,3),(83642,3),(83643,3),(83644,3),(83668,3),(83669,3),(83675,3),(83682,3),(83685,3),(83698,3),(83703,3),(83709,3),(83720,3),(83725,3),(83738,3),(83752,3),(83754,3),(83756,3),(83761,3),(83765,3),(83768,3),(83776,3),(83777,3),(83779,3),(83780,3),(83801,3),(83807,3),(83817,3),(83821,3),(83824,3),(83832,3),(83833,3),(83840,3),(83860,3),(83861,3),(83864,3),(83868,3),(83873,3),(83878,3),(83881,3),(83884,3),(83889,3),(83896,3),(83902,3),(83903,3),(83905,3),(83918,3),(83922,3),(83927,3),(83932,3),(83936,3),(83943,3),(83947,3),(83954,3),(83955,3),(83960,3),(83969,3),(83973,3),(83976,3),(83979,3),(83986,3),(83990,3),(84001,3),(84002,3),(84013,3),(84020,3),(84034,3),(84042,3),(84046,3),(84048,3),(84055,3),(84056,3),(84064,3),(84065,3),(84070,3),(84071,3),(84078,3),(84081,3),(84096,3),(84097,3),(84108,3),(84110,3),(84119,3),(84124,3),(84126,3),(84137,3),(84147,3),(84150,3),(84157,3),(84158,3),(84159,3),(84163,3),(84166,3),(84168,3),(84170,3),(84171,3),(84182,3),(84195,3),(84197,3),(84203,3),(84206,3),(84209,3),(84217,3),(84222,3),(84224,3),(84225,3),(84228,3),(84230,3),(84232,3),(84260,3),(84262,3),(84264,3),(84265,3),(84269,3),(84270,3),(84273,3),(84275,3),(84279,3),(84293,3),(84299,3),(84304,3),(84307,3),(84309,3),(84314,3),(84322,3),(84329,3),(84330,3),(84336,3),(84337,3),(84340,3),(84345,3),(84348,3),(84349,3),(84354,3),(84372,3),(84384,3),(84385,3),(84388,3),(84390,3),(84393,3),(84404,3),(84406,3),(84415,3),(84427,3),(84430,3),(84448,3),(84450,3),(84452,3),(84465,3),(84468,3),(84477,3),(84479,3),(84480,3),(84485,3),(84505,3),(84507,3),(84527,3),(84531,3),(84536,3),(84546,3),(84548,3),(84551,3),(84560,3),(84563,3),(84564,3),(84571,3),(84579,3),(84582,3),(84596,3),(84634,3),(84635,3),(84647,3),(84652,3),(84658,3),(84665,3),(84668,3),(84669,3),(84674,3),(84679,3),(84680,3),(84721,3),(84739,3),(84742,3),(84761,3),(84765,3),(84770,3),(84794,3),(84799,3),(84811,3),(84812,3),(84818,3),(84824,3),(84828,3),(84840,3),(84841,3),(84847,3),(84848,3),(84853,3),(84862,3),(84869,3),(84873,3),(84874,3),(84877,3),(84879,3),(84882,3),(84889,3),(84907,3),(84915,3),(84923,3),(84933,3),(84946,3),(84957,3),(84958,3),(84965,3),(84966,3),(84967,3),(84968,3),(84969,3),(84977,3),(84985,3),(85000,3),(85014,3),(85016,3),(85026,3),(85028,3),(85029,3),(85035,3),(85054,3),(85055,3),(85060,3),(85063,3),(85065,3),(85067,3),(85070,3),(85078,3),(85080,3),(85098,3),(85103,3),(85112,3),(85115,3),(85117,3),(85118,3),(85126,3),(85134,3),(85138,3),(85145,3),(85146,3),(85154,3),(85158,3),(85162,3),(85173,3),(85183,3),(85191,3),(85193,3),(85195,3),(85197,3),(85198,3),(85203,3),(85211,3),(85213,3),(85224,3),(85231,3),(85248,3),(85268,3),(85269,3),(85285,3),(85314,3),(85328,3),(85329,3),(85336,3),(85340,3),(85345,3),(85349,3),(85350,3),(85353,3),(85383,3),(85396,3),(85403,3),(85410,3),(85414,3),(85416,3),(85417,3),(85427,3),(85430,3),(85446,3),(85447,3),(85449,3),(85459,3),(85463,3),(85467,3),(85468,3),(85469,3),(85470,3),(85473,3),(85495,3),(85502,3),(85510,3),(85513,3),(85515,3),(85520,3),(85522,3),(85524,3),(85535,3),(85538,3),(85545,3),(85549,3),(85560,3),(85563,3),(85584,3),(85585,3),(85590,3),(85591,3),(85607,3),(85630,3),(85631,3),(85637,3),(85649,3),(85653,3),(85656,3),(85662,3),(85664,3),(85667,3),(85675,3),(85680,3),(85684,3),(85696,3),(85699,3),(85704,3),(85710,3),(85717,3),(85718,3),(85725,3),(85727,3),(85729,3),(85751,3),(85752,3),(85758,3),(85764,3),(85765,3),(85775,3),(85777,3),(85781,3),(85782,3),(85811,3),(85817,3),(85827,3),(85831,3),(85835,3),(85839,3),(85841,3),(85848,3),(85856,3),(85860,3),(85865,3),(85869,3),(85880,3),(85898,3),(85906,3),(85907,3),(85916,3),(85925,3),(85927,3),(85931,3),(85940,3),(85944,3),(85955,3),(85959,3),(85962,3),(85964,3),(85976,3),(85980,3),(85984,3),(85985,3),(85990,3),(85992,3),(85998,3),(86003,3),(86008,3),(86011,3),(86016,3),(86023,3),(86036,3),(86039,3),(86055,3),(86062,3),(86068,3),(86071,3),(86081,3),(86095,3),(86099,3),(86107,3),(86109,3),(86110,3),(86114,3),(86117,3),(86119,3),(86120,3),(86123,3),(86129,3),(86133,3),(86137,3),(86142,3),(86145,3),(86150,3),(86151,3),(86161,3),(86173,3),(86177,3),(86203,3),(86206,3),(86207,3),(86212,3),(86214,3),(86216,3),(86218,3),(86224,3),(86238,3),(86240,3),(86254,3),(86261,3),(86265,3),(86267,3),(86269,3),(86271,3),(86273,3),(86274,3),(86276,3),(86279,3),(86282,3),(86284,3),(86285,3),(86306,3),(86307,3),(86309,3),(86312,3),(86321,3),(86325,3),(86326,3),(86331,3),(86333,3),(86386,3),(86392,3),(86394,3),(86396,3),(86397,3),(86404,3),(86405,3),(86407,3),(86412,3),(86417,3),(86438,3),(86445,3),(86448,3),(86467,3),(86497,3),(86498,3),(86513,3),(86516,3),(86536,3),(86539,3),(86540,3),(86548,3),(86549,3),(86555,3),(86561,3),(86567,3),(86569,3),(86582,3),(86600,3),(86610,3),(86618,3),(86626,3),(86629,3),(86641,3),(86645,3),(86648,3),(86650,3),(86651,3),(86658,3),(86663,3),(86666,3),(86670,3),(86671,3),(86674,3),(86677,3),(86678,3),(86679,3),(86680,3),(86683,3),(86688,3),(86694,3),(86703,3),(86709,3),(86710,3),(86712,3),(86713,3),(86720,3),(86721,3),(86733,3),(86775,3),(86779,3),(86795,3),(86797,3),(86800,3),(86804,3),(86810,3),(86812,3),(86814,3),(86818,3),(86825,3),(86828,3),(86831,3),(86833,3),(86836,3),(86838,3),(86851,3),(86854,3),(86855,3),(86858,3),(86871,3),(86884,3),(86885,3),(86887,3),(86906,3),(86912,3),(86916,3),(86919,3),(86923,3),(86927,3),(86928,3),(86929,3),(86930,3),(86933,3),(86936,3),(86938,3),(86940,3),(86954,3),(86960,3),(86979,3),(86986,3),(86992,3),(86995,3),(87000,3),(87023,3),(87028,3),(87029,3),(87034,3),(87040,3),(87041,3),(87044,3),(87051,3),(87053,3),(87060,3),(87065,3),(87067,3),(87070,3),(87075,3),(87079,3),(87083,3),(87090,3),(87099,3),(87104,3),(87119,3),(87120,3),(87122,3),(87126,3),(87139,3),(87142,3),(87145,3),(87150,3),(87154,3),(87157,3),(87173,3),(87175,3),(87193,3),(87198,3),(87203,3),(87211,3),(87214,3),(87215,3),(87220,3),(87225,3),(87226,3),(87231,3),(87233,3),(87235,3),(87237,3),(87242,3),(87246,3),(87247,3),(87255,3),(87256,3),(87260,3),(87271,3),(87281,3),(87284,3),(87288,3),(87291,3),(87295,3),(87300,3),(87313,3),(87315,3),(87320,3),(87321,3),(87328,3),(87343,3),(87363,3),(87364,3),(87367,3),(87372,3),(87378,3),(87383,3),(87394,3),(87401,3),(87407,3),(87409,3),(87412,3),(87413,3),(87434,3),(87437,3),(87442,3),(87444,3),(87445,3),(87448,3),(87449,3),(87451,3),(87454,3),(87455,3),(87459,3),(87460,3),(87467,3),(87495,3),(87496,3),(87499,3),(87503,3),(87509,3),(87542,3),(87547,3),(87556,3),(87558,3),(87559,3),(87576,3),(87577,3),(87585,3),(87592,3),(87596,3),(87603,3),(87607,3),(87613,3),(87615,3),(87616,3),(87625,3),(87627,3),(87628,3),(87645,3),(87646,3),(87648,3),(87650,3),(87653,3),(87656,3),(87662,3),(87672,3),(87678,3),(87693,3),(87706,3),(87708,3),(87713,3),(87716,3),(87717,3),(87718,3),(87724,3),(87734,3),(87735,3),(87743,3),(87750,3),(87758,3),(87759,3),(87764,3),(87769,3),(87788,3),(87790,3),(87796,3),(87797,3),(87798,3),(87803,3),(87809,3),(87810,3),(87811,3),(87822,3),(87823,3),(87832,3),(87833,3),(87835,3),(87836,3),(87839,3),(87840,3),(87846,3),(87849,3),(87852,3),(87862,3),(87875,3),(87876,3),(87878,3),(87889,3),(87893,3),(87900,3),(87913,3),(87917,3),(87920,3),(87934,3),(87942,3),(87949,3),(87953,3),(87965,3),(87968,3),(87979,3),(88007,3),(88009,3),(88012,3),(88014,3),(88017,3),(88019,3),(88027,3),(88038,3),(88040,3),(88041,3),(88051,3),(88052,3),(88054,3),(88056,3),(88061,3),(88066,3),(88068,3),(88076,3),(88078,3),(88081,3),(88095,3),(88098,3),(88102,3),(88110,3),(88114,3),(88118,3),(88121,3),(88126,3),(88129,3),(88133,3),(88136,3),(88141,3),(88154,3),(88162,3),(88173,3),(88179,3),(88180,3),(88188,3),(88194,3),(88196,3),(88197,3),(88206,3),(88207,3),(88212,3),(88218,3),(88225,3),(88227,3),(88228,3),(88230,3),(88232,3),(88233,3),(88237,3),(88242,3),(88250,3),(88252,3),(88266,3),(88267,3),(88270,3),(88272,3),(88276,3),(88279,3),(88280,3),(88299,3),(88301,3),(88305,3),(88311,3),(88313,3),(88316,3),(88325,3),(88326,3),(88329,3),(88332,3),(88351,3),(88354,3),(88358,3),(88384,3),(88392,3),(88394,3),(88424,3),(88426,3),(88432,3),(88439,3),(88449,3),(88457,3),(88458,3),(88463,3),(88483,3),(88488,3),(88511,3),(88516,3),(88518,3),(88520,3),(88529,3),(88531,3),(88533,3),(88534,3),(88546,3),(88554,3),(88556,3),(88566,3),(88570,3),(88572,3),(88573,3),(88577,3),(88580,3),(88603,3),(88604,3),(88612,3),(88615,3),(88637,3),(88638,3),(88684,3),(88701,3),(88702,3),(88704,3),(88709,3),(88712,3),(88714,3),(88715,3),(88721,3),(88725,3),(88731,3),(88745,3),(88753,3),(88755,3),(88756,3),(88759,3),(88762,3),(88764,3),(88771,3),(88778,3),(88780,3),(88783,3),(88794,3),(88796,3),(88797,3),(88798,3),(88808,3),(88818,3),(88821,3),(88835,3),(88842,3),(88845,3),(88847,3),(88849,3),(88851,3),(88852,3),(88858,3),(88861,3),(88863,3),(88875,3),(88876,3),(88878,3),(88882,3),(88891,3),(88904,3),(88905,3),(88909,3),(88928,3),(88930,3),(88935,3),(88958,3),(88960,3),(88979,3),(88980,3),(88983,3),(88984,3),(88994,3),(88995,3),(89005,3),(89011,3),(89013,3),(89017,3),(89025,3),(89029,3),(89031,3),(89034,3),(89049,3),(89062,3),(89083,3),(89091,3),(89096,3),(89102,3),(89109,3),(89114,3),(89137,3),(89144,3),(89148,3),(89162,3),(89167,3),(89180,3),(89185,3),(89193,3),(89196,3),(89201,3),(89210,3),(89211,3),(89218,3),(89220,3),(89228,3),(89247,3),(89249,3),(89267,3),(89270,3),(89271,3),(89277,3),(89285,3),(89286,3),(89302,3),(89303,3),(89308,3),(89312,3),(89314,3),(89318,3),(89320,3),(89322,3),(89332,3),(89340,3),(89345,3),(89348,3),(89352,3),(89355,3),(89365,3),(89370,3),(89372,3),(89373,3),(89384,3),(89386,3),(89393,3),(89399,3),(89403,3),(89407,3),(89411,3),(89415,3),(89418,3),(89419,3),(89420,3),(89427,3),(89429,3),(89437,3),(89440,3),(89448,3),(89460,3),(89467,3),(89470,3),(89481,3),(89494,3),(89496,3),(89518,3),(89525,3),(89537,3),(89538,3),(89546,3),(89554,3),(89556,3),(89567,3),(89570,3),(89573,3),(89576,3),(89581,3),(89590,3),(89603,3),(89604,3),(89607,3),(89612,3),(89614,3),(89624,3),(89637,3),(89640,3),(89643,3),(89645,3),(89654,3),(89673,3),(89680,3),(89704,3),(89706,3),(89708,3),(89718,3),(89722,3),(89723,3),(89734,3),(89740,3),(89744,3),(89748,3),(89755,3),(89759,3),(89766,3),(89768,3),(89769,3),(89771,3),(89781,3),(89782,3),(89796,3),(89803,3),(89804,3),(89808,3),(89816,3),(89825,3),(89827,3),(89829,3),(89836,3),(89837,3),(89839,3),(89841,3),(89858,3),(89861,3),(89872,3),(89888,3),(89899,3),(89900,3),(89915,3),(89916,3),(89937,3),(89947,3),(89948,3),(89960,3),(89964,3),(89967,3),(89983,3),(89986,3),(89989,3),(89991,3),(89992,3),(90003,3),(90020,3),(90022,3),(90024,3),(90030,3),(90036,3),(90045,3),(90055,3),(90059,3),(90060,3),(90061,3),(90069,3),(90071,3),(90077,3),(90083,3),(90086,3),(90089,3),(90092,3),(90095,3),(90120,3),(90126,3),(90135,3),(90141,3),(90148,3),(90149,3),(90159,3),(90161,3),(90170,3),(90203,3),(90207,3),(90208,3),(90220,3),(90223,3),(90225,3),(90228,3),(90237,3),(90249,3),(90258,3),(90281,3),(90288,3),(90289,3),(90291,3),(90296,3),(90299,3),(90315,3),(90325,3),(90330,3),(90336,3),(90343,3),(90349,3),(90356,3),(90360,3),(90364,3),(90371,3),(90380,3),(90383,3),(90385,3),(90387,3),(90390,3),(90394,3),(90404,3),(90406,3),(90415,3),(90423,3),(90424,3),(90431,3),(90438,3),(90439,3),(90441,3),(90449,3),(90456,3),(90457,3),(90461,3),(90462,3),(90464,3),(90465,3),(90476,3),(90479,3),(90480,3),(90483,3),(90487,3),(90497,3),(90500,3),(90505,3),(90507,3),(90515,3),(90524,3),(90526,3),(90540,3),(90541,3),(90542,3),(90544,3),(90547,3),(90553,3),(90555,3),(90565,3),(90569,3),(90578,3),(90585,3),(90586,3),(90590,3),(90591,3),(90599,3),(90603,3),(90613,3),(90618,3),(90626,3),(90627,3),(90651,3),(90653,3),(90664,3),(90671,3),(90683,3),(90690,3),(90691,3),(90699,3),(90700,3),(90701,3),(90702,3),(90703,3),(90706,3),(90709,3),(90715,3),(90721,3),(90727,3),(90728,3),(90734,3),(90737,3),(90743,3),(90749,3),(90750,3),(90753,3),(90758,3),(90765,3),(90780,3),(90784,3),(90785,3),(90792,3),(90798,3),(90807,3),(90811,3),(90817,3),(90821,3),(90822,3),(90834,3),(90836,3),(90840,3),(90842,3),(90856,3),(90859,3),(90861,3),(90866,3),(90873,3),(90874,3),(90876,3),(90877,3),(90885,3),(90890,3),(90898,3),(90901,3),(90916,3),(90926,3),(90937,3),(90942,3),(90944,3),(90951,3),(90954,3),(90956,3),(90960,3),(90965,3),(90967,3),(90969,3),(90987,3),(90992,3),(90995,3),(90997,3),(90999,3),(91020,3),(91025,3),(91029,3),(91032,3),(91034,3),(91040,3),(91041,3),(91045,3),(91056,3),(91060,3),(91061,3),(91069,3),(91073,3),(91080,3),(91085,3),(91088,3),(91089,3),(91099,3),(91103,3),(91107,3),(91109,3),(91114,3),(91133,3),(91154,3),(91168,3),(91215,3),(91230,3),(91231,3),(91236,3),(91239,3),(91270,3),(91282,3),(91292,3),(91305,3),(91318,3),(91330,3),(91335,3),(91348,3),(91352,3),(91367,3),(91379,3),(91400,3),(91405,3),(91408,3),(91410,3),(91413,3),(91422,3),(91440,3),(91446,3),(91454,3),(91458,3),(91464,3),(91466,3),(91487,3),(91490,3),(91494,3),(91501,3),(91503,3),(91504,3),(91505,3),(91511,3),(91512,3),(91514,3),(91520,3),(91523,3),(91535,3),(91537,3),(91539,3),(91540,3),(91545,3),(91554,3),(91564,3),(91570,3),(91573,3),(91574,3),(91584,3),(91587,3),(91592,3),(91601,3),(91603,3),(91605,3),(91613,3),(91617,3),(91618,3),(91634,3),(91640,3),(91648,3),(91657,3),(91658,3),(91660,3),(91667,3),(91669,3),(91672,3),(91684,3),(91691,3),(91701,3),(91703,3),(91706,3),(91708,3),(91711,3),(91715,3),(91716,3),(91717,3),(91720,3),(91721,3),(91722,3),(91729,3),(91737,3),(91746,3),(91747,3),(91749,3),(91754,3),(91757,3),(91762,3),(91770,3),(91775,3),(91779,3),(91785,3),(91800,3),(91809,3),(91813,3),(91825,3),(91827,3),(91832,3),(91834,3),(91850,3),(91851,3),(91855,3),(91872,3),(91873,3),(91878,3),(91881,3),(91892,3),(91896,3),(91902,3),(91914,3),(91915,3),(91918,3),(91919,3),(91927,3),(91929,3),(91950,3),(91953,3),(91954,3),(91955,3),(91956,3),(91969,3),(91973,3),(91983,3),(91989,3),(91990,3),(92005,3),(92006,3),(92008,3),(92014,3),(92018,3),(92021,3),(92022,3),(92029,3),(92040,3),(92054,3),(92059,3),(92060,3),(92065,3),(92067,3),(92068,3),(92069,3),(92071,3),(92072,3),(92074,3),(92075,3),(92077,3),(92078,3),(92080,3),(92092,3),(92100,3),(92104,3),(92107,3),(92109,3),(92118,3),(92131,3),(92132,3),(92136,3),(92142,3),(92159,3),(92160,3),(92166,3),(92167,3),(92171,3),(92172,3),(92175,3),(92182,3),(92199,3),(92205,3),(92207,3),(92208,3),(92209,3),(92210,3),(92211,3),(92222,3),(92223,3),(92229,3),(92231,3),(92233,3),(92236,3),(92239,3),(92242,3),(92254,3),(92255,3),(92270,3),(92274,3),(92275,3),(92277,3),(92290,3),(92293,3),(92296,3),(92305,3),(92309,3),(92312,3),(92318,3),(92321,3),(92324,3),(92331,3),(92333,3),(92336,3),(92339,3),(92340,3),(92351,3),(92352,3),(92354,3),(92355,3),(92367,3),(92373,3),(92375,3),(92378,3),(92383,3),(92387,3),(92389,3),(92392,3),(92397,3),(92413,3),(92414,3),(92416,3),(92417,3),(92419,3),(92426,3),(92433,3),(92436,3),(92450,3),(92457,3),(92466,3),(92474,3),(92476,3),(92486,3),(92487,3),(92496,3),(92497,3),(92507,3),(92508,3),(92519,3),(92529,3),(92531,3),(92532,3),(92543,3),(92546,3),(92553,3),(92559,3),(92573,3),(92578,3),(92584,3),(92588,3),(92590,3),(92596,3),(92601,3),(92604,3),(92610,3),(92613,3),(92615,3),(92617,3),(92619,3),(92632,3),(92636,3),(92641,3),(92648,3),(92655,3),(92657,3),(92658,3),(92662,3),(92665,3),(92667,3),(92670,3),(92673,3),(92679,3),(92681,3),(92685,3),(92688,3),(92693,3),(92695,3),(92698,3),(92700,3),(92714,3),(92716,3),(92717,3),(92720,3),(92721,3),(92722,3),(92727,3),(92729,3),(92730,3),(92732,3),(92735,3),(92743,3),(92747,3),(92757,3),(92758,3),(92760,3),(92762,3),(92764,3),(92769,3),(92771,3),(92773,3),(92775,3),(92776,3),(92779,3),(92780,3),(92788,3),(92790,3),(92804,3),(92810,3),(92811,3),(92813,3),(92820,3),(92824,3),(92827,3),(92832,3),(92834,3),(92839,3),(92852,3),(92853,3),(92855,3),(92856,3),(92860,3),(92861,3),(92862,3),(92871,3),(92879,3),(92892,3),(92893,3),(92894,3),(92906,3),(92908,3),(92921,3),(92927,3),(92931,3),(92934,3),(92935,3),(92978,3),(93006,3),(93029,3),(93035,3),(93044,3),(93045,3),(93049,3),(93053,3),(93061,3),(93082,3),(93086,3),(93089,3),(93105,3),(93109,3),(93116,3),(93119,3),(93126,3),(93135,3),(93144,3),(93146,3),(93171,3),(93175,3),(93176,3),(93180,3),(93194,3),(93196,3),(93205,3),(93206,3),(93210,3),(93211,3),(93221,3),(93222,3),(93225,3),(93244,3),(93247,3),(93249,3),(93252,3),(93254,3),(93259,3),(93260,3),(93272,3),(93283,3),(93284,3),(93285,3),(93286,3),(93293,3),(93300,3),(93323,3),(93330,3),(93331,3),(93338,3),(93346,3),(93354,3),(93356,3),(93361,3),(93365,3),(93367,3),(93378,3),(93382,3),(93391,3),(93397,3),(93409,3),(93412,3),(93421,3),(93427,3),(93430,3),(93431,3),(93432,3),(93438,3),(93460,3),(93462,3),(93469,3),(93475,3),(93477,3),(93483,3),(93484,3),(93492,3),(93493,3),(93494,3),(93497,3),(93502,3),(93515,3),(93516,3),(93523,3),(93537,3),(93542,3),(93546,3),(93550,3),(93555,3),(93560,3),(93562,3),(93567,3),(93568,3),(93572,3),(93573,3),(93575,3),(93587,3),(93588,3),(93594,3),(93597,3),(93599,3),(93602,3),(93605,3),(93611,3),(93632,3),(93638,3),(93641,3),(93643,3),(93647,3),(93652,3),(93655,3),(93656,3),(93666,3),(93675,3),(93679,3),(93682,3),(93696,3),(93697,3),(93699,3),(93700,3),(93701,3),(93708,3),(93720,3),(93732,3),(93734,3),(93738,3),(93742,3),(93744,3),(93745,3),(93748,3),(93758,3),(93762,3),(93764,3),(93767,3),(93768,3),(93772,3),(93775,3),(93777,3),(93784,3),(93790,3),(93791,3),(93819,3),(93821,3),(93839,3),(93842,3),(93844,3),(93852,3),(93862,3),(93878,3),(93884,3),(93885,3),(93887,3),(93895,3),(93900,3),(93901,3),(93915,3),(93921,3),(93924,3),(93933,3),(93947,3),(93948,3),(93954,3),(93961,3),(93966,3),(93975,3),(93986,3),(93988,3),(93994,3),(94002,3),(94004,3),(94006,3),(94008,3),(94017,3),(94018,3),(94028,3),(94030,3),(94033,3),(94050,3),(94052,3),(94053,3),(94057,3),(94058,3),(94062,3),(94064,3),(94068,3),(94069,3),(94072,3),(94088,3),(94091,3),(94100,3),(94102,3),(94110,3),(94113,3),(94117,3),(94119,3),(94122,3),(94130,3),(94136,3),(94138,3),(94148,3),(94160,3),(94161,3),(94165,3),(94166,3),(94172,3),(94177,3),(94182,3),(94184,3),(94187,3),(94190,3),(94207,3),(94214,3),(94217,3),(94218,3),(94221,3),(94223,3),(94227,3),(94229,3),(94232,3),(94235,3),(94240,3),(94249,3),(94251,3),(94255,3),(94257,3),(94263,3),(94269,3),(94282,3),(94284,3),(94290,3),(94294,3),(94300,3),(94320,3),(94322,3),(94324,3),(94330,3),(94345,3),(94357,3),(94359,3),(94363,3),(94378,3),(94385,3),(94405,3),(94411,3),(94414,3),(94424,3),(94425,3),(94433,3),(94451,3),(94456,3),(94463,3),(94467,3),(94469,3),(94475,3),(94487,3),(94492,3),(94494,3),(94501,3),(94503,3),(94507,3),(94520,3),(94523,3),(94530,3),(94535,3),(94540,3),(94546,3),(94549,3),(94553,3),(94569,3),(94588,3),(94591,3),(94595,3),(94596,3),(94599,3),(94601,3),(94602,3),(94604,3),(94605,3),(94607,3),(94611,3),(94616,3),(94619,3),(94622,3),(94627,3),(94632,3),(94634,3),(94636,3),(94640,3),(94641,3),(94648,3),(94650,3),(94656,3),(94661,3),(94669,3),(94673,3),(94674,3),(94676,3),(94683,3),(94688,3),(94695,3),(94698,3),(94699,3),(94704,3),(94714,3),(94720,3),(94738,3),(94747,3),(94758,3),(94766,3),(94770,3),(94783,3),(94785,3),(94788,3),(94792,3),(94796,3),(94797,3),(94819,3),(94825,3),(94827,3),(94836,3),(94837,3),(94840,3),(94846,3),(94854,3),(94855,3),(94860,3),(94867,3),(94871,3),(94872,3),(94873,3),(94879,3),(94884,3),(94899,3),(94902,3),(94903,3),(94908,3),(94916,3),(94918,3),(94919,3),(94923,3),(94932,3),(94934,3),(94940,3),(94941,3),(94956,3),(94959,3),(94960,3),(94968,3),(94970,3),(94973,3),(94978,3),(94980,3),(94984,3),(94988,3),(94995,3),(95004,3),(95005,3),(95015,3),(95017,3),(95023,3),(95028,3),(95029,3),(95031,3),(95032,3),(95038,3),(95049,3),(95054,3),(95055,3),(95058,3),(95067,3),(95075,3),(95076,3),(95078,3),(95081,3),(95086,3),(95097,3),(95106,3),(95107,3),(95115,3),(95118,3),(95121,3),(95129,3),(95132,3),(95135,3),(95136,3),(95144,3),(95150,3),(95156,3),(95171,3),(95173,3),(95187,3),(95204,3),(95221,3),(95222,3),(95230,3),(95232,3),(95234,3),(95238,3),(95239,3),(95244,3),(95251,3),(95254,3),(95282,3),(95288,3),(95290,3),(95305,3),(95315,3),(95324,3),(95328,3),(95330,3),(95333,3),(95359,3),(95364,3),(95368,3),(95374,3),(95377,3),(95378,3),(95382,3),(95384,3),(95390,3),(95394,3),(95406,3),(95410,3),(95413,3),(95424,3),(95425,3),(95431,3),(95435,3),(95441,3),(95445,3),(95457,3),(95458,3),(95465,3),(95469,3),(95482,3),(95489,3),(95491,3),(95501,3),(95508,3),(95515,3),(95517,3),(95523,3),(95530,3),(95540,3),(95542,3),(95547,3),(95563,3),(95567,3),(95583,3),(95590,3),(95591,3),(95598,3),(95609,3),(95613,3),(95616,3),(95623,3),(95625,3),(95626,3),(95631,3),(95650,3),(95657,3),(95666,3),(95669,3),(95674,3),(95689,3),(95698,3),(95701,3),(95703,3),(95717,3),(95722,3),(95727,3),(95730,3),(95731,3),(95737,3),(95742,3),(95744,3),(95745,3),(95748,3),(95752,3),(95755,3),(95758,3),(95767,3),(95777,3),(95782,3),(95785,3),(95790,3),(95793,3),(95801,3),(95806,3),(95810,3),(95811,3),(95829,3),(95831,3),(95832,3),(95836,3),(95843,3),(95871,3),(95875,3),(95880,3),(95884,3),(95893,3),(95894,3),(95898,3),(95907,3),(95914,3),(95925,3),(95932,3),(95933,3),(95936,3),(95948,3),(95959,3),(95971,3),(95980,3),(95982,3),(95986,3),(95997,3),(95999,3),(96009,3),(96011,3),(96019,3),(96032,3),(96034,3),(96043,3),(96047,3),(96049,3),(96056,3),(96058,3),(96068,3),(96070,3),(96071,3),(96078,3),(96079,3),(96081,3),(96091,3),(96093,3),(96098,3),(96108,3),(96110,3),(96119,3),(96121,3),(96124,3),(96128,3),(96132,3),(96141,3),(96145,3),(96156,3),(96157,3),(96158,3),(96164,3),(96167,3),(96175,3),(96180,3),(96187,3),(96188,3),(96226,3),(96229,3),(96230,3),(96234,3),(96235,3),(96239,3),(96241,3),(96244,3),(96245,3),(96249,3),(96259,3),(96264,3),(96281,3),(96282,3),(96285,3),(96288,3),(96290,3),(96296,3),(96308,3),(96316,3),(96319,3),(96331,3),(96334,3),(96347,3),(96351,3),(96356,3),(96362,3),(96365,3),(96369,3),(96383,3),(96387,3),(96403,3),(96411,3),(96421,3),(96422,3),(96431,3),(96432,3),(96433,3),(96437,3),(96440,3),(96443,3),(96444,3),(96445,3),(96448,3),(96450,3),(96454,3),(96456,3),(96463,3),(96468,3),(96478,3),(96482,3),(96484,3),(96487,3),(96488,3),(96491,3),(96500,3),(96503,3),(96523,3),(96525,3),(96527,3),(96530,3),(96532,3),(96535,3),(96538,3),(96543,3),(96546,3),(96548,3),(96552,3),(96553,3),(96557,3),(96567,3),(96573,3),(96574,3),(96577,3),(96578,3),(96580,3),(96589,3),(96590,3),(96601,3),(96604,3),(96613,3),(96617,3),(96618,3),(96619,3),(96626,3),(96629,3),(96632,3),(96643,3),(96648,3),(96649,3),(96653,3),(96664,3),(96666,3),(96673,3),(96688,3),(96689,3),(96692,3),(96694,3),(96697,3),(96703,3),(96705,3),(96711,3),(96714,3),(96717,3),(96727,3),(96732,3),(96743,3),(96748,3),(96757,3),(96761,3),(96779,3),(96781,3),(96782,3),(96789,3),(96807,3),(96817,3),(96838,3),(96841,3),(96847,3),(96857,3),(96858,3),(96861,3),(96866,3),(96868,3),(96870,3),(96879,3),(96883,3),(96889,3),(96896,3),(96897,3),(96900,3),(96909,3),(96927,3),(96929,3),(96931,3),(96959,3),(96964,3),(96975,3),(96977,3),(96981,3),(96989,3),(96991,3),(96995,3),(97002,3),(97007,3),(97018,3),(97025,3),(97028,3),(97036,3),(97038,3),(97042,3),(97056,3),(97057,3),(97074,3),(97077,3),(97080,3),(97091,3),(97107,3),(97110,3),(97111,3),(97113,3),(97117,3),(97122,3),(97144,3),(97145,3),(97170,3),(97174,3),(97176,3),(97180,3),(97181,3),(97197,3),(97202,3),(97206,3),(97219,3),(97222,3),(97224,3),(97232,3),(97233,3),(97239,3),(97240,3),(97243,3),(97255,3),(97261,3),(97263,3),(97269,3),(97278,3),(97280,3),(97285,3),(97290,3),(97293,3),(97302,3),(97303,3),(97305,3),(97307,3),(97326,3),(97329,3),(97331,3),(97333,3),(97335,3),(97336,3),(97338,3),(97343,3),(97346,3),(97357,3),(97358,3),(97367,3),(97368,3),(97380,3),(97382,3),(97390,3),(97391,3),(97393,3),(97395,3),(97400,3),(97402,3),(97403,3),(97404,3),(97409,3),(97413,3),(97417,3),(97428,3),(97429,3),(97436,3),(97441,3),(97451,3),(97452,3),(97457,3),(97459,3),(97460,3),(97463,3),(97474,3),(97476,3),(97481,3),(97482,3),(97483,3),(97486,3),(97497,3),(97501,3),(97502,3),(97503,3),(97509,3),(97510,3),(97511,3),(97518,3),(97525,3),(97528,3),(97540,3),(97541,3),(97543,3),(97546,3),(97547,3),(97552,3),(97555,3),(97557,3),(97559,3),(97561,3),(97567,3),(97568,3),(97569,3),(97571,3),(97572,3),(97573,3),(97575,3),(97577,3),(97579,3),(97582,3),(97591,3),(97600,3),(97611,3),(97617,3),(97621,3),(97624,3),(97633,3),(97635,3),(97637,3),(97643,3),(97644,3),(97647,3),(97650,3),(97654,3),(97657,3),(97671,3),(97680,3),(97682,3),(97686,3),(97692,3),(97694,3),(97697,3),(97699,3),(97704,3),(97706,3),(97707,3),(97714,3),(97718,3),(97719,3),(97730,3),(97731,3),(97734,3),(97740,3),(97747,3),(97748,3),(97753,3),(97797,3),(97798,3),(97801,3),(97802,3),(97804,3),(97821,3),(97824,3),(97829,3),(97831,3),(97844,3),(97850,3),(97853,3),(97866,3),(97867,3),(97868,3),(97874,3),(97878,3),(97880,3),(97881,3),(97886,3),(97890,3),(97899,3),(97903,3),(97905,3),(97930,3),(97947,3),(97956,3),(97957,3),(97964,3),(97976,3),(97979,3),(97992,3),(97999,3),(98003,3),(98004,3),(98020,3),(98024,3),(98031,3),(98039,3),(98049,3),(98055,3),(98056,3),(98071,3),(98072,3),(98073,3),(98075,3),(98088,3),(98101,3),(98106,3),(98120,3),(98126,3),(98127,3),(98129,3),(98135,3),(98141,3),(98144,3),(98152,3),(98168,3),(98171,3),(98172,3),(98178,3),(98194,3),(98199,3),(98205,3),(98221,3),(98222,3),(98223,3),(98230,3),(98236,3),(98241,3),(98249,3),(98255,3),(98256,3),(98259,3),(98267,3),(98277,3),(98279,3),(98285,3),(98286,3),(98292,3),(98300,3),(98312,3),(98317,3),(98321,3),(98323,3),(98328,3),(98329,3),(98330,3),(98335,3),(98338,3),(98339,3),(98342,3),(98344,3),(98350,3),(98367,3),(98384,3),(98388,3),(98391,3),(98392,3),(98401,3),(98410,3),(98425,3),(98426,3),(98430,3),(98432,3),(98435,3),(98438,3),(98453,3),(98456,3),(98458,3),(98460,3),(98470,3),(98472,3),(98474,3),(98475,3),(98476,3),(98478,3),(98487,3),(98488,3),(98489,3),(98490,3),(98493,3),(98500,3),(98504,3),(98508,3),(98510,3),(98512,3),(98517,3),(98518,3),(98547,3),(98559,3),(98571,3),(98592,3),(98597,3),(98601,3),(98620,3),(98621,3),(98624,3),(98630,3),(98633,3),(98640,3),(98642,3),(98643,3),(98651,3),(98656,3),(98659,3),(98671,3),(98675,3),(98677,3),(98681,3),(98683,3),(98689,3),(98698,3),(98699,3),(98701,3),(98705,3),(98709,3),(98722,3),(98730,3),(98742,3),(98745,3),(98746,3),(98759,3),(98762,3),(98765,3),(98768,3),(98771,3),(98774,3),(98780,3),(98799,3),(98805,3),(98806,3),(98815,3),(98824,3),(98828,3),(98834,3),(98838,3),(98839,3),(98845,3),(98849,3),(98855,3),(98864,3),(98867,3),(98869,3),(98876,3),(98879,3),(98899,3),(98905,3),(98908,3),(98915,3),(98921,3),(98925,3),(98928,3),(98939,3),(98945,3),(98957,3),(98966,3),(98972,3),(98981,3),(98990,3),(98993,3),(17,4),(19,4),(22,4),(33,4),(41,4),(44,4),(50,4),(54,4),(58,4),(59,4),(64,4),(69,4),(73,4),(74,4),(76,4),(80,4),(88,4),(95,4),(107,4),(108,4),(111,4),(118,4),(119,4),(133,4),(134,4),(142,4),(145,4),(147,4),(154,4),(156,4),(159,4),(162,4),(163,4),(171,4),(172,4),(202,4),(205,4),(209,4),(210,4),(212,4),(213,4),(215,4),(220,4),(223,4),(233,4),(234,4),(245,4),(247,4),(256,4),(260,4),(261,4),(267,4),(282,4),(285,4),(287,4),(293,4),(301,4),(302,4),(305,4),(318,4),(320,4),(323,4),(325,4),(327,4),(328,4),(335,4),(345,4),(346,4),(350,4),(354,4),(358,4),(362,4),(367,4),(368,4),(375,4),(376,4),(378,4),(379,4),(388,4),(389,4),(398,4),(410,4),(414,4),(419,4),(427,4),(431,4),(439,4),(444,4),(451,4),(456,4),(460,4),(461,4),(470,4),(474,4),(478,4),(479,4),(482,4),(483,4),(487,4),(496,4),(505,4),(514,4),(517,4),(519,4),(525,4),(527,4),(529,4),(532,4),(538,4),(540,4),(542,4),(548,4),(554,4),(556,4),(567,4),(580,4),(581,4),(587,4),(589,4),(590,4),(597,4),(606,4),(609,4),(612,4),(615,4),(617,4),(619,4),(624,4),(629,4),(635,4),(646,4),(652,4),(662,4),(665,4),(671,4),(676,4),(677,4),(689,4),(693,4),(696,4),(706,4),(710,4),(711,4),(713,4),(717,4),(725,4),(726,4),(739,4),(740,4),(741,4),(742,4),(744,4),(750,4),(755,4),(777,4),(781,4),(791,4),(797,4),(801,4),(805,4),(809,4),(811,4),(816,4),(817,4),(820,4),(823,4),(825,4),(827,4),(833,4),(839,4),(845,4),(852,4),(873,4),(885,4),(888,4),(909,4),(919,4),(925,4),(929,4),(949,4),(951,4),(953,4),(956,4),(960,4),(962,4),(963,4),(969,4),(978,4),(985,4),(992,4),(996,4),(999,4),(1013,4),(1031,4),(1034,4),(1036,4),(1039,4),(1049,4),(1051,4),(1058,4),(1059,4),(1066,4),(1069,4),(1080,4),(1085,4),(1086,4),(1090,4),(1091,4),(1094,4),(1095,4),(1103,4),(1116,4),(1118,4),(1133,4),(1138,4),(1141,4),(1153,4),(1158,4),(1161,4),(1163,4),(1169,4),(1170,4),(1173,4),(1189,4),(1197,4),(1203,4),(1208,4),(1211,4),(1215,4),(1217,4),(1236,4),(1238,4),(1242,4),(1245,4),(1261,4),(1284,4),(1289,4),(1290,4),(1305,4),(1310,4),(1313,4),(1314,4),(1318,4),(1319,4),(1324,4),(1329,4),(1336,4),(1339,4),(1341,4),(1344,4),(1368,4),(1374,4),(1382,4),(1383,4),(1386,4),(1390,4),(1392,4),(1402,4),(1411,4),(1413,4),(1414,4),(1430,4),(1439,4),(1453,4),(1462,4),(1468,4),(1479,4),(1491,4),(1496,4),(1512,4),(1533,4),(1535,4),(1542,4),(1543,4),(1553,4),(1554,4),(1571,4),(1576,4),(1577,4),(1580,4),(1582,4),(1590,4),(1597,4),(1600,4),(1608,4),(1609,4),(1612,4),(1615,4),(1617,4),(1620,4),(1622,4),(1626,4),(1638,4),(1640,4),(1647,4),(1659,4),(1660,4),(1663,4),(1666,4),(1668,4),(1677,4),(1681,4),(1684,4),(1686,4),(1690,4),(1702,4),(1705,4),(1709,4),(1710,4),(1721,4),(1728,4),(1733,4),(1742,4),(1743,4),(1747,4),(1757,4),(1765,4),(1769,4),(1770,4),(1779,4),(1789,4),(1811,4),(1816,4),(1817,4),(1827,4),(1848,4),(1850,4),(1862,4),(1863,4),(1865,4),(1866,4),(1873,4),(1878,4),(1887,4),(1890,4),(1892,4),(1898,4),(1903,4),(1911,4),(1924,4),(1925,4),(1932,4),(1934,4),(1938,4),(1941,4),(1947,4),(1955,4),(1976,4),(1983,4),(1996,4),(1997,4),(2000,4),(2008,4),(2009,4),(2019,4),(2034,4),(2041,4),(2050,4),(2066,4),(2073,4),(2092,4),(2102,4),(2103,4),(2110,4),(2112,4),(2114,4),(2121,4),(2124,4),(2132,4),(2135,4),(2140,4),(2145,4),(2146,4),(2153,4),(2167,4),(2168,4),(2170,4),(2175,4),(2180,4),(2181,4),(2186,4),(2190,4),(2203,4),(2205,4),(2207,4),(2211,4),(2212,4),(2221,4),(2226,4),(2232,4),(2238,4),(2248,4),(2254,4),(2272,4),(2294,4),(2298,4),(2308,4),(2312,4),(2315,4),(2325,4),(2329,4),(2331,4),(2333,4),(2336,4),(2337,4),(2358,4),(2359,4),(2361,4),(2364,4),(2370,4),(2386,4),(2393,4),(2398,4),(2402,4),(2406,4),(2413,4),(2418,4),(2421,4),(2427,4),(2428,4),(2437,4),(2445,4),(2451,4),(2453,4),(2454,4),(2455,4),(2461,4),(2476,4),(2477,4),(2480,4),(2487,4),(2491,4),(2493,4),(2498,4),(2501,4),(2523,4),(2530,4),(2531,4),(2536,4),(2540,4),(2545,4),(2553,4),(2554,4),(2558,4),(2563,4),(2565,4),(2567,4),(2570,4),(2577,4),(2591,4),(2593,4),(2598,4),(2606,4),(2613,4),(2624,4),(2626,4),(2644,4),(2645,4),(2648,4),(2665,4),(2673,4),(2674,4),(2677,4),(2679,4),(2690,4),(2694,4),(2695,4),(2698,4),(2703,4),(2705,4),(2710,4),(2711,4),(2714,4),(2716,4),(2726,4),(2731,4),(2734,4),(2735,4),(2743,4),(2745,4),(2762,4),(2770,4),(2776,4),(2778,4),(2793,4),(2796,4),(2803,4),(2804,4),(2822,4),(2839,4),(2841,4),(2843,4),(2846,4),(2856,4),(2871,4),(2873,4),(2887,4),(2899,4),(2907,4),(2908,4),(2910,4),(2914,4),(2922,4),(2924,4),(2926,4),(2927,4),(2931,4),(2933,4),(2940,4),(2949,4),(2964,4),(2968,4),(2979,4),(2982,4),(2988,4),(2991,4),(2992,4),(3004,4),(3008,4),(3011,4),(3017,4),(3030,4),(3038,4),(3050,4),(3059,4),(3067,4),(3070,4),(3076,4),(3087,4),(3098,4),(3100,4),(3114,4),(3119,4),(3120,4),(3123,4),(3129,4),(3135,4),(3138,4),(3145,4),(3146,4),(3149,4),(3162,4),(3171,4),(3181,4),(3185,4),(3191,4),(3196,4),(3197,4),(3201,4),(3202,4),(3205,4),(3213,4),(3215,4),(3216,4),(3227,4),(3232,4),(3233,4),(3241,4),(3247,4),(3255,4),(3258,4),(3269,4),(3283,4),(3285,4),(3289,4),(3299,4),(3311,4),(3334,4),(3338,4),(3339,4),(3345,4),(3347,4),(3348,4),(3353,4),(3369,4),(3381,4),(3383,4),(3384,4),(3387,4),(3400,4),(3403,4),(3407,4),(3414,4),(3415,4),(3417,4),(3418,4),(3420,4),(3422,4),(3426,4),(3432,4),(3442,4),(3445,4),(3453,4),(3454,4),(3467,4),(3483,4),(3485,4),(3486,4),(3490,4),(3501,4),(3503,4),(3507,4),(3508,4),(3515,4),(3519,4),(3521,4),(3523,4),(3525,4),(3535,4),(3539,4),(3542,4),(3563,4),(3567,4),(3569,4),(3573,4),(3580,4),(3587,4),(3604,4),(3608,4),(3612,4),(3613,4),(3614,4),(3618,4),(3621,4),(3647,4),(3652,4),(3653,4),(3656,4),(3666,4),(3667,4),(3668,4),(3685,4),(3690,4),(3711,4),(3713,4),(3715,4),(3731,4),(3741,4),(3763,4),(3769,4),(3773,4),(3780,4),(3787,4),(3794,4),(3795,4),(3802,4),(3822,4),(3824,4),(3836,4),(3838,4),(3847,4),(3849,4),(3856,4),(3861,4),(3862,4),(3868,4),(3878,4),(3903,4),(3907,4),(3908,4),(3918,4),(3920,4),(3944,4),(3945,4),(3948,4),(3956,4),(3963,4),(3968,4),(3972,4),(3973,4),(3976,4),(3978,4),(3985,4),(3986,4),(3987,4),(3993,4),(3997,4),(4000,4),(4004,4),(4006,4),(4009,4),(4017,4),(4033,4),(4036,4),(4048,4),(4049,4),(4057,4),(4059,4),(4061,4),(4062,4),(4063,4),(4064,4),(4074,4),(4085,4),(4087,4),(4088,4),(4090,4),(4108,4),(4111,4),(4113,4),(4115,4),(4121,4),(4123,4),(4130,4),(4134,4),(4136,4),(4147,4),(4149,4),(4151,4),(4155,4),(4160,4),(4174,4),(4176,4),(4177,4),(4180,4),(4184,4),(4185,4),(4187,4),(4191,4),(4192,4),(4194,4),(4198,4),(4201,4),(4209,4),(4213,4),(4216,4),(4236,4),(4244,4),(4245,4),(4249,4),(4253,4),(4254,4),(4266,4),(4270,4),(4288,4),(4299,4),(4304,4),(4305,4),(4311,4),(4312,4),(4322,4),(4326,4),(4331,4),(4336,4),(4342,4),(4347,4),(4349,4),(4350,4),(4351,4),(4353,4),(4357,4),(4363,4),(4368,4),(4372,4),(4375,4),(4378,4),(4383,4),(4395,4),(4396,4),(4397,4),(4408,4),(4409,4),(4410,4),(4413,4),(4416,4),(4429,4),(4433,4),(4436,4),(4437,4),(4442,4),(4462,4),(4466,4),(4474,4),(4477,4),(4484,4),(4490,4),(4492,4),(4497,4),(4508,4),(4511,4),(4525,4),(4528,4),(4531,4),(4533,4),(4534,4),(4543,4),(4556,4),(4564,4),(4578,4),(4581,4),(4584,4),(4591,4),(4597,4),(4602,4),(4608,4),(4610,4),(4635,4),(4647,4),(4655,4),(4660,4),(4661,4),(4667,4),(4672,4),(4675,4),(4676,4),(4678,4),(4682,4),(4694,4),(4695,4),(4699,4),(4700,4),(4713,4),(4716,4),(4721,4),(4726,4),(4728,4),(4730,4),(4732,4),(4742,4),(4749,4),(4750,4),(4754,4),(4760,4),(4764,4),(4765,4),(4769,4),(4784,4),(4786,4),(4787,4),(4788,4),(4805,4),(4811,4),(4814,4),(4817,4),(4818,4),(4822,4),(4827,4),(4831,4),(4832,4),(4851,4),(4860,4),(4862,4),(4869,4),(4874,4),(4911,4),(4914,4),(4915,4),(4917,4),(4921,4),(4923,4),(4931,4),(4941,4),(4945,4),(4951,4),(4958,4),(4959,4),(4961,4),(4966,4),(4969,4),(4971,4),(4978,4),(4981,4),(4999,4),(5000,4),(5001,4),(5004,4),(5012,4),(5021,4),(5024,4),(5048,4),(5056,4),(5057,4),(5069,4),(5070,4),(5076,4),(5079,4),(5094,4),(5102,4),(5115,4),(5118,4),(5132,4),(5136,4),(5142,4),(5149,4),(5152,4),(5156,4),(5157,4),(5170,4),(5173,4),(5183,4),(5200,4),(5209,4),(5219,4),(5245,4),(5246,4),(5248,4),(5249,4),(5251,4),(5254,4),(5262,4),(5266,4),(5270,4),(5275,4),(5283,4),(5286,4),(5301,4),(5302,4),(5311,4),(5323,4),(5324,4),(5328,4),(5333,4),(5338,4),(5341,4),(5343,4),(5347,4),(5349,4),(5352,4),(5364,4),(5371,4),(5379,4),(5383,4),(5391,4),(5396,4),(5409,4),(5413,4),(5417,4),(5421,4),(5422,4),(5425,4),(5438,4),(5450,4),(5457,4),(5459,4),(5464,4),(5466,4),(5467,4),(5468,4),(5480,4),(5481,4),(5487,4),(5494,4),(5524,4),(5530,4),(5531,4),(5534,4),(5536,4),(5539,4),(5540,4),(5541,4),(5549,4),(5555,4),(5568,4),(5576,4),(5580,4),(5584,4),(5588,4),(5592,4),(5603,4),(5606,4),(5609,4),(5614,4),(5616,4),(5619,4),(5624,4),(5631,4),(5637,4),(5641,4),(5649,4),(5650,4),(5662,4),(5668,4),(5669,4),(5671,4),(5679,4),(5681,4),(5691,4),(5696,4),(5703,4),(5704,4),(5715,4),(5725,4),(5732,4),(5733,4),(5736,4),(5746,4),(5753,4),(5758,4),(5759,4),(5765,4),(5773,4),(5774,4),(5777,4),(5786,4),(5787,4),(5789,4),(5792,4),(5803,4),(5805,4),(5821,4),(5840,4),(5842,4),(5857,4),(5861,4),(5867,4),(5868,4),(5875,4),(5880,4),(5881,4),(5885,4),(5895,4),(5896,4),(5898,4),(5914,4),(5917,4),(5919,4),(5926,4),(5928,4),(5935,4),(5946,4),(5947,4),(5959,4),(5962,4),(5965,4),(5966,4),(5968,4),(5971,4),(5975,4),(5976,4),(5986,4),(5988,4),(6004,4),(6023,4),(6036,4),(6037,4),(6046,4),(6057,4),(6061,4),(6066,4),(6072,4),(6074,4),(6077,4),(6083,4),(6092,4),(6099,4),(6101,4),(6107,4),(6115,4),(6121,4),(6130,4),(6135,4),(6141,4),(6142,4),(6144,4),(6149,4),(6150,4),(6152,4),(6153,4),(6156,4),(6160,4),(6162,4),(6184,4),(6188,4),(6191,4),(6196,4),(6202,4),(6204,4),(6207,4),(6211,4),(6216,4),(6217,4),(6221,4),(6222,4),(6225,4),(6239,4),(6242,4),(6245,4),(6246,4),(6258,4),(6260,4),(6265,4),(6268,4),(6275,4),(6284,4),(6293,4),(6316,4),(6319,4),(6320,4),(6325,4),(6326,4),(6328,4),(6329,4),(6330,4),(6336,4),(6342,4),(6343,4),(6353,4),(6368,4),(6379,4),(6380,4),(6387,4),(6388,4),(6392,4),(6400,4),(6410,4),(6417,4),(6422,4),(6423,4),(6425,4),(6438,4),(6453,4),(6455,4),(6458,4),(6459,4),(6464,4),(6468,4),(6476,4),(6480,4),(6487,4),(6490,4),(6498,4),(6500,4),(6506,4),(6510,4),(6512,4),(6519,4),(6521,4),(6526,4),(6527,4),(6532,4),(6535,4),(6538,4),(6542,4),(6544,4),(6559,4),(6560,4),(6565,4),(6566,4),(6576,4),(6577,4),(6581,4),(6584,4),(6587,4),(6594,4),(6614,4),(6623,4),(6630,4),(6633,4),(6644,4),(6658,4),(6660,4),(6668,4),(6670,4),(6676,4),(6696,4),(6704,4),(6711,4),(6715,4),(6727,4),(6731,4),(6733,4),(6735,4),(6736,4),(6738,4),(6743,4),(6746,4),(6748,4),(6751,4),(6756,4),(6757,4),(6760,4),(6769,4),(6775,4),(6777,4),(6784,4),(6786,4),(6816,4),(6817,4),(6825,4),(6840,4),(6842,4),(6858,4),(6859,4),(6877,4),(6884,4),(6888,4),(6896,4),(6915,4),(6919,4),(6923,4),(6934,4),(6935,4),(6941,4),(6945,4),(6953,4),(6958,4),(6962,4),(6963,4),(6972,4),(6978,4),(6982,4),(6990,4),(6992,4),(6999,4),(7004,4),(7007,4),(7013,4),(7015,4),(7017,4),(7021,4),(7034,4),(7035,4),(7043,4),(7044,4),(7051,4),(7062,4),(7078,4),(7079,4),(7083,4),(7093,4),(7097,4),(7100,4),(7111,4),(7116,4),(7129,4),(7132,4),(7136,4),(7138,4),(7139,4),(7140,4),(7146,4),(7154,4),(7159,4),(7164,4),(7165,4),(7182,4),(7189,4),(7203,4),(7206,4),(7214,4),(7220,4),(7221,4),(7236,4),(7237,4),(7239,4),(7240,4),(7241,4),(7243,4),(7247,4),(7253,4),(7258,4),(7262,4),(7263,4),(7268,4),(7270,4),(7273,4),(7275,4),(7278,4),(7279,4),(7284,4),(7299,4),(7315,4),(7318,4),(7321,4),(7323,4),(7333,4),(7338,4),(7345,4),(7346,4),(7348,4),(7352,4),(7353,4),(7355,4),(7356,4),(7369,4),(7379,4),(7386,4),(7392,4),(7401,4),(7402,4),(7404,4),(7405,4),(7415,4),(7462,4),(7466,4),(7469,4),(7491,4),(7492,4),(7505,4),(7507,4),(7517,4),(7519,4),(7532,4),(7537,4),(7538,4),(7545,4),(7549,4),(7553,4),(7555,4),(7563,4),(7565,4),(7566,4),(7576,4),(7578,4),(7581,4),(7615,4),(7617,4),(7623,4),(7628,4),(7633,4),(7635,4),(7636,4),(7642,4),(7643,4),(7652,4),(7654,4),(7655,4),(7657,4),(7659,4),(7660,4),(7662,4),(7665,4),(7675,4),(7701,4),(7707,4),(7710,4),(7721,4),(7726,4),(7727,4),(7734,4),(7736,4),(7738,4),(7739,4),(7741,4),(7743,4),(7745,4),(7755,4),(7761,4),(7771,4),(7773,4),(7776,4),(7788,4),(7791,4),(7798,4),(7799,4),(7802,4),(7815,4),(7825,4),(7833,4),(7836,4),(7845,4),(7850,4),(7854,4),(7855,4),(7865,4),(7866,4),(7867,4),(7869,4),(7872,4),(7893,4),(7903,4),(7905,4),(7928,4),(7930,4),(7931,4),(7932,4),(7935,4),(7936,4),(7939,4),(7941,4),(7942,4),(7950,4),(7959,4),(7966,4),(7970,4),(7973,4),(7986,4),(7988,4),(7994,4),(8006,4),(8011,4),(8014,4),(8015,4),(8018,4),(8025,4),(8028,4),(8037,4),(8040,4),(8041,4),(8047,4),(8061,4),(8075,4),(8082,4),(8084,4),(8087,4),(8088,4),(8090,4),(8101,4),(8102,4),(8109,4),(8124,4),(8135,4),(8157,4),(8160,4),(8166,4),(8173,4),(8174,4),(8193,4),(8194,4),(8206,4),(8208,4),(8209,4),(8214,4),(8237,4),(8238,4),(8241,4),(8242,4),(8243,4),(8256,4),(8263,4),(8266,4),(8268,4),(8277,4),(8299,4),(8313,4),(8328,4),(8334,4),(8338,4),(8340,4),(8341,4),(8347,4),(8350,4),(8360,4),(8379,4),(8387,4),(8394,4),(8396,4),(8397,4),(8412,4),(8415,4),(8420,4),(8421,4),(8429,4),(8437,4),(8445,4),(8454,4),(8460,4),(8465,4),(8469,4),(8474,4),(8477,4),(8484,4),(8487,4),(8501,4),(8505,4),(8508,4),(8511,4),(8514,4),(8527,4),(8532,4),(8539,4),(8540,4),(8550,4),(8570,4),(8571,4),(8585,4),(8588,4),(8590,4),(8594,4),(8614,4),(8623,4),(8627,4),(8636,4),(8646,4),(8656,4),(8659,4),(8663,4),(8694,4),(8702,4),(8703,4),(8706,4),(8714,4),(8720,4),(8722,4),(8726,4),(8731,4),(8738,4),(8747,4),(8768,4),(8773,4),(8775,4),(8781,4),(8783,4),(8785,4),(8786,4),(8794,4),(8802,4),(8806,4),(8808,4),(8818,4),(8822,4),(8826,4),(8829,4),(8833,4),(8844,4),(8845,4),(8847,4),(8848,4),(8849,4),(8854,4),(8856,4),(8859,4),(8864,4),(8869,4),(8871,4),(8874,4),(8876,4),(8880,4),(8890,4),(8893,4),(8894,4),(8896,4),(8898,4),(8906,4),(8908,4),(8924,4),(8959,4),(8963,4),(8964,4),(8975,4),(8982,4),(8989,4),(8992,4),(8995,4),(8996,4),(8997,4),(9003,4),(9004,4),(9011,4),(9012,4),(9020,4),(9021,4),(9034,4),(9039,4),(9041,4),(9042,4),(9048,4),(9052,4),(9065,4),(9068,4),(9078,4),(9094,4),(9095,4),(9105,4),(9113,4),(9121,4),(9128,4),(9131,4),(9136,4),(9141,4),(9145,4),(9148,4),(9150,4),(9152,4),(9159,4),(9167,4),(9170,4),(9180,4),(9192,4),(9193,4),(9196,4),(9201,4),(9205,4),(9209,4),(9211,4),(9213,4),(9222,4),(9223,4),(9224,4),(9233,4),(9237,4),(9239,4),(9263,4),(9264,4),(9275,4),(9278,4),(9281,4),(9286,4),(9292,4),(9293,4),(9294,4),(9310,4),(9312,4),(9322,4),(9323,4),(9334,4),(9339,4),(9340,4),(9349,4),(9356,4),(9363,4),(9364,4),(9366,4),(9383,4),(9385,4),(9393,4),(9407,4),(9413,4),(9418,4),(9422,4),(9426,4),(9429,4),(9431,4),(9458,4),(9459,4),(9460,4),(9471,4),(9472,4),(9473,4),(9474,4),(9476,4),(9493,4),(9498,4),(9501,4),(9502,4),(9504,4),(9525,4),(9533,4),(9541,4),(9542,4),(9548,4),(9549,4),(9555,4),(9557,4),(9565,4),(9580,4),(9584,4),(9585,4),(9587,4),(9589,4),(9593,4),(9595,4),(9597,4),(9607,4),(9612,4),(9615,4),(9624,4),(9625,4),(9640,4),(9643,4),(9644,4),(9646,4),(9650,4),(9655,4),(9657,4),(9662,4),(9664,4),(9674,4),(9688,4),(9692,4),(9707,4),(9711,4),(9712,4),(9719,4),(9722,4),(9727,4),(9735,4),(9739,4),(9747,4),(9752,4),(9768,4),(9782,4),(9791,4),(9800,4),(9807,4),(9816,4),(9821,4),(9826,4),(9827,4),(9830,4),(9837,4),(9848,4),(9861,4),(9868,4),(9874,4),(9888,4),(9894,4),(9895,4),(9903,4),(9905,4),(9906,4),(9908,4),(9909,4),(9911,4),(9913,4),(9921,4),(9928,4),(9932,4),(9935,4),(9936,4),(9943,4),(9948,4),(9953,4),(9958,4),(9966,4),(9974,4),(9981,4),(9982,4),(9992,4),(9997,4),(9999,4),(10015,4),(10018,4),(10035,4),(10039,4),(10045,4),(10048,4),(10051,4),(10059,4),(10061,4),(10063,4),(10065,4),(10071,4),(10074,4),(10080,4),(10084,4),(10089,4),(10110,4),(10113,4),(10120,4),(10121,4),(10129,4),(10134,4),(10136,4),(10142,4),(10143,4),(10159,4),(10168,4),(10173,4),(10179,4),(10191,4),(10192,4),(10205,4),(10213,4),(10218,4),(10222,4),(10230,4),(10244,4),(10247,4),(10250,4),(10257,4),(10259,4),(10267,4),(10281,4),(10299,4),(10318,4),(10324,4),(10334,4),(10344,4),(10345,4),(10347,4),(10352,4),(10357,4),(10374,4),(10377,4),(10378,4),(10408,4),(10409,4),(10411,4),(10413,4),(10418,4),(10422,4),(10425,4),(10434,4),(10436,4),(10452,4),(10454,4),(10463,4),(10465,4),(10468,4),(10491,4),(10496,4),(10500,4),(10501,4),(10504,4),(10519,4),(10524,4),(10526,4),(10529,4),(10530,4),(10536,4),(10547,4),(10548,4),(10553,4),(10557,4),(10558,4),(10567,4),(10568,4),(10569,4),(10583,4),(10596,4),(10598,4),(10607,4),(10608,4),(10615,4),(10617,4),(10625,4),(10631,4),(10638,4),(10640,4),(10650,4),(10652,4),(10653,4),(10658,4),(10664,4),(10666,4),(10676,4),(10683,4),(10684,4),(10692,4),(10693,4),(10703,4),(10704,4),(10710,4),(10711,4),(10721,4),(10725,4),(10726,4),(10729,4),(10733,4),(10734,4),(10736,4),(10737,4),(10740,4),(10742,4),(10748,4),(10749,4),(10753,4),(10764,4),(10767,4),(10769,4),(10775,4),(10781,4),(10782,4),(10784,4),(10795,4),(10802,4),(10803,4),(10811,4),(10813,4),(10814,4),(10816,4),(10832,4),(10837,4),(10843,4),(10863,4),(10871,4),(10872,4),(10876,4),(10877,4),(10881,4),(10884,4),(10889,4),(10893,4),(10905,4),(10906,4),(10913,4),(10914,4),(10918,4),(10920,4),(10921,4),(10930,4),(10934,4),(10935,4),(10940,4),(10945,4),(10948,4),(10956,4),(10957,4),(10977,4),(10999,4),(11003,4),(11005,4),(11007,4),(11021,4),(11045,4),(11051,4),(11059,4),(11062,4),(11066,4),(11067,4),(11068,4),(11074,4),(11081,4),(11088,4),(11095,4),(11096,4),(11098,4),(11103,4),(11124,4),(11129,4),(11136,4),(11138,4),(11153,4),(11163,4),(11165,4),(11167,4),(11176,4),(11211,4),(11215,4),(11233,4),(11247,4),(11257,4),(11266,4),(11267,4),(11282,4),(11293,4),(11301,4),(11303,4),(11319,4),(11322,4),(11331,4),(11334,4),(11337,4),(11339,4),(11340,4),(11346,4),(11355,4),(11363,4),(11378,4),(11385,4),(11390,4),(11393,4),(11397,4),(11398,4),(11410,4),(11422,4),(11428,4),(11437,4),(11439,4),(11441,4),(11450,4),(11461,4),(11471,4),(11474,4),(11478,4),(11496,4),(11516,4),(11519,4),(11523,4),(11529,4),(11539,4),(11545,4),(11549,4),(11550,4),(11555,4),(11558,4),(11560,4),(11561,4),(11563,4),(11565,4),(11577,4),(11579,4),(11581,4),(11582,4),(11591,4),(11593,4),(11598,4),(11599,4),(11601,4),(11604,4),(11606,4),(11614,4),(11616,4),(11620,4),(11628,4),(11629,4),(11631,4),(11634,4),(11642,4),(11651,4),(11654,4),(11656,4),(11662,4),(11685,4),(11686,4),(11687,4),(11689,4),(11691,4),(11710,4),(11712,4),(11717,4),(11722,4),(11723,4),(11728,4),(11729,4),(11739,4),(11743,4),(11756,4),(11759,4),(11761,4),(11764,4),(11765,4),(11768,4),(11769,4),(11774,4),(11775,4),(11780,4),(11792,4),(11803,4),(11811,4),(11823,4),(11836,4),(11838,4),(11845,4),(11852,4),(11855,4),(11856,4),(11858,4),(11860,4),(11862,4),(11863,4),(11868,4),(11871,4),(11888,4),(11889,4),(11897,4),(11902,4),(11910,4),(11913,4),(11915,4),(11919,4),(11920,4),(11922,4),(11925,4),(11926,4),(11927,4),(11928,4),(11930,4),(11936,4),(11939,4),(11940,4),(11942,4),(11943,4),(11954,4),(11957,4),(11960,4),(11963,4),(11965,4),(11970,4),(11976,4),(11980,4),(11988,4),(11989,4),(11990,4),(11992,4),(11993,4),(11997,4),(12003,4),(12018,4),(12027,4),(12028,4),(12030,4),(12033,4),(12035,4),(12036,4),(12040,4),(12047,4),(12050,4),(12062,4),(12069,4),(12071,4),(12081,4),(12083,4),(12086,4),(12089,4),(12095,4),(12117,4),(12119,4),(12122,4),(12123,4),(12128,4),(12131,4),(12136,4),(12137,4),(12140,4),(12146,4),(12156,4),(12157,4),(12168,4),(12171,4),(12173,4),(12180,4),(12186,4),(12192,4),(12196,4),(12219,4),(12223,4),(12233,4),(12244,4),(12257,4),(12259,4),(12262,4),(12263,4),(12277,4),(12280,4),(12281,4),(12289,4),(12295,4),(12298,4),(12302,4),(12305,4),(12311,4),(12318,4),(12319,4),(12325,4),(12332,4),(12334,4),(12337,4),(12340,4),(12342,4),(12344,4),(12351,4),(12356,4),(12361,4),(12362,4),(12377,4),(12391,4),(12395,4),(12403,4),(12404,4),(12406,4),(12408,4),(12409,4),(12416,4),(12425,4),(12430,4),(12434,4),(12435,4),(12444,4),(12446,4),(12450,4),(12457,4),(12458,4),(12460,4),(12463,4),(12469,4),(12473,4),(12475,4),(12482,4),(12494,4),(12495,4),(12512,4),(12513,4),(12520,4),(12524,4),(12525,4),(12530,4),(12532,4),(12533,4),(12536,4),(12541,4),(12543,4),(12544,4),(12548,4),(12556,4),(12563,4),(12571,4),(12572,4),(12578,4),(12579,4),(12580,4),(12586,4),(12587,4),(12595,4),(12597,4),(12601,4),(12602,4),(12609,4),(12610,4),(12616,4),(12618,4),(12628,4),(12635,4),(12636,4),(12654,4),(12663,4),(12672,4),(12674,4),(12680,4),(12683,4),(12686,4),(12693,4),(12696,4),(12702,4),(12708,4),(12714,4),(12723,4),(12736,4),(12746,4),(12761,4),(12765,4),(12778,4),(12779,4),(12782,4),(12784,4),(12786,4),(12794,4),(12797,4),(12812,4),(12813,4),(12817,4),(12818,4),(12820,4),(12821,4),(12825,4),(12831,4),(12832,4),(12842,4),(12844,4),(12850,4),(12853,4),(12855,4),(12857,4),(12863,4),(12869,4),(12879,4),(12880,4),(12886,4),(12887,4),(12890,4),(12892,4),(12908,4),(12909,4),(12910,4),(12913,4),(12914,4),(12915,4),(12917,4),(12921,4),(12924,4),(12926,4),(12936,4),(12942,4),(12945,4),(12947,4),(12948,4),(12949,4),(12960,4),(12964,4),(12966,4),(12967,4),(12971,4),(12986,4),(13007,4),(13008,4),(13010,4),(13013,4),(13014,4),(13026,4),(13039,4),(13054,4),(13068,4),(13081,4),(13087,4),(13090,4),(13104,4),(13106,4),(13107,4),(13121,4),(13122,4),(13123,4),(13124,4),(13131,4),(13140,4),(13144,4),(13153,4),(13157,4),(13161,4),(13166,4),(13170,4),(13172,4),(13173,4),(13181,4),(13187,4),(13188,4),(13198,4),(13201,4),(13209,4),(13212,4),(13217,4),(13221,4),(13224,4),(13229,4),(13233,4),(13237,4),(13249,4),(13250,4),(13255,4),(13272,4),(13274,4),(13278,4),(13282,4),(13283,4),(13294,4),(13301,4),(13302,4),(13316,4),(13317,4),(13322,4),(13323,4),(13334,4),(13342,4),(13344,4),(13350,4),(13352,4),(13354,4),(13357,4),(13361,4),(13366,4),(13367,4),(13368,4),(13380,4),(13387,4),(13390,4),(13400,4),(13405,4),(13420,4),(13429,4),(13435,4),(13436,4),(13440,4),(13448,4),(13449,4),(13450,4),(13454,4),(13465,4),(13471,4),(13474,4),(13475,4),(13477,4),(13478,4),(13483,4),(13486,4),(13495,4),(13506,4),(13508,4),(13511,4),(13513,4),(13515,4),(13526,4),(13534,4),(13547,4),(13548,4),(13549,4),(13553,4),(13555,4),(13563,4),(13569,4),(13579,4),(13584,4),(13585,4),(13592,4),(13605,4),(13611,4),(13628,4),(13631,4),(13641,4),(13643,4),(13661,4),(13662,4),(13669,4),(13680,4),(13692,4),(13706,4),(13710,4),(13720,4),(13735,4),(13741,4),(13750,4),(13752,4),(13756,4),(13759,4),(13766,4),(13775,4),(13788,4),(13795,4),(13798,4),(13802,4),(13813,4),(13814,4),(13821,4),(13822,4),(13834,4),(13836,4),(13842,4),(13849,4),(13854,4),(13855,4),(13869,4),(13875,4),(13888,4),(13895,4),(13903,4),(13909,4),(13915,4),(13916,4),(13923,4),(13966,4),(13968,4),(13980,4),(13984,4),(13989,4),(13993,4),(14013,4),(14024,4),(14026,4),(14027,4),(14028,4),(14038,4),(14039,4),(14040,4),(14043,4),(14044,4),(14047,4),(14050,4),(14062,4),(14064,4),(14099,4),(14100,4),(14107,4),(14111,4),(14113,4),(14121,4),(14125,4),(14131,4),(14137,4),(14146,4),(14152,4),(14159,4),(14174,4),(14181,4),(14183,4),(14193,4),(14194,4),(14197,4),(14199,4),(14217,4),(14220,4),(14225,4),(14227,4),(14234,4),(14238,4),(14249,4),(14257,4),(14258,4),(14261,4),(14262,4),(14272,4),(14281,4),(14306,4),(14308,4),(14319,4),(14329,4),(14336,4),(14338,4),(14341,4),(14342,4),(14344,4),(14351,4),(14352,4),(14363,4),(14369,4),(14370,4),(14376,4),(14378,4),(14386,4),(14387,4),(14407,4),(14411,4),(14418,4),(14430,4),(14439,4),(14443,4),(14447,4),(14448,4),(14451,4),(14452,4),(14461,4),(14462,4),(14469,4),(14470,4),(14484,4),(14485,4),(14489,4),(14506,4),(14510,4),(14512,4),(14516,4),(14518,4),(14536,4),(14541,4),(14549,4),(14560,4),(14568,4),(14570,4),(14580,4),(14590,4),(14602,4),(14611,4),(14613,4),(14618,4),(14646,4),(14652,4),(14661,4),(14664,4),(14666,4),(14685,4),(14689,4),(14691,4),(14698,4),(14699,4),(14709,4),(14713,4),(14718,4),(14724,4),(14726,4),(14727,4),(14735,4),(14741,4),(14747,4),(14767,4),(14777,4),(14781,4),(14783,4),(14784,4),(14786,4),(14790,4),(14791,4),(14794,4),(14797,4),(14798,4),(14805,4),(14812,4),(14822,4),(14834,4),(14844,4),(14849,4),(14854,4),(14860,4),(14869,4),(14879,4),(14885,4),(14886,4),(14890,4),(14901,4),(14909,4),(14916,4),(14917,4),(14919,4),(14920,4),(14922,4),(14926,4),(14930,4),(14933,4),(14947,4),(14952,4),(14953,4),(14955,4),(14961,4),(14966,4),(14974,4),(14988,4),(14989,4),(14992,4),(14994,4),(14996,4),(14998,4),(15011,4),(15020,4),(15033,4),(15038,4),(15046,4),(15067,4),(15068,4),(15078,4),(15084,4),(15087,4),(15089,4),(15090,4),(15093,4),(15115,4),(15126,4),(15132,4),(15144,4),(15148,4),(15149,4),(15151,4),(15154,4),(15160,4),(15167,4),(15168,4),(15169,4),(15176,4),(15182,4),(15190,4),(15196,4),(15197,4),(15201,4),(15209,4),(15224,4),(15235,4),(15242,4),(15244,4),(15252,4),(15265,4),(15273,4),(15285,4),(15289,4),(15290,4),(15291,4),(15293,4),(15294,4),(15316,4),(15318,4),(15322,4),(15325,4),(15328,4),(15342,4),(15343,4),(15352,4),(15355,4),(15356,4),(15366,4),(15367,4),(15377,4),(15379,4),(15382,4),(15386,4),(15387,4),(15391,4),(15397,4),(15406,4),(15409,4),(15422,4),(15441,4),(15461,4),(15471,4),(15472,4),(15474,4),(15475,4),(15477,4),(15484,4),(15492,4),(15499,4),(15500,4),(15513,4),(15517,4),(15520,4),(15524,4),(15540,4),(15542,4),(15549,4),(15568,4),(15583,4),(15588,4),(15599,4),(15604,4),(15606,4),(15607,4),(15612,4),(15614,4),(15615,4),(15617,4),(15621,4),(15628,4),(15629,4),(15633,4),(15635,4),(15660,4),(15663,4),(15674,4),(15676,4),(15699,4),(15708,4),(15711,4),(15720,4),(15726,4),(15727,4),(15728,4),(15730,4),(15731,4),(15740,4),(15742,4),(15745,4),(15747,4),(15750,4),(15754,4),(15775,4),(15777,4),(15779,4),(15780,4),(15784,4),(15786,4),(15788,4),(15794,4),(15798,4),(15817,4),(15825,4),(15826,4),(15827,4),(15833,4),(15837,4),(15840,4),(15845,4),(15853,4),(15855,4),(15869,4),(15872,4),(15874,4),(15875,4),(15884,4),(15885,4),(15896,4),(15904,4),(15905,4),(15918,4),(15919,4),(15927,4),(15929,4),(15939,4),(15942,4),(15947,4),(15950,4),(15951,4),(15960,4),(15964,4),(15971,4),(15974,4),(15980,4),(15992,4),(15994,4),(16008,4),(16010,4),(16012,4),(16020,4),(16021,4),(16025,4),(16034,4),(16040,4),(16055,4),(16061,4),(16062,4),(16068,4),(16072,4),(16077,4),(16079,4),(16081,4),(16102,4),(16108,4),(16132,4),(16134,4),(16152,4),(16156,4),(16157,4),(16158,4),(16163,4),(16174,4),(16179,4),(16192,4),(16203,4),(16214,4),(16224,4),(16234,4),(16243,4),(16247,4),(16253,4),(16255,4),(16257,4),(16261,4),(16277,4),(16281,4),(16287,4),(16288,4),(16292,4),(16297,4),(16299,4),(16305,4),(16322,4),(16335,4),(16340,4),(16353,4),(16359,4),(16376,4),(16381,4),(16391,4),(16392,4),(16396,4),(16417,4),(16424,4),(16425,4),(16427,4),(16439,4),(16442,4),(16444,4),(16448,4),(16452,4),(16459,4),(16468,4),(16473,4),(16474,4),(16486,4),(16500,4),(16501,4),(16510,4),(16529,4),(16533,4),(16535,4),(16541,4),(16546,4),(16556,4),(16561,4),(16569,4),(16582,4),(16602,4),(16610,4),(16613,4),(16614,4),(16615,4),(16616,4),(16622,4),(16624,4),(16628,4),(16630,4),(16632,4),(16641,4),(16646,4),(16649,4),(16675,4),(16701,4),(16711,4),(16713,4),(16720,4),(16722,4),(16728,4),(16745,4),(16748,4),(16752,4),(16756,4),(16759,4),(16767,4),(16770,4),(16774,4),(16775,4),(16779,4),(16786,4),(16794,4),(16796,4),(16799,4),(16801,4),(16802,4),(16810,4),(16812,4),(16816,4),(16828,4),(16831,4),(16838,4),(16840,4),(16844,4),(16845,4),(16856,4),(16860,4),(16861,4),(16864,4),(16869,4),(16875,4),(16878,4),(16880,4),(16898,4),(16900,4),(16906,4),(16907,4),(16913,4),(16914,4),(16920,4),(16934,4),(16938,4),(16949,4),(16976,4),(16990,4),(16992,4),(16999,4),(17000,4),(17003,4),(17004,4),(17016,4),(17022,4),(17029,4),(17030,4),(17031,4),(17036,4),(17037,4),(17047,4),(17050,4),(17055,4),(17077,4),(17079,4),(17085,4),(17088,4),(17089,4),(17102,4),(17103,4),(17113,4),(17120,4),(17132,4),(17137,4),(17138,4),(17145,4),(17150,4),(17153,4),(17156,4),(17157,4),(17159,4),(17171,4),(17176,4),(17178,4),(17181,4),(17187,4),(17206,4),(17207,4),(17215,4),(17223,4),(17229,4),(17231,4),(17232,4),(17240,4),(17241,4),(17247,4),(17253,4),(17254,4),(17275,4),(17285,4),(17288,4),(17289,4),(17295,4),(17298,4),(17310,4),(17322,4),(17323,4),(17338,4),(17346,4),(17347,4),(17353,4),(17363,4),(17364,4),(17371,4),(17372,4),(17378,4),(17383,4),(17384,4),(17389,4),(17390,4),(17392,4),(17400,4),(17408,4),(17437,4),(17454,4),(17457,4),(17464,4),(17473,4),(17495,4),(17502,4),(17511,4),(17528,4),(17550,4),(17552,4),(17558,4),(17559,4),(17561,4),(17569,4),(17581,4),(17593,4),(17601,4),(17603,4),(17607,4),(17616,4),(17621,4),(17629,4),(17635,4),(17638,4),(17640,4),(17642,4),(17643,4),(17646,4),(17647,4),(17654,4),(17656,4),(17663,4),(17669,4),(17670,4),(17674,4),(17676,4),(17677,4),(17687,4),(17688,4),(17696,4),(17704,4),(17705,4),(17707,4),(17708,4),(17714,4),(17715,4),(17719,4),(17720,4),(17728,4),(17743,4),(17745,4),(17746,4),(17749,4),(17758,4),(17763,4),(17766,4),(17781,4),(17785,4),(17795,4),(17811,4),(17817,4),(17818,4),(17820,4),(17822,4),(17826,4),(17829,4),(17832,4),(17836,4),(17840,4),(17849,4),(17854,4),(17863,4),(17867,4),(17888,4),(17906,4),(17907,4),(17918,4),(17923,4),(17935,4),(17953,4),(17961,4),(17962,4),(17965,4),(17968,4),(17971,4),(17974,4),(17978,4),(17982,4),(17985,4),(17989,4),(17992,4),(17998,4),(18000,4),(18002,4),(18014,4),(18024,4),(18029,4),(18035,4),(18036,4),(18039,4),(18043,4),(18044,4),(18046,4),(18056,4),(18057,4),(18062,4),(18068,4),(18072,4),(18078,4),(18085,4),(18088,4),(18101,4),(18105,4),(18106,4),(18108,4),(18113,4),(18117,4),(18119,4),(18120,4),(18129,4),(18134,4),(18145,4),(18149,4),(18152,4),(18158,4),(18160,4),(18164,4),(18169,4),(18170,4),(18172,4),(18174,4),(18175,4),(18178,4),(18183,4),(18197,4),(18198,4),(18203,4),(18211,4),(18212,4),(18214,4),(18218,4),(18223,4),(18231,4),(18232,4),(18244,4),(18245,4),(18248,4),(18249,4),(18258,4),(18272,4),(18290,4),(18302,4),(18314,4),(18317,4),(18323,4),(18332,4),(18335,4),(18340,4),(18348,4),(18351,4),(18352,4),(18355,4),(18356,4),(18360,4),(18367,4),(18384,4),(18388,4),(18389,4),(18393,4),(18412,4),(18431,4),(18433,4),(18444,4),(18445,4),(18454,4),(18462,4),(18472,4),(18473,4),(18475,4),(18488,4),(18494,4),(18518,4),(18531,4),(18539,4),(18544,4),(18545,4),(18548,4),(18550,4),(18552,4),(18554,4),(18559,4),(18562,4),(18564,4),(18568,4),(18574,4),(18578,4),(18582,4),(18589,4),(18597,4),(18608,4),(18613,4),(18616,4),(18620,4),(18626,4),(18627,4),(18631,4),(18636,4),(18638,4),(18640,4),(18656,4),(18659,4),(18665,4),(18670,4),(18673,4),(18682,4),(18695,4),(18699,4),(18702,4),(18704,4),(18705,4),(18717,4),(18718,4),(18722,4),(18726,4),(18729,4),(18738,4),(18741,4),(18767,4),(18770,4),(18775,4),(18787,4),(18791,4),(18795,4),(18807,4),(18808,4),(18811,4),(18812,4),(18818,4),(18819,4),(18827,4),(18828,4),(18833,4),(18836,4),(18839,4),(18851,4),(18853,4),(18869,4),(18870,4),(18874,4),(18885,4),(18895,4),(18901,4),(18903,4),(18913,4),(18923,4),(18937,4),(18943,4),(18944,4),(18952,4),(18954,4),(18955,4),(18957,4),(18969,4),(18972,4),(18973,4),(18976,4),(18977,4),(18982,4),(18986,4),(18989,4),(19002,4),(19004,4),(19006,4),(19010,4),(19022,4),(19028,4),(19038,4),(19043,4),(19045,4),(19046,4),(19053,4),(19061,4),(19062,4),(19071,4),(19074,4),(19084,4),(19093,4),(19095,4),(19103,4),(19108,4),(19110,4),(19111,4),(19124,4),(19129,4),(19130,4),(19134,4),(19139,4),(19144,4),(19146,4),(19148,4),(19157,4),(19161,4),(19167,4),(19170,4),(19173,4),(19178,4),(19181,4),(19189,4),(19194,4),(19200,4),(19210,4),(19212,4),(19220,4),(19226,4),(19228,4),(19229,4),(19232,4),(19233,4),(19234,4),(19238,4),(19241,4),(19244,4),(19249,4),(19258,4),(19261,4),(19266,4),(19267,4),(19269,4),(19274,4),(19277,4),(19288,4),(19289,4),(19290,4),(19298,4),(19299,4),(19309,4),(19310,4),(19311,4),(19320,4),(19324,4),(19325,4),(19329,4),(19336,4),(19343,4),(19346,4),(19348,4),(19349,4),(19350,4),(19358,4),(19379,4),(19383,4),(19391,4),(19394,4),(19397,4),(19407,4),(19410,4),(19418,4),(19423,4),(19426,4),(19428,4),(19429,4),(19433,4),(19437,4),(19443,4),(19444,4),(19445,4),(19446,4),(19451,4),(19461,4),(19468,4),(19470,4),(19471,4),(19477,4),(19487,4),(19488,4),(19495,4),(19498,4),(19512,4),(19520,4),(19530,4),(19541,4),(19543,4),(19544,4),(19549,4),(19555,4),(19560,4),(19572,4),(19575,4),(19584,4),(19593,4),(19612,4),(19615,4),(19624,4),(19630,4),(19635,4),(19641,4),(19654,4),(19661,4),(19686,4),(19695,4),(19707,4),(19710,4),(19711,4),(19716,4),(19736,4),(19738,4),(19739,4),(19743,4),(19747,4),(19757,4),(19760,4),(19784,4),(19796,4),(19797,4),(19806,4),(19809,4),(19838,4),(19841,4),(19854,4),(19873,4),(19875,4),(19882,4),(19883,4),(19890,4),(19895,4),(19899,4),(19908,4),(19909,4),(19915,4),(19921,4),(19928,4),(19930,4),(19936,4),(19938,4),(19941,4),(19942,4),(19950,4),(19953,4),(19956,4),(19961,4),(19964,4),(19971,4),(19976,4),(19995,4),(20001,4),(20009,4),(20011,4),(20021,4),(20034,4),(20036,4),(20051,4),(20053,4),(20060,4),(20070,4),(20075,4),(20081,4),(20098,4),(20101,4),(20123,4),(20126,4),(20130,4),(20142,4),(20150,4),(20153,4),(20159,4),(20169,4),(20170,4),(20172,4),(20173,4),(20175,4),(20193,4),(20197,4),(20204,4),(20216,4),(20217,4),(20220,4),(20224,4),(20227,4),(20228,4),(20231,4),(20232,4),(20235,4),(20237,4),(20249,4),(20251,4),(20252,4),(20260,4),(20263,4),(20266,4),(20270,4),(20271,4),(20276,4),(20282,4),(20283,4),(20299,4),(20300,4),(20302,4),(20305,4),(20308,4),(20310,4),(20330,4),(20331,4),(20356,4),(20357,4),(20361,4),(20362,4),(20363,4),(20371,4),(20372,4),(20373,4),(20374,4),(20375,4),(20378,4),(20379,4),(20390,4),(20391,4),(20393,4),(20397,4),(20398,4),(20416,4),(20419,4),(20420,4),(20422,4),(20426,4),(20433,4),(20434,4),(20443,4),(20451,4),(20462,4),(20476,4),(20478,4),(20479,4),(20486,4),(20487,4),(20490,4),(20493,4),(20501,4),(20503,4),(20509,4),(20526,4),(20535,4),(20544,4),(20553,4),(20555,4),(20556,4),(20557,4),(20565,4),(20569,4),(20572,4),(20583,4),(20589,4),(20591,4),(20592,4),(20599,4),(20603,4),(20604,4),(20606,4),(20607,4),(20612,4),(20613,4),(20614,4),(20631,4),(20644,4),(20647,4),(20662,4),(20668,4),(20669,4),(20676,4),(20677,4),(20682,4),(20683,4),(20689,4),(20690,4),(20697,4),(20700,4),(20705,4),(20716,4),(20723,4),(20732,4),(20733,4),(20746,4),(20758,4),(20774,4),(20779,4),(20784,4),(20786,4),(20793,4),(20800,4),(20804,4),(20812,4),(20821,4),(20831,4),(20835,4),(20839,4),(20840,4),(20844,4),(20853,4),(20854,4),(20858,4),(20866,4),(20868,4),(20873,4),(20874,4),(20876,4),(20879,4),(20893,4),(20899,4),(20911,4),(20914,4),(20915,4),(20918,4),(20920,4),(20931,4),(20932,4),(20935,4),(20961,4),(20976,4),(20980,4),(20988,4),(20989,4),(21013,4),(21015,4),(21021,4),(21030,4),(21032,4),(21033,4),(21036,4),(21050,4),(21070,4),(21074,4),(21094,4),(21106,4),(21109,4),(21111,4),(21120,4),(21122,4),(21143,4),(21144,4),(21153,4),(21154,4),(21162,4),(21165,4),(21167,4),(21168,4),(21174,4),(21181,4),(21183,4),(21184,4),(21186,4),(21188,4),(21193,4),(21210,4),(21211,4),(21216,4),(21218,4),(21219,4),(21221,4),(21235,4),(21237,4),(21244,4),(21249,4),(21289,4),(21312,4),(21315,4),(21341,4),(21342,4),(21359,4),(21360,4),(21361,4),(21370,4),(21373,4),(21378,4),(21381,4),(21396,4),(21403,4),(21406,4),(21407,4),(21411,4),(21413,4),(21419,4),(21420,4),(21422,4),(21423,4),(21433,4),(21437,4),(21448,4),(21451,4),(21456,4),(21459,4),(21470,4),(21488,4),(21489,4),(21493,4),(21494,4),(21497,4),(21499,4),(21503,4),(21525,4),(21528,4),(21529,4),(21539,4),(21542,4),(21545,4),(21550,4),(21554,4),(21562,4),(21567,4),(21573,4),(21583,4),(21592,4),(21593,4),(21600,4),(21612,4),(21614,4),(21615,4),(21631,4),(21632,4),(21634,4),(21646,4),(21662,4),(21666,4),(21671,4),(21672,4),(21673,4),(21685,4),(21691,4),(21696,4),(21697,4),(21703,4),(21710,4),(21711,4),(21720,4),(21730,4),(21740,4),(21746,4),(21747,4),(21748,4),(21752,4),(21757,4),(21759,4),(21777,4),(21778,4),(21783,4),(21785,4),(21789,4),(21790,4),(21805,4),(21809,4),(21815,4),(21817,4),(21819,4),(21821,4),(21829,4),(21833,4),(21847,4),(21848,4),(21851,4),(21854,4),(21873,4),(21892,4),(21894,4),(21905,4),(21906,4),(21907,4),(21914,4),(21917,4),(21929,4),(21946,4),(21960,4),(21969,4),(21977,4),(21988,4),(21998,4),(21999,4),(22007,4),(22010,4),(22014,4),(22028,4),(22029,4),(22030,4),(22033,4),(22034,4),(22037,4),(22053,4),(22060,4),(22061,4),(22070,4),(22081,4),(22084,4),(22096,4),(22101,4),(22110,4),(22114,4),(22117,4),(22119,4),(22131,4),(22133,4),(22136,4),(22141,4),(22142,4),(22144,4),(22146,4),(22147,4),(22151,4),(22154,4),(22173,4),(22178,4),(22181,4),(22201,4),(22215,4),(22218,4),(22222,4),(22230,4),(22234,4),(22243,4),(22255,4),(22263,4),(22266,4),(22268,4),(22271,4),(22276,4),(22277,4),(22294,4),(22299,4),(22327,4),(22334,4),(22335,4),(22340,4),(22354,4),(22355,4),(22358,4),(22367,4),(22371,4),(22374,4),(22379,4),(22385,4),(22386,4),(22389,4),(22390,4),(22391,4),(22407,4),(22421,4),(22423,4),(22425,4),(22427,4),(22428,4),(22430,4),(22431,4),(22434,4),(22444,4),(22453,4),(22457,4),(22458,4),(22459,4),(22460,4),(22463,4),(22487,4),(22488,4),(22490,4),(22493,4),(22497,4),(22505,4),(22507,4),(22512,4),(22515,4),(22520,4),(22536,4),(22537,4),(22548,4),(22553,4),(22561,4),(22566,4),(22567,4),(22583,4),(22585,4),(22586,4),(22587,4),(22598,4),(22600,4),(22619,4),(22620,4),(22628,4),(22632,4),(22656,4),(22669,4),(22670,4),(22671,4),(22672,4),(22677,4),(22681,4),(22684,4),(22692,4),(22713,4),(22717,4),(22718,4),(22721,4),(22728,4),(22746,4),(22768,4),(22770,4),(22776,4),(22781,4),(22796,4),(22798,4),(22800,4),(22804,4),(22813,4),(22820,4),(22825,4),(22832,4),(22834,4),(22839,4),(22850,4),(22853,4),(22854,4),(22856,4),(22868,4),(22875,4),(22880,4),(22903,4),(22908,4),(22918,4),(22921,4),(22934,4),(22951,4),(22954,4),(22956,4),(22961,4),(22966,4),(22985,4),(22991,4),(23010,4),(23012,4),(23019,4),(23021,4),(23028,4),(23036,4),(23060,4),(23061,4),(23062,4),(23063,4),(23065,4),(23073,4),(23076,4),(23080,4),(23083,4),(23090,4),(23093,4),(23094,4),(23096,4),(23111,4),(23119,4),(23126,4),(23128,4),(23132,4),(23134,4),(23136,4),(23137,4),(23145,4),(23154,4),(23168,4),(23172,4),(23175,4),(23176,4),(23180,4),(23186,4),(23188,4),(23190,4),(23197,4),(23201,4),(23208,4),(23209,4),(23222,4),(23232,4),(23243,4),(23247,4),(23253,4),(23256,4),(23257,4),(23260,4),(23264,4),(23266,4),(23274,4),(23316,4),(23317,4),(23320,4),(23325,4),(23328,4),(23329,4),(23331,4),(23332,4),(23335,4),(23351,4),(23356,4),(23363,4),(23375,4),(23380,4),(23391,4),(23392,4),(23400,4),(23410,4),(23419,4),(23421,4),(23424,4),(23438,4),(23440,4),(23441,4),(23448,4),(23451,4),(23455,4),(23456,4),(23462,4),(23481,4),(23488,4),(23498,4),(23503,4),(23509,4),(23523,4),(23528,4),(23534,4),(23536,4),(23541,4),(23544,4),(23561,4),(23570,4),(23571,4),(23581,4),(23584,4),(23586,4),(23587,4),(23588,4),(23600,4),(23605,4),(23608,4),(23613,4),(23615,4),(23621,4),(23632,4),(23639,4),(23641,4),(23646,4),(23660,4),(23662,4),(23665,4),(23666,4),(23672,4),(23677,4),(23685,4),(23691,4),(23692,4),(23707,4),(23718,4),(23719,4),(23725,4),(23726,4),(23734,4),(23747,4),(23749,4),(23750,4),(23751,4),(23757,4),(23769,4),(23772,4),(23777,4),(23779,4),(23785,4),(23791,4),(23792,4),(23796,4),(23806,4),(23827,4),(23851,4),(23856,4),(23857,4),(23862,4),(23864,4),(23868,4),(23872,4),(23885,4),(23887,4),(23891,4),(23892,4),(23896,4),(23902,4),(23911,4),(23913,4),(23917,4),(23921,4),(23934,4),(23935,4),(23941,4),(23943,4),(23944,4),(23951,4),(23955,4),(23964,4),(23966,4),(23974,4),(23982,4),(23999,4),(24001,4),(24002,4),(24007,4),(24026,4),(24036,4),(24044,4),(24046,4),(24052,4),(24068,4),(24078,4),(24079,4),(24087,4),(24090,4),(24093,4),(24096,4),(24103,4),(24111,4),(24116,4),(24118,4),(24121,4),(24129,4),(24134,4),(24137,4),(24140,4),(24141,4),(24161,4),(24170,4),(24176,4),(24178,4),(24184,4),(24190,4),(24204,4),(24206,4),(24212,4),(24217,4),(24219,4),(24221,4),(24224,4),(24225,4),(24232,4),(24236,4),(24237,4),(24239,4),(24243,4),(24255,4),(24266,4),(24272,4),(24273,4),(24277,4),(24305,4),(24310,4),(24314,4),(24318,4),(24322,4),(24325,4),(24330,4),(24337,4),(24339,4),(24351,4),(24359,4),(24364,4),(24367,4),(24375,4),(24377,4),(24385,4),(24387,4),(24395,4),(24399,4),(24400,4),(24414,4),(24418,4),(24419,4),(24420,4),(24433,4),(24441,4),(24456,4),(24463,4),(24465,4),(24467,4),(24472,4),(24475,4),(24487,4),(24488,4),(24496,4),(24516,4),(24533,4),(24536,4),(24538,4),(24544,4),(24552,4),(24558,4),(24567,4),(24572,4),(24576,4),(24583,4),(24589,4),(24605,4),(24610,4),(24616,4),(24621,4),(24626,4),(24628,4),(24635,4),(24639,4),(24653,4),(24655,4),(24665,4),(24667,4),(24669,4),(24670,4),(24692,4),(24706,4),(24710,4),(24713,4),(24718,4),(24734,4),(24737,4),(24739,4),(24741,4),(24744,4),(24751,4),(24770,4),(24783,4),(24787,4),(24788,4),(24795,4),(24806,4),(24816,4),(24828,4),(24836,4),(24849,4),(24853,4),(24860,4),(24863,4),(24864,4),(24865,4),(24867,4),(24871,4),(24872,4),(24877,4),(24879,4),(24880,4),(24891,4),(24893,4),(24896,4),(24897,4),(24905,4),(24907,4),(24909,4),(24912,4),(24933,4),(24936,4),(24937,4),(24939,4),(24944,4),(24949,4),(24954,4),(24966,4),(24967,4),(24973,4),(24978,4),(24981,4),(24986,4),(24996,4),(25002,4),(25006,4),(25008,4),(25013,4),(25014,4),(25028,4),(25030,4),(25034,4),(25036,4),(25039,4),(25043,4),(25044,4),(25046,4),(25061,4),(25068,4),(25077,4),(25098,4),(25099,4),(25102,4),(25109,4),(25110,4),(25112,4),(25122,4),(25124,4),(25134,4),(25140,4),(25143,4),(25150,4),(25152,4),(25155,4),(25158,4),(25161,4),(25165,4),(25166,4),(25168,4),(25169,4),(25185,4),(25187,4),(25191,4),(25194,4),(25197,4),(25200,4),(25201,4),(25202,4),(25204,4),(25209,4),(25211,4),(25216,4),(25217,4),(25221,4),(25222,4),(25231,4),(25232,4),(25242,4),(25245,4),(25250,4),(25266,4),(25271,4),(25278,4),(25279,4),(25294,4),(25299,4),(25306,4),(25311,4),(25328,4),(25331,4),(25337,4),(25342,4),(25369,4),(25375,4),(25376,4),(25384,4),(25395,4),(25401,4),(25406,4),(25408,4),(25409,4),(25425,4),(25432,4),(25473,4),(25486,4),(25487,4),(25492,4),(25498,4),(25499,4),(25500,4),(25512,4),(25522,4),(25523,4),(25537,4),(25548,4),(25562,4),(25564,4),(25577,4),(25583,4),(25598,4),(25603,4),(25611,4),(25625,4),(25627,4),(25629,4),(25631,4),(25641,4),(25644,4),(25646,4),(25652,4),(25661,4),(25666,4),(25668,4),(25673,4),(25679,4),(25682,4),(25683,4),(25690,4),(25691,4),(25692,4),(25707,4),(25710,4),(25711,4),(25721,4),(25722,4),(25727,4),(25730,4),(25735,4),(25736,4),(25750,4),(25755,4),(25762,4),(25771,4),(25779,4),(25794,4),(25806,4),(25809,4),(25824,4),(25832,4),(25834,4),(25835,4),(25841,4),(25853,4),(25864,4),(25865,4),(25869,4),(25880,4),(25881,4),(25890,4),(25902,4),(25913,4),(25925,4),(25927,4),(25928,4),(25933,4),(25938,4),(25939,4),(25957,4),(25972,4),(25973,4),(25986,4),(25987,4),(25992,4),(26001,4),(26002,4),(26011,4),(26012,4),(26014,4),(26017,4),(26027,4),(26029,4),(26052,4),(26065,4),(26066,4),(26075,4),(26091,4),(26092,4),(26095,4),(26112,4),(26120,4),(26125,4),(26129,4),(26144,4),(26156,4),(26157,4),(26165,4),(26173,4),(26183,4),(26185,4),(26196,4),(26200,4),(26202,4),(26230,4),(26232,4),(26250,4),(26260,4),(26268,4),(26274,4),(26276,4),(26281,4),(26282,4),(26289,4),(26290,4),(26293,4),(26294,4),(26300,4),(26301,4),(26303,4),(26309,4),(26310,4),(26320,4),(26321,4),(26325,4),(26329,4),(26336,4),(26343,4),(26349,4),(26355,4),(26370,4),(26374,4),(26375,4),(26380,4),(26383,4),(26391,4),(26392,4),(26395,4),(26396,4),(26401,4),(26404,4),(26436,4),(26445,4),(26446,4),(26457,4),(26465,4),(26466,4),(26478,4),(26479,4),(26481,4),(26490,4),(26491,4),(26498,4),(26502,4),(26506,4),(26510,4),(26512,4),(26515,4),(26516,4),(26520,4),(26521,4),(26523,4),(26528,4),(26529,4),(26539,4),(26540,4),(26544,4),(26554,4),(26571,4),(26576,4),(26582,4),(26588,4),(26593,4),(26596,4),(26603,4),(26607,4),(26612,4),(26614,4),(26621,4),(26632,4),(26636,4),(26637,4),(26643,4),(26654,4),(26657,4),(26663,4),(26674,4),(26687,4),(26691,4),(26699,4),(26707,4),(26716,4),(26727,4),(26729,4),(26730,4),(26731,4),(26740,4),(26743,4),(26755,4),(26758,4),(26761,4),(26773,4),(26777,4),(26795,4),(26797,4),(26820,4),(26840,4),(26843,4),(26845,4),(26862,4),(26863,4),(26866,4),(26867,4),(26882,4),(26887,4),(26888,4),(26891,4),(26895,4),(26899,4),(26906,4),(26907,4),(26917,4),(26918,4),(26925,4),(26931,4),(26932,4),(26944,4),(26948,4),(26951,4),(26955,4),(26956,4),(26958,4),(26963,4),(26970,4),(26974,4),(26981,4),(26985,4),(26986,4),(26987,4),(26989,4),(26997,4),(27000,4),(27007,4),(27020,4),(27027,4),(27046,4),(27053,4),(27060,4),(27063,4),(27066,4),(27068,4),(27071,4),(27084,4),(27088,4),(27090,4),(27097,4),(27101,4),(27113,4),(27127,4),(27134,4),(27141,4),(27150,4),(27152,4),(27176,4),(27181,4),(27209,4),(27211,4),(27215,4),(27221,4),(27238,4),(27243,4),(27247,4),(27248,4),(27250,4),(27262,4),(27268,4),(27272,4),(27273,4),(27274,4),(27286,4),(27291,4),(27302,4),(27311,4),(27319,4),(27320,4),(27332,4),(27338,4),(27339,4),(27341,4),(27348,4),(27350,4),(27356,4),(27370,4),(27374,4),(27376,4),(27378,4),(27379,4),(27380,4),(27385,4),(27386,4),(27393,4),(27397,4),(27416,4),(27430,4),(27431,4),(27435,4),(27436,4),(27450,4),(27463,4),(27474,4),(27476,4),(27482,4),(27483,4),(27492,4),(27493,4),(27496,4),(27506,4),(27517,4),(27523,4),(27525,4),(27528,4),(27529,4),(27551,4),(27562,4),(27563,4),(27564,4),(27567,4),(27569,4),(27574,4),(27576,4),(27586,4),(27592,4),(27602,4),(27605,4),(27616,4),(27622,4),(27623,4),(27635,4),(27637,4),(27640,4),(27644,4),(27654,4),(27661,4),(27674,4),(27676,4),(27679,4),(27682,4),(27688,4),(27692,4),(27703,4),(27713,4),(27714,4),(27723,4),(27745,4),(27746,4),(27761,4),(27767,4),(27772,4),(27773,4),(27777,4),(27801,4),(27802,4),(27811,4),(27817,4),(27821,4),(27824,4),(27834,4),(27850,4),(27851,4),(27860,4),(27862,4),(27873,4),(27878,4),(27887,4),(27900,4),(27904,4),(27915,4),(27926,4),(27927,4),(27928,4),(27956,4),(27965,4),(27967,4),(27970,4),(27971,4),(27977,4),(27982,4),(27984,4),(27987,4),(27993,4),(27995,4),(28020,4),(28021,4),(28032,4),(28033,4),(28035,4),(28036,4),(28037,4),(28041,4),(28044,4),(28051,4),(28054,4),(28055,4),(28074,4),(28091,4),(28092,4),(28099,4),(28104,4),(28112,4),(28113,4),(28127,4),(28128,4),(28134,4),(28147,4),(28150,4),(28158,4),(28164,4),(28171,4),(28178,4),(28180,4),(28182,4),(28185,4),(28187,4),(28198,4),(28200,4),(28202,4),(28211,4),(28213,4),(28222,4),(28230,4),(28231,4),(28239,4),(28249,4),(28251,4),(28254,4),(28257,4),(28258,4),(28269,4),(28280,4),(28288,4),(28293,4),(28296,4),(28297,4),(28298,4),(28309,4),(28343,4),(28361,4),(28364,4),(28368,4),(28388,4),(28392,4),(28394,4),(28399,4),(28402,4),(28415,4),(28430,4),(28432,4),(28477,4),(28497,4),(28500,4),(28508,4),(28521,4),(28525,4),(28527,4),(28528,4),(28529,4),(28533,4),(28535,4),(28544,4),(28548,4),(28549,4),(28554,4),(28577,4),(28588,4),(28593,4),(28601,4),(28603,4),(28606,4),(28618,4),(28619,4),(28623,4),(28630,4),(28644,4),(28655,4),(28675,4),(28696,4),(28709,4),(28710,4),(28714,4),(28723,4),(28726,4),(28727,4),(28729,4),(28730,4),(28738,4),(28745,4),(28747,4),(28757,4),(28759,4),(28760,4),(28776,4),(28778,4),(28783,4),(28785,4),(28790,4),(28793,4),(28816,4),(28820,4),(28823,4),(28824,4),(28838,4),(28840,4),(28846,4),(28847,4),(28850,4),(28855,4),(28858,4),(28870,4),(28877,4),(28880,4),(28881,4),(28885,4),(28888,4),(28903,4),(28920,4),(28921,4),(28923,4),(28928,4),(28941,4),(28953,4),(28956,4),(28964,4),(28977,4),(28981,4),(28982,4),(28992,4),(28994,4),(29013,4),(29018,4),(29024,4),(29027,4),(29039,4),(29044,4),(29047,4),(29052,4),(29054,4),(29056,4),(29062,4),(29063,4),(29068,4),(29071,4),(29072,4),(29087,4),(29097,4),(29100,4),(29101,4),(29110,4),(29116,4),(29117,4),(29119,4),(29127,4),(29135,4),(29145,4),(29156,4),(29162,4),(29193,4),(29206,4),(29218,4),(29220,4),(29221,4),(29224,4),(29232,4),(29247,4),(29248,4),(29252,4),(29268,4),(29273,4),(29277,4),(29281,4),(29282,4),(29284,4),(29290,4),(29299,4),(29301,4),(29304,4),(29305,4),(29324,4),(29326,4),(29333,4),(29349,4),(29372,4),(29381,4),(29396,4),(29406,4),(29414,4),(29416,4),(29418,4),(29435,4),(29444,4),(29451,4),(29457,4),(29460,4),(29474,4),(29480,4),(29491,4),(29496,4),(29499,4),(29501,4),(29507,4),(29542,4),(29546,4),(29547,4),(29550,4),(29553,4),(29556,4),(29562,4),(29563,4),(29566,4),(29568,4),(29571,4),(29589,4),(29592,4),(29602,4),(29603,4),(29611,4),(29616,4),(29623,4),(29628,4),(29629,4),(29651,4),(29652,4),(29683,4),(29695,4),(29699,4),(29704,4),(29709,4),(29723,4),(29725,4),(29726,4),(29727,4),(29737,4),(29738,4),(29744,4),(29752,4),(29753,4),(29754,4),(29758,4),(29769,4),(29776,4),(29780,4),(29782,4),(29785,4),(29789,4),(29790,4),(29791,4),(29794,4),(29795,4),(29808,4),(29815,4),(29823,4),(29825,4),(29827,4),(29834,4),(29843,4),(29854,4),(29855,4),(29867,4),(29869,4),(29877,4),(29878,4),(29881,4),(29897,4),(29900,4),(29906,4),(29919,4),(29924,4),(29940,4),(29958,4),(29959,4),(29961,4),(29965,4),(29967,4),(29969,4),(29970,4),(29991,4),(29997,4),(29998,4),(30001,4),(30007,4),(30010,4),(30016,4),(30038,4),(30041,4),(30055,4),(30060,4),(30063,4),(30067,4),(30068,4),(30071,4),(30072,4),(30077,4),(30080,4),(30082,4),(30097,4),(30119,4),(30127,4),(30128,4),(30137,4),(30141,4),(30163,4),(30172,4),(30180,4),(30181,4),(30187,4),(30189,4),(30191,4),(30206,4),(30214,4),(30215,4),(30218,4),(30219,4),(30225,4),(30227,4),(30229,4),(30243,4),(30245,4),(30247,4),(30259,4),(30261,4),(30266,4),(30274,4),(30278,4),(30280,4),(30282,4),(30290,4),(30293,4),(30299,4),(30303,4),(30311,4),(30319,4),(30336,4),(30351,4),(30354,4),(30359,4),(30367,4),(30371,4),(30382,4),(30384,4),(30390,4),(30405,4),(30410,4),(30414,4),(30415,4),(30420,4),(30432,4),(30434,4),(30436,4),(30440,4),(30445,4),(30450,4),(30456,4),(30460,4),(30471,4),(30474,4),(30476,4),(30487,4),(30488,4),(30492,4),(30500,4),(30524,4),(30525,4),(30527,4),(30531,4),(30544,4),(30550,4),(30552,4),(30558,4),(30564,4),(30566,4),(30574,4),(30576,4),(30595,4),(30605,4),(30606,4),(30607,4),(30609,4),(30614,4),(30626,4),(30639,4),(30640,4),(30650,4),(30651,4),(30655,4),(30657,4),(30660,4),(30664,4),(30667,4),(30671,4),(30675,4),(30677,4),(30678,4),(30680,4),(30683,4),(30688,4),(30691,4),(30693,4),(30707,4),(30708,4),(30718,4),(30722,4),(30724,4),(30726,4),(30732,4),(30737,4),(30739,4),(30740,4),(30753,4),(30755,4),(30756,4),(30767,4),(30775,4),(30776,4),(30781,4),(30786,4),(30791,4),(30792,4),(30796,4),(30800,4),(30806,4),(30807,4),(30813,4),(30816,4),(30823,4),(30829,4),(30836,4),(30849,4),(30854,4),(30858,4),(30859,4),(30862,4),(30873,4),(30880,4),(30892,4),(30901,4),(30903,4),(30907,4),(30918,4),(30921,4),(30923,4),(30928,4),(30931,4),(30933,4),(30937,4),(30942,4),(30955,4),(30957,4),(30959,4),(30968,4),(30969,4),(30973,4),(30977,4),(30978,4),(30980,4),(30983,4),(30988,4),(30990,4),(30993,4),(30995,4),(30997,4),(31028,4),(31045,4),(31048,4),(31051,4),(31055,4),(31056,4),(31066,4),(31069,4),(31078,4),(31081,4),(31083,4),(31084,4),(31104,4),(31106,4),(31123,4),(31134,4),(31140,4),(31142,4),(31149,4),(31151,4),(31152,4),(31160,4),(31165,4),(31169,4),(31172,4),(31173,4),(31183,4),(31184,4),(31190,4),(31191,4),(31200,4),(31204,4),(31212,4),(31222,4),(31223,4),(31224,4),(31230,4),(31245,4),(31258,4),(31268,4),(31269,4),(31272,4),(31276,4),(31277,4),(31280,4),(31282,4),(31283,4),(31284,4),(31285,4),(31294,4),(31296,4),(31297,4),(31299,4),(31300,4),(31309,4),(31310,4),(31316,4),(31326,4),(31334,4),(31341,4),(31346,4),(31353,4),(31355,4),(31360,4),(31370,4),(31378,4),(31385,4),(31393,4),(31402,4),(31415,4),(31424,4),(31430,4),(31437,4),(31445,4),(31458,4),(31459,4),(31463,4),(31468,4),(31470,4),(31480,4),(31482,4),(31492,4),(31493,4),(31504,4),(31506,4),(31511,4),(31522,4),(31523,4),(31526,4),(31528,4),(31533,4),(31540,4),(31555,4),(31570,4),(31572,4),(31573,4),(31580,4),(31593,4),(31594,4),(31606,4),(31607,4),(31609,4),(31612,4),(31616,4),(31619,4),(31624,4),(31630,4),(31633,4),(31645,4),(31651,4),(31654,4),(31665,4),(31668,4),(31669,4),(31671,4),(31682,4),(31687,4),(31692,4),(31693,4),(31694,4),(31697,4),(31700,4),(31712,4),(31713,4),(31714,4),(31715,4),(31722,4),(31725,4),(31726,4),(31729,4),(31730,4),(31736,4),(31737,4),(31747,4),(31749,4),(31752,4),(31758,4),(31765,4),(31773,4),(31774,4),(31776,4),(31790,4),(31791,4),(31795,4),(31796,4),(31809,4),(31813,4),(31829,4),(31837,4),(31840,4),(31847,4),(31859,4),(31860,4),(31862,4),(31872,4),(31874,4),(31887,4),(31891,4),(31894,4),(31899,4),(31902,4),(31910,4),(31912,4),(31913,4),(31915,4),(31919,4),(31920,4),(31930,4),(31933,4),(31944,4),(31946,4),(31948,4),(31950,4),(31955,4),(31956,4),(31959,4),(31961,4),(31964,4),(31966,4),(31972,4),(31981,4),(31992,4),(31995,4),(31999,4),(32000,4),(32004,4),(32006,4),(32010,4),(32012,4),(32018,4),(32019,4),(32021,4),(32028,4),(32029,4),(32031,4),(32034,4),(32037,4),(32039,4),(32042,4),(32065,4),(32067,4),(32074,4),(32076,4),(32085,4),(32090,4),(32091,4),(32093,4),(32094,4),(32101,4),(32103,4),(32111,4),(32113,4),(32117,4),(32118,4),(32120,4),(32121,4),(32124,4),(32127,4),(32142,4),(32143,4),(32153,4),(32158,4),(32162,4),(32163,4),(32169,4),(32177,4),(32184,4),(32188,4),(32210,4),(32212,4),(32215,4),(32231,4),(32235,4),(32237,4),(32238,4),(32240,4),(32243,4),(32246,4),(32247,4),(32250,4),(32252,4),(32254,4),(32255,4),(32257,4),(32262,4),(32270,4),(32273,4),(32275,4),(32283,4),(32287,4),(32288,4),(32290,4),(32297,4),(32298,4),(32327,4),(32331,4),(32333,4),(32339,4),(32340,4),(32343,4),(32345,4),(32351,4),(32352,4),(32362,4),(32368,4),(32370,4),(32371,4),(32374,4),(32376,4),(32378,4),(32379,4),(32382,4),(32383,4),(32396,4),(32402,4),(32412,4),(32415,4),(32421,4),(32423,4),(32441,4),(32463,4),(32467,4),(32478,4),(32485,4),(32488,4),(32490,4),(32493,4),(32502,4),(32507,4),(32513,4),(32524,4),(32528,4),(32531,4),(32535,4),(32538,4),(32540,4),(32541,4),(32542,4),(32547,4),(32557,4),(32560,4),(32572,4),(32588,4),(32615,4),(32619,4),(32624,4),(32627,4),(32644,4),(32645,4),(32646,4),(32648,4),(32659,4),(32663,4),(32673,4),(32679,4),(32682,4),(32684,4),(32695,4),(32700,4),(32701,4),(32708,4),(32712,4),(32725,4),(32751,4),(32770,4),(32776,4),(32789,4),(32793,4),(32796,4),(32808,4),(32838,4),(32840,4),(32843,4),(32850,4),(32856,4),(32862,4),(32864,4),(32870,4),(32874,4),(32875,4),(32877,4),(32879,4),(32889,4),(32905,4),(32906,4),(32909,4),(32910,4),(32918,4),(32925,4),(32928,4),(32932,4),(32933,4),(32938,4),(32954,4),(32955,4),(32962,4),(32966,4),(32968,4),(32971,4),(32974,4),(32975,4),(32976,4),(32979,4),(32984,4),(32988,4),(32994,4),(32999,4),(33006,4),(33019,4),(33028,4),(33034,4),(33061,4),(33065,4),(33076,4),(33077,4),(33082,4),(33086,4),(33087,4),(33091,4),(33096,4),(33114,4),(33125,4),(33131,4),(33145,4),(33146,4),(33156,4),(33166,4),(33168,4),(33178,4),(33180,4),(33196,4),(33197,4),(33201,4),(33204,4),(33205,4),(33207,4),(33218,4),(33219,4),(33227,4),(33231,4),(33241,4),(33242,4),(33243,4),(33245,4),(33255,4),(33257,4),(33263,4),(33271,4),(33280,4),(33281,4),(33296,4),(33298,4),(33310,4),(33313,4),(33328,4),(33330,4),(33331,4),(33347,4),(33354,4),(33359,4),(33366,4),(33369,4),(33378,4),(33380,4),(33390,4),(33394,4),(33395,4),(33396,4),(33398,4),(33400,4),(33409,4),(33412,4),(33413,4),(33414,4),(33418,4),(33429,4),(33439,4),(33440,4),(33448,4),(33453,4),(33455,4),(33462,4),(33466,4),(33468,4),(33469,4),(33473,4),(33475,4),(33477,4),(33484,4),(33502,4),(33506,4),(33508,4),(33517,4),(33520,4),(33522,4),(33533,4),(33540,4),(33541,4),(33549,4),(33562,4),(33572,4),(33583,4),(33594,4),(33604,4),(33613,4),(33622,4),(33626,4),(33627,4),(33633,4),(33643,4),(33654,4),(33660,4),(33661,4),(33667,4),(33671,4),(33672,4),(33673,4),(33685,4),(33687,4),(33697,4),(33701,4),(33706,4),(33713,4),(33717,4),(33723,4),(33728,4),(33738,4),(33740,4),(33750,4),(33782,4),(33795,4),(33802,4),(33807,4),(33809,4),(33810,4),(33814,4),(33819,4),(33821,4),(33823,4),(33827,4),(33833,4),(33834,4),(33842,4),(33844,4),(33851,4),(33857,4),(33860,4),(33862,4),(33863,4),(33866,4),(33873,4),(33889,4),(33891,4),(33892,4),(33895,4),(33912,4),(33919,4),(33920,4),(33922,4),(33923,4),(33925,4),(33930,4),(33933,4),(33943,4),(33957,4),(33968,4),(33973,4),(33980,4),(33981,4),(33986,4),(33989,4),(33990,4),(33997,4),(33998,4),(34001,4),(34005,4),(34007,4),(34020,4),(34023,4),(34026,4),(34033,4),(34039,4),(34044,4),(34045,4),(34048,4),(34052,4),(34061,4),(34069,4),(34073,4),(34088,4),(34096,4),(34103,4),(34104,4),(34105,4),(34113,4),(34118,4),(34120,4),(34122,4),(34124,4),(34128,4),(34131,4),(34132,4),(34145,4),(34151,4),(34152,4),(34161,4),(34162,4),(34178,4),(34188,4),(34194,4),(34197,4),(34217,4),(34219,4),(34220,4),(34234,4),(34244,4),(34246,4),(34247,4),(34249,4),(34256,4),(34259,4),(34263,4),(34267,4),(34278,4),(34284,4),(34286,4),(34300,4),(34318,4),(34327,4),(34328,4),(34335,4),(34340,4),(34345,4),(34348,4),(34351,4),(34357,4),(34361,4),(34362,4),(34370,4),(34381,4),(34386,4),(34387,4),(34389,4),(34393,4),(34401,4),(34403,4),(34404,4),(34408,4),(34418,4),(34423,4),(34432,4),(34433,4),(34437,4),(34439,4),(34442,4),(34447,4),(34448,4),(34454,4),(34460,4),(34466,4),(34470,4),(34475,4),(34479,4),(34488,4),(34510,4),(34511,4),(34535,4),(34542,4),(34551,4),(34565,4),(34571,4),(34580,4),(34593,4),(34595,4),(34596,4),(34599,4),(34602,4),(34603,4),(34617,4),(34619,4),(34623,4),(34624,4),(34626,4),(34634,4),(34638,4),(34649,4),(34651,4),(34654,4),(34664,4),(34669,4),(34673,4),(34679,4),(34701,4),(34740,4),(34741,4),(34763,4),(34764,4),(34765,4),(34771,4),(34776,4),(34777,4),(34779,4),(34787,4),(34790,4),(34795,4),(34796,4),(34801,4),(34810,4),(34812,4),(34822,4),(34835,4),(34837,4),(34838,4),(34850,4),(34857,4),(34862,4),(34866,4),(34869,4),(34881,4),(34927,4),(34930,4),(34931,4),(34939,4),(34954,4),(34960,4),(34968,4),(34982,4),(34986,4),(34992,4),(34999,4),(35007,4),(35009,4),(35016,4),(35020,4),(35029,4),(35038,4),(35039,4),(35044,4),(35046,4),(35058,4),(35070,4),(35079,4),(35081,4),(35082,4),(35084,4),(35088,4),(35095,4),(35101,4),(35103,4),(35111,4),(35113,4),(35126,4),(35128,4),(35133,4),(35136,4),(35158,4),(35160,4),(35161,4),(35163,4),(35165,4),(35170,4),(35173,4),(35182,4),(35183,4),(35186,4),(35197,4),(35199,4),(35203,4),(35207,4),(35208,4),(35219,4),(35224,4),(35229,4),(35232,4),(35254,4),(35261,4),(35262,4),(35271,4),(35272,4),(35278,4),(35284,4),(35285,4),(35292,4),(35297,4),(35298,4),(35299,4),(35301,4),(35304,4),(35312,4),(35316,4),(35320,4),(35333,4),(35341,4),(35370,4),(35373,4),(35378,4),(35381,4),(35388,4),(35393,4),(35394,4),(35403,4),(35408,4),(35410,4),(35412,4),(35415,4),(35426,4),(35428,4),(35435,4),(35436,4),(35437,4),(35442,4),(35445,4),(35451,4),(35458,4),(35462,4),(35472,4),(35479,4),(35480,4),(35482,4),(35494,4),(35495,4),(35504,4),(35511,4),(35512,4),(35517,4),(35521,4),(35523,4),(35536,4),(35538,4),(35542,4),(35543,4),(35547,4),(35557,4),(35562,4),(35563,4),(35572,4),(35573,4),(35576,4),(35577,4),(35582,4),(35591,4),(35603,4),(35620,4),(35622,4),(35632,4),(35635,4),(35647,4),(35650,4),(35659,4),(35660,4),(35661,4),(35663,4),(35664,4),(35668,4),(35670,4),(35671,4),(35676,4),(35717,4),(35729,4),(35730,4),(35732,4),(35736,4),(35737,4),(35740,4),(35751,4),(35752,4),(35753,4),(35756,4),(35764,4),(35773,4),(35777,4),(35780,4),(35784,4),(35789,4),(35804,4),(35805,4),(35811,4),(35813,4),(35826,4),(35835,4),(35836,4),(35840,4),(35849,4),(35854,4),(35858,4),(35862,4),(35872,4),(35875,4),(35882,4),(35887,4),(35899,4),(35901,4),(35908,4),(35910,4),(35914,4),(35922,4),(35933,4),(35950,4),(35952,4),(35965,4),(35967,4),(35974,4),(35975,4),(35977,4),(35978,4),(35980,4),(35987,4),(36002,4),(36003,4),(36011,4),(36015,4),(36017,4),(36020,4),(36028,4),(36033,4),(36034,4),(36037,4),(36041,4),(36049,4),(36061,4),(36062,4),(36088,4),(36092,4),(36093,4),(36095,4),(36111,4),(36114,4),(36131,4),(36136,4),(36137,4),(36138,4),(36142,4),(36146,4),(36151,4),(36154,4),(36156,4),(36159,4),(36160,4),(36161,4),(36162,4),(36171,4),(36180,4),(36181,4),(36185,4),(36186,4),(36197,4),(36211,4),(36212,4),(36214,4),(36215,4),(36228,4),(36238,4),(36242,4),(36248,4),(36259,4),(36271,4),(36272,4),(36279,4),(36280,4),(36283,4),(36286,4),(36294,4),(36306,4),(36315,4),(36317,4),(36320,4),(36321,4),(36323,4),(36324,4),(36329,4),(36331,4),(36332,4),(36334,4),(36336,4),(36337,4),(36345,4),(36346,4),(36361,4),(36362,4),(36387,4),(36397,4),(36401,4),(36405,4),(36408,4),(36420,4),(36423,4),(36424,4),(36425,4),(36430,4),(36435,4),(36450,4),(36452,4),(36454,4),(36455,4),(36476,4),(36477,4),(36482,4),(36494,4),(36496,4),(36502,4),(36506,4),(36511,4),(36514,4),(36515,4),(36520,4),(36521,4),(36528,4),(36529,4),(36533,4),(36540,4),(36541,4),(36543,4),(36556,4),(36557,4),(36562,4),(36573,4),(36576,4),(36580,4),(36584,4),(36585,4),(36592,4),(36594,4),(36611,4),(36621,4),(36628,4),(36633,4),(36636,4),(36642,4),(36644,4),(36645,4),(36648,4),(36658,4),(36659,4),(36663,4),(36664,4),(36668,4),(36670,4),(36674,4),(36685,4),(36689,4),(36705,4),(36711,4),(36714,4),(36722,4),(36733,4),(36735,4),(36736,4),(36744,4),(36748,4),(36762,4),(36765,4),(36773,4),(36775,4),(36776,4),(36777,4),(36782,4),(36786,4),(36788,4),(36797,4),(36799,4),(36803,4),(36804,4),(36818,4),(36819,4),(36827,4),(36831,4),(36842,4),(36843,4),(36847,4),(36865,4),(36868,4),(36876,4),(36879,4),(36880,4),(36894,4),(36895,4),(36912,4),(36918,4),(36922,4),(36925,4),(36927,4),(36928,4),(36935,4),(36946,4),(36965,4),(36968,4),(36979,4),(36991,4),(36999,4),(37006,4),(37015,4),(37026,4),(37027,4),(37036,4),(37041,4),(37052,4),(37053,4),(37057,4),(37061,4),(37064,4),(37075,4),(37079,4),(37088,4),(37092,4),(37099,4),(37103,4),(37104,4),(37105,4),(37107,4),(37109,4),(37111,4),(37116,4),(37125,4),(37126,4),(37131,4),(37134,4),(37142,4),(37143,4),(37148,4),(37151,4),(37173,4),(37179,4),(37185,4),(37187,4),(37190,4),(37195,4),(37197,4),(37202,4),(37207,4),(37208,4),(37212,4),(37217,4),(37228,4),(37231,4),(37237,4),(37238,4),(37248,4),(37252,4),(37253,4),(37262,4),(37268,4),(37278,4),(37293,4),(37303,4),(37307,4),(37310,4),(37312,4),(37320,4),(37324,4),(37325,4),(37328,4),(37334,4),(37351,4),(37356,4),(37359,4),(37361,4),(37366,4),(37373,4),(37380,4),(37381,4),(37385,4),(37387,4),(37388,4),(37389,4),(37390,4),(37404,4),(37405,4),(37415,4),(37419,4),(37427,4),(37428,4),(37434,4),(37436,4),(37441,4),(37446,4),(37456,4),(37458,4),(37459,4),(37475,4),(37478,4),(37480,4),(37483,4),(37484,4),(37494,4),(37496,4),(37512,4),(37517,4),(37526,4),(37529,4),(37532,4),(37533,4),(37535,4),(37544,4),(37550,4),(37554,4),(37557,4),(37565,4),(37573,4),(37589,4),(37590,4),(37592,4),(37595,4),(37604,4),(37614,4),(37624,4),(37628,4),(37630,4),(37635,4),(37636,4),(37661,4),(37680,4),(37682,4),(37690,4),(37691,4),(37697,4),(37703,4),(37704,4),(37706,4),(37708,4),(37734,4),(37736,4),(37758,4),(37762,4),(37769,4),(37783,4),(37793,4),(37797,4),(37806,4),(37807,4),(37820,4),(37822,4),(37832,4),(37835,4),(37839,4),(37847,4),(37865,4),(37868,4),(37872,4),(37877,4),(37880,4),(37881,4),(37886,4),(37887,4),(37889,4),(37891,4),(37892,4),(37908,4),(37910,4),(37913,4),(37921,4),(37926,4),(37948,4),(37953,4),(37955,4),(37962,4),(37964,4),(37976,4),(37978,4),(37981,4),(37982,4),(37990,4),(37991,4),(37992,4),(38006,4),(38010,4),(38022,4),(38023,4),(38024,4),(38031,4),(38033,4),(38034,4),(38040,4),(38048,4),(38050,4),(38055,4),(38056,4),(38064,4),(38072,4),(38074,4),(38086,4),(38092,4),(38093,4),(38111,4),(38120,4),(38125,4),(38126,4),(38141,4),(38142,4),(38148,4),(38150,4),(38154,4),(38155,4),(38165,4),(38173,4),(38179,4),(38212,4),(38218,4),(38221,4),(38223,4),(38225,4),(38237,4),(38238,4),(38244,4),(38267,4),(38272,4),(38280,4),(38282,4),(38287,4),(38292,4),(38297,4),(38306,4),(38330,4),(38332,4),(38334,4),(38335,4),(38343,4),(38350,4),(38358,4),(38363,4),(38370,4),(38381,4),(38383,4),(38393,4),(38405,4),(38407,4),(38408,4),(38413,4),(38415,4),(38420,4),(38422,4),(38427,4),(38429,4),(38430,4),(38439,4),(38440,4),(38458,4),(38461,4),(38463,4),(38470,4),(38471,4),(38474,4),(38477,4),(38486,4),(38487,4),(38489,4),(38491,4),(38492,4),(38496,4),(38497,4),(38501,4),(38503,4),(38505,4),(38513,4),(38516,4),(38517,4),(38524,4),(38527,4),(38529,4),(38530,4),(38533,4),(38553,4),(38557,4),(38562,4),(38563,4),(38564,4),(38567,4),(38583,4),(38584,4),(38586,4),(38597,4),(38598,4),(38600,4),(38610,4),(38625,4),(38627,4),(38630,4),(38632,4),(38636,4),(38641,4),(38644,4),(38651,4),(38656,4),(38658,4),(38687,4),(38689,4),(38699,4),(38701,4),(38712,4),(38727,4),(38732,4),(38733,4),(38737,4),(38756,4),(38770,4),(38773,4),(38775,4),(38779,4),(38801,4),(38804,4),(38805,4),(38821,4),(38823,4),(38825,4),(38826,4),(38828,4),(38830,4),(38831,4),(38832,4),(38833,4),(38839,4),(38843,4),(38856,4),(38861,4),(38875,4),(38880,4),(38885,4),(38897,4),(38903,4),(38918,4),(38919,4),(38923,4),(38930,4),(38933,4),(38938,4),(38941,4),(38954,4),(38955,4),(38962,4),(38965,4),(38967,4),(38983,4),(38987,4),(38992,4),(39006,4),(39036,4),(39041,4),(39048,4),(39059,4),(39063,4),(39066,4),(39070,4),(39071,4),(39073,4),(39080,4),(39081,4),(39084,4),(39086,4),(39089,4),(39098,4),(39099,4),(39102,4),(39103,4),(39109,4),(39114,4),(39121,4),(39122,4),(39127,4),(39130,4),(39136,4),(39144,4),(39145,4),(39149,4),(39154,4),(39157,4),(39164,4),(39165,4),(39169,4),(39171,4),(39180,4),(39181,4),(39187,4),(39192,4),(39195,4),(39199,4),(39205,4),(39209,4),(39213,4),(39214,4),(39215,4),(39216,4),(39219,4),(39220,4),(39236,4),(39238,4),(39252,4),(39257,4),(39274,4),(39275,4),(39286,4),(39287,4),(39288,4),(39312,4),(39323,4),(39326,4),(39330,4),(39334,4),(39336,4),(39337,4),(39342,4),(39351,4),(39352,4),(39353,4),(39359,4),(39361,4),(39364,4),(39365,4),(39371,4),(39373,4),(39384,4),(39385,4),(39391,4),(39394,4),(39396,4),(39398,4),(39399,4),(39401,4),(39418,4),(39428,4),(39431,4),(39433,4),(39436,4),(39452,4),(39455,4),(39457,4),(39483,4),(39515,4),(39517,4),(39518,4),(39519,4),(39532,4),(39533,4),(39535,4),(39539,4),(39541,4),(39545,4),(39550,4),(39553,4),(39562,4),(39564,4),(39572,4),(39573,4),(39577,4),(39591,4),(39593,4),(39605,4),(39608,4),(39617,4),(39624,4),(39629,4),(39630,4),(39640,4),(39646,4),(39648,4),(39650,4),(39651,4),(39653,4),(39657,4),(39658,4),(39665,4),(39668,4),(39672,4),(39680,4),(39689,4),(39691,4),(39704,4),(39705,4),(39706,4),(39713,4),(39734,4),(39736,4),(39740,4),(39762,4),(39764,4),(39771,4),(39772,4),(39783,4),(39787,4),(39807,4),(39808,4),(39811,4),(39817,4),(39822,4),(39824,4),(39832,4),(39833,4),(39837,4),(39848,4),(39854,4),(39858,4),(39860,4),(39861,4),(39865,4),(39868,4),(39882,4),(39893,4),(39895,4),(39906,4),(39913,4),(39915,4),(39921,4),(39923,4),(39924,4),(39929,4),(39950,4),(39959,4),(39964,4),(39967,4),(39976,4),(39981,4),(39986,4),(39995,4),(39998,4),(39999,4),(40001,4),(40006,4),(40016,4),(40026,4),(40027,4),(40032,4),(40033,4),(40044,4),(40048,4),(40051,4),(40056,4),(40067,4),(40075,4),(40083,4),(40129,4),(40145,4),(40146,4),(40147,4),(40151,4),(40153,4),(40157,4),(40163,4),(40167,4),(40169,4),(40172,4),(40173,4),(40176,4),(40183,4),(40184,4),(40194,4),(40202,4),(40203,4),(40214,4),(40216,4),(40219,4),(40221,4),(40223,4),(40225,4),(40229,4),(40231,4),(40251,4),(40255,4),(40256,4),(40263,4),(40266,4),(40267,4),(40275,4),(40278,4),(40314,4),(40317,4),(40319,4),(40329,4),(40337,4),(40339,4),(40340,4),(40364,4),(40366,4),(40367,4),(40374,4),(40375,4),(40389,4),(40390,4),(40392,4),(40394,4),(40395,4),(40400,4),(40401,4),(40412,4),(40418,4),(40420,4),(40422,4),(40425,4),(40432,4),(40445,4),(40448,4),(40450,4),(40454,4),(40458,4),(40463,4),(40466,4),(40480,4),(40481,4),(40482,4),(40484,4),(40490,4),(40492,4),(40496,4),(40497,4),(40510,4),(40517,4),(40520,4),(40524,4),(40543,4),(40563,4),(40564,4),(40569,4),(40573,4),(40577,4),(40596,4),(40597,4),(40601,4),(40603,4),(40604,4),(40613,4),(40614,4),(40615,4),(40619,4),(40623,4),(40630,4),(40631,4),(40634,4),(40637,4),(40645,4),(40650,4),(40668,4),(40670,4),(40672,4),(40678,4),(40679,4),(40681,4),(40683,4),(40684,4),(40686,4),(40688,4),(40691,4),(40692,4),(40698,4),(40702,4),(40714,4),(40724,4),(40730,4),(40735,4),(40737,4),(40741,4),(40743,4),(40744,4),(40748,4),(40749,4),(40751,4),(40757,4),(40761,4),(40766,4),(40772,4),(40773,4),(40777,4),(40779,4),(40780,4),(40782,4),(40786,4),(40788,4),(40790,4),(40791,4),(40796,4),(40797,4),(40799,4),(40804,4),(40809,4),(40812,4),(40816,4),(40817,4),(40820,4),(40821,4),(40825,4),(40833,4),(40836,4),(40838,4),(40852,4),(40853,4),(40854,4),(40855,4),(40858,4),(40866,4),(40868,4),(40873,4),(40879,4),(40890,4),(40895,4),(40903,4),(40905,4),(40910,4),(40912,4),(40920,4),(40931,4),(40942,4),(40949,4),(40965,4),(40972,4),(40979,4),(40982,4),(40984,4),(40987,4),(40992,4),(40996,4),(40998,4),(41001,4),(41002,4),(41024,4),(41027,4),(41028,4),(41029,4),(41032,4),(41047,4),(41053,4),(41074,4),(41088,4),(41089,4),(41094,4),(41106,4),(41110,4),(41120,4),(41128,4),(41141,4),(41145,4),(41148,4),(41154,4),(41155,4),(41158,4),(41161,4),(41176,4),(41179,4),(41182,4),(41187,4),(41192,4),(41194,4),(41195,4),(41202,4),(41218,4),(41223,4),(41228,4),(41245,4),(41254,4),(41256,4),(41262,4),(41263,4),(41270,4),(41281,4),(41283,4),(41286,4),(41290,4),(41294,4),(41297,4),(41300,4),(41301,4),(41312,4),(41315,4),(41326,4),(41327,4),(41346,4),(41353,4),(41362,4),(41378,4),(41383,4),(41384,4),(41386,4),(41388,4),(41393,4),(41398,4),(41404,4),(41410,4),(41415,4),(41417,4),(41426,4),(41436,4),(41439,4),(41443,4),(41445,4),(41446,4),(41461,4),(41469,4),(41471,4),(41504,4),(41512,4),(41517,4),(41520,4),(41521,4),(41531,4),(41534,4),(41535,4),(41537,4),(41538,4),(41559,4),(41563,4),(41570,4),(41578,4),(41583,4),(41584,4),(41589,4),(41593,4),(41598,4),(41601,4),(41616,4),(41618,4),(41622,4),(41623,4),(41625,4),(41649,4),(41652,4),(41653,4),(41655,4),(41658,4),(41663,4),(41686,4),(41687,4),(41689,4),(41693,4),(41707,4),(41717,4),(41726,4),(41734,4),(41736,4),(41737,4),(41756,4),(41757,4),(41761,4),(41762,4),(41764,4),(41766,4),(41771,4),(41781,4),(41784,4),(41790,4),(41794,4),(41801,4),(41802,4),(41807,4),(41814,4),(41827,4),(41831,4),(41832,4),(41842,4),(41844,4),(41862,4),(41881,4),(41882,4),(41884,4),(41886,4),(41889,4),(41894,4),(41907,4),(41914,4),(41919,4),(41929,4),(41946,4),(41948,4),(41951,4),(41966,4),(41985,4),(41990,4),(42007,4),(42008,4),(42016,4),(42018,4),(42019,4),(42044,4),(42045,4),(42049,4),(42050,4),(42054,4),(42057,4),(42072,4),(42074,4),(42083,4),(42086,4),(42088,4),(42095,4),(42101,4),(42105,4),(42111,4),(42123,4),(42126,4),(42128,4),(42143,4),(42145,4),(42152,4),(42155,4),(42162,4),(42172,4),(42179,4),(42185,4),(42191,4),(42198,4),(42202,4),(42204,4),(42208,4),(42213,4),(42226,4),(42227,4),(42233,4),(42234,4),(42243,4),(42250,4),(42251,4),(42263,4),(42265,4),(42270,4),(42276,4),(42278,4),(42290,4),(42293,4),(42299,4),(42304,4),(42306,4),(42307,4),(42322,4),(42325,4),(42329,4),(42331,4),(42332,4),(42337,4),(42340,4),(42348,4),(42352,4),(42354,4),(42355,4),(42366,4),(42398,4),(42408,4),(42415,4),(42419,4),(42422,4),(42431,4),(42432,4),(42438,4),(42441,4),(42444,4),(42457,4),(42459,4),(42462,4),(42467,4),(42469,4),(42470,4),(42487,4),(42488,4),(42492,4),(42495,4),(42499,4),(42508,4),(42509,4),(42526,4),(42531,4),(42533,4),(42534,4),(42544,4),(42546,4),(42548,4),(42557,4),(42566,4),(42568,4),(42574,4),(42582,4),(42583,4),(42598,4),(42603,4),(42614,4),(42621,4),(42623,4),(42628,4),(42631,4),(42632,4),(42635,4),(42640,4),(42642,4),(42648,4),(42649,4),(42660,4),(42667,4),(42669,4),(42673,4),(42674,4),(42683,4),(42690,4),(42691,4),(42699,4),(42721,4),(42725,4),(42727,4),(42728,4),(42734,4),(42739,4),(42746,4),(42751,4),(42753,4),(42760,4),(42761,4),(42773,4),(42780,4),(42785,4),(42786,4),(42788,4),(42794,4),(42822,4),(42824,4),(42829,4),(42833,4),(42834,4),(42838,4),(42840,4),(42841,4),(42846,4),(42847,4),(42853,4),(42856,4),(42859,4),(42866,4),(42871,4),(42872,4),(42878,4),(42880,4),(42882,4),(42892,4),(42906,4),(42915,4),(42934,4),(42941,4),(42946,4),(42947,4),(42957,4),(42972,4),(42989,4),(42992,4),(42995,4),(42998,4),(43005,4),(43023,4),(43028,4),(43029,4),(43033,4),(43040,4),(43043,4),(43052,4),(43059,4),(43061,4),(43062,4),(43068,4),(43078,4),(43082,4),(43084,4),(43094,4),(43096,4),(43100,4),(43103,4),(43118,4),(43128,4),(43129,4),(43137,4),(43144,4),(43153,4),(43154,4),(43159,4),(43161,4),(43178,4),(43180,4),(43186,4),(43199,4),(43200,4),(43204,4),(43214,4),(43217,4),(43218,4),(43222,4),(43233,4),(43236,4),(43241,4),(43244,4),(43247,4),(43248,4),(43250,4),(43254,4),(43256,4),(43258,4),(43274,4),(43275,4),(43276,4),(43277,4),(43282,4),(43284,4),(43287,4),(43289,4),(43296,4),(43297,4),(43306,4),(43307,4),(43309,4),(43314,4),(43315,4),(43318,4),(43320,4),(43321,4),(43323,4),(43330,4),(43339,4),(43343,4),(43345,4),(43350,4),(43355,4),(43363,4),(43366,4),(43372,4),(43375,4),(43381,4),(43383,4),(43388,4),(43392,4),(43394,4),(43396,4),(43410,4),(43411,4),(43417,4),(43421,4),(43425,4),(43428,4),(43446,4),(43455,4),(43459,4),(43460,4),(43483,4),(43484,4),(43489,4),(43490,4),(43501,4),(43509,4),(43516,4),(43529,4),(43533,4),(43535,4),(43550,4),(43554,4),(43555,4),(43560,4),(43563,4),(43574,4),(43580,4),(43581,4),(43585,4),(43588,4),(43602,4),(43603,4),(43604,4),(43607,4),(43625,4),(43632,4),(43636,4),(43638,4),(43640,4),(43642,4),(43648,4),(43657,4),(43668,4),(43672,4),(43700,4),(43711,4),(43714,4),(43723,4),(43737,4),(43738,4),(43739,4),(43743,4),(43753,4),(43755,4),(43769,4),(43772,4),(43776,4),(43790,4),(43799,4),(43807,4),(43814,4),(43816,4),(43819,4),(43824,4),(43828,4),(43830,4),(43838,4),(43848,4),(43851,4),(43853,4),(43855,4),(43867,4),(43869,4),(43871,4),(43875,4),(43895,4),(43899,4),(43911,4),(43914,4),(43918,4),(43940,4),(43945,4),(43957,4),(43962,4),(43965,4),(43974,4),(43976,4),(43988,4),(43989,4),(43992,4),(44005,4),(44006,4),(44009,4),(44015,4),(44016,4),(44023,4),(44032,4),(44036,4),(44037,4),(44054,4),(44055,4),(44059,4),(44067,4),(44072,4),(44078,4),(44081,4),(44085,4),(44094,4),(44104,4),(44108,4),(44111,4),(44113,4),(44118,4),(44121,4),(44130,4),(44134,4),(44140,4),(44143,4),(44164,4),(44165,4),(44172,4),(44173,4),(44183,4),(44185,4),(44195,4),(44197,4),(44204,4),(44208,4),(44210,4),(44213,4),(44214,4),(44225,4),(44227,4),(44230,4),(44234,4),(44237,4),(44239,4),(44243,4),(44255,4),(44257,4),(44277,4),(44279,4),(44284,4),(44289,4),(44305,4),(44307,4),(44311,4),(44312,4),(44313,4),(44325,4),(44329,4),(44331,4),(44333,4),(44334,4),(44339,4),(44340,4),(44347,4),(44349,4),(44351,4),(44356,4),(44359,4),(44361,4),(44367,4),(44371,4),(44398,4),(44399,4),(44437,4),(44442,4),(44458,4),(44468,4),(44487,4),(44488,4),(44489,4),(44496,4),(44497,4),(44502,4),(44503,4),(44509,4),(44517,4),(44518,4),(44531,4),(44540,4),(44549,4),(44550,4),(44559,4),(44560,4),(44562,4),(44563,4),(44586,4),(44589,4),(44593,4),(44598,4),(44608,4),(44609,4),(44614,4),(44617,4),(44618,4),(44623,4),(44631,4),(44636,4),(44642,4),(44662,4),(44673,4),(44674,4),(44679,4),(44693,4),(44699,4),(44701,4),(44704,4),(44706,4),(44714,4),(44718,4),(44720,4),(44725,4),(44727,4),(44732,4),(44742,4),(44744,4),(44751,4),(44757,4),(44773,4),(44778,4),(44783,4),(44790,4),(44800,4),(44810,4),(44816,4),(44820,4),(44821,4),(44824,4),(44826,4),(44857,4),(44860,4),(44861,4),(44863,4),(44864,4),(44868,4),(44870,4),(44877,4),(44885,4),(44886,4),(44893,4),(44904,4),(44920,4),(44924,4),(44929,4),(44930,4),(44935,4),(44936,4),(44940,4),(44952,4),(44955,4),(44967,4),(44978,4),(44982,4),(44989,4),(44990,4),(44993,4),(45012,4),(45015,4),(45021,4),(45026,4),(45037,4),(45038,4),(45065,4),(45067,4),(45068,4),(45071,4),(45073,4),(45079,4),(45093,4),(45098,4),(45103,4),(45110,4),(45114,4),(45121,4),(45127,4),(45129,4),(45132,4),(45133,4),(45134,4),(45147,4),(45168,4),(45180,4),(45184,4),(45202,4),(45204,4),(45212,4),(45213,4),(45218,4),(45220,4),(45222,4),(45233,4),(45240,4),(45254,4),(45261,4),(45266,4),(45268,4),(45270,4),(45274,4),(45279,4),(45282,4),(45297,4),(45302,4),(45305,4),(45333,4),(45334,4),(45337,4),(45343,4),(45345,4),(45347,4),(45365,4),(45372,4),(45374,4),(45377,4),(45378,4),(45381,4),(45387,4),(45393,4),(45398,4),(45401,4),(45404,4),(45408,4),(45420,4),(45421,4),(45428,4),(45431,4),(45436,4),(45456,4),(45457,4),(45462,4),(45467,4),(45468,4),(45480,4),(45486,4),(45503,4),(45510,4),(45521,4),(45525,4),(45526,4),(45528,4),(45534,4),(45566,4),(45571,4),(45574,4),(45580,4),(45586,4),(45589,4),(45592,4),(45594,4),(45595,4),(45598,4),(45601,4),(45608,4),(45612,4),(45618,4),(45631,4),(45638,4),(45643,4),(45649,4),(45661,4),(45664,4),(45672,4),(45677,4),(45681,4),(45682,4),(45690,4),(45691,4),(45693,4),(45701,4),(45711,4),(45719,4),(45730,4),(45734,4),(45740,4),(45746,4),(45751,4),(45767,4),(45782,4),(45792,4),(45797,4),(45799,4),(45803,4),(45813,4),(45817,4),(45824,4),(45825,4),(45833,4),(45838,4),(45847,4),(45852,4),(45855,4),(45860,4),(45862,4),(45869,4),(45876,4),(45883,4),(45884,4),(45885,4),(45888,4),(45889,4),(45898,4),(45911,4),(45916,4),(45918,4),(45919,4),(45923,4),(45935,4),(45938,4),(45939,4),(45944,4),(45961,4),(45963,4),(45966,4),(45968,4),(45970,4),(45974,4),(45986,4),(45993,4),(45997,4),(45999,4),(46004,4),(46010,4),(46011,4),(46017,4),(46023,4),(46043,4),(46045,4),(46047,4),(46053,4),(46057,4),(46070,4),(46079,4),(46083,4),(46087,4),(46088,4),(46091,4),(46094,4),(46095,4),(46103,4),(46104,4),(46109,4),(46113,4),(46127,4),(46133,4),(46149,4),(46155,4),(46168,4),(46170,4),(46171,4),(46177,4),(46192,4),(46194,4),(46199,4),(46202,4),(46210,4),(46213,4),(46218,4),(46223,4),(46230,4),(46232,4),(46257,4),(46259,4),(46264,4),(46290,4),(46291,4),(46297,4),(46299,4),(46304,4),(46306,4),(46309,4),(46311,4),(46322,4),(46328,4),(46331,4),(46335,4),(46346,4),(46349,4),(46350,4),(46359,4),(46360,4),(46366,4),(46369,4),(46371,4),(46373,4),(46379,4),(46391,4),(46392,4),(46416,4),(46420,4),(46433,4),(46437,4),(46442,4),(46449,4),(46460,4),(46467,4),(46473,4),(46475,4),(46477,4),(46478,4),(46479,4),(46480,4),(46489,4),(46491,4),(46496,4),(46500,4),(46501,4),(46505,4),(46518,4),(46521,4),(46522,4),(46524,4),(46531,4),(46534,4),(46535,4),(46541,4),(46546,4),(46547,4),(46553,4),(46561,4),(46566,4),(46572,4),(46580,4),(46582,4),(46590,4),(46591,4),(46600,4),(46601,4),(46606,4),(46607,4),(46609,4),(46611,4),(46622,4),(46630,4),(46635,4),(46638,4),(46648,4),(46651,4),(46654,4),(46656,4),(46660,4),(46663,4),(46671,4),(46675,4),(46679,4),(46708,4),(46711,4),(46713,4),(46715,4),(46731,4),(46741,4),(46745,4),(46749,4),(46759,4),(46764,4),(46767,4),(46768,4),(46774,4),(46784,4),(46789,4),(46794,4),(46798,4),(46801,4),(46802,4),(46804,4),(46810,4),(46819,4),(46821,4),(46826,4),(46828,4),(46831,4),(46839,4),(46852,4),(46856,4),(46868,4),(46869,4),(46871,4),(46877,4),(46894,4),(46895,4),(46920,4),(46925,4),(46937,4),(46950,4),(46963,4),(46974,4),(46975,4),(46991,4),(47002,4),(47008,4),(47011,4),(47017,4),(47028,4),(47030,4),(47046,4),(47050,4),(47052,4),(47061,4),(47062,4),(47067,4),(47068,4),(47069,4),(47076,4),(47094,4),(47110,4),(47121,4),(47122,4),(47144,4),(47153,4),(47154,4),(47155,4),(47157,4),(47168,4),(47177,4),(47186,4),(47190,4),(47203,4),(47206,4),(47208,4),(47210,4),(47212,4),(47219,4),(47221,4),(47224,4),(47225,4),(47235,4),(47250,4),(47258,4),(47270,4),(47271,4),(47277,4),(47278,4),(47279,4),(47290,4),(47292,4),(47301,4),(47302,4),(47311,4),(47315,4),(47324,4),(47333,4),(47362,4),(47367,4),(47369,4),(47370,4),(47373,4),(47382,4),(47384,4),(47386,4),(47399,4),(47402,4),(47405,4),(47409,4),(47410,4),(47416,4),(47427,4),(47433,4),(47468,4),(47469,4),(47471,4),(47479,4),(47481,4),(47491,4),(47493,4),(47498,4),(47513,4),(47515,4),(47523,4),(47538,4),(47548,4),(47553,4),(47560,4),(47561,4),(47570,4),(47572,4),(47587,4),(47599,4),(47601,4),(47602,4),(47604,4),(47613,4),(47614,4),(47621,4),(47623,4),(47626,4),(47627,4),(47630,4),(47637,4),(47645,4),(47648,4),(47652,4),(47677,4),(47685,4),(47687,4),(47693,4),(47699,4),(47700,4),(47705,4),(47706,4),(47718,4),(47722,4),(47723,4),(47726,4),(47728,4),(47735,4),(47759,4),(47773,4),(47774,4),(47778,4),(47785,4),(47804,4),(47813,4),(47829,4),(47832,4),(47837,4),(47850,4),(47862,4),(47873,4),(47875,4),(47876,4),(47878,4),(47879,4),(47884,4),(47892,4),(47911,4),(47917,4),(47921,4),(47928,4),(47936,4),(47938,4),(47940,4),(47953,4),(47956,4),(47957,4),(47959,4),(47961,4),(47971,4),(47974,4),(47975,4),(47985,4),(47997,4),(47998,4),(48003,4),(48015,4),(48017,4),(48018,4),(48023,4),(48024,4),(48025,4),(48027,4),(48029,4),(48031,4),(48032,4),(48033,4),(48037,4),(48040,4),(48046,4),(48052,4),(48061,4),(48084,4),(48085,4),(48093,4),(48094,4),(48102,4),(48107,4),(48108,4),(48109,4),(48126,4),(48132,4),(48153,4),(48159,4),(48166,4),(48184,4),(48188,4),(48201,4),(48205,4),(48208,4),(48215,4),(48219,4),(48222,4),(48233,4),(48236,4),(48241,4),(48243,4),(48248,4),(48252,4),(48267,4),(48269,4),(48271,4),(48278,4),(48286,4),(48290,4),(48293,4),(48297,4),(48301,4),(48303,4),(48305,4),(48308,4),(48310,4),(48316,4),(48321,4),(48323,4),(48324,4),(48327,4),(48331,4),(48341,4),(48354,4),(48356,4),(48358,4),(48364,4),(48365,4),(48377,4),(48384,4),(48386,4),(48389,4),(48391,4),(48392,4),(48401,4),(48402,4),(48403,4),(48405,4),(48419,4),(48428,4),(48434,4),(48455,4),(48457,4),(48468,4),(48475,4),(48477,4),(48478,4),(48484,4),(48485,4),(48489,4),(48490,4),(48497,4),(48501,4),(48503,4),(48512,4),(48525,4),(48532,4),(48541,4),(48542,4),(48552,4),(48569,4),(48572,4),(48582,4),(48593,4),(48614,4),(48617,4),(48636,4),(48638,4),(48647,4),(48655,4),(48663,4),(48672,4),(48678,4),(48679,4),(48686,4),(48690,4),(48693,4),(48696,4),(48698,4),(48701,4),(48702,4),(48708,4),(48709,4),(48711,4),(48722,4),(48734,4),(48740,4),(48741,4),(48744,4),(48745,4),(48749,4),(48750,4),(48755,4),(48760,4),(48763,4),(48788,4),(48794,4),(48798,4),(48801,4),(48802,4),(48819,4),(48820,4),(48822,4),(48824,4),(48830,4),(48834,4),(48842,4),(48849,4),(48850,4),(48854,4),(48863,4),(48869,4),(48880,4),(48881,4),(48883,4),(48885,4),(48890,4),(48892,4),(48899,4),(48901,4),(48915,4),(48919,4),(48936,4),(48941,4),(48944,4),(48945,4),(48950,4),(48952,4),(48955,4),(48956,4),(48965,4),(48968,4),(48969,4),(48977,4),(48984,4),(49002,4),(49013,4),(49015,4),(49018,4),(49022,4),(49043,4),(49046,4),(49051,4),(49053,4),(49058,4),(49060,4),(49069,4),(49082,4),(49083,4),(49086,4),(49088,4),(49091,4),(49094,4),(49096,4),(49101,4),(49111,4),(49115,4),(49119,4),(49123,4),(49125,4),(49132,4),(49136,4),(49146,4),(49147,4),(49149,4),(49156,4),(49159,4),(49171,4),(49174,4),(49181,4),(49182,4),(49188,4),(49192,4),(49200,4),(49204,4),(49218,4),(49219,4),(49233,4),(49234,4),(49247,4),(49252,4),(49253,4),(49259,4),(49267,4),(49281,4),(49297,4),(49310,4),(49315,4),(49316,4),(49318,4),(49324,4),(49329,4),(49332,4),(49338,4),(49354,4),(49365,4),(49371,4),(49373,4),(49374,4),(49381,4),(49382,4),(49387,4),(49389,4),(49394,4),(49396,4),(49409,4),(49423,4),(49433,4),(49436,4),(49439,4),(49449,4),(49463,4),(49466,4),(49469,4),(49474,4),(49480,4),(49487,4),(49500,4),(49505,4),(49506,4),(49507,4),(49516,4),(49518,4),(49519,4),(49523,4),(49526,4),(49529,4),(49534,4),(49536,4),(49538,4),(49559,4),(49560,4),(49580,4),(49592,4),(49593,4),(49596,4),(49605,4),(49610,4),(49619,4),(49620,4),(49639,4),(49641,4),(49652,4),(49659,4),(49665,4),(49675,4),(49676,4),(49678,4),(49679,4),(49680,4),(49686,4),(49691,4),(49692,4),(49706,4),(49711,4),(49717,4),(49728,4),(49766,4),(49767,4),(49777,4),(49779,4),(49784,4),(49787,4),(49789,4),(49794,4),(49796,4),(49807,4),(49809,4),(49811,4),(49820,4),(49821,4),(49826,4),(49833,4),(49846,4),(49850,4),(49855,4),(49856,4),(49867,4),(49884,4),(49890,4),(49891,4),(49909,4),(49926,4),(49928,4),(49930,4),(49944,4),(49959,4),(49960,4),(49967,4),(49971,4),(49975,4),(49977,4),(49979,4),(49983,4),(49988,4),(49991,4),(49998,4),(50001,4),(50002,4),(50003,4),(50011,4),(50014,4),(50028,4),(50029,4),(50032,4),(50036,4),(50039,4),(50052,4),(50058,4),(50061,4),(50071,4),(50072,4),(50075,4),(50078,4),(50082,4),(50084,4),(50092,4),(50097,4),(50099,4),(50101,4),(50117,4),(50118,4),(50121,4),(50123,4),(50125,4),(50132,4),(50133,4),(50144,4),(50145,4),(50149,4),(50175,4),(50178,4),(50179,4),(50181,4),(50191,4),(50193,4),(50199,4),(50204,4),(50213,4),(50226,4),(50239,4),(50240,4),(50242,4),(50247,4),(50248,4),(50249,4),(50253,4),(50266,4),(50280,4),(50281,4),(50290,4),(50298,4),(50305,4),(50312,4),(50314,4),(50315,4),(50318,4),(50327,4),(50331,4),(50334,4),(50338,4),(50339,4),(50340,4),(50341,4),(50351,4),(50353,4),(50358,4),(50373,4),(50388,4),(50408,4),(50411,4),(50412,4),(50413,4),(50417,4),(50423,4),(50427,4),(50443,4),(50448,4),(50452,4),(50453,4),(50464,4),(50465,4),(50467,4),(50473,4),(50487,4),(50489,4),(50493,4),(50495,4),(50506,4),(50507,4),(50517,4),(50522,4),(50527,4),(50531,4),(50538,4),(50540,4),(50545,4),(50549,4),(50550,4),(50552,4),(50559,4),(50570,4),(50588,4),(50594,4),(50597,4),(50601,4),(50602,4),(50605,4),(50608,4),(50611,4),(50632,4),(50640,4),(50646,4),(50652,4),(50656,4),(50661,4),(50663,4),(50665,4),(50676,4),(50677,4),(50683,4),(50701,4),(50707,4),(50714,4),(50721,4),(50723,4),(50728,4),(50738,4),(50745,4),(50750,4),(50751,4),(50752,4),(50778,4),(50781,4),(50789,4),(50793,4),(50811,4),(50813,4),(50819,4),(50833,4),(50835,4),(50840,4),(50861,4),(50862,4),(50865,4),(50874,4),(50876,4),(50891,4),(50898,4),(50919,4),(50925,4),(50929,4),(50931,4),(50937,4),(50938,4),(50945,4),(50957,4),(50959,4),(50964,4),(50967,4),(50972,4),(50976,4),(50980,4),(50981,4),(50985,4),(50987,4),(51000,4),(51005,4),(51018,4),(51029,4),(51031,4),(51035,4),(51038,4),(51040,4),(51041,4),(51044,4),(51055,4),(51056,4),(51065,4),(51067,4),(51076,4),(51083,4),(51104,4),(51111,4),(51113,4),(51117,4),(51118,4),(51134,4),(51148,4),(51154,4),(51160,4),(51161,4),(51171,4),(51175,4),(51179,4),(51183,4),(51186,4),(51192,4),(51194,4),(51206,4),(51211,4),(51214,4),(51217,4),(51218,4),(51220,4),(51228,4),(51229,4),(51230,4),(51231,4),(51238,4),(51251,4),(51256,4),(51259,4),(51270,4),(51278,4),(51284,4),(51286,4),(51288,4),(51289,4),(51292,4),(51294,4),(51295,4),(51301,4),(51306,4),(51324,4),(51329,4),(51336,4),(51337,4),(51339,4),(51342,4),(51369,4),(51370,4),(51373,4),(51383,4),(51397,4),(51401,4),(51408,4),(51411,4),(51414,4),(51419,4),(51425,4),(51427,4),(51429,4),(51434,4),(51439,4),(51447,4),(51448,4),(51450,4),(51453,4),(51456,4),(51467,4),(51469,4),(51473,4),(51491,4),(51493,4),(51497,4),(51498,4),(51502,4),(51505,4),(51509,4),(51512,4),(51515,4),(51523,4),(51533,4),(51541,4),(51544,4),(51549,4),(51552,4),(51554,4),(51566,4),(51574,4),(51575,4),(51576,4),(51577,4),(51583,4),(51590,4),(51591,4),(51595,4),(51596,4),(51604,4),(51615,4),(51633,4),(51639,4),(51642,4),(51643,4),(51646,4),(51647,4),(51664,4),(51669,4),(51686,4),(51706,4),(51707,4),(51710,4),(51711,4),(51714,4),(51716,4),(51719,4),(51728,4),(51733,4),(51734,4),(51739,4),(51741,4),(51747,4),(51752,4),(51758,4),(51761,4),(51767,4),(51769,4),(51771,4),(51775,4),(51776,4),(51784,4),(51789,4),(51790,4),(51791,4),(51797,4),(51803,4),(51808,4),(51813,4),(51816,4),(51826,4),(51834,4),(51838,4),(51841,4),(51843,4),(51847,4),(51848,4),(51857,4),(51862,4),(51866,4),(51884,4),(51886,4),(51893,4),(51894,4),(51897,4),(51907,4),(51912,4),(51916,4),(51917,4),(51922,4),(51930,4),(51931,4),(51932,4),(51937,4),(51938,4),(51945,4),(51948,4),(51953,4),(51955,4),(51958,4),(51961,4),(51963,4),(51968,4),(51969,4),(51980,4),(51983,4),(51994,4),(52000,4),(52003,4),(52010,4),(52018,4),(52022,4),(52034,4),(52038,4),(52039,4),(52063,4),(52071,4),(52082,4),(52087,4),(52089,4),(52090,4),(52096,4),(52099,4),(52101,4),(52109,4),(52110,4),(52111,4),(52112,4),(52116,4),(52121,4),(52126,4),(52134,4),(52140,4),(52152,4),(52162,4),(52170,4),(52178,4),(52181,4),(52186,4),(52188,4),(52194,4),(52198,4),(52212,4),(52219,4),(52221,4),(52222,4),(52227,4),(52240,4),(52251,4),(52252,4),(52253,4),(52256,4),(52270,4),(52271,4),(52272,4),(52273,4),(52275,4),(52280,4),(52283,4),(52291,4),(52292,4),(52315,4),(52317,4),(52320,4),(52330,4),(52345,4),(52346,4),(52351,4),(52354,4),(52367,4),(52371,4),(52373,4),(52375,4),(52377,4),(52380,4),(52393,4),(52406,4),(52408,4),(52411,4),(52414,4),(52426,4),(52440,4),(52448,4),(52459,4),(52460,4),(52463,4),(52470,4),(52473,4),(52474,4),(52475,4),(52500,4),(52503,4),(52507,4),(52516,4),(52523,4),(52525,4),(52526,4),(52528,4),(52531,4),(52546,4),(52548,4),(52567,4),(52572,4),(52579,4),(52600,4),(52605,4),(52612,4),(52621,4),(52644,4),(52645,4),(52648,4),(52654,4),(52663,4),(52665,4),(52671,4),(52679,4),(52682,4),(52696,4),(52699,4),(52708,4),(52711,4),(52722,4),(52724,4),(52727,4),(52730,4),(52733,4),(52748,4),(52749,4),(52756,4),(52764,4),(52770,4),(52775,4),(52776,4),(52784,4),(52791,4),(52792,4),(52795,4),(52801,4),(52804,4),(52814,4),(52817,4),(52824,4),(52829,4),(52836,4),(52838,4),(52842,4),(52845,4),(52846,4),(52848,4),(52849,4),(52859,4),(52861,4),(52873,4),(52880,4),(52881,4),(52884,4),(52887,4),(52891,4),(52893,4),(52919,4),(52930,4),(52933,4),(52939,4),(52944,4),(52945,4),(52951,4),(52955,4),(52960,4),(52968,4),(52970,4),(52972,4),(52977,4),(52980,4),(52982,4),(52993,4),(52995,4),(53003,4),(53010,4),(53011,4),(53019,4),(53021,4),(53028,4),(53030,4),(53033,4),(53034,4),(53036,4),(53038,4),(53039,4),(53043,4),(53048,4),(53053,4),(53058,4),(53059,4),(53060,4),(53067,4),(53071,4),(53072,4),(53077,4),(53079,4),(53105,4),(53106,4),(53112,4),(53115,4),(53117,4),(53136,4),(53142,4),(53146,4),(53147,4),(53149,4),(53160,4),(53161,4),(53162,4),(53173,4),(53175,4),(53177,4),(53203,4),(53204,4),(53222,4),(53225,4),(53228,4),(53232,4),(53236,4),(53244,4),(53245,4),(53247,4),(53250,4),(53254,4),(53273,4),(53290,4),(53291,4),(53292,4),(53303,4),(53305,4),(53308,4),(53309,4),(53316,4),(53324,4),(53325,4),(53331,4),(53336,4),(53347,4),(53355,4),(53356,4),(53369,4),(53370,4),(53384,4),(53402,4),(53413,4),(53415,4),(53417,4),(53422,4),(53423,4),(53425,4),(53432,4),(53433,4),(53437,4),(53445,4),(53449,4),(53469,4),(53472,4),(53480,4),(53487,4),(53489,4),(53496,4),(53498,4),(53512,4),(53522,4),(53527,4),(53544,4),(53549,4),(53558,4),(53561,4),(53571,4),(53574,4),(53582,4),(53586,4),(53587,4),(53592,4),(53593,4),(53609,4),(53611,4),(53621,4),(53630,4),(53646,4),(53647,4),(53669,4),(53670,4),(53672,4),(53676,4),(53680,4),(53686,4),(53696,4),(53700,4),(53701,4),(53708,4),(53715,4),(53742,4),(53744,4),(53754,4),(53755,4),(53762,4),(53772,4),(53775,4),(53776,4),(53777,4),(53784,4),(53785,4),(53795,4),(53796,4),(53800,4),(53802,4),(53806,4),(53807,4),(53810,4),(53812,4),(53818,4),(53825,4),(53831,4),(53837,4),(53841,4),(53847,4),(53850,4),(53857,4),(53876,4),(53879,4),(53884,4),(53886,4),(53896,4),(53903,4),(53907,4),(53909,4),(53911,4),(53917,4),(53918,4),(53922,4),(53924,4),(53925,4),(53927,4),(53933,4),(53944,4),(53945,4),(53951,4),(53953,4),(53975,4),(53984,4),(53988,4),(53990,4),(53994,4),(53996,4),(53998,4),(54005,4),(54015,4),(54017,4),(54022,4),(54024,4),(54025,4),(54033,4),(54040,4),(54057,4),(54063,4),(54070,4),(54075,4),(54076,4),(54078,4),(54081,4),(54083,4),(54106,4),(54111,4),(54112,4),(54119,4),(54121,4),(54133,4),(54135,4),(54141,4),(54153,4),(54159,4),(54174,4),(54180,4),(54187,4),(54191,4),(54193,4),(54202,4),(54203,4),(54206,4),(54208,4),(54212,4),(54213,4),(54222,4),(54230,4),(54241,4),(54253,4),(54257,4),(54258,4),(54262,4),(54264,4),(54276,4),(54278,4),(54279,4),(54282,4),(54298,4),(54305,4),(54314,4),(54317,4),(54322,4),(54325,4),(54327,4),(54340,4),(54347,4),(54353,4),(54358,4),(54359,4),(54374,4),(54379,4),(54381,4),(54384,4),(54390,4),(54393,4),(54394,4),(54401,4),(54411,4),(54418,4),(54421,4),(54426,4),(54427,4),(54439,4),(54440,4),(54442,4),(54451,4),(54454,4),(54455,4),(54464,4),(54465,4),(54467,4),(54468,4),(54493,4),(54496,4),(54503,4),(54509,4),(54523,4),(54527,4),(54533,4),(54534,4),(54538,4),(54554,4),(54557,4),(54559,4),(54563,4),(54565,4),(54567,4),(54569,4),(54578,4),(54580,4),(54586,4),(54592,4),(54606,4),(54611,4),(54623,4),(54629,4),(54630,4),(54639,4),(54642,4),(54660,4),(54666,4),(54672,4),(54677,4),(54684,4),(54689,4),(54698,4),(54704,4),(54708,4),(54718,4),(54721,4),(54736,4),(54737,4),(54739,4),(54751,4),(54761,4),(54770,4),(54771,4),(54773,4),(54780,4),(54781,4),(54790,4),(54796,4),(54810,4),(54816,4),(54817,4),(54825,4),(54839,4),(54848,4),(54849,4),(54858,4),(54860,4),(54875,4),(54877,4),(54882,4),(54891,4),(54909,4),(54931,4),(54932,4),(54940,4),(54942,4),(54946,4),(54965,4),(54967,4),(54974,4),(54977,4),(54980,4),(54982,4),(55000,4),(55014,4),(55021,4),(55039,4),(55043,4),(55052,4),(55069,4),(55072,4),(55077,4),(55080,4),(55082,4),(55087,4),(55097,4),(55104,4),(55105,4),(55114,4),(55116,4),(55117,4),(55130,4),(55134,4),(55153,4),(55158,4),(55163,4),(55165,4),(55170,4),(55171,4),(55175,4),(55177,4),(55189,4),(55199,4),(55200,4),(55211,4),(55216,4),(55225,4),(55226,4),(55228,4),(55234,4),(55237,4),(55241,4),(55244,4),(55247,4),(55252,4),(55253,4),(55258,4),(55267,4),(55273,4),(55276,4),(55277,4),(55282,4),(55283,4),(55291,4),(55292,4),(55298,4),(55306,4),(55308,4),(55320,4),(55322,4),(55324,4),(55329,4),(55331,4),(55344,4),(55349,4),(55354,4),(55365,4),(55369,4),(55380,4),(55387,4),(55390,4),(55393,4),(55399,4),(55402,4),(55408,4),(55411,4),(55418,4),(55420,4),(55432,4),(55433,4),(55435,4),(55445,4),(55446,4),(55453,4),(55461,4),(55462,4),(55465,4),(55470,4),(55473,4),(55479,4),(55484,4),(55486,4),(55495,4),(55496,4),(55498,4),(55500,4),(55507,4),(55508,4),(55518,4),(55527,4),(55528,4),(55534,4),(55536,4),(55542,4),(55545,4),(55546,4),(55548,4),(55559,4),(55560,4),(55565,4),(55569,4),(55577,4),(55582,4),(55583,4),(55585,4),(55601,4),(55603,4),(55604,4),(55620,4),(55621,4),(55645,4),(55646,4),(55654,4),(55658,4),(55663,4),(55674,4),(55677,4),(55678,4),(55690,4),(55692,4),(55693,4),(55694,4),(55695,4),(55703,4),(55717,4),(55726,4),(55729,4),(55733,4),(55740,4),(55757,4),(55767,4),(55768,4),(55773,4),(55774,4),(55788,4),(55790,4),(55798,4),(55804,4),(55811,4),(55812,4),(55819,4),(55822,4),(55829,4),(55845,4),(55850,4),(55852,4),(55856,4),(55871,4),(55875,4),(55876,4),(55878,4),(55889,4),(55896,4),(55906,4),(55909,4),(55910,4),(55915,4),(55916,4),(55925,4),(55928,4),(55934,4),(55940,4),(55946,4),(55948,4),(55966,4),(55967,4),(55968,4),(55974,4),(55981,4),(55999,4),(56000,4),(56007,4),(56011,4),(56014,4),(56022,4),(56029,4),(56031,4),(56033,4),(56034,4),(56036,4),(56038,4),(56039,4),(56059,4),(56060,4),(56076,4),(56080,4),(56081,4),(56083,4),(56084,4),(56107,4),(56118,4),(56120,4),(56125,4),(56133,4),(56143,4),(56146,4),(56156,4),(56157,4),(56162,4),(56165,4),(56168,4),(56170,4),(56172,4),(56185,4),(56188,4),(56212,4),(56218,4),(56235,4),(56236,4),(56242,4),(56255,4),(56257,4),(56269,4),(56279,4),(56280,4),(56281,4),(56285,4),(56286,4),(56293,4),(56301,4),(56312,4),(56313,4),(56329,4),(56330,4),(56343,4),(56345,4),(56351,4),(56356,4),(56359,4),(56360,4),(56363,4),(56364,4),(56369,4),(56391,4),(56396,4),(56402,4),(56411,4),(56423,4),(56427,4),(56439,4),(56449,4),(56451,4),(56462,4),(56463,4),(56465,4),(56468,4),(56479,4),(56480,4),(56481,4),(56483,4),(56487,4),(56496,4),(56497,4),(56501,4),(56512,4),(56514,4),(56516,4),(56518,4),(56520,4),(56534,4),(56542,4),(56546,4),(56554,4),(56576,4),(56581,4),(56605,4),(56606,4),(56614,4),(56628,4),(56631,4),(56632,4),(56646,4),(56650,4),(56655,4),(56657,4),(56659,4),(56660,4),(56664,4),(56667,4),(56670,4),(56672,4),(56676,4),(56678,4),(56684,4),(56701,4),(56703,4),(56708,4),(56716,4),(56718,4),(56727,4),(56732,4),(56738,4),(56744,4),(56745,4),(56746,4),(56747,4),(56755,4),(56756,4),(56762,4),(56773,4),(56779,4),(56783,4),(56792,4),(56794,4),(56799,4),(56801,4),(56802,4),(56803,4),(56812,4),(56815,4),(56819,4),(56826,4),(56827,4),(56828,4),(56833,4),(56835,4),(56870,4),(56871,4),(56879,4),(56884,4),(56908,4),(56923,4),(56929,4),(56932,4),(56933,4),(56942,4),(56946,4),(56948,4),(56982,4),(56984,4),(56987,4),(56999,4),(57002,4),(57007,4),(57010,4),(57011,4),(57014,4),(57020,4),(57024,4),(57034,4),(57058,4),(57059,4),(57070,4),(57074,4),(57082,4),(57085,4),(57094,4),(57095,4),(57097,4),(57098,4),(57101,4),(57126,4),(57147,4),(57148,4),(57150,4),(57161,4),(57182,4),(57194,4),(57196,4),(57199,4),(57204,4),(57206,4),(57207,4),(57209,4),(57233,4),(57240,4),(57248,4),(57257,4),(57268,4),(57286,4),(57288,4),(57291,4),(57301,4),(57302,4),(57304,4),(57305,4),(57308,4),(57316,4),(57319,4),(57323,4),(57325,4),(57334,4),(57338,4),(57341,4),(57342,4),(57350,4),(57353,4),(57368,4),(57373,4),(57377,4),(57380,4),(57385,4),(57388,4),(57395,4),(57408,4),(57414,4),(57415,4),(57431,4),(57440,4),(57447,4),(57450,4),(57457,4),(57474,4),(57475,4),(57492,4),(57494,4),(57497,4),(57506,4),(57507,4),(57512,4),(57517,4),(57521,4),(57522,4),(57527,4),(57532,4),(57536,4),(57537,4),(57543,4),(57547,4),(57550,4),(57558,4),(57563,4),(57564,4),(57574,4),(57581,4),(57584,4),(57592,4),(57596,4),(57619,4),(57643,4),(57645,4),(57657,4),(57659,4),(57663,4),(57664,4),(57666,4),(57669,4),(57674,4),(57677,4),(57679,4),(57680,4),(57684,4),(57695,4),(57697,4),(57701,4),(57706,4),(57714,4),(57719,4),(57721,4),(57744,4),(57751,4),(57754,4),(57771,4),(57777,4),(57779,4),(57792,4),(57796,4),(57798,4),(57801,4),(57802,4),(57812,4),(57816,4),(57821,4),(57826,4),(57828,4),(57837,4),(57851,4),(57860,4),(57863,4),(57866,4),(57868,4),(57875,4),(57883,4),(57885,4),(57887,4),(57892,4),(57893,4),(57898,4),(57902,4),(57910,4),(57918,4),(57923,4),(57927,4),(57928,4),(57930,4),(57939,4),(57940,4),(57949,4),(57958,4),(57959,4),(57962,4),(57966,4),(57974,4),(57979,4),(57981,4),(57996,4),(58009,4),(58012,4),(58014,4),(58027,4),(58028,4),(58035,4),(58063,4),(58064,4),(58067,4),(58070,4),(58073,4),(58079,4),(58080,4),(58088,4),(58093,4),(58095,4),(58098,4),(58114,4),(58130,4),(58143,4),(58147,4),(58148,4),(58167,4),(58175,4),(58200,4),(58202,4),(58215,4),(58223,4),(58230,4),(58231,4),(58232,4),(58233,4),(58238,4),(58240,4),(58249,4),(58250,4),(58254,4),(58259,4),(58261,4),(58271,4),(58277,4),(58281,4),(58282,4),(58292,4),(58295,4),(58299,4),(58300,4),(58304,4),(58307,4),(58320,4),(58323,4),(58337,4),(58348,4),(58350,4),(58353,4),(58364,4),(58372,4),(58380,4),(58381,4),(58390,4),(58397,4),(58401,4),(58409,4),(58414,4),(58416,4),(58430,4),(58440,4),(58441,4),(58442,4),(58458,4),(58461,4),(58462,4),(58470,4),(58472,4),(58476,4),(58485,4),(58495,4),(58498,4),(58502,4),(58507,4),(58509,4),(58510,4),(58515,4),(58518,4),(58521,4),(58526,4),(58527,4),(58529,4),(58533,4),(58540,4),(58542,4),(58543,4),(58545,4),(58546,4),(58548,4),(58549,4),(58564,4),(58566,4),(58575,4),(58588,4),(58597,4),(58598,4),(58603,4),(58618,4),(58622,4),(58666,4),(58678,4),(58684,4),(58685,4),(58692,4),(58698,4),(58699,4),(58703,4),(58707,4),(58719,4),(58720,4),(58724,4),(58731,4),(58739,4),(58742,4),(58747,4),(58748,4),(58750,4),(58756,4),(58764,4),(58765,4),(58768,4),(58772,4),(58778,4),(58781,4),(58783,4),(58792,4),(58806,4),(58811,4),(58821,4),(58826,4),(58832,4),(58834,4),(58837,4),(58838,4),(58839,4),(58841,4),(58844,4),(58850,4),(58852,4),(58858,4),(58860,4),(58878,4),(58886,4),(58903,4),(58919,4),(58924,4),(58932,4),(58937,4),(58938,4),(58945,4),(58946,4),(58949,4),(58958,4),(58964,4),(58981,4),(58982,4),(58986,4),(58990,4),(58994,4),(58995,4),(58997,4),(59001,4),(59003,4),(59017,4),(59020,4),(59043,4),(59045,4),(59059,4),(59069,4),(59072,4),(59074,4),(59088,4),(59094,4),(59101,4),(59112,4),(59117,4),(59130,4),(59137,4),(59139,4),(59141,4),(59150,4),(59158,4),(59171,4),(59172,4),(59173,4),(59196,4),(59200,4),(59204,4),(59205,4),(59212,4),(59215,4),(59219,4),(59225,4),(59229,4),(59236,4),(59239,4),(59249,4),(59250,4),(59253,4),(59254,4),(59257,4),(59258,4),(59259,4),(59266,4),(59272,4),(59285,4),(59293,4),(59298,4),(59328,4),(59361,4),(59367,4),(59369,4),(59373,4),(59374,4),(59379,4),(59382,4),(59385,4),(59390,4),(59398,4),(59445,4),(59446,4),(59452,4),(59453,4),(59454,4),(59468,4),(59478,4),(59484,4),(59491,4),(59494,4),(59500,4),(59502,4),(59511,4),(59513,4),(59519,4),(59525,4),(59529,4),(59533,4),(59540,4),(59549,4),(59552,4),(59553,4),(59556,4),(59561,4),(59563,4),(59565,4),(59568,4),(59575,4),(59581,4),(59588,4),(59613,4),(59632,4),(59633,4),(59650,4),(59651,4),(59656,4),(59660,4),(59664,4),(59672,4),(59675,4),(59677,4),(59680,4),(59682,4),(59694,4),(59702,4),(59706,4),(59713,4),(59719,4),(59721,4),(59732,4),(59737,4),(59746,4),(59761,4),(59780,4),(59792,4),(59799,4),(59805,4),(59807,4),(59816,4),(59817,4),(59821,4),(59823,4),(59831,4),(59838,4),(59839,4),(59840,4),(59842,4),(59844,4),(59850,4),(59853,4),(59855,4),(59856,4),(59857,4),(59858,4),(59861,4),(59879,4),(59882,4),(59900,4),(59913,4),(59929,4),(59949,4),(59954,4),(59967,4),(59971,4),(59974,4),(59976,4),(59977,4),(59981,4),(59997,4),(60005,4),(60007,4),(60018,4),(60021,4),(60026,4),(60027,4),(60028,4),(60030,4),(60038,4),(60041,4),(60044,4),(60046,4),(60050,4),(60061,4),(60085,4),(60095,4),(60097,4),(60100,4),(60101,4),(60112,4),(60115,4),(60118,4),(60123,4),(60124,4),(60132,4),(60140,4),(60141,4),(60149,4),(60150,4),(60162,4),(60176,4),(60177,4),(60189,4),(60202,4),(60205,4),(60208,4),(60218,4),(60219,4),(60229,4),(60230,4),(60233,4),(60234,4),(60240,4),(60250,4),(60264,4),(60265,4),(60269,4),(60275,4),(60282,4),(60285,4),(60298,4),(60299,4),(60303,4),(60318,4),(60319,4),(60328,4),(60329,4),(60331,4),(60333,4),(60350,4),(60366,4),(60368,4),(60383,4),(60387,4),(60395,4),(60398,4),(60403,4),(60405,4),(60414,4),(60420,4),(60425,4),(60426,4),(60430,4),(60442,4),(60444,4),(60445,4),(60460,4),(60464,4),(60469,4),(60471,4),(60473,4),(60480,4),(60487,4),(60490,4),(60491,4),(60494,4),(60501,4),(60505,4),(60517,4),(60518,4),(60523,4),(60525,4),(60527,4),(60529,4),(60540,4),(60541,4),(60553,4),(60558,4),(60563,4),(60565,4),(60570,4),(60572,4),(60574,4),(60590,4),(60598,4),(60599,4),(60608,4),(60609,4),(60619,4),(60623,4),(60624,4),(60632,4),(60649,4),(60656,4),(60658,4),(60660,4),(60662,4),(60664,4),(60668,4),(60669,4),(60670,4),(60675,4),(60676,4),(60686,4),(60690,4),(60701,4),(60704,4),(60714,4),(60716,4),(60724,4),(60731,4),(60743,4),(60745,4),(60747,4),(60761,4),(60778,4),(60790,4),(60794,4),(60823,4),(60826,4),(60827,4),(60830,4),(60838,4),(60841,4),(60843,4),(60845,4),(60848,4),(60850,4),(60855,4),(60859,4),(60862,4),(60865,4),(60867,4),(60870,4),(60873,4),(60875,4),(60884,4),(60896,4),(60905,4),(60909,4),(60911,4),(60920,4),(60925,4),(60938,4),(60951,4),(60953,4),(60955,4),(60965,4),(60969,4),(60977,4),(60978,4),(60981,4),(60989,4),(60991,4),(60996,4),(61001,4),(61002,4),(61005,4),(61006,4),(61012,4),(61013,4),(61017,4),(61023,4),(61035,4),(61045,4),(61046,4),(61057,4),(61063,4),(61073,4),(61075,4),(61089,4),(61098,4),(61102,4),(61107,4),(61109,4),(61131,4),(61145,4),(61148,4),(61153,4),(61156,4),(61159,4),(61178,4),(61179,4),(61195,4),(61204,4),(61208,4),(61210,4),(61211,4),(61212,4),(61218,4),(61228,4),(61237,4),(61238,4),(61243,4),(61245,4),(61250,4),(61253,4),(61261,4),(61280,4),(61286,4),(61288,4),(61298,4),(61313,4),(61324,4),(61328,4),(61338,4),(61349,4),(61356,4),(61358,4),(61367,4),(61372,4),(61382,4),(61386,4),(61393,4),(61399,4),(61403,4),(61410,4),(61425,4),(61436,4),(61437,4),(61438,4),(61440,4),(61441,4),(61443,4),(61449,4),(61480,4),(61484,4),(61488,4),(61496,4),(61505,4),(61506,4),(61511,4),(61512,4),(61522,4),(61534,4),(61555,4),(61558,4),(61563,4),(61585,4),(61586,4),(61593,4),(61597,4),(61598,4),(61606,4),(61609,4),(61612,4),(61615,4),(61616,4),(61625,4),(61627,4),(61636,4),(61644,4),(61648,4),(61649,4),(61652,4),(61654,4),(61661,4),(61677,4),(61680,4),(61681,4),(61686,4),(61688,4),(61700,4),(61706,4),(61708,4),(61710,4),(61720,4),(61725,4),(61726,4),(61736,4),(61748,4),(61749,4),(61765,4),(61766,4),(61779,4),(61783,4),(61788,4),(61794,4),(61799,4),(61809,4),(61813,4),(61820,4),(61823,4),(61828,4),(61837,4),(61845,4),(61887,4),(61888,4),(61891,4),(61910,4),(61918,4),(61921,4),(61926,4),(61929,4),(61938,4),(61961,4),(61973,4),(61980,4),(61984,4),(61989,4),(61997,4),(61999,4),(62009,4),(62013,4),(62014,4),(62022,4),(62025,4),(62029,4),(62031,4),(62035,4),(62046,4),(62049,4),(62050,4),(62055,4),(62057,4),(62058,4),(62060,4),(62062,4),(62063,4),(62070,4),(62075,4),(62082,4),(62086,4),(62091,4),(62105,4),(62114,4),(62118,4),(62129,4),(62131,4),(62133,4),(62152,4),(62153,4),(62165,4),(62171,4),(62175,4),(62180,4),(62181,4),(62183,4),(62185,4),(62186,4),(62192,4),(62199,4),(62211,4),(62215,4),(62218,4),(62223,4),(62226,4),(62230,4),(62236,4),(62237,4),(62241,4),(62242,4),(62273,4),(62281,4),(62284,4),(62287,4),(62288,4),(62292,4),(62306,4),(62308,4),(62311,4),(62313,4),(62314,4),(62322,4),(62334,4),(62335,4),(62336,4),(62343,4),(62345,4),(62347,4),(62360,4),(62366,4),(62374,4),(62375,4),(62380,4),(62390,4),(62393,4),(62394,4),(62395,4),(62406,4),(62414,4),(62416,4),(62417,4),(62421,4),(62437,4),(62442,4),(62444,4),(62451,4),(62460,4),(62468,4),(62475,4),(62479,4),(62480,4),(62488,4),(62489,4),(62506,4),(62508,4),(62510,4),(62514,4),(62516,4),(62518,4),(62522,4),(62523,4),(62527,4),(62532,4),(62534,4),(62542,4),(62544,4),(62550,4),(62551,4),(62560,4),(62587,4),(62593,4),(62596,4),(62606,4),(62612,4),(62613,4),(62616,4),(62624,4),(62629,4),(62631,4),(62636,4),(62639,4),(62650,4),(62658,4),(62659,4),(62661,4),(62668,4),(62674,4),(62689,4),(62695,4),(62699,4),(62708,4),(62710,4),(62711,4),(62716,4),(62727,4),(62734,4),(62747,4),(62767,4),(62795,4),(62800,4),(62808,4),(62809,4),(62818,4),(62820,4),(62821,4),(62824,4),(62827,4),(62837,4),(62838,4),(62841,4),(62852,4),(62857,4),(62861,4),(62871,4),(62881,4),(62882,4),(62888,4),(62889,4),(62892,4),(62897,4),(62900,4),(62906,4),(62916,4),(62923,4),(62930,4),(62935,4),(62943,4),(62954,4),(62957,4),(62966,4),(62971,4),(62974,4),(62981,4),(62985,4),(62986,4),(62995,4),(62998,4),(63000,4),(63002,4),(63005,4),(63006,4),(63009,4),(63023,4),(63037,4),(63049,4),(63069,4),(63072,4),(63078,4),(63081,4),(63083,4),(63091,4),(63093,4),(63106,4),(63109,4),(63110,4),(63131,4),(63136,4),(63142,4),(63148,4),(63159,4),(63168,4),(63170,4),(63177,4),(63179,4),(63188,4),(63190,4),(63191,4),(63194,4),(63195,4),(63197,4),(63212,4),(63220,4),(63230,4),(63234,4),(63238,4),(63248,4),(63250,4),(63254,4),(63260,4),(63266,4),(63284,4),(63285,4),(63288,4),(63297,4),(63307,4),(63316,4),(63320,4),(63333,4),(63335,4),(63342,4),(63346,4),(63349,4),(63354,4),(63356,4),(63361,4),(63365,4),(63367,4),(63371,4),(63372,4),(63374,4),(63375,4),(63382,4),(63390,4),(63397,4),(63398,4),(63399,4),(63402,4),(63403,4),(63409,4),(63411,4),(63413,4),(63418,4),(63431,4),(63434,4),(63444,4),(63450,4),(63453,4),(63454,4),(63459,4),(63461,4),(63462,4),(63466,4),(63468,4),(63472,4),(63473,4),(63474,4),(63481,4),(63482,4),(63496,4),(63500,4),(63505,4),(63513,4),(63528,4),(63529,4),(63533,4),(63536,4),(63541,4),(63542,4),(63547,4),(63548,4),(63549,4),(63555,4),(63556,4),(63562,4),(63580,4),(63581,4),(63590,4),(63594,4),(63597,4),(63605,4),(63607,4),(63613,4),(63621,4),(63627,4),(63644,4),(63645,4),(63657,4),(63658,4),(63667,4),(63669,4),(63684,4),(63686,4),(63690,4),(63691,4),(63694,4),(63707,4),(63708,4),(63712,4),(63713,4),(63721,4),(63726,4),(63733,4),(63734,4),(63741,4),(63748,4),(63750,4),(63752,4),(63758,4),(63759,4),(63770,4),(63774,4),(63778,4),(63783,4),(63791,4),(63797,4),(63800,4),(63811,4),(63813,4),(63832,4),(63839,4),(63842,4),(63845,4),(63852,4),(63856,4),(63858,4),(63865,4),(63869,4),(63878,4),(63883,4),(63884,4),(63922,4),(63940,4),(63941,4),(63948,4),(63949,4),(63953,4),(63966,4),(63973,4),(63977,4),(63979,4),(63982,4),(63985,4),(63989,4),(63991,4),(64017,4),(64019,4),(64020,4),(64021,4),(64058,4),(64063,4),(64076,4),(64088,4),(64089,4),(64106,4),(64110,4),(64115,4),(64121,4),(64125,4),(64128,4),(64136,4),(64137,4),(64142,4),(64143,4),(64144,4),(64155,4),(64164,4),(64165,4),(64187,4),(64188,4),(64191,4),(64195,4),(64202,4),(64206,4),(64207,4),(64216,4),(64218,4),(64223,4),(64241,4),(64247,4),(64261,4),(64289,4),(64298,4),(64301,4),(64302,4),(64304,4),(64305,4),(64306,4),(64322,4),(64330,4),(64334,4),(64338,4),(64342,4),(64352,4),(64376,4),(64380,4),(64391,4),(64396,4),(64410,4),(64415,4),(64420,4),(64423,4),(64432,4),(64433,4),(64441,4),(64446,4),(64452,4),(64461,4),(64476,4),(64478,4),(64504,4),(64514,4),(64517,4),(64518,4),(64526,4),(64536,4),(64541,4),(64553,4),(64560,4),(64567,4),(64571,4),(64585,4),(64586,4),(64589,4),(64592,4),(64595,4),(64596,4),(64629,4),(64633,4),(64634,4),(64636,4),(64648,4),(64652,4),(64653,4),(64659,4),(64663,4),(64674,4),(64680,4),(64684,4),(64685,4),(64694,4),(64703,4),(64707,4),(64718,4),(64726,4),(64729,4),(64754,4),(64762,4),(64773,4),(64776,4),(64788,4),(64789,4),(64790,4),(64793,4),(64803,4),(64804,4),(64805,4),(64809,4),(64811,4),(64813,4),(64817,4),(64818,4),(64823,4),(64824,4),(64832,4),(64836,4),(64849,4),(64875,4),(64877,4),(64878,4),(64882,4),(64885,4),(64886,4),(64889,4),(64892,4),(64897,4),(64903,4),(64906,4),(64916,4),(64918,4),(64933,4),(64938,4),(64940,4),(64942,4),(64943,4),(64953,4),(64961,4),(64962,4),(64977,4),(64980,4),(64997,4),(64999,4),(65007,4),(65011,4),(65019,4),(65020,4),(65030,4),(65044,4),(65047,4),(65053,4),(65061,4),(65073,4),(65075,4),(65084,4),(65085,4),(65088,4),(65093,4),(65096,4),(65099,4),(65104,4),(65106,4),(65112,4),(65115,4),(65119,4),(65130,4),(65139,4),(65151,4),(65155,4),(65160,4),(65182,4),(65186,4),(65192,4),(65197,4),(65205,4),(65211,4),(65213,4),(65215,4),(65221,4),(65233,4),(65245,4),(65246,4),(65253,4),(65274,4),(65285,4),(65292,4),(65293,4),(65300,4),(65301,4),(65312,4),(65314,4),(65320,4),(65336,4),(65341,4),(65346,4),(65347,4),(65361,4),(65364,4),(65370,4),(65375,4),(65377,4),(65382,4),(65392,4),(65406,4),(65410,4),(65411,4),(65423,4),(65438,4),(65456,4),(65457,4),(65464,4),(65473,4),(65477,4),(65482,4),(65497,4),(65502,4),(65507,4),(65509,4),(65513,4),(65514,4),(65518,4),(65521,4),(65531,4),(65532,4),(65544,4),(65556,4),(65558,4),(65561,4),(65566,4),(65567,4),(65569,4),(65576,4),(65580,4),(65584,4),(65600,4),(65611,4),(65613,4),(65630,4),(65633,4),(65636,4),(65645,4),(65646,4),(65649,4),(65659,4),(65665,4),(65677,4),(65682,4),(65684,4),(65690,4),(65691,4),(65692,4),(65693,4),(65697,4),(65711,4),(65715,4),(65716,4),(65721,4),(65728,4),(65737,4),(65746,4),(65749,4),(65754,4),(65758,4),(65765,4),(65767,4),(65768,4),(65775,4),(65777,4),(65780,4),(65785,4),(65786,4),(65794,4),(65813,4),(65827,4),(65829,4),(65830,4),(65840,4),(65841,4),(65848,4),(65849,4),(65856,4),(65859,4),(65861,4),(65864,4),(65865,4),(65867,4),(65877,4),(65883,4),(65886,4),(65892,4),(65900,4),(65905,4),(65906,4),(65916,4),(65928,4),(65929,4),(65931,4),(65932,4),(65939,4),(65960,4),(65962,4),(65970,4),(65978,4),(65983,4),(65985,4),(65995,4),(66004,4),(66006,4),(66009,4),(66015,4),(66022,4),(66023,4),(66029,4),(66031,4),(66043,4),(66046,4),(66051,4),(66054,4),(66068,4),(66077,4),(66081,4),(66083,4),(66084,4),(66093,4),(66113,4),(66122,4),(66124,4),(66130,4),(66141,4),(66150,4),(66153,4),(66158,4),(66160,4),(66163,4),(66179,4),(66192,4),(66193,4),(66197,4),(66205,4),(66206,4),(66215,4),(66216,4),(66218,4),(66224,4),(66234,4),(66235,4),(66242,4),(66248,4),(66256,4),(66267,4),(66269,4),(66273,4),(66274,4),(66276,4),(66282,4),(66284,4),(66288,4),(66299,4),(66302,4),(66307,4),(66309,4),(66326,4),(66333,4),(66348,4),(66351,4),(66361,4),(66366,4),(66367,4),(66376,4),(66377,4),(66394,4),(66401,4),(66402,4),(66406,4),(66408,4),(66411,4),(66413,4),(66414,4),(66418,4),(66422,4),(66423,4),(66425,4),(66432,4),(66440,4),(66446,4),(66447,4),(66462,4),(66465,4),(66474,4),(66479,4),(66488,4),(66489,4),(66496,4),(66498,4),(66503,4),(66508,4),(66516,4),(66522,4),(66530,4),(66535,4),(66546,4),(66554,4),(66565,4),(66572,4),(66573,4),(66576,4),(66582,4),(66585,4),(66586,4),(66588,4),(66589,4),(66593,4),(66597,4),(66600,4),(66602,4),(66605,4),(66607,4),(66609,4),(66612,4),(66635,4),(66646,4),(66661,4),(66668,4),(66679,4),(66686,4),(66688,4),(66693,4),(66695,4),(66712,4),(66718,4),(66727,4),(66742,4),(66747,4),(66757,4),(66766,4),(66773,4),(66777,4),(66782,4),(66790,4),(66795,4),(66800,4),(66801,4),(66803,4),(66813,4),(66820,4),(66830,4),(66839,4),(66846,4),(66849,4),(66853,4),(66868,4),(66870,4),(66873,4),(66878,4),(66888,4),(66900,4),(66911,4),(66926,4),(66946,4),(66947,4),(66951,4),(66954,4),(66955,4),(66958,4),(66960,4),(66963,4),(66965,4),(66966,4),(66974,4),(66975,4),(66980,4),(66987,4),(66988,4),(66993,4),(67002,4),(67006,4),(67020,4),(67026,4),(67031,4),(67050,4),(67064,4),(67065,4),(67066,4),(67067,4),(67069,4),(67070,4),(67076,4),(67090,4),(67091,4),(67095,4),(67096,4),(67099,4),(67101,4),(67109,4),(67113,4),(67120,4),(67122,4),(67125,4),(67128,4),(67137,4),(67147,4),(67152,4),(67157,4),(67161,4),(67166,4),(67167,4),(67186,4),(67189,4),(67191,4),(67214,4),(67220,4),(67230,4),(67231,4),(67244,4),(67246,4),(67247,4),(67252,4),(67254,4),(67257,4),(67260,4),(67276,4),(67280,4),(67292,4),(67305,4),(67309,4),(67310,4),(67311,4),(67313,4),(67322,4),(67325,4),(67334,4),(67336,4),(67338,4),(67341,4),(67344,4),(67350,4),(67351,4),(67357,4),(67368,4),(67371,4),(67375,4),(67376,4),(67378,4),(67381,4),(67382,4),(67391,4),(67393,4),(67403,4),(67406,4),(67420,4),(67421,4),(67424,4),(67428,4),(67432,4),(67445,4),(67448,4),(67450,4),(67457,4),(67458,4),(67461,4),(67466,4),(67476,4),(67483,4),(67503,4),(67505,4),(67506,4),(67507,4),(67516,4),(67521,4),(67524,4),(67530,4),(67531,4),(67532,4),(67536,4),(67541,4),(67548,4),(67549,4),(67550,4),(67551,4),(67554,4),(67558,4),(67559,4),(67563,4),(67566,4),(67567,4),(67570,4),(67574,4),(67579,4),(67580,4),(67585,4),(67586,4),(67588,4),(67600,4),(67608,4),(67613,4),(67614,4),(67615,4),(67620,4),(67621,4),(67633,4),(67635,4),(67638,4),(67646,4),(67648,4),(67662,4),(67667,4),(67668,4),(67679,4),(67681,4),(67683,4),(67685,4),(67697,4),(67698,4),(67714,4),(67715,4),(67718,4),(67720,4),(67737,4),(67745,4),(67747,4),(67750,4),(67752,4),(67768,4),(67769,4),(67771,4),(67774,4),(67793,4),(67798,4),(67800,4),(67806,4),(67808,4),(67811,4),(67815,4),(67819,4),(67824,4),(67825,4),(67835,4),(67856,4),(67861,4),(67864,4),(67867,4),(67885,4),(67896,4),(67907,4),(67915,4),(67921,4),(67942,4),(67948,4),(67955,4),(67959,4),(67965,4),(67978,4),(67987,4),(67990,4),(67992,4),(67993,4),(67997,4),(68002,4),(68005,4),(68007,4),(68009,4),(68016,4),(68018,4),(68019,4),(68020,4),(68023,4),(68066,4),(68068,4),(68079,4),(68103,4),(68104,4),(68137,4),(68138,4),(68139,4),(68144,4),(68146,4),(68151,4),(68168,4),(68182,4),(68183,4),(68195,4),(68206,4),(68215,4),(68217,4),(68229,4),(68238,4),(68240,4),(68241,4),(68247,4),(68258,4),(68260,4),(68262,4),(68263,4),(68270,4),(68271,4),(68273,4),(68279,4),(68285,4),(68286,4),(68289,4),(68299,4),(68309,4),(68315,4),(68327,4),(68331,4),(68333,4),(68334,4),(68337,4),(68354,4),(68358,4),(68359,4),(68361,4),(68370,4),(68379,4),(68384,4),(68387,4),(68388,4),(68392,4),(68395,4),(68405,4),(68406,4),(68415,4),(68418,4),(68423,4),(68427,4),(68431,4),(68435,4),(68438,4),(68449,4),(68454,4),(68459,4),(68461,4),(68476,4),(68478,4),(68479,4),(68485,4),(68501,4),(68508,4),(68509,4),(68516,4),(68520,4),(68527,4),(68528,4),(68530,4),(68533,4),(68537,4),(68542,4),(68551,4),(68564,4),(68568,4),(68571,4),(68572,4),(68590,4),(68592,4),(68595,4),(68604,4),(68616,4),(68617,4),(68618,4),(68622,4),(68626,4),(68633,4),(68636,4),(68647,4),(68649,4),(68651,4),(68653,4),(68661,4),(68664,4),(68670,4),(68672,4),(68682,4),(68692,4),(68698,4),(68699,4),(68701,4),(68708,4),(68710,4),(68724,4),(68727,4),(68740,4),(68743,4),(68748,4),(68761,4),(68762,4),(68777,4),(68779,4),(68791,4),(68795,4),(68808,4),(68817,4),(68818,4),(68821,4),(68822,4),(68837,4),(68873,4),(68883,4),(68890,4),(68893,4),(68898,4),(68903,4),(68907,4),(68913,4),(68918,4),(68926,4),(68942,4),(68948,4),(68950,4),(68952,4),(68953,4),(68961,4),(68962,4),(68968,4),(68985,4),(69005,4),(69020,4),(69025,4),(69042,4),(69049,4),(69054,4),(69067,4),(69068,4),(69070,4),(69072,4),(69103,4),(69120,4),(69123,4),(69129,4),(69130,4),(69148,4),(69149,4),(69154,4),(69162,4),(69173,4),(69175,4),(69176,4),(69187,4),(69207,4),(69211,4),(69214,4),(69222,4),(69224,4),(69229,4),(69234,4),(69236,4),(69240,4),(69258,4),(69264,4),(69299,4),(69304,4),(69318,4),(69326,4),(69327,4),(69328,4),(69341,4),(69344,4),(69360,4),(69363,4),(69370,4),(69371,4),(69374,4),(69377,4),(69382,4),(69385,4),(69394,4),(69400,4),(69422,4),(69423,4),(69430,4),(69431,4),(69442,4),(69443,4),(69448,4),(69455,4),(69458,4),(69467,4),(69469,4),(69470,4),(69473,4),(69478,4),(69479,4),(69491,4),(69494,4),(69498,4),(69510,4),(69511,4),(69513,4),(69517,4),(69518,4),(69526,4),(69527,4),(69531,4),(69534,4),(69547,4),(69569,4),(69572,4),(69575,4),(69578,4),(69595,4),(69600,4),(69603,4),(69606,4),(69607,4),(69615,4),(69618,4),(69624,4),(69639,4),(69645,4),(69652,4),(69654,4),(69655,4),(69665,4),(69671,4),(69676,4),(69677,4),(69683,4),(69685,4),(69689,4),(69693,4),(69706,4),(69725,4),(69730,4),(69757,4),(69764,4),(69771,4),(69772,4),(69775,4),(69781,4),(69783,4),(69784,4),(69787,4),(69793,4),(69796,4),(69807,4),(69808,4),(69817,4),(69827,4),(69834,4),(69842,4),(69856,4),(69864,4),(69865,4),(69869,4),(69877,4),(69884,4),(69885,4),(69888,4),(69889,4),(69906,4),(69907,4),(69914,4),(69928,4),(69933,4),(69937,4),(69946,4),(69949,4),(69953,4),(69965,4),(69966,4),(69969,4),(69972,4),(69973,4),(69977,4),(69990,4),(70000,4),(70003,4),(70008,4),(70009,4),(70011,4),(70030,4),(70048,4),(70052,4),(70053,4),(70056,4),(70075,4),(70079,4),(70089,4),(70100,4),(70107,4),(70115,4),(70116,4),(70117,4),(70126,4),(70127,4),(70139,4),(70141,4),(70156,4),(70158,4),(70176,4),(70182,4),(70183,4),(70184,4),(70192,4),(70195,4),(70198,4),(70199,4),(70212,4),(70221,4),(70229,4),(70234,4),(70253,4),(70254,4),(70255,4),(70261,4),(70266,4),(70269,4),(70270,4),(70271,4),(70272,4),(70273,4),(70279,4),(70280,4),(70283,4),(70284,4),(70289,4),(70290,4),(70292,4),(70301,4),(70320,4),(70322,4),(70323,4),(70338,4),(70344,4),(70345,4),(70349,4),(70357,4),(70359,4),(70365,4),(70366,4),(70381,4),(70385,4),(70386,4),(70390,4),(70395,4),(70397,4),(70401,4),(70408,4),(70409,4),(70410,4),(70412,4),(70417,4),(70422,4),(70434,4),(70438,4),(70440,4),(70445,4),(70450,4),(70452,4),(70460,4),(70464,4),(70466,4),(70469,4),(70470,4),(70474,4),(70477,4),(70505,4),(70525,4),(70526,4),(70539,4),(70544,4),(70545,4),(70558,4),(70563,4),(70567,4),(70586,4),(70587,4),(70591,4),(70592,4),(70593,4),(70597,4),(70599,4),(70620,4),(70642,4),(70645,4),(70649,4),(70653,4),(70677,4),(70682,4),(70686,4),(70689,4),(70694,4),(70695,4),(70698,4),(70700,4),(70706,4),(70712,4),(70717,4),(70719,4),(70720,4),(70724,4),(70725,4),(70753,4),(70759,4),(70765,4),(70768,4),(70771,4),(70772,4),(70778,4),(70779,4),(70782,4),(70787,4),(70796,4),(70798,4),(70826,4),(70827,4),(70830,4),(70841,4),(70851,4),(70852,4),(70855,4),(70861,4),(70871,4),(70872,4),(70877,4),(70879,4),(70880,4),(70882,4),(70884,4),(70898,4),(70913,4),(70918,4),(70933,4),(70939,4),(70943,4),(70944,4),(70946,4),(70953,4),(70958,4),(70966,4),(70973,4),(70978,4),(70982,4),(70987,4),(71003,4),(71008,4),(71029,4),(71035,4),(71037,4),(71041,4),(71050,4),(71054,4),(71062,4),(71067,4),(71070,4),(71079,4),(71085,4),(71087,4),(71092,4),(71100,4),(71101,4),(71111,4),(71115,4),(71121,4),(71138,4),(71139,4),(71142,4),(71144,4),(71145,4),(71157,4),(71162,4),(71164,4),(71173,4),(71199,4),(71211,4),(71217,4),(71219,4),(71221,4),(71240,4),(71243,4),(71246,4),(71253,4),(71256,4),(71266,4),(71270,4),(71275,4),(71278,4),(71286,4),(71290,4),(71291,4),(71296,4),(71297,4),(71309,4),(71314,4),(71315,4),(71320,4),(71326,4),(71327,4),(71331,4),(71348,4),(71361,4),(71364,4),(71372,4),(71376,4),(71377,4),(71379,4),(71384,4),(71387,4),(71389,4),(71395,4),(71396,4),(71407,4),(71412,4),(71416,4),(71420,4),(71423,4),(71431,4),(71442,4),(71444,4),(71447,4),(71456,4),(71457,4),(71462,4),(71476,4),(71482,4),(71489,4),(71491,4),(71492,4),(71505,4),(71510,4),(71526,4),(71534,4),(71537,4),(71550,4),(71551,4),(71555,4),(71559,4),(71565,4),(71566,4),(71573,4),(71596,4),(71604,4),(71608,4),(71615,4),(71626,4),(71637,4),(71644,4),(71660,4),(71663,4),(71664,4),(71669,4),(71678,4),(71680,4),(71684,4),(71689,4),(71690,4),(71704,4),(71705,4),(71707,4),(71709,4),(71714,4),(71719,4),(71720,4),(71721,4),(71724,4),(71743,4),(71747,4),(71748,4),(71750,4),(71755,4),(71763,4),(71767,4),(71768,4),(71769,4),(71772,4),(71776,4),(71785,4),(71786,4),(71799,4),(71824,4),(71828,4),(71841,4),(71847,4),(71849,4),(71855,4),(71858,4),(71869,4),(71882,4),(71894,4),(71906,4),(71910,4),(71912,4),(71913,4),(71914,4),(71916,4),(71918,4),(71922,4),(71923,4),(71926,4),(71928,4),(71929,4),(71931,4),(71932,4),(71938,4),(71969,4),(71970,4),(71972,4),(71984,4),(71991,4),(72003,4),(72023,4),(72025,4),(72026,4),(72028,4),(72032,4),(72049,4),(72061,4),(72062,4),(72083,4),(72089,4),(72090,4),(72094,4),(72102,4),(72103,4),(72112,4),(72115,4),(72120,4),(72122,4),(72134,4),(72135,4),(72152,4),(72154,4),(72159,4),(72162,4),(72165,4),(72179,4),(72180,4),(72193,4),(72201,4),(72222,4),(72225,4),(72229,4),(72230,4),(72232,4),(72233,4),(72237,4),(72242,4),(72249,4),(72250,4),(72252,4),(72264,4),(72270,4),(72280,4),(72281,4),(72282,4),(72289,4),(72290,4),(72294,4),(72295,4),(72296,4),(72298,4),(72301,4),(72308,4),(72311,4),(72313,4),(72324,4),(72329,4),(72348,4),(72350,4),(72351,4),(72353,4),(72362,4),(72366,4),(72370,4),(72378,4),(72386,4),(72389,4),(72390,4),(72395,4),(72397,4),(72402,4),(72403,4),(72415,4),(72425,4),(72430,4),(72439,4),(72443,4),(72453,4),(72504,4),(72508,4),(72515,4),(72516,4),(72520,4),(72522,4),(72530,4),(72539,4),(72541,4),(72562,4),(72566,4),(72575,4),(72577,4),(72582,4),(72589,4),(72593,4),(72616,4),(72621,4),(72622,4),(72628,4),(72632,4),(72647,4),(72650,4),(72668,4),(72671,4),(72679,4),(72681,4),(72692,4),(72701,4),(72704,4),(72708,4),(72728,4),(72730,4),(72731,4),(72737,4),(72738,4),(72749,4),(72760,4),(72762,4),(72763,4),(72774,4),(72775,4),(72799,4),(72804,4),(72806,4),(72808,4),(72811,4),(72812,4),(72820,4),(72826,4),(72827,4),(72834,4),(72839,4),(72842,4),(72849,4),(72853,4),(72865,4),(72882,4),(72889,4),(72893,4),(72905,4),(72907,4),(72913,4),(72927,4),(72940,4),(72947,4),(72948,4),(72952,4),(72953,4),(72954,4),(72956,4),(72960,4),(72971,4),(72979,4),(72985,4),(72989,4),(72990,4),(72997,4),(73005,4),(73008,4),(73016,4),(73029,4),(73031,4),(73033,4),(73040,4),(73044,4),(73052,4),(73060,4),(73070,4),(73079,4),(73085,4),(73087,4),(73089,4),(73099,4),(73100,4),(73105,4),(73125,4),(73135,4),(73137,4),(73148,4),(73150,4),(73155,4),(73157,4),(73161,4),(73162,4),(73180,4),(73189,4),(73190,4),(73202,4),(73206,4),(73211,4),(73218,4),(73231,4),(73245,4),(73250,4),(73252,4),(73263,4),(73264,4),(73272,4),(73274,4),(73277,4),(73286,4),(73290,4),(73294,4),(73296,4),(73300,4),(73305,4),(73307,4),(73310,4),(73313,4),(73318,4),(73328,4),(73338,4),(73354,4),(73356,4),(73361,4),(73365,4),(73366,4),(73371,4),(73387,4),(73392,4),(73396,4),(73398,4),(73400,4),(73401,4),(73411,4),(73430,4),(73436,4),(73441,4),(73453,4),(73454,4),(73456,4),(73468,4),(73473,4),(73474,4),(73480,4),(73482,4),(73485,4),(73490,4),(73493,4),(73495,4),(73498,4),(73499,4),(73518,4),(73524,4),(73538,4),(73539,4),(73557,4),(73588,4),(73590,4),(73593,4),(73597,4),(73608,4),(73609,4),(73617,4),(73622,4),(73631,4),(73633,4),(73642,4),(73644,4),(73646,4),(73647,4),(73652,4),(73656,4),(73684,4),(73690,4),(73693,4),(73694,4),(73700,4),(73712,4),(73719,4),(73720,4),(73726,4),(73731,4),(73755,4),(73758,4),(73770,4),(73782,4),(73787,4),(73792,4),(73793,4),(73805,4),(73808,4),(73809,4),(73813,4),(73824,4),(73837,4),(73848,4),(73850,4),(73854,4),(73863,4),(73874,4),(73892,4),(73902,4),(73904,4),(73906,4),(73912,4),(73921,4),(73926,4),(73935,4),(73938,4),(73942,4),(73947,4),(73952,4),(73964,4),(73965,4),(73981,4),(73991,4),(73994,4),(73998,4),(74000,4),(74005,4),(74009,4),(74011,4),(74015,4),(74029,4),(74037,4),(74041,4),(74052,4),(74077,4),(74079,4),(74083,4),(74090,4),(74092,4),(74093,4),(74094,4),(74095,4),(74096,4),(74099,4),(74101,4),(74102,4),(74107,4),(74113,4),(74116,4),(74123,4),(74125,4),(74152,4),(74154,4),(74155,4),(74157,4),(74164,4),(74165,4),(74168,4),(74169,4),(74171,4),(74183,4),(74189,4),(74197,4),(74206,4),(74208,4),(74209,4),(74212,4),(74216,4),(74218,4),(74219,4),(74228,4),(74244,4),(74246,4),(74255,4),(74267,4),(74268,4),(74270,4),(74271,4),(74286,4),(74291,4),(74299,4),(74313,4),(74316,4),(74333,4),(74338,4),(74363,4),(74366,4),(74367,4),(74369,4),(74385,4),(74396,4),(74400,4),(74412,4),(74414,4),(74429,4),(74431,4),(74437,4),(74448,4),(74454,4),(74456,4),(74468,4),(74475,4),(74493,4),(74496,4),(74506,4),(74513,4),(74515,4),(74518,4),(74521,4),(74525,4),(74527,4),(74529,4),(74538,4),(74551,4),(74554,4),(74560,4),(74575,4),(74580,4),(74585,4),(74591,4),(74599,4),(74600,4),(74601,4),(74610,4),(74618,4),(74622,4),(74623,4),(74625,4),(74631,4),(74633,4),(74637,4),(74644,4),(74659,4),(74666,4),(74670,4),(74673,4),(74681,4),(74682,4),(74685,4),(74691,4),(74693,4),(74696,4),(74703,4),(74704,4),(74708,4),(74711,4),(74714,4),(74715,4),(74718,4),(74727,4),(74733,4),(74739,4),(74740,4),(74747,4),(74751,4),(74766,4),(74768,4),(74771,4),(74773,4),(74787,4),(74792,4),(74798,4),(74801,4),(74811,4),(74816,4),(74821,4),(74822,4),(74846,4),(74850,4),(74853,4),(74854,4),(74857,4),(74858,4),(74863,4),(74865,4),(74866,4),(74869,4),(74871,4),(74877,4),(74883,4),(74890,4),(74896,4),(74900,4),(74913,4),(74915,4),(74918,4),(74928,4),(74930,4),(74940,4),(74942,4),(74950,4),(74967,4),(74972,4),(74985,4),(74986,4),(74995,4),(74998,4),(75012,4),(75016,4),(75017,4),(75021,4),(75022,4),(75023,4),(75028,4),(75032,4),(75035,4),(75040,4),(75053,4),(75055,4),(75057,4),(75062,4),(75064,4),(75077,4),(75078,4),(75084,4),(75098,4),(75108,4),(75116,4),(75126,4),(75145,4),(75156,4),(75158,4),(75159,4),(75176,4),(75179,4),(75182,4),(75188,4),(75199,4),(75210,4),(75220,4),(75228,4),(75233,4),(75234,4),(75236,4),(75237,4),(75241,4),(75245,4),(75246,4),(75253,4),(75276,4),(75280,4),(75281,4),(75287,4),(75293,4),(75297,4),(75302,4),(75320,4),(75321,4),(75328,4),(75334,4),(75344,4),(75350,4),(75358,4),(75359,4),(75377,4),(75379,4),(75381,4),(75382,4),(75393,4),(75395,4),(75404,4),(75409,4),(75411,4),(75415,4),(75423,4),(75424,4),(75425,4),(75438,4),(75443,4),(75447,4),(75453,4),(75457,4),(75464,4),(75468,4),(75469,4),(75471,4),(75472,4),(75479,4),(75481,4),(75482,4),(75485,4),(75487,4),(75489,4),(75499,4),(75500,4),(75505,4),(75507,4),(75511,4),(75517,4),(75539,4),(75546,4),(75555,4),(75556,4),(75558,4),(75566,4),(75571,4),(75620,4),(75621,4),(75629,4),(75634,4),(75649,4),(75653,4),(75654,4),(75667,4),(75669,4),(75679,4),(75693,4),(75698,4),(75726,4),(75730,4),(75745,4),(75753,4),(75759,4),(75761,4),(75765,4),(75766,4),(75771,4),(75772,4),(75778,4),(75779,4),(75783,4),(75801,4),(75803,4),(75804,4),(75806,4),(75812,4),(75815,4),(75819,4),(75820,4),(75837,4),(75839,4),(75840,4),(75845,4),(75847,4),(75857,4),(75860,4),(75869,4),(75884,4),(75887,4),(75903,4),(75909,4),(75937,4),(75948,4),(75952,4),(75962,4),(75967,4),(75968,4),(75974,4),(75980,4),(75995,4),(75997,4),(75999,4),(76000,4),(76014,4),(76025,4),(76027,4),(76035,4),(76052,4),(76053,4),(76057,4),(76062,4),(76065,4),(76066,4),(76068,4),(76074,4),(76075,4),(76090,4),(76102,4),(76105,4),(76111,4),(76115,4),(76125,4),(76127,4),(76144,4),(76152,4),(76157,4),(76164,4),(76175,4),(76179,4),(76180,4),(76184,4),(76191,4),(76193,4),(76203,4),(76206,4),(76214,4),(76218,4),(76220,4),(76224,4),(76228,4),(76234,4),(76238,4),(76241,4),(76259,4),(76268,4),(76269,4),(76275,4),(76296,4),(76305,4),(76307,4),(76324,4),(76334,4),(76335,4),(76356,4),(76357,4),(76368,4),(76374,4),(76388,4),(76392,4),(76396,4),(76399,4),(76407,4),(76414,4),(76421,4),(76427,4),(76429,4),(76436,4),(76437,4),(76439,4),(76449,4),(76456,4),(76464,4),(76465,4),(76466,4),(76472,4),(76487,4),(76489,4),(76493,4),(76496,4),(76501,4),(76514,4),(76522,4),(76530,4),(76539,4),(76544,4),(76549,4),(76561,4),(76566,4),(76569,4),(76579,4),(76590,4),(76592,4),(76596,4),(76616,4),(76624,4),(76629,4),(76653,4),(76662,4),(76665,4),(76678,4),(76680,4),(76687,4),(76714,4),(76719,4),(76723,4),(76735,4),(76736,4),(76737,4),(76750,4),(76761,4),(76762,4),(76767,4),(76773,4),(76774,4),(76775,4),(76782,4),(76788,4),(76792,4),(76800,4),(76802,4),(76803,4),(76811,4),(76826,4),(76828,4),(76836,4),(76848,4),(76851,4),(76853,4),(76858,4),(76859,4),(76865,4),(76868,4),(76876,4),(76895,4),(76901,4),(76903,4),(76905,4),(76914,4),(76918,4),(76927,4),(76928,4),(76933,4),(76934,4),(76944,4),(76946,4),(76954,4),(76969,4),(76973,4),(76984,4),(76989,4),(76994,4),(77005,4),(77010,4),(77017,4),(77018,4),(77020,4),(77021,4),(77027,4),(77029,4),(77032,4),(77042,4),(77050,4),(77052,4),(77053,4),(77056,4),(77063,4),(77064,4),(77067,4),(77068,4),(77070,4),(77079,4),(77081,4),(77083,4),(77089,4),(77090,4),(77092,4),(77093,4),(77098,4),(77106,4),(77114,4),(77122,4),(77128,4),(77132,4),(77143,4),(77145,4),(77155,4),(77160,4),(77171,4),(77177,4),(77182,4),(77190,4),(77203,4),(77214,4),(77215,4),(77219,4),(77229,4),(77232,4),(77243,4),(77249,4),(77252,4),(77253,4),(77257,4),(77259,4),(77261,4),(77264,4),(77276,4),(77277,4),(77284,4),(77293,4),(77306,4),(77311,4),(77315,4),(77320,4),(77327,4),(77340,4),(77342,4),(77346,4),(77347,4),(77364,4),(77373,4),(77374,4),(77377,4),(77378,4),(77379,4),(77383,4),(77408,4),(77409,4),(77412,4),(77420,4),(77423,4),(77425,4),(77426,4),(77427,4),(77430,4),(77448,4),(77452,4),(77454,4),(77457,4),(77458,4),(77460,4),(77461,4),(77462,4),(77464,4),(77468,4),(77474,4),(77479,4),(77491,4),(77498,4),(77502,4),(77509,4),(77511,4),(77515,4),(77519,4),(77524,4),(77529,4),(77532,4),(77543,4),(77545,4),(77548,4),(77558,4),(77560,4),(77562,4),(77580,4),(77581,4),(77586,4),(77588,4),(77589,4),(77591,4),(77595,4),(77600,4),(77610,4),(77611,4),(77622,4),(77623,4),(77635,4),(77638,4),(77640,4),(77648,4),(77661,4),(77666,4),(77673,4),(77680,4),(77686,4),(77705,4),(77719,4),(77720,4),(77729,4),(77736,4),(77738,4),(77739,4),(77740,4),(77746,4),(77752,4),(77753,4),(77755,4),(77761,4),(77764,4),(77772,4),(77776,4),(77777,4),(77780,4),(77788,4),(77794,4),(77797,4),(77799,4),(77820,4),(77826,4),(77830,4),(77838,4),(77843,4),(77846,4),(77848,4),(77850,4),(77853,4),(77861,4),(77862,4),(77863,4),(77878,4),(77880,4),(77887,4),(77902,4),(77903,4),(77907,4),(77908,4),(77910,4),(77912,4),(77923,4),(77924,4),(77931,4),(77935,4),(77944,4),(77952,4),(77955,4),(77961,4),(77963,4),(77967,4),(77983,4),(77986,4),(77988,4),(78010,4),(78018,4),(78039,4),(78050,4),(78062,4),(78063,4),(78064,4),(78067,4),(78070,4),(78076,4),(78079,4),(78093,4),(78100,4),(78114,4),(78117,4),(78118,4),(78128,4),(78132,4),(78141,4),(78143,4),(78158,4),(78161,4),(78165,4),(78187,4),(78202,4),(78208,4),(78211,4),(78233,4),(78249,4),(78253,4),(78256,4),(78260,4),(78266,4),(78278,4),(78282,4),(78290,4),(78313,4),(78319,4),(78321,4),(78329,4),(78346,4),(78347,4),(78349,4),(78355,4),(78357,4),(78360,4),(78361,4),(78386,4),(78404,4),(78405,4),(78416,4),(78417,4),(78431,4),(78433,4),(78442,4),(78446,4),(78452,4),(78454,4),(78456,4),(78460,4),(78466,4),(78476,4),(78479,4),(78481,4),(78495,4),(78508,4),(78512,4),(78527,4),(78531,4),(78537,4),(78538,4),(78540,4),(78543,4),(78547,4),(78548,4),(78555,4),(78557,4),(78558,4),(78593,4),(78594,4),(78604,4),(78624,4),(78627,4),(78630,4),(78635,4),(78639,4),(78655,4),(78665,4),(78666,4),(78694,4),(78697,4),(78700,4),(78702,4),(78706,4),(78716,4),(78724,4),(78725,4),(78728,4),(78731,4),(78736,4),(78750,4),(78758,4),(78764,4),(78770,4),(78793,4),(78794,4),(78800,4),(78811,4),(78815,4),(78816,4),(78852,4),(78858,4),(78867,4),(78869,4),(78875,4),(78879,4),(78887,4),(78890,4),(78892,4),(78900,4),(78906,4),(78910,4),(78914,4),(78920,4),(78922,4),(78932,4),(78934,4),(78935,4),(78936,4),(78937,4),(78958,4),(78959,4),(78961,4),(78966,4),(78967,4),(78976,4),(78981,4),(78989,4),(78995,4),(79003,4),(79007,4),(79017,4),(79021,4),(79025,4),(79028,4),(79032,4),(79033,4),(79048,4),(79061,4),(79066,4),(79076,4),(79082,4),(79084,4),(79088,4),(79092,4),(79095,4),(79096,4),(79098,4),(79103,4),(79105,4),(79107,4),(79129,4),(79130,4),(79132,4),(79134,4),(79140,4),(79145,4),(79148,4),(79153,4),(79154,4),(79157,4),(79164,4),(79167,4),(79172,4),(79176,4),(79177,4),(79181,4),(79196,4),(79212,4),(79214,4),(79229,4),(79239,4),(79240,4),(79248,4),(79254,4),(79263,4),(79265,4),(79266,4),(79271,4),(79272,4),(79275,4),(79288,4),(79294,4),(79296,4),(79301,4),(79302,4),(79316,4),(79322,4),(79328,4),(79333,4),(79335,4),(79336,4),(79344,4),(79372,4),(79387,4),(79396,4),(79400,4),(79401,4),(79402,4),(79403,4),(79408,4),(79412,4),(79414,4),(79420,4),(79425,4),(79428,4),(79432,4),(79434,4),(79436,4),(79440,4),(79446,4),(79447,4),(79460,4),(79470,4),(79472,4),(79473,4),(79477,4),(79481,4),(79483,4),(79493,4),(79498,4),(79519,4),(79524,4),(79534,4),(79540,4),(79544,4),(79548,4),(79553,4),(79558,4),(79577,4),(79578,4),(79579,4),(79587,4),(79608,4),(79614,4),(79628,4),(79629,4),(79635,4),(79645,4),(79651,4),(79658,4),(79667,4),(79668,4),(79669,4),(79675,4),(79690,4),(79705,4),(79730,4),(79739,4),(79742,4),(79752,4),(79761,4),(79762,4),(79774,4),(79782,4),(79789,4),(79799,4),(79800,4),(79811,4),(79819,4),(79821,4),(79830,4),(79841,4),(79845,4),(79855,4),(79859,4),(79861,4),(79863,4),(79873,4),(79878,4),(79880,4),(79886,4),(79891,4),(79906,4),(79918,4),(79930,4),(79931,4),(79938,4),(79939,4),(79945,4),(79953,4),(79955,4),(79974,4),(79993,4),(79996,4),(79997,4),(80014,4),(80021,4),(80023,4),(80036,4),(80039,4),(80041,4),(80044,4),(80046,4),(80049,4),(80050,4),(80054,4),(80058,4),(80061,4),(80062,4),(80069,4),(80075,4),(80078,4),(80092,4),(80099,4),(80107,4),(80116,4),(80118,4),(80139,4),(80142,4),(80143,4),(80159,4),(80161,4),(80171,4),(80172,4),(80173,4),(80181,4),(80182,4),(80191,4),(80192,4),(80196,4),(80205,4),(80207,4),(80221,4),(80222,4),(80224,4),(80232,4),(80235,4),(80237,4),(80239,4),(80243,4),(80245,4),(80254,4),(80255,4),(80260,4),(80266,4),(80271,4),(80272,4),(80284,4),(80299,4),(80304,4),(80314,4),(80337,4),(80338,4),(80346,4),(80351,4),(80354,4),(80364,4),(80367,4),(80369,4),(80371,4),(80372,4),(80376,4),(80377,4),(80383,4),(80384,4),(80391,4),(80394,4),(80398,4),(80404,4),(80405,4),(80409,4),(80412,4),(80424,4),(80431,4),(80453,4),(80460,4),(80471,4),(80472,4),(80494,4),(80499,4),(80501,4),(80503,4),(80506,4),(80511,4),(80512,4),(80522,4),(80536,4),(80550,4),(80554,4),(80563,4),(80565,4),(80568,4),(80574,4),(80578,4),(80580,4),(80586,4),(80587,4),(80595,4),(80600,4),(80603,4),(80605,4),(80606,4),(80611,4),(80614,4),(80625,4),(80627,4),(80628,4),(80634,4),(80635,4),(80639,4),(80640,4),(80643,4),(80644,4),(80656,4),(80657,4),(80671,4),(80673,4),(80682,4),(80686,4),(80688,4),(80691,4),(80692,4),(80695,4),(80697,4),(80698,4),(80700,4),(80701,4),(80714,4),(80715,4),(80718,4),(80727,4),(80731,4),(80736,4),(80741,4),(80746,4),(80747,4),(80750,4),(80754,4),(80759,4),(80767,4),(80768,4),(80790,4),(80797,4),(80798,4),(80804,4),(80806,4),(80810,4),(80825,4),(80827,4),(80829,4),(80834,4),(80836,4),(80840,4),(80862,4),(80866,4),(80869,4),(80871,4),(80872,4),(80873,4),(80886,4),(80895,4),(80899,4),(80902,4),(80910,4),(80928,4),(80933,4),(80934,4),(80936,4),(80950,4),(80971,4),(80973,4),(80975,4),(80982,4),(81001,4),(81031,4),(81032,4),(81035,4),(81045,4),(81050,4),(81053,4),(81054,4),(81057,4),(81059,4),(81066,4),(81068,4),(81073,4),(81078,4),(81080,4),(81083,4),(81086,4),(81095,4),(81103,4),(81104,4),(81106,4),(81110,4),(81112,4),(81114,4),(81125,4),(81134,4),(81137,4),(81138,4),(81163,4),(81173,4),(81176,4),(81185,4),(81194,4),(81200,4),(81201,4),(81203,4),(81208,4),(81209,4),(81217,4),(81218,4),(81227,4),(81234,4),(81237,4),(81242,4),(81244,4),(81245,4),(81247,4),(81257,4),(81276,4),(81297,4),(81320,4),(81323,4),(81325,4),(81335,4),(81343,4),(81344,4),(81362,4),(81366,4),(81371,4),(81386,4),(81405,4),(81418,4),(81423,4),(81432,4),(81464,4),(81469,4),(81470,4),(81480,4),(81483,4),(81484,4),(81487,4),(81506,4),(81514,4),(81515,4),(81517,4),(81522,4),(81523,4),(81531,4),(81532,4),(81557,4),(81558,4),(81562,4),(81567,4),(81573,4),(81579,4),(81581,4),(81589,4),(81595,4),(81597,4),(81604,4),(81609,4),(81616,4),(81628,4),(81633,4),(81649,4),(81651,4),(81654,4),(81656,4),(81660,4),(81661,4),(81669,4),(81679,4),(81684,4),(81687,4),(81690,4),(81701,4),(81706,4),(81711,4),(81713,4),(81714,4),(81725,4),(81742,4),(81744,4),(81748,4),(81749,4),(81751,4),(81767,4),(81768,4),(81771,4),(81776,4),(81781,4),(81783,4),(81784,4),(81791,4),(81794,4),(81813,4),(81838,4),(81843,4),(81849,4),(81861,4),(81864,4),(81865,4),(81868,4),(81869,4),(81874,4),(81877,4),(81882,4),(81886,4),(81891,4),(81900,4),(81911,4),(81912,4),(81923,4),(81932,4),(81937,4),(81938,4),(81951,4),(81953,4),(81970,4),(81974,4),(81987,4),(81996,4),(81997,4),(82008,4),(82012,4),(82018,4),(82021,4),(82034,4),(82035,4),(82043,4),(82048,4),(82050,4),(82053,4),(82059,4),(82065,4),(82082,4),(82091,4),(82093,4),(82113,4),(82121,4),(82125,4),(82126,4),(82132,4),(82137,4),(82139,4),(82144,4),(82145,4),(82150,4),(82155,4),(82166,4),(82183,4),(82202,4),(82208,4),(82209,4),(82212,4),(82224,4),(82226,4),(82228,4),(82231,4),(82237,4),(82246,4),(82247,4),(82250,4),(82251,4),(82252,4),(82256,4),(82262,4),(82268,4),(82276,4),(82281,4),(82284,4),(82287,4),(82288,4),(82295,4),(82308,4),(82311,4),(82313,4),(82323,4),(82331,4),(82334,4),(82340,4),(82351,4),(82355,4),(82367,4),(82373,4),(82374,4),(82380,4),(82382,4),(82396,4),(82409,4),(82415,4),(82417,4),(82431,4),(82432,4),(82435,4),(82444,4),(82445,4),(82450,4),(82451,4),(82474,4),(82476,4),(82485,4),(82486,4),(82488,4),(82506,4),(82509,4),(82512,4),(82518,4),(82519,4),(82532,4),(82539,4),(82547,4),(82548,4),(82549,4),(82553,4),(82562,4),(82563,4),(82568,4),(82570,4),(82592,4),(82593,4),(82599,4),(82616,4),(82619,4),(82621,4),(82645,4),(82647,4),(82650,4),(82653,4),(82655,4),(82656,4),(82660,4),(82661,4),(82663,4),(82669,4),(82681,4),(82682,4),(82685,4),(82694,4),(82704,4),(82707,4),(82711,4),(82713,4),(82720,4),(82726,4),(82729,4),(82733,4),(82734,4),(82736,4),(82741,4),(82746,4),(82765,4),(82777,4),(82779,4),(82782,4),(82788,4),(82791,4),(82798,4),(82800,4),(82804,4),(82808,4),(82812,4),(82825,4),(82838,4),(82842,4),(82854,4),(82860,4),(82864,4),(82871,4),(82872,4),(82899,4),(82900,4),(82913,4),(82915,4),(82916,4),(82918,4),(82927,4),(82929,4),(82931,4),(82934,4),(82952,4),(82959,4),(82969,4),(82975,4),(82994,4),(82999,4),(83001,4),(83014,4),(83015,4),(83024,4),(83025,4),(83027,4),(83028,4),(83032,4),(83047,4),(83048,4),(83054,4),(83058,4),(83060,4),(83066,4),(83067,4),(83069,4),(83093,4),(83098,4),(83109,4),(83112,4),(83115,4),(83117,4),(83119,4),(83121,4),(83132,4),(83137,4),(83138,4),(83153,4),(83154,4),(83157,4),(83165,4),(83174,4),(83191,4),(83196,4),(83197,4),(83201,4),(83212,4),(83227,4),(83229,4),(83235,4),(83244,4),(83254,4),(83271,4),(83275,4),(83277,4),(83279,4),(83281,4),(83282,4),(83296,4),(83311,4),(83315,4),(83320,4),(83324,4),(83326,4),(83334,4),(83336,4),(83340,4),(83344,4),(83345,4),(83369,4),(83370,4),(83375,4),(83392,4),(83398,4),(83408,4),(83413,4),(83415,4),(83417,4),(83432,4),(83453,4),(83454,4),(83471,4),(83472,4),(83478,4),(83480,4),(83484,4),(83489,4),(83490,4),(83528,4),(83530,4),(83532,4),(83535,4),(83539,4),(83540,4),(83553,4),(83554,4),(83557,4),(83560,4),(83572,4),(83579,4),(83582,4),(83589,4),(83596,4),(83597,4),(83598,4),(83603,4),(83619,4),(83633,4),(83634,4),(83656,4),(83657,4),(83661,4),(83666,4),(83676,4),(83678,4),(83684,4),(83688,4),(83694,4),(83702,4),(83707,4),(83715,4),(83718,4),(83726,4),(83732,4),(83737,4),(83743,4),(83766,4),(83769,4),(83772,4),(83778,4),(83789,4),(83816,4),(83818,4),(83835,4),(83853,4),(83854,4),(83856,4),(83857,4),(83859,4),(83862,4),(83872,4),(83877,4),(83882,4),(83883,4),(83886,4),(83887,4),(83891,4),(83894,4),(83895,4),(83909,4),(83911,4),(83913,4),(83917,4),(83925,4),(83930,4),(83950,4),(83956,4),(83972,4),(83980,4),(83982,4),(83987,4),(83994,4),(83996,4),(83997,4),(84004,4),(84015,4),(84019,4),(84032,4),(84037,4),(84039,4),(84060,4),(84061,4),(84062,4),(84069,4),(84073,4),(84076,4),(84089,4),(84092,4),(84099,4),(84105,4),(84117,4),(84118,4),(84120,4),(84121,4),(84136,4),(84149,4),(84161,4),(84184,4),(84186,4),(84189,4),(84192,4),(84194,4),(84201,4),(84214,4),(84221,4),(84223,4),(84229,4),(84233,4),(84237,4),(84242,4),(84245,4),(84247,4),(84252,4),(84253,4),(84261,4),(84263,4),(84291,4),(84296,4),(84302,4),(84310,4),(84316,4),(84331,4),(84353,4),(84374,4),(84379,4),(84380,4),(84389,4),(84398,4),(84403,4),(84413,4),(84416,4),(84419,4),(84431,4),(84432,4),(84434,4),(84437,4),(84438,4),(84439,4),(84449,4),(84456,4),(84459,4),(84464,4),(84467,4),(84473,4),(84487,4),(84492,4),(84493,4),(84495,4),(84502,4),(84506,4),(84511,4),(84514,4),(84525,4),(84533,4),(84537,4),(84545,4),(84566,4),(84570,4),(84572,4),(84573,4),(84575,4),(84586,4),(84587,4),(84603,4),(84604,4),(84605,4),(84619,4),(84625,4),(84626,4),(84631,4),(84636,4),(84639,4),(84644,4),(84650,4),(84651,4),(84663,4),(84667,4),(84671,4),(84682,4),(84691,4),(84703,4),(84706,4),(84713,4),(84716,4),(84717,4),(84725,4),(84727,4),(84731,4),(84732,4),(84750,4),(84751,4),(84757,4),(84760,4),(84767,4),(84779,4),(84780,4),(84787,4),(84793,4),(84801,4),(84803,4),(84806,4),(84813,4),(84816,4),(84817,4),(84830,4),(84833,4),(84852,4),(84854,4),(84858,4),(84859,4),(84867,4),(84870,4),(84872,4),(84881,4),(84883,4),(84884,4),(84892,4),(84893,4),(84902,4),(84916,4),(84919,4),(84920,4),(84921,4),(84936,4),(84962,4),(84976,4),(84983,4),(84990,4),(84991,4),(84993,4),(84996,4),(85005,4),(85021,4),(85027,4),(85031,4),(85038,4),(85046,4),(85049,4),(85051,4),(85053,4),(85056,4),(85059,4),(85072,4),(85076,4),(85086,4),(85087,4),(85088,4),(85089,4),(85096,4),(85105,4),(85110,4),(85114,4),(85116,4),(85123,4),(85128,4),(85133,4),(85148,4),(85152,4),(85157,4),(85163,4),(85166,4),(85179,4),(85182,4),(85188,4),(85190,4),(85199,4),(85204,4),(85205,4),(85219,4),(85221,4),(85228,4),(85230,4),(85235,4),(85241,4),(85252,4),(85255,4),(85257,4),(85265,4),(85276,4),(85281,4),(85284,4),(85289,4),(85298,4),(85299,4),(85302,4),(85307,4),(85317,4),(85319,4),(85334,4),(85337,4),(85346,4),(85348,4),(85352,4),(85354,4),(85355,4),(85356,4),(85360,4),(85364,4),(85366,4),(85370,4),(85376,4),(85377,4),(85381,4),(85382,4),(85387,4),(85393,4),(85399,4),(85400,4),(85401,4),(85402,4),(85407,4),(85412,4),(85422,4),(85425,4),(85426,4),(85437,4),(85455,4),(85462,4),(85464,4),(85465,4),(85471,4),(85472,4),(85477,4),(85481,4),(85501,4),(85509,4),(85511,4),(85512,4),(85516,4),(85536,4),(85537,4),(85541,4),(85551,4),(85557,4),(85570,4),(85572,4),(85575,4),(85583,4),(85589,4),(85599,4),(85600,4),(85604,4),(85608,4),(85614,4),(85616,4),(85621,4),(85622,4),(85628,4),(85629,4),(85635,4),(85647,4),(85652,4),(85660,4),(85661,4),(85665,4),(85666,4),(85674,4),(85694,4),(85701,4),(85709,4),(85712,4),(85721,4),(85723,4),(85735,4),(85736,4),(85743,4),(85744,4),(85746,4),(85756,4),(85762,4),(85773,4),(85774,4),(85780,4),(85785,4),(85789,4),(85791,4),(85802,4),(85803,4),(85806,4),(85813,4),(85814,4),(85818,4),(85824,4),(85826,4),(85833,4),(85851,4),(85855,4),(85859,4),(85861,4),(85870,4),(85878,4),(85884,4),(85886,4),(85888,4),(85891,4),(85894,4),(85895,4),(85897,4),(85912,4),(85930,4),(85939,4),(85942,4),(85967,4),(85968,4),(85970,4),(85974,4),(85975,4),(85979,4),(85981,4),(85986,4),(86006,4),(86013,4),(86028,4),(86029,4),(86030,4),(86033,4),(86040,4),(86044,4),(86045,4),(86052,4),(86057,4),(86061,4),(86063,4),(86064,4),(86067,4),(86079,4),(86082,4),(86088,4),(86091,4),(86092,4),(86093,4),(86097,4),(86102,4),(86105,4),(86113,4),(86131,4),(86134,4),(86135,4),(86154,4),(86155,4),(86160,4),(86171,4),(86174,4),(86175,4),(86181,4),(86182,4),(86188,4),(86195,4),(86196,4),(86198,4),(86201,4),(86202,4),(86211,4),(86221,4),(86223,4),(86230,4),(86231,4),(86233,4),(86235,4),(86246,4),(86248,4),(86252,4),(86255,4),(86257,4),(86259,4),(86264,4),(86270,4),(86280,4),(86281,4),(86289,4),(86290,4),(86291,4),(86299,4),(86301,4),(86310,4),(86313,4),(86315,4),(86322,4),(86324,4),(86327,4),(86334,4),(86338,4),(86342,4),(86354,4),(86355,4),(86361,4),(86363,4),(86368,4),(86370,4),(86374,4),(86375,4),(86376,4),(86377,4),(86380,4),(86381,4),(86388,4),(86399,4),(86401,4),(86406,4),(86409,4),(86422,4),(86423,4),(86428,4),(86429,4),(86431,4),(86436,4),(86446,4),(86452,4),(86455,4),(86457,4),(86468,4),(86470,4),(86472,4),(86474,4),(86485,4),(86486,4),(86496,4),(86503,4),(86505,4),(86506,4),(86508,4),(86515,4),(86525,4),(86528,4),(86529,4),(86543,4),(86557,4),(86572,4),(86578,4),(86591,4),(86597,4),(86605,4),(86611,4),(86613,4),(86621,4),(86624,4),(86630,4),(86632,4),(86636,4),(86637,4),(86664,4),(86669,4),(86676,4),(86687,4),(86691,4),(86692,4),(86701,4),(86716,4),(86723,4),(86726,4),(86731,4),(86738,4),(86739,4),(86740,4),(86742,4),(86762,4),(86765,4),(86768,4),(86770,4),(86777,4),(86788,4),(86793,4),(86806,4),(86807,4),(86816,4),(86819,4),(86826,4),(86839,4),(86857,4),(86874,4),(86875,4),(86877,4),(86892,4),(86894,4),(86900,4),(86902,4),(86907,4),(86908,4),(86921,4),(86924,4),(86935,4),(86943,4),(86944,4),(86963,4),(86965,4),(86972,4),(86975,4),(86976,4),(86993,4),(87006,4),(87008,4),(87014,4),(87030,4),(87033,4),(87036,4),(87058,4),(87062,4),(87063,4),(87072,4),(87073,4),(87092,4),(87102,4),(87114,4),(87125,4),(87128,4),(87146,4),(87149,4),(87153,4),(87156,4),(87160,4),(87176,4),(87180,4),(87188,4),(87197,4),(87210,4),(87213,4),(87216,4),(87217,4),(87228,4),(87230,4),(87251,4),(87252,4),(87257,4),(87258,4),(87267,4),(87270,4),(87279,4),(87296,4),(87305,4),(87322,4),(87325,4),(87327,4),(87331,4),(87337,4),(87345,4),(87347,4),(87362,4),(87366,4),(87370,4),(87393,4),(87395,4),(87416,4),(87420,4),(87425,4),(87428,4),(87446,4),(87447,4),(87458,4),(87471,4),(87472,4),(87476,4),(87479,4),(87483,4),(87487,4),(87500,4),(87506,4),(87507,4),(87513,4),(87515,4),(87517,4),(87523,4),(87524,4),(87528,4),(87530,4),(87532,4),(87534,4),(87535,4),(87541,4),(87552,4),(87557,4),(87571,4),(87584,4),(87597,4),(87605,4),(87606,4),(87611,4),(87620,4),(87623,4),(87626,4),(87630,4),(87641,4),(87647,4),(87649,4),(87665,4),(87669,4),(87671,4),(87675,4),(87676,4),(87684,4),(87686,4),(87689,4),(87705,4),(87707,4),(87709,4),(87712,4),(87719,4),(87725,4),(87726,4),(87727,4),(87740,4),(87741,4),(87745,4),(87753,4),(87757,4),(87766,4),(87770,4),(87772,4),(87776,4),(87789,4),(87792,4),(87807,4),(87819,4),(87820,4),(87821,4),(87825,4),(87827,4),(87843,4),(87855,4),(87859,4),(87860,4),(87861,4),(87880,4),(87884,4),(87888,4),(87894,4),(87903,4),(87912,4),(87919,4),(87922,4),(87926,4),(87927,4),(87929,4),(87930,4),(87932,4),(87938,4),(87941,4),(87955,4),(87956,4),(87962,4),(87972,4),(87974,4),(87984,4),(87987,4),(87991,4),(87994,4),(87997,4),(88002,4),(88008,4),(88015,4),(88026,4),(88031,4),(88032,4),(88033,4),(88039,4),(88043,4),(88047,4),(88050,4),(88057,4),(88058,4),(88097,4),(88099,4),(88111,4),(88124,4),(88138,4),(88139,4),(88144,4),(88146,4),(88158,4),(88164,4),(88168,4),(88170,4),(88178,4),(88189,4),(88191,4),(88193,4),(88195,4),(88198,4),(88213,4),(88214,4),(88215,4),(88226,4),(88235,4),(88239,4),(88243,4),(88244,4),(88247,4),(88248,4),(88249,4),(88253,4),(88256,4),(88260,4),(88262,4),(88263,4),(88273,4),(88274,4),(88284,4),(88289,4),(88294,4),(88315,4),(88318,4),(88321,4),(88328,4),(88333,4),(88334,4),(88348,4),(88353,4),(88363,4),(88364,4),(88373,4),(88374,4),(88379,4),(88383,4),(88396,4),(88398,4),(88399,4),(88413,4),(88419,4),(88421,4),(88428,4),(88435,4),(88436,4),(88437,4),(88438,4),(88447,4),(88448,4),(88451,4),(88456,4),(88459,4),(88466,4),(88472,4),(88473,4),(88478,4),(88481,4),(88500,4),(88502,4),(88503,4),(88505,4),(88506,4),(88509,4),(88512,4),(88517,4),(88524,4),(88528,4),(88530,4),(88532,4),(88540,4),(88541,4),(88542,4),(88544,4),(88545,4),(88547,4),(88549,4),(88561,4),(88565,4),(88567,4),(88579,4),(88581,4),(88584,4),(88586,4),(88589,4),(88596,4),(88600,4),(88623,4),(88625,4),(88626,4),(88629,4),(88632,4),(88634,4),(88635,4),(88639,4),(88649,4),(88655,4),(88664,4),(88665,4),(88671,4),(88677,4),(88683,4),(88685,4),(88686,4),(88689,4),(88694,4),(88695,4),(88697,4),(88705,4),(88722,4),(88726,4),(88733,4),(88738,4),(88739,4),(88741,4),(88746,4),(88757,4),(88758,4),(88769,4),(88770,4),(88772,4),(88773,4),(88775,4),(88776,4),(88785,4),(88788,4),(88793,4),(88802,4),(88807,4),(88817,4),(88826,4),(88827,4),(88833,4),(88843,4),(88850,4),(88857,4),(88859,4),(88865,4),(88866,4),(88889,4),(88890,4),(88893,4),(88895,4),(88897,4),(88900,4),(88903,4),(88907,4),(88908,4),(88913,4),(88915,4),(88931,4),(88944,4),(88955,4),(88956,4),(88962,4),(88963,4),(88967,4),(88968,4),(88973,4),(88981,4),(88982,4),(88985,4),(88992,4),(88996,4),(88997,4),(89003,4),(89008,4),(89010,4),(89019,4),(89020,4),(89026,4),(89036,4),(89042,4),(89043,4),(89046,4),(89059,4),(89060,4),(89082,4),(89106,4),(89111,4),(89112,4),(89119,4),(89120,4),(89121,4),(89128,4),(89134,4),(89139,4),(89140,4),(89141,4),(89152,4),(89153,4),(89155,4),(89156,4),(89157,4),(89163,4),(89164,4),(89165,4),(89175,4),(89182,4),(89186,4),(89194,4),(89197,4),(89204,4),(89213,4),(89225,4),(89232,4),(89234,4),(89236,4),(89252,4),(89266,4),(89280,4),(89288,4),(89292,4),(89299,4),(89304,4),(89305,4),(89306,4),(89310,4),(89317,4),(89335,4),(89336,4),(89337,4),(89338,4),(89342,4),(89363,4),(89366,4),(89374,4),(89375,4),(89376,4),(89378,4),(89380,4),(89382,4),(89389,4),(89391,4),(89406,4),(89412,4),(89432,4),(89434,4),(89441,4),(89442,4),(89445,4),(89446,4),(89449,4),(89457,4),(89459,4),(89466,4),(89469,4),(89492,4),(89504,4),(89505,4),(89523,4),(89528,4),(89536,4),(89540,4),(89542,4),(89545,4),(89547,4),(89549,4),(89553,4),(89557,4),(89558,4),(89561,4),(89579,4),(89582,4),(89586,4),(89591,4),(89596,4),(89600,4),(89616,4),(89620,4),(89622,4),(89625,4),(89631,4),(89632,4),(89633,4),(89634,4),(89638,4),(89644,4),(89647,4),(89650,4),(89655,4),(89661,4),(89669,4),(89681,4),(89682,4),(89687,4),(89688,4),(89689,4),(89692,4),(89705,4),(89707,4),(89717,4),(89721,4),(89729,4),(89731,4),(89732,4),(89738,4),(89742,4),(89752,4),(89753,4),(89765,4),(89767,4),(89773,4),(89785,4),(89792,4),(89801,4),(89802,4),(89813,4),(89819,4),(89822,4),(89831,4),(89833,4),(89860,4),(89883,4),(89906,4),(89909,4),(89912,4),(89913,4),(89921,4),(89928,4),(89939,4),(89946,4),(89953,4),(89955,4),(89956,4),(89958,4),(89959,4),(89972,4),(89975,4),(89976,4),(89977,4),(89981,4),(89984,4),(89994,4),(90011,4),(90013,4),(90015,4),(90026,4),(90037,4),(90049,4),(90052,4),(90053,4),(90064,4),(90066,4),(90074,4),(90075,4),(90080,4),(90087,4),(90088,4),(90091,4),(90097,4),(90113,4),(90117,4),(90122,4),(90133,4),(90145,4),(90147,4),(90155,4),(90160,4),(90174,4),(90178,4),(90180,4),(90184,4),(90186,4),(90191,4),(90204,4),(90209,4),(90211,4),(90212,4),(90218,4),(90233,4),(90235,4),(90242,4),(90245,4),(90246,4),(90251,4),(90252,4),(90253,4),(90257,4),(90266,4),(90274,4),(90293,4),(90294,4),(90303,4),(90308,4),(90309,4),(90312,4),(90314,4),(90329,4),(90338,4),(90340,4),(90345,4),(90350,4),(90352,4),(90359,4),(90365,4),(90368,4),(90370,4),(90372,4),(90374,4),(90384,4),(90400,4),(90405,4),(90412,4),(90416,4),(90430,4),(90433,4),(90436,4),(90451,4),(90452,4),(90453,4),(90455,4),(90458,4),(90459,4),(90468,4),(90472,4),(90473,4),(90478,4),(90492,4),(90495,4),(90506,4),(90508,4),(90510,4),(90520,4),(90551,4),(90558,4),(90562,4),(90563,4),(90566,4),(90572,4),(90574,4),(90589,4),(90593,4),(90604,4),(90616,4),(90619,4),(90621,4),(90628,4),(90637,4),(90644,4),(90658,4),(90663,4),(90665,4),(90668,4),(90670,4),(90676,4),(90689,4),(90694,4),(90696,4),(90718,4),(90719,4),(90722,4),(90759,4),(90766,4),(90769,4),(90774,4),(90776,4),(90791,4),(90795,4),(90797,4),(90800,4),(90804,4),(90805,4),(90809,4),(90818,4),(90829,4),(90833,4),(90838,4),(90841,4),(90848,4),(90854,4),(90870,4),(90871,4),(90878,4),(90887,4),(90889,4),(90897,4),(90900,4),(90902,4),(90903,4),(90909,4),(90911,4),(90918,4),(90934,4),(90939,4),(90947,4),(90950,4),(90953,4),(90955,4),(90959,4),(90964,4),(90983,4),(91001,4),(91009,4),(91013,4),(91019,4),(91023,4),(91026,4),(91028,4),(91033,4),(91037,4),(91038,4),(91048,4),(91051,4),(91052,4),(91055,4),(91063,4),(91065,4),(91077,4),(91083,4),(91084,4),(91086,4),(91090,4),(91094,4),(91096,4),(91097,4),(91100,4),(91101,4),(91106,4),(91117,4),(91118,4),(91121,4),(91123,4),(91139,4),(91142,4),(91143,4),(91145,4),(91148,4),(91162,4),(91165,4),(91170,4),(91183,4),(91184,4),(91186,4),(91187,4),(91188,4),(91191,4),(91201,4),(91204,4),(91213,4),(91218,4),(91222,4),(91224,4),(91225,4),(91229,4),(91234,4),(91257,4),(91264,4),(91272,4),(91274,4),(91277,4),(91283,4),(91294,4),(91296,4),(91308,4),(91313,4),(91314,4),(91316,4),(91323,4),(91324,4),(91326,4),(91329,4),(91339,4),(91345,4),(91346,4),(91359,4),(91362,4),(91364,4),(91368,4),(91369,4),(91372,4),(91374,4),(91375,4),(91382,4),(91390,4),(91397,4),(91398,4),(91415,4),(91418,4),(91432,4),(91447,4),(91449,4),(91451,4),(91452,4),(91456,4),(91461,4),(91467,4),(91468,4),(91471,4),(91475,4),(91477,4),(91478,4),(91479,4),(91480,4),(91481,4),(91486,4),(91525,4),(91531,4),(91534,4),(91544,4),(91546,4),(91550,4),(91551,4),(91552,4),(91555,4),(91559,4),(91560,4),(91568,4),(91569,4),(91575,4),(91579,4),(91582,4),(91612,4),(91616,4),(91620,4),(91622,4),(91624,4),(91631,4),(91635,4),(91641,4),(91644,4),(91652,4),(91661,4),(91663,4),(91674,4),(91675,4),(91681,4),(91686,4),(91692,4),(91700,4),(91709,4),(91712,4),(91714,4),(91719,4),(91725,4),(91750,4),(91756,4),(91766,4),(91768,4),(91783,4),(91791,4),(91792,4),(91793,4),(91798,4),(91801,4),(91805,4),(91810,4),(91814,4),(91819,4),(91820,4),(91839,4),(91842,4),(91846,4),(91847,4),(91849,4),(91856,4),(91857,4),(91859,4),(91862,4),(91871,4),(91893,4),(91895,4),(91898,4),(91901,4),(91911,4),(91922,4),(91924,4),(91930,4),(91937,4),(91938,4),(91939,4),(91942,4),(91943,4),(91948,4),(91961,4),(91964,4),(91971,4),(91982,4),(91985,4),(91988,4),(91997,4),(92000,4),(92011,4),(92012,4),(92026,4),(92042,4),(92044,4),(92049,4),(92063,4),(92064,4),(92073,4),(92087,4),(92089,4),(92091,4),(92101,4),(92105,4),(92106,4),(92110,4),(92143,4),(92186,4),(92206,4),(92213,4),(92215,4),(92217,4),(92225,4),(92226,4),(92237,4),(92248,4),(92263,4),(92266,4),(92272,4),(92278,4),(92281,4),(92289,4),(92292,4),(92297,4),(92298,4),(92303,4),(92304,4),(92310,4),(92311,4),(92319,4),(92320,4),(92329,4),(92342,4),(92343,4),(92350,4),(92361,4),(92364,4),(92368,4),(92370,4),(92374,4),(92376,4),(92388,4),(92394,4),(92396,4),(92406,4),(92422,4),(92430,4),(92440,4),(92442,4),(92456,4),(92462,4),(92463,4),(92464,4),(92471,4),(92479,4),(92482,4),(92484,4),(92490,4),(92501,4),(92503,4),(92504,4),(92505,4),(92514,4),(92522,4),(92525,4),(92530,4),(92535,4),(92540,4),(92542,4),(92547,4),(92548,4),(92551,4),(92563,4),(92571,4),(92577,4),(92581,4),(92586,4),(92597,4),(92598,4),(92602,4),(92614,4),(92628,4),(92635,4),(92642,4),(92649,4),(92660,4),(92661,4),(92674,4),(92675,4),(92678,4),(92683,4),(92702,4),(92706,4),(92723,4),(92733,4),(92739,4),(92746,4),(92756,4),(92761,4),(92770,4),(92777,4),(92778,4),(92782,4),(92784,4),(92787,4),(92789,4),(92800,4),(92802,4),(92807,4),(92814,4),(92821,4),(92833,4),(92840,4),(92846,4),(92864,4),(92865,4),(92870,4),(92898,4),(92905,4),(92909,4),(92915,4),(92924,4),(92928,4),(92932,4),(92937,4),(92940,4),(92946,4),(92963,4),(92967,4),(92968,4),(92971,4),(92975,4),(92979,4),(92991,4),(92993,4),(93000,4),(93002,4),(93007,4),(93008,4),(93010,4),(93013,4),(93020,4),(93021,4),(93027,4),(93046,4),(93051,4),(93063,4),(93070,4),(93071,4),(93073,4),(93080,4),(93087,4),(93096,4),(93125,4),(93127,4),(93129,4),(93132,4),(93137,4),(93139,4),(93142,4),(93153,4),(93154,4),(93158,4),(93166,4),(93167,4),(93185,4),(93189,4),(93190,4),(93195,4),(93199,4),(93201,4),(93204,4),(93232,4),(93238,4),(93242,4),(93263,4),(93264,4),(93266,4),(93268,4),(93276,4),(93282,4),(93290,4),(93299,4),(93302,4),(93309,4),(93312,4),(93327,4),(93339,4),(93344,4),(93345,4),(93347,4),(93350,4),(93352,4),(93364,4),(93386,4),(93388,4),(93405,4),(93418,4),(93420,4),(93422,4),(93428,4),(93437,4),(93440,4),(93443,4),(93447,4),(93452,4),(93454,4),(93456,4),(93473,4),(93474,4),(93476,4),(93481,4),(93482,4),(93490,4),(93496,4),(93521,4),(93522,4),(93530,4),(93532,4),(93540,4),(93541,4),(93544,4),(93557,4),(93574,4),(93578,4),(93580,4),(93584,4),(93595,4),(93598,4),(93607,4),(93610,4),(93613,4),(93621,4),(93629,4),(93633,4),(93640,4),(93642,4),(93663,4),(93669,4),(93674,4),(93687,4),(93692,4),(93693,4),(93719,4),(93725,4),(93733,4),(93755,4),(93765,4),(93771,4),(93794,4),(93796,4),(93803,4),(93806,4),(93808,4),(93809,4),(93812,4),(93813,4),(93817,4),(93822,4),(93823,4),(93830,4),(93831,4),(93836,4),(93840,4),(93845,4),(93853,4),(93855,4),(93863,4),(93868,4),(93880,4),(93882,4),(93886,4),(93888,4),(93903,4),(93913,4),(93925,4),(93935,4),(93939,4),(93940,4),(93942,4),(93943,4),(93955,4),(93957,4),(93967,4),(93972,4),(93978,4),(93980,4),(93983,4),(93995,4),(94009,4),(94022,4),(94036,4),(94070,4),(94073,4),(94080,4),(94081,4),(94095,4),(94107,4),(94124,4),(94137,4),(94141,4),(94152,4),(94154,4),(94155,4),(94162,4),(94167,4),(94179,4),(94181,4),(94186,4),(94194,4),(94200,4),(94202,4),(94204,4),(94210,4),(94215,4),(94222,4),(94233,4),(94237,4),(94242,4),(94254,4),(94266,4),(94270,4),(94295,4),(94297,4),(94298,4),(94299,4),(94301,4),(94309,4),(94311,4),(94313,4),(94315,4),(94317,4),(94328,4),(94331,4),(94336,4),(94343,4),(94349,4),(94355,4),(94368,4),(94371,4),(94375,4),(94389,4),(94390,4),(94397,4),(94398,4),(94408,4),(94412,4),(94413,4),(94416,4),(94419,4),(94428,4),(94429,4),(94431,4),(94434,4),(94435,4),(94438,4),(94441,4),(94443,4),(94444,4),(94457,4),(94460,4),(94464,4),(94466,4),(94471,4),(94477,4),(94478,4),(94482,4),(94485,4),(94495,4),(94500,4),(94509,4),(94531,4),(94542,4),(94543,4),(94555,4),(94560,4),(94561,4),(94563,4),(94564,4),(94568,4),(94578,4),(94579,4),(94581,4),(94582,4),(94583,4),(94585,4),(94609,4),(94610,4),(94615,4),(94617,4),(94621,4),(94630,4),(94652,4),(94655,4),(94658,4),(94662,4),(94667,4),(94677,4),(94680,4),(94694,4),(94708,4),(94713,4),(94717,4),(94722,4),(94723,4),(94725,4),(94727,4),(94740,4),(94742,4),(94746,4),(94750,4),(94762,4),(94765,4),(94768,4),(94769,4),(94773,4),(94777,4),(94804,4),(94806,4),(94808,4),(94809,4),(94815,4),(94818,4),(94820,4),(94826,4),(94833,4),(94856,4),(94866,4),(94870,4),(94876,4),(94878,4),(94880,4),(94881,4),(94893,4),(94897,4),(94911,4),(94926,4),(94937,4),(94942,4),(94947,4),(94951,4),(94954,4),(94958,4),(94961,4),(94964,4),(94994,4),(95001,4),(95007,4),(95012,4),(95014,4),(95018,4),(95019,4),(95021,4),(95035,4),(95040,4),(95043,4),(95068,4),(95069,4),(95079,4),(95084,4),(95088,4),(95091,4),(95093,4),(95096,4),(95105,4),(95113,4),(95117,4),(95133,4),(95134,4),(95137,4),(95141,4),(95163,4),(95168,4),(95176,4),(95181,4),(95189,4),(95198,4),(95208,4),(95210,4),(95212,4),(95215,4),(95220,4),(95226,4),(95240,4),(95245,4),(95247,4),(95266,4),(95273,4),(95278,4),(95281,4),(95285,4),(95293,4),(95294,4),(95300,4),(95306,4),(95311,4),(95316,4),(95317,4),(95326,4),(95329,4),(95335,4),(95337,4),(95346,4),(95349,4),(95350,4),(95371,4),(95372,4),(95380,4),(95381,4),(95386,4),(95388,4),(95392,4),(95395,4),(95396,4),(95398,4),(95405,4),(95421,4),(95430,4),(95433,4),(95449,4),(95450,4),(95451,4),(95452,4),(95464,4),(95468,4),(95474,4),(95475,4),(95477,4),(95480,4),(95484,4),(95487,4),(95497,4),(95500,4),(95514,4),(95519,4),(95522,4),(95529,4),(95533,4),(95545,4),(95554,4),(95556,4),(95557,4),(95566,4),(95574,4),(95575,4),(95578,4),(95592,4),(95601,4),(95607,4),(95612,4),(95618,4),(95624,4),(95627,4),(95633,4),(95635,4),(95637,4),(95646,4),(95648,4),(95651,4),(95655,4),(95658,4),(95660,4),(95664,4),(95665,4),(95668,4),(95677,4),(95684,4),(95691,4),(95692,4),(95694,4),(95700,4),(95715,4),(95716,4),(95733,4),(95741,4),(95746,4),(95751,4),(95756,4),(95759,4),(95760,4),(95764,4),(95765,4),(95772,4),(95774,4),(95778,4),(95784,4),(95788,4),(95807,4),(95808,4),(95818,4),(95819,4),(95822,4),(95824,4),(95841,4),(95848,4),(95849,4),(95851,4),(95855,4),(95861,4),(95862,4),(95867,4),(95868,4),(95869,4),(95870,4),(95874,4),(95888,4),(95912,4),(95913,4),(95917,4),(95920,4),(95921,4),(95929,4),(95935,4),(95937,4),(95938,4),(95942,4),(95949,4),(95954,4),(95955,4),(95960,4),(95963,4),(95972,4),(95973,4),(95975,4),(95994,4),(96002,4),(96021,4),(96022,4),(96025,4),(96036,4),(96038,4),(96044,4),(96045,4),(96048,4),(96050,4),(96051,4),(96053,4),(96090,4),(96101,4),(96105,4),(96111,4),(96116,4),(96129,4),(96140,4),(96143,4),(96150,4),(96161,4),(96162,4),(96168,4),(96171,4),(96172,4),(96179,4),(96183,4),(96191,4),(96192,4),(96196,4),(96199,4),(96202,4),(96206,4),(96208,4),(96211,4),(96212,4),(96213,4),(96237,4),(96253,4),(96256,4),(96263,4),(96266,4),(96274,4),(96295,4),(96298,4),(96307,4),(96310,4),(96311,4),(96313,4),(96318,4),(96327,4),(96344,4),(96345,4),(96346,4),(96355,4),(96358,4),(96366,4),(96367,4),(96378,4),(96384,4),(96385,4),(96390,4),(96394,4),(96398,4),(96399,4),(96404,4),(96410,4),(96413,4),(96426,4),(96430,4),(96441,4),(96447,4),(96452,4),(96455,4),(96469,4),(96471,4),(96472,4),(96473,4),(96477,4),(96495,4),(96507,4),(96511,4),(96519,4),(96521,4),(96531,4),(96536,4),(96537,4),(96545,4),(96551,4),(96556,4),(96560,4),(96561,4),(96563,4),(96565,4),(96571,4),(96583,4),(96584,4),(96602,4),(96610,4),(96620,4),(96638,4),(96639,4),(96650,4),(96659,4),(96661,4),(96665,4),(96668,4),(96671,4),(96676,4),(96677,4),(96683,4),(96685,4),(96696,4),(96698,4),(96708,4),(96729,4),(96731,4),(96735,4),(96746,4),(96749,4),(96751,4),(96767,4),(96770,4),(96785,4),(96786,4),(96790,4),(96795,4),(96803,4),(96813,4),(96816,4),(96818,4),(96826,4),(96827,4),(96848,4),(96853,4),(96854,4),(96859,4),(96860,4),(96862,4),(96864,4),(96873,4),(96874,4),(96895,4),(96906,4),(96907,4),(96910,4),(96914,4),(96917,4),(96932,4),(96934,4),(96935,4),(96937,4),(96938,4),(96944,4),(96954,4),(96955,4),(96962,4),(96965,4),(96972,4),(96979,4),(96982,4),(96988,4),(96999,4),(97000,4),(97003,4),(97004,4),(97013,4),(97033,4),(97052,4),(97062,4),(97064,4),(97065,4),(97070,4),(97073,4),(97075,4),(97076,4),(97081,4),(97085,4),(97088,4),(97092,4),(97093,4),(97109,4),(97116,4),(97118,4),(97120,4),(97124,4),(97125,4),(97133,4),(97134,4),(97136,4),(97138,4),(97142,4),(97143,4),(97150,4),(97153,4),(97165,4),(97172,4),(97185,4),(97189,4),(97195,4),(97196,4),(97200,4),(97204,4),(97205,4),(97211,4),(97216,4),(97217,4),(97237,4),(97257,4),(97264,4),(97283,4),(97286,4),(97295,4),(97296,4),(97297,4),(97298,4),(97299,4),(97306,4),(97314,4),(97332,4),(97334,4),(97345,4),(97363,4),(97365,4),(97377,4),(97378,4),(97383,4),(97392,4),(97398,4),(97411,4),(97412,4),(97421,4),(97424,4),(97426,4),(97431,4),(97433,4),(97445,4),(97456,4),(97464,4),(97466,4),(97468,4),(97479,4),(97485,4),(97488,4),(97508,4),(97519,4),(97527,4),(97529,4),(97534,4),(97536,4),(97548,4),(97550,4),(97562,4),(97587,4),(97588,4),(97589,4),(97593,4),(97594,4),(97607,4),(97610,4),(97613,4),(97618,4),(97628,4),(97630,4),(97631,4),(97642,4),(97652,4),(97653,4),(97678,4),(97681,4),(97685,4),(97687,4),(97688,4),(97691,4),(97695,4),(97720,4),(97744,4),(97745,4),(97746,4),(97756,4),(97757,4),(97760,4),(97768,4),(97777,4),(97786,4),(97787,4),(97791,4),(97792,4),(97794,4),(97813,4),(97814,4),(97819,4),(97836,4),(97837,4),(97846,4),(97859,4),(97865,4),(97887,4),(97895,4),(97896,4),(97897,4),(97904,4),(97909,4),(97914,4),(97920,4),(97926,4),(97927,4),(97937,4),(97939,4),(97942,4),(97944,4),(97946,4),(97954,4),(97963,4),(97985,4),(97989,4),(97991,4),(97998,4),(98010,4),(98019,4),(98025,4),(98038,4),(98042,4),(98043,4),(98062,4),(98067,4),(98068,4),(98086,4),(98087,4),(98090,4),(98098,4),(98103,4),(98104,4),(98114,4),(98116,4),(98121,4),(98125,4),(98130,4),(98131,4),(98136,4),(98137,4),(98147,4),(98155,4),(98159,4),(98167,4),(98174,4),(98187,4),(98193,4),(98211,4),(98218,4),(98220,4),(98226,4),(98231,4),(98232,4),(98235,4),(98238,4),(98253,4),(98265,4),(98270,4),(98272,4),(98276,4),(98278,4),(98281,4),(98282,4),(98290,4),(98291,4),(98295,4),(98302,4),(98306,4),(98310,4),(98311,4),(98322,4),(98326,4),(98327,4),(98334,4),(98341,4),(98343,4),(98349,4),(98358,4),(98365,4),(98372,4),(98378,4),(98380,4),(98385,4),(98393,4),(98407,4),(98412,4),(98422,4),(98423,4),(98427,4),(98431,4),(98446,4),(98447,4),(98449,4),(98452,4),(98484,4),(98485,4),(98486,4),(98494,4),(98502,4),(98509,4),(98515,4),(98520,4),(98521,4),(98522,4),(98525,4),(98528,4),(98530,4),(98531,4),(98532,4),(98533,4),(98541,4),(98550,4),(98557,4),(98562,4),(98563,4),(98574,4),(98580,4),(98584,4),(98591,4),(98598,4),(98602,4),(98603,4),(98605,4),(98609,4),(98611,4),(98634,4),(98635,4),(98636,4),(98647,4),(98650,4),(98658,4),(98660,4),(98662,4),(98664,4),(98666,4),(98667,4),(98672,4),(98679,4),(98691,4),(98704,4),(98708,4),(98713,4),(98726,4),(98729,4),(98740,4),(98749,4),(98751,4),(98752,4),(98754,4),(98756,4),(98761,4),(98766,4),(98767,4),(98773,4),(98783,4),(98785,4),(98791,4),(98793,4),(98801,4),(98803,4),(98810,4),(98814,4),(98818,4),(98823,4),(98835,4),(98841,4),(98848,4),(98850,4),(98865,4),(98872,4),(98877,4),(98883,4),(98896,4),(98902,4),(98903,4),(98909,4),(98912,4),(98926,4),(98927,4),(98934,4),(98951,4),(98955,4),(98974,4),(98979,4),(98980,4),(98984,4),(98987,4),(98988,4),(98994,4),(98995,4),(98998,4),(99000,4),(1,5),(2,5),(6,5),(10,5),(25,5),(30,5),(32,5),(38,5),(40,5),(56,5),(65,5),(66,5),(68,5),(70,5),(82,5),(83,5),(93,5),(101,5),(103,5),(110,5),(112,5),(113,5),(122,5),(130,5),(146,5),(157,5),(158,5),(160,5),(161,5),(169,5),(170,5),(191,5),(193,5),(200,5),(219,5),(222,5),(227,5),(229,5),(231,5),(249,5),(265,5),(270,5),(281,5),(290,5),(291,5),(295,5),(314,5),(319,5),(322,5),(324,5),(336,5),(366,5),(377,5),(391,5),(393,5),(401,5),(403,5),(404,5),(408,5),(412,5),(415,5),(417,5),(422,5),(433,5),(445,5),(446,5),(454,5),(457,5),(465,5),(486,5),(488,5),(489,5),(492,5),(495,5),(498,5),(500,5),(509,5),(512,5),(534,5),(535,5),(536,5),(546,5),(549,5),(563,5),(564,5),(575,5),(577,5),(578,5),(592,5),(593,5),(600,5),(602,5),(622,5),(627,5),(628,5),(632,5),(633,5),(638,5),(641,5),(644,5),(647,5),(648,5),(656,5),(657,5),(661,5),(663,5),(667,5),(669,5),(692,5),(702,5),(704,5),(720,5),(721,5),(728,5),(730,5),(735,5),(745,5),(748,5),(759,5),(764,5),(776,5),(780,5),(782,5),(789,5),(794,5),(800,5),(802,5),(815,5),(829,5),(840,5),(856,5),(857,5),(863,5),(867,5),(874,5),(876,5),(882,5),(883,5),(884,5),(886,5),(890,5),(892,5),(897,5),(904,5),(905,5),(913,5),(927,5),(930,5),(934,5),(937,5),(939,5),(945,5),(948,5),(954,5),(955,5),(981,5),(982,5),(984,5),(986,5),(988,5),(993,5),(995,5),(1003,5),(1005,5),(1012,5),(1015,5),(1021,5),(1042,5),(1043,5),(1045,5),(1048,5),(1064,5),(1072,5),(1076,5),(1077,5),(1079,5),(1084,5),(1093,5),(1101,5),(1108,5),(1114,5),(1119,5),(1123,5),(1124,5),(1127,5),(1129,5),(1131,5),(1135,5),(1143,5),(1155,5),(1159,5),(1160,5),(1166,5),(1171,5),(1177,5),(1180,5),(1183,5),(1187,5),(1193,5),(1195,5),(1198,5),(1201,5),(1210,5),(1213,5),(1224,5),(1230,5),(1231,5),(1237,5),(1248,5),(1250,5),(1255,5),(1270,5),(1282,5),(1292,5),(1294,5),(1298,5),(1299,5),(1300,5),(1303,5),(1304,5),(1309,5),(1316,5),(1321,5),(1335,5),(1342,5),(1346,5),(1347,5),(1352,5),(1353,5),(1358,5),(1361,5),(1365,5),(1369,5),(1370,5),(1373,5),(1384,5),(1397,5),(1398,5),(1399,5),(1403,5),(1410,5),(1416,5),(1426,5),(1429,5),(1432,5),(1435,5),(1455,5),(1458,5),(1466,5),(1470,5),(1472,5),(1488,5),(1489,5),(1490,5),(1495,5),(1507,5),(1508,5),(1509,5),(1513,5),(1524,5),(1527,5),(1530,5),(1531,5),(1540,5),(1546,5),(1552,5),(1555,5),(1562,5),(1564,5),(1565,5),(1579,5),(1599,5),(1602,5),(1604,5),(1625,5),(1627,5),(1629,5),(1631,5),(1632,5),(1637,5),(1642,5),(1645,5),(1649,5),(1654,5),(1671,5),(1672,5),(1688,5),(1693,5),(1696,5),(1697,5),(1713,5),(1715,5),(1718,5),(1720,5),(1723,5),(1726,5),(1729,5),(1744,5),(1746,5),(1750,5),(1752,5),(1759,5),(1771,5),(1780,5),(1783,5),(1784,5),(1788,5),(1802,5),(1824,5),(1826,5),(1830,5),(1835,5),(1838,5),(1841,5),(1854,5),(1867,5),(1869,5),(1870,5),(1872,5),(1877,5),(1880,5),(1885,5),(1886,5),(1896,5),(1900,5),(1904,5),(1908,5),(1933,5),(1936,5),(1943,5),(1946,5),(1954,5),(1956,5),(1957,5),(1959,5),(1966,5),(1968,5),(1970,5),(1972,5),(1975,5),(1979,5),(1981,5),(1982,5),(1984,5),(1987,5),(1991,5),(1993,5),(2001,5),(2010,5),(2014,5),(2018,5),(2024,5),(2032,5),(2036,5),(2037,5),(2046,5),(2052,5),(2054,5),(2056,5),(2058,5),(2063,5),(2065,5),(2068,5),(2070,5),(2072,5),(2078,5),(2080,5),(2081,5),(2082,5),(2089,5),(2093,5),(2100,5),(2101,5),(2105,5),(2126,5),(2139,5),(2144,5),(2150,5),(2154,5),(2157,5),(2161,5),(2173,5),(2178,5),(2185,5),(2196,5),(2201,5),(2202,5),(2209,5),(2219,5),(2220,5),(2222,5),(2234,5),(2237,5),(2240,5),(2241,5),(2245,5),(2249,5),(2255,5),(2258,5),(2259,5),(2262,5),(2269,5),(2286,5),(2291,5),(2292,5),(2302,5),(2305,5),(2306,5),(2310,5),(2318,5),(2319,5),(2322,5),(2352,5),(2354,5),(2357,5),(2365,5),(2375,5),(2387,5),(2391,5),(2397,5),(2403,5),(2423,5),(2429,5),(2442,5),(2444,5),(2452,5),(2463,5),(2479,5),(2483,5),(2485,5),(2494,5),(2495,5),(2503,5),(2522,5),(2524,5),(2526,5),(2533,5),(2560,5),(2564,5),(2569,5),(2584,5),(2590,5),(2595,5),(2616,5),(2621,5),(2639,5),(2643,5),(2646,5),(2653,5),(2654,5),(2658,5),(2668,5),(2676,5),(2688,5),(2693,5),(2706,5),(2707,5),(2708,5),(2717,5),(2723,5),(2727,5),(2732,5),(2733,5),(2747,5),(2754,5),(2755,5),(2760,5),(2765,5),(2766,5),(2767,5),(2769,5),(2773,5),(2775,5),(2780,5),(2781,5),(2789,5),(2802,5),(2814,5),(2815,5),(2818,5),(2819,5),(2828,5),(2832,5),(2833,5),(2838,5),(2854,5),(2857,5),(2860,5),(2865,5),(2866,5),(2876,5),(2884,5),(2892,5),(2898,5),(2902,5),(2905,5),(2909,5),(2913,5),(2915,5),(2916,5),(2917,5),(2928,5),(2932,5),(2936,5),(2938,5),(2939,5),(2941,5),(2944,5),(2948,5),(2952,5),(2955,5),(2956,5),(2957,5),(2967,5),(2971,5),(2974,5),(2976,5),(2993,5),(2998,5),(3001,5),(3003,5),(3005,5),(3020,5),(3021,5),(3036,5),(3039,5),(3041,5),(3042,5),(3048,5),(3051,5),(3068,5),(3081,5),(3086,5),(3088,5),(3094,5),(3107,5),(3109,5),(3147,5),(3151,5),(3156,5),(3159,5),(3160,5),(3163,5),(3169,5),(3183,5),(3189,5),(3190,5),(3198,5),(3199,5),(3200,5),(3207,5),(3209,5),(3220,5),(3223,5),(3238,5),(3244,5),(3260,5),(3262,5),(3266,5),(3267,5),(3273,5),(3295,5),(3297,5),(3303,5),(3313,5),(3314,5),(3315,5),(3321,5),(3324,5),(3326,5),(3335,5),(3336,5),(3337,5),(3356,5),(3358,5),(3364,5),(3368,5),(3372,5),(3394,5),(3404,5),(3410,5),(3425,5),(3427,5),(3443,5),(3444,5),(3456,5),(3458,5),(3461,5),(3493,5),(3497,5),(3499,5),(3502,5),(3506,5),(3516,5),(3518,5),(3526,5),(3532,5),(3543,5),(3545,5),(3559,5),(3560,5),(3561,5),(3568,5),(3571,5),(3572,5),(3575,5),(3576,5),(3595,5),(3599,5),(3605,5),(3617,5),(3620,5),(3623,5),(3624,5),(3627,5),(3636,5),(3637,5),(3639,5),(3646,5),(3664,5),(3671,5),(3673,5),(3687,5),(3689,5),(3691,5),(3692,5),(3695,5),(3698,5),(3716,5),(3724,5),(3737,5),(3757,5),(3761,5),(3765,5),(3775,5),(3777,5),(3778,5),(3779,5),(3781,5),(3782,5),(3786,5),(3789,5),(3799,5),(3801,5),(3808,5),(3810,5),(3815,5),(3820,5),(3844,5),(3846,5),(3865,5),(3869,5),(3873,5),(3881,5),(3883,5),(3887,5),(3890,5),(3895,5),(3898,5),(3899,5),(3914,5),(3915,5),(3921,5),(3927,5),(3928,5),(3929,5),(3933,5),(3935,5),(3938,5),(3947,5),(3949,5),(3962,5),(3971,5),(3983,5),(3988,5),(3992,5),(3999,5),(4002,5),(4003,5),(4008,5),(4011,5),(4012,5),(4025,5),(4028,5),(4037,5),(4039,5),(4041,5),(4043,5),(4052,5),(4054,5),(4071,5),(4076,5),(4080,5),(4082,5),(4086,5),(4092,5),(4096,5),(4098,5),(4116,5),(4126,5),(4138,5),(4140,5),(4141,5),(4142,5),(4144,5),(4157,5),(4158,5),(4163,5),(4175,5),(4183,5),(4199,5),(4208,5),(4211,5),(4218,5),(4219,5),(4222,5),(4225,5),(4228,5),(4234,5),(4252,5),(4258,5),(4275,5),(4277,5),(4278,5),(4283,5),(4296,5),(4302,5),(4320,5),(4325,5),(4327,5),(4335,5),(4339,5),(4344,5),(4345,5),(4346,5),(4364,5),(4369,5),(4379,5),(4380,5),(4388,5),(4399,5),(4406,5),(4411,5),(4418,5),(4422,5),(4434,5),(4440,5),(4449,5),(4453,5),(4454,5),(4473,5),(4489,5),(4507,5),(4514,5),(4522,5),(4526,5),(4542,5),(4545,5),(4550,5),(4559,5),(4560,5),(4571,5),(4579,5),(4580,5),(4583,5),(4588,5),(4589,5),(4599,5),(4614,5),(4627,5),(4630,5),(4637,5),(4643,5),(4644,5),(4652,5),(4666,5),(4668,5),(4671,5),(4680,5),(4690,5),(4712,5),(4717,5),(4723,5),(4741,5),(4743,5),(4745,5),(4748,5),(4755,5),(4758,5),(4776,5),(4781,5),(4808,5),(4812,5),(4820,5),(4824,5),(4830,5),(4834,5),(4849,5),(4853,5),(4856,5),(4868,5),(4870,5),(4880,5),(4881,5),(4891,5),(4905,5),(4907,5),(4912,5),(4913,5),(4918,5),(4920,5),(4924,5),(4936,5),(4940,5),(4946,5),(4953,5),(4954,5),(4960,5),(4973,5),(4974,5),(4977,5),(4995,5),(4996,5),(4998,5),(5006,5),(5010,5),(5027,5),(5029,5),(5037,5),(5040,5),(5046,5),(5051,5),(5054,5),(5055,5),(5059,5),(5062,5),(5066,5),(5077,5),(5083,5),(5086,5),(5087,5),(5097,5),(5112,5),(5122,5),(5128,5),(5130,5),(5134,5),(5148,5),(5150,5),(5159,5),(5165,5),(5166,5),(5169,5),(5171,5),(5172,5),(5174,5),(5176,5),(5177,5),(5184,5),(5185,5),(5189,5),(5195,5),(5196,5),(5203,5),(5207,5),(5208,5),(5210,5),(5212,5),(5213,5),(5215,5),(5216,5),(5231,5),(5235,5),(5237,5),(5256,5),(5261,5),(5280,5),(5281,5),(5285,5),(5288,5),(5292,5),(5304,5),(5307,5),(5308,5),(5316,5),(5337,5),(5351,5),(5355,5),(5363,5),(5367,5),(5377,5),(5388,5),(5389,5),(5392,5),(5399,5),(5400,5),(5416,5),(5434,5),(5436,5),(5440,5),(5446,5),(5455,5),(5462,5),(5463,5),(5469,5),(5473,5),(5483,5),(5490,5),(5492,5),(5498,5),(5508,5),(5509,5),(5510,5),(5522,5),(5526,5),(5533,5),(5537,5),(5538,5),(5542,5),(5557,5),(5558,5),(5559,5),(5561,5),(5562,5),(5569,5),(5570,5),(5574,5),(5575,5),(5583,5),(5586,5),(5587,5),(5595,5),(5618,5),(5622,5),(5626,5),(5628,5),(5629,5),(5630,5),(5632,5),(5652,5),(5654,5),(5656,5),(5664,5),(5665,5),(5680,5),(5682,5),(5685,5),(5699,5),(5700,5),(5707,5),(5709,5),(5716,5),(5717,5),(5731,5),(5735,5),(5737,5),(5738,5),(5740,5),(5742,5),(5747,5),(5750,5),(5760,5),(5767,5),(5769,5),(5779,5),(5780,5),(5783,5),(5790,5),(5798,5),(5806,5),(5823,5),(5827,5),(5831,5),(5848,5),(5854,5),(5855,5),(5859,5),(5862,5),(5864,5),(5866,5),(5869,5),(5872,5),(5873,5),(5874,5),(5878,5),(5879,5),(5888,5),(5893,5),(5897,5),(5904,5),(5905,5),(5911,5),(5913,5),(5920,5),(5921,5),(5937,5),(5945,5),(5954,5),(5960,5),(5967,5),(5970,5),(5974,5),(5982,5),(5990,5),(5991,5),(6001,5),(6014,5),(6015,5),(6024,5),(6029,5),(6031,5),(6033,5),(6038,5),(6040,5),(6043,5),(6048,5),(6049,5),(6051,5),(6056,5),(6059,5),(6064,5),(6075,5),(6078,5),(6082,5),(6094,5),(6097,5),(6103,5),(6106,5),(6110,5),(6116,5),(6117,5),(6122,5),(6123,5),(6133,5),(6140,5),(6164,5),(6173,5),(6180,5),(6181,5),(6185,5),(6187,5),(6189,5),(6199,5),(6209,5),(6232,5),(6233,5),(6235,5),(6236,5),(6248,5),(6249,5),(6250,5),(6252,5),(6261,5),(6262,5),(6267,5),(6286,5),(6288,5),(6296,5),(6297,5),(6299,5),(6305,5),(6354,5),(6373,5),(6374,5),(6381,5),(6385,5),(6386,5),(6404,5),(6415,5),(6426,5),(6435,5),(6451,5),(6461,5),(6467,5),(6473,5),(6474,5),(6477,5),(6485,5),(6488,5),(6489,5),(6492,5),(6504,5),(6505,5),(6508,5),(6518,5),(6520,5),(6523,5),(6525,5),(6530,5),(6590,5),(6591,5),(6596,5),(6597,5),(6611,5),(6616,5),(6617,5),(6619,5),(6622,5),(6635,5),(6639,5),(6643,5),(6645,5),(6652,5),(6653,5),(6657,5),(6662,5),(6672,5),(6679,5),(6683,5),(6685,5),(6690,5),(6692,5),(6699,5),(6710,5),(6712,5),(6723,5),(6724,5),(6728,5),(6747,5),(6753,5),(6759,5),(6761,5),(6779,5),(6797,5),(6799,5),(6801,5),(6802,5),(6803,5),(6810,5),(6811,5),(6819,5),(6821,5),(6830,5),(6835,5),(6837,5),(6845,5),(6846,5),(6851,5),(6856,5),(6862,5),(6865,5),(6873,5),(6879,5),(6880,5),(6881,5),(6892,5),(6897,5),(6904,5),(6905,5),(6906,5),(6912,5),(6914,5),(6921,5),(6931,5),(6957,5),(6968,5),(6969,5),(6970,5),(6973,5),(6974,5),(6986,5),(6995,5),(6997,5),(7000,5),(7010,5),(7012,5),(7018,5),(7027,5),(7029,5),(7030,5),(7047,5),(7052,5),(7064,5),(7084,5),(7090,5),(7101,5),(7104,5),(7105,5),(7106,5),(7133,5),(7134,5),(7142,5),(7143,5),(7149,5),(7151,5),(7162,5),(7166,5),(7168,5),(7169,5),(7172,5),(7173,5),(7175,5),(7180,5),(7187,5),(7188,5),(7190,5),(7191,5),(7192,5),(7197,5),(7216,5),(7222,5),(7224,5),(7225,5),(7231,5),(7245,5),(7249,5),(7260,5),(7261,5),(7266,5),(7267,5),(7274,5),(7276,5),(7286,5),(7288,5),(7302,5),(7303,5),(7307,5),(7312,5),(7320,5),(7326,5),(7328,5),(7332,5),(7334,5),(7335,5),(7359,5),(7362,5),(7364,5),(7365,5),(7368,5),(7381,5),(7383,5),(7393,5),(7395,5),(7411,5),(7423,5),(7426,5),(7451,5),(7454,5),(7455,5),(7477,5),(7481,5),(7485,5),(7490,5),(7497,5),(7510,5),(7511,5),(7512,5),(7515,5),(7516,5),(7521,5),(7522,5),(7526,5),(7534,5),(7535,5),(7536,5),(7543,5),(7551,5),(7552,5),(7561,5),(7569,5),(7570,5),(7573,5),(7575,5),(7583,5),(7604,5),(7613,5),(7619,5),(7622,5),(7625,5),(7627,5),(7630,5),(7641,5),(7656,5),(7661,5),(7667,5),(7669,5),(7670,5),(7676,5),(7682,5),(7684,5),(7685,5),(7693,5),(7702,5),(7709,5),(7712,5),(7715,5),(7725,5),(7744,5),(7747,5),(7756,5),(7766,5),(7769,5),(7772,5),(7774,5),(7777,5),(7780,5),(7781,5),(7786,5),(7793,5),(7806,5),(7809,5),(7817,5),(7823,5),(7830,5),(7831,5),(7834,5),(7835,5),(7840,5),(7847,5),(7857,5),(7858,5),(7859,5),(7868,5),(7874,5),(7879,5),(7880,5),(7886,5),(7890,5),(7891,5),(7901,5),(7904,5),(7908,5),(7915,5),(7920,5),(7929,5),(7934,5),(7951,5),(7955,5),(7957,5),(7987,5),(7997,5),(8002,5),(8003,5),(8005,5),(8012,5),(8027,5),(8043,5),(8045,5),(8049,5),(8053,5),(8085,5),(8091,5),(8095,5),(8103,5),(8104,5),(8105,5),(8106,5),(8113,5),(8118,5),(8120,5),(8126,5),(8127,5),(8128,5),(8133,5),(8142,5),(8145,5),(8146,5),(8150,5),(8151,5),(8152,5),(8159,5),(8161,5),(8163,5),(8170,5),(8180,5),(8187,5),(8191,5),(8205,5),(8211,5),(8216,5),(8222,5),(8224,5),(8231,5),(8232,5),(8233,5),(8236,5),(8247,5),(8250,5),(8255,5),(8264,5),(8276,5),(8283,5),(8303,5),(8309,5),(8316,5),(8317,5),(8322,5),(8323,5),(8325,5),(8330,5),(8331,5),(8335,5),(8349,5),(8367,5),(8369,5),(8370,5),(8376,5),(8386,5),(8391,5),(8393,5),(8400,5),(8401,5),(8404,5),(8405,5),(8418,5),(8419,5),(8424,5),(8425,5),(8426,5),(8428,5),(8430,5),(8435,5),(8449,5),(8457,5),(8463,5),(8466,5),(8482,5),(8486,5),(8491,5),(8495,5),(8499,5),(8504,5),(8510,5),(8516,5),(8521,5),(8524,5),(8525,5),(8526,5),(8534,5),(8542,5),(8547,5),(8549,5),(8551,5),(8554,5),(8555,5),(8556,5),(8559,5),(8567,5),(8582,5),(8586,5),(8593,5),(8595,5),(8596,5),(8604,5),(8610,5),(8616,5),(8620,5),(8628,5),(8637,5),(8644,5),(8648,5),(8651,5),(8653,5),(8661,5),(8665,5),(8667,5),(8668,5),(8676,5),(8677,5),(8679,5),(8692,5),(8700,5),(8708,5),(8712,5),(8713,5),(8717,5),(8724,5),(8728,5),(8736,5),(8737,5),(8742,5),(8743,5),(8751,5),(8753,5),(8759,5),(8771,5),(8793,5),(8796,5),(8799,5),(8801,5),(8810,5),(8815,5),(8824,5),(8834,5),(8851,5),(8857,5),(8891,5),(8892,5),(8897,5),(8900,5),(8903,5),(8911,5),(8915,5),(8918,5),(8931,5),(8932,5),(8935,5),(8941,5),(8950,5),(8952,5),(8961,5),(8965,5),(8966,5),(8973,5),(8976,5),(8979,5),(8985,5),(8986,5),(8988,5),(9015,5),(9016,5),(9024,5),(9031,5),(9032,5),(9049,5),(9058,5),(9061,5),(9073,5),(9084,5),(9088,5),(9089,5),(9092,5),(9102,5),(9110,5),(9117,5),(9137,5),(9143,5),(9154,5),(9155,5),(9168,5),(9169,5),(9183,5),(9184,5),(9185,5),(9186,5),(9188,5),(9198,5),(9199,5),(9204,5),(9208,5),(9214,5),(9219,5),(9221,5),(9226,5),(9246,5),(9265,5),(9290,5),(9298,5),(9299,5),(9303,5),(9305,5),(9306,5),(9307,5),(9319,5),(9320,5),(9327,5),(9337,5),(9344,5),(9351,5),(9352,5),(9360,5),(9376,5),(9377,5),(9379,5),(9381,5),(9382,5),(9394,5),(9397,5),(9400,5),(9417,5),(9419,5),(9427,5),(9433,5),(9435,5),(9436,5),(9443,5),(9448,5),(9455,5),(9461,5),(9465,5),(9467,5),(9468,5),(9485,5),(9488,5),(9508,5),(9510,5),(9518,5),(9520,5),(9526,5),(9527,5),(9535,5),(9537,5),(9543,5),(9551,5),(9554,5),(9569,5),(9578,5),(9590,5),(9627,5),(9631,5),(9632,5),(9633,5),(9634,5),(9636,5),(9637,5),(9663,5),(9665,5),(9666,5),(9667,5),(9676,5),(9678,5),(9683,5),(9694,5),(9696,5),(9701,5),(9710,5),(9721,5),(9725,5),(9726,5),(9728,5),(9745,5),(9748,5),(9755,5),(9759,5),(9764,5),(9783,5),(9793,5),(9805,5),(9809,5),(9810,5),(9815,5),(9818,5),(9824,5),(9828,5),(9831,5),(9835,5),(9839,5),(9842,5),(9844,5),(9845,5),(9867,5),(9876,5),(9883,5),(9884,5),(9889,5),(9892,5),(9893,5),(9914,5),(9917,5),(9925,5),(9933,5),(9940,5),(9941,5),(9944,5),(9946,5),(9950,5),(9963,5),(9967,5),(9969,5),(9973,5),(9976,5),(9988,5),(9989,5),(10006,5),(10008,5),(10023,5),(10032,5),(10044,5),(10046,5),(10054,5),(10069,5),(10075,5),(10082,5),(10086,5),(10095,5),(10097,5),(10105,5),(10106,5),(10114,5),(10126,5),(10130,5),(10140,5),(10141,5),(10146,5),(10151,5),(10155,5),(10161,5),(10167,5),(10174,5),(10176,5),(10183,5),(10189,5),(10190,5),(10206,5),(10207,5),(10211,5),(10215,5),(10220,5),(10221,5),(10234,5),(10243,5),(10254,5),(10276,5),(10282,5),(10290,5),(10291,5),(10292,5),(10300,5),(10301,5),(10304,5),(10309,5),(10310,5),(10312,5),(10316,5),(10319,5),(10329,5),(10331,5),(10337,5),(10342,5),(10360,5),(10361,5),(10362,5),(10363,5),(10387,5),(10389,5),(10398,5),(10402,5),(10404,5),(10407,5),(10415,5),(10432,5),(10435,5),(10441,5),(10449,5),(10456,5),(10459,5),(10460,5),(10461,5),(10469,5),(10471,5),(10472,5),(10474,5),(10476,5),(10482,5),(10486,5),(10488,5),(10495,5),(10498,5),(10502,5),(10505,5),(10509,5),(10512,5),(10514,5),(10539,5),(10540,5),(10541,5),(10543,5),(10556,5),(10560,5),(10561,5),(10564,5),(10589,5),(10593,5),(10599,5),(10609,5),(10611,5),(10621,5),(10633,5),(10636,5),(10643,5),(10644,5),(10655,5),(10656,5),(10662,5),(10667,5),(10675,5),(10678,5),(10680,5),(10685,5),(10690,5),(10691,5),(10696,5),(10698,5),(10713,5),(10714,5),(10717,5),(10723,5),(10727,5),(10741,5),(10755,5),(10758,5),(10759,5),(10776,5),(10818,5),(10822,5),(10845,5),(10852,5),(10855,5),(10865,5),(10882,5),(10885,5),(10891,5),(10892,5),(10894,5),(10896,5),(10898,5),(10903,5),(10916,5),(10922,5),(10926,5),(10933,5),(10938,5),(10941,5),(10953,5),(10966,5),(10967,5),(10972,5),(10973,5),(10978,5),(10987,5),(11009,5),(11013,5),(11017,5),(11022,5),(11024,5),(11030,5),(11036,5),(11052,5),(11054,5),(11055,5),(11069,5),(11070,5),(11072,5),(11076,5),(11083,5),(11084,5),(11090,5),(11094,5),(11099,5),(11104,5),(11105,5),(11125,5),(11146,5),(11149,5),(11156,5),(11166,5),(11170,5),(11177,5),(11179,5),(11180,5),(11190,5),(11191,5),(11196,5),(11208,5),(11209,5),(11210,5),(11213,5),(11217,5),(11224,5),(11226,5),(11232,5),(11235,5),(11237,5),(11239,5),(11248,5),(11256,5),(11261,5),(11271,5),(11278,5),(11280,5),(11281,5),(11286,5),(11294,5),(11300,5),(11304,5),(11305,5),(11308,5),(11309,5),(11313,5),(11324,5),(11327,5),(11342,5),(11349,5),(11350,5),(11353,5),(11359,5),(11360,5),(11367,5),(11368,5),(11375,5),(11376,5),(11379,5),(11387,5),(11391,5),(11392,5),(11396,5),(11412,5),(11413,5),(11418,5),(11421,5),(11433,5),(11440,5),(11456,5),(11467,5),(11472,5),(11475,5),(11479,5),(11480,5),(11485,5),(11497,5),(11510,5),(11511,5),(11515,5),(11517,5),(11518,5),(11524,5),(11532,5),(11541,5),(11547,5),(11548,5),(11552,5),(11553,5),(11554,5),(11571,5),(11573,5),(11587,5),(11590,5),(11596,5),(11600,5),(11608,5),(11619,5),(11622,5),(11623,5),(11624,5),(11632,5),(11637,5),(11638,5),(11641,5),(11645,5),(11648,5),(11666,5),(11669,5),(11672,5),(11680,5),(11682,5),(11683,5),(11690,5),(11693,5),(11700,5),(11709,5),(11714,5),(11718,5),(11721,5),(11742,5),(11767,5),(11771,5),(11773,5),(11778,5),(11779,5),(11782,5),(11786,5),(11791,5),(11795,5),(11801,5),(11802,5),(11805,5),(11806,5),(11812,5),(11829,5),(11841,5),(11843,5),(11853,5),(11854,5),(11874,5),(11875,5),(11887,5),(11899,5),(11914,5),(11918,5),(11921,5),(11929,5),(11931,5),(11937,5),(11938,5),(11947,5),(11951,5),(11956,5),(11961,5),(11966,5),(11971,5),(11974,5),(11991,5),(11996,5),(11999,5),(12002,5),(12016,5),(12034,5),(12048,5),(12049,5),(12054,5),(12055,5),(12074,5),(12075,5),(12077,5),(12080,5),(12082,5),(12087,5),(12093,5),(12094,5),(12099,5),(12100,5),(12101,5),(12107,5),(12109,5),(12125,5),(12135,5),(12143,5),(12145,5),(12161,5),(12167,5),(12175,5),(12189,5),(12190,5),(12197,5),(12198,5),(12206,5),(12212,5),(12213,5),(12214,5),(12222,5),(12227,5),(12229,5),(12232,5),(12241,5),(12246,5),(12253,5),(12258,5),(12265,5),(12267,5),(12286,5),(12294,5),(12296,5),(12301,5),(12317,5),(12324,5),(12326,5),(12329,5),(12350,5),(12352,5),(12366,5),(12371,5),(12379,5),(12380,5),(12392,5),(12394,5),(12402,5),(12419,5),(12422,5),(12428,5),(12485,5),(12486,5),(12487,5),(12489,5),(12492,5),(12493,5),(12497,5),(12500,5),(12503,5),(12506,5),(12507,5),(12514,5),(12516,5),(12519,5),(12521,5),(12522,5),(12535,5),(12542,5),(12558,5),(12560,5),(12564,5),(12566,5),(12576,5),(12585,5),(12605,5),(12620,5),(12621,5),(12623,5),(12624,5),(12629,5),(12631,5),(12632,5),(12640,5),(12649,5),(12650,5),(12660,5),(12666,5),(12668,5),(12673,5),(12682,5),(12692,5),(12707,5),(12711,5),(12717,5),(12731,5),(12738,5),(12743,5),(12744,5),(12745,5),(12749,5),(12753,5),(12754,5),(12757,5),(12766,5),(12774,5),(12787,5),(12788,5),(12807,5),(12810,5),(12819,5),(12828,5),(12835,5),(12836,5),(12839,5),(12848,5),(12866,5),(12876,5),(12881,5),(12891,5),(12895,5),(12912,5),(12930,5),(12937,5),(12941,5),(12950,5),(12958,5),(12972,5),(12979,5),(12982,5),(12983,5),(12994,5),(12997,5),(12998,5),(13000,5),(13005,5),(13011,5),(13015,5),(13017,5),(13018,5),(13022,5),(13027,5),(13029,5),(13033,5),(13034,5),(13040,5),(13051,5),(13052,5),(13057,5),(13060,5),(13066,5),(13076,5),(13079,5),(13080,5),(13082,5),(13085,5),(13086,5),(13094,5),(13100,5),(13103,5),(13108,5),(13113,5),(13126,5),(13135,5),(13137,5),(13141,5),(13143,5),(13145,5),(13156,5),(13158,5),(13159,5),(13163,5),(13167,5),(13169,5),(13175,5),(13179,5),(13180,5),(13183,5),(13190,5),(13193,5),(13203,5),(13231,5),(13248,5),(13261,5),(13265,5),(13268,5),(13276,5),(13277,5),(13280,5),(13281,5),(13288,5),(13292,5),(13293,5),(13297,5),(13299,5),(13309,5),(13314,5),(13318,5),(13326,5),(13330,5),(13333,5),(13335,5),(13336,5),(13360,5),(13369,5),(13370,5),(13374,5),(13375,5),(13384,5),(13386,5),(13392,5),(13395,5),(13402,5),(13414,5),(13418,5),(13419,5),(13422,5),(13427,5),(13433,5),(13442,5),(13444,5),(13446,5),(13451,5),(13464,5),(13468,5),(13469,5),(13488,5),(13501,5),(13510,5),(13519,5),(13521,5),(13524,5),(13541,5),(13542,5),(13545,5),(13546,5),(13550,5),(13551,5),(13552,5),(13570,5),(13571,5),(13572,5),(13574,5),(13575,5),(13581,5),(13582,5),(13583,5),(13586,5),(13588,5),(13598,5),(13600,5),(13604,5),(13619,5),(13622,5),(13633,5),(13634,5),(13642,5),(13645,5),(13647,5),(13650,5),(13651,5),(13654,5),(13656,5),(13660,5),(13666,5),(13682,5),(13695,5),(13697,5),(13698,5),(13705,5),(13707,5),(13718,5),(13723,5),(13728,5),(13736,5),(13739,5),(13751,5),(13758,5),(13772,5),(13779,5),(13782,5),(13790,5),(13801,5),(13804,5),(13805,5),(13806,5),(13811,5),(13818,5),(13820,5),(13824,5),(13831,5),(13841,5),(13843,5),(13845,5),(13846,5),(13862,5),(13872,5),(13876,5),(13884,5),(13894,5),(13902,5),(13904,5),(13922,5),(13933,5),(13939,5),(13945,5),(13951,5),(13962,5),(13965,5),(13974,5),(13988,5),(13991,5),(13994,5),(14011,5),(14014,5),(14019,5),(14030,5),(14031,5),(14036,5),(14041,5),(14042,5),(14049,5),(14051,5),(14057,5),(14059,5),(14065,5),(14074,5),(14077,5),(14088,5),(14090,5),(14091,5),(14095,5),(14103,5),(14106,5),(14108,5),(14114,5),(14118,5),(14122,5),(14130,5),(14132,5),(14133,5),(14142,5),(14145,5),(14147,5),(14157,5),(14161,5),(14165,5),(14168,5),(14172,5),(14182,5),(14188,5),(14195,5),(14196,5),(14209,5),(14211,5),(14222,5),(14224,5),(14226,5),(14228,5),(14231,5),(14232,5),(14240,5),(14241,5),(14242,5),(14248,5),(14263,5),(14268,5),(14269,5),(14271,5),(14273,5),(14274,5),(14275,5),(14276,5),(14292,5),(14295,5),(14302,5),(14309,5),(14313,5),(14315,5),(14320,5),(14321,5),(14323,5),(14328,5),(14330,5),(14355,5),(14356,5),(14367,5),(14368,5),(14373,5),(14379,5),(14385,5),(14391,5),(14392,5),(14394,5),(14400,5),(14405,5),(14408,5),(14419,5),(14420,5),(14425,5),(14426,5),(14441,5),(14444,5),(14455,5),(14460,5),(14467,5),(14479,5),(14481,5),(14491,5),(14493,5),(14498,5),(14500,5),(14508,5),(14520,5),(14522,5),(14525,5),(14526,5),(14527,5),(14533,5),(14544,5),(14550,5),(14551,5),(14557,5),(14565,5),(14571,5),(14574,5),(14578,5),(14583,5),(14584,5),(14585,5),(14589,5),(14596,5),(14603,5),(14610,5),(14617,5),(14630,5),(14632,5),(14635,5),(14642,5),(14643,5),(14649,5),(14650,5),(14651,5),(14662,5),(14668,5),(14676,5),(14686,5),(14697,5),(14712,5),(14715,5),(14722,5),(14734,5),(14743,5),(14744,5),(14745,5),(14748,5),(14750,5),(14756,5),(14757,5),(14760,5),(14764,5),(14770,5),(14779,5),(14787,5),(14807,5),(14810,5),(14813,5),(14820,5),(14824,5),(14826,5),(14830,5),(14847,5),(14855,5),(14861,5),(14862,5),(14872,5),(14873,5),(14880,5),(14887,5),(14889,5),(14893,5),(14898,5),(14902,5),(14911,5),(14912,5),(14914,5),(14921,5),(14932,5),(14935,5),(14950,5),(14951,5),(14956,5),(14967,5),(14971,5),(14977,5),(14983,5),(14997,5),(14999,5),(15007,5),(15008,5),(15014,5),(15017,5),(15018,5),(15019,5),(15025,5),(15039,5),(15044,5),(15047,5),(15049,5),(15053,5),(15055,5),(15057,5),(15059,5),(15060,5),(15062,5),(15066,5),(15072,5),(15080,5),(15091,5),(15106,5),(15108,5),(15120,5),(15122,5),(15123,5),(15129,5),(15134,5),(15135,5),(15137,5),(15146,5),(15152,5),(15156,5),(15162,5),(15179,5),(15187,5),(15188,5),(15194,5),(15195,5),(15199,5),(15222,5),(15223,5),(15243,5),(15279,5),(15286,5),(15288,5),(15301,5),(15306,5),(15307,5),(15308,5),(15320,5),(15323,5),(15326,5),(15332,5),(15336,5),(15358,5),(15359,5),(15375,5),(15402,5),(15408,5),(15411,5),(15421,5),(15424,5),(15431,5),(15434,5),(15438,5),(15446,5),(15458,5),(15482,5),(15498,5),(15506,5),(15507,5),(15510,5),(15512,5),(15522,5),(15526,5),(15538,5),(15546,5),(15555,5),(15571,5),(15572,5),(15575,5),(15577,5),(15589,5),(15597,5),(15598,5),(15601,5),(15603,5),(15622,5),(15624,5),(15630,5),(15637,5),(15638,5),(15645,5),(15651,5),(15658,5),(15661,5),(15666,5),(15668,5),(15669,5),(15673,5),(15678,5),(15683,5),(15685,5),(15690,5),(15702,5),(15712,5),(15722,5),(15723,5),(15732,5),(15736,5),(15752,5),(15753,5),(15763,5),(15787,5),(15790,5),(15796,5),(15803,5),(15812,5),(15813,5),(15818,5),(15821,5),(15835,5),(15836,5),(15843,5),(15844,5),(15846,5),(15856,5),(15857,5),(15876,5),(15894,5),(15897,5),(15900,5),(15902,5),(15925,5),(15928,5),(15940,5),(15946,5),(15952,5),(15957,5),(15958,5),(15959,5),(15966,5),(15984,5),(15989,5),(15997,5),(16000,5),(16003,5),(16019,5),(16028,5),(16029,5),(16031,5),(16051,5),(16057,5),(16060,5),(16064,5),(16070,5),(16076,5),(16082,5),(16091,5),(16101,5),(16107,5),(16111,5),(16117,5),(16120,5),(16126,5),(16141,5),(16142,5),(16148,5),(16164,5),(16166,5),(16168,5),(16171,5),(16172,5),(16178,5),(16183,5),(16188,5),(16193,5),(16195,5),(16198,5),(16202,5),(16204,5),(16215,5),(16220,5),(16227,5),(16228,5),(16235,5),(16240,5),(16242,5),(16251,5),(16260,5),(16265,5),(16266,5),(16268,5),(16270,5),(16271,5),(16272,5),(16276,5),(16279,5),(16289,5),(16300,5),(16303,5),(16304,5),(16315,5),(16323,5),(16324,5),(16327,5),(16334,5),(16338,5),(16341,5),(16347,5),(16348,5),(16352,5),(16361,5),(16368,5),(16374,5),(16377,5),(16379,5),(16382,5),(16387,5),(16395,5),(16397,5),(16402,5),(16403,5),(16406,5),(16419,5),(16433,5),(16438,5),(16447,5),(16451,5),(16467,5),(16482,5),(16483,5),(16485,5),(16492,5),(16498,5),(16499,5),(16511,5),(16520,5),(16530,5),(16532,5),(16545,5),(16547,5),(16548,5),(16549,5),(16554,5),(16568,5),(16570,5),(16571,5),(16572,5),(16574,5),(16577,5),(16581,5),(16583,5),(16584,5),(16586,5),(16587,5),(16593,5),(16594,5),(16617,5),(16620,5),(16623,5),(16625,5),(16627,5),(16633,5),(16643,5),(16656,5),(16660,5),(16663,5),(16668,5),(16671,5),(16672,5),(16673,5),(16676,5),(16680,5),(16681,5),(16687,5),(16693,5),(16704,5),(16715,5),(16716,5),(16733,5),(16736,5),(16744,5),(16746,5),(16747,5),(16749,5),(16761,5),(16763,5),(16773,5),(16787,5),(16788,5),(16790,5),(16798,5),(16811,5),(16825,5),(16827,5),(16829,5),(16847,5),(16848,5),(16849,5),(16858,5),(16859,5),(16863,5),(16872,5),(16877,5),(16885,5),(16886,5),(16892,5),(16896,5),(16903,5),(16922,5),(16924,5),(16927,5),(16931,5),(16937,5),(16942,5),(16944,5),(16945,5),(16946,5),(16950,5),(16957,5),(16961,5),(16964,5),(16974,5),(16977,5),(16979,5),(16980,5),(16981,5),(16982,5),(16991,5),(17006,5),(17009,5),(17024,5),(17026,5),(17038,5),(17039,5),(17043,5),(17053,5),(17056,5),(17061,5),(17062,5),(17065,5),(17080,5),(17094,5),(17096,5),(17104,5),(17106,5),(17108,5),(17109,5),(17116,5),(17122,5),(17126,5),(17127,5),(17128,5),(17133,5),(17139,5),(17152,5),(17154,5),(17155,5),(17164,5),(17165,5),(17166,5),(17167,5),(17180,5),(17205,5),(17224,5),(17226,5),(17234,5),(17256,5),(17260,5),(17261,5),(17276,5),(17281,5),(17291,5),(17316,5),(17317,5),(17318,5),(17326,5),(17331,5),(17332,5),(17334,5),(17335,5),(17339,5),(17349,5),(17350,5),(17354,5),(17361,5),(17365,5),(17374,5),(17380,5),(17399,5),(17405,5),(17416,5),(17417,5),(17419,5),(17420,5),(17424,5),(17426,5),(17439,5),(17445,5),(17447,5),(17448,5),(17452,5),(17465,5),(17483,5),(17486,5),(17491,5),(17499,5),(17500,5),(17501,5),(17504,5),(17506,5),(17510,5),(17512,5),(17513,5),(17519,5),(17523,5),(17533,5),(17535,5),(17537,5),(17542,5),(17555,5),(17564,5),(17567,5),(17572,5),(17574,5),(17577,5),(17580,5),(17582,5),(17584,5),(17599,5),(17602,5),(17604,5),(17605,5),(17617,5),(17620,5),(17622,5),(17627,5),(17634,5),(17641,5),(17657,5),(17660,5),(17665,5),(17682,5),(17690,5),(17697,5),(17699,5),(17700,5),(17718,5),(17730,5),(17732,5),(17760,5),(17765,5),(17773,5),(17782,5),(17787,5),(17790,5),(17792,5),(17794,5),(17797,5),(17798,5),(17804,5),(17810,5),(17812,5),(17813,5),(17816,5),(17821,5),(17827,5),(17831,5),(17843,5),(17850,5),(17857,5),(17859,5),(17860,5),(17868,5),(17871,5),(17872,5),(17873,5),(17878,5),(17883,5),(17887,5),(17894,5),(17903,5),(17919,5),(17920,5),(17921,5),(17925,5),(17927,5),(17932,5),(17936,5),(17938,5),(17942,5),(17947,5),(17950,5),(17966,5),(17976,5),(17979,5),(17988,5),(17993,5),(18005,5),(18010,5),(18011,5),(18013,5),(18017,5),(18018,5),(18020,5),(18023,5),(18025,5),(18031,5),(18032,5),(18048,5),(18050,5),(18060,5),(18061,5),(18069,5),(18095,5),(18096,5),(18104,5),(18109,5),(18116,5),(18121,5),(18128,5),(18131,5),(18132,5),(18137,5),(18140,5),(18141,5),(18144,5),(18156,5),(18168,5),(18173,5),(18181,5),(18186,5),(18191,5),(18195,5),(18196,5),(18206,5),(18208,5),(18216,5),(18226,5),(18235,5),(18239,5),(18242,5),(18243,5),(18247,5),(18264,5),(18268,5),(18269,5),(18270,5),(18273,5),(18278,5),(18284,5),(18286,5),(18292,5),(18296,5),(18297,5),(18298,5),(18305,5),(18308,5),(18311,5),(18326,5),(18329,5),(18339,5),(18344,5),(18368,5),(18370,5),(18373,5),(18395,5),(18399,5),(18400,5),(18408,5),(18410,5),(18414,5),(18422,5),(18423,5),(18434,5),(18435,5),(18437,5),(18442,5),(18464,5),(18467,5),(18469,5),(18470,5),(18471,5),(18474,5),(18481,5),(18489,5),(18493,5),(18495,5),(18496,5),(18497,5),(18503,5),(18510,5),(18512,5),(18515,5),(18523,5),(18526,5),(18528,5),(18533,5),(18540,5),(18542,5),(18543,5),(18556,5),(18561,5),(18576,5),(18615,5),(18624,5),(18625,5),(18632,5),(18639,5),(18643,5),(18654,5),(18657,5),(18661,5),(18674,5),(18679,5),(18683,5),(18686,5),(18711,5),(18716,5),(18728,5),(18736,5),(18737,5),(18739,5),(18740,5),(18744,5),(18746,5),(18756,5),(18771,5),(18776,5),(18780,5),(18788,5),(18794,5),(18806,5),(18814,5),(18817,5),(18823,5),(18824,5),(18826,5),(18834,5),(18841,5),(18847,5),(18864,5),(18888,5),(18907,5),(18909,5),(18914,5),(18922,5),(18927,5),(18931,5),(18934,5),(18935,5),(18938,5),(18945,5),(18948,5),(18951,5),(18953,5),(18968,5),(18979,5),(18990,5),(18991,5),(18993,5),(19003,5),(19005,5),(19009,5),(19013,5),(19019,5),(19023,5),(19037,5),(19040,5),(19047,5),(19058,5),(19059,5),(19076,5),(19078,5),(19082,5),(19086,5),(19088,5),(19090,5),(19096,5),(19099,5),(19107,5),(19115,5),(19118,5),(19126,5),(19136,5),(19147,5),(19149,5),(19152,5),(19155,5),(19163,5),(19174,5),(19180,5),(19182,5),(19183,5),(19188,5),(19191,5),(19198,5),(19201,5),(19227,5),(19231,5),(19243,5),(19248,5),(19252,5),(19255,5),(19276,5),(19286,5),(19287,5),(19291,5),(19292,5),(19300,5),(19304,5),(19312,5),(19323,5),(19330,5),(19355,5),(19365,5),(19389,5),(19390,5),(19392,5),(19400,5),(19403,5),(19404,5),(19406,5),(19417,5),(19420,5),(19425,5),(19438,5),(19455,5),(19456,5),(19480,5),(19490,5),(19497,5),(19502,5),(19504,5),(19508,5),(19509,5),(19510,5),(19521,5),(19536,5),(19552,5),(19553,5),(19557,5),(19568,5),(19569,5),(19571,5),(19581,5),(19583,5),(19585,5),(19586,5),(19603,5),(19606,5),(19617,5),(19626,5),(19628,5),(19644,5),(19646,5),(19647,5),(19653,5),(19656,5),(19658,5),(19668,5),(19670,5),(19674,5),(19676,5),(19681,5),(19683,5),(19693,5),(19696,5),(19697,5),(19698,5),(19702,5),(19714,5),(19715,5),(19719,5),(19720,5),(19721,5),(19726,5),(19734,5),(19763,5),(19769,5),(19770,5),(19771,5),(19776,5),(19778,5),(19780,5),(19783,5),(19795,5),(19801,5),(19807,5),(19808,5),(19814,5),(19817,5),(19822,5),(19824,5),(19830,5),(19840,5),(19852,5),(19853,5),(19859,5),(19862,5),(19865,5),(19866,5),(19868,5),(19876,5),(19878,5),(19881,5),(19885,5),(19888,5),(19892,5),(19900,5),(19902,5),(19906,5),(19907,5),(19916,5),(19925,5),(19929,5),(19934,5),(19939,5),(19940,5),(19946,5),(19947,5),(19952,5),(19955,5),(19966,5),(19970,5),(19973,5),(19974,5),(19975,5),(19981,5),(19990,5),(19991,5),(19992,5),(19994,5),(19999,5),(20010,5),(20013,5),(20015,5),(20035,5),(20040,5),(20048,5),(20049,5),(20055,5),(20061,5),(20065,5),(20071,5),(20074,5),(20090,5),(20105,5),(20110,5),(20112,5),(20119,5),(20122,5),(20124,5),(20125,5),(20129,5),(20136,5),(20144,5),(20148,5),(20155,5),(20160,5),(20165,5),(20167,5),(20195,5),(20199,5),(20202,5),(20206,5),(20207,5),(20210,5),(20212,5),(20213,5),(20229,5),(20230,5),(20234,5),(20240,5),(20245,5),(20265,5),(20275,5),(20277,5),(20278,5),(20279,5),(20292,5),(20293,5),(20295,5),(20307,5),(20324,5),(20327,5),(20336,5),(20341,5),(20342,5),(20347,5),(20349,5),(20354,5),(20365,5),(20385,5),(20387,5),(20389,5),(20396,5),(20404,5),(20409,5),(20411,5),(20412,5),(20413,5),(20424,5),(20425,5),(20427,5),(20428,5),(20432,5),(20446,5),(20452,5),(20454,5),(20459,5),(20466,5),(20469,5),(20470,5),(20474,5),(20482,5),(20489,5),(20491,5),(20494,5),(20499,5),(20504,5),(20512,5),(20515,5),(20518,5),(20522,5),(20530,5),(20536,5),(20539,5),(20546,5),(20549,5),(20561,5),(20562,5),(20564,5),(20567,5),(20576,5),(20584,5),(20594,5),(20615,5),(20618,5),(20620,5),(20637,5),(20642,5),(20643,5),(20645,5),(20650,5),(20655,5),(20656,5),(20658,5),(20666,5),(20667,5),(20671,5),(20691,5),(20693,5),(20696,5),(20699,5),(20701,5),(20706,5),(20708,5),(20713,5),(20714,5),(20717,5),(20744,5),(20747,5),(20750,5),(20757,5),(20759,5),(20760,5),(20761,5),(20766,5),(20775,5),(20789,5),(20797,5),(20798,5),(20813,5),(20814,5),(20815,5),(20822,5),(20828,5),(20833,5),(20842,5),(20850,5),(20855,5),(20860,5),(20863,5),(20864,5),(20865,5),(20867,5),(20880,5),(20887,5),(20891,5),(20902,5),(20923,5),(20924,5),(20940,5),(20943,5),(20944,5),(20946,5),(20949,5),(20954,5),(20963,5),(20967,5),(20969,5),(20974,5),(20978,5),(20993,5),(20995,5),(21005,5),(21007,5),(21008,5),(21016,5),(21026,5),(21031,5),(21047,5),(21048,5),(21051,5),(21056,5),(21062,5),(21078,5),(21079,5),(21084,5),(21087,5),(21089,5),(21093,5),(21096,5),(21100,5),(21102,5),(21128,5),(21132,5),(21135,5),(21137,5),(21140,5),(21145,5),(21147,5),(21157,5),(21158,5),(21163,5),(21175,5),(21178,5),(21179,5),(21180,5),(21187,5),(21189,5),(21200,5),(21204,5),(21226,5),(21228,5),(21245,5),(21246,5),(21255,5),(21257,5),(21263,5),(21271,5),(21279,5),(21281,5),(21290,5),(21292,5),(21301,5),(21308,5),(21310,5),(21316,5),(21325,5),(21331,5),(21336,5),(21339,5),(21347,5),(21350,5),(21356,5),(21358,5),(21362,5),(21366,5),(21376,5),(21380,5),(21384,5),(21395,5),(21397,5),(21410,5),(21418,5),(21427,5),(21444,5),(21445,5),(21449,5),(21452,5),(21460,5),(21471,5),(21472,5),(21475,5),(21476,5),(21483,5),(21486,5),(21487,5),(21492,5),(21506,5),(21507,5),(21510,5),(21511,5),(21516,5),(21531,5),(21533,5),(21537,5),(21547,5),(21548,5),(21549,5),(21558,5),(21563,5),(21568,5),(21572,5),(21580,5),(21584,5),(21588,5),(21591,5),(21608,5),(21610,5),(21628,5),(21644,5),(21645,5),(21647,5),(21650,5),(21654,5),(21664,5),(21668,5),(21670,5),(21674,5),(21684,5),(21693,5),(21695,5),(21700,5),(21704,5),(21705,5),(21712,5),(21713,5),(21719,5),(21726,5),(21727,5),(21736,5),(21738,5),(21739,5),(21749,5),(21766,5),(21774,5),(21775,5),(21776,5),(21784,5),(21799,5),(21802,5),(21803,5),(21804,5),(21826,5),(21831,5),(21838,5),(21846,5),(21860,5),(21869,5),(21870,5),(21875,5),(21878,5),(21881,5),(21893,5),(21898,5),(21899,5),(21911,5),(21913,5),(21920,5),(21923,5),(21931,5),(21937,5),(21944,5),(21951,5),(21953,5),(21954,5),(21966,5),(21979,5),(21989,5),(21993,5),(21994,5),(22020,5),(22035,5),(22064,5),(22073,5),(22075,5),(22076,5),(22086,5),(22091,5),(22092,5),(22093,5),(22095,5),(22102,5),(22112,5),(22122,5),(22130,5),(22134,5),(22135,5),(22138,5),(22148,5),(22160,5),(22164,5),(22166,5),(22174,5),(22175,5),(22176,5),(22185,5),(22190,5),(22195,5),(22198,5),(22202,5),(22211,5),(22212,5),(22213,5),(22214,5),(22227,5),(22231,5),(22238,5),(22245,5),(22252,5),(22256,5),(22274,5),(22275,5),(22280,5),(22286,5),(22289,5),(22297,5),(22298,5),(22303,5),(22308,5),(22319,5),(22321,5),(22326,5),(22336,5),(22359,5),(22360,5),(22392,5),(22398,5),(22403,5),(22409,5),(22417,5),(22418,5),(22420,5),(22433,5),(22436,5),(22442,5),(22443,5),(22448,5),(22462,5),(22465,5),(22471,5),(22478,5),(22492,5),(22494,5),(22500,5),(22516,5),(22528,5),(22530,5),(22534,5),(22539,5),(22542,5),(22544,5),(22559,5),(22569,5),(22571,5),(22590,5),(22591,5),(22592,5),(22594,5),(22595,5),(22597,5),(22605,5),(22613,5),(22616,5),(22624,5),(22633,5),(22640,5),(22655,5),(22659,5),(22663,5),(22664,5),(22666,5),(22673,5),(22674,5),(22676,5),(22688,5),(22695,5),(22697,5),(22698,5),(22700,5),(22707,5),(22709,5),(22715,5),(22720,5),(22727,5),(22729,5),(22731,5),(22732,5),(22737,5),(22743,5),(22745,5),(22747,5),(22748,5),(22751,5),(22762,5),(22764,5),(22783,5),(22789,5),(22793,5),(22794,5),(22811,5),(22819,5),(22827,5),(22829,5),(22830,5),(22835,5),(22842,5),(22847,5),(22848,5),(22849,5),(22851,5),(22855,5),(22857,5),(22860,5),(22873,5),(22874,5),(22876,5),(22885,5),(22890,5),(22893,5),(22894,5),(22899,5),(22906,5),(22909,5),(22920,5),(22930,5),(22936,5),(22937,5),(22942,5),(22945,5),(22955,5),(22960,5),(22977,5),(22982,5),(22984,5),(22986,5),(22994,5),(22996,5),(23001,5),(23007,5),(23025,5),(23029,5),(23046,5),(23049,5),(23064,5),(23066,5),(23069,5),(23071,5),(23078,5),(23091,5),(23097,5),(23114,5),(23115,5),(23118,5),(23122,5),(23124,5),(23143,5),(23148,5),(23156,5),(23159,5),(23161,5),(23163,5),(23166,5),(23167,5),(23169,5),(23178,5),(23179,5),(23182,5),(23183,5),(23184,5),(23196,5),(23203,5),(23212,5),(23214,5),(23218,5),(23224,5),(23226,5),(23234,5),(23239,5),(23240,5),(23241,5),(23245,5),(23276,5),(23277,5),(23282,5),(23289,5),(23290,5),(23299,5),(23301,5),(23305,5),(23308,5),(23312,5),(23339,5),(23340,5),(23344,5),(23346,5),(23349,5),(23350,5),(23355,5),(23357,5),(23361,5),(23362,5),(23365,5),(23373,5),(23378,5),(23379,5),(23384,5),(23388,5),(23397,5),(23418,5),(23423,5),(23432,5),(23435,5),(23437,5),(23470,5),(23471,5),(23482,5),(23494,5),(23497,5),(23502,5),(23512,5),(23515,5),(23524,5),(23538,5),(23539,5),(23542,5),(23556,5),(23559,5),(23566,5),(23568,5),(23572,5),(23576,5),(23578,5),(23580,5),(23582,5),(23585,5),(23599,5),(23602,5),(23607,5),(23614,5),(23619,5),(23620,5),(23623,5),(23634,5),(23647,5),(23648,5),(23649,5),(23652,5),(23654,5),(23655,5),(23680,5),(23683,5),(23689,5),(23693,5),(23695,5),(23696,5),(23697,5),(23699,5),(23703,5),(23704,5),(23705,5),(23714,5),(23723,5),(23732,5),(23736,5),(23742,5),(23744,5),(23745,5),(23748,5),(23753,5),(23762,5),(23764,5),(23775,5),(23776,5),(23778,5),(23787,5),(23788,5),(23790,5),(23799,5),(23807,5),(23818,5),(23820,5),(23821,5),(23826,5),(23828,5),(23842,5),(23843,5),(23846,5),(23848,5),(23852,5),(23854,5),(23855,5),(23860,5),(23866,5),(23869,5),(23870,5),(23874,5),(23897,5),(23898,5),(23905,5),(23916,5),(23918,5),(23925,5),(23929,5),(23930,5),(23938,5),(23952,5),(23956,5),(23963,5),(23967,5),(23971,5),(23975,5),(23976,5),(23980,5),(23988,5),(23996,5),(23998,5),(24006,5),(24009,5),(24012,5),(24020,5),(24022,5),(24023,5),(24032,5),(24040,5),(24047,5),(24049,5),(24054,5),(24058,5),(24064,5),(24073,5),(24075,5),(24077,5),(24085,5),(24091,5),(24097,5),(24098,5),(24101,5),(24104,5),(24117,5),(24128,5),(24130,5),(24132,5),(24138,5),(24139,5),(24143,5),(24145,5),(24151,5),(24155,5),(24165,5),(24168,5),(24172,5),(24199,5),(24203,5),(24211,5),(24249,5),(24265,5),(24267,5),(24282,5),(24290,5),(24294,5),(24299,5),(24308,5),(24311,5),(24319,5),(24323,5),(24334,5),(24343,5),(24361,5),(24362,5),(24371,5),(24374,5),(24398,5),(24402,5),(24409,5),(24410,5),(24411,5),(24413,5),(24415,5),(24421,5),(24423,5),(24428,5),(24429,5),(24434,5),(24442,5),(24443,5),(24450,5),(24453,5),(24466,5),(24470,5),(24477,5),(24485,5),(24486,5),(24495,5),(24497,5),(24500,5),(24502,5),(24518,5),(24521,5),(24526,5),(24528,5),(24531,5),(24546,5),(24547,5),(24554,5),(24559,5),(24568,5),(24578,5),(24585,5),(24593,5),(24596,5),(24612,5),(24618,5),(24619,5),(24622,5),(24625,5),(24634,5),(24636,5),(24642,5),(24645,5),(24650,5),(24658,5),(24659,5),(24660,5),(24678,5),(24685,5),(24696,5),(24699,5),(24700,5),(24705,5),(24715,5),(24716,5),(24722,5),(24727,5),(24742,5),(24748,5),(24754,5),(24790,5),(24792,5),(24793,5),(24799,5),(24812,5),(24813,5),(24823,5),(24831,5),(24838,5),(24839,5),(24845,5),(24866,5),(24874,5),(24878,5),(24884,5),(24888,5),(24894,5),(24898,5),(24910,5),(24913,5),(24918,5),(24931,5),(24950,5),(24951,5),(24955,5),(24968,5),(24972,5),(24976,5),(24980,5),(24982,5),(24987,5),(24990,5),(24992,5),(25007,5),(25016,5),(25018,5),(25025,5),(25027,5),(25029,5),(25032,5),(25047,5),(25050,5),(25057,5),(25070,5),(25071,5),(25073,5),(25078,5),(25080,5),(25086,5),(25088,5),(25095,5),(25113,5),(25118,5),(25120,5),(25121,5),(25135,5),(25139,5),(25142,5),(25144,5),(25148,5),(25151,5),(25153,5),(25157,5),(25167,5),(25173,5),(25180,5),(25193,5),(25199,5),(25205,5),(25208,5),(25225,5),(25230,5),(25234,5),(25239,5),(25252,5),(25258,5),(25259,5),(25260,5),(25264,5),(25276,5),(25282,5),(25289,5),(25296,5),(25307,5),(25309,5),(25310,5),(25312,5),(25313,5),(25316,5),(25318,5),(25327,5),(25336,5),(25352,5),(25362,5),(25363,5),(25367,5),(25368,5),(25373,5),(25374,5),(25381,5),(25382,5),(25383,5),(25396,5),(25402,5),(25412,5),(25428,5),(25434,5),(25436,5),(25444,5),(25446,5),(25456,5),(25461,5),(25466,5),(25467,5),(25468,5),(25475,5),(25483,5),(25491,5),(25496,5),(25504,5),(25508,5),(25521,5),(25525,5),(25532,5),(25539,5),(25544,5),(25552,5),(25553,5),(25560,5),(25581,5),(25585,5),(25596,5),(25597,5),(25600,5),(25608,5),(25638,5),(25654,5),(25667,5),(25677,5),(25686,5),(25689,5),(25693,5),(25697,5),(25712,5),(25713,5),(25726,5),(25729,5),(25739,5),(25740,5),(25749,5),(25752,5),(25757,5),(25760,5),(25768,5),(25770,5),(25777,5),(25782,5),(25786,5),(25800,5),(25814,5),(25831,5),(25840,5),(25858,5),(25862,5),(25867,5),(25868,5),(25872,5),(25877,5),(25878,5),(25879,5),(25894,5),(25898,5),(25911,5),(25920,5),(25923,5),(25930,5),(25931,5),(25932,5),(25941,5),(25944,5),(25945,5),(25947,5),(25956,5),(25971,5),(25976,5),(25983,5),(25984,5),(25985,5),(25993,5),(25998,5),(26015,5),(26020,5),(26024,5),(26025,5),(26035,5),(26046,5),(26047,5),(26049,5),(26071,5),(26072,5),(26074,5),(26078,5),(26082,5),(26085,5),(26089,5),(26102,5),(26106,5),(26107,5),(26110,5),(26111,5),(26113,5),(26115,5),(26119,5),(26127,5),(26128,5),(26130,5),(26134,5),(26140,5),(26141,5),(26142,5),(26158,5),(26178,5),(26190,5),(26191,5),(26199,5),(26204,5),(26212,5),(26225,5),(26233,5),(26242,5),(26253,5),(26255,5),(26269,5),(26272,5),(26285,5),(26288,5),(26292,5),(26299,5),(26305,5),(26313,5),(26314,5),(26317,5),(26326,5),(26331,5),(26337,5),(26340,5),(26342,5),(26344,5),(26358,5),(26382,5),(26384,5),(26411,5),(26418,5),(26429,5),(26453,5),(26458,5),(26464,5),(26468,5),(26469,5),(26471,5),(26477,5),(26484,5),(26494,5),(26499,5),(26524,5),(26526,5),(26541,5),(26545,5),(26549,5),(26552,5),(26562,5),(26567,5),(26573,5),(26580,5),(26581,5),(26583,5),(26584,5),(26595,5),(26597,5),(26606,5),(26616,5),(26620,5),(26625,5),(26627,5),(26630,5),(26647,5),(26650,5),(26653,5),(26658,5),(26660,5),(26665,5),(26693,5),(26696,5),(26697,5),(26700,5),(26709,5),(26710,5),(26726,5),(26728,5),(26732,5),(26737,5),(26742,5),(26744,5),(26749,5),(26770,5),(26776,5),(26782,5),(26800,5),(26801,5),(26803,5),(26806,5),(26807,5),(26809,5),(26810,5),(26816,5),(26821,5),(26834,5),(26835,5),(26841,5),(26842,5),(26856,5),(26861,5),(26865,5),(26872,5),(26875,5),(26876,5),(26885,5),(26886,5),(26894,5),(26898,5),(26909,5),(26919,5),(26923,5),(26926,5),(26938,5),(26943,5),(26950,5),(26952,5),(26965,5),(26966,5),(26977,5),(26982,5),(26990,5),(27014,5),(27015,5),(27016,5),(27019,5),(27028,5),(27030,5),(27034,5),(27050,5),(27051,5),(27054,5),(27059,5),(27062,5),(27072,5),(27081,5),(27094,5),(27096,5),(27105,5),(27110,5),(27111,5),(27114,5),(27123,5),(27124,5),(27133,5),(27144,5),(27153,5),(27159,5),(27165,5),(27167,5),(27168,5),(27179,5),(27182,5),(27191,5),(27194,5),(27197,5),(27207,5),(27222,5),(27232,5),(27256,5),(27259,5),(27260,5),(27266,5),(27270,5),(27275,5),(27277,5),(27279,5),(27287,5),(27288,5),(27289,5),(27299,5),(27301,5),(27304,5),(27308,5),(27309,5),(27310,5),(27322,5),(27323,5),(27325,5),(27336,5),(27347,5),(27360,5),(27363,5),(27367,5),(27371,5),(27373,5),(27387,5),(27394,5),(27401,5),(27403,5),(27411,5),(27440,5),(27442,5),(27448,5),(27453,5),(27458,5),(27462,5),(27468,5),(27473,5),(27487,5),(27491,5),(27504,5),(27509,5),(27511,5),(27531,5),(27534,5),(27535,5),(27538,5),(27548,5),(27558,5),(27566,5),(27568,5),(27570,5),(27591,5),(27594,5),(27600,5),(27608,5),(27618,5),(27627,5),(27656,5),(27658,5),(27673,5),(27678,5),(27686,5),(27689,5),(27690,5),(27695,5),(27696,5),(27699,5),(27700,5),(27704,5),(27706,5),(27707,5),(27709,5),(27716,5),(27719,5),(27726,5),(27731,5),(27732,5),(27742,5),(27754,5),(27759,5),(27768,5),(27770,5),(27779,5),(27787,5),(27791,5),(27794,5),(27798,5),(27800,5),(27807,5),(27808,5),(27813,5),(27816,5),(27819,5),(27823,5),(27825,5),(27828,5),(27829,5),(27831,5),(27832,5),(27835,5),(27841,5),(27849,5),(27853,5),(27863,5),(27872,5),(27877,5),(27882,5),(27888,5),(27889,5),(27890,5),(27893,5),(27911,5),(27912,5),(27913,5),(27916,5),(27921,5),(27923,5),(27932,5),(27934,5),(27936,5),(27940,5),(27941,5),(27947,5),(27952,5),(27954,5),(27962,5),(27969,5),(27985,5),(27988,5),(27994,5),(28005,5),(28012,5),(28025,5),(28026,5),(28034,5),(28038,5),(28047,5),(28058,5),(28068,5),(28069,5),(28082,5),(28084,5),(28090,5),(28097,5),(28110,5),(28114,5),(28118,5),(28149,5),(28151,5),(28152,5),(28154,5),(28160,5),(28161,5),(28165,5),(28167,5),(28169,5),(28177,5),(28190,5),(28205,5),(28208,5),(28214,5),(28241,5),(28244,5),(28267,5),(28270,5),(28271,5),(28272,5),(28278,5),(28285,5),(28286,5),(28289,5),(28290,5),(28302,5),(28305,5),(28311,5),(28313,5),(28314,5),(28317,5),(28318,5),(28326,5),(28335,5),(28336,5),(28356,5),(28365,5),(28371,5),(28375,5),(28376,5),(28383,5),(28385,5),(28389,5),(28390,5),(28391,5),(28393,5),(28406,5),(28411,5),(28412,5),(28417,5),(28420,5),(28423,5),(28424,5),(28426,5),(28437,5),(28438,5),(28442,5),(28451,5),(28452,5),(28453,5),(28458,5),(28459,5),(28462,5),(28466,5),(28468,5),(28470,5),(28472,5),(28475,5),(28476,5),(28478,5),(28481,5),(28486,5),(28491,5),(28493,5),(28496,5),(28498,5),(28504,5),(28509,5),(28514,5),(28523,5),(28532,5),(28537,5),(28546,5),(28550,5),(28551,5),(28553,5),(28555,5),(28563,5),(28565,5),(28568,5),(28569,5),(28571,5),(28572,5),(28575,5),(28586,5),(28592,5),(28598,5),(28612,5),(28616,5),(28617,5),(28633,5),(28635,5),(28639,5),(28646,5),(28659,5),(28661,5),(28662,5),(28664,5),(28668,5),(28671,5),(28673,5),(28677,5),(28681,5),(28694,5),(28698,5),(28701,5),(28705,5),(28711,5),(28716,5),(28732,5),(28733,5),(28739,5),(28742,5),(28743,5),(28756,5),(28764,5),(28768,5),(28770,5),(28773,5),(28775,5),(28786,5),(28792,5),(28795,5),(28802,5),(28804,5),(28812,5),(28814,5),(28848,5),(28859,5),(28860,5),(28862,5),(28875,5),(28889,5),(28894,5),(28896,5),(28900,5),(28904,5),(28907,5),(28909,5),(28911,5),(28917,5),(28922,5),(28925,5),(28926,5),(28927,5),(28930,5),(28932,5),(28935,5),(28936,5),(28938,5),(28947,5),(28955,5),(28958,5),(28966,5),(28980,5),(28987,5),(29005,5),(29010,5),(29016,5),(29019,5),(29030,5),(29036,5),(29051,5),(29057,5),(29069,5),(29083,5),(29088,5),(29093,5),(29111,5),(29126,5),(29128,5),(29129,5),(29130,5),(29131,5),(29133,5),(29137,5),(29143,5),(29146,5),(29151,5),(29158,5),(29159,5),(29172,5),(29175,5),(29178,5),(29185,5),(29194,5),(29213,5),(29225,5),(29226,5),(29230,5),(29237,5),(29242,5),(29250,5),(29253,5),(29269,5),(29272,5),(29276,5),(29285,5),(29287,5),(29292,5),(29297,5),(29315,5),(29319,5),(29323,5),(29336,5),(29340,5),(29342,5),(29364,5),(29365,5),(29370,5),(29380,5),(29382,5),(29388,5),(29400,5),(29401,5),(29404,5),(29405,5),(29420,5),(29421,5),(29428,5),(29431,5),(29436,5),(29438,5),(29440,5),(29441,5),(29442,5),(29446,5),(29454,5),(29470,5),(29481,5),(29484,5),(29488,5),(29493,5),(29500,5),(29518,5),(29522,5),(29527,5),(29530,5),(29536,5),(29543,5),(29545,5),(29549,5),(29552,5),(29554,5),(29560,5),(29561,5),(29570,5),(29572,5),(29573,5),(29574,5),(29575,5),(29578,5),(29580,5),(29585,5),(29588,5),(29600,5),(29608,5),(29609,5),(29612,5),(29633,5),(29637,5),(29642,5),(29643,5),(29647,5),(29648,5),(29655,5),(29664,5),(29665,5),(29668,5),(29669,5),(29670,5),(29671,5),(29675,5),(29681,5),(29687,5),(29688,5),(29693,5),(29703,5),(29706,5),(29708,5),(29715,5),(29724,5),(29728,5),(29732,5),(29749,5),(29760,5),(29761,5),(29763,5),(29765,5),(29766,5),(29768,5),(29772,5),(29775,5),(29784,5),(29788,5),(29792,5),(29801,5),(29805,5),(29811,5),(29818,5),(29863,5),(29871,5),(29883,5),(29891,5),(29902,5),(29905,5),(29908,5),(29911,5),(29914,5),(29915,5),(29921,5),(29937,5),(29962,5),(29968,5),(29979,5),(29982,5),(29984,5),(30019,5),(30021,5),(30022,5),(30023,5),(30026,5),(30028,5),(30029,5),(30045,5),(30049,5),(30069,5),(30079,5),(30085,5),(30094,5),(30102,5),(30112,5),(30113,5),(30115,5),(30121,5),(30122,5),(30123,5),(30124,5),(30129,5),(30131,5),(30147,5),(30151,5),(30153,5),(30154,5),(30160,5),(30161,5),(30162,5),(30164,5),(30167,5),(30168,5),(30176,5),(30197,5),(30198,5),(30201,5),(30203,5),(30207,5),(30211,5),(30212,5),(30220,5),(30228,5),(30231,5),(30233,5),(30237,5),(30240,5),(30249,5),(30260,5),(30264,5),(30267,5),(30268,5),(30269,5),(30276,5),(30277,5),(30294,5),(30316,5),(30324,5),(30326,5),(30327,5),(30328,5),(30339,5),(30347,5),(30349,5),(30357,5),(30374,5),(30378,5),(30385,5),(30407,5),(30413,5),(30418,5),(30427,5),(30429,5),(30437,5),(30441,5),(30454,5),(30461,5),(30462,5),(30463,5),(30475,5),(30477,5),(30485,5),(30503,5),(30512,5),(30513,5),(30519,5),(30520,5),(30528,5),(30533,5),(30534,5),(30535,5),(30545,5),(30546,5),(30569,5),(30582,5),(30583,5),(30587,5),(30592,5),(30596,5),(30615,5),(30617,5),(30635,5),(30636,5),(30641,5),(30643,5),(30644,5),(30648,5),(30649,5),(30656,5),(30668,5),(30689,5),(30710,5),(30714,5),(30717,5),(30720,5),(30721,5),(30725,5),(30727,5),(30748,5),(30751,5),(30758,5),(30763,5),(30765,5),(30769,5),(30774,5),(30784,5),(30797,5),(30801,5),(30805,5),(30812,5),(30821,5),(30822,5),(30833,5),(30834,5),(30840,5),(30841,5),(30875,5),(30877,5),(30879,5),(30884,5),(30886,5),(30895,5),(30900,5),(30913,5),(30916,5),(30925,5),(30936,5),(30945,5),(30962,5),(30991,5),(30992,5),(31012,5),(31029,5),(31036,5),(31041,5),(31065,5),(31073,5),(31074,5),(31086,5),(31087,5),(31091,5),(31093,5),(31101,5),(31102,5),(31116,5),(31124,5),(31130,5),(31131,5),(31147,5),(31154,5),(31175,5),(31186,5),(31187,5),(31193,5),(31198,5),(31207,5),(31208,5),(31218,5),(31220,5),(31225,5),(31231,5),(31233,5),(31243,5),(31247,5),(31254,5),(31255,5),(31259,5),(31267,5),(31290,5),(31301,5),(31304,5),(31306,5),(31312,5),(31318,5),(31319,5),(31328,5),(31333,5),(31348,5),(31349,5),(31361,5),(31369,5),(31372,5),(31374,5),(31375,5),(31377,5),(31382,5),(31386,5),(31388,5),(31395,5),(31412,5),(31414,5),(31422,5),(31425,5),(31431,5),(31433,5),(31438,5),(31464,5),(31467,5),(31472,5),(31486,5),(31489,5),(31498,5),(31508,5),(31520,5),(31544,5),(31545,5),(31548,5),(31551,5),(31552,5),(31564,5),(31565,5),(31574,5),(31577,5),(31579,5),(31582,5),(31586,5),(31587,5),(31596,5),(31603,5),(31604,5),(31621,5),(31629,5),(31631,5),(31636,5),(31637,5),(31638,5),(31643,5),(31644,5),(31647,5),(31662,5),(31676,5),(31677,5),(31686,5),(31689,5),(31699,5),(31709,5),(31716,5),(31724,5),(31731,5),(31743,5),(31748,5),(31754,5),(31761,5),(31771,5),(31777,5),(31779,5),(31786,5),(31788,5),(31799,5),(31803,5),(31808,5),(31819,5),(31828,5),(31832,5),(31836,5),(31838,5),(31843,5),(31851,5),(31852,5),(31855,5),(31857,5),(31858,5),(31881,5),(31882,5),(31884,5),(31886,5),(31896,5),(31905,5),(31906,5),(31911,5),(31931,5),(31932,5),(31936,5),(31937,5),(31947,5),(31954,5),(31960,5),(31969,5),(31979,5),(31983,5),(31985,5),(31993,5),(32008,5),(32013,5),(32022,5),(32027,5),(32030,5),(32041,5),(32044,5),(32054,5),(32060,5),(32061,5),(32064,5),(32068,5),(32072,5),(32073,5),(32075,5),(32078,5),(32104,5),(32116,5),(32125,5),(32126,5),(32132,5),(32137,5),(32140,5),(32148,5),(32151,5),(32165,5),(32168,5),(32170,5),(32172,5),(32182,5),(32191,5),(32192,5),(32198,5),(32201,5),(32203,5),(32220,5),(32221,5),(32223,5),(32224,5),(32233,5),(32236,5),(32249,5),(32259,5),(32263,5),(32281,5),(32289,5),(32296,5),(32307,5),(32308,5),(32311,5),(32314,5),(32320,5),(32321,5),(32323,5),(32330,5),(32346,5),(32347,5),(32353,5),(32354,5),(32356,5),(32364,5),(32365,5),(32372,5),(32392,5),(32394,5),(32400,5),(32404,5),(32428,5),(32440,5),(32448,5),(32450,5),(32458,5),(32464,5),(32465,5),(32466,5),(32468,5),(32479,5),(32499,5),(32501,5),(32506,5),(32510,5),(32514,5),(32516,5),(32525,5),(32543,5),(32551,5),(32555,5),(32564,5),(32566,5),(32569,5),(32571,5),(32573,5),(32579,5),(32585,5),(32586,5),(32594,5),(32628,5),(32632,5),(32633,5),(32634,5),(32639,5),(32641,5),(32643,5),(32649,5),(32654,5),(32655,5),(32660,5),(32662,5),(32671,5),(32686,5),(32692,5),(32694,5),(32696,5),(32705,5),(32715,5),(32722,5),(32726,5),(32728,5),(32736,5),(32740,5),(32743,5),(32748,5),(32765,5),(32772,5),(32783,5),(32795,5),(32803,5),(32804,5),(32809,5),(32811,5),(32813,5),(32829,5),(32836,5),(32844,5),(32845,5),(32849,5),(32853,5),(32867,5),(32881,5),(32883,5),(32894,5),(32901,5),(32904,5),(32912,5),(32913,5),(32919,5),(32920,5),(32923,5),(32926,5),(32930,5),(32951,5),(32961,5),(32981,5),(32986,5),(32992,5),(33002,5),(33005,5),(33010,5),(33011,5),(33023,5),(33029,5),(33037,5),(33044,5),(33045,5),(33047,5),(33053,5),(33054,5),(33066,5),(33067,5),(33070,5),(33084,5),(33085,5),(33097,5),(33098,5),(33102,5),(33117,5),(33120,5),(33133,5),(33139,5),(33144,5),(33154,5),(33157,5),(33158,5),(33161,5),(33167,5),(33170,5),(33171,5),(33174,5),(33179,5),(33195,5),(33209,5),(33211,5),(33212,5),(33215,5),(33238,5),(33252,5),(33267,5),(33272,5),(33278,5),(33299,5),(33303,5),(33304,5),(33319,5),(33320,5),(33339,5),(33340,5),(33343,5),(33346,5),(33352,5),(33362,5),(33367,5),(33368,5),(33376,5),(33381,5),(33382,5),(33388,5),(33401,5),(33415,5),(33417,5),(33419,5),(33424,5),(33428,5),(33444,5),(33445,5),(33446,5),(33463,5),(33467,5),(33486,5),(33488,5),(33495,5),(33503,5),(33510,5),(33515,5),(33516,5),(33518,5),(33527,5),(33528,5),(33534,5),(33543,5),(33544,5),(33547,5),(33555,5),(33563,5),(33568,5),(33571,5),(33573,5),(33575,5),(33585,5),(33587,5),(33588,5),(33598,5),(33606,5),(33610,5),(33620,5),(33624,5),(33625,5),(33637,5),(33645,5),(33659,5),(33668,5),(33674,5),(33676,5),(33677,5),(33678,5),(33680,5),(33682,5),(33691,5),(33695,5),(33708,5),(33710,5),(33715,5),(33716,5),(33718,5),(33719,5),(33721,5),(33722,5),(33727,5),(33729,5),(33739,5),(33751,5),(33754,5),(33763,5),(33770,5),(33774,5),(33784,5),(33785,5),(33789,5),(33793,5),(33820,5),(33825,5),(33826,5),(33828,5),(33832,5),(33838,5),(33845,5),(33846,5),(33847,5),(33848,5),(33856,5),(33871,5),(33875,5),(33881,5),(33884,5),(33893,5),(33900,5),(33903,5),(33911,5),(33913,5),(33917,5),(33936,5),(33939,5),(33958,5),(33963,5),(33964,5),(33966,5),(33982,5),(33991,5),(34003,5),(34013,5),(34014,5),(34019,5),(34021,5),(34025,5),(34027,5),(34028,5),(34029,5),(34030,5),(34034,5),(34040,5),(34043,5),(34047,5),(34049,5),(34070,5),(34093,5),(34094,5),(34099,5),(34107,5),(34115,5),(34119,5),(34125,5),(34130,5),(34135,5),(34147,5),(34156,5),(34166,5),(34181,5),(34184,5),(34187,5),(34189,5),(34190,5),(34195,5),(34200,5),(34206,5),(34207,5),(34210,5),(34213,5),(34214,5),(34216,5),(34237,5),(34239,5),(34242,5),(34255,5),(34271,5),(34272,5),(34273,5),(34274,5),(34281,5),(34283,5),(34293,5),(34298,5),(34304,5),(34305,5),(34312,5),(34315,5),(34316,5),(34323,5),(34324,5),(34326,5),(34331,5),(34333,5),(34352,5),(34354,5),(34356,5),(34359,5),(34364,5),(34372,5),(34374,5),(34375,5),(34377,5),(34380,5),(34396,5),(34410,5),(34415,5),(34417,5),(34420,5),(34428,5),(34431,5),(34443,5),(34457,5),(34464,5),(34467,5),(34473,5),(34474,5),(34487,5),(34489,5),(34500,5),(34504,5),(34505,5),(34514,5),(34520,5),(34532,5),(34537,5),(34545,5),(34559,5),(34563,5),(34567,5),(34570,5),(34573,5),(34609,5),(34613,5),(34620,5),(34631,5),(34635,5),(34641,5),(34645,5),(34648,5),(34656,5),(34663,5),(34665,5),(34668,5),(34674,5),(34678,5),(34680,5),(34683,5),(34686,5),(34693,5),(34702,5),(34705,5),(34718,5),(34727,5),(34732,5),(34739,5),(34749,5),(34760,5),(34762,5),(34767,5),(34778,5),(34781,5),(34782,5),(34793,5),(34800,5),(34806,5),(34816,5),(34820,5),(34823,5),(34828,5),(34831,5),(34834,5),(34841,5),(34844,5),(34847,5),(34851,5),(34865,5),(34867,5),(34873,5),(34874,5),(34876,5),(34879,5),(34897,5),(34899,5),(34902,5),(34909,5),(34914,5),(34920,5),(34923,5),(34924,5),(34938,5),(34945,5),(34950,5),(34957,5),(34959,5),(34963,5),(34973,5),(34974,5),(34981,5),(34984,5),(34988,5),(34989,5),(34993,5),(35011,5),(35018,5),(35031,5),(35037,5),(35041,5),(35047,5),(35053,5),(35060,5),(35067,5),(35069,5),(35072,5),(35085,5),(35086,5),(35090,5),(35099,5),(35102,5),(35114,5),(35122,5),(35131,5),(35137,5),(35142,5),(35150,5),(35171,5),(35179,5),(35191,5),(35196,5),(35209,5),(35211,5),(35216,5),(35221,5),(35230,5),(35241,5),(35243,5),(35248,5),(35251,5),(35282,5),(35283,5),(35305,5),(35332,5),(35336,5),(35344,5),(35352,5),(35356,5),(35360,5),(35364,5),(35371,5),(35372,5),(35377,5),(35379,5),(35383,5),(35385,5),(35391,5),(35404,5),(35406,5),(35413,5),(35416,5),(35422,5),(35429,5),(35434,5),(35438,5),(35444,5),(35447,5),(35457,5),(35487,5),(35488,5),(35489,5),(35493,5),(35497,5),(35509,5),(35510,5),(35522,5),(35533,5),(35535,5),(35555,5),(35561,5),(35566,5),(35568,5),(35569,5),(35575,5),(35584,5),(35586,5),(35593,5),(35598,5),(35600,5),(35601,5),(35605,5),(35609,5),(35612,5),(35615,5),(35623,5),(35629,5),(35631,5),(35641,5),(35646,5),(35649,5),(35652,5),(35677,5),(35685,5),(35688,5),(35689,5),(35691,5),(35697,5),(35722,5),(35725,5),(35735,5),(35739,5),(35746,5),(35754,5),(35757,5),(35761,5),(35765,5),(35769,5),(35775,5),(35778,5),(35788,5),(35795,5),(35799,5),(35807,5),(35812,5),(35818,5),(35834,5),(35848,5),(35865,5),(35868,5),(35870,5),(35871,5),(35876,5),(35878,5),(35892,5),(35911,5),(35923,5),(35936,5),(35943,5),(35949,5),(35956,5),(35962,5),(35964,5),(35976,5),(35983,5),(35988,5),(35990,5),(35996,5),(35997,5),(36000,5),(36006,5),(36018,5),(36022,5),(36024,5),(36025,5),(36035,5),(36038,5),(36050,5),(36052,5),(36055,5),(36060,5),(36064,5),(36077,5),(36080,5),(36085,5),(36086,5),(36089,5),(36098,5),(36100,5),(36105,5),(36110,5),(36115,5),(36116,5),(36119,5),(36121,5),(36124,5),(36125,5),(36126,5),(36128,5),(36143,5),(36148,5),(36153,5),(36172,5),(36174,5),(36177,5),(36183,5),(36184,5),(36190,5),(36202,5),(36203,5),(36205,5),(36207,5),(36219,5),(36220,5),(36221,5),(36222,5),(36254,5),(36264,5),(36265,5),(36267,5),(36269,5),(36295,5),(36298,5),(36301,5),(36307,5),(36311,5),(36314,5),(36318,5),(36335,5),(36347,5),(36349,5),(36356,5),(36359,5),(36367,5),(36385,5),(36386,5),(36389,5),(36391,5),(36394,5),(36396,5),(36399,5),(36402,5),(36407,5),(36415,5),(36417,5),(36436,5),(36443,5),(36444,5),(36453,5),(36459,5),(36461,5),(36464,5),(36465,5),(36467,5),(36468,5),(36475,5),(36478,5),(36505,5),(36507,5),(36518,5),(36538,5),(36539,5),(36544,5),(36548,5),(36549,5),(36550,5),(36552,5),(36559,5),(36560,5),(36582,5),(36589,5),(36597,5),(36598,5),(36600,5),(36601,5),(36603,5),(36608,5),(36612,5),(36622,5),(36631,5),(36639,5),(36641,5),(36661,5),(36662,5),(36671,5),(36675,5),(36683,5),(36687,5),(36688,5),(36691,5),(36694,5),(36697,5),(36704,5),(36706,5),(36731,5),(36738,5),(36756,5),(36758,5),(36770,5),(36783,5),(36796,5),(36806,5),(36808,5),(36815,5),(36839,5),(36851,5),(36853,5),(36855,5),(36860,5),(36869,5),(36885,5),(36891,5),(36902,5),(36904,5),(36920,5),(36923,5),(36924,5),(36933,5),(36936,5),(36940,5),(36941,5),(36947,5),(36949,5),(36952,5),(36957,5),(36963,5),(36970,5),(36981,5),(36993,5),(37022,5),(37025,5),(37042,5),(37045,5),(37048,5),(37055,5),(37058,5),(37060,5),(37062,5),(37066,5),(37077,5),(37081,5),(37083,5),(37093,5),(37096,5),(37113,5),(37121,5),(37122,5),(37123,5),(37127,5),(37129,5),(37136,5),(37145,5),(37147,5),(37149,5),(37150,5),(37152,5),(37155,5),(37158,5),(37163,5),(37164,5),(37166,5),(37172,5),(37174,5),(37175,5),(37176,5),(37194,5),(37201,5),(37215,5),(37216,5),(37220,5),(37235,5),(37236,5),(37240,5),(37245,5),(37246,5),(37257,5),(37260,5),(37261,5),(37263,5),(37269,5),(37270,5),(37276,5),(37287,5),(37292,5),(37297,5),(37304,5),(37309,5),(37316,5),(37318,5),(37319,5),(37326,5),(37327,5),(37343,5),(37346,5),(37362,5),(37376,5),(37386,5),(37391,5),(37403,5),(37414,5),(37416,5),(37417,5),(37418,5),(37422,5),(37424,5),(37429,5),(37433,5),(37438,5),(37455,5),(37457,5),(37462,5),(37464,5),(37472,5),(37476,5),(37486,5),(37489,5),(37493,5),(37495,5),(37499,5),(37500,5),(37503,5),(37504,5),(37511,5),(37514,5),(37519,5),(37520,5),(37522,5),(37540,5),(37546,5),(37548,5),(37549,5),(37551,5),(37559,5),(37561,5),(37563,5),(37564,5),(37568,5),(37586,5),(37597,5),(37607,5),(37619,5),(37621,5),(37640,5),(37651,5),(37664,5),(37686,5),(37687,5),(37689,5),(37695,5),(37700,5),(37710,5),(37711,5),(37712,5),(37717,5),(37732,5),(37733,5),(37737,5),(37739,5),(37740,5),(37741,5),(37742,5),(37745,5),(37749,5),(37751,5),(37753,5),(37754,5),(37757,5),(37760,5),(37766,5),(37772,5),(37776,5),(37788,5),(37790,5),(37794,5),(37796,5),(37799,5),(37809,5),(37813,5),(37825,5),(37838,5),(37841,5),(37848,5),(37855,5),(37870,5),(37874,5),(37885,5),(37888,5),(37894,5),(37898,5),(37909,5),(37911,5),(37914,5),(37920,5),(37925,5),(37927,5),(37928,5),(37929,5),(37935,5),(37939,5),(37949,5),(37950,5),(37951,5),(37954,5),(37959,5),(37960,5),(37966,5),(37971,5),(37973,5),(37977,5),(37989,5),(37998,5),(37999,5),(38001,5),(38013,5),(38035,5),(38038,5),(38042,5),(38052,5),(38057,5),(38059,5),(38073,5),(38080,5),(38091,5),(38094,5),(38105,5),(38110,5),(38114,5),(38123,5),(38130,5),(38131,5),(38136,5),(38145,5),(38151,5),(38161,5),(38167,5),(38194,5),(38196,5),(38199,5),(38200,5),(38201,5),(38204,5),(38206,5),(38207,5),(38208,5),(38211,5),(38215,5),(38226,5),(38231,5),(38239,5),(38260,5),(38269,5),(38277,5),(38278,5),(38283,5),(38284,5),(38288,5),(38299,5),(38305,5),(38314,5),(38324,5),(38331,5),(38333,5),(38339,5),(38345,5),(38353,5),(38356,5),(38384,5),(38389,5),(38390,5),(38391,5),(38399,5),(38400,5),(38411,5),(38412,5),(38417,5),(38425,5),(38437,5),(38438,5),(38446,5),(38448,5),(38456,5),(38467,5),(38478,5),(38479,5),(38488,5),(38495,5),(38506,5),(38510,5),(38514,5),(38518,5),(38538,5),(38549,5),(38555,5),(38560,5),(38569,5),(38572,5),(38573,5),(38591,5),(38599,5),(38611,5),(38631,5),(38633,5),(38634,5),(38642,5),(38653,5),(38657,5),(38662,5),(38673,5),(38694,5),(38695,5),(38698,5),(38704,5),(38707,5),(38709,5),(38710,5),(38711,5),(38715,5),(38716,5),(38731,5),(38734,5),(38751,5),(38754,5),(38757,5),(38761,5),(38762,5),(38767,5),(38771,5),(38774,5),(38782,5),(38798,5),(38803,5),(38813,5),(38837,5),(38845,5),(38850,5),(38865,5),(38872,5),(38877,5),(38886,5),(38896,5),(38899,5),(38902,5),(38904,5),(38905,5),(38911,5),(38913,5),(38915,5),(38929,5),(38931,5),(38949,5),(38951,5),(38959,5),(38963,5),(38970,5),(38988,5),(38990,5),(38996,5),(39007,5),(39012,5),(39020,5),(39027,5),(39039,5),(39044,5),(39046,5),(39051,5),(39062,5),(39064,5),(39096,5),(39097,5),(39101,5),(39115,5),(39120,5),(39156,5),(39158,5),(39161,5),(39170,5),(39173,5),(39174,5),(39177,5),(39189,5),(39191,5),(39196,5),(39206,5),(39225,5),(39228,5),(39230,5),(39231,5),(39241,5),(39245,5),(39246,5),(39256,5),(39258,5),(39263,5),(39273,5),(39280,5),(39285,5),(39290,5),(39301,5),(39305,5),(39308,5),(39311,5),(39314,5),(39316,5),(39317,5),(39321,5),(39324,5),(39327,5),(39329,5),(39344,5),(39354,5),(39356,5),(39366,5),(39375,5),(39376,5),(39386,5),(39387,5),(39390,5),(39404,5),(39408,5),(39414,5),(39419,5),(39420,5),(39421,5),(39429,5),(39434,5),(39437,5),(39439,5),(39440,5),(39448,5),(39450,5),(39453,5),(39454,5),(39462,5),(39471,5),(39476,5),(39482,5),(39486,5),(39497,5),(39501,5),(39504,5),(39505,5),(39512,5),(39523,5),(39524,5),(39531,5),(39538,5),(39555,5),(39557,5),(39561,5),(39567,5),(39570,5),(39571,5),(39575,5),(39576,5),(39590,5),(39596,5),(39604,5),(39612,5),(39631,5),(39643,5),(39656,5),(39670,5),(39676,5),(39682,5),(39684,5),(39686,5),(39688,5),(39698,5),(39700,5),(39702,5),(39709,5),(39710,5),(39712,5),(39716,5),(39718,5),(39720,5),(39722,5),(39743,5),(39745,5),(39757,5),(39770,5),(39774,5),(39798,5),(39802,5),(39804,5),(39806,5),(39812,5),(39814,5),(39818,5),(39821,5),(39830,5),(39839,5),(39841,5),(39843,5),(39853,5),(39855,5),(39873,5),(39875,5),(39876,5),(39881,5),(39885,5),(39887,5),(39894,5),(39907,5),(39912,5),(39916,5),(39920,5),(39931,5),(39932,5),(39939,5),(39940,5),(39946,5),(39957,5),(39958,5),(39961,5),(39973,5),(39974,5),(39984,5),(39985,5),(39989,5),(39990,5),(39996,5),(39997,5),(40002,5),(40004,5),(40008,5),(40010,5),(40013,5),(40017,5),(40025,5),(40039,5),(40040,5),(40045,5),(40047,5),(40053,5),(40057,5),(40060,5),(40062,5),(40066,5),(40077,5),(40078,5),(40098,5),(40100,5),(40101,5),(40104,5),(40112,5),(40115,5),(40117,5),(40118,5),(40123,5),(40128,5),(40159,5),(40164,5),(40179,5),(40180,5),(40190,5),(40195,5),(40205,5),(40207,5),(40212,5),(40217,5),(40233,5),(40240,5),(40248,5),(40252,5),(40254,5),(40268,5),(40269,5),(40279,5),(40281,5),(40282,5),(40291,5),(40297,5),(40298,5),(40300,5),(40305,5),(40307,5),(40311,5),(40312,5),(40315,5),(40320,5),(40323,5),(40326,5),(40341,5),(40348,5),(40352,5),(40354,5),(40355,5),(40359,5),(40371,5),(40376,5),(40379,5),(40381,5),(40387,5),(40398,5),(40399,5),(40405,5),(40406,5),(40413,5),(40433,5),(40436,5),(40453,5),(40455,5),(40464,5),(40471,5),(40498,5),(40505,5),(40507,5),(40511,5),(40521,5),(40529,5),(40533,5),(40538,5),(40541,5),(40542,5),(40544,5),(40546,5),(40567,5),(40570,5),(40571,5),(40572,5),(40580,5),(40585,5),(40590,5),(40606,5),(40608,5),(40611,5),(40616,5),(40620,5),(40626,5),(40628,5),(40629,5),(40643,5),(40656,5),(40658,5),(40659,5),(40661,5),(40662,5),(40664,5),(40671,5),(40675,5),(40693,5),(40699,5),(40704,5),(40705,5),(40706,5),(40709,5),(40712,5),(40713,5),(40717,5),(40729,5),(40745,5),(40750,5),(40752,5),(40760,5),(40763,5),(40781,5),(40802,5),(40803,5),(40819,5),(40837,5),(40842,5),(40844,5),(40846,5),(40881,5),(40884,5),(40889,5),(40892,5),(40901,5),(40913,5),(40914,5),(40915,5),(40928,5),(40933,5),(40934,5),(40936,5),(40943,5),(40953,5),(40963,5),(40970,5),(40975,5),(40986,5),(40988,5),(40993,5),(40994,5),(40995,5),(40997,5),(40999,5),(41010,5),(41014,5),(41020,5),(41036,5),(41039,5),(41055,5),(41057,5),(41061,5),(41069,5),(41072,5),(41077,5),(41084,5),(41087,5),(41102,5),(41108,5),(41114,5),(41117,5),(41125,5),(41126,5),(41130,5),(41135,5),(41138,5),(41151,5),(41163,5),(41170,5),(41178,5),(41184,5),(41185,5),(41188,5),(41190,5),(41193,5),(41203,5),(41209,5),(41212,5),(41214,5),(41225,5),(41227,5),(41229,5),(41233,5),(41237,5),(41241,5),(41247,5),(41259,5),(41260,5),(41261,5),(41268,5),(41275,5),(41279,5),(41282,5),(41289,5),(41291,5),(41292,5),(41299,5),(41305,5),(41308,5),(41309,5),(41311,5),(41339,5),(41342,5),(41344,5),(41345,5),(41348,5),(41358,5),(41364,5),(41366,5),(41368,5),(41369,5),(41372,5),(41379,5),(41406,5),(41414,5),(41420,5),(41433,5),(41437,5),(41465,5),(41479,5),(41480,5),(41481,5),(41483,5),(41484,5),(41489,5),(41490,5),(41491,5),(41503,5),(41507,5),(41511,5),(41516,5),(41523,5),(41529,5),(41530,5),(41541,5),(41547,5),(41551,5),(41564,5),(41568,5),(41572,5),(41579,5),(41588,5),(41599,5),(41607,5),(41610,5),(41621,5),(41631,5),(41633,5),(41634,5),(41635,5),(41659,5),(41661,5),(41664,5),(41671,5),(41677,5),(41678,5),(41683,5),(41692,5),(41696,5),(41713,5),(41719,5),(41725,5),(41730,5),(41738,5),(41744,5),(41746,5),(41748,5),(41750,5),(41754,5),(41768,5),(41780,5),(41786,5),(41798,5),(41817,5),(41820,5),(41824,5),(41825,5),(41829,5),(41839,5),(41854,5),(41855,5),(41859,5),(41864,5),(41868,5),(41869,5),(41872,5),(41892,5),(41896,5),(41901,5),(41908,5),(41915,5),(41926,5),(41930,5),(41936,5),(41947,5),(41955,5),(41969,5),(41974,5),(41976,5),(41978,5),(41980,5),(41989,5),(41991,5),(42005,5),(42015,5),(42025,5),(42029,5),(42038,5),(42043,5),(42053,5),(42055,5),(42056,5),(42058,5),(42059,5),(42071,5),(42079,5),(42080,5),(42082,5),(42092,5),(42096,5),(42108,5),(42109,5),(42112,5),(42121,5),(42122,5),(42125,5),(42127,5),(42130,5),(42134,5),(42135,5),(42136,5),(42140,5),(42149,5),(42150,5),(42151,5),(42153,5),(42154,5),(42156,5),(42158,5),(42163,5),(42164,5),(42166,5),(42170,5),(42171,5),(42175,5),(42190,5),(42192,5),(42199,5),(42210,5),(42211,5),(42218,5),(42221,5),(42222,5),(42236,5),(42241,5),(42258,5),(42261,5),(42268,5),(42272,5),(42281,5),(42283,5),(42296,5),(42301,5),(42309,5),(42310,5),(42321,5),(42326,5),(42336,5),(42344,5),(42349,5),(42363,5),(42367,5),(42369,5),(42379,5),(42385,5),(42393,5),(42396,5),(42401,5),(42409,5),(42412,5),(42413,5),(42416,5),(42418,5),(42433,5),(42437,5),(42463,5),(42464,5),(42466,5),(42491,5),(42493,5),(42502,5),(42513,5),(42514,5),(42517,5),(42519,5),(42524,5),(42536,5),(42538,5),(42545,5),(42549,5),(42561,5),(42571,5),(42575,5),(42581,5),(42585,5),(42588,5),(42589,5),(42592,5),(42599,5),(42605,5),(42606,5),(42608,5),(42611,5),(42613,5),(42615,5),(42622,5),(42626,5),(42629,5),(42641,5),(42643,5),(42652,5),(42653,5),(42655,5),(42682,5),(42687,5),(42689,5),(42697,5),(42698,5),(42713,5),(42716,5),(42717,5),(42730,5),(42735,5),(42738,5),(42740,5),(42744,5),(42748,5),(42750,5),(42768,5),(42782,5),(42796,5),(42804,5),(42817,5),(42819,5),(42837,5),(42849,5),(42851,5),(42867,5),(42869,5),(42870,5),(42875,5),(42877,5),(42884,5),(42891,5),(42898,5),(42908,5),(42910,5),(42914,5),(42916,5),(42918,5),(42921,5),(42935,5),(42945,5),(42954,5),(42962,5),(42966,5),(42971,5),(42980,5),(42983,5),(42987,5),(42988,5),(42990,5),(43007,5),(43009,5),(43013,5),(43018,5),(43019,5),(43027,5),(43041,5),(43050,5),(43051,5),(43055,5),(43065,5),(43073,5),(43081,5),(43083,5),(43089,5),(43091,5),(43099,5),(43110,5),(43111,5),(43112,5),(43119,5),(43122,5),(43140,5),(43142,5),(43148,5),(43151,5),(43156,5),(43158,5),(43165,5),(43174,5),(43189,5),(43215,5),(43216,5),(43220,5),(43221,5),(43265,5),(43266,5),(43270,5),(43272,5),(43291,5),(43305,5),(43311,5),(43312,5),(43313,5),(43319,5),(43325,5),(43334,5),(43335,5),(43338,5),(43340,5),(43359,5),(43361,5),(43365,5),(43368,5),(43376,5),(43380,5),(43399,5),(43402,5),(43407,5),(43409,5),(43420,5),(43423,5),(43429,5),(43430,5),(43431,5),(43432,5),(43434,5),(43438,5),(43444,5),(43450,5),(43451,5),(43452,5),(43454,5),(43456,5),(43471,5),(43472,5),(43473,5),(43480,5),(43486,5),(43506,5),(43507,5),(43510,5),(43520,5),(43525,5),(43530,5),(43531,5),(43532,5),(43538,5),(43546,5),(43558,5),(43559,5),(43578,5),(43579,5),(43590,5),(43609,5),(43613,5),(43616,5),(43621,5),(43624,5),(43631,5),(43651,5),(43655,5),(43658,5),(43671,5),(43680,5),(43684,5),(43685,5),(43691,5),(43699,5),(43709,5),(43710,5),(43720,5),(43725,5),(43746,5),(43756,5),(43759,5),(43761,5),(43768,5),(43773,5),(43781,5),(43784,5),(43786,5),(43806,5),(43808,5),(43815,5),(43820,5),(43821,5),(43825,5),(43833,5),(43839,5),(43843,5),(43845,5),(43849,5),(43854,5),(43860,5),(43873,5),(43874,5),(43878,5),(43881,5),(43886,5),(43893,5),(43897,5),(43900,5),(43907,5),(43912,5),(43920,5),(43922,5),(43928,5),(43936,5),(43946,5),(43954,5),(43958,5),(43964,5),(43971,5),(43985,5),(43995,5),(44003,5),(44007,5),(44008,5),(44011,5),(44018,5),(44019,5),(44024,5),(44030,5),(44039,5),(44053,5),(44058,5),(44066,5),(44070,5),(44071,5),(44073,5),(44074,5),(44082,5),(44089,5),(44101,5),(44107,5),(44119,5),(44120,5),(44129,5),(44132,5),(44137,5),(44142,5),(44144,5),(44145,5),(44146,5),(44168,5),(44171,5),(44176,5),(44181,5),(44186,5),(44191,5),(44193,5),(44202,5),(44231,5),(44246,5),(44247,5),(44253,5),(44259,5),(44263,5),(44264,5),(44265,5),(44268,5),(44269,5),(44278,5),(44285,5),(44290,5),(44315,5),(44321,5),(44346,5),(44353,5),(44358,5),(44363,5),(44366,5),(44368,5),(44380,5),(44384,5),(44390,5),(44392,5),(44405,5),(44406,5),(44412,5),(44421,5),(44426,5),(44434,5),(44439,5),(44440,5),(44444,5),(44461,5),(44463,5),(44470,5),(44471,5),(44478,5),(44491,5),(44508,5),(44511,5),(44516,5),(44521,5),(44526,5),(44529,5),(44533,5),(44538,5),(44547,5),(44548,5),(44552,5),(44565,5),(44591,5),(44603,5),(44604,5),(44619,5),(44620,5),(44624,5),(44632,5),(44637,5),(44644,5),(44647,5),(44653,5),(44656,5),(44659,5),(44663,5),(44670,5),(44691,5),(44708,5),(44713,5),(44737,5),(44741,5),(44754,5),(44755,5),(44759,5),(44764,5),(44767,5),(44771,5),(44775,5),(44787,5),(44789,5),(44791,5),(44806,5),(44808,5),(44829,5),(44843,5),(44845,5),(44851,5),(44853,5),(44854,5),(44867,5),(44871,5),(44872,5),(44880,5),(44894,5),(44897,5),(44899,5),(44907,5),(44913,5),(44932,5),(44941,5),(44944,5),(44948,5),(44951,5),(44954,5),(44958,5),(44963,5),(44968,5),(44974,5),(44979,5),(44981,5),(45000,5),(45008,5),(45010,5),(45018,5),(45022,5),(45039,5),(45044,5),(45045,5),(45049,5),(45051,5),(45057,5),(45058,5),(45060,5),(45066,5),(45084,5),(45087,5),(45090,5),(45094,5),(45097,5),(45106,5),(45112,5),(45115,5),(45116,5),(45120,5),(45122,5),(45144,5),(45155,5),(45156,5),(45161,5),(45165,5),(45166,5),(45172,5),(45173,5),(45174,5),(45177,5),(45181,5),(45197,5),(45200,5),(45214,5),(45227,5),(45228,5),(45239,5),(45244,5),(45247,5),(45273,5),(45278,5),(45286,5),(45292,5),(45303,5),(45304,5),(45306,5),(45314,5),(45315,5),(45316,5),(45318,5),(45319,5),(45328,5),(45329,5),(45330,5),(45342,5),(45353,5),(45354,5),(45360,5),(45361,5),(45366,5),(45394,5),(45397,5),(45400,5),(45402,5),(45407,5),(45410,5),(45411,5),(45412,5),(45413,5),(45417,5),(45422,5),(45429,5),(45440,5),(45441,5),(45451,5),(45453,5),(45471,5),(45472,5),(45476,5),(45487,5),(45494,5),(45500,5),(45505,5),(45506,5),(45513,5),(45518,5),(45520,5),(45524,5),(45532,5),(45545,5),(45550,5),(45553,5),(45559,5),(45604,5),(45605,5),(45609,5),(45620,5),(45626,5),(45633,5),(45634,5),(45642,5),(45650,5),(45653,5),(45657,5),(45660,5),(45663,5),(45674,5),(45685,5),(45686,5),(45692,5),(45710,5),(45712,5),(45723,5),(45724,5),(45728,5),(45733,5),(45739,5),(45742,5),(45749,5),(45752,5),(45756,5),(45757,5),(45764,5),(45770,5),(45773,5),(45775,5),(45778,5),(45779,5),(45783,5),(45784,5),(45787,5),(45788,5),(45790,5),(45794,5),(45804,5),(45811,5),(45822,5),(45831,5),(45848,5),(45849,5),(45850,5),(45858,5),(45859,5),(45861,5),(45866,5),(45867,5),(45870,5),(45873,5),(45891,5),(45892,5),(45903,5),(45906,5),(45907,5),(45909,5),(45912,5),(45926,5),(45936,5),(45940,5),(45946,5),(45950,5),(45958,5),(45964,5),(45978,5),(45980,5),(45987,5),(45988,5),(45990,5),(45992,5),(45998,5),(46001,5),(46007,5),(46018,5),(46019,5),(46021,5),(46024,5),(46026,5),(46033,5),(46036,5),(46042,5),(46056,5),(46061,5),(46064,5),(46067,5),(46069,5),(46092,5),(46093,5),(46105,5),(46111,5),(46115,5),(46126,5),(46131,5),(46134,5),(46136,5),(46138,5),(46145,5),(46156,5),(46162,5),(46175,5),(46180,5),(46183,5),(46184,5),(46187,5),(46189,5),(46190,5),(46204,5),(46222,5),(46224,5),(46225,5),(46228,5),(46233,5),(46237,5),(46244,5),(46246,5),(46248,5),(46258,5),(46265,5),(46272,5),(46274,5),(46289,5),(46296,5),(46301,5),(46316,5),(46325,5),(46330,5),(46333,5),(46336,5),(46337,5),(46347,5),(46348,5),(46353,5),(46368,5),(46381,5),(46385,5),(46394,5),(46395,5),(46401,5),(46402,5),(46403,5),(46405,5),(46408,5),(46410,5),(46415,5),(46417,5),(46423,5),(46428,5),(46432,5),(46434,5),(46439,5),(46444,5),(46452,5),(46463,5),(46465,5),(46471,5),(46481,5),(46487,5),(46493,5),(46499,5),(46514,5),(46515,5),(46516,5),(46519,5),(46523,5),(46533,5),(46537,5),(46545,5),(46555,5),(46562,5),(46563,5),(46575,5),(46579,5),(46583,5),(46584,5),(46587,5),(46589,5),(46594,5),(46596,5),(46618,5),(46621,5),(46631,5),(46642,5),(46646,5),(46665,5),(46667,5),(46668,5),(46670,5),(46672,5),(46673,5),(46690,5),(46692,5),(46693,5),(46694,5),(46696,5),(46707,5),(46718,5),(46719,5),(46721,5),(46723,5),(46755,5),(46765,5),(46771,5),(46785,5),(46788,5),(46793,5),(46799,5),(46811,5),(46812,5),(46823,5),(46834,5),(46841,5),(46844,5),(46845,5),(46850,5),(46851,5),(46859,5),(46870,5),(46872,5),(46873,5),(46876,5),(46878,5),(46890,5),(46893,5),(46900,5),(46903,5),(46918,5),(46923,5),(46929,5),(46931,5),(46944,5),(46957,5),(46958,5),(46964,5),(46969,5),(46971,5),(46983,5),(46984,5),(46986,5),(46995,5),(47003,5),(47007,5),(47010,5),(47013,5),(47020,5),(47027,5),(47032,5),(47036,5),(47037,5),(47040,5),(47042,5),(47044,5),(47048,5),(47053,5),(47065,5),(47072,5),(47080,5),(47093,5),(47095,5),(47100,5),(47105,5),(47106,5),(47118,5),(47125,5),(47133,5),(47134,5),(47140,5),(47149,5),(47158,5),(47159,5),(47174,5),(47185,5),(47187,5),(47188,5),(47191,5),(47192,5),(47193,5),(47197,5),(47217,5),(47220,5),(47228,5),(47233,5),(47240,5),(47243,5),(47249,5),(47261,5),(47263,5),(47267,5),(47269,5),(47275,5),(47276,5),(47280,5),(47285,5),(47295,5),(47300,5),(47306,5),(47313,5),(47325,5),(47331,5),(47340,5),(47341,5),(47349,5),(47350,5),(47361,5),(47363,5),(47372,5),(47374,5),(47377,5),(47378,5),(47379,5),(47404,5),(47406,5),(47417,5),(47418,5),(47422,5),(47437,5),(47439,5),(47444,5),(47445,5),(47455,5),(47457,5),(47482,5),(47487,5),(47490,5),(47492,5),(47500,5),(47508,5),(47524,5),(47540,5),(47549,5),(47550,5),(47566,5),(47567,5),(47569,5),(47575,5),(47579,5),(47581,5),(47585,5),(47594,5),(47609,5),(47612,5),(47634,5),(47636,5),(47641,5),(47651,5),(47653,5),(47662,5),(47680,5),(47681,5),(47683,5),(47684,5),(47692,5),(47701,5),(47702,5),(47710,5),(47712,5),(47714,5),(47715,5),(47719,5),(47721,5),(47730,5),(47741,5),(47745,5),(47748,5),(47749,5),(47763,5),(47775,5),(47788,5),(47794,5),(47797,5),(47802,5),(47803,5),(47817,5),(47819,5),(47821,5),(47825,5),(47826,5),(47828,5),(47839,5),(47842,5),(47846,5),(47849,5),(47856,5),(47877,5),(47897,5),(47912,5),(47914,5),(47923,5),(47925,5),(47947,5),(47950,5),(47960,5),(47964,5),(47972,5),(47979,5),(47983,5),(47986,5),(47987,5),(47996,5),(48004,5),(48009,5),(48010,5),(48011,5),(48014,5),(48019,5),(48030,5),(48039,5),(48042,5),(48047,5),(48048,5),(48049,5),(48054,5),(48056,5),(48057,5),(48060,5),(48064,5),(48069,5),(48071,5),(48072,5),(48079,5),(48081,5),(48087,5),(48089,5),(48090,5),(48101,5),(48103,5),(48110,5),(48112,5),(48115,5),(48120,5),(48129,5),(48134,5),(48136,5),(48138,5),(48141,5),(48150,5),(48151,5),(48155,5),(48157,5),(48160,5),(48169,5),(48179,5),(48190,5),(48197,5),(48200,5),(48206,5),(48213,5),(48245,5),(48260,5),(48261,5),(48264,5),(48272,5),(48273,5),(48284,5),(48288,5),(48295,5),(48317,5),(48318,5),(48330,5),(48335,5),(48342,5),(48343,5),(48344,5),(48345,5),(48348,5),(48361,5),(48363,5),(48368,5),(48369,5),(48378,5),(48379,5),(48383,5),(48404,5),(48406,5),(48412,5),(48414,5),(48439,5),(48447,5),(48450,5),(48453,5),(48454,5),(48458,5),(48459,5),(48464,5),(48471,5),(48487,5),(48507,5),(48508,5),(48521,5),(48535,5),(48557,5),(48564,5),(48565,5),(48568,5),(48581,5),(48583,5),(48588,5),(48594,5),(48615,5),(48616,5),(48619,5),(48622,5),(48627,5),(48632,5),(48639,5),(48651,5),(48653,5),(48654,5),(48661,5),(48662,5),(48666,5),(48667,5),(48671,5),(48677,5),(48685,5),(48687,5),(48688,5),(48691,5),(48720,5),(48721,5),(48723,5),(48729,5),(48730,5),(48731,5),(48736,5),(48738,5),(48739,5),(48743,5),(48757,5),(48761,5),(48768,5),(48771,5),(48773,5),(48775,5),(48777,5),(48784,5),(48793,5),(48796,5),(48806,5),(48813,5),(48831,5),(48833,5),(48837,5),(48844,5),(48847,5),(48857,5),(48860,5),(48861,5),(48862,5),(48864,5),(48865,5),(48870,5),(48887,5),(48893,5),(48898,5),(48900,5),(48906,5),(48913,5),(48917,5),(48918,5),(48926,5),(48929,5),(48933,5),(48935,5),(48938,5),(48940,5),(48946,5),(48951,5),(48959,5),(48973,5),(48974,5),(48975,5),(48987,5),(48990,5),(49001,5),(49006,5),(49009,5),(49024,5),(49026,5),(49031,5),(49054,5),(49062,5),(49079,5),(49095,5),(49105,5),(49106,5),(49109,5),(49112,5),(49127,5),(49130,5),(49135,5),(49137,5),(49145,5),(49150,5),(49165,5),(49183,5),(49189,5),(49196,5),(49197,5),(49201,5),(49206,5),(49223,5),(49238,5),(49241,5),(49246,5),(49255,5),(49256,5),(49265,5),(49272,5),(49278,5),(49286,5),(49288,5),(49298,5),(49300,5),(49304,5),(49319,5),(49339,5),(49341,5),(49345,5),(49356,5),(49359,5),(49364,5),(49377,5),(49379,5),(49393,5),(49405,5),(49410,5),(49411,5),(49412,5),(49414,5),(49418,5),(49419,5),(49425,5),(49430,5),(49432,5),(49434,5),(49444,5),(49454,5),(49456,5),(49461,5),(49467,5),(49492,5),(49495,5),(49497,5),(49508,5),(49510,5),(49511,5),(49513,5),(49515,5),(49532,5),(49540,5),(49543,5),(49554,5),(49558,5),(49562,5),(49565,5),(49567,5),(49573,5),(49578,5),(49585,5),(49587,5),(49588,5),(49591,5),(49623,5),(49627,5),(49628,5),(49635,5),(49647,5),(49655,5),(49681,5),(49685,5),(49699,5),(49702,5),(49705,5),(49709,5),(49713,5),(49730,5),(49731,5),(49732,5),(49733,5),(49736,5),(49737,5),(49747,5),(49753,5),(49756,5),(49765,5),(49773,5),(49780,5),(49793,5),(49800,5),(49808,5),(49813,5),(49816,5),(49819,5),(49840,5),(49858,5),(49859,5),(49862,5),(49863,5),(49876,5),(49880,5),(49883,5),(49885,5),(49888,5),(49889,5),(49894,5),(49895,5),(49918,5),(49922,5),(49932,5),(49934,5),(49938,5),(49951,5),(49953,5),(49956,5),(49965,5),(49973,5),(49976,5),(49990,5),(49993,5),(50005,5),(50010,5),(50025,5),(50027,5),(50041,5),(50043,5),(50049,5),(50055,5),(50057,5),(50063,5),(50067,5),(50095,5),(50103,5),(50106,5),(50113,5),(50116,5),(50136,5),(50137,5),(50138,5),(50151,5),(50160,5),(50165,5),(50167,5),(50170,5),(50174,5),(50183,5),(50185,5),(50189,5),(50190,5),(50192,5),(50197,5),(50206,5),(50227,5),(50228,5),(50233,5),(50246,5),(50251,5),(50262,5),(50268,5),(50272,5),(50275,5),(50286,5),(50301,5),(50307,5),(50309,5),(50320,5),(50325,5),(50326,5),(50333,5),(50347,5),(50350,5),(50360,5),(50362,5),(50363,5),(50374,5),(50383,5),(50384,5),(50386,5),(50387,5),(50395,5),(50406,5),(50416,5),(50421,5),(50422,5),(50425,5),(50428,5),(50437,5),(50441,5),(50442,5),(50444,5),(50445,5),(50449,5),(50461,5),(50481,5),(50488,5),(50497,5),(50504,5),(50505,5),(50511,5),(50519,5),(50520,5),(50523,5),(50526,5),(50528,5),(50532,5),(50539,5),(50542,5),(50543,5),(50560,5),(50567,5),(50577,5),(50585,5),(50587,5),(50591,5),(50593,5),(50596,5),(50598,5),(50623,5),(50635,5),(50636,5),(50637,5),(50645,5),(50655,5),(50664,5),(50666,5),(50670,5),(50684,5),(50695,5),(50702,5),(50703,5),(50718,5),(50727,5),(50729,5),(50730,5),(50734,5),(50739,5),(50742,5),(50746,5),(50755,5),(50762,5),(50765,5),(50787,5),(50790,5),(50792,5),(50794,5),(50806,5),(50817,5),(50820,5),(50821,5),(50824,5),(50827,5),(50836,5),(50847,5),(50855,5),(50857,5),(50867,5),(50869,5),(50888,5),(50893,5),(50894,5),(50901,5),(50906,5),(50908,5),(50909,5),(50927,5),(50930,5),(50946,5),(50947,5),(50962,5),(50983,5),(50986,5),(50997,5),(51004,5),(51007,5),(51012,5),(51028,5),(51037,5),(51043,5),(51045,5),(51049,5),(51051,5),(51053,5),(51054,5),(51061,5),(51078,5),(51084,5),(51086,5),(51088,5),(51090,5),(51092,5),(51095,5),(51115,5),(51123,5),(51124,5),(51133,5),(51135,5),(51145,5),(51152,5),(51155,5),(51159,5),(51166,5),(51167,5),(51168,5),(51177,5),(51181,5),(51182,5),(51190,5),(51191,5),(51196,5),(51201,5),(51207,5),(51208,5),(51209,5),(51227,5),(51233,5),(51237,5),(51240,5),(51242,5),(51244,5),(51257,5),(51262,5),(51267,5),(51272,5),(51279,5),(51280,5),(51283,5),(51285,5),(51305,5),(51307,5),(51310,5),(51311,5),(51323,5),(51332,5),(51333,5),(51351,5),(51360,5),(51361,5),(51368,5),(51374,5),(51375,5),(51400,5),(51405,5),(51413,5),(51416,5),(51435,5),(51444,5),(51445,5),(51449,5),(51451,5),(51454,5),(51461,5),(51481,5),(51485,5),(51489,5),(51500,5),(51501,5),(51503,5),(51513,5),(51514,5),(51517,5),(51519,5),(51522,5),(51527,5),(51543,5),(51545,5),(51559,5),(51580,5),(51581,5),(51594,5),(51606,5),(51608,5),(51611,5),(51617,5),(51624,5),(51630,5),(51632,5),(51640,5),(51655,5),(51658,5),(51659,5),(51667,5),(51672,5),(51684,5),(51690,5),(51698,5),(51703,5),(51705,5),(51709,5),(51713,5),(51723,5),(51735,5),(51737,5),(51743,5),(51750,5),(51756,5),(51759,5),(51770,5),(51772,5),(51777,5),(51779,5),(51786,5),(51787,5),(51794,5),(51809,5),(51817,5),(51818,5),(51833,5),(51836,5),(51837,5),(51849,5),(51863,5),(51870,5),(51872,5),(51876,5),(51880,5),(51892,5),(51918,5),(51926,5),(51935,5),(51941,5),(51946,5),(51949,5),(51959,5),(51966,5),(51971,5),(51979,5),(51982,5),(51986,5),(51989,5),(51990,5),(51995,5),(51996,5),(52013,5),(52019,5),(52024,5),(52028,5),(52031,5),(52048,5),(52050,5),(52058,5),(52066,5),(52068,5),(52069,5),(52075,5),(52076,5),(52079,5),(52081,5),(52085,5),(52093,5),(52095,5),(52106,5),(52115,5),(52128,5),(52130,5),(52133,5),(52135,5),(52150,5),(52153,5),(52157,5),(52160,5),(52172,5),(52174,5),(52179,5),(52184,5),(52185,5),(52195,5),(52196,5),(52197,5),(52200,5),(52213,5),(52215,5),(52225,5),(52229,5),(52232,5),(52233,5),(52238,5),(52242,5),(52245,5),(52249,5),(52258,5),(52261,5),(52262,5),(52266,5),(52267,5),(52269,5),(52274,5),(52277,5),(52278,5),(52286,5),(52293,5),(52304,5),(52305,5),(52311,5),(52314,5),(52321,5),(52337,5),(52340,5),(52343,5),(52344,5),(52363,5),(52366,5),(52369,5),(52374,5),(52388,5),(52392,5),(52402,5),(52405,5),(52415,5),(52420,5),(52421,5),(52431,5),(52435,5),(52439,5),(52442,5),(52447,5),(52458,5),(52462,5),(52467,5),(52476,5),(52485,5),(52508,5),(52514,5),(52515,5),(52519,5),(52533,5),(52540,5),(52541,5),(52542,5),(52545,5),(52547,5),(52554,5),(52556,5),(52559,5),(52574,5),(52578,5),(52580,5),(52589,5),(52590,5),(52591,5),(52592,5),(52602,5),(52604,5),(52607,5),(52610,5),(52614,5),(52619,5),(52620,5),(52626,5),(52627,5),(52638,5),(52639,5),(52640,5),(52646,5),(52653,5),(52655,5),(52686,5),(52693,5),(52695,5),(52697,5),(52709,5),(52717,5),(52720,5),(52725,5),(52729,5),(52734,5),(52735,5),(52739,5),(52742,5),(52743,5),(52754,5),(52758,5),(52759,5),(52762,5),(52763,5),(52767,5),(52771,5),(52772,5),(52774,5),(52783,5),(52786,5),(52787,5),(52802,5),(52813,5),(52822,5),(52826,5),(52853,5),(52854,5),(52858,5),(52867,5),(52868,5),(52871,5),(52872,5),(52876,5),(52882,5),(52889,5),(52894,5),(52900,5),(52908,5),(52916,5),(52922,5),(52923,5),(52926,5),(52932,5),(52934,5),(52946,5),(52947,5),(52950,5),(52954,5),(52964,5),(52966,5),(52967,5),(52969,5),(52975,5),(52983,5),(52986,5),(52991,5),(53002,5),(53007,5),(53009,5),(53013,5),(53015,5),(53017,5),(53018,5),(53042,5),(53046,5),(53062,5),(53064,5),(53074,5),(53082,5),(53099,5),(53103,5),(53104,5),(53108,5),(53110,5),(53113,5),(53116,5),(53125,5),(53127,5),(53128,5),(53132,5),(53144,5),(53164,5),(53171,5),(53179,5),(53181,5),(53183,5),(53185,5),(53192,5),(53193,5),(53196,5),(53199,5),(53215,5),(53224,5),(53226,5),(53229,5),(53230,5),(53235,5),(53237,5),(53257,5),(53258,5),(53263,5),(53266,5),(53268,5),(53272,5),(53274,5),(53277,5),(53282,5),(53284,5),(53289,5),(53293,5),(53297,5),(53299,5),(53317,5),(53319,5),(53330,5),(53333,5),(53334,5),(53335,5),(53338,5),(53341,5),(53345,5),(53359,5),(53361,5),(53366,5),(53368,5),(53379,5),(53380,5),(53387,5),(53388,5),(53391,5),(53404,5),(53405,5),(53406,5),(53407,5),(53410,5),(53416,5),(53420,5),(53431,5),(53447,5),(53458,5),(53464,5),(53467,5),(53470,5),(53474,5),(53483,5),(53485,5),(53495,5),(53499,5),(53507,5),(53521,5),(53524,5),(53530,5),(53537,5),(53542,5),(53552,5),(53563,5),(53564,5),(53573,5),(53576,5),(53579,5),(53580,5),(53585,5),(53591,5),(53599,5),(53610,5),(53623,5),(53625,5),(53631,5),(53634,5),(53638,5),(53644,5),(53652,5),(53654,5),(53664,5),(53666,5),(53668,5),(53678,5),(53679,5),(53685,5),(53687,5),(53698,5),(53719,5),(53720,5),(53723,5),(53728,5),(53730,5),(53734,5),(53737,5),(53738,5),(53745,5),(53773,5),(53778,5),(53779,5),(53793,5),(53798,5),(53808,5),(53809,5),(53819,5),(53827,5),(53830,5),(53833,5),(53836,5),(53843,5),(53851,5),(53852,5),(53854,5),(53858,5),(53860,5),(53866,5),(53874,5),(53887,5),(53889,5),(53893,5),(53895,5),(53905,5),(53906,5),(53915,5),(53916,5),(53931,5),(53938,5),(53942,5),(53943,5),(53950,5),(53956,5),(53961,5),(53963,5),(53968,5),(53969,5),(53970,5),(53971,5),(53979,5),(53989,5),(54002,5),(54003,5),(54009,5),(54011,5),(54023,5),(54027,5),(54029,5),(54037,5),(54043,5),(54047,5),(54049,5),(54051,5),(54056,5),(54059,5),(54062,5),(54067,5),(54069,5),(54071,5),(54072,5),(54074,5),(54079,5),(54080,5),(54098,5),(54122,5),(54124,5),(54125,5),(54129,5),(54131,5),(54138,5),(54145,5),(54148,5),(54151,5),(54157,5),(54158,5),(54162,5),(54171,5),(54177,5),(54181,5),(54190,5),(54195,5),(54205,5),(54210,5),(54211,5),(54217,5),(54228,5),(54233,5),(54234,5),(54246,5),(54250,5),(54252,5),(54255,5),(54259,5),(54267,5),(54284,5),(54286,5),(54296,5),(54297,5),(54300,5),(54302,5),(54303,5),(54306,5),(54307,5),(54308,5),(54313,5),(54320,5),(54321,5),(54323,5),(54324,5),(54339,5),(54344,5),(54346,5),(54355,5),(54360,5),(54365,5),(54366,5),(54368,5),(54382,5),(54387,5),(54388,5),(54392,5),(54396,5),(54405,5),(54408,5),(54409,5),(54413,5),(54420,5),(54422,5),(54425,5),(54441,5),(54445,5),(54446,5),(54448,5),(54462,5),(54466,5),(54472,5),(54487,5),(54499,5),(54512,5),(54520,5),(54540,5),(54542,5),(54547,5),(54551,5),(54561,5),(54572,5),(54577,5),(54587,5),(54588,5),(54589,5),(54594,5),(54597,5),(54599,5),(54601,5),(54604,5),(54610,5),(54613,5),(54620,5),(54631,5),(54632,5),(54636,5),(54645,5),(54648,5),(54649,5),(54658,5),(54659,5),(54662,5),(54664,5),(54673,5),(54678,5),(54679,5),(54687,5),(54703,5),(54705,5),(54710,5),(54715,5),(54717,5),(54719,5),(54730,5),(54732,5),(54742,5),(54743,5),(54745,5),(54760,5),(54765,5),(54768,5),(54777,5),(54778,5),(54783,5),(54785,5),(54787,5),(54792,5),(54793,5),(54798,5),(54799,5),(54802,5),(54805,5),(54807,5),(54811,5),(54813,5),(54814,5),(54815,5),(54819,5),(54822,5),(54828,5),(54830,5),(54832,5),(54834,5),(54842,5),(54844,5),(54847,5),(54854,5),(54859,5),(54862,5),(54870,5),(54878,5),(54879,5),(54894,5),(54901,5),(54906,5),(54910,5),(54914,5),(54922,5),(54933,5),(54935,5),(54936,5),(54939,5),(54953,5),(54963,5),(54968,5),(54973,5),(54981,5),(54983,5),(54987,5),(55001,5),(55004,5),(55009,5),(55010,5),(55012,5),(55015,5),(55018,5),(55026,5),(55031,5),(55036,5),(55038,5),(55041,5),(55042,5),(55047,5),(55054,5),(55061,5),(55064,5),(55065,5),(55067,5),(55070,5),(55088,5),(55089,5),(55090,5),(55093,5),(55094,5),(55102,5),(55108,5),(55121,5),(55123,5),(55124,5),(55126,5),(55128,5),(55129,5),(55152,5),(55155,5),(55157,5),(55164,5),(55167,5),(55173,5),(55174,5),(55178,5),(55179,5),(55180,5),(55185,5),(55186,5),(55188,5),(55208,5),(55215,5),(55217,5),(55219,5),(55222,5),(55231,5),(55239,5),(55243,5),(55250,5),(55255,5),(55257,5),(55260,5),(55264,5),(55266,5),(55275,5),(55290,5),(55303,5),(55304,5),(55321,5),(55323,5),(55330,5),(55332,5),(55342,5),(55343,5),(55350,5),(55359,5),(55401,5),(55403,5),(55410,5),(55419,5),(55421,5),(55429,5),(55434,5),(55443,5),(55444,5),(55449,5),(55450,5),(55451,5),(55468,5),(55472,5),(55474,5),(55475,5),(55487,5),(55491,5),(55497,5),(55501,5),(55511,5),(55525,5),(55529,5),(55539,5),(55541,5),(55543,5),(55544,5),(55549,5),(55552,5),(55564,5),(55574,5),(55580,5),(55581,5),(55588,5),(55591,5),(55594,5),(55595,5),(55617,5),(55622,5),(55626,5),(55628,5),(55636,5),(55640,5),(55641,5),(55643,5),(55651,5),(55653,5),(55667,5),(55670,5),(55673,5),(55685,5),(55687,5),(55700,5),(55702,5),(55704,5),(55710,5),(55712,5),(55722,5),(55730,5),(55735,5),(55752,5),(55754,5),(55755,5),(55758,5),(55776,5),(55782,5),(55785,5),(55791,5),(55793,5),(55794,5),(55800,5),(55806,5),(55815,5),(55818,5),(55825,5),(55826,5),(55830,5),(55832,5),(55836,5),(55838,5),(55844,5),(55853,5),(55860,5),(55863,5),(55869,5),(55881,5),(55886,5),(55890,5),(55901,5),(55917,5),(55930,5),(55937,5),(55943,5),(55945,5),(55950,5),(55953,5),(55956,5),(55958,5),(55961,5),(55962,5),(55965,5),(55969,5),(55978,5),(55980,5),(55984,5),(55990,5),(55991,5),(55993,5),(55995,5),(56002,5),(56003,5),(56005,5),(56012,5),(56017,5),(56019,5),(56020,5),(56021,5),(56025,5),(56028,5),(56030,5),(56048,5),(56049,5),(56051,5),(56055,5),(56067,5),(56068,5),(56071,5),(56086,5),(56091,5),(56093,5),(56096,5),(56098,5),(56099,5),(56102,5),(56106,5),(56111,5),(56122,5),(56131,5),(56138,5),(56140,5),(56142,5),(56145,5),(56147,5),(56154,5),(56155,5),(56164,5),(56181,5),(56203,5),(56209,5),(56214,5),(56215,5),(56216,5),(56258,5),(56260,5),(56266,5),(56270,5),(56271,5),(56274,5),(56276,5),(56295,5),(56297,5),(56303,5),(56304,5),(56332,5),(56334,5),(56340,5),(56346,5),(56350,5),(56368,5),(56376,5),(56377,5),(56379,5),(56380,5),(56381,5),(56392,5),(56394,5),(56395,5),(56401,5),(56403,5),(56404,5),(56410,5),(56414,5),(56418,5),(56424,5),(56443,5),(56445,5),(56448,5),(56454,5),(56456,5),(56458,5),(56461,5),(56467,5),(56478,5),(56484,5),(56485,5),(56486,5),(56490,5),(56491,5),(56492,5),(56498,5),(56502,5),(56510,5),(56511,5),(56519,5),(56531,5),(56544,5),(56551,5),(56552,5),(56556,5),(56557,5),(56558,5),(56559,5),(56567,5),(56568,5),(56573,5),(56574,5),(56594,5),(56596,5),(56600,5),(56603,5),(56604,5),(56608,5),(56620,5),(56635,5),(56644,5),(56652,5),(56656,5),(56662,5),(56665,5),(56666,5),(56669,5),(56674,5),(56675,5),(56681,5),(56686,5),(56691,5),(56696,5),(56700,5),(56714,5),(56720,5),(56723,5),(56728,5),(56731,5),(56736,5),(56737,5),(56739,5),(56741,5),(56742,5),(56743,5),(56754,5),(56760,5),(56765,5),(56776,5),(56778,5),(56780,5),(56781,5),(56784,5),(56785,5),(56787,5),(56809,5),(56813,5),(56814,5),(56816,5),(56842,5),(56844,5),(56848,5),(56850,5),(56852,5),(56854,5),(56859,5),(56861,5),(56862,5),(56865,5),(56881,5),(56883,5),(56886,5),(56887,5),(56888,5),(56894,5),(56895,5),(56902,5),(56903,5),(56936,5),(56952,5),(56953,5),(56965,5),(56967,5),(56968,5),(56969,5),(56974,5),(56983,5),(56988,5),(56993,5),(56995,5),(56997,5),(57025,5),(57028,5),(57035,5),(57037,5),(57043,5),(57045,5),(57048,5),(57051,5),(57061,5),(57065,5),(57066,5),(57076,5),(57081,5),(57088,5),(57093,5),(57102,5),(57107,5),(57128,5),(57131,5),(57140,5),(57152,5),(57153,5),(57155,5),(57156,5),(57158,5),(57162,5),(57168,5),(57181,5),(57200,5),(57201,5),(57202,5),(57215,5),(57216,5),(57217,5),(57225,5),(57234,5),(57238,5),(57243,5),(57250,5),(57255,5),(57260,5),(57281,5),(57285,5),(57292,5),(57297,5),(57300,5),(57307,5),(57309,5),(57312,5),(57318,5),(57320,5),(57328,5),(57331,5),(57336,5),(57339,5),(57360,5),(57363,5),(57367,5),(57370,5),(57376,5),(57378,5),(57381,5),(57383,5),(57386,5),(57394,5),(57396,5),(57400,5),(57404,5),(57407,5),(57413,5),(57421,5),(57426,5),(57434,5),(57438,5),(57439,5),(57441,5),(57449,5),(57459,5),(57462,5),(57467,5),(57476,5),(57477,5),(57478,5),(57486,5),(57495,5),(57504,5),(57505,5),(57514,5),(57519,5),(57520,5),(57526,5),(57539,5),(57549,5),(57554,5),(57555,5),(57565,5),(57566,5),(57567,5),(57577,5),(57582,5),(57585,5),(57586,5),(57590,5),(57603,5),(57604,5),(57612,5),(57616,5),(57627,5),(57632,5),(57636,5),(57638,5),(57642,5),(57647,5),(57649,5),(57662,5),(57665,5),(57675,5),(57682,5),(57690,5),(57694,5),(57698,5),(57708,5),(57713,5),(57715,5),(57720,5),(57723,5),(57731,5),(57735,5),(57738,5),(57739,5),(57747,5),(57748,5),(57750,5),(57752,5),(57753,5),(57760,5),(57763,5),(57786,5),(57787,5),(57793,5),(57799,5),(57820,5),(57834,5),(57839,5),(57840,5),(57842,5),(57843,5),(57844,5),(57846,5),(57847,5),(57848,5),(57855,5),(57870,5),(57882,5),(57886,5),(57888,5),(57897,5),(57905,5),(57906,5),(57936,5),(57943,5),(57950,5),(57963,5),(57965,5),(57968,5),(57973,5),(57975,5),(57984,5),(57987,5),(57994,5),(57997,5),(58004,5),(58006,5),(58018,5),(58038,5),(58040,5),(58059,5),(58074,5),(58083,5),(58085,5),(58086,5),(58096,5),(58099,5),(58101,5),(58104,5),(58111,5),(58115,5),(58117,5),(58118,5),(58125,5),(58128,5),(58139,5),(58140,5),(58149,5),(58152,5),(58159,5),(58160,5),(58161,5),(58164,5),(58166,5),(58187,5),(58189,5),(58190,5),(58199,5),(58211,5),(58220,5),(58225,5),(58226,5),(58234,5),(58244,5),(58245,5),(58248,5),(58260,5),(58262,5),(58265,5),(58273,5),(58274,5),(58278,5),(58283,5),(58287,5),(58291,5),(58305,5),(58317,5),(58321,5),(58328,5),(58329,5),(58332,5),(58340,5),(58342,5),(58343,5),(58355,5),(58373,5),(58376,5),(58377,5),(58399,5),(58406,5),(58415,5),(58417,5),(58432,5),(58435,5),(58446,5),(58447,5),(58457,5),(58474,5),(58478,5),(58484,5),(58488,5),(58504,5),(58506,5),(58516,5),(58517,5),(58528,5),(58538,5),(58539,5),(58551,5),(58554,5),(58560,5),(58561,5),(58563,5),(58578,5),(58581,5),(58584,5),(58590,5),(58595,5),(58602,5),(58605,5),(58612,5),(58613,5),(58617,5),(58623,5),(58629,5),(58631,5),(58640,5),(58649,5),(58652,5),(58654,5),(58659,5),(58663,5),(58665,5),(58667,5),(58670,5),(58673,5),(58690,5),(58693,5),(58694,5),(58696,5),(58697,5),(58704,5),(58710,5),(58713,5),(58718,5),(58722,5),(58723,5),(58725,5),(58745,5),(58746,5),(58752,5),(58777,5),(58779,5),(58801,5),(58807,5),(58808,5),(58818,5),(58831,5),(58840,5),(58842,5),(58843,5),(58845,5),(58846,5),(58849,5),(58855,5),(58859,5),(58861,5),(58869,5),(58874,5),(58875,5),(58881,5),(58890,5),(58896,5),(58897,5),(58910,5),(58911,5),(58913,5),(58914,5),(58921,5),(58934,5),(58939,5),(58948,5),(58952,5),(58963,5),(58974,5),(58975,5),(58978,5),(58985,5),(58992,5),(58998,5),(59000,5),(59011,5),(59019,5),(59022,5),(59025,5),(59028,5),(59041,5),(59042,5),(59051,5),(59062,5),(59064,5),(59068,5),(59077,5),(59079,5),(59083,5),(59085,5),(59090,5),(59096,5),(59106,5),(59110,5),(59116,5),(59119,5),(59124,5),(59125,5),(59136,5),(59149,5),(59152,5),(59153,5),(59154,5),(59155,5),(59170,5),(59195,5),(59203,5),(59209,5),(59213,5),(59218,5),(59222,5),(59226,5),(59228,5),(59231,5),(59233,5),(59242,5),(59252,5),(59261,5),(59269,5),(59270,5),(59273,5),(59274,5),(59288,5),(59289,5),(59299,5),(59301,5),(59302,5),(59312,5),(59313,5),(59315,5),(59317,5),(59322,5),(59324,5),(59325,5),(59329,5),(59332,5),(59344,5),(59348,5),(59349,5),(59352,5),(59371,5),(59381,5),(59387,5),(59397,5),(59401,5),(59402,5),(59407,5),(59408,5),(59419,5),(59423,5),(59433,5),(59449,5),(59457,5),(59458,5),(59459,5),(59466,5),(59470,5),(59471,5),(59480,5),(59481,5),(59482,5),(59488,5),(59496,5),(59498,5),(59505,5),(59507,5),(59520,5),(59524,5),(59532,5),(59535,5),(59543,5),(59545,5),(59558,5),(59569,5),(59592,5),(59603,5),(59605,5),(59606,5),(59612,5),(59614,5),(59621,5),(59638,5),(59641,5),(59642,5),(59643,5),(59648,5),(59654,5),(59655,5),(59657,5),(59662,5),(59666,5),(59670,5),(59674,5),(59685,5),(59695,5),(59700,5),(59701,5),(59703,5),(59710,5),(59715,5),(59724,5),(59729,5),(59731,5),(59735,5),(59740,5),(59742,5),(59754,5),(59756,5),(59769,5),(59778,5),(59782,5),(59789,5),(59790,5),(59791,5),(59810,5),(59815,5),(59830,5),(59833,5),(59837,5),(59848,5),(59852,5),(59859,5),(59869,5),(59870,5),(59886,5),(59887,5),(59888,5),(59891,5),(59902,5),(59904,5),(59906,5),(59915,5),(59916,5),(59927,5),(59928,5),(59932,5),(59942,5),(59947,5),(59958,5),(59970,5),(59980,5),(59982,5),(59984,5),(59987,5),(59998,5),(60004,5),(60006,5),(60011,5),(60014,5),(60015,5),(60017,5),(60019,5),(60020,5),(60029,5),(60033,5),(60058,5),(60060,5),(60069,5),(60070,5),(60076,5),(60084,5),(60090,5),(60098,5),(60099,5),(60106,5),(60109,5),(60117,5),(60122,5),(60126,5),(60152,5),(60178,5),(60187,5),(60188,5),(60192,5),(60204,5),(60216,5),(60217,5),(60222,5),(60223,5),(60226,5),(60231,5),(60238,5),(60242,5),(60245,5),(60255,5),(60266,5),(60290,5),(60291,5),(60292,5),(60295,5),(60297,5),(60301,5),(60302,5),(60304,5),(60308,5),(60309,5),(60313,5),(60314,5),(60327,5),(60341,5),(60352,5),(60354,5),(60361,5),(60373,5),(60374,5),(60377,5),(60382,5),(60384,5),(60408,5),(60411,5),(60423,5),(60434,5),(60440,5),(60448,5),(60451,5),(60456,5),(60463,5),(60466,5),(60475,5),(60482,5),(60484,5),(60486,5),(60493,5),(60495,5),(60496,5),(60503,5),(60504,5),(60506,5),(60507,5),(60508,5),(60514,5),(60515,5),(60522,5),(60537,5),(60545,5),(60552,5),(60559,5),(60560,5),(60562,5),(60564,5),(60567,5),(60568,5),(60569,5),(60584,5),(60585,5),(60592,5),(60595,5),(60596,5),(60601,5),(60612,5),(60618,5),(60620,5),(60626,5),(60627,5),(60634,5),(60640,5),(60648,5),(60650,5),(60665,5),(60672,5),(60674,5),(60681,5),(60706,5),(60712,5),(60717,5),(60720,5),(60723,5),(60729,5),(60730,5),(60732,5),(60738,5),(60740,5),(60752,5),(60759,5),(60764,5),(60771,5),(60781,5),(60783,5),(60786,5),(60805,5),(60810,5),(60811,5),(60816,5),(60818,5),(60819,5),(60831,5),(60833,5),(60834,5),(60851,5),(60852,5),(60879,5),(60902,5),(60903,5),(60904,5),(60913,5),(60915,5),(60921,5),(60926,5),(60935,5),(60937,5),(60942,5),(60943,5),(60948,5),(60958,5),(60961,5),(60966,5),(60967,5),(60970,5),(60973,5),(60997,5),(61010,5),(61011,5),(61015,5),(61020,5),(61025,5),(61028,5),(61033,5),(61059,5),(61062,5),(61066,5),(61070,5),(61072,5),(61083,5),(61086,5),(61090,5),(61096,5),(61097,5),(61103,5),(61104,5),(61119,5),(61126,5),(61134,5),(61135,5),(61136,5),(61138,5),(61143,5),(61149,5),(61158,5),(61170,5),(61177,5),(61185,5),(61187,5),(61192,5),(61205,5),(61213,5),(61215,5),(61217,5),(61222,5),(61225,5),(61226,5),(61231,5),(61233,5),(61235,5),(61248,5),(61249,5),(61257,5),(61258,5),(61268,5),(61270,5),(61275,5),(61281,5),(61294,5),(61301,5),(61305,5),(61307,5),(61308,5),(61309,5),(61314,5),(61315,5),(61317,5),(61319,5),(61326,5),(61333,5),(61341,5),(61344,5),(61345,5),(61347,5),(61350,5),(61355,5),(61363,5),(61375,5),(61377,5),(61378,5),(61385,5),(61396,5),(61397,5),(61414,5),(61418,5),(61423,5),(61424,5),(61439,5),(61445,5),(61456,5),(61469,5),(61472,5),(61476,5),(61479,5),(61487,5),(61495,5),(61499,5),(61518,5),(61523,5),(61525,5),(61526,5),(61530,5),(61536,5),(61539,5),(61542,5),(61543,5),(61544,5),(61545,5),(61548,5),(61552,5),(61561,5),(61572,5),(61579,5),(61583,5),(61594,5),(61603,5),(61618,5),(61621,5),(61624,5),(61634,5),(61639,5),(61666,5),(61694,5),(61698,5),(61702,5),(61715,5),(61724,5),(61735,5),(61745,5),(61746,5),(61753,5),(61764,5),(61773,5),(61777,5),(61781,5),(61784,5),(61792,5),(61800,5),(61801,5),(61811,5),(61815,5),(61821,5),(61822,5),(61831,5),(61846,5),(61853,5),(61857,5),(61858,5),(61859,5),(61864,5),(61869,5),(61870,5),(61871,5),(61873,5),(61875,5),(61877,5),(61879,5),(61881,5),(61883,5),(61885,5),(61886,5),(61899,5),(61912,5),(61913,5),(61932,5),(61940,5),(61942,5),(61945,5),(61962,5),(61965,5),(61969,5),(61976,5),(61983,5),(61991,5),(61992,5),(61993,5),(62001,5),(62023,5),(62024,5),(62027,5),(62036,5),(62042,5),(62056,5),(62066,5),(62068,5),(62071,5),(62072,5),(62073,5),(62083,5),(62087,5),(62090,5),(62094,5),(62110,5),(62119,5),(62123,5),(62134,5),(62145,5),(62149,5),(62157,5),(62161,5),(62174,5),(62176,5),(62190,5),(62193,5),(62203,5),(62208,5),(62219,5),(62221,5),(62233,5),(62253,5),(62264,5),(62265,5),(62282,5),(62286,5),(62297,5),(62298,5),(62320,5),(62321,5),(62327,5),(62331,5),(62337,5),(62338,5),(62346,5),(62355,5),(62356,5),(62359,5),(62362,5),(62370,5),(62372,5),(62376,5),(62381,5),(62387,5),(62402,5),(62407,5),(62410,5),(62412,5),(62415,5),(62423,5),(62433,5),(62441,5),(62443,5),(62448,5),(62454,5),(62456,5),(62464,5),(62466,5),(62470,5),(62484,5),(62490,5),(62496,5),(62498,5),(62520,5),(62525,5),(62526,5),(62539,5),(62541,5),(62545,5),(62546,5),(62552,5),(62556,5),(62565,5),(62568,5),(62579,5),(62584,5),(62591,5),(62592,5),(62598,5),(62599,5),(62600,5),(62601,5),(62615,5),(62617,5),(62618,5),(62621,5),(62625,5),(62630,5),(62638,5),(62640,5),(62649,5),(62654,5),(62665,5),(62676,5),(62677,5),(62680,5),(62681,5),(62688,5),(62702,5),(62707,5),(62713,5),(62723,5),(62724,5),(62726,5),(62728,5),(62729,5),(62738,5),(62741,5),(62742,5),(62743,5),(62751,5),(62753,5),(62759,5),(62760,5),(62762,5),(62766,5),(62769,5),(62770,5),(62775,5),(62777,5),(62784,5),(62785,5),(62794,5),(62804,5),(62807,5),(62817,5),(62826,5),(62828,5),(62830,5),(62832,5),(62842,5),(62848,5),(62856,5),(62858,5),(62865,5),(62866,5),(62877,5),(62880,5),(62886,5),(62887,5),(62894,5),(62904,5),(62907,5),(62920,5),(62925,5),(62927,5),(62959,5),(62970,5),(62975,5),(62976,5),(62980,5),(62984,5),(62988,5),(62990,5),(62996,5),(63004,5),(63013,5),(63015,5),(63021,5),(63029,5),(63036,5),(63038,5),(63047,5),(63048,5),(63060,5),(63076,5),(63077,5),(63092,5),(63095,5),(63102,5),(63103,5),(63105,5),(63111,5),(63118,5),(63120,5),(63126,5),(63132,5),(63152,5),(63175,5),(63182,5),(63186,5),(63187,5),(63199,5),(63204,5),(63208,5),(63209,5),(63214,5),(63218,5),(63219,5),(63222,5),(63229,5),(63236,5),(63246,5),(63255,5),(63257,5),(63268,5),(63272,5),(63283,5),(63286,5),(63289,5),(63292,5),(63293,5),(63299,5),(63304,5),(63312,5),(63321,5),(63352,5),(63355,5),(63357,5),(63358,5),(63377,5),(63380,5),(63381,5),(63385,5),(63396,5),(63401,5),(63410,5),(63414,5),(63416,5),(63417,5),(63422,5),(63423,5),(63432,5),(63443,5),(63447,5),(63451,5),(63465,5),(63471,5),(63487,5),(63490,5),(63492,5),(63502,5),(63518,5),(63521,5),(63522,5),(63532,5),(63543,5),(63546,5),(63553,5),(63558,5),(63564,5),(63567,5),(63571,5),(63575,5),(63576,5),(63583,5),(63593,5),(63595,5),(63602,5),(63604,5),(63608,5),(63616,5),(63624,5),(63643,5),(63652,5),(63655,5),(63656,5),(63660,5),(63664,5),(63666,5),(63673,5),(63677,5),(63683,5),(63698,5),(63704,5),(63711,5),(63722,5),(63727,5),(63728,5),(63732,5),(63737,5),(63744,5),(63746,5),(63747,5),(63755,5),(63756,5),(63761,5),(63762,5),(63773,5),(63793,5),(63798,5),(63804,5),(63807,5),(63819,5),(63821,5),(63822,5),(63823,5),(63830,5),(63837,5),(63840,5),(63843,5),(63844,5),(63851,5),(63872,5),(63876,5),(63877,5),(63881,5),(63887,5),(63892,5),(63894,5),(63896,5),(63918,5),(63919,5),(63921,5),(63924,5),(63950,5),(63965,5),(63987,5),(63992,5),(64001,5),(64003,5),(64006,5),(64010,5),(64023,5),(64027,5),(64041,5),(64044,5),(64049,5),(64051,5),(64052,5),(64060,5),(64073,5),(64078,5),(64079,5),(64080,5),(64081,5),(64085,5),(64101,5),(64105,5),(64112,5),(64124,5),(64126,5),(64131,5),(64133,5),(64135,5),(64141,5),(64162,5),(64163,5),(64172,5),(64190,5),(64204,5),(64215,5),(64217,5),(64219,5),(64221,5),(64228,5),(64229,5),(64233,5),(64236,5),(64239,5),(64240,5),(64251,5),(64253,5),(64276,5),(64278,5),(64282,5),(64287,5),(64291,5),(64299,5),(64300,5),(64307,5),(64311,5),(64318,5),(64326,5),(64332,5),(64345,5),(64346,5),(64358,5),(64362,5),(64367,5),(64371,5),(64378,5),(64394,5),(64398,5),(64400,5),(64403,5),(64407,5),(64409,5),(64412,5),(64419,5),(64425,5),(64429,5),(64443,5),(64447,5),(64448,5),(64450,5),(64451,5),(64463,5),(64468,5),(64469,5),(64471,5),(64479,5),(64481,5),(64483,5),(64484,5),(64486,5),(64488,5),(64489,5),(64493,5),(64506,5),(64510,5),(64515,5),(64524,5),(64531,5),(64532,5),(64535,5),(64537,5),(64545,5),(64547,5),(64550,5),(64551,5),(64566,5),(64577,5),(64582,5),(64590,5),(64601,5),(64604,5),(64605,5),(64623,5),(64627,5),(64628,5),(64630,5),(64632,5),(64649,5),(64662,5),(64665,5),(64666,5),(64668,5),(64677,5),(64681,5),(64688,5),(64691,5),(64693,5),(64702,5),(64706,5),(64712,5),(64724,5),(64727,5),(64734,5),(64736,5),(64737,5),(64741,5),(64742,5),(64744,5),(64747,5),(64751,5),(64752,5),(64755,5),(64758,5),(64765,5),(64779,5),(64782,5),(64812,5),(64815,5),(64820,5),(64826,5),(64829,5),(64830,5),(64833,5),(64838,5),(64841,5),(64844,5),(64864,5),(64869,5),(64874,5),(64880,5),(64891,5),(64898,5),(64913,5),(64914,5),(64915,5),(64934,5),(64937,5),(64945,5),(64946,5),(64959,5),(64982,5),(64984,5),(64985,5),(64991,5),(65001,5),(65005,5),(65009,5),(65014,5),(65023,5),(65025,5),(65031,5),(65035,5),(65037,5),(65051,5),(65066,5),(65071,5),(65072,5),(65074,5),(65076,5),(65077,5),(65078,5),(65089,5),(65091,5),(65092,5),(65103,5),(65113,5),(65114,5),(65116,5),(65120,5),(65123,5),(65131,5),(65138,5),(65146,5),(65149,5),(65158,5),(65163,5),(65166,5),(65177,5),(65202,5),(65207,5),(65214,5),(65218,5),(65239,5),(65263,5),(65271,5),(65275,5),(65282,5),(65286,5),(65316,5),(65323,5),(65324,5),(65329,5),(65330,5),(65333,5),(65334,5),(65335,5),(65343,5),(65344,5),(65348,5),(65351,5),(65357,5),(65368,5),(65372,5),(65383,5),(65387,5),(65391,5),(65393,5),(65405,5),(65407,5),(65418,5),(65425,5),(65432,5),(65434,5),(65475,5),(65480,5),(65483,5),(65485,5),(65490,5),(65495,5),(65504,5),(65508,5),(65511,5),(65522,5),(65524,5),(65527,5),(65535,5),(65539,5),(65545,5),(65549,5),(65572,5),(65575,5),(65578,5),(65579,5),(65585,5),(65589,5),(65592,5),(65606,5),(65607,5),(65619,5),(65629,5),(65631,5),(65638,5),(65640,5),(65643,5),(65660,5),(65666,5),(65668,5),(65673,5),(65674,5),(65675,5),(65687,5),(65696,5),(65700,5),(65702,5),(65706,5),(65710,5),(65717,5),(65718,5),(65729,5),(65731,5),(65732,5),(65736,5),(65739,5),(65748,5),(65757,5),(65763,5),(65779,5),(65781,5),(65805,5),(65809,5),(65812,5),(65815,5),(65820,5),(65823,5),(65825,5),(65832,5),(65834,5),(65836,5),(65863,5),(65868,5),(65869,5),(65872,5),(65881,5),(65890,5),(65891,5),(65893,5),(65899,5),(65918,5),(65923,5),(65925,5),(65927,5),(65938,5),(65942,5),(65952,5),(65966,5),(65971,5),(65976,5),(65987,5),(66000,5),(66010,5),(66017,5),(66025,5),(66032,5),(66039,5),(66045,5),(66049,5),(66070,5),(66071,5),(66086,5),(66103,5),(66105,5),(66109,5),(66110,5),(66117,5),(66133,5),(66134,5),(66137,5),(66146,5),(66154,5),(66165,5),(66177,5),(66180,5),(66183,5),(66189,5),(66190,5),(66191,5),(66203,5),(66204,5),(66212,5),(66219,5),(66221,5),(66228,5),(66239,5),(66240,5),(66259,5),(66265,5),(66270,5),(66271,5),(66272,5),(66275,5),(66279,5),(66281,5),(66295,5),(66311,5),(66314,5),(66315,5),(66316,5),(66323,5),(66336,5),(66342,5),(66355,5),(66357,5),(66364,5),(66386,5),(66400,5),(66404,5),(66409,5),(66410,5),(66415,5),(66421,5),(66430,5),(66448,5),(66464,5),(66480,5),(66482,5),(66484,5),(66491,5),(66492,5),(66497,5),(66502,5),(66517,5),(66551,5),(66552,5),(66577,5),(66580,5),(66583,5),(66592,5),(66596,5),(66615,5),(66618,5),(66619,5),(66620,5),(66624,5),(66631,5),(66638,5),(66641,5),(66642,5),(66647,5),(66665,5),(66670,5),(66674,5),(66675,5),(66676,5),(66677,5),(66681,5),(66683,5),(66687,5),(66689,5),(66697,5),(66702,5),(66703,5),(66705,5),(66716,5),(66719,5),(66722,5),(66723,5),(66724,5),(66728,5),(66734,5),(66752,5),(66755,5),(66767,5),(66768,5),(66776,5),(66780,5),(66789,5),(66796,5),(66808,5),(66809,5),(66810,5),(66817,5),(66818,5),(66822,5),(66832,5),(66840,5),(66841,5),(66842,5),(66847,5),(66860,5),(66864,5),(66867,5),(66876,5),(66884,5),(66889,5),(66890,5),(66897,5),(66901,5),(66908,5),(66912,5),(66914,5),(66916,5),(66922,5),(66930,5),(66941,5),(66942,5),(66943,5),(66948,5),(66953,5),(66968,5),(66977,5),(66983,5),(66998,5),(67004,5),(67005,5),(67017,5),(67021,5),(67024,5),(67035,5),(67040,5),(67043,5),(67044,5),(67045,5),(67047,5),(67053,5),(67055,5),(67057,5),(67060,5),(67073,5),(67079,5),(67089,5),(67111,5),(67114,5),(67124,5),(67126,5),(67127,5),(67129,5),(67140,5),(67141,5),(67143,5),(67154,5),(67155,5),(67156,5),(67160,5),(67165,5),(67176,5),(67181,5),(67188,5),(67210,5),(67216,5),(67217,5),(67219,5),(67229,5),(67233,5),(67237,5),(67238,5),(67250,5),(67259,5),(67272,5),(67281,5),(67283,5),(67294,5),(67299,5),(67300,5),(67301,5),(67302,5),(67321,5),(67323,5),(67326,5),(67328,5),(67335,5),(67349,5),(67355,5),(67365,5),(67370,5),(67379,5),(67386,5),(67387,5),(67388,5),(67399,5),(67405,5),(67407,5),(67411,5),(67415,5),(67429,5),(67433,5),(67434,5),(67439,5),(67441,5),(67443,5),(67444,5),(67446,5),(67453,5),(67454,5),(67464,5),(67477,5),(67479,5),(67487,5),(67493,5),(67510,5),(67518,5),(67523,5),(67542,5),(67544,5),(67553,5),(67565,5),(67581,5),(67587,5),(67594,5),(67595,5),(67596,5),(67598,5),(67599,5),(67601,5),(67605,5),(67609,5),(67623,5),(67630,5),(67631,5),(67639,5),(67640,5),(67641,5),(67655,5),(67661,5),(67665,5),(67669,5),(67674,5),(67675,5),(67676,5),(67688,5),(67690,5),(67693,5),(67706,5),(67713,5),(67725,5),(67726,5),(67735,5),(67738,5),(67744,5),(67755,5),(67767,5),(67772,5),(67773,5),(67780,5),(67785,5),(67787,5),(67789,5),(67790,5),(67792,5),(67809,5),(67810,5),(67812,5),(67827,5),(67833,5),(67843,5),(67854,5),(67859,5),(67860,5),(67866,5),(67868,5),(67872,5),(67874,5),(67875,5),(67886,5),(67894,5),(67901,5),(67902,5),(67903,5),(67912,5),(67925,5),(67933,5),(67936,5),(67941,5),(67947,5),(67956,5),(67967,5),(67974,5),(67975,5),(67985,5),(67989,5),(67995,5),(67996,5),(67998,5),(68000,5),(68003,5),(68022,5),(68025,5),(68033,5),(68044,5),(68049,5),(68052,5),(68054,5),(68060,5),(68062,5),(68070,5),(68074,5),(68081,5),(68085,5),(68089,5),(68094,5),(68097,5),(68100,5),(68123,5),(68131,5),(68135,5),(68136,5),(68140,5),(68149,5),(68154,5),(68159,5),(68161,5),(68162,5),(68169,5),(68178,5),(68192,5),(68199,5),(68200,5),(68202,5),(68204,5),(68214,5),(68219,5),(68221,5),(68235,5),(68243,5),(68254,5),(68265,5),(68277,5),(68278,5),(68308,5),(68311,5),(68320,5),(68325,5),(68329,5),(68330,5),(68342,5),(68355,5),(68365,5),(68372,5),(68386,5),(68394,5),(68399,5),(68402,5),(68409,5),(68412,5),(68421,5),(68422,5),(68424,5),(68429,5),(68430,5),(68432,5),(68439,5),(68440,5),(68443,5),(68448,5),(68451,5),(68457,5),(68462,5),(68465,5),(68466,5),(68467,5),(68475,5),(68480,5),(68488,5),(68493,5),(68498,5),(68499,5),(68502,5),(68522,5),(68525,5),(68539,5),(68548,5),(68550,5),(68552,5),(68553,5),(68557,5),(68569,5),(68570,5),(68574,5),(68575,5),(68583,5),(68591,5),(68596,5),(68600,5),(68605,5),(68606,5),(68620,5),(68621,5),(68623,5),(68637,5),(68640,5),(68643,5),(68663,5),(68671,5),(68674,5),(68675,5),(68712,5),(68715,5),(68721,5),(68722,5),(68730,5),(68731,5),(68732,5),(68733,5),(68736,5),(68738,5),(68739,5),(68741,5),(68742,5),(68744,5),(68749,5),(68750,5),(68753,5),(68756,5),(68757,5),(68758,5),(68763,5),(68765,5),(68769,5),(68770,5),(68771,5),(68772,5),(68783,5),(68785,5),(68790,5),(68792,5),(68794,5),(68796,5),(68799,5),(68811,5),(68815,5),(68830,5),(68838,5),(68840,5),(68846,5),(68863,5),(68867,5),(68877,5),(68878,5),(68889,5),(68891,5),(68912,5),(68916,5),(68924,5),(68927,5),(68936,5),(68938,5),(68939,5),(68943,5),(68949,5),(68966,5),(68970,5),(68973,5),(68979,5),(68981,5),(68986,5),(68994,5),(68999,5),(69001,5),(69004,5),(69007,5),(69011,5),(69012,5),(69024,5),(69035,5),(69044,5),(69047,5),(69053,5),(69055,5),(69066,5),(69074,5),(69086,5),(69094,5),(69097,5),(69110,5),(69112,5),(69124,5),(69126,5),(69128,5),(69145,5),(69160,5),(69169,5),(69178,5),(69179,5),(69183,5),(69185,5),(69191,5),(69199,5),(69203,5),(69204,5),(69208,5),(69219,5),(69231,5),(69232,5),(69239,5),(69247,5),(69248,5),(69250,5),(69261,5),(69263,5),(69268,5),(69269,5),(69276,5),(69277,5),(69280,5),(69288,5),(69292,5),(69303,5),(69313,5),(69315,5),(69320,5),(69321,5),(69329,5),(69345,5),(69346,5),(69354,5),(69355,5),(69358,5),(69365,5),(69366,5),(69372,5),(69375,5),(69376,5),(69402,5),(69408,5),(69420,5),(69421,5),(69425,5),(69433,5),(69437,5),(69439,5),(69459,5),(69462,5),(69463,5),(69475,5),(69480,5),(69493,5),(69495,5),(69501,5),(69504,5),(69514,5),(69520,5),(69529,5),(69533,5),(69553,5),(69555,5),(69563,5),(69566,5),(69568,5),(69570,5),(69571,5),(69573,5),(69574,5),(69579,5),(69583,5),(69584,5),(69585,5),(69586,5),(69587,5),(69597,5),(69602,5),(69617,5),(69619,5),(69623,5),(69629,5),(69632,5),(69633,5),(69656,5),(69663,5),(69664,5),(69686,5),(69687,5),(69688,5),(69690,5),(69691,5),(69692,5),(69697,5),(69701,5),(69707,5),(69708,5),(69709,5),(69717,5),(69720,5),(69723,5),(69726,5),(69735,5),(69737,5),(69751,5),(69752,5),(69755,5),(69760,5),(69776,5),(69778,5),(69780,5),(69785,5),(69795,5),(69802,5),(69816,5),(69826,5),(69838,5),(69852,5),(69854,5),(69870,5),(69873,5),(69878,5),(69881,5),(69882,5),(69883,5),(69887,5),(69892,5),(69895,5),(69905,5),(69913,5),(69916,5),(69921,5),(69923,5),(69930,5),(69945,5),(69956,5),(69958,5),(69971,5),(69978,5),(69981,5),(69989,5),(70010,5),(70015,5),(70024,5),(70044,5),(70045,5),(70047,5),(70049,5),(70050,5),(70055,5),(70067,5),(70069,5),(70070,5),(70074,5),(70082,5),(70085,5),(70086,5),(70087,5),(70088,5),(70095,5),(70102,5),(70108,5),(70113,5),(70118,5),(70133,5),(70146,5),(70160,5),(70161,5),(70172,5),(70173,5),(70175,5),(70179,5),(70205,5),(70211,5),(70216,5),(70225,5),(70226,5),(70232,5),(70235,5),(70236,5),(70239,5),(70268,5),(70275,5),(70282,5),(70293,5),(70295,5),(70308,5),(70311,5),(70314,5),(70317,5),(70318,5),(70327,5),(70333,5),(70334,5),(70350,5),(70360,5),(70370,5),(70374,5),(70376,5),(70378,5),(70379,5),(70389,5),(70392,5),(70405,5),(70420,5),(70454,5),(70461,5),(70471,5),(70475,5),(70476,5),(70490,5),(70498,5),(70501,5),(70502,5),(70507,5),(70509,5),(70514,5),(70521,5),(70524,5),(70532,5),(70533,5),(70540,5),(70542,5),(70551,5),(70555,5),(70570,5),(70571,5),(70578,5),(70604,5),(70617,5),(70627,5),(70635,5),(70640,5),(70641,5),(70654,5),(70660,5),(70665,5),(70668,5),(70670,5),(70672,5),(70674,5),(70679,5),(70685,5),(70692,5),(70703,5),(70708,5),(70711,5),(70727,5),(70732,5),(70734,5),(70740,5),(70749,5),(70758,5),(70762,5),(70766,5),(70767,5),(70774,5),(70776,5),(70777,5),(70793,5),(70794,5),(70811,5),(70817,5),(70828,5),(70831,5),(70844,5),(70849,5),(70854,5),(70857,5),(70858,5),(70859,5),(70862,5),(70868,5),(70886,5),(70891,5),(70897,5),(70907,5),(70911,5),(70926,5),(70940,5),(70948,5),(70955,5),(70964,5),(70965,5),(70970,5),(70972,5),(70975,5),(70980,5),(70989,5),(71002,5),(71006,5),(71007,5),(71017,5),(71020,5),(71021,5),(71023,5),(71024,5),(71030,5),(71033,5),(71043,5),(71048,5),(71053,5),(71060,5),(71065,5),(71066,5),(71068,5),(71083,5),(71093,5),(71097,5),(71099,5),(71103,5),(71108,5),(71116,5),(71120,5),(71123,5),(71124,5),(71125,5),(71134,5),(71135,5),(71136,5),(71149,5),(71152,5),(71155,5),(71160,5),(71167,5),(71176,5),(71183,5),(71186,5),(71220,5),(71222,5),(71223,5),(71224,5),(71231,5),(71235,5),(71249,5),(71250,5),(71252,5),(71261,5),(71268,5),(71272,5),(71280,5),(71282,5),(71284,5),(71289,5),(71299,5),(71305,5),(71307,5),(71308,5),(71313,5),(71317,5),(71318,5),(71325,5),(71333,5),(71337,5),(71340,5),(71343,5),(71344,5),(71350,5),(71351,5),(71353,5),(71356,5),(71360,5),(71367,5),(71368,5),(71371,5),(71373,5),(71374,5),(71375,5),(71378,5),(71400,5),(71404,5),(71408,5),(71411,5),(71413,5),(71417,5),(71419,5),(71430,5),(71432,5),(71433,5),(71435,5),(71440,5),(71454,5),(71472,5),(71485,5),(71498,5),(71501,5),(71503,5),(71504,5),(71506,5),(71515,5),(71519,5),(71525,5),(71529,5),(71540,5),(71542,5),(71543,5),(71546,5),(71557,5),(71561,5),(71562,5),(71564,5),(71574,5),(71576,5),(71579,5),(71583,5),(71584,5),(71585,5),(71589,5),(71601,5),(71602,5),(71613,5),(71619,5),(71625,5),(71633,5),(71643,5),(71665,5),(71670,5),(71673,5),(71674,5),(71675,5),(71677,5),(71686,5),(71691,5),(71699,5),(71703,5),(71717,5),(71731,5),(71734,5),(71736,5),(71740,5),(71745,5),(71749,5),(71761,5),(71773,5),(71783,5),(71784,5),(71789,5),(71796,5),(71798,5),(71815,5),(71819,5),(71834,5),(71839,5),(71843,5),(71857,5),(71859,5),(71861,5),(71868,5),(71875,5),(71880,5),(71881,5),(71884,5),(71888,5),(71892,5),(71895,5),(71896,5),(71901,5),(71909,5),(71919,5),(71920,5),(71927,5),(71939,5),(71945,5),(71960,5),(71962,5),(71975,5),(71977,5),(71978,5),(71989,5),(71993,5),(71999,5),(72004,5),(72009,5),(72014,5),(72029,5),(72036,5),(72038,5),(72039,5),(72040,5),(72051,5),(72056,5),(72068,5),(72070,5),(72087,5),(72088,5),(72105,5),(72109,5),(72111,5),(72118,5),(72121,5),(72124,5),(72125,5),(72126,5),(72128,5),(72131,5),(72137,5),(72139,5),(72140,5),(72142,5),(72151,5),(72168,5),(72170,5),(72176,5),(72188,5),(72195,5),(72197,5),(72198,5),(72220,5),(72226,5),(72243,5),(72258,5),(72271,5),(72276,5),(72283,5),(72288,5),(72299,5),(72306,5),(72307,5),(72315,5),(72321,5),(72328,5),(72343,5),(72357,5),(72359,5),(72368,5),(72374,5),(72387,5),(72396,5),(72399,5),(72412,5),(72414,5),(72419,5),(72423,5),(72424,5),(72432,5),(72434,5),(72440,5),(72445,5),(72457,5),(72467,5),(72469,5),(72471,5),(72477,5),(72479,5),(72482,5),(72494,5),(72496,5),(72497,5),(72498,5),(72501,5),(72513,5),(72514,5),(72525,5),(72534,5),(72536,5),(72544,5),(72546,5),(72559,5),(72561,5),(72568,5),(72569,5),(72572,5),(72580,5),(72597,5),(72600,5),(72606,5),(72608,5),(72612,5),(72614,5),(72615,5),(72618,5),(72626,5),(72640,5),(72641,5),(72642,5),(72651,5),(72654,5),(72659,5),(72673,5),(72674,5),(72682,5),(72686,5),(72687,5),(72688,5),(72689,5),(72693,5),(72702,5),(72722,5),(72724,5),(72734,5),(72736,5),(72750,5),(72753,5),(72757,5),(72758,5),(72761,5),(72767,5),(72769,5),(72781,5),(72787,5),(72789,5),(72790,5),(72793,5),(72794,5),(72798,5),(72803,5),(72809,5),(72824,5),(72837,5),(72851,5),(72852,5),(72855,5),(72859,5),(72862,5),(72869,5),(72871,5),(72881,5),(72888,5),(72896,5),(72901,5),(72902,5),(72911,5),(72914,5),(72917,5),(72921,5),(72925,5),(72929,5),(72931,5),(72933,5),(72937,5),(72938,5),(72955,5),(72963,5),(72964,5),(72965,5),(72970,5),(72976,5),(72982,5),(72992,5),(72994,5),(73004,5),(73007,5),(73017,5),(73023,5),(73024,5),(73034,5),(73043,5),(73062,5),(73069,5),(73071,5),(73080,5),(73084,5),(73086,5),(73101,5),(73106,5),(73116,5),(73117,5),(73123,5),(73124,5),(73139,5),(73140,5),(73143,5),(73145,5),(73146,5),(73159,5),(73167,5),(73168,5),(73173,5),(73183,5),(73184,5),(73193,5),(73194,5),(73196,5),(73208,5),(73214,5),(73215,5),(73221,5),(73224,5),(73229,5),(73243,5),(73249,5),(73269,5),(73270,5),(73288,5),(73299,5),(73301,5),(73308,5),(73312,5),(73316,5),(73319,5),(73329,5),(73331,5),(73334,5),(73345,5),(73347,5),(73359,5),(73360,5),(73363,5),(73372,5),(73375,5),(73376,5),(73379,5),(73380,5),(73388,5),(73408,5),(73414,5),(73416,5),(73419,5),(73420,5),(73421,5),(73425,5),(73437,5),(73439,5),(73440,5),(73442,5),(73448,5),(73450,5),(73451,5),(73457,5),(73462,5),(73464,5),(73470,5),(73481,5),(73483,5),(73484,5),(73486,5),(73487,5),(73489,5),(73491,5),(73496,5),(73511,5),(73520,5),(73528,5),(73533,5),(73535,5),(73537,5),(73548,5),(73550,5),(73555,5),(73556,5),(73563,5),(73567,5),(73581,5),(73584,5),(73587,5),(73602,5),(73607,5),(73610,5),(73623,5),(73627,5),(73639,5),(73643,5),(73649,5),(73651,5),(73658,5),(73659,5),(73671,5),(73678,5),(73702,5),(73710,5),(73715,5),(73724,5),(73743,5),(73744,5),(73747,5),(73751,5),(73757,5),(73759,5),(73763,5),(73764,5),(73773,5),(73775,5),(73781,5),(73796,5),(73802,5),(73807,5),(73811,5),(73814,5),(73840,5),(73846,5),(73847,5),(73851,5),(73860,5),(73864,5),(73865,5),(73866,5),(73871,5),(73873,5),(73876,5),(73877,5),(73886,5),(73899,5),(73914,5),(73922,5),(73928,5),(73930,5),(73931,5),(73945,5),(73949,5),(73953,5),(73963,5),(73977,5),(73978,5),(73984,5),(74001,5),(74004,5),(74006,5),(74007,5),(74017,5),(74022,5),(74028,5),(74030,5),(74031,5),(74033,5),(74034,5),(74036,5),(74046,5),(74053,5),(74066,5),(74072,5),(74080,5),(74104,5),(74114,5),(74126,5),(74129,5),(74130,5),(74131,5),(74138,5),(74151,5),(74170,5),(74178,5),(74181,5),(74199,5),(74203,5),(74211,5),(74223,5),(74231,5),(74234,5),(74237,5),(74239,5),(74243,5),(74245,5),(74247,5),(74251,5),(74256,5),(74259,5),(74262,5),(74265,5),(74274,5),(74278,5),(74284,5),(74285,5),(74297,5),(74302,5),(74303,5),(74314,5),(74317,5),(74318,5),(74325,5),(74328,5),(74331,5),(74335,5),(74341,5),(74345,5),(74352,5),(74357,5),(74371,5),(74382,5),(74386,5),(74394,5),(74399,5),(74419,5),(74421,5),(74422,5),(74425,5),(74427,5),(74428,5),(74435,5),(74442,5),(74446,5),(74447,5),(74449,5),(74457,5),(74460,5),(74464,5),(74467,5),(74472,5),(74474,5),(74479,5),(74481,5),(74483,5),(74484,5),(74485,5),(74500,5),(74505,5),(74509,5),(74512,5),(74516,5),(74517,5),(74519,5),(74526,5),(74530,5),(74534,5),(74540,5),(74555,5),(74562,5),(74576,5),(74578,5),(74579,5),(74582,5),(74594,5),(74609,5),(74612,5),(74615,5),(74616,5),(74629,5),(74638,5),(74650,5),(74651,5),(74654,5),(74663,5),(74674,5),(74687,5),(74698,5),(74707,5),(74719,5),(74724,5),(74725,5),(74726,5),(74729,5),(74737,5),(74742,5),(74743,5),(74748,5),(74760,5),(74770,5),(74784,5),(74785,5),(74786,5),(74789,5),(74795,5),(74796,5),(74797,5),(74806,5),(74828,5),(74839,5),(74840,5),(74847,5),(74851,5),(74855,5),(74860,5),(74872,5),(74888,5),(74901,5),(74902,5),(74906,5),(74907,5),(74917,5),(74921,5),(74923,5),(74924,5),(74927,5),(74931,5),(74945,5),(74947,5),(74954,5),(74961,5),(74963,5),(74974,5),(74976,5),(74979,5),(75005,5),(75015,5),(75019,5),(75030,5),(75033,5),(75037,5),(75045,5),(75051,5),(75061,5),(75072,5),(75076,5),(75080,5),(75085,5),(75096,5),(75099,5),(75111,5),(75127,5),(75132,5),(75134,5),(75142,5),(75143,5),(75147,5),(75154,5),(75169,5),(75172,5),(75187,5),(75191,5),(75192,5),(75207,5),(75211,5),(75213,5),(75217,5),(75244,5),(75249,5),(75252,5),(75256,5),(75259,5),(75262,5),(75267,5),(75279,5),(75290,5),(75291,5),(75299,5),(75301,5),(75303,5),(75307,5),(75312,5),(75324,5),(75333,5),(75339,5),(75343,5),(75345,5),(75360,5),(75363,5),(75366,5),(75368,5),(75372,5),(75373,5),(75375,5),(75417,5),(75418,5),(75426,5),(75428,5),(75431,5),(75436,5),(75437,5),(75442,5),(75444,5),(75448,5),(75451,5),(75454,5),(75456,5),(75458,5),(75461,5),(75462,5),(75466,5),(75473,5),(75474,5),(75480,5),(75483,5),(75490,5),(75491,5),(75494,5),(75502,5),(75504,5),(75509,5),(75510,5),(75515,5),(75527,5),(75528,5),(75535,5),(75540,5),(75542,5),(75547,5),(75552,5),(75553,5),(75565,5),(75570,5),(75573,5),(75574,5),(75582,5),(75588,5),(75592,5),(75597,5),(75598,5),(75609,5),(75610,5),(75616,5),(75617,5),(75626,5),(75632,5),(75638,5),(75666,5),(75673,5),(75683,5),(75686,5),(75687,5),(75691,5),(75708,5),(75710,5),(75713,5),(75720,5),(75722,5),(75724,5),(75727,5),(75733,5),(75743,5),(75747,5),(75749,5),(75770,5),(75777,5),(75781,5),(75782,5),(75790,5),(75791,5),(75802,5),(75807,5),(75813,5),(75816,5),(75817,5),(75818,5),(75822,5),(75826,5),(75829,5),(75833,5),(75842,5),(75844,5),(75846,5),(75874,5),(75877,5),(75878,5),(75883,5),(75891,5),(75894,5),(75899,5),(75902,5),(75906,5),(75912,5),(75915,5),(75925,5),(75926,5),(75940,5),(75941,5),(75943,5),(75945,5),(75950,5),(75955,5),(75960,5),(75973,5),(75977,5),(75979,5),(75981,5),(75982,5),(76003,5),(76007,5),(76018,5),(76033,5),(76038,5),(76039,5),(76048,5),(76050,5),(76069,5),(76078,5),(76091,5),(76094,5),(76096,5),(76106,5),(76112,5),(76113,5),(76132,5),(76136,5),(76139,5),(76147,5),(76155,5),(76158,5),(76160,5),(76162,5),(76169,5),(76185,5),(76197,5),(76198,5),(76207,5),(76212,5),(76226,5),(76230,5),(76235,5),(76239,5),(76242,5),(76245,5),(76252,5),(76256,5),(76262,5),(76263,5),(76264,5),(76284,5),(76295,5),(76297,5),(76299,5),(76317,5),(76320,5),(76325,5),(76328,5),(76338,5),(76342,5),(76348,5),(76363,5),(76376,5),(76380,5),(76384,5),(76395,5),(76397,5),(76398,5),(76400,5),(76401,5),(76415,5),(76416,5),(76419,5),(76425,5),(76433,5),(76435,5),(76470,5),(76495,5),(76499,5),(76503,5),(76521,5),(76536,5),(76537,5),(76538,5),(76540,5),(76563,5),(76565,5),(76573,5),(76580,5),(76581,5),(76594,5),(76604,5),(76614,5),(76623,5),(76631,5),(76635,5),(76637,5),(76645,5),(76646,5),(76649,5),(76654,5),(76661,5),(76669,5),(76690,5),(76692,5),(76702,5),(76713,5),(76718,5),(76722,5),(76725,5),(76749,5),(76752,5),(76755,5),(76766,5),(76769,5),(76777,5),(76779,5),(76783,5),(76799,5),(76808,5),(76817,5),(76825,5),(76837,5),(76840,5),(76844,5),(76849,5),(76857,5),(76866,5),(76867,5),(76874,5),(76878,5),(76882,5),(76889,5),(76892,5),(76896,5),(76907,5),(76911,5),(76920,5),(76922,5),(76932,5),(76938,5),(76939,5),(76947,5),(76952,5),(76957,5),(76963,5),(76964,5),(76966,5),(76980,5),(76985,5),(76988,5),(76991,5),(76993,5),(77012,5),(77013,5),(77057,5),(77058,5),(77066,5),(77088,5),(77102,5),(77108,5),(77116,5),(77120,5),(77121,5),(77125,5),(77129,5),(77135,5),(77138,5),(77147,5),(77153,5),(77156,5),(77165,5),(77172,5),(77175,5),(77176,5),(77178,5),(77184,5),(77185,5),(77187,5),(77196,5),(77199,5),(77205,5),(77212,5),(77213,5),(77234,5),(77245,5),(77246,5),(77268,5),(77269,5),(77280,5),(77287,5),(77292,5),(77296,5),(77298,5),(77303,5),(77310,5),(77312,5),(77322,5),(77323,5),(77328,5),(77330,5),(77334,5),(77337,5),(77339,5),(77351,5),(77353,5),(77368,5),(77370,5),(77380,5),(77393,5),(77400,5),(77402,5),(77415,5),(77417,5),(77421,5),(77437,5),(77439,5),(77440,5),(77441,5),(77443,5),(77447,5),(77455,5),(77456,5),(77470,5),(77476,5),(77482,5),(77483,5),(77484,5),(77486,5),(77490,5),(77494,5),(77506,5),(77520,5),(77530,5),(77537,5),(77539,5),(77544,5),(77547,5),(77556,5),(77563,5),(77566,5),(77587,5),(77594,5),(77597,5),(77607,5),(77616,5),(77620,5),(77626,5),(77627,5),(77637,5),(77665,5),(77689,5),(77692,5),(77693,5),(77704,5),(77706,5),(77711,5),(77732,5),(77734,5),(77735,5),(77737,5),(77756,5),(77757,5),(77758,5),(77760,5),(77778,5),(77781,5),(77790,5),(77795,5),(77800,5),(77807,5),(77811,5),(77814,5),(77817,5),(77818,5),(77821,5),(77823,5),(77825,5),(77828,5),(77832,5),(77851,5),(77856,5),(77859,5),(77865,5),(77867,5),(77868,5),(77870,5),(77876,5),(77877,5),(77882,5),(77886,5),(77897,5),(77915,5),(77916,5),(77921,5),(77922,5),(77933,5),(77934,5),(77949,5),(77950,5),(77953,5),(77979,5),(77980,5),(77982,5),(77991,5),(77994,5),(77998,5),(78000,5),(78004,5),(78011,5),(78016,5),(78020,5),(78025,5),(78028,5),(78030,5),(78031,5),(78047,5),(78052,5),(78054,5),(78061,5),(78069,5),(78075,5),(78082,5),(78104,5),(78106,5),(78109,5),(78113,5),(78115,5),(78116,5),(78122,5),(78125,5),(78133,5),(78135,5),(78136,5),(78137,5),(78149,5),(78152,5),(78153,5),(78155,5),(78172,5),(78190,5),(78203,5),(78204,5),(78206,5),(78213,5),(78214,5),(78218,5),(78222,5),(78227,5),(78229,5),(78242,5),(78245,5),(78251,5),(78255,5),(78258,5),(78272,5),(78276,5),(78280,5),(78281,5),(78293,5),(78306,5),(78307,5),(78311,5),(78312,5),(78314,5),(78325,5),(78326,5),(78331,5),(78333,5),(78338,5),(78340,5),(78348,5),(78352,5),(78358,5),(78368,5),(78372,5),(78376,5),(78379,5),(78382,5),(78387,5),(78395,5),(78396,5),(78402,5),(78403,5),(78411,5),(78413,5),(78414,5),(78415,5),(78419,5),(78427,5),(78432,5),(78434,5),(78439,5),(78440,5),(78443,5),(78448,5),(78449,5),(78451,5),(78459,5),(78461,5),(78465,5),(78467,5),(78470,5),(78475,5),(78484,5),(78487,5),(78492,5),(78499,5),(78500,5),(78503,5),(78515,5),(78517,5),(78519,5),(78520,5),(78522,5),(78524,5),(78528,5),(78532,5),(78536,5),(78542,5),(78549,5),(78553,5),(78554,5),(78561,5),(78568,5),(78569,5),(78573,5),(78579,5),(78582,5),(78589,5),(78591,5),(78592,5),(78596,5),(78610,5),(78611,5),(78612,5),(78614,5),(78617,5),(78620,5),(78625,5),(78626,5),(78628,5),(78632,5),(78636,5),(78641,5),(78642,5),(78648,5),(78653,5),(78673,5),(78674,5),(78677,5),(78679,5),(78681,5),(78683,5),(78686,5),(78704,5),(78707,5),(78708,5),(78712,5),(78719,5),(78734,5),(78735,5),(78740,5),(78743,5),(78745,5),(78747,5),(78751,5),(78765,5),(78773,5),(78777,5),(78788,5),(78789,5),(78790,5),(78791,5),(78801,5),(78805,5),(78806,5),(78808,5),(78809,5),(78813,5),(78827,5),(78829,5),(78831,5),(78836,5),(78838,5),(78843,5),(78849,5),(78857,5),(78861,5),(78863,5),(78864,5),(78872,5),(78874,5),(78881,5),(78885,5),(78888,5),(78899,5),(78904,5),(78911,5),(78915,5),(78919,5),(78930,5),(78938,5),(78941,5),(78944,5),(78949,5),(78950,5),(78960,5),(78962,5),(78963,5),(78969,5),(78972,5),(78974,5),(78980,5),(78982,5),(78985,5),(78987,5),(78990,5),(78992,5),(79016,5),(79022,5),(79023,5),(79026,5),(79031,5),(79039,5),(79041,5),(79042,5),(79054,5),(79055,5),(79059,5),(79060,5),(79067,5),(79068,5),(79083,5),(79090,5),(79097,5),(79109,5),(79110,5),(79115,5),(79117,5),(79123,5),(79159,5),(79163,5),(79165,5),(79179,5),(79180,5),(79182,5),(79184,5),(79186,5),(79193,5),(79194,5),(79198,5),(79204,5),(79206,5),(79208,5),(79216,5),(79221,5),(79230,5),(79242,5),(79255,5),(79259,5),(79262,5),(79268,5),(79269,5),(79270,5),(79274,5),(79276,5),(79281,5),(79291,5),(79295,5),(79315,5),(79317,5),(79320,5),(79324,5),(79330,5),(79334,5),(79346,5),(79347,5),(79357,5),(79362,5),(79366,5),(79368,5),(79369,5),(79370,5),(79374,5),(79380,5),(79388,5),(79389,5),(79390,5),(79394,5),(79404,5),(79405,5),(79411,5),(79423,5),(79424,5),(79426,5),(79427,5),(79429,5),(79430,5),(79437,5),(79445,5),(79451,5),(79452,5),(79455,5),(79462,5),(79463,5),(79466,5),(79494,5),(79499,5),(79503,5),(79508,5),(79510,5),(79513,5),(79514,5),(79515,5),(79516,5),(79523,5),(79528,5),(79529,5),(79530,5),(79538,5),(79539,5),(79541,5),(79542,5),(79547,5),(79554,5),(79564,5),(79568,5),(79573,5),(79574,5),(79575,5),(79581,5),(79582,5),(79589,5),(79594,5),(79595,5),(79596,5),(79597,5),(79602,5),(79606,5),(79615,5),(79616,5),(79620,5),(79621,5),(79622,5),(79624,5),(79626,5),(79627,5),(79636,5),(79642,5),(79646,5),(79652,5),(79659,5),(79660,5),(79665,5),(79666,5),(79682,5),(79691,5),(79702,5),(79703,5),(79706,5),(79707,5),(79711,5),(79712,5),(79719,5),(79726,5),(79728,5),(79737,5),(79745,5),(79750,5),(79751,5),(79754,5),(79765,5),(79769,5),(79770,5),(79776,5),(79780,5),(79784,5),(79790,5),(79791,5),(79801,5),(79807,5),(79809,5),(79813,5),(79818,5),(79820,5),(79822,5),(79829,5),(79831,5),(79832,5),(79833,5),(79834,5),(79840,5),(79847,5),(79850,5),(79852,5),(79853,5),(79856,5),(79868,5),(79875,5),(79876,5),(79877,5),(79879,5),(79884,5),(79893,5),(79895,5),(79896,5),(79898,5),(79902,5),(79929,5),(79943,5),(79958,5),(79959,5),(79961,5),(79963,5),(79966,5),(79971,5),(79976,5),(79991,5),(80001,5),(80029,5),(80030,5),(80031,5),(80034,5),(80037,5),(80047,5),(80071,5),(80074,5),(80080,5),(80081,5),(80085,5),(80094,5),(80095,5),(80098,5),(80102,5),(80105,5),(80110,5),(80119,5),(80121,5),(80122,5),(80123,5),(80124,5),(80130,5),(80132,5),(80148,5),(80156,5),(80157,5),(80174,5),(80175,5),(80180,5),(80190,5),(80202,5),(80208,5),(80212,5),(80225,5),(80226,5),(80233,5),(80234,5),(80250,5),(80263,5),(80264,5),(80268,5),(80270,5),(80277,5),(80286,5),(80291,5),(80295,5),(80311,5),(80312,5),(80318,5),(80325,5),(80340,5),(80352,5),(80358,5),(80382,5),(80388,5),(80402,5),(80410,5),(80411,5),(80417,5),(80418,5),(80419,5),(80425,5),(80429,5),(80434,5),(80436,5),(80437,5),(80440,5),(80443,5),(80457,5),(80461,5),(80470,5),(80486,5),(80497,5),(80507,5),(80509,5),(80515,5),(80527,5),(80528,5),(80529,5),(80543,5),(80545,5),(80556,5),(80557,5),(80562,5),(80576,5),(80584,5),(80602,5),(80608,5),(80610,5),(80612,5),(80616,5),(80633,5),(80647,5),(80658,5),(80664,5),(80665,5),(80672,5),(80677,5),(80683,5),(80694,5),(80711,5),(80722,5),(80732,5),(80733,5),(80737,5),(80739,5),(80743,5),(80745,5),(80755,5),(80764,5),(80772,5),(80774,5),(80775,5),(80779,5),(80782,5),(80786,5),(80789,5),(80794,5),(80812,5),(80813,5),(80814,5),(80817,5),(80844,5),(80848,5),(80857,5),(80861,5),(80863,5),(80876,5),(80882,5),(80891,5),(80892,5),(80898,5),(80904,5),(80908,5),(80909,5),(80911,5),(80914,5),(80915,5),(80918,5),(80924,5),(80927,5),(80932,5),(80937,5),(80941,5),(80960,5),(80963,5),(80965,5),(80974,5),(80981,5),(80983,5),(80996,5),(80999,5),(81002,5),(81004,5),(81006,5),(81008,5),(81011,5),(81016,5),(81018,5),(81019,5),(81021,5),(81023,5),(81025,5),(81026,5),(81029,5),(81034,5),(81036,5),(81041,5),(81043,5),(81069,5),(81076,5),(81077,5),(81088,5),(81091,5),(81093,5),(81097,5),(81100,5),(81101,5),(81108,5),(81118,5),(81124,5),(81135,5),(81140,5),(81144,5),(81156,5),(81172,5),(81180,5),(81204,5),(81213,5),(81214,5),(81215,5),(81222,5),(81235,5),(81238,5),(81239,5),(81240,5),(81248,5),(81254,5),(81255,5),(81258,5),(81259,5),(81263,5),(81264,5),(81268,5),(81275,5),(81279,5),(81284,5),(81291,5),(81294,5),(81301,5),(81307,5),(81312,5),(81316,5),(81324,5),(81329,5),(81330,5),(81333,5),(81338,5),(81339,5),(81355,5),(81356,5),(81364,5),(81373,5),(81377,5),(81391,5),(81392,5),(81393,5),(81399,5),(81411,5),(81414,5),(81421,5),(81425,5),(81430,5),(81433,5),(81434,5),(81441,5),(81452,5),(81465,5),(81472,5),(81476,5),(81477,5),(81478,5),(81488,5),(81496,5),(81507,5),(81526,5),(81546,5),(81548,5),(81550,5),(81552,5),(81559,5),(81561,5),(81563,5),(81568,5),(81574,5),(81583,5),(81584,5),(81585,5),(81593,5),(81598,5),(81600,5),(81606,5),(81608,5),(81617,5),(81629,5),(81632,5),(81638,5),(81641,5),(81644,5),(81657,5),(81670,5),(81678,5),(81698,5),(81704,5),(81705,5),(81707,5),(81708,5),(81710,5),(81719,5),(81721,5),(81726,5),(81754,5),(81757,5),(81758,5),(81773,5),(81778,5),(81789,5),(81793,5),(81799,5),(81801,5),(81802,5),(81807,5),(81812,5),(81814,5),(81816,5),(81822,5),(81823,5),(81826,5),(81829,5),(81836,5),(81839,5),(81851,5),(81854,5),(81855,5),(81867,5),(81883,5),(81892,5),(81893,5),(81903,5),(81907,5),(81908,5),(81910,5),(81916,5),(81917,5),(81918,5),(81922,5),(81924,5),(81934,5),(81942,5),(81943,5),(81949,5),(81952,5),(81956,5),(81957,5),(81964,5),(81979,5),(81983,5),(81986,5),(81988,5),(82001,5),(82003,5),(82004,5),(82023,5),(82027,5),(82030,5),(82036,5),(82039,5),(82040,5),(82047,5),(82049,5),(82056,5),(82062,5),(82064,5),(82067,5),(82068,5),(82074,5),(82075,5),(82080,5),(82087,5),(82092,5),(82094,5),(82101,5),(82102,5),(82104,5),(82109,5),(82116,5),(82117,5),(82124,5),(82129,5),(82133,5),(82134,5),(82136,5),(82153,5),(82156,5),(82161,5),(82169,5),(82179,5),(82189,5),(82194,5),(82203,5),(82210,5),(82225,5),(82232,5),(82233,5),(82234,5),(82238,5),(82244,5),(82248,5),(82270,5),(82272,5),(82274,5),(82275,5),(82278,5),(82285,5),(82290,5),(82291,5),(82297,5),(82309,5),(82314,5),(82317,5),(82325,5),(82328,5),(82329,5),(82330,5),(82333,5),(82338,5),(82339,5),(82341,5),(82343,5),(82359,5),(82375,5),(82376,5),(82377,5),(82384,5),(82386,5),(82387,5),(82392,5),(82399,5),(82405,5),(82419,5),(82423,5),(82427,5),(82453,5),(82455,5),(82458,5),(82462,5),(82463,5),(82467,5),(82470,5),(82475,5),(82481,5),(82490,5),(82491,5),(82508,5),(82516,5),(82524,5),(82534,5),(82538,5),(82540,5),(82541,5),(82545,5),(82550,5),(82556,5),(82557,5),(82564,5),(82565,5),(82567,5),(82569,5),(82578,5),(82586,5),(82591,5),(82605,5),(82608,5),(82612,5),(82629,5),(82630,5),(82636,5),(82638,5),(82641,5),(82664,5),(82666,5),(82672,5),(82680,5),(82691,5),(82705,5),(82714,5),(82715,5),(82716,5),(82717,5),(82722,5),(82730,5),(82738,5),(82739,5),(82743,5),(82747,5),(82749,5),(82772,5),(82780,5),(82794,5),(82799,5),(82801,5),(82802,5),(82803,5),(82807,5),(82817,5),(82823,5),(82826,5),(82829,5),(82831,5),(82843,5),(82845,5),(82848,5),(82853,5),(82861,5),(82870,5),(82874,5),(82890,5),(82904,5),(82905,5),(82906,5),(82907,5),(82914,5),(82922,5),(82940,5),(82944,5),(82946,5),(82954,5),(82956,5),(82963,5),(82966,5),(82970,5),(82974,5),(82979,5),(82982,5),(82987,5),(82991,5),(83000,5),(83018,5),(83019,5),(83026,5),(83039,5),(83040,5),(83045,5),(83053,5),(83055,5),(83061,5),(83070,5),(83073,5),(83081,5),(83092,5),(83106,5),(83108,5),(83111,5),(83120,5),(83124,5),(83128,5),(83143,5),(83144,5),(83146,5),(83150,5),(83152,5),(83166,5),(83168,5),(83176,5),(83182,5),(83183,5),(83186,5),(83195,5),(83200,5),(83204,5),(83208,5),(83211,5),(83213,5),(83218,5),(83243,5),(83251,5),(83252,5),(83255,5),(83256,5),(83257,5),(83258,5),(83260,5),(83261,5),(83264,5),(83287,5),(83289,5),(83295,5),(83303,5),(83308,5),(83309,5),(83314,5),(83333,5),(83335,5),(83342,5),(83348,5),(83351,5),(83354,5),(83368,5),(83377,5),(83380,5),(83384,5),(83395,5),(83397,5),(83409,5),(83420,5),(83421,5),(83430,5),(83431,5),(83434,5),(83440,5),(83443,5),(83444,5),(83450,5),(83456,5),(83458,5),(83475,5),(83481,5),(83483,5),(83492,5),(83496,5),(83501,5),(83520,5),(83521,5),(83523,5),(83526,5),(83537,5),(83542,5),(83547,5),(83548,5),(83549,5),(83555,5),(83569,5),(83571,5),(83575,5),(83578,5),(83584,5),(83592,5),(83599,5),(83602,5),(83604,5),(83610,5),(83617,5),(83623,5),(83626,5),(83635,5),(83639,5),(83640,5),(83645,5),(83655,5),(83663,5),(83673,5),(83686,5),(83696,5),(83712,5),(83714,5),(83716,5),(83721,5),(83724,5),(83730,5),(83755,5),(83759,5),(83760,5),(83784,5),(83794,5),(83795,5),(83800,5),(83802,5),(83808,5),(83815,5),(83819,5),(83820,5),(83822,5),(83834,5),(83836,5),(83837,5),(83838,5),(83845,5),(83846,5),(83847,5),(83850,5),(83879,5),(83890,5),(83892,5),(83893,5),(83908,5),(83920,5),(83931,5),(83938,5),(83941,5),(83951,5),(83961,5),(83962,5),(83964,5),(83966,5),(83971,5),(83978,5),(83984,5),(83993,5),(83998,5),(84000,5),(84003,5),(84005,5),(84012,5),(84025,5),(84030,5),(84044,5),(84047,5),(84053,5),(84059,5),(84063,5),(84068,5),(84087,5),(84088,5),(84090,5),(84093,5),(84098,5),(84101,5),(84103,5),(84106,5),(84125,5),(84128,5),(84129,5),(84139,5),(84141,5),(84154,5),(84177,5),(84181,5),(84183,5),(84199,5),(84202,5),(84208,5),(84243,5),(84246,5),(84258,5),(84266,5),(84285,5),(84297,5),(84306,5),(84308,5),(84317,5),(84323,5),(84328,5),(84332,5),(84334,5),(84346,5),(84351,5),(84357,5),(84360,5),(84361,5),(84362,5),(84364,5),(84366,5),(84373,5),(84375,5),(84392,5),(84394,5),(84395,5),(84397,5),(84400,5),(84402,5),(84407,5),(84408,5),(84410,5),(84412,5),(84417,5),(84423,5),(84435,5),(84436,5),(84440,5),(84447,5),(84451,5),(84470,5),(84475,5),(84483,5),(84484,5),(84486,5),(84488,5),(84491,5),(84497,5),(84500,5),(84510,5),(84517,5),(84518,5),(84522,5),(84529,5),(84530,5),(84532,5),(84541,5),(84549,5),(84550,5),(84557,5),(84567,5),(84576,5),(84580,5),(84590,5),(84592,5),(84593,5),(84594,5),(84608,5),(84612,5),(84618,5),(84623,5),(84627,5),(84629,5),(84637,5),(84640,5),(84645,5),(84659,5),(84666,5),(84672,5),(84678,5),(84687,5),(84688,5),(84690,5),(84694,5),(84697,5),(84704,5),(84715,5),(84726,5),(84729,5),(84730,5),(84734,5),(84741,5),(84743,5),(84746,5),(84754,5),(84763,5),(84764,5),(84769,5),(84771,5),(84775,5),(84776,5),(84784,5),(84790,5),(84798,5),(84804,5),(84807,5),(84821,5),(84826,5),(84827,5),(84834,5),(84838,5),(84842,5),(84849,5),(84866,5),(84876,5),(84880,5),(84896,5),(84899,5),(84903,5),(84910,5),(84911,5),(84913,5),(84917,5),(84918,5),(84931,5),(84941,5),(84945,5),(84950,5),(84953,5),(84956,5),(84963,5),(84978,5),(84981,5),(84984,5),(84986,5),(84994,5),(85002,5),(85003,5),(85004,5),(85008,5),(85012,5),(85017,5),(85018,5),(85030,5),(85033,5),(85034,5),(85040,5),(85045,5),(85048,5),(85057,5),(85058,5),(85061,5),(85064,5),(85069,5),(85081,5),(85082,5),(85083,5),(85092,5),(85097,5),(85104,5),(85109,5),(85120,5),(85121,5),(85124,5),(85130,5),(85131,5),(85141,5),(85159,5),(85168,5),(85170,5),(85171,5),(85178,5),(85186,5),(85187,5),(85192,5),(85194,5),(85210,5),(85212,5),(85215,5),(85216,5),(85220,5),(85227,5),(85232,5),(85234,5),(85240,5),(85247,5),(85249,5),(85251,5),(85261,5),(85262,5),(85264,5),(85266,5),(85271,5),(85272,5),(85277,5),(85279,5),(85287,5),(85303,5),(85311,5),(85316,5),(85321,5),(85322,5),(85323,5),(85324,5),(85326,5),(85330,5),(85333,5),(85343,5),(85344,5),(85351,5),(85357,5),(85359,5),(85363,5),(85365,5),(85367,5),(85368,5),(85371,5),(85375,5),(85380,5),(85386,5),(85406,5),(85409,5),(85423,5),(85428,5),(85432,5),(85442,5),(85448,5),(85456,5),(85480,5),(85484,5),(85485,5),(85486,5),(85490,5),(85494,5),(85500,5),(85503,5),(85506,5),(85521,5),(85523,5),(85527,5),(85528,5),(85531,5),(85533,5),(85539,5),(85546,5),(85548,5),(85550,5),(85555,5),(85558,5),(85559,5),(85561,5),(85569,5),(85573,5),(85598,5),(85603,5),(85605,5),(85606,5),(85625,5),(85632,5),(85638,5),(85639,5),(85641,5),(85646,5),(85654,5),(85657,5),(85672,5),(85677,5),(85682,5),(85691,5),(85698,5),(85711,5),(85713,5),(85719,5),(85724,5),(85730,5),(85733,5),(85734,5),(85739,5),(85740,5),(85757,5),(85763,5),(85766,5),(85778,5),(85779,5),(85787,5),(85790,5),(85792,5),(85795,5),(85820,5),(85825,5),(85832,5),(85838,5),(85846,5),(85853,5),(85867,5),(85871,5),(85876,5),(85881,5),(85887,5),(85890,5),(85899,5),(85903,5),(85905,5),(85910,5),(85920,5),(85922,5),(85926,5),(85936,5),(85943,5),(85948,5),(85952,5),(85953,5),(85963,5),(85971,5),(85972,5),(85982,5),(86001,5),(86002,5),(86005,5),(86015,5),(86018,5),(86021,5),(86022,5),(86026,5),(86041,5),(86059,5),(86060,5),(86073,5),(86080,5),(86101,5),(86103,5),(86106,5),(86112,5),(86115,5),(86128,5),(86130,5),(86143,5),(86146,5),(86147,5),(86148,5),(86157,5),(86159,5),(86164,5),(86167,5),(86169,5),(86172,5),(86183,5),(86185,5),(86193,5),(86194,5),(86204,5),(86210,5),(86222,5),(86227,5),(86232,5),(86237,5),(86239,5),(86242,5),(86245,5),(86250,5),(86251,5),(86256,5),(86260,5),(86262,5),(86263,5),(86272,5),(86292,5),(86293,5),(86295,5),(86308,5),(86311,5),(86314,5),(86318,5),(86328,5),(86332,5),(86339,5),(86340,5),(86341,5),(86343,5),(86345,5),(86346,5),(86347,5),(86348,5),(86351,5),(86357,5),(86358,5),(86359,5),(86371,5),(86384,5),(86387,5),(86389,5),(86393,5),(86408,5),(86413,5),(86414,5),(86430,5),(86433,5),(86441,5),(86442,5),(86444,5),(86450,5),(86460,5),(86462,5),(86465,5),(86479,5),(86487,5),(86489,5),(86494,5),(86495,5),(86501,5),(86512,5),(86514,5),(86517,5),(86520,5),(86523,5),(86524,5),(86526,5),(86527,5),(86533,5),(86534,5),(86542,5),(86547,5),(86551,5),(86553,5),(86562,5),(86564,5),(86595,5),(86603,5),(86612,5),(86616,5),(86622,5),(86631,5),(86633,5),(86640,5),(86642,5),(86657,5),(86661,5),(86662,5),(86667,5),(86668,5),(86675,5),(86684,5),(86690,5),(86696,5),(86702,5),(86706,5),(86708,5),(86714,5),(86715,5),(86718,5),(86728,5),(86730,5),(86734,5),(86741,5),(86752,5),(86757,5),(86760,5),(86781,5),(86783,5),(86785,5),(86794,5),(86802,5),(86805,5),(86813,5),(86815,5),(86822,5),(86834,5),(86835,5),(86840,5),(86850,5),(86859,5),(86866,5),(86869,5),(86870,5),(86872,5),(86873,5),(86878,5),(86879,5),(86886,5),(86890,5),(86899,5),(86905,5),(86913,5),(86926,5),(86932,5),(86941,5),(86942,5),(86950,5),(86952,5),(86961,5),(86970,5),(86981,5),(86983,5),(86989,5),(86991,5),(86996,5),(87003,5),(87007,5),(87009,5),(87010,5),(87011,5),(87012,5),(87015,5),(87018,5),(87032,5),(87045,5),(87046,5),(87048,5),(87059,5),(87061,5),(87071,5),(87074,5),(87088,5),(87094,5),(87098,5),(87103,5),(87105,5),(87110,5),(87111,5),(87113,5),(87121,5),(87124,5),(87127,5),(87132,5),(87137,5),(87138,5),(87140,5),(87155,5),(87162,5),(87164,5),(87171,5),(87172,5),(87179,5),(87187,5),(87195,5),(87200,5),(87205,5),(87222,5),(87227,5),(87236,5),(87238,5),(87241,5),(87250,5),(87262,5),(87263,5),(87264,5),(87265,5),(87275,5),(87280,5),(87283,5),(87286,5),(87289,5),(87293,5),(87298,5),(87299,5),(87311,5),(87312,5),(87324,5),(87332,5),(87333,5),(87342,5),(87348,5),(87351,5),(87360,5),(87365,5),(87375,5),(87376,5),(87385,5),(87390,5),(87400,5),(87402,5),(87403,5),(87404,5),(87408,5),(87414,5),(87415,5),(87419,5),(87424,5),(87426,5),(87427,5),(87435,5),(87441,5),(87450,5),(87461,5),(87463,5),(87466,5),(87468,5),(87469,5),(87470,5),(87481,5),(87488,5),(87489,5),(87491,5),(87501,5),(87510,5),(87522,5),(87527,5),(87533,5),(87537,5),(87545,5),(87554,5),(87560,5),(87569,5),(87578,5),(87581,5),(87589,5),(87595,5),(87598,5),(87604,5),(87610,5),(87621,5),(87622,5),(87632,5),(87636,5),(87643,5),(87652,5),(87657,5),(87666,5),(87697,5),(87700,5),(87703,5),(87704,5),(87710,5),(87711,5),(87714,5),(87720,5),(87731,5),(87732,5),(87739,5),(87748,5),(87756,5),(87763,5),(87767,5),(87771,5),(87773,5),(87782,5),(87783,5),(87793,5),(87794,5),(87808,5),(87815,5),(87824,5),(87848,5),(87857,5),(87870,5),(87871,5),(87873,5),(87882,5),(87886,5),(87887,5),(87897,5),(87901,5),(87909,5),(87910,5),(87924,5),(87925,5),(87935,5),(87947,5),(87948,5),(87951,5),(87970,5),(87973,5),(87976,5),(87980,5),(87981,5),(87988,5),(88003,5),(88004,5),(88005,5),(88006,5),(88010,5),(88013,5),(88016,5),(88018,5),(88020,5),(88021,5),(88022,5),(88034,5),(88045,5),(88046,5),(88048,5),(88064,5),(88070,5),(88072,5),(88077,5),(88087,5),(88089,5),(88094,5),(88096,5),(88100,5),(88101,5),(88104,5),(88106,5),(88107,5),(88112,5),(88117,5),(88119,5),(88125,5),(88142,5),(88143,5),(88145,5),(88149,5),(88150,5),(88153,5),(88155,5),(88167,5),(88169,5),(88175,5),(88177,5),(88190,5),(88200,5),(88203,5),(88208,5),(88211,5),(88217,5),(88222,5),(88236,5),(88254,5),(88255,5),(88264,5),(88278,5),(88283,5),(88285,5),(88290,5),(88295,5),(88298,5),(88309,5),(88312,5),(88320,5),(88322,5),(88331,5),(88336,5),(88342,5),(88343,5),(88367,5),(88368,5),(88370,5),(88372,5),(88378,5),(88382,5),(88393,5),(88401,5),(88406,5),(88411,5),(88422,5),(88423,5),(88430,5),(88431,5),(88434,5),(88444,5),(88445,5),(88455,5),(88460,5),(88464,5),(88468,5),(88479,5),(88484,5),(88494,5),(88498,5),(88499,5),(88519,5),(88522,5),(88523,5),(88525,5),(88537,5),(88538,5),(88559,5),(88571,5),(88576,5),(88578,5),(88583,5),(88587,5),(88591,5),(88592,5),(88601,5),(88608,5),(88616,5),(88621,5),(88624,5),(88640,5),(88646,5),(88647,5),(88653,5),(88654,5),(88657,5),(88661,5),(88666,5),(88676,5),(88678,5),(88680,5),(88681,5),(88682,5),(88691,5),(88692,5),(88696,5),(88698,5),(88708,5),(88716,5),(88717,5),(88719,5),(88720,5),(88724,5),(88727,5),(88736,5),(88740,5),(88743,5),(88744,5),(88749,5),(88751,5),(88761,5),(88787,5),(88789,5),(88799,5),(88800,5),(88804,5),(88805,5),(88806,5),(88809,5),(88825,5),(88831,5),(88839,5),(88846,5),(88870,5),(88871,5),(88872,5),(88880,5),(88884,5),(88894,5),(88899,5),(88906,5),(88914,5),(88917,5),(88919,5),(88920,5),(88923,5),(88929,5),(88936,5),(88939,5),(88943,5),(88946,5),(88951,5),(88953,5),(88961,5),(88974,5),(88987,5),(88990,5),(89000,5),(89004,5),(89030,5),(89033,5),(89037,5),(89041,5),(89048,5),(89054,5),(89055,5),(89058,5),(89068,5),(89071,5),(89077,5),(89087,5),(89099,5),(89103,5),(89104,5),(89110,5),(89118,5),(89122,5),(89127,5),(89130,5),(89136,5),(89138,5),(89142,5),(89158,5),(89161,5),(89169,5),(89174,5),(89176,5),(89177,5),(89181,5),(89183,5),(89206,5),(89212,5),(89216,5),(89219,5),(89224,5),(89239,5),(89244,5),(89245,5),(89246,5),(89248,5),(89254,5),(89256,5),(89257,5),(89260,5),(89261,5),(89263,5),(89272,5),(89273,5),(89278,5),(89279,5),(89284,5),(89296,5),(89315,5),(89323,5),(89324,5),(89327,5),(89328,5),(89329,5),(89346,5),(89358,5),(89361,5),(89362,5),(89368,5),(89369,5),(89392,5),(89394,5),(89398,5),(89405,5),(89416,5),(89421,5),(89425,5),(89426,5),(89431,5),(89450,5),(89462,5),(89464,5),(89472,5),(89475,5),(89484,5),(89487,5),(89493,5),(89500,5),(89507,5),(89520,5),(89526,5),(89529,5),(89533,5),(89539,5),(89552,5),(89555,5),(89560,5),(89562,5),(89563,5),(89568,5),(89572,5),(89577,5),(89583,5),(89592,5),(89599,5),(89601,5),(89619,5),(89621,5),(89627,5),(89628,5),(89629,5),(89636,5),(89656,5),(89657,5),(89660,5),(89662,5),(89671,5),(89674,5),(89677,5),(89678,5),(89685,5),(89686,5),(89690,5),(89702,5),(89709,5),(89726,5),(89733,5),(89739,5),(89743,5),(89770,5),(89776,5),(89783,5),(89786,5),(89798,5),(89800,5),(89805,5),(89807,5),(89812,5),(89823,5),(89826,5),(89828,5),(89834,5),(89838,5),(89840,5),(89842,5),(89843,5),(89844,5),(89846,5),(89851,5),(89857,5),(89859,5),(89864,5),(89865,5),(89879,5),(89881,5),(89886,5),(89890,5),(89893,5),(89897,5),(89903,5),(89907,5),(89908,5),(89910,5),(89911,5),(89917,5),(89941,5),(89962,5),(89963,5),(89968,5),(89974,5),(89987,5),(90005,5),(90008,5),(90010,5),(90017,5),(90019,5),(90021,5),(90023,5),(90025,5),(90027,5),(90038,5),(90042,5),(90054,5),(90057,5),(90068,5),(90079,5),(90085,5),(90098,5),(90104,5),(90110,5),(90127,5),(90128,5),(90130,5),(90134,5),(90138,5),(90143,5),(90165,5),(90169,5),(90177,5),(90183,5),(90195,5),(90196,5),(90197,5),(90241,5),(90248,5),(90254,5),(90268,5),(90269,5),(90270,5),(90271,5),(90273,5),(90275,5),(90279,5),(90292,5),(90295,5),(90300,5),(90301,5),(90304,5),(90310,5),(90313,5),(90319,5),(90335,5),(90347,5),(90354,5),(90355,5),(90363,5),(90366,5),(90373,5),(90378,5),(90388,5),(90408,5),(90414,5),(90417,5),(90418,5),(90419,5),(90420,5),(90425,5),(90426,5),(90428,5),(90440,5),(90444,5),(90445,5),(90446,5),(90450,5),(90467,5),(90471,5),(90481,5),(90484,5),(90501,5),(90516,5),(90521,5),(90525,5),(90527,5),(90534,5),(90537,5),(90538,5),(90546,5),(90556,5),(90560,5),(90564,5),(90567,5),(90568,5),(90579,5),(90581,5),(90584,5),(90601,5),(90602,5),(90606,5),(90609,5),(90611,5),(90620,5),(90629,5),(90630,5),(90645,5),(90647,5),(90652,5),(90656,5),(90673,5),(90678,5),(90681,5),(90682,5),(90684,5),(90685,5),(90687,5),(90697,5),(90704,5),(90705,5),(90717,5),(90724,5),(90731,5),(90733,5),(90735,5),(90736,5),(90745,5),(90751,5),(90752,5),(90761,5),(90764,5),(90770,5),(90778,5),(90781,5),(90788,5),(90799,5),(90810,5),(90812,5),(90814,5),(90816,5),(90819,5),(90826,5),(90827,5),(90828,5),(90830,5),(90832,5),(90835,5),(90839,5),(90843,5),(90849,5),(90850,5),(90853,5),(90862,5),(90868,5),(90869,5),(90883,5),(90884,5),(90886,5),(90894,5),(90905,5),(90910,5),(90913,5),(90919,5),(90930,5),(90932,5),(90933,5),(90938,5),(90943,5),(90945,5),(90946,5),(90961,5),(90963,5),(90966,5),(90975,5),(90978,5),(90980,5),(90981,5),(90982,5),(90984,5),(90985,5),(90993,5),(90994,5),(90996,5),(91005,5),(91008,5),(91010,5),(91014,5),(91022,5),(91039,5),(91049,5),(91053,5),(91057,5),(91062,5),(91064,5),(91068,5),(91078,5),(91079,5),(91082,5),(91091,5),(91093,5),(91104,5),(91105,5),(91115,5),(91129,5),(91130,5),(91146,5),(91147,5),(91150,5),(91152,5),(91156,5),(91161,5),(91167,5),(91169,5),(91181,5),(91182,5),(91192,5),(91211,5),(91212,5),(91216,5),(91220,5),(91226,5),(91235,5),(91237,5),(91244,5),(91246,5),(91248,5),(91249,5),(91251,5),(91252,5),(91256,5),(91259,5),(91280,5),(91286,5),(91289,5),(91300,5),(91309,5),(91311,5),(91312,5),(91317,5),(91322,5),(91344,5),(91354,5),(91363,5),(91365,5),(91388,5),(91392,5),(91396,5),(91406,5),(91407,5),(91416,5),(91419,5),(91423,5),(91426,5),(91427,5),(91430,5),(91434,5),(91439,5),(91448,5),(91459,5),(91463,5),(91470,5),(91473,5),(91482,5),(91484,5),(91485,5),(91489,5),(91500,5),(91509,5),(91517,5),(91522,5),(91526,5),(91529,5),(91532,5),(91533,5),(91541,5),(91542,5),(91547,5),(91548,5),(91562,5),(91576,5),(91577,5),(91583,5),(91594,5),(91599,5),(91602,5),(91626,5),(91636,5),(91643,5),(91650,5),(91662,5),(91665,5),(91680,5),(91688,5),(91705,5),(91730,5),(91752,5),(91769,5),(91788,5),(91790,5),(91808,5),(91815,5),(91817,5),(91821,5),(91823,5),(91826,5),(91830,5),(91831,5),(91854,5),(91864,5),(91870,5),(91875,5),(91883,5),(91886,5),(91891,5),(91904,5),(91907,5),(91910,5),(91921,5),(91928,5),(91931,5),(91936,5),(91940,5),(91952,5),(91966,5),(91968,5),(91970,5),(91976,5),(91980,5),(91991,5),(91992,5),(91994,5),(91999,5),(92004,5),(92010,5),(92013,5),(92016,5),(92020,5),(92030,5),(92034,5),(92038,5),(92039,5),(92047,5),(92061,5),(92062,5),(92083,5),(92084,5),(92096,5),(92097,5),(92102,5),(92112,5),(92115,5),(92117,5),(92121,5),(92122,5),(92123,5),(92141,5),(92144,5),(92147,5),(92151,5),(92152,5),(92157,5),(92165,5),(92168,5),(92169,5),(92170,5),(92185,5),(92192,5),(92200,5),(92201,5),(92212,5),(92214,5),(92218,5),(92220,5),(92224,5),(92230,5),(92262,5),(92264,5),(92271,5),(92276,5),(92285,5),(92286,5),(92291,5),(92302,5),(92316,5),(92341,5),(92358,5),(92360,5),(92362,5),(92363,5),(92379,5),(92381,5),(92384,5),(92405,5),(92407,5),(92408,5),(92421,5),(92428,5),(92429,5),(92431,5),(92432,5),(92434,5),(92435,5),(92441,5),(92443,5),(92446,5),(92451,5),(92454,5),(92458,5),(92460,5),(92461,5),(92465,5),(92467,5),(92468,5),(92485,5),(92489,5),(92495,5),(92506,5),(92509,5),(92510,5),(92513,5),(92524,5),(92536,5),(92538,5),(92541,5),(92544,5),(92552,5),(92562,5),(92564,5),(92567,5),(92583,5),(92585,5),(92589,5),(92595,5),(92600,5),(92607,5),(92609,5),(92618,5),(92620,5),(92621,5),(92624,5),(92629,5),(92637,5),(92640,5),(92645,5),(92646,5),(92647,5),(92652,5),(92668,5),(92677,5),(92680,5),(92682,5),(92686,5),(92692,5),(92696,5),(92704,5),(92705,5),(92708,5),(92726,5),(92731,5),(92741,5),(92742,5),(92745,5),(92749,5),(92768,5),(92772,5),(92793,5),(92797,5),(92812,5),(92816,5),(92817,5),(92822,5),(92828,5),(92831,5),(92844,5),(92849,5),(92858,5),(92859,5),(92863,5),(92872,5),(92880,5),(92883,5),(92885,5),(92888,5),(92897,5),(92899,5),(92913,5),(92922,5),(92925,5),(92933,5),(92939,5),(92943,5),(92947,5),(92948,5),(92953,5),(92956,5),(92959,5),(92961,5),(92966,5),(92973,5),(92976,5),(92980,5),(92985,5),(92989,5),(92997,5),(93001,5),(93012,5),(93016,5),(93018,5),(93019,5),(93030,5),(93033,5),(93039,5),(93041,5),(93042,5),(93054,5),(93060,5),(93062,5),(93065,5),(93079,5),(93091,5),(93095,5),(93100,5),(93111,5),(93121,5),(93122,5),(93124,5),(93128,5),(93145,5),(93150,5),(93151,5),(93152,5),(93170,5),(93178,5),(93179,5),(93187,5),(93188,5),(93197,5),(93200,5),(93219,5),(93224,5),(93228,5),(93235,5),(93236,5),(93237,5),(93239,5),(93240,5),(93241,5),(93262,5),(93269,5),(93273,5),(93287,5),(93291,5),(93292,5),(93297,5),(93298,5),(93304,5),(93317,5),(93333,5),(93336,5),(93340,5),(93349,5),(93358,5),(93359,5),(93363,5),(93369,5),(93371,5),(93372,5),(93373,5),(93380,5),(93389,5),(93390,5),(93393,5),(93400,5),(93401,5),(93416,5),(93423,5),(93433,5),(93434,5),(93445,5),(93446,5),(93448,5),(93449,5),(93451,5),(93463,5),(93465,5),(93491,5),(93499,5),(93504,5),(93519,5),(93527,5),(93534,5),(93536,5),(93539,5),(93549,5),(93561,5),(93566,5),(93576,5),(93579,5),(93581,5),(93589,5),(93590,5),(93592,5),(93603,5),(93608,5),(93609,5),(93614,5),(93619,5),(93625,5),(93630,5),(93634,5),(93637,5),(93639,5),(93644,5),(93649,5),(93654,5),(93657,5),(93658,5),(93659,5),(93664,5),(93665,5),(93667,5),(93668,5),(93670,5),(93680,5),(93690,5),(93706,5),(93709,5),(93716,5),(93722,5),(93727,5),(93746,5),(93763,5),(93776,5),(93778,5),(93779,5),(93780,5),(93787,5),(93789,5),(93792,5),(93793,5),(93799,5),(93800,5),(93829,5),(93833,5),(93843,5),(93846,5),(93847,5),(93860,5),(93867,5),(93869,5),(93875,5),(93890,5),(93892,5),(93894,5),(93909,5),(93910,5),(93912,5),(93916,5),(93926,5),(93930,5),(93931,5),(93932,5),(93934,5),(93936,5),(93941,5),(93964,5),(93971,5),(93973,5),(93974,5),(93976,5),(93977,5),(93991,5),(93993,5),(93996,5),(93999,5),(94029,5),(94031,5),(94032,5),(94035,5),(94040,5),(94042,5),(94045,5),(94048,5),(94059,5),(94071,5),(94074,5),(94084,5),(94085,5),(94098,5),(94101,5),(94103,5),(94111,5),(94112,5),(94125,5),(94174,5),(94185,5),(94188,5),(94193,5),(94195,5),(94198,5),(94203,5),(94208,5),(94216,5),(94228,5),(94230,5),(94231,5),(94234,5),(94241,5),(94243,5),(94258,5),(94267,5),(94271,5),(94274,5),(94275,5),(94276,5),(94283,5),(94287,5),(94288,5),(94289,5),(94302,5),(94304,5),(94307,5),(94310,5),(94323,5),(94326,5),(94329,5),(94333,5),(94339,5),(94346,5),(94351,5),(94352,5),(94353,5),(94358,5),(94360,5),(94366,5),(94372,5),(94377,5),(94383,5),(94384,5),(94386,5),(94388,5),(94394,5),(94402,5),(94421,5),(94422,5),(94426,5),(94430,5),(94440,5),(94449,5),(94450,5),(94454,5),(94459,5),(94483,5),(94484,5),(94496,5),(94497,5),(94506,5),(94510,5),(94513,5),(94517,5),(94526,5),(94528,5),(94551,5),(94552,5),(94567,5),(94570,5),(94576,5),(94577,5),(94594,5),(94597,5),(94598,5),(94606,5),(94608,5),(94620,5),(94624,5),(94633,5),(94635,5),(94639,5),(94642,5),(94644,5),(94647,5),(94657,5),(94659,5),(94660,5),(94671,5),(94679,5),(94689,5),(94690,5),(94697,5),(94706,5),(94707,5),(94711,5),(94712,5),(94731,5),(94732,5),(94734,5),(94741,5),(94749,5),(94754,5),(94760,5),(94763,5),(94764,5),(94778,5),(94782,5),(94784,5),(94786,5),(94787,5),(94791,5),(94794,5),(94798,5),(94799,5),(94801,5),(94810,5),(94811,5),(94832,5),(94835,5),(94841,5),(94845,5),(94850,5),(94851,5),(94857,5),(94868,5),(94874,5),(94887,5),(94896,5),(94898,5),(94901,5),(94904,5),(94907,5),(94914,5),(94915,5),(94922,5),(94929,5),(94962,5),(94965,5),(94969,5),(94972,5),(94987,5),(94990,5),(94993,5),(95002,5),(95008,5),(95016,5),(95046,5),(95047,5),(95048,5),(95050,5),(95056,5),(95062,5),(95065,5),(95104,5),(95114,5),(95124,5),(95126,5),(95139,5),(95140,5),(95155,5),(95159,5),(95160,5),(95172,5),(95178,5),(95179,5),(95184,5),(95185,5),(95192,5),(95201,5),(95205,5),(95206,5),(95211,5),(95214,5),(95216,5),(95227,5),(95229,5),(95248,5),(95249,5),(95256,5),(95263,5),(95268,5),(95280,5),(95284,5),(95298,5),(95299,5),(95309,5),(95312,5),(95319,5),(95320,5),(95323,5),(95327,5),(95331,5),(95339,5),(95340,5),(95345,5),(95354,5),(95357,5),(95362,5),(95369,5),(95370,5),(95375,5),(95379,5),(95389,5),(95393,5),(95399,5),(95400,5),(95407,5),(95408,5),(95411,5),(95412,5),(95420,5),(95423,5),(95434,5),(95440,5),(95455,5),(95460,5),(95471,5),(95472,5),(95473,5),(95478,5),(95479,5),(95483,5),(95486,5),(95490,5),(95494,5),(95496,5),(95498,5),(95499,5),(95502,5),(95510,5),(95511,5),(95521,5),(95526,5),(95527,5),(95538,5),(95546,5),(95559,5),(95561,5),(95572,5),(95573,5),(95577,5),(95610,5),(95611,5),(95620,5),(95630,5),(95639,5),(95641,5),(95645,5),(95652,5),(95656,5),(95659,5),(95663,5),(95671,5),(95672,5),(95681,5),(95682,5),(95683,5),(95687,5),(95688,5),(95695,5),(95711,5),(95712,5),(95718,5),(95720,5),(95728,5),(95735,5),(95736,5),(95754,5),(95762,5),(95763,5),(95769,5),(95771,5),(95779,5),(95780,5),(95781,5),(95783,5),(95798,5),(95803,5),(95814,5),(95839,5),(95842,5),(95844,5),(95847,5),(95857,5),(95859,5),(95860,5),(95882,5),(95883,5),(95885,5),(95890,5),(95899,5),(95908,5),(95922,5),(95934,5),(95940,5),(95947,5),(95952,5),(95953,5),(95965,5),(95966,5),(95967,5),(95976,5),(95979,5),(95989,5),(95991,5),(95993,5),(95995,5),(95996,5),(95998,5),(96000,5),(96006,5),(96007,5),(96018,5),(96023,5),(96027,5),(96033,5),(96035,5),(96057,5),(96062,5),(96066,5),(96069,5),(96073,5),(96075,5),(96077,5),(96080,5),(96088,5),(96094,5),(96095,5),(96106,5),(96109,5),(96112,5),(96115,5),(96118,5),(96125,5),(96126,5),(96127,5),(96138,5),(96144,5),(96146,5),(96147,5),(96151,5),(96159,5),(96165,5),(96169,5),(96176,5),(96185,5),(96194,5),(96200,5),(96214,5),(96219,5),(96221,5),(96222,5),(96236,5),(96246,5),(96261,5),(96270,5),(96294,5),(96300,5),(96309,5),(96314,5),(96328,5),(96335,5),(96339,5),(96342,5),(96374,5),(96375,5),(96400,5),(96405,5),(96407,5),(96412,5),(96414,5),(96439,5),(96446,5),(96457,5),(96460,5),(96466,5),(96467,5),(96474,5),(96486,5),(96494,5),(96496,5),(96497,5),(96499,5),(96502,5),(96512,5),(96524,5),(96526,5),(96533,5),(96562,5),(96572,5),(96579,5),(96582,5),(96594,5),(96595,5),(96597,5),(96603,5),(96614,5),(96630,5),(96633,5),(96634,5),(96637,5),(96642,5),(96645,5),(96656,5),(96663,5),(96667,5),(96679,5),(96680,5),(96701,5),(96704,5),(96710,5),(96715,5),(96718,5),(96739,5),(96741,5),(96755,5),(96759,5),(96762,5),(96766,5),(96769,5),(96774,5),(96777,5),(96778,5),(96784,5),(96794,5),(96796,5),(96798,5),(96801,5),(96802,5),(96808,5),(96809,5),(96810,5),(96812,5),(96819,5),(96822,5),(96828,5),(96832,5),(96844,5),(96851,5),(96855,5),(96877,5),(96880,5),(96881,5),(96886,5),(96887,5),(96898,5),(96899,5),(96904,5),(96908,5),(96911,5),(96923,5),(96943,5),(96945,5),(96957,5),(96967,5),(96968,5),(96984,5),(96994,5),(97001,5),(97010,5),(97012,5),(97022,5),(97023,5),(97032,5),(97037,5),(97041,5),(97044,5),(97048,5),(97049,5),(97053,5),(97055,5),(97061,5),(97071,5),(97072,5),(97087,5),(97101,5),(97105,5),(97108,5),(97112,5),(97114,5),(97115,5),(97119,5),(97126,5),(97146,5),(97152,5),(97160,5),(97161,5),(97162,5),(97166,5),(97169,5),(97171,5),(97178,5),(97184,5),(97190,5),(97199,5),(97203,5),(97210,5),(97214,5),(97221,5),(97228,5),(97234,5),(97238,5),(97245,5),(97249,5),(97254,5),(97256,5),(97258,5),(97266,5),(97267,5),(97268,5),(97279,5),(97287,5),(97291,5),(97294,5),(97312,5),(97316,5),(97317,5),(97322,5),(97324,5),(97342,5),(97344,5),(97347,5),(97351,5),(97352,5),(97353,5),(97354,5),(97356,5),(97366,5),(97369,5),(97374,5),(97375,5),(97384,5),(97385,5),(97386,5),(97394,5),(97399,5),(97406,5),(97407,5),(97408,5),(97410,5),(97419,5),(97434,5),(97453,5),(97455,5),(97471,5),(97492,5),(97495,5),(97500,5),(97515,5),(97521,5),(97522,5),(97523,5),(97526,5),(97537,5),(97542,5),(97549,5),(97563,5),(97566,5),(97576,5),(97590,5),(97599,5),(97605,5),(97620,5),(97623,5),(97632,5),(97640,5),(97645,5),(97651,5),(97668,5),(97669,5),(97670,5),(97673,5),(97674,5),(97703,5),(97709,5),(97715,5),(97716,5),(97722,5),(97728,5),(97735,5),(97736,5),(97737,5),(97759,5),(97761,5),(97766,5),(97770,5),(97774,5),(97779,5),(97784,5),(97785,5),(97803,5),(97809,5),(97816,5),(97818,5),(97822,5),(97823,5),(97830,5),(97838,5),(97845,5),(97852,5),(97870,5),(97871,5),(97882,5),(97889,5),(97894,5),(97910,5),(97911,5),(97918,5),(97924,5),(97925,5),(97932,5),(97934,5),(97935,5),(97938,5),(97940,5),(97943,5),(97953,5),(97955,5),(97958,5),(97962,5),(97968,5),(97972,5),(97973,5),(97977,5),(97988,5),(97994,5),(98002,5),(98006,5),(98009,5),(98023,5),(98026,5),(98033,5),(98035,5),(98048,5),(98057,5),(98060,5),(98064,5),(98065,5),(98066,5),(98078,5),(98079,5),(98085,5),(98093,5),(98094,5),(98095,5),(98105,5),(98108,5),(98111,5),(98117,5),(98123,5),(98124,5),(98140,5),(98142,5),(98149,5),(98160,5),(98170,5),(98186,5),(98197,5),(98198,5),(98202,5),(98212,5),(98216,5),(98248,5),(98254,5),(98280,5),(98284,5),(98289,5),(98293,5),(98296,5),(98299,5),(98301,5),(98304,5),(98319,5),(98332,5),(98340,5),(98347,5),(98351,5),(98363,5),(98366,5),(98374,5),(98379,5),(98382,5),(98386,5),(98394,5),(98402,5),(98409,5),(98413,5),(98415,5),(98419,5),(98437,5),(98442,5),(98448,5),(98450,5),(98461,5),(98462,5),(98471,5),(98481,5),(98497,5),(98499,5),(98535,5),(98536,5),(98537,5),(98540,5),(98546,5),(98552,5),(98554,5),(98576,5),(98585,5),(98590,5),(98606,5),(98615,5),(98617,5),(98618,5),(98622,5),(98623,5),(98628,5),(98632,5),(98637,5),(98638,5),(98645,5),(98649,5),(98661,5),(98673,5),(98685,5),(98687,5),(98688,5),(98694,5),(98695,5),(98697,5),(98700,5),(98718,5),(98727,5),(98728,5),(98736,5),(98738,5),(98763,5),(98772,5),(98778,5),(98789,5),(98790,5),(98792,5),(98798,5),(98804,5),(98817,5),(98819,5),(98820,5),(98821,5),(98822,5),(98836,5),(98843,5),(98851,5),(98852,5),(98854,5),(98858,5),(98868,5),(98873,5),(98881,5),(98887,5),(98893,5),(98894,5),(98895,5),(98901,5),(98904,5),(98914,5),(98916,5),(98917,5),(98924,5),(98930,5),(98936,5),(98944,5),(98950,5),(98952,5),(98954,5),(98965,5),(98969,5),(98976,5),(98982,5),(7,6),(8,6),(14,6),(18,6),(20,6),(26,6),(27,6),(28,6),(45,6),(47,6),(51,6),(71,6),(85,6),(86,6),(87,6),(90,6),(91,6),(96,6),(116,6),(123,6),(126,6),(127,6),(129,6),(132,6),(138,6),(143,6),(174,6),(176,6),(180,6),(182,6),(184,6),(187,6),(188,6),(198,6),(206,6),(218,6),(240,6),(242,6),(243,6),(254,6),(266,6),(268,6),(277,6),(279,6),(283,6),(286,6),(292,6),(294,6),(307,6),(311,6),(312,6),(329,6),(337,6),(340,6),(343,6),(347,6),(348,6),(349,6),(361,6),(370,6),(371,6),(381,6),(390,6),(399,6),(400,6),(407,6),(409,6),(424,6),(442,6),(449,6),(452,6),(455,6),(459,6),(466,6),(469,6),(471,6),(472,6),(473,6),(484,6),(493,6),(497,6),(501,6),(507,6),(515,6),(518,6),(533,6),(539,6),(550,6),(551,6),(561,6),(565,6),(566,6),(568,6),(573,6),(595,6),(605,6),(621,6),(623,6),(630,6),(636,6),(637,6),(650,6),(654,6),(655,6),(660,6),(664,6),(666,6),(674,6),(679,6),(680,6),(685,6),(687,6),(688,6),(697,6),(700,6),(701,6),(707,6),(734,6),(751,6),(752,6),(758,6),(766,6),(768,6),(773,6),(787,6),(788,6),(790,6),(799,6),(803,6),(808,6),(810,6),(822,6),(828,6),(831,6),(832,6),(838,6),(844,6),(847,6),(851,6),(855,6),(858,6),(860,6),(862,6),(864,6),(868,6),(887,6),(889,6),(893,6),(896,6),(908,6),(910,6),(912,6),(917,6),(920,6),(933,6),(942,6),(946,6),(950,6),(968,6),(976,6),(983,6),(989,6),(1000,6),(1017,6),(1018,6),(1024,6),(1028,6),(1029,6),(1035,6),(1056,6),(1065,6),(1081,6),(1082,6),(1105,6),(1106,6),(1111,6),(1113,6),(1115,6),(1117,6),(1122,6),(1125,6),(1139,6),(1154,6),(1156,6),(1165,6),(1167,6),(1178,6),(1184,6),(1185,6),(1206,6),(1221,6),(1223,6),(1225,6),(1226,6),(1229,6),(1234,6),(1254,6),(1256,6),(1271,6),(1276,6),(1277,6),(1293,6),(1302,6),(1311,6),(1323,6),(1328,6),(1338,6),(1345,6),(1348,6),(1351,6),(1355,6),(1363,6),(1364,6),(1376,6),(1377,6),(1378,6),(1379,6),(1380,6),(1381,6),(1387,6),(1388,6),(1389,6),(1393,6),(1406,6),(1407,6),(1409,6),(1420,6),(1424,6),(1434,6),(1438,6),(1441,6),(1443,6),(1444,6),(1449,6),(1450,6),(1454,6),(1469,6),(1473,6),(1478,6),(1480,6),(1486,6),(1487,6),(1492,6),(1500,6),(1501,6),(1503,6),(1516,6),(1519,6),(1520,6),(1523,6),(1529,6),(1534,6),(1537,6),(1538,6),(1545,6),(1547,6),(1550,6),(1557,6),(1581,6),(1594,6),(1596,6),(1603,6),(1605,6),(1616,6),(1618,6),(1633,6),(1641,6),(1652,6),(1656,6),(1661,6),(1662,6),(1667,6),(1669,6),(1676,6),(1680,6),(1689,6),(1694,6),(1700,6),(1707,6),(1711,6),(1712,6),(1722,6),(1730,6),(1736,6),(1738,6),(1739,6),(1741,6),(1748,6),(1766,6),(1774,6),(1778,6),(1782,6),(1790,6),(1795,6),(1797,6),(1798,6),(1803,6),(1806,6),(1807,6),(1808,6),(1810,6),(1814,6),(1825,6),(1833,6),(1855,6),(1857,6),(1859,6),(1860,6),(1861,6),(1864,6),(1868,6),(1879,6),(1881,6),(1883,6),(1893,6),(1902,6),(1915,6),(1916,6),(1917,6),(1928,6),(1939,6),(1940,6),(1953,6),(1961,6),(1963,6),(1971,6),(1980,6),(1990,6),(1994,6),(2007,6),(2015,6),(2026,6),(2033,6),(2040,6),(2043,6),(2047,6),(2053,6),(2064,6),(2084,6),(2087,6),(2088,6),(2090,6),(2094,6),(2095,6),(2099,6),(2107,6),(2111,6),(2118,6),(2119,6),(2123,6),(2128,6),(2136,6),(2143,6),(2147,6),(2149,6),(2152,6),(2158,6),(2159,6),(2162,6),(2169,6),(2174,6),(2176,6),(2177,6),(2188,6),(2191,6),(2192,6),(2194,6),(2195,6),(2197,6),(2200,6),(2213,6),(2218,6),(2224,6),(2246,6),(2250,6),(2260,6),(2265,6),(2274,6),(2278,6),(2281,6),(2282,6),(2289,6),(2293,6),(2297,6),(2313,6),(2316,6),(2321,6),(2335,6),(2343,6),(2346,6),(2348,6),(2351,6),(2355,6),(2366,6),(2372,6),(2373,6),(2378,6),(2382,6),(2384,6),(2392,6),(2394,6),(2399,6),(2400,6),(2405,6),(2409,6),(2416,6),(2417,6),(2420,6),(2425,6),(2426,6),(2434,6),(2436,6),(2443,6),(2448,6),(2458,6),(2460,6),(2469,6),(2470,6),(2474,6),(2481,6),(2482,6),(2489,6),(2502,6),(2527,6),(2534,6),(2537,6),(2538,6),(2539,6),(2542,6),(2544,6),(2548,6),(2552,6),(2559,6),(2566,6),(2571,6),(2576,6),(2581,6),(2583,6),(2601,6),(2602,6),(2603,6),(2607,6),(2609,6),(2610,6),(2611,6),(2612,6),(2614,6),(2618,6),(2622,6),(2623,6),(2632,6),(2642,6),(2650,6),(2651,6),(2652,6),(2657,6),(2662,6),(2664,6),(2671,6),(2678,6),(2683,6),(2691,6),(2700,6),(2701,6),(2713,6),(2725,6),(2728,6),(2742,6),(2746,6),(2748,6),(2751,6),(2752,6),(2753,6),(2756,6),(2757,6),(2764,6),(2771,6),(2772,6),(2777,6),(2783,6),(2784,6),(2787,6),(2795,6),(2800,6),(2805,6),(2807,6),(2827,6),(2831,6),(2834,6),(2836,6),(2837,6),(2864,6),(2869,6),(2870,6),(2877,6),(2881,6),(2883,6),(2888,6),(2894,6),(2896,6),(2900,6),(2903,6),(2904,6),(2906,6),(2911,6),(2920,6),(2923,6),(2930,6),(2935,6),(2951,6),(2953,6),(2960,6),(2970,6),(2973,6),(2980,6),(2981,6),(2985,6),(2989,6),(2990,6),(2995,6),(2996,6),(3000,6),(3007,6),(3016,6),(3022,6),(3026,6),(3033,6),(3037,6),(3040,6),(3045,6),(3058,6),(3063,6),(3066,6),(3071,6),(3072,6),(3073,6),(3074,6),(3075,6),(3077,6),(3079,6),(3082,6),(3089,6),(3095,6),(3096,6),(3099,6),(3102,6),(3103,6),(3104,6),(3106,6),(3112,6),(3117,6),(3118,6),(3121,6),(3122,6),(3127,6),(3130,6),(3131,6),(3132,6),(3133,6),(3134,6),(3144,6),(3148,6),(3150,6),(3153,6),(3155,6),(3157,6),(3165,6),(3170,6),(3173,6),(3175,6),(3186,6),(3188,6),(3192,6),(3195,6),(3204,6),(3206,6),(3212,6),(3214,6),(3218,6),(3237,6),(3240,6),(3242,6),(3243,6),(3250,6),(3253,6),(3259,6),(3270,6),(3275,6),(3278,6),(3292,6),(3296,6),(3298,6),(3305,6),(3306,6),(3307,6),(3308,6),(3328,6),(3332,6),(3343,6),(3349,6),(3351,6),(3360,6),(3361,6),(3363,6),(3371,6),(3385,6),(3389,6),(3397,6),(3398,6),(3399,6),(3409,6),(3412,6),(3416,6),(3421,6),(3428,6),(3430,6),(3431,6),(3436,6),(3437,6),(3438,6),(3439,6),(3449,6),(3450,6),(3451,6),(3452,6),(3465,6),(3473,6),(3481,6),(3482,6),(3489,6),(3500,6),(3510,6),(3512,6),(3517,6),(3520,6),(3527,6),(3530,6),(3536,6),(3546,6),(3550,6),(3551,6),(3553,6),(3566,6),(3570,6),(3574,6),(3577,6),(3581,6),(3586,6),(3592,6),(3596,6),(3597,6),(3600,6),(3607,6),(3610,6),(3616,6),(3626,6),(3631,6),(3633,6),(3635,6),(3643,6),(3648,6),(3665,6),(3669,6),(3676,6),(3677,6),(3684,6),(3686,6),(3693,6),(3694,6),(3700,6),(3701,6),(3704,6),(3707,6),(3709,6),(3717,6),(3723,6),(3725,6),(3730,6),(3735,6),(3744,6),(3753,6),(3760,6),(3762,6),(3767,6),(3771,6),(3774,6),(3792,6),(3805,6),(3809,6),(3826,6),(3827,6),(3837,6),(3842,6),(3845,6),(3858,6),(3859,6),(3860,6),(3863,6),(3864,6),(3866,6),(3877,6),(3879,6),(3880,6),(3882,6),(3886,6),(3901,6),(3902,6),(3905,6),(3923,6),(3924,6),(3925,6),(3926,6),(3940,6),(3953,6),(3954,6),(3955,6),(3959,6),(3964,6),(3969,6),(3974,6),(3977,6),(4001,6),(4005,6),(4010,6),(4013,6),(4015,6),(4030,6),(4031,6),(4050,6),(4060,6),(4068,6),(4078,6),(4099,6),(4103,6),(4105,6),(4106,6),(4128,6),(4129,6),(4135,6),(4150,6),(4159,6),(4162,6),(4165,6),(4168,6),(4172,6),(4190,6),(4193,6),(4197,6),(4200,6),(4206,6),(4210,6),(4212,6),(4214,6),(4217,6),(4220,6),(4226,6),(4232,6),(4235,6),(4241,6),(4247,6),(4251,6),(4256,6),(4264,6),(4265,6),(4269,6),(4271,6),(4273,6),(4274,6),(4279,6),(4281,6),(4301,6),(4306,6),(4321,6),(4324,6),(4330,6),(4333,6),(4340,6),(4343,6),(4355,6),(4358,6),(4359,6),(4374,6),(4377,6),(4381,6),(4385,6),(4389,6),(4391,6),(4392,6),(4412,6),(4414,6),(4426,6),(4427,6),(4428,6),(4441,6),(4444,6),(4452,6),(4456,6),(4463,6),(4467,6),(4469,6),(4472,6),(4475,6),(4482,6),(4486,6),(4487,6),(4496,6),(4498,6),(4503,6),(4512,6),(4516,6),(4518,6),(4521,6),(4524,6),(4544,6),(4546,6),(4553,6),(4554,6),(4557,6),(4561,6),(4563,6),(4565,6),(4566,6),(4569,6),(4573,6),(4582,6),(4586,6),(4596,6),(4598,6),(4601,6),(4604,6),(4611,6),(4615,6),(4616,6),(4617,6),(4619,6),(4620,6),(4624,6),(4632,6),(4633,6),(4639,6),(4659,6),(4662,6),(4681,6),(4685,6),(4687,6),(4692,6),(4701,6),(4705,6),(4709,6),(4710,6),(4722,6),(4725,6),(4735,6),(4739,6),(4746,6),(4751,6),(4763,6),(4772,6),(4780,6),(4782,6),(4791,6),(4792,6),(4804,6),(4826,6),(4833,6),(4842,6),(4843,6),(4847,6),(4850,6),(4861,6),(4871,6),(4876,6),(4882,6),(4884,6),(4888,6),(4892,6),(4900,6),(4902,6),(4908,6),(4909,6),(4919,6),(4925,6),(4928,6),(4934,6),(4935,6),(4947,6),(4948,6),(4964,6),(4968,6),(4984,6),(4985,6),(4988,6),(4990,6),(4991,6),(4994,6),(5002,6),(5015,6),(5022,6),(5026,6),(5031,6),(5034,6),(5038,6),(5041,6),(5053,6),(5064,6),(5074,6),(5078,6),(5084,6),(5090,6),(5092,6),(5098,6),(5100,6),(5101,6),(5116,6),(5117,6),(5124,6),(5125,6),(5147,6),(5154,6),(5158,6),(5178,6),(5181,6),(5186,6),(5193,6),(5206,6),(5222,6),(5227,6),(5229,6),(5230,6),(5236,6),(5238,6),(5252,6),(5258,6),(5267,6),(5271,6),(5272,6),(5273,6),(5274,6),(5282,6),(5290,6),(5310,6),(5315,6),(5317,6),(5327,6),(5335,6),(5342,6),(5344,6),(5346,6),(5360,6),(5361,6),(5362,6),(5370,6),(5374,6),(5375,6),(5380,6),(5382,6),(5385,6),(5405,6),(5415,6),(5424,6),(5426,6),(5427,6),(5430,6),(5435,6),(5437,6),(5439,6),(5444,6),(5461,6),(5465,6),(5470,6),(5471,6),(5472,6),(5477,6),(5485,6),(5493,6),(5496,6),(5501,6),(5513,6),(5514,6),(5523,6),(5527,6),(5528,6),(5529,6),(5544,6),(5550,6),(5553,6),(5571,6),(5577,6),(5578,6),(5579,6),(5585,6),(5597,6),(5601,6),(5607,6),(5608,6),(5615,6),(5633,6),(5634,6),(5638,6),(5639,6),(5640,6),(5642,6),(5677,6),(5678,6),(5683,6),(5686,6),(5695,6),(5697,6),(5698,6),(5701,6),(5712,6),(5718,6),(5720,6),(5724,6),(5730,6),(5743,6),(5749,6),(5751,6),(5755,6),(5772,6),(5793,6),(5796,6),(5799,6),(5800,6),(5809,6),(5810,6),(5824,6),(5826,6),(5830,6),(5833,6),(5844,6),(5865,6),(5883,6),(5886,6),(5889,6),(5890,6),(5899,6),(5902,6),(5906,6),(5907,6),(5912,6),(5922,6),(5923,6),(5924,6),(5925,6),(5930,6),(5938,6),(5943,6),(5948,6),(5949,6),(5950,6),(5955,6),(5985,6),(5989,6),(6000,6),(6002,6),(6012,6),(6013,6),(6044,6),(6065,6),(6067,6),(6069,6),(6070,6),(6076,6),(6081,6),(6087,6),(6088,6),(6090,6),(6093,6),(6095,6),(6102,6),(6113,6),(6118,6),(6119,6),(6124,6),(6132,6),(6138,6),(6146,6),(6155,6),(6157,6),(6165,6),(6166,6),(6167,6),(6183,6),(6201,6),(6205,6),(6206,6),(6210,6),(6218,6),(6219,6),(6231,6),(6244,6),(6247,6),(6254,6),(6255,6),(6269,6),(6270,6),(6271,6),(6274,6),(6280,6),(6283,6),(6285,6),(6287,6),(6294,6),(6311,6),(6312,6),(6317,6),(6335,6),(6340,6),(6345,6),(6347,6),(6349,6),(6351,6),(6359,6),(6361,6),(6363,6),(6364,6),(6365,6),(6411,6),(6416,6),(6420,6),(6424,6),(6427,6),(6437,6),(6448,6),(6465,6),(6466,6),(6472,6),(6475,6),(6478,6),(6496,6),(6499,6),(6515,6),(6528,6),(6529,6),(6533,6),(6534,6),(6557,6),(6561,6),(6562,6),(6570,6),(6578,6),(6586,6),(6592,6),(6602,6),(6604,6),(6606,6),(6609,6),(6618,6),(6624,6),(6631,6),(6632,6),(6642,6),(6646,6),(6663,6),(6664,6),(6665,6),(6673,6),(6674,6),(6677,6),(6682,6),(6687,6),(6694,6),(6698,6),(6701,6),(6702,6),(6706,6),(6713,6),(6722,6),(6726,6),(6730,6),(6734,6),(6739,6),(6740,6),(6744,6),(6749,6),(6762,6),(6766,6),(6774,6),(6783,6),(6788,6),(6789,6),(6794,6),(6798,6),(6808,6),(6814,6),(6822,6),(6831,6),(6839,6),(6844,6),(6849,6),(6850,6),(6861,6),(6868,6),(6875,6),(6876,6),(6889,6),(6890,6),(6891,6),(6900,6),(6902,6),(6913,6),(6918,6),(6920,6),(6922,6),(6924,6),(6928,6),(6932,6),(6947,6),(6948,6),(6959,6),(6960,6),(6964,6),(6965,6),(6977,6),(6985,6),(6988,6),(6989,6),(6993,6),(6994,6),(6998,6),(7009,6),(7014,6),(7020,6),(7026,6),(7028,6),(7037,6),(7038,6),(7040,6),(7041,6),(7045,6),(7046,6),(7049,6),(7053,6),(7057,6),(7058,6),(7060,6),(7068,6),(7076,6),(7082,6),(7096,6),(7099,6),(7103,6),(7110,6),(7114,6),(7118,6),(7119,6),(7125,6),(7147,6),(7153,6),(7171,6),(7183,6),(7184,6),(7185,6),(7186,6),(7198,6),(7200,6),(7201,6),(7217,6),(7228,6),(7229,6),(7230,6),(7233,6),(7244,6),(7252,6),(7259,6),(7264,6),(7280,6),(7282,6),(7289,6),(7290,6),(7297,6),(7298,6),(7309,6),(7310,6),(7311,6),(7313,6),(7316,6),(7331,6),(7336,6),(7340,6),(7354,6),(7357,6),(7374,6),(7376,6),(7377,6),(7385,6),(7389,6),(7391,6),(7399,6),(7408,6),(7416,6),(7417,6),(7420,6),(7431,6),(7437,6),(7440,6),(7441,6),(7445,6),(7450,6),(7453,6),(7457,6),(7460,6),(7474,6),(7475,6),(7476,6),(7487,6),(7488,6),(7502,6),(7503,6),(7504,6),(7523,6),(7524,6),(7528,6),(7531,6),(7541,6),(7544,6),(7546,6),(7557,6),(7559,6),(7560,6),(7562,6),(7564,6),(7568,6),(7574,6),(7587,6),(7589,6),(7591,6),(7614,6),(7616,6),(7624,6),(7629,6),(7631,6),(7644,6),(7645,6),(7647,6),(7649,6),(7664,6),(7674,6),(7677,6),(7687,6),(7698,6),(7700,6),(7704,6),(7718,6),(7729,6),(7731,6),(7732,6),(7742,6),(7746,6),(7749,6),(7751,6),(7753,6),(7754,6),(7757,6),(7765,6),(7778,6),(7782,6),(7784,6),(7795,6),(7801,6),(7805,6),(7811,6),(7812,6),(7819,6),(7826,6),(7837,6),(7839,6),(7842,6),(7846,6),(7848,6),(7852,6),(7863,6),(7864,6),(7870,6),(7871,6),(7881,6),(7883,6),(7894,6),(7896,6),(7898,6),(7902,6),(7917,6),(7923,6),(7925,6),(7937,6),(7945,6),(7949,6),(7952,6),(7963,6),(7968,6),(7974,6),(7982,6),(7983,6),(7995,6),(7999,6),(8000,6),(8010,6),(8019,6),(8021,6),(8023,6),(8038,6),(8039,6),(8048,6),(8052,6),(8054,6),(8060,6),(8062,6),(8063,6),(8069,6),(8073,6),(8078,6),(8098,6),(8100,6),(8110,6),(8111,6),(8117,6),(8119,6),(8130,6),(8138,6),(8144,6),(8147,6),(8148,6),(8149,6),(8154,6),(8155,6),(8164,6),(8168,6),(8175,6),(8176,6),(8177,6),(8188,6),(8189,6),(8215,6),(8219,6),(8225,6),(8240,6),(8253,6),(8258,6),(8261,6),(8265,6),(8267,6),(8270,6),(8272,6),(8273,6),(8275,6),(8281,6),(8282,6),(8285,6),(8286,6),(8287,6),(8288,6),(8289,6),(8293,6),(8296,6),(8298,6),(8300,6),(8304,6),(8305,6),(8306,6),(8307,6),(8327,6),(8333,6),(8336,6),(8342,6),(8344,6),(8348,6),(8355,6),(8357,6),(8363,6),(8380,6),(8392,6),(8395,6),(8407,6),(8416,6),(8417,6),(8431,6),(8439,6),(8455,6),(8456,6),(8459,6),(8461,6),(8472,6),(8475,6),(8481,6),(8483,6),(8489,6),(8493,6),(8500,6),(8506,6),(8517,6),(8518,6),(8519,6),(8522,6),(8523,6),(8546,6),(8552,6),(8558,6),(8566,6),(8574,6),(8575,6),(8583,6),(8587,6),(8597,6),(8606,6),(8611,6),(8612,6),(8618,6),(8619,6),(8626,6),(8629,6),(8631,6),(8632,6),(8635,6),(8640,6),(8662,6),(8673,6),(8675,6),(8683,6),(8685,6),(8689,6),(8690,6),(8705,6),(8707,6),(8709,6),(8715,6),(8727,6),(8729,6),(8739,6),(8741,6),(8744,6),(8745,6),(8749,6),(8766,6),(8767,6),(8769,6),(8770,6),(8777,6),(8778,6),(8780,6),(8782,6),(8788,6),(8791,6),(8814,6),(8827,6),(8828,6),(8830,6),(8836,6),(8838,6),(8839,6),(8850,6),(8852,6),(8860,6),(8862,6),(8875,6),(8877,6),(8878,6),(8879,6),(8886,6),(8901,6),(8909,6),(8910,6),(8912,6),(8914,6),(8919,6),(8926,6),(8942,6),(8951,6),(8955,6),(8956,6),(8957,6),(8958,6),(8968,6),(8969,6),(8978,6),(8980,6),(8990,6),(8991,6),(9014,6),(9022,6),(9026,6),(9027,6),(9036,6),(9059,6),(9060,6),(9064,6),(9067,6),(9070,6),(9080,6),(9103,6),(9109,6),(9112,6),(9115,6),(9116,6),(9127,6),(9142,6),(9144,6),(9160,6),(9164,6),(9171,6),(9178,6),(9182,6),(9187,6),(9189,6),(9194,6),(9195,6),(9206,6),(9225,6),(9227,6),(9240,6),(9244,6),(9247,6),(9251,6),(9267,6),(9273,6),(9279,6),(9283,6),(9288,6),(9301,6),(9302,6),(9304,6),(9313,6),(9314,6),(9317,6),(9332,6),(9342,6),(9345,6),(9348,6),(9361,6),(9367,6),(9370,6),(9372,6),(9387,6),(9388,6),(9389,6),(9392,6),(9405,6),(9408,6),(9410,6),(9425,6),(9449,6),(9450,6),(9451,6),(9452,6),(9454,6),(9457,6),(9462,6),(9464,6),(9481,6),(9484,6),(9489,6),(9494,6),(9496,6),(9507,6),(9514,6),(9522,6),(9530,6),(9532,6),(9534,6),(9546,6),(9556,6),(9564,6),(9571,6),(9582,6),(9594,6),(9601,6),(9603,6),(9614,6),(9623,6),(9626,6),(9629,6),(9630,6),(9635,6),(9642,6),(9653,6),(9672,6),(9675,6),(9679,6),(9682,6),(9687,6),(9689,6),(9695,6),(9708,6),(9714,6),(9720,6),(9723,6),(9724,6),(9730,6),(9738,6),(9746,6),(9760,6),(9769,6),(9771,6),(9774,6),(9781,6),(9788,6),(9799,6),(9808,6),(9811,6),(9812,6),(9813,6),(9820,6),(9832,6),(9833,6),(9834,6),(9840,6),(9841,6),(9846,6),(9850,6),(9851,6),(9852,6),(9854,6),(9858,6),(9859,6),(9864,6),(9873,6),(9879,6),(9880,6),(9890,6),(9896,6),(9897,6),(9899,6),(9900,6),(9904,6),(9907,6),(9923,6),(9931,6),(9938,6),(9947,6),(9951,6),(9954,6),(9955,6),(9961,6),(9962,6),(9987,6),(9991,6),(10005,6),(10007,6),(10009,6),(10011,6),(10014,6),(10020,6),(10025,6),(10030,6),(10034,6),(10050,6),(10055,6),(10060,6),(10072,6),(10079,6),(10085,6),(10092,6),(10096,6),(10099,6),(10101,6),(10103,6),(10107,6),(10108,6),(10109,6),(10111,6),(10112,6),(10123,6),(10124,6),(10125,6),(10127,6),(10132,6),(10138,6),(10144,6),(10148,6),(10154,6),(10160,6),(10162,6),(10169,6),(10170,6),(10178,6),(10185,6),(10186,6),(10187,6),(10188,6),(10200,6),(10202,6),(10209,6),(10212,6),(10214,6),(10216,6),(10223,6),(10229,6),(10233,6),(10236,6),(10240,6),(10242,6),(10246,6),(10249,6),(10252,6),(10253,6),(10256,6),(10260,6),(10277,6),(10285,6),(10295,6),(10297,6),(10314,6),(10323,6),(10327,6),(10335,6),(10339,6),(10340,6),(10353,6),(10354,6),(10358,6),(10365,6),(10368,6),(10375,6),(10376,6),(10384,6),(10385,6),(10386,6),(10392,6),(10396,6),(10401,6),(10420,6),(10428,6),(10429,6),(10433,6),(10442,6),(10443,6),(10445,6),(10450,6),(10464,6),(10467,6),(10480,6),(10484,6),(10492,6),(10511,6),(10513,6),(10515,6),(10516,6),(10518,6),(10531,6),(10535,6),(10566,6),(10571,6),(10582,6),(10585,6),(10595,6),(10601,6),(10612,6),(10614,6),(10619,6),(10626,6),(10635,6),(10659,6),(10668,6),(10669,6),(10673,6),(10677,6),(10682,6),(10686,6),(10687,6),(10694,6),(10699,6),(10719,6),(10722,6),(10728,6),(10730,6),(10731,6),(10732,6),(10739,6),(10744,6),(10752,6),(10754,6),(10783,6),(10792,6),(10794,6),(10804,6),(10829,6),(10834,6),(10835,6),(10836,6),(10849,6),(10853,6),(10858,6),(10861,6),(10864,6),(10874,6),(10883,6),(10910,6),(10939,6),(10942,6),(10947,6),(10950,6),(10981,6),(10992,6),(10998,6),(11010,6),(11011,6),(11014,6),(11015,6),(11019,6),(11023,6),(11031,6),(11033,6),(11046,6),(11058,6),(11060,6),(11061,6),(11064,6),(11065,6),(11075,6),(11082,6),(11085,6),(11092,6),(11108,6),(11109,6),(11112,6),(11116,6),(11117,6),(11121,6),(11127,6),(11134,6),(11140,6),(11143,6),(11147,6),(11148,6),(11162,6),(11172,6),(11173,6),(11178,6),(11186,6),(11195,6),(11197,6),(11201,6),(11203,6),(11206,6),(11207,6),(11212,6),(11214,6),(11216,6),(11228,6),(11229,6),(11231,6),(11241,6),(11243,6),(11258,6),(11265,6),(11270,6),(11274,6),(11287,6),(11288,6),(11297,6),(11299,6),(11306,6),(11307,6),(11316,6),(11320,6),(11321,6),(11332,6),(11333,6),(11336,6),(11348,6),(11351,6),(11352,6),(11358,6),(11362,6),(11364,6),(11381,6),(11400,6),(11401,6),(11414,6),(11424,6),(11426,6),(11432,6),(11435,6),(11436,6),(11452,6),(11457,6),(11460,6),(11483,6),(11484,6),(11488,6),(11493,6),(11505,6),(11508,6),(11528,6),(11530,6),(11531,6),(11537,6),(11540,6),(11542,6),(11570,6),(11575,6),(11576,6),(11589,6),(11592,6),(11594,6),(11612,6),(11615,6),(11617,6),(11639,6),(11650,6),(11655,6),(11659,6),(11665,6),(11673,6),(11696,6),(11698,6),(11702,6),(11708,6),(11715,6),(11727,6),(11730,6),(11746,6),(11751,6),(11754,6),(11755,6),(11777,6),(11781,6),(11784,6),(11788,6),(11790,6),(11804,6),(11813,6),(11819,6),(11832,6),(11839,6),(11844,6),(11865,6),(11872,6),(11877,6),(11878,6),(11881,6),(11882,6),(11891,6),(11898,6),(11900,6),(11911,6),(11916,6),(11933,6),(11945,6),(11950,6),(11979,6),(12000,6),(12004,6),(12009,6),(12015,6),(12020,6),(12023,6),(12029,6),(12038,6),(12057,6),(12060,6),(12108,6),(12110,6),(12111,6),(12114,6),(12115,6),(12126,6),(12129,6),(12132,6),(12138,6),(12148,6),(12149,6),(12151,6),(12153,6),(12159,6),(12160,6),(12165,6),(12184,6),(12185,6),(12199,6),(12204,6),(12207,6),(12208,6),(12209,6),(12215,6),(12216,6),(12218,6),(12221,6),(12235,6),(12236,6),(12237,6),(12242,6),(12247,6),(12251,6),(12256,6),(12266,6),(12270,6),(12278,6),(12279,6),(12284,6),(12291,6),(12300,6),(12304,6),(12307,6),(12315,6),(12320,6),(12321,6),(12322,6),(12331,6),(12335,6),(12341,6),(12357,6),(12358,6),(12376,6),(12382,6),(12384,6),(12385,6),(12400,6),(12410,6),(12414,6),(12415,6),(12424,6),(12429,6),(12432,6),(12438,6),(12442,6),(12453,6),(12466,6),(12471,6),(12472,6),(12476,6),(12498,6),(12504,6),(12511,6),(12523,6),(12527,6),(12534,6),(12539,6),(12546,6),(12554,6),(12562,6),(12573,6),(12583,6),(12596,6),(12608,6),(12614,6),(12626,6),(12634,6),(12637,6),(12641,6),(12648,6),(12652,6),(12657,6),(12675,6),(12681,6),(12684,6),(12685,6),(12687,6),(12691,6),(12700,6),(12713,6),(12725,6),(12726,6),(12730,6),(12733,6),(12734,6),(12735,6),(12742,6),(12747,6),(12758,6),(12760,6),(12762,6),(12764,6),(12769,6),(12773,6),(12795,6),(12796,6),(12804,6),(12805,6),(12815,6),(12822,6),(12830,6),(12834,6),(12845,6),(12846,6),(12851,6),(12859,6),(12862,6),(12873,6),(12889,6),(12896,6),(12899,6),(12900,6),(12901,6),(12902,6),(12903,6),(12905,6),(12933,6),(12956,6),(12975,6),(12985,6),(12989,6),(12992,6),(12993,6),(12999,6),(13003,6),(13030,6),(13035,6),(13041,6),(13045,6),(13049,6),(13056,6),(13064,6),(13069,6),(13071,6),(13077,6),(13083,6),(13088,6),(13092,6),(13093,6),(13096,6),(13099,6),(13115,6),(13117,6),(13118,6),(13119,6),(13120,6),(13127,6),(13129,6),(13133,6),(13138,6),(13142,6),(13149,6),(13151,6),(13152,6),(13154,6),(13168,6),(13171,6),(13177,6),(13178,6),(13182,6),(13191,6),(13196,6),(13199,6),(13202,6),(13206,6),(13207,6),(13208,6),(13210,6),(13216,6),(13232,6),(13234,6),(13238,6),(13241,6),(13244,6),(13251,6),(13260,6),(13266,6),(13267,6),(13271,6),(13296,6),(13308,6),(13310,6),(13312,6),(13321,6),(13325,6),(13329,6),(13341,6),(13345,6),(13351,6),(13358,6),(13372,6),(13377,6),(13398,6),(13403,6),(13404,6),(13408,6),(13417,6),(13426,6),(13455,6),(13456,6),(13466,6),(13472,6),(13479,6),(13481,6),(13492,6),(13496,6),(13507,6),(13514,6),(13518,6),(13530,6),(13535,6),(13536,6),(13537,6),(13554,6),(13556,6),(13560,6),(13566,6),(13590,6),(13595,6),(13606,6),(13609,6),(13613,6),(13616,6),(13629,6),(13630,6),(13672,6),(13673,6),(13675,6),(13683,6),(13708,6),(13713,6),(13725,6),(13726,6),(13737,6),(13740,6),(13744,6),(13745,6),(13753,6),(13754,6),(13755,6),(13760,6),(13761,6),(13764,6),(13765,6),(13770,6),(13774,6),(13780,6),(13781,6),(13793,6),(13796,6),(13799,6),(13800,6),(13803,6),(13823,6),(13830,6),(13837,6),(13838,6),(13847,6),(13856,6),(13859,6),(13873,6),(13879,6),(13880,6),(13881,6),(13882,6),(13889,6),(13891,6),(13896,6),(13897,6),(13900,6),(13906,6),(13907,6),(13918,6),(13920,6),(13924,6),(13925,6),(13926,6),(13932,6),(13934,6),(13936,6),(13937,6),(13941,6),(13943,6),(13944,6),(13948,6),(13950,6),(13956,6),(13961,6),(13963,6),(13972,6),(13976,6),(13983,6),(13992,6),(13997,6),(14000,6),(14007,6),(14016,6),(14034,6),(14052,6),(14058,6),(14067,6),(14069,6),(14070,6),(14073,6),(14080,6),(14083,6),(14092,6),(14093,6),(14115,6),(14119,6),(14120,6),(14123,6),(14164,6),(14170,6),(14179,6),(14190,6),(14192,6),(14200,6),(14206,6),(14212,6),(14213,6),(14219,6),(14221,6),(14230,6),(14236,6),(14246,6),(14251,6),(14252,6),(14267,6),(14279,6),(14282,6),(14285,6),(14286,6),(14287,6),(14290,6),(14291,6),(14294,6),(14312,6),(14316,6),(14322,6),(14326,6),(14337,6),(14347,6),(14349,6),(14357,6),(14358,6),(14362,6),(14382,6),(14393,6),(14396,6),(14403,6),(14404,6),(14409,6),(14416,6),(14421,6),(14427,6),(14428,6),(14431,6),(14432,6),(14433,6),(14435,6),(14436,6),(14440,6),(14442,6),(14454,6),(14456,6),(14463,6),(14503,6),(14504,6),(14507,6),(14529,6),(14538,6),(14543,6),(14553,6),(14558,6),(14562,6),(14566,6),(14581,6),(14582,6),(14591,6),(14593,6),(14594,6),(14599,6),(14604,6),(14609,6),(14614,6),(14615,6),(14628,6),(14636,6),(14638,6),(14639,6),(14641,6),(14644,6),(14655,6),(14658,6),(14659,6),(14663,6),(14670,6),(14678,6),(14679,6),(14687,6),(14696,6),(14701,6),(14708,6),(14714,6),(14721,6),(14728,6),(14740,6),(14749,6),(14762,6),(14763,6),(14765,6),(14776,6),(14782,6),(14793,6),(14800,6),(14811,6),(14814,6),(14816,6),(14832,6),(14836,6),(14837,6),(14838,6),(14842,6),(14845,6),(14853,6),(14859,6),(14866,6),(14870,6),(14875,6),(14883,6),(14884,6),(14900,6),(14910,6),(14925,6),(14927,6),(14928,6),(14929,6),(14934,6),(14939,6),(14940,6),(14944,6),(14963,6),(14969,6),(14982,6),(14984,6),(14990,6),(14993,6),(15005,6),(15010,6),(15026,6),(15027,6),(15029,6),(15037,6),(15073,6),(15074,6),(15081,6),(15101,6),(15107,6),(15110,6),(15113,6),(15117,6),(15118,6),(15119,6),(15121,6),(15139,6),(15145,6),(15153,6),(15155,6),(15161,6),(15171,6),(15174,6),(15175,6),(15180,6),(15191,6),(15192,6),(15193,6),(15200,6),(15202,6),(15203,6),(15205,6),(15207,6),(15210,6),(15211,6),(15213,6),(15215,6),(15217,6),(15219,6),(15220,6),(15221,6),(15234,6),(15239,6),(15241,6),(15250,6),(15253,6),(15260,6),(15261,6),(15268,6),(15269,6),(15275,6),(15281,6),(15287,6),(15304,6),(15312,6),(15314,6),(15315,6),(15324,6),(15329,6),(15330,6),(15337,6),(15340,6),(15345,6),(15350,6),(15369,6),(15374,6),(15381,6),(15383,6),(15390,6),(15392,6),(15394,6),(15395,6),(15398,6),(15399,6),(15400,6),(15401,6),(15405,6),(15413,6),(15419,6),(15427,6),(15428,6),(15440,6),(15444,6),(15447,6),(15451,6),(15452,6),(15453,6),(15454,6),(15463,6),(15469,6),(15478,6),(15479,6),(15480,6),(15481,6),(15485,6),(15491,6),(15493,6),(15496,6),(15504,6),(15515,6),(15516,6),(15521,6),(15534,6),(15535,6),(15541,6),(15547,6),(15553,6),(15554,6),(15560,6),(15561,6),(15563,6),(15573,6),(15574,6),(15580,6),(15586,6),(15594,6),(15609,6),(15625,6),(15636,6),(15642,6),(15652,6),(15656,6),(15659,6),(15662,6),(15664,6),(15672,6),(15682,6),(15691,6),(15692,6),(15700,6),(15701,6),(15707,6),(15733,6),(15737,6),(15738,6),(15743,6),(15744,6),(15758,6),(15773,6),(15782,6),(15799,6),(15805,6),(15806,6),(15824,6),(15828,6),(15831,6),(15860,6),(15864,6),(15865,6),(15868,6),(15879,6),(15880,6),(15887,6),(15890,6),(15895,6),(15899,6),(15903,6),(15908,6),(15909,6),(15917,6),(15926,6),(15931,6),(15933,6),(15934,6),(15937,6),(15945,6),(15970,6),(15975,6),(15976,6),(15977,6),(15978,6),(15995,6),(15996,6),(15998,6),(16009,6),(16024,6),(16032,6),(16035,6),(16043,6),(16052,6),(16053,6),(16059,6),(16069,6),(16078,6),(16083,6),(16085,6),(16098,6),(16106,6),(16114,6),(16115,6),(16116,6),(16128,6),(16131,6),(16139,6),(16144,6),(16145,6),(16149,6),(16160,6),(16161,6),(16180,6),(16182,6),(16189,6),(16196,6),(16199,6),(16200,6),(16229,6),(16230,6),(16233,6),(16237,6),(16239,6),(16252,6),(16269,6),(16274,6),(16280,6),(16284,6),(16286,6),(16291,6),(16296,6),(16310,6),(16318,6),(16319,6),(16320,6),(16325,6),(16333,6),(16350,6),(16351,6),(16358,6),(16362,6),(16363,6),(16364,6),(16366,6),(16370,6),(16383,6),(16385,6),(16404,6),(16408,6),(16412,6),(16416,6),(16428,6),(16429,6),(16437,6),(16443,6),(16445,6),(16450,6),(16457,6),(16458,6),(16460,6),(16461,6),(16462,6),(16466,6),(16469,6),(16471,6),(16472,6),(16475,6),(16476,6),(16479,6),(16480,6),(16484,6),(16487,6),(16493,6),(16494,6),(16502,6),(16504,6),(16507,6),(16514,6),(16516,6),(16521,6),(16524,6),(16527,6),(16531,6),(16534,6),(16552,6),(16553,6),(16555,6),(16579,6),(16595,6),(16601,6),(16611,6),(16612,6),(16618,6),(16626,6),(16640,6),(16653,6),(16655,6),(16657,6),(16658,6),(16661,6),(16666,6),(16677,6),(16685,6),(16686,6),(16698,6),(16705,6),(16706,6),(16707,6),(16709,6),(16710,6),(16727,6),(16730,6),(16739,6),(16751,6),(16755,6),(16760,6),(16764,6),(16777,6),(16793,6),(16804,6),(16817,6),(16819,6),(16823,6),(16824,6),(16826,6),(16830,6),(16832,6),(16841,6),(16843,6),(16846,6),(16851,6),(16865,6),(16866,6),(16871,6),(16874,6),(16891,6),(16893,6),(16895,6),(16901,6),(16902,6),(16912,6),(16917,6),(16926,6),(16936,6),(16940,6),(16952,6),(16953,6),(16966,6),(16970,6),(16971,6),(16973,6),(16985,6),(16987,6),(16998,6),(17001,6),(17005,6),(17008,6),(17010,6),(17017,6),(17018,6),(17028,6),(17035,6),(17041,6),(17042,6),(17046,6),(17048,6),(17051,6),(17052,6),(17054,6),(17060,6),(17063,6),(17066,6),(17074,6),(17083,6),(17086,6),(17087,6),(17095,6),(17100,6),(17101,6),(17105,6),(17112,6),(17124,6),(17134,6),(17142,6),(17143,6),(17146,6),(17163,6),(17174,6),(17179,6),(17184,6),(17185,6),(17192,6),(17198,6),(17211,6),(17212,6),(17214,6),(17216,6),(17222,6),(17230,6),(17244,6),(17245,6),(17246,6),(17250,6),(17255,6),(17262,6),(17263,6),(17269,6),(17271,6),(17273,6),(17279,6),(17280,6),(17286,6),(17294,6),(17300,6),(17301,6),(17304,6),(17313,6),(17314,6),(17315,6),(17324,6),(17325,6),(17337,6),(17340,6),(17344,6),(17352,6),(17360,6),(17367,6),(17369,6),(17370,6),(17373,6),(17394,6),(17401,6),(17409,6),(17413,6),(17422,6),(17423,6),(17430,6),(17431,6),(17433,6),(17435,6),(17440,6),(17444,6),(17446,6),(17450,6),(17451,6),(17476,6),(17484,6),(17496,6),(17498,6),(17507,6),(17508,6),(17514,6),(17517,6),(17518,6),(17520,6),(17524,6),(17527,6),(17532,6),(17539,6),(17540,6),(17551,6),(17557,6),(17571,6),(17573,6),(17585,6),(17588,6),(17591,6),(17610,6),(17614,6),(17619,6),(17631,6),(17632,6),(17639,6),(17655,6),(17664,6),(17671,6),(17672,6),(17673,6),(17678,6),(17683,6),(17691,6),(17694,6),(17701,6),(17706,6),(17710,6),(17717,6),(17722,6),(17723,6),(17725,6),(17729,6),(17731,6),(17736,6),(17741,6),(17755,6),(17756,6),(17759,6),(17769,6),(17772,6),(17774,6),(17778,6),(17784,6),(17786,6),(17793,6),(17796,6),(17802,6),(17809,6),(17814,6),(17825,6),(17833,6),(17835,6),(17838,6),(17841,6),(17844,6),(17847,6),(17852,6),(17864,6),(17869,6),(17880,6),(17882,6),(17896,6),(17897,6),(17900,6),(17901,6),(17902,6),(17912,6),(17916,6),(17937,6),(17943,6),(17948,6),(17949,6),(17952,6),(17955,6),(17956,6),(17958,6),(17963,6),(17984,6),(17987,6),(17990,6),(17994,6),(18004,6),(18006,6),(18021,6),(18033,6),(18052,6),(18054,6),(18071,6),(18076,6),(18080,6),(18084,6),(18087,6),(18089,6),(18092,6),(18100,6),(18111,6),(18115,6),(18118,6),(18127,6),(18133,6),(18142,6),(18143,6),(18147,6),(18159,6),(18162,6),(18165,6),(18176,6),(18177,6),(18180,6),(18182,6),(18184,6),(18188,6),(18202,6),(18220,6),(18221,6),(18222,6),(18224,6),(18238,6),(18241,6),(18256,6),(18259,6),(18266,6),(18276,6),(18287,6),(18291,6),(18295,6),(18306,6),(18307,6),(18315,6),(18316,6),(18322,6),(18331,6),(18333,6),(18334,6),(18337,6),(18341,6),(18342,6),(18347,6),(18357,6),(18359,6),(18363,6),(18364,6),(18372,6),(18376,6),(18379,6),(18390,6),(18394,6),(18398,6),(18401,6),(18411,6),(18415,6),(18418,6),(18424,6),(18436,6),(18439,6),(18440,6),(18441,6),(18447,6),(18449,6),(18452,6),(18453,6),(18456,6),(18463,6),(18465,6),(18482,6),(18483,6),(18484,6),(18485,6),(18486,6),(18490,6),(18492,6),(18499,6),(18500,6),(18502,6),(18514,6),(18521,6),(18536,6),(18546,6),(18549,6),(18563,6),(18566,6),(18569,6),(18575,6),(18579,6),(18590,6),(18596,6),(18601,6),(18602,6),(18605,6),(18614,6),(18618,6),(18635,6),(18642,6),(18645,6),(18647,6),(18658,6),(18663,6),(18677,6),(18681,6),(18688,6),(18689,6),(18694,6),(18713,6),(18720,6),(18723,6),(18725,6),(18735,6),(18751,6),(18754,6),(18765,6),(18772,6),(18777,6),(18782,6),(18783,6),(18784,6),(18785,6),(18790,6),(18797,6),(18800,6),(18805,6),(18813,6),(18816,6),(18822,6),(18831,6),(18835,6),(18837,6),(18838,6),(18843,6),(18855,6),(18856,6),(18861,6),(18872,6),(18876,6),(18877,6),(18879,6),(18889,6),(18891,6),(18893,6),(18894,6),(18905,6),(18906,6),(18911,6),(18919,6),(18929,6),(18940,6),(18941,6),(18942,6),(18947,6),(18963,6),(18966,6),(18971,6),(18974,6),(18981,6),(18983,6),(18994,6),(18995,6),(18996,6),(18998,6),(19001,6),(19007,6),(19008,6),(19014,6),(19015,6),(19016,6),(19017,6),(19018,6),(19020,6),(19026,6),(19032,6),(19044,6),(19049,6),(19052,6),(19054,6),(19080,6),(19081,6),(19083,6),(19085,6),(19089,6),(19091,6),(19094,6),(19097,6),(19101,6),(19106,6),(19109,6),(19112,6),(19119,6),(19128,6),(19145,6),(19156,6),(19160,6),(19164,6),(19166,6),(19168,6),(19177,6),(19184,6),(19185,6),(19190,6),(19196,6),(19197,6),(19199,6),(19216,6),(19218,6),(19221,6),(19235,6),(19236,6),(19237,6),(19245,6),(19247,6),(19253,6),(19254,6),(19257,6),(19263,6),(19264,6),(19279,6),(19282,6),(19285,6),(19293,6),(19326,6),(19333,6),(19335,6),(19344,6),(19345,6),(19353,6),(19360,6),(19369,6),(19373,6),(19374,6),(19395,6),(19398,6),(19402,6),(19408,6),(19412,6),(19413,6),(19436,6),(19439,6),(19441,6),(19442,6),(19450,6),(19452,6),(19472,6),(19473,6),(19492,6),(19499,6),(19500,6),(19516,6),(19518,6),(19525,6),(19539,6),(19542,6),(19546,6),(19550,6),(19558,6),(19562,6),(19563,6),(19588,6),(19590,6),(19597,6),(19600,6),(19610,6),(19616,6),(19625,6),(19629,6),(19638,6),(19643,6),(19645,6),(19651,6),(19666,6),(19667,6),(19673,6),(19680,6),(19684,6),(19687,6),(19688,6),(19689,6),(19692,6),(19701,6),(19703,6),(19705,6),(19708,6),(19712,6),(19718,6),(19728,6),(19742,6),(19755,6),(19758,6),(19761,6),(19768,6),(19775,6),(19779,6),(19781,6),(19787,6),(19802,6),(19810,6),(19811,6),(19815,6),(19816,6),(19819,6),(19823,6),(19828,6),(19837,6),(19844,6),(19846,6),(19864,6),(19869,6),(19894,6),(19903,6),(19910,6),(19918,6),(19920,6),(19924,6),(19927,6),(19935,6),(19943,6),(19957,6),(19972,6),(19977,6),(19979,6),(19980,6),(19984,6),(19997,6),(20000,6),(20022,6),(20024,6),(20025,6),(20027,6),(20031,6),(20038,6),(20039,6),(20046,6),(20050,6),(20064,6),(20066,6),(20067,6),(20072,6),(20084,6),(20085,6),(20086,6),(20095,6),(20096,6),(20097,6),(20100,6),(20114,6),(20115,6),(20116,6),(20118,6),(20131,6),(20132,6),(20138,6),(20139,6),(20140,6),(20141,6),(20145,6),(20146,6),(20147,6),(20149,6),(20154,6),(20156,6),(20158,6),(20179,6),(20182,6),(20189,6),(20196,6),(20200,6),(20201,6),(20203,6),(20211,6),(20214,6),(20215,6),(20223,6),(20225,6),(20233,6),(20254,6),(20256,6),(20261,6),(20264,6),(20268,6),(20269,6),(20272,6),(20281,6),(20284,6),(20285,6),(20286,6),(20289,6),(20290,6),(20294,6),(20296,6),(20309,6),(20317,6),(20318,6),(20325,6),(20326,6),(20328,6),(20332,6),(20367,6),(20376,6),(20381,6),(20394,6),(20437,6),(20441,6),(20444,6),(20445,6),(20458,6),(20464,6),(20467,6),(20468,6),(20473,6),(20475,6),(20477,6),(20483,6),(20506,6),(20516,6),(20517,6),(20524,6),(20531,6),(20533,6),(20543,6),(20545,6),(20548,6),(20550,6),(20552,6),(20560,6),(20566,6),(20568,6),(20581,6),(20593,6),(20597,6),(20601,6),(20605,6),(20608,6),(20622,6),(20623,6),(20629,6),(20633,6),(20638,6),(20640,6),(20646,6),(20648,6),(20657,6),(20663,6),(20688,6),(20694,6),(20702,6),(20703,6),(20711,6),(20721,6),(20729,6),(20735,6),(20739,6),(20741,6),(20748,6),(20769,6),(20778,6),(20788,6),(20792,6),(20799,6),(20802,6),(20805,6),(20809,6),(20810,6),(20817,6),(20823,6),(20825,6),(20834,6),(20836,6),(20843,6),(20852,6),(20870,6),(20871,6),(20884,6),(20886,6),(20889,6),(20890,6),(20892,6),(20897,6),(20898,6),(20900,6),(20903,6),(20905,6),(20907,6),(20912,6),(20916,6),(20921,6),(20922,6),(20925,6),(20928,6),(20938,6),(20948,6),(20951,6),(20956,6),(20958,6),(20965,6),(20972,6),(20973,6),(20979,6),(20984,6),(20994,6),(20997,6),(20999,6),(21002,6),(21004,6),(21010,6),(21024,6),(21028,6),(21038,6),(21045,6),(21046,6),(21052,6),(21059,6),(21061,6),(21063,6),(21067,6),(21068,6),(21072,6),(21073,6),(21080,6),(21081,6),(21090,6),(21097,6),(21104,6),(21107,6),(21110,6),(21121,6),(21123,6),(21138,6),(21150,6),(21151,6),(21160,6),(21172,6),(21185,6),(21190,6),(21192,6),(21197,6),(21198,6),(21202,6),(21224,6),(21232,6),(21233,6),(21241,6),(21248,6),(21251,6),(21253,6),(21262,6),(21269,6),(21274,6),(21276,6),(21285,6),(21300,6),(21319,6),(21321,6),(21323,6),(21324,6),(21327,6),(21329,6),(21330,6),(21349,6),(21357,6),(21368,6),(21374,6),(21375,6),(21385,6),(21386,6),(21387,6),(21389,6),(21391,6),(21416,6),(21421,6),(21439,6),(21440,6),(21442,6),(21447,6),(21453,6),(21457,6),(21465,6),(21477,6),(21480,6),(21485,6),(21490,6),(21515,6),(21521,6),(21530,6),(21553,6),(21559,6),(21560,6),(21569,6),(21575,6),(21581,6),(21597,6),(21605,6),(21607,6),(21618,6),(21619,6),(21624,6),(21629,6),(21636,6),(21642,6),(21648,6),(21656,6),(21665,6),(21678,6),(21683,6),(21688,6),(21690,6),(21692,6),(21694,6),(21701,6),(21707,6),(21709,6),(21721,6),(21732,6),(21737,6),(21744,6),(21750,6),(21753,6),(21755,6),(21763,6),(21773,6),(21781,6),(21787,6),(21792,6),(21794,6),(21796,6),(21814,6),(21820,6),(21822,6),(21832,6),(21834,6),(21839,6),(21844,6),(21855,6),(21859,6),(21867,6),(21882,6),(21886,6),(21887,6),(21888,6),(21889,6),(21890,6),(21896,6),(21904,6),(21912,6),(21919,6),(21922,6),(21940,6),(21941,6),(21943,6),(21949,6),(21952,6),(21957,6),(21961,6),(21962,6),(21963,6),(21964,6),(21970,6),(21971,6),(21972,6),(21976,6),(21978,6),(21987,6),(21997,6),(22012,6),(22015,6),(22021,6),(22031,6),(22032,6),(22038,6),(22039,6),(22040,6),(22045,6),(22059,6),(22062,6),(22063,6),(22065,6),(22067,6),(22080,6),(22085,6),(22087,6),(22094,6),(22097,6),(22100,6),(22107,6),(22111,6),(22127,6),(22129,6),(22145,6),(22150,6),(22156,6),(22157,6),(22158,6),(22159,6),(22163,6),(22167,6),(22184,6),(22187,6),(22192,6),(22223,6),(22224,6),(22236,6),(22237,6),(22239,6),(22248,6),(22251,6),(22281,6),(22290,6),(22293,6),(22300,6),(22305,6),(22310,6),(22312,6),(22325,6),(22329,6),(22333,6),(22342,6),(22345,6),(22349,6),(22352,6),(22370,6),(22373,6),(22378,6),(22380,6),(22382,6),(22394,6),(22397,6),(22399,6),(22413,6),(22415,6),(22419,6),(22426,6),(22445,6),(22451,6),(22452,6),(22455,6),(22456,6),(22464,6),(22466,6),(22468,6),(22472,6),(22474,6),(22495,6),(22498,6),(22499,6),(22501,6),(22503,6),(22504,6),(22508,6),(22513,6),(22518,6),(22525,6),(22531,6),(22540,6),(22543,6),(22551,6),(22552,6),(22554,6),(22560,6),(22563,6),(22570,6),(22579,6),(22584,6),(22589,6),(22608,6),(22611,6),(22615,6),(22626,6),(22634,6),(22639,6),(22644,6),(22646,6),(22652,6),(22653,6),(22657,6),(22678,6),(22679,6),(22680,6),(22683,6),(22689,6),(22691,6),(22693,6),(22702,6),(22705,6),(22722,6),(22726,6),(22733,6),(22741,6),(22744,6),(22749,6),(22752,6),(22755,6),(22757,6),(22759,6),(22760,6),(22763,6),(22769,6),(22771,6),(22773,6),(22782,6),(22786,6),(22787,6),(22788,6),(22791,6),(22795,6),(22801,6),(22802,6),(22803,6),(22816,6),(22821,6),(22833,6),(22837,6),(22845,6),(22846,6),(22852,6),(22871,6),(22878,6),(22888,6),(22895,6),(22901,6),(22910,6),(22912,6),(22915,6),(22924,6),(22925,6),(22932,6),(22941,6),(22948,6),(22952,6),(22976,6),(22978,6),(22983,6),(22992,6),(23006,6),(23008,6),(23011,6),(23016,6),(23024,6),(23030,6),(23035,6),(23037,6),(23040,6),(23044,6),(23048,6),(23052,6),(23054,6),(23056,6),(23070,6),(23088,6),(23095,6),(23101,6),(23105,6),(23110,6),(23112,6),(23113,6),(23116,6),(23120,6),(23127,6),(23140,6),(23144,6),(23146,6),(23151,6),(23157,6),(23158,6),(23170,6),(23192,6),(23193,6),(23195,6),(23199,6),(23204,6),(23215,6),(23219,6),(23220,6),(23227,6),(23237,6),(23244,6),(23246,6),(23248,6),(23265,6),(23284,6),(23286,6),(23300,6),(23302,6),(23307,6),(23324,6),(23326,6),(23333,6),(23341,6),(23342,6),(23347,6),(23370,6),(23376,6),(23377,6),(23383,6),(23396,6),(23399,6),(23402,6),(23409,6),(23416,6),(23420,6),(23433,6),(23442,6),(23445,6),(23447,6),(23460,6),(23468,6),(23469,6),(23472,6),(23478,6),(23479,6),(23485,6),(23489,6),(23500,6),(23501,6),(23506,6),(23508,6),(23518,6),(23531,6),(23535,6),(23547,6),(23552,6),(23554,6),(23560,6),(23563,6),(23574,6),(23577,6),(23579,6),(23593,6),(23596,6),(23597,6),(23622,6),(23624,6),(23633,6),(23640,6),(23642,6),(23657,6),(23668,6),(23671,6),(23675,6),(23681,6),(23684,6),(23694,6),(23709,6),(23710,6),(23712,6),(23713,6),(23722,6),(23733,6),(23735,6),(23739,6),(23741,6),(23755,6),(23756,6),(23761,6),(23768,6),(23781,6),(23783,6),(23794,6),(23800,6),(23801,6),(23805,6),(23813,6),(23814,6),(23815,6),(23831,6),(23836,6),(23837,6),(23841,6),(23853,6),(23858,6),(23873,6),(23877,6),(23879,6),(23881,6),(23884,6),(23894,6),(23895,6),(23906,6),(23910,6),(23927,6),(23939,6),(23947,6),(23949,6),(23953,6),(23957,6),(23973,6),(23977,6),(23981,6),(23987,6),(23991,6),(23992,6),(23995,6),(24011,6),(24015,6),(24028,6),(24030,6),(24035,6),(24037,6),(24041,6),(24053,6),(24056,6),(24062,6),(24063,6),(24069,6),(24072,6),(24086,6),(24099,6),(24112,6),(24115,6),(24120,6),(24133,6),(24135,6),(24147,6),(24149,6),(24150,6),(24157,6),(24164,6),(24166,6),(24179,6),(24186,6),(24195,6),(24210,6),(24215,6),(24222,6),(24229,6),(24230,6),(24233,6),(24248,6),(24258,6),(24264,6),(24275,6),(24280,6),(24281,6),(24283,6),(24288,6),(24289,6),(24291,6),(24306,6),(24313,6),(24324,6),(24338,6),(24342,6),(24348,6),(24353,6),(24363,6),(24368,6),(24378,6),(24391,6),(24401,6),(24404,6),(24432,6),(24446,6),(24451,6),(24452,6),(24455,6),(24460,6),(24461,6),(24462,6),(24482,6),(24498,6),(24503,6),(24506,6),(24519,6),(24524,6),(24545,6),(24553,6),(24562,6),(24569,6),(24586,6),(24597,6),(24606,6),(24611,6),(24613,6),(24623,6),(24627,6),(24633,6),(24638,6),(24640,6),(24643,6),(24649,6),(24657,6),(24664,6),(24668,6),(24672,6),(24679,6),(24681,6),(24686,6),(24688,6),(24693,6),(24704,6),(24708,6),(24709,6),(24711,6),(24714,6),(24724,6),(24726,6),(24731,6),(24743,6),(24745,6),(24746,6),(24749,6),(24750,6),(24769,6),(24772,6),(24776,6),(24781,6),(24782,6),(24789,6),(24798,6),(24805,6),(24808,6),(24810,6),(24814,6),(24815,6),(24817,6),(24822,6),(24825,6),(24826,6),(24830,6),(24832,6),(24833,6),(24837,6),(24840,6),(24846,6),(24854,6),(24857,6),(24858,6),(24861,6),(24862,6),(24868,6),(24869,6),(24870,6),(24873,6),(24881,6),(24895,6),(24904,6),(24906,6),(24911,6),(24914,6),(24916,6),(24917,6),(24919,6),(24924,6),(24926,6),(24945,6),(24953,6),(24959,6),(24964,6),(24971,6),(24974,6),(24975,6),(24989,6),(24994,6),(24997,6),(25010,6),(25031,6),(25033,6),(25037,6),(25041,6),(25049,6),(25058,6),(25064,6),(25066,6),(25074,6),(25082,6),(25085,6),(25089,6),(25100,6),(25101,6),(25106,6),(25107,6),(25108,6),(25114,6),(25126,6),(25127,6),(25131,6),(25136,6),(25141,6),(25154,6),(25162,6),(25174,6),(25179,6),(25182,6),(25188,6),(25207,6),(25213,6),(25214,6),(25218,6),(25223,6),(25224,6),(25228,6),(25236,6),(25243,6),(25244,6),(25249,6),(25251,6),(25253,6),(25262,6),(25267,6),(25268,6),(25273,6),(25274,6),(25275,6),(25280,6),(25284,6),(25288,6),(25293,6),(25301,6),(25302,6),(25319,6),(25320,6),(25329,6),(25338,6),(25341,6),(25343,6),(25344,6),(25346,6),(25359,6),(25364,6),(25378,6),(25380,6),(25388,6),(25394,6),(25410,6),(25413,6),(25416,6),(25420,6),(25422,6),(25426,6),(25427,6),(25430,6),(25437,6),(25441,6),(25450,6),(25451,6),(25454,6),(25463,6),(25464,6),(25472,6),(25476,6),(25479,6),(25482,6),(25489,6),(25497,6),(25505,6),(25527,6),(25530,6),(25533,6),(25534,6),(25535,6),(25546,6),(25547,6),(25556,6),(25558,6),(25566,6),(25572,6),(25578,6),(25589,6),(25593,6),(25595,6),(25614,6),(25619,6),(25621,6),(25630,6),(25633,6),(25637,6),(25640,6),(25650,6),(25659,6),(25671,6),(25675,6),(25680,6),(25681,6),(25699,6),(25701,6),(25703,6),(25704,6),(25706,6),(25708,6),(25717,6),(25728,6),(25743,6),(25748,6),(25769,6),(25778,6),(25780,6),(25781,6),(25784,6),(25785,6),(25789,6),(25792,6),(25793,6),(25795,6),(25796,6),(25797,6),(25799,6),(25802,6),(25805,6),(25812,6),(25815,6),(25816,6),(25819,6),(25823,6),(25827,6),(25830,6),(25837,6),(25838,6),(25843,6),(25844,6),(25849,6),(25856,6),(25857,6),(25870,6),(25875,6),(25882,6),(25889,6),(25892,6),(25900,6),(25903,6),(25904,6),(25908,6),(25912,6),(25917,6),(25919,6),(25921,6),(25924,6),(25926,6),(25929,6),(25934,6),(25940,6),(25943,6),(25960,6),(25967,6),(25968,6),(25970,6),(25979,6),(25980,6),(25981,6),(25982,6),(25989,6),(25994,6),(26005,6),(26007,6),(26009,6),(26023,6),(26028,6),(26030,6),(26038,6),(26048,6),(26055,6),(26067,6),(26103,6),(26114,6),(26124,6),(26131,6),(26135,6),(26139,6),(26145,6),(26154,6),(26175,6),(26176,6),(26181,6),(26184,6),(26186,6),(26193,6),(26197,6),(26205,6),(26210,6),(26215,6),(26218,6),(26222,6),(26235,6),(26237,6),(26271,6),(26286,6),(26295,6),(26296,6),(26307,6),(26316,6),(26319,6),(26323,6),(26332,6),(26333,6),(26334,6),(26341,6),(26346,6),(26350,6),(26359,6),(26365,6),(26367,6),(26376,6),(26385,6),(26388,6),(26410,6),(26415,6),(26423,6),(26424,6),(26427,6),(26433,6),(26435,6),(26438,6),(26442,6),(26460,6),(26475,6),(26482,6),(26483,6),(26485,6),(26488,6),(26501,6),(26507,6),(26509,6),(26517,6),(26525,6),(26527,6),(26536,6),(26537,6),(26542,6),(26547,6),(26550,6),(26551,6),(26553,6),(26560,6),(26563,6),(26572,6),(26575,6),(26579,6),(26602,6),(26609,6),(26610,6),(26611,6),(26622,6),(26623,6),(26624,6),(26626,6),(26634,6),(26638,6),(26641,6),(26646,6),(26655,6),(26661,6),(26664,6),(26672,6),(26673,6),(26681,6),(26685,6),(26692,6),(26703,6),(26711,6),(26712,6),(26714,6),(26717,6),(26723,6),(26724,6),(26736,6),(26752,6),(26754,6),(26757,6),(26765,6),(26769,6),(26780,6),(26784,6),(26787,6),(26792,6),(26796,6),(26798,6),(26802,6),(26815,6),(26823,6),(26825,6),(26826,6),(26831,6),(26832,6),(26837,6),(26838,6),(26844,6),(26847,6),(26850,6),(26851,6),(26855,6),(26870,6),(26871,6),(26878,6),(26879,6),(26884,6),(26893,6),(26901,6),(26904,6),(26911,6),(26927,6),(26929,6),(26933,6),(26936,6),(26939,6),(26953,6),(26961,6),(26967,6),(26968,6),(26976,6),(26992,6),(26993,6),(27006,6),(27011,6),(27012,6),(27017,6),(27018,6),(27023,6),(27024,6),(27029,6),(27031,6),(27032,6),(27036,6),(27039,6),(27044,6),(27055,6),(27067,6),(27069,6),(27080,6),(27083,6),(27085,6),(27086,6),(27087,6),(27100,6),(27102,6),(27103,6),(27107,6),(27117,6),(27118,6),(27120,6),(27121,6),(27122,6),(27125,6),(27130,6),(27137,6),(27138,6),(27140,6),(27142,6),(27146,6),(27148,6),(27155,6),(27162,6),(27166,6),(27170,6),(27184,6),(27185,6),(27188,6),(27195,6),(27199,6),(27201,6),(27203,6),(27204,6),(27205,6),(27210,6),(27216,6),(27217,6),(27218,6),(27226,6),(27229,6),(27230,6),(27237,6),(27241,6),(27267,6),(27278,6),(27295,6),(27298,6),(27300,6),(27303,6),(27306,6),(27312,6),(27317,6),(27324,6),(27327,6),(27330,6),(27344,6),(27349,6),(27354,6),(27359,6),(27362,6),(27366,6),(27375,6),(27382,6),(27391,6),(27396,6),(27402,6),(27404,6),(27405,6),(27407,6),(27412,6),(27414,6),(27417,6),(27429,6),(27434,6),(27457,6),(27459,6),(27461,6),(27466,6),(27469,6),(27472,6),(27477,6),(27478,6),(27490,6),(27495,6),(27500,6),(27502,6),(27507,6),(27508,6),(27516,6),(27522,6),(27526,6),(27527,6),(27542,6),(27546,6),(27559,6),(27561,6),(27571,6),(27573,6),(27577,6),(27579,6),(27585,6),(27588,6),(27596,6),(27612,6),(27620,6),(27624,6),(27632,6),(27633,6),(27636,6),(27638,6),(27650,6),(27662,6),(27665,6),(27666,6),(27675,6),(27677,6),(27684,6),(27697,6),(27698,6),(27701,6),(27705,6),(27710,6),(27720,6),(27722,6),(27724,6),(27734,6),(27736,6),(27747,6),(27749,6),(27755,6),(27760,6),(27763,6),(27774,6),(27783,6),(27784,6),(27790,6),(27793,6),(27803,6),(27804,6),(27810,6),(27830,6),(27836,6),(27842,6),(27843,6),(27855,6),(27861,6),(27866,6),(27868,6),(27869,6),(27883,6),(27892,6),(27896,6),(27898,6),(27919,6),(27920,6),(27924,6),(27933,6),(27944,6),(27955,6),(27957,6),(27966,6),(27974,6),(27978,6),(27981,6),(27992,6),(28008,6),(28013,6),(28015,6),(28017,6),(28024,6),(28040,6),(28050,6),(28052,6),(28056,6),(28057,6),(28071,6),(28072,6),(28076,6),(28087,6),(28094,6),(28096,6),(28105,6),(28119,6),(28123,6),(28125,6),(28126,6),(28130,6),(28138,6),(28144,6),(28153,6),(28156,6),(28166,6),(28183,6),(28186,6),(28209,6),(28220,6),(28228,6),(28233,6),(28234,6),(28245,6),(28248,6),(28265,6),(28275,6),(28276,6),(28277,6),(28291,6),(28301,6),(28310,6),(28316,6),(28328,6),(28332,6),(28333,6),(28345,6),(28347,6),(28350,6),(28362,6),(28367,6),(28370,6),(28373,6),(28378,6),(28396,6),(28400,6),(28401,6),(28404,6),(28409,6),(28410,6),(28413,6),(28421,6),(28429,6),(28435,6),(28436,6),(28439,6),(28440,6),(28448,6),(28449,6),(28457,6),(28479,6),(28489,6),(28511,6),(28534,6),(28540,6),(28557,6),(28559,6),(28566,6),(28576,6),(28584,6),(28585,6),(28587,6),(28590,6),(28595,6),(28596,6),(28597,6),(28607,6),(28610,6),(28620,6),(28627,6),(28628,6),(28629,6),(28643,6),(28649,6),(28653,6),(28665,6),(28672,6),(28674,6),(28676,6),(28679,6),(28693,6),(28712,6),(28719,6),(28722,6),(28744,6),(28746,6),(28749,6),(28752,6),(28753,6),(28758,6),(28762,6),(28777,6),(28799,6),(28800,6),(28801,6),(28805,6),(28809,6),(28817,6),(28818,6),(28828,6),(28831,6),(28834,6),(28836,6),(28839,6),(28841,6),(28843,6),(28854,6),(28856,6),(28864,6),(28866,6),(28878,6),(28884,6),(28886,6),(28891,6),(28897,6),(28898,6),(28902,6),(28910,6),(28915,6),(28919,6),(28924,6),(28933,6),(28939,6),(28942,6),(28949,6),(28957,6),(28959,6),(28961,6),(28976,6),(28978,6),(28984,6),(28993,6),(28998,6),(29004,6),(29006,6),(29021,6),(29022,6),(29031,6),(29043,6),(29045,6),(29048,6),(29049,6),(29050,6),(29058,6),(29066,6),(29074,6),(29075,6),(29077,6),(29078,6),(29108,6),(29109,6),(29112,6),(29122,6),(29124,6),(29132,6),(29134,6),(29139,6),(29140,6),(29144,6),(29154,6),(29160,6),(29166,6),(29171,6),(29173,6),(29179,6),(29180,6),(29184,6),(29190,6),(29202,6),(29203,6),(29210,6),(29212,6),(29215,6),(29217,6),(29234,6),(29241,6),(29243,6),(29251,6),(29256,6),(29259,6),(29260,6),(29265,6),(29275,6),(29279,6),(29288,6),(29295,6),(29296,6),(29303,6),(29306,6),(29308,6),(29311,6),(29322,6),(29332,6),(29339,6),(29345,6),(29352,6),(29354,6),(29360,6),(29362,6),(29366,6),(29367,6),(29373,6),(29374,6),(29377,6),(29386,6),(29387,6),(29395,6),(29397,6),(29412,6),(29424,6),(29427,6),(29430,6),(29449,6),(29450,6),(29453,6),(29455,6),(29458,6),(29459,6),(29465,6),(29468,6),(29471,6),(29477,6),(29486,6),(29490,6),(29497,6),(29511,6),(29520,6),(29521,6),(29524,6),(29531,6),(29532,6),(29551,6),(29559,6),(29565,6),(29567,6),(29586,6),(29590,6),(29591,6),(29613,6),(29620,6),(29624,6),(29632,6),(29636,6),(29640,6),(29645,6),(29667,6),(29673,6),(29674,6),(29685,6),(29696,6),(29700,6),(29701,6),(29707,6),(29714,6),(29719,6),(29729,6),(29731,6),(29733,6),(29743,6),(29745,6),(29746,6),(29747,6),(29755,6),(29762,6),(29773,6),(29774,6),(29778,6),(29779,6),(29797,6),(29800,6),(29807,6),(29809,6),(29813,6),(29816,6),(29821,6),(29831,6),(29832,6),(29833,6),(29836,6),(29840,6),(29845,6),(29846,6),(29851,6),(29857,6),(29858,6),(29860,6),(29865,6),(29866,6),(29874,6),(29893,6),(29894,6),(29895,6),(29899,6),(29903,6),(29907,6),(29909,6),(29916,6),(29922,6),(29929,6),(29933,6),(29936,6),(29942,6),(29943,6),(29946,6),(29951,6),(29964,6),(29966,6),(29972,6),(29980,6),(29981,6),(29985,6),(29989,6),(29993,6),(29994,6),(29995,6),(29996,6),(30005,6),(30008,6),(30015,6),(30017,6),(30018,6),(30020,6),(30025,6),(30027,6),(30030,6),(30031,6),(30032,6),(30056,6),(30059,6),(30073,6),(30081,6),(30089,6),(30095,6),(30096,6),(30099,6),(30103,6),(30104,6),(30107,6),(30110,6),(30118,6),(30125,6),(30130,6),(30140,6),(30166,6),(30177,6),(30184,6),(30193,6),(30195,6),(30202,6),(30210,6),(30213,6),(30222,6),(30224,6),(30226,6),(30235,6),(30239,6),(30244,6),(30251,6),(30258,6),(30265,6),(30273,6),(30287,6),(30289,6),(30297,6),(30302,6),(30310,6),(30320,6),(30332,6),(30334,6),(30345,6),(30346,6),(30352,6),(30353,6),(30363,6),(30365,6),(30369,6),(30386,6),(30399,6),(30400,6),(30406,6),(30416,6),(30423,6),(30430,6),(30439,6),(30452,6),(30455,6),(30458,6),(30465,6),(30479,6),(30491,6),(30493,6),(30494,6),(30496,6),(30497,6),(30498,6),(30499,6),(30507,6),(30509,6),(30511,6),(30515,6),(30532,6),(30548,6),(30553,6),(30555,6),(30561,6),(30578,6),(30579,6),(30580,6),(30584,6),(30604,6),(30628,6),(30633,6),(30642,6),(30647,6),(30653,6),(30661,6),(30663,6),(30665,6),(30670,6),(30673,6),(30684,6),(30685,6),(30696,6),(30698,6),(30730,6),(30733,6),(30741,6),(30745,6),(30754,6),(30760,6),(30764,6),(30766,6),(30768,6),(30772,6),(30778,6),(30783,6),(30785,6),(30809,6),(30810,6),(30818,6),(30820,6),(30824,6),(30828,6),(30832,6),(30844,6),(30853,6),(30860,6),(30863,6),(30864,6),(30865,6),(30866,6),(30876,6),(30882,6),(30888,6),(30899,6),(30917,6),(30919,6),(30920,6),(30929,6),(30940,6),(30943,6),(30948,6),(30953,6),(30963,6),(30974,6),(30984,6),(30986,6),(30994,6),(30998,6),(30999,6),(31001,6),(31004,6),(31010,6),(31011,6),(31016,6),(31021,6),(31024,6),(31030,6),(31031,6),(31033,6),(31035,6),(31039,6),(31043,6),(31053,6),(31057,6),(31060,6),(31063,6),(31076,6),(31082,6),(31098,6),(31099,6),(31105,6),(31109,6),(31113,6),(31117,6),(31119,6),(31121,6),(31126,6),(31139,6),(31144,6),(31148,6),(31166,6),(31176,6),(31178,6),(31194,6),(31196,6),(31199,6),(31202,6),(31221,6),(31229,6),(31237,6),(31241,6),(31253,6),(31256,6),(31261,6),(31262,6),(31263,6),(31264,6),(31270,6),(31271,6),(31278,6),(31281,6),(31286,6),(31287,6),(31288,6),(31293,6),(31295,6),(31298,6),(31313,6),(31315,6),(31322,6),(31323,6),(31324,6),(31330,6),(31335,6),(31338,6),(31339,6),(31342,6),(31354,6),(31362,6),(31363,6),(31368,6),(31373,6),(31376,6),(31381,6),(31390,6),(31391,6),(31398,6),(31405,6),(31407,6),(31408,6),(31410,6),(31420,6),(31421,6),(31423,6),(31428,6),(31434,6),(31442,6),(31444,6),(31454,6),(31457,6),(31461,6),(31466,6),(31469,6),(31485,6),(31488,6),(31494,6),(31499,6),(31503,6),(31509,6),(31513,6),(31518,6),(31527,6),(31529,6),(31532,6),(31539,6),(31541,6),(31542,6),(31543,6),(31546,6),(31547,6),(31558,6),(31561,6),(31588,6),(31589,6),(31598,6),(31613,6),(31614,6),(31615,6),(31622,6),(31649,6),(31650,6),(31661,6),(31674,6),(31691,6),(31696,6),(31703,6),(31706,6),(31707,6),(31727,6),(31728,6),(31738,6),(31741,6),(31750,6),(31751,6),(31757,6),(31759,6),(31768,6),(31785,6),(31789,6),(31797,6),(31801,6),(31807,6),(31811,6),(31814,6),(31824,6),(31830,6),(31831,6),(31839,6),(31844,6),(31846,6),(31848,6),(31864,6),(31868,6),(31873,6),(31879,6),(31885,6),(31893,6),(31895,6),(31903,6),(31921,6),(31928,6),(31940,6),(31949,6),(31957,6),(31963,6),(31965,6),(31970,6),(31974,6),(31975,6),(31977,6),(31978,6),(31984,6),(31988,6),(31991,6),(32001,6),(32007,6),(32009,6),(32014,6),(32033,6),(32036,6),(32040,6),(32048,6),(32050,6),(32051,6),(32053,6),(32055,6),(32080,6),(32086,6),(32087,6),(32088,6),(32089,6),(32092,6),(32098,6),(32100,6),(32114,6),(32128,6),(32139,6),(32144,6),(32145,6),(32146,6),(32160,6),(32175,6),(32180,6),(32185,6),(32189,6),(32193,6),(32194,6),(32207,6),(32208,6),(32213,6),(32218,6),(32228,6),(32230,6),(32232,6),(32251,6),(32261,6),(32268,6),(32271,6),(32282,6),(32293,6),(32302,6),(32312,6),(32332,6),(32335,6),(32337,6),(32342,6),(32350,6),(32357,6),(32360,6),(32363,6),(32380,6),(32381,6),(32384,6),(32385,6),(32389,6),(32395,6),(32401,6),(32431,6),(32436,6),(32438,6),(32443,6),(32444,6),(32447,6),(32451,6),(32454,6),(32470,6),(32473,6),(32480,6),(32482,6),(32484,6),(32486,6),(32487,6),(32492,6),(32494,6),(32495,6),(32496,6),(32500,6),(32503,6),(32526,6),(32530,6),(32534,6),(32548,6),(32549,6),(32553,6),(32556,6),(32558,6),(32559,6),(32567,6),(32577,6),(32582,6),(32591,6),(32595,6),(32596,6),(32597,6),(32607,6),(32611,6),(32614,6),(32616,6),(32618,6),(32622,6),(32631,6),(32637,6),(32640,6),(32642,6),(32650,6),(32652,6),(32658,6),(32664,6),(32677,6),(32681,6),(32689,6),(32693,6),(32704,6),(32707,6),(32711,6),(32714,6),(32717,6),(32719,6),(32732,6),(32735,6),(32737,6),(32759,6),(32760,6),(32761,6),(32766,6),(32768,6),(32769,6),(32771,6),(32778,6),(32785,6),(32791,6),(32794,6),(32798,6),(32816,6),(32819,6),(32822,6),(32824,6),(32828,6),(32834,6),(32835,6),(32837,6),(32841,6),(32846,6),(32852,6),(32857,6),(32858,6),(32861,6),(32890,6),(32899,6),(32907,6),(32921,6),(32922,6),(32927,6),(32929,6),(32936,6),(32937,6),(32943,6),(32948,6),(32949,6),(32953,6),(32956,6),(32960,6),(32964,6),(32967,6),(32980,6),(32982,6),(32985,6),(32987,6),(32996,6),(33001,6),(33004,6),(33007,6),(33013,6),(33016,6),(33018,6),(33022,6),(33025,6),(33027,6),(33033,6),(33038,6),(33039,6),(33043,6),(33046,6),(33052,6),(33055,6),(33060,6),(33068,6),(33074,6),(33078,6),(33081,6),(33090,6),(33094,6),(33115,6),(33122,6),(33126,6),(33128,6),(33138,6),(33142,6),(33150,6),(33152,6),(33153,6),(33160,6),(33169,6),(33172,6),(33175,6),(33176,6),(33185,6),(33188,6),(33191,6),(33193,6),(33208,6),(33210,6),(33213,6),(33214,6),(33230,6),(33234,6),(33239,6),(33240,6),(33270,6),(33286,6),(33293,6),(33300,6),(33316,6),(33332,6),(33333,6),(33334,6),(33336,6),(33337,6),(33351,6),(33353,6),(33357,6),(33365,6),(33387,6),(33391,6),(33402,6),(33408,6),(33411,6),(33416,6),(33421,6),(33422,6),(33441,6),(33447,6),(33451,6),(33456,6),(33464,6),(33480,6),(33481,6),(33482,6),(33489,6),(33490,6),(33493,6),(33494,6),(33499,6),(33519,6),(33525,6),(33530,6),(33531,6),(33536,6),(33546,6),(33551,6),(33556,6),(33558,6),(33559,6),(33564,6),(33579,6),(33582,6),(33592,6),(33593,6),(33599,6),(33609,6),(33611,6),(33630,6),(33631,6),(33638,6),(33648,6),(33649,6),(33662,6),(33664,6),(33679,6),(33681,6),(33684,6),(33703,6),(33714,6),(33731,6),(33744,6),(33749,6),(33765,6),(33771,6),(33773,6),(33776,6),(33780,6),(33798,6),(33800,6),(33812,6),(33815,6),(33818,6),(33829,6),(33836,6),(33839,6),(33852,6),(33853,6),(33854,6),(33855,6),(33864,6),(33890,6),(33894,6),(33896,6),(33901,6),(33909,6),(33916,6),(33926,6),(33927,6),(33931,6),(33932,6),(33935,6),(33952,6),(33953,6),(33967,6),(33972,6),(33979,6),(33987,6),(33988,6),(34002,6),(34011,6),(34035,6),(34037,6),(34051,6),(34056,6),(34057,6),(34058,6),(34059,6),(34065,6),(34068,6),(34072,6),(34076,6),(34078,6),(34079,6),(34084,6),(34091,6),(34101,6),(34102,6),(34114,6),(34121,6),(34133,6),(34140,6),(34143,6),(34148,6),(34155,6),(34157,6),(34160,6),(34167,6),(34168,6),(34170,6),(34179,6),(34193,6),(34199,6),(34202,6),(34209,6),(34211,6),(34215,6),(34227,6),(34229,6),(34232,6),(34233,6),(34240,6),(34241,6),(34243,6),(34245,6),(34260,6),(34265,6),(34270,6),(34276,6),(34280,6),(34282,6),(34285,6),(34303,6),(34307,6),(34308,6),(34309,6),(34317,6),(34320,6),(34322,6),(34329,6),(34349,6),(34382,6),(34384,6),(34397,6),(34398,6),(34405,6),(34411,6),(34425,6),(34426,6),(34427,6),(34434,6),(34435,6),(34436,6),(34451,6),(34455,6),(34456,6),(34459,6),(34461,6),(34462,6),(34469,6),(34471,6),(34472,6),(34481,6),(34484,6),(34497,6),(34503,6),(34506,6),(34516,6),(34522,6),(34523,6),(34527,6),(34528,6),(34530,6),(34533,6),(34540,6),(34543,6),(34547,6),(34549,6),(34553,6),(34555,6),(34556,6),(34557,6),(34569,6),(34579,6),(34581,6),(34584,6),(34591,6),(34604,6),(34605,6),(34608,6),(34616,6),(34622,6),(34625,6),(34633,6),(34636,6),(34639,6),(34650,6),(34657,6),(34660,6),(34667,6),(34671,6),(34672,6),(34685,6),(34687,6),(34692,6),(34699,6),(34706,6),(34714,6),(34717,6),(34722,6),(34723,6),(34724,6),(34733,6),(34734,6),(34738,6),(34746,6),(34747,6),(34756,6),(34761,6),(34768,6),(34770,6),(34788,6),(34799,6),(34815,6),(34818,6),(34819,6),(34821,6),(34830,6),(34845,6),(34849,6),(34855,6),(34856,6),(34859,6),(34868,6),(34877,6),(34878,6),(34880,6),(34886,6),(34894,6),(34901,6),(34910,6),(34913,6),(34915,6),(34918,6),(34919,6),(34922,6),(34925,6),(34928,6),(34932,6),(34933,6),(34937,6),(34949,6),(34952,6),(34956,6),(34961,6),(34967,6),(34976,6),(34979,6),(34985,6),(34998,6),(35002,6),(35006,6),(35010,6),(35013,6),(35017,6),(35025,6),(35027,6),(35030,6),(35034,6),(35049,6),(35057,6),(35068,6),(35071,6),(35075,6),(35077,6),(35089,6),(35097,6),(35098,6),(35106,6),(35110,6),(35116,6),(35119,6),(35127,6),(35139,6),(35144,6),(35145,6),(35146,6),(35154,6),(35159,6),(35164,6),(35166,6),(35168,6),(35176,6),(35180,6),(35189,6),(35190,6),(35193,6),(35195,6),(35201,6),(35202,6),(35222,6),(35227,6),(35234,6),(35236,6),(35253,6),(35258,6),(35265,6),(35267,6),(35277,6),(35279,6),(35280,6),(35281,6),(35286,6),(35288,6),(35289,6),(35296,6),(35300,6),(35306,6),(35309,6),(35317,6),(35318,6),(35319,6),(35322,6),(35323,6),(35325,6),(35329,6),(35330,6),(35334,6),(35338,6),(35349,6),(35351,6),(35353,6),(35358,6),(35359,6),(35362,6),(35384,6),(35389,6),(35398,6),(35414,6),(35430,6),(35446,6),(35460,6),(35461,6),(35467,6),(35471,6),(35498,6),(35503,6),(35513,6),(35516,6),(35520,6),(35529,6),(35537,6),(35540,6),(35550,6),(35553,6),(35554,6),(35556,6),(35558,6),(35564,6),(35565,6),(35571,6),(35587,6),(35590,6),(35592,6),(35607,6),(35608,6),(35610,6),(35625,6),(35634,6),(35636,6),(35637,6),(35639,6),(35640,6),(35643,6),(35644,6),(35654,6),(35655,6),(35657,6),(35658,6),(35667,6),(35669,6),(35683,6),(35693,6),(35702,6),(35706,6),(35742,6),(35747,6),(35748,6),(35760,6),(35774,6),(35776,6),(35785,6),(35790,6),(35793,6),(35801,6),(35802,6),(35809,6),(35815,6),(35820,6),(35822,6),(35823,6),(35824,6),(35825,6),(35828,6),(35830,6),(35838,6),(35842,6),(35843,6),(35852,6),(35864,6),(35881,6),(35886,6),(35888,6),(35891,6),(35893,6),(35897,6),(35907,6),(35913,6),(35918,6),(35929,6),(35931,6),(35934,6),(35939,6),(35960,6),(35966,6),(35970,6),(35981,6),(35989,6),(35998,6),(36005,6),(36014,6),(36019,6),(36021,6),(36029,6),(36031,6),(36032,6),(36042,6),(36045,6),(36053,6),(36074,6),(36078,6),(36081,6),(36082,6),(36090,6),(36096,6),(36108,6),(36112,6),(36117,6),(36118,6),(36120,6),(36134,6),(36139,6),(36145,6),(36157,6),(36166,6),(36173,6),(36188,6),(36210,6),(36224,6),(36227,6),(36231,6),(36233,6),(36236,6),(36237,6),(36240,6),(36245,6),(36247,6),(36257,6),(36258,6),(36284,6),(36288,6),(36292,6),(36296,6),(36304,6),(36308,6),(36309,6),(36312,6),(36327,6),(36330,6),(36333,6),(36340,6),(36348,6),(36352,6),(36354,6),(36355,6),(36358,6),(36364,6),(36366,6),(36368,6),(36377,6),(36378,6),(36381,6),(36383,6),(36388,6),(36392,6),(36398,6),(36400,6),(36404,6),(36412,6),(36416,6),(36419,6),(36429,6),(36441,6),(36442,6),(36445,6),(36449,6),(36474,6),(36487,6),(36491,6),(36492,6),(36493,6),(36500,6),(36512,6),(36522,6),(36530,6),(36531,6),(36532,6),(36537,6),(36554,6),(36558,6),(36566,6),(36572,6),(36574,6),(36575,6),(36577,6),(36579,6),(36581,6),(36586,6),(36587,6),(36588,6),(36591,6),(36596,6),(36609,6),(36613,6),(36619,6),(36624,6),(36629,6),(36630,6),(36635,6),(36649,6),(36654,6),(36655,6),(36665,6),(36666,6),(36667,6),(36677,6),(36679,6),(36681,6),(36684,6),(36695,6),(36696,6),(36700,6),(36702,6),(36707,6),(36710,6),(36717,6),(36730,6),(36747,6),(36759,6),(36771,6),(36779,6),(36780,6),(36785,6),(36789,6),(36790,6),(36795,6),(36800,6),(36801,6),(36820,6),(36823,6),(36825,6),(36830,6),(36832,6),(36835,6),(36840,6),(36845,6),(36848,6),(36849,6),(36856,6),(36862,6),(36863,6),(36867,6),(36870,6),(36874,6),(36877,6),(36881,6),(36883,6),(36890,6),(36892,6),(36909,6),(36915,6),(36931,6),(36934,6),(36943,6),(36944,6),(36951,6),(36961,6),(36977,6),(36984,6),(36987,6),(36997,6),(37000,6),(37005,6),(37010,6),(37017,6),(37018,6),(37019,6),(37023,6),(37028,6),(37031,6),(37049,6),(37056,6),(37059,6),(37067,6),(37070,6),(37071,6),(37073,6),(37078,6),(37080,6),(37090,6),(37094,6),(37100,6),(37110,6),(37139,6),(37165,6),(37168,6),(37170,6),(37182,6),(37186,6),(37188,6),(37191,6),(37192,6),(37200,6),(37204,6),(37206,6),(37210,6),(37218,6),(37222,6),(37226,6),(37239,6),(37249,6),(37254,6),(37264,6),(37266,6),(37271,6),(37272,6),(37280,6),(37283,6),(37284,6),(37288,6),(37289,6),(37302,6),(37314,6),(37323,6),(37329,6),(37332,6),(37335,6),(37337,6),(37339,6),(37341,6),(37349,6),(37350,6),(37354,6),(37355,6),(37358,6),(37360,6),(37363,6),(37369,6),(37371,6),(37377,6),(37392,6),(37400,6),(37402,6),(37408,6),(37411,6),(37420,6),(37426,6),(37430,6),(37431,6),(37437,6),(37440,6),(37445,6),(37450,6),(37461,6),(37474,6),(37491,6),(37506,6),(37508,6),(37510,6),(37513,6),(37521,6),(37523,6),(37528,6),(37530,6),(37536,6),(37541,6),(37545,6),(37552,6),(37555,6),(37562,6),(37566,6),(37571,6),(37577,6),(37579,6),(37580,6),(37583,6),(37584,6),(37588,6),(37601,6),(37609,6),(37615,6),(37623,6),(37637,6),(37642,6),(37643,6),(37648,6),(37653,6),(37659,6),(37662,6),(37670,6),(37675,6),(37684,6),(37693,6),(37696,6),(37707,6),(37713,6),(37715,6),(37716,6),(37724,6),(37727,6),(37731,6),(37743,6),(37744,6),(37746,6),(37755,6),(37756,6),(37759,6),(37761,6),(37770,6),(37795,6),(37803,6),(37817,6),(37821,6),(37824,6),(37826,6),(37829,6),(37830,6),(37831,6),(37833,6),(37837,6),(37842,6),(37845,6),(37854,6),(37856,6),(37857,6),(37867,6),(37869,6),(37902,6),(37905,6),(37915,6),(37922,6),(37938,6),(37943,6),(37944,6),(37946,6),(37957,6),(37965,6),(37968,6),(37969,6),(37993,6),(38000,6),(38003,6),(38011,6),(38036,6),(38051,6),(38053,6),(38063,6),(38066,6),(38067,6),(38071,6),(38084,6),(38087,6),(38088,6),(38089,6),(38097,6),(38102,6),(38106,6),(38107,6),(38117,6),(38122,6),(38129,6),(38132,6),(38156,6),(38163,6),(38170,6),(38177,6),(38178,6),(38181,6),(38185,6),(38191,6),(38197,6),(38227,6),(38229,6),(38248,6),(38253,6),(38261,6),(38266,6),(38285,6),(38290,6),(38303,6),(38308,6),(38328,6),(38337,6),(38340,6),(38342,6),(38352,6),(38362,6),(38364,6),(38365,6),(38366,6),(38367,6),(38368,6),(38374,6),(38380,6),(38382,6),(38385,6),(38387,6),(38394,6),(38395,6),(38396,6),(38404,6),(38406,6),(38421,6),(38426,6),(38428,6),(38431,6),(38435,6),(38441,6),(38444,6),(38449,6),(38450,6),(38453,6),(38455,6),(38473,6),(38480,6),(38490,6),(38515,6),(38520,6),(38522,6),(38528,6),(38531,6),(38532,6),(38539,6),(38543,6),(38544,6),(38547,6),(38551,6),(38558,6),(38595,6),(38602,6),(38606,6),(38608,6),(38617,6),(38623,6),(38624,6),(38638,6),(38639,6),(38648,6),(38649,6),(38655,6),(38661,6),(38665,6),(38667,6),(38668,6),(38676,6),(38678,6),(38683,6),(38685,6),(38690,6),(38697,6),(38706,6),(38708,6),(38714,6),(38717,6),(38720,6),(38726,6),(38740,6),(38742,6),(38746,6),(38753,6),(38764,6),(38765,6),(38780,6),(38785,6),(38788,6),(38789,6),(38792,6),(38797,6),(38799,6),(38814,6),(38820,6),(38824,6),(38827,6),(38835,6),(38848,6),(38853,6),(38858,6),(38864,6),(38868,6),(38869,6),(38887,6),(38889,6),(38894,6),(38898,6),(38909,6),(38921,6),(38926,6),(38927,6),(38936,6),(38937,6),(38939,6),(38940,6),(38946,6),(38957,6),(38958,6),(38971,6),(38977,6),(38978,6),(38979,6),(38980,6),(38981,6),(38982,6),(38998,6),(39008,6),(39010,6),(39023,6),(39025,6),(39029,6),(39031,6),(39032,6),(39035,6),(39038,6),(39040,6),(39042,6),(39050,6),(39052,6),(39057,6),(39068,6),(39075,6),(39076,6),(39077,6),(39078,6),(39082,6),(39087,6),(39088,6),(39090,6),(39092,6),(39106,6),(39108,6),(39112,6),(39116,6),(39123,6),(39124,6),(39125,6),(39129,6),(39151,6),(39152,6),(39153,6),(39160,6),(39166,6),(39178,6),(39182,6),(39198,6),(39201,6),(39208,6),(39212,6),(39222,6),(39223,6),(39224,6),(39237,6),(39243,6),(39279,6),(39292,6),(39293,6),(39296,6),(39306,6),(39318,6),(39319,6),(39331,6),(39332,6),(39341,6),(39343,6),(39358,6),(39362,6),(39363,6),(39368,6),(39369,6),(39372,6),(39379,6),(39382,6),(39392,6),(39395,6),(39402,6),(39411,6),(39412,6),(39413,6),(39435,6),(39444,6),(39460,6),(39461,6),(39463,6),(39477,6),(39479,6),(39484,6),(39490,6),(39494,6),(39500,6),(39507,6),(39520,6),(39521,6),(39527,6),(39540,6),(39558,6),(39583,6),(39586,6),(39589,6),(39598,6),(39599,6),(39601,6),(39616,6),(39626,6),(39638,6),(39641,6),(39654,6),(39663,6),(39674,6),(39679,6),(39681,6),(39683,6),(39687,6),(39707,6),(39711,6),(39714,6),(39735,6),(39746,6),(39747,6),(39773,6),(39775,6),(39779,6),(39786,6),(39790,6),(39792,6),(39796,6),(39809,6),(39820,6),(39826,6),(39827,6),(39836,6),(39850,6),(39851,6),(39864,6),(39883,6),(39891,6),(39901,6),(39904,6),(39910,6),(39911,6),(39926,6),(39938,6),(39947,6),(39953,6),(39954,6),(39960,6),(39962,6),(39969,6),(39970,6),(39978,6),(39991,6),(39994,6),(40009,6),(40028,6),(40037,6),(40082,6),(40085,6),(40095,6),(40103,6),(40108,6),(40120,6),(40121,6),(40136,6),(40143,6),(40150,6),(40162,6),(40165,6),(40170,6),(40182,6),(40191,6),(40196,6),(40200,6),(40208,6),(40209,6),(40210,6),(40211,6),(40213,6),(40228,6),(40232,6),(40243,6),(40258,6),(40265,6),(40274,6),(40277,6),(40288,6),(40292,6),(40316,6),(40318,6),(40328,6),(40338,6),(40346,6),(40347,6),(40351,6),(40353,6),(40357,6),(40360,6),(40361,6),(40378,6),(40388,6),(40397,6),(40407,6),(40409,6),(40410,6),(40415,6),(40421,6),(40430,6),(40434,6),(40437,6),(40440,6),(40443,6),(40449,6),(40456,6),(40459,6),(40462,6),(40465,6),(40469,6),(40473,6),(40474,6),(40475,6),(40479,6),(40495,6),(40501,6),(40509,6),(40512,6),(40514,6),(40527,6),(40537,6),(40539,6),(40550,6),(40551,6),(40553,6),(40554,6),(40557,6),(40575,6),(40576,6),(40586,6),(40587,6),(40589,6),(40591,6),(40594,6),(40602,6),(40605,6),(40635,6),(40636,6),(40639,6),(40655,6),(40666,6),(40667,6),(40694,6),(40703,6),(40715,6),(40733,6),(40738,6),(40758,6),(40769,6),(40774,6),(40778,6),(40787,6),(40792,6),(40794,6),(40798,6),(40806,6),(40810,6),(40811,6),(40813,6),(40824,6),(40830,6),(40831,6),(40834,6),(40848,6),(40850,6),(40851,6),(40861,6),(40870,6),(40877,6),(40883,6),(40885,6),(40886,6),(40888,6),(40904,6),(40906,6),(40919,6),(40922,6),(40925,6),(40935,6),(40940,6),(40946,6),(40948,6),(40950,6),(40954,6),(40956,6),(40957,6),(40958,6),(40962,6),(40964,6),(40969,6),(40977,6),(40985,6),(41003,6),(41006,6),(41007,6),(41026,6),(41031,6),(41033,6),(41034,6),(41035,6),(41038,6),(41040,6),(41042,6),(41044,6),(41045,6),(41048,6),(41049,6),(41051,6),(41052,6),(41060,6),(41062,6),(41067,6),(41070,6),(41073,6),(41075,6),(41082,6),(41092,6),(41098,6),(41105,6),(41107,6),(41115,6),(41118,6),(41124,6),(41127,6),(41129,6),(41131,6),(41139,6),(41143,6),(41152,6),(41153,6),(41157,6),(41159,6),(41160,6),(41164,6),(41168,6),(41171,6),(41172,6),(41174,6),(41201,6),(41205,6),(41207,6),(41210,6),(41211,6),(41216,6),(41220,6),(41221,6),(41230,6),(41239,6),(41240,6),(41244,6),(41248,6),(41251,6),(41252,6),(41253,6),(41280,6),(41285,6),(41302,6),(41306,6),(41316,6),(41317,6),(41318,6),(41323,6),(41328,6),(41349,6),(41361,6),(41363,6),(41365,6),(41371,6),(41374,6),(41377,6),(41380,6),(41387,6),(41395,6),(41397,6),(41402,6),(41403,6),(41412,6),(41416,6),(41418,6),(41421,6),(41423,6),(41424,6),(41425,6),(41428,6),(41429,6),(41431,6),(41438,6),(41442,6),(41444,6),(41450,6),(41482,6),(41487,6),(41497,6),(41498,6),(41501,6),(41510,6),(41514,6),(41522,6),(41532,6),(41543,6),(41546,6),(41548,6),(41554,6),(41560,6),(41565,6),(41567,6),(41569,6),(41574,6),(41575,6),(41582,6),(41586,6),(41591,6),(41596,6),(41600,6),(41603,6),(41604,6),(41611,6),(41614,6),(41629,6),(41630,6),(41632,6),(41638,6),(41645,6),(41657,6),(41681,6),(41684,6),(41695,6),(41698,6),(41703,6),(41705,6),(41714,6),(41715,6),(41720,6),(41722,6),(41723,6),(41727,6),(41735,6),(41739,6),(41743,6),(41749,6),(41758,6),(41777,6),(41778,6),(41783,6),(41787,6),(41788,6),(41791,6),(41792,6),(41793,6),(41821,6),(41822,6),(41826,6),(41835,6),(41840,6),(41841,6),(41846,6),(41851,6),(41852,6),(41856,6),(41857,6),(41890,6),(41891,6),(41903,6),(41917,6),(41918,6),(41920,6),(41923,6),(41927,6),(41932,6),(41933,6),(41935,6),(41943,6),(41944,6),(41950,6),(41952,6),(41960,6),(41964,6),(41965,6),(41968,6),(41970,6),(41975,6),(41979,6),(41981,6),(41982,6),(41984,6),(41987,6),(41992,6),(41994,6),(41995,6),(42000,6),(42014,6),(42021,6),(42028,6),(42030,6),(42031,6),(42032,6),(42046,6),(42047,6),(42048,6),(42061,6),(42063,6),(42066,6),(42068,6),(42087,6),(42099,6),(42100,6),(42104,6),(42107,6),(42119,6),(42132,6),(42133,6),(42141,6),(42144,6),(42147,6),(42174,6),(42176,6),(42188,6),(42212,6),(42214,6),(42235,6),(42239,6),(42244,6),(42252,6),(42255,6),(42256,6),(42284,6),(42286,6),(42288,6),(42292,6),(42298,6),(42300,6),(42302,6),(42319,6),(42328,6),(42330,6),(42333,6),(42335,6),(42351,6),(42357,6),(42361,6),(42382,6),(42386,6),(42394,6),(42395,6),(42403,6),(42404,6),(42410,6),(42420,6),(42424,6),(42425,6),(42427,6),(42430,6),(42434,6),(42439,6),(42443,6),(42445,6),(42447,6),(42456,6),(42458,6),(42472,6),(42481,6),(42484,6),(42494,6),(42496,6),(42500,6),(42501,6),(42503,6),(42510,6),(42516,6),(42522,6),(42525,6),(42527,6),(42530,6),(42542,6),(42556,6),(42558,6),(42564,6),(42570,6),(42577,6),(42594,6),(42602,6),(42609,6),(42620,6),(42627,6),(42638,6),(42645,6),(42646,6),(42659,6),(42666,6),(42678,6),(42681,6),(42685,6),(42686,6),(42705,6),(42715,6),(42733,6),(42741,6),(42743,6),(42745,6),(42747,6),(42749,6),(42752,6),(42756,6),(42765,6),(42772,6),(42778,6),(42798,6),(42811,6),(42813,6),(42816,6),(42818,6),(42830,6),(42842,6),(42843,6),(42844,6),(42848,6),(42855,6),(42858,6),(42865,6),(42881,6),(42886,6),(42895,6),(42899,6),(42901,6),(42912,6),(42913,6),(42926,6),(42928,6),(42943,6),(42952,6),(42953,6),(42976,6),(42982,6),(43001,6),(43003,6),(43006,6),(43011,6),(43015,6),(43039,6),(43046,6),(43049,6),(43056,6),(43063,6),(43066,6),(43070,6),(43072,6),(43077,6),(43090,6),(43098,6),(43102,6),(43106,6),(43120,6),(43133,6),(43134,6),(43135,6),(43136,6),(43141,6),(43162,6),(43163,6),(43170,6),(43172,6),(43175,6),(43176,6),(43184,6),(43187,6),(43193,6),(43202,6),(43206,6),(43207,6),(43208,6),(43210,6),(43231,6),(43251,6),(43252,6),(43253,6),(43260,6),(43262,6),(43264,6),(43269,6),(43290,6),(43300,6),(43301,6),(43304,6),(43324,6),(43326,6),(43337,6),(43346,6),(43347,6),(43348,6),(43349,6),(43357,6),(43369,6),(43382,6),(43384,6),(43387,6),(43391,6),(43395,6),(43400,6),(43416,6),(43418,6),(43424,6),(43436,6),(43442,6),(43443,6),(43449,6),(43458,6),(43461,6),(43464,6),(43469,6),(43477,6),(43478,6),(43495,6),(43498,6),(43499,6),(43500,6),(43503,6),(43514,6),(43518,6),(43521,6),(43522,6),(43526,6),(43527,6),(43536,6),(43539,6),(43541,6),(43543,6),(43549,6),(43551,6),(43553,6),(43565,6),(43567,6),(43573,6),(43576,6),(43582,6),(43596,6),(43600,6),(43611,6),(43618,6),(43629,6),(43633,6),(43637,6),(43650,6),(43652,6),(43656,6),(43664,6),(43666,6),(43670,6),(43673,6),(43676,6),(43683,6),(43693,6),(43698,6),(43706,6),(43708,6),(43716,6),(43717,6),(43718,6),(43721,6),(43722,6),(43732,6),(43736,6),(43740,6),(43744,6),(43745,6),(43749,6),(43751,6),(43765,6),(43766,6),(43778,6),(43785,6),(43789,6),(43797,6),(43798,6),(43810,6),(43813,6),(43818,6),(43823,6),(43827,6),(43835,6),(43836,6),(43840,6),(43850,6),(43877,6),(43883,6),(43884,6),(43887,6),(43891,6),(43894,6),(43896,6),(43905,6),(43909,6),(43919,6),(43921,6),(43929,6),(43931,6),(43933,6),(43934,6),(43935,6),(43937,6),(43939,6),(43944,6),(43948,6),(43956,6),(43968,6),(43969,6),(43973,6),(43977,6),(43984,6),(43991,6),(43993,6),(43994,6),(43998,6),(44000,6),(44002,6),(44004,6),(44020,6),(44021,6),(44025,6),(44031,6),(44034,6),(44035,6),(44048,6),(44050,6),(44062,6),(44064,6),(44076,6),(44091,6),(44093,6),(44095,6),(44097,6),(44102,6),(44112,6),(44114,6),(44154,6),(44160,6),(44166,6),(44167,6),(44175,6),(44182,6),(44188,6),(44203,6),(44205,6),(44206,6),(44217,6),(44218,6),(44221,6),(44222,6),(44232,6),(44241,6),(44242,6),(44244,6),(44245,6),(44248,6),(44256,6),(44275,6),(44288,6),(44293,6),(44295,6),(44300,6),(44303,6),(44310,6),(44316,6),(44318,6),(44319,6),(44322,6),(44328,6),(44345,6),(44357,6),(44362,6),(44364,6),(44370,6),(44379,6),(44383,6),(44387,6),(44391,6),(44394,6),(44403,6),(44404,6),(44407,6),(44415,6),(44419,6),(44420,6),(44422,6),(44423,6),(44429,6),(44431,6),(44432,6),(44436,6),(44438,6),(44441,6),(44443,6),(44451,6),(44456,6),(44465,6),(44479,6),(44490,6),(44492,6),(44495,6),(44501,6),(44504,6),(44505,6),(44506,6),(44523,6),(44524,6),(44536,6),(44542,6),(44544,6),(44551,6),(44554,6),(44556,6),(44569,6),(44572,6),(44573,6),(44575,6),(44582,6),(44588,6),(44590,6),(44595,6),(44597,6),(44611,6),(44613,6),(44615,6),(44622,6),(44625,6),(44628,6),(44640,6),(44646,6),(44648,6),(44652,6),(44655,6),(44661,6),(44668,6),(44669,6),(44672,6),(44675,6),(44676,6),(44677,6),(44686,6),(44688,6),(44694,6),(44697,6),(44702,6),(44721,6),(44728,6),(44752,6),(44753,6),(44758,6),(44761,6),(44784,6),(44788,6),(44792,6),(44794,6),(44803,6),(44818,6),(44819,6),(44825,6),(44831,6),(44832,6),(44835,6),(44839,6),(44848,6),(44849,6),(44887,6),(44892,6),(44896,6),(44905,6),(44906,6),(44911,6),(44912,6),(44916,6),(44922,6),(44925,6),(44926,6),(44927,6),(44928,6),(44934,6),(44939,6),(44943,6),(44946,6),(44949,6),(44950,6),(44960,6),(44964,6),(44973,6),(44976,6),(44988,6),(44994,6),(44996,6),(44998,6),(44999,6),(45001,6),(45002,6),(45011,6),(45023,6),(45025,6),(45031,6),(45033,6),(45047,6),(45052,6),(45053,6),(45054,6),(45055,6),(45070,6),(45074,6),(45076,6),(45081,6),(45102,6),(45107,6),(45108,6),(45113,6),(45117,6),(45118,6),(45123,6),(45128,6),(45131,6),(45135,6),(45138,6),(45140,6),(45145,6),(45152,6),(45159,6),(45160,6),(45163,6),(45170,6),(45187,6),(45188,6),(45189,6),(45193,6),(45196,6),(45199,6),(45207,6),(45209,6),(45224,6),(45226,6),(45243,6),(45248,6),(45252,6),(45253,6),(45262,6),(45283,6),(45288,6),(45291,6),(45293,6),(45294,6),(45298,6),(45299,6),(45312,6),(45327,6),(45336,6),(45338,6),(45339,6),(45340,6),(45351,6),(45356,6),(45358,6),(45368,6),(45370,6),(45371,6),(45390,6),(45391,6),(45403,6),(45409,6),(45430,6),(45438,6),(45439,6),(45443,6),(45445,6),(45460,6),(45461,6),(45469,6),(45474,6),(45477,6),(45483,6),(45488,6),(45498,6),(45502,6),(45504,6),(45507,6),(45511,6),(45516,6),(45519,6),(45530,6),(45531,6),(45537,6),(45546,6),(45555,6),(45560,6),(45561,6),(45564,6),(45573,6),(45587,6),(45596,6),(45597,6),(45599,6),(45615,6),(45617,6),(45628,6),(45630,6),(45636,6),(45648,6),(45651,6),(45656,6),(45658,6),(45676,6),(45678,6),(45699,6),(45715,6),(45720,6),(45721,6),(45722,6),(45725,6),(45726,6),(45727,6),(45732,6),(45736,6),(45738,6),(45744,6),(45745,6),(45755,6),(45762,6),(45771,6),(45776,6),(45785,6),(45793,6),(45796,6),(45810,6),(45820,6),(45821,6),(45836,6),(45842,6),(45843,6),(45845,6),(45846,6),(45856,6),(45865,6),(45872,6),(45875,6),(45882,6),(45900,6),(45908,6),(45910,6),(45922,6),(45930,6),(45932,6),(45937,6),(45945,6),(45947,6),(45951,6),(45954,6),(45955,6),(45956,6),(45972,6),(45976,6),(45989,6),(45995,6),(46000,6),(46002,6),(46008,6),(46025,6),(46028,6),(46030,6),(46034,6),(46044,6),(46048,6),(46049,6),(46050,6),(46051,6),(46052,6),(46058,6),(46060,6),(46066,6),(46068,6),(46074,6),(46080,6),(46081,6),(46082,6),(46085,6),(46110,6),(46112,6),(46116,6),(46119,6),(46120,6),(46123,6),(46125,6),(46141,6),(46148,6),(46158,6),(46185,6),(46186,6),(46188,6),(46193,6),(46196,6),(46201,6),(46212,6),(46214,6),(46217,6),(46220,6),(46249,6),(46253,6),(46260,6),(46261,6),(46268,6),(46269,6),(46270,6),(46271,6),(46275,6),(46279,6),(46280,6),(46281,6),(46298,6),(46323,6),(46329,6),(46355,6),(46356,6),(46361,6),(46362,6),(46370,6),(46375,6),(46378,6),(46383,6),(46397,6),(46400,6),(46407,6),(46411,6),(46418,6),(46422,6),(46427,6),(46429,6),(46436,6),(46440,6),(46443,6),(46446,6),(46450,6),(46454,6),(46455,6),(46476,6),(46483,6),(46486,6),(46520,6),(46543,6),(46549,6),(46565,6),(46568,6),(46573,6),(46578,6),(46604,6),(46610,6),(46612,6),(46615,6),(46625,6),(46632,6),(46637,6),(46639,6),(46645,6),(46653,6),(46664,6),(46677,6),(46684,6),(46688,6),(46702,6),(46714,6),(46716,6),(46729,6),(46735,6),(46744,6),(46746,6),(46747,6),(46748,6),(46750,6),(46758,6),(46760,6),(46761,6),(46769,6),(46776,6),(46778,6),(46795,6),(46808,6),(46827,6),(46832,6),(46833,6),(46842,6),(46843,6),(46848,6),(46855,6),(46857,6),(46861,6),(46866,6),(46874,6),(46879,6),(46883,6),(46891,6),(46899,6),(46909,6),(46912,6),(46913,6),(46914,6),(46915,6),(46916,6),(46917,6),(46927,6),(46933,6),(46936,6),(46942,6),(46948,6),(46949,6),(46952,6),(46956,6),(46962,6),(46977,6),(46987,6),(46990,6),(46992,6),(46994,6),(46998,6),(47023,6),(47024,6),(47026,6),(47031,6),(47034,6),(47035,6),(47038,6),(47039,6),(47045,6),(47054,6),(47056,6),(47058,6),(47073,6),(47074,6),(47075,6),(47086,6),(47088,6),(47090,6),(47091,6),(47096,6),(47113,6),(47114,6),(47120,6),(47126,6),(47136,6),(47137,6),(47141,6),(47142,6),(47143,6),(47147,6),(47156,6),(47162,6),(47166,6),(47170,6),(47173,6),(47176,6),(47180,6),(47183,6),(47189,6),(47211,6),(47216,6),(47222,6),(47229,6),(47231,6),(47234,6),(47237,6),(47247,6),(47259,6),(47260,6),(47264,6),(47281,6),(47283,6),(47289,6),(47291,6),(47297,6),(47303,6),(47304,6),(47305,6),(47307,6),(47319,6),(47320,6),(47322,6),(47323,6),(47335,6),(47337,6),(47342,6),(47343,6),(47344,6),(47347,6),(47352,6),(47356,6),(47358,6),(47366,6),(47376,6),(47383,6),(47388,6),(47389,6),(47391,6),(47393,6),(47407,6),(47419,6),(47424,6),(47428,6),(47431,6),(47434,6),(47451,6),(47465,6),(47475,6),(47485,6),(47486,6),(47496,6),(47499,6),(47501,6),(47504,6),(47506,6),(47521,6),(47525,6),(47531,6),(47536,6),(47544,6),(47547,6),(47551,6),(47555,6),(47558,6),(47562,6),(47582,6),(47590,6),(47591,6),(47593,6),(47598,6),(47600,6),(47605,6),(47606,6),(47619,6),(47635,6),(47638,6),(47654,6),(47663,6),(47665,6),(47674,6),(47676,6),(47688,6),(47690,6),(47694,6),(47696,6),(47697,6),(47711,6),(47713,6),(47724,6),(47729,6),(47744,6),(47746,6),(47752,6),(47756,6),(47761,6),(47762,6),(47764,6),(47770,6),(47776,6),(47782,6),(47787,6),(47790,6),(47791,6),(47792,6),(47795,6),(47796,6),(47798,6),(47807,6),(47815,6),(47844,6),(47847,6),(47866,6),(47870,6),(47881,6),(47893,6),(47894,6),(47895,6),(47902,6),(47904,6),(47909,6),(47916,6),(47924,6),(47926,6),(47944,6),(47945,6),(47951,6),(47976,6),(47977,6),(47978,6),(47994,6),(48000,6),(48002,6),(48016,6),(48020,6),(48021,6),(48034,6),(48035,6),(48038,6),(48041,6),(48043,6),(48078,6),(48092,6),(48097,6),(48100,6),(48111,6),(48125,6),(48128,6),(48147,6),(48148,6),(48170,6),(48172,6),(48175,6),(48176,6),(48177,6),(48178,6),(48182,6),(48185,6),(48186,6),(48189,6),(48192,6),(48196,6),(48220,6),(48223,6),(48231,6),(48232,6),(48235,6),(48240,6),(48247,6),(48257,6),(48274,6),(48294,6),(48296,6),(48298,6),(48304,6),(48314,6),(48319,6),(48322,6),(48326,6),(48328,6),(48332,6),(48338,6),(48375,6),(48382,6),(48397,6),(48399,6),(48400,6),(48407,6),(48416,6),(48427,6),(48431,6),(48432,6),(48435,6),(48445,6),(48460,6),(48461,6),(48465,6),(48469,6),(48486,6),(48495,6),(48498,6),(48499,6),(48500,6),(48505,6),(48506,6),(48516,6),(48517,6),(48520,6),(48526,6),(48529,6),(48531,6),(48536,6),(48548,6),(48550,6),(48551,6),(48561,6),(48573,6),(48574,6),(48576,6),(48580,6),(48584,6),(48596,6),(48604,6),(48607,6),(48618,6),(48621,6),(48625,6),(48630,6),(48643,6),(48649,6),(48665,6),(48683,6),(48697,6),(48703,6),(48713,6),(48719,6),(48732,6),(48733,6),(48747,6),(48756,6),(48759,6),(48790,6),(48811,6),(48812,6),(48823,6),(48827,6),(48828,6),(48867,6),(48871,6),(48876,6),(48886,6),(48889,6),(48903,6),(48907,6),(48910,6),(48912,6),(48914,6),(48953,6),(48961,6),(48963,6),(48971,6),(48978,6),(48981,6),(48986,6),(48992,6),(48994,6),(49004,6),(49017,6),(49032,6),(49033,6),(49037,6),(49038,6),(49042,6),(49044,6),(49055,6),(49061,6),(49068,6),(49072,6),(49074,6),(49078,6),(49084,6),(49085,6),(49100,6),(49104,6),(49108,6),(49114,6),(49116,6),(49126,6),(49138,6),(49140,6),(49142,6),(49143,6),(49151,6),(49155,6),(49166,6),(49170,6),(49173,6),(49176,6),(49202,6),(49215,6),(49220,6),(49224,6),(49225,6),(49226,6),(49229,6),(49237,6),(49268,6),(49273,6),(49282,6),(49284,6),(49285,6),(49287,6),(49293,6),(49295,6),(49307,6),(49312,6),(49313,6),(49314,6),(49317,6),(49328,6),(49330,6),(49331,6),(49334,6),(49336,6),(49346,6),(49348,6),(49352,6),(49358,6),(49360,6),(49375,6),(49383,6),(49385,6),(49390,6),(49395,6),(49401,6),(49403,6),(49415,6),(49416,6),(49420,6),(49421,6),(49431,6),(49443,6),(49445,6),(49459,6),(49460,6),(49462,6),(49472,6),(49473,6),(49477,6),(49482,6),(49485,6),(49488,6),(49491,6),(49499,6),(49501,6),(49502,6),(49522,6),(49528,6),(49533,6),(49535,6),(49542,6),(49546,6),(49550,6),(49556,6),(49564,6),(49569,6),(49571,6),(49579,6),(49582,6),(49589,6),(49595,6),(49603,6),(49608,6),(49614,6),(49625,6),(49626,6),(49637,6),(49640,6),(49648,6),(49656,6),(49657,6),(49658,6),(49664,6),(49666,6),(49668,6),(49682,6),(49683,6),(49693,6),(49694,6),(49695,6),(49696,6),(49697,6),(49701,6),(49714,6),(49721,6),(49724,6),(49727,6),(49735,6),(49740,6),(49745,6),(49751,6),(49752,6),(49755,6),(49757,6),(49763,6),(49769,6),(49770,6),(49776,6),(49788,6),(49797,6),(49801,6),(49825,6),(49830,6),(49832,6),(49842,6),(49845,6),(49848,6),(49865,6),(49870,6),(49873,6),(49882,6),(49886,6),(49892,6),(49903,6),(49905,6),(49906,6),(49907,6),(49908,6),(49913,6),(49914,6),(49915,6),(49920,6),(49921,6),(49923,6),(49931,6),(49937,6),(49948,6),(49964,6),(49985,6),(49986,6),(49987,6),(49996,6),(49999,6),(50004,6),(50008,6),(50012,6),(50022,6),(50031,6),(50034,6),(50038,6),(50040,6),(50042,6),(50047,6),(50054,6),(50062,6),(50064,6),(50069,6),(50076,6),(50079,6),(50080,6),(50083,6),(50089,6),(50090,6),(50093,6),(50100,6),(50107,6),(50111,6),(50112,6),(50128,6),(50142,6),(50157,6),(50168,6),(50176,6),(50186,6),(50188,6),(50195,6),(50196,6),(50198,6),(50208,6),(50209,6),(50212,6),(50220,6),(50223,6),(50229,6),(50237,6),(50243,6),(50254,6),(50255,6),(50257,6),(50258,6),(50264,6),(50267,6),(50273,6),(50278,6),(50279,6),(50282,6),(50285,6),(50287,6),(50295,6),(50297,6),(50302,6),(50303,6),(50310,6),(50316,6),(50321,6),(50322,6),(50329,6),(50332,6),(50335,6),(50336,6),(50337,6),(50342,6),(50346,6),(50348,6),(50354,6),(50364,6),(50372,6),(50375,6),(50382,6),(50389,6),(50391,6),(50393,6),(50394,6),(50410,6),(50415,6),(50424,6),(50426,6),(50430,6),(50434,6),(50438,6),(50447,6),(50450,6),(50454,6),(50455,6),(50457,6),(50458,6),(50466,6),(50470,6),(50475,6),(50480,6),(50486,6),(50492,6),(50496,6),(50498,6),(50512,6),(50530,6),(50535,6),(50536,6),(50537,6),(50548,6),(50557,6),(50564,6),(50566,6),(50568,6),(50575,6),(50581,6),(50586,6),(50606,6),(50614,6),(50617,6),(50620,6),(50625,6),(50629,6),(50631,6),(50641,6),(50651,6),(50653,6),(50659,6),(50662,6),(50709,6),(50722,6),(50731,6),(50735,6),(50737,6),(50748,6),(50763,6),(50770,6),(50771,6),(50775,6),(50776,6),(50786,6),(50788,6),(50791,6),(50795,6),(50799,6),(50802,6),(50803,6),(50816,6),(50825,6),(50826,6),(50828,6),(50830,6),(50838,6),(50848,6),(50853,6),(50858,6),(50868,6),(50872,6),(50873,6),(50878,6),(50879,6),(50884,6),(50886,6),(50892,6),(50905,6),(50918,6),(50922,6),(50924,6),(50941,6),(50958,6),(50961,6),(50963,6),(50968,6),(50974,6),(50975,6),(50989,6),(50991,6),(51001,6),(51009,6),(51010,6),(51014,6),(51017,6),(51020,6),(51021,6),(51023,6),(51025,6),(51030,6),(51032,6),(51033,6),(51047,6),(51057,6),(51058,6),(51060,6),(51063,6),(51066,6),(51070,6),(51074,6),(51075,6),(51079,6),(51082,6),(51096,6),(51099,6),(51105,6),(51107,6),(51110,6),(51120,6),(51122,6),(51149,6),(51150,6),(51164,6),(51184,6),(51200,6),(51216,6),(51219,6),(51222,6),(51223,6),(51234,6),(51235,6),(51252,6),(51261,6),(51274,6),(51275,6),(51281,6),(51290,6),(51296,6),(51302,6),(51303,6),(51309,6),(51317,6),(51327,6),(51330,6),(51335,6),(51349,6),(51353,6),(51356,6),(51357,6),(51376,6),(51379,6),(51387,6),(51388,6),(51389,6),(51391,6),(51406,6),(51421,6),(51423,6),(51426,6),(51437,6),(51438,6),(51440,6),(51446,6),(51452,6),(51455,6),(51462,6),(51465,6),(51466,6),(51472,6),(51487,6),(51488,6),(51494,6),(51495,6),(51504,6),(51507,6),(51510,6),(51530,6),(51536,6),(51540,6),(51555,6),(51556,6),(51558,6),(51561,6),(51592,6),(51597,6),(51598,6),(51601,6),(51616,6),(51622,6),(51631,6),(51635,6),(51638,6),(51653,6),(51670,6),(51671,6),(51674,6),(51678,6),(51682,6),(51683,6),(51685,6),(51689,6),(51691,6),(51696,6),(51700,6),(51715,6),(51726,6),(51732,6),(51736,6),(51738,6),(51740,6),(51744,6),(51745,6),(51753,6),(51754,6),(51760,6),(51762,6),(51763,6),(51768,6),(51778,6),(51781,6),(51796,6),(51801,6),(51802,6),(51805,6),(51814,6),(51819,6),(51823,6),(51835,6),(51846,6),(51852,6),(51864,6),(51873,6),(51875,6),(51877,6),(51879,6),(51881,6),(51883,6),(51885,6),(51890,6),(51903,6),(51910,6),(51911,6),(51919,6),(51920,6),(51924,6),(51925,6),(51927,6),(51929,6),(51934,6),(51942,6),(51943,6),(51952,6),(51960,6),(51965,6),(51973,6),(51976,6),(51978,6),(51985,6),(51988,6),(52006,6),(52008,6),(52021,6),(52029,6),(52036,6),(52037,6),(52042,6),(52044,6),(52045,6),(52047,6),(52053,6),(52057,6),(52059,6),(52062,6),(52074,6),(52077,6),(52084,6),(52091,6),(52092,6),(52094,6),(52100,6),(52102,6),(52107,6),(52113,6),(52119,6),(52124,6),(52127,6),(52129,6),(52132,6),(52136,6),(52144,6),(52151,6),(52156,6),(52163,6),(52164,6),(52169,6),(52180,6),(52182,6),(52183,6),(52192,6),(52203,6),(52204,6),(52208,6),(52218,6),(52226,6),(52228,6),(52230,6),(52236,6),(52237,6),(52259,6),(52279,6),(52287,6),(52295,6),(52297,6),(52299,6),(52300,6),(52307,6),(52310,6),(52313,6),(52316,6),(52322,6),(52324,6),(52326,6),(52327,6),(52333,6),(52336,6),(52341,6),(52349,6),(52350,6),(52353,6),(52355,6),(52364,6),(52376,6),(52381,6),(52385,6),(52389,6),(52398,6),(52399,6),(52400,6),(52412,6),(52417,6),(52423,6),(52424,6),(52425,6),(52445,6),(52451,6),(52457,6),(52466,6),(52479,6),(52481,6),(52487,6),(52489,6),(52497,6),(52501,6),(52505,6),(52517,6),(52520,6),(52534,6),(52537,6),(52539,6),(52550,6),(52569,6),(52570,6),(52573,6),(52576,6),(52588,6),(52598,6),(52608,6),(52609,6),(52611,6),(52628,6),(52629,6),(52636,6),(52652,6),(52656,6),(52658,6),(52670,6),(52674,6),(52681,6),(52683,6),(52698,6),(52706,6),(52714,6),(52716,6),(52721,6),(52728,6),(52736,6),(52737,6),(52738,6),(52744,6),(52745,6),(52753,6),(52755,6),(52757,6),(52760,6),(52769,6),(52788,6),(52789,6),(52790,6),(52798,6),(52800,6),(52803,6),(52808,6),(52818,6),(52825,6),(52833,6),(52837,6),(52840,6),(52850,6),(52852,6),(52856,6),(52869,6),(52877,6),(52878,6),(52886,6),(52890,6),(52892,6),(52904,6),(52910,6),(52913,6),(52914,6),(52929,6),(52937,6),(52943,6),(52949,6),(52953,6),(52963,6),(52965,6),(52971,6),(52988,6),(53004,6),(53026,6),(53037,6),(53044,6),(53045,6),(53047,6),(53052,6),(53054,6),(53055,6),(53061,6),(53066,6),(53068,6),(53069,6),(53070,6),(53073,6),(53085,6),(53090,6),(53092,6),(53096,6),(53119,6),(53123,6),(53126,6),(53131,6),(53133,6),(53135,6),(53137,6),(53158,6),(53163,6),(53167,6),(53168,6),(53170,6),(53184,6),(53188,6),(53189,6),(53195,6),(53198,6),(53201,6),(53206,6),(53208,6),(53211,6),(53213,6),(53214,6),(53217,6),(53220,6),(53246,6),(53260,6),(53265,6),(53275,6),(53278,6),(53281,6),(53288,6),(53301,6),(53315,6),(53322,6),(53327,6),(53332,6),(53343,6),(53344,6),(53346,6),(53353,6),(53357,6),(53358,6),(53363,6),(53372,6),(53374,6),(53377,6),(53389,6),(53390,6),(53397,6),(53401,6),(53428,6),(53436,6),(53439,6),(53443,6),(53451,6),(53476,6),(53486,6),(53492,6),(53500,6),(53508,6),(53511,6),(53515,6),(53518,6),(53523,6),(53526,6),(53531,6),(53535,6),(53536,6),(53540,6),(53546,6),(53551,6),(53556,6),(53559,6),(53565,6),(53567,6),(53589,6),(53601,6),(53602,6),(53605,6),(53606,6),(53613,6),(53626,6),(53640,6),(53642,6),(53648,6),(53649,6),(53656,6),(53657,6),(53659,6),(53660,6),(53661,6),(53662,6),(53665,6),(53677,6),(53681,6),(53682,6),(53689,6),(53693,6),(53694,6),(53697,6),(53704,6),(53711,6),(53714,6),(53716,6),(53721,6),(53722,6),(53725,6),(53750,6),(53753,6),(53761,6),(53763,6),(53765,6),(53770,6),(53782,6),(53787,6),(53791,6),(53805,6),(53811,6),(53820,6),(53829,6),(53839,6),(53840,6),(53844,6),(53855,6),(53859,6),(53862,6),(53864,6),(53867,6),(53875,6),(53880,6),(53881,6),(53897,6),(53901,6),(53921,6),(53929,6),(53932,6),(53937,6),(53957,6),(53958,6),(53962,6),(53965,6),(53966,6),(53967,6),(53977,6),(53980,6),(53991,6),(53992,6),(53995,6),(54000,6),(54006,6),(54008,6),(54013,6),(54030,6),(54034,6),(54039,6),(54050,6),(54052,6),(54054,6),(54064,6),(54084,6),(54085,6),(54090,6),(54093,6),(54096,6),(54102,6),(54114,6),(54115,6),(54117,6),(54136,6),(54142,6),(54143,6),(54161,6),(54164,6),(54167,6),(54169,6),(54182,6),(54183,6),(54185,6),(54186,6),(54189,6),(54197,6),(54198,6),(54209,6),(54219,6),(54224,6),(54227,6),(54236,6),(54240,6),(54260,6),(54271,6),(54277,6),(54283,6),(54310,6),(54311,6),(54318,6),(54319,6),(54326,6),(54332,6),(54333,6),(54336,6),(54351,6),(54354,6),(54362,6),(54369,6),(54371,6),(54372,6),(54375,6),(54377,6),(54383,6),(54385,6),(54386,6),(54399,6),(54417,6),(54423,6),(54428,6),(54431,6),(54433,6),(54434,6),(54450,6),(54458,6),(54463,6),(54470,6),(54475,6),(54476,6),(54477,6),(54478,6),(54479,6),(54488,6),(54492,6),(54497,6),(54498,6),(54500,6),(54507,6),(54508,6),(54521,6),(54525,6),(54530,6),(54545,6),(54549,6),(54560,6),(54566,6),(54570,6),(54571,6),(54576,6),(54590,6),(54591,6),(54602,6),(54603,6),(54605,6),(54607,6),(54612,6),(54614,6),(54617,6),(54618,6),(54619,6),(54622,6),(54628,6),(54635,6),(54641,6),(54644,6),(54653,6),(54656,6),(54667,6),(54670,6),(54682,6),(54683,6),(54688,6),(54690,6),(54691,6),(54694,6),(54711,6),(54713,6),(54734,6),(54755,6),(54756,6),(54766,6),(54782,6),(54801,6),(54804,6),(54818,6),(54838,6),(54843,6),(54846,6),(54852,6),(54864,6),(54871,6),(54874,6),(54876,6),(54884,6),(54896,6),(54899,6),(54905,6),(54907,6),(54913,6),(54916,6),(54924,6),(54928,6),(54929,6),(54930,6),(54937,6),(54938,6),(54951,6),(54954,6),(54964,6),(54966,6),(54972,6),(54986,6),(54988,6),(54991,6),(54995,6),(54999,6),(55007,6),(55016,6),(55032,6),(55037,6),(55051,6),(55053,6),(55057,6),(55076,6),(55078,6),(55079,6),(55085,6),(55101,6),(55106,6),(55107,6),(55127,6),(55131,6),(55135,6),(55136,6),(55137,6),(55141,6),(55150,6),(55154,6),(55156,6),(55161,6),(55168,6),(55169,6),(55183,6),(55187,6),(55197,6),(55201,6),(55210,6),(55212,6),(55220,6),(55221,6),(55235,6),(55236,6),(55254,6),(55261,6),(55265,6),(55268,6),(55269,6),(55270,6),(55271,6),(55272,6),(55279,6),(55288,6),(55313,6),(55318,6),(55327,6),(55328,6),(55341,6),(55347,6),(55351,6),(55353,6),(55364,6),(55367,6),(55374,6),(55376,6),(55384,6),(55391,6),(55392,6),(55398,6),(55404,6),(55406,6),(55412,6),(55415,6),(55422,6),(55426,6),(55430,6),(55439,6),(55440,6),(55447,6),(55448,6),(55480,6),(55481,6),(55482,6),(55490,6),(55492,6),(55510,6),(55512,6),(55517,6),(55521,6),(55531,6),(55535,6),(55562,6),(55571,6),(55576,6),(55597,6),(55606,6),(55608,6),(55618,6),(55624,6),(55627,6),(55637,6),(55647,6),(55652,6),(55661,6),(55665,6),(55681,6),(55691,6),(55701,6),(55706,6),(55713,6),(55723,6),(55725,6),(55731,6),(55734,6),(55737,6),(55741,6),(55745,6),(55750,6),(55751,6),(55756,6),(55760,6),(55761,6),(55762,6),(55763,6),(55769,6),(55783,6),(55787,6),(55796,6),(55799,6),(55801,6),(55807,6),(55810,6),(55839,6),(55866,6),(55867,6),(55868,6),(55872,6),(55873,6),(55874,6),(55877,6),(55880,6),(55884,6),(55885,6),(55888,6),(55893,6),(55897,6),(55902,6),(55904,6),(55913,6),(55923,6),(55929,6),(55938,6),(55942,6),(55944,6),(55947,6),(55952,6),(55963,6),(55976,6),(55982,6),(55983,6),(55985,6),(55987,6),(55994,6),(55996,6),(56006,6),(56010,6),(56015,6),(56016,6),(56023,6),(56032,6),(56037,6),(56046,6),(56050,6),(56054,6),(56056,6),(56063,6),(56065,6),(56077,6),(56078,6),(56079,6),(56092,6),(56097,6),(56108,6),(56113,6),(56115,6),(56117,6),(56121,6),(56123,6),(56134,6),(56148,6),(56151,6),(56158,6),(56163,6),(56174,6),(56177,6),(56186,6),(56187,6),(56194,6),(56199,6),(56202,6),(56204,6),(56205,6),(56213,6),(56219,6),(56228,6),(56229,6),(56241,6),(56244,6),(56251,6),(56261,6),(56265,6),(56268,6),(56272,6),(56282,6),(56290,6),(56298,6),(56306,6),(56311,6),(56316,6),(56320,6),(56323,6),(56327,6),(56328,6),(56357,6),(56358,6),(56365,6),(56370,6),(56383,6),(56386,6),(56399,6),(56407,6),(56412,6),(56413,6),(56416,6),(56425,6),(56429,6),(56430,6),(56432,6),(56436,6),(56446,6),(56452,6),(56455,6),(56460,6),(56466,6),(56470,6),(56474,6),(56488,6),(56494,6),(56499,6),(56523,6),(56524,6),(56528,6),(56541,6),(56545,6),(56549,6),(56555,6),(56561,6),(56562,6),(56565,6),(56575,6),(56578,6),(56580,6),(56582,6),(56585,6),(56589,6),(56592,6),(56595,6),(56602,6),(56616,6),(56617,6),(56619,6),(56626,6),(56638,6),(56640,6),(56647,6),(56654,6),(56658,6),(56677,6),(56683,6),(56687,6),(56688,6),(56695,6),(56699,6),(56702,6),(56705,6),(56722,6),(56725,6),(56730,6),(56733,6),(56734,6),(56735,6),(56759,6),(56764,6),(56766,6),(56771,6),(56788,6),(56790,6),(56795,6),(56806,6),(56822,6),(56824,6),(56829,6),(56843,6),(56846,6),(56847,6),(56874,6),(56875,6),(56878,6),(56880,6),(56882,6),(56885,6),(56896,6),(56897,6),(56899,6),(56907,6),(56910,6),(56912,6),(56920,6),(56921,6),(56926,6),(56927,6),(56930,6),(56931,6),(56934,6),(56938,6),(56950,6),(56951,6),(56955,6),(56958,6),(56963,6),(56975,6),(56976,6),(56979,6),(56986,6),(57001,6),(57004,6),(57012,6),(57030,6),(57032,6),(57036,6),(57041,6),(57052,6),(57053,6),(57055,6),(57060,6),(57069,6),(57080,6),(57087,6),(57089,6),(57096,6),(57100,6),(57105,6),(57106,6),(57117,6),(57120,6),(57122,6),(57127,6),(57133,6),(57136,6),(57141,6),(57142,6),(57144,6),(57146,6),(57163,6),(57167,6),(57170,6),(57183,6),(57184,6),(57185,6),(57186,6),(57189,6),(57191,6),(57192,6),(57210,6),(57214,6),(57229,6),(57235,6),(57246,6),(57256,6),(57262,6),(57267,6),(57271,6),(57275,6),(57289,6),(57298,6),(57313,6),(57315,6),(57321,6),(57324,6),(57326,6),(57329,6),(57354,6),(57355,6),(57356,6),(57362,6),(57369,6),(57372,6),(57374,6),(57379,6),(57397,6),(57399,6),(57401,6),(57406,6),(57416,6),(57417,6),(57418,6),(57423,6),(57437,6),(57445,6),(57458,6),(57461,6),(57463,6),(57480,6),(57481,6),(57487,6),(57491,6),(57496,6),(57516,6),(57518,6),(57524,6),(57529,6),(57534,6),(57538,6),(57544,6),(57553,6),(57557,6),(57560,6),(57561,6),(57570,6),(57576,6),(57588,6),(57593,6),(57594,6),(57595,6),(57606,6),(57611,6),(57614,6),(57625,6),(57628,6),(57631,6),(57633,6),(57644,6),(57648,6),(57651,6),(57656,6),(57660,6),(57676,6),(57678,6),(57681,6),(57683,6),(57692,6),(57699,6),(57704,6),(57725,6),(57727,6),(57736,6),(57742,6),(57759,6),(57762,6),(57766,6),(57769,6),(57770,6),(57773,6),(57776,6),(57781,6),(57785,6),(57789,6),(57794,6),(57803,6),(57806,6),(57808,6),(57809,6),(57810,6),(57811,6),(57815,6),(57817,6),(57831,6),(57836,6),(57838,6),(57845,6),(57852,6),(57854,6),(57867,6),(57874,6),(57889,6),(57896,6),(57901,6),(57908,6),(57913,6),(57914,6),(57917,6),(57920,6),(57922,6),(57924,6),(57925,6),(57937,6),(57938,6),(57942,6),(57948,6),(57961,6),(57964,6),(57976,6),(57982,6),(57983,6),(57992,6),(57998,6),(58003,6),(58007,6),(58013,6),(58020,6),(58023,6),(58024,6),(58025,6),(58030,6),(58033,6),(58039,6),(58041,6),(58043,6),(58051,6),(58052,6),(58053,6),(58055,6),(58056,6),(58068,6),(58069,6),(58071,6),(58077,6),(58089,6),(58097,6),(58100,6),(58106,6),(58108,6),(58109,6),(58116,6),(58124,6),(58126,6),(58136,6),(58144,6),(58145,6),(58146,6),(58150,6),(58153,6),(58157,6),(58174,6),(58178,6),(58182,6),(58188,6),(58192,6),(58201,6),(58204,6),(58207,6),(58208,6),(58214,6),(58217,6),(58229,6),(58237,6),(58241,6),(58242,6),(58243,6),(58246,6),(58252,6),(58276,6),(58280,6),(58284,6),(58297,6),(58306,6),(58308,6),(58314,6),(58322,6),(58324,6),(58333,6),(58338,6),(58354,6),(58356,6),(58359,6),(58361,6),(58366,6),(58367,6),(58374,6),(58378,6),(58379,6),(58389,6),(58395,6),(58402,6),(58403,6),(58413,6),(58423,6),(58426,6),(58434,6),(58443,6),(58444,6),(58445,6),(58448,6),(58451,6),(58456,6),(58473,6),(58479,6),(58483,6),(58492,6),(58505,6),(58519,6),(58523,6),(58531,6),(58534,6),(58535,6),(58544,6),(58552,6),(58558,6),(58559,6),(58585,6),(58586,6),(58589,6),(58592,6),(58601,6),(58604,6),(58606,6),(58608,6),(58609,6),(58611,6),(58621,6),(58625,6),(58627,6),(58628,6),(58630,6),(58635,6),(58641,6),(58642,6),(58646,6),(58647,6),(58674,6),(58682,6),(58687,6),(58688,6),(58691,6),(58702,6),(58706,6),(58728,6),(58729,6),(58736,6),(58740,6),(58754,6),(58758,6),(58761,6),(58775,6),(58780,6),(58789,6),(58793,6),(58794,6),(58798,6),(58799,6),(58803,6),(58813,6),(58816,6),(58817,6),(58824,6),(58830,6),(58836,6),(58847,6),(58851,6),(58856,6),(58857,6),(58865,6),(58879,6),(58880,6),(58882,6),(58887,6),(58892,6),(58909,6),(58923,6),(58930,6),(58931,6),(58943,6),(58955,6),(58957,6),(58959,6),(58961,6),(58965,6),(58968,6),(58969,6),(58979,6),(58983,6),(58987,6),(58999,6),(59002,6),(59008,6),(59010,6),(59013,6),(59015,6),(59016,6),(59018,6),(59023,6),(59033,6),(59053,6),(59065,6),(59066,6),(59071,6),(59075,6),(59093,6),(59102,6),(59111,6),(59127,6),(59133,6),(59138,6),(59151,6),(59156,6),(59157,6),(59160,6),(59161,6),(59166,6),(59174,6),(59183,6),(59191,6),(59201,6),(59206,6),(59207,6),(59208,6),(59220,6),(59232,6),(59240,6),(59243,6),(59245,6),(59267,6),(59275,6),(59276,6),(59279,6),(59283,6),(59292,6),(59294,6),(59295,6),(59296,6),(59305,6),(59307,6),(59320,6),(59327,6),(59333,6),(59334,6),(59335,6),(59337,6),(59338,6),(59342,6),(59347,6),(59351,6),(59356,6),(59358,6),(59364,6),(59376,6),(59377,6),(59380,6),(59395,6),(59414,6),(59417,6),(59418,6),(59421,6),(59425,6),(59428,6),(59429,6),(59435,6),(59440,6),(59444,6),(59451,6),(59463,6),(59469,6),(59472,6),(59476,6),(59486,6),(59487,6),(59490,6),(59493,6),(59495,6),(59501,6),(59509,6),(59512,6),(59515,6),(59517,6),(59531,6),(59536,6),(59537,6),(59539,6),(59551,6),(59554,6),(59555,6),(59560,6),(59583,6),(59586,6),(59594,6),(59599,6),(59608,6),(59611,6),(59618,6),(59623,6),(59628,6),(59630,6),(59652,6),(59658,6),(59661,6),(59667,6),(59669,6),(59671,6),(59678,6),(59681,6),(59696,6),(59698,6),(59708,6),(59709,6),(59711,6),(59722,6),(59728,6),(59744,6),(59751,6),(59752,6),(59758,6),(59767,6),(59774,6),(59786,6),(59795,6),(59812,6),(59820,6),(59841,6),(59847,6),(59849,6),(59854,6),(59866,6),(59873,6),(59877,6),(59884,6),(59885,6),(59895,6),(59898,6),(59901,6),(59907,6),(59908,6),(59914,6),(59917,6),(59919,6),(59921,6),(59922,6),(59923,6),(59935,6),(59940,6),(59941,6),(59944,6),(59957,6),(59961,6),(59968,6),(59973,6),(59985,6),(59995,6),(59999,6),(60008,6),(60009,6),(60010,6),(60013,6),(60022,6),(60023,6),(60024,6),(60025,6),(60035,6),(60036,6),(60049,6),(60051,6),(60052,6),(60065,6),(60066,6),(60089,6),(60102,6),(60105,6),(60107,6),(60120,6),(60125,6),(60130,6),(60134,6),(60135,6),(60138,6),(60143,6),(60144,6),(60146,6),(60151,6),(60155,6),(60160,6),(60163,6),(60164,6),(60165,6),(60166,6),(60167,6),(60170,6),(60175,6),(60186,6),(60190,6),(60194,6),(60200,6),(60201,6),(60210,6),(60215,6),(60227,6),(60248,6),(60263,6),(60268,6),(60273,6),(60280,6),(60281,6),(60306,6),(60310,6),(60311,6),(60312,6),(60315,6),(60316,6),(60337,6),(60339,6),(60342,6),(60359,6),(60367,6),(60375,6),(60376,6),(60379,6),(60380,6),(60385,6),(60393,6),(60394,6),(60399,6),(60400,6),(60406,6),(60412,6),(60415,6),(60421,6),(60429,6),(60431,6),(60432,6),(60433,6),(60438,6),(60441,6),(60446,6),(60450,6),(60453,6),(60458,6),(60462,6),(60470,6),(60498,6),(60502,6),(60513,6),(60528,6),(60530,6),(60532,6),(60533,6),(60534,6),(60548,6),(60549,6),(60561,6),(60566,6),(60573,6),(60576,6),(60579,6),(60586,6),(60602,6),(60603,6),(60607,6),(60610,6),(60633,6),(60637,6),(60639,6),(60642,6),(60643,6),(60644,6),(60646,6),(60655,6),(60657,6),(60671,6),(60673,6),(60677,6),(60680,6),(60684,6),(60687,6),(60688,6),(60691,6),(60692,6),(60695,6),(60705,6),(60707,6),(60709,6),(60713,6),(60718,6),(60721,6),(60733,6),(60734,6),(60742,6),(60748,6),(60754,6),(60762,6),(60773,6),(60789,6),(60793,6),(60797,6),(60802,6),(60817,6),(60820,6),(60839,6),(60842,6),(60846,6),(60853,6),(60860,6),(60861,6),(60876,6),(60880,6),(60882,6),(60889,6),(60900,6),(60907,6),(60908,6),(60916,6),(60918,6),(60923,6),(60928,6),(60936,6),(60945,6),(60950,6),(60956,6),(60963,6),(60983,6),(60993,6),(60995,6),(60998,6),(61016,6),(61018,6),(61021,6),(61022,6),(61038,6),(61042,6),(61060,6),(61074,6),(61081,6),(61084,6),(61085,6),(61092,6),(61100,6),(61106,6),(61111,6),(61117,6),(61121,6),(61137,6),(61140,6),(61154,6),(61173,6),(61189,6),(61193,6),(61197,6),(61198,6),(61202,6),(61207,6),(61219,6),(61220,6),(61229,6),(61247,6),(61251,6),(61252,6),(61254,6),(61263,6),(61265,6),(61266,6),(61267,6),(61271,6),(61277,6),(61278,6),(61282,6),(61287,6),(61290,6),(61291,6),(61293,6),(61295,6),(61302,6),(61306,6),(61316,6),(61321,6),(61325,6),(61327,6),(61329,6),(61330,6),(61335,6),(61342,6),(61346,6),(61348,6),(61357,6),(61365,6),(61371,6),(61380,6),(61384,6),(61389,6),(61391,6),(61404,6),(61405,6),(61408,6),(61415,6),(61416,6),(61420,6),(61422,6),(61432,6),(61433,6),(61434,6),(61435,6),(61444,6),(61447,6),(61452,6),(61453,6),(61454,6),(61455,6),(61465,6),(61470,6),(61477,6),(61481,6),(61483,6),(61494,6),(61497,6),(61502,6),(61514,6),(61519,6),(61520,6),(61528,6),(61529,6),(61537,6),(61553,6),(61559,6),(61562,6),(61573,6),(61576,6),(61577,6),(61588,6),(61589,6),(61592,6),(61595,6),(61605,6),(61608,6),(61613,6),(61617,6),(61620,6),(61623,6),(61628,6),(61631,6),(61638,6),(61643,6),(61645,6),(61646,6),(61650,6),(61651,6),(61656,6),(61659,6),(61667,6),(61687,6),(61691,6),(61693,6),(61701,6),(61703,6),(61723,6),(61728,6),(61730,6),(61733,6),(61739,6),(61750,6),(61752,6),(61757,6),(61759,6),(61760,6),(61767,6),(61774,6),(61778,6),(61785,6),(61789,6),(61791,6),(61810,6),(61824,6),(61825,6),(61834,6),(61838,6),(61839,6),(61840,6),(61852,6),(61867,6),(61882,6),(61894,6),(61897,6),(61898,6),(61902,6),(61904,6),(61907,6),(61908,6),(61911,6),(61916,6),(61917,6),(61930,6),(61939,6),(61946,6),(61947,6),(61953,6),(61958,6),(61972,6),(61974,6),(61975,6),(61978,6),(61979,6),(61981,6),(62012,6),(62016,6),(62018,6),(62020,6),(62026,6),(62037,6),(62041,6),(62043,6),(62051,6),(62053,6),(62054,6),(62076,6),(62079,6),(62080,6),(62089,6),(62093,6),(62097,6),(62098,6),(62111,6),(62117,6),(62124,6),(62163,6),(62168,6),(62172,6),(62178,6),(62196,6),(62207,6),(62209,6),(62212,6),(62227,6),(62229,6),(62239,6),(62243,6),(62244,6),(62246,6),(62248,6),(62252,6),(62271,6),(62274,6),(62277,6),(62280,6),(62290,6),(62294,6),(62323,6),(62329,6),(62330,6),(62332,6),(62361,6),(62364,6),(62365,6),(62369,6),(62384,6),(62386,6),(62389,6),(62419,6),(62425,6),(62429,6),(62445,6),(62446,6),(62453,6),(62461,6),(62463,6),(62476,6),(62482,6),(62486,6),(62493,6),(62503,6),(62531,6),(62533,6),(62537,6),(62547,6),(62554,6),(62555,6),(62561,6),(62564,6),(62567,6),(62569,6),(62570,6),(62577,6),(62578,6),(62581,6),(62582,6),(62588,6),(62597,6),(62604,6),(62605,6),(62610,6),(62619,6),(62620,6),(62626,6),(62633,6),(62641,6),(62643,6),(62663,6),(62664,6),(62666,6),(62673,6),(62679,6),(62682,6),(62685,6),(62696,6),(62706,6),(62721,6),(62733,6),(62744,6),(62746,6),(62755,6),(62756,6),(62768,6),(62771,6),(62773,6),(62781,6),(62790,6),(62791,6),(62793,6),(62801,6),(62803,6),(62833,6),(62834,6),(62840,6),(62844,6),(62847,6),(62859,6),(62862,6),(62868,6),(62870,6),(62872,6),(62878,6),(62890,6),(62891,6),(62899,6),(62905,6),(62924,6),(62928,6),(62940,6),(62941,6),(62944,6),(62945,6),(62955,6),(62958,6),(62960,6),(62961,6),(62978,6),(62987,6),(62989,6),(62991,6),(62993,6),(62997,6),(63012,6),(63014,6),(63020,6),(63027,6),(63028,6),(63030,6),(63035,6),(63042,6),(63059,6),(63063,6),(63067,6),(63071,6),(63075,6),(63079,6),(63082,6),(63087,6),(63090,6),(63096,6),(63104,6),(63108,6),(63114,6),(63127,6),(63128,6),(63135,6),(63140,6),(63144,6),(63173,6),(63174,6),(63180,6),(63181,6),(63184,6),(63189,6),(63192,6),(63202,6),(63207,6),(63211,6),(63224,6),(63226,6),(63232,6),(63235,6),(63237,6),(63242,6),(63253,6),(63256,6),(63265,6),(63267,6),(63278,6),(63294,6),(63295,6),(63301,6),(63306,6),(63310,6),(63324,6),(63329,6),(63332,6),(63336,6),(63341,6),(63345,6),(63348,6),(63350,6),(63359,6),(63384,6),(63391,6),(63395,6),(63405,6),(63433,6),(63445,6),(63446,6),(63456,6),(63457,6),(63460,6),(63467,6),(63469,6),(63475,6),(63493,6),(63494,6),(63499,6),(63501,6),(63503,6),(63506,6),(63512,6),(63515,6),(63516,6),(63517,6),(63519,6),(63524,6),(63534,6),(63545,6),(63554,6),(63559,6),(63561,6),(63563,6),(63569,6),(63573,6),(63574,6),(63582,6),(63587,6),(63598,6),(63609,6),(63611,6),(63612,6),(63622,6),(63623,6),(63626,6),(63628,6),(63632,6),(63635,6),(63647,6),(63665,6),(63668,6),(63674,6),(63676,6),(63679,6),(63685,6),(63699,6),(63701,6),(63703,6),(63706,6),(63714,6),(63720,6),(63725,6),(63729,6),(63738,6),(63766,6),(63768,6),(63772,6),(63781,6),(63792,6),(63794,6),(63799,6),(63801,6),(63812,6),(63815,6),(63817,6),(63818,6),(63829,6),(63833,6),(63838,6),(63847,6),(63848,6),(63854,6),(63855,6),(63860,6),(63875,6),(63889,6),(63890,6),(63891,6),(63897,6),(63904,6),(63909,6),(63911,6),(63912,6),(63913,6),(63914,6),(63916,6),(63920,6),(63929,6),(63930,6),(63938,6),(63944,6),(63947,6),(63951,6),(63954,6),(63956,6),(63958,6),(63969,6),(63972,6),(63974,6),(63975,6),(63978,6),(63983,6),(64000,6),(64004,6),(64007,6),(64012,6),(64015,6),(64018,6),(64025,6),(64028,6),(64031,6),(64038,6),(64039,6),(64040,6),(64043,6),(64045,6),(64055,6),(64072,6),(64082,6),(64083,6),(64090,6),(64093,6),(64097,6),(64104,6),(64123,6),(64127,6),(64134,6),(64140,6),(64150,6),(64152,6),(64153,6),(64160,6),(64174,6),(64178,6),(64184,6),(64193,6),(64196,6),(64199,6),(64200,6),(64226,6),(64230,6),(64234,6),(64246,6),(64255,6),(64260,6),(64262,6),(64265,6),(64267,6),(64272,6),(64274,6),(64281,6),(64286,6),(64292,6),(64293,6),(64313,6),(64327,6),(64336,6),(64337,6),(64339,6),(64340,6),(64341,6),(64344,6),(64349,6),(64369,6),(64370,6),(64372,6),(64374,6),(64379,6),(64381,6),(64382,6),(64385,6),(64386,6),(64387,6),(64389,6),(64399,6),(64404,6),(64411,6),(64417,6),(64421,6),(64422,6),(64427,6),(64436,6),(64438,6),(64439,6),(64444,6),(64455,6),(64465,6),(64474,6),(64475,6),(64482,6),(64485,6),(64496,6),(64502,6),(64508,6),(64511,6),(64525,6),(64528,6),(64539,6),(64556,6),(64569,6),(64572,6),(64574,6),(64587,6),(64591,6),(64597,6),(64599,6),(64600,6),(64602,6),(64607,6),(64616,6),(64617,6),(64622,6),(64625,6),(64631,6),(64638,6),(64640,6),(64645,6),(64656,6),(64664,6),(64672,6),(64675,6),(64687,6),(64692,6),(64697,6),(64701,6),(64709,6),(64710,6),(64711,6),(64715,6),(64721,6),(64722,6),(64731,6),(64732,6),(64766,6),(64767,6),(64768,6),(64772,6),(64774,6),(64784,6),(64801,6),(64808,6),(64814,6),(64827,6),(64847,6),(64850,6),(64854,6),(64856,6),(64860,6),(64865,6),(64866,6),(64870,6),(64872,6),(64879,6),(64887,6),(64894,6),(64902,6),(64905,6),(64920,6),(64921,6),(64924,6),(64925,6),(64928,6),(64930,6),(64936,6),(64939,6),(64970,6),(64974,6),(64987,6),(64989,6),(65008,6),(65017,6),(65024,6),(65034,6),(65038,6),(65052,6),(65059,6),(65065,6),(65082,6),(65087,6),(65095,6),(65102,6),(65133,6),(65137,6),(65142,6),(65143,6),(65145,6),(65154,6),(65156,6),(65161,6),(65168,6),(65172,6),(65176,6),(65181,6),(65185,6),(65188,6),(65189,6),(65191,6),(65194,6),(65195,6),(65198,6),(65199,6),(65201,6),(65219,6),(65223,6),(65226,6),(65227,6),(65229,6),(65231,6),(65236,6),(65237,6),(65238,6),(65242,6),(65248,6),(65277,6),(65279,6),(65280,6),(65281,6),(65284,6),(65289,6),(65295,6),(65304,6),(65307,6),(65310,6),(65311,6),(65315,6),(65317,6),(65318,6),(65321,6),(65331,6),(65340,6),(65342,6),(65345,6),(65350,6),(65374,6),(65381,6),(65388,6),(65389,6),(65394,6),(65395,6),(65399,6),(65400,6),(65401,6),(65403,6),(65409,6),(65414,6),(65417,6),(65422,6),(65429,6),(65433,6),(65439,6),(65453,6),(65463,6),(65466,6),(65478,6),(65484,6),(65488,6),(65515,6),(65530,6),(65533,6),(65540,6),(65543,6),(65555,6),(65560,6),(65562,6),(65570,6),(65571,6),(65591,6),(65595,6),(65598,6),(65599,6),(65610,6),(65614,6),(65622,6),(65626,6),(65637,6),(65655,6),(65671,6),(65678,6),(65685,6),(65686,6),(65689,6),(65694,6),(65704,6),(65705,6),(65712,6),(65713,6),(65714,6),(65719,6),(65722,6),(65726,6),(65733,6),(65742,6),(65750,6),(65751,6),(65755,6),(65760,6),(65762,6),(65766,6),(65769,6),(65774,6),(65776,6),(65789,6),(65793,6),(65800,6),(65804,6),(65817,6),(65818,6),(65822,6),(65831,6),(65844,6),(65850,6),(65853,6),(65854,6),(65873,6),(65875,6),(65876,6),(65908,6),(65910,6),(65915,6),(65922,6),(65926,6),(65940,6),(65946,6),(65956,6),(65958,6),(65959,6),(65973,6),(65977,6),(65982,6),(65989,6),(65996,6),(65999,6),(66007,6),(66011,6),(66028,6),(66030,6),(66033,6),(66034,6),(66042,6),(66050,6),(66052,6),(66055,6),(66072,6),(66074,6),(66080,6),(66087,6),(66098,6),(66100,6),(66101,6),(66102,6),(66108,6),(66114,6),(66115,6),(66116,6),(66131,6),(66132,6),(66135,6),(66136,6),(66140,6),(66144,6),(66145,6),(66147,6),(66149,6),(66151,6),(66156,6),(66162,6),(66164,6),(66167,6),(66171,6),(66174,6),(66182,6),(66184,6),(66185,6),(66186,6),(66195,6),(66201,6),(66208,6),(66210,6),(66214,6),(66227,6),(66229,6),(66230,6),(66244,6),(66249,6),(66251,6),(66254,6),(66257,6),(66262,6),(66266,6),(66283,6),(66290,6),(66292,6),(66293,6),(66305,6),(66310,6),(66312,6),(66325,6),(66329,6),(66341,6),(66344,6),(66345,6),(66352,6),(66359,6),(66363,6),(66369,6),(66383,6),(66384,6),(66385,6),(66391,6),(66399,6),(66412,6),(66427,6),(66431,6),(66437,6),(66442,6),(66443,6),(66444,6),(66445,6),(66452,6),(66455,6),(66472,6),(66477,6),(66500,6),(66511,6),(66520,6),(66523,6),(66525,6),(66527,6),(66534,6),(66541,6),(66545,6),(66560,6),(66564,6),(66566,6),(66574,6),(66579,6),(66598,6),(66637,6),(66640,6),(66654,6),(66656,6),(66658,6),(66672,6),(66678,6),(66685,6),(66690,6),(66692,6),(66698,6),(66699,6),(66700,6),(66704,6),(66711,6),(66721,6),(66726,6),(66729,6),(66730,6),(66735,6),(66736,6),(66738,6),(66743,6),(66748,6),(66753,6),(66756,6),(66760,6),(66761,6),(66762,6),(66763,6),(66764,6),(66770,6),(66772,6),(66805,6),(66806,6),(66807,6),(66815,6),(66821,6),(66823,6),(66835,6),(66836,6),(66837,6),(66845,6),(66848,6),(66850,6),(66854,6),(66857,6),(66866,6),(66875,6),(66877,6),(66880,6),(66883,6),(66885,6),(66893,6),(66904,6),(66906,6),(66910,6),(66919,6),(66932,6),(66933,6),(66939,6),(66945,6),(66949,6),(66967,6),(66991,6),(66997,6),(67001,6),(67009,6),(67013,6),(67015,6),(67019,6),(67023,6),(67025,6),(67029,6),(67037,6),(67049,6),(67058,6),(67072,6),(67075,6),(67083,6),(67084,6),(67086,6),(67087,6),(67103,6),(67106,6),(67108,6),(67112,6),(67117,6),(67118,6),(67121,6),(67169,6),(67172,6),(67173,6),(67174,6),(67175,6),(67177,6),(67182,6),(67190,6),(67206,6),(67209,6),(67213,6),(67218,6),(67225,6),(67236,6),(67239,6),(67251,6),(67255,6),(67258,6),(67261,6),(67262,6),(67264,6),(67265,6),(67266,6),(67267,6),(67268,6),(67270,6),(67275,6),(67277,6),(67284,6),(67287,6),(67290,6),(67293,6),(67307,6),(67314,6),(67315,6),(67324,6),(67327,6),(67337,6),(67345,6),(67352,6),(67360,6),(67362,6),(67366,6),(67372,6),(67383,6),(67390,6),(67408,6),(67409,6),(67422,6),(67425,6),(67455,6),(67459,6),(67468,6),(67469,6),(67486,6),(67494,6),(67497,6),(67540,6),(67546,6),(67575,6),(67576,6),(67589,6),(67603,6),(67606,6),(67622,6),(67627,6),(67643,6),(67645,6),(67651,6),(67653,6),(67657,6),(67663,6),(67694,6),(67700,6),(67703,6),(67704,6),(67709,6),(67710,6),(67722,6),(67732,6),(67742,6),(67748,6),(67751,6),(67753,6),(67754,6),(67756,6),(67761,6),(67764,6),(67770,6),(67776,6),(67794,6),(67795,6),(67796,6),(67801,6),(67805,6),(67814,6),(67837,6),(67842,6),(67852,6),(67853,6),(67857,6),(67858,6),(67862,6),(67863,6),(67870,6),(67873,6),(67876,6),(67878,6),(67883,6),(67884,6),(67892,6),(67898,6),(67899,6),(67900,6),(67910,6),(67913,6),(67919,6),(67920,6),(67924,6),(67928,6),(67931,6),(67939,6),(67945,6),(67952,6),(67957,6),(67960,6),(67962,6),(67982,6),(67986,6),(68001,6),(68004,6),(68015,6),(68030,6),(68032,6),(68035,6),(68038,6),(68041,6),(68042,6),(68046,6),(68050,6),(68051,6),(68059,6),(68063,6),(68069,6),(68072,6),(68073,6),(68078,6),(68087,6),(68092,6),(68096,6),(68108,6),(68119,6),(68120,6),(68128,6),(68134,6),(68145,6),(68150,6),(68152,6),(68170,6),(68173,6),(68176,6),(68186,6),(68189,6),(68203,6),(68213,6),(68218,6),(68222,6),(68225,6),(68227,6),(68231,6),(68236,6),(68248,6),(68251,6),(68256,6),(68266,6),(68281,6),(68282,6),(68288,6),(68294,6),(68296,6),(68297,6),(68298,6),(68301,6),(68307,6),(68318,6),(68323,6),(68326,6),(68336,6),(68338,6),(68340,6),(68344,6),(68349,6),(68350,6),(68351,6),(68352,6),(68356,6),(68368,6),(68376,6),(68378,6),(68383,6),(68396,6),(68398,6),(68401,6),(68404,6),(68410,6),(68411,6),(68413,6),(68419,6),(68428,6),(68436,6),(68452,6),(68453,6),(68458,6),(68464,6),(68477,6),(68482,6),(68483,6),(68490,6),(68491,6),(68503,6),(68505,6),(68510,6),(68512,6),(68513,6),(68514,6),(68515,6),(68532,6),(68535,6),(68541,6),(68543,6),(68554,6),(68555,6),(68560,6),(68562,6),(68563,6),(68566,6),(68577,6),(68581,6),(68593,6),(68599,6),(68607,6),(68625,6),(68628,6),(68634,6),(68638,6),(68641,6),(68644,6),(68654,6),(68657,6),(68660,6),(68666,6),(68668,6),(68669,6),(68673,6),(68683,6),(68686,6),(68688,6),(68691,6),(68694,6),(68697,6),(68700,6),(68704,6),(68705,6),(68706,6),(68707,6),(68711,6),(68713,6),(68725,6),(68726,6),(68754,6),(68760,6),(68775,6),(68784,6),(68786,6),(68787,6),(68793,6),(68802,6),(68803,6),(68806,6),(68812,6),(68813,6),(68816,6),(68829,6),(68831,6),(68833,6),(68834,6),(68839,6),(68845,6),(68847,6),(68848,6),(68851,6),(68854,6),(68857,6),(68861,6),(68862,6),(68864,6),(68865,6),(68868,6),(68874,6),(68880,6),(68887,6),(68892,6),(68899,6),(68904,6),(68906,6),(68917,6),(68919,6),(68951,6),(68954,6),(68956,6),(68963,6),(68972,6),(68978,6),(68982,6),(68984,6),(68993,6),(68997,6),(69000,6),(69008,6),(69010,6),(69015,6),(69017,6),(69021,6),(69028,6),(69029,6),(69038,6),(69039,6),(69040,6),(69046,6),(69048,6),(69050,6),(69051,6),(69056,6),(69057,6),(69059,6),(69062,6),(69065,6),(69075,6),(69082,6),(69090,6),(69099,6),(69101,6),(69111,6),(69113,6),(69114,6),(69121,6),(69127,6),(69139,6),(69146,6),(69153,6),(69157,6),(69163,6),(69192,6),(69193,6),(69194,6),(69195,6),(69197,6),(69202,6),(69205,6),(69215,6),(69223,6),(69228,6),(69230,6),(69233,6),(69235,6),(69244,6),(69253,6),(69255,6),(69257,6),(69265,6),(69267,6),(69273,6),(69279,6),(69285,6),(69286,6),(69287,6),(69290,6),(69307,6),(69331,6),(69334,6),(69335,6),(69336,6),(69339,6),(69342,6),(69350,6),(69352,6),(69361,6),(69364,6),(69383,6),(69386,6),(69388,6),(69389,6),(69393,6),(69401,6),(69406,6),(69410,6),(69435,6),(69438,6),(69445,6),(69447,6),(69460,6),(69483,6),(69485,6),(69497,6),(69499,6),(69500,6),(69503,6),(69507,6),(69508,6),(69519,6),(69522,6),(69524,6),(69528,6),(69530,6),(69537,6),(69538,6),(69542,6),(69544,6),(69556,6),(69558,6),(69588,6),(69590,6),(69612,6),(69614,6),(69622,6),(69635,6),(69636,6),(69643,6),(69648,6),(69650,6),(69681,6),(69698,6),(69699,6),(69700,6),(69702,6),(69713,6),(69721,6),(69724,6),(69728,6),(69740,6),(69749,6),(69753,6),(69754,6),(69762,6),(69766,6),(69769,6),(69774,6),(69782,6),(69789,6),(69794,6),(69799,6),(69806,6),(69813,6),(69825,6),(69830,6),(69845,6),(69850,6),(69853,6),(69857,6),(69858,6),(69859,6),(69860,6),(69861,6),(69874,6),(69879,6),(69894,6),(69900,6),(69902,6),(69903,6),(69915,6),(69925,6),(69934,6),(69941,6),(69943,6),(69948,6),(69954,6),(69960,6),(69967,6),(69974,6),(69980,6),(69986,6),(69994,6),(70007,6),(70016,6),(70021,6),(70022,6),(70023,6),(70025,6),(70032,6),(70051,6),(70060,6),(70062,6),(70068,6),(70073,6),(70076,6),(70077,6),(70084,6),(70096,6),(70098,6),(70105,6),(70111,6),(70128,6),(70140,6),(70153,6),(70181,6),(70186,6),(70189,6),(70190,6),(70193,6),(70194,6),(70200,6),(70202,6),(70207,6),(70208,6),(70210,6),(70213,6),(70230,6),(70244,6),(70246,6),(70247,6),(70256,6),(70258,6),(70287,6),(70294,6),(70299,6),(70305,6),(70310,6),(70313,6),(70315,6),(70332,6),(70340,6),(70341,6),(70351,6),(70352,6),(70355,6),(70356,6),(70363,6),(70377,6),(70387,6),(70396,6),(70402,6),(70403,6),(70404,6),(70406,6),(70416,6),(70423,6),(70429,6),(70430,6),(70433,6),(70442,6),(70451,6),(70463,6),(70467,6),(70468,6),(70481,6),(70484,6),(70487,6),(70496,6),(70499,6),(70504,6),(70508,6),(70523,6),(70529,6),(70530,6),(70531,6),(70534,6),(70546,6),(70550,6),(70553,6),(70554,6),(70556,6),(70568,6),(70572,6),(70573,6),(70575,6),(70576,6),(70580,6),(70584,6),(70594,6),(70595,6),(70596,6),(70601,6),(70602,6),(70607,6),(70610,6),(70622,6),(70625,6),(70628,6),(70637,6),(70647,6),(70648,6),(70652,6),(70664,6),(70675,6),(70684,6),(70688,6),(70691,6),(70699,6),(70702,6),(70705,6),(70709,6),(70710,6),(70718,6),(70722,6),(70726,6),(70729,6),(70733,6),(70744,6),(70751,6),(70755,6),(70756,6),(70780,6),(70781,6),(70791,6),(70801,6),(70802,6),(70818,6),(70822,6),(70825,6),(70834,6),(70842,6),(70843,6),(70847,6),(70848,6),(70865,6),(70873,6),(70885,6),(70892,6),(70902,6),(70904,6),(70905,6),(70909,6),(70912,6),(70916,6),(70920,6),(70924,6),(70928,6),(70929,6),(70941,6),(70949,6),(70956,6),(70957,6),(70960,6),(70967,6),(70979,6),(70981,6),(70986,6),(70988,6),(70990,6),(70997,6),(71000,6),(71005,6),(71013,6),(71028,6),(71036,6),(71039,6),(71040,6),(71052,6),(71058,6),(71061,6),(71063,6),(71064,6),(71071,6),(71081,6),(71091,6),(71104,6),(71109,6),(71112,6),(71113,6),(71117,6),(71122,6),(71130,6),(71133,6),(71143,6),(71170,6),(71174,6),(71178,6),(71179,6),(71180,6),(71192,6),(71193,6),(71194,6),(71196,6),(71197,6),(71198,6),(71202,6),(71203,6),(71210,6),(71213,6),(71215,6),(71226,6),(71238,6),(71241,6),(71260,6),(71263,6),(71271,6),(71273,6),(71281,6),(71285,6),(71302,6),(71303,6),(71310,6),(71322,6),(71328,6),(71330,6),(71341,6),(71345,6),(71359,6),(71382,6),(71383,6),(71385,6),(71391,6),(71405,6),(71409,6),(71421,6),(71422,6),(71424,6),(71426,6),(71436,6),(71441,6),(71445,6),(71446,6),(71448,6),(71461,6),(71467,6),(71473,6),(71480,6),(71484,6),(71486,6),(71488,6),(71497,6),(71502,6),(71507,6),(71516,6),(71522,6),(71523,6),(71527,6),(71532,6),(71553,6),(71568,6),(71577,6),(71578,6),(71605,6),(71606,6),(71607,6),(71612,6),(71645,6),(71649,6),(71652,6),(71657,6),(71658,6),(71659,6),(71667,6),(71688,6),(71692,6),(71695,6),(71696,6),(71697,6),(71710,6),(71711,6),(71712,6),(71725,6),(71726,6),(71733,6),(71735,6),(71744,6),(71752,6),(71754,6),(71758,6),(71759,6),(71760,6),(71762,6),(71766,6),(71777,6),(71800,6),(71803,6),(71805,6),(71807,6),(71811,6),(71825,6),(71827,6),(71829,6),(71832,6),(71835,6),(71846,6),(71850,6),(71851,6),(71852,6),(71853,6),(71862,6),(71866,6),(71873,6),(71874,6),(71897,6),(71900,6),(71904,6),(71921,6),(71937,6),(71942,6),(71943,6),(71953,6),(71966,6),(71976,6),(71981,6),(71985,6),(71992,6),(71995,6),(71996,6),(72006,6),(72007,6),(72008,6),(72010,6),(72012,6),(72016,6),(72021,6),(72024,6),(72031,6),(72034,6),(72054,6),(72055,6),(72059,6),(72064,6),(72067,6),(72077,6),(72078,6),(72082,6),(72085,6),(72092,6),(72096,6),(72099,6),(72100,6),(72101,6),(72110,6),(72114,6),(72119,6),(72129,6),(72130,6),(72136,6),(72144,6),(72146,6),(72148,6),(72149,6),(72163,6),(72164,6),(72172,6),(72177,6),(72181,6),(72185,6),(72186,6),(72187,6),(72194,6),(72196,6),(72204,6),(72213,6),(72216,6),(72219,6),(72221,6),(72236,6),(72240,6),(72256,6),(72257,6),(72266,6),(72267,6),(72268,6),(72291,6),(72303,6),(72305,6),(72312,6),(72320,6),(72322,6),(72325,6),(72327,6),(72337,6),(72346,6),(72355,6),(72356,6),(72361,6),(72364,6),(72365,6),(72372,6),(72373,6),(72380,6),(72382,6),(72383,6),(72385,6),(72393,6),(72421,6),(72426,6),(72438,6),(72441,6),(72447,6),(72452,6),(72456,6),(72460,6),(72465,6),(72468,6),(72481,6),(72484,6),(72492,6),(72517,6),(72518,6),(72519,6),(72523,6),(72524,6),(72527,6),(72540,6),(72552,6),(72555,6),(72570,6),(72571,6),(72588,6),(72592,6),(72598,6),(72599,6),(72607,6),(72609,6),(72624,6),(72625,6),(72633,6),(72639,6),(72657,6),(72663,6),(72664,6),(72672,6),(72676,6),(72685,6),(72690,6),(72694,6),(72695,6),(72700,6),(72703,6),(72707,6),(72710,6),(72713,6),(72716,6),(72720,6),(72721,6),(72723,6),(72735,6),(72745,6),(72754,6),(72777,6),(72783,6),(72786,6),(72791,6),(72800,6),(72802,6),(72829,6),(72830,6),(72833,6),(72844,6),(72850,6),(72858,6),(72861,6),(72868,6),(72875,6),(72880,6),(72883,6),(72897,6),(72903,6),(72912,6),(72924,6),(72934,6),(72935,6),(72950,6),(72959,6),(72968,6),(72972,6),(73002,6),(73015,6),(73030,6),(73037,6),(73048,6),(73051,6),(73054,6),(73061,6),(73068,6),(73076,6),(73078,6),(73088,6),(73094,6),(73098,6),(73108,6),(73119,6),(73120,6),(73132,6),(73138,6),(73149,6),(73154,6),(73165,6),(73166,6),(73170,6),(73176,6),(73177,6),(73179,6),(73186,6),(73187,6),(73191,6),(73199,6),(73201,6),(73205,6),(73207,6),(73209,6),(73213,6),(73217,6),(73222,6),(73225,6),(73227,6),(73237,6),(73246,6),(73248,6),(73256,6),(73273,6),(73279,6),(73323,6),(73332,6),(73337,6),(73352,6),(73369,6),(73381,6),(73384,6),(73385,6),(73389,6),(73391,6),(73394,6),(73403,6),(73407,6),(73410,6),(73413,6),(73417,6),(73423,6),(73434,6),(73444,6),(73459,6),(73465,6),(73492,6),(73503,6),(73517,6),(73519,6),(73523,6),(73531,6),(73532,6),(73534,6),(73552,6),(73554,6),(73562,6),(73564,6),(73568,6),(73580,6),(73582,6),(73585,6),(73589,6),(73592,6),(73595,6),(73600,6),(73604,6),(73615,6),(73618,6),(73626,6),(73636,6),(73640,6),(73641,6),(73645,6),(73654,6),(73657,6),(73664,6),(73668,6),(73674,6),(73675,6),(73676,6),(73680,6),(73682,6),(73695,6),(73699,6),(73704,6),(73706,6),(73713,6),(73714,6),(73716,6),(73722,6),(73723,6),(73729,6),(73732,6),(73735,6),(73741,6),(73753,6),(73767,6),(73774,6),(73776,6),(73786,6),(73794,6),(73800,6),(73812,6),(73815,6),(73822,6),(73823,6),(73828,6),(73831,6),(73836,6),(73841,6),(73844,6),(73845,6),(73853,6),(73862,6),(73869,6),(73870,6),(73872,6),(73875,6),(73879,6),(73884,6),(73885,6),(73887,6),(73891,6),(73896,6),(73897,6),(73898,6),(73903,6),(73911,6),(73918,6),(73920,6),(73924,6),(73927,6),(73933,6),(73943,6),(73957,6),(73958,6),(73959,6),(73961,6),(73966,6),(73968,6),(73970,6),(73973,6),(73976,6),(73980,6),(73982,6),(73983,6),(73987,6),(73988,6),(73990,6),(73997,6),(74002,6),(74014,6),(74021,6),(74038,6),(74039,6),(74044,6),(74051,6),(74058,6),(74062,6),(74071,6),(74076,6),(74086,6),(74087,6),(74100,6),(74103,6),(74106,6),(74118,6),(74119,6),(74127,6),(74136,6),(74144,6),(74148,6),(74149,6),(74159,6),(74180,6),(74185,6),(74186,6),(74195,6),(74213,6),(74222,6),(74224,6),(74233,6),(74240,6),(74252,6),(74253,6),(74258,6),(74276,6),(74279,6),(74289,6),(74292,6),(74293,6),(74296,6),(74298,6),(74304,6),(74305,6),(74312,6),(74323,6),(74329,6),(74332,6),(74334,6),(74342,6),(74343,6),(74349,6),(74356,6),(74358,6),(74370,6),(74376,6),(74377,6),(74378,6),(74379,6),(74383,6),(74384,6),(74387,6),(74397,6),(74409,6),(74413,6),(74416,6),(74432,6),(74434,6),(74436,6),(74441,6),(74444,6),(74461,6),(74462,6),(74463,6),(74469,6),(74476,6),(74478,6),(74480,6),(74491,6),(74492,6),(74495,6),(74504,6),(74520,6),(74537,6),(74544,6),(74547,6),(74549,6),(74558,6),(74564,6),(74568,6),(74570,6),(74584,6),(74590,6),(74596,6),(74604,6),(74607,6),(74608,6),(74620,6),(74628,6),(74630,6),(74635,6),(74636,6),(74639,6),(74641,6),(74643,6),(74645,6),(74655,6),(74656,6),(74660,6),(74664,6),(74665,6),(74679,6),(74688,6),(74689,6),(74692,6),(74702,6),(74709,6),(74710,6),(74731,6),(74732,6),(74753,6),(74755,6),(74763,6),(74776,6),(74790,6),(74791,6),(74799,6),(74818,6),(74831,6),(74833,6),(74834,6),(74841,6),(74842,6),(74845,6),(74849,6),(74862,6),(74868,6),(74870,6),(74874,6),(74876,6),(74878,6),(74882,6),(74886,6),(74905,6),(74910,6),(74935,6),(74936,6),(74943,6),(74951,6),(74952,6),(74953,6),(74960,6),(74962,6),(74966,6),(74968,6),(74973,6),(74977,6),(74994,6),(75007,6),(75020,6),(75026,6),(75029,6),(75031,6),(75036,6),(75038,6),(75041,6),(75047,6),(75050,6),(75052,6),(75056,6),(75059,6),(75063,6),(75067,6),(75069,6),(75071,6),(75074,6),(75081,6),(75088,6),(75094,6),(75109,6),(75110,6),(75115,6),(75118,6),(75120,6),(75123,6),(75124,6),(75128,6),(75131,6),(75146,6),(75148,6),(75152,6),(75153,6),(75183,6),(75186,6),(75202,6),(75203,6),(75208,6),(75214,6),(75216,6),(75219,6),(75221,6),(75224,6),(75226,6),(75229,6),(75231,6),(75242,6),(75247,6),(75255,6),(75258,6),(75266,6),(75295,6),(75298,6),(75300,6),(75311,6),(75318,6),(75322,6),(75323,6),(75336,6),(75337,6),(75353,6),(75355,6),(75357,6),(75364,6),(75365,6),(75367,6),(75370,6),(75378,6),(75390,6),(75397,6),(75399,6),(75400,6),(75402,6),(75403,6),(75412,6),(75414,6),(75421,6),(75435,6),(75446,6),(75455,6),(75460,6),(75465,6),(75478,6),(75492,6),(75497,6),(75506,6),(75512,6),(75519,6),(75531,6),(75533,6),(75536,6),(75537,6),(75543,6),(75549,6),(75560,6),(75562,6),(75563,6),(75564,6),(75572,6),(75581,6),(75594,6),(75596,6),(75600,6),(75603,6),(75604,6),(75605,6),(75614,6),(75639,6),(75643,6),(75644,6),(75645,6),(75647,6),(75655,6),(75657,6),(75658,6),(75660,6),(75661,6),(75662,6),(75668,6),(75670,6),(75676,6),(75677,6),(75681,6),(75682,6),(75688,6),(75704,6),(75706,6),(75707,6),(75709,6),(75716,6),(75718,6),(75723,6),(75725,6),(75737,6),(75762,6),(75763,6),(75769,6),(75789,6),(75792,6),(75796,6),(75798,6),(75824,6),(75825,6),(75831,6),(75836,6),(75853,6),(75863,6),(75864,6),(75866,6),(75875,6),(75876,6),(75882,6),(75886,6),(75888,6),(75892,6),(75893,6),(75896,6),(75897,6),(75914,6),(75930,6),(75933,6),(75936,6),(75949,6),(75957,6),(75958,6),(75965,6),(75970,6),(75983,6),(75987,6),(75989,6),(75990,6),(76005,6),(76008,6),(76009,6),(76012,6),(76017,6),(76019,6),(76046,6),(76047,6),(76054,6),(76067,6),(76076,6),(76081,6),(76089,6),(76093,6),(76099,6),(76100,6),(76101,6),(76107,6),(76109,6),(76133,6),(76137,6),(76148,6),(76150,6),(76161,6),(76163,6),(76165,6),(76170,6),(76172,6),(76174,6),(76176,6),(76201,6),(76204,6),(76217,6),(76222,6),(76232,6),(76237,6),(76243,6),(76253,6),(76266,6),(76267,6),(76273,6),(76276,6),(76277,6),(76278,6),(76279,6),(76285,6),(76291,6),(76293,6),(76300,6),(76302,6),(76304,6),(76312,6),(76316,6),(76318,6),(76322,6),(76326,6),(76330,6),(76333,6),(76336,6),(76339,6),(76340,6),(76346,6),(76352,6),(76354,6),(76359,6),(76365,6),(76372,6),(76377,6),(76391,6),(76394,6),(76402,6),(76404,6),(76408,6),(76409,6),(76410,6),(76417,6),(76418,6),(76424,6),(76431,6),(76440,6),(76448,6),(76455,6),(76457,6),(76462,6),(76468,6),(76469,6),(76498,6),(76500,6),(76508,6),(76509,6),(76513,6),(76524,6),(76529,6),(76534,6),(76535,6),(76543,6),(76550,6),(76555,6),(76571,6),(76574,6),(76585,6),(76593,6),(76598,6),(76601,6),(76609,6),(76610,6),(76621,6),(76628,6),(76634,6),(76639,6),(76651,6),(76666,6),(76673,6),(76674,6),(76676,6),(76685,6),(76694,6),(76695,6),(76698,6),(76704,6),(76708,6),(76711,6),(76715,6),(76724,6),(76730,6),(76738,6),(76739,6),(76740,6),(76741,6),(76745,6),(76748,6),(76768,6),(76776,6),(76781,6),(76784,6),(76789,6),(76790,6),(76791,6),(76794,6),(76796,6),(76804,6),(76823,6),(76827,6),(76831,6),(76834,6),(76839,6),(76843,6),(76852,6),(76869,6),(76875,6),(76877,6),(76879,6),(76883,6),(76885,6),(76886,6),(76887,6),(76891,6),(76913,6),(76923,6),(76925,6),(76936,6),(76941,6),(76943,6),(76956,6),(76962,6),(76971,6),(76975,6),(76982,6),(76996,6),(76997,6),(77002,6),(77011,6),(77015,6),(77019,6),(77022,6),(77025,6),(77031,6),(77034,6),(77036,6),(77039,6),(77043,6),(77060,6),(77073,6),(77082,6),(77087,6),(77091,6),(77095,6),(77104,6),(77127,6),(77130,6),(77134,6),(77136,6),(77140,6),(77146,6),(77152,6),(77158,6),(77173,6),(77179,6),(77181,6),(77186,6),(77189,6),(77193,6),(77197,6),(77198,6),(77207,6),(77210,6),(77225,6),(77228,6),(77231,6),(77239,6),(77242,6),(77248,6),(77250,6),(77258,6),(77271,6),(77278,6),(77282,6),(77285,6),(77286,6),(77290,6),(77297,6),(77300,6),(77302,6),(77304,6),(77319,6),(77333,6),(77343,6),(77348,6),(77349,6),(77350,6),(77354,6),(77357,6),(77359,6),(77363,6),(77369,6),(77372,6),(77375,6),(77376,6),(77381,6),(77388,6),(77389,6),(77392,6),(77396,6),(77398,6),(77404,6),(77406,6),(77416,6),(77418,6),(77451,6),(77467,6),(77475,6),(77478,6),(77495,6),(77497,6),(77500,6),(77503,6),(77510,6),(77518,6),(77523,6),(77528,6),(77535,6),(77536,6),(77540,6),(77568,6),(77572,6),(77573,6),(77574,6),(77577,6),(77583,6),(77617,6),(77624,6),(77632,6),(77634,6),(77639,6),(77643,6),(77651,6),(77652,6),(77662,6),(77674,6),(77678,6),(77681,6),(77682,6),(77684,6),(77687,6),(77688,6),(77691,6),(77695,6),(77702,6),(77709,6),(77712,6),(77714,6),(77721,6),(77728,6),(77743,6),(77751,6),(77763,6),(77768,6),(77774,6),(77775,6),(77782,6),(77792,6),(77801,6),(77809,6),(77810,6),(77813,6),(77816,6),(77822,6),(77833,6),(77839,6),(77844,6),(77845,6),(77872,6),(77884,6),(77888,6),(77889,6),(77890,6),(77895,6),(77896,6),(77898,6),(77906,6),(77913,6),(77914,6),(77917,6),(77919,6),(77927,6),(77929,6),(77930,6),(77940,6),(77945,6),(77954,6),(77956,6),(77962,6),(77970,6),(77975,6),(77977,6),(77981,6),(77989,6),(78009,6),(78014,6),(78022,6),(78032,6),(78035,6),(78038,6),(78043,6),(78045,6),(78046,6),(78051,6),(78065,6),(78066,6),(78073,6),(78085,6),(78090,6),(78091,6),(78092,6),(78097,6),(78098,6),(78101,6),(78102,6),(78110,6),(78111,6),(78123,6),(78124,6),(78129,6),(78134,6),(78140,6),(78142,6),(78157,6),(78159,6),(78162,6),(78167,6),(78168,6),(78169,6),(78170,6),(78175,6),(78182,6),(78184,6),(78186,6),(78196,6),(78200,6),(78201,6),(78205,6),(78224,6),(78225,6),(78226,6),(78237,6),(78265,6),(78268,6),(78279,6),(78287,6),(78289,6),(78296,6),(78309,6),(78310,6),(78320,6),(78330,6),(78332,6),(78335,6),(78342,6),(78344,6),(78353,6),(78354,6),(78367,6),(78383,6),(78385,6),(78392,6),(78398,6),(78406,6),(78408,6),(78418,6),(78420,6),(78426,6),(78428,6),(78437,6),(78438,6),(78441,6),(78447,6),(78450,6),(78457,6),(78462,6),(78468,6),(78473,6),(78480,6),(78482,6),(78490,6),(78501,6),(78504,6),(78505,6),(78509,6),(78510,6),(78511,6),(78526,6),(78535,6),(78544,6),(78545,6),(78546,6),(78550,6),(78559,6),(78560,6),(78566,6),(78567,6),(78570,6),(78571,6),(78586,6),(78587,6),(78595,6),(78602,6),(78605,6),(78609,6),(78615,6),(78629,6),(78646,6),(78647,6),(78650,6),(78651,6),(78656,6),(78657,6),(78658,6),(78667,6),(78668,6),(78671,6),(78688,6),(78710,6),(78714,6),(78717,6),(78721,6),(78727,6),(78738,6),(78739,6),(78742,6),(78749,6),(78753,6),(78763,6),(78767,6),(78775,6),(78782,6),(78797,6),(78804,6),(78812,6),(78818,6),(78820,6),(78822,6),(78825,6),(78833,6),(78835,6),(78840,6),(78847,6),(78856,6),(78860,6),(78868,6),(78870,6),(78878,6),(78884,6),(78886,6),(78895,6),(78916,6),(78921,6),(78923,6),(78925,6),(78926,6),(78951,6),(78953,6),(78956,6),(78971,6),(78973,6),(78979,6),(78991,6),(78994,6),(79002,6),(79006,6),(79010,6),(79027,6),(79045,6),(79047,6),(79049,6),(79050,6),(79052,6),(79053,6),(79057,6),(79062,6),(79063,6),(79069,6),(79075,6),(79086,6),(79089,6),(79101,6),(79114,6),(79127,6),(79131,6),(79139,6),(79156,6),(79158,6),(79161,6),(79215,6),(79217,6),(79220,6),(79223,6),(79224,6),(79225,6),(79226,6),(79234,6),(79253,6),(79256,6),(79267,6),(79280,6),(79282,6),(79286,6),(79292,6),(79297,6),(79299,6),(79306,6),(79312,6),(79314,6),(79326,6),(79331,6),(79340,6),(79345,6),(79349,6),(79352,6),(79355,6),(79360,6),(79361,6),(79363,6),(79375,6),(79395,6),(79397,6),(79409,6),(79418,6),(79419,6),(79433,6),(79450,6),(79454,6),(79471,6),(79501,6),(79512,6),(79517,6),(79518,6),(79521,6),(79551,6),(79555,6),(79562,6),(79565,6),(79566,6),(79570,6),(79571,6),(79572,6),(79584,6),(79599,6),(79603,6),(79607,6),(79611,6),(79612,6),(79617,6),(79618,6),(79619,6),(79623,6),(79625,6),(79637,6),(79639,6),(79641,6),(79647,6),(79650,6),(79656,6),(79663,6),(79674,6),(79681,6),(79686,6),(79689,6),(79693,6),(79709,6),(79714,6),(79715,6),(79718,6),(79721,6),(79725,6),(79733,6),(79749,6),(79756,6),(79757,6),(79759,6),(79771,6),(79772,6),(79775,6),(79777,6),(79781,6),(79792,6),(79793,6),(79795,6),(79804,6),(79805,6),(79806,6),(79808,6),(79810,6),(79812,6),(79825,6),(79828,6),(79836,6),(79838,6),(79857,6),(79864,6),(79867,6),(79871,6),(79874,6),(79882,6),(79883,6),(79885,6),(79888,6),(79899,6),(79900,6),(79901,6),(79903,6),(79907,6),(79915,6),(79916,6),(79925,6),(79926,6),(79928,6),(79936,6),(79937,6),(79941,6),(79964,6),(79992,6),(79994,6),(79999,6),(80003,6),(80004,6),(80007,6),(80009,6),(80013,6),(80015,6),(80017,6),(80022,6),(80024,6),(80026,6),(80027,6),(80055,6),(80057,6),(80070,6),(80079,6),(80088,6),(80090,6),(80091,6),(80096,6),(80097,6),(80100,6),(80101,6),(80111,6),(80115,6),(80128,6),(80133,6),(80136,6),(80138,6),(80140,6),(80141,6),(80158,6),(80162,6),(80163,6),(80165,6),(80166,6),(80167,6),(80169,6),(80177,6),(80195,6),(80198,6),(80201,6),(80203,6),(80214,6),(80216,6),(80220,6),(80236,6),(80240,6),(80241,6),(80242,6),(80276,6),(80278,6),(80283,6),(80287,6),(80292,6),(80297,6),(80300,6),(80308,6),(80315,6),(80316,6),(80320,6),(80323,6),(80324,6),(80326,6),(80331,6),(80344,6),(80345,6),(80348,6),(80368,6),(80373,6),(80374,6),(80390,6),(80396,6),(80397,6),(80399,6),(80400,6),(80401,6),(80415,6),(80430,6),(80435,6),(80446,6),(80459,6),(80462,6),(80463,6),(80465,6),(80466,6),(80467,6),(80473,6),(80476,6),(80477,6),(80488,6),(80490,6),(80505,6),(80514,6),(80523,6),(80525,6),(80526,6),(80533,6),(80534,6),(80535,6),(80538,6),(80546,6),(80548,6),(80549,6),(80553,6),(80561,6),(80567,6),(80569,6),(80571,6),(80577,6),(80583,6),(80591,6),(80593,6),(80597,6),(80598,6),(80613,6),(80615,6),(80618,6),(80619,6),(80622,6),(80623,6),(80638,6),(80649,6),(80660,6),(80669,6),(80670,6),(80674,6),(80675,6),(80676,6),(80712,6),(80713,6),(80726,6),(80728,6),(80729,6),(80734,6),(80738,6),(80748,6),(80757,6),(80762,6),(80763,6),(80770,6),(80778,6),(80788,6),(80791,6),(80805,6),(80822,6),(80823,6),(80824,6),(80842,6),(80845,6),(80846,6),(80847,6),(80856,6),(80858,6),(80859,6),(80864,6),(80867,6),(80877,6),(80878,6),(80881,6),(80885,6),(80888,6),(80894,6),(80897,6),(80905,6),(80912,6),(80921,6),(80922,6),(80923,6),(80926,6),(80935,6),(80938,6),(80940,6),(80942,6),(80944,6),(80948,6),(80949,6),(80959,6),(80966,6),(80979,6),(80985,6),(80988,6),(80997,6),(81007,6),(81009,6),(81017,6),(81022,6),(81028,6),(81052,6),(81055,6),(81061,6),(81062,6),(81065,6),(81070,6),(81072,6),(81075,6),(81079,6),(81084,6),(81087,6),(81107,6),(81109,6),(81121,6),(81123,6),(81142,6),(81143,6),(81145,6),(81148,6),(81160,6),(81162,6),(81174,6),(81182,6),(81184,6),(81189,6),(81197,6),(81205,6),(81210,6),(81211,6),(81212,6),(81226,6),(81229,6),(81253,6),(81260,6),(81261,6),(81267,6),(81273,6),(81278,6),(81285,6),(81292,6),(81296,6),(81302,6),(81305,6),(81306,6),(81308,6),(81314,6),(81332,6),(81340,6),(81345,6),(81350,6),(81360,6),(81363,6),(81365,6),(81380,6),(81383,6),(81395,6),(81396,6),(81397,6),(81398,6),(81402,6),(81403,6),(81409,6),(81416,6),(81422,6),(81424,6),(81426,6),(81435,6),(81436,6),(81437,6),(81440,6),(81443,6),(81446,6),(81447,6),(81448,6),(81449,6),(81451,6),(81459,6),(81460,6),(81461,6),(81475,6),(81490,6),(81491,6),(81492,6),(81493,6),(81503,6),(81508,6),(81513,6),(81518,6),(81519,6),(81527,6),(81529,6),(81535,6),(81537,6),(81538,6),(81541,6),(81543,6),(81551,6),(81554,6),(81560,6),(81564,6),(81566,6),(81570,6),(81575,6),(81580,6),(81587,6),(81594,6),(81601,6),(81602,6),(81612,6),(81619,6),(81623,6),(81624,6),(81625,6),(81637,6),(81647,6),(81653,6),(81658,6),(81662,6),(81667,6),(81682,6),(81689,6),(81691,6),(81693,6),(81694,6),(81696,6),(81697,6),(81700,6),(81703,6),(81712,6),(81718,6),(81727,6),(81730,6),(81733,6),(81741,6),(81765,6),(81766,6),(81785,6),(81787,6),(81788,6),(81790,6),(81795,6),(81817,6),(81818,6),(81819,6),(81828,6),(81833,6),(81840,6),(81845,6),(81846,6),(81847,6),(81848,6),(81856,6),(81859,6),(81860,6),(81875,6),(81878,6),(81881,6),(81884,6),(81894,6),(81895,6),(81898,6),(81905,6),(81909,6),(81933,6),(81941,6),(81944,6),(81960,6),(81962,6),(81975,6),(81977,6),(81978,6),(82007,6),(82013,6),(82014,6),(82016,6),(82017,6),(82022,6),(82024,6),(82033,6),(82041,6),(82045,6),(82054,6),(82057,6),(82058,6),(82069,6),(82072,6),(82088,6),(82095,6),(82100,6),(82105,6),(82120,6),(82122,6),(82130,6),(82131,6),(82140,6),(82148,6),(82158,6),(82159,6),(82170,6),(82171,6),(82172,6),(82173,6),(82175,6),(82181,6),(82188,6),(82192,6),(82193,6),(82195,6); INSERT INTO `campaign_transactions` VALUES (82198,6),(82201,6),(82207,6),(82211,6),(82214,6),(82219,6),(82227,6),(82241,6),(82242,6),(82243,6),(82253,6),(82258,6),(82260,6),(82263,6),(82265,6),(82269,6),(82271,6),(82280,6),(82282,6),(82289,6),(82292,6),(82300,6),(82301,6),(82302,6),(82303,6),(82304,6),(82305,6),(82310,6),(82315,6),(82332,6),(82345,6),(82349,6),(82361,6),(82368,6),(82370,6),(82383,6),(82388,6),(82395,6),(82397,6),(82406,6),(82407,6),(82411,6),(82412,6),(82420,6),(82429,6),(82433,6),(82436,6),(82442,6),(82443,6),(82452,6),(82457,6),(82460,6),(82461,6),(82464,6),(82465,6),(82466,6),(82477,6),(82478,6),(82479,6),(82480,6),(82493,6),(82500,6),(82503,6),(82507,6),(82510,6),(82513,6),(82529,6),(82536,6),(82542,6),(82561,6),(82574,6),(82583,6),(82588,6),(82597,6),(82610,6),(82614,6),(82627,6),(82635,6),(82670,6),(82676,6),(82678,6),(82684,6),(82688,6),(82698,6),(82701,6),(82709,6),(82737,6),(82751,6),(82756,6),(82761,6),(82763,6),(82767,6),(82768,6),(82769,6),(82770,6),(82783,6),(82787,6),(82795,6),(82796,6),(82806,6),(82811,6),(82815,6),(82822,6),(82824,6),(82828,6),(82834,6),(82835,6),(82837,6),(82839,6),(82840,6),(82847,6),(82856,6),(82862,6),(82867,6),(82883,6),(82884,6),(82885,6),(82889,6),(82893,6),(82901,6),(82902,6),(82903,6),(82920,6),(82930,6),(82943,6),(82955,6),(82958,6),(82961,6),(82962,6),(82968,6),(82978,6),(82993,6),(82995,6),(83002,6),(83003,6),(83005,6),(83010,6),(83011,6),(83021,6),(83023,6),(83030,6),(83043,6),(83057,6),(83074,6),(83086,6),(83087,6),(83090,6),(83101,6),(83102,6),(83107,6),(83130,6),(83139,6),(83140,6),(83141,6),(83142,6),(83156,6),(83161,6),(83167,6),(83169,6),(83170,6),(83180,6),(83192,6),(83198,6),(83220,6),(83222,6),(83224,6),(83225,6),(83230,6),(83245,6),(83246,6),(83248,6),(83259,6),(83263,6),(83272,6),(83288,6),(83290,6),(83293,6),(83306,6),(83312,6),(83319,6),(83325,6),(83327,6),(83338,6),(83341,6),(83350,6),(83356,6),(83359,6),(83361,6),(83362,6),(83364,6),(83366,6),(83385,6),(83387,6),(83396,6),(83403,6),(83404,6),(83405,6),(83406,6),(83410,6),(83412,6),(83414,6),(83428,6),(83433,6),(83436,6),(83439,6),(83442,6),(83451,6),(83452,6),(83464,6),(83468,6),(83473,6),(83477,6),(83486,6),(83487,6),(83493,6),(83500,6),(83505,6),(83506,6),(83507,6),(83508,6),(83511,6),(83515,6),(83516,6),(83524,6),(83529,6),(83536,6),(83546,6),(83552,6),(83561,6),(83563,6),(83565,6),(83568,6),(83570,6),(83574,6),(83583,6),(83586,6),(83588,6),(83590,6),(83591,6),(83595,6),(83600,6),(83608,6),(83612,6),(83620,6),(83624,6),(83625,6),(83629,6),(83646,6),(83649,6),(83650,6),(83658,6),(83662,6),(83665,6),(83671,6),(83674,6),(83679,6),(83692,6),(83697,6),(83719,6),(83722,6),(83731,6),(83736,6),(83739,6),(83741,6),(83742,6),(83744,6),(83745,6),(83746,6),(83747,6),(83750,6),(83757,6),(83762,6),(83763,6),(83771,6),(83774,6),(83783,6),(83785,6),(83791,6),(83796,6),(83798,6),(83806,6),(83813,6),(83823,6),(83829,6),(83842,6),(83843,6),(83849,6),(83851,6),(83855,6),(83858,6),(83863,6),(83865,6),(83866,6),(83875,6),(83899,6),(83904,6),(83914,6),(83915,6),(83916,6),(83919,6),(83921,6),(83923,6),(83924,6),(83929,6),(83940,6),(83942,6),(83949,6),(83957,6),(83981,6),(83985,6),(83989,6),(83991,6),(83992,6),(83995,6),(84009,6),(84010,6),(84014,6),(84016,6),(84017,6),(84024,6),(84026,6),(84028,6),(84033,6),(84036,6),(84052,6),(84058,6),(84066,6),(84072,6),(84074,6),(84075,6),(84077,6),(84080,6),(84091,6),(84095,6),(84100,6),(84104,6),(84109,6),(84114,6),(84116,6),(84122,6),(84130,6),(84132,6),(84133,6),(84134,6),(84135,6),(84143,6),(84145,6),(84155,6),(84172,6),(84173,6),(84174,6),(84179,6),(84180,6),(84188,6),(84190,6),(84193,6),(84196,6),(84211,6),(84212,6),(84213,6),(84215,6),(84220,6),(84227,6),(84234,6),(84235,6),(84236,6),(84239,6),(84240,6),(84244,6),(84255,6),(84259,6),(84277,6),(84278,6),(84280,6),(84281,6),(84282,6),(84283,6),(84284,6),(84286,6),(84290,6),(84303,6),(84305,6),(84311,6),(84312,6),(84313,6),(84320,6),(84324,6),(84326,6),(84341,6),(84344,6),(84356,6),(84358,6),(84365,6),(84369,6),(84370,6),(84378,6),(84382,6),(84386,6),(84401,6),(84418,6),(84420,6),(84421,6),(84425,6),(84429,6),(84443,6),(84444,6),(84455,6),(84460,6),(84471,6),(84472,6),(84474,6),(84478,6),(84481,6),(84490,6),(84499,6),(84504,6),(84513,6),(84515,6),(84516,6),(84519,6),(84520,6),(84521,6),(84523,6),(84526,6),(84528,6),(84538,6),(84539,6),(84540,6),(84544,6),(84554,6),(84559,6),(84578,6),(84601,6),(84606,6),(84607,6),(84611,6),(84621,6),(84622,6),(84630,6),(84632,6),(84638,6),(84646,6),(84649,6),(84657,6),(84661,6),(84664,6),(84670,6),(84673,6),(84677,6),(84685,6),(84689,6),(84695,6),(84698,6),(84699,6),(84700,6),(84701,6),(84711,6),(84712,6),(84720,6),(84724,6),(84728,6),(84736,6),(84738,6),(84748,6),(84759,6),(84762,6),(84766,6),(84772,6),(84773,6),(84778,6),(84781,6),(84783,6),(84786,6),(84792,6),(84800,6),(84805,6),(84832,6),(84835,6),(84843,6),(84845,6),(84861,6),(84886,6),(84888,6),(84890,6),(84894,6),(84898,6),(84905,6),(84925,6),(84928,6),(84929,6),(84930,6),(84932,6),(84937,6),(84942,6),(84943,6),(84964,6),(84970,6),(84975,6),(84979,6),(84982,6),(84988,6),(84989,6),(84995,6),(84997,6),(84999,6),(85001,6),(85006,6),(85010,6),(85011,6),(85013,6),(85019,6),(85020,6),(85022,6),(85024,6),(85032,6),(85037,6),(85043,6),(85047,6),(85050,6),(85068,6),(85074,6),(85084,6),(85085,6),(85090,6),(85094,6),(85095,6),(85102,6),(85106,6),(85107,6),(85108,6),(85125,6),(85127,6),(85137,6),(85139,6),(85143,6),(85150,6),(85156,6),(85160,6),(85164,6),(85181,6),(85185,6),(85206,6),(85208,6),(85209,6),(85218,6),(85222,6),(85225,6),(85237,6),(85238,6),(85244,6),(85245,6),(85250,6),(85258,6),(85259,6),(85263,6),(85267,6),(85274,6),(85286,6),(85291,6),(85294,6),(85300,6),(85304,6),(85310,6),(85313,6),(85315,6),(85325,6),(85327,6),(85338,6),(85341,6),(85358,6),(85373,6),(85391,6),(85394,6),(85398,6),(85404,6),(85429,6),(85431,6),(85433,6),(85435,6),(85440,6),(85441,6),(85443,6),(85445,6),(85450,6),(85452,6),(85453,6),(85460,6),(85475,6),(85476,6),(85487,6),(85489,6),(85493,6),(85498,6),(85508,6),(85514,6),(85517,6),(85519,6),(85525,6),(85534,6),(85564,6),(85566,6),(85567,6),(85568,6),(85574,6),(85577,6),(85579,6),(85580,6),(85581,6),(85586,6),(85592,6),(85594,6),(85595,6),(85596,6),(85601,6),(85612,6),(85618,6),(85619,6),(85623,6),(85643,6),(85644,6),(85645,6),(85658,6),(85670,6),(85671,6),(85676,6),(85678,6),(85679,6),(85683,6),(85686,6),(85693,6),(85702,6),(85705,6),(85707,6),(85714,6),(85716,6),(85722,6),(85726,6),(85731,6),(85747,6),(85748,6),(85749,6),(85750,6),(85755,6),(85759,6),(85760,6),(85767,6),(85769,6),(85771,6),(85784,6),(85786,6),(85796,6),(85805,6),(85807,6),(85810,6),(85823,6),(85828,6),(85829,6),(85830,6),(85837,6),(85840,6),(85847,6),(85852,6),(85863,6),(85864,6),(85866,6),(85874,6),(85875,6),(85882,6),(85883,6),(85892,6),(85902,6),(85909,6),(85911,6),(85913,6),(85921,6),(85934,6),(85935,6),(85937,6),(85941,6),(85945,6),(85946,6),(85947,6),(85951,6),(85954,6),(85983,6),(85987,6),(85993,6),(85994,6),(85995,6),(85997,6),(86000,6),(86009,6),(86010,6),(86012,6),(86020,6),(86024,6),(86027,6),(86034,6),(86046,6),(86050,6),(86065,6),(86066,6),(86074,6),(86075,6),(86085,6),(86098,6),(86100,6),(86108,6),(86132,6),(86136,6),(86138,6),(86141,6),(86163,6),(86166,6),(86170,6),(86176,6),(86178,6),(86190,6),(86199,6),(86200,6),(86205,6),(86208,6),(86217,6),(86220,6),(86244,6),(86247,6),(86253,6),(86258,6),(86268,6),(86275,6),(86283,6),(86286,6),(86287,6),(86296,6),(86297,6),(86298,6),(86305,6),(86319,6),(86350,6),(86366,6),(86367,6),(86372,6),(86378,6),(86379,6),(86403,6),(86410,6),(86415,6),(86416,6),(86425,6),(86432,6),(86435,6),(86469,6),(86482,6),(86483,6),(86484,6),(86488,6),(86490,6),(86491,6),(86502,6),(86504,6),(86511,6),(86519,6),(86521,6),(86538,6),(86546,6),(86554,6),(86556,6),(86560,6),(86565,6),(86566,6),(86571,6),(86574,6),(86575,6),(86576,6),(86577,6),(86583,6),(86585,6),(86587,6),(86589,6),(86592,6),(86593,6),(86594,6),(86596,6),(86598,6),(86602,6),(86623,6),(86627,6),(86643,6),(86649,6),(86652,6),(86654,6),(86655,6),(86660,6),(86681,6),(86685,6),(86689,6),(86698,6),(86704,6),(86722,6),(86727,6),(86729,6),(86732,6),(86746,6),(86747,6),(86750,6),(86755,6),(86756,6),(86759,6),(86764,6),(86766,6),(86771,6),(86772,6),(86782,6),(86786,6),(86792,6),(86796,6),(86809,6),(86817,6),(86821,6),(86823,6),(86827,6),(86842,6),(86845,6),(86848,6),(86856,6),(86860,6),(86861,6),(86863,6),(86864,6),(86876,6),(86895,6),(86896,6),(86901,6),(86903,6),(86920,6),(86931,6),(86934,6),(86937,6),(86951,6),(86953,6),(86957,6),(86962,6),(86968,6),(86969,6),(86971,6),(86973,6),(86974,6),(86984,6),(86988,6),(86994,6),(86997,6),(86998,6),(86999,6),(87002,6),(87019,6),(87024,6),(87027,6),(87037,6),(87039,6),(87049,6),(87056,6),(87076,6),(87077,6),(87091,6),(87096,6),(87101,6),(87108,6),(87123,6),(87130,6),(87131,6),(87133,6),(87135,6),(87141,6),(87151,6),(87167,6),(87168,6),(87170,6),(87177,6),(87178,6),(87183,6),(87185,6),(87190,6),(87192,6),(87196,6),(87199,6),(87201,6),(87209,6),(87219,6),(87224,6),(87229,6),(87232,6),(87239,6),(87240,6),(87243,6),(87244,6),(87248,6),(87253,6),(87259,6),(87282,6),(87287,6),(87290,6),(87294,6),(87301,6),(87304,6),(87306,6),(87309,6),(87316,6),(87317,6),(87323,6),(87334,6),(87340,6),(87350,6),(87352,6),(87353,6),(87355,6),(87357,6),(87358,6),(87377,6),(87382,6),(87384,6),(87386,6),(87388,6),(87392,6),(87397,6),(87418,6),(87422,6),(87429,6),(87438,6),(87440,6),(87443,6),(87456,6),(87473,6),(87474,6),(87475,6),(87478,6),(87480,6),(87482,6),(87484,6),(87492,6),(87498,6),(87502,6),(87511,6),(87519,6),(87525,6),(87536,6),(87538,6),(87540,6),(87543,6),(87548,6),(87549,6),(87550,6),(87553,6),(87555,6),(87562,6),(87563,6),(87565,6),(87572,6),(87573,6),(87574,6),(87575,6),(87579,6),(87587,6),(87591,6),(87599,6),(87608,6),(87614,6),(87617,6),(87618,6),(87624,6),(87629,6),(87631,6),(87635,6),(87638,6),(87639,6),(87654,6),(87655,6),(87658,6),(87660,6),(87667,6),(87670,6),(87683,6),(87685,6),(87688,6),(87690,6),(87691,6),(87692,6),(87694,6),(87695,6),(87696,6),(87702,6),(87722,6),(87733,6),(87736,6),(87737,6),(87746,6),(87754,6),(87762,6),(87768,6),(87774,6),(87777,6),(87780,6),(87795,6),(87804,6),(87805,6),(87816,6),(87826,6),(87830,6),(87831,6),(87834,6),(87837,6),(87841,6),(87845,6),(87850,6),(87854,6),(87858,6),(87864,6),(87872,6),(87877,6),(87891,6),(87899,6),(87916,6),(87933,6),(87939,6),(87952,6),(87957,6),(87958,6),(87963,6),(87966,6),(87975,6),(87995,6),(87998,6),(88024,6),(88025,6),(88035,6),(88037,6),(88053,6),(88055,6),(88060,6),(88063,6),(88080,6),(88085,6),(88116,6),(88123,6),(88127,6),(88131,6),(88147,6),(88148,6),(88151,6),(88152,6),(88159,6),(88163,6),(88166,6),(88174,6),(88181,6),(88183,6),(88185,6),(88187,6),(88199,6),(88201,6),(88204,6),(88229,6),(88234,6),(88240,6),(88241,6),(88246,6),(88251,6),(88257,6),(88265,6),(88268,6),(88269,6),(88282,6),(88291,6),(88292,6),(88300,6),(88303,6),(88304,6),(88306,6),(88307,6),(88317,6),(88323,6),(88339,6),(88341,6),(88344,6),(88350,6),(88356,6),(88361,6),(88365,6),(88366,6),(88371,6),(88375,6),(88377,6),(88385,6),(88386,6),(88387,6),(88389,6),(88390,6),(88395,6),(88397,6),(88400,6),(88403,6),(88404,6),(88405,6),(88408,6),(88410,6),(88412,6),(88416,6),(88417,6),(88420,6),(88425,6),(88427,6),(88441,6),(88450,6),(88453,6),(88467,6),(88474,6),(88476,6),(88486,6),(88487,6),(88489,6),(88490,6),(88491,6),(88492,6),(88493,6),(88497,6),(88501,6),(88513,6),(88515,6),(88552,6),(88569,6),(88588,6),(88597,6),(88602,6),(88607,6),(88611,6),(88613,6),(88617,6),(88643,6),(88644,6),(88648,6),(88651,6),(88659,6),(88667,6),(88669,6),(88670,6),(88672,6),(88674,6),(88687,6),(88690,6),(88699,6),(88703,6),(88707,6),(88710,6),(88718,6),(88735,6),(88752,6),(88754,6),(88763,6),(88777,6),(88781,6),(88791,6),(88811,6),(88813,6),(88815,6),(88819,6),(88828,6),(88832,6),(88848,6),(88853,6),(88855,6),(88868,6),(88877,6),(88879,6),(88881,6),(88892,6),(88901,6),(88912,6),(88918,6),(88924,6),(88934,6),(88937,6),(88938,6),(88941,6),(88947,6),(88970,6),(88971,6),(88977,6),(88978,6),(88988,6),(88989,6),(88991,6),(89007,6),(89012,6),(89024,6),(89027,6),(89035,6),(89039,6),(89050,6),(89053,6),(89056,6),(89061,6),(89066,6),(89070,6),(89072,6),(89080,6),(89081,6),(89084,6),(89085,6),(89092,6),(89095,6),(89098,6),(89100,6),(89105,6),(89107,6),(89113,6),(89115,6),(89126,6),(89129,6),(89131,6),(89133,6),(89143,6),(89146,6),(89172,6),(89178,6),(89179,6),(89190,6),(89195,6),(89198,6),(89200,6),(89205,6),(89214,6),(89222,6),(89230,6),(89233,6),(89237,6),(89238,6),(89240,6),(89265,6),(89268,6),(89269,6),(89275,6),(89287,6),(89298,6),(89301,6),(89311,6),(89325,6),(89326,6),(89334,6),(89349,6),(89350,6),(89353,6),(89354,6),(89357,6),(89360,6),(89367,6),(89371,6),(89381,6),(89388,6),(89402,6),(89409,6),(89413,6),(89414,6),(89428,6),(89435,6),(89438,6),(89439,6),(89443,6),(89455,6),(89458,6),(89465,6),(89468,6),(89474,6),(89478,6),(89495,6),(89503,6),(89509,6),(89511,6),(89512,6),(89516,6),(89517,6),(89519,6),(89522,6),(89531,6),(89532,6),(89535,6),(89541,6),(89565,6),(89575,6),(89578,6),(89584,6),(89587,6),(89588,6),(89594,6),(89597,6),(89606,6),(89609,6),(89615,6),(89618,6),(89626,6),(89641,6),(89649,6),(89651,6),(89666,6),(89670,6),(89691,6),(89693,6),(89694,6),(89698,6),(89699,6),(89700,6),(89701,6),(89703,6),(89725,6),(89727,6),(89730,6),(89735,6),(89736,6),(89737,6),(89741,6),(89745,6),(89746,6),(89751,6),(89758,6),(89760,6),(89772,6),(89774,6),(89780,6),(89794,6),(89799,6),(89809,6),(89810,6),(89815,6),(89845,6),(89847,6),(89849,6),(89855,6),(89856,6),(89869,6),(89871,6),(89875,6),(89876,6),(89885,6),(89887,6),(89889,6),(89895,6),(89898,6),(89901,6),(89902,6),(89922,6),(89924,6),(89925,6),(89933,6),(89938,6),(89940,6),(89949,6),(89951,6),(89954,6),(89961,6),(89966,6),(89970,6),(89971,6),(89980,6),(89990,6),(89993,6),(89995,6),(90004,6),(90009,6),(90012,6),(90029,6),(90040,6),(90047,6),(90048,6),(90051,6),(90056,6),(90058,6),(90063,6),(90072,6),(90082,6),(90090,6),(90094,6),(90100,6),(90102,6),(90105,6),(90107,6),(90112,6),(90116,6),(90118,6),(90121,6),(90123,6),(90124,6),(90125,6),(90129,6),(90136,6),(90139,6),(90150,6),(90154,6),(90166,6),(90173,6),(90181,6),(90182,6),(90192,6),(90201,6),(90206,6),(90213,6),(90217,6),(90219,6),(90222,6),(90226,6),(90227,6),(90231,6),(90234,6),(90236,6),(90238,6),(90247,6),(90256,6),(90272,6),(90276,6),(90280,6),(90284,6),(90287,6),(90297,6),(90298,6),(90305,6),(90311,6),(90317,6),(90318,6),(90324,6),(90332,6),(90334,6),(90344,6),(90353,6),(90358,6),(90367,6),(90375,6),(90377,6),(90381,6),(90389,6),(90392,6),(90397,6),(90403,6),(90421,6),(90422,6),(90429,6),(90442,6),(90454,6),(90474,6),(90477,6),(90485,6),(90491,6),(90493,6),(90498,6),(90512,6),(90513,6),(90517,6),(90519,6),(90522,6),(90529,6),(90532,6),(90548,6),(90549,6),(90559,6),(90573,6),(90575,6),(90588,6),(90596,6),(90597,6),(90600,6),(90610,6),(90612,6),(90617,6),(90625,6),(90631,6),(90632,6),(90634,6),(90635,6),(90638,6),(90639,6),(90649,6),(90650,6),(90662,6),(90675,6),(90688,6),(90692,6),(90698,6),(90707,6),(90714,6),(90730,6),(90738,6),(90739,6),(90742,6),(90754,6),(90760,6),(90762,6),(90771,6),(90773,6),(90782,6),(90790,6),(90794,6),(90808,6),(90820,6),(90824,6),(90837,6),(90855,6),(90864,6),(90881,6),(90888,6),(90893,6),(90904,6),(90912,6),(90920,6),(90923,6),(90929,6),(90931,6),(90936,6),(90941,6),(90949,6),(90968,6),(90970,6),(90971,6),(90973,6),(90974,6),(90979,6),(90998,6),(91003,6),(91004,6),(91007,6),(91017,6),(91018,6),(91021,6),(91027,6),(91036,6),(91054,6),(91058,6),(91066,6),(91067,6),(91071,6),(91075,6),(91081,6),(91092,6),(91110,6),(91113,6),(91124,6),(91125,6),(91126,6),(91127,6),(91128,6),(91131,6),(91136,6),(91140,6),(91149,6),(91153,6),(91155,6),(91164,6),(91174,6),(91178,6),(91193,6),(91195,6),(91198,6),(91199,6),(91200,6),(91206,6),(91209,6),(91214,6),(91221,6),(91223,6),(91232,6),(91242,6),(91258,6),(91260,6),(91263,6),(91266,6),(91268,6),(91275,6),(91278,6),(91279,6),(91287,6),(91288,6),(91303,6),(91319,6),(91320,6),(91332,6),(91334,6),(91336,6),(91338,6),(91340,6),(91342,6),(91351,6),(91353,6),(91355,6),(91356,6),(91360,6),(91366,6),(91373,6),(91376,6),(91381,6),(91385,6),(91386,6),(91387,6),(91389,6),(91399,6),(91404,6),(91417,6),(91424,6),(91429,6),(91438,6),(91441,6),(91443,6),(91444,6),(91450,6),(91460,6),(91469,6),(91474,6),(91483,6),(91492,6),(91493,6),(91498,6),(91502,6),(91508,6),(91510,6),(91513,6),(91518,6),(91524,6),(91538,6),(91563,6),(91567,6),(91571,6),(91585,6),(91590,6),(91593,6),(91596,6),(91607,6),(91611,6),(91619,6),(91625,6),(91629,6),(91630,6),(91632,6),(91638,6),(91646,6),(91649,6),(91659,6),(91664,6),(91676,6),(91685,6),(91687,6),(91695,6),(91696,6),(91698,6),(91713,6),(91724,6),(91728,6),(91731,6),(91732,6),(91739,6),(91745,6),(91748,6),(91753,6),(91761,6),(91767,6),(91778,6),(91786,6),(91794,6),(91803,6),(91811,6),(91829,6),(91838,6),(91840,6),(91860,6),(91865,6),(91868,6),(91876,6),(91885,6),(91888,6),(91894,6),(91903,6),(91905,6),(91908,6),(91912,6),(91913,6),(91917,6),(91923,6),(91945,6),(91957,6),(91963,6),(91965,6),(91972,6),(91975,6),(91981,6),(91996,6),(91998,6),(92003,6),(92009,6),(92017,6),(92019,6),(92023,6),(92024,6),(92027,6),(92028,6),(92032,6),(92033,6),(92037,6),(92041,6),(92048,6),(92052,6),(92053,6),(92055,6),(92058,6),(92079,6),(92082,6),(92085,6),(92090,6),(92094,6),(92111,6),(92119,6),(92129,6),(92133,6),(92135,6),(92137,6),(92164,6),(92174,6),(92178,6),(92179,6),(92187,6),(92189,6),(92193,6),(92194,6),(92196,6),(92221,6),(92232,6),(92243,6),(92246,6),(92247,6),(92250,6),(92251,6),(92269,6),(92287,6),(92300,6),(92307,6),(92308,6),(92326,6),(92332,6),(92337,6),(92346,6),(92353,6),(92356,6),(92357,6),(92359,6),(92365,6),(92366,6),(92369,6),(92377,6),(92409,6),(92418,6),(92424,6),(92425,6),(92427,6),(92453,6),(92459,6),(92472,6),(92473,6),(92493,6),(92494,6),(92499,6),(92515,6),(92516,6),(92526,6),(92527,6),(92528,6),(92534,6),(92550,6),(92554,6),(92556,6),(92570,6),(92575,6),(92576,6),(92582,6),(92612,6),(92626,6),(92643,6),(92644,6),(92650,6),(92651,6),(92656,6),(92671,6),(92684,6),(92689,6),(92690,6),(92699,6),(92701,6),(92710,6),(92715,6),(92718,6),(92724,6),(92728,6),(92744,6),(92748,6),(92759,6),(92774,6),(92786,6),(92794,6),(92795,6),(92808,6),(92809,6),(92825,6),(92829,6),(92830,6),(92835,6),(92836,6),(92837,6),(92838,6),(92848,6),(92850,6),(92866,6),(92867,6),(92873,6),(92881,6),(92884,6),(92901,6),(92902,6),(92903,6),(92904,6),(92910,6),(92911,6),(92912,6),(92923,6),(92942,6),(92951,6),(92954,6),(92964,6),(92969,6),(92972,6),(92974,6),(92981,6),(92984,6),(92986,6),(92994,6),(92995,6),(93003,6),(93004,6),(93005,6),(93014,6),(93015,6),(93022,6),(93026,6),(93031,6),(93032,6),(93034,6),(93043,6),(93050,6),(93055,6),(93056,6),(93057,6),(93058,6),(93064,6),(93074,6),(93075,6),(93076,6),(93077,6),(93078,6),(93098,6),(93101,6),(93102,6),(93104,6),(93112,6),(93114,6),(93115,6),(93133,6),(93136,6),(93149,6),(93155,6),(93156,6),(93160,6),(93161,6),(93164,6),(93168,6),(93173,6),(93174,6),(93181,6),(93183,6),(93192,6),(93202,6),(93209,6),(93212,6),(93214,6),(93215,6),(93223,6),(93234,6),(93246,6),(93248,6),(93253,6),(93255,6),(93256,6),(93258,6),(93294,6),(93305,6),(93308,6),(93310,6),(93313,6),(93315,6),(93316,6),(93320,6),(93328,6),(93329,6),(93334,6),(93335,6),(93337,6),(93351,6),(93362,6),(93366,6),(93368,6),(93376,6),(93381,6),(93383,6),(93385,6),(93396,6),(93399,6),(93406,6),(93407,6),(93411,6),(93414,6),(93415,6),(93417,6),(93435,6),(93436,6),(93439,6),(93441,6),(93444,6),(93450,6),(93457,6),(93461,6),(93467,6),(93468,6),(93472,6),(93485,6),(93498,6),(93500,6),(93501,6),(93503,6),(93508,6),(93512,6),(93517,6),(93525,6),(93526,6),(93529,6),(93554,6),(93556,6),(93558,6),(93565,6),(93583,6),(93596,6),(93601,6),(93604,6),(93620,6),(93622,6),(93626,6),(93628,6),(93651,6),(93671,6),(93677,6),(93685,6),(93688,6),(93689,6),(93698,6),(93703,6),(93711,6),(93712,6),(93714,6),(93724,6),(93726,6),(93740,6),(93756,6),(93760,6),(93761,6),(93766,6),(93795,6),(93797,6),(93801,6),(93802,6),(93814,6),(93815,6),(93816,6),(93825,6),(93828,6),(93835,6),(93848,6),(93849,6),(93850,6),(93857,6),(93871,6),(93877,6),(93889,6),(93893,6),(93897,6),(93899,6),(93902,6),(93904,6),(93906,6),(93907,6),(93908,6),(93914,6),(93918,6),(93922,6),(93927,6),(93937,6),(93945,6),(93953,6),(93959,6),(93962,6),(93963,6),(93979,6),(93989,6),(93990,6),(94013,6),(94020,6),(94023,6),(94024,6),(94025,6),(94026,6),(94027,6),(94039,6),(94041,6),(94047,6),(94049,6),(94055,6),(94067,6),(94075,6),(94089,6),(94096,6),(94104,6),(94108,6),(94114,6),(94116,6),(94128,6),(94131,6),(94133,6),(94135,6),(94142,6),(94143,6),(94146,6),(94153,6),(94157,6),(94158,6),(94163,6),(94164,6),(94171,6),(94180,6),(94192,6),(94199,6),(94219,6),(94225,6),(94238,6),(94245,6),(94262,6),(94268,6),(94272,6),(94277,6),(94279,6),(94280,6),(94281,6),(94291,6),(94293,6),(94305,6),(94306,6),(94308,6),(94327,6),(94332,6),(94334,6),(94340,6),(94342,6),(94344,6),(94347,6),(94350,6),(94365,6),(94367,6),(94374,6),(94379,6),(94381,6),(94387,6),(94391,6),(94395,6),(94396,6),(94399,6),(94401,6),(94406,6),(94409,6),(94415,6),(94417,6),(94418,6),(94436,6),(94445,6),(94452,6),(94455,6),(94473,6),(94479,6),(94491,6),(94498,6),(94504,6),(94505,6),(94512,6),(94516,6),(94525,6),(94533,6),(94534,6),(94536,6),(94541,6),(94545,6),(94550,6),(94557,6),(94562,6),(94589,6),(94600,6),(94603,6),(94612,6),(94613,6),(94629,6),(94638,6),(94649,6),(94651,6),(94653,6),(94664,6),(94672,6),(94675,6),(94685,6),(94686,6),(94687,6),(94691,6),(94692,6),(94701,6),(94705,6),(94709,6),(94710,6),(94719,6),(94726,6),(94729,6),(94733,6),(94737,6),(94739,6),(94748,6),(94752,6),(94753,6),(94771,6),(94774,6),(94789,6),(94813,6),(94814,6),(94817,6),(94822,6),(94824,6),(94831,6),(94834,6),(94838,6),(94853,6),(94863,6),(94869,6),(94883,6),(94891,6),(94905,6),(94906,6),(94909,6),(94917,6),(94920,6),(94924,6),(94928,6),(94935,6),(94938,6),(94939,6),(94943,6),(94948,6),(94952,6),(94953,6),(94963,6),(94976,6),(94977,6),(94981,6),(94982,6),(94991,6),(94996,6),(94997,6),(94999,6),(95003,6),(95006,6),(95022,6),(95024,6),(95025,6),(95030,6),(95033,6),(95039,6),(95041,6),(95042,6),(95053,6),(95060,6),(95064,6),(95066,6),(95080,6),(95087,6),(95089,6),(95090,6),(95094,6),(95100,6),(95101,6),(95112,6),(95116,6),(95119,6),(95123,6),(95125,6),(95128,6),(95138,6),(95146,6),(95147,6),(95148,6),(95151,6),(95152,6),(95157,6),(95164,6),(95166,6),(95175,6),(95177,6),(95188,6),(95196,6),(95200,6),(95203,6),(95207,6),(95219,6),(95223,6),(95224,6),(95228,6),(95231,6),(95237,6),(95241,6),(95242,6),(95255,6),(95258,6),(95262,6),(95269,6),(95272,6),(95274,6),(95283,6),(95287,6),(95292,6),(95295,6),(95296,6),(95297,6),(95303,6),(95310,6),(95314,6),(95325,6),(95342,6),(95355,6),(95358,6),(95361,6),(95363,6),(95376,6),(95387,6),(95391,6),(95401,6),(95403,6),(95414,6),(95415,6),(95416,6),(95432,6),(95436,6),(95437,6),(95439,6),(95443,6),(95444,6),(95447,6),(95463,6),(95466,6),(95470,6),(95476,6),(95481,6),(95493,6),(95507,6),(95512,6),(95534,6),(95541,6),(95544,6),(95562,6),(95565,6),(95570,6),(95571,6),(95579,6),(95586,6),(95587,6),(95595,6),(95597,6),(95599,6),(95602,6),(95603,6),(95605,6),(95632,6),(95638,6),(95640,6),(95642,6),(95643,6),(95647,6),(95654,6),(95667,6),(95673,6),(95676,6),(95680,6),(95686,6),(95696,6),(95708,6),(95709,6),(95714,6),(95723,6),(95724,6),(95734,6),(95739,6),(95743,6),(95747,6),(95749,6),(95753,6),(95757,6),(95770,6),(95773,6),(95791,6),(95799,6),(95802,6),(95804,6),(95812,6),(95817,6),(95826,6),(95827,6),(95834,6),(95835,6),(95837,6),(95838,6),(95840,6),(95853,6),(95856,6),(95866,6),(95873,6),(95881,6),(95886,6),(95889,6),(95897,6),(95903,6),(95904,6),(95919,6),(95931,6),(95939,6),(95950,6),(95951,6),(95961,6),(95962,6),(95978,6),(95987,6),(96012,6),(96013,6),(96015,6),(96020,6),(96024,6),(96026,6),(96029,6),(96030,6),(96037,6),(96042,6),(96054,6),(96055,6),(96065,6),(96085,6),(96086,6),(96087,6),(96102,6),(96114,6),(96120,6),(96130,6),(96133,6),(96134,6),(96136,6),(96137,6),(96139,6),(96142,6),(96153,6),(96155,6),(96160,6),(96173,6),(96177,6),(96181,6),(96189,6),(96197,6),(96201,6),(96203,6),(96204,6),(96207,6),(96210,6),(96220,6),(96223,6),(96224,6),(96238,6),(96242,6),(96247,6),(96250,6),(96252,6),(96258,6),(96262,6),(96265,6),(96267,6),(96269,6),(96275,6),(96277,6),(96279,6),(96283,6),(96284,6),(96286,6),(96303,6),(96312,6),(96315,6),(96317,6),(96322,6),(96323,6),(96324,6),(96330,6),(96336,6),(96340,6),(96343,6),(96352,6),(96357,6),(96360,6),(96364,6),(96372,6),(96380,6),(96381,6),(96392,6),(96393,6),(96396,6),(96401,6),(96408,6),(96416,6),(96420,6),(96424,6),(96427,6),(96428,6),(96429,6),(96435,6),(96436,6),(96438,6),(96451,6),(96461,6),(96462,6),(96479,6),(96480,6),(96481,6),(96489,6),(96501,6),(96505,6),(96506,6),(96510,6),(96514,6),(96544,6),(96547,6),(96566,6),(96568,6),(96570,6),(96581,6),(96588,6),(96591,6),(96592,6),(96621,6),(96622,6),(96627,6),(96640,6),(96646,6),(96652,6),(96654,6),(96658,6),(96670,6),(96690,6),(96700,6),(96707,6),(96712,6),(96722,6),(96734,6),(96737,6),(96738,6),(96740,6),(96742,6),(96745,6),(96752,6),(96773,6),(96776,6),(96783,6),(96788,6),(96792,6),(96799,6),(96811,6),(96814,6),(96823,6),(96830,6),(96836,6),(96842,6),(96850,6),(96856,6),(96865,6),(96867,6),(96875,6),(96884,6),(96890,6),(96913,6),(96918,6),(96919,6),(96925,6),(96928,6),(96930,6),(96940,6),(96941,6),(96951,6),(96953,6),(96969,6),(96970,6),(96978,6),(96986,6),(96992,6),(97006,6),(97015,6),(97019,6),(97024,6),(97039,6),(97045,6),(97046,6),(97047,6),(97051,6),(97058,6),(97060,6),(97066,6),(97067,6),(97068,6),(97089,6),(97096,6),(97099,6),(97100,6),(97104,6),(97128,6),(97132,6),(97148,6),(97151,6),(97175,6),(97179,6),(97182,6),(97186,6),(97193,6),(97198,6),(97209,6),(97231,6),(97242,6),(97244,6),(97259,6),(97260,6),(97265,6),(97277,6),(97281,6),(97284,6),(97289,6),(97301,6),(97309,6),(97311,6),(97318,6),(97319,6),(97325,6),(97330,6),(97337,6),(97359,6),(97361,6),(97364,6),(97372,6),(97381,6),(97396,6),(97401,6),(97416,6),(97420,6),(97427,6),(97430,6),(97435,6),(97438,6),(97446,6),(97454,6),(97467,6),(97469,6),(97475,6),(97477,6),(97478,6),(97487,6),(97491,6),(97498,6),(97505,6),(97512,6),(97516,6),(97539,6),(97544,6),(97545,6),(97554,6),(97558,6),(97585,6),(97592,6),(97598,6),(97603,6),(97612,6),(97614,6),(97615,6),(97626,6),(97634,6),(97636,6),(97639,6),(97648,6),(97658,6),(97660,6),(97661,6),(97664,6),(97676,6),(97677,6),(97689,6),(97690,6),(97698,6),(97710,6),(97713,6),(97717,6),(97721,6),(97725,6),(97726,6),(97727,6),(97729,6),(97732,6),(97733,6),(97742,6),(97743,6),(97754,6),(97767,6),(97772,6),(97782,6),(97788,6),(97799,6),(97805,6),(97808,6),(97811,6),(97812,6),(97815,6),(97817,6),(97826,6),(97832,6),(97835,6),(97841,6),(97842,6),(97843,6),(97856,6),(97861,6),(97862,6),(97863,6),(97864,6),(97869,6),(97876,6),(97884,6),(97891,6),(97901,6),(97907,6),(97912,6),(97915,6),(97916,6),(97917,6),(97929,6),(97931,6),(97941,6),(97948,6),(97960,6),(97969,6),(97974,6),(97978,6),(97981,6),(97990,6),(97993,6),(97996,6),(98008,6),(98011,6),(98012,6),(98013,6),(98014,6),(98017,6),(98022,6),(98027,6),(98030,6),(98032,6),(98037,6),(98046,6),(98050,6),(98058,6),(98059,6),(98061,6),(98069,6),(98074,6),(98077,6),(98080,6),(98082,6),(98083,6),(98092,6),(98118,6),(98122,6),(98138,6),(98139,6),(98145,6),(98148,6),(98151,6),(98157,6),(98165,6),(98169,6),(98175,6),(98176,6),(98179,6),(98184,6),(98189,6),(98190,6),(98196,6),(98201,6),(98203,6),(98208,6),(98209,6),(98215,6),(98228,6),(98240,6),(98245,6),(98252,6),(98258,6),(98262,6),(98271,6),(98273,6),(98274,6),(98283,6),(98294,6),(98303,6),(98305,6),(98308,6),(98313,6),(98314,6),(98316,6),(98318,6),(98324,6),(98333,6),(98337,6),(98346,6),(98348,6),(98353,6),(98357,6),(98359,6),(98361,6),(98362,6),(98364,6),(98368,6),(98370,6),(98376,6),(98387,6),(98397,6),(98398,6),(98399,6),(98403,6),(98404,6),(98408,6),(98414,6),(98417,6),(98420,6),(98428,6),(98429,6),(98436,6),(98440,6),(98451,6),(98455,6),(98464,6),(98473,6),(98479,6),(98480,6),(98482,6),(98496,6),(98498,6),(98501,6),(98506,6),(98514,6),(98548,6),(98551,6),(98553,6),(98555,6),(98564,6),(98568,6),(98569,6),(98577,6),(98582,6),(98587,6),(98596,6),(98600,6),(98608,6),(98613,6),(98614,6),(98619,6),(98625,6),(98626,6),(98639,6),(98646,6),(98655,6),(98663,6),(98674,6),(98678,6),(98680,6),(98682,6),(98684,6),(98692,6),(98716,6),(98721,6),(98723,6),(98724,6),(98731,6),(98732,6),(98733,6),(98734,6),(98735,6),(98744,6),(98747,6),(98755,6),(98757,6),(98775,6),(98776,6),(98781,6),(98788,6),(98794,6),(98796,6),(98800,6),(98807,6),(98812,6),(98816,6),(98826,6),(98830,6),(98831,6),(98840,6),(98842,6),(98844,6),(98853,6),(98856,6),(98857,6),(98866,6),(98870,6),(98878,6),(98880,6),(98889,6),(98898,6),(98906,6),(98910,6),(98932,6),(98933,6),(98948,6),(98953,6),(98958,6),(98967,6),(98968,6),(98973,6),(98975,6),(98985,6),(98986,6),(98991,6),(98996,6),(98997,6); /*!40000 ALTER TABLE `campaign_transactions` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `campaigns` -- DROP TABLE IF EXISTS `campaigns`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `campaigns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `partner_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `campaigns` -- LOCK TABLES `campaigns` WRITE; /*!40000 ALTER TABLE `campaigns` DISABLE KEYS */; INSERT INTO `campaigns` VALUES (1,'Campaign 1A',1),(2,'Campaign 2A',1),(3,'Campaign 1B',2),(4,'Campaign 2B',2),(5,'Campaign 1C',3),(6,'Campaign 2C',3); /*!40000 ALTER TABLE `campaigns` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2020-03-20 19:41:29 ================================================ FILE: tests/setup/zillion_test.postgres.sql ================================================ -- -- PostgreSQL database dump -- -- Dumped from database version 12.2 -- Dumped by pg_dump version 12.2 SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; SET row_security = off; -- -- Name: zillion_test; Type: SCHEMA; Schema: -; Owner: postgres -- CREATE SCHEMA zillion_test; ALTER SCHEMA zillion_test OWNER TO postgres; SET default_tablespace = ''; SET default_table_access_method = heap; -- -- Name: campaign_cost; Type: TABLE; Schema: zillion_test; Owner: postgres -- CREATE TABLE zillion_test.campaign_cost ( campaign_id bigint NOT NULL, cost numeric(10,2), clicks bigint ); ALTER TABLE zillion_test.campaign_cost OWNER TO postgres; -- -- Name: campaign_transactions; Type: TABLE; Schema: zillion_test; Owner: postgres -- CREATE TABLE zillion_test.campaign_transactions ( id bigint NOT NULL, campaign_id bigint NOT NULL ); ALTER TABLE zillion_test.campaign_transactions OWNER TO postgres; -- -- Name: campaign_transactions_id_seq; Type: SEQUENCE; Schema: zillion_test; Owner: postgres -- CREATE SEQUENCE zillion_test.campaign_transactions_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE zillion_test.campaign_transactions_id_seq OWNER TO postgres; -- -- Name: campaign_transactions_id_seq; Type: SEQUENCE OWNED BY; Schema: zillion_test; Owner: postgres -- ALTER SEQUENCE zillion_test.campaign_transactions_id_seq OWNED BY zillion_test.campaign_transactions.id; -- -- Name: campaigns; Type: TABLE; Schema: zillion_test; Owner: postgres -- CREATE TABLE zillion_test.campaigns ( id bigint NOT NULL, name character varying(50) NOT NULL, category character varying(50) NOT NULL, partner_id bigint NOT NULL, created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL ); ALTER TABLE zillion_test.campaigns OWNER TO postgres; -- -- Name: campaigns_id_seq; Type: SEQUENCE; Schema: zillion_test; Owner: postgres -- CREATE SEQUENCE zillion_test.campaigns_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE zillion_test.campaigns_id_seq OWNER TO postgres; -- -- Name: campaigns_id_seq; Type: SEQUENCE OWNED BY; Schema: zillion_test; Owner: postgres -- ALTER SEQUENCE zillion_test.campaigns_id_seq OWNED BY zillion_test.campaigns.id; -- -- Name: partners; Type: TABLE; Schema: zillion_test; Owner: postgres -- CREATE TABLE zillion_test.partners ( id bigint NOT NULL, name character varying(50) NOT NULL, created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL ); ALTER TABLE zillion_test.partners OWNER TO postgres; -- -- Name: partners_id_seq; Type: SEQUENCE; Schema: zillion_test; Owner: postgres -- CREATE SEQUENCE zillion_test.partners_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE zillion_test.partners_id_seq OWNER TO postgres; -- -- Name: partners_id_seq; Type: SEQUENCE OWNED BY; Schema: zillion_test; Owner: postgres -- ALTER SEQUENCE zillion_test.partners_id_seq OWNED BY zillion_test.partners.id; -- -- Name: campaign_transactions id; Type: DEFAULT; Schema: zillion_test; Owner: postgres -- ALTER TABLE ONLY zillion_test.campaign_transactions ALTER COLUMN id SET DEFAULT nextval('zillion_test.campaign_transactions_id_seq'::regclass); -- -- Name: campaigns id; Type: DEFAULT; Schema: zillion_test; Owner: postgres -- ALTER TABLE ONLY zillion_test.campaigns ALTER COLUMN id SET DEFAULT nextval('zillion_test.campaigns_id_seq'::regclass); -- -- Name: partners id; Type: DEFAULT; Schema: zillion_test; Owner: postgres -- ALTER TABLE ONLY zillion_test.partners ALTER COLUMN id SET DEFAULT nextval('zillion_test.partners_id_seq'::regclass); -- -- Data for Name: campaign_cost; Type: TABLE DATA; Schema: zillion_test; Owner: postgres -- COPY zillion_test.campaign_cost (campaign_id, cost, clicks) FROM stdin; 1 10.00 25 2 15.00 35 3 14.00 24 4 18.00 85 5 8.00 16 6 12.00 15 \. -- -- Data for Name: campaign_transactions; Type: TABLE DATA; Schema: zillion_test; Owner: postgres -- COPY zillion_test.campaign_transactions (id, campaign_id) FROM stdin; 3 1 5 1 9 1 13 1 23 1 29 1 35 1 36 1 43 1 52 1 55 1 60 1 61 1 62 1 72 1 89 1 92 1 97 1 109 1 128 1 136 1 140 1 151 1 153 1 167 1 168 1 173 1 175 1 185 1 189 1 190 1 196 1 199 1 201 1 204 1 211 1 216 1 225 1 226 1 236 1 244 1 258 1 269 1 271 1 278 1 280 1 296 1 310 1 316 1 326 1 331 1 332 1 334 1 342 1 355 1 359 1 360 1 364 1 365 1 369 1 385 1 387 1 395 1 397 1 402 1 411 1 425 1 426 1 432 1 435 1 462 1 464 1 468 1 475 1 476 1 485 1 494 1 499 1 503 1 506 1 520 1 522 1 523 1 524 1 528 1 530 1 544 1 547 1 579 1 583 1 588 1 591 1 598 1 599 1 604 1 608 1 610 1 626 1 639 1 642 1 649 1 651 1 658 1 659 1 672 1 675 1 678 1 681 1 683 1 698 1 729 1 746 1 753 1 754 1 760 1 763 1 765 1 771 1 774 1 785 1 793 1 806 1 807 1 814 1 837 1 846 1 849 1 859 1 865 1 866 1 872 1 877 1 879 1 881 1 898 1 899 1 902 1 903 1 907 1 911 1 916 1 947 1 952 1 957 1 958 1 961 1 971 1 972 1 975 1 994 1 997 1 1001 1 1002 1 1011 1 1019 1 1026 1 1032 1 1046 1 1053 1 1055 1 1061 1 1062 1 1068 1 1070 1 1071 1 1098 1 1100 1 1102 1 1104 1 1107 1 1110 1 1126 1 1128 1 1134 1 1136 1 1137 1 1142 1 1145 1 1146 1 1149 1 1150 1 1174 1 1179 1 1186 1 1190 1 1192 1 1194 1 1205 1 1207 1 1209 1 1220 1 1228 1 1244 1 1252 1 1257 1 1258 1 1259 1 1260 1 1265 1 1266 1 1269 1 1273 1 1274 1 1278 1 1280 1 1291 1 1297 1 1301 1 1312 1 1315 1 1322 1 1325 1 1331 1 1332 1 1333 1 1337 1 1349 1 1359 1 1366 1 1391 1 1394 1 1396 1 1404 1 1405 1 1412 1 1417 1 1425 1 1431 1 1436 1 1448 1 1456 1 1474 1 1475 1 1476 1 1477 1 1497 1 1498 1 1506 1 1510 1 1511 1 1514 1 1515 1 1525 1 1528 1 1568 1 1569 1 1573 1 1574 1 1578 1 1593 1 1595 1 1598 1 1621 1 1644 1 1648 1 1650 1 1655 1 1658 1 1674 1 1683 1 1691 1 1692 1 1699 1 1703 1 1717 1 1734 1 1758 1 1764 1 1767 1 1773 1 1777 1 1781 1 1786 1 1787 1 1796 1 1799 1 1805 1 1815 1 1819 1 1828 1 1829 1 1836 1 1843 1 1844 1 1851 1 1853 1 1876 1 1882 1 1884 1 1889 1 1895 1 1897 1 1901 1 1905 1 1907 1 1913 1 1914 1 1926 1 1931 1 1935 1 1942 1 1945 1 1962 1 1967 1 1969 1 1974 1 1977 1 1978 1 1985 1 1988 1 1989 1 1992 1 1995 1 2002 1 2005 1 2011 1 2012 1 2020 1 2021 1 2022 1 2028 1 2029 1 2030 1 2039 1 2042 1 2051 1 2061 1 2067 1 2076 1 2106 1 2125 1 2130 1 2131 1 2134 1 2141 1 2142 1 2151 1 2155 1 2163 1 2164 1 2165 1 2172 1 2198 1 2199 1 2214 1 2223 1 2235 1 2239 1 2242 1 2247 1 2257 1 2273 1 2276 1 2287 1 2290 1 2303 1 2311 1 2334 1 2339 1 2344 1 2347 1 2350 1 2353 1 2369 1 2383 1 2385 1 2388 1 2389 1 2396 1 2404 1 2411 1 2412 1 2422 1 2441 1 2446 1 2456 1 2459 1 2462 1 2473 1 2475 1 2478 1 2488 1 2499 1 2500 1 2504 1 2505 1 2507 1 2511 1 2513 1 2515 1 2517 1 2525 1 2541 1 2546 1 2549 1 2550 1 2562 1 2572 1 2574 1 2586 1 2596 1 2599 1 2604 1 2605 1 2627 1 2631 1 2634 1 2637 1 2640 1 2647 1 2661 1 2669 1 2670 1 2682 1 2685 1 2686 1 2712 1 2715 1 2718 1 2719 1 2724 1 2730 1 2736 1 2741 1 2744 1 2774 1 2779 1 2786 1 2790 1 2791 1 2792 1 2798 1 2801 1 2810 1 2812 1 2813 1 2817 1 2823 1 2825 1 2826 1 2829 1 2835 1 2844 1 2847 1 2849 1 2858 1 2872 1 2874 1 2878 1 2880 1 2890 1 2895 1 2897 1 2919 1 2921 1 2925 1 2943 1 2945 1 2946 1 2954 1 2958 1 2965 1 2978 1 2983 1 2984 1 3006 1 3010 1 3012 1 3027 1 3031 1 3032 1 3034 1 3044 1 3053 1 3054 1 3056 1 3065 1 3085 1 3092 1 3093 1 3101 1 3105 1 3111 1 3128 1 3142 1 3152 1 3158 1 3164 1 3167 1 3168 1 3178 1 3179 1 3221 1 3224 1 3230 1 3231 1 3235 1 3236 1 3239 1 3245 1 3246 1 3248 1 3249 1 3251 1 3252 1 3264 1 3271 1 3276 1 3277 1 3287 1 3288 1 3309 1 3310 1 3316 1 3318 1 3319 1 3323 1 3329 1 3333 1 3341 1 3342 1 3346 1 3362 1 3365 1 3366 1 3373 1 3376 1 3377 1 3380 1 3382 1 3388 1 3390 1 3393 1 3395 1 3405 1 3411 1 3419 1 3433 1 3440 1 3441 1 3446 1 3447 1 3455 1 3464 1 3468 1 3470 1 3471 1 3475 1 3476 1 3479 1 3484 1 3487 1 3488 1 3492 1 3509 1 3524 1 3528 1 3529 1 3541 1 3544 1 3549 1 3557 1 3564 1 3578 1 3579 1 3582 1 3584 1 3590 1 3601 1 3609 1 3611 1 3615 1 3622 1 3625 1 3628 1 3641 1 3644 1 3650 1 3660 1 3670 1 3679 1 3696 1 3703 1 3714 1 3719 1 3720 1 3721 1 3736 1 3740 1 3742 1 3743 1 3748 1 3750 1 3755 1 3764 1 3768 1 3790 1 3793 1 3797 1 3807 1 3814 1 3816 1 3817 1 3821 1 3823 1 3831 1 3848 1 3851 1 3857 1 3870 1 3872 1 3876 1 3889 1 3894 1 3912 1 3937 1 3941 1 3950 1 3951 1 3960 1 3961 1 3965 1 3966 1 3981 1 3984 1 3994 1 4007 1 4019 1 4020 1 4022 1 4026 1 4034 1 4046 1 4051 1 4058 1 4065 1 4067 1 4069 1 4073 1 4077 1 4083 1 4089 1 4091 1 4095 1 4097 1 4104 1 4114 1 4117 1 4118 1 4119 1 4120 1 4133 1 4137 1 4148 1 4154 1 4156 1 4164 1 4166 1 4167 1 4171 1 4181 1 4202 1 4215 1 4223 1 4224 1 4227 1 4230 1 4231 1 4237 1 4243 1 4255 1 4272 1 4284 1 4287 1 4289 1 4291 1 4297 1 4307 1 4314 1 4315 1 4316 1 4317 1 4318 1 4319 1 4328 1 4341 1 4361 1 4367 1 4371 1 4376 1 4382 1 4387 1 4390 1 4394 1 4398 1 4402 1 4403 1 4404 1 4415 1 4423 1 4424 1 4430 1 4446 1 4448 1 4459 1 4464 1 4470 1 4479 1 4481 1 4485 1 4506 1 4510 1 4517 1 4520 1 4523 1 4527 1 4536 1 4541 1 4549 1 4567 1 4572 1 4575 1 4576 1 4577 1 4587 1 4592 1 4593 1 4595 1 4600 1 4612 1 4622 1 4623 1 4629 1 4631 1 4640 1 4642 1 4651 1 4656 1 4663 1 4665 1 4683 1 4689 1 4693 1 4697 1 4698 1 4711 1 4715 1 4718 1 4719 1 4724 1 4727 1 4737 1 4740 1 4747 1 4752 1 4756 1 4759 1 4768 1 4779 1 4793 1 4794 1 4796 1 4799 1 4802 1 4809 1 4823 1 4829 1 4838 1 4839 1 4840 1 4844 1 4846 1 4852 1 4855 1 4865 1 4866 1 4875 1 4877 1 4887 1 4889 1 4890 1 4893 1 4895 1 4896 1 4899 1 4901 1 4906 1 4916 1 4922 1 4939 1 4943 1 4944 1 4962 1 4963 1 4972 1 4976 1 4979 1 4980 1 4986 1 4989 1 5003 1 5016 1 5039 1 5042 1 5044 1 5047 1 5065 1 5068 1 5072 1 5075 1 5081 1 5082 1 5085 1 5089 1 5091 1 5106 1 5109 1 5110 1 5113 1 5120 1 5133 1 5137 1 5146 1 5162 1 5163 1 5164 1 5168 1 5180 1 5188 1 5194 1 5205 1 5211 1 5218 1 5225 1 5232 1 5233 1 5240 1 5241 1 5247 1 5253 1 5263 1 5268 1 5269 1 5276 1 5277 1 5284 1 5295 1 5296 1 5297 1 5303 1 5306 1 5312 1 5321 1 5326 1 5340 1 5353 1 5354 1 5357 1 5365 1 5373 1 5395 1 5397 1 5402 1 5410 1 5412 1 5419 1 5423 1 5428 1 5432 1 5441 1 5442 1 5445 1 5451 1 5453 1 5458 1 5476 1 5482 1 5486 1 5488 1 5489 1 5505 1 5506 1 5511 1 5515 1 5517 1 5532 1 5543 1 5552 1 5565 1 5567 1 5581 1 5582 1 5589 1 5594 1 5598 1 5613 1 5617 1 5621 1 5623 1 5627 1 5635 1 5648 1 5651 1 5659 1 5663 1 5666 1 5673 1 5674 1 5702 1 5710 1 5713 1 5719 1 5721 1 5722 1 5723 1 5739 1 5744 1 5745 1 5754 1 5761 1 5763 1 5766 1 5770 1 5781 1 5784 1 5807 1 5811 1 5813 1 5814 1 5817 1 5818 1 5820 1 5836 1 5843 1 5845 1 5847 1 5849 1 5850 1 5851 1 5852 1 5856 1 5863 1 5876 1 5900 1 5908 1 5915 1 5918 1 5929 1 5932 1 5933 1 5942 1 5944 1 5951 1 5953 1 5964 1 5972 1 5980 1 5983 1 5987 1 5993 1 5994 1 5995 1 5998 1 5999 1 6010 1 6021 1 6025 1 6026 1 6028 1 6050 1 6052 1 6053 1 6055 1 6068 1 6071 1 6080 1 6084 1 6112 1 6120 1 6127 1 6129 1 6131 1 6134 1 6143 1 6148 1 6151 1 6170 1 6171 1 6175 1 6177 1 6178 1 6200 1 6215 1 6220 1 6226 1 6238 1 6240 1 6241 1 6251 1 6253 1 6259 1 6277 1 6281 1 6295 1 6303 1 6306 1 6307 1 6318 1 6327 1 6331 1 6339 1 6341 1 6344 1 6346 1 6348 1 6355 1 6356 1 6366 1 6367 1 6371 1 6376 1 6377 1 6393 1 6412 1 6429 1 6432 1 6433 1 6436 1 6445 1 6446 1 6452 1 6460 1 6463 1 6482 1 6483 1 6493 1 6495 1 6497 1 6516 1 6517 1 6522 1 6540 1 6543 1 6547 1 6548 1 6551 1 6554 1 6564 1 6569 1 6574 1 6595 1 6603 1 6605 1 6610 1 6621 1 6626 1 6636 1 6637 1 6648 1 6649 1 6651 1 6654 1 6655 1 6667 1 6669 1 6680 1 6684 1 6686 1 6695 1 6697 1 6703 1 6707 1 6708 1 6716 1 6717 1 6718 1 6729 1 6741 1 6745 1 6750 1 6755 1 6758 1 6763 1 6764 1 6765 1 6768 1 6772 1 6781 1 6787 1 6791 1 6792 1 6795 1 6796 1 6800 1 6804 1 6805 1 6806 1 6820 1 6826 1 6827 1 6829 1 6833 1 6838 1 6848 1 6860 1 6864 1 6867 1 6869 1 6870 1 6872 1 6874 1 6882 1 6883 1 6887 1 6893 1 6898 1 6916 1 6926 1 6927 1 6930 1 6936 1 6942 1 6946 1 6952 1 6981 1 6991 1 6996 1 7011 1 7016 1 7019 1 7023 1 7024 1 7050 1 7063 1 7065 1 7071 1 7077 1 7080 1 7081 1 7085 1 7089 1 7098 1 7109 1 7112 1 7123 1 7126 1 7148 1 7155 1 7156 1 7157 1 7160 1 7161 1 7163 1 7174 1 7177 1 7178 1 7195 1 7205 1 7208 1 7209 1 7218 1 7226 1 7234 1 7246 1 7250 1 7251 1 7254 1 7256 1 7272 1 7285 1 7304 1 7305 1 7319 1 7339 1 7344 1 7350 1 7351 1 7358 1 7360 1 7367 1 7371 1 7372 1 7382 1 7384 1 7387 1 7390 1 7397 1 7403 1 7410 1 7412 1 7414 1 7428 1 7429 1 7438 1 7447 1 7448 1 7452 1 7458 1 7459 1 7464 1 7465 1 7468 1 7471 1 7473 1 7478 1 7483 1 7489 1 7493 1 7495 1 7508 1 7514 1 7525 1 7529 1 7540 1 7579 1 7580 1 7584 1 7585 1 7595 1 7596 1 7599 1 7606 1 7608 1 7610 1 7618 1 7621 1 7626 1 7634 1 7639 1 7651 1 7663 1 7666 1 7671 1 7672 1 7679 1 7680 1 7691 1 7692 1 7696 1 7706 1 7711 1 7713 1 7720 1 7752 1 7758 1 7759 1 7768 1 7770 1 7783 1 7787 1 7790 1 7792 1 7814 1 7816 1 7821 1 7824 1 7828 1 7843 1 7851 1 7853 1 7856 1 7860 1 7861 1 7884 1 7899 1 7916 1 7922 1 7924 1 7933 1 7940 1 7943 1 7944 1 7948 1 7958 1 7960 1 7961 1 7962 1 7964 1 7990 1 7992 1 7996 1 8013 1 8020 1 8022 1 8026 1 8031 1 8032 1 8034 1 8044 1 8050 1 8066 1 8067 1 8079 1 8094 1 8096 1 8097 1 8108 1 8114 1 8115 1 8121 1 8122 1 8134 1 8139 1 8140 1 8143 1 8156 1 8162 1 8171 1 8178 1 8179 1 8184 1 8190 1 8192 1 8196 1 8197 1 8198 1 8199 1 8200 1 8204 1 8229 1 8230 1 8239 1 8244 1 8248 1 8260 1 8278 1 8279 1 8290 1 8291 1 8294 1 8295 1 8297 1 8301 1 8320 1 8326 1 8343 1 8351 1 8352 1 8358 1 8365 1 8372 1 8374 1 8378 1 8389 1 8390 1 8403 1 8408 1 8411 1 8422 1 8423 1 8432 1 8441 1 8448 1 8450 1 8451 1 8458 1 8462 1 8467 1 8468 1 8470 1 8471 1 8485 1 8494 1 8507 1 8512 1 8515 1 8520 1 8535 1 8541 1 8544 1 8545 1 8548 1 8561 1 8563 1 8565 1 8568 1 8573 1 8577 1 8578 1 8580 1 8589 1 8598 1 8600 1 8601 1 8603 1 8621 1 8638 1 8645 1 8658 1 8664 1 8687 1 8691 1 8693 1 8696 1 8697 1 8699 1 8718 1 8732 1 8733 1 8752 1 8756 1 8757 1 8761 1 8762 1 8763 1 8764 1 8765 1 8776 1 8792 1 8797 1 8800 1 8807 1 8812 1 8813 1 8825 1 8835 1 8837 1 8842 1 8843 1 8846 1 8861 1 8863 1 8865 1 8882 1 8883 1 8884 1 8889 1 8902 1 8916 1 8920 1 8921 1 8928 1 8929 1 8933 1 8938 1 8939 1 8947 1 8960 1 8970 1 8972 1 8977 1 8987 1 8999 1 9010 1 9023 1 9028 1 9030 1 9037 1 9038 1 9040 1 9044 1 9045 1 9054 1 9062 1 9063 1 9071 1 9075 1 9077 1 9081 1 9085 1 9086 1 9090 1 9096 1 9100 1 9101 1 9107 1 9108 1 9111 1 9114 1 9118 1 9129 1 9130 1 9135 1 9138 1 9139 1 9173 1 9175 1 9202 1 9212 1 9220 1 9241 1 9249 1 9252 1 9255 1 9258 1 9259 1 9268 1 9270 1 9272 1 9276 1 9277 1 9280 1 9284 1 9285 1 9296 1 9297 1 9309 1 9326 1 9329 1 9331 1 9338 1 9350 1 9353 1 9355 1 9359 1 9362 1 9373 1 9374 1 9386 1 9391 1 9395 1 9399 1 9420 1 9434 1 9439 1 9440 1 9441 1 9444 1 9445 1 9447 1 9466 1 9503 1 9505 1 9511 1 9513 1 9515 1 9516 1 9517 1 9519 1 9529 1 9538 1 9539 1 9540 1 9544 1 9547 1 9550 1 9562 1 9563 1 9573 1 9577 1 9579 1 9583 1 9592 1 9605 1 9606 1 9608 1 9609 1 9610 1 9617 1 9618 1 9641 1 9649 1 9651 1 9658 1 9660 1 9685 1 9691 1 9693 1 9697 1 9698 1 9703 1 9704 1 9706 1 9713 1 9715 1 9718 1 9731 1 9736 1 9743 1 9757 1 9758 1 9766 1 9775 1 9778 1 9785 1 9787 1 9790 1 9795 1 9797 1 9803 1 9814 1 9836 1 9838 1 9849 1 9860 1 9862 1 9870 1 9882 1 9898 1 9901 1 9910 1 9915 1 9926 1 9929 1 9956 1 9959 1 9971 1 9978 1 9979 1 9985 1 9990 1 9995 1 9996 1 10010 1 10013 1 10027 1 10028 1 10029 1 10040 1 10052 1 10064 1 10066 1 10068 1 10073 1 10076 1 10081 1 10090 1 10098 1 10100 1 10102 1 10104 1 10118 1 10122 1 10131 1 10137 1 10152 1 10156 1 10158 1 10164 1 10180 1 10181 1 10198 1 10201 1 10224 1 10225 1 10228 1 10235 1 10238 1 10241 1 10251 1 10266 1 10274 1 10275 1 10280 1 10283 1 10284 1 10287 1 10293 1 10305 1 10306 1 10311 1 10315 1 10317 1 10333 1 10336 1 10338 1 10349 1 10351 1 10355 1 10356 1 10367 1 10369 1 10371 1 10380 1 10381 1 10382 1 10393 1 10394 1 10399 1 10416 1 10424 1 10440 1 10444 1 10455 1 10466 1 10479 1 10490 1 10493 1 10499 1 10506 1 10508 1 10532 1 10534 1 10537 1 10552 1 10554 1 10559 1 10562 1 10578 1 10580 1 10591 1 10594 1 10618 1 10620 1 10627 1 10630 1 10651 1 10654 1 10660 1 10661 1 10663 1 10671 1 10679 1 10681 1 10689 1 10707 1 10709 1 10716 1 10718 1 10720 1 10735 1 10746 1 10747 1 10757 1 10760 1 10762 1 10765 1 10768 1 10772 1 10778 1 10788 1 10797 1 10801 1 10805 1 10807 1 10808 1 10809 1 10810 1 10815 1 10820 1 10825 1 10827 1 10842 1 10847 1 10856 1 10860 1 10862 1 10869 1 10873 1 10875 1 10879 1 10880 1 10895 1 10897 1 10901 1 10915 1 10917 1 10925 1 10929 1 10949 1 10955 1 10960 1 10963 1 10965 1 10976 1 10982 1 10983 1 10984 1 10986 1 10988 1 10990 1 11001 1 11002 1 11016 1 11020 1 11028 1 11029 1 11032 1 11044 1 11047 1 11048 1 11050 1 11053 1 11057 1 11071 1 11077 1 11078 1 11079 1 11091 1 11093 1 11097 1 11100 1 11101 1 11107 1 11114 1 11119 1 11120 1 11126 1 11139 1 11141 1 11142 1 11144 1 11145 1 11152 1 11154 1 11174 1 11182 1 11193 1 11194 1 11219 1 11222 1 11225 1 11242 1 11246 1 11249 1 11250 1 11255 1 11260 1 11268 1 11275 1 11277 1 11295 1 11302 1 11310 1 11311 1 11312 1 11314 1 11315 1 11325 1 11328 1 11330 1 11338 1 11341 1 11344 1 11354 1 11365 1 11373 1 11380 1 11383 1 11386 1 11389 1 11405 1 11408 1 11425 1 11430 1 11444 1 11451 1 11459 1 11462 1 11464 1 11466 1 11468 1 11476 1 11482 1 11489 1 11490 1 11491 1 11494 1 11495 1 11499 1 11509 1 11512 1 11514 1 11520 1 11534 1 11536 1 11538 1 11544 1 11564 1 11566 1 11578 1 11580 1 11583 1 11595 1 11597 1 11603 1 11607 1 11613 1 11618 1 11633 1 11644 1 11663 1 11667 1 11678 1 11679 1 11688 1 11692 1 11694 1 11697 1 11699 1 11703 1 11705 1 11706 1 11716 1 11725 1 11731 1 11733 1 11736 1 11741 1 11752 1 11758 1 11770 1 11789 1 11793 1 11796 1 11814 1 11816 1 11818 1 11830 1 11837 1 11842 1 11846 1 11861 1 11864 1 11880 1 11883 1 11885 1 11890 1 11895 1 11906 1 11912 1 11932 1 11935 1 11941 1 11944 1 11948 1 11952 1 11959 1 11962 1 11969 1 11973 1 11975 1 11977 1 11981 1 11982 1 11983 1 11985 1 12001 1 12006 1 12008 1 12014 1 12019 1 12032 1 12037 1 12044 1 12045 1 12053 1 12064 1 12066 1 12068 1 12079 1 12085 1 12098 1 12102 1 12116 1 12133 1 12141 1 12158 1 12163 1 12166 1 12170 1 12176 1 12182 1 12183 1 12187 1 12188 1 12191 1 12195 1 12202 1 12205 1 12210 1 12224 1 12226 1 12238 1 12240 1 12248 1 12264 1 12269 1 12273 1 12274 1 12288 1 12306 1 12310 1 12313 1 12314 1 12316 1 12323 1 12327 1 12336 1 12346 1 12347 1 12349 1 12354 1 12359 1 12364 1 12372 1 12375 1 12378 1 12387 1 12393 1 12396 1 12397 1 12399 1 12401 1 12407 1 12413 1 12420 1 12423 1 12431 1 12433 1 12436 1 12437 1 12441 1 12448 1 12454 1 12455 1 12468 1 12477 1 12480 1 12483 1 12484 1 12491 1 12501 1 12502 1 12505 1 12529 1 12537 1 12538 1 12545 1 12550 1 12551 1 12559 1 12568 1 12569 1 12575 1 12581 1 12584 1 12591 1 12600 1 12606 1 12611 1 12615 1 12638 1 12643 1 12644 1 12647 1 12661 1 12676 1 12689 1 12690 1 12694 1 12697 1 12699 1 12705 1 12718 1 12721 1 12724 1 12739 1 12740 1 12750 1 12752 1 12755 1 12756 1 12767 1 12777 1 12790 1 12791 1 12793 1 12800 1 12806 1 12809 1 12824 1 12826 1 12827 1 12843 1 12852 1 12860 1 12870 1 12872 1 12874 1 12875 1 12885 1 12893 1 12894 1 12906 1 12907 1 12916 1 12918 1 12919 1 12920 1 12928 1 12939 1 12940 1 12943 1 12946 1 12955 1 12957 1 12961 1 12963 1 12970 1 12978 1 12988 1 12996 1 13001 1 13002 1 13019 1 13020 1 13023 1 13037 1 13038 1 13042 1 13043 1 13044 1 13046 1 13047 1 13053 1 13058 1 13062 1 13095 1 13102 1 13109 1 13110 1 13112 1 13116 1 13136 1 13139 1 13146 1 13155 1 13162 1 13165 1 13174 1 13186 1 13194 1 13195 1 13204 1 13219 1 13220 1 13222 1 13227 1 13228 1 13236 1 13239 1 13246 1 13247 1 13252 1 13262 1 13269 1 13270 1 13275 1 13287 1 13303 1 13319 1 13327 1 13331 1 13338 1 13347 1 13355 1 13356 1 13364 1 13388 1 13389 1 13397 1 13411 1 13412 1 13416 1 13432 1 13434 1 13445 1 13453 1 13458 1 13463 1 13470 1 13473 1 13476 1 13489 1 13490 1 13505 1 13509 1 13533 1 13557 1 13559 1 13562 1 13564 1 13567 1 13593 1 13594 1 13596 1 13597 1 13599 1 13612 1 13614 1 13621 1 13624 1 13625 1 13627 1 13632 1 13635 1 13636 1 13637 1 13638 1 13640 1 13644 1 13649 1 13652 1 13655 1 13658 1 13659 1 13665 1 13667 1 13670 1 13678 1 13688 1 13689 1 13690 1 13693 1 13701 1 13702 1 13704 1 13719 1 13727 1 13732 1 13743 1 13749 1 13757 1 13768 1 13773 1 13776 1 13778 1 13785 1 13786 1 13789 1 13792 1 13797 1 13808 1 13810 1 13825 1 13826 1 13827 1 13829 1 13833 1 13835 1 13850 1 13853 1 13861 1 13864 1 13874 1 13886 1 13898 1 13908 1 13912 1 13913 1 13917 1 13927 1 13929 1 13931 1 13952 1 13953 1 13954 1 13958 1 13959 1 13960 1 13967 1 13970 1 13973 1 13977 1 13978 1 13987 1 13998 1 13999 1 14003 1 14015 1 14020 1 14022 1 14033 1 14045 1 14046 1 14048 1 14054 1 14055 1 14060 1 14071 1 14078 1 14084 1 14094 1 14105 1 14110 1 14116 1 14117 1 14127 1 14128 1 14138 1 14140 1 14141 1 14143 1 14144 1 14154 1 14158 1 14162 1 14166 1 14171 1 14173 1 14178 1 14184 1 14185 1 14191 1 14207 1 14208 1 14214 1 14229 1 14243 1 14245 1 14247 1 14277 1 14280 1 14288 1 14298 1 14300 1 14305 1 14310 1 14318 1 14324 1 14331 1 14346 1 14361 1 14364 1 14366 1 14374 1 14375 1 14380 1 14381 1 14388 1 14390 1 14398 1 14401 1 14413 1 14414 1 14417 1 14422 1 14437 1 14445 1 14446 1 14465 1 14472 1 14473 1 14474 1 14482 1 14487 1 14496 1 14514 1 14517 1 14519 1 14532 1 14542 1 14545 1 14547 1 14552 1 14556 1 14561 1 14569 1 14572 1 14576 1 14579 1 14598 1 14607 1 14612 1 14620 1 14621 1 14623 1 14624 1 14627 1 14629 1 14634 1 14667 1 14684 1 14703 1 14717 1 14731 1 14732 1 14738 1 14752 1 14755 1 14758 1 14771 1 14772 1 14775 1 14780 1 14788 1 14809 1 14817 1 14818 1 14821 1 14827 1 14835 1 14840 1 14841 1 14843 1 14850 1 14858 1 14863 1 14864 1 14867 1 14868 1 14877 1 14878 1 14881 1 14892 1 14899 1 14904 1 14908 1 14913 1 14931 1 14936 1 14937 1 14946 1 14948 1 14954 1 14957 1 14959 1 14964 1 14968 1 14972 1 14976 1 14978 1 14980 1 14981 1 14987 1 15000 1 15001 1 15004 1 15012 1 15016 1 15022 1 15030 1 15031 1 15040 1 15041 1 15045 1 15051 1 15061 1 15063 1 15064 1 15070 1 15071 1 15075 1 15086 1 15099 1 15100 1 15109 1 15114 1 15128 1 15133 1 15141 1 15143 1 15150 1 15157 1 15158 1 15163 1 15164 1 15166 1 15186 1 15206 1 15214 1 15228 1 15229 1 15230 1 15233 1 15249 1 15255 1 15270 1 15274 1 15277 1 15280 1 15292 1 15302 1 15303 1 15311 1 15317 1 15319 1 15321 1 15333 1 15341 1 15344 1 15347 1 15349 1 15372 1 15385 1 15403 1 15404 1 15407 1 15412 1 15420 1 15426 1 15430 1 15433 1 15439 1 15449 1 15455 1 15456 1 15462 1 15466 1 15468 1 15470 1 15476 1 15487 1 15489 1 15494 1 15497 1 15501 1 15508 1 15525 1 15530 1 15531 1 15533 1 15537 1 15543 1 15544 1 15562 1 15567 1 15570 1 15585 1 15590 1 15591 1 15592 1 15595 1 15596 1 15602 1 15605 1 15608 1 15610 1 15611 1 15613 1 15620 1 15623 1 15632 1 15634 1 15640 1 15643 1 15647 1 15654 1 15665 1 15671 1 15679 1 15681 1 15686 1 15687 1 15689 1 15693 1 15697 1 15703 1 15704 1 15705 1 15706 1 15716 1 15719 1 15724 1 15734 1 15735 1 15749 1 15761 1 15765 1 15766 1 15772 1 15776 1 15778 1 15781 1 15785 1 15789 1 15793 1 15795 1 15800 1 15802 1 15809 1 15811 1 15815 1 15816 1 15819 1 15823 1 15830 1 15842 1 15847 1 15848 1 15849 1 15866 1 15877 1 15878 1 15882 1 15891 1 15898 1 15901 1 15910 1 15915 1 15920 1 15923 1 15935 1 15938 1 15943 1 15944 1 15948 1 15963 1 15967 1 15969 1 15972 1 15982 1 15987 1 16001 1 16004 1 16005 1 16013 1 16015 1 16016 1 16018 1 16023 1 16030 1 16039 1 16044 1 16049 1 16063 1 16066 1 16067 1 16080 1 16084 1 16092 1 16095 1 16099 1 16119 1 16121 1 16125 1 16129 1 16133 1 16135 1 16136 1 16138 1 16159 1 16169 1 16175 1 16185 1 16205 1 16213 1 16231 1 16238 1 16248 1 16256 1 16262 1 16263 1 16267 1 16275 1 16283 1 16290 1 16293 1 16295 1 16311 1 16314 1 16316 1 16321 1 16326 1 16328 1 16330 1 16342 1 16349 1 16354 1 16356 1 16357 1 16367 1 16380 1 16388 1 16389 1 16390 1 16393 1 16407 1 16410 1 16413 1 16418 1 16421 1 16430 1 16432 1 16463 1 16477 1 16481 1 16488 1 16490 1 16495 1 16503 1 16508 1 16512 1 16526 1 16528 1 16537 1 16544 1 16551 1 16560 1 16563 1 16573 1 16575 1 16580 1 16588 1 16590 1 16591 1 16599 1 16606 1 16607 1 16609 1 16621 1 16629 1 16634 1 16638 1 16642 1 16662 1 16665 1 16667 1 16670 1 16674 1 16692 1 16695 1 16714 1 16718 1 16725 1 16726 1 16734 1 16738 1 16742 1 16750 1 16762 1 16769 1 16771 1 16772 1 16776 1 16785 1 16792 1 16795 1 16806 1 16818 1 16833 1 16836 1 16837 1 16867 1 16870 1 16879 1 16883 1 16884 1 16899 1 16905 1 16910 1 16919 1 16925 1 16928 1 16929 1 16933 1 16939 1 16943 1 16958 1 16960 1 16965 1 16967 1 16972 1 16984 1 16986 1 16993 1 16996 1 17002 1 17013 1 17015 1 17021 1 17025 1 17027 1 17033 1 17044 1 17045 1 17049 1 17057 1 17058 1 17071 1 17073 1 17075 1 17093 1 17107 1 17111 1 17114 1 17118 1 17123 1 17140 1 17147 1 17149 1 17160 1 17168 1 17170 1 17173 1 17175 1 17177 1 17183 1 17193 1 17194 1 17195 1 17200 1 17201 1 17202 1 17204 1 17209 1 17210 1 17220 1 17248 1 17249 1 17252 1 17282 1 17284 1 17287 1 17290 1 17293 1 17299 1 17303 1 17306 1 17320 1 17341 1 17342 1 17343 1 17355 1 17356 1 17375 1 17377 1 17382 1 17387 1 17402 1 17404 1 17411 1 17412 1 17425 1 17427 1 17428 1 17434 1 17442 1 17458 1 17460 1 17461 1 17462 1 17466 1 17467 1 17475 1 17481 1 17485 1 17489 1 17505 1 17521 1 17522 1 17530 1 17541 1 17545 1 17546 1 17547 1 17562 1 17565 1 17568 1 17576 1 17578 1 17579 1 17590 1 17595 1 17596 1 17597 1 17606 1 17608 1 17618 1 17623 1 17624 1 17625 1 17628 1 17630 1 17636 1 17637 1 17644 1 17645 1 17661 1 17666 1 17668 1 17686 1 17711 1 17721 1 17724 1 17734 1 17735 1 17740 1 17744 1 17750 1 17751 1 17752 1 17753 1 17757 1 17761 1 17767 1 17783 1 17788 1 17791 1 17806 1 17823 1 17824 1 17848 1 17851 1 17855 1 17856 1 17862 1 17876 1 17881 1 17889 1 17892 1 17893 1 17895 1 17905 1 17909 1 17910 1 17913 1 17924 1 17930 1 17933 1 17940 1 17946 1 17951 1 17954 1 17957 1 17967 1 17969 1 17980 1 17991 1 17995 1 17996 1 18009 1 18022 1 18026 1 18030 1 18041 1 18049 1 18053 1 18055 1 18063 1 18064 1 18066 1 18074 1 18075 1 18091 1 18102 1 18103 1 18123 1 18126 1 18130 1 18138 1 18148 1 18150 1 18151 1 18155 1 18161 1 18185 1 18192 1 18193 1 18200 1 18201 1 18210 1 18213 1 18215 1 18217 1 18228 1 18229 1 18236 1 18246 1 18251 1 18253 1 18255 1 18261 1 18262 1 18274 1 18277 1 18279 1 18288 1 18289 1 18293 1 18294 1 18300 1 18301 1 18303 1 18309 1 18312 1 18318 1 18319 1 18320 1 18324 1 18325 1 18328 1 18330 1 18336 1 18346 1 18349 1 18387 1 18391 1 18392 1 18396 1 18403 1 18406 1 18409 1 18419 1 18468 1 18477 1 18478 1 18487 1 18504 1 18505 1 18506 1 18507 1 18508 1 18516 1 18517 1 18527 1 18530 1 18535 1 18541 1 18547 1 18551 1 18553 1 18557 1 18558 1 18560 1 18565 1 18567 1 18570 1 18585 1 18587 1 18591 1 18593 1 18594 1 18595 1 18598 1 18603 1 18607 1 18609 1 18637 1 18641 1 18646 1 18648 1 18652 1 18653 1 18660 1 18668 1 18669 1 18675 1 18680 1 18684 1 18687 1 18698 1 18703 1 18707 1 18708 1 18710 1 18727 1 18731 1 18742 1 18743 1 18747 1 18748 1 18750 1 18753 1 18757 1 18763 1 18764 1 18766 1 18768 1 18789 1 18799 1 18802 1 18804 1 18821 1 18832 1 18840 1 18846 1 18848 1 18849 1 18850 1 18859 1 18865 1 18871 1 18875 1 18900 1 18910 1 18915 1 18916 1 18917 1 18918 1 18924 1 18925 1 18932 1 18936 1 18946 1 18959 1 18962 1 18967 1 18975 1 18980 1 18987 1 18988 1 18992 1 19012 1 19024 1 19025 1 19034 1 19035 1 19041 1 19055 1 19057 1 19065 1 19067 1 19068 1 19075 1 19077 1 19079 1 19100 1 19105 1 19114 1 19123 1 19133 1 19138 1 19151 1 19153 1 19154 1 19158 1 19169 1 19192 1 19204 1 19205 1 19206 1 19207 1 19211 1 19213 1 19214 1 19222 1 19224 1 19240 1 19256 1 19262 1 19265 1 19271 1 19272 1 19273 1 19281 1 19294 1 19303 1 19308 1 19313 1 19315 1 19319 1 19322 1 19328 1 19338 1 19339 1 19340 1 19347 1 19356 1 19362 1 19367 1 19370 1 19371 1 19375 1 19377 1 19382 1 19384 1 19386 1 19399 1 19405 1 19416 1 19422 1 19431 1 19448 1 19449 1 19454 1 19457 1 19459 1 19483 1 19484 1 19485 1 19489 1 19506 1 19513 1 19515 1 19533 1 19535 1 19538 1 19545 1 19551 1 19554 1 19559 1 19565 1 19570 1 19573 1 19574 1 19578 1 19579 1 19589 1 19596 1 19598 1 19599 1 19605 1 19608 1 19609 1 19618 1 19622 1 19631 1 19634 1 19640 1 19642 1 19652 1 19659 1 19660 1 19671 1 19675 1 19677 1 19678 1 19679 1 19682 1 19685 1 19690 1 19704 1 19706 1 19732 1 19748 1 19750 1 19752 1 19759 1 19764 1 19766 1 19767 1 19772 1 19773 1 19782 1 19798 1 19799 1 19804 1 19818 1 19821 1 19825 1 19826 1 19829 1 19833 1 19839 1 19845 1 19857 1 19858 1 19870 1 19879 1 19889 1 19893 1 19904 1 19913 1 19917 1 19922 1 19923 1 19932 1 19933 1 19937 1 19945 1 19960 1 19962 1 19963 1 19967 1 19986 1 19987 1 19996 1 20003 1 20004 1 20005 1 20029 1 20043 1 20054 1 20062 1 20063 1 20073 1 20079 1 20092 1 20109 1 20111 1 20117 1 20133 1 20134 1 20143 1 20152 1 20157 1 20163 1 20174 1 20176 1 20186 1 20188 1 20192 1 20205 1 20208 1 20218 1 20242 1 20250 1 20257 1 20258 1 20267 1 20274 1 20287 1 20291 1 20306 1 20312 1 20313 1 20319 1 20337 1 20339 1 20344 1 20345 1 20350 1 20351 1 20352 1 20364 1 20377 1 20380 1 20386 1 20392 1 20400 1 20401 1 20403 1 20406 1 20417 1 20418 1 20436 1 20440 1 20447 1 20449 1 20455 1 20456 1 20457 1 20460 1 20472 1 20496 1 20498 1 20502 1 20505 1 20510 1 20514 1 20523 1 20529 1 20532 1 20538 1 20542 1 20551 1 20559 1 20574 1 20577 1 20580 1 20582 1 20585 1 20586 1 20587 1 20590 1 20595 1 20600 1 20609 1 20611 1 20617 1 20619 1 20621 1 20625 1 20626 1 20628 1 20630 1 20635 1 20636 1 20639 1 20649 1 20652 1 20654 1 20659 1 20665 1 20670 1 20672 1 20679 1 20680 1 20686 1 20698 1 20712 1 20719 1 20738 1 20743 1 20749 1 20756 1 20765 1 20768 1 20770 1 20776 1 20790 1 20794 1 20801 1 20811 1 20818 1 20824 1 20829 1 20830 1 20837 1 20849 1 20857 1 20859 1 20862 1 20872 1 20881 1 20882 1 20904 1 20906 1 20908 1 20939 1 20942 1 20947 1 20950 1 20966 1 20971 1 20986 1 20992 1 20996 1 20998 1 21006 1 21011 1 21012 1 21014 1 21017 1 21018 1 21019 1 21022 1 21027 1 21034 1 21037 1 21039 1 21041 1 21042 1 21043 1 21044 1 21054 1 21058 1 21065 1 21066 1 21076 1 21083 1 21088 1 21115 1 21116 1 21117 1 21119 1 21126 1 21130 1 21131 1 21133 1 21136 1 21139 1 21149 1 21152 1 21159 1 21161 1 21170 1 21171 1 21176 1 21177 1 21201 1 21203 1 21206 1 21207 1 21208 1 21217 1 21220 1 21222 1 21227 1 21230 1 21231 1 21258 1 21259 1 21260 1 21266 1 21272 1 21273 1 21278 1 21282 1 21283 1 21288 1 21291 1 21295 1 21303 1 21326 1 21332 1 21333 1 21335 1 21338 1 21340 1 21343 1 21345 1 21351 1 21363 1 21379 1 21390 1 21393 1 21394 1 21399 1 21434 1 21438 1 21454 1 21461 1 21464 1 21484 1 21501 1 21504 1 21509 1 21513 1 21517 1 21518 1 21519 1 21522 1 21524 1 21526 1 21527 1 21534 1 21536 1 21551 1 21557 1 21564 1 21578 1 21579 1 21589 1 21601 1 21603 1 21613 1 21627 1 21630 1 21635 1 21637 1 21638 1 21639 1 21640 1 21649 1 21652 1 21653 1 21667 1 21675 1 21676 1 21680 1 21681 1 21682 1 21686 1 21689 1 21708 1 21715 1 21717 1 21722 1 21723 1 21724 1 21728 1 21735 1 21743 1 21745 1 21758 1 21760 1 21762 1 21764 1 21765 1 21769 1 21786 1 21791 1 21816 1 21835 1 21837 1 21841 1 21842 1 21857 1 21858 1 21863 1 21874 1 21877 1 21880 1 21897 1 21900 1 21903 1 21909 1 21910 1 21924 1 21925 1 21927 1 21930 1 21932 1 21935 1 21936 1 21945 1 21947 1 21948 1 21958 1 21967 1 21980 1 21984 1 21986 1 21990 1 21996 1 22004 1 22005 1 22006 1 22008 1 22018 1 22023 1 22024 1 22025 1 22027 1 22042 1 22047 1 22066 1 22068 1 22069 1 22072 1 22079 1 22082 1 22083 1 22090 1 22098 1 22104 1 22106 1 22125 1 22126 1 22132 1 22139 1 22140 1 22161 1 22162 1 22165 1 22172 1 22180 1 22182 1 22191 1 22193 1 22194 1 22200 1 22203 1 22209 1 22217 1 22221 1 22225 1 22229 1 22232 1 22240 1 22241 1 22247 1 22250 1 22253 1 22258 1 22262 1 22265 1 22272 1 22278 1 22283 1 22285 1 22288 1 22292 1 22295 1 22302 1 22307 1 22317 1 22324 1 22344 1 22353 1 22376 1 22377 1 22387 1 22388 1 22400 1 22405 1 22406 1 22408 1 22410 1 22412 1 22414 1 22429 1 22435 1 22441 1 22449 1 22467 1 22469 1 22470 1 22473 1 22476 1 22479 1 22480 1 22481 1 22486 1 22491 1 22496 1 22509 1 22519 1 22526 1 22527 1 22529 1 22535 1 22541 1 22562 1 22568 1 22572 1 22577 1 22578 1 22582 1 22607 1 22617 1 22625 1 22631 1 22635 1 22636 1 22642 1 22649 1 22660 1 22665 1 22667 1 22685 1 22690 1 22694 1 22706 1 22711 1 22712 1 22714 1 22716 1 22719 1 22735 1 22740 1 22753 1 22754 1 22756 1 22765 1 22766 1 22772 1 22777 1 22784 1 22808 1 22809 1 22812 1 22823 1 22824 1 22831 1 22841 1 22843 1 22844 1 22859 1 22861 1 22862 1 22863 1 22865 1 22866 1 22872 1 22877 1 22882 1 22884 1 22887 1 22891 1 22902 1 22904 1 22922 1 22939 1 22943 1 22947 1 22958 1 22959 1 22962 1 22969 1 22970 1 22973 1 22974 1 22981 1 22989 1 22999 1 23003 1 23005 1 23009 1 23013 1 23014 1 23017 1 23018 1 23026 1 23031 1 23038 1 23041 1 23050 1 23059 1 23067 1 23072 1 23079 1 23081 1 23084 1 23089 1 23104 1 23106 1 23108 1 23109 1 23135 1 23147 1 23152 1 23155 1 23164 1 23187 1 23205 1 23229 1 23231 1 23233 1 23236 1 23250 1 23251 1 23255 1 23263 1 23272 1 23273 1 23279 1 23280 1 23285 1 23294 1 23298 1 23309 1 23310 1 23314 1 23327 1 23330 1 23348 1 23354 1 23359 1 23367 1 23369 1 23387 1 23389 1 23390 1 23395 1 23404 1 23407 1 23417 1 23422 1 23430 1 23431 1 23436 1 23444 1 23449 1 23450 1 23457 1 23459 1 23466 1 23474 1 23475 1 23476 1 23480 1 23490 1 23493 1 23496 1 23504 1 23510 1 23511 1 23519 1 23522 1 23525 1 23526 1 23537 1 23540 1 23543 1 23549 1 23550 1 23557 1 23562 1 23567 1 23569 1 23575 1 23589 1 23606 1 23610 1 23612 1 23629 1 23651 1 23658 1 23661 1 23664 1 23667 1 23669 1 23670 1 23673 1 23687 1 23701 1 23706 1 23715 1 23717 1 23727 1 23729 1 23730 1 23743 1 23746 1 23752 1 23759 1 23773 1 23786 1 23810 1 23811 1 23817 1 23822 1 23825 1 23829 1 23832 1 23838 1 23840 1 23845 1 23847 1 23849 1 23859 1 23863 1 23867 1 23875 1 23882 1 23889 1 23893 1 23901 1 23904 1 23912 1 23914 1 23919 1 23924 1 23928 1 23942 1 23945 1 23946 1 23948 1 23950 1 23959 1 23961 1 23968 1 23970 1 23983 1 23990 1 23997 1 24010 1 24016 1 24024 1 24029 1 24033 1 24034 1 24045 1 24050 1 24055 1 24059 1 24065 1 24066 1 24070 1 24088 1 24089 1 24094 1 24095 1 24100 1 24105 1 24106 1 24107 1 24126 1 24127 1 24136 1 24142 1 24152 1 24153 1 24158 1 24163 1 24171 1 24175 1 24183 1 24189 1 24191 1 24193 1 24198 1 24209 1 24213 1 24214 1 24220 1 24227 1 24231 1 24234 1 24235 1 24238 1 24240 1 24241 1 24244 1 24246 1 24252 1 24254 1 24256 1 24263 1 24269 1 24271 1 24274 1 24284 1 24285 1 24286 1 24296 1 24298 1 24301 1 24304 1 24312 1 24316 1 24320 1 24326 1 24336 1 24341 1 24344 1 24345 1 24346 1 24349 1 24350 1 24354 1 24357 1 24360 1 24381 1 24383 1 24384 1 24406 1 24407 1 24424 1 24425 1 24426 1 24431 1 24438 1 24439 1 24440 1 24445 1 24448 1 24459 1 24471 1 24473 1 24478 1 24480 1 24483 1 24484 1 24501 1 24508 1 24509 1 24514 1 24515 1 24520 1 24535 1 24537 1 24543 1 24550 1 24555 1 24560 1 24563 1 24565 1 24570 1 24577 1 24580 1 24600 1 24604 1 24608 1 24614 1 24617 1 24620 1 24624 1 24632 1 24646 1 24647 1 24648 1 24662 1 24666 1 24674 1 24690 1 24691 1 24698 1 24701 1 24703 1 24717 1 24719 1 24723 1 24728 1 24732 1 24736 1 24738 1 24747 1 24755 1 24757 1 24760 1 24766 1 24771 1 24779 1 24786 1 24794 1 24800 1 24801 1 24803 1 24807 1 24809 1 24811 1 24820 1 24827 1 24850 1 24859 1 24875 1 24885 1 24887 1 24889 1 24890 1 24900 1 24903 1 24920 1 24921 1 24946 1 24947 1 24948 1 24956 1 24958 1 24961 1 24962 1 24963 1 24969 1 24970 1 24983 1 24988 1 24991 1 25001 1 25009 1 25015 1 25017 1 25022 1 25023 1 25035 1 25054 1 25065 1 25067 1 25081 1 25083 1 25087 1 25094 1 25103 1 25111 1 25119 1 25130 1 25145 1 25146 1 25149 1 25156 1 25163 1 25170 1 25171 1 25175 1 25176 1 25192 1 25195 1 25212 1 25215 1 25226 1 25229 1 25233 1 25238 1 25241 1 25246 1 25247 1 25248 1 25256 1 25257 1 25263 1 25269 1 25281 1 25290 1 25291 1 25297 1 25305 1 25308 1 25317 1 25321 1 25324 1 25326 1 25333 1 25334 1 25348 1 25349 1 25350 1 25354 1 25357 1 25365 1 25372 1 25377 1 25387 1 25397 1 25398 1 25403 1 25405 1 25407 1 25423 1 25429 1 25433 1 25439 1 25440 1 25452 1 25457 1 25460 1 25477 1 25478 1 25480 1 25481 1 25493 1 25495 1 25501 1 25503 1 25509 1 25511 1 25513 1 25515 1 25516 1 25518 1 25520 1 25526 1 25528 1 25529 1 25531 1 25536 1 25551 1 25557 1 25565 1 25567 1 25569 1 25570 1 25576 1 25580 1 25582 1 25586 1 25601 1 25602 1 25615 1 25616 1 25620 1 25623 1 25624 1 25628 1 25632 1 25639 1 25643 1 25651 1 25656 1 25657 1 25658 1 25672 1 25676 1 25685 1 25688 1 25698 1 25700 1 25702 1 25715 1 25716 1 25719 1 25720 1 25724 1 25725 1 25733 1 25734 1 25744 1 25751 1 25754 1 25759 1 25761 1 25765 1 25772 1 25776 1 25810 1 25818 1 25820 1 25821 1 25825 1 25826 1 25833 1 25842 1 25846 1 25847 1 25848 1 25851 1 25852 1 25854 1 25859 1 25861 1 25863 1 25887 1 25888 1 25891 1 25893 1 25896 1 25897 1 25901 1 25905 1 25910 1 25915 1 25936 1 25937 1 25946 1 25950 1 25951 1 25952 1 25959 1 25963 1 25966 1 25977 1 25988 1 25995 1 26013 1 26021 1 26022 1 26032 1 26033 1 26042 1 26051 1 26053 1 26061 1 26069 1 26070 1 26077 1 26079 1 26080 1 26083 1 26097 1 26099 1 26126 1 26132 1 26133 1 26136 1 26143 1 26148 1 26151 1 26159 1 26160 1 26162 1 26168 1 26169 1 26180 1 26182 1 26195 1 26209 1 26211 1 26220 1 26221 1 26226 1 26227 1 26243 1 26244 1 26247 1 26248 1 26249 1 26262 1 26264 1 26265 1 26283 1 26284 1 26287 1 26291 1 26298 1 26304 1 26311 1 26322 1 26324 1 26327 1 26328 1 26330 1 26335 1 26338 1 26347 1 26348 1 26354 1 26356 1 26357 1 26364 1 26366 1 26368 1 26369 1 26386 1 26387 1 26408 1 26412 1 26425 1 26428 1 26432 1 26437 1 26444 1 26447 1 26448 1 26449 1 26454 1 26461 1 26463 1 26473 1 26476 1 26495 1 26496 1 26500 1 26503 1 26511 1 26513 1 26514 1 26519 1 26522 1 26533 1 26534 1 26543 1 26548 1 26557 1 26558 1 26568 1 26569 1 26574 1 26578 1 26586 1 26629 1 26631 1 26633 1 26635 1 26640 1 26642 1 26644 1 26648 1 26666 1 26669 1 26670 1 26677 1 26678 1 26683 1 26694 1 26701 1 26702 1 26706 1 26719 1 26721 1 26733 1 26734 1 26739 1 26760 1 26762 1 26764 1 26785 1 26786 1 26790 1 26799 1 26804 1 26808 1 26812 1 26813 1 26830 1 26833 1 26836 1 26846 1 26852 1 26858 1 26877 1 26881 1 26910 1 26912 1 26913 1 26915 1 26922 1 26924 1 26935 1 26949 1 26954 1 26959 1 26969 1 26971 1 26972 1 26979 1 26983 1 26988 1 26998 1 27009 1 27022 1 27025 1 27035 1 27041 1 27042 1 27043 1 27052 1 27065 1 27075 1 27078 1 27079 1 27093 1 27104 1 27115 1 27143 1 27147 1 27149 1 27151 1 27154 1 27158 1 27161 1 27163 1 27177 1 27178 1 27180 1 27186 1 27196 1 27213 1 27219 1 27220 1 27231 1 27233 1 27235 1 27236 1 27240 1 27245 1 27257 1 27258 1 27263 1 27269 1 27280 1 27281 1 27282 1 27283 1 27284 1 27285 1 27290 1 27293 1 27305 1 27315 1 27329 1 27340 1 27342 1 27351 1 27355 1 27361 1 27364 1 27369 1 27372 1 27377 1 27389 1 27392 1 27395 1 27399 1 27406 1 27409 1 27413 1 27415 1 27418 1 27420 1 27425 1 27426 1 27427 1 27443 1 27445 1 27447 1 27449 1 27464 1 27471 1 27475 1 27481 1 27489 1 27503 1 27530 1 27532 1 27537 1 27541 1 27543 1 27544 1 27549 1 27550 1 27552 1 27554 1 27556 1 27560 1 27565 1 27583 1 27587 1 27590 1 27599 1 27601 1 27607 1 27617 1 27621 1 27626 1 27628 1 27629 1 27630 1 27634 1 27643 1 27646 1 27647 1 27648 1 27660 1 27663 1 27680 1 27683 1 27685 1 27691 1 27694 1 27718 1 27728 1 27738 1 27740 1 27741 1 27751 1 27752 1 27757 1 27758 1 27762 1 27766 1 27775 1 27778 1 27780 1 27781 1 27788 1 27795 1 27796 1 27805 1 27812 1 27815 1 27839 1 27840 1 27845 1 27852 1 27858 1 27865 1 27871 1 27881 1 27885 1 27897 1 27901 1 27906 1 27909 1 27910 1 27917 1 27930 1 27949 1 27950 1 27953 1 27958 1 27964 1 27968 1 27972 1 27973 1 27975 1 27996 1 28000 1 28001 1 28019 1 28022 1 28029 1 28042 1 28043 1 28048 1 28049 1 28053 1 28059 1 28060 1 28064 1 28075 1 28078 1 28079 1 28081 1 28085 1 28093 1 28098 1 28103 1 28106 1 28107 1 28109 1 28116 1 28121 1 28124 1 28133 1 28136 1 28137 1 28141 1 28143 1 28148 1 28159 1 28168 1 28174 1 28175 1 28181 1 28192 1 28194 1 28207 1 28212 1 28215 1 28216 1 28217 1 28218 1 28223 1 28224 1 28225 1 28229 1 28232 1 28235 1 28237 1 28243 1 28255 1 28261 1 28263 1 28264 1 28274 1 28303 1 28320 1 28329 1 28330 1 28337 1 28338 1 28341 1 28342 1 28344 1 28346 1 28351 1 28353 1 28354 1 28358 1 28360 1 28366 1 28369 1 28379 1 28387 1 28407 1 28408 1 28416 1 28445 1 28455 1 28463 1 28464 1 28473 1 28480 1 28483 1 28484 1 28490 1 28495 1 28503 1 28505 1 28506 1 28507 1 28510 1 28512 1 28513 1 28516 1 28517 1 28519 1 28522 1 28524 1 28536 1 28539 1 28541 1 28542 1 28545 1 28556 1 28561 1 28567 1 28573 1 28574 1 28581 1 28582 1 28589 1 28599 1 28605 1 28611 1 28615 1 28621 1 28634 1 28636 1 28638 1 28645 1 28663 1 28667 1 28669 1 28680 1 28682 1 28684 1 28686 1 28687 1 28689 1 28691 1 28697 1 28700 1 28703 1 28715 1 28718 1 28728 1 28740 1 28761 1 28763 1 28774 1 28780 1 28781 1 28782 1 28787 1 28788 1 28796 1 28797 1 28810 1 28811 1 28815 1 28830 1 28832 1 28833 1 28851 1 28853 1 28857 1 28871 1 28873 1 28876 1 28883 1 28887 1 28890 1 28892 1 28895 1 28899 1 28906 1 28912 1 28914 1 28916 1 28931 1 28944 1 28950 1 28954 1 28960 1 28965 1 28971 1 28975 1 28979 1 28996 1 29011 1 29014 1 29020 1 29026 1 29029 1 29038 1 29042 1 29046 1 29053 1 29061 1 29070 1 29073 1 29076 1 29079 1 29084 1 29095 1 29105 1 29107 1 29113 1 29118 1 29123 1 29136 1 29150 1 29164 1 29165 1 29168 1 29174 1 29181 1 29186 1 29188 1 29195 1 29198 1 29201 1 29208 1 29214 1 29219 1 29228 1 29240 1 29254 1 29257 1 29258 1 29263 1 29278 1 29280 1 29283 1 29293 1 29310 1 29312 1 29329 1 29331 1 29337 1 29348 1 29353 1 29358 1 29363 1 29375 1 29384 1 29391 1 29392 1 29399 1 29402 1 29407 1 29409 1 29419 1 29434 1 29437 1 29439 1 29443 1 29447 1 29456 1 29461 1 29466 1 29467 1 29469 1 29482 1 29485 1 29502 1 29504 1 29513 1 29523 1 29529 1 29533 1 29537 1 29538 1 29540 1 29548 1 29564 1 29569 1 29577 1 29579 1 29582 1 29587 1 29596 1 29610 1 29626 1 29627 1 29634 1 29635 1 29641 1 29646 1 29650 1 29657 1 29658 1 29659 1 29662 1 29672 1 29676 1 29677 1 29684 1 29686 1 29689 1 29690 1 29691 1 29697 1 29710 1 29712 1 29717 1 29721 1 29735 1 29736 1 29740 1 29741 1 29742 1 29748 1 29751 1 29756 1 29759 1 29764 1 29777 1 29786 1 29802 1 29803 1 29810 1 29817 1 29819 1 29829 1 29835 1 29838 1 29841 1 29842 1 29844 1 29847 1 29849 1 29852 1 29856 1 29864 1 29870 1 29879 1 29880 1 29882 1 29884 1 29885 1 29886 1 29887 1 29896 1 29912 1 29927 1 29931 1 29935 1 29938 1 29941 1 29945 1 29949 1 29953 1 29957 1 29960 1 29963 1 29971 1 29973 1 29974 1 29975 1 29977 1 29988 1 29992 1 29999 1 30002 1 30004 1 30009 1 30011 1 30012 1 30034 1 30037 1 30040 1 30044 1 30047 1 30048 1 30053 1 30057 1 30062 1 30064 1 30076 1 30088 1 30091 1 30093 1 30106 1 30111 1 30117 1 30132 1 30133 1 30134 1 30135 1 30136 1 30138 1 30139 1 30142 1 30146 1 30155 1 30157 1 30158 1 30165 1 30175 1 30182 1 30183 1 30185 1 30192 1 30194 1 30200 1 30205 1 30208 1 30217 1 30230 1 30248 1 30262 1 30263 1 30271 1 30286 1 30298 1 30300 1 30304 1 30306 1 30307 1 30308 1 30309 1 30318 1 30325 1 30329 1 30333 1 30376 1 30383 1 30387 1 30388 1 30392 1 30401 1 30408 1 30409 1 30417 1 30419 1 30424 1 30425 1 30426 1 30428 1 30431 1 30438 1 30443 1 30447 1 30448 1 30451 1 30457 1 30459 1 30469 1 30473 1 30480 1 30482 1 30484 1 30486 1 30490 1 30504 1 30505 1 30526 1 30529 1 30536 1 30542 1 30547 1 30556 1 30559 1 30560 1 30562 1 30567 1 30570 1 30571 1 30573 1 30589 1 30591 1 30594 1 30598 1 30600 1 30602 1 30611 1 30616 1 30632 1 30652 1 30669 1 30676 1 30679 1 30681 1 30686 1 30687 1 30701 1 30705 1 30709 1 30715 1 30719 1 30731 1 30734 1 30736 1 30749 1 30757 1 30770 1 30777 1 30787 1 30790 1 30795 1 30798 1 30808 1 30811 1 30835 1 30837 1 30839 1 30842 1 30855 1 30867 1 30872 1 30878 1 30883 1 30890 1 30891 1 30896 1 30898 1 30904 1 30922 1 30924 1 30926 1 30927 1 30932 1 30934 1 30941 1 30950 1 30952 1 30964 1 30965 1 30967 1 30971 1 30981 1 30989 1 31002 1 31005 1 31006 1 31007 1 31008 1 31013 1 31015 1 31017 1 31019 1 31020 1 31034 1 31038 1 31050 1 31054 1 31059 1 31068 1 31071 1 31077 1 31085 1 31088 1 31092 1 31096 1 31111 1 31125 1 31129 1 31132 1 31133 1 31143 1 31150 1 31153 1 31156 1 31157 1 31158 1 31168 1 31171 1 31180 1 31181 1 31185 1 31188 1 31195 1 31201 1 31203 1 31205 1 31209 1 31211 1 31213 1 31219 1 31226 1 31234 1 31235 1 31246 1 31248 1 31257 1 31266 1 31273 1 31274 1 31279 1 31292 1 31302 1 31305 1 31308 1 31317 1 31320 1 31321 1 31332 1 31343 1 31347 1 31350 1 31352 1 31357 1 31358 1 31359 1 31364 1 31383 1 31396 1 31400 1 31406 1 31409 1 31411 1 31427 1 31429 1 31436 1 31439 1 31440 1 31441 1 31460 1 31465 1 31471 1 31474 1 31478 1 31479 1 31487 1 31495 1 31497 1 31500 1 31512 1 31519 1 31521 1 31530 1 31536 1 31563 1 31567 1 31576 1 31583 1 31584 1 31592 1 31595 1 31599 1 31605 1 31610 1 31618 1 31625 1 31626 1 31627 1 31634 1 31635 1 31639 1 31640 1 31655 1 31657 1 31659 1 31663 1 31666 1 31675 1 31678 1 31679 1 31680 1 31683 1 31701 1 31711 1 31723 1 31732 1 31733 1 31734 1 31735 1 31755 1 31763 1 31764 1 31766 1 31767 1 31775 1 31780 1 31787 1 31794 1 31798 1 31802 1 31806 1 31812 1 31820 1 31822 1 31823 1 31833 1 31834 1 31841 1 31850 1 31856 1 31863 1 31869 1 31871 1 31875 1 31883 1 31888 1 31897 1 31898 1 31900 1 31918 1 31923 1 31924 1 31926 1 31939 1 31941 1 31962 1 31982 1 31989 1 31990 1 31994 1 31998 1 32003 1 32005 1 32016 1 32017 1 32026 1 32038 1 32043 1 32046 1 32049 1 32057 1 32059 1 32063 1 32077 1 32081 1 32102 1 32105 1 32106 1 32108 1 32115 1 32119 1 32131 1 32135 1 32150 1 32154 1 32159 1 32161 1 32164 1 32181 1 32186 1 32187 1 32200 1 32205 1 32206 1 32211 1 32214 1 32219 1 32226 1 32227 1 32229 1 32253 1 32260 1 32264 1 32267 1 32272 1 32279 1 32286 1 32300 1 32304 1 32305 1 32313 1 32316 1 32328 1 32329 1 32334 1 32344 1 32355 1 32361 1 32373 1 32386 1 32388 1 32397 1 32403 1 32405 1 32407 1 32409 1 32417 1 32419 1 32422 1 32430 1 32433 1 32434 1 32435 1 32462 1 32469 1 32471 1 32472 1 32476 1 32477 1 32481 1 32483 1 32491 1 32497 1 32498 1 32504 1 32517 1 32520 1 32521 1 32523 1 32537 1 32545 1 32562 1 32570 1 32574 1 32575 1 32580 1 32581 1 32589 1 32593 1 32598 1 32602 1 32603 1 32605 1 32610 1 32621 1 32623 1 32625 1 32629 1 32636 1 32638 1 32647 1 32651 1 32653 1 32667 1 32669 1 32675 1 32683 1 32690 1 32697 1 32698 1 32709 1 32710 1 32713 1 32729 1 32742 1 32746 1 32755 1 32762 1 32788 1 32800 1 32805 1 32814 1 32817 1 32818 1 32830 1 32831 1 32832 1 32839 1 32847 1 32848 1 32854 1 32863 1 32865 1 32869 1 32871 1 32872 1 32873 1 32880 1 32882 1 32884 1 32885 1 32897 1 32903 1 32908 1 32911 1 32914 1 32915 1 32916 1 32917 1 32939 1 32940 1 32947 1 32950 1 32965 1 32969 1 32970 1 32973 1 32978 1 32995 1 33003 1 33008 1 33015 1 33021 1 33026 1 33030 1 33035 1 33040 1 33049 1 33057 1 33058 1 33059 1 33063 1 33069 1 33075 1 33083 1 33089 1 33092 1 33100 1 33104 1 33107 1 33108 1 33109 1 33119 1 33132 1 33148 1 33151 1 33163 1 33165 1 33181 1 33182 1 33183 1 33184 1 33189 1 33190 1 33192 1 33199 1 33200 1 33216 1 33220 1 33222 1 33223 1 33229 1 33232 1 33237 1 33246 1 33248 1 33253 1 33260 1 33262 1 33268 1 33273 1 33274 1 33288 1 33305 1 33306 1 33314 1 33317 1 33318 1 33327 1 33329 1 33338 1 33341 1 33361 1 33363 1 33372 1 33373 1 33383 1 33384 1 33386 1 33406 1 33407 1 33410 1 33420 1 33426 1 33431 1 33434 1 33436 1 33442 1 33450 1 33458 1 33472 1 33483 1 33496 1 33497 1 33501 1 33504 1 33511 1 33512 1 33514 1 33521 1 33526 1 33532 1 33535 1 33537 1 33538 1 33548 1 33550 1 33553 1 33565 1 33570 1 33580 1 33584 1 33589 1 33590 1 33603 1 33607 1 33615 1 33616 1 33617 1 33618 1 33621 1 33632 1 33636 1 33639 1 33641 1 33642 1 33646 1 33650 1 33658 1 33666 1 33683 1 33686 1 33688 1 33690 1 33698 1 33702 1 33711 1 33730 1 33734 1 33742 1 33743 1 33748 1 33753 1 33758 1 33760 1 33767 1 33775 1 33779 1 33783 1 33786 1 33788 1 33796 1 33799 1 33806 1 33811 1 33849 1 33858 1 33861 1 33865 1 33867 1 33868 1 33872 1 33874 1 33877 1 33878 1 33880 1 33882 1 33888 1 33897 1 33899 1 33902 1 33914 1 33921 1 33924 1 33928 1 33940 1 33944 1 33949 1 33951 1 33961 1 33962 1 33965 1 33969 1 33971 1 33978 1 33984 1 33992 1 33996 1 33999 1 34000 1 34009 1 34012 1 34016 1 34031 1 34053 1 34054 1 34063 1 34066 1 34067 1 34071 1 34075 1 34077 1 34081 1 34082 1 34083 1 34090 1 34092 1 34095 1 34098 1 34100 1 34108 1 34109 1 34110 1 34112 1 34116 1 34129 1 34137 1 34142 1 34150 1 34163 1 34165 1 34176 1 34177 1 34182 1 34186 1 34192 1 34235 1 34236 1 34252 1 34253 1 34257 1 34277 1 34289 1 34294 1 34299 1 34301 1 34302 1 34310 1 34311 1 34314 1 34319 1 34330 1 34336 1 34346 1 34363 1 34365 1 34367 1 34369 1 34379 1 34391 1 34394 1 34412 1 34413 1 34414 1 34416 1 34422 1 34429 1 34445 1 34453 1 34458 1 34463 1 34465 1 34468 1 34476 1 34485 1 34490 1 34492 1 34501 1 34507 1 34512 1 34519 1 34525 1 34529 1 34534 1 34539 1 34544 1 34548 1 34552 1 34554 1 34558 1 34561 1 34568 1 34572 1 34574 1 34576 1 34578 1 34582 1 34589 1 34592 1 34598 1 34600 1 34606 1 34618 1 34632 1 34642 1 34643 1 34661 1 34666 1 34681 1 34691 1 34694 1 34695 1 34697 1 34700 1 34711 1 34716 1 34719 1 34725 1 34726 1 34742 1 34743 1 34748 1 34759 1 34773 1 34774 1 34780 1 34783 1 34789 1 34791 1 34803 1 34804 1 34807 1 34808 1 34826 1 34833 1 34848 1 34858 1 34861 1 34885 1 34888 1 34892 1 34898 1 34903 1 34904 1 34907 1 34908 1 34926 1 34934 1 34940 1 34942 1 34953 1 34991 1 34994 1 34995 1 34996 1 35004 1 35008 1 35012 1 35021 1 35022 1 35026 1 35028 1 35032 1 35035 1 35040 1 35050 1 35055 1 35059 1 35061 1 35064 1 35065 1 35076 1 35078 1 35080 1 35083 1 35087 1 35093 1 35094 1 35096 1 35104 1 35117 1 35118 1 35123 1 35138 1 35143 1 35148 1 35149 1 35155 1 35162 1 35167 1 35172 1 35177 1 35181 1 35205 1 35214 1 35217 1 35235 1 35238 1 35239 1 35244 1 35245 1 35266 1 35269 1 35287 1 35294 1 35307 1 35308 1 35311 1 35321 1 35324 1 35328 1 35331 1 35337 1 35339 1 35345 1 35346 1 35347 1 35361 1 35365 1 35374 1 35375 1 35382 1 35387 1 35392 1 35396 1 35397 1 35399 1 35400 1 35401 1 35418 1 35423 1 35425 1 35427 1 35439 1 35440 1 35441 1 35455 1 35466 1 35468 1 35469 1 35470 1 35473 1 35475 1 35481 1 35483 1 35484 1 35486 1 35490 1 35491 1 35502 1 35506 1 35507 1 35514 1 35518 1 35524 1 35528 1 35539 1 35541 1 35549 1 35560 1 35574 1 35580 1 35581 1 35595 1 35597 1 35602 1 35606 1 35618 1 35621 1 35624 1 35628 1 35633 1 35653 1 35666 1 35673 1 35674 1 35678 1 35679 1 35690 1 35694 1 35698 1 35699 1 35705 1 35708 1 35709 1 35710 1 35712 1 35713 1 35720 1 35763 1 35766 1 35768 1 35772 1 35781 1 35786 1 35794 1 35803 1 35806 1 35814 1 35827 1 35829 1 35832 1 35841 1 35857 1 35861 1 35863 1 35877 1 35879 1 35880 1 35883 1 35885 1 35895 1 35900 1 35902 1 35903 1 35905 1 35909 1 35917 1 35921 1 35930 1 35932 1 35937 1 35941 1 35947 1 35948 1 35954 1 35968 1 35969 1 35973 1 35979 1 35984 1 35985 1 36001 1 36016 1 36030 1 36056 1 36058 1 36059 1 36063 1 36071 1 36073 1 36079 1 36084 1 36087 1 36091 1 36094 1 36102 1 36103 1 36113 1 36122 1 36127 1 36133 1 36135 1 36141 1 36144 1 36150 1 36152 1 36163 1 36164 1 36165 1 36178 1 36187 1 36189 1 36192 1 36195 1 36199 1 36201 1 36204 1 36208 1 36216 1 36225 1 36226 1 36230 1 36232 1 36239 1 36243 1 36244 1 36246 1 36249 1 36251 1 36253 1 36255 1 36262 1 36263 1 36266 1 36274 1 36290 1 36291 1 36299 1 36302 1 36303 1 36316 1 36322 1 36325 1 36326 1 36328 1 36342 1 36353 1 36363 1 36371 1 36373 1 36374 1 36376 1 36380 1 36382 1 36390 1 36395 1 36403 1 36409 1 36411 1 36418 1 36422 1 36426 1 36434 1 36437 1 36438 1 36439 1 36447 1 36470 1 36471 1 36472 1 36483 1 36484 1 36488 1 36489 1 36503 1 36509 1 36510 1 36519 1 36523 1 36525 1 36527 1 36534 1 36535 1 36536 1 36542 1 36561 1 36563 1 36570 1 36571 1 36602 1 36605 1 36607 1 36610 1 36617 1 36618 1 36623 1 36627 1 36651 1 36657 1 36669 1 36693 1 36698 1 36701 1 36726 1 36734 1 36739 1 36740 1 36757 1 36766 1 36774 1 36778 1 36787 1 36791 1 36798 1 36805 1 36810 1 36813 1 36816 1 36822 1 36824 1 36838 1 36841 1 36844 1 36850 1 36857 1 36861 1 36866 1 36873 1 36875 1 36878 1 36882 1 36884 1 36897 1 36898 1 36899 1 36900 1 36911 1 36913 1 36914 1 36917 1 36937 1 36945 1 36953 1 36958 1 36959 1 36962 1 36966 1 36967 1 36976 1 36982 1 36983 1 36988 1 36994 1 37001 1 37012 1 37016 1 37020 1 37024 1 37029 1 37044 1 37046 1 37047 1 37051 1 37065 1 37069 1 37085 1 37086 1 37095 1 37101 1 37106 1 37112 1 37120 1 37124 1 37132 1 37135 1 37141 1 37146 1 37154 1 37157 1 37162 1 37167 1 37184 1 37193 1 37205 1 37209 1 37213 1 37221 1 37225 1 37227 1 37229 1 37230 1 37247 1 37256 1 37273 1 37279 1 37286 1 37295 1 37306 1 37308 1 37321 1 37338 1 37344 1 37347 1 37364 1 37365 1 37368 1 37370 1 37379 1 37383 1 37397 1 37398 1 37406 1 37407 1 37413 1 37442 1 37443 1 37444 1 37452 1 37454 1 37463 1 37467 1 37469 1 37470 1 37477 1 37485 1 37488 1 37502 1 37507 1 37518 1 37525 1 37531 1 37534 1 37537 1 37547 1 37553 1 37556 1 37578 1 37593 1 37596 1 37598 1 37602 1 37613 1 37620 1 37622 1 37625 1 37633 1 37634 1 37639 1 37646 1 37649 1 37650 1 37655 1 37658 1 37663 1 37666 1 37673 1 37676 1 37678 1 37683 1 37701 1 37705 1 37709 1 37718 1 37719 1 37720 1 37723 1 37750 1 37768 1 37774 1 37775 1 37777 1 37781 1 37782 1 37787 1 37789 1 37798 1 37802 1 37836 1 37846 1 37849 1 37850 1 37853 1 37859 1 37860 1 37862 1 37876 1 37879 1 37882 1 37896 1 37899 1 37901 1 37906 1 37907 1 37919 1 37933 1 37936 1 37940 1 37941 1 37945 1 37947 1 37952 1 37958 1 37961 1 37972 1 37984 1 37985 1 37987 1 37994 1 38002 1 38004 1 38009 1 38016 1 38021 1 38043 1 38046 1 38047 1 38049 1 38065 1 38068 1 38070 1 38075 1 38076 1 38090 1 38096 1 38099 1 38103 1 38108 1 38112 1 38134 1 38137 1 38143 1 38149 1 38152 1 38159 1 38162 1 38168 1 38180 1 38183 1 38186 1 38205 1 38209 1 38224 1 38228 1 38230 1 38243 1 38246 1 38250 1 38252 1 38255 1 38265 1 38268 1 38271 1 38273 1 38274 1 38276 1 38281 1 38295 1 38296 1 38300 1 38301 1 38309 1 38312 1 38313 1 38317 1 38318 1 38320 1 38326 1 38341 1 38344 1 38347 1 38349 1 38354 1 38361 1 38373 1 38376 1 38403 1 38409 1 38433 1 38434 1 38442 1 38447 1 38451 1 38468 1 38472 1 38475 1 38482 1 38484 1 38493 1 38498 1 38499 1 38504 1 38508 1 38509 1 38512 1 38519 1 38521 1 38523 1 38525 1 38541 1 38545 1 38550 1 38554 1 38559 1 38566 1 38568 1 38571 1 38574 1 38577 1 38578 1 38579 1 38585 1 38592 1 38593 1 38594 1 38612 1 38613 1 38615 1 38635 1 38637 1 38640 1 38646 1 38647 1 38654 1 38659 1 38660 1 38669 1 38674 1 38677 1 38680 1 38684 1 38692 1 38693 1 38700 1 38703 1 38718 1 38724 1 38735 1 38738 1 38744 1 38747 1 38748 1 38749 1 38759 1 38766 1 38783 1 38787 1 38794 1 38795 1 38796 1 38800 1 38807 1 38808 1 38811 1 38812 1 38815 1 38817 1 38842 1 38847 1 38851 1 38852 1 38855 1 38859 1 38860 1 38866 1 38867 1 38876 1 38882 1 38884 1 38891 1 38892 1 38895 1 38910 1 38916 1 38920 1 38922 1 38924 1 38928 1 38932 1 38945 1 38956 1 38960 1 38972 1 38973 1 38974 1 38975 1 38993 1 39004 1 39005 1 39009 1 39011 1 39015 1 39016 1 39019 1 39022 1 39024 1 39026 1 39030 1 39043 1 39047 1 39055 1 39067 1 39069 1 39083 1 39100 1 39104 1 39105 1 39113 1 39126 1 39134 1 39138 1 39140 1 39141 1 39143 1 39147 1 39148 1 39162 1 39179 1 39188 1 39193 1 39194 1 39197 1 39207 1 39221 1 39226 1 39232 1 39233 1 39235 1 39242 1 39249 1 39250 1 39251 1 39255 1 39259 1 39262 1 39265 1 39270 1 39272 1 39282 1 39284 1 39289 1 39294 1 39297 1 39298 1 39299 1 39307 1 39310 1 39322 1 39328 1 39338 1 39340 1 39345 1 39348 1 39349 1 39360 1 39389 1 39397 1 39406 1 39409 1 39417 1 39423 1 39424 1 39425 1 39426 1 39432 1 39442 1 39443 1 39446 1 39464 1 39465 1 39468 1 39469 1 39473 1 39475 1 39478 1 39488 1 39491 1 39493 1 39499 1 39508 1 39516 1 39525 1 39530 1 39537 1 39543 1 39544 1 39546 1 39547 1 39549 1 39554 1 39556 1 39565 1 39566 1 39584 1 39592 1 39595 1 39600 1 39602 1 39606 1 39607 1 39610 1 39615 1 39635 1 39636 1 39639 1 39649 1 39655 1 39660 1 39661 1 39662 1 39667 1 39677 1 39678 1 39685 1 39693 1 39696 1 39708 1 39721 1 39726 1 39728 1 39731 1 39739 1 39742 1 39749 1 39753 1 39759 1 39767 1 39769 1 39777 1 39785 1 39795 1 39799 1 39801 1 39805 1 39816 1 39819 1 39823 1 39828 1 39834 1 39835 1 39838 1 39846 1 39849 1 39852 1 39856 1 39859 1 39867 1 39877 1 39878 1 39879 1 39892 1 39896 1 39908 1 39919 1 39925 1 39933 1 39935 1 39937 1 39942 1 39944 1 39948 1 39949 1 39952 1 39966 1 39975 1 39983 1 40005 1 40011 1 40014 1 40019 1 40046 1 40049 1 40052 1 40054 1 40055 1 40061 1 40063 1 40065 1 40069 1 40074 1 40080 1 40084 1 40087 1 40088 1 40089 1 40093 1 40102 1 40105 1 40114 1 40122 1 40126 1 40131 1 40132 1 40134 1 40137 1 40139 1 40141 1 40144 1 40148 1 40152 1 40158 1 40161 1 40174 1 40175 1 40178 1 40186 1 40197 1 40198 1 40201 1 40204 1 40218 1 40227 1 40237 1 40238 1 40242 1 40245 1 40246 1 40249 1 40253 1 40257 1 40264 1 40271 1 40272 1 40276 1 40284 1 40290 1 40294 1 40295 1 40299 1 40303 1 40306 1 40309 1 40310 1 40313 1 40324 1 40327 1 40331 1 40335 1 40349 1 40363 1 40365 1 40382 1 40383 1 40384 1 40393 1 40402 1 40408 1 40411 1 40414 1 40419 1 40424 1 40428 1 40441 1 40442 1 40451 1 40452 1 40461 1 40468 1 40476 1 40477 1 40486 1 40487 1 40488 1 40503 1 40513 1 40515 1 40516 1 40526 1 40528 1 40540 1 40545 1 40552 1 40556 1 40562 1 40565 1 40566 1 40568 1 40584 1 40610 1 40612 1 40621 1 40622 1 40624 1 40638 1 40642 1 40644 1 40648 1 40651 1 40657 1 40663 1 40665 1 40677 1 40682 1 40695 1 40710 1 40711 1 40720 1 40721 1 40722 1 40725 1 40726 1 40731 1 40734 1 40736 1 40740 1 40753 1 40754 1 40759 1 40764 1 40775 1 40783 1 40789 1 40800 1 40801 1 40818 1 40827 1 40828 1 40835 1 40839 1 40841 1 40843 1 40860 1 40869 1 40874 1 40876 1 40880 1 40891 1 40900 1 40908 1 40909 1 40916 1 40918 1 40921 1 40924 1 40929 1 40937 1 40938 1 40941 1 40944 1 40945 1 40952 1 40955 1 40976 1 40983 1 40989 1 40991 1 41004 1 41011 1 41012 1 41019 1 41023 1 41025 1 41041 1 41043 1 41058 1 41059 1 41063 1 41076 1 41078 1 41085 1 41090 1 41097 1 41104 1 41134 1 41137 1 41140 1 41144 1 41146 1 41149 1 41167 1 41177 1 41181 1 41196 1 41197 1 41199 1 41204 1 41206 1 41208 1 41215 1 41219 1 41226 1 41234 1 41235 1 41242 1 41267 1 41269 1 41271 1 41272 1 41273 1 41284 1 41287 1 41295 1 41298 1 41321 1 41324 1 41325 1 41332 1 41334 1 41337 1 41338 1 41340 1 41354 1 41367 1 41376 1 41382 1 41385 1 41394 1 41401 1 41405 1 41408 1 41411 1 41413 1 41422 1 41434 1 41435 1 41440 1 41447 1 41451 1 41453 1 41455 1 41457 1 41463 1 41486 1 41496 1 41500 1 41502 1 41509 1 41515 1 41519 1 41525 1 41536 1 41545 1 41552 1 41553 1 41571 1 41580 1 41585 1 41587 1 41597 1 41602 1 41605 1 41609 1 41612 1 41613 1 41619 1 41626 1 41636 1 41640 1 41656 1 41667 1 41672 1 41673 1 41676 1 41680 1 41685 1 41688 1 41690 1 41691 1 41697 1 41701 1 41704 1 41709 1 41721 1 41724 1 41747 1 41751 1 41752 1 41759 1 41767 1 41779 1 41789 1 41796 1 41803 1 41816 1 41819 1 41823 1 41828 1 41849 1 41853 1 41863 1 41871 1 41877 1 41880 1 41897 1 41898 1 41902 1 41906 1 41909 1 41910 1 41911 1 41913 1 41922 1 41928 1 41938 1 41941 1 41949 1 41953 1 41957 1 41958 1 41972 1 41986 1 41988 1 41997 1 41998 1 42003 1 42010 1 42017 1 42020 1 42027 1 42036 1 42041 1 42051 1 42062 1 42076 1 42078 1 42090 1 42093 1 42097 1 42113 1 42117 1 42129 1 42142 1 42146 1 42159 1 42165 1 42186 1 42200 1 42209 1 42219 1 42223 1 42225 1 42240 1 42245 1 42247 1 42249 1 42260 1 42262 1 42271 1 42274 1 42279 1 42280 1 42285 1 42287 1 42291 1 42297 1 42305 1 42314 1 42315 1 42324 1 42327 1 42334 1 42343 1 42346 1 42353 1 42359 1 42362 1 42372 1 42373 1 42377 1 42381 1 42392 1 42399 1 42400 1 42402 1 42406 1 42407 1 42455 1 42471 1 42479 1 42489 1 42490 1 42504 1 42505 1 42507 1 42512 1 42521 1 42528 1 42532 1 42535 1 42543 1 42550 1 42553 1 42554 1 42555 1 42559 1 42565 1 42572 1 42580 1 42584 1 42587 1 42593 1 42597 1 42600 1 42601 1 42610 1 42616 1 42624 1 42647 1 42658 1 42661 1 42663 1 42664 1 42665 1 42671 1 42676 1 42677 1 42684 1 42696 1 42700 1 42701 1 42707 1 42709 1 42710 1 42711 1 42718 1 42719 1 42724 1 42731 1 42732 1 42737 1 42763 1 42764 1 42771 1 42777 1 42799 1 42809 1 42812 1 42826 1 42828 1 42831 1 42832 1 42845 1 42852 1 42885 1 42888 1 42893 1 42896 1 42905 1 42909 1 42911 1 42923 1 42927 1 42930 1 42933 1 42936 1 42937 1 42940 1 42944 1 42949 1 42950 1 42955 1 42963 1 42965 1 42969 1 42974 1 42993 1 42994 1 43026 1 43034 1 43044 1 43048 1 43057 1 43058 1 43060 1 43069 1 43079 1 43087 1 43092 1 43095 1 43101 1 43104 1 43107 1 43108 1 43109 1 43117 1 43126 1 43132 1 43147 1 43150 1 43157 1 43166 1 43167 1 43169 1 43171 1 43173 1 43177 1 43183 1 43188 1 43190 1 43192 1 43197 1 43201 1 43203 1 43219 1 43229 1 43230 1 43238 1 43240 1 43246 1 43249 1 43288 1 43292 1 43294 1 43302 1 43322 1 43341 1 43342 1 43351 1 43352 1 43353 1 43360 1 43362 1 43364 1 43373 1 43378 1 43386 1 43390 1 43393 1 43403 1 43408 1 43414 1 43419 1 43440 1 43445 1 43462 1 43475 1 43481 1 43485 1 43513 1 43524 1 43552 1 43556 1 43557 1 43566 1 43589 1 43593 1 43599 1 43612 1 43614 1 43623 1 43626 1 43628 1 43634 1 43646 1 43660 1 43662 1 43663 1 43665 1 43674 1 43677 1 43682 1 43688 1 43690 1 43694 1 43695 1 43702 1 43703 1 43705 1 43715 1 43719 1 43724 1 43730 1 43734 1 43747 1 43750 1 43757 1 43767 1 43780 1 43782 1 43792 1 43796 1 43802 1 43805 1 43809 1 43811 1 43812 1 43817 1 43822 1 43832 1 43834 1 43847 1 43852 1 43857 1 43858 1 43901 1 43903 1 43906 1 43910 1 43924 1 43938 1 43941 1 43949 1 43951 1 43959 1 43960 1 43972 1 43978 1 43980 1 43982 1 43986 1 43990 1 43996 1 43999 1 44012 1 44014 1 44022 1 44033 1 44038 1 44040 1 44061 1 44090 1 44092 1 44098 1 44100 1 44116 1 44124 1 44128 1 44135 1 44136 1 44139 1 44147 1 44150 1 44151 1 44152 1 44153 1 44162 1 44170 1 44192 1 44194 1 44200 1 44207 1 44212 1 44223 1 44226 1 44250 1 44251 1 44271 1 44272 1 44276 1 44281 1 44286 1 44287 1 44292 1 44294 1 44304 1 44306 1 44317 1 44323 1 44324 1 44326 1 44330 1 44338 1 44343 1 44348 1 44360 1 44369 1 44373 1 44374 1 44375 1 44376 1 44377 1 44381 1 44385 1 44393 1 44400 1 44411 1 44418 1 44428 1 44435 1 44447 1 44455 1 44457 1 44459 1 44460 1 44466 1 44469 1 44472 1 44486 1 44498 1 44513 1 44522 1 44527 1 44532 1 44535 1 44539 1 44545 1 44546 1 44555 1 44561 1 44579 1 44581 1 44583 1 44584 1 44592 1 44629 1 44639 1 44643 1 44657 1 44666 1 44682 1 44683 1 44687 1 44692 1 44705 1 44712 1 44717 1 44726 1 44729 1 44730 1 44733 1 44738 1 44743 1 44746 1 44750 1 44760 1 44770 1 44772 1 44776 1 44777 1 44779 1 44780 1 44781 1 44785 1 44786 1 44812 1 44813 1 44814 1 44823 1 44830 1 44847 1 44850 1 44855 1 44856 1 44862 1 44865 1 44866 1 44874 1 44876 1 44879 1 44883 1 44889 1 44890 1 44891 1 44900 1 44901 1 44908 1 44909 1 44914 1 44931 1 44937 1 44942 1 44945 1 44947 1 44953 1 44957 1 44961 1 44962 1 44969 1 44970 1 44972 1 44977 1 44980 1 44983 1 44995 1 44997 1 45007 1 45009 1 45016 1 45020 1 45028 1 45029 1 45030 1 45035 1 45050 1 45061 1 45082 1 45092 1 45119 1 45130 1 45136 1 45139 1 45146 1 45148 1 45150 1 45158 1 45175 1 45179 1 45182 1 45191 1 45192 1 45210 1 45216 1 45217 1 45223 1 45230 1 45231 1 45234 1 45238 1 45245 1 45250 1 45263 1 45267 1 45276 1 45284 1 45289 1 45296 1 45300 1 45308 1 45320 1 45321 1 45322 1 45323 1 45331 1 45335 1 45346 1 45348 1 45350 1 45352 1 45357 1 45359 1 45364 1 45367 1 45382 1 45383 1 45385 1 45386 1 45389 1 45395 1 45399 1 45405 1 45414 1 45415 1 45426 1 45433 1 45434 1 45442 1 45444 1 45446 1 45450 1 45452 1 45454 1 45466 1 45479 1 45485 1 45490 1 45493 1 45495 1 45496 1 45499 1 45508 1 45509 1 45512 1 45514 1 45517 1 45522 1 45523 1 45527 1 45533 1 45538 1 45539 1 45542 1 45543 1 45544 1 45549 1 45551 1 45558 1 45569 1 45570 1 45575 1 45582 1 45583 1 45584 1 45591 1 45603 1 45606 1 45611 1 45616 1 45619 1 45621 1 45623 1 45624 1 45627 1 45632 1 45639 1 45645 1 45647 1 45654 1 45655 1 45662 1 45665 1 45666 1 45669 1 45679 1 45706 1 45713 1 45716 1 45718 1 45741 1 45743 1 45750 1 45753 1 45754 1 45761 1 45763 1 45774 1 45777 1 45781 1 45795 1 45802 1 45809 1 45834 1 45837 1 45841 1 45844 1 45851 1 45854 1 45871 1 45874 1 45887 1 45894 1 45899 1 45904 1 45927 1 45929 1 45931 1 45943 1 45960 1 45971 1 45973 1 45977 1 45979 1 45985 1 46005 1 46027 1 46029 1 46031 1 46032 1 46037 1 46038 1 46059 1 46062 1 46071 1 46073 1 46076 1 46096 1 46098 1 46099 1 46106 1 46108 1 46124 1 46130 1 46132 1 46135 1 46142 1 46144 1 46153 1 46160 1 46166 1 46169 1 46176 1 46195 1 46198 1 46203 1 46206 1 46209 1 46215 1 46219 1 46229 1 46231 1 46234 1 46236 1 46239 1 46241 1 46243 1 46251 1 46252 1 46254 1 46262 1 46263 1 46266 1 46273 1 46276 1 46282 1 46286 1 46292 1 46300 1 46303 1 46307 1 46308 1 46327 1 46332 1 46334 1 46339 1 46345 1 46357 1 46358 1 46372 1 46377 1 46380 1 46384 1 46390 1 46393 1 46399 1 46413 1 46421 1 46425 1 46435 1 46445 1 46451 1 46453 1 46469 1 46470 1 46474 1 46484 1 46488 1 46502 1 46507 1 46509 1 46513 1 46525 1 46527 1 46532 1 46559 1 46571 1 46577 1 46586 1 46588 1 46597 1 46598 1 46599 1 46608 1 46614 1 46620 1 46636 1 46640 1 46647 1 46652 1 46658 1 46659 1 46695 1 46697 1 46705 1 46712 1 46720 1 46725 1 46727 1 46730 1 46732 1 46733 1 46738 1 46742 1 46743 1 46754 1 46757 1 46762 1 46770 1 46777 1 46787 1 46796 1 46805 1 46806 1 46807 1 46814 1 46816 1 46822 1 46825 1 46837 1 46858 1 46862 1 46867 1 46875 1 46881 1 46888 1 46892 1 46897 1 46898 1 46904 1 46906 1 46910 1 46930 1 46941 1 46943 1 46951 1 46953 1 46954 1 46955 1 46960 1 46961 1 46970 1 46972 1 46976 1 46978 1 46982 1 46989 1 46993 1 47000 1 47004 1 47006 1 47012 1 47015 1 47022 1 47025 1 47049 1 47051 1 47055 1 47060 1 47071 1 47079 1 47085 1 47087 1 47089 1 47097 1 47103 1 47104 1 47109 1 47123 1 47127 1 47129 1 47131 1 47138 1 47161 1 47165 1 47169 1 47172 1 47175 1 47178 1 47202 1 47205 1 47226 1 47227 1 47236 1 47238 1 47239 1 47244 1 47245 1 47248 1 47255 1 47262 1 47272 1 47274 1 47288 1 47299 1 47309 1 47310 1 47314 1 47317 1 47336 1 47345 1 47348 1 47353 1 47355 1 47357 1 47364 1 47365 1 47368 1 47371 1 47375 1 47381 1 47387 1 47394 1 47395 1 47396 1 47398 1 47403 1 47408 1 47423 1 47425 1 47432 1 47436 1 47442 1 47443 1 47447 1 47454 1 47459 1 47461 1 47462 1 47476 1 47478 1 47480 1 47488 1 47494 1 47505 1 47519 1 47520 1 47527 1 47528 1 47529 1 47532 1 47541 1 47546 1 47554 1 47564 1 47565 1 47574 1 47576 1 47578 1 47586 1 47595 1 47607 1 47608 1 47611 1 47615 1 47620 1 47622 1 47625 1 47632 1 47639 1 47640 1 47646 1 47658 1 47659 1 47664 1 47667 1 47668 1 47669 1 47682 1 47689 1 47704 1 47708 1 47727 1 47731 1 47736 1 47737 1 47738 1 47740 1 47742 1 47751 1 47753 1 47754 1 47755 1 47767 1 47769 1 47771 1 47800 1 47812 1 47823 1 47824 1 47831 1 47843 1 47845 1 47848 1 47852 1 47854 1 47858 1 47867 1 47868 1 47871 1 47872 1 47880 1 47888 1 47889 1 47891 1 47898 1 47899 1 47900 1 47903 1 47906 1 47910 1 47915 1 47932 1 47933 1 47934 1 47935 1 47942 1 47946 1 47954 1 47958 1 47980 1 47981 1 47984 1 47992 1 47999 1 48001 1 48036 1 48055 1 48059 1 48063 1 48065 1 48070 1 48082 1 48086 1 48104 1 48106 1 48121 1 48140 1 48142 1 48145 1 48154 1 48161 1 48162 1 48180 1 48181 1 48187 1 48191 1 48194 1 48198 1 48203 1 48204 1 48207 1 48211 1 48216 1 48228 1 48229 1 48237 1 48246 1 48251 1 48256 1 48262 1 48268 1 48270 1 48275 1 48279 1 48280 1 48281 1 48282 1 48287 1 48289 1 48299 1 48302 1 48306 1 48307 1 48309 1 48312 1 48315 1 48329 1 48334 1 48336 1 48347 1 48350 1 48355 1 48357 1 48373 1 48381 1 48385 1 48388 1 48394 1 48395 1 48396 1 48408 1 48409 1 48411 1 48422 1 48426 1 48437 1 48441 1 48443 1 48449 1 48451 1 48452 1 48472 1 48476 1 48483 1 48493 1 48496 1 48511 1 48513 1 48514 1 48515 1 48522 1 48523 1 48527 1 48540 1 48547 1 48556 1 48558 1 48560 1 48567 1 48577 1 48579 1 48586 1 48599 1 48602 1 48605 1 48608 1 48613 1 48623 1 48626 1 48628 1 48631 1 48640 1 48641 1 48642 1 48648 1 48652 1 48670 1 48676 1 48681 1 48689 1 48707 1 48712 1 48717 1 48724 1 48727 1 48728 1 48735 1 48742 1 48746 1 48748 1 48751 1 48752 1 48753 1 48758 1 48762 1 48764 1 48765 1 48766 1 48776 1 48786 1 48797 1 48804 1 48816 1 48821 1 48843 1 48846 1 48848 1 48853 1 48855 1 48859 1 48868 1 48873 1 48874 1 48884 1 48888 1 48897 1 48904 1 48911 1 48922 1 48924 1 48931 1 48939 1 48942 1 48949 1 48954 1 48960 1 48962 1 48966 1 48979 1 48988 1 48989 1 48991 1 48997 1 48998 1 49000 1 49011 1 49023 1 49029 1 49030 1 49039 1 49040 1 49045 1 49048 1 49052 1 49056 1 49057 1 49063 1 49064 1 49067 1 49070 1 49073 1 49080 1 49081 1 49090 1 49097 1 49102 1 49121 1 49128 1 49133 1 49139 1 49141 1 49148 1 49162 1 49164 1 49168 1 49169 1 49175 1 49178 1 49179 1 49184 1 49185 1 49186 1 49190 1 49199 1 49207 1 49209 1 49212 1 49213 1 49221 1 49227 1 49231 1 49232 1 49245 1 49249 1 49251 1 49264 1 49266 1 49271 1 49275 1 49279 1 49280 1 49291 1 49294 1 49305 1 49308 1 49309 1 49325 1 49327 1 49333 1 49335 1 49343 1 49355 1 49363 1 49368 1 49369 1 49376 1 49399 1 49406 1 49407 1 49413 1 49424 1 49440 1 49446 1 49447 1 49455 1 49465 1 49475 1 49476 1 49478 1 49481 1 49483 1 49484 1 49493 1 49494 1 49496 1 49503 1 49520 1 49539 1 49544 1 49547 1 49549 1 49553 1 49557 1 49561 1 49574 1 49581 1 49598 1 49600 1 49602 1 49607 1 49612 1 49616 1 49618 1 49624 1 49633 1 49638 1 49644 1 49646 1 49653 1 49674 1 49677 1 49707 1 49708 1 49710 1 49716 1 49722 1 49723 1 49734 1 49739 1 49743 1 49746 1 49749 1 49759 1 49762 1 49764 1 49768 1 49772 1 49778 1 49785 1 49786 1 49790 1 49798 1 49802 1 49818 1 49823 1 49834 1 49847 1 49851 1 49852 1 49854 1 49857 1 49861 1 49875 1 49881 1 49898 1 49904 1 49910 1 49917 1 49924 1 49927 1 49929 1 49933 1 49936 1 49939 1 49940 1 49946 1 49950 1 49962 1 49969 1 49970 1 49978 1 49981 1 49992 1 49995 1 50000 1 50006 1 50018 1 50023 1 50033 1 50048 1 50056 1 50059 1 50070 1 50085 1 50087 1 50091 1 50098 1 50104 1 50108 1 50109 1 50115 1 50126 1 50127 1 50139 1 50141 1 50152 1 50155 1 50156 1 50159 1 50163 1 50164 1 50169 1 50182 1 50194 1 50201 1 50203 1 50210 1 50217 1 50219 1 50225 1 50235 1 50236 1 50250 1 50259 1 50269 1 50270 1 50276 1 50283 1 50293 1 50294 1 50306 1 50313 1 50323 1 50345 1 50352 1 50356 1 50357 1 50368 1 50369 1 50370 1 50379 1 50397 1 50400 1 50404 1 50407 1 50429 1 50435 1 50460 1 50482 1 50483 1 50494 1 50500 1 50501 1 50509 1 50510 1 50514 1 50515 1 50516 1 50525 1 50529 1 50534 1 50544 1 50551 1 50553 1 50554 1 50556 1 50561 1 50562 1 50563 1 50569 1 50571 1 50576 1 50579 1 50612 1 50618 1 50622 1 50627 1 50639 1 50644 1 50647 1 50650 1 50654 1 50671 1 50679 1 50680 1 50682 1 50688 1 50691 1 50692 1 50693 1 50699 1 50700 1 50705 1 50706 1 50712 1 50715 1 50717 1 50720 1 50726 1 50732 1 50741 1 50760 1 50761 1 50767 1 50769 1 50777 1 50782 1 50785 1 50804 1 50809 1 50810 1 50823 1 50831 1 50832 1 50837 1 50841 1 50842 1 50849 1 50850 1 50851 1 50852 1 50866 1 50870 1 50871 1 50877 1 50882 1 50890 1 50897 1 50902 1 50904 1 50910 1 50911 1 50912 1 50920 1 50923 1 50926 1 50928 1 50932 1 50936 1 50943 1 50950 1 50951 1 50952 1 50969 1 50979 1 50982 1 50984 1 50990 1 50992 1 51003 1 51019 1 51034 1 51059 1 51064 1 51073 1 51100 1 51106 1 51109 1 51112 1 51116 1 51119 1 51128 1 51129 1 51140 1 51141 1 51143 1 51146 1 51158 1 51170 1 51173 1 51174 1 51176 1 51178 1 51188 1 51197 1 51198 1 51210 1 51226 1 51239 1 51245 1 51247 1 51253 1 51258 1 51260 1 51264 1 51265 1 51271 1 51276 1 51282 1 51287 1 51291 1 51300 1 51308 1 51313 1 51318 1 51320 1 51331 1 51338 1 51340 1 51341 1 51347 1 51352 1 51367 1 51378 1 51382 1 51384 1 51386 1 51390 1 51392 1 51394 1 51395 1 51396 1 51402 1 51403 1 51404 1 51412 1 51417 1 51422 1 51424 1 51428 1 51430 1 51442 1 51471 1 51477 1 51492 1 51506 1 51508 1 51521 1 51524 1 51525 1 51529 1 51531 1 51537 1 51539 1 51546 1 51550 1 51553 1 51560 1 51565 1 51567 1 51572 1 51582 1 51593 1 51600 1 51607 1 51618 1 51621 1 51625 1 51636 1 51649 1 51652 1 51654 1 51657 1 51662 1 51673 1 51688 1 51693 1 51694 1 51697 1 51701 1 51702 1 51712 1 51718 1 51721 1 51724 1 51729 1 51730 1 51748 1 51751 1 51757 1 51764 1 51773 1 51780 1 51782 1 51795 1 51804 1 51810 1 51812 1 51824 1 51825 1 51828 1 51829 1 51831 1 51839 1 51840 1 51850 1 51854 1 51858 1 51859 1 51860 1 51867 1 51882 1 51887 1 51888 1 51901 1 51905 1 51908 1 51921 1 51939 1 51950 1 51962 1 51972 1 51974 1 51975 1 51981 1 51987 1 52002 1 52004 1 52005 1 52007 1 52011 1 52012 1 52015 1 52016 1 52023 1 52026 1 52027 1 52041 1 52054 1 52055 1 52056 1 52070 1 52072 1 52078 1 52097 1 52098 1 52114 1 52122 1 52131 1 52145 1 52147 1 52149 1 52154 1 52159 1 52165 1 52167 1 52171 1 52173 1 52175 1 52176 1 52177 1 52191 1 52193 1 52202 1 52205 1 52207 1 52210 1 52211 1 52214 1 52220 1 52246 1 52248 1 52250 1 52260 1 52263 1 52264 1 52282 1 52284 1 52285 1 52289 1 52290 1 52303 1 52308 1 52309 1 52323 1 52325 1 52335 1 52338 1 52356 1 52358 1 52359 1 52368 1 52372 1 52395 1 52396 1 52403 1 52409 1 52410 1 52413 1 52416 1 52422 1 52427 1 52430 1 52438 1 52443 1 52446 1 52455 1 52461 1 52469 1 52471 1 52477 1 52480 1 52488 1 52496 1 52498 1 52509 1 52510 1 52511 1 52524 1 52535 1 52536 1 52544 1 52549 1 52551 1 52557 1 52560 1 52561 1 52562 1 52564 1 52568 1 52577 1 52581 1 52582 1 52583 1 52586 1 52587 1 52593 1 52594 1 52595 1 52597 1 52599 1 52618 1 52631 1 52634 1 52635 1 52637 1 52641 1 52647 1 52650 1 52651 1 52657 1 52661 1 52664 1 52668 1 52669 1 52678 1 52685 1 52688 1 52689 1 52692 1 52694 1 52702 1 52705 1 52707 1 52712 1 52713 1 52718 1 52732 1 52741 1 52747 1 52751 1 52752 1 52766 1 52778 1 52782 1 52793 1 52797 1 52799 1 52816 1 52820 1 52827 1 52828 1 52834 1 52839 1 52844 1 52847 1 52857 1 52864 1 52865 1 52870 1 52875 1 52901 1 52917 1 52918 1 52924 1 52940 1 52948 1 52957 1 52958 1 52959 1 52978 1 52979 1 53001 1 53005 1 53012 1 53024 1 53027 1 53029 1 53032 1 53041 1 53049 1 53057 1 53065 1 53075 1 53088 1 53097 1 53107 1 53118 1 53120 1 53122 1 53134 1 53138 1 53159 1 53165 1 53166 1 53176 1 53186 1 53190 1 53200 1 53205 1 53207 1 53216 1 53233 1 53239 1 53241 1 53251 1 53255 1 53270 1 53285 1 53294 1 53310 1 53313 1 53326 1 53328 1 53329 1 53339 1 53349 1 53362 1 53378 1 53382 1 53392 1 53393 1 53395 1 53398 1 53399 1 53408 1 53426 1 53427 1 53429 1 53430 1 53442 1 53444 1 53446 1 53448 1 53452 1 53453 1 53457 1 53463 1 53465 1 53477 1 53504 1 53516 1 53525 1 53533 1 53541 1 53553 1 53554 1 53557 1 53566 1 53569 1 53575 1 53577 1 53581 1 53588 1 53590 1 53598 1 53604 1 53615 1 53619 1 53624 1 53633 1 53635 1 53637 1 53650 1 53651 1 53658 1 53663 1 53667 1 53688 1 53690 1 53702 1 53703 1 53709 1 53746 1 53749 1 53758 1 53760 1 53769 1 53771 1 53790 1 53792 1 53801 1 53803 1 53815 1 53817 1 53824 1 53826 1 53835 1 53845 1 53846 1 53849 1 53853 1 53861 1 53863 1 53868 1 53882 1 53885 1 53890 1 53891 1 53900 1 53904 1 53913 1 53923 1 53928 1 53934 1 53936 1 53946 1 53960 1 53974 1 53976 1 53981 1 53982 1 53987 1 53999 1 54001 1 54026 1 54036 1 54044 1 54045 1 54058 1 54061 1 54077 1 54088 1 54091 1 54094 1 54095 1 54099 1 54103 1 54108 1 54110 1 54127 1 54144 1 54146 1 54150 1 54152 1 54165 1 54172 1 54175 1 54176 1 54192 1 54199 1 54214 1 54215 1 54216 1 54218 1 54223 1 54238 1 54244 1 54275 1 54292 1 54301 1 54315 1 54329 1 54331 1 54343 1 54350 1 54356 1 54357 1 54367 1 54370 1 54380 1 54389 1 54391 1 54395 1 54398 1 54412 1 54414 1 54416 1 54424 1 54429 1 54432 1 54437 1 54438 1 54460 1 54461 1 54469 1 54480 1 54482 1 54495 1 54501 1 54510 1 54511 1 54514 1 54517 1 54518 1 54519 1 54528 1 54529 1 54535 1 54537 1 54539 1 54548 1 54552 1 54555 1 54573 1 54575 1 54584 1 54593 1 54598 1 54625 1 54627 1 54634 1 54638 1 54640 1 54643 1 54647 1 54650 1 54652 1 54668 1 54674 1 54675 1 54692 1 54706 1 54712 1 54714 1 54724 1 54727 1 54728 1 54735 1 54740 1 54744 1 54749 1 54750 1 54752 1 54772 1 54776 1 54779 1 54808 1 54836 1 54845 1 54855 1 54857 1 54861 1 54868 1 54872 1 54873 1 54883 1 54888 1 54893 1 54902 1 54912 1 54919 1 54920 1 54944 1 54947 1 54948 1 54950 1 54957 1 54970 1 54976 1 54979 1 54984 1 54993 1 54997 1 54998 1 55006 1 55013 1 55019 1 55020 1 55023 1 55025 1 55029 1 55030 1 55040 1 55046 1 55055 1 55060 1 55063 1 55071 1 55086 1 55092 1 55100 1 55109 1 55110 1 55111 1 55115 1 55119 1 55125 1 55138 1 55139 1 55144 1 55146 1 55147 1 55159 1 55166 1 55191 1 55193 1 55198 1 55203 1 55204 1 55205 1 55207 1 55213 1 55218 1 55223 1 55227 1 55229 1 55230 1 55233 1 55240 1 55242 1 55246 1 55251 1 55285 1 55287 1 55297 1 55305 1 55316 1 55325 1 55333 1 55334 1 55335 1 55336 1 55337 1 55340 1 55348 1 55357 1 55361 1 55362 1 55363 1 55371 1 55378 1 55381 1 55383 1 55385 1 55386 1 55394 1 55395 1 55396 1 55400 1 55405 1 55413 1 55425 1 55438 1 55441 1 55454 1 55464 1 55483 1 55488 1 55494 1 55516 1 55519 1 55522 1 55523 1 55530 1 55551 1 55554 1 55558 1 55561 1 55566 1 55572 1 55575 1 55584 1 55586 1 55598 1 55616 1 55625 1 55629 1 55630 1 55631 1 55634 1 55635 1 55655 1 55659 1 55668 1 55672 1 55682 1 55689 1 55696 1 55698 1 55707 1 55709 1 55718 1 55720 1 55721 1 55727 1 55728 1 55744 1 55747 1 55748 1 55764 1 55766 1 55775 1 55778 1 55786 1 55802 1 55816 1 55823 1 55837 1 55851 1 55854 1 55859 1 55861 1 55865 1 55882 1 55887 1 55894 1 55903 1 55911 1 55912 1 55921 1 55931 1 55939 1 55941 1 55949 1 55959 1 55970 1 55971 1 55979 1 55992 1 56001 1 56004 1 56008 1 56027 1 56041 1 56042 1 56043 1 56044 1 56052 1 56053 1 56066 1 56082 1 56090 1 56094 1 56104 1 56110 1 56114 1 56132 1 56139 1 56149 1 56150 1 56173 1 56178 1 56182 1 56183 1 56192 1 56195 1 56200 1 56211 1 56217 1 56221 1 56230 1 56240 1 56243 1 56246 1 56256 1 56259 1 56264 1 56273 1 56275 1 56278 1 56283 1 56289 1 56292 1 56296 1 56300 1 56307 1 56308 1 56309 1 56318 1 56326 1 56331 1 56333 1 56337 1 56341 1 56344 1 56347 1 56352 1 56353 1 56366 1 56371 1 56372 1 56378 1 56384 1 56388 1 56393 1 56400 1 56408 1 56426 1 56431 1 56440 1 56444 1 56450 1 56459 1 56469 1 56475 1 56482 1 56500 1 56506 1 56507 1 56517 1 56522 1 56526 1 56527 1 56529 1 56530 1 56536 1 56539 1 56553 1 56560 1 56570 1 56572 1 56577 1 56583 1 56588 1 56591 1 56598 1 56601 1 56607 1 56610 1 56611 1 56612 1 56613 1 56621 1 56622 1 56637 1 56639 1 56645 1 56648 1 56651 1 56661 1 56682 1 56690 1 56709 1 56711 1 56713 1 56717 1 56721 1 56724 1 56729 1 56751 1 56752 1 56770 1 56786 1 56798 1 56810 1 56817 1 56823 1 56825 1 56830 1 56837 1 56856 1 56857 1 56864 1 56869 1 56876 1 56889 1 56891 1 56892 1 56904 1 56909 1 56911 1 56914 1 56915 1 56916 1 56919 1 56925 1 56935 1 56941 1 56943 1 56949 1 56954 1 56956 1 56957 1 56966 1 56985 1 56992 1 56998 1 57000 1 57018 1 57026 1 57038 1 57039 1 57042 1 57047 1 57054 1 57062 1 57063 1 57068 1 57077 1 57078 1 57084 1 57103 1 57108 1 57109 1 57110 1 57111 1 57113 1 57125 1 57129 1 57135 1 57137 1 57138 1 57139 1 57143 1 57145 1 57157 1 57159 1 57160 1 57165 1 57169 1 57174 1 57190 1 57193 1 57205 1 57208 1 57211 1 57222 1 57226 1 57231 1 57232 1 57239 1 57251 1 57253 1 57254 1 57263 1 57265 1 57273 1 57274 1 57278 1 57283 1 57284 1 57293 1 57295 1 57299 1 57303 1 57306 1 57310 1 57317 1 57322 1 57330 1 57335 1 57343 1 57347 1 57365 1 57371 1 57375 1 57384 1 57390 1 57392 1 57405 1 57409 1 57419 1 57428 1 57432 1 57433 1 57436 1 57442 1 57446 1 57448 1 57454 1 57456 1 57460 1 57465 1 57468 1 57489 1 57498 1 57500 1 57508 1 57513 1 57546 1 57548 1 57556 1 57559 1 57568 1 57571 1 57578 1 57589 1 57601 1 57610 1 57613 1 57615 1 57623 1 57630 1 57641 1 57646 1 57658 1 57667 1 57673 1 57685 1 57688 1 57696 1 57702 1 57703 1 57712 1 57716 1 57717 1 57722 1 57726 1 57772 1 57774 1 57775 1 57790 1 57822 1 57824 1 57827 1 57829 1 57835 1 57841 1 57849 1 57859 1 57862 1 57871 1 57872 1 57873 1 57878 1 57879 1 57881 1 57899 1 57911 1 57926 1 57933 1 57934 1 57946 1 57952 1 57957 1 57960 1 57967 1 57988 1 57991 1 57993 1 58016 1 58031 1 58037 1 58045 1 58048 1 58050 1 58057 1 58062 1 58066 1 58075 1 58078 1 58090 1 58094 1 58102 1 58105 1 58112 1 58131 1 58134 1 58137 1 58155 1 58163 1 58168 1 58169 1 58172 1 58195 1 58196 1 58198 1 58203 1 58206 1 58213 1 58224 1 58228 1 58235 1 58236 1 58239 1 58251 1 58263 1 58293 1 58298 1 58303 1 58313 1 58319 1 58325 1 58327 1 58360 1 58362 1 58363 1 58365 1 58394 1 58400 1 58404 1 58411 1 58412 1 58420 1 58427 1 58433 1 58438 1 58449 1 58459 1 58468 1 58471 1 58480 1 58481 1 58493 1 58494 1 58501 1 58508 1 58511 1 58513 1 58524 1 58532 1 58547 1 58555 1 58556 1 58569 1 58570 1 58573 1 58579 1 58591 1 58594 1 58596 1 58607 1 58624 1 58633 1 58634 1 58639 1 58651 1 58656 1 58657 1 58672 1 58675 1 58681 1 58683 1 58686 1 58695 1 58701 1 58711 1 58714 1 58721 1 58726 1 58751 1 58760 1 58763 1 58776 1 58786 1 58788 1 58790 1 58791 1 58795 1 58797 1 58820 1 58829 1 58867 1 58876 1 58889 1 58898 1 58917 1 58918 1 58922 1 58925 1 58927 1 58928 1 58929 1 58935 1 58941 1 58944 1 58950 1 58954 1 58960 1 58962 1 58971 1 58972 1 58976 1 58977 1 58984 1 58989 1 58993 1 59006 1 59012 1 59021 1 59024 1 59027 1 59031 1 59035 1 59036 1 59037 1 59038 1 59039 1 59047 1 59052 1 59054 1 59055 1 59058 1 59060 1 59067 1 59073 1 59087 1 59089 1 59092 1 59098 1 59103 1 59107 1 59108 1 59121 1 59123 1 59145 1 59159 1 59163 1 59168 1 59169 1 59175 1 59177 1 59180 1 59182 1 59185 1 59186 1 59187 1 59188 1 59189 1 59193 1 59194 1 59197 1 59199 1 59210 1 59216 1 59217 1 59238 1 59244 1 59260 1 59262 1 59271 1 59278 1 59281 1 59284 1 59286 1 59297 1 59319 1 59336 1 59339 1 59341 1 59343 1 59346 1 59353 1 59357 1 59359 1 59360 1 59363 1 59375 1 59378 1 59386 1 59389 1 59391 1 59396 1 59403 1 59405 1 59411 1 59412 1 59431 1 59437 1 59438 1 59441 1 59443 1 59456 1 59460 1 59473 1 59475 1 59483 1 59506 1 59510 1 59521 1 59526 1 59527 1 59559 1 59562 1 59573 1 59578 1 59579 1 59585 1 59601 1 59615 1 59616 1 59626 1 59629 1 59631 1 59639 1 59640 1 59645 1 59646 1 59663 1 59673 1 59683 1 59684 1 59687 1 59688 1 59689 1 59692 1 59697 1 59699 1 59716 1 59717 1 59726 1 59727 1 59730 1 59733 1 59734 1 59736 1 59745 1 59762 1 59765 1 59768 1 59771 1 59775 1 59784 1 59785 1 59787 1 59801 1 59808 1 59809 1 59822 1 59824 1 59826 1 59827 1 59836 1 59843 1 59845 1 59860 1 59864 1 59867 1 59868 1 59872 1 59875 1 59878 1 59881 1 59892 1 59893 1 59894 1 59910 1 59926 1 59930 1 59933 1 59936 1 59945 1 59948 1 59950 1 59952 1 59963 1 59964 1 59969 1 59975 1 59978 1 59979 1 59983 1 59986 1 59990 1 59991 1 60002 1 60031 1 60042 1 60048 1 60053 1 60056 1 60063 1 60073 1 60075 1 60077 1 60079 1 60081 1 60083 1 60088 1 60093 1 60096 1 60108 1 60121 1 60128 1 60133 1 60142 1 60145 1 60157 1 60158 1 60184 1 60195 1 60198 1 60203 1 60207 1 60213 1 60235 1 60239 1 60243 1 60244 1 60246 1 60247 1 60251 1 60254 1 60256 1 60257 1 60258 1 60267 1 60278 1 60284 1 60288 1 60294 1 60305 1 60317 1 60323 1 60324 1 60338 1 60347 1 60351 1 60360 1 60365 1 60391 1 60407 1 60409 1 60410 1 60417 1 60419 1 60424 1 60427 1 60436 1 60443 1 60447 1 60452 1 60459 1 60472 1 60478 1 60488 1 60489 1 60510 1 60511 1 60512 1 60520 1 60526 1 60531 1 60536 1 60539 1 60543 1 60555 1 60557 1 60575 1 60577 1 60578 1 60580 1 60581 1 60582 1 60588 1 60591 1 60594 1 60600 1 60604 1 60611 1 60615 1 60625 1 60628 1 60629 1 60630 1 60635 1 60651 1 60654 1 60666 1 60689 1 60698 1 60703 1 60708 1 60715 1 60722 1 60726 1 60737 1 60744 1 60750 1 60756 1 60757 1 60763 1 60767 1 60768 1 60769 1 60772 1 60785 1 60788 1 60792 1 60796 1 60806 1 60808 1 60809 1 60814 1 60821 1 60825 1 60829 1 60832 1 60847 1 60872 1 60888 1 60894 1 60895 1 60897 1 60914 1 60917 1 60919 1 60927 1 60957 1 60960 1 60964 1 60971 1 60974 1 60975 1 60976 1 60980 1 60982 1 60984 1 60994 1 61019 1 61040 1 61044 1 61049 1 61050 1 61053 1 61054 1 61055 1 61065 1 61080 1 61082 1 61091 1 61094 1 61110 1 61114 1 61116 1 61120 1 61122 1 61123 1 61132 1 61139 1 61144 1 61147 1 61150 1 61151 1 61166 1 61171 1 61172 1 61186 1 61188 1 61206 1 61209 1 61227 1 61240 1 61242 1 61273 1 61279 1 61283 1 61289 1 61303 1 61310 1 61311 1 61312 1 61322 1 61331 1 61336 1 61339 1 61340 1 61343 1 61364 1 61373 1 61374 1 61381 1 61387 1 61388 1 61390 1 61400 1 61406 1 61409 1 61411 1 61417 1 61442 1 61448 1 61457 1 61459 1 61461 1 61471 1 61474 1 61475 1 61478 1 61490 1 61492 1 61500 1 61508 1 61513 1 61538 1 61547 1 61550 1 61551 1 61554 1 61556 1 61557 1 61565 1 61569 1 61570 1 61578 1 61581 1 61587 1 61590 1 61619 1 61622 1 61626 1 61633 1 61637 1 61642 1 61647 1 61662 1 61664 1 61670 1 61674 1 61679 1 61682 1 61685 1 61695 1 61699 1 61704 1 61707 1 61709 1 61713 1 61716 1 61717 1 61718 1 61719 1 61721 1 61722 1 61727 1 61729 1 61734 1 61747 1 61751 1 61756 1 61763 1 61770 1 61780 1 61787 1 61796 1 61797 1 61798 1 61803 1 61806 1 61819 1 61826 1 61827 1 61833 1 61866 1 61872 1 61880 1 61884 1 61895 1 61903 1 61920 1 61923 1 61925 1 61931 1 61948 1 61951 1 61959 1 61963 1 61966 1 61967 1 61985 1 62002 1 62003 1 62004 1 62005 1 62033 1 62038 1 62039 1 62040 1 62047 1 62048 1 62052 1 62059 1 62061 1 62077 1 62084 1 62088 1 62096 1 62100 1 62103 1 62106 1 62108 1 62121 1 62125 1 62127 1 62138 1 62139 1 62140 1 62141 1 62142 1 62144 1 62147 1 62156 1 62164 1 62166 1 62177 1 62184 1 62191 1 62194 1 62202 1 62213 1 62216 1 62234 1 62235 1 62247 1 62254 1 62255 1 62256 1 62259 1 62262 1 62263 1 62268 1 62269 1 62272 1 62278 1 62289 1 62293 1 62299 1 62300 1 62303 1 62310 1 62319 1 62326 1 62344 1 62348 1 62353 1 62354 1 62358 1 62377 1 62378 1 62382 1 62383 1 62388 1 62391 1 62392 1 62397 1 62398 1 62400 1 62401 1 62403 1 62408 1 62418 1 62424 1 62431 1 62432 1 62435 1 62438 1 62440 1 62450 1 62452 1 62467 1 62471 1 62472 1 62473 1 62477 1 62478 1 62485 1 62491 1 62504 1 62507 1 62509 1 62513 1 62530 1 62538 1 62562 1 62572 1 62573 1 62574 1 62576 1 62589 1 62602 1 62603 1 62607 1 62609 1 62637 1 62642 1 62647 1 62648 1 62651 1 62657 1 62660 1 62671 1 62672 1 62675 1 62694 1 62701 1 62704 1 62709 1 62720 1 62731 1 62740 1 62748 1 62757 1 62761 1 62764 1 62772 1 62774 1 62776 1 62778 1 62780 1 62782 1 62783 1 62788 1 62792 1 62802 1 62806 1 62810 1 62811 1 62812 1 62823 1 62831 1 62836 1 62849 1 62851 1 62869 1 62873 1 62875 1 62876 1 62884 1 62893 1 62898 1 62901 1 62908 1 62913 1 62915 1 62921 1 62926 1 62939 1 62946 1 62948 1 62951 1 62956 1 62968 1 62977 1 62983 1 62992 1 62994 1 63001 1 63025 1 63033 1 63040 1 63045 1 63052 1 63053 1 63054 1 63055 1 63065 1 63066 1 63089 1 63094 1 63097 1 63112 1 63113 1 63119 1 63122 1 63123 1 63129 1 63133 1 63134 1 63138 1 63139 1 63145 1 63146 1 63147 1 63151 1 63157 1 63162 1 63183 1 63193 1 63196 1 63200 1 63205 1 63213 1 63216 1 63233 1 63239 1 63245 1 63249 1 63261 1 63262 1 63270 1 63274 1 63275 1 63279 1 63280 1 63282 1 63290 1 63311 1 63318 1 63328 1 63337 1 63351 1 63353 1 63362 1 63370 1 63373 1 63376 1 63386 1 63388 1 63392 1 63404 1 63412 1 63419 1 63421 1 63426 1 63427 1 63429 1 63437 1 63438 1 63439 1 63440 1 63442 1 63448 1 63455 1 63476 1 63480 1 63486 1 63489 1 63491 1 63508 1 63511 1 63514 1 63525 1 63535 1 63544 1 63551 1 63552 1 63560 1 63565 1 63568 1 63572 1 63579 1 63584 1 63586 1 63588 1 63589 1 63592 1 63606 1 63617 1 63619 1 63634 1 63639 1 63642 1 63646 1 63649 1 63653 1 63659 1 63662 1 63670 1 63671 1 63672 1 63678 1 63681 1 63689 1 63697 1 63709 1 63715 1 63718 1 63723 1 63739 1 63742 1 63743 1 63753 1 63769 1 63779 1 63785 1 63789 1 63802 1 63809 1 63820 1 63825 1 63850 1 63859 1 63863 1 63866 1 63873 1 63874 1 63880 1 63899 1 63900 1 63901 1 63903 1 63905 1 63906 1 63910 1 63925 1 63926 1 63927 1 63928 1 63935 1 63936 1 63939 1 63960 1 63962 1 63964 1 63970 1 63971 1 63976 1 63988 1 63993 1 64002 1 64016 1 64024 1 64029 1 64030 1 64033 1 64037 1 64053 1 64057 1 64061 1 64069 1 64086 1 64087 1 64091 1 64095 1 64103 1 64109 1 64114 1 64116 1 64117 1 64130 1 64138 1 64146 1 64157 1 64159 1 64175 1 64179 1 64185 1 64198 1 64203 1 64208 1 64209 1 64213 1 64222 1 64224 1 64225 1 64235 1 64238 1 64244 1 64257 1 64258 1 64264 1 64268 1 64269 1 64271 1 64279 1 64283 1 64284 1 64288 1 64290 1 64294 1 64296 1 64303 1 64308 1 64309 1 64314 1 64319 1 64321 1 64324 1 64325 1 64333 1 64348 1 64351 1 64353 1 64355 1 64357 1 64360 1 64361 1 64365 1 64366 1 64368 1 64373 1 64383 1 64390 1 64392 1 64393 1 64395 1 64401 1 64402 1 64413 1 64416 1 64424 1 64428 1 64431 1 64437 1 64445 1 64458 1 64460 1 64462 1 64466 1 64470 1 64472 1 64473 1 64490 1 64491 1 64494 1 64505 1 64509 1 64512 1 64527 1 64529 1 64530 1 64534 1 64538 1 64544 1 64549 1 64552 1 64559 1 64575 1 64583 1 64598 1 64610 1 64612 1 64620 1 64624 1 64637 1 64641 1 64643 1 64647 1 64651 1 64655 1 64660 1 64676 1 64678 1 64682 1 64695 1 64704 1 64717 1 64723 1 64725 1 64730 1 64735 1 64738 1 64740 1 64743 1 64746 1 64749 1 64753 1 64759 1 64761 1 64763 1 64769 1 64778 1 64783 1 64786 1 64791 1 64794 1 64796 1 64798 1 64800 1 64802 1 64807 1 64810 1 64819 1 64822 1 64828 1 64831 1 64834 1 64842 1 64846 1 64855 1 64861 1 64871 1 64876 1 64881 1 64884 1 64890 1 64896 1 64899 1 64900 1 64901 1 64907 1 64927 1 64932 1 64935 1 64941 1 64948 1 64960 1 64966 1 64967 1 64969 1 64973 1 64975 1 64976 1 64981 1 64988 1 64998 1 65000 1 65002 1 65006 1 65015 1 65018 1 65026 1 65027 1 65033 1 65042 1 65045 1 65046 1 65055 1 65056 1 65080 1 65081 1 65110 1 65118 1 65124 1 65134 1 65140 1 65147 1 65157 1 65165 1 65171 1 65179 1 65193 1 65203 1 65216 1 65217 1 65222 1 65240 1 65243 1 65247 1 65250 1 65261 1 65266 1 65273 1 65283 1 65288 1 65294 1 65297 1 65298 1 65299 1 65326 1 65327 1 65338 1 65355 1 65362 1 65369 1 65371 1 65386 1 65390 1 65413 1 65419 1 65424 1 65427 1 65430 1 65440 1 65445 1 65447 1 65449 1 65451 1 65461 1 65469 1 65470 1 65476 1 65479 1 65487 1 65491 1 65492 1 65493 1 65496 1 65505 1 65512 1 65519 1 65520 1 65534 1 65548 1 65550 1 65552 1 65559 1 65563 1 65565 1 65568 1 65574 1 65583 1 65586 1 65587 1 65593 1 65602 1 65604 1 65605 1 65609 1 65612 1 65620 1 65625 1 65641 1 65648 1 65650 1 65651 1 65652 1 65658 1 65661 1 65669 1 65679 1 65683 1 65695 1 65709 1 65727 1 65738 1 65740 1 65743 1 65745 1 65747 1 65770 1 65773 1 65782 1 65783 1 65784 1 65798 1 65803 1 65808 1 65811 1 65819 1 65826 1 65837 1 65839 1 65846 1 65847 1 65852 1 65857 1 65860 1 65866 1 65882 1 65887 1 65889 1 65894 1 65896 1 65898 1 65901 1 65907 1 65909 1 65913 1 65920 1 65930 1 65934 1 65935 1 65943 1 65944 1 65947 1 65951 1 65954 1 65955 1 65972 1 65986 1 65991 1 65992 1 65994 1 65997 1 66008 1 66012 1 66013 1 66016 1 66019 1 66020 1 66024 1 66041 1 66044 1 66048 1 66053 1 66058 1 66060 1 66062 1 66063 1 66073 1 66076 1 66078 1 66079 1 66082 1 66096 1 66097 1 66106 1 66107 1 66112 1 66118 1 66119 1 66120 1 66121 1 66126 1 66127 1 66138 1 66139 1 66152 1 66157 1 66166 1 66170 1 66175 1 66181 1 66194 1 66199 1 66202 1 66232 1 66236 1 66237 1 66241 1 66252 1 66258 1 66260 1 66268 1 66291 1 66294 1 66296 1 66301 1 66303 1 66322 1 66328 1 66334 1 66353 1 66360 1 66362 1 66371 1 66375 1 66378 1 66380 1 66382 1 66392 1 66393 1 66395 1 66403 1 66407 1 66417 1 66424 1 66436 1 66449 1 66450 1 66453 1 66463 1 66466 1 66467 1 66483 1 66485 1 66486 1 66490 1 66493 1 66499 1 66501 1 66505 1 66510 1 66514 1 66521 1 66526 1 66531 1 66533 1 66538 1 66539 1 66548 1 66555 1 66558 1 66559 1 66562 1 66567 1 66569 1 66570 1 66587 1 66604 1 66611 1 66629 1 66639 1 66648 1 66650 1 66657 1 66664 1 66671 1 66680 1 66682 1 66701 1 66706 1 66707 1 66720 1 66731 1 66733 1 66741 1 66750 1 66771 1 66774 1 66785 1 66786 1 66787 1 66792 1 66794 1 66797 1 66814 1 66816 1 66824 1 66825 1 66826 1 66828 1 66831 1 66833 1 66838 1 66844 1 66855 1 66861 1 66862 1 66872 1 66892 1 66895 1 66898 1 66905 1 66909 1 66920 1 66925 1 66927 1 66929 1 66936 1 66938 1 66950 1 66964 1 66971 1 66973 1 66978 1 66984 1 66995 1 66999 1 67000 1 67018 1 67028 1 67052 1 67059 1 67074 1 67077 1 67081 1 67088 1 67098 1 67115 1 67116 1 67131 1 67133 1 67138 1 67139 1 67149 1 67150 1 67151 1 67168 1 67180 1 67183 1 67187 1 67194 1 67196 1 67197 1 67204 1 67205 1 67207 1 67208 1 67224 1 67232 1 67240 1 67243 1 67256 1 67271 1 67274 1 67278 1 67288 1 67297 1 67306 1 67308 1 67312 1 67318 1 67340 1 67346 1 67361 1 67373 1 67374 1 67385 1 67400 1 67402 1 67404 1 67413 1 67417 1 67418 1 67426 1 67430 1 67437 1 67456 1 67472 1 67474 1 67488 1 67489 1 67490 1 67492 1 67495 1 67500 1 67511 1 67513 1 67520 1 67522 1 67527 1 67528 1 67533 1 67547 1 67555 1 67560 1 67569 1 67572 1 67577 1 67590 1 67591 1 67593 1 67602 1 67604 1 67607 1 67612 1 67619 1 67626 1 67634 1 67647 1 67649 1 67652 1 67656 1 67658 1 67671 1 67677 1 67678 1 67689 1 67699 1 67702 1 67707 1 67708 1 67721 1 67727 1 67728 1 67730 1 67731 1 67733 1 67740 1 67746 1 67758 1 67760 1 67777 1 67779 1 67803 1 67807 1 67813 1 67831 1 67839 1 67844 1 67850 1 67869 1 67877 1 67895 1 67918 1 67929 1 67932 1 67937 1 67946 1 67950 1 67961 1 67976 1 67979 1 67981 1 67988 1 67999 1 68008 1 68012 1 68014 1 68017 1 68021 1 68026 1 68027 1 68034 1 68048 1 68055 1 68058 1 68061 1 68065 1 68077 1 68093 1 68098 1 68102 1 68109 1 68110 1 68112 1 68124 1 68127 1 68132 1 68133 1 68141 1 68143 1 68160 1 68164 1 68165 1 68166 1 68179 1 68180 1 68184 1 68185 1 68187 1 68188 1 68194 1 68197 1 68198 1 68201 1 68210 1 68237 1 68242 1 68261 1 68267 1 68268 1 68272 1 68284 1 68300 1 68310 1 68314 1 68316 1 68319 1 68343 1 68347 1 68366 1 68371 1 68374 1 68375 1 68381 1 68382 1 68408 1 68417 1 68425 1 68433 1 68444 1 68446 1 68460 1 68463 1 68468 1 68474 1 68481 1 68487 1 68489 1 68494 1 68496 1 68500 1 68507 1 68511 1 68518 1 68519 1 68523 1 68547 1 68559 1 68565 1 68567 1 68573 1 68579 1 68594 1 68597 1 68603 1 68611 1 68612 1 68613 1 68624 1 68627 1 68631 1 68648 1 68662 1 68677 1 68678 1 68679 1 68681 1 68687 1 68693 1 68716 1 68735 1 68745 1 68746 1 68752 1 68773 1 68797 1 68801 1 68805 1 68820 1 68824 1 68828 1 68832 1 68836 1 68850 1 68855 1 68860 1 68871 1 68875 1 68882 1 68884 1 68886 1 68888 1 68900 1 68915 1 68928 1 68929 1 68932 1 68933 1 68947 1 68960 1 68965 1 68969 1 68977 1 68980 1 68983 1 68988 1 68995 1 68998 1 69002 1 69014 1 69022 1 69031 1 69032 1 69033 1 69036 1 69041 1 69045 1 69063 1 69077 1 69078 1 69079 1 69081 1 69083 1 69087 1 69098 1 69100 1 69102 1 69104 1 69107 1 69108 1 69119 1 69125 1 69132 1 69133 1 69134 1 69135 1 69136 1 69138 1 69143 1 69144 1 69147 1 69150 1 69151 1 69152 1 69156 1 69161 1 69168 1 69170 1 69171 1 69174 1 69177 1 69184 1 69186 1 69188 1 69190 1 69210 1 69216 1 69225 1 69226 1 69227 1 69237 1 69238 1 69241 1 69243 1 69245 1 69246 1 69249 1 69251 1 69254 1 69274 1 69289 1 69293 1 69294 1 69295 1 69297 1 69300 1 69305 1 69310 1 69312 1 69314 1 69316 1 69317 1 69325 1 69332 1 69337 1 69343 1 69357 1 69359 1 69362 1 69378 1 69387 1 69390 1 69397 1 69404 1 69409 1 69413 1 69414 1 69418 1 69432 1 69436 1 69440 1 69444 1 69453 1 69461 1 69465 1 69468 1 69471 1 69472 1 69474 1 69476 1 69482 1 69486 1 69487 1 69488 1 69496 1 69502 1 69509 1 69512 1 69515 1 69521 1 69532 1 69540 1 69541 1 69543 1 69549 1 69551 1 69557 1 69562 1 69565 1 69576 1 69577 1 69580 1 69581 1 69591 1 69592 1 69594 1 69596 1 69598 1 69601 1 69605 1 69621 1 69625 1 69626 1 69627 1 69630 1 69637 1 69640 1 69657 1 69658 1 69659 1 69660 1 69661 1 69668 1 69672 1 69680 1 69682 1 69684 1 69703 1 69710 1 69731 1 69734 1 69743 1 69744 1 69747 1 69748 1 69756 1 69758 1 69761 1 69765 1 69767 1 69768 1 69786 1 69788 1 69792 1 69797 1 69805 1 69811 1 69812 1 69814 1 69815 1 69818 1 69820 1 69821 1 69822 1 69824 1 69828 1 69829 1 69839 1 69840 1 69843 1 69848 1 69851 1 69866 1 69871 1 69872 1 69893 1 69896 1 69909 1 69910 1 69917 1 69920 1 69926 1 69929 1 69940 1 69951 1 69979 1 69984 1 69987 1 69991 1 69993 1 69996 1 70001 1 70002 1 70004 1 70006 1 70012 1 70018 1 70019 1 70029 1 70033 1 70054 1 70059 1 70061 1 70081 1 70106 1 70109 1 70112 1 70121 1 70122 1 70124 1 70125 1 70131 1 70135 1 70136 1 70144 1 70150 1 70151 1 70159 1 70162 1 70164 1 70165 1 70166 1 70185 1 70203 1 70204 1 70206 1 70214 1 70215 1 70219 1 70220 1 70227 1 70233 1 70242 1 70245 1 70249 1 70251 1 70263 1 70274 1 70281 1 70285 1 70286 1 70296 1 70300 1 70302 1 70304 1 70306 1 70307 1 70316 1 70321 1 70325 1 70328 1 70329 1 70361 1 70362 1 70369 1 70382 1 70384 1 70393 1 70414 1 70415 1 70418 1 70421 1 70424 1 70437 1 70441 1 70447 1 70449 1 70453 1 70456 1 70458 1 70473 1 70478 1 70479 1 70485 1 70491 1 70494 1 70495 1 70500 1 70510 1 70511 1 70513 1 70522 1 70535 1 70547 1 70559 1 70561 1 70564 1 70565 1 70581 1 70585 1 70598 1 70603 1 70605 1 70608 1 70616 1 70621 1 70623 1 70624 1 70626 1 70629 1 70636 1 70643 1 70650 1 70655 1 70658 1 70659 1 70662 1 70666 1 70676 1 70680 1 70687 1 70690 1 70704 1 70728 1 70736 1 70741 1 70742 1 70748 1 70754 1 70757 1 70761 1 70764 1 70769 1 70770 1 70775 1 70783 1 70784 1 70789 1 70790 1 70792 1 70795 1 70812 1 70813 1 70821 1 70832 1 70833 1 70838 1 70840 1 70845 1 70853 1 70860 1 70863 1 70866 1 70867 1 70870 1 70874 1 70878 1 70883 1 70887 1 70894 1 70906 1 70914 1 70950 1 70959 1 70962 1 70968 1 70976 1 70984 1 70985 1 70994 1 71001 1 71009 1 71012 1 71019 1 71025 1 71026 1 71042 1 71046 1 71057 1 71073 1 71080 1 71082 1 71084 1 71090 1 71094 1 71095 1 71105 1 71106 1 71114 1 71137 1 71140 1 71141 1 71147 1 71148 1 71153 1 71156 1 71177 1 71182 1 71184 1 71187 1 71188 1 71189 1 71191 1 71195 1 71204 1 71209 1 71227 1 71232 1 71234 1 71244 1 71248 1 71255 1 71267 1 71274 1 71277 1 71279 1 71293 1 71294 1 71295 1 71301 1 71316 1 71319 1 71332 1 71335 1 71336 1 71362 1 71365 1 71366 1 71370 1 71393 1 71397 1 71401 1 71403 1 71406 1 71415 1 71418 1 71439 1 71458 1 71466 1 71475 1 71477 1 71478 1 71481 1 71487 1 71490 1 71494 1 71495 1 71499 1 71521 1 71530 1 71535 1 71539 1 71545 1 71549 1 71560 1 71575 1 71587 1 71590 1 71594 1 71595 1 71599 1 71603 1 71610 1 71622 1 71623 1 71632 1 71636 1 71638 1 71640 1 71641 1 71647 1 71650 1 71668 1 71671 1 71683 1 71698 1 71700 1 71701 1 71708 1 71722 1 71727 1 71739 1 71742 1 71751 1 71790 1 71791 1 71792 1 71793 1 71795 1 71804 1 71808 1 71813 1 71814 1 71818 1 71822 1 71830 1 71840 1 71842 1 71860 1 71870 1 71872 1 71876 1 71877 1 71878 1 71885 1 71886 1 71890 1 71898 1 71899 1 71903 1 71917 1 71934 1 71940 1 71941 1 71951 1 71955 1 71958 1 71963 1 71974 1 71980 1 71982 1 71997 1 71998 1 72000 1 72001 1 72011 1 72013 1 72018 1 72020 1 72027 1 72037 1 72043 1 72060 1 72063 1 72073 1 72074 1 72079 1 72095 1 72104 1 72106 1 72108 1 72133 1 72145 1 72147 1 72153 1 72156 1 72161 1 72166 1 72167 1 72173 1 72174 1 72189 1 72190 1 72205 1 72207 1 72208 1 72209 1 72214 1 72223 1 72246 1 72247 1 72254 1 72259 1 72262 1 72269 1 72272 1 72274 1 72278 1 72293 1 72297 1 72302 1 72310 1 72314 1 72318 1 72330 1 72332 1 72333 1 72334 1 72335 1 72341 1 72344 1 72347 1 72352 1 72367 1 72371 1 72379 1 72381 1 72388 1 72391 1 72398 1 72400 1 72406 1 72408 1 72416 1 72417 1 72422 1 72428 1 72429 1 72435 1 72436 1 72448 1 72450 1 72458 1 72459 1 72462 1 72464 1 72466 1 72474 1 72478 1 72488 1 72499 1 72502 1 72503 1 72507 1 72509 1 72510 1 72521 1 72528 1 72529 1 72532 1 72533 1 72538 1 72550 1 72554 1 72567 1 72573 1 72585 1 72605 1 72613 1 72619 1 72620 1 72623 1 72629 1 72631 1 72634 1 72635 1 72645 1 72648 1 72649 1 72652 1 72658 1 72665 1 72678 1 72683 1 72684 1 72714 1 72715 1 72718 1 72719 1 72726 1 72742 1 72744 1 72746 1 72752 1 72755 1 72756 1 72759 1 72764 1 72765 1 72770 1 72771 1 72772 1 72773 1 72780 1 72796 1 72797 1 72810 1 72815 1 72816 1 72818 1 72821 1 72828 1 72831 1 72857 1 72874 1 72878 1 72879 1 72884 1 72886 1 72887 1 72894 1 72895 1 72899 1 72906 1 72908 1 72915 1 72922 1 72926 1 72928 1 72936 1 72939 1 72941 1 72942 1 72943 1 72944 1 72946 1 72957 1 72967 1 72969 1 72974 1 72975 1 72978 1 72988 1 72991 1 72998 1 72999 1 73000 1 73001 1 73006 1 73009 1 73011 1 73013 1 73019 1 73028 1 73032 1 73035 1 73039 1 73057 1 73058 1 73063 1 73064 1 73067 1 73072 1 73074 1 73081 1 73083 1 73091 1 73092 1 73096 1 73097 1 73102 1 73103 1 73107 1 73109 1 73110 1 73112 1 73118 1 73131 1 73147 1 73151 1 73152 1 73153 1 73156 1 73160 1 73174 1 73175 1 73185 1 73195 1 73197 1 73203 1 73232 1 73235 1 73239 1 73251 1 73255 1 73278 1 73285 1 73291 1 73302 1 73303 1 73314 1 73315 1 73321 1 73326 1 73330 1 73335 1 73336 1 73339 1 73341 1 73342 1 73344 1 73350 1 73351 1 73355 1 73357 1 73364 1 73367 1 73373 1 73374 1 73383 1 73399 1 73402 1 73405 1 73409 1 73415 1 73424 1 73428 1 73429 1 73432 1 73435 1 73438 1 73443 1 73452 1 73466 1 73469 1 73471 1 73472 1 73500 1 73502 1 73507 1 73510 1 73513 1 73514 1 73515 1 73516 1 73525 1 73536 1 73541 1 73542 1 73546 1 73551 1 73560 1 73565 1 73566 1 73571 1 73574 1 73575 1 73578 1 73594 1 73599 1 73605 1 73619 1 73621 1 73624 1 73648 1 73653 1 73655 1 73663 1 73672 1 73673 1 73681 1 73696 1 73703 1 73709 1 73717 1 73721 1 73727 1 73733 1 73739 1 73742 1 73746 1 73749 1 73756 1 73760 1 73765 1 73769 1 73772 1 73780 1 73783 1 73788 1 73790 1 73795 1 73797 1 73799 1 73817 1 73818 1 73827 1 73833 1 73835 1 73843 1 73852 1 73856 1 73857 1 73858 1 73867 1 73881 1 73882 1 73888 1 73889 1 73893 1 73901 1 73907 1 73913 1 73916 1 73919 1 73925 1 73937 1 73944 1 73946 1 73950 1 73985 1 73986 1 73993 1 74008 1 74010 1 74016 1 74019 1 74023 1 74024 1 74025 1 74027 1 74048 1 74054 1 74055 1 74056 1 74059 1 74061 1 74065 1 74067 1 74068 1 74069 1 74078 1 74081 1 74088 1 74091 1 74098 1 74105 1 74109 1 74110 1 74112 1 74117 1 74124 1 74128 1 74132 1 74133 1 74135 1 74137 1 74143 1 74147 1 74150 1 74163 1 74173 1 74179 1 74184 1 74190 1 74200 1 74201 1 74207 1 74210 1 74217 1 74226 1 74229 1 74236 1 74238 1 74249 1 74261 1 74269 1 74272 1 74273 1 74290 1 74306 1 74309 1 74310 1 74320 1 74321 1 74326 1 74327 1 74336 1 74344 1 74350 1 74355 1 74361 1 74362 1 74380 1 74402 1 74405 1 74408 1 74415 1 74423 1 74424 1 74426 1 74443 1 74451 1 74455 1 74466 1 74482 1 74486 1 74490 1 74501 1 74503 1 74511 1 74531 1 74532 1 74556 1 74557 1 74565 1 74567 1 74569 1 74571 1 74572 1 74574 1 74577 1 74583 1 74593 1 74598 1 74603 1 74611 1 74614 1 74617 1 74624 1 74626 1 74632 1 74640 1 74649 1 74653 1 74658 1 74661 1 74662 1 74667 1 74672 1 74675 1 74676 1 74690 1 74694 1 74695 1 74697 1 74720 1 74723 1 74730 1 74735 1 74738 1 74749 1 74752 1 74754 1 74762 1 74764 1 74767 1 74769 1 74777 1 74780 1 74810 1 74814 1 74823 1 74825 1 74826 1 74830 1 74832 1 74859 1 74864 1 74867 1 74879 1 74887 1 74891 1 74909 1 74919 1 74920 1 74922 1 74926 1 74932 1 74937 1 74941 1 74948 1 74955 1 74956 1 74970 1 74975 1 74990 1 74993 1 75000 1 75002 1 75004 1 75006 1 75008 1 75009 1 75011 1 75024 1 75042 1 75046 1 75054 1 75058 1 75060 1 75091 1 75092 1 75095 1 75103 1 75104 1 75113 1 75117 1 75119 1 75125 1 75135 1 75137 1 75140 1 75162 1 75163 1 75164 1 75167 1 75170 1 75178 1 75180 1 75189 1 75193 1 75204 1 75209 1 75215 1 75222 1 75235 1 75240 1 75248 1 75250 1 75260 1 75264 1 75265 1 75270 1 75277 1 75278 1 75282 1 75283 1 75284 1 75288 1 75304 1 75305 1 75313 1 75314 1 75316 1 75325 1 75326 1 75329 1 75346 1 75349 1 75351 1 75369 1 75389 1 75391 1 75396 1 75406 1 75407 1 75408 1 75416 1 75419 1 75422 1 75429 1 75434 1 75441 1 75445 1 75449 1 75463 1 75476 1 75477 1 75484 1 75493 1 75496 1 75498 1 75503 1 75514 1 75516 1 75521 1 75523 1 75524 1 75530 1 75532 1 75548 1 75550 1 75551 1 75567 1 75569 1 75577 1 75579 1 75580 1 75586 1 75589 1 75591 1 75606 1 75608 1 75613 1 75615 1 75619 1 75627 1 75630 1 75635 1 75637 1 75641 1 75648 1 75659 1 75663 1 75665 1 75674 1 75684 1 75695 1 75697 1 75699 1 75701 1 75711 1 75728 1 75729 1 75735 1 75736 1 75739 1 75742 1 75746 1 75764 1 75768 1 75773 1 75780 1 75785 1 75787 1 75793 1 75805 1 75808 1 75821 1 75828 1 75832 1 75835 1 75838 1 75841 1 75850 1 75865 1 75870 1 75879 1 75885 1 75890 1 75898 1 75904 1 75920 1 75928 1 75929 1 75935 1 75959 1 75961 1 75966 1 75988 1 75991 1 75998 1 76004 1 76011 1 76024 1 76029 1 76030 1 76031 1 76036 1 76041 1 76043 1 76045 1 76056 1 76058 1 76060 1 76071 1 76072 1 76077 1 76080 1 76083 1 76084 1 76085 1 76087 1 76097 1 76108 1 76110 1 76114 1 76117 1 76118 1 76119 1 76122 1 76140 1 76145 1 76166 1 76168 1 76178 1 76183 1 76186 1 76188 1 76196 1 76209 1 76227 1 76236 1 76244 1 76249 1 76258 1 76260 1 76274 1 76280 1 76281 1 76283 1 76294 1 76298 1 76308 1 76313 1 76315 1 76319 1 76329 1 76337 1 76345 1 76349 1 76350 1 76361 1 76367 1 76369 1 76371 1 76375 1 76378 1 76382 1 76411 1 76412 1 76420 1 76430 1 76432 1 76438 1 76441 1 76445 1 76450 1 76452 1 76458 1 76460 1 76461 1 76463 1 76467 1 76473 1 76474 1 76480 1 76483 1 76484 1 76486 1 76488 1 76491 1 76494 1 76505 1 76506 1 76510 1 76512 1 76516 1 76527 1 76528 1 76541 1 76552 1 76553 1 76554 1 76556 1 76557 1 76564 1 76567 1 76578 1 76586 1 76591 1 76606 1 76615 1 76617 1 76618 1 76625 1 76627 1 76633 1 76636 1 76643 1 76648 1 76652 1 76655 1 76657 1 76659 1 76660 1 76663 1 76664 1 76668 1 76670 1 76671 1 76679 1 76689 1 76696 1 76705 1 76706 1 76707 1 76712 1 76726 1 76728 1 76742 1 76743 1 76747 1 76751 1 76753 1 76756 1 76764 1 76770 1 76771 1 76778 1 76780 1 76786 1 76793 1 76795 1 76805 1 76807 1 76813 1 76814 1 76816 1 76819 1 76820 1 76824 1 76832 1 76842 1 76845 1 76847 1 76855 1 76860 1 76862 1 76864 1 76872 1 76873 1 76881 1 76894 1 76897 1 76902 1 76904 1 76908 1 76909 1 76912 1 76916 1 76921 1 76924 1 76926 1 76935 1 76937 1 76948 1 76949 1 76950 1 76955 1 76960 1 76965 1 76970 1 76974 1 76977 1 76979 1 76983 1 76986 1 77009 1 77045 1 77046 1 77047 1 77051 1 77065 1 77072 1 77074 1 77080 1 77084 1 77094 1 77101 1 77105 1 77109 1 77111 1 77112 1 77113 1 77115 1 77123 1 77137 1 77144 1 77148 1 77162 1 77168 1 77170 1 77174 1 77188 1 77191 1 77194 1 77195 1 77204 1 77208 1 77209 1 77216 1 77222 1 77224 1 77226 1 77237 1 77240 1 77251 1 77255 1 77266 1 77274 1 77275 1 77291 1 77305 1 77307 1 77313 1 77314 1 77316 1 77317 1 77332 1 77335 1 77345 1 77352 1 77366 1 77384 1 77385 1 77395 1 77397 1 77401 1 77405 1 77407 1 77419 1 77429 1 77432 1 77445 1 77446 1 77453 1 77459 1 77463 1 77469 1 77471 1 77477 1 77481 1 77487 1 77488 1 77499 1 77501 1 77504 1 77508 1 77512 1 77513 1 77526 1 77527 1 77531 1 77546 1 77555 1 77557 1 77561 1 77570 1 77576 1 77582 1 77590 1 77592 1 77598 1 77599 1 77602 1 77604 1 77605 1 77606 1 77608 1 77613 1 77614 1 77615 1 77625 1 77630 1 77636 1 77645 1 77654 1 77659 1 77663 1 77669 1 77675 1 77683 1 77685 1 77690 1 77698 1 77703 1 77707 1 77708 1 77713 1 77716 1 77718 1 77724 1 77725 1 77730 1 77741 1 77745 1 77748 1 77749 1 77762 1 77765 1 77770 1 77787 1 77793 1 77798 1 77803 1 77804 1 77805 1 77812 1 77815 1 77824 1 77829 1 77837 1 77840 1 77841 1 77847 1 77849 1 77858 1 77866 1 77869 1 77873 1 77899 1 77911 1 77925 1 77926 1 77932 1 77936 1 77937 1 77941 1 77947 1 77951 1 77958 1 77966 1 77974 1 77976 1 77985 1 77990 1 77996 1 78012 1 78017 1 78019 1 78026 1 78037 1 78041 1 78057 1 78068 1 78077 1 78078 1 78086 1 78087 1 78088 1 78094 1 78099 1 78108 1 78121 1 78126 1 78130 1 78138 1 78148 1 78151 1 78156 1 78164 1 78181 1 78183 1 78188 1 78189 1 78194 1 78199 1 78207 1 78209 1 78212 1 78219 1 78220 1 78230 1 78231 1 78232 1 78236 1 78238 1 78240 1 78244 1 78254 1 78259 1 78263 1 78271 1 78275 1 78285 1 78286 1 78295 1 78303 1 78304 1 78308 1 78315 1 78318 1 78322 1 78323 1 78324 1 78334 1 78356 1 78362 1 78364 1 78370 1 78377 1 78384 1 78389 1 78391 1 78423 1 78424 1 78430 1 78436 1 78445 1 78463 1 78464 1 78471 1 78488 1 78491 1 78494 1 78496 1 78506 1 78521 1 78551 1 78572 1 78581 1 78597 1 78600 1 78601 1 78606 1 78616 1 78619 1 78631 1 78633 1 78637 1 78638 1 78659 1 78663 1 78664 1 78669 1 78676 1 78678 1 78684 1 78689 1 78691 1 78695 1 78698 1 78699 1 78701 1 78705 1 78713 1 78718 1 78723 1 78729 1 78730 1 78733 1 78748 1 78754 1 78757 1 78762 1 78776 1 78779 1 78780 1 78784 1 78792 1 78796 1 78799 1 78802 1 78817 1 78819 1 78821 1 78826 1 78832 1 78841 1 78851 1 78859 1 78866 1 78871 1 78876 1 78880 1 78907 1 78924 1 78927 1 78929 1 78931 1 78933 1 78943 1 78945 1 78952 1 78968 1 78975 1 78984 1 78998 1 79005 1 79009 1 79012 1 79013 1 79015 1 79018 1 79020 1 79024 1 79029 1 79040 1 79043 1 79046 1 79056 1 79073 1 79074 1 79077 1 79085 1 79087 1 79094 1 79099 1 79100 1 79120 1 79121 1 79122 1 79124 1 79125 1 79126 1 79143 1 79150 1 79151 1 79162 1 79168 1 79169 1 79170 1 79173 1 79187 1 79195 1 79199 1 79227 1 79235 1 79241 1 79250 1 79252 1 79261 1 79273 1 79277 1 79278 1 79279 1 79289 1 79300 1 79318 1 79321 1 79325 1 79348 1 79350 1 79351 1 79358 1 79371 1 79378 1 79386 1 79392 1 79399 1 79407 1 79416 1 79417 1 79421 1 79422 1 79435 1 79439 1 79442 1 79449 1 79461 1 79464 1 79468 1 79469 1 79476 1 79480 1 79485 1 79491 1 79492 1 79502 1 79511 1 79520 1 79525 1 79527 1 79531 1 79549 1 79552 1 79567 1 79580 1 79588 1 79591 1 79592 1 79605 1 79613 1 79630 1 79633 1 79643 1 79648 1 79649 1 79653 1 79654 1 79657 1 79670 1 79676 1 79683 1 79688 1 79695 1 79696 1 79704 1 79710 1 79717 1 79720 1 79724 1 79729 1 79731 1 79740 1 79744 1 79758 1 79760 1 79779 1 79785 1 79786 1 79787 1 79794 1 79796 1 79803 1 79826 1 79842 1 79844 1 79848 1 79862 1 79865 1 79869 1 79872 1 79881 1 79887 1 79892 1 79910 1 79914 1 79919 1 79924 1 79927 1 79933 1 79940 1 79942 1 79946 1 79948 1 79951 1 79960 1 79967 1 79969 1 79975 1 79979 1 79980 1 79982 1 79985 1 79989 1 79990 1 79995 1 79998 1 80000 1 80006 1 80011 1 80025 1 80032 1 80040 1 80042 1 80045 1 80067 1 80087 1 80093 1 80103 1 80112 1 80114 1 80117 1 80126 1 80127 1 80150 1 80153 1 80155 1 80170 1 80176 1 80184 1 80185 1 80188 1 80189 1 80197 1 80231 1 80247 1 80249 1 80259 1 80262 1 80274 1 80296 1 80309 1 80310 1 80328 1 80330 1 80333 1 80334 1 80335 1 80339 1 80347 1 80353 1 80361 1 80375 1 80380 1 80386 1 80413 1 80420 1 80427 1 80449 1 80452 1 80454 1 80455 1 80456 1 80458 1 80475 1 80479 1 80489 1 80493 1 80498 1 80510 1 80516 1 80517 1 80521 1 80541 1 80555 1 80559 1 80560 1 80564 1 80573 1 80579 1 80607 1 80620 1 80626 1 80642 1 80651 1 80655 1 80662 1 80663 1 80678 1 80679 1 80680 1 80685 1 80690 1 80696 1 80699 1 80703 1 80704 1 80705 1 80710 1 80730 1 80742 1 80758 1 80765 1 80769 1 80771 1 80777 1 80783 1 80792 1 80793 1 80796 1 80800 1 80801 1 80802 1 80807 1 80808 1 80819 1 80820 1 80828 1 80830 1 80832 1 80835 1 80837 1 80841 1 80843 1 80850 1 80860 1 80883 1 80884 1 80887 1 80896 1 80900 1 80913 1 80925 1 80929 1 80931 1 80943 1 80946 1 80952 1 80955 1 80958 1 80967 1 80969 1 80977 1 80978 1 80986 1 80989 1 80990 1 80991 1 80992 1 80995 1 80998 1 81005 1 81010 1 81015 1 81033 1 81037 1 81039 1 81040 1 81044 1 81046 1 81047 1 81049 1 81056 1 81067 1 81085 1 81096 1 81099 1 81105 1 81111 1 81116 1 81117 1 81119 1 81122 1 81130 1 81131 1 81139 1 81157 1 81167 1 81179 1 81187 1 81188 1 81191 1 81193 1 81196 1 81202 1 81206 1 81216 1 81228 1 81231 1 81233 1 81243 1 81252 1 81269 1 81270 1 81271 1 81274 1 81280 1 81287 1 81295 1 81298 1 81309 1 81310 1 81311 1 81313 1 81315 1 81318 1 81327 1 81328 1 81334 1 81336 1 81346 1 81348 1 81349 1 81353 1 81361 1 81370 1 81378 1 81385 1 81390 1 81400 1 81401 1 81407 1 81412 1 81413 1 81415 1 81429 1 81431 1 81438 1 81453 1 81454 1 81462 1 81474 1 81481 1 81482 1 81495 1 81499 1 81500 1 81504 1 81505 1 81520 1 81524 1 81525 1 81528 1 81530 1 81533 1 81534 1 81536 1 81547 1 81549 1 81565 1 81569 1 81572 1 81578 1 81588 1 81590 1 81591 1 81592 1 81607 1 81618 1 81622 1 81626 1 81634 1 81643 1 81646 1 81652 1 81655 1 81668 1 81675 1 81680 1 81688 1 81695 1 81715 1 81720 1 81724 1 81740 1 81756 1 81759 1 81763 1 81774 1 81779 1 81782 1 81786 1 81792 1 81798 1 81805 1 81806 1 81809 1 81811 1 81815 1 81821 1 81824 1 81831 1 81832 1 81852 1 81866 1 81871 1 81873 1 81876 1 81890 1 81896 1 81906 1 81913 1 81914 1 81925 1 81926 1 81936 1 81945 1 81947 1 81954 1 81959 1 81961 1 81965 1 81966 1 81967 1 81969 1 81971 1 81972 1 81980 1 81981 1 81989 1 81990 1 81993 1 81994 1 82006 1 82029 1 82032 1 82037 1 82042 1 82046 1 82051 1 82055 1 82060 1 82061 1 82073 1 82076 1 82079 1 82081 1 82083 1 82085 1 82112 1 82123 1 82128 1 82142 1 82143 1 82146 1 82157 1 82163 1 82167 1 82177 1 82180 1 82184 1 82186 1 82190 1 82213 1 82215 1 82220 1 82222 1 82235 1 82236 1 82255 1 82259 1 82273 1 82279 1 82283 1 82294 1 82298 1 82307 1 82318 1 82319 1 82320 1 82346 1 82348 1 82363 1 82366 1 82381 1 82394 1 82398 1 82404 1 82410 1 82414 1 82416 1 82424 1 82425 1 82428 1 82447 1 82448 1 82468 1 82483 1 82494 1 82495 1 82496 1 82497 1 82501 1 82502 1 82511 1 82515 1 82523 1 82526 1 82551 1 82552 1 82566 1 82571 1 82573 1 82575 1 82576 1 82579 1 82580 1 82581 1 82585 1 82589 1 82590 1 82603 1 82604 1 82617 1 82620 1 82625 1 82632 1 82643 1 82649 1 82667 1 82675 1 82677 1 82686 1 82689 1 82692 1 82695 1 82696 1 82702 1 82706 1 82708 1 82712 1 82718 1 82724 1 82731 1 82735 1 82742 1 82745 1 82750 1 82757 1 82759 1 82762 1 82764 1 82773 1 82790 1 82793 1 82832 1 82841 1 82846 1 82859 1 82873 1 82878 1 82881 1 82891 1 82892 1 82897 1 82908 1 82911 1 82923 1 82937 1 82942 1 82948 1 82951 1 82957 1 82960 1 82965 1 82973 1 82976 1 82980 1 82983 1 82984 1 82985 1 82992 1 82998 1 83006 1 83008 1 83009 1 83022 1 83035 1 83036 1 83056 1 83062 1 83063 1 83064 1 83065 1 83075 1 83077 1 83078 1 83080 1 83083 1 83084 1 83100 1 83110 1 83113 1 83114 1 83122 1 83125 1 83133 1 83136 1 83145 1 83159 1 83172 1 83177 1 83181 1 83185 1 83188 1 83190 1 83202 1 83214 1 83217 1 83221 1 83223 1 83231 1 83233 1 83237 1 83238 1 83239 1 83249 1 83253 1 83268 1 83269 1 83273 1 83274 1 83278 1 83280 1 83284 1 83285 1 83294 1 83298 1 83299 1 83301 1 83307 1 83310 1 83331 1 83349 1 83352 1 83357 1 83360 1 83363 1 83365 1 83373 1 83374 1 83379 1 83382 1 83386 1 83390 1 83391 1 83394 1 83400 1 83411 1 83426 1 83435 1 83441 1 83455 1 83457 1 83459 1 83462 1 83463 1 83467 1 83497 1 83498 1 83512 1 83518 1 83522 1 83531 1 83533 1 83541 1 83544 1 83551 1 83556 1 83573 1 83580 1 83585 1 83593 1 83605 1 83606 1 83609 1 83616 1 83618 1 83628 1 83630 1 83638 1 83652 1 83654 1 83660 1 83670 1 83683 1 83687 1 83689 1 83690 1 83691 1 83699 1 83700 1 83701 1 83705 1 83708 1 83710 1 83711 1 83713 1 83723 1 83734 1 83735 1 83748 1 83753 1 83758 1 83773 1 83775 1 83781 1 83782 1 83786 1 83787 1 83790 1 83797 1 83799 1 83809 1 83810 1 83811 1 83814 1 83827 1 83828 1 83830 1 83841 1 83869 1 83871 1 83876 1 83880 1 83885 1 83888 1 83897 1 83907 1 83934 1 83939 1 83944 1 83945 1 83946 1 83948 1 83958 1 83959 1 83967 1 83968 1 83970 1 83988 1 84006 1 84011 1 84018 1 84038 1 84040 1 84045 1 84049 1 84050 1 84051 1 84057 1 84067 1 84079 1 84082 1 84085 1 84086 1 84094 1 84107 1 84113 1 84115 1 84123 1 84131 1 84146 1 84156 1 84165 1 84167 1 84176 1 84187 1 84191 1 84198 1 84200 1 84205 1 84207 1 84216 1 84218 1 84226 1 84231 1 84238 1 84248 1 84249 1 84251 1 84254 1 84268 1 84287 1 84288 1 84289 1 84294 1 84295 1 84298 1 84301 1 84318 1 84321 1 84325 1 84335 1 84338 1 84339 1 84347 1 84363 1 84367 1 84371 1 84376 1 84381 1 84399 1 84409 1 84422 1 84426 1 84433 1 84441 1 84445 1 84446 1 84453 1 84462 1 84466 1 84469 1 84476 1 84482 1 84489 1 84496 1 84501 1 84503 1 84508 1 84512 1 84534 1 84535 1 84542 1 84547 1 84552 1 84553 1 84555 1 84558 1 84562 1 84568 1 84574 1 84583 1 84584 1 84585 1 84597 1 84598 1 84600 1 84602 1 84609 1 84613 1 84614 1 84642 1 84653 1 84654 1 84660 1 84662 1 84675 1 84683 1 84684 1 84692 1 84696 1 84702 1 84707 1 84708 1 84709 1 84714 1 84718 1 84719 1 84722 1 84733 1 84745 1 84749 1 84755 1 84774 1 84782 1 84795 1 84802 1 84808 1 84814 1 84815 1 84819 1 84823 1 84825 1 84831 1 84836 1 84839 1 84844 1 84851 1 84855 1 84856 1 84857 1 84860 1 84868 1 84871 1 84875 1 84878 1 84885 1 84887 1 84895 1 84901 1 84904 1 84909 1 84914 1 84922 1 84926 1 84938 1 84944 1 84947 1 84948 1 84949 1 84951 1 84954 1 84959 1 84961 1 84971 1 84972 1 84973 1 84974 1 85015 1 85023 1 85036 1 85039 1 85042 1 85044 1 85062 1 85071 1 85091 1 85100 1 85111 1 85119 1 85122 1 85129 1 85132 1 85136 1 85142 1 85149 1 85151 1 85153 1 85155 1 85169 1 85174 1 85175 1 85177 1 85189 1 85196 1 85200 1 85207 1 85214 1 85223 1 85229 1 85236 1 85242 1 85246 1 85253 1 85260 1 85270 1 85275 1 85278 1 85280 1 85288 1 85293 1 85295 1 85296 1 85301 1 85335 1 85339 1 85342 1 85347 1 85361 1 85369 1 85374 1 85379 1 85384 1 85388 1 85389 1 85390 1 85395 1 85408 1 85411 1 85415 1 85418 1 85421 1 85444 1 85451 1 85454 1 85457 1 85458 1 85461 1 85474 1 85483 1 85491 1 85497 1 85499 1 85504 1 85526 1 85529 1 85540 1 85553 1 85554 1 85556 1 85571 1 85576 1 85578 1 85582 1 85593 1 85597 1 85602 1 85609 1 85611 1 85617 1 85620 1 85624 1 85627 1 85634 1 85636 1 85651 1 85659 1 85663 1 85668 1 85669 1 85687 1 85700 1 85703 1 85706 1 85708 1 85737 1 85738 1 85742 1 85745 1 85753 1 85754 1 85768 1 85770 1 85772 1 85776 1 85783 1 85793 1 85797 1 85798 1 85800 1 85812 1 85821 1 85822 1 85842 1 85843 1 85844 1 85850 1 85857 1 85858 1 85868 1 85877 1 85893 1 85896 1 85900 1 85908 1 85914 1 85919 1 85924 1 85928 1 85932 1 85933 1 85949 1 85957 1 85960 1 85965 1 85969 1 85973 1 85977 1 85978 1 85988 1 85991 1 85999 1 86004 1 86007 1 86019 1 86031 1 86035 1 86037 1 86038 1 86042 1 86047 1 86049 1 86051 1 86053 1 86056 1 86058 1 86069 1 86070 1 86072 1 86076 1 86083 1 86087 1 86089 1 86094 1 86111 1 86118 1 86122 1 86124 1 86125 1 86127 1 86149 1 86153 1 86156 1 86158 1 86179 1 86186 1 86187 1 86189 1 86209 1 86215 1 86219 1 86225 1 86226 1 86228 1 86229 1 86236 1 86243 1 86288 1 86294 1 86303 1 86304 1 86330 1 86335 1 86337 1 86353 1 86360 1 86369 1 86390 1 86391 1 86402 1 86420 1 86424 1 86426 1 86427 1 86434 1 86437 1 86439 1 86443 1 86451 1 86453 1 86456 1 86458 1 86459 1 86464 1 86466 1 86476 1 86477 1 86499 1 86500 1 86507 1 86509 1 86518 1 86522 1 86530 1 86531 1 86532 1 86537 1 86541 1 86544 1 86550 1 86552 1 86570 1 86573 1 86579 1 86580 1 86584 1 86586 1 86588 1 86601 1 86606 1 86607 1 86608 1 86609 1 86615 1 86620 1 86625 1 86635 1 86638 1 86639 1 86646 1 86647 1 86653 1 86656 1 86659 1 86665 1 86672 1 86673 1 86682 1 86695 1 86705 1 86707 1 86711 1 86719 1 86743 1 86745 1 86749 1 86753 1 86769 1 86774 1 86780 1 86784 1 86790 1 86791 1 86803 1 86808 1 86811 1 86841 1 86846 1 86849 1 86852 1 86853 1 86862 1 86865 1 86868 1 86882 1 86883 1 86888 1 86898 1 86904 1 86911 1 86917 1 86918 1 86922 1 86925 1 86939 1 86948 1 86949 1 86955 1 86964 1 86966 1 86980 1 87004 1 87013 1 87016 1 87020 1 87021 1 87022 1 87031 1 87035 1 87042 1 87043 1 87066 1 87068 1 87081 1 87084 1 87085 1 87087 1 87089 1 87093 1 87097 1 87100 1 87107 1 87109 1 87115 1 87116 1 87117 1 87118 1 87144 1 87148 1 87152 1 87161 1 87163 1 87165 1 87166 1 87174 1 87182 1 87184 1 87191 1 87204 1 87206 1 87207 1 87212 1 87218 1 87223 1 87234 1 87249 1 87266 1 87268 1 87272 1 87273 1 87276 1 87285 1 87308 1 87319 1 87326 1 87330 1 87335 1 87336 1 87339 1 87341 1 87346 1 87349 1 87354 1 87356 1 87359 1 87361 1 87371 1 87373 1 87379 1 87396 1 87398 1 87399 1 87406 1 87410 1 87411 1 87430 1 87439 1 87452 1 87453 1 87462 1 87477 1 87486 1 87490 1 87497 1 87504 1 87505 1 87518 1 87520 1 87521 1 87526 1 87551 1 87567 1 87568 1 87570 1 87580 1 87586 1 87590 1 87593 1 87602 1 87612 1 87619 1 87633 1 87637 1 87642 1 87651 1 87659 1 87663 1 87664 1 87668 1 87673 1 87674 1 87677 1 87679 1 87682 1 87687 1 87698 1 87701 1 87715 1 87723 1 87738 1 87744 1 87749 1 87755 1 87760 1 87779 1 87786 1 87787 1 87799 1 87800 1 87801 1 87802 1 87844 1 87851 1 87863 1 87866 1 87867 1 87869 1 87874 1 87879 1 87885 1 87895 1 87898 1 87902 1 87906 1 87908 1 87911 1 87915 1 87918 1 87921 1 87928 1 87931 1 87940 1 87945 1 87950 1 87959 1 87964 1 87969 1 87971 1 87978 1 87983 1 87985 1 87986 1 87989 1 87992 1 87999 1 88001 1 88011 1 88023 1 88028 1 88030 1 88059 1 88062 1 88065 1 88073 1 88075 1 88079 1 88090 1 88093 1 88103 1 88105 1 88113 1 88122 1 88137 1 88140 1 88157 1 88160 1 88165 1 88171 1 88176 1 88182 1 88192 1 88202 1 88210 1 88219 1 88221 1 88231 1 88238 1 88245 1 88259 1 88271 1 88281 1 88286 1 88287 1 88297 1 88308 1 88310 1 88337 1 88338 1 88346 1 88352 1 88359 1 88362 1 88369 1 88376 1 88380 1 88381 1 88391 1 88407 1 88415 1 88429 1 88433 1 88443 1 88446 1 88452 1 88454 1 88462 1 88469 1 88471 1 88475 1 88477 1 88495 1 88504 1 88521 1 88526 1 88535 1 88536 1 88543 1 88550 1 88551 1 88555 1 88557 1 88558 1 88560 1 88574 1 88585 1 88590 1 88593 1 88598 1 88605 1 88609 1 88619 1 88620 1 88622 1 88633 1 88645 1 88650 1 88652 1 88658 1 88662 1 88673 1 88688 1 88706 1 88723 1 88728 1 88729 1 88730 1 88732 1 88734 1 88737 1 88750 1 88766 1 88768 1 88774 1 88779 1 88782 1 88792 1 88801 1 88814 1 88816 1 88820 1 88822 1 88824 1 88834 1 88836 1 88837 1 88840 1 88841 1 88844 1 88867 1 88885 1 88886 1 88887 1 88888 1 88902 1 88910 1 88916 1 88925 1 88926 1 88932 1 88942 1 88948 1 88949 1 88964 1 88965 1 88969 1 88975 1 88976 1 88986 1 89001 1 89006 1 89014 1 89018 1 89022 1 89023 1 89032 1 89040 1 89047 1 89069 1 89076 1 89078 1 89088 1 89090 1 89093 1 89094 1 89108 1 89116 1 89117 1 89123 1 89124 1 89125 1 89132 1 89147 1 89149 1 89151 1 89154 1 89160 1 89184 1 89187 1 89188 1 89207 1 89217 1 89221 1 89223 1 89226 1 89227 1 89229 1 89231 1 89235 1 89241 1 89242 1 89250 1 89255 1 89259 1 89276 1 89282 1 89290 1 89293 1 89294 1 89297 1 89300 1 89307 1 89313 1 89316 1 89321 1 89331 1 89339 1 89343 1 89347 1 89364 1 89379 1 89385 1 89387 1 89396 1 89397 1 89400 1 89401 1 89410 1 89417 1 89444 1 89451 1 89452 1 89476 1 89479 1 89482 1 89486 1 89488 1 89490 1 89497 1 89498 1 89501 1 89506 1 89510 1 89521 1 89524 1 89527 1 89548 1 89551 1 89564 1 89569 1 89571 1 89574 1 89585 1 89589 1 89593 1 89598 1 89605 1 89617 1 89623 1 89630 1 89635 1 89639 1 89646 1 89663 1 89672 1 89676 1 89679 1 89695 1 89697 1 89712 1 89713 1 89714 1 89715 1 89716 1 89720 1 89724 1 89728 1 89747 1 89749 1 89757 1 89761 1 89762 1 89764 1 89775 1 89787 1 89793 1 89795 1 89806 1 89811 1 89818 1 89820 1 89821 1 89832 1 89835 1 89848 1 89852 1 89867 1 89868 1 89870 1 89873 1 89877 1 89878 1 89882 1 89891 1 89892 1 89894 1 89904 1 89923 1 89926 1 89929 1 89935 1 89942 1 89943 1 89944 1 89945 1 89950 1 89952 1 89957 1 89965 1 89969 1 89979 1 89982 1 89985 1 89996 1 90001 1 90006 1 90014 1 90016 1 90028 1 90035 1 90041 1 90046 1 90050 1 90067 1 90073 1 90084 1 90093 1 90096 1 90099 1 90101 1 90106 1 90111 1 90115 1 90119 1 90131 1 90137 1 90140 1 90142 1 90144 1 90146 1 90151 1 90152 1 90156 1 90157 1 90158 1 90163 1 90164 1 90167 1 90168 1 90171 1 90172 1 90179 1 90185 1 90188 1 90198 1 90199 1 90210 1 90221 1 90224 1 90229 1 90232 1 90239 1 90240 1 90243 1 90244 1 90250 1 90259 1 90260 1 90261 1 90264 1 90277 1 90278 1 90302 1 90321 1 90323 1 90326 1 90328 1 90333 1 90337 1 90339 1 90342 1 90346 1 90348 1 90351 1 90361 1 90369 1 90379 1 90393 1 90395 1 90396 1 90398 1 90401 1 90402 1 90411 1 90413 1 90427 1 90432 1 90434 1 90437 1 90448 1 90466 1 90469 1 90482 1 90486 1 90488 1 90489 1 90490 1 90496 1 90502 1 90511 1 90514 1 90518 1 90531 1 90533 1 90536 1 90539 1 90557 1 90571 1 90582 1 90592 1 90595 1 90598 1 90605 1 90607 1 90608 1 90615 1 90623 1 90624 1 90633 1 90636 1 90641 1 90643 1 90654 1 90655 1 90657 1 90666 1 90674 1 90677 1 90686 1 90708 1 90725 1 90726 1 90729 1 90732 1 90744 1 90755 1 90756 1 90757 1 90763 1 90768 1 90777 1 90786 1 90789 1 90793 1 90796 1 90802 1 90803 1 90806 1 90813 1 90823 1 90831 1 90844 1 90845 1 90846 1 90847 1 90852 1 90858 1 90860 1 90865 1 90880 1 90891 1 90895 1 90896 1 90899 1 90906 1 90907 1 90908 1 90914 1 90915 1 90917 1 90924 1 90927 1 90952 1 90962 1 90976 1 90988 1 90989 1 90991 1 91000 1 91006 1 91012 1 91015 1 91024 1 91043 1 91047 1 91076 1 91095 1 91102 1 91111 1 91116 1 91122 1 91132 1 91141 1 91144 1 91151 1 91157 1 91158 1 91160 1 91166 1 91171 1 91172 1 91176 1 91177 1 91185 1 91190 1 91194 1 91202 1 91203 1 91208 1 91217 1 91227 1 91228 1 91240 1 91243 1 91250 1 91265 1 91267 1 91271 1 91276 1 91281 1 91285 1 91290 1 91291 1 91295 1 91297 1 91298 1 91302 1 91307 1 91321 1 91325 1 91327 1 91328 1 91341 1 91350 1 91357 1 91358 1 91361 1 91370 1 91371 1 91378 1 91391 1 91393 1 91402 1 91409 1 91414 1 91421 1 91431 1 91435 1 91437 1 91442 1 91453 1 91462 1 91476 1 91488 1 91491 1 91497 1 91499 1 91506 1 91507 1 91515 1 91521 1 91527 1 91543 1 91558 1 91565 1 91578 1 91586 1 91595 1 91600 1 91604 1 91615 1 91623 1 91627 1 91637 1 91653 1 91654 1 91655 1 91656 1 91666 1 91673 1 91677 1 91682 1 91689 1 91690 1 91693 1 91699 1 91723 1 91734 1 91740 1 91743 1 91755 1 91758 1 91760 1 91763 1 91771 1 91772 1 91774 1 91776 1 91777 1 91781 1 91782 1 91784 1 91789 1 91795 1 91797 1 91799 1 91804 1 91806 1 91812 1 91824 1 91828 1 91833 1 91848 1 91852 1 91858 1 91861 1 91866 1 91867 1 91869 1 91874 1 91889 1 91890 1 91897 1 91899 1 91920 1 91932 1 91935 1 91944 1 91958 1 91959 1 91977 1 91978 1 91984 1 91986 1 91995 1 92001 1 92002 1 92015 1 92025 1 92031 1 92035 1 92051 1 92056 1 92057 1 92066 1 92076 1 92095 1 92098 1 92099 1 92103 1 92108 1 92114 1 92124 1 92125 1 92126 1 92127 1 92134 1 92139 1 92145 1 92148 1 92150 1 92153 1 92154 1 92155 1 92158 1 92161 1 92163 1 92173 1 92177 1 92184 1 92190 1 92191 1 92197 1 92198 1 92202 1 92216 1 92235 1 92240 1 92249 1 92256 1 92257 1 92259 1 92261 1 92283 1 92288 1 92299 1 92301 1 92306 1 92313 1 92315 1 92317 1 92330 1 92335 1 92347 1 92348 1 92349 1 92382 1 92390 1 92398 1 92399 1 92400 1 92401 1 92402 1 92404 1 92411 1 92415 1 92423 1 92437 1 92438 1 92444 1 92447 1 92448 1 92449 1 92470 1 92477 1 92478 1 92480 1 92483 1 92488 1 92491 1 92498 1 92502 1 92517 1 92518 1 92520 1 92523 1 92533 1 92545 1 92549 1 92555 1 92565 1 92568 1 92591 1 92592 1 92593 1 92599 1 92603 1 92605 1 92606 1 92608 1 92611 1 92616 1 92623 1 92633 1 92634 1 92638 1 92653 1 92654 1 92659 1 92664 1 92666 1 92669 1 92687 1 92694 1 92697 1 92703 1 92709 1 92711 1 92712 1 92713 1 92719 1 92725 1 92734 1 92736 1 92737 1 92738 1 92754 1 92755 1 92765 1 92766 1 92781 1 92783 1 92791 1 92792 1 92798 1 92803 1 92806 1 92815 1 92818 1 92819 1 92823 1 92826 1 92841 1 92842 1 92845 1 92876 1 92877 1 92882 1 92886 1 92889 1 92890 1 92891 1 92907 1 92916 1 92917 1 92919 1 92926 1 92929 1 92930 1 92938 1 92945 1 92957 1 92958 1 92960 1 92965 1 92977 1 92996 1 92998 1 92999 1 93024 1 93025 1 93028 1 93047 1 93052 1 93059 1 93066 1 93069 1 93083 1 93085 1 93092 1 93093 1 93097 1 93103 1 93106 1 93118 1 93123 1 93140 1 93143 1 93147 1 93157 1 93162 1 93165 1 93182 1 93191 1 93198 1 93203 1 93207 1 93208 1 93213 1 93220 1 93226 1 93229 1 93230 1 93231 1 93251 1 93261 1 93270 1 93271 1 93280 1 93281 1 93289 1 93295 1 93296 1 93301 1 93306 1 93307 1 93311 1 93318 1 93321 1 93326 1 93332 1 93341 1 93343 1 93348 1 93355 1 93357 1 93370 1 93374 1 93377 1 93379 1 93387 1 93398 1 93403 1 93404 1 93408 1 93410 1 93419 1 93424 1 93425 1 93426 1 93429 1 93442 1 93458 1 93466 1 93471 1 93478 1 93480 1 93487 1 93488 1 93505 1 93506 1 93509 1 93511 1 93518 1 93524 1 93528 1 93533 1 93538 1 93543 1 93553 1 93559 1 93570 1 93577 1 93582 1 93591 1 93593 1 93612 1 93615 1 93616 1 93617 1 93627 1 93631 1 93636 1 93646 1 93650 1 93660 1 93661 1 93662 1 93678 1 93684 1 93686 1 93694 1 93704 1 93705 1 93707 1 93715 1 93721 1 93723 1 93729 1 93735 1 93737 1 93741 1 93749 1 93750 1 93753 1 93759 1 93769 1 93773 1 93774 1 93781 1 93783 1 93785 1 93798 1 93807 1 93820 1 93824 1 93826 1 93827 1 93834 1 93837 1 93851 1 93854 1 93858 1 93859 1 93861 1 93864 1 93866 1 93870 1 93872 1 93873 1 93874 1 93876 1 93879 1 93883 1 93896 1 93905 1 93911 1 93919 1 93938 1 93944 1 93949 1 93950 1 93951 1 93952 1 93965 1 93968 1 93981 1 93982 1 93984 1 93987 1 93997 1 94001 1 94003 1 94007 1 94010 1 94012 1 94015 1 94016 1 94019 1 94034 1 94037 1 94043 1 94046 1 94051 1 94054 1 94065 1 94066 1 94078 1 94079 1 94082 1 94083 1 94086 1 94093 1 94094 1 94097 1 94099 1 94109 1 94118 1 94120 1 94121 1 94126 1 94129 1 94144 1 94149 1 94156 1 94168 1 94170 1 94175 1 94176 1 94178 1 94189 1 94191 1 94196 1 94201 1 94209 1 94213 1 94226 1 94239 1 94244 1 94248 1 94250 1 94256 1 94261 1 94265 1 94273 1 94285 1 94286 1 94292 1 94303 1 94318 1 94348 1 94354 1 94362 1 94370 1 94373 1 94376 1 94380 1 94393 1 94400 1 94404 1 94427 1 94439 1 94446 1 94468 1 94470 1 94476 1 94481 1 94486 1 94488 1 94489 1 94490 1 94493 1 94502 1 94508 1 94515 1 94522 1 94524 1 94527 1 94532 1 94537 1 94538 1 94539 1 94544 1 94556 1 94566 1 94571 1 94572 1 94575 1 94580 1 94584 1 94586 1 94587 1 94592 1 94626 1 94628 1 94631 1 94637 1 94643 1 94645 1 94654 1 94670 1 94682 1 94702 1 94718 1 94724 1 94728 1 94743 1 94744 1 94751 1 94755 1 94767 1 94775 1 94781 1 94790 1 94795 1 94800 1 94821 1 94823 1 94844 1 94847 1 94848 1 94852 1 94859 1 94861 1 94864 1 94865 1 94877 1 94882 1 94885 1 94890 1 94892 1 94894 1 94921 1 94925 1 94933 1 94936 1 94944 1 94950 1 94957 1 94966 1 94967 1 94971 1 94974 1 94975 1 94979 1 94986 1 94989 1 94998 1 95000 1 95011 1 95013 1 95020 1 95026 1 95034 1 95036 1 95052 1 95059 1 95071 1 95072 1 95073 1 95074 1 95077 1 95085 1 95095 1 95099 1 95103 1 95108 1 95109 1 95110 1 95127 1 95130 1 95131 1 95142 1 95149 1 95154 1 95165 1 95167 1 95169 1 95170 1 95174 1 95180 1 95193 1 95194 1 95197 1 95217 1 95225 1 95233 1 95235 1 95236 1 95243 1 95246 1 95257 1 95259 1 95260 1 95264 1 95265 1 95267 1 95271 1 95275 1 95301 1 95307 1 95308 1 95313 1 95318 1 95338 1 95347 1 95351 1 95352 1 95360 1 95365 1 95367 1 95373 1 95383 1 95385 1 95397 1 95402 1 95404 1 95409 1 95422 1 95427 1 95438 1 95442 1 95446 1 95461 1 95462 1 95488 1 95492 1 95495 1 95503 1 95504 1 95506 1 95516 1 95518 1 95520 1 95525 1 95528 1 95535 1 95537 1 95548 1 95551 1 95552 1 95555 1 95560 1 95564 1 95568 1 95580 1 95582 1 95593 1 95596 1 95606 1 95608 1 95614 1 95621 1 95622 1 95629 1 95653 1 95662 1 95675 1 95693 1 95699 1 95705 1 95707 1 95710 1 95719 1 95726 1 95732 1 95738 1 95750 1 95761 1 95766 1 95789 1 95796 1 95797 1 95800 1 95815 1 95825 1 95828 1 95830 1 95846 1 95852 1 95854 1 95858 1 95864 1 95872 1 95876 1 95877 1 95891 1 95892 1 95895 1 95896 1 95900 1 95902 1 95909 1 95911 1 95915 1 95916 1 95924 1 95926 1 95928 1 95941 1 95943 1 95944 1 95945 1 95956 1 95957 1 95958 1 95968 1 95974 1 95984 1 95990 1 95992 1 96001 1 96003 1 96010 1 96014 1 96016 1 96017 1 96028 1 96040 1 96041 1 96052 1 96059 1 96060 1 96063 1 96064 1 96082 1 96083 1 96092 1 96104 1 96107 1 96113 1 96117 1 96122 1 96131 1 96135 1 96148 1 96149 1 96152 1 96154 1 96166 1 96174 1 96184 1 96190 1 96198 1 96205 1 96209 1 96215 1 96216 1 96217 1 96227 1 96228 1 96232 1 96248 1 96251 1 96257 1 96268 1 96272 1 96278 1 96291 1 96293 1 96297 1 96301 1 96304 1 96306 1 96321 1 96326 1 96329 1 96333 1 96348 1 96349 1 96350 1 96359 1 96361 1 96363 1 96371 1 96373 1 96379 1 96386 1 96389 1 96406 1 96409 1 96415 1 96417 1 96418 1 96419 1 96423 1 96442 1 96458 1 96470 1 96475 1 96476 1 96498 1 96508 1 96509 1 96515 1 96522 1 96528 1 96529 1 96534 1 96539 1 96540 1 96541 1 96549 1 96550 1 96554 1 96558 1 96559 1 96569 1 96575 1 96576 1 96585 1 96586 1 96587 1 96593 1 96598 1 96599 1 96600 1 96607 1 96608 1 96611 1 96615 1 96616 1 96623 1 96624 1 96625 1 96631 1 96660 1 96662 1 96672 1 96674 1 96678 1 96681 1 96682 1 96706 1 96716 1 96724 1 96728 1 96733 1 96736 1 96744 1 96754 1 96760 1 96768 1 96771 1 96780 1 96787 1 96791 1 96793 1 96800 1 96805 1 96806 1 96815 1 96820 1 96821 1 96829 1 96833 1 96837 1 96840 1 96843 1 96871 1 96876 1 96878 1 96882 1 96885 1 96893 1 96894 1 96901 1 96902 1 96926 1 96936 1 96939 1 96946 1 96948 1 96950 1 96952 1 96958 1 96985 1 96990 1 96993 1 96996 1 96997 1 97009 1 97017 1 97029 1 97030 1 97034 1 97040 1 97043 1 97050 1 97063 1 97069 1 97079 1 97082 1 97090 1 97097 1 97102 1 97103 1 97121 1 97127 1 97130 1 97137 1 97139 1 97141 1 97149 1 97154 1 97157 1 97158 1 97173 1 97187 1 97188 1 97191 1 97194 1 97201 1 97208 1 97212 1 97218 1 97225 1 97227 1 97230 1 97250 1 97252 1 97253 1 97262 1 97270 1 97272 1 97275 1 97282 1 97292 1 97310 1 97313 1 97323 1 97328 1 97339 1 97340 1 97360 1 97370 1 97373 1 97376 1 97379 1 97387 1 97405 1 97423 1 97425 1 97432 1 97442 1 97444 1 97447 1 97458 1 97462 1 97465 1 97470 1 97473 1 97480 1 97493 1 97496 1 97504 1 97506 1 97513 1 97514 1 97524 1 97531 1 97538 1 97551 1 97553 1 97556 1 97560 1 97565 1 97574 1 97583 1 97595 1 97596 1 97602 1 97606 1 97616 1 97619 1 97622 1 97627 1 97656 1 97659 1 97663 1 97665 1 97666 1 97672 1 97684 1 97693 1 97696 1 97700 1 97705 1 97708 1 97723 1 97739 1 97749 1 97750 1 97752 1 97755 1 97762 1 97769 1 97773 1 97775 1 97776 1 97780 1 97781 1 97789 1 97790 1 97820 1 97825 1 97827 1 97839 1 97847 1 97849 1 97851 1 97858 1 97873 1 97875 1 97885 1 97888 1 97892 1 97893 1 97898 1 97900 1 97908 1 97921 1 97922 1 97923 1 97928 1 97933 1 97936 1 97949 1 97951 1 97961 1 97983 1 97984 1 97987 1 97995 1 98000 1 98007 1 98015 1 98018 1 98041 1 98044 1 98045 1 98047 1 98051 1 98052 1 98053 1 98054 1 98081 1 98089 1 98097 1 98099 1 98107 1 98112 1 98115 1 98133 1 98134 1 98143 1 98146 1 98150 1 98156 1 98158 1 98161 1 98164 1 98177 1 98180 1 98181 1 98182 1 98183 1 98188 1 98195 1 98200 1 98206 1 98210 1 98213 1 98225 1 98229 1 98237 1 98239 1 98244 1 98246 1 98247 1 98250 1 98251 1 98257 1 98261 1 98266 1 98269 1 98275 1 98288 1 98298 1 98307 1 98309 1 98320 1 98325 1 98336 1 98352 1 98354 1 98355 1 98356 1 98360 1 98369 1 98373 1 98377 1 98381 1 98383 1 98400 1 98416 1 98418 1 98421 1 98434 1 98441 1 98444 1 98454 1 98459 1 98465 1 98468 1 98477 1 98503 1 98505 1 98513 1 98516 1 98526 1 98527 1 98529 1 98539 1 98543 1 98545 1 98558 1 98560 1 98565 1 98567 1 98572 1 98573 1 98578 1 98581 1 98583 1 98588 1 98595 1 98612 1 98627 1 98641 1 98648 1 98654 1 98657 1 98665 1 98670 1 98676 1 98686 1 98693 1 98702 1 98707 1 98714 1 98715 1 98719 1 98725 1 98737 1 98739 1 98741 1 98743 1 98750 1 98753 1 98760 1 98764 1 98769 1 98777 1 98808 1 98811 1 98827 1 98832 1 98833 1 98837 1 98847 1 98859 1 98860 1 98861 1 98862 1 98863 1 98871 1 98874 1 98875 1 98882 1 98884 1 98885 1 98890 1 98900 1 98913 1 98918 1 98920 1 98923 1 98931 1 98935 1 98947 1 98956 1 98959 1 98960 1 98961 1 98962 1 98963 1 98977 1 98983 1 98989 1 11 2 15 2 21 2 31 2 37 2 46 2 63 2 67 2 75 2 77 2 84 2 99 2 105 2 115 2 121 2 125 2 148 2 149 2 152 2 165 2 166 2 177 2 183 2 186 2 194 2 197 2 214 2 224 2 228 2 239 2 255 2 259 2 262 2 264 2 272 2 273 2 274 2 276 2 289 2 297 2 298 2 299 2 303 2 304 2 309 2 313 2 317 2 330 2 333 2 352 2 353 2 357 2 363 2 372 2 373 2 382 2 386 2 392 2 394 2 396 2 405 2 416 2 418 2 421 2 428 2 429 2 430 2 434 2 440 2 447 2 448 2 450 2 458 2 477 2 480 2 490 2 491 2 502 2 504 2 508 2 526 2 541 2 553 2 555 2 560 2 569 2 570 2 572 2 586 2 596 2 611 2 613 2 620 2 625 2 631 2 634 2 640 2 653 2 668 2 673 2 684 2 686 2 699 2 703 2 709 2 712 2 718 2 719 2 722 2 724 2 731 2 733 2 738 2 743 2 756 2 767 2 770 2 775 2 778 2 779 2 786 2 792 2 796 2 804 2 813 2 818 2 819 2 824 2 826 2 830 2 835 2 836 2 843 2 848 2 850 2 853 2 854 2 869 2 871 2 875 2 878 2 891 2 894 2 895 2 900 2 901 2 914 2 915 2 918 2 921 2 922 2 923 2 936 2 938 2 940 2 941 2 943 2 944 2 965 2 966 2 979 2 987 2 990 2 1004 2 1006 2 1007 2 1008 2 1016 2 1022 2 1030 2 1033 2 1037 2 1038 2 1044 2 1063 2 1087 2 1092 2 1097 2 1109 2 1121 2 1140 2 1152 2 1164 2 1175 2 1181 2 1182 2 1196 2 1202 2 1204 2 1212 2 1214 2 1233 2 1239 2 1240 2 1241 2 1246 2 1253 2 1262 2 1275 2 1281 2 1283 2 1295 2 1296 2 1307 2 1308 2 1317 2 1320 2 1327 2 1334 2 1340 2 1356 2 1360 2 1362 2 1367 2 1371 2 1372 2 1400 2 1401 2 1408 2 1415 2 1418 2 1421 2 1427 2 1428 2 1433 2 1437 2 1440 2 1442 2 1446 2 1459 2 1460 2 1461 2 1463 2 1465 2 1471 2 1481 2 1485 2 1521 2 1526 2 1548 2 1549 2 1556 2 1558 2 1559 2 1561 2 1566 2 1567 2 1570 2 1587 2 1588 2 1606 2 1610 2 1611 2 1619 2 1628 2 1630 2 1634 2 1636 2 1639 2 1643 2 1653 2 1664 2 1675 2 1679 2 1695 2 1698 2 1704 2 1716 2 1724 2 1740 2 1751 2 1762 2 1763 2 1785 2 1792 2 1801 2 1809 2 1813 2 1820 2 1821 2 1823 2 1831 2 1834 2 1837 2 1847 2 1849 2 1858 2 1899 2 1909 2 1919 2 1923 2 1929 2 1944 2 1949 2 1964 2 1965 2 1986 2 2006 2 2013 2 2023 2 2031 2 2035 2 2044 2 2045 2 2048 2 2049 2 2059 2 2060 2 2062 2 2069 2 2077 2 2079 2 2086 2 2096 2 2097 2 2098 2 2104 2 2108 2 2113 2 2115 2 2116 2 2117 2 2122 2 2138 2 2156 2 2160 2 2166 2 2182 2 2183 2 2187 2 2193 2 2208 2 2210 2 2215 2 2216 2 2217 2 2228 2 2229 2 2230 2 2236 2 2243 2 2252 2 2253 2 2256 2 2263 2 2266 2 2270 2 2271 2 2283 2 2285 2 2288 2 2295 2 2296 2 2299 2 2301 2 2314 2 2320 2 2324 2 2326 2 2327 2 2328 2 2332 2 2342 2 2356 2 2360 2 2367 2 2371 2 2376 2 2379 2 2381 2 2390 2 2395 2 2407 2 2408 2 2410 2 2415 2 2419 2 2424 2 2430 2 2431 2 2438 2 2439 2 2447 2 2449 2 2467 2 2472 2 2484 2 2486 2 2496 2 2497 2 2506 2 2508 2 2509 2 2512 2 2516 2 2518 2 2532 2 2535 2 2551 2 2555 2 2561 2 2568 2 2573 2 2578 2 2579 2 2580 2 2585 2 2587 2 2600 2 2608 2 2615 2 2619 2 2628 2 2635 2 2638 2 2649 2 2656 2 2660 2 2667 2 2675 2 2681 2 2684 2 2687 2 2696 2 2699 2 2720 2 2721 2 2722 2 2739 2 2750 2 2758 2 2759 2 2761 2 2794 2 2799 2 2806 2 2808 2 2820 2 2821 2 2830 2 2840 2 2842 2 2845 2 2852 2 2859 2 2861 2 2862 2 2868 2 2882 2 2885 2 2889 2 2891 2 2934 2 2937 2 2942 2 2950 2 2963 2 2972 2 2975 2 2977 2 2994 2 2999 2 3009 2 3013 2 3014 2 3015 2 3018 2 3019 2 3023 2 3029 2 3035 2 3043 2 3047 2 3049 2 3055 2 3060 2 3062 2 3064 2 3080 2 3084 2 3090 2 3091 2 3116 2 3124 2 3136 2 3137 2 3139 2 3143 2 3154 2 3174 2 3180 2 3182 2 3184 2 3210 2 3222 2 3225 2 3226 2 3228 2 3261 2 3263 2 3272 2 3280 2 3281 2 3284 2 3293 2 3300 2 3301 2 3302 2 3304 2 3312 2 3320 2 3322 2 3325 2 3331 2 3340 2 3344 2 3352 2 3355 2 3359 2 3370 2 3378 2 3379 2 3386 2 3392 2 3396 2 3401 2 3406 2 3435 2 3448 2 3460 2 3463 2 3466 2 3474 2 3480 2 3491 2 3494 2 3495 2 3498 2 3504 2 3522 2 3531 2 3533 2 3540 2 3548 2 3552 2 3554 2 3556 2 3565 2 3585 2 3588 2 3593 2 3598 2 3602 2 3606 2 3619 2 3629 2 3634 2 3642 2 3649 2 3654 2 3658 2 3661 2 3662 2 3663 2 3674 2 3678 2 3697 2 3702 2 3712 2 3722 2 3727 2 3729 2 3732 2 3738 2 3745 2 3747 2 3758 2 3772 2 3776 2 3783 2 3788 2 3791 2 3798 2 3804 2 3806 2 3813 2 3818 2 3825 2 3829 2 3835 2 3850 2 3853 2 3871 2 3874 2 3875 2 3885 2 3888 2 3893 2 3896 2 3900 2 3904 2 3909 2 3910 2 3911 2 3916 2 3917 2 3919 2 3922 2 3931 2 3934 2 3936 2 3946 2 3975 2 3980 2 3989 2 3990 2 3991 2 3995 2 3996 2 3998 2 4018 2 4021 2 4024 2 4032 2 4035 2 4038 2 4040 2 4044 2 4047 2 4053 2 4055 2 4056 2 4070 2 4072 2 4075 2 4079 2 4081 2 4084 2 4093 2 4107 2 4109 2 4110 2 4112 2 4122 2 4125 2 4127 2 4143 2 4146 2 4186 2 4189 2 4204 2 4207 2 4229 2 4233 2 4238 2 4239 2 4240 2 4242 2 4248 2 4257 2 4259 2 4261 2 4263 2 4267 2 4268 2 4276 2 4285 2 4286 2 4290 2 4294 2 4295 2 4298 2 4303 2 4309 2 4329 2 4332 2 4334 2 4337 2 4338 2 4348 2 4354 2 4360 2 4365 2 4366 2 4370 2 4373 2 4386 2 4393 2 4400 2 4401 2 4419 2 4420 2 4421 2 4431 2 4435 2 4438 2 4439 2 4443 2 4447 2 4450 2 4457 2 4458 2 4460 2 4461 2 4465 2 4478 2 4480 2 4483 2 4494 2 4499 2 4500 2 4509 2 4529 2 4540 2 4551 2 4558 2 4570 2 4585 2 4606 2 4607 2 4609 2 4618 2 4621 2 4625 2 4626 2 4628 2 4636 2 4638 2 4646 2 4648 2 4649 2 4650 2 4653 2 4654 2 4658 2 4664 2 4669 2 4686 2 4691 2 4702 2 4706 2 4708 2 4744 2 4753 2 4762 2 4766 2 4771 2 4773 2 4775 2 4785 2 4789 2 4790 2 4795 2 4798 2 4800 2 4803 2 4807 2 4813 2 4819 2 4821 2 4828 2 4835 2 4836 2 4841 2 4848 2 4854 2 4857 2 4863 2 4864 2 4872 2 4873 2 4879 2 4886 2 4897 2 4898 2 4929 2 4930 2 4937 2 4938 2 4942 2 4950 2 4952 2 4955 2 4956 2 4967 2 4983 2 4992 2 4993 2 5007 2 5008 2 5009 2 5011 2 5014 2 5017 2 5018 2 5028 2 5035 2 5036 2 5045 2 5049 2 5050 2 5052 2 5058 2 5067 2 5073 2 5080 2 5088 2 5093 2 5095 2 5096 2 5103 2 5104 2 5105 2 5107 2 5111 2 5127 2 5138 2 5139 2 5140 2 5144 2 5151 2 5153 2 5160 2 5161 2 5167 2 5175 2 5187 2 5191 2 5199 2 5220 2 5221 2 5224 2 5234 2 5250 2 5257 2 5259 2 5260 2 5265 2 5278 2 5287 2 5289 2 5293 2 5313 2 5332 2 5334 2 5336 2 5339 2 5348 2 5356 2 5359 2 5368 2 5376 2 5378 2 5393 2 5394 2 5403 2 5406 2 5411 2 5433 2 5447 2 5448 2 5449 2 5460 2 5478 2 5484 2 5491 2 5497 2 5499 2 5502 2 5503 2 5504 2 5512 2 5519 2 5521 2 5545 2 5548 2 5554 2 5556 2 5572 2 5573 2 5590 2 5591 2 5593 2 5602 2 5604 2 5605 2 5610 2 5612 2 5625 2 5636 2 5643 2 5647 2 5658 2 5660 2 5670 2 5672 2 5675 2 5676 2 5688 2 5690 2 5693 2 5705 2 5706 2 5708 2 5711 2 5726 2 5734 2 5748 2 5752 2 5756 2 5757 2 5762 2 5768 2 5782 2 5788 2 5797 2 5801 2 5802 2 5804 2 5815 2 5816 2 5819 2 5822 2 5828 2 5834 2 5837 2 5839 2 5841 2 5860 2 5877 2 5894 2 5903 2 5910 2 5927 2 5931 2 5934 2 5936 2 5940 2 5941 2 5956 2 5957 2 5961 2 5969 2 5981 2 5984 2 6003 2 6005 2 6006 2 6008 2 6011 2 6018 2 6020 2 6022 2 6027 2 6035 2 6039 2 6045 2 6054 2 6058 2 6060 2 6063 2 6079 2 6085 2 6089 2 6091 2 6096 2 6098 2 6100 2 6125 2 6139 2 6145 2 6147 2 6154 2 6158 2 6161 2 6163 2 6168 2 6174 2 6190 2 6192 2 6194 2 6195 2 6197 2 6198 2 6203 2 6208 2 6212 2 6214 2 6223 2 6224 2 6230 2 6237 2 6243 2 6263 2 6266 2 6276 2 6290 2 6291 2 6292 2 6298 2 6300 2 6301 2 6304 2 6308 2 6309 2 6315 2 6322 2 6323 2 6332 2 6334 2 6338 2 6360 2 6362 2 6370 2 6378 2 6382 2 6383 2 6384 2 6389 2 6394 2 6396 2 6397 2 6403 2 6406 2 6408 2 6409 2 6414 2 6418 2 6419 2 6434 2 6439 2 6440 2 6442 2 6443 2 6449 2 6454 2 6457 2 6462 2 6469 2 6471 2 6481 2 6484 2 6486 2 6502 2 6507 2 6509 2 6536 2 6549 2 6550 2 6553 2 6556 2 6563 2 6575 2 6579 2 6580 2 6582 2 6585 2 6589 2 6598 2 6599 2 6613 2 6615 2 6620 2 6625 2 6627 2 6628 2 6629 2 6634 2 6640 2 6650 2 6656 2 6659 2 6661 2 6666 2 6678 2 6681 2 6688 2 6700 2 6705 2 6721 2 6732 2 6737 2 6754 2 6771 2 6776 2 6778 2 6782 2 6785 2 6790 2 6793 2 6809 2 6812 2 6834 2 6836 2 6841 2 6847 2 6852 2 6853 2 6854 2 6855 2 6857 2 6863 2 6871 2 6878 2 6886 2 6895 2 6903 2 6908 2 6911 2 6925 2 6933 2 6937 2 6938 2 6944 2 6949 2 6951 2 6955 2 6956 2 6966 2 6967 2 6976 2 6980 2 6984 2 6987 2 7001 2 7002 2 7003 2 7005 2 7008 2 7025 2 7032 2 7039 2 7048 2 7054 2 7056 2 7059 2 7061 2 7066 2 7069 2 7070 2 7072 2 7073 2 7088 2 7091 2 7092 2 7094 2 7095 2 7102 2 7107 2 7117 2 7121 2 7124 2 7128 2 7137 2 7144 2 7145 2 7150 2 7152 2 7170 2 7179 2 7193 2 7194 2 7196 2 7207 2 7210 2 7211 2 7212 2 7215 2 7219 2 7232 2 7235 2 7238 2 7242 2 7248 2 7277 2 7281 2 7283 2 7291 2 7293 2 7294 2 7295 2 7296 2 7306 2 7308 2 7314 2 7317 2 7322 2 7324 2 7327 2 7342 2 7343 2 7347 2 7361 2 7366 2 7370 2 7380 2 7394 2 7396 2 7406 2 7407 2 7409 2 7413 2 7422 2 7432 2 7436 2 7443 2 7444 2 7446 2 7449 2 7470 2 7472 2 7486 2 7496 2 7499 2 7501 2 7506 2 7520 2 7527 2 7542 2 7547 2 7548 2 7550 2 7556 2 7572 2 7582 2 7586 2 7588 2 7593 2 7597 2 7598 2 7600 2 7603 2 7605 2 7609 2 7611 2 7612 2 7620 2 7632 2 7637 2 7646 2 7678 2 7681 2 7688 2 7689 2 7690 2 7708 2 7714 2 7716 2 7717 2 7722 2 7724 2 7730 2 7740 2 7748 2 7760 2 7762 2 7763 2 7767 2 7779 2 7785 2 7789 2 7797 2 7803 2 7807 2 7813 2 7827 2 7841 2 7849 2 7862 2 7873 2 7875 2 7878 2 7885 2 7888 2 7889 2 7900 2 7906 2 7912 2 7913 2 7914 2 7926 2 7938 2 7953 2 7956 2 7965 2 7967 2 7969 2 7971 2 7977 2 7980 2 7984 2 7985 2 7991 2 7993 2 8004 2 8008 2 8016 2 8017 2 8024 2 8033 2 8035 2 8036 2 8046 2 8051 2 8056 2 8057 2 8058 2 8059 2 8064 2 8068 2 8070 2 8071 2 8072 2 8077 2 8080 2 8081 2 8083 2 8086 2 8089 2 8099 2 8107 2 8116 2 8123 2 8125 2 8141 2 8153 2 8165 2 8169 2 8183 2 8185 2 8186 2 8195 2 8203 2 8210 2 8217 2 8220 2 8221 2 8223 2 8226 2 8234 2 8235 2 8246 2 8251 2 8254 2 8257 2 8269 2 8271 2 8280 2 8284 2 8318 2 8324 2 8329 2 8345 2 8346 2 8353 2 8359 2 8366 2 8371 2 8377 2 8382 2 8383 2 8385 2 8398 2 8399 2 8402 2 8410 2 8442 2 8443 2 8446 2 8452 2 8453 2 8473 2 8476 2 8478 2 8479 2 8480 2 8488 2 8492 2 8496 2 8498 2 8502 2 8503 2 8513 2 8553 2 8557 2 8560 2 8564 2 8576 2 8581 2 8602 2 8605 2 8607 2 8608 2 8615 2 8617 2 8622 2 8630 2 8641 2 8643 2 8647 2 8649 2 8655 2 8674 2 8680 2 8695 2 8698 2 8704 2 8716 2 8740 2 8746 2 8748 2 8754 2 8772 2 8774 2 8790 2 8803 2 8817 2 8820 2 8821 2 8831 2 8840 2 8858 2 8866 2 8867 2 8872 2 8888 2 8895 2 8899 2 8904 2 8907 2 8913 2 8917 2 8925 2 8936 2 8940 2 8944 2 8946 2 8949 2 8954 2 8962 2 8967 2 8971 2 8981 2 8984 2 8993 2 8994 2 9000 2 9001 2 9005 2 9007 2 9008 2 9018 2 9025 2 9029 2 9046 2 9047 2 9051 2 9053 2 9072 2 9074 2 9076 2 9083 2 9091 2 9098 2 9099 2 9104 2 9119 2 9120 2 9122 2 9124 2 9125 2 9132 2 9133 2 9146 2 9149 2 9151 2 9153 2 9156 2 9157 2 9158 2 9161 2 9166 2 9172 2 9176 2 9179 2 9190 2 9197 2 9210 2 9216 2 9217 2 9218 2 9228 2 9230 2 9231 2 9235 2 9236 2 9238 2 9242 2 9245 2 9254 2 9256 2 9260 2 9261 2 9266 2 9269 2 9274 2 9282 2 9287 2 9295 2 9300 2 9308 2 9318 2 9321 2 9325 2 9328 2 9333 2 9335 2 9343 2 9346 2 9347 2 9354 2 9365 2 9368 2 9369 2 9371 2 9384 2 9390 2 9396 2 9398 2 9401 2 9402 2 9406 2 9409 2 9411 2 9414 2 9421 2 9428 2 9430 2 9432 2 9437 2 9442 2 9463 2 9470 2 9475 2 9477 2 9483 2 9492 2 9495 2 9497 2 9499 2 9506 2 9523 2 9531 2 9536 2 9552 2 9553 2 9558 2 9560 2 9561 2 9566 2 9570 2 9572 2 9574 2 9581 2 9586 2 9588 2 9596 2 9598 2 9600 2 9602 2 9611 2 9613 2 9619 2 9620 2 9622 2 9628 2 9639 2 9648 2 9654 2 9656 2 9661 2 9668 2 9669 2 9670 2 9671 2 9677 2 9681 2 9684 2 9690 2 9705 2 9717 2 9729 2 9732 2 9733 2 9737 2 9740 2 9744 2 9749 2 9750 2 9751 2 9761 2 9763 2 9765 2 9767 2 9773 2 9776 2 9784 2 9794 2 9798 2 9802 2 9806 2 9817 2 9819 2 9822 2 9823 2 9825 2 9829 2 9843 2 9847 2 9853 2 9855 2 9863 2 9865 2 9866 2 9869 2 9872 2 9875 2 9877 2 9881 2 9891 2 9902 2 9916 2 9920 2 9922 2 9937 2 9939 2 9942 2 9945 2 9952 2 9960 2 9965 2 9970 2 9980 2 9983 2 9986 2 9993 2 10001 2 10002 2 10004 2 10016 2 10017 2 10022 2 10026 2 10033 2 10036 2 10041 2 10047 2 10056 2 10062 2 10067 2 10094 2 10135 2 10139 2 10145 2 10150 2 10153 2 10165 2 10166 2 10172 2 10175 2 10177 2 10182 2 10184 2 10193 2 10194 2 10196 2 10210 2 10219 2 10226 2 10232 2 10239 2 10245 2 10255 2 10258 2 10261 2 10262 2 10264 2 10268 2 10270 2 10272 2 10273 2 10279 2 10288 2 10302 2 10303 2 10313 2 10325 2 10326 2 10330 2 10346 2 10359 2 10364 2 10366 2 10373 2 10379 2 10383 2 10388 2 10395 2 10400 2 10403 2 10412 2 10417 2 10419 2 10431 2 10438 2 10439 2 10446 2 10447 2 10448 2 10451 2 10458 2 10473 2 10475 2 10481 2 10483 2 10487 2 10507 2 10510 2 10520 2 10522 2 10523 2 10525 2 10527 2 10545 2 10549 2 10551 2 10563 2 10570 2 10574 2 10579 2 10584 2 10592 2 10597 2 10602 2 10606 2 10610 2 10613 2 10616 2 10622 2 10623 2 10624 2 10629 2 10632 2 10634 2 10637 2 10639 2 10641 2 10642 2 10645 2 10647 2 10648 2 10649 2 10674 2 10688 2 10700 2 10705 2 10706 2 10708 2 10712 2 10724 2 10743 2 10745 2 10750 2 10751 2 10756 2 10761 2 10763 2 10774 2 10777 2 10780 2 10785 2 10790 2 10793 2 10800 2 10821 2 10826 2 10828 2 10830 2 10833 2 10841 2 10844 2 10846 2 10851 2 10857 2 10859 2 10867 2 10888 2 10890 2 10899 2 10902 2 10904 2 10907 2 10912 2 10919 2 10923 2 10924 2 10927 2 10936 2 10937 2 10943 2 10946 2 10952 2 10959 2 10961 2 10964 2 10968 2 10969 2 10974 2 10975 2 10985 2 10989 2 10993 2 10995 2 10996 2 10997 2 11006 2 11008 2 11018 2 11027 2 11037 2 11039 2 11040 2 11041 2 11043 2 11049 2 11086 2 11087 2 11089 2 11102 2 11106 2 11110 2 11111 2 11113 2 11118 2 11122 2 11128 2 11130 2 11132 2 11135 2 11150 2 11151 2 11157 2 11161 2 11164 2 11171 2 11175 2 11184 2 11188 2 11189 2 11202 2 11205 2 11218 2 11220 2 11244 2 11252 2 11254 2 11264 2 11273 2 11276 2 11284 2 11289 2 11291 2 11292 2 11323 2 11326 2 11329 2 11345 2 11356 2 11357 2 11369 2 11370 2 11372 2 11388 2 11403 2 11409 2 11411 2 11415 2 11416 2 11419 2 11420 2 11427 2 11431 2 11434 2 11438 2 11442 2 11443 2 11445 2 11447 2 11448 2 11449 2 11465 2 11469 2 11470 2 11477 2 11481 2 11498 2 11500 2 11502 2 11503 2 11504 2 11521 2 11522 2 11525 2 11526 2 11533 2 11535 2 11546 2 11551 2 11556 2 11562 2 11567 2 11568 2 11572 2 11574 2 11605 2 11609 2 11621 2 11625 2 11626 2 11630 2 11635 2 11640 2 11643 2 11647 2 11649 2 11660 2 11664 2 11670 2 11677 2 11701 2 11711 2 11713 2 11724 2 11726 2 11734 2 11735 2 11747 2 11749 2 11753 2 11760 2 11762 2 11766 2 11783 2 11787 2 11794 2 11797 2 11798 2 11799 2 11800 2 11807 2 11809 2 11810 2 11815 2 11821 2 11822 2 11824 2 11828 2 11835 2 11849 2 11850 2 11857 2 11859 2 11866 2 11867 2 11869 2 11870 2 11876 2 11879 2 11901 2 11904 2 11905 2 11909 2 11946 2 11949 2 11964 2 11967 2 11968 2 11972 2 11978 2 11984 2 11987 2 11998 2 12005 2 12011 2 12012 2 12017 2 12021 2 12022 2 12026 2 12041 2 12046 2 12058 2 12059 2 12063 2 12067 2 12078 2 12084 2 12088 2 12091 2 12103 2 12104 2 12105 2 12113 2 12124 2 12127 2 12130 2 12139 2 12150 2 12154 2 12162 2 12169 2 12174 2 12179 2 12194 2 12201 2 12217 2 12225 2 12230 2 12231 2 12234 2 12243 2 12250 2 12254 2 12268 2 12271 2 12275 2 12276 2 12282 2 12283 2 12290 2 12292 2 12293 2 12303 2 12312 2 12328 2 12330 2 12333 2 12353 2 12367 2 12368 2 12369 2 12373 2 12386 2 12405 2 12411 2 12418 2 12421 2 12426 2 12445 2 12447 2 12449 2 12451 2 12452 2 12459 2 12470 2 12474 2 12478 2 12479 2 12481 2 12496 2 12499 2 12510 2 12517 2 12518 2 12526 2 12547 2 12549 2 12555 2 12570 2 12574 2 12577 2 12588 2 12589 2 12590 2 12593 2 12598 2 12603 2 12604 2 12607 2 12613 2 12617 2 12619 2 12627 2 12633 2 12642 2 12653 2 12658 2 12659 2 12662 2 12669 2 12670 2 12678 2 12701 2 12703 2 12706 2 12709 2 12710 2 12712 2 12715 2 12719 2 12720 2 12722 2 12727 2 12729 2 12732 2 12737 2 12741 2 12751 2 12759 2 12776 2 12781 2 12792 2 12799 2 12802 2 12808 2 12814 2 12823 2 12833 2 12838 2 12854 2 12856 2 12861 2 12865 2 12868 2 12871 2 12878 2 12884 2 12922 2 12927 2 12929 2 12938 2 12944 2 12951 2 12952 2 12954 2 12962 2 12976 2 12980 2 12987 2 12995 2 13004 2 13006 2 13009 2 13012 2 13016 2 13021 2 13025 2 13028 2 13031 2 13036 2 13048 2 13055 2 13059 2 13061 2 13065 2 13067 2 13072 2 13074 2 13075 2 13078 2 13084 2 13091 2 13097 2 13098 2 13101 2 13105 2 13111 2 13114 2 13130 2 13134 2 13164 2 13176 2 13185 2 13189 2 13192 2 13197 2 13200 2 13205 2 13211 2 13213 2 13214 2 13215 2 13223 2 13225 2 13226 2 13230 2 13235 2 13243 2 13245 2 13254 2 13259 2 13279 2 13285 2 13286 2 13289 2 13290 2 13291 2 13304 2 13307 2 13311 2 13313 2 13315 2 13328 2 13343 2 13346 2 13353 2 13365 2 13371 2 13376 2 13378 2 13381 2 13393 2 13394 2 13409 2 13423 2 13424 2 13428 2 13431 2 13437 2 13438 2 13452 2 13457 2 13459 2 13460 2 13462 2 13467 2 13482 2 13484 2 13491 2 13493 2 13494 2 13497 2 13498 2 13502 2 13504 2 13517 2 13520 2 13527 2 13528 2 13529 2 13532 2 13539 2 13540 2 13543 2 13544 2 13565 2 13576 2 13577 2 13578 2 13580 2 13602 2 13610 2 13626 2 13639 2 13646 2 13648 2 13663 2 13679 2 13681 2 13684 2 13685 2 13699 2 13700 2 13703 2 13709 2 13711 2 13712 2 13715 2 13721 2 13724 2 13729 2 13730 2 13733 2 13734 2 13738 2 13742 2 13746 2 13747 2 13763 2 13771 2 13783 2 13784 2 13787 2 13791 2 13794 2 13809 2 13815 2 13816 2 13828 2 13844 2 13848 2 13852 2 13857 2 13858 2 13863 2 13865 2 13867 2 13868 2 13870 2 13871 2 13877 2 13878 2 13885 2 13887 2 13890 2 13892 2 13893 2 13901 2 13905 2 13914 2 13921 2 13928 2 13938 2 13940 2 13957 2 13964 2 13969 2 13971 2 13979 2 13981 2 13982 2 13986 2 13990 2 14001 2 14002 2 14008 2 14010 2 14017 2 14021 2 14025 2 14035 2 14037 2 14066 2 14076 2 14082 2 14085 2 14087 2 14089 2 14109 2 14134 2 14149 2 14150 2 14151 2 14153 2 14155 2 14163 2 14167 2 14169 2 14176 2 14177 2 14180 2 14202 2 14203 2 14216 2 14218 2 14235 2 14237 2 14244 2 14250 2 14254 2 14256 2 14259 2 14264 2 14265 2 14278 2 14284 2 14289 2 14293 2 14299 2 14304 2 14311 2 14314 2 14327 2 14333 2 14343 2 14348 2 14371 2 14383 2 14399 2 14410 2 14424 2 14429 2 14438 2 14449 2 14466 2 14468 2 14471 2 14475 2 14476 2 14477 2 14480 2 14494 2 14502 2 14509 2 14511 2 14513 2 14515 2 14523 2 14524 2 14535 2 14537 2 14546 2 14548 2 14559 2 14563 2 14564 2 14567 2 14575 2 14586 2 14592 2 14600 2 14605 2 14606 2 14608 2 14619 2 14625 2 14626 2 14640 2 14645 2 14647 2 14648 2 14654 2 14656 2 14665 2 14672 2 14673 2 14675 2 14680 2 14682 2 14683 2 14690 2 14692 2 14694 2 14700 2 14702 2 14704 2 14710 2 14711 2 14716 2 14720 2 14729 2 14739 2 14742 2 14753 2 14754 2 14759 2 14766 2 14768 2 14769 2 14785 2 14795 2 14801 2 14803 2 14804 2 14806 2 14815 2 14819 2 14823 2 14825 2 14833 2 14839 2 14851 2 14856 2 14857 2 14865 2 14871 2 14882 2 14894 2 14895 2 14896 2 14897 2 14903 2 14905 2 14915 2 14941 2 14943 2 14945 2 14958 2 14962 2 14965 2 14970 2 14975 2 14986 2 14991 2 15002 2 15003 2 15006 2 15023 2 15032 2 15035 2 15042 2 15050 2 15069 2 15077 2 15079 2 15082 2 15088 2 15095 2 15096 2 15105 2 15124 2 15125 2 15127 2 15130 2 15142 2 15147 2 15170 2 15173 2 15178 2 15181 2 15183 2 15185 2 15198 2 15208 2 15212 2 15218 2 15226 2 15227 2 15236 2 15245 2 15247 2 15254 2 15256 2 15257 2 15262 2 15263 2 15264 2 15267 2 15271 2 15272 2 15278 2 15283 2 15284 2 15295 2 15296 2 15298 2 15299 2 15300 2 15305 2 15309 2 15313 2 15334 2 15351 2 15353 2 15357 2 15360 2 15361 2 15362 2 15365 2 15368 2 15370 2 15373 2 15376 2 15380 2 15384 2 15396 2 15410 2 15414 2 15416 2 15425 2 15429 2 15432 2 15435 2 15436 2 15445 2 15448 2 15450 2 15459 2 15460 2 15465 2 15467 2 15483 2 15488 2 15503 2 15509 2 15514 2 15523 2 15527 2 15528 2 15529 2 15532 2 15536 2 15539 2 15545 2 15548 2 15550 2 15552 2 15557 2 15564 2 15569 2 15576 2 15578 2 15581 2 15582 2 15600 2 15616 2 15618 2 15626 2 15641 2 15650 2 15657 2 15670 2 15677 2 15680 2 15684 2 15694 2 15695 2 15709 2 15713 2 15717 2 15718 2 15729 2 15739 2 15741 2 15751 2 15756 2 15760 2 15767 2 15768 2 15769 2 15774 2 15783 2 15791 2 15792 2 15801 2 15807 2 15814 2 15822 2 15829 2 15832 2 15834 2 15841 2 15850 2 15851 2 15858 2 15861 2 15863 2 15870 2 15873 2 15881 2 15886 2 15889 2 15893 2 15911 2 15916 2 15921 2 15924 2 15930 2 15932 2 15936 2 15941 2 15955 2 15956 2 15962 2 15973 2 15981 2 15985 2 15991 2 15993 2 15999 2 16002 2 16006 2 16007 2 16011 2 16017 2 16027 2 16033 2 16036 2 16037 2 16042 2 16045 2 16046 2 16048 2 16054 2 16065 2 16074 2 16075 2 16086 2 16088 2 16089 2 16090 2 16093 2 16094 2 16097 2 16100 2 16103 2 16105 2 16109 2 16110 2 16112 2 16113 2 16118 2 16124 2 16127 2 16137 2 16140 2 16143 2 16146 2 16147 2 16150 2 16151 2 16153 2 16162 2 16165 2 16176 2 16177 2 16184 2 16187 2 16190 2 16194 2 16197 2 16201 2 16207 2 16209 2 16210 2 16217 2 16219 2 16221 2 16222 2 16223 2 16225 2 16226 2 16236 2 16245 2 16246 2 16250 2 16254 2 16273 2 16285 2 16298 2 16313 2 16317 2 16331 2 16332 2 16336 2 16344 2 16355 2 16365 2 16371 2 16375 2 16399 2 16400 2 16401 2 16411 2 16415 2 16420 2 16423 2 16426 2 16431 2 16435 2 16440 2 16454 2 16455 2 16464 2 16478 2 16489 2 16497 2 16506 2 16513 2 16515 2 16517 2 16519 2 16523 2 16525 2 16538 2 16539 2 16550 2 16557 2 16558 2 16559 2 16562 2 16564 2 16565 2 16578 2 16592 2 16600 2 16608 2 16636 2 16637 2 16639 2 16644 2 16645 2 16648 2 16650 2 16664 2 16678 2 16679 2 16682 2 16684 2 16689 2 16691 2 16696 2 16699 2 16702 2 16708 2 16719 2 16731 2 16737 2 16741 2 16753 2 16754 2 16765 2 16766 2 16778 2 16781 2 16782 2 16783 2 16813 2 16814 2 16815 2 16820 2 16822 2 16834 2 16842 2 16855 2 16857 2 16862 2 16873 2 16876 2 16882 2 16887 2 16888 2 16890 2 16894 2 16897 2 16904 2 16908 2 16911 2 16915 2 16916 2 16923 2 16932 2 16941 2 16947 2 16948 2 16954 2 16955 2 16956 2 16959 2 16962 2 16968 2 16978 2 16988 2 16994 2 16995 2 16997 2 17007 2 17011 2 17012 2 17014 2 17020 2 17040 2 17059 2 17064 2 17067 2 17069 2 17072 2 17078 2 17081 2 17082 2 17084 2 17090 2 17099 2 17119 2 17121 2 17125 2 17135 2 17136 2 17144 2 17148 2 17158 2 17162 2 17172 2 17182 2 17186 2 17188 2 17190 2 17203 2 17213 2 17217 2 17218 2 17219 2 17225 2 17228 2 17237 2 17243 2 17257 2 17258 2 17259 2 17264 2 17265 2 17266 2 17270 2 17272 2 17277 2 17296 2 17297 2 17302 2 17307 2 17308 2 17312 2 17321 2 17328 2 17329 2 17330 2 17336 2 17348 2 17357 2 17358 2 17362 2 17366 2 17368 2 17376 2 17381 2 17386 2 17388 2 17393 2 17396 2 17397 2 17398 2 17403 2 17406 2 17407 2 17410 2 17414 2 17415 2 17421 2 17429 2 17436 2 17441 2 17443 2 17449 2 17471 2 17472 2 17478 2 17480 2 17487 2 17490 2 17494 2 17503 2 17515 2 17516 2 17525 2 17526 2 17531 2 17534 2 17538 2 17543 2 17548 2 17549 2 17553 2 17563 2 17570 2 17583 2 17587 2 17589 2 17592 2 17594 2 17598 2 17600 2 17609 2 17611 2 17612 2 17613 2 17626 2 17633 2 17652 2 17653 2 17659 2 17667 2 17679 2 17680 2 17681 2 17685 2 17689 2 17692 2 17693 2 17698 2 17703 2 17712 2 17738 2 17742 2 17747 2 17748 2 17762 2 17764 2 17770 2 17771 2 17776 2 17777 2 17800 2 17803 2 17815 2 17819 2 17834 2 17842 2 17846 2 17853 2 17861 2 17866 2 17870 2 17874 2 17879 2 17884 2 17885 2 17886 2 17890 2 17891 2 17899 2 17904 2 17908 2 17911 2 17914 2 17926 2 17931 2 17941 2 17959 2 17964 2 17970 2 17972 2 17981 2 17983 2 17997 2 18001 2 18008 2 18012 2 18015 2 18016 2 18037 2 18045 2 18058 2 18059 2 18067 2 18073 2 18079 2 18082 2 18090 2 18099 2 18107 2 18112 2 18122 2 18124 2 18136 2 18146 2 18157 2 18163 2 18166 2 18167 2 18171 2 18189 2 18209 2 18219 2 18225 2 18230 2 18233 2 18234 2 18237 2 18240 2 18252 2 18260 2 18267 2 18275 2 18280 2 18281 2 18299 2 18310 2 18321 2 18338 2 18350 2 18361 2 18369 2 18371 2 18378 2 18380 2 18381 2 18382 2 18386 2 18397 2 18413 2 18417 2 18421 2 18425 2 18426 2 18429 2 18448 2 18451 2 18455 2 18458 2 18459 2 18466 2 18479 2 18509 2 18513 2 18522 2 18529 2 18537 2 18555 2 18572 2 18577 2 18580 2 18586 2 18600 2 18604 2 18606 2 18610 2 18617 2 18619 2 18621 2 18628 2 18650 2 18651 2 18655 2 18664 2 18666 2 18685 2 18691 2 18692 2 18693 2 18697 2 18706 2 18709 2 18724 2 18730 2 18732 2 18733 2 18734 2 18745 2 18749 2 18752 2 18755 2 18759 2 18761 2 18762 2 18769 2 18781 2 18792 2 18793 2 18796 2 18809 2 18844 2 18852 2 18858 2 18862 2 18868 2 18873 2 18878 2 18881 2 18882 2 18883 2 18884 2 18886 2 18887 2 18890 2 18892 2 18897 2 18898 2 18904 2 18908 2 18926 2 18933 2 18939 2 18949 2 18956 2 18970 2 18984 2 18985 2 18997 2 18999 2 19000 2 19011 2 19029 2 19050 2 19051 2 19060 2 19063 2 19072 2 19073 2 19087 2 19092 2 19098 2 19102 2 19113 2 19116 2 19117 2 19120 2 19121 2 19122 2 19132 2 19140 2 19142 2 19143 2 19150 2 19186 2 19187 2 19202 2 19203 2 19209 2 19217 2 19219 2 19225 2 19230 2 19242 2 19246 2 19250 2 19259 2 19260 2 19275 2 19278 2 19280 2 19283 2 19284 2 19297 2 19302 2 19307 2 19314 2 19316 2 19321 2 19327 2 19334 2 19341 2 19342 2 19351 2 19352 2 19361 2 19363 2 19366 2 19372 2 19378 2 19393 2 19396 2 19401 2 19411 2 19415 2 19421 2 19440 2 19447 2 19453 2 19458 2 19462 2 19464 2 19465 2 19466 2 19474 2 19475 2 19479 2 19491 2 19493 2 19496 2 19503 2 19505 2 19514 2 19522 2 19534 2 19537 2 19540 2 19547 2 19548 2 19556 2 19561 2 19564 2 19567 2 19580 2 19591 2 19620 2 19627 2 19633 2 19637 2 19639 2 19648 2 19657 2 19665 2 19669 2 19672 2 19691 2 19699 2 19717 2 19722 2 19729 2 19733 2 19740 2 19741 2 19744 2 19749 2 19756 2 19774 2 19777 2 19786 2 19788 2 19793 2 19794 2 19800 2 19827 2 19831 2 19832 2 19834 2 19847 2 19849 2 19850 2 19851 2 19856 2 19861 2 19863 2 19877 2 19884 2 19891 2 19896 2 19901 2 19905 2 19911 2 19919 2 19944 2 19948 2 19949 2 19951 2 19959 2 19968 2 19978 2 19982 2 19985 2 19993 2 19998 2 20002 2 20007 2 20008 2 20012 2 20014 2 20017 2 20018 2 20026 2 20033 2 20041 2 20042 2 20045 2 20052 2 20056 2 20059 2 20068 2 20077 2 20078 2 20080 2 20087 2 20088 2 20091 2 20094 2 20108 2 20120 2 20135 2 20151 2 20168 2 20177 2 20181 2 20183 2 20184 2 20185 2 20187 2 20190 2 20194 2 20209 2 20221 2 20226 2 20236 2 20241 2 20244 2 20247 2 20248 2 20253 2 20255 2 20273 2 20280 2 20288 2 20301 2 20303 2 20304 2 20316 2 20321 2 20333 2 20334 2 20335 2 20338 2 20346 2 20348 2 20353 2 20358 2 20366 2 20368 2 20399 2 20402 2 20405 2 20408 2 20410 2 20414 2 20415 2 20423 2 20429 2 20435 2 20442 2 20448 2 20450 2 20453 2 20461 2 20463 2 20480 2 20481 2 20488 2 20492 2 20497 2 20511 2 20519 2 20520 2 20521 2 20534 2 20537 2 20540 2 20541 2 20547 2 20554 2 20570 2 20575 2 20578 2 20579 2 20610 2 20616 2 20624 2 20632 2 20634 2 20641 2 20651 2 20660 2 20661 2 20664 2 20674 2 20678 2 20681 2 20684 2 20687 2 20692 2 20695 2 20704 2 20707 2 20718 2 20722 2 20726 2 20730 2 20737 2 20745 2 20751 2 20755 2 20764 2 20767 2 20773 2 20777 2 20783 2 20787 2 20791 2 20803 2 20806 2 20826 2 20832 2 20838 2 20841 2 20845 2 20846 2 20848 2 20875 2 20877 2 20883 2 20885 2 20888 2 20894 2 20895 2 20896 2 20917 2 20919 2 20929 2 20934 2 20937 2 20941 2 20945 2 20955 2 20957 2 20964 2 20968 2 20970 2 20975 2 20981 2 20990 2 21025 2 21029 2 21035 2 21049 2 21060 2 21071 2 21075 2 21077 2 21082 2 21086 2 21095 2 21098 2 21105 2 21108 2 21112 2 21125 2 21134 2 21142 2 21148 2 21156 2 21164 2 21169 2 21191 2 21194 2 21212 2 21213 2 21225 2 21234 2 21238 2 21252 2 21256 2 21261 2 21270 2 21275 2 21280 2 21286 2 21294 2 21296 2 21297 2 21299 2 21302 2 21304 2 21305 2 21313 2 21314 2 21320 2 21322 2 21328 2 21334 2 21337 2 21348 2 21352 2 21353 2 21354 2 21355 2 21369 2 21377 2 21388 2 21392 2 21398 2 21401 2 21405 2 21408 2 21412 2 21414 2 21415 2 21424 2 21426 2 21428 2 21429 2 21430 2 21435 2 21443 2 21455 2 21458 2 21467 2 21468 2 21474 2 21481 2 21482 2 21500 2 21514 2 21520 2 21523 2 21538 2 21540 2 21541 2 21543 2 21544 2 21546 2 21552 2 21555 2 21566 2 21571 2 21574 2 21577 2 21582 2 21587 2 21594 2 21604 2 21620 2 21621 2 21643 2 21651 2 21657 2 21659 2 21660 2 21663 2 21677 2 21679 2 21698 2 21699 2 21716 2 21733 2 21742 2 21751 2 21756 2 21761 2 21768 2 21770 2 21771 2 21772 2 21782 2 21795 2 21800 2 21801 2 21807 2 21808 2 21810 2 21811 2 21823 2 21828 2 21830 2 21840 2 21843 2 21849 2 21850 2 21852 2 21853 2 21856 2 21862 2 21864 2 21868 2 21871 2 21872 2 21876 2 21883 2 21884 2 21885 2 21895 2 21901 2 21902 2 21908 2 21918 2 21921 2 21926 2 21933 2 21934 2 21939 2 21956 2 21974 2 21981 2 21982 2 21995 2 22000 2 22002 2 22009 2 22011 2 22017 2 22026 2 22041 2 22043 2 22052 2 22054 2 22056 2 22058 2 22071 2 22077 2 22103 2 22113 2 22115 2 22116 2 22121 2 22128 2 22143 2 22149 2 22152 2 22155 2 22168 2 22169 2 22171 2 22179 2 22183 2 22188 2 22189 2 22197 2 22199 2 22205 2 22210 2 22220 2 22226 2 22246 2 22254 2 22261 2 22304 2 22306 2 22309 2 22313 2 22315 2 22322 2 22328 2 22330 2 22341 2 22343 2 22347 2 22348 2 22351 2 22356 2 22361 2 22362 2 22364 2 22366 2 22369 2 22372 2 22375 2 22381 2 22383 2 22395 2 22396 2 22404 2 22411 2 22416 2 22422 2 22424 2 22432 2 22439 2 22440 2 22446 2 22450 2 22475 2 22477 2 22482 2 22483 2 22484 2 22489 2 22506 2 22511 2 22514 2 22517 2 22522 2 22524 2 22532 2 22547 2 22550 2 22558 2 22580 2 22581 2 22588 2 22603 2 22609 2 22610 2 22614 2 22618 2 22621 2 22622 2 22623 2 22627 2 22630 2 22637 2 22638 2 22641 2 22645 2 22648 2 22651 2 22658 2 22687 2 22699 2 22704 2 22710 2 22724 2 22730 2 22738 2 22750 2 22778 2 22779 2 22780 2 22785 2 22790 2 22797 2 22799 2 22822 2 22826 2 22828 2 22858 2 22867 2 22879 2 22889 2 22892 2 22896 2 22898 2 22907 2 22911 2 22916 2 22917 2 22919 2 22923 2 22926 2 22927 2 22935 2 22940 2 22949 2 22957 2 22963 2 22964 2 22965 2 22967 2 22971 2 22972 2 22975 2 22979 2 22997 2 23002 2 23015 2 23023 2 23032 2 23039 2 23043 2 23047 2 23055 2 23058 2 23068 2 23074 2 23075 2 23085 2 23092 2 23103 2 23117 2 23130 2 23131 2 23133 2 23141 2 23142 2 23149 2 23153 2 23160 2 23171 2 23174 2 23181 2 23191 2 23198 2 23202 2 23206 2 23211 2 23213 2 23216 2 23225 2 23238 2 23249 2 23252 2 23258 2 23262 2 23267 2 23268 2 23270 2 23275 2 23283 2 23287 2 23288 2 23291 2 23293 2 23295 2 23296 2 23303 2 23304 2 23306 2 23315 2 23318 2 23319 2 23321 2 23334 2 23336 2 23337 2 23338 2 23343 2 23358 2 23366 2 23386 2 23394 2 23398 2 23401 2 23403 2 23405 2 23408 2 23412 2 23413 2 23426 2 23428 2 23429 2 23443 2 23452 2 23453 2 23464 2 23467 2 23473 2 23483 2 23486 2 23487 2 23492 2 23495 2 23499 2 23507 2 23514 2 23516 2 23517 2 23521 2 23532 2 23545 2 23546 2 23548 2 23553 2 23555 2 23558 2 23583 2 23590 2 23595 2 23603 2 23604 2 23609 2 23611 2 23616 2 23617 2 23618 2 23628 2 23630 2 23631 2 23636 2 23643 2 23644 2 23650 2 23656 2 23663 2 23676 2 23678 2 23686 2 23688 2 23690 2 23698 2 23700 2 23708 2 23711 2 23716 2 23721 2 23724 2 23731 2 23754 2 23760 2 23763 2 23767 2 23784 2 23795 2 23797 2 23803 2 23816 2 23823 2 23824 2 23830 2 23833 2 23844 2 23876 2 23883 2 23886 2 23890 2 23899 2 23908 2 23920 2 23937 2 23940 2 23960 2 23969 2 23978 2 23979 2 23985 2 23989 2 23993 2 24003 2 24005 2 24008 2 24014 2 24017 2 24019 2 24038 2 24039 2 24042 2 24043 2 24048 2 24057 2 24060 2 24061 2 24071 2 24081 2 24082 2 24084 2 24108 2 24109 2 24110 2 24113 2 24114 2 24119 2 24122 2 24124 2 24125 2 24131 2 24154 2 24156 2 24160 2 24167 2 24169 2 24173 2 24177 2 24180 2 24181 2 24185 2 24188 2 24192 2 24197 2 24205 2 24208 2 24218 2 24245 2 24251 2 24253 2 24259 2 24260 2 24268 2 24270 2 24278 2 24279 2 24287 2 24292 2 24293 2 24295 2 24297 2 24303 2 24327 2 24333 2 24335 2 24352 2 24356 2 24365 2 24369 2 24372 2 24373 2 24380 2 24386 2 24388 2 24390 2 24392 2 24393 2 24396 2 24405 2 24408 2 24412 2 24422 2 24435 2 24436 2 24454 2 24458 2 24464 2 24469 2 24474 2 24476 2 24479 2 24489 2 24499 2 24507 2 24511 2 24512 2 24517 2 24522 2 24527 2 24532 2 24534 2 24540 2 24542 2 24548 2 24557 2 24571 2 24573 2 24579 2 24581 2 24584 2 24587 2 24588 2 24590 2 24594 2 24595 2 24598 2 24603 2 24607 2 24615 2 24629 2 24637 2 24644 2 24656 2 24663 2 24671 2 24677 2 24680 2 24683 2 24684 2 24689 2 24697 2 24702 2 24707 2 24712 2 24721 2 24725 2 24729 2 24730 2 24735 2 24759 2 24763 2 24764 2 24767 2 24774 2 24775 2 24777 2 24780 2 24784 2 24796 2 24802 2 24818 2 24821 2 24841 2 24843 2 24847 2 24848 2 24856 2 24876 2 24883 2 24886 2 24915 2 24923 2 24928 2 24929 2 24930 2 24932 2 24957 2 24960 2 24965 2 24977 2 24979 2 24985 2 24995 2 24998 2 25000 2 25004 2 25005 2 25011 2 25019 2 25020 2 25026 2 25040 2 25045 2 25048 2 25052 2 25055 2 25059 2 25060 2 25072 2 25079 2 25084 2 25090 2 25092 2 25093 2 25097 2 25116 2 25123 2 25132 2 25172 2 25183 2 25196 2 25198 2 25203 2 25210 2 25219 2 25227 2 25235 2 25237 2 25240 2 25261 2 25272 2 25277 2 25283 2 25285 2 25287 2 25292 2 25295 2 25298 2 25304 2 25314 2 25315 2 25322 2 25325 2 25332 2 25347 2 25353 2 25356 2 25358 2 25360 2 25361 2 25371 2 25390 2 25391 2 25399 2 25400 2 25417 2 25418 2 25419 2 25424 2 25431 2 25438 2 25443 2 25447 2 25449 2 25455 2 25459 2 25465 2 25469 2 25470 2 25471 2 25474 2 25485 2 25490 2 25507 2 25517 2 25519 2 25524 2 25540 2 25541 2 25545 2 25550 2 25554 2 25559 2 25561 2 25563 2 25573 2 25574 2 25587 2 25588 2 25591 2 25592 2 25605 2 25606 2 25607 2 25609 2 25617 2 25626 2 25634 2 25635 2 25645 2 25647 2 25649 2 25660 2 25663 2 25664 2 25665 2 25684 2 25694 2 25695 2 25696 2 25709 2 25723 2 25731 2 25737 2 25738 2 25742 2 25745 2 25746 2 25747 2 25753 2 25758 2 25764 2 25767 2 25773 2 25774 2 25783 2 25788 2 25790 2 25798 2 25804 2 25813 2 25817 2 25822 2 25828 2 25829 2 25839 2 25845 2 25855 2 25860 2 25866 2 25871 2 25874 2 25883 2 25884 2 25895 2 25906 2 25922 2 25935 2 25942 2 25948 2 25953 2 25954 2 25955 2 25958 2 25961 2 25964 2 25965 2 25975 2 25990 2 25997 2 26000 2 26004 2 26006 2 26016 2 26018 2 26019 2 26026 2 26036 2 26039 2 26044 2 26045 2 26054 2 26056 2 26058 2 26059 2 26064 2 26068 2 26073 2 26081 2 26084 2 26088 2 26090 2 26093 2 26094 2 26098 2 26100 2 26101 2 26104 2 26105 2 26109 2 26123 2 26138 2 26147 2 26150 2 26152 2 26155 2 26161 2 26163 2 26166 2 26167 2 26171 2 26174 2 26179 2 26187 2 26192 2 26194 2 26201 2 26203 2 26206 2 26213 2 26217 2 26219 2 26223 2 26228 2 26229 2 26231 2 26239 2 26241 2 26251 2 26254 2 26256 2 26257 2 26258 2 26267 2 26270 2 26279 2 26297 2 26315 2 26318 2 26339 2 26345 2 26352 2 26360 2 26362 2 26363 2 26371 2 26372 2 26377 2 26378 2 26379 2 26381 2 26389 2 26398 2 26399 2 26400 2 26402 2 26403 2 26405 2 26406 2 26407 2 26409 2 26419 2 26420 2 26422 2 26426 2 26430 2 26434 2 26439 2 26441 2 26443 2 26452 2 26456 2 26459 2 26462 2 26467 2 26474 2 26480 2 26486 2 26487 2 26493 2 26497 2 26505 2 26518 2 26538 2 26546 2 26555 2 26561 2 26564 2 26565 2 26587 2 26589 2 26592 2 26594 2 26599 2 26601 2 26608 2 26613 2 26615 2 26639 2 26645 2 26651 2 26652 2 26659 2 26662 2 26671 2 26675 2 26676 2 26679 2 26686 2 26688 2 26698 2 26705 2 26713 2 26718 2 26722 2 26735 2 26738 2 26748 2 26750 2 26751 2 26759 2 26763 2 26772 2 26774 2 26775 2 26778 2 26788 2 26805 2 26814 2 26818 2 26819 2 26822 2 26824 2 26827 2 26829 2 26854 2 26857 2 26859 2 26860 2 26864 2 26868 2 26869 2 26873 2 26880 2 26883 2 26889 2 26892 2 26896 2 26897 2 26900 2 26902 2 26903 2 26914 2 26921 2 26934 2 26937 2 26940 2 26942 2 26946 2 26947 2 26957 2 26964 2 26975 2 26978 2 26980 2 26991 2 26995 2 26999 2 27002 2 27003 2 27004 2 27005 2 27021 2 27026 2 27040 2 27045 2 27047 2 27056 2 27057 2 27061 2 27064 2 27070 2 27076 2 27077 2 27106 2 27108 2 27109 2 27112 2 27116 2 27128 2 27129 2 27164 2 27169 2 27171 2 27175 2 27183 2 27189 2 27192 2 27200 2 27202 2 27223 2 27228 2 27242 2 27249 2 27251 2 27252 2 27254 2 27265 2 27276 2 27297 2 27307 2 27314 2 27326 2 27328 2 27331 2 27333 2 27335 2 27353 2 27358 2 27365 2 27368 2 27381 2 27384 2 27388 2 27400 2 27408 2 27410 2 27419 2 27423 2 27433 2 27437 2 27439 2 27446 2 27454 2 27456 2 27460 2 27467 2 27480 2 27484 2 27485 2 27488 2 27497 2 27499 2 27501 2 27510 2 27513 2 27514 2 27515 2 27521 2 27524 2 27536 2 27539 2 27540 2 27545 2 27553 2 27555 2 27572 2 27575 2 27578 2 27580 2 27581 2 27582 2 27589 2 27597 2 27603 2 27609 2 27610 2 27611 2 27615 2 27619 2 27631 2 27639 2 27641 2 27645 2 27651 2 27652 2 27659 2 27667 2 27668 2 27670 2 27681 2 27687 2 27693 2 27702 2 27712 2 27715 2 27735 2 27737 2 27739 2 27744 2 27748 2 27750 2 27753 2 27769 2 27771 2 27785 2 27786 2 27789 2 27792 2 27799 2 27814 2 27826 2 27833 2 27837 2 27838 2 27844 2 27847 2 27857 2 27859 2 27867 2 27874 2 27876 2 27886 2 27891 2 27894 2 27895 2 27899 2 27903 2 27907 2 27908 2 27918 2 27922 2 27925 2 27937 2 27959 2 27963 2 27976 2 27979 2 27980 2 27983 2 27986 2 27997 2 28004 2 28010 2 28016 2 28018 2 28027 2 28030 2 28031 2 28039 2 28045 2 28046 2 28063 2 28065 2 28073 2 28077 2 28080 2 28083 2 28100 2 28102 2 28108 2 28117 2 28122 2 28135 2 28140 2 28157 2 28162 2 28163 2 28172 2 28176 2 28179 2 28193 2 28195 2 28196 2 28199 2 28203 2 28210 2 28226 2 28227 2 28247 2 28260 2 28268 2 28273 2 28279 2 28282 2 28283 2 28284 2 28287 2 28292 2 28294 2 28295 2 28300 2 28306 2 28312 2 28322 2 28323 2 28331 2 28349 2 28359 2 28374 2 28377 2 28380 2 28382 2 28384 2 28386 2 28395 2 28397 2 28398 2 28403 2 28414 2 28418 2 28422 2 28428 2 28433 2 28434 2 28444 2 28446 2 28450 2 28456 2 28461 2 28465 2 28467 2 28469 2 28485 2 28487 2 28488 2 28499 2 28501 2 28518 2 28526 2 28543 2 28547 2 28558 2 28560 2 28591 2 28604 2 28609 2 28613 2 28614 2 28624 2 28625 2 28626 2 28637 2 28640 2 28642 2 28647 2 28648 2 28650 2 28654 2 28656 2 28658 2 28670 2 28678 2 28683 2 28688 2 28692 2 28695 2 28699 2 28704 2 28708 2 28713 2 28717 2 28720 2 28721 2 28724 2 28731 2 28734 2 28735 2 28741 2 28748 2 28754 2 28755 2 28765 2 28771 2 28772 2 28803 2 28806 2 28822 2 28825 2 28827 2 28829 2 28835 2 28842 2 28845 2 28865 2 28868 2 28869 2 28882 2 28893 2 28905 2 28913 2 28929 2 28934 2 28940 2 28943 2 28948 2 28952 2 28962 2 28963 2 28967 2 28973 2 28986 2 28988 2 28989 2 28997 2 28999 2 29000 2 29002 2 29007 2 29008 2 29017 2 29023 2 29037 2 29060 2 29067 2 29080 2 29081 2 29082 2 29086 2 29090 2 29096 2 29106 2 29115 2 29121 2 29125 2 29141 2 29142 2 29149 2 29152 2 29157 2 29161 2 29163 2 29169 2 29176 2 29177 2 29183 2 29187 2 29199 2 29200 2 29204 2 29216 2 29229 2 29231 2 29233 2 29238 2 29244 2 29249 2 29262 2 29286 2 29294 2 29298 2 29302 2 29309 2 29316 2 29317 2 29318 2 29320 2 29325 2 29327 2 29334 2 29335 2 29338 2 29341 2 29347 2 29359 2 29371 2 29376 2 29378 2 29379 2 29383 2 29385 2 29398 2 29408 2 29410 2 29417 2 29422 2 29425 2 29426 2 29429 2 29433 2 29448 2 29472 2 29478 2 29483 2 29489 2 29492 2 29494 2 29503 2 29506 2 29508 2 29510 2 29512 2 29517 2 29519 2 29525 2 29535 2 29539 2 29541 2 29555 2 29557 2 29558 2 29576 2 29581 2 29583 2 29584 2 29599 2 29601 2 29604 2 29606 2 29614 2 29618 2 29621 2 29625 2 29631 2 29649 2 29666 2 29680 2 29682 2 29692 2 29711 2 29722 2 29730 2 29739 2 29750 2 29767 2 29770 2 29783 2 29799 2 29814 2 29824 2 29826 2 29830 2 29850 2 29853 2 29861 2 29872 2 29873 2 29875 2 29892 2 29898 2 29901 2 29904 2 29910 2 29913 2 29917 2 29918 2 29920 2 29923 2 29926 2 29939 2 29944 2 29947 2 29948 2 29950 2 29952 2 29955 2 29956 2 29976 2 29983 2 29987 2 29990 2 30006 2 30013 2 30024 2 30033 2 30036 2 30039 2 30043 2 30046 2 30050 2 30052 2 30054 2 30061 2 30066 2 30070 2 30074 2 30078 2 30083 2 30086 2 30087 2 30090 2 30092 2 30105 2 30126 2 30143 2 30148 2 30159 2 30170 2 30186 2 30188 2 30190 2 30196 2 30199 2 30204 2 30209 2 30234 2 30236 2 30246 2 30252 2 30270 2 30281 2 30284 2 30285 2 30295 2 30315 2 30317 2 30322 2 30330 2 30340 2 30341 2 30342 2 30344 2 30355 2 30356 2 30358 2 30360 2 30368 2 30377 2 30381 2 30391 2 30393 2 30395 2 30396 2 30398 2 30402 2 30403 2 30404 2 30411 2 30442 2 30446 2 30449 2 30453 2 30470 2 30478 2 30483 2 30489 2 30501 2 30506 2 30508 2 30517 2 30522 2 30541 2 30551 2 30557 2 30563 2 30568 2 30572 2 30577 2 30590 2 30593 2 30597 2 30601 2 30608 2 30610 2 30612 2 30620 2 30627 2 30629 2 30634 2 30638 2 30645 2 30654 2 30658 2 30662 2 30666 2 30674 2 30690 2 30692 2 30695 2 30699 2 30702 2 30703 2 30711 2 30712 2 30716 2 30728 2 30729 2 30735 2 30742 2 30747 2 30761 2 30773 2 30779 2 30782 2 30789 2 30794 2 30799 2 30826 2 30831 2 30838 2 30845 2 30846 2 30850 2 30851 2 30852 2 30861 2 30868 2 30869 2 30870 2 30885 2 30894 2 30897 2 30902 2 30906 2 30908 2 30910 2 30914 2 30930 2 30946 2 30951 2 30954 2 30956 2 30958 2 30960 2 30961 2 30966 2 30970 2 30972 2 30976 2 30979 2 30982 2 30985 2 30987 2 30996 2 31000 2 31014 2 31023 2 31025 2 31027 2 31040 2 31042 2 31049 2 31058 2 31061 2 31062 2 31075 2 31089 2 31095 2 31100 2 31114 2 31115 2 31118 2 31120 2 31128 2 31135 2 31137 2 31141 2 31145 2 31146 2 31163 2 31167 2 31179 2 31192 2 31197 2 31210 2 31214 2 31215 2 31216 2 31217 2 31232 2 31236 2 31238 2 31239 2 31240 2 31249 2 31250 2 31251 2 31252 2 31260 2 31275 2 31307 2 31311 2 31329 2 31331 2 31340 2 31344 2 31345 2 31351 2 31366 2 31380 2 31387 2 31389 2 31399 2 31401 2 31404 2 31417 2 31419 2 31426 2 31432 2 31443 2 31446 2 31447 2 31449 2 31450 2 31452 2 31456 2 31462 2 31477 2 31484 2 31490 2 31502 2 31505 2 31510 2 31514 2 31515 2 31517 2 31534 2 31537 2 31553 2 31554 2 31556 2 31557 2 31560 2 31562 2 31566 2 31569 2 31575 2 31578 2 31581 2 31591 2 31600 2 31608 2 31611 2 31620 2 31632 2 31641 2 31646 2 31648 2 31658 2 31660 2 31673 2 31684 2 31685 2 31698 2 31704 2 31705 2 31710 2 31718 2 31719 2 31720 2 31721 2 31739 2 31753 2 31756 2 31760 2 31770 2 31778 2 31781 2 31782 2 31783 2 31784 2 31793 2 31800 2 31804 2 31810 2 31816 2 31825 2 31849 2 31853 2 31861 2 31865 2 31867 2 31870 2 31877 2 31878 2 31889 2 31890 2 31901 2 31904 2 31907 2 31909 2 31917 2 31925 2 31938 2 31943 2 31952 2 31958 2 31967 2 31968 2 31971 2 31976 2 31980 2 31996 2 31997 2 32002 2 32011 2 32015 2 32020 2 32025 2 32032 2 32045 2 32058 2 32062 2 32069 2 32079 2 32082 2 32095 2 32107 2 32109 2 32112 2 32122 2 32130 2 32133 2 32136 2 32138 2 32141 2 32149 2 32155 2 32156 2 32157 2 32166 2 32167 2 32171 2 32176 2 32179 2 32190 2 32195 2 32197 2 32199 2 32209 2 32234 2 32239 2 32241 2 32248 2 32258 2 32269 2 32277 2 32280 2 32284 2 32292 2 32294 2 32295 2 32309 2 32315 2 32322 2 32324 2 32325 2 32349 2 32367 2 32387 2 32390 2 32391 2 32393 2 32399 2 32408 2 32410 2 32411 2 32413 2 32418 2 32420 2 32425 2 32429 2 32432 2 32437 2 32442 2 32452 2 32453 2 32456 2 32457 2 32460 2 32461 2 32474 2 32475 2 32505 2 32508 2 32511 2 32512 2 32515 2 32527 2 32532 2 32533 2 32539 2 32554 2 32563 2 32565 2 32568 2 32590 2 32592 2 32599 2 32600 2 32604 2 32612 2 32613 2 32620 2 32630 2 32635 2 32656 2 32666 2 32670 2 32672 2 32680 2 32687 2 32691 2 32703 2 32706 2 32721 2 32723 2 32724 2 32727 2 32730 2 32731 2 32733 2 32734 2 32738 2 32741 2 32744 2 32747 2 32752 2 32754 2 32757 2 32764 2 32773 2 32774 2 32775 2 32784 2 32786 2 32790 2 32797 2 32799 2 32801 2 32806 2 32807 2 32810 2 32826 2 32833 2 32866 2 32868 2 32876 2 32878 2 32886 2 32887 2 32888 2 32891 2 32895 2 32896 2 32898 2 32935 2 32941 2 32944 2 32946 2 32952 2 32957 2 32958 2 32959 2 32963 2 32972 2 32977 2 32983 2 32989 2 32990 2 32991 2 32993 2 32997 2 33000 2 33012 2 33014 2 33020 2 33041 2 33048 2 33051 2 33056 2 33071 2 33080 2 33088 2 33101 2 33103 2 33105 2 33110 2 33111 2 33112 2 33123 2 33127 2 33141 2 33164 2 33173 2 33177 2 33194 2 33206 2 33217 2 33224 2 33225 2 33226 2 33228 2 33235 2 33244 2 33249 2 33250 2 33251 2 33254 2 33256 2 33258 2 33264 2 33265 2 33277 2 33283 2 33284 2 33285 2 33290 2 33307 2 33308 2 33321 2 33326 2 33345 2 33348 2 33349 2 33350 2 33355 2 33356 2 33364 2 33379 2 33385 2 33393 2 33397 2 33399 2 33403 2 33423 2 33425 2 33427 2 33432 2 33435 2 33438 2 33449 2 33452 2 33454 2 33457 2 33461 2 33470 2 33479 2 33487 2 33492 2 33498 2 33500 2 33505 2 33524 2 33529 2 33539 2 33545 2 33554 2 33557 2 33561 2 33566 2 33574 2 33578 2 33591 2 33596 2 33600 2 33601 2 33602 2 33608 2 33612 2 33619 2 33623 2 33629 2 33644 2 33647 2 33651 2 33652 2 33653 2 33656 2 33657 2 33669 2 33675 2 33689 2 33692 2 33699 2 33700 2 33709 2 33725 2 33726 2 33732 2 33733 2 33735 2 33741 2 33745 2 33752 2 33757 2 33768 2 33781 2 33787 2 33797 2 33801 2 33803 2 33804 2 33813 2 33816 2 33824 2 33837 2 33840 2 33869 2 33879 2 33885 2 33905 2 33908 2 33915 2 33918 2 33937 2 33941 2 33942 2 33945 2 33950 2 33954 2 33960 2 33974 2 33975 2 33977 2 33995 2 34008 2 34010 2 34015 2 34017 2 34018 2 34022 2 34024 2 34036 2 34041 2 34046 2 34050 2 34055 2 34062 2 34074 2 34080 2 34086 2 34087 2 34089 2 34106 2 34117 2 34123 2 34126 2 34127 2 34138 2 34139 2 34146 2 34153 2 34154 2 34159 2 34172 2 34173 2 34174 2 34175 2 34185 2 34203 2 34208 2 34212 2 34223 2 34225 2 34226 2 34231 2 34248 2 34250 2 34254 2 34258 2 34261 2 34262 2 34266 2 34268 2 34269 2 34275 2 34287 2 34295 2 34297 2 34306 2 34313 2 34332 2 34337 2 34339 2 34342 2 34343 2 34347 2 34350 2 34353 2 34358 2 34360 2 34368 2 34378 2 34383 2 34388 2 34399 2 34406 2 34409 2 34421 2 34444 2 34446 2 34450 2 34452 2 34477 2 34478 2 34483 2 34491 2 34493 2 34494 2 34498 2 34499 2 34502 2 34509 2 34518 2 34541 2 34550 2 34562 2 34564 2 34566 2 34575 2 34585 2 34587 2 34590 2 34601 2 34607 2 34612 2 34621 2 34627 2 34629 2 34640 2 34644 2 34652 2 34655 2 34659 2 34684 2 34689 2 34696 2 34707 2 34712 2 34713 2 34720 2 34721 2 34728 2 34729 2 34730 2 34736 2 34744 2 34745 2 34754 2 34757 2 34772 2 34775 2 34784 2 34785 2 34786 2 34792 2 34797 2 34798 2 34802 2 34805 2 34814 2 34817 2 34827 2 34829 2 34832 2 34842 2 34846 2 34854 2 34870 2 34871 2 34872 2 34891 2 34900 2 34905 2 34906 2 34912 2 34916 2 34917 2 34921 2 34935 2 34947 2 34962 2 34965 2 34969 2 34970 2 34977 2 34978 2 34987 2 34990 2 34997 2 35003 2 35005 2 35014 2 35019 2 35023 2 35033 2 35042 2 35043 2 35045 2 35052 2 35054 2 35062 2 35063 2 35066 2 35073 2 35092 2 35100 2 35112 2 35120 2 35121 2 35125 2 35129 2 35130 2 35132 2 35134 2 35140 2 35147 2 35153 2 35156 2 35157 2 35169 2 35175 2 35184 2 35188 2 35192 2 35200 2 35204 2 35206 2 35212 2 35213 2 35215 2 35218 2 35220 2 35228 2 35240 2 35242 2 35246 2 35250 2 35252 2 35255 2 35268 2 35270 2 35273 2 35274 2 35290 2 35291 2 35313 2 35327 2 35335 2 35340 2 35342 2 35343 2 35357 2 35366 2 35367 2 35380 2 35386 2 35395 2 35405 2 35407 2 35417 2 35419 2 35420 2 35431 2 35443 2 35449 2 35450 2 35452 2 35453 2 35454 2 35456 2 35459 2 35463 2 35478 2 35496 2 35525 2 35530 2 35545 2 35546 2 35548 2 35552 2 35559 2 35570 2 35578 2 35583 2 35585 2 35594 2 35596 2 35611 2 35613 2 35616 2 35617 2 35619 2 35627 2 35630 2 35656 2 35682 2 35686 2 35687 2 35692 2 35696 2 35715 2 35716 2 35718 2 35721 2 35728 2 35731 2 35738 2 35743 2 35745 2 35758 2 35759 2 35762 2 35767 2 35770 2 35771 2 35782 2 35783 2 35792 2 35796 2 35798 2 35800 2 35808 2 35810 2 35817 2 35819 2 35821 2 35839 2 35844 2 35845 2 35853 2 35855 2 35866 2 35867 2 35889 2 35898 2 35906 2 35912 2 35916 2 35919 2 35924 2 35927 2 35942 2 35946 2 35951 2 35955 2 35957 2 35958 2 35971 2 35994 2 36009 2 36010 2 36013 2 36026 2 36027 2 36036 2 36044 2 36046 2 36051 2 36054 2 36057 2 36065 2 36067 2 36068 2 36069 2 36072 2 36075 2 36076 2 36083 2 36106 2 36109 2 36123 2 36129 2 36130 2 36132 2 36140 2 36147 2 36176 2 36182 2 36198 2 36206 2 36218 2 36229 2 36234 2 36235 2 36252 2 36256 2 36268 2 36275 2 36276 2 36277 2 36281 2 36282 2 36285 2 36287 2 36297 2 36300 2 36313 2 36319 2 36339 2 36341 2 36344 2 36357 2 36360 2 36370 2 36375 2 36379 2 36384 2 36393 2 36406 2 36410 2 36413 2 36421 2 36427 2 36432 2 36433 2 36440 2 36448 2 36451 2 36456 2 36457 2 36463 2 36479 2 36480 2 36490 2 36497 2 36499 2 36501 2 36508 2 36526 2 36546 2 36547 2 36564 2 36567 2 36569 2 36583 2 36590 2 36595 2 36604 2 36614 2 36632 2 36638 2 36646 2 36647 2 36650 2 36652 2 36656 2 36660 2 36673 2 36676 2 36686 2 36703 2 36708 2 36709 2 36712 2 36713 2 36715 2 36716 2 36719 2 36721 2 36729 2 36732 2 36737 2 36742 2 36745 2 36746 2 36750 2 36751 2 36753 2 36754 2 36755 2 36760 2 36761 2 36767 2 36769 2 36772 2 36781 2 36784 2 36792 2 36793 2 36794 2 36814 2 36817 2 36821 2 36828 2 36829 2 36833 2 36834 2 36846 2 36859 2 36864 2 36886 2 36887 2 36888 2 36889 2 36901 2 36903 2 36906 2 36921 2 36942 2 36948 2 36950 2 36954 2 36955 2 36956 2 36960 2 36971 2 36972 2 36973 2 36980 2 36986 2 36989 2 36992 2 36998 2 37002 2 37004 2 37007 2 37013 2 37014 2 37032 2 37035 2 37037 2 37038 2 37043 2 37063 2 37068 2 37087 2 37089 2 37097 2 37098 2 37102 2 37115 2 37117 2 37137 2 37153 2 37156 2 37159 2 37161 2 37169 2 37177 2 37178 2 37180 2 37181 2 37189 2 37196 2 37198 2 37199 2 37203 2 37211 2 37219 2 37224 2 37233 2 37234 2 37241 2 37242 2 37250 2 37255 2 37258 2 37259 2 37265 2 37275 2 37277 2 37281 2 37282 2 37285 2 37291 2 37298 2 37311 2 37315 2 37317 2 37331 2 37333 2 37336 2 37342 2 37345 2 37348 2 37353 2 37357 2 37367 2 37372 2 37374 2 37384 2 37394 2 37395 2 37410 2 37412 2 37432 2 37439 2 37447 2 37453 2 37466 2 37479 2 37482 2 37487 2 37490 2 37497 2 37498 2 37501 2 37527 2 37538 2 37560 2 37569 2 37574 2 37576 2 37581 2 37587 2 37591 2 37599 2 37603 2 37608 2 37610 2 37612 2 37618 2 37626 2 37629 2 37631 2 37638 2 37645 2 37656 2 37660 2 37665 2 37668 2 37669 2 37671 2 37674 2 37679 2 37681 2 37685 2 37694 2 37698 2 37699 2 37702 2 37714 2 37721 2 37722 2 37725 2 37726 2 37729 2 37738 2 37763 2 37764 2 37765 2 37767 2 37771 2 37773 2 37778 2 37779 2 37784 2 37786 2 37791 2 37792 2 37800 2 37801 2 37804 2 37808 2 37814 2 37827 2 37828 2 37834 2 37840 2 37844 2 37858 2 37861 2 37863 2 37864 2 37878 2 37883 2 37893 2 37903 2 37904 2 37917 2 37918 2 37930 2 37931 2 37934 2 37937 2 37956 2 37963 2 37974 2 37975 2 37986 2 37996 2 38005 2 38008 2 38020 2 38025 2 38027 2 38028 2 38029 2 38032 2 38037 2 38039 2 38041 2 38045 2 38060 2 38061 2 38062 2 38079 2 38082 2 38085 2 38095 2 38098 2 38100 2 38113 2 38128 2 38135 2 38138 2 38139 2 38147 2 38153 2 38157 2 38160 2 38169 2 38171 2 38172 2 38174 2 38176 2 38184 2 38187 2 38189 2 38190 2 38193 2 38195 2 38198 2 38202 2 38217 2 38219 2 38220 2 38222 2 38232 2 38234 2 38235 2 38240 2 38241 2 38251 2 38254 2 38256 2 38259 2 38263 2 38270 2 38286 2 38291 2 38293 2 38304 2 38311 2 38319 2 38322 2 38325 2 38329 2 38336 2 38338 2 38348 2 38351 2 38355 2 38357 2 38372 2 38377 2 38378 2 38379 2 38386 2 38388 2 38401 2 38402 2 38414 2 38416 2 38423 2 38424 2 38432 2 38436 2 38445 2 38457 2 38459 2 38460 2 38462 2 38464 2 38465 2 38476 2 38483 2 38485 2 38500 2 38502 2 38507 2 38511 2 38535 2 38536 2 38537 2 38548 2 38552 2 38565 2 38570 2 38582 2 38588 2 38589 2 38590 2 38601 2 38604 2 38607 2 38614 2 38619 2 38620 2 38621 2 38622 2 38626 2 38628 2 38643 2 38652 2 38664 2 38670 2 38672 2 38679 2 38681 2 38686 2 38688 2 38691 2 38696 2 38702 2 38705 2 38713 2 38721 2 38725 2 38728 2 38730 2 38741 2 38752 2 38755 2 38763 2 38768 2 38769 2 38776 2 38777 2 38791 2 38793 2 38806 2 38810 2 38822 2 38829 2 38836 2 38838 2 38841 2 38849 2 38857 2 38863 2 38874 2 38878 2 38879 2 38883 2 38888 2 38890 2 38900 2 38906 2 38908 2 38912 2 38914 2 38925 2 38934 2 38942 2 38947 2 38953 2 38964 2 38966 2 38968 2 38969 2 38976 2 38984 2 38985 2 38989 2 38991 2 38999 2 39001 2 39002 2 39013 2 39014 2 39017 2 39018 2 39034 2 39045 2 39049 2 39054 2 39058 2 39065 2 39094 2 39117 2 39128 2 39135 2 39142 2 39150 2 39155 2 39159 2 39163 2 39167 2 39168 2 39172 2 39175 2 39176 2 39186 2 39203 2 39204 2 39210 2 39211 2 39217 2 39227 2 39234 2 39239 2 39240 2 39244 2 39247 2 39260 2 39261 2 39264 2 39269 2 39271 2 39276 2 39277 2 39278 2 39281 2 39291 2 39302 2 39303 2 39304 2 39309 2 39313 2 39315 2 39355 2 39357 2 39367 2 39374 2 39377 2 39381 2 39383 2 39400 2 39407 2 39410 2 39416 2 39430 2 39447 2 39449 2 39459 2 39470 2 39472 2 39485 2 39487 2 39489 2 39496 2 39498 2 39502 2 39506 2 39509 2 39514 2 39529 2 39534 2 39536 2 39548 2 39560 2 39563 2 39569 2 39574 2 39579 2 39580 2 39581 2 39582 2 39587 2 39588 2 39613 2 39618 2 39620 2 39621 2 39622 2 39625 2 39628 2 39644 2 39645 2 39647 2 39652 2 39659 2 39669 2 39671 2 39673 2 39675 2 39690 2 39699 2 39717 2 39725 2 39729 2 39730 2 39738 2 39741 2 39744 2 39748 2 39750 2 39752 2 39754 2 39756 2 39758 2 39760 2 39761 2 39763 2 39765 2 39768 2 39778 2 39780 2 39781 2 39782 2 39797 2 39800 2 39810 2 39815 2 39825 2 39829 2 39840 2 39844 2 39845 2 39847 2 39857 2 39863 2 39870 2 39872 2 39888 2 39890 2 39897 2 39899 2 39900 2 39902 2 39903 2 39909 2 39914 2 39917 2 39918 2 39934 2 39943 2 39951 2 39955 2 39956 2 39963 2 39977 2 39982 2 39987 2 39993 2 40000 2 40012 2 40015 2 40020 2 40021 2 40022 2 40029 2 40030 2 40035 2 40036 2 40042 2 40064 2 40070 2 40072 2 40073 2 40079 2 40090 2 40091 2 40097 2 40106 2 40107 2 40109 2 40110 2 40113 2 40124 2 40130 2 40135 2 40140 2 40156 2 40160 2 40177 2 40189 2 40199 2 40215 2 40222 2 40224 2 40226 2 40230 2 40235 2 40241 2 40247 2 40250 2 40260 2 40261 2 40273 2 40283 2 40286 2 40289 2 40293 2 40296 2 40301 2 40322 2 40325 2 40332 2 40333 2 40343 2 40350 2 40356 2 40362 2 40373 2 40377 2 40380 2 40385 2 40391 2 40404 2 40427 2 40435 2 40446 2 40457 2 40460 2 40470 2 40472 2 40483 2 40485 2 40489 2 40491 2 40493 2 40494 2 40499 2 40500 2 40504 2 40508 2 40518 2 40519 2 40522 2 40523 2 40525 2 40530 2 40532 2 40534 2 40535 2 40548 2 40555 2 40558 2 40559 2 40561 2 40574 2 40579 2 40583 2 40588 2 40592 2 40593 2 40599 2 40600 2 40617 2 40618 2 40625 2 40627 2 40640 2 40646 2 40647 2 40652 2 40653 2 40654 2 40669 2 40674 2 40676 2 40680 2 40687 2 40689 2 40690 2 40696 2 40700 2 40707 2 40718 2 40719 2 40727 2 40728 2 40739 2 40742 2 40747 2 40755 2 40756 2 40762 2 40765 2 40770 2 40776 2 40784 2 40795 2 40805 2 40814 2 40822 2 40823 2 40832 2 40856 2 40857 2 40863 2 40864 2 40867 2 40875 2 40878 2 40882 2 40887 2 40893 2 40894 2 40896 2 40897 2 40899 2 40923 2 40927 2 40939 2 40947 2 40951 2 40959 2 40960 2 40961 2 40966 2 40967 2 40968 2 40971 2 40974 2 41000 2 41009 2 41015 2 41016 2 41018 2 41021 2 41037 2 41046 2 41050 2 41054 2 41056 2 41068 2 41071 2 41079 2 41080 2 41081 2 41083 2 41100 2 41101 2 41112 2 41113 2 41116 2 41119 2 41121 2 41123 2 41133 2 41162 2 41166 2 41175 2 41180 2 41183 2 41186 2 41189 2 41191 2 41198 2 41200 2 41213 2 41217 2 41222 2 41232 2 41236 2 41238 2 41243 2 41246 2 41249 2 41250 2 41255 2 41258 2 41264 2 41265 2 41276 2 41277 2 41293 2 41303 2 41304 2 41307 2 41322 2 41329 2 41330 2 41331 2 41333 2 41336 2 41341 2 41347 2 41351 2 41352 2 41355 2 41359 2 41370 2 41375 2 41390 2 41391 2 41392 2 41399 2 41409 2 41430 2 41449 2 41452 2 41456 2 41458 2 41459 2 41460 2 41462 2 41464 2 41467 2 41470 2 41472 2 41474 2 41475 2 41476 2 41488 2 41492 2 41493 2 41495 2 41499 2 41524 2 41526 2 41527 2 41528 2 41540 2 41549 2 41550 2 41562 2 41566 2 41576 2 41581 2 41590 2 41595 2 41615 2 41617 2 41627 2 41641 2 41642 2 41646 2 41647 2 41654 2 41660 2 41662 2 41666 2 41668 2 41670 2 41674 2 41675 2 41679 2 41682 2 41694 2 41700 2 41710 2 41711 2 41712 2 41716 2 41731 2 41740 2 41742 2 41753 2 41755 2 41760 2 41763 2 41770 2 41772 2 41782 2 41785 2 41800 2 41804 2 41805 2 41806 2 41808 2 41809 2 41812 2 41836 2 41837 2 41843 2 41847 2 41848 2 41850 2 41860 2 41861 2 41870 2 41874 2 41878 2 41879 2 41885 2 41887 2 41888 2 41899 2 41905 2 41912 2 41916 2 41921 2 41924 2 41925 2 41931 2 41937 2 41939 2 41945 2 41961 2 41963 2 41977 2 41996 2 42001 2 42006 2 42011 2 42012 2 42022 2 42033 2 42034 2 42039 2 42069 2 42073 2 42081 2 42091 2 42098 2 42103 2 42106 2 42110 2 42114 2 42115 2 42120 2 42131 2 42137 2 42138 2 42139 2 42148 2 42157 2 42161 2 42167 2 42173 2 42177 2 42178 2 42180 2 42182 2 42183 2 42187 2 42193 2 42195 2 42201 2 42203 2 42207 2 42215 2 42217 2 42224 2 42228 2 42229 2 42232 2 42248 2 42253 2 42257 2 42259 2 42264 2 42266 2 42267 2 42269 2 42275 2 42277 2 42294 2 42295 2 42303 2 42308 2 42311 2 42312 2 42313 2 42316 2 42317 2 42318 2 42338 2 42350 2 42356 2 42358 2 42364 2 42365 2 42368 2 42374 2 42375 2 42380 2 42384 2 42405 2 42411 2 42414 2 42421 2 42426 2 42442 2 42448 2 42450 2 42451 2 42453 2 42454 2 42460 2 42473 2 42475 2 42476 2 42477 2 42478 2 42480 2 42482 2 42483 2 42497 2 42498 2 42506 2 42511 2 42515 2 42520 2 42523 2 42540 2 42547 2 42563 2 42567 2 42573 2 42586 2 42590 2 42596 2 42604 2 42618 2 42625 2 42633 2 42634 2 42636 2 42637 2 42644 2 42656 2 42668 2 42672 2 42675 2 42679 2 42680 2 42692 2 42693 2 42695 2 42703 2 42714 2 42720 2 42723 2 42729 2 42757 2 42758 2 42762 2 42769 2 42779 2 42781 2 42787 2 42789 2 42797 2 42800 2 42801 2 42803 2 42805 2 42806 2 42808 2 42814 2 42815 2 42821 2 42823 2 42854 2 42860 2 42864 2 42873 2 42874 2 42876 2 42879 2 42883 2 42889 2 42894 2 42902 2 42904 2 42917 2 42924 2 42925 2 42931 2 42932 2 42938 2 42939 2 42948 2 42951 2 42959 2 42968 2 42970 2 42975 2 42977 2 42979 2 42981 2 42985 2 42986 2 42991 2 42996 2 42997 2 42999 2 43000 2 43002 2 43008 2 43010 2 43020 2 43021 2 43025 2 43032 2 43035 2 43067 2 43085 2 43088 2 43093 2 43097 2 43113 2 43114 2 43116 2 43121 2 43123 2 43131 2 43138 2 43143 2 43146 2 43149 2 43155 2 43182 2 43185 2 43191 2 43209 2 43211 2 43223 2 43225 2 43227 2 43228 2 43234 2 43237 2 43242 2 43255 2 43257 2 43261 2 43263 2 43268 2 43271 2 43279 2 43280 2 43281 2 43283 2 43285 2 43286 2 43293 2 43295 2 43310 2 43317 2 43328 2 43329 2 43331 2 43332 2 43333 2 43344 2 43354 2 43356 2 43358 2 43367 2 43377 2 43389 2 43397 2 43404 2 43405 2 43406 2 43413 2 43433 2 43437 2 43447 2 43448 2 43457 2 43463 2 43465 2 43467 2 43470 2 43476 2 43488 2 43491 2 43492 2 43497 2 43502 2 43515 2 43534 2 43542 2 43548 2 43564 2 43568 2 43569 2 43571 2 43577 2 43583 2 43601 2 43605 2 43610 2 43615 2 43627 2 43630 2 43641 2 43647 2 43649 2 43653 2 43654 2 43659 2 43661 2 43669 2 43686 2 43689 2 43696 2 43726 2 43727 2 43729 2 43741 2 43742 2 43752 2 43754 2 43763 2 43777 2 43783 2 43788 2 43795 2 43801 2 43804 2 43826 2 43842 2 43844 2 43846 2 43856 2 43859 2 43862 2 43866 2 43868 2 43870 2 43876 2 43879 2 43888 2 43892 2 43902 2 43904 2 43908 2 43913 2 43915 2 43916 2 43925 2 43926 2 43927 2 43930 2 43932 2 43942 2 43975 2 43981 2 43983 2 44013 2 44017 2 44027 2 44028 2 44029 2 44042 2 44044 2 44049 2 44056 2 44057 2 44060 2 44063 2 44065 2 44068 2 44069 2 44086 2 44087 2 44088 2 44096 2 44105 2 44117 2 44123 2 44127 2 44138 2 44148 2 44149 2 44156 2 44158 2 44159 2 44163 2 44169 2 44180 2 44184 2 44201 2 44215 2 44216 2 44220 2 44233 2 44235 2 44240 2 44252 2 44258 2 44266 2 44273 2 44274 2 44280 2 44291 2 44296 2 44298 2 44336 2 44337 2 44342 2 44350 2 44352 2 44354 2 44365 2 44372 2 44378 2 44382 2 44388 2 44395 2 44401 2 44409 2 44410 2 44413 2 44417 2 44425 2 44433 2 44445 2 44446 2 44449 2 44450 2 44452 2 44464 2 44473 2 44474 2 44476 2 44481 2 44482 2 44484 2 44485 2 44494 2 44500 2 44510 2 44512 2 44514 2 44515 2 44520 2 44525 2 44534 2 44541 2 44557 2 44564 2 44566 2 44571 2 44576 2 44577 2 44578 2 44585 2 44587 2 44594 2 44596 2 44599 2 44601 2 44602 2 44605 2 44607 2 44612 2 44616 2 44627 2 44630 2 44635 2 44641 2 44645 2 44649 2 44651 2 44654 2 44660 2 44665 2 44667 2 44671 2 44684 2 44685 2 44700 2 44703 2 44711 2 44716 2 44723 2 44724 2 44735 2 44739 2 44740 2 44745 2 44747 2 44749 2 44756 2 44763 2 44765 2 44769 2 44793 2 44796 2 44801 2 44802 2 44811 2 44822 2 44827 2 44836 2 44838 2 44840 2 44842 2 44844 2 44846 2 44858 2 44875 2 44888 2 44895 2 44898 2 44902 2 44903 2 44910 2 44917 2 44923 2 44933 2 44965 2 44971 2 44975 2 44984 2 44985 2 44987 2 44991 2 44992 2 45004 2 45006 2 45017 2 45019 2 45024 2 45027 2 45032 2 45034 2 45042 2 45043 2 45048 2 45059 2 45064 2 45072 2 45075 2 45077 2 45078 2 45083 2 45089 2 45091 2 45095 2 45099 2 45104 2 45105 2 45109 2 45124 2 45149 2 45157 2 45164 2 45169 2 45178 2 45183 2 45190 2 45194 2 45195 2 45198 2 45201 2 45203 2 45205 2 45206 2 45208 2 45219 2 45221 2 45235 2 45237 2 45242 2 45246 2 45251 2 45255 2 45257 2 45260 2 45264 2 45265 2 45272 2 45277 2 45285 2 45295 2 45307 2 45309 2 45313 2 45324 2 45325 2 45326 2 45344 2 45349 2 45362 2 45363 2 45369 2 45375 2 45384 2 45388 2 45392 2 45396 2 45419 2 45425 2 45447 2 45449 2 45459 2 45463 2 45465 2 45470 2 45473 2 45482 2 45484 2 45491 2 45497 2 45529 2 45535 2 45536 2 45540 2 45541 2 45547 2 45552 2 45556 2 45565 2 45567 2 45572 2 45579 2 45590 2 45593 2 45600 2 45602 2 45610 2 45625 2 45629 2 45640 2 45652 2 45659 2 45667 2 45668 2 45680 2 45687 2 45688 2 45700 2 45702 2 45704 2 45707 2 45708 2 45709 2 45714 2 45717 2 45729 2 45731 2 45735 2 45758 2 45760 2 45765 2 45766 2 45768 2 45769 2 45772 2 45780 2 45786 2 45791 2 45798 2 45800 2 45807 2 45812 2 45814 2 45815 2 45819 2 45827 2 45828 2 45835 2 45840 2 45857 2 45863 2 45868 2 45877 2 45879 2 45880 2 45890 2 45896 2 45902 2 45915 2 45920 2 45921 2 45934 2 45942 2 45948 2 45949 2 45952 2 45953 2 45959 2 45965 2 45967 2 45969 2 45981 2 45982 2 45983 2 45994 2 46006 2 46012 2 46014 2 46015 2 46022 2 46040 2 46041 2 46046 2 46054 2 46055 2 46065 2 46072 2 46077 2 46078 2 46089 2 46102 2 46107 2 46117 2 46118 2 46122 2 46128 2 46140 2 46143 2 46146 2 46150 2 46152 2 46154 2 46163 2 46165 2 46172 2 46174 2 46181 2 46182 2 46200 2 46205 2 46208 2 46211 2 46221 2 46227 2 46235 2 46238 2 46242 2 46250 2 46255 2 46267 2 46278 2 46283 2 46285 2 46287 2 46288 2 46293 2 46302 2 46310 2 46312 2 46314 2 46315 2 46319 2 46320 2 46324 2 46326 2 46338 2 46342 2 46343 2 46352 2 46354 2 46363 2 46364 2 46365 2 46367 2 46382 2 46388 2 46389 2 46404 2 46406 2 46409 2 46426 2 46430 2 46441 2 46457 2 46458 2 46459 2 46468 2 46472 2 46482 2 46485 2 46490 2 46492 2 46504 2 46508 2 46510 2 46517 2 46529 2 46536 2 46542 2 46544 2 46548 2 46551 2 46552 2 46554 2 46567 2 46570 2 46592 2 46595 2 46602 2 46603 2 46617 2 46619 2 46624 2 46626 2 46627 2 46628 2 46633 2 46634 2 46643 2 46649 2 46655 2 46657 2 46661 2 46662 2 46676 2 46678 2 46680 2 46682 2 46683 2 46689 2 46691 2 46698 2 46699 2 46704 2 46724 2 46737 2 46739 2 46751 2 46753 2 46766 2 46772 2 46773 2 46783 2 46786 2 46791 2 46792 2 46815 2 46818 2 46820 2 46824 2 46829 2 46830 2 46846 2 46847 2 46849 2 46887 2 46896 2 46902 2 46905 2 46908 2 46911 2 46919 2 46926 2 46934 2 46935 2 46938 2 46945 2 46947 2 46965 2 46966 2 46988 2 47005 2 47009 2 47016 2 47018 2 47021 2 47029 2 47033 2 47041 2 47043 2 47057 2 47070 2 47077 2 47084 2 47092 2 47098 2 47101 2 47102 2 47107 2 47111 2 47112 2 47117 2 47119 2 47130 2 47135 2 47148 2 47152 2 47167 2 47184 2 47194 2 47196 2 47199 2 47201 2 47204 2 47213 2 47215 2 47218 2 47232 2 47242 2 47246 2 47251 2 47253 2 47256 2 47257 2 47268 2 47282 2 47286 2 47287 2 47293 2 47296 2 47298 2 47318 2 47321 2 47328 2 47334 2 47339 2 47351 2 47380 2 47392 2 47400 2 47401 2 47415 2 47420 2 47421 2 47426 2 47430 2 47438 2 47440 2 47441 2 47449 2 47452 2 47453 2 47458 2 47470 2 47472 2 47474 2 47477 2 47483 2 47497 2 47507 2 47511 2 47514 2 47517 2 47518 2 47539 2 47542 2 47543 2 47545 2 47556 2 47557 2 47563 2 47568 2 47584 2 47588 2 47589 2 47603 2 47610 2 47628 2 47629 2 47633 2 47642 2 47643 2 47647 2 47670 2 47671 2 47679 2 47686 2 47691 2 47698 2 47703 2 47716 2 47717 2 47725 2 47734 2 47739 2 47743 2 47747 2 47766 2 47772 2 47779 2 47783 2 47786 2 47789 2 47809 2 47810 2 47814 2 47818 2 47822 2 47830 2 47834 2 47840 2 47855 2 47857 2 47859 2 47860 2 47861 2 47869 2 47882 2 47885 2 47890 2 47905 2 47907 2 47913 2 47918 2 47919 2 47930 2 47937 2 47939 2 47948 2 47955 2 47962 2 47963 2 47965 2 47967 2 47968 2 47973 2 47988 2 47989 2 47993 2 48005 2 48006 2 48007 2 48008 2 48012 2 48013 2 48022 2 48050 2 48051 2 48058 2 48066 2 48067 2 48068 2 48073 2 48077 2 48080 2 48083 2 48096 2 48098 2 48116 2 48117 2 48118 2 48122 2 48123 2 48124 2 48135 2 48137 2 48139 2 48143 2 48163 2 48164 2 48165 2 48167 2 48168 2 48171 2 48174 2 48183 2 48195 2 48202 2 48209 2 48218 2 48221 2 48224 2 48225 2 48230 2 48239 2 48250 2 48254 2 48255 2 48265 2 48277 2 48311 2 48320 2 48353 2 48366 2 48367 2 48370 2 48372 2 48393 2 48398 2 48410 2 48417 2 48424 2 48429 2 48430 2 48436 2 48442 2 48444 2 48446 2 48462 2 48463 2 48473 2 48474 2 48482 2 48488 2 48491 2 48509 2 48518 2 48534 2 48537 2 48539 2 48543 2 48545 2 48549 2 48553 2 48554 2 48555 2 48559 2 48566 2 48589 2 48592 2 48598 2 48600 2 48603 2 48606 2 48609 2 48611 2 48612 2 48620 2 48624 2 48634 2 48645 2 48646 2 48657 2 48664 2 48669 2 48673 2 48684 2 48692 2 48699 2 48704 2 48706 2 48718 2 48725 2 48726 2 48767 2 48778 2 48780 2 48781 2 48787 2 48789 2 48805 2 48807 2 48808 2 48810 2 48814 2 48815 2 48829 2 48838 2 48841 2 48875 2 48877 2 48882 2 48891 2 48896 2 48902 2 48909 2 48916 2 48921 2 48925 2 48934 2 48937 2 48948 2 48957 2 48958 2 48967 2 48970 2 48980 2 48982 2 48985 2 48993 2 48999 2 49003 2 49007 2 49008 2 49012 2 49016 2 49019 2 49027 2 49028 2 49034 2 49035 2 49036 2 49047 2 49049 2 49050 2 49059 2 49065 2 49066 2 49075 2 49077 2 49092 2 49098 2 49107 2 49113 2 49117 2 49118 2 49120 2 49122 2 49124 2 49134 2 49144 2 49152 2 49157 2 49158 2 49160 2 49177 2 49180 2 49191 2 49194 2 49198 2 49208 2 49210 2 49216 2 49236 2 49244 2 49248 2 49250 2 49254 2 49257 2 49258 2 49260 2 49261 2 49263 2 49274 2 49276 2 49283 2 49290 2 49292 2 49296 2 49299 2 49301 2 49302 2 49303 2 49306 2 49311 2 49322 2 49323 2 49337 2 49342 2 49349 2 49353 2 49357 2 49361 2 49370 2 49378 2 49388 2 49391 2 49392 2 49397 2 49402 2 49404 2 49417 2 49422 2 49426 2 49427 2 49429 2 49435 2 49441 2 49448 2 49451 2 49452 2 49453 2 49458 2 49464 2 49468 2 49471 2 49479 2 49486 2 49489 2 49504 2 49512 2 49524 2 49527 2 49530 2 49531 2 49537 2 49541 2 49552 2 49555 2 49563 2 49575 2 49576 2 49577 2 49583 2 49584 2 49586 2 49590 2 49599 2 49604 2 49617 2 49621 2 49629 2 49630 2 49634 2 49636 2 49643 2 49649 2 49663 2 49672 2 49673 2 49684 2 49687 2 49688 2 49689 2 49700 2 49712 2 49718 2 49725 2 49726 2 49729 2 49741 2 49742 2 49750 2 49754 2 49760 2 49761 2 49771 2 49775 2 49782 2 49783 2 49795 2 49805 2 49806 2 49810 2 49812 2 49815 2 49817 2 49824 2 49827 2 49837 2 49839 2 49844 2 49853 2 49866 2 49868 2 49869 2 49872 2 49874 2 49877 2 49878 2 49879 2 49887 2 49896 2 49899 2 49900 2 49902 2 49916 2 49919 2 49925 2 49943 2 49947 2 49949 2 49954 2 49955 2 49957 2 49963 2 49966 2 49974 2 49980 2 49984 2 49989 2 49997 2 50009 2 50016 2 50021 2 50035 2 50050 2 50051 2 50065 2 50105 2 50110 2 50114 2 50119 2 50124 2 50129 2 50134 2 50135 2 50146 2 50147 2 50161 2 50162 2 50171 2 50202 2 50207 2 50214 2 50215 2 50216 2 50218 2 50221 2 50222 2 50224 2 50230 2 50231 2 50241 2 50244 2 50245 2 50261 2 50263 2 50271 2 50274 2 50277 2 50284 2 50288 2 50296 2 50300 2 50304 2 50311 2 50317 2 50328 2 50343 2 50349 2 50355 2 50359 2 50361 2 50377 2 50390 2 50396 2 50398 2 50401 2 50402 2 50405 2 50409 2 50414 2 50418 2 50419 2 50420 2 50432 2 50436 2 50456 2 50459 2 50463 2 50469 2 50471 2 50472 2 50479 2 50490 2 50491 2 50502 2 50508 2 50518 2 50521 2 50524 2 50533 2 50547 2 50565 2 50573 2 50578 2 50582 2 50589 2 50592 2 50595 2 50600 2 50615 2 50616 2 50619 2 50621 2 50633 2 50634 2 50638 2 50648 2 50660 2 50669 2 50673 2 50675 2 50686 2 50689 2 50690 2 50694 2 50698 2 50704 2 50708 2 50710 2 50716 2 50719 2 50725 2 50744 2 50749 2 50754 2 50759 2 50764 2 50768 2 50772 2 50774 2 50783 2 50797 2 50801 2 50807 2 50814 2 50818 2 50829 2 50844 2 50845 2 50846 2 50856 2 50863 2 50864 2 50881 2 50885 2 50887 2 50889 2 50895 2 50900 2 50903 2 50916 2 50933 2 50935 2 50944 2 50948 2 50956 2 50965 2 50966 2 50970 2 50977 2 50988 2 50995 2 50996 2 51006 2 51008 2 51013 2 51015 2 51024 2 51042 2 51046 2 51050 2 51072 2 51094 2 51097 2 51098 2 51101 2 51102 2 51103 2 51108 2 51125 2 51126 2 51127 2 51130 2 51131 2 51132 2 51136 2 51137 2 51138 2 51139 2 51144 2 51157 2 51165 2 51172 2 51180 2 51187 2 51193 2 51195 2 51199 2 51203 2 51204 2 51212 2 51215 2 51225 2 51232 2 51236 2 51241 2 51243 2 51246 2 51248 2 51254 2 51255 2 51269 2 51273 2 51277 2 51297 2 51312 2 51315 2 51316 2 51328 2 51334 2 51343 2 51345 2 51358 2 51359 2 51362 2 51363 2 51364 2 51366 2 51377 2 51385 2 51399 2 51407 2 51409 2 51410 2 51431 2 51436 2 51443 2 51458 2 51459 2 51460 2 51463 2 51464 2 51468 2 51474 2 51476 2 51478 2 51482 2 51484 2 51486 2 51490 2 51499 2 51532 2 51535 2 51542 2 51548 2 51557 2 51563 2 51564 2 51568 2 51589 2 51599 2 51602 2 51603 2 51605 2 51610 2 51613 2 51614 2 51626 2 51627 2 51628 2 51629 2 51641 2 51644 2 51650 2 51651 2 51660 2 51661 2 51663 2 51675 2 51677 2 51679 2 51681 2 51708 2 51722 2 51731 2 51742 2 51746 2 51765 2 51766 2 51774 2 51783 2 51785 2 51788 2 51792 2 51793 2 51798 2 51799 2 51800 2 51811 2 51820 2 51821 2 51822 2 51827 2 51830 2 51842 2 51845 2 51851 2 51853 2 51856 2 51865 2 51869 2 51871 2 51874 2 51889 2 51895 2 51896 2 51898 2 51900 2 51909 2 51914 2 51915 2 51928 2 51936 2 51944 2 51951 2 51956 2 51970 2 51977 2 51984 2 51991 2 51992 2 51997 2 51998 2 51999 2 52009 2 52020 2 52025 2 52030 2 52040 2 52046 2 52049 2 52060 2 52061 2 52065 2 52073 2 52103 2 52104 2 52105 2 52108 2 52120 2 52125 2 52138 2 52139 2 52141 2 52142 2 52143 2 52146 2 52155 2 52158 2 52166 2 52190 2 52201 2 52217 2 52223 2 52224 2 52231 2 52235 2 52239 2 52241 2 52243 2 52254 2 52255 2 52257 2 52298 2 52328 2 52329 2 52339 2 52342 2 52348 2 52352 2 52362 2 52365 2 52378 2 52379 2 52382 2 52387 2 52391 2 52397 2 52404 2 52407 2 52429 2 52434 2 52436 2 52437 2 52452 2 52454 2 52465 2 52472 2 52482 2 52484 2 52490 2 52499 2 52502 2 52518 2 52527 2 52529 2 52532 2 52538 2 52553 2 52555 2 52558 2 52563 2 52566 2 52571 2 52575 2 52596 2 52623 2 52630 2 52632 2 52633 2 52642 2 52643 2 52649 2 52659 2 52672 2 52673 2 52676 2 52680 2 52684 2 52700 2 52703 2 52704 2 52710 2 52715 2 52719 2 52723 2 52731 2 52740 2 52761 2 52768 2 52773 2 52781 2 52785 2 52796 2 52805 2 52807 2 52809 2 52810 2 52815 2 52819 2 52830 2 52832 2 52835 2 52855 2 52866 2 52879 2 52883 2 52885 2 52888 2 52897 2 52898 2 52899 2 52902 2 52903 2 52905 2 52907 2 52911 2 52912 2 52925 2 52936 2 52938 2 52942 2 52962 2 52973 2 52984 2 52990 2 52992 2 52997 2 52998 2 53006 2 53020 2 53022 2 53035 2 53040 2 53050 2 53056 2 53063 2 53084 2 53089 2 53093 2 53095 2 53100 2 53111 2 53130 2 53140 2 53148 2 53152 2 53169 2 53172 2 53174 2 53180 2 53182 2 53187 2 53194 2 53197 2 53209 2 53210 2 53212 2 53223 2 53231 2 53238 2 53240 2 53243 2 53252 2 53253 2 53264 2 53269 2 53276 2 53279 2 53280 2 53283 2 53295 2 53296 2 53304 2 53306 2 53312 2 53320 2 53337 2 53342 2 53350 2 53351 2 53352 2 53354 2 53360 2 53373 2 53383 2 53394 2 53400 2 53403 2 53412 2 53414 2 53418 2 53434 2 53435 2 53450 2 53456 2 53459 2 53460 2 53462 2 53468 2 53475 2 53478 2 53481 2 53484 2 53488 2 53490 2 53491 2 53494 2 53501 2 53503 2 53506 2 53509 2 53510 2 53514 2 53517 2 53519 2 53520 2 53529 2 53534 2 53545 2 53547 2 53550 2 53555 2 53562 2 53568 2 53570 2 53572 2 53597 2 53603 2 53608 2 53614 2 53616 2 53628 2 53629 2 53632 2 53636 2 53641 2 53643 2 53645 2 53653 2 53671 2 53675 2 53691 2 53695 2 53705 2 53712 2 53713 2 53717 2 53718 2 53727 2 53729 2 53731 2 53732 2 53733 2 53748 2 53757 2 53764 2 53766 2 53768 2 53774 2 53781 2 53789 2 53794 2 53797 2 53799 2 53813 2 53816 2 53834 2 53838 2 53842 2 53848 2 53856 2 53865 2 53870 2 53871 2 53872 2 53873 2 53877 2 53878 2 53888 2 53892 2 53902 2 53910 2 53919 2 53920 2 53930 2 53959 2 53978 2 53983 2 53985 2 53997 2 54019 2 54020 2 54031 2 54032 2 54035 2 54041 2 54042 2 54046 2 54048 2 54053 2 54055 2 54060 2 54089 2 54097 2 54100 2 54101 2 54105 2 54109 2 54116 2 54123 2 54130 2 54139 2 54140 2 54147 2 54149 2 54155 2 54156 2 54160 2 54163 2 54178 2 54179 2 54184 2 54201 2 54220 2 54221 2 54226 2 54229 2 54239 2 54242 2 54243 2 54247 2 54249 2 54254 2 54256 2 54263 2 54268 2 54273 2 54274 2 54280 2 54281 2 54285 2 54288 2 54290 2 54291 2 54293 2 54299 2 54312 2 54330 2 54334 2 54335 2 54342 2 54345 2 54349 2 54352 2 54364 2 54373 2 54376 2 54378 2 54397 2 54400 2 54402 2 54404 2 54435 2 54447 2 54449 2 54459 2 54471 2 54481 2 54485 2 54486 2 54494 2 54502 2 54504 2 54506 2 54515 2 54516 2 54522 2 54526 2 54531 2 54532 2 54536 2 54541 2 54546 2 54550 2 54553 2 54556 2 54558 2 54568 2 54574 2 54582 2 54585 2 54595 2 54596 2 54608 2 54609 2 54615 2 54616 2 54621 2 54651 2 54657 2 54663 2 54669 2 54671 2 54681 2 54686 2 54696 2 54697 2 54699 2 54701 2 54707 2 54709 2 54720 2 54723 2 54725 2 54729 2 54731 2 54733 2 54738 2 54746 2 54747 2 54753 2 54757 2 54758 2 54759 2 54762 2 54764 2 54767 2 54769 2 54784 2 54788 2 54789 2 54794 2 54795 2 54800 2 54803 2 54806 2 54812 2 54824 2 54827 2 54831 2 54837 2 54841 2 54850 2 54851 2 54856 2 54865 2 54869 2 54880 2 54881 2 54885 2 54886 2 54887 2 54889 2 54890 2 54892 2 54897 2 54898 2 54903 2 54908 2 54911 2 54917 2 54921 2 54925 2 54926 2 54927 2 54934 2 54941 2 54952 2 54955 2 54962 2 54985 2 54996 2 55008 2 55024 2 55027 2 55028 2 55033 2 55045 2 55048 2 55049 2 55050 2 55059 2 55068 2 55073 2 55081 2 55095 2 55096 2 55098 2 55103 2 55112 2 55113 2 55143 2 55151 2 55160 2 55162 2 55181 2 55184 2 55192 2 55195 2 55196 2 55206 2 55232 2 55238 2 55248 2 55259 2 55262 2 55263 2 55274 2 55278 2 55289 2 55296 2 55300 2 55309 2 55311 2 55315 2 55319 2 55326 2 55352 2 55356 2 55372 2 55375 2 55377 2 55382 2 55388 2 55389 2 55397 2 55407 2 55409 2 55416 2 55424 2 55428 2 55437 2 55455 2 55456 2 55466 2 55476 2 55477 2 55478 2 55489 2 55504 2 55514 2 55515 2 55524 2 55526 2 55547 2 55557 2 55563 2 55567 2 55568 2 55573 2 55578 2 55579 2 55590 2 55607 2 55610 2 55611 2 55613 2 55614 2 55632 2 55633 2 55642 2 55644 2 55648 2 55649 2 55656 2 55657 2 55662 2 55669 2 55671 2 55684 2 55688 2 55699 2 55705 2 55716 2 55719 2 55732 2 55743 2 55753 2 55765 2 55770 2 55780 2 55781 2 55784 2 55789 2 55797 2 55803 2 55805 2 55814 2 55827 2 55828 2 55834 2 55841 2 55842 2 55843 2 55846 2 55847 2 55855 2 55857 2 55864 2 55883 2 55895 2 55898 2 55899 2 55900 2 55905 2 55918 2 55919 2 55924 2 55926 2 55927 2 55932 2 55933 2 55935 2 55936 2 55955 2 55957 2 55960 2 55964 2 55972 2 55973 2 55975 2 55986 2 56018 2 56026 2 56035 2 56040 2 56047 2 56057 2 56062 2 56069 2 56070 2 56074 2 56075 2 56085 2 56087 2 56089 2 56095 2 56101 2 56103 2 56119 2 56124 2 56126 2 56136 2 56159 2 56166 2 56171 2 56176 2 56180 2 56189 2 56193 2 56206 2 56208 2 56220 2 56222 2 56226 2 56231 2 56232 2 56253 2 56254 2 56263 2 56277 2 56284 2 56288 2 56294 2 56302 2 56310 2 56314 2 56315 2 56325 2 56335 2 56336 2 56338 2 56354 2 56355 2 56361 2 56373 2 56375 2 56382 2 56385 2 56387 2 56389 2 56398 2 56406 2 56415 2 56419 2 56420 2 56421 2 56433 2 56441 2 56447 2 56457 2 56464 2 56471 2 56473 2 56476 2 56477 2 56489 2 56493 2 56495 2 56504 2 56505 2 56513 2 56515 2 56521 2 56525 2 56533 2 56540 2 56543 2 56547 2 56548 2 56550 2 56566 2 56571 2 56587 2 56593 2 56599 2 56615 2 56618 2 56623 2 56624 2 56642 2 56653 2 56671 2 56673 2 56679 2 56680 2 56689 2 56693 2 56704 2 56712 2 56740 2 56748 2 56758 2 56761 2 56767 2 56782 2 56793 2 56796 2 56800 2 56807 2 56808 2 56832 2 56834 2 56849 2 56868 2 56873 2 56893 2 56898 2 56905 2 56913 2 56917 2 56918 2 56922 2 56924 2 56928 2 56944 2 56945 2 56947 2 56960 2 56961 2 56962 2 56964 2 56970 2 56971 2 56973 2 56978 2 56980 2 56981 2 56991 2 56994 2 56996 2 57003 2 57006 2 57013 2 57015 2 57017 2 57021 2 57027 2 57029 2 57033 2 57040 2 57044 2 57046 2 57049 2 57057 2 57071 2 57072 2 57075 2 57086 2 57090 2 57092 2 57104 2 57112 2 57114 2 57124 2 57132 2 57134 2 57149 2 57151 2 57164 2 57166 2 57172 2 57175 2 57176 2 57177 2 57179 2 57180 2 57188 2 57212 2 57220 2 57221 2 57224 2 57244 2 57247 2 57249 2 57252 2 57261 2 57266 2 57270 2 57272 2 57277 2 57280 2 57282 2 57287 2 57290 2 57294 2 57311 2 57314 2 57332 2 57337 2 57345 2 57346 2 57349 2 57359 2 57361 2 57364 2 57387 2 57389 2 57391 2 57402 2 57403 2 57411 2 57425 2 57427 2 57429 2 57452 2 57455 2 57464 2 57466 2 57470 2 57472 2 57473 2 57482 2 57484 2 57490 2 57502 2 57503 2 57523 2 57525 2 57528 2 57530 2 57531 2 57535 2 57541 2 57542 2 57545 2 57552 2 57562 2 57573 2 57580 2 57583 2 57597 2 57599 2 57618 2 57620 2 57622 2 57626 2 57634 2 57635 2 57637 2 57655 2 57668 2 57670 2 57672 2 57687 2 57693 2 57705 2 57707 2 57710 2 57711 2 57728 2 57730 2 57732 2 57733 2 57734 2 57737 2 57740 2 57757 2 57761 2 57768 2 57778 2 57780 2 57788 2 57791 2 57795 2 57797 2 57805 2 57813 2 57814 2 57818 2 57819 2 57825 2 57830 2 57832 2 57833 2 57856 2 57857 2 57864 2 57869 2 57876 2 57880 2 57890 2 57900 2 57903 2 57904 2 57912 2 57919 2 57929 2 57931 2 57945 2 57951 2 57953 2 57954 2 57955 2 57956 2 57985 2 57989 2 57990 2 57995 2 58000 2 58001 2 58005 2 58008 2 58017 2 58021 2 58032 2 58036 2 58042 2 58044 2 58046 2 58049 2 58054 2 58060 2 58065 2 58072 2 58076 2 58091 2 58092 2 58103 2 58107 2 58119 2 58121 2 58122 2 58127 2 58129 2 58133 2 58135 2 58141 2 58142 2 58151 2 58158 2 58170 2 58173 2 58176 2 58177 2 58180 2 58184 2 58186 2 58191 2 58193 2 58221 2 58227 2 58247 2 58258 2 58266 2 58268 2 58269 2 58270 2 58272 2 58279 2 58286 2 58288 2 58289 2 58290 2 58296 2 58309 2 58316 2 58318 2 58326 2 58330 2 58334 2 58344 2 58345 2 58346 2 58368 2 58369 2 58375 2 58382 2 58383 2 58386 2 58391 2 58393 2 58396 2 58407 2 58408 2 58419 2 58421 2 58425 2 58428 2 58429 2 58437 2 58439 2 58452 2 58454 2 58460 2 58464 2 58465 2 58466 2 58467 2 58475 2 58477 2 58482 2 58486 2 58487 2 58489 2 58496 2 58499 2 58500 2 58522 2 58541 2 58550 2 58553 2 58557 2 58574 2 58577 2 58582 2 58583 2 58587 2 58599 2 58600 2 58614 2 58626 2 58637 2 58638 2 58643 2 58644 2 58645 2 58650 2 58660 2 58662 2 58668 2 58677 2 58700 2 58705 2 58709 2 58712 2 58715 2 58716 2 58717 2 58727 2 58733 2 58749 2 58753 2 58755 2 58757 2 58771 2 58782 2 58784 2 58787 2 58796 2 58800 2 58804 2 58809 2 58812 2 58815 2 58819 2 58828 2 58835 2 58848 2 58853 2 58868 2 58870 2 58871 2 58884 2 58885 2 58888 2 58893 2 58904 2 58908 2 58915 2 58936 2 58940 2 58947 2 58956 2 58996 2 59005 2 59030 2 59044 2 59048 2 59049 2 59050 2 59057 2 59070 2 59081 2 59084 2 59095 2 59100 2 59104 2 59109 2 59113 2 59118 2 59120 2 59122 2 59128 2 59129 2 59134 2 59135 2 59143 2 59146 2 59147 2 59148 2 59162 2 59167 2 59176 2 59179 2 59181 2 59190 2 59192 2 59198 2 59214 2 59223 2 59224 2 59234 2 59237 2 59241 2 59246 2 59251 2 59263 2 59264 2 59265 2 59277 2 59290 2 59300 2 59304 2 59308 2 59309 2 59314 2 59321 2 59323 2 59340 2 59350 2 59362 2 59365 2 59383 2 59384 2 59388 2 59392 2 59394 2 59404 2 59409 2 59415 2 59416 2 59420 2 59424 2 59426 2 59430 2 59432 2 59439 2 59442 2 59448 2 59455 2 59465 2 59479 2 59485 2 59489 2 59508 2 59516 2 59530 2 59534 2 59542 2 59547 2 59550 2 59557 2 59570 2 59571 2 59572 2 59574 2 59576 2 59577 2 59584 2 59587 2 59589 2 59590 2 59595 2 59597 2 59607 2 59609 2 59625 2 59635 2 59636 2 59637 2 59647 2 59659 2 59665 2 59712 2 59714 2 59718 2 59720 2 59723 2 59738 2 59741 2 59743 2 59748 2 59749 2 59750 2 59763 2 59766 2 59772 2 59777 2 59788 2 59794 2 59796 2 59797 2 59800 2 59802 2 59803 2 59804 2 59813 2 59818 2 59819 2 59834 2 59835 2 59846 2 59851 2 59862 2 59863 2 59876 2 59880 2 59883 2 59889 2 59899 2 59909 2 59920 2 59925 2 59931 2 59934 2 59938 2 59956 2 59959 2 59960 2 59962 2 59972 2 59988 2 59989 2 59993 2 60000 2 60012 2 60032 2 60037 2 60039 2 60043 2 60045 2 60054 2 60062 2 60067 2 60068 2 60071 2 60074 2 60080 2 60082 2 60092 2 60103 2 60111 2 60113 2 60114 2 60116 2 60127 2 60131 2 60136 2 60137 2 60148 2 60153 2 60154 2 60161 2 60174 2 60179 2 60180 2 60181 2 60183 2 60193 2 60196 2 60197 2 60199 2 60206 2 60209 2 60212 2 60220 2 60221 2 60225 2 60241 2 60249 2 60253 2 60259 2 60260 2 60261 2 60262 2 60270 2 60276 2 60277 2 60279 2 60289 2 60293 2 60300 2 60307 2 60334 2 60336 2 60343 2 60344 2 60353 2 60355 2 60356 2 60358 2 60364 2 60370 2 60371 2 60372 2 60378 2 60388 2 60392 2 60396 2 60397 2 60401 2 60402 2 60404 2 60416 2 60418 2 60435 2 60439 2 60449 2 60461 2 60465 2 60467 2 60476 2 60492 2 60516 2 60521 2 60524 2 60535 2 60538 2 60546 2 60550 2 60556 2 60583 2 60587 2 60589 2 60597 2 60606 2 60613 2 60614 2 60616 2 60636 2 60638 2 60645 2 60647 2 60652 2 60653 2 60659 2 60661 2 60663 2 60679 2 60685 2 60696 2 60697 2 60699 2 60700 2 60702 2 60710 2 60711 2 60719 2 60725 2 60727 2 60728 2 60736 2 60749 2 60765 2 60766 2 60770 2 60774 2 60777 2 60779 2 60782 2 60784 2 60791 2 60795 2 60798 2 60800 2 60803 2 60812 2 60815 2 60822 2 60824 2 60835 2 60836 2 60837 2 60840 2 60844 2 60854 2 60856 2 60863 2 60864 2 60868 2 60874 2 60877 2 60878 2 60881 2 60883 2 60886 2 60887 2 60890 2 60891 2 60893 2 60898 2 60901 2 60906 2 60910 2 60922 2 60929 2 60931 2 60940 2 60946 2 60949 2 60952 2 60954 2 60959 2 60962 2 60968 2 60972 2 60986 2 60987 2 60988 2 60990 2 61008 2 61014 2 61024 2 61036 2 61037 2 61047 2 61051 2 61052 2 61056 2 61061 2 61064 2 61067 2 61076 2 61078 2 61079 2 61088 2 61099 2 61108 2 61112 2 61118 2 61127 2 61129 2 61130 2 61141 2 61165 2 61167 2 61168 2 61169 2 61175 2 61176 2 61181 2 61182 2 61183 2 61184 2 61191 2 61194 2 61200 2 61223 2 61236 2 61241 2 61246 2 61255 2 61256 2 61259 2 61262 2 61264 2 61269 2 61276 2 61284 2 61296 2 61297 2 61300 2 61304 2 61318 2 61320 2 61337 2 61351 2 61352 2 61359 2 61361 2 61366 2 61368 2 61369 2 61370 2 61401 2 61402 2 61412 2 61413 2 61428 2 61431 2 61446 2 61451 2 61458 2 61463 2 61467 2 61482 2 61489 2 61491 2 61503 2 61507 2 61509 2 61521 2 61527 2 61532 2 61533 2 61541 2 61546 2 61560 2 61564 2 61566 2 61571 2 61582 2 61602 2 61604 2 61630 2 61632 2 61655 2 61658 2 61660 2 61665 2 61668 2 61669 2 61671 2 61673 2 61676 2 61684 2 61689 2 61690 2 61705 2 61714 2 61732 2 61741 2 61742 2 61758 2 61762 2 61768 2 61771 2 61775 2 61790 2 61793 2 61802 2 61805 2 61807 2 61808 2 61818 2 61829 2 61842 2 61843 2 61851 2 61856 2 61860 2 61868 2 61874 2 61876 2 61889 2 61890 2 61893 2 61896 2 61900 2 61901 2 61906 2 61915 2 61924 2 61936 2 61937 2 61941 2 61949 2 61957 2 61964 2 61970 2 61977 2 61982 2 61986 2 61987 2 61990 2 61994 2 61995 2 61998 2 62000 2 62006 2 62007 2 62008 2 62011 2 62015 2 62019 2 62028 2 62030 2 62034 2 62065 2 62081 2 62107 2 62112 2 62120 2 62128 2 62135 2 62143 2 62148 2 62151 2 62158 2 62167 2 62169 2 62170 2 62182 2 62197 2 62201 2 62204 2 62205 2 62206 2 62210 2 62214 2 62217 2 62220 2 62222 2 62224 2 62228 2 62231 2 62245 2 62249 2 62251 2 62260 2 62261 2 62266 2 62270 2 62276 2 62296 2 62301 2 62302 2 62305 2 62315 2 62317 2 62318 2 62325 2 62328 2 62333 2 62339 2 62340 2 62349 2 62351 2 62352 2 62363 2 62367 2 62368 2 62371 2 62373 2 62379 2 62385 2 62396 2 62399 2 62404 2 62405 2 62409 2 62411 2 62413 2 62420 2 62426 2 62428 2 62430 2 62439 2 62457 2 62469 2 62483 2 62487 2 62497 2 62505 2 62512 2 62524 2 62548 2 62557 2 62558 2 62559 2 62571 2 62575 2 62580 2 62585 2 62586 2 62614 2 62622 2 62623 2 62627 2 62632 2 62634 2 62635 2 62645 2 62646 2 62652 2 62653 2 62656 2 62678 2 62691 2 62692 2 62697 2 62703 2 62712 2 62715 2 62717 2 62722 2 62732 2 62735 2 62739 2 62745 2 62752 2 62763 2 62786 2 62796 2 62798 2 62799 2 62814 2 62825 2 62846 2 62850 2 62854 2 62855 2 62860 2 62863 2 62864 2 62879 2 62896 2 62902 2 62903 2 62909 2 62910 2 62911 2 62917 2 62918 2 62931 2 62934 2 62936 2 62938 2 62942 2 62947 2 62950 2 62952 2 62953 2 62963 2 62964 2 62965 2 62979 2 62982 2 62999 2 63008 2 63011 2 63018 2 63022 2 63024 2 63026 2 63032 2 63039 2 63043 2 63058 2 63061 2 63064 2 63068 2 63073 2 63074 2 63085 2 63086 2 63088 2 63100 2 63101 2 63107 2 63116 2 63130 2 63137 2 63143 2 63150 2 63154 2 63158 2 63161 2 63163 2 63167 2 63172 2 63176 2 63178 2 63185 2 63203 2 63206 2 63215 2 63223 2 63225 2 63227 2 63228 2 63231 2 63240 2 63247 2 63263 2 63269 2 63281 2 63303 2 63305 2 63313 2 63314 2 63326 2 63327 2 63330 2 63331 2 63334 2 63338 2 63340 2 63343 2 63344 2 63360 2 63364 2 63368 2 63369 2 63378 2 63379 2 63383 2 63387 2 63393 2 63406 2 63407 2 63415 2 63424 2 63428 2 63430 2 63435 2 63452 2 63458 2 63463 2 63464 2 63470 2 63477 2 63478 2 63483 2 63495 2 63497 2 63507 2 63509 2 63520 2 63526 2 63530 2 63531 2 63538 2 63539 2 63540 2 63550 2 63557 2 63566 2 63578 2 63585 2 63591 2 63596 2 63599 2 63601 2 63603 2 63610 2 63614 2 63618 2 63620 2 63625 2 63630 2 63631 2 63633 2 63640 2 63641 2 63648 2 63650 2 63663 2 63688 2 63702 2 63705 2 63717 2 63736 2 63740 2 63749 2 63751 2 63760 2 63763 2 63765 2 63767 2 63775 2 63782 2 63786 2 63787 2 63806 2 63808 2 63814 2 63816 2 63824 2 63827 2 63828 2 63835 2 63836 2 63849 2 63853 2 63857 2 63862 2 63868 2 63870 2 63871 2 63886 2 63893 2 63895 2 63898 2 63907 2 63917 2 63923 2 63932 2 63933 2 63937 2 63945 2 63946 2 63952 2 63957 2 63959 2 63963 2 63980 2 63984 2 63986 2 63990 2 63994 2 63995 2 63999 2 64005 2 64009 2 64014 2 64022 2 64026 2 64036 2 64042 2 64046 2 64059 2 64065 2 64075 2 64077 2 64098 2 64100 2 64102 2 64107 2 64108 2 64113 2 64118 2 64119 2 64120 2 64129 2 64145 2 64156 2 64158 2 64161 2 64166 2 64168 2 64169 2 64171 2 64177 2 64180 2 64181 2 64182 2 64183 2 64189 2 64192 2 64194 2 64197 2 64201 2 64211 2 64220 2 64227 2 64231 2 64232 2 64243 2 64248 2 64249 2 64254 2 64256 2 64259 2 64266 2 64273 2 64277 2 64280 2 64285 2 64310 2 64312 2 64316 2 64323 2 64328 2 64335 2 64354 2 64356 2 64359 2 64364 2 64377 2 64384 2 64414 2 64418 2 64426 2 64430 2 64440 2 64454 2 64456 2 64464 2 64477 2 64480 2 64492 2 64497 2 64498 2 64500 2 64503 2 64513 2 64520 2 64521 2 64522 2 64523 2 64533 2 64542 2 64548 2 64557 2 64562 2 64563 2 64564 2 64568 2 64573 2 64576 2 64578 2 64579 2 64580 2 64588 2 64594 2 64603 2 64609 2 64615 2 64621 2 64626 2 64635 2 64642 2 64644 2 64646 2 64650 2 64670 2 64673 2 64683 2 64690 2 64696 2 64698 2 64699 2 64700 2 64728 2 64745 2 64748 2 64756 2 64770 2 64775 2 64777 2 64780 2 64781 2 64797 2 64799 2 64806 2 64816 2 64821 2 64825 2 64835 2 64837 2 64839 2 64845 2 64848 2 64851 2 64857 2 64858 2 64859 2 64862 2 64867 2 64868 2 64873 2 64888 2 64893 2 64895 2 64910 2 64911 2 64912 2 64917 2 64926 2 64929 2 64944 2 64950 2 64951 2 64954 2 64956 2 64963 2 64964 2 64965 2 64978 2 64979 2 64990 2 64993 2 64994 2 64995 2 64996 2 65003 2 65010 2 65012 2 65013 2 65016 2 65022 2 65029 2 65032 2 65036 2 65040 2 65041 2 65043 2 65048 2 65049 2 65062 2 65064 2 65067 2 65068 2 65094 2 65097 2 65100 2 65105 2 65117 2 65121 2 65125 2 65126 2 65127 2 65132 2 65135 2 65148 2 65150 2 65152 2 65153 2 65170 2 65180 2 65184 2 65190 2 65196 2 65200 2 65208 2 65209 2 65210 2 65212 2 65220 2 65228 2 65232 2 65234 2 65235 2 65241 2 65244 2 65251 2 65252 2 65254 2 65255 2 65257 2 65258 2 65260 2 65265 2 65267 2 65268 2 65269 2 65272 2 65276 2 65287 2 65290 2 65302 2 65303 2 65306 2 65308 2 65313 2 65319 2 65328 2 65332 2 65356 2 65359 2 65363 2 65373 2 65379 2 65384 2 65385 2 65396 2 65402 2 65404 2 65408 2 65412 2 65415 2 65416 2 65426 2 65431 2 65437 2 65441 2 65442 2 65443 2 65444 2 65446 2 65450 2 65454 2 65458 2 65459 2 65460 2 65465 2 65467 2 65471 2 65472 2 65494 2 65501 2 65503 2 65506 2 65516 2 65517 2 65525 2 65526 2 65529 2 65536 2 65537 2 65538 2 65542 2 65547 2 65551 2 65554 2 65564 2 65573 2 65577 2 65582 2 65590 2 65597 2 65616 2 65624 2 65627 2 65628 2 65639 2 65642 2 65656 2 65663 2 65664 2 65667 2 65672 2 65680 2 65681 2 65688 2 65698 2 65701 2 65707 2 65708 2 65720 2 65723 2 65730 2 65734 2 65735 2 65759 2 65771 2 65772 2 65778 2 65787 2 65788 2 65791 2 65795 2 65796 2 65797 2 65802 2 65806 2 65807 2 65810 2 65816 2 65821 2 65828 2 65833 2 65835 2 65838 2 65842 2 65843 2 65845 2 65851 2 65855 2 65858 2 65871 2 65874 2 65878 2 65880 2 65888 2 65895 2 65902 2 65904 2 65912 2 65917 2 65921 2 65924 2 65936 2 65949 2 65950 2 65953 2 65961 2 65963 2 65967 2 65968 2 65974 2 65975 2 65979 2 65980 2 65981 2 65984 2 65998 2 66001 2 66002 2 66003 2 66005 2 66014 2 66026 2 66035 2 66036 2 66059 2 66064 2 66065 2 66066 2 66069 2 66085 2 66088 2 66099 2 66104 2 66111 2 66123 2 66125 2 66129 2 66148 2 66155 2 66159 2 66172 2 66173 2 66176 2 66187 2 66188 2 66196 2 66209 2 66213 2 66217 2 66220 2 66225 2 66238 2 66243 2 66245 2 66246 2 66250 2 66253 2 66255 2 66264 2 66278 2 66285 2 66297 2 66298 2 66300 2 66306 2 66308 2 66313 2 66317 2 66318 2 66320 2 66321 2 66327 2 66330 2 66337 2 66338 2 66340 2 66346 2 66368 2 66370 2 66372 2 66374 2 66381 2 66389 2 66396 2 66416 2 66428 2 66429 2 66433 2 66435 2 66438 2 66441 2 66460 2 66468 2 66469 2 66470 2 66471 2 66476 2 66478 2 66494 2 66495 2 66504 2 66506 2 66507 2 66509 2 66512 2 66528 2 66529 2 66536 2 66540 2 66542 2 66544 2 66549 2 66556 2 66557 2 66575 2 66578 2 66584 2 66617 2 66621 2 66625 2 66630 2 66633 2 66636 2 66644 2 66649 2 66651 2 66653 2 66655 2 66659 2 66667 2 66669 2 66673 2 66684 2 66691 2 66694 2 66710 2 66713 2 66717 2 66725 2 66740 2 66746 2 66751 2 66783 2 66791 2 66793 2 66799 2 66804 2 66811 2 66812 2 66827 2 66834 2 66851 2 66852 2 66858 2 66859 2 66863 2 66869 2 66874 2 66879 2 66882 2 66886 2 66896 2 66902 2 66903 2 66913 2 66917 2 66921 2 66924 2 66928 2 66935 2 66940 2 66957 2 66972 2 66976 2 66979 2 66981 2 66982 2 66986 2 66992 2 66996 2 67003 2 67010 2 67012 2 67014 2 67022 2 67027 2 67030 2 67032 2 67033 2 67039 2 67051 2 67061 2 67082 2 67092 2 67093 2 67100 2 67123 2 67130 2 67135 2 67144 2 67145 2 67146 2 67153 2 67159 2 67163 2 67164 2 67171 2 67185 2 67193 2 67198 2 67199 2 67200 2 67201 2 67203 2 67212 2 67215 2 67222 2 67223 2 67226 2 67234 2 67242 2 67248 2 67253 2 67279 2 67282 2 67286 2 67291 2 67298 2 67303 2 67304 2 67329 2 67331 2 67333 2 67347 2 67348 2 67354 2 67356 2 67363 2 67364 2 67367 2 67369 2 67377 2 67384 2 67389 2 67394 2 67396 2 67398 2 67410 2 67423 2 67427 2 67436 2 67447 2 67449 2 67451 2 67452 2 67460 2 67462 2 67463 2 67465 2 67473 2 67480 2 67482 2 67485 2 67499 2 67501 2 67504 2 67509 2 67512 2 67514 2 67515 2 67517 2 67534 2 67535 2 67537 2 67543 2 67545 2 67552 2 67557 2 67562 2 67564 2 67584 2 67611 2 67616 2 67617 2 67624 2 67625 2 67628 2 67629 2 67632 2 67637 2 67654 2 67659 2 67664 2 67666 2 67670 2 67672 2 67673 2 67680 2 67682 2 67684 2 67686 2 67687 2 67692 2 67695 2 67712 2 67716 2 67719 2 67734 2 67736 2 67743 2 67759 2 67762 2 67763 2 67766 2 67775 2 67778 2 67781 2 67782 2 67784 2 67802 2 67816 2 67817 2 67821 2 67826 2 67836 2 67838 2 67840 2 67848 2 67865 2 67879 2 67880 2 67882 2 67889 2 67890 2 67891 2 67897 2 67911 2 67914 2 67916 2 67923 2 67926 2 67927 2 67934 2 67935 2 67938 2 67944 2 67958 2 67963 2 67964 2 67966 2 67969 2 67970 2 67971 2 67980 2 67983 2 67984 2 67994 2 68006 2 68011 2 68024 2 68028 2 68029 2 68040 2 68045 2 68047 2 68056 2 68067 2 68080 2 68088 2 68090 2 68095 2 68101 2 68111 2 68114 2 68117 2 68121 2 68122 2 68126 2 68130 2 68142 2 68147 2 68157 2 68158 2 68174 2 68175 2 68191 2 68196 2 68205 2 68207 2 68211 2 68216 2 68220 2 68224 2 68226 2 68228 2 68230 2 68244 2 68253 2 68257 2 68259 2 68264 2 68269 2 68276 2 68283 2 68291 2 68292 2 68293 2 68295 2 68302 2 68303 2 68305 2 68312 2 68313 2 68321 2 68324 2 68339 2 68345 2 68346 2 68348 2 68360 2 68362 2 68363 2 68377 2 68385 2 68390 2 68391 2 68400 2 68403 2 68407 2 68420 2 68441 2 68442 2 68445 2 68455 2 68456 2 68469 2 68470 2 68471 2 68495 2 68504 2 68524 2 68529 2 68538 2 68540 2 68544 2 68546 2 68561 2 68582 2 68585 2 68586 2 68587 2 68588 2 68598 2 68602 2 68608 2 68615 2 68629 2 68639 2 68642 2 68656 2 68658 2 68665 2 68680 2 68689 2 68690 2 68695 2 68696 2 68703 2 68709 2 68717 2 68718 2 68719 2 68720 2 68723 2 68728 2 68729 2 68734 2 68755 2 68759 2 68764 2 68768 2 68776 2 68778 2 68780 2 68782 2 68788 2 68789 2 68798 2 68800 2 68804 2 68807 2 68809 2 68810 2 68823 2 68825 2 68835 2 68843 2 68853 2 68859 2 68866 2 68870 2 68872 2 68879 2 68881 2 68885 2 68894 2 68896 2 68897 2 68902 2 68908 2 68909 2 68911 2 68920 2 68921 2 68923 2 68940 2 68941 2 68944 2 68945 2 68955 2 68957 2 68959 2 68964 2 68971 2 68974 2 68975 2 68987 2 68989 2 68990 2 68991 2 69006 2 69009 2 69016 2 69023 2 69034 2 69037 2 69043 2 69061 2 69069 2 69071 2 69084 2 69088 2 69091 2 69095 2 69096 2 69105 2 69116 2 69118 2 69140 2 69155 2 69165 2 69167 2 69180 2 69181 2 69182 2 69198 2 69201 2 69206 2 69209 2 69217 2 69218 2 69242 2 69260 2 69266 2 69271 2 69278 2 69283 2 69284 2 69296 2 69298 2 69301 2 69302 2 69306 2 69308 2 69311 2 69319 2 69322 2 69324 2 69330 2 69333 2 69338 2 69340 2 69347 2 69349 2 69351 2 69367 2 69368 2 69379 2 69380 2 69384 2 69391 2 69396 2 69398 2 69399 2 69403 2 69405 2 69411 2 69412 2 69415 2 69416 2 69424 2 69429 2 69449 2 69451 2 69452 2 69454 2 69457 2 69464 2 69466 2 69484 2 69489 2 69490 2 69516 2 69523 2 69536 2 69539 2 69545 2 69546 2 69550 2 69560 2 69561 2 69564 2 69567 2 69582 2 69589 2 69608 2 69610 2 69613 2 69616 2 69620 2 69634 2 69641 2 69653 2 69667 2 69670 2 69673 2 69675 2 69694 2 69704 2 69711 2 69715 2 69716 2 69719 2 69722 2 69729 2 69733 2 69736 2 69745 2 69746 2 69750 2 69759 2 69763 2 69791 2 69801 2 69803 2 69804 2 69823 2 69832 2 69833 2 69835 2 69837 2 69847 2 69863 2 69867 2 69876 2 69880 2 69886 2 69890 2 69898 2 69901 2 69911 2 69918 2 69919 2 69927 2 69932 2 69936 2 69942 2 69947 2 69968 2 69975 2 69983 2 69985 2 69992 2 69997 2 69998 2 69999 2 70005 2 70013 2 70020 2 70026 2 70028 2 70036 2 70038 2 70039 2 70041 2 70042 2 70043 2 70058 2 70066 2 70071 2 70083 2 70090 2 70092 2 70093 2 70094 2 70097 2 70101 2 70103 2 70110 2 70119 2 70120 2 70123 2 70129 2 70138 2 70142 2 70143 2 70147 2 70148 2 70154 2 70157 2 70167 2 70168 2 70170 2 70174 2 70177 2 70188 2 70217 2 70218 2 70222 2 70237 2 70238 2 70241 2 70250 2 70252 2 70257 2 70260 2 70264 2 70265 2 70277 2 70291 2 70297 2 70303 2 70326 2 70335 2 70336 2 70339 2 70343 2 70347 2 70348 2 70353 2 70368 2 70373 2 70375 2 70383 2 70388 2 70399 2 70400 2 70407 2 70411 2 70425 2 70426 2 70427 2 70428 2 70435 2 70439 2 70443 2 70444 2 70448 2 70457 2 70462 2 70465 2 70472 2 70483 2 70488 2 70489 2 70497 2 70503 2 70512 2 70515 2 70516 2 70517 2 70519 2 70527 2 70528 2 70538 2 70541 2 70549 2 70552 2 70557 2 70574 2 70583 2 70588 2 70600 2 70606 2 70612 2 70613 2 70619 2 70632 2 70633 2 70634 2 70644 2 70656 2 70657 2 70663 2 70667 2 70669 2 70713 2 70715 2 70716 2 70735 2 70737 2 70739 2 70745 2 70746 2 70752 2 70763 2 70788 2 70803 2 70804 2 70806 2 70808 2 70809 2 70810 2 70816 2 70823 2 70824 2 70836 2 70839 2 70846 2 70850 2 70856 2 70864 2 70869 2 70876 2 70881 2 70889 2 70890 2 70895 2 70901 2 70910 2 70919 2 70922 2 70925 2 70927 2 70931 2 70934 2 70936 2 70945 2 70961 2 70963 2 70969 2 70983 2 70991 2 70995 2 70999 2 71004 2 71010 2 71011 2 71014 2 71015 2 71018 2 71034 2 71044 2 71047 2 71056 2 71069 2 71074 2 71075 2 71077 2 71078 2 71102 2 71107 2 71110 2 71127 2 71131 2 71132 2 71146 2 71151 2 71154 2 71158 2 71159 2 71161 2 71166 2 71171 2 71185 2 71190 2 71205 2 71214 2 71225 2 71228 2 71230 2 71233 2 71236 2 71239 2 71242 2 71247 2 71251 2 71257 2 71276 2 71283 2 71287 2 71288 2 71298 2 71304 2 71306 2 71321 2 71334 2 71339 2 71342 2 71346 2 71347 2 71349 2 71355 2 71357 2 71358 2 71363 2 71369 2 71380 2 71381 2 71386 2 71388 2 71390 2 71410 2 71414 2 71427 2 71437 2 71443 2 71450 2 71451 2 71452 2 71453 2 71455 2 71459 2 71463 2 71469 2 71470 2 71471 2 71479 2 71483 2 71493 2 71496 2 71500 2 71508 2 71512 2 71514 2 71517 2 71520 2 71533 2 71536 2 71538 2 71548 2 71556 2 71558 2 71582 2 71588 2 71591 2 71592 2 71600 2 71609 2 71611 2 71614 2 71616 2 71620 2 71624 2 71627 2 71629 2 71631 2 71634 2 71635 2 71646 2 71648 2 71656 2 71661 2 71662 2 71666 2 71672 2 71676 2 71679 2 71681 2 71685 2 71687 2 71694 2 71706 2 71718 2 71723 2 71728 2 71730 2 71732 2 71738 2 71741 2 71746 2 71756 2 71764 2 71770 2 71774 2 71779 2 71787 2 71788 2 71794 2 71802 2 71809 2 71812 2 71817 2 71820 2 71821 2 71823 2 71833 2 71844 2 71848 2 71864 2 71865 2 71867 2 71871 2 71883 2 71887 2 71889 2 71893 2 71908 2 71911 2 71915 2 71924 2 71949 2 71959 2 71961 2 71983 2 71986 2 71988 2 71994 2 72005 2 72019 2 72022 2 72030 2 72033 2 72035 2 72044 2 72045 2 72047 2 72048 2 72053 2 72058 2 72066 2 72069 2 72071 2 72072 2 72075 2 72081 2 72084 2 72086 2 72091 2 72093 2 72113 2 72117 2 72123 2 72132 2 72141 2 72155 2 72157 2 72158 2 72160 2 72175 2 72182 2 72191 2 72192 2 72200 2 72212 2 72218 2 72224 2 72228 2 72235 2 72241 2 72251 2 72273 2 72285 2 72292 2 72300 2 72309 2 72316 2 72319 2 72326 2 72342 2 72358 2 72360 2 72376 2 72404 2 72405 2 72407 2 72427 2 72433 2 72446 2 72451 2 72454 2 72455 2 72472 2 72491 2 72500 2 72506 2 72511 2 72512 2 72526 2 72531 2 72535 2 72543 2 72545 2 72547 2 72548 2 72551 2 72553 2 72556 2 72558 2 72565 2 72574 2 72576 2 72579 2 72590 2 72594 2 72601 2 72602 2 72603 2 72610 2 72611 2 72630 2 72636 2 72637 2 72638 2 72643 2 72653 2 72655 2 72656 2 72667 2 72696 2 72697 2 72705 2 72706 2 72733 2 72743 2 72748 2 72766 2 72768 2 72779 2 72785 2 72788 2 72792 2 72795 2 72805 2 72807 2 72813 2 72817 2 72819 2 72823 2 72825 2 72835 2 72836 2 72838 2 72840 2 72843 2 72846 2 72864 2 72867 2 72870 2 72885 2 72891 2 72898 2 72900 2 72910 2 72918 2 72920 2 72923 2 72945 2 72951 2 72961 2 72962 2 72973 2 72977 2 72983 2 72984 2 72986 2 72996 2 73003 2 73010 2 73012 2 73018 2 73020 2 73021 2 73022 2 73027 2 73041 2 73045 2 73049 2 73050 2 73073 2 73075 2 73082 2 73093 2 73095 2 73111 2 73114 2 73127 2 73128 2 73142 2 73144 2 73163 2 73171 2 73178 2 73212 2 73219 2 73220 2 73223 2 73233 2 73240 2 73241 2 73242 2 73244 2 73257 2 73259 2 73260 2 73261 2 73266 2 73267 2 73268 2 73271 2 73275 2 73276 2 73281 2 73282 2 73283 2 73287 2 73289 2 73309 2 73311 2 73320 2 73322 2 73324 2 73333 2 73343 2 73346 2 73348 2 73349 2 73353 2 73378 2 73395 2 73397 2 73406 2 73418 2 73422 2 73426 2 73433 2 73445 2 73455 2 73467 2 73477 2 73479 2 73494 2 73497 2 73504 2 73509 2 73527 2 73529 2 73530 2 73543 2 73544 2 73547 2 73549 2 73553 2 73561 2 73570 2 73572 2 73579 2 73583 2 73586 2 73596 2 73601 2 73603 2 73606 2 73613 2 73616 2 73620 2 73625 2 73629 2 73630 2 73632 2 73634 2 73635 2 73650 2 73662 2 73669 2 73685 2 73687 2 73688 2 73689 2 73698 2 73701 2 73705 2 73708 2 73718 2 73728 2 73730 2 73745 2 73748 2 73754 2 73777 2 73784 2 73791 2 73801 2 73803 2 73821 2 73826 2 73829 2 73830 2 73832 2 73838 2 73839 2 73855 2 73861 2 73868 2 73883 2 73890 2 73900 2 73908 2 73915 2 73923 2 73929 2 73934 2 73939 2 73948 2 73951 2 73955 2 73956 2 73962 2 73969 2 73974 2 73975 2 73989 2 73996 2 74003 2 74020 2 74026 2 74043 2 74057 2 74060 2 74063 2 74070 2 74075 2 74082 2 74085 2 74097 2 74111 2 74115 2 74120 2 74134 2 74140 2 74146 2 74156 2 74160 2 74162 2 74166 2 74174 2 74175 2 74177 2 74182 2 74187 2 74188 2 74193 2 74198 2 74205 2 74221 2 74248 2 74254 2 74264 2 74266 2 74277 2 74281 2 74282 2 74283 2 74288 2 74295 2 74300 2 74301 2 74307 2 74330 2 74346 2 74348 2 74353 2 74359 2 74360 2 74364 2 74368 2 74375 2 74388 2 74390 2 74391 2 74393 2 74403 2 74418 2 74420 2 74433 2 74438 2 74440 2 74445 2 74450 2 74452 2 74465 2 74470 2 74487 2 74488 2 74497 2 74499 2 74502 2 74510 2 74522 2 74528 2 74533 2 74539 2 74550 2 74552 2 74563 2 74573 2 74581 2 74586 2 74587 2 74592 2 74595 2 74597 2 74602 2 74605 2 74606 2 74619 2 74627 2 74646 2 74657 2 74669 2 74683 2 74684 2 74686 2 74701 2 74705 2 74706 2 74712 2 74741 2 74745 2 74750 2 74756 2 74757 2 74765 2 74772 2 74779 2 74781 2 74782 2 74783 2 74793 2 74794 2 74800 2 74805 2 74808 2 74812 2 74813 2 74820 2 74836 2 74837 2 74838 2 74843 2 74852 2 74856 2 74875 2 74881 2 74885 2 74892 2 74897 2 74904 2 74911 2 74933 2 74934 2 74938 2 74939 2 74946 2 74959 2 74965 2 74978 2 74981 2 74982 2 74983 2 74987 2 74988 2 74989 2 74991 2 74992 2 74996 2 74997 2 75001 2 75010 2 75014 2 75027 2 75039 2 75043 2 75044 2 75048 2 75049 2 75070 2 75073 2 75086 2 75089 2 75093 2 75101 2 75105 2 75106 2 75107 2 75112 2 75130 2 75133 2 75136 2 75138 2 75149 2 75151 2 75160 2 75161 2 75165 2 75168 2 75171 2 75175 2 75181 2 75184 2 75185 2 75198 2 75201 2 75205 2 75206 2 75212 2 75225 2 75230 2 75239 2 75254 2 75257 2 75269 2 75271 2 75275 2 75294 2 75296 2 75308 2 75310 2 75315 2 75335 2 75340 2 75341 2 75342 2 75347 2 75348 2 75354 2 75356 2 75371 2 75376 2 75383 2 75392 2 75401 2 75410 2 75432 2 75440 2 75459 2 75467 2 75470 2 75495 2 75501 2 75508 2 75518 2 75520 2 75529 2 75534 2 75538 2 75541 2 75544 2 75557 2 75561 2 75568 2 75576 2 75590 2 75602 2 75611 2 75612 2 75618 2 75625 2 75631 2 75646 2 75652 2 75656 2 75664 2 75671 2 75672 2 75675 2 75680 2 75685 2 75689 2 75690 2 75692 2 75700 2 75703 2 75712 2 75717 2 75721 2 75731 2 75740 2 75741 2 75750 2 75751 2 75752 2 75754 2 75755 2 75757 2 75758 2 75760 2 75774 2 75788 2 75795 2 75799 2 75809 2 75810 2 75811 2 75823 2 75827 2 75848 2 75855 2 75856 2 75858 2 75859 2 75867 2 75868 2 75880 2 75889 2 75900 2 75901 2 75908 2 75913 2 75916 2 75917 2 75918 2 75942 2 75946 2 75947 2 75951 2 75956 2 75964 2 75972 2 75984 2 75986 2 75992 2 75993 2 75994 2 75996 2 76001 2 76002 2 76006 2 76013 2 76016 2 76020 2 76022 2 76026 2 76042 2 76044 2 76049 2 76055 2 76061 2 76063 2 76064 2 76079 2 76082 2 76086 2 76092 2 76095 2 76098 2 76116 2 76120 2 76121 2 76124 2 76128 2 76131 2 76134 2 76135 2 76138 2 76142 2 76143 2 76156 2 76159 2 76173 2 76177 2 76182 2 76187 2 76190 2 76199 2 76202 2 76205 2 76208 2 76211 2 76213 2 76215 2 76216 2 76221 2 76229 2 76231 2 76240 2 76246 2 76248 2 76251 2 76255 2 76265 2 76270 2 76286 2 76290 2 76303 2 76306 2 76310 2 76311 2 76321 2 76323 2 76327 2 76331 2 76332 2 76364 2 76366 2 76370 2 76385 2 76386 2 76387 2 76389 2 76390 2 76422 2 76423 2 76426 2 76428 2 76442 2 76444 2 76446 2 76459 2 76479 2 76481 2 76490 2 76497 2 76502 2 76517 2 76518 2 76523 2 76531 2 76532 2 76533 2 76542 2 76546 2 76547 2 76548 2 76551 2 76560 2 76562 2 76570 2 76575 2 76577 2 76583 2 76595 2 76597 2 76607 2 76608 2 76611 2 76612 2 76622 2 76630 2 76647 2 76650 2 76656 2 76658 2 76672 2 76677 2 76682 2 76683 2 76684 2 76691 2 76693 2 76699 2 76700 2 76717 2 76727 2 76729 2 76731 2 76732 2 76754 2 76760 2 76801 2 76806 2 76810 2 76830 2 76833 2 76835 2 76838 2 76841 2 76863 2 76884 2 76890 2 76893 2 76900 2 76910 2 76915 2 76917 2 76919 2 76929 2 76945 2 76961 2 76967 2 76968 2 76972 2 76995 2 76999 2 77003 2 77004 2 77006 2 77008 2 77023 2 77030 2 77035 2 77040 2 77041 2 77044 2 77049 2 77055 2 77069 2 77071 2 77078 2 77097 2 77100 2 77103 2 77117 2 77118 2 77119 2 77124 2 77131 2 77139 2 77141 2 77142 2 77151 2 77154 2 77159 2 77163 2 77167 2 77169 2 77183 2 77202 2 77211 2 77218 2 77221 2 77227 2 77233 2 77236 2 77238 2 77260 2 77262 2 77263 2 77265 2 77267 2 77272 2 77273 2 77279 2 77283 2 77308 2 77309 2 77318 2 77321 2 77324 2 77329 2 77331 2 77336 2 77356 2 77358 2 77360 2 77362 2 77371 2 77399 2 77410 2 77411 2 77414 2 77422 2 77424 2 77444 2 77472 2 77473 2 77480 2 77485 2 77489 2 77492 2 77493 2 77496 2 77505 2 77514 2 77525 2 77533 2 77534 2 77538 2 77541 2 77554 2 77559 2 77575 2 77579 2 77584 2 77609 2 77612 2 77619 2 77642 2 77644 2 77650 2 77653 2 77657 2 77668 2 77676 2 77679 2 77697 2 77699 2 77701 2 77710 2 77717 2 77722 2 77726 2 77747 2 77759 2 77766 2 77773 2 77786 2 77796 2 77808 2 77831 2 77834 2 77836 2 77852 2 77857 2 77871 2 77874 2 77875 2 77885 2 77892 2 77893 2 77894 2 77900 2 77909 2 77920 2 77938 2 77939 2 77943 2 77957 2 77964 2 77971 2 77978 2 77987 2 77992 2 77993 2 78001 2 78006 2 78015 2 78023 2 78024 2 78027 2 78029 2 78042 2 78044 2 78049 2 78053 2 78059 2 78060 2 78072 2 78080 2 78083 2 78095 2 78147 2 78150 2 78154 2 78160 2 78163 2 78173 2 78177 2 78178 2 78191 2 78193 2 78198 2 78210 2 78215 2 78216 2 78217 2 78221 2 78228 2 78235 2 78243 2 78246 2 78247 2 78250 2 78252 2 78262 2 78274 2 78288 2 78294 2 78301 2 78316 2 78317 2 78327 2 78328 2 78337 2 78339 2 78350 2 78359 2 78373 2 78375 2 78380 2 78381 2 78388 2 78397 2 78399 2 78407 2 78410 2 78412 2 78425 2 78435 2 78444 2 78455 2 78458 2 78469 2 78472 2 78483 2 78486 2 78489 2 78498 2 78502 2 78507 2 78514 2 78516 2 78518 2 78529 2 78530 2 78539 2 78541 2 78552 2 78563 2 78565 2 78578 2 78580 2 78583 2 78584 2 78603 2 78608 2 78618 2 78621 2 78622 2 78640 2 78643 2 78645 2 78649 2 78660 2 78661 2 78670 2 78675 2 78680 2 78682 2 78685 2 78687 2 78690 2 78693 2 78696 2 78711 2 78715 2 78720 2 78722 2 78726 2 78732 2 78737 2 78741 2 78744 2 78746 2 78756 2 78760 2 78761 2 78769 2 78787 2 78803 2 78814 2 78824 2 78828 2 78830 2 78834 2 78837 2 78839 2 78844 2 78845 2 78846 2 78853 2 78854 2 78855 2 78865 2 78873 2 78877 2 78882 2 78897 2 78903 2 78905 2 78908 2 78912 2 78940 2 78942 2 78948 2 78954 2 78955 2 78965 2 78970 2 78977 2 78983 2 78986 2 78996 2 78999 2 79000 2 79001 2 79011 2 79019 2 79034 2 79035 2 79037 2 79038 2 79058 2 79070 2 79080 2 79081 2 79091 2 79104 2 79108 2 79112 2 79118 2 79119 2 79128 2 79136 2 79137 2 79138 2 79142 2 79146 2 79147 2 79166 2 79171 2 79174 2 79178 2 79183 2 79185 2 79188 2 79189 2 79190 2 79197 2 79201 2 79202 2 79205 2 79207 2 79210 2 79213 2 79219 2 79233 2 79236 2 79238 2 79244 2 79247 2 79257 2 79260 2 79264 2 79290 2 79308 2 79309 2 79323 2 79329 2 79342 2 79343 2 79353 2 79354 2 79359 2 79373 2 79377 2 79383 2 79384 2 79393 2 79398 2 79406 2 79413 2 79431 2 79438 2 79441 2 79443 2 79444 2 79458 2 79459 2 79467 2 79474 2 79479 2 79484 2 79486 2 79488 2 79489 2 79497 2 79500 2 79504 2 79505 2 79506 2 79509 2 79522 2 79532 2 79533 2 79535 2 79545 2 79546 2 79550 2 79556 2 79557 2 79560 2 79561 2 79569 2 79583 2 79585 2 79586 2 79593 2 79601 2 79610 2 79632 2 79634 2 79638 2 79655 2 79661 2 79662 2 79664 2 79671 2 79673 2 79677 2 79680 2 79684 2 79685 2 79687 2 79694 2 79698 2 79699 2 79732 2 79734 2 79743 2 79746 2 79747 2 79748 2 79763 2 79766 2 79767 2 79768 2 79773 2 79798 2 79802 2 79815 2 79823 2 79824 2 79835 2 79837 2 79839 2 79843 2 79849 2 79860 2 79866 2 79889 2 79890 2 79904 2 79909 2 79913 2 79917 2 79920 2 79922 2 79923 2 79932 2 79934 2 79962 2 79965 2 79968 2 79973 2 79977 2 79981 2 79984 2 79986 2 79987 2 80002 2 80005 2 80016 2 80018 2 80033 2 80038 2 80048 2 80051 2 80052 2 80053 2 80059 2 80063 2 80072 2 80076 2 80082 2 80104 2 80120 2 80129 2 80131 2 80144 2 80145 2 80154 2 80160 2 80164 2 80183 2 80187 2 80194 2 80200 2 80204 2 80206 2 80211 2 80213 2 80217 2 80227 2 80228 2 80230 2 80238 2 80244 2 80251 2 80253 2 80256 2 80261 2 80273 2 80275 2 80280 2 80281 2 80282 2 80285 2 80294 2 80302 2 80303 2 80305 2 80329 2 80332 2 80336 2 80341 2 80343 2 80350 2 80355 2 80357 2 80359 2 80360 2 80379 2 80385 2 80387 2 80389 2 80392 2 80395 2 80406 2 80416 2 80421 2 80423 2 80428 2 80433 2 80438 2 80439 2 80442 2 80448 2 80450 2 80464 2 80474 2 80483 2 80487 2 80491 2 80495 2 80500 2 80502 2 80520 2 80524 2 80531 2 80537 2 80542 2 80544 2 80547 2 80552 2 80566 2 80575 2 80582 2 80592 2 80596 2 80617 2 80624 2 80629 2 80630 2 80637 2 80641 2 80652 2 80653 2 80661 2 80667 2 80684 2 80693 2 80708 2 80709 2 80716 2 80717 2 80719 2 80723 2 80724 2 80725 2 80735 2 80740 2 80749 2 80751 2 80756 2 80761 2 80781 2 80795 2 80809 2 80811 2 80815 2 80816 2 80821 2 80826 2 80833 2 80839 2 80849 2 80851 2 80852 2 80854 2 80865 2 80868 2 80870 2 80874 2 80875 2 80880 2 80889 2 80890 2 80901 2 80903 2 80916 2 80917 2 80920 2 80930 2 80947 2 80976 2 80980 2 80984 2 81012 2 81013 2 81027 2 81030 2 81038 2 81042 2 81048 2 81051 2 81060 2 81071 2 81081 2 81082 2 81089 2 81115 2 81120 2 81126 2 81128 2 81129 2 81133 2 81141 2 81153 2 81154 2 81155 2 81158 2 81159 2 81164 2 81165 2 81166 2 81168 2 81169 2 81178 2 81186 2 81195 2 81198 2 81207 2 81219 2 81221 2 81223 2 81224 2 81246 2 81249 2 81250 2 81256 2 81265 2 81272 2 81277 2 81282 2 81283 2 81290 2 81293 2 81300 2 81304 2 81319 2 81321 2 81326 2 81331 2 81337 2 81342 2 81352 2 81357 2 81367 2 81369 2 81379 2 81381 2 81382 2 81388 2 81389 2 81394 2 81404 2 81410 2 81417 2 81419 2 81420 2 81428 2 81444 2 81445 2 81457 2 81458 2 81468 2 81489 2 81494 2 81497 2 81498 2 81501 2 81512 2 81516 2 81521 2 81540 2 81544 2 81545 2 81555 2 81556 2 81577 2 81582 2 81586 2 81596 2 81599 2 81603 2 81605 2 81614 2 81615 2 81621 2 81635 2 81642 2 81648 2 81663 2 81664 2 81672 2 81674 2 81676 2 81677 2 81683 2 81685 2 81686 2 81699 2 81716 2 81723 2 81735 2 81736 2 81743 2 81745 2 81753 2 81760 2 81761 2 81764 2 81769 2 81772 2 81803 2 81804 2 81810 2 81820 2 81837 2 81850 2 81853 2 81858 2 81880 2 81885 2 81887 2 81888 2 81902 2 81904 2 81915 2 81920 2 81928 2 81930 2 81931 2 81935 2 81939 2 81940 2 81948 2 81963 2 81968 2 81984 2 81985 2 81998 2 81999 2 82009 2 82026 2 82028 2 82038 2 82071 2 82086 2 82089 2 82097 2 82098 2 82099 2 82111 2 82118 2 82127 2 82141 2 82154 2 82160 2 82162 2 82164 2 82165 2 82176 2 82178 2 82185 2 82187 2 82191 2 82196 2 82197 2 82206 2 82217 2 82218 2 82223 2 82229 2 82245 2 82254 2 82261 2 82264 2 82266 2 82267 2 82277 2 82286 2 82296 2 82299 2 82306 2 82312 2 82321 2 82322 2 82324 2 82327 2 82335 2 82336 2 82337 2 82342 2 82344 2 82353 2 82354 2 82356 2 82364 2 82365 2 82371 2 82372 2 82378 2 82385 2 82389 2 82400 2 82401 2 82408 2 82413 2 82418 2 82422 2 82426 2 82434 2 82437 2 82438 2 82439 2 82441 2 82446 2 82449 2 82454 2 82456 2 82459 2 82472 2 82482 2 82489 2 82504 2 82521 2 82522 2 82530 2 82537 2 82558 2 82559 2 82560 2 82577 2 82582 2 82584 2 82594 2 82598 2 82601 2 82602 2 82607 2 82609 2 82613 2 82615 2 82623 2 82628 2 82631 2 82634 2 82637 2 82644 2 82646 2 82651 2 82657 2 82658 2 82662 2 82665 2 82673 2 82674 2 82679 2 82683 2 82690 2 82700 2 82710 2 82725 2 82727 2 82732 2 82740 2 82744 2 82748 2 82752 2 82754 2 82758 2 82760 2 82781 2 82784 2 82786 2 82805 2 82809 2 82813 2 82814 2 82818 2 82819 2 82821 2 82827 2 82844 2 82851 2 82852 2 82857 2 82866 2 82868 2 82869 2 82875 2 82877 2 82879 2 82886 2 82887 2 82888 2 82895 2 82896 2 82898 2 82912 2 82917 2 82932 2 82933 2 82936 2 82939 2 82941 2 82945 2 82947 2 82949 2 82964 2 82967 2 82972 2 82977 2 82981 2 82988 2 82990 2 82996 2 83016 2 83017 2 83029 2 83041 2 83044 2 83046 2 83049 2 83051 2 83059 2 83068 2 83088 2 83089 2 83091 2 83094 2 83096 2 83097 2 83099 2 83103 2 83116 2 83118 2 83123 2 83131 2 83135 2 83147 2 83151 2 83162 2 83171 2 83173 2 83175 2 83179 2 83184 2 83189 2 83206 2 83209 2 83210 2 83215 2 83216 2 83226 2 83228 2 83234 2 83240 2 83241 2 83242 2 83276 2 83297 2 83302 2 83313 2 83316 2 83317 2 83318 2 83321 2 83322 2 83328 2 83330 2 83337 2 83339 2 83346 2 83353 2 83355 2 83367 2 83371 2 83372 2 83378 2 83383 2 83388 2 83389 2 83399 2 83402 2 83422 2 83423 2 83424 2 83425 2 83429 2 83437 2 83438 2 83445 2 83446 2 83447 2 83460 2 83461 2 83466 2 83474 2 83479 2 83485 2 83491 2 83494 2 83495 2 83499 2 83504 2 83510 2 83513 2 83517 2 83538 2 83543 2 83558 2 83559 2 83562 2 83566 2 83587 2 83594 2 83601 2 83611 2 83613 2 83615 2 83627 2 83632 2 83636 2 83637 2 83647 2 83648 2 83651 2 83653 2 83659 2 83664 2 83667 2 83672 2 83677 2 83680 2 83681 2 83693 2 83695 2 83704 2 83706 2 83717 2 83727 2 83728 2 83729 2 83733 2 83740 2 83749 2 83751 2 83764 2 83767 2 83770 2 83788 2 83792 2 83793 2 83803 2 83804 2 83805 2 83812 2 83825 2 83826 2 83831 2 83839 2 83844 2 83848 2 83852 2 83867 2 83870 2 83874 2 83898 2 83900 2 83901 2 83906 2 83910 2 83912 2 83926 2 83928 2 83933 2 83935 2 83937 2 83952 2 83953 2 83963 2 83965 2 83974 2 83975 2 83977 2 83983 2 83999 2 84007 2 84008 2 84021 2 84022 2 84023 2 84027 2 84029 2 84031 2 84035 2 84041 2 84043 2 84054 2 84083 2 84084 2 84102 2 84111 2 84112 2 84127 2 84138 2 84140 2 84142 2 84144 2 84148 2 84151 2 84152 2 84153 2 84160 2 84162 2 84164 2 84169 2 84175 2 84178 2 84185 2 84204 2 84210 2 84219 2 84241 2 84250 2 84256 2 84257 2 84267 2 84271 2 84272 2 84274 2 84276 2 84292 2 84300 2 84315 2 84319 2 84327 2 84333 2 84342 2 84343 2 84350 2 84352 2 84355 2 84359 2 84368 2 84377 2 84383 2 84387 2 84391 2 84396 2 84405 2 84411 2 84414 2 84424 2 84428 2 84442 2 84454 2 84457 2 84458 2 84461 2 84463 2 84494 2 84498 2 84509 2 84524 2 84543 2 84556 2 84561 2 84565 2 84569 2 84577 2 84581 2 84588 2 84589 2 84591 2 84595 2 84599 2 84610 2 84615 2 84616 2 84617 2 84620 2 84624 2 84628 2 84633 2 84641 2 84643 2 84648 2 84655 2 84656 2 84676 2 84681 2 84686 2 84693 2 84705 2 84710 2 84723 2 84735 2 84737 2 84740 2 84744 2 84747 2 84752 2 84753 2 84756 2 84758 2 84768 2 84777 2 84785 2 84788 2 84789 2 84791 2 84796 2 84797 2 84809 2 84810 2 84820 2 84822 2 84829 2 84837 2 84846 2 84850 2 84863 2 84864 2 84865 2 84891 2 84897 2 84900 2 84906 2 84908 2 84912 2 84924 2 84927 2 84934 2 84935 2 84939 2 84940 2 84952 2 84955 2 84960 2 84980 2 84987 2 84992 2 84998 2 85007 2 85009 2 85025 2 85041 2 85052 2 85066 2 85073 2 85075 2 85077 2 85079 2 85093 2 85099 2 85101 2 85113 2 85135 2 85140 2 85144 2 85147 2 85161 2 85165 2 85167 2 85172 2 85176 2 85180 2 85184 2 85201 2 85202 2 85217 2 85226 2 85233 2 85239 2 85243 2 85254 2 85256 2 85273 2 85282 2 85283 2 85290 2 85292 2 85297 2 85305 2 85306 2 85308 2 85309 2 85312 2 85318 2 85320 2 85331 2 85332 2 85362 2 85372 2 85378 2 85385 2 85392 2 85397 2 85405 2 85413 2 85419 2 85420 2 85424 2 85434 2 85436 2 85438 2 85439 2 85466 2 85478 2 85479 2 85482 2 85488 2 85492 2 85496 2 85505 2 85507 2 85518 2 85530 2 85532 2 85542 2 85543 2 85544 2 85547 2 85552 2 85562 2 85565 2 85587 2 85588 2 85610 2 85613 2 85615 2 85626 2 85633 2 85640 2 85642 2 85648 2 85650 2 85655 2 85673 2 85681 2 85685 2 85688 2 85689 2 85690 2 85692 2 85695 2 85697 2 85715 2 85720 2 85728 2 85732 2 85741 2 85761 2 85788 2 85794 2 85799 2 85801 2 85804 2 85808 2 85809 2 85815 2 85816 2 85819 2 85834 2 85836 2 85845 2 85849 2 85854 2 85862 2 85872 2 85873 2 85879 2 85885 2 85889 2 85901 2 85904 2 85915 2 85917 2 85918 2 85923 2 85929 2 85938 2 85950 2 85956 2 85958 2 85961 2 85966 2 85989 2 85996 2 86014 2 86017 2 86025 2 86032 2 86043 2 86048 2 86054 2 86077 2 86078 2 86084 2 86086 2 86090 2 86096 2 86104 2 86116 2 86121 2 86126 2 86139 2 86140 2 86144 2 86152 2 86162 2 86165 2 86168 2 86180 2 86184 2 86191 2 86192 2 86197 2 86213 2 86234 2 86241 2 86249 2 86266 2 86277 2 86278 2 86300 2 86302 2 86316 2 86317 2 86320 2 86323 2 86329 2 86336 2 86344 2 86349 2 86352 2 86356 2 86362 2 86364 2 86365 2 86373 2 86382 2 86383 2 86385 2 86395 2 86398 2 86400 2 86411 2 86418 2 86419 2 86421 2 86440 2 86447 2 86449 2 86454 2 86461 2 86463 2 86471 2 86473 2 86475 2 86478 2 86480 2 86481 2 86492 2 86493 2 86510 2 86535 2 86545 2 86558 2 86559 2 86563 2 86568 2 86581 2 86590 2 86599 2 86604 2 86614 2 86617 2 86619 2 86628 2 86634 2 86644 2 86686 2 86693 2 86697 2 86699 2 86700 2 86717 2 86724 2 86725 2 86735 2 86736 2 86737 2 86744 2 86748 2 86751 2 86754 2 86758 2 86761 2 86763 2 86767 2 86773 2 86776 2 86778 2 86787 2 86789 2 86798 2 86799 2 86801 2 86820 2 86824 2 86829 2 86830 2 86832 2 86837 2 86843 2 86844 2 86847 2 86867 2 86880 2 86881 2 86889 2 86891 2 86893 2 86897 2 86909 2 86910 2 86914 2 86915 2 86945 2 86946 2 86947 2 86956 2 86958 2 86959 2 86967 2 86977 2 86978 2 86982 2 86985 2 86987 2 86990 2 87001 2 87005 2 87017 2 87025 2 87026 2 87038 2 87047 2 87050 2 87052 2 87054 2 87055 2 87057 2 87064 2 87069 2 87078 2 87080 2 87082 2 87086 2 87095 2 87106 2 87112 2 87129 2 87134 2 87136 2 87143 2 87147 2 87158 2 87159 2 87169 2 87181 2 87186 2 87189 2 87194 2 87202 2 87208 2 87221 2 87245 2 87254 2 87261 2 87269 2 87274 2 87277 2 87278 2 87292 2 87297 2 87302 2 87303 2 87307 2 87310 2 87314 2 87318 2 87329 2 87338 2 87344 2 87368 2 87369 2 87374 2 87380 2 87381 2 87387 2 87389 2 87391 2 87405 2 87417 2 87421 2 87423 2 87431 2 87432 2 87433 2 87436 2 87457 2 87464 2 87465 2 87485 2 87493 2 87494 2 87508 2 87512 2 87514 2 87516 2 87529 2 87531 2 87539 2 87544 2 87546 2 87561 2 87564 2 87566 2 87582 2 87583 2 87588 2 87594 2 87600 2 87601 2 87609 2 87634 2 87640 2 87644 2 87661 2 87680 2 87681 2 87699 2 87721 2 87728 2 87729 2 87730 2 87742 2 87747 2 87751 2 87752 2 87761 2 87765 2 87775 2 87778 2 87781 2 87784 2 87785 2 87791 2 87806 2 87812 2 87813 2 87814 2 87817 2 87818 2 87828 2 87829 2 87838 2 87842 2 87847 2 87853 2 87856 2 87865 2 87868 2 87881 2 87883 2 87890 2 87892 2 87896 2 87904 2 87905 2 87907 2 87914 2 87923 2 87936 2 87937 2 87943 2 87944 2 87946 2 87954 2 87960 2 87961 2 87967 2 87977 2 87982 2 87990 2 87993 2 87996 2 88000 2 88029 2 88036 2 88042 2 88044 2 88049 2 88067 2 88069 2 88071 2 88074 2 88082 2 88083 2 88084 2 88086 2 88088 2 88091 2 88092 2 88108 2 88109 2 88115 2 88120 2 88128 2 88130 2 88132 2 88134 2 88135 2 88156 2 88161 2 88172 2 88184 2 88186 2 88205 2 88209 2 88216 2 88220 2 88223 2 88224 2 88258 2 88261 2 88275 2 88277 2 88288 2 88293 2 88296 2 88302 2 88314 2 88319 2 88324 2 88327 2 88330 2 88335 2 88340 2 88345 2 88347 2 88349 2 88355 2 88357 2 88360 2 88388 2 88402 2 88409 2 88414 2 88418 2 88440 2 88442 2 88461 2 88465 2 88470 2 88480 2 88482 2 88485 2 88496 2 88507 2 88508 2 88510 2 88514 2 88527 2 88539 2 88548 2 88553 2 88562 2 88563 2 88564 2 88568 2 88575 2 88582 2 88594 2 88595 2 88599 2 88606 2 88610 2 88614 2 88618 2 88627 2 88628 2 88630 2 88631 2 88636 2 88641 2 88642 2 88656 2 88660 2 88663 2 88668 2 88675 2 88679 2 88693 2 88700 2 88711 2 88713 2 88742 2 88747 2 88748 2 88760 2 88765 2 88767 2 88784 2 88786 2 88790 2 88795 2 88803 2 88810 2 88812 2 88823 2 88829 2 88830 2 88838 2 88854 2 88856 2 88860 2 88862 2 88864 2 88869 2 88873 2 88874 2 88883 2 88896 2 88898 2 88911 2 88921 2 88922 2 88927 2 88933 2 88940 2 88945 2 88950 2 88952 2 88954 2 88957 2 88959 2 88966 2 88972 2 88993 2 88998 2 88999 2 89002 2 89009 2 89015 2 89016 2 89021 2 89028 2 89038 2 89044 2 89045 2 89051 2 89052 2 89057 2 89063 2 89064 2 89065 2 89067 2 89073 2 89074 2 89075 2 89079 2 89086 2 89089 2 89097 2 89101 2 89135 2 89145 2 89150 2 89159 2 89166 2 89168 2 89170 2 89171 2 89173 2 89189 2 89191 2 89192 2 89199 2 89202 2 89203 2 89208 2 89209 2 89215 2 89243 2 89251 2 89253 2 89258 2 89262 2 89264 2 89274 2 89281 2 89283 2 89289 2 89291 2 89295 2 89309 2 89319 2 89330 2 89333 2 89341 2 89344 2 89351 2 89356 2 89359 2 89377 2 89383 2 89390 2 89395 2 89404 2 89408 2 89422 2 89423 2 89424 2 89430 2 89433 2 89436 2 89447 2 89453 2 89454 2 89456 2 89461 2 89463 2 89471 2 89473 2 89477 2 89480 2 89483 2 89485 2 89489 2 89491 2 89499 2 89502 2 89508 2 89513 2 89514 2 89515 2 89530 2 89534 2 89543 2 89544 2 89550 2 89559 2 89566 2 89580 2 89595 2 89602 2 89608 2 89610 2 89611 2 89613 2 89642 2 89648 2 89652 2 89653 2 89658 2 89659 2 89664 2 89665 2 89667 2 89668 2 89675 2 89683 2 89684 2 89696 2 89710 2 89711 2 89719 2 89750 2 89754 2 89756 2 89763 2 89777 2 89778 2 89779 2 89784 2 89788 2 89789 2 89790 2 89791 2 89797 2 89814 2 89817 2 89824 2 89830 2 89850 2 89853 2 89854 2 89862 2 89863 2 89866 2 89874 2 89880 2 89884 2 89896 2 89905 2 89914 2 89918 2 89919 2 89920 2 89927 2 89930 2 89931 2 89932 2 89934 2 89936 2 89973 2 89978 2 89988 2 89997 2 89998 2 89999 2 90000 2 90002 2 90007 2 90018 2 90031 2 90032 2 90033 2 90034 2 90039 2 90043 2 90044 2 90062 2 90065 2 90070 2 90076 2 90078 2 90081 2 90103 2 90108 2 90109 2 90114 2 90132 2 90153 2 90162 2 90175 2 90176 2 90187 2 90189 2 90190 2 90193 2 90194 2 90200 2 90202 2 90205 2 90214 2 90215 2 90216 2 90230 2 90255 2 90262 2 90263 2 90265 2 90267 2 90282 2 90283 2 90285 2 90286 2 90290 2 90306 2 90307 2 90316 2 90320 2 90322 2 90327 2 90331 2 90341 2 90357 2 90362 2 90376 2 90382 2 90386 2 90391 2 90399 2 90407 2 90409 2 90410 2 90435 2 90443 2 90447 2 90460 2 90463 2 90470 2 90475 2 90494 2 90499 2 90503 2 90504 2 90509 2 90523 2 90528 2 90530 2 90535 2 90543 2 90545 2 90550 2 90552 2 90554 2 90561 2 90570 2 90576 2 90577 2 90580 2 90583 2 90587 2 90594 2 90614 2 90622 2 90640 2 90642 2 90646 2 90648 2 90659 2 90660 2 90661 2 90667 2 90669 2 90672 2 90679 2 90680 2 90693 2 90695 2 90710 2 90711 2 90712 2 90713 2 90716 2 90720 2 90723 2 90740 2 90741 2 90746 2 90747 2 90748 2 90767 2 90772 2 90775 2 90779 2 90783 2 90787 2 90801 2 90815 2 90825 2 90851 2 90857 2 90863 2 90867 2 90872 2 90875 2 90879 2 90882 2 90892 2 90921 2 90922 2 90925 2 90928 2 90935 2 90940 2 90948 2 90957 2 90958 2 90972 2 90977 2 90986 2 90990 2 91002 2 91011 2 91016 2 91030 2 91031 2 91035 2 91042 2 91044 2 91046 2 91050 2 91059 2 91070 2 91072 2 91074 2 91087 2 91098 2 91108 2 91112 2 91119 2 91120 2 91134 2 91135 2 91137 2 91138 2 91159 2 91163 2 91173 2 91175 2 91179 2 91180 2 91189 2 91196 2 91197 2 91205 2 91207 2 91210 2 91219 2 91233 2 91238 2 91241 2 91245 2 91247 2 91253 2 91254 2 91255 2 91261 2 91262 2 91269 2 91273 2 91284 2 91293 2 91299 2 91301 2 91304 2 91306 2 91310 2 91315 2 91331 2 91333 2 91337 2 91343 2 91347 2 91349 2 91377 2 91380 2 91383 2 91384 2 91394 2 91395 2 91401 2 91403 2 91411 2 91412 2 91420 2 91425 2 91428 2 91433 2 91436 2 91445 2 91455 2 91457 2 91465 2 91472 2 91495 2 91496 2 91516 2 91519 2 91528 2 91530 2 91536 2 91549 2 91553 2 91556 2 91557 2 91561 2 91566 2 91572 2 91580 2 91581 2 91588 2 91589 2 91591 2 91597 2 91598 2 91606 2 91608 2 91609 2 91610 2 91614 2 91621 2 91628 2 91633 2 91639 2 91642 2 91645 2 91647 2 91651 2 91668 2 91670 2 91671 2 91678 2 91679 2 91683 2 91694 2 91697 2 91702 2 91704 2 91707 2 91710 2 91718 2 91726 2 91727 2 91733 2 91735 2 91736 2 91738 2 91741 2 91742 2 91744 2 91751 2 91759 2 91764 2 91765 2 91773 2 91780 2 91787 2 91796 2 91802 2 91807 2 91816 2 91818 2 91822 2 91835 2 91836 2 91837 2 91841 2 91843 2 91844 2 91845 2 91853 2 91863 2 91877 2 91879 2 91880 2 91882 2 91884 2 91887 2 91900 2 91906 2 91909 2 91916 2 91925 2 91926 2 91933 2 91934 2 91941 2 91946 2 91947 2 91949 2 91951 2 91960 2 91962 2 91967 2 91974 2 91979 2 91987 2 91993 2 92007 2 92036 2 92043 2 92045 2 92046 2 92050 2 92070 2 92081 2 92086 2 92088 2 92093 2 92113 2 92116 2 92120 2 92128 2 92130 2 92138 2 92140 2 92146 2 92149 2 92156 2 92162 2 92176 2 92180 2 92181 2 92183 2 92188 2 92195 2 92203 2 92204 2 92219 2 92227 2 92228 2 92234 2 92238 2 92241 2 92244 2 92245 2 92252 2 92253 2 92258 2 92260 2 92265 2 92267 2 92268 2 92273 2 92279 2 92280 2 92282 2 92284 2 92294 2 92295 2 92314 2 92322 2 92323 2 92325 2 92327 2 92328 2 92334 2 92338 2 92344 2 92345 2 92371 2 92372 2 92380 2 92385 2 92386 2 92391 2 92393 2 92395 2 92403 2 92410 2 92412 2 92420 2 92439 2 92445 2 92452 2 92455 2 92469 2 92475 2 92481 2 92492 2 92500 2 92511 2 92512 2 92521 2 92537 2 92539 2 92557 2 92558 2 92560 2 92561 2 92566 2 92569 2 92572 2 92574 2 92579 2 92580 2 92587 2 92594 2 92622 2 92625 2 92627 2 92630 2 92631 2 92639 2 92663 2 92672 2 92676 2 92691 2 92707 2 92740 2 92750 2 92751 2 92752 2 92753 2 92763 2 92767 2 92785 2 92796 2 92799 2 92801 2 92805 2 92843 2 92847 2 92851 2 92854 2 92857 2 92868 2 92869 2 92874 2 92875 2 92878 2 92887 2 92895 2 92896 2 92900 2 92914 2 92918 2 92920 2 92936 2 92941 2 92944 2 92949 2 92950 2 92952 2 92955 2 92962 2 92970 2 92982 2 92983 2 92987 2 92988 2 92990 2 92992 2 93009 2 93011 2 93017 2 93023 2 93036 2 93037 2 93038 2 93040 2 93048 2 93067 2 93068 2 93072 2 93081 2 93084 2 93088 2 93090 2 93094 2 93099 2 93107 2 93108 2 93110 2 93113 2 93117 2 93120 2 93130 2 93131 2 93134 2 93138 2 93141 2 93148 2 93159 2 93163 2 93169 2 93172 2 93177 2 93184 2 93186 2 93193 2 93216 2 93217 2 93218 2 93227 2 93233 2 93243 2 93245 2 93250 2 93257 2 93265 2 93267 2 93274 2 93275 2 93277 2 93278 2 93279 2 93288 2 93303 2 93314 2 93319 2 93322 2 93324 2 93325 2 93342 2 93353 2 93360 2 93375 2 93384 2 93392 2 93394 2 93395 2 93402 2 93413 2 93453 2 93455 2 93459 2 93464 2 93470 2 93479 2 93486 2 93489 2 93495 2 93507 2 93510 2 93513 2 93514 2 93520 2 93531 2 93535 2 93545 2 93547 2 93548 2 93551 2 93552 2 93563 2 93564 2 93569 2 93571 2 93585 2 93586 2 93600 2 93606 2 93618 2 93623 2 93624 2 93635 2 93645 2 93648 2 93653 2 93672 2 93673 2 93676 2 93681 2 93683 2 93691 2 93695 2 93702 2 93710 2 93713 2 93717 2 93718 2 93728 2 93730 2 93731 2 93736 2 93739 2 93743 2 93747 2 93751 2 93752 2 93754 2 93757 2 93770 2 93782 2 93786 2 93788 2 93804 2 93805 2 93810 2 93811 2 93818 2 93832 2 93838 2 93841 2 93856 2 93865 2 93881 2 93891 2 93898 2 93917 2 93920 2 93923 2 93928 2 93929 2 93946 2 93956 2 93958 2 93960 2 93969 2 93970 2 93985 2 93992 2 93998 2 94000 2 94005 2 94011 2 94014 2 94021 2 94038 2 94044 2 94056 2 94060 2 94061 2 94063 2 94076 2 94077 2 94087 2 94090 2 94092 2 94105 2 94106 2 94115 2 94123 2 94127 2 94132 2 94134 2 94139 2 94140 2 94145 2 94147 2 94150 2 94151 2 94159 2 94169 2 94173 2 94183 2 94197 2 94205 2 94206 2 94211 2 94212 2 94220 2 94224 2 94236 2 94246 2 94247 2 94252 2 94253 2 94259 2 94260 2 94264 2 94278 2 94296 2 94312 2 94314 2 94316 2 94319 2 94321 2 94325 2 94335 2 94337 2 94338 2 94341 2 94356 2 94361 2 94364 2 94369 2 94382 2 94392 2 94403 2 94407 2 94410 2 94420 2 94423 2 94432 2 94437 2 94442 2 94447 2 94448 2 94453 2 94458 2 94461 2 94462 2 94465 2 94472 2 94474 2 94480 2 94499 2 94511 2 94514 2 94518 2 94519 2 94521 2 94529 2 94547 2 94548 2 94554 2 94558 2 94559 2 94565 2 94573 2 94574 2 94590 2 94593 2 94614 2 94618 2 94623 2 94625 2 94646 2 94663 2 94665 2 94666 2 94668 2 94678 2 94681 2 94684 2 94693 2 94696 2 94700 2 94703 2 94715 2 94716 2 94721 2 94730 2 94735 2 94736 2 94745 2 94756 2 94757 2 94759 2 94761 2 94772 2 94776 2 94779 2 94780 2 94793 2 94802 2 94803 2 94805 2 94807 2 94812 2 94816 2 94828 2 94829 2 94830 2 94839 2 94842 2 94843 2 94849 2 94858 2 94862 2 94875 2 94886 2 94888 2 94889 2 94895 2 94900 2 94910 2 94912 2 94913 2 94927 2 94930 2 94931 2 94945 2 94946 2 94949 2 94955 2 94983 2 94985 2 94992 2 95009 2 95010 2 95027 2 95037 2 95044 2 95045 2 95051 2 95057 2 95061 2 95063 2 95070 2 95082 2 95083 2 95092 2 95098 2 95102 2 95111 2 95120 2 95122 2 95143 2 95145 2 95153 2 95158 2 95161 2 95162 2 95182 2 95183 2 95186 2 95190 2 95191 2 95195 2 95199 2 95202 2 95209 2 95213 2 95218 2 95250 2 95252 2 95253 2 95261 2 95270 2 95276 2 95277 2 95279 2 95286 2 95289 2 95291 2 95302 2 95304 2 95321 2 95322 2 95332 2 95334 2 95336 2 95341 2 95343 2 95344 2 95348 2 95353 2 95356 2 95366 2 95417 2 95418 2 95419 2 95426 2 95428 2 95429 2 95448 2 95453 2 95454 2 95456 2 95459 2 95467 2 95485 2 95505 2 95509 2 95513 2 95524 2 95531 2 95532 2 95536 2 95539 2 95543 2 95549 2 95550 2 95553 2 95558 2 95569 2 95576 2 95581 2 95584 2 95585 2 95588 2 95589 2 95594 2 95600 2 95604 2 95615 2 95617 2 95619 2 95628 2 95634 2 95636 2 95644 2 95649 2 95661 2 95670 2 95678 2 95679 2 95685 2 95690 2 95697 2 95702 2 95704 2 95706 2 95713 2 95721 2 95725 2 95729 2 95740 2 95768 2 95775 2 95776 2 95786 2 95787 2 95792 2 95794 2 95795 2 95805 2 95809 2 95813 2 95816 2 95820 2 95821 2 95823 2 95833 2 95845 2 95850 2 95863 2 95865 2 95878 2 95879 2 95887 2 95901 2 95905 2 95906 2 95910 2 95918 2 95923 2 95927 2 95930 2 95946 2 95964 2 95969 2 95970 2 95977 2 95981 2 95983 2 95985 2 95988 2 96004 2 96005 2 96008 2 96031 2 96039 2 96046 2 96061 2 96067 2 96072 2 96074 2 96076 2 96084 2 96089 2 96096 2 96097 2 96099 2 96100 2 96103 2 96123 2 96163 2 96170 2 96178 2 96182 2 96186 2 96193 2 96195 2 96218 2 96225 2 96231 2 96233 2 96240 2 96243 2 96254 2 96255 2 96260 2 96271 2 96273 2 96276 2 96280 2 96287 2 96289 2 96292 2 96299 2 96302 2 96305 2 96320 2 96325 2 96332 2 96337 2 96338 2 96341 2 96353 2 96354 2 96368 2 96370 2 96376 2 96377 2 96382 2 96388 2 96391 2 96395 2 96397 2 96402 2 96425 2 96434 2 96449 2 96453 2 96459 2 96464 2 96465 2 96483 2 96485 2 96490 2 96492 2 96493 2 96504 2 96513 2 96516 2 96517 2 96518 2 96520 2 96542 2 96555 2 96564 2 96596 2 96605 2 96606 2 96609 2 96612 2 96628 2 96635 2 96636 2 96641 2 96644 2 96647 2 96651 2 96655 2 96657 2 96669 2 96675 2 96684 2 96686 2 96687 2 96691 2 96693 2 96695 2 96699 2 96702 2 96709 2 96713 2 96719 2 96720 2 96721 2 96723 2 96725 2 96726 2 96730 2 96747 2 96750 2 96753 2 96756 2 96758 2 96763 2 96764 2 96765 2 96772 2 96775 2 96797 2 96804 2 96824 2 96825 2 96831 2 96834 2 96835 2 96839 2 96845 2 96846 2 96849 2 96852 2 96863 2 96869 2 96872 2 96888 2 96891 2 96892 2 96903 2 96905 2 96912 2 96915 2 96916 2 96920 2 96921 2 96922 2 96924 2 96933 2 96942 2 96947 2 96949 2 96956 2 96960 2 96961 2 96963 2 96966 2 96971 2 96973 2 96974 2 96976 2 96980 2 96983 2 96987 2 96998 2 97005 2 97008 2 97011 2 97014 2 97016 2 97020 2 97021 2 97026 2 97027 2 97031 2 97035 2 97054 2 97059 2 97078 2 97083 2 97084 2 97086 2 97094 2 97095 2 97098 2 97106 2 97123 2 97129 2 97131 2 97135 2 97140 2 97147 2 97155 2 97156 2 97159 2 97163 2 97164 2 97167 2 97168 2 97177 2 97183 2 97192 2 97207 2 97213 2 97215 2 97220 2 97223 2 97226 2 97229 2 97235 2 97236 2 97241 2 97246 2 97247 2 97248 2 97251 2 97271 2 97273 2 97274 2 97276 2 97288 2 97300 2 97304 2 97308 2 97315 2 97320 2 97321 2 97327 2 97341 2 97348 2 97349 2 97350 2 97355 2 97362 2 97371 2 97388 2 97389 2 97397 2 97414 2 97415 2 97418 2 97422 2 97437 2 97439 2 97440 2 97443 2 97448 2 97449 2 97450 2 97461 2 97472 2 97484 2 97489 2 97490 2 97494 2 97499 2 97507 2 97517 2 97520 2 97530 2 97532 2 97533 2 97535 2 97564 2 97570 2 97578 2 97580 2 97581 2 97584 2 97586 2 97597 2 97601 2 97604 2 97608 2 97609 2 97625 2 97629 2 97638 2 97641 2 97646 2 97649 2 97655 2 97662 2 97667 2 97675 2 97679 2 97683 2 97701 2 97702 2 97711 2 97712 2 97724 2 97738 2 97741 2 97751 2 97758 2 97763 2 97764 2 97765 2 97771 2 97778 2 97783 2 97793 2 97795 2 97796 2 97800 2 97806 2 97807 2 97810 2 97828 2 97833 2 97834 2 97840 2 97848 2 97854 2 97855 2 97857 2 97860 2 97872 2 97877 2 97879 2 97883 2 97902 2 97906 2 97913 2 97919 2 97945 2 97950 2 97952 2 97959 2 97965 2 97966 2 97967 2 97970 2 97971 2 97975 2 97980 2 97982 2 97986 2 97997 2 98001 2 98005 2 98016 2 98021 2 98028 2 98029 2 98034 2 98036 2 98040 2 98063 2 98070 2 98076 2 98084 2 98091 2 98096 2 98100 2 98102 2 98109 2 98110 2 98113 2 98119 2 98128 2 98132 2 98153 2 98154 2 98162 2 98163 2 98166 2 98173 2 98185 2 98191 2 98192 2 98204 2 98207 2 98214 2 98217 2 98219 2 98224 2 98227 2 98233 2 98234 2 98242 2 98243 2 98260 2 98263 2 98264 2 98268 2 98287 2 98297 2 98315 2 98331 2 98345 2 98371 2 98375 2 98389 2 98390 2 98395 2 98396 2 98405 2 98406 2 98411 2 98424 2 98433 2 98439 2 98443 2 98445 2 98457 2 98463 2 98466 2 98467 2 98469 2 98483 2 98491 2 98492 2 98495 2 98507 2 98511 2 98519 2 98523 2 98524 2 98534 2 98538 2 98542 2 98544 2 98549 2 98556 2 98561 2 98566 2 98570 2 98575 2 98579 2 98586 2 98589 2 98593 2 98594 2 98599 2 98604 2 98607 2 98610 2 98616 2 98629 2 98631 2 98644 2 98652 2 98653 2 98668 2 98669 2 98690 2 98696 2 98703 2 98706 2 98710 2 98711 2 98712 2 98717 2 98720 2 98748 2 98758 2 98770 2 98779 2 98782 2 98784 2 98786 2 98787 2 98795 2 98797 2 98802 2 98809 2 98813 2 98825 2 98829 2 98846 2 98886 2 98888 2 98891 2 98892 2 98897 2 98907 2 98911 2 98919 2 98922 2 98929 2 98937 2 98938 2 98940 2 98941 2 98942 2 98943 2 98946 2 98949 2 98964 2 98970 2 98971 2 98978 2 98992 2 98999 2 4 3 12 3 16 3 24 3 34 3 39 3 42 3 48 3 49 3 53 3 57 3 78 3 79 3 81 3 94 3 98 3 100 3 102 3 104 3 106 3 114 3 117 3 120 3 124 3 131 3 135 3 137 3 139 3 141 3 144 3 150 3 155 3 164 3 178 3 179 3 181 3 192 3 195 3 203 3 207 3 208 3 217 3 221 3 230 3 232 3 235 3 237 3 238 3 241 3 246 3 248 3 250 3 251 3 252 3 253 3 257 3 263 3 275 3 284 3 288 3 300 3 306 3 308 3 315 3 321 3 338 3 339 3 341 3 344 3 351 3 356 3 374 3 380 3 383 3 384 3 406 3 413 3 420 3 423 3 436 3 437 3 438 3 441 3 443 3 453 3 463 3 467 3 481 3 510 3 511 3 513 3 516 3 521 3 531 3 537 3 543 3 545 3 552 3 557 3 558 3 559 3 562 3 571 3 574 3 576 3 582 3 584 3 585 3 594 3 601 3 603 3 607 3 614 3 616 3 618 3 643 3 645 3 670 3 682 3 690 3 691 3 694 3 695 3 705 3 708 3 714 3 715 3 716 3 723 3 727 3 732 3 736 3 737 3 747 3 749 3 757 3 761 3 762 3 769 3 772 3 783 3 784 3 795 3 798 3 812 3 821 3 834 3 841 3 842 3 861 3 870 3 880 3 906 3 924 3 926 3 928 3 931 3 932 3 935 3 959 3 964 3 967 3 970 3 973 3 974 3 977 3 980 3 991 3 998 3 1009 3 1010 3 1014 3 1020 3 1023 3 1025 3 1027 3 1040 3 1041 3 1047 3 1050 3 1052 3 1054 3 1057 3 1060 3 1067 3 1073 3 1074 3 1075 3 1078 3 1083 3 1088 3 1089 3 1096 3 1099 3 1112 3 1120 3 1130 3 1132 3 1144 3 1147 3 1148 3 1151 3 1157 3 1162 3 1168 3 1172 3 1176 3 1188 3 1191 3 1199 3 1200 3 1216 3 1218 3 1219 3 1222 3 1227 3 1232 3 1235 3 1243 3 1247 3 1249 3 1251 3 1263 3 1264 3 1267 3 1268 3 1272 3 1279 3 1285 3 1286 3 1287 3 1288 3 1306 3 1326 3 1330 3 1343 3 1350 3 1354 3 1357 3 1375 3 1385 3 1395 3 1419 3 1422 3 1423 3 1445 3 1447 3 1451 3 1452 3 1457 3 1464 3 1467 3 1482 3 1483 3 1484 3 1493 3 1494 3 1499 3 1502 3 1504 3 1505 3 1517 3 1518 3 1522 3 1532 3 1536 3 1539 3 1541 3 1544 3 1551 3 1560 3 1563 3 1572 3 1575 3 1583 3 1584 3 1585 3 1586 3 1589 3 1591 3 1592 3 1601 3 1607 3 1613 3 1614 3 1623 3 1624 3 1635 3 1646 3 1651 3 1657 3 1665 3 1670 3 1673 3 1678 3 1682 3 1685 3 1687 3 1701 3 1706 3 1708 3 1714 3 1719 3 1725 3 1727 3 1731 3 1732 3 1735 3 1737 3 1745 3 1749 3 1753 3 1754 3 1755 3 1756 3 1760 3 1761 3 1768 3 1772 3 1775 3 1776 3 1791 3 1793 3 1794 3 1800 3 1804 3 1812 3 1818 3 1822 3 1832 3 1839 3 1840 3 1842 3 1845 3 1846 3 1852 3 1856 3 1871 3 1874 3 1875 3 1888 3 1891 3 1894 3 1906 3 1910 3 1912 3 1918 3 1920 3 1921 3 1922 3 1927 3 1930 3 1937 3 1948 3 1950 3 1951 3 1952 3 1958 3 1960 3 1973 3 1998 3 1999 3 2003 3 2004 3 2016 3 2017 3 2025 3 2027 3 2038 3 2055 3 2057 3 2071 3 2074 3 2075 3 2083 3 2085 3 2091 3 2109 3 2120 3 2127 3 2129 3 2133 3 2137 3 2148 3 2171 3 2179 3 2184 3 2189 3 2204 3 2206 3 2225 3 2227 3 2231 3 2233 3 2244 3 2251 3 2261 3 2264 3 2267 3 2268 3 2275 3 2277 3 2279 3 2280 3 2284 3 2300 3 2304 3 2307 3 2309 3 2317 3 2323 3 2330 3 2338 3 2340 3 2341 3 2345 3 2349 3 2362 3 2363 3 2368 3 2374 3 2377 3 2380 3 2401 3 2414 3 2432 3 2433 3 2435 3 2440 3 2450 3 2457 3 2464 3 2465 3 2466 3 2468 3 2471 3 2490 3 2492 3 2510 3 2514 3 2519 3 2520 3 2521 3 2528 3 2529 3 2543 3 2547 3 2556 3 2557 3 2575 3 2582 3 2588 3 2589 3 2592 3 2594 3 2597 3 2617 3 2620 3 2625 3 2629 3 2630 3 2633 3 2636 3 2641 3 2655 3 2659 3 2663 3 2666 3 2672 3 2680 3 2689 3 2692 3 2697 3 2702 3 2704 3 2709 3 2729 3 2737 3 2738 3 2740 3 2749 3 2763 3 2768 3 2782 3 2785 3 2788 3 2797 3 2809 3 2811 3 2816 3 2824 3 2848 3 2850 3 2851 3 2853 3 2855 3 2863 3 2867 3 2875 3 2879 3 2886 3 2893 3 2901 3 2912 3 2918 3 2929 3 2947 3 2959 3 2961 3 2962 3 2966 3 2969 3 2986 3 2987 3 2997 3 3002 3 3024 3 3025 3 3028 3 3046 3 3052 3 3057 3 3061 3 3069 3 3078 3 3083 3 3097 3 3108 3 3110 3 3113 3 3115 3 3125 3 3126 3 3140 3 3141 3 3161 3 3166 3 3172 3 3176 3 3177 3 3187 3 3193 3 3194 3 3203 3 3208 3 3211 3 3217 3 3219 3 3229 3 3234 3 3254 3 3256 3 3257 3 3265 3 3268 3 3274 3 3279 3 3282 3 3286 3 3290 3 3291 3 3294 3 3317 3 3327 3 3330 3 3350 3 3354 3 3357 3 3367 3 3374 3 3375 3 3391 3 3402 3 3408 3 3413 3 3423 3 3424 3 3429 3 3434 3 3457 3 3459 3 3462 3 3469 3 3472 3 3477 3 3478 3 3496 3 3505 3 3511 3 3513 3 3514 3 3534 3 3537 3 3538 3 3547 3 3555 3 3558 3 3562 3 3583 3 3589 3 3591 3 3594 3 3603 3 3630 3 3632 3 3638 3 3640 3 3645 3 3651 3 3655 3 3657 3 3659 3 3672 3 3675 3 3680 3 3681 3 3682 3 3683 3 3688 3 3699 3 3705 3 3706 3 3708 3 3710 3 3718 3 3726 3 3728 3 3733 3 3734 3 3739 3 3746 3 3749 3 3751 3 3752 3 3754 3 3756 3 3759 3 3766 3 3770 3 3784 3 3785 3 3796 3 3800 3 3803 3 3811 3 3812 3 3819 3 3828 3 3830 3 3832 3 3833 3 3834 3 3839 3 3840 3 3841 3 3843 3 3852 3 3854 3 3855 3 3867 3 3884 3 3891 3 3892 3 3897 3 3906 3 3913 3 3930 3 3932 3 3939 3 3942 3 3943 3 3952 3 3957 3 3958 3 3967 3 3970 3 3979 3 3982 3 4014 3 4016 3 4023 3 4027 3 4029 3 4042 3 4045 3 4066 3 4094 3 4100 3 4101 3 4102 3 4124 3 4131 3 4132 3 4139 3 4145 3 4152 3 4153 3 4161 3 4169 3 4170 3 4173 3 4178 3 4179 3 4182 3 4188 3 4195 3 4196 3 4203 3 4205 3 4221 3 4246 3 4250 3 4260 3 4262 3 4280 3 4282 3 4292 3 4293 3 4300 3 4308 3 4310 3 4313 3 4323 3 4352 3 4356 3 4362 3 4384 3 4405 3 4407 3 4417 3 4425 3 4432 3 4445 3 4451 3 4455 3 4468 3 4471 3 4476 3 4488 3 4491 3 4493 3 4495 3 4501 3 4502 3 4504 3 4505 3 4513 3 4515 3 4519 3 4530 3 4532 3 4535 3 4537 3 4538 3 4539 3 4547 3 4548 3 4552 3 4555 3 4562 3 4568 3 4574 3 4590 3 4594 3 4603 3 4605 3 4613 3 4634 3 4641 3 4645 3 4657 3 4670 3 4673 3 4674 3 4677 3 4679 3 4684 3 4688 3 4696 3 4703 3 4704 3 4707 3 4714 3 4720 3 4729 3 4731 3 4733 3 4734 3 4736 3 4738 3 4757 3 4761 3 4767 3 4770 3 4774 3 4777 3 4778 3 4783 3 4797 3 4801 3 4806 3 4810 3 4815 3 4816 3 4825 3 4837 3 4845 3 4858 3 4859 3 4867 3 4878 3 4883 3 4885 3 4894 3 4903 3 4904 3 4910 3 4926 3 4927 3 4932 3 4933 3 4949 3 4957 3 4965 3 4970 3 4975 3 4982 3 4987 3 4997 3 5005 3 5013 3 5019 3 5020 3 5023 3 5025 3 5030 3 5032 3 5033 3 5043 3 5060 3 5061 3 5063 3 5071 3 5099 3 5108 3 5114 3 5119 3 5121 3 5123 3 5126 3 5129 3 5131 3 5135 3 5141 3 5143 3 5145 3 5155 3 5179 3 5182 3 5190 3 5192 3 5197 3 5198 3 5201 3 5202 3 5204 3 5214 3 5217 3 5223 3 5226 3 5228 3 5239 3 5242 3 5243 3 5244 3 5255 3 5264 3 5279 3 5291 3 5294 3 5298 3 5299 3 5300 3 5305 3 5309 3 5314 3 5318 3 5319 3 5320 3 5322 3 5325 3 5329 3 5330 3 5331 3 5345 3 5350 3 5358 3 5366 3 5369 3 5372 3 5381 3 5384 3 5386 3 5387 3 5390 3 5398 3 5401 3 5404 3 5407 3 5408 3 5414 3 5418 3 5420 3 5429 3 5431 3 5443 3 5452 3 5454 3 5456 3 5474 3 5475 3 5479 3 5495 3 5500 3 5507 3 5516 3 5518 3 5520 3 5525 3 5535 3 5546 3 5547 3 5551 3 5560 3 5563 3 5564 3 5566 3 5596 3 5599 3 5600 3 5611 3 5620 3 5644 3 5645 3 5646 3 5653 3 5655 3 5657 3 5661 3 5667 3 5684 3 5687 3 5689 3 5692 3 5694 3 5714 3 5727 3 5728 3 5729 3 5741 3 5764 3 5771 3 5775 3 5776 3 5778 3 5785 3 5791 3 5794 3 5795 3 5808 3 5812 3 5825 3 5829 3 5832 3 5835 3 5838 3 5846 3 5853 3 5858 3 5870 3 5871 3 5882 3 5884 3 5887 3 5891 3 5892 3 5901 3 5909 3 5916 3 5939 3 5952 3 5958 3 5963 3 5973 3 5977 3 5978 3 5979 3 5992 3 5996 3 5997 3 6007 3 6009 3 6016 3 6017 3 6019 3 6030 3 6032 3 6034 3 6041 3 6042 3 6047 3 6062 3 6073 3 6086 3 6104 3 6105 3 6108 3 6109 3 6111 3 6114 3 6126 3 6128 3 6136 3 6137 3 6159 3 6169 3 6172 3 6176 3 6179 3 6182 3 6186 3 6193 3 6213 3 6227 3 6228 3 6229 3 6234 3 6256 3 6257 3 6264 3 6272 3 6273 3 6278 3 6279 3 6282 3 6289 3 6302 3 6310 3 6313 3 6314 3 6321 3 6324 3 6333 3 6337 3 6350 3 6352 3 6357 3 6358 3 6369 3 6372 3 6375 3 6390 3 6391 3 6395 3 6398 3 6399 3 6401 3 6402 3 6405 3 6407 3 6413 3 6421 3 6428 3 6430 3 6431 3 6441 3 6444 3 6447 3 6450 3 6456 3 6470 3 6479 3 6491 3 6494 3 6501 3 6503 3 6511 3 6513 3 6514 3 6524 3 6531 3 6537 3 6539 3 6541 3 6545 3 6546 3 6552 3 6555 3 6558 3 6567 3 6568 3 6571 3 6572 3 6573 3 6583 3 6588 3 6593 3 6600 3 6601 3 6607 3 6608 3 6612 3 6638 3 6641 3 6647 3 6671 3 6675 3 6689 3 6691 3 6693 3 6709 3 6714 3 6719 3 6720 3 6725 3 6742 3 6752 3 6767 3 6770 3 6773 3 6780 3 6807 3 6813 3 6815 3 6818 3 6823 3 6824 3 6828 3 6832 3 6843 3 6866 3 6885 3 6894 3 6899 3 6901 3 6907 3 6909 3 6910 3 6917 3 6929 3 6939 3 6940 3 6943 3 6950 3 6954 3 6961 3 6971 3 6975 3 6979 3 6983 3 7006 3 7022 3 7031 3 7033 3 7036 3 7042 3 7055 3 7067 3 7074 3 7075 3 7086 3 7087 3 7108 3 7113 3 7115 3 7120 3 7122 3 7127 3 7130 3 7131 3 7135 3 7141 3 7158 3 7167 3 7176 3 7181 3 7199 3 7202 3 7204 3 7213 3 7223 3 7227 3 7255 3 7257 3 7265 3 7269 3 7271 3 7287 3 7292 3 7300 3 7301 3 7325 3 7329 3 7330 3 7337 3 7341 3 7349 3 7363 3 7373 3 7375 3 7378 3 7388 3 7398 3 7400 3 7418 3 7419 3 7421 3 7424 3 7425 3 7427 3 7430 3 7433 3 7434 3 7435 3 7439 3 7442 3 7456 3 7461 3 7463 3 7467 3 7479 3 7480 3 7482 3 7484 3 7494 3 7498 3 7500 3 7509 3 7513 3 7518 3 7530 3 7533 3 7539 3 7554 3 7558 3 7567 3 7571 3 7577 3 7590 3 7592 3 7594 3 7601 3 7602 3 7607 3 7638 3 7640 3 7648 3 7650 3 7653 3 7658 3 7668 3 7673 3 7683 3 7686 3 7694 3 7695 3 7697 3 7699 3 7703 3 7705 3 7719 3 7723 3 7728 3 7733 3 7735 3 7737 3 7750 3 7764 3 7775 3 7794 3 7796 3 7800 3 7804 3 7808 3 7810 3 7818 3 7820 3 7822 3 7829 3 7832 3 7838 3 7844 3 7876 3 7877 3 7882 3 7887 3 7892 3 7895 3 7897 3 7907 3 7909 3 7910 3 7911 3 7918 3 7919 3 7921 3 7927 3 7946 3 7947 3 7954 3 7972 3 7975 3 7976 3 7978 3 7979 3 7981 3 7989 3 7998 3 8001 3 8007 3 8009 3 8029 3 8030 3 8042 3 8055 3 8065 3 8074 3 8076 3 8092 3 8093 3 8112 3 8129 3 8131 3 8132 3 8136 3 8137 3 8158 3 8167 3 8172 3 8181 3 8182 3 8201 3 8202 3 8207 3 8212 3 8213 3 8218 3 8227 3 8228 3 8245 3 8249 3 8252 3 8259 3 8262 3 8274 3 8292 3 8302 3 8308 3 8310 3 8311 3 8312 3 8314 3 8315 3 8319 3 8321 3 8332 3 8337 3 8339 3 8354 3 8356 3 8361 3 8362 3 8364 3 8368 3 8373 3 8375 3 8381 3 8384 3 8388 3 8406 3 8409 3 8413 3 8414 3 8427 3 8433 3 8434 3 8436 3 8438 3 8440 3 8444 3 8447 3 8464 3 8490 3 8497 3 8509 3 8528 3 8529 3 8530 3 8531 3 8533 3 8536 3 8537 3 8538 3 8543 3 8562 3 8569 3 8572 3 8579 3 8584 3 8591 3 8592 3 8599 3 8609 3 8613 3 8624 3 8625 3 8633 3 8634 3 8639 3 8642 3 8650 3 8652 3 8654 3 8657 3 8660 3 8666 3 8669 3 8670 3 8671 3 8672 3 8678 3 8681 3 8682 3 8684 3 8686 3 8688 3 8701 3 8710 3 8711 3 8719 3 8721 3 8723 3 8725 3 8730 3 8734 3 8735 3 8750 3 8755 3 8758 3 8760 3 8779 3 8784 3 8787 3 8789 3 8795 3 8798 3 8804 3 8805 3 8809 3 8811 3 8816 3 8819 3 8823 3 8832 3 8841 3 8853 3 8855 3 8868 3 8870 3 8873 3 8881 3 8885 3 8887 3 8905 3 8922 3 8923 3 8927 3 8930 3 8934 3 8937 3 8943 3 8945 3 8948 3 8953 3 8974 3 8983 3 8998 3 9002 3 9006 3 9009 3 9013 3 9017 3 9019 3 9033 3 9035 3 9043 3 9050 3 9055 3 9056 3 9057 3 9066 3 9069 3 9079 3 9082 3 9087 3 9093 3 9097 3 9106 3 9123 3 9126 3 9134 3 9140 3 9147 3 9162 3 9163 3 9165 3 9174 3 9177 3 9181 3 9191 3 9200 3 9203 3 9207 3 9215 3 9229 3 9232 3 9234 3 9243 3 9248 3 9250 3 9253 3 9257 3 9262 3 9271 3 9289 3 9291 3 9311 3 9315 3 9316 3 9324 3 9330 3 9336 3 9341 3 9357 3 9358 3 9375 3 9378 3 9380 3 9403 3 9404 3 9412 3 9415 3 9416 3 9423 3 9424 3 9438 3 9446 3 9453 3 9456 3 9469 3 9478 3 9479 3 9480 3 9482 3 9486 3 9487 3 9490 3 9491 3 9500 3 9509 3 9512 3 9521 3 9524 3 9528 3 9545 3 9559 3 9567 3 9568 3 9575 3 9576 3 9591 3 9599 3 9604 3 9616 3 9621 3 9638 3 9645 3 9647 3 9652 3 9659 3 9673 3 9680 3 9686 3 9699 3 9700 3 9702 3 9709 3 9716 3 9734 3 9741 3 9742 3 9753 3 9754 3 9756 3 9762 3 9770 3 9772 3 9777 3 9779 3 9780 3 9786 3 9789 3 9792 3 9796 3 9801 3 9804 3 9856 3 9857 3 9871 3 9878 3 9885 3 9886 3 9887 3 9912 3 9918 3 9919 3 9924 3 9927 3 9930 3 9934 3 9949 3 9957 3 9964 3 9968 3 9972 3 9975 3 9977 3 9984 3 9994 3 9998 3 10000 3 10003 3 10012 3 10019 3 10021 3 10024 3 10031 3 10037 3 10038 3 10042 3 10043 3 10049 3 10053 3 10057 3 10058 3 10070 3 10077 3 10078 3 10083 3 10087 3 10088 3 10091 3 10093 3 10115 3 10116 3 10117 3 10119 3 10128 3 10133 3 10147 3 10149 3 10157 3 10163 3 10171 3 10195 3 10197 3 10199 3 10203 3 10204 3 10208 3 10217 3 10227 3 10231 3 10237 3 10248 3 10263 3 10265 3 10269 3 10271 3 10278 3 10286 3 10289 3 10294 3 10296 3 10298 3 10307 3 10308 3 10320 3 10321 3 10322 3 10328 3 10332 3 10341 3 10343 3 10348 3 10350 3 10370 3 10372 3 10390 3 10391 3 10397 3 10405 3 10406 3 10410 3 10414 3 10421 3 10423 3 10426 3 10427 3 10430 3 10437 3 10453 3 10457 3 10462 3 10470 3 10477 3 10478 3 10485 3 10489 3 10494 3 10497 3 10503 3 10517 3 10521 3 10528 3 10533 3 10538 3 10542 3 10544 3 10546 3 10550 3 10555 3 10565 3 10572 3 10573 3 10575 3 10576 3 10577 3 10581 3 10586 3 10587 3 10588 3 10590 3 10600 3 10603 3 10604 3 10605 3 10628 3 10646 3 10657 3 10665 3 10670 3 10672 3 10695 3 10697 3 10701 3 10702 3 10715 3 10738 3 10766 3 10770 3 10771 3 10773 3 10779 3 10786 3 10787 3 10789 3 10791 3 10796 3 10798 3 10799 3 10806 3 10812 3 10817 3 10819 3 10823 3 10824 3 10831 3 10838 3 10839 3 10840 3 10848 3 10850 3 10854 3 10866 3 10868 3 10870 3 10878 3 10886 3 10887 3 10900 3 10908 3 10909 3 10911 3 10928 3 10931 3 10932 3 10944 3 10951 3 10954 3 10958 3 10962 3 10970 3 10971 3 10979 3 10980 3 10991 3 10994 3 11000 3 11004 3 11012 3 11025 3 11026 3 11034 3 11035 3 11038 3 11042 3 11056 3 11063 3 11073 3 11080 3 11115 3 11123 3 11131 3 11133 3 11137 3 11155 3 11158 3 11159 3 11160 3 11168 3 11169 3 11181 3 11183 3 11185 3 11187 3 11192 3 11198 3 11199 3 11200 3 11204 3 11221 3 11223 3 11227 3 11230 3 11234 3 11236 3 11238 3 11240 3 11245 3 11251 3 11253 3 11259 3 11262 3 11263 3 11269 3 11272 3 11279 3 11283 3 11285 3 11290 3 11296 3 11298 3 11317 3 11318 3 11335 3 11343 3 11347 3 11361 3 11366 3 11371 3 11374 3 11377 3 11382 3 11384 3 11394 3 11395 3 11399 3 11402 3 11404 3 11406 3 11407 3 11417 3 11423 3 11429 3 11446 3 11453 3 11454 3 11455 3 11458 3 11463 3 11473 3 11486 3 11487 3 11492 3 11501 3 11506 3 11507 3 11513 3 11527 3 11543 3 11557 3 11559 3 11569 3 11584 3 11585 3 11586 3 11588 3 11602 3 11610 3 11611 3 11627 3 11636 3 11646 3 11652 3 11653 3 11657 3 11658 3 11661 3 11668 3 11671 3 11674 3 11675 3 11676 3 11681 3 11684 3 11695 3 11704 3 11707 3 11719 3 11720 3 11732 3 11737 3 11738 3 11740 3 11744 3 11745 3 11748 3 11750 3 11757 3 11763 3 11772 3 11776 3 11785 3 11808 3 11817 3 11820 3 11825 3 11826 3 11827 3 11831 3 11833 3 11834 3 11840 3 11847 3 11848 3 11851 3 11873 3 11884 3 11886 3 11892 3 11893 3 11894 3 11896 3 11903 3 11907 3 11908 3 11917 3 11923 3 11924 3 11934 3 11953 3 11955 3 11958 3 11986 3 11994 3 11995 3 12007 3 12010 3 12013 3 12024 3 12025 3 12031 3 12039 3 12042 3 12043 3 12051 3 12052 3 12056 3 12061 3 12065 3 12070 3 12072 3 12073 3 12076 3 12090 3 12092 3 12096 3 12097 3 12106 3 12112 3 12118 3 12120 3 12121 3 12134 3 12142 3 12144 3 12147 3 12152 3 12155 3 12164 3 12172 3 12177 3 12178 3 12181 3 12193 3 12200 3 12203 3 12211 3 12220 3 12228 3 12239 3 12245 3 12249 3 12252 3 12255 3 12260 3 12261 3 12272 3 12285 3 12287 3 12297 3 12299 3 12308 3 12309 3 12338 3 12339 3 12343 3 12345 3 12348 3 12355 3 12360 3 12363 3 12365 3 12370 3 12374 3 12381 3 12383 3 12388 3 12389 3 12390 3 12398 3 12412 3 12417 3 12427 3 12439 3 12440 3 12443 3 12456 3 12461 3 12462 3 12464 3 12465 3 12467 3 12488 3 12490 3 12508 3 12509 3 12515 3 12528 3 12531 3 12540 3 12552 3 12553 3 12557 3 12561 3 12565 3 12567 3 12582 3 12592 3 12594 3 12599 3 12612 3 12622 3 12625 3 12630 3 12639 3 12645 3 12646 3 12651 3 12655 3 12656 3 12664 3 12665 3 12667 3 12671 3 12677 3 12679 3 12688 3 12695 3 12698 3 12704 3 12716 3 12728 3 12748 3 12763 3 12768 3 12770 3 12771 3 12772 3 12775 3 12780 3 12783 3 12785 3 12789 3 12798 3 12801 3 12803 3 12811 3 12816 3 12829 3 12837 3 12840 3 12841 3 12847 3 12849 3 12858 3 12864 3 12867 3 12877 3 12882 3 12883 3 12888 3 12897 3 12898 3 12904 3 12911 3 12923 3 12925 3 12931 3 12932 3 12934 3 12935 3 12953 3 12959 3 12965 3 12968 3 12969 3 12973 3 12974 3 12977 3 12981 3 12984 3 12990 3 12991 3 13024 3 13032 3 13050 3 13063 3 13070 3 13073 3 13089 3 13125 3 13128 3 13132 3 13147 3 13148 3 13150 3 13160 3 13184 3 13218 3 13240 3 13242 3 13253 3 13256 3 13257 3 13258 3 13263 3 13264 3 13273 3 13284 3 13295 3 13298 3 13300 3 13305 3 13306 3 13320 3 13324 3 13332 3 13337 3 13339 3 13340 3 13348 3 13349 3 13359 3 13362 3 13363 3 13373 3 13379 3 13382 3 13383 3 13385 3 13391 3 13396 3 13399 3 13401 3 13406 3 13407 3 13410 3 13413 3 13415 3 13421 3 13425 3 13430 3 13439 3 13441 3 13443 3 13447 3 13461 3 13480 3 13485 3 13487 3 13499 3 13500 3 13503 3 13512 3 13516 3 13522 3 13523 3 13525 3 13531 3 13538 3 13558 3 13561 3 13568 3 13573 3 13587 3 13589 3 13591 3 13601 3 13603 3 13607 3 13608 3 13615 3 13617 3 13618 3 13620 3 13623 3 13653 3 13657 3 13664 3 13668 3 13671 3 13674 3 13676 3 13677 3 13686 3 13687 3 13691 3 13694 3 13696 3 13714 3 13716 3 13717 3 13722 3 13731 3 13748 3 13762 3 13767 3 13769 3 13777 3 13807 3 13812 3 13817 3 13819 3 13832 3 13839 3 13840 3 13851 3 13860 3 13866 3 13883 3 13899 3 13910 3 13911 3 13919 3 13930 3 13935 3 13942 3 13946 3 13947 3 13949 3 13955 3 13975 3 13985 3 13995 3 13996 3 14004 3 14005 3 14006 3 14009 3 14012 3 14018 3 14023 3 14029 3 14032 3 14053 3 14056 3 14061 3 14063 3 14068 3 14072 3 14075 3 14079 3 14081 3 14086 3 14096 3 14097 3 14098 3 14101 3 14102 3 14104 3 14112 3 14124 3 14126 3 14129 3 14135 3 14136 3 14139 3 14148 3 14156 3 14160 3 14175 3 14186 3 14187 3 14189 3 14198 3 14201 3 14204 3 14205 3 14210 3 14215 3 14223 3 14233 3 14239 3 14253 3 14255 3 14260 3 14266 3 14270 3 14283 3 14296 3 14297 3 14301 3 14303 3 14307 3 14317 3 14325 3 14332 3 14334 3 14335 3 14339 3 14340 3 14345 3 14350 3 14353 3 14354 3 14359 3 14360 3 14365 3 14372 3 14377 3 14384 3 14389 3 14395 3 14397 3 14402 3 14406 3 14412 3 14415 3 14423 3 14434 3 14450 3 14453 3 14457 3 14458 3 14459 3 14464 3 14478 3 14483 3 14486 3 14488 3 14490 3 14492 3 14495 3 14497 3 14499 3 14501 3 14505 3 14521 3 14528 3 14530 3 14531 3 14534 3 14539 3 14540 3 14554 3 14555 3 14573 3 14577 3 14587 3 14588 3 14595 3 14597 3 14601 3 14616 3 14622 3 14631 3 14633 3 14637 3 14653 3 14657 3 14660 3 14669 3 14671 3 14674 3 14677 3 14681 3 14688 3 14693 3 14695 3 14705 3 14706 3 14707 3 14719 3 14723 3 14725 3 14730 3 14733 3 14736 3 14737 3 14746 3 14751 3 14761 3 14773 3 14774 3 14778 3 14789 3 14792 3 14796 3 14799 3 14802 3 14808 3 14828 3 14829 3 14831 3 14846 3 14848 3 14852 3 14874 3 14876 3 14888 3 14891 3 14906 3 14907 3 14918 3 14923 3 14924 3 14938 3 14942 3 14949 3 14960 3 14973 3 14979 3 14985 3 14995 3 15009 3 15013 3 15015 3 15021 3 15024 3 15028 3 15034 3 15036 3 15043 3 15048 3 15052 3 15054 3 15056 3 15058 3 15065 3 15076 3 15083 3 15085 3 15092 3 15094 3 15097 3 15098 3 15102 3 15103 3 15104 3 15111 3 15112 3 15116 3 15131 3 15136 3 15138 3 15140 3 15159 3 15165 3 15172 3 15177 3 15184 3 15189 3 15204 3 15216 3 15225 3 15231 3 15232 3 15237 3 15238 3 15240 3 15246 3 15248 3 15251 3 15258 3 15259 3 15266 3 15276 3 15282 3 15297 3 15310 3 15327 3 15331 3 15335 3 15338 3 15339 3 15346 3 15348 3 15354 3 15363 3 15364 3 15371 3 15378 3 15388 3 15389 3 15393 3 15415 3 15417 3 15418 3 15423 3 15437 3 15442 3 15443 3 15457 3 15464 3 15473 3 15486 3 15490 3 15495 3 15502 3 15505 3 15511 3 15518 3 15519 3 15551 3 15556 3 15558 3 15559 3 15565 3 15566 3 15579 3 15584 3 15587 3 15593 3 15619 3 15627 3 15631 3 15639 3 15644 3 15646 3 15648 3 15649 3 15653 3 15655 3 15667 3 15675 3 15688 3 15696 3 15698 3 15710 3 15714 3 15715 3 15721 3 15725 3 15746 3 15748 3 15755 3 15757 3 15759 3 15762 3 15764 3 15770 3 15771 3 15797 3 15804 3 15808 3 15810 3 15820 3 15838 3 15839 3 15852 3 15854 3 15859 3 15862 3 15867 3 15871 3 15883 3 15888 3 15892 3 15906 3 15907 3 15912 3 15913 3 15914 3 15922 3 15949 3 15953 3 15954 3 15961 3 15965 3 15968 3 15979 3 15983 3 15986 3 15988 3 15990 3 16014 3 16022 3 16026 3 16038 3 16041 3 16047 3 16050 3 16056 3 16058 3 16071 3 16073 3 16087 3 16096 3 16104 3 16122 3 16123 3 16130 3 16154 3 16155 3 16167 3 16170 3 16173 3 16181 3 16186 3 16191 3 16206 3 16208 3 16211 3 16212 3 16216 3 16218 3 16232 3 16241 3 16244 3 16249 3 16258 3 16259 3 16264 3 16278 3 16282 3 16294 3 16301 3 16302 3 16306 3 16307 3 16308 3 16309 3 16312 3 16329 3 16337 3 16339 3 16343 3 16345 3 16346 3 16360 3 16369 3 16372 3 16373 3 16378 3 16384 3 16386 3 16394 3 16398 3 16405 3 16409 3 16414 3 16422 3 16434 3 16436 3 16441 3 16446 3 16449 3 16453 3 16456 3 16465 3 16470 3 16491 3 16496 3 16505 3 16509 3 16518 3 16522 3 16536 3 16540 3 16542 3 16543 3 16566 3 16567 3 16576 3 16585 3 16589 3 16596 3 16597 3 16598 3 16603 3 16604 3 16605 3 16619 3 16631 3 16635 3 16647 3 16651 3 16652 3 16654 3 16659 3 16669 3 16683 3 16688 3 16690 3 16694 3 16697 3 16700 3 16703 3 16712 3 16717 3 16721 3 16723 3 16724 3 16729 3 16732 3 16735 3 16740 3 16743 3 16757 3 16758 3 16768 3 16780 3 16784 3 16789 3 16791 3 16797 3 16800 3 16803 3 16805 3 16807 3 16808 3 16809 3 16821 3 16835 3 16839 3 16850 3 16852 3 16853 3 16854 3 16868 3 16881 3 16889 3 16909 3 16918 3 16921 3 16930 3 16935 3 16951 3 16963 3 16969 3 16975 3 16983 3 16989 3 17019 3 17023 3 17032 3 17034 3 17068 3 17070 3 17076 3 17091 3 17092 3 17097 3 17098 3 17110 3 17115 3 17117 3 17129 3 17130 3 17131 3 17141 3 17151 3 17161 3 17169 3 17189 3 17191 3 17196 3 17197 3 17199 3 17208 3 17221 3 17227 3 17233 3 17235 3 17236 3 17238 3 17239 3 17242 3 17251 3 17267 3 17268 3 17274 3 17278 3 17283 3 17292 3 17305 3 17309 3 17311 3 17319 3 17327 3 17333 3 17345 3 17351 3 17359 3 17379 3 17385 3 17391 3 17395 3 17418 3 17432 3 17438 3 17453 3 17455 3 17456 3 17459 3 17463 3 17468 3 17469 3 17470 3 17474 3 17477 3 17479 3 17482 3 17488 3 17492 3 17493 3 17497 3 17509 3 17529 3 17536 3 17544 3 17554 3 17556 3 17560 3 17566 3 17575 3 17586 3 17615 3 17648 3 17649 3 17650 3 17651 3 17658 3 17662 3 17675 3 17684 3 17695 3 17702 3 17709 3 17713 3 17716 3 17726 3 17727 3 17733 3 17737 3 17739 3 17754 3 17768 3 17775 3 17779 3 17780 3 17789 3 17799 3 17801 3 17805 3 17807 3 17808 3 17828 3 17830 3 17837 3 17839 3 17845 3 17858 3 17865 3 17875 3 17877 3 17898 3 17915 3 17917 3 17922 3 17928 3 17929 3 17934 3 17939 3 17944 3 17945 3 17960 3 17973 3 17975 3 17977 3 17986 3 17999 3 18003 3 18007 3 18019 3 18027 3 18028 3 18034 3 18038 3 18040 3 18042 3 18047 3 18051 3 18065 3 18070 3 18077 3 18081 3 18083 3 18086 3 18093 3 18094 3 18097 3 18098 3 18110 3 18114 3 18125 3 18135 3 18139 3 18153 3 18154 3 18179 3 18187 3 18190 3 18194 3 18199 3 18204 3 18205 3 18207 3 18227 3 18250 3 18254 3 18257 3 18263 3 18265 3 18271 3 18282 3 18283 3 18285 3 18304 3 18313 3 18327 3 18343 3 18345 3 18353 3 18354 3 18358 3 18362 3 18365 3 18366 3 18374 3 18375 3 18377 3 18383 3 18385 3 18402 3 18404 3 18405 3 18407 3 18416 3 18420 3 18427 3 18428 3 18430 3 18432 3 18438 3 18443 3 18446 3 18450 3 18457 3 18460 3 18461 3 18476 3 18480 3 18491 3 18498 3 18501 3 18511 3 18519 3 18520 3 18524 3 18525 3 18532 3 18534 3 18538 3 18571 3 18573 3 18581 3 18583 3 18584 3 18588 3 18592 3 18599 3 18611 3 18612 3 18622 3 18623 3 18629 3 18630 3 18633 3 18634 3 18644 3 18649 3 18662 3 18667 3 18671 3 18672 3 18676 3 18678 3 18690 3 18696 3 18700 3 18701 3 18712 3 18714 3 18715 3 18719 3 18721 3 18758 3 18760 3 18773 3 18774 3 18778 3 18779 3 18786 3 18798 3 18801 3 18803 3 18810 3 18815 3 18820 3 18825 3 18829 3 18830 3 18842 3 18845 3 18854 3 18857 3 18860 3 18863 3 18866 3 18867 3 18880 3 18896 3 18899 3 18902 3 18912 3 18920 3 18921 3 18928 3 18930 3 18950 3 18958 3 18960 3 18961 3 18964 3 18965 3 18978 3 19021 3 19027 3 19030 3 19031 3 19033 3 19036 3 19039 3 19042 3 19048 3 19056 3 19064 3 19066 3 19069 3 19070 3 19104 3 19125 3 19127 3 19131 3 19135 3 19137 3 19141 3 19159 3 19162 3 19165 3 19171 3 19172 3 19175 3 19176 3 19179 3 19193 3 19195 3 19208 3 19215 3 19223 3 19239 3 19251 3 19268 3 19270 3 19295 3 19296 3 19301 3 19305 3 19306 3 19317 3 19318 3 19331 3 19332 3 19337 3 19354 3 19357 3 19359 3 19364 3 19368 3 19376 3 19380 3 19381 3 19385 3 19387 3 19388 3 19409 3 19414 3 19419 3 19424 3 19427 3 19430 3 19432 3 19434 3 19435 3 19460 3 19463 3 19467 3 19469 3 19476 3 19478 3 19481 3 19482 3 19486 3 19494 3 19501 3 19507 3 19511 3 19517 3 19519 3 19523 3 19524 3 19526 3 19527 3 19528 3 19529 3 19531 3 19532 3 19566 3 19576 3 19577 3 19582 3 19587 3 19592 3 19594 3 19595 3 19601 3 19602 3 19604 3 19607 3 19611 3 19613 3 19614 3 19619 3 19621 3 19623 3 19632 3 19636 3 19649 3 19650 3 19655 3 19662 3 19663 3 19664 3 19694 3 19700 3 19709 3 19713 3 19723 3 19724 3 19725 3 19727 3 19730 3 19731 3 19735 3 19737 3 19745 3 19746 3 19751 3 19753 3 19754 3 19762 3 19765 3 19785 3 19789 3 19790 3 19791 3 19792 3 19803 3 19805 3 19812 3 19813 3 19820 3 19835 3 19836 3 19842 3 19843 3 19848 3 19855 3 19860 3 19867 3 19871 3 19872 3 19874 3 19880 3 19886 3 19887 3 19897 3 19898 3 19912 3 19914 3 19926 3 19931 3 19954 3 19958 3 19965 3 19969 3 19983 3 19988 3 19989 3 20006 3 20016 3 20019 3 20020 3 20023 3 20028 3 20030 3 20032 3 20037 3 20044 3 20047 3 20057 3 20058 3 20069 3 20076 3 20082 3 20083 3 20089 3 20093 3 20099 3 20102 3 20103 3 20104 3 20106 3 20107 3 20113 3 20121 3 20127 3 20128 3 20137 3 20161 3 20162 3 20164 3 20166 3 20171 3 20178 3 20180 3 20191 3 20198 3 20219 3 20222 3 20238 3 20239 3 20243 3 20246 3 20259 3 20262 3 20297 3 20298 3 20311 3 20314 3 20315 3 20320 3 20322 3 20323 3 20329 3 20340 3 20343 3 20355 3 20359 3 20360 3 20369 3 20370 3 20382 3 20383 3 20384 3 20388 3 20395 3 20407 3 20421 3 20430 3 20431 3 20438 3 20439 3 20465 3 20471 3 20484 3 20485 3 20495 3 20500 3 20507 3 20508 3 20513 3 20525 3 20527 3 20528 3 20558 3 20563 3 20571 3 20573 3 20588 3 20596 3 20598 3 20602 3 20627 3 20653 3 20673 3 20675 3 20685 3 20709 3 20710 3 20715 3 20720 3 20724 3 20725 3 20727 3 20728 3 20731 3 20734 3 20736 3 20740 3 20742 3 20752 3 20753 3 20754 3 20762 3 20763 3 20771 3 20772 3 20780 3 20781 3 20782 3 20785 3 20795 3 20796 3 20807 3 20808 3 20816 3 20819 3 20820 3 20827 3 20847 3 20851 3 20856 3 20861 3 20869 3 20878 3 20901 3 20909 3 20910 3 20913 3 20926 3 20927 3 20930 3 20933 3 20936 3 20952 3 20953 3 20959 3 20960 3 20962 3 20977 3 20982 3 20983 3 20985 3 20987 3 20991 3 21000 3 21001 3 21003 3 21009 3 21020 3 21023 3 21040 3 21053 3 21055 3 21057 3 21064 3 21069 3 21085 3 21091 3 21092 3 21099 3 21101 3 21103 3 21113 3 21114 3 21118 3 21124 3 21127 3 21129 3 21141 3 21146 3 21155 3 21166 3 21173 3 21182 3 21195 3 21196 3 21199 3 21205 3 21209 3 21214 3 21215 3 21223 3 21229 3 21236 3 21239 3 21240 3 21242 3 21243 3 21247 3 21250 3 21254 3 21264 3 21265 3 21267 3 21268 3 21277 3 21284 3 21287 3 21293 3 21298 3 21306 3 21307 3 21309 3 21311 3 21317 3 21318 3 21344 3 21346 3 21364 3 21365 3 21367 3 21371 3 21372 3 21382 3 21383 3 21400 3 21402 3 21404 3 21409 3 21417 3 21425 3 21431 3 21432 3 21436 3 21441 3 21446 3 21450 3 21462 3 21463 3 21466 3 21469 3 21473 3 21478 3 21479 3 21491 3 21495 3 21496 3 21498 3 21502 3 21505 3 21508 3 21512 3 21532 3 21535 3 21556 3 21561 3 21565 3 21570 3 21576 3 21585 3 21586 3 21590 3 21595 3 21596 3 21598 3 21599 3 21602 3 21606 3 21609 3 21611 3 21616 3 21617 3 21622 3 21623 3 21625 3 21626 3 21633 3 21641 3 21655 3 21658 3 21661 3 21669 3 21687 3 21702 3 21706 3 21714 3 21718 3 21725 3 21729 3 21731 3 21734 3 21741 3 21754 3 21767 3 21779 3 21780 3 21788 3 21793 3 21797 3 21798 3 21806 3 21812 3 21813 3 21818 3 21824 3 21825 3 21827 3 21836 3 21845 3 21861 3 21865 3 21866 3 21879 3 21891 3 21915 3 21916 3 21928 3 21938 3 21942 3 21950 3 21955 3 21959 3 21965 3 21968 3 21973 3 21975 3 21983 3 21985 3 21991 3 21992 3 22001 3 22003 3 22013 3 22016 3 22019 3 22022 3 22036 3 22044 3 22046 3 22048 3 22049 3 22050 3 22051 3 22055 3 22057 3 22074 3 22078 3 22088 3 22089 3 22099 3 22105 3 22108 3 22109 3 22118 3 22120 3 22123 3 22124 3 22137 3 22153 3 22170 3 22177 3 22186 3 22196 3 22204 3 22206 3 22207 3 22208 3 22216 3 22219 3 22228 3 22233 3 22235 3 22242 3 22244 3 22249 3 22257 3 22259 3 22260 3 22264 3 22267 3 22269 3 22270 3 22273 3 22279 3 22282 3 22284 3 22287 3 22291 3 22296 3 22301 3 22311 3 22314 3 22316 3 22318 3 22320 3 22323 3 22331 3 22332 3 22337 3 22338 3 22339 3 22346 3 22350 3 22357 3 22363 3 22365 3 22368 3 22384 3 22393 3 22401 3 22402 3 22437 3 22438 3 22447 3 22454 3 22461 3 22485 3 22502 3 22510 3 22521 3 22523 3 22533 3 22538 3 22545 3 22546 3 22549 3 22555 3 22556 3 22557 3 22564 3 22565 3 22573 3 22574 3 22575 3 22576 3 22593 3 22596 3 22599 3 22601 3 22602 3 22604 3 22606 3 22612 3 22629 3 22643 3 22647 3 22650 3 22654 3 22661 3 22662 3 22668 3 22675 3 22682 3 22686 3 22696 3 22701 3 22703 3 22708 3 22723 3 22725 3 22734 3 22736 3 22739 3 22742 3 22758 3 22761 3 22767 3 22774 3 22775 3 22792 3 22805 3 22806 3 22807 3 22810 3 22814 3 22815 3 22817 3 22818 3 22836 3 22838 3 22840 3 22864 3 22869 3 22870 3 22881 3 22883 3 22886 3 22897 3 22900 3 22905 3 22913 3 22914 3 22928 3 22929 3 22931 3 22933 3 22938 3 22944 3 22946 3 22950 3 22953 3 22968 3 22980 3 22987 3 22988 3 22990 3 22993 3 22995 3 22998 3 23000 3 23004 3 23020 3 23022 3 23027 3 23033 3 23034 3 23042 3 23045 3 23051 3 23053 3 23057 3 23077 3 23082 3 23086 3 23087 3 23098 3 23099 3 23100 3 23102 3 23107 3 23121 3 23123 3 23125 3 23129 3 23138 3 23139 3 23150 3 23162 3 23165 3 23173 3 23177 3 23185 3 23189 3 23194 3 23200 3 23207 3 23210 3 23217 3 23221 3 23223 3 23228 3 23230 3 23235 3 23242 3 23254 3 23259 3 23261 3 23269 3 23271 3 23278 3 23281 3 23292 3 23297 3 23311 3 23313 3 23322 3 23323 3 23345 3 23352 3 23353 3 23360 3 23364 3 23368 3 23371 3 23372 3 23374 3 23381 3 23382 3 23385 3 23393 3 23406 3 23411 3 23414 3 23415 3 23425 3 23427 3 23434 3 23439 3 23446 3 23454 3 23458 3 23461 3 23463 3 23465 3 23477 3 23484 3 23491 3 23505 3 23513 3 23520 3 23527 3 23529 3 23530 3 23533 3 23551 3 23564 3 23565 3 23573 3 23591 3 23592 3 23594 3 23598 3 23601 3 23625 3 23626 3 23627 3 23635 3 23637 3 23638 3 23645 3 23653 3 23659 3 23674 3 23679 3 23682 3 23702 3 23720 3 23728 3 23737 3 23738 3 23740 3 23758 3 23765 3 23766 3 23770 3 23771 3 23774 3 23780 3 23782 3 23789 3 23793 3 23798 3 23802 3 23804 3 23808 3 23809 3 23812 3 23819 3 23834 3 23835 3 23839 3 23850 3 23861 3 23865 3 23871 3 23878 3 23880 3 23888 3 23900 3 23903 3 23907 3 23909 3 23915 3 23922 3 23923 3 23926 3 23931 3 23932 3 23933 3 23936 3 23954 3 23958 3 23962 3 23965 3 23972 3 23984 3 23986 3 23994 3 24000 3 24004 3 24013 3 24018 3 24021 3 24025 3 24027 3 24031 3 24051 3 24067 3 24074 3 24076 3 24080 3 24083 3 24092 3 24102 3 24123 3 24144 3 24146 3 24148 3 24159 3 24162 3 24174 3 24182 3 24187 3 24194 3 24196 3 24200 3 24201 3 24202 3 24207 3 24216 3 24223 3 24226 3 24228 3 24242 3 24247 3 24250 3 24257 3 24261 3 24262 3 24276 3 24300 3 24302 3 24307 3 24309 3 24315 3 24317 3 24321 3 24328 3 24329 3 24331 3 24332 3 24340 3 24347 3 24355 3 24358 3 24366 3 24370 3 24376 3 24379 3 24382 3 24389 3 24394 3 24397 3 24403 3 24416 3 24417 3 24427 3 24430 3 24437 3 24444 3 24447 3 24449 3 24457 3 24468 3 24481 3 24490 3 24491 3 24492 3 24493 3 24494 3 24504 3 24505 3 24510 3 24513 3 24523 3 24525 3 24529 3 24530 3 24539 3 24541 3 24549 3 24551 3 24556 3 24561 3 24564 3 24566 3 24574 3 24575 3 24582 3 24591 3 24592 3 24599 3 24601 3 24602 3 24609 3 24630 3 24631 3 24641 3 24651 3 24652 3 24654 3 24661 3 24673 3 24675 3 24676 3 24682 3 24687 3 24694 3 24695 3 24720 3 24733 3 24740 3 24752 3 24753 3 24756 3 24758 3 24761 3 24762 3 24765 3 24768 3 24773 3 24778 3 24785 3 24791 3 24797 3 24804 3 24819 3 24824 3 24829 3 24834 3 24835 3 24842 3 24844 3 24851 3 24852 3 24855 3 24882 3 24892 3 24899 3 24901 3 24902 3 24908 3 24922 3 24925 3 24927 3 24934 3 24935 3 24938 3 24940 3 24941 3 24942 3 24943 3 24952 3 24984 3 24993 3 24999 3 25003 3 25012 3 25021 3 25024 3 25038 3 25042 3 25051 3 25053 3 25056 3 25062 3 25063 3 25069 3 25075 3 25076 3 25091 3 25096 3 25104 3 25105 3 25115 3 25117 3 25125 3 25128 3 25129 3 25133 3 25137 3 25138 3 25147 3 25159 3 25160 3 25164 3 25177 3 25178 3 25181 3 25184 3 25186 3 25189 3 25190 3 25206 3 25220 3 25254 3 25255 3 25265 3 25270 3 25286 3 25300 3 25303 3 25323 3 25330 3 25335 3 25339 3 25340 3 25345 3 25351 3 25355 3 25366 3 25370 3 25379 3 25385 3 25386 3 25389 3 25392 3 25393 3 25404 3 25411 3 25414 3 25415 3 25421 3 25435 3 25442 3 25445 3 25448 3 25453 3 25458 3 25462 3 25484 3 25488 3 25494 3 25502 3 25506 3 25510 3 25514 3 25538 3 25542 3 25543 3 25549 3 25555 3 25568 3 25571 3 25575 3 25579 3 25584 3 25590 3 25594 3 25599 3 25604 3 25610 3 25612 3 25613 3 25618 3 25622 3 25636 3 25642 3 25648 3 25653 3 25655 3 25662 3 25669 3 25670 3 25674 3 25678 3 25687 3 25705 3 25714 3 25718 3 25732 3 25741 3 25756 3 25763 3 25766 3 25775 3 25787 3 25791 3 25801 3 25803 3 25807 3 25808 3 25811 3 25836 3 25850 3 25873 3 25876 3 25885 3 25886 3 25899 3 25907 3 25909 3 25914 3 25916 3 25918 3 25949 3 25962 3 25969 3 25974 3 25978 3 25991 3 25996 3 25999 3 26003 3 26008 3 26010 3 26031 3 26034 3 26037 3 26040 3 26041 3 26043 3 26050 3 26057 3 26060 3 26062 3 26063 3 26076 3 26086 3 26087 3 26096 3 26108 3 26116 3 26117 3 26118 3 26121 3 26122 3 26137 3 26146 3 26149 3 26153 3 26164 3 26170 3 26172 3 26177 3 26188 3 26189 3 26198 3 26207 3 26208 3 26214 3 26216 3 26224 3 26234 3 26236 3 26238 3 26240 3 26245 3 26246 3 26252 3 26259 3 26261 3 26263 3 26266 3 26273 3 26275 3 26277 3 26278 3 26280 3 26302 3 26306 3 26308 3 26312 3 26351 3 26353 3 26361 3 26373 3 26390 3 26393 3 26394 3 26397 3 26413 3 26414 3 26416 3 26417 3 26421 3 26431 3 26440 3 26450 3 26451 3 26455 3 26470 3 26472 3 26489 3 26492 3 26504 3 26508 3 26530 3 26531 3 26532 3 26535 3 26556 3 26559 3 26566 3 26570 3 26577 3 26585 3 26590 3 26591 3 26598 3 26600 3 26604 3 26605 3 26617 3 26618 3 26619 3 26628 3 26649 3 26656 3 26667 3 26668 3 26680 3 26682 3 26684 3 26689 3 26690 3 26695 3 26704 3 26708 3 26715 3 26720 3 26725 3 26741 3 26745 3 26746 3 26747 3 26753 3 26756 3 26766 3 26767 3 26768 3 26771 3 26779 3 26781 3 26783 3 26789 3 26791 3 26793 3 26794 3 26811 3 26817 3 26828 3 26839 3 26848 3 26849 3 26853 3 26874 3 26890 3 26905 3 26908 3 26916 3 26920 3 26928 3 26930 3 26941 3 26945 3 26960 3 26962 3 26973 3 26984 3 26994 3 26996 3 27001 3 27008 3 27010 3 27013 3 27033 3 27037 3 27038 3 27048 3 27049 3 27058 3 27073 3 27074 3 27082 3 27089 3 27091 3 27092 3 27095 3 27098 3 27099 3 27119 3 27126 3 27131 3 27132 3 27135 3 27136 3 27139 3 27145 3 27156 3 27157 3 27160 3 27172 3 27173 3 27174 3 27187 3 27190 3 27193 3 27198 3 27206 3 27208 3 27212 3 27214 3 27224 3 27225 3 27227 3 27234 3 27239 3 27244 3 27246 3 27253 3 27255 3 27261 3 27264 3 27271 3 27292 3 27294 3 27296 3 27313 3 27316 3 27318 3 27321 3 27334 3 27337 3 27343 3 27345 3 27346 3 27352 3 27357 3 27383 3 27390 3 27398 3 27421 3 27422 3 27424 3 27428 3 27432 3 27438 3 27441 3 27444 3 27451 3 27452 3 27455 3 27465 3 27470 3 27479 3 27486 3 27494 3 27498 3 27505 3 27512 3 27518 3 27519 3 27520 3 27533 3 27547 3 27557 3 27584 3 27593 3 27595 3 27598 3 27604 3 27606 3 27613 3 27614 3 27625 3 27642 3 27649 3 27653 3 27655 3 27657 3 27664 3 27669 3 27671 3 27672 3 27708 3 27711 3 27717 3 27721 3 27725 3 27727 3 27729 3 27730 3 27733 3 27743 3 27756 3 27764 3 27765 3 27776 3 27782 3 27797 3 27806 3 27809 3 27818 3 27820 3 27822 3 27827 3 27846 3 27848 3 27854 3 27856 3 27864 3 27870 3 27875 3 27879 3 27880 3 27884 3 27902 3 27905 3 27914 3 27929 3 27931 3 27935 3 27938 3 27939 3 27942 3 27943 3 27945 3 27946 3 27948 3 27951 3 27960 3 27961 3 27989 3 27990 3 27991 3 27998 3 27999 3 28002 3 28003 3 28006 3 28007 3 28009 3 28011 3 28014 3 28023 3 28028 3 28061 3 28062 3 28066 3 28067 3 28070 3 28086 3 28088 3 28089 3 28095 3 28101 3 28111 3 28115 3 28120 3 28129 3 28131 3 28132 3 28139 3 28142 3 28145 3 28146 3 28155 3 28170 3 28173 3 28184 3 28188 3 28189 3 28191 3 28197 3 28201 3 28204 3 28206 3 28219 3 28221 3 28236 3 28238 3 28240 3 28242 3 28246 3 28250 3 28252 3 28253 3 28256 3 28259 3 28262 3 28266 3 28281 3 28299 3 28304 3 28307 3 28308 3 28315 3 28319 3 28321 3 28324 3 28325 3 28327 3 28334 3 28339 3 28340 3 28348 3 28352 3 28355 3 28357 3 28363 3 28372 3 28381 3 28405 3 28419 3 28425 3 28427 3 28431 3 28441 3 28443 3 28447 3 28454 3 28460 3 28471 3 28474 3 28482 3 28492 3 28494 3 28502 3 28515 3 28520 3 28530 3 28531 3 28538 3 28552 3 28562 3 28564 3 28570 3 28578 3 28579 3 28580 3 28583 3 28594 3 28600 3 28602 3 28608 3 28622 3 28631 3 28632 3 28641 3 28651 3 28652 3 28657 3 28660 3 28666 3 28685 3 28690 3 28702 3 28706 3 28707 3 28725 3 28736 3 28737 3 28750 3 28751 3 28766 3 28767 3 28769 3 28779 3 28784 3 28789 3 28791 3 28794 3 28798 3 28807 3 28808 3 28813 3 28819 3 28821 3 28826 3 28837 3 28844 3 28849 3 28852 3 28861 3 28863 3 28867 3 28872 3 28874 3 28879 3 28901 3 28908 3 28918 3 28937 3 28945 3 28946 3 28951 3 28968 3 28969 3 28970 3 28972 3 28974 3 28983 3 28985 3 28990 3 28991 3 28995 3 29001 3 29003 3 29009 3 29012 3 29015 3 29025 3 29028 3 29032 3 29033 3 29034 3 29035 3 29040 3 29041 3 29055 3 29059 3 29064 3 29065 3 29085 3 29089 3 29091 3 29092 3 29094 3 29098 3 29099 3 29102 3 29103 3 29104 3 29114 3 29120 3 29138 3 29147 3 29148 3 29153 3 29155 3 29167 3 29170 3 29182 3 29189 3 29191 3 29192 3 29196 3 29197 3 29205 3 29207 3 29209 3 29211 3 29222 3 29223 3 29227 3 29235 3 29236 3 29239 3 29245 3 29246 3 29255 3 29261 3 29264 3 29266 3 29267 3 29270 3 29271 3 29274 3 29289 3 29291 3 29300 3 29307 3 29313 3 29314 3 29321 3 29328 3 29330 3 29343 3 29344 3 29346 3 29350 3 29351 3 29355 3 29356 3 29357 3 29361 3 29368 3 29369 3 29389 3 29390 3 29393 3 29394 3 29403 3 29411 3 29413 3 29415 3 29423 3 29432 3 29445 3 29452 3 29462 3 29463 3 29464 3 29473 3 29475 3 29476 3 29479 3 29487 3 29495 3 29498 3 29505 3 29509 3 29514 3 29515 3 29516 3 29526 3 29528 3 29534 3 29544 3 29593 3 29594 3 29595 3 29597 3 29598 3 29605 3 29607 3 29615 3 29617 3 29619 3 29622 3 29630 3 29638 3 29639 3 29644 3 29653 3 29654 3 29656 3 29660 3 29661 3 29663 3 29678 3 29679 3 29694 3 29698 3 29702 3 29705 3 29713 3 29716 3 29718 3 29720 3 29734 3 29757 3 29771 3 29781 3 29787 3 29793 3 29796 3 29798 3 29804 3 29806 3 29812 3 29820 3 29822 3 29828 3 29837 3 29839 3 29848 3 29859 3 29862 3 29868 3 29876 3 29888 3 29889 3 29890 3 29925 3 29928 3 29930 3 29932 3 29934 3 29954 3 29978 3 29986 3 30000 3 30003 3 30014 3 30035 3 30042 3 30051 3 30058 3 30065 3 30075 3 30084 3 30098 3 30100 3 30101 3 30108 3 30109 3 30114 3 30116 3 30120 3 30144 3 30145 3 30149 3 30150 3 30152 3 30156 3 30169 3 30171 3 30173 3 30174 3 30178 3 30179 3 30216 3 30221 3 30223 3 30232 3 30238 3 30241 3 30242 3 30250 3 30253 3 30254 3 30255 3 30256 3 30257 3 30272 3 30275 3 30279 3 30283 3 30288 3 30291 3 30292 3 30296 3 30301 3 30305 3 30312 3 30313 3 30314 3 30321 3 30323 3 30331 3 30335 3 30337 3 30338 3 30343 3 30348 3 30350 3 30361 3 30362 3 30364 3 30366 3 30370 3 30372 3 30373 3 30375 3 30379 3 30380 3 30389 3 30394 3 30397 3 30412 3 30421 3 30422 3 30433 3 30435 3 30444 3 30464 3 30466 3 30467 3 30468 3 30472 3 30481 3 30495 3 30502 3 30510 3 30514 3 30516 3 30518 3 30521 3 30523 3 30530 3 30537 3 30538 3 30539 3 30540 3 30543 3 30549 3 30554 3 30565 3 30575 3 30581 3 30585 3 30586 3 30588 3 30599 3 30603 3 30613 3 30618 3 30619 3 30621 3 30622 3 30623 3 30624 3 30625 3 30630 3 30631 3 30637 3 30646 3 30659 3 30672 3 30682 3 30694 3 30697 3 30700 3 30704 3 30706 3 30713 3 30723 3 30738 3 30743 3 30744 3 30746 3 30750 3 30752 3 30759 3 30762 3 30771 3 30780 3 30788 3 30793 3 30802 3 30803 3 30804 3 30814 3 30815 3 30817 3 30819 3 30825 3 30827 3 30830 3 30843 3 30847 3 30848 3 30856 3 30857 3 30871 3 30874 3 30881 3 30887 3 30889 3 30893 3 30905 3 30909 3 30911 3 30912 3 30915 3 30935 3 30938 3 30939 3 30944 3 30947 3 30949 3 30975 3 31003 3 31009 3 31018 3 31022 3 31026 3 31032 3 31037 3 31044 3 31046 3 31047 3 31052 3 31064 3 31067 3 31070 3 31072 3 31079 3 31080 3 31090 3 31094 3 31097 3 31103 3 31107 3 31108 3 31110 3 31112 3 31122 3 31127 3 31136 3 31138 3 31155 3 31159 3 31161 3 31162 3 31164 3 31170 3 31174 3 31177 3 31182 3 31189 3 31206 3 31227 3 31228 3 31242 3 31244 3 31265 3 31289 3 31291 3 31303 3 31314 3 31325 3 31327 3 31336 3 31337 3 31356 3 31365 3 31367 3 31371 3 31379 3 31384 3 31392 3 31394 3 31397 3 31403 3 31413 3 31416 3 31418 3 31435 3 31448 3 31451 3 31453 3 31455 3 31473 3 31475 3 31476 3 31481 3 31483 3 31491 3 31496 3 31501 3 31507 3 31516 3 31524 3 31525 3 31531 3 31535 3 31538 3 31549 3 31550 3 31559 3 31568 3 31571 3 31585 3 31590 3 31597 3 31601 3 31602 3 31617 3 31623 3 31628 3 31642 3 31652 3 31653 3 31656 3 31664 3 31667 3 31670 3 31672 3 31681 3 31688 3 31690 3 31695 3 31702 3 31708 3 31717 3 31740 3 31742 3 31744 3 31745 3 31746 3 31762 3 31769 3 31772 3 31792 3 31805 3 31815 3 31817 3 31818 3 31821 3 31826 3 31827 3 31835 3 31842 3 31845 3 31854 3 31866 3 31876 3 31880 3 31892 3 31908 3 31914 3 31916 3 31922 3 31927 3 31929 3 31934 3 31935 3 31942 3 31945 3 31951 3 31953 3 31973 3 31986 3 31987 3 32023 3 32024 3 32035 3 32047 3 32052 3 32056 3 32066 3 32070 3 32071 3 32083 3 32084 3 32096 3 32097 3 32099 3 32110 3 32123 3 32129 3 32134 3 32147 3 32152 3 32173 3 32174 3 32178 3 32183 3 32196 3 32202 3 32204 3 32216 3 32217 3 32222 3 32225 3 32242 3 32244 3 32245 3 32256 3 32265 3 32266 3 32274 3 32276 3 32278 3 32285 3 32291 3 32299 3 32301 3 32303 3 32306 3 32310 3 32317 3 32318 3 32319 3 32326 3 32336 3 32338 3 32341 3 32348 3 32358 3 32359 3 32366 3 32369 3 32375 3 32377 3 32398 3 32406 3 32414 3 32416 3 32424 3 32426 3 32427 3 32439 3 32445 3 32446 3 32449 3 32455 3 32459 3 32489 3 32509 3 32518 3 32519 3 32522 3 32529 3 32536 3 32544 3 32546 3 32550 3 32552 3 32561 3 32576 3 32578 3 32583 3 32584 3 32587 3 32601 3 32606 3 32608 3 32609 3 32617 3 32626 3 32657 3 32661 3 32665 3 32668 3 32674 3 32676 3 32678 3 32685 3 32688 3 32699 3 32702 3 32716 3 32718 3 32720 3 32739 3 32745 3 32749 3 32750 3 32753 3 32756 3 32758 3 32763 3 32767 3 32777 3 32779 3 32780 3 32781 3 32782 3 32787 3 32792 3 32802 3 32812 3 32815 3 32820 3 32821 3 32823 3 32825 3 32827 3 32842 3 32851 3 32855 3 32859 3 32860 3 32892 3 32893 3 32900 3 32902 3 32924 3 32931 3 32934 3 32942 3 32945 3 32998 3 33009 3 33017 3 33024 3 33031 3 33032 3 33036 3 33042 3 33050 3 33062 3 33064 3 33072 3 33073 3 33079 3 33093 3 33095 3 33099 3 33106 3 33113 3 33116 3 33118 3 33121 3 33124 3 33129 3 33130 3 33134 3 33135 3 33136 3 33137 3 33140 3 33143 3 33147 3 33149 3 33155 3 33159 3 33162 3 33186 3 33187 3 33198 3 33202 3 33203 3 33221 3 33233 3 33236 3 33247 3 33259 3 33261 3 33266 3 33269 3 33275 3 33276 3 33279 3 33282 3 33287 3 33289 3 33291 3 33292 3 33294 3 33295 3 33297 3 33301 3 33302 3 33309 3 33311 3 33312 3 33315 3 33322 3 33323 3 33324 3 33325 3 33335 3 33342 3 33344 3 33358 3 33360 3 33370 3 33371 3 33374 3 33375 3 33377 3 33389 3 33392 3 33404 3 33405 3 33430 3 33433 3 33437 3 33443 3 33459 3 33460 3 33465 3 33471 3 33474 3 33476 3 33478 3 33485 3 33491 3 33507 3 33509 3 33513 3 33523 3 33542 3 33552 3 33560 3 33567 3 33569 3 33576 3 33577 3 33581 3 33586 3 33595 3 33597 3 33605 3 33614 3 33628 3 33634 3 33635 3 33640 3 33655 3 33663 3 33665 3 33670 3 33693 3 33694 3 33696 3 33704 3 33705 3 33707 3 33712 3 33720 3 33724 3 33736 3 33737 3 33746 3 33747 3 33755 3 33756 3 33759 3 33761 3 33762 3 33764 3 33766 3 33769 3 33772 3 33777 3 33778 3 33790 3 33791 3 33792 3 33794 3 33805 3 33808 3 33817 3 33822 3 33830 3 33831 3 33835 3 33841 3 33843 3 33850 3 33859 3 33870 3 33876 3 33883 3 33886 3 33887 3 33898 3 33904 3 33906 3 33907 3 33910 3 33929 3 33934 3 33938 3 33946 3 33947 3 33948 3 33955 3 33956 3 33959 3 33970 3 33976 3 33983 3 33985 3 33993 3 33994 3 34004 3 34006 3 34032 3 34038 3 34042 3 34060 3 34064 3 34085 3 34097 3 34111 3 34134 3 34136 3 34141 3 34144 3 34149 3 34158 3 34164 3 34169 3 34171 3 34180 3 34183 3 34191 3 34196 3 34198 3 34201 3 34204 3 34205 3 34218 3 34221 3 34222 3 34224 3 34228 3 34230 3 34238 3 34251 3 34264 3 34279 3 34288 3 34290 3 34291 3 34292 3 34296 3 34321 3 34325 3 34334 3 34338 3 34341 3 34344 3 34355 3 34366 3 34371 3 34373 3 34376 3 34385 3 34390 3 34392 3 34395 3 34400 3 34402 3 34407 3 34419 3 34424 3 34430 3 34438 3 34440 3 34441 3 34449 3 34480 3 34482 3 34486 3 34495 3 34496 3 34508 3 34513 3 34515 3 34517 3 34521 3 34524 3 34526 3 34531 3 34536 3 34538 3 34546 3 34560 3 34577 3 34583 3 34586 3 34588 3 34594 3 34597 3 34610 3 34611 3 34614 3 34615 3 34628 3 34630 3 34637 3 34646 3 34647 3 34653 3 34658 3 34662 3 34670 3 34675 3 34676 3 34677 3 34682 3 34688 3 34690 3 34698 3 34703 3 34704 3 34708 3 34709 3 34710 3 34715 3 34731 3 34735 3 34737 3 34750 3 34751 3 34752 3 34753 3 34755 3 34758 3 34766 3 34769 3 34794 3 34809 3 34811 3 34813 3 34824 3 34825 3 34836 3 34839 3 34840 3 34843 3 34852 3 34853 3 34860 3 34863 3 34864 3 34875 3 34882 3 34883 3 34884 3 34887 3 34889 3 34890 3 34893 3 34895 3 34896 3 34911 3 34929 3 34936 3 34941 3 34943 3 34944 3 34946 3 34948 3 34951 3 34955 3 34958 3 34964 3 34966 3 34971 3 34972 3 34975 3 34980 3 34983 3 35000 3 35001 3 35015 3 35024 3 35036 3 35048 3 35051 3 35056 3 35074 3 35091 3 35105 3 35107 3 35108 3 35109 3 35115 3 35124 3 35135 3 35141 3 35151 3 35152 3 35174 3 35178 3 35185 3 35187 3 35194 3 35198 3 35210 3 35223 3 35225 3 35226 3 35231 3 35233 3 35237 3 35247 3 35249 3 35256 3 35257 3 35259 3 35260 3 35263 3 35264 3 35275 3 35276 3 35293 3 35295 3 35302 3 35303 3 35310 3 35314 3 35315 3 35326 3 35348 3 35350 3 35354 3 35355 3 35363 3 35368 3 35369 3 35376 3 35390 3 35402 3 35409 3 35411 3 35421 3 35424 3 35432 3 35433 3 35448 3 35464 3 35465 3 35474 3 35476 3 35477 3 35485 3 35492 3 35499 3 35500 3 35501 3 35505 3 35508 3 35515 3 35519 3 35526 3 35527 3 35531 3 35532 3 35534 3 35544 3 35551 3 35567 3 35579 3 35588 3 35589 3 35599 3 35604 3 35614 3 35626 3 35638 3 35642 3 35645 3 35648 3 35651 3 35662 3 35665 3 35672 3 35675 3 35680 3 35681 3 35684 3 35695 3 35700 3 35701 3 35703 3 35704 3 35707 3 35711 3 35714 3 35719 3 35723 3 35724 3 35726 3 35727 3 35733 3 35734 3 35741 3 35744 3 35749 3 35750 3 35755 3 35779 3 35787 3 35791 3 35797 3 35816 3 35831 3 35833 3 35837 3 35846 3 35847 3 35850 3 35851 3 35856 3 35859 3 35860 3 35869 3 35873 3 35874 3 35884 3 35890 3 35894 3 35896 3 35904 3 35915 3 35920 3 35925 3 35926 3 35928 3 35935 3 35938 3 35940 3 35944 3 35945 3 35953 3 35959 3 35961 3 35963 3 35972 3 35982 3 35986 3 35991 3 35992 3 35993 3 35995 3 35999 3 36004 3 36007 3 36008 3 36012 3 36023 3 36039 3 36040 3 36043 3 36047 3 36048 3 36066 3 36070 3 36097 3 36099 3 36101 3 36104 3 36107 3 36149 3 36155 3 36158 3 36167 3 36168 3 36169 3 36170 3 36175 3 36179 3 36191 3 36193 3 36194 3 36196 3 36200 3 36209 3 36213 3 36217 3 36223 3 36241 3 36250 3 36260 3 36261 3 36270 3 36273 3 36278 3 36289 3 36293 3 36305 3 36310 3 36338 3 36343 3 36350 3 36351 3 36365 3 36369 3 36372 3 36414 3 36428 3 36431 3 36446 3 36458 3 36460 3 36462 3 36466 3 36469 3 36473 3 36481 3 36485 3 36486 3 36495 3 36498 3 36504 3 36513 3 36516 3 36517 3 36524 3 36545 3 36551 3 36553 3 36555 3 36565 3 36568 3 36578 3 36593 3 36599 3 36606 3 36615 3 36616 3 36620 3 36625 3 36626 3 36634 3 36637 3 36640 3 36643 3 36653 3 36672 3 36678 3 36680 3 36682 3 36690 3 36692 3 36699 3 36718 3 36720 3 36723 3 36724 3 36725 3 36727 3 36728 3 36741 3 36743 3 36749 3 36752 3 36763 3 36764 3 36768 3 36802 3 36807 3 36809 3 36811 3 36812 3 36826 3 36836 3 36837 3 36852 3 36854 3 36858 3 36871 3 36872 3 36893 3 36896 3 36905 3 36907 3 36908 3 36910 3 36916 3 36919 3 36926 3 36929 3 36930 3 36932 3 36938 3 36939 3 36964 3 36969 3 36974 3 36975 3 36978 3 36985 3 36990 3 36995 3 36996 3 37003 3 37008 3 37009 3 37011 3 37021 3 37030 3 37033 3 37034 3 37039 3 37040 3 37050 3 37054 3 37072 3 37074 3 37076 3 37082 3 37084 3 37091 3 37108 3 37114 3 37118 3 37119 3 37128 3 37130 3 37133 3 37138 3 37140 3 37144 3 37160 3 37171 3 37183 3 37214 3 37223 3 37232 3 37243 3 37244 3 37251 3 37267 3 37274 3 37290 3 37294 3 37296 3 37299 3 37300 3 37301 3 37305 3 37313 3 37322 3 37330 3 37340 3 37352 3 37375 3 37378 3 37382 3 37393 3 37396 3 37399 3 37401 3 37409 3 37421 3 37423 3 37425 3 37435 3 37448 3 37449 3 37451 3 37460 3 37465 3 37468 3 37471 3 37473 3 37481 3 37492 3 37505 3 37509 3 37515 3 37516 3 37524 3 37539 3 37542 3 37543 3 37558 3 37567 3 37570 3 37572 3 37575 3 37582 3 37585 3 37594 3 37600 3 37605 3 37606 3 37611 3 37616 3 37617 3 37627 3 37632 3 37641 3 37644 3 37647 3 37652 3 37654 3 37657 3 37667 3 37672 3 37677 3 37688 3 37692 3 37728 3 37730 3 37735 3 37747 3 37748 3 37752 3 37780 3 37785 3 37805 3 37810 3 37811 3 37812 3 37815 3 37816 3 37818 3 37819 3 37823 3 37843 3 37851 3 37852 3 37866 3 37871 3 37873 3 37875 3 37884 3 37890 3 37895 3 37897 3 37900 3 37912 3 37916 3 37923 3 37924 3 37932 3 37942 3 37967 3 37970 3 37979 3 37980 3 37983 3 37988 3 37995 3 37997 3 38007 3 38012 3 38014 3 38015 3 38017 3 38018 3 38019 3 38026 3 38030 3 38044 3 38054 3 38058 3 38069 3 38077 3 38078 3 38081 3 38083 3 38101 3 38104 3 38109 3 38115 3 38116 3 38118 3 38119 3 38121 3 38124 3 38127 3 38133 3 38140 3 38144 3 38146 3 38158 3 38164 3 38166 3 38175 3 38182 3 38188 3 38192 3 38203 3 38210 3 38213 3 38214 3 38216 3 38233 3 38236 3 38242 3 38245 3 38247 3 38249 3 38257 3 38258 3 38262 3 38264 3 38275 3 38279 3 38289 3 38294 3 38298 3 38302 3 38307 3 38310 3 38315 3 38316 3 38321 3 38323 3 38327 3 38346 3 38359 3 38360 3 38369 3 38371 3 38375 3 38392 3 38397 3 38398 3 38410 3 38418 3 38419 3 38443 3 38452 3 38454 3 38466 3 38469 3 38481 3 38494 3 38526 3 38534 3 38540 3 38542 3 38546 3 38556 3 38561 3 38575 3 38576 3 38580 3 38581 3 38587 3 38596 3 38603 3 38605 3 38609 3 38616 3 38618 3 38629 3 38645 3 38650 3 38663 3 38666 3 38671 3 38675 3 38682 3 38719 3 38722 3 38723 3 38729 3 38736 3 38739 3 38743 3 38745 3 38750 3 38758 3 38760 3 38772 3 38778 3 38781 3 38784 3 38786 3 38790 3 38802 3 38809 3 38816 3 38818 3 38819 3 38834 3 38840 3 38844 3 38846 3 38854 3 38862 3 38870 3 38871 3 38873 3 38881 3 38893 3 38901 3 38907 3 38917 3 38935 3 38943 3 38944 3 38948 3 38950 3 38952 3 38961 3 38986 3 38994 3 38995 3 38997 3 39000 3 39003 3 39021 3 39028 3 39033 3 39037 3 39053 3 39056 3 39060 3 39061 3 39072 3 39074 3 39079 3 39085 3 39091 3 39093 3 39095 3 39107 3 39110 3 39111 3 39118 3 39119 3 39131 3 39132 3 39133 3 39137 3 39139 3 39146 3 39183 3 39184 3 39185 3 39190 3 39200 3 39202 3 39218 3 39229 3 39248 3 39253 3 39254 3 39266 3 39267 3 39268 3 39283 3 39295 3 39300 3 39320 3 39325 3 39333 3 39335 3 39339 3 39346 3 39347 3 39350 3 39370 3 39378 3 39380 3 39388 3 39393 3 39403 3 39405 3 39415 3 39422 3 39427 3 39438 3 39441 3 39445 3 39451 3 39456 3 39458 3 39466 3 39467 3 39474 3 39480 3 39481 3 39492 3 39495 3 39503 3 39510 3 39511 3 39513 3 39522 3 39526 3 39528 3 39542 3 39551 3 39552 3 39559 3 39568 3 39578 3 39585 3 39594 3 39597 3 39603 3 39609 3 39611 3 39614 3 39619 3 39623 3 39627 3 39632 3 39633 3 39634 3 39637 3 39642 3 39664 3 39666 3 39692 3 39694 3 39695 3 39697 3 39701 3 39703 3 39715 3 39719 3 39723 3 39724 3 39727 3 39732 3 39733 3 39737 3 39751 3 39755 3 39766 3 39776 3 39784 3 39788 3 39789 3 39791 3 39793 3 39794 3 39803 3 39813 3 39831 3 39842 3 39862 3 39866 3 39869 3 39871 3 39874 3 39880 3 39884 3 39886 3 39889 3 39898 3 39905 3 39922 3 39927 3 39928 3 39930 3 39936 3 39941 3 39945 3 39965 3 39968 3 39971 3 39972 3 39979 3 39980 3 39988 3 39992 3 40003 3 40007 3 40018 3 40023 3 40024 3 40031 3 40034 3 40038 3 40041 3 40043 3 40050 3 40058 3 40059 3 40068 3 40071 3 40076 3 40081 3 40086 3 40092 3 40094 3 40096 3 40099 3 40111 3 40116 3 40119 3 40125 3 40127 3 40133 3 40138 3 40142 3 40149 3 40154 3 40155 3 40166 3 40168 3 40171 3 40181 3 40185 3 40187 3 40188 3 40192 3 40193 3 40206 3 40220 3 40234 3 40236 3 40239 3 40244 3 40259 3 40262 3 40270 3 40280 3 40285 3 40287 3 40302 3 40304 3 40308 3 40321 3 40330 3 40334 3 40336 3 40342 3 40344 3 40345 3 40358 3 40368 3 40369 3 40370 3 40372 3 40386 3 40396 3 40403 3 40416 3 40417 3 40423 3 40426 3 40429 3 40431 3 40438 3 40439 3 40444 3 40447 3 40467 3 40478 3 40502 3 40506 3 40531 3 40536 3 40547 3 40549 3 40560 3 40578 3 40581 3 40582 3 40595 3 40598 3 40607 3 40609 3 40632 3 40633 3 40641 3 40649 3 40660 3 40673 3 40685 3 40697 3 40701 3 40708 3 40716 3 40723 3 40732 3 40746 3 40767 3 40768 3 40771 3 40785 3 40793 3 40807 3 40808 3 40815 3 40826 3 40829 3 40840 3 40845 3 40847 3 40849 3 40859 3 40862 3 40865 3 40871 3 40872 3 40898 3 40902 3 40907 3 40911 3 40917 3 40926 3 40930 3 40932 3 40973 3 40978 3 40980 3 40981 3 40990 3 41005 3 41008 3 41013 3 41017 3 41022 3 41030 3 41064 3 41065 3 41066 3 41086 3 41091 3 41093 3 41095 3 41096 3 41099 3 41103 3 41109 3 41111 3 41122 3 41132 3 41136 3 41142 3 41147 3 41150 3 41156 3 41165 3 41169 3 41173 3 41224 3 41231 3 41257 3 41266 3 41274 3 41278 3 41288 3 41296 3 41310 3 41313 3 41314 3 41319 3 41320 3 41335 3 41343 3 41350 3 41356 3 41357 3 41360 3 41373 3 41381 3 41389 3 41396 3 41400 3 41407 3 41419 3 41427 3 41432 3 41441 3 41448 3 41454 3 41466 3 41468 3 41473 3 41477 3 41478 3 41485 3 41494 3 41505 3 41506 3 41508 3 41513 3 41518 3 41533 3 41539 3 41542 3 41544 3 41555 3 41556 3 41557 3 41558 3 41561 3 41573 3 41577 3 41592 3 41594 3 41606 3 41608 3 41620 3 41624 3 41628 3 41637 3 41639 3 41643 3 41644 3 41648 3 41650 3 41651 3 41665 3 41669 3 41699 3 41702 3 41706 3 41708 3 41718 3 41728 3 41729 3 41732 3 41733 3 41741 3 41745 3 41765 3 41769 3 41773 3 41774 3 41775 3 41776 3 41795 3 41797 3 41799 3 41810 3 41811 3 41813 3 41815 3 41818 3 41830 3 41833 3 41834 3 41838 3 41845 3 41858 3 41865 3 41866 3 41867 3 41873 3 41875 3 41876 3 41883 3 41893 3 41895 3 41900 3 41904 3 41934 3 41940 3 41942 3 41954 3 41956 3 41959 3 41962 3 41967 3 41971 3 41973 3 41983 3 41993 3 41999 3 42002 3 42004 3 42009 3 42013 3 42023 3 42024 3 42026 3 42035 3 42037 3 42040 3 42042 3 42052 3 42060 3 42064 3 42065 3 42067 3 42070 3 42075 3 42077 3 42084 3 42085 3 42089 3 42094 3 42102 3 42116 3 42118 3 42124 3 42160 3 42168 3 42169 3 42181 3 42184 3 42189 3 42194 3 42196 3 42197 3 42205 3 42206 3 42216 3 42220 3 42230 3 42231 3 42237 3 42238 3 42242 3 42246 3 42254 3 42273 3 42282 3 42289 3 42320 3 42323 3 42339 3 42341 3 42342 3 42345 3 42347 3 42360 3 42370 3 42371 3 42376 3 42378 3 42383 3 42387 3 42388 3 42389 3 42390 3 42391 3 42397 3 42417 3 42423 3 42428 3 42429 3 42435 3 42436 3 42440 3 42446 3 42449 3 42452 3 42461 3 42465 3 42468 3 42474 3 42485 3 42486 3 42518 3 42529 3 42537 3 42539 3 42541 3 42551 3 42552 3 42560 3 42562 3 42569 3 42576 3 42578 3 42579 3 42591 3 42595 3 42607 3 42612 3 42617 3 42619 3 42630 3 42639 3 42650 3 42651 3 42654 3 42657 3 42662 3 42670 3 42688 3 42694 3 42702 3 42704 3 42706 3 42708 3 42712 3 42722 3 42726 3 42736 3 42742 3 42754 3 42755 3 42759 3 42766 3 42767 3 42770 3 42774 3 42775 3 42776 3 42783 3 42784 3 42790 3 42791 3 42792 3 42793 3 42795 3 42802 3 42807 3 42810 3 42820 3 42825 3 42827 3 42835 3 42836 3 42839 3 42850 3 42857 3 42861 3 42862 3 42863 3 42868 3 42887 3 42890 3 42897 3 42900 3 42903 3 42907 3 42919 3 42920 3 42922 3 42929 3 42942 3 42956 3 42958 3 42960 3 42961 3 42964 3 42967 3 42973 3 42978 3 42984 3 43004 3 43012 3 43014 3 43016 3 43017 3 43022 3 43024 3 43030 3 43031 3 43036 3 43037 3 43038 3 43042 3 43045 3 43047 3 43053 3 43054 3 43064 3 43071 3 43074 3 43075 3 43076 3 43080 3 43086 3 43105 3 43115 3 43124 3 43125 3 43127 3 43130 3 43139 3 43145 3 43152 3 43160 3 43164 3 43168 3 43179 3 43181 3 43194 3 43195 3 43196 3 43198 3 43205 3 43212 3 43213 3 43224 3 43226 3 43232 3 43235 3 43239 3 43243 3 43245 3 43259 3 43267 3 43273 3 43278 3 43298 3 43299 3 43303 3 43308 3 43316 3 43327 3 43336 3 43370 3 43371 3 43374 3 43379 3 43385 3 43398 3 43401 3 43412 3 43415 3 43422 3 43426 3 43427 3 43435 3 43439 3 43441 3 43453 3 43466 3 43468 3 43474 3 43479 3 43482 3 43487 3 43493 3 43494 3 43496 3 43504 3 43505 3 43508 3 43511 3 43512 3 43517 3 43519 3 43523 3 43528 3 43537 3 43540 3 43544 3 43545 3 43547 3 43561 3 43562 3 43570 3 43572 3 43575 3 43584 3 43586 3 43587 3 43591 3 43592 3 43594 3 43595 3 43597 3 43598 3 43606 3 43608 3 43617 3 43619 3 43620 3 43622 3 43635 3 43639 3 43643 3 43644 3 43645 3 43667 3 43675 3 43678 3 43679 3 43681 3 43687 3 43692 3 43697 3 43701 3 43704 3 43707 3 43712 3 43713 3 43728 3 43731 3 43733 3 43735 3 43748 3 43758 3 43760 3 43762 3 43764 3 43770 3 43771 3 43774 3 43775 3 43779 3 43787 3 43791 3 43793 3 43794 3 43800 3 43803 3 43829 3 43831 3 43837 3 43841 3 43861 3 43863 3 43864 3 43865 3 43872 3 43880 3 43882 3 43885 3 43889 3 43890 3 43898 3 43917 3 43923 3 43943 3 43947 3 43950 3 43952 3 43953 3 43955 3 43961 3 43963 3 43966 3 43967 3 43970 3 43979 3 43987 3 43997 3 44001 3 44010 3 44026 3 44041 3 44043 3 44045 3 44046 3 44047 3 44051 3 44052 3 44075 3 44077 3 44079 3 44080 3 44083 3 44084 3 44099 3 44103 3 44106 3 44109 3 44110 3 44115 3 44122 3 44125 3 44126 3 44131 3 44133 3 44141 3 44155 3 44157 3 44161 3 44174 3 44177 3 44178 3 44179 3 44187 3 44189 3 44190 3 44196 3 44198 3 44199 3 44209 3 44211 3 44219 3 44224 3 44228 3 44229 3 44236 3 44238 3 44249 3 44254 3 44260 3 44261 3 44262 3 44267 3 44270 3 44282 3 44283 3 44297 3 44299 3 44301 3 44302 3 44308 3 44309 3 44314 3 44320 3 44327 3 44332 3 44335 3 44341 3 44344 3 44355 3 44386 3 44389 3 44396 3 44397 3 44402 3 44408 3 44414 3 44416 3 44424 3 44427 3 44430 3 44448 3 44453 3 44454 3 44462 3 44467 3 44475 3 44477 3 44480 3 44483 3 44493 3 44499 3 44507 3 44519 3 44528 3 44530 3 44537 3 44543 3 44553 3 44558 3 44567 3 44568 3 44570 3 44574 3 44580 3 44600 3 44606 3 44610 3 44621 3 44626 3 44633 3 44634 3 44638 3 44650 3 44658 3 44664 3 44678 3 44680 3 44681 3 44689 3 44690 3 44695 3 44696 3 44698 3 44707 3 44709 3 44710 3 44715 3 44719 3 44722 3 44731 3 44734 3 44736 3 44748 3 44762 3 44766 3 44768 3 44774 3 44782 3 44795 3 44797 3 44798 3 44799 3 44804 3 44805 3 44807 3 44809 3 44815 3 44817 3 44828 3 44833 3 44834 3 44837 3 44841 3 44852 3 44859 3 44869 3 44873 3 44878 3 44881 3 44882 3 44884 3 44915 3 44918 3 44919 3 44921 3 44938 3 44956 3 44959 3 44966 3 44986 3 45003 3 45005 3 45013 3 45014 3 45036 3 45040 3 45041 3 45046 3 45056 3 45062 3 45063 3 45069 3 45080 3 45085 3 45086 3 45088 3 45096 3 45100 3 45101 3 45111 3 45125 3 45126 3 45137 3 45141 3 45142 3 45143 3 45151 3 45153 3 45154 3 45162 3 45167 3 45171 3 45176 3 45185 3 45186 3 45211 3 45215 3 45225 3 45229 3 45232 3 45236 3 45241 3 45249 3 45256 3 45258 3 45259 3 45269 3 45271 3 45275 3 45280 3 45281 3 45287 3 45290 3 45301 3 45310 3 45311 3 45317 3 45332 3 45341 3 45355 3 45373 3 45376 3 45379 3 45380 3 45406 3 45416 3 45418 3 45423 3 45424 3 45427 3 45432 3 45435 3 45437 3 45448 3 45455 3 45458 3 45464 3 45475 3 45478 3 45481 3 45489 3 45492 3 45501 3 45515 3 45548 3 45554 3 45557 3 45562 3 45563 3 45568 3 45576 3 45577 3 45578 3 45581 3 45585 3 45588 3 45607 3 45613 3 45614 3 45622 3 45635 3 45637 3 45641 3 45644 3 45646 3 45670 3 45671 3 45673 3 45675 3 45683 3 45684 3 45689 3 45694 3 45695 3 45696 3 45697 3 45698 3 45703 3 45705 3 45737 3 45747 3 45748 3 45759 3 45789 3 45801 3 45805 3 45806 3 45808 3 45816 3 45818 3 45823 3 45826 3 45829 3 45830 3 45832 3 45839 3 45853 3 45864 3 45878 3 45881 3 45886 3 45893 3 45895 3 45897 3 45901 3 45905 3 45913 3 45914 3 45917 3 45924 3 45925 3 45928 3 45933 3 45941 3 45957 3 45962 3 45975 3 45984 3 45991 3 45996 3 46003 3 46009 3 46013 3 46016 3 46020 3 46035 3 46039 3 46063 3 46075 3 46084 3 46086 3 46090 3 46097 3 46100 3 46101 3 46114 3 46121 3 46129 3 46137 3 46139 3 46147 3 46151 3 46157 3 46159 3 46161 3 46164 3 46167 3 46173 3 46178 3 46179 3 46191 3 46197 3 46207 3 46216 3 46226 3 46240 3 46245 3 46247 3 46256 3 46277 3 46284 3 46294 3 46295 3 46305 3 46313 3 46317 3 46318 3 46321 3 46340 3 46341 3 46344 3 46351 3 46374 3 46376 3 46386 3 46387 3 46396 3 46398 3 46412 3 46414 3 46419 3 46424 3 46431 3 46438 3 46447 3 46448 3 46456 3 46461 3 46462 3 46464 3 46466 3 46494 3 46495 3 46497 3 46498 3 46503 3 46506 3 46511 3 46512 3 46526 3 46528 3 46530 3 46538 3 46539 3 46540 3 46550 3 46556 3 46557 3 46558 3 46560 3 46564 3 46569 3 46574 3 46576 3 46581 3 46585 3 46593 3 46605 3 46613 3 46616 3 46623 3 46629 3 46641 3 46644 3 46650 3 46666 3 46669 3 46674 3 46681 3 46685 3 46686 3 46687 3 46700 3 46701 3 46703 3 46706 3 46709 3 46710 3 46717 3 46722 3 46726 3 46728 3 46734 3 46736 3 46740 3 46752 3 46756 3 46763 3 46775 3 46779 3 46780 3 46781 3 46782 3 46790 3 46797 3 46800 3 46803 3 46809 3 46813 3 46817 3 46835 3 46836 3 46838 3 46840 3 46853 3 46854 3 46860 3 46863 3 46864 3 46865 3 46880 3 46882 3 46884 3 46885 3 46886 3 46889 3 46901 3 46907 3 46921 3 46922 3 46924 3 46928 3 46932 3 46939 3 46940 3 46946 3 46959 3 46967 3 46968 3 46973 3 46979 3 46980 3 46981 3 46985 3 46996 3 46997 3 46999 3 47001 3 47014 3 47019 3 47047 3 47059 3 47063 3 47064 3 47066 3 47078 3 47081 3 47082 3 47083 3 47099 3 47108 3 47115 3 47116 3 47124 3 47128 3 47132 3 47139 3 47145 3 47146 3 47150 3 47151 3 47160 3 47163 3 47164 3 47171 3 47179 3 47181 3 47182 3 47195 3 47198 3 47200 3 47207 3 47209 3 47214 3 47223 3 47230 3 47241 3 47252 3 47254 3 47265 3 47266 3 47273 3 47284 3 47294 3 47308 3 47312 3 47316 3 47326 3 47327 3 47329 3 47330 3 47332 3 47338 3 47346 3 47354 3 47359 3 47360 3 47385 3 47390 3 47397 3 47411 3 47412 3 47413 3 47414 3 47429 3 47435 3 47446 3 47448 3 47450 3 47456 3 47460 3 47463 3 47464 3 47466 3 47467 3 47473 3 47484 3 47489 3 47495 3 47502 3 47503 3 47509 3 47510 3 47512 3 47516 3 47522 3 47526 3 47530 3 47533 3 47534 3 47535 3 47537 3 47552 3 47559 3 47571 3 47573 3 47577 3 47580 3 47583 3 47592 3 47596 3 47597 3 47616 3 47617 3 47618 3 47624 3 47631 3 47644 3 47649 3 47650 3 47655 3 47656 3 47657 3 47660 3 47661 3 47666 3 47672 3 47673 3 47675 3 47678 3 47695 3 47707 3 47709 3 47720 3 47732 3 47733 3 47750 3 47757 3 47758 3 47760 3 47765 3 47768 3 47777 3 47780 3 47781 3 47784 3 47793 3 47799 3 47801 3 47805 3 47806 3 47808 3 47811 3 47816 3 47820 3 47827 3 47833 3 47835 3 47836 3 47838 3 47841 3 47851 3 47853 3 47863 3 47864 3 47865 3 47874 3 47883 3 47886 3 47887 3 47896 3 47901 3 47908 3 47920 3 47922 3 47927 3 47929 3 47931 3 47941 3 47943 3 47949 3 47952 3 47966 3 47969 3 47970 3 47982 3 47990 3 47991 3 47995 3 48026 3 48028 3 48044 3 48045 3 48053 3 48062 3 48074 3 48075 3 48076 3 48088 3 48091 3 48095 3 48099 3 48105 3 48113 3 48114 3 48119 3 48127 3 48130 3 48131 3 48133 3 48144 3 48146 3 48149 3 48152 3 48156 3 48158 3 48173 3 48193 3 48199 3 48210 3 48212 3 48214 3 48217 3 48226 3 48227 3 48234 3 48238 3 48242 3 48244 3 48249 3 48253 3 48258 3 48259 3 48263 3 48266 3 48276 3 48283 3 48285 3 48291 3 48292 3 48300 3 48313 3 48325 3 48333 3 48337 3 48339 3 48340 3 48346 3 48349 3 48351 3 48352 3 48359 3 48360 3 48362 3 48371 3 48374 3 48376 3 48380 3 48387 3 48390 3 48413 3 48415 3 48418 3 48420 3 48421 3 48423 3 48425 3 48433 3 48438 3 48440 3 48448 3 48456 3 48466 3 48467 3 48470 3 48479 3 48480 3 48481 3 48492 3 48494 3 48502 3 48504 3 48510 3 48519 3 48524 3 48528 3 48530 3 48533 3 48538 3 48544 3 48546 3 48562 3 48563 3 48570 3 48571 3 48575 3 48578 3 48585 3 48587 3 48590 3 48591 3 48595 3 48597 3 48601 3 48610 3 48629 3 48633 3 48635 3 48637 3 48644 3 48650 3 48656 3 48658 3 48659 3 48660 3 48668 3 48674 3 48675 3 48680 3 48682 3 48694 3 48695 3 48700 3 48705 3 48710 3 48714 3 48715 3 48716 3 48737 3 48754 3 48769 3 48770 3 48772 3 48774 3 48779 3 48782 3 48783 3 48785 3 48791 3 48792 3 48795 3 48799 3 48800 3 48803 3 48809 3 48817 3 48818 3 48825 3 48826 3 48832 3 48835 3 48836 3 48839 3 48840 3 48845 3 48851 3 48852 3 48856 3 48858 3 48866 3 48872 3 48878 3 48879 3 48894 3 48895 3 48905 3 48908 3 48920 3 48923 3 48927 3 48928 3 48930 3 48932 3 48943 3 48947 3 48964 3 48972 3 48976 3 48983 3 48995 3 48996 3 49005 3 49010 3 49014 3 49020 3 49021 3 49025 3 49041 3 49071 3 49076 3 49087 3 49089 3 49093 3 49099 3 49103 3 49110 3 49129 3 49131 3 49153 3 49154 3 49161 3 49163 3 49167 3 49172 3 49187 3 49193 3 49195 3 49203 3 49205 3 49211 3 49214 3 49217 3 49222 3 49228 3 49230 3 49235 3 49239 3 49240 3 49242 3 49243 3 49262 3 49269 3 49270 3 49277 3 49289 3 49320 3 49321 3 49326 3 49340 3 49344 3 49347 3 49350 3 49351 3 49362 3 49366 3 49367 3 49372 3 49380 3 49384 3 49386 3 49398 3 49400 3 49408 3 49428 3 49437 3 49438 3 49442 3 49450 3 49457 3 49470 3 49490 3 49498 3 49509 3 49514 3 49517 3 49521 3 49525 3 49545 3 49548 3 49551 3 49566 3 49568 3 49570 3 49572 3 49594 3 49597 3 49601 3 49606 3 49609 3 49611 3 49613 3 49615 3 49622 3 49631 3 49632 3 49642 3 49645 3 49650 3 49651 3 49654 3 49660 3 49661 3 49662 3 49667 3 49669 3 49670 3 49671 3 49690 3 49698 3 49703 3 49704 3 49715 3 49719 3 49720 3 49738 3 49744 3 49748 3 49758 3 49774 3 49781 3 49791 3 49792 3 49799 3 49803 3 49804 3 49814 3 49822 3 49828 3 49829 3 49831 3 49835 3 49836 3 49838 3 49841 3 49843 3 49849 3 49860 3 49864 3 49871 3 49893 3 49897 3 49901 3 49911 3 49912 3 49935 3 49941 3 49942 3 49945 3 49952 3 49958 3 49961 3 49968 3 49972 3 49982 3 49994 3 50007 3 50013 3 50015 3 50017 3 50019 3 50020 3 50024 3 50026 3 50030 3 50037 3 50044 3 50045 3 50046 3 50053 3 50060 3 50066 3 50068 3 50073 3 50074 3 50077 3 50081 3 50086 3 50088 3 50094 3 50096 3 50102 3 50120 3 50122 3 50130 3 50131 3 50140 3 50143 3 50148 3 50150 3 50153 3 50154 3 50158 3 50166 3 50172 3 50173 3 50177 3 50180 3 50184 3 50187 3 50200 3 50205 3 50211 3 50232 3 50234 3 50238 3 50252 3 50256 3 50260 3 50265 3 50289 3 50291 3 50292 3 50299 3 50308 3 50319 3 50324 3 50330 3 50344 3 50365 3 50366 3 50367 3 50371 3 50376 3 50378 3 50380 3 50381 3 50385 3 50392 3 50399 3 50403 3 50431 3 50433 3 50439 3 50440 3 50446 3 50451 3 50462 3 50468 3 50474 3 50476 3 50477 3 50478 3 50484 3 50485 3 50499 3 50503 3 50513 3 50541 3 50546 3 50555 3 50558 3 50572 3 50574 3 50580 3 50583 3 50584 3 50590 3 50599 3 50603 3 50604 3 50607 3 50609 3 50610 3 50613 3 50624 3 50626 3 50628 3 50630 3 50642 3 50643 3 50649 3 50657 3 50658 3 50667 3 50668 3 50672 3 50674 3 50678 3 50681 3 50685 3 50687 3 50696 3 50697 3 50711 3 50713 3 50724 3 50733 3 50736 3 50740 3 50743 3 50747 3 50753 3 50756 3 50757 3 50758 3 50766 3 50773 3 50779 3 50780 3 50784 3 50796 3 50798 3 50800 3 50805 3 50808 3 50812 3 50815 3 50822 3 50834 3 50839 3 50843 3 50854 3 50859 3 50860 3 50875 3 50880 3 50883 3 50896 3 50899 3 50907 3 50913 3 50914 3 50915 3 50917 3 50921 3 50934 3 50939 3 50940 3 50942 3 50949 3 50953 3 50954 3 50955 3 50960 3 50971 3 50973 3 50978 3 50993 3 50994 3 50998 3 50999 3 51002 3 51011 3 51016 3 51022 3 51026 3 51027 3 51036 3 51039 3 51048 3 51052 3 51062 3 51068 3 51069 3 51071 3 51077 3 51080 3 51081 3 51085 3 51087 3 51089 3 51091 3 51093 3 51114 3 51121 3 51142 3 51147 3 51151 3 51153 3 51156 3 51162 3 51163 3 51169 3 51185 3 51189 3 51202 3 51205 3 51213 3 51221 3 51224 3 51249 3 51250 3 51263 3 51266 3 51268 3 51293 3 51298 3 51299 3 51304 3 51314 3 51319 3 51321 3 51322 3 51325 3 51326 3 51344 3 51346 3 51348 3 51350 3 51354 3 51355 3 51365 3 51371 3 51372 3 51380 3 51381 3 51393 3 51398 3 51415 3 51418 3 51420 3 51432 3 51433 3 51441 3 51457 3 51470 3 51475 3 51479 3 51480 3 51483 3 51496 3 51511 3 51516 3 51518 3 51520 3 51526 3 51528 3 51534 3 51538 3 51547 3 51551 3 51562 3 51569 3 51570 3 51571 3 51573 3 51578 3 51579 3 51584 3 51585 3 51586 3 51587 3 51588 3 51609 3 51612 3 51619 3 51620 3 51623 3 51634 3 51637 3 51645 3 51648 3 51656 3 51665 3 51666 3 51668 3 51676 3 51680 3 51687 3 51692 3 51695 3 51699 3 51704 3 51717 3 51720 3 51725 3 51727 3 51749 3 51755 3 51806 3 51807 3 51815 3 51832 3 51844 3 51855 3 51861 3 51868 3 51878 3 51891 3 51899 3 51902 3 51904 3 51906 3 51913 3 51923 3 51933 3 51940 3 51947 3 51954 3 51957 3 51964 3 51967 3 51993 3 52001 3 52014 3 52017 3 52032 3 52033 3 52035 3 52043 3 52051 3 52052 3 52064 3 52067 3 52080 3 52083 3 52086 3 52088 3 52117 3 52118 3 52123 3 52137 3 52148 3 52161 3 52168 3 52187 3 52189 3 52199 3 52206 3 52209 3 52216 3 52234 3 52244 3 52247 3 52265 3 52268 3 52276 3 52281 3 52288 3 52294 3 52296 3 52301 3 52302 3 52306 3 52312 3 52318 3 52319 3 52331 3 52332 3 52334 3 52347 3 52357 3 52360 3 52361 3 52370 3 52383 3 52384 3 52386 3 52390 3 52394 3 52401 3 52418 3 52419 3 52428 3 52432 3 52433 3 52441 3 52444 3 52449 3 52450 3 52453 3 52456 3 52464 3 52468 3 52478 3 52483 3 52486 3 52491 3 52492 3 52493 3 52494 3 52495 3 52504 3 52506 3 52512 3 52513 3 52521 3 52522 3 52530 3 52543 3 52552 3 52565 3 52584 3 52585 3 52601 3 52603 3 52606 3 52613 3 52615 3 52616 3 52617 3 52622 3 52624 3 52625 3 52660 3 52662 3 52666 3 52667 3 52675 3 52677 3 52687 3 52690 3 52691 3 52701 3 52726 3 52746 3 52750 3 52765 3 52777 3 52779 3 52780 3 52794 3 52806 3 52811 3 52812 3 52821 3 52823 3 52831 3 52841 3 52843 3 52851 3 52860 3 52862 3 52863 3 52874 3 52895 3 52896 3 52906 3 52909 3 52915 3 52920 3 52921 3 52927 3 52928 3 52931 3 52935 3 52941 3 52952 3 52956 3 52961 3 52974 3 52976 3 52981 3 52985 3 52987 3 52989 3 52994 3 52996 3 52999 3 53000 3 53008 3 53014 3 53016 3 53023 3 53025 3 53031 3 53051 3 53076 3 53078 3 53080 3 53081 3 53083 3 53086 3 53087 3 53091 3 53094 3 53098 3 53101 3 53102 3 53109 3 53114 3 53121 3 53124 3 53129 3 53139 3 53141 3 53143 3 53145 3 53150 3 53151 3 53153 3 53154 3 53155 3 53156 3 53157 3 53178 3 53191 3 53202 3 53218 3 53219 3 53221 3 53227 3 53234 3 53242 3 53248 3 53249 3 53256 3 53259 3 53261 3 53262 3 53267 3 53271 3 53286 3 53287 3 53298 3 53300 3 53302 3 53307 3 53311 3 53314 3 53318 3 53321 3 53323 3 53340 3 53348 3 53364 3 53365 3 53367 3 53371 3 53375 3 53376 3 53381 3 53385 3 53386 3 53396 3 53409 3 53411 3 53419 3 53421 3 53424 3 53438 3 53440 3 53441 3 53454 3 53455 3 53461 3 53466 3 53471 3 53473 3 53479 3 53482 3 53493 3 53497 3 53502 3 53505 3 53513 3 53528 3 53532 3 53538 3 53539 3 53543 3 53548 3 53560 3 53578 3 53583 3 53584 3 53594 3 53595 3 53596 3 53600 3 53607 3 53612 3 53617 3 53618 3 53620 3 53622 3 53627 3 53639 3 53655 3 53673 3 53674 3 53683 3 53684 3 53692 3 53699 3 53706 3 53707 3 53710 3 53724 3 53726 3 53735 3 53736 3 53739 3 53740 3 53741 3 53743 3 53747 3 53751 3 53752 3 53756 3 53759 3 53767 3 53780 3 53783 3 53786 3 53788 3 53804 3 53814 3 53821 3 53822 3 53823 3 53828 3 53832 3 53869 3 53883 3 53894 3 53898 3 53899 3 53908 3 53912 3 53914 3 53926 3 53935 3 53939 3 53940 3 53941 3 53947 3 53948 3 53949 3 53952 3 53954 3 53955 3 53964 3 53972 3 53973 3 53986 3 53993 3 54004 3 54007 3 54010 3 54012 3 54014 3 54016 3 54018 3 54021 3 54028 3 54038 3 54065 3 54066 3 54068 3 54073 3 54082 3 54086 3 54087 3 54092 3 54104 3 54107 3 54113 3 54118 3 54120 3 54126 3 54128 3 54132 3 54134 3 54137 3 54154 3 54166 3 54168 3 54170 3 54173 3 54188 3 54194 3 54196 3 54200 3 54204 3 54207 3 54225 3 54231 3 54232 3 54235 3 54237 3 54245 3 54248 3 54251 3 54261 3 54265 3 54266 3 54269 3 54270 3 54272 3 54287 3 54289 3 54294 3 54295 3 54304 3 54309 3 54316 3 54328 3 54337 3 54338 3 54341 3 54348 3 54361 3 54363 3 54403 3 54406 3 54407 3 54410 3 54415 3 54419 3 54430 3 54436 3 54443 3 54444 3 54452 3 54453 3 54456 3 54457 3 54473 3 54474 3 54483 3 54484 3 54489 3 54490 3 54491 3 54505 3 54513 3 54524 3 54543 3 54544 3 54562 3 54564 3 54579 3 54581 3 54583 3 54600 3 54624 3 54626 3 54633 3 54637 3 54646 3 54654 3 54655 3 54661 3 54665 3 54676 3 54680 3 54685 3 54693 3 54695 3 54700 3 54702 3 54716 3 54722 3 54726 3 54741 3 54748 3 54754 3 54763 3 54774 3 54775 3 54786 3 54791 3 54797 3 54809 3 54820 3 54821 3 54823 3 54826 3 54829 3 54833 3 54835 3 54840 3 54853 3 54863 3 54866 3 54867 3 54895 3 54900 3 54904 3 54915 3 54918 3 54923 3 54943 3 54945 3 54949 3 54956 3 54958 3 54959 3 54960 3 54961 3 54969 3 54971 3 54975 3 54978 3 54989 3 54990 3 54992 3 54994 3 55002 3 55003 3 55005 3 55011 3 55017 3 55022 3 55034 3 55035 3 55044 3 55056 3 55058 3 55062 3 55066 3 55074 3 55075 3 55083 3 55084 3 55091 3 55099 3 55118 3 55120 3 55122 3 55132 3 55133 3 55140 3 55142 3 55145 3 55148 3 55149 3 55172 3 55176 3 55182 3 55190 3 55194 3 55202 3 55209 3 55214 3 55224 3 55245 3 55249 3 55256 3 55280 3 55281 3 55284 3 55286 3 55293 3 55294 3 55295 3 55299 3 55301 3 55302 3 55307 3 55310 3 55312 3 55314 3 55317 3 55338 3 55339 3 55345 3 55346 3 55355 3 55358 3 55360 3 55366 3 55368 3 55370 3 55373 3 55379 3 55414 3 55417 3 55423 3 55427 3 55431 3 55436 3 55442 3 55452 3 55457 3 55458 3 55459 3 55460 3 55463 3 55467 3 55469 3 55471 3 55485 3 55493 3 55499 3 55502 3 55503 3 55505 3 55506 3 55509 3 55513 3 55520 3 55532 3 55533 3 55537 3 55538 3 55540 3 55550 3 55553 3 55555 3 55556 3 55570 3 55587 3 55589 3 55592 3 55593 3 55596 3 55599 3 55600 3 55602 3 55605 3 55609 3 55612 3 55615 3 55619 3 55623 3 55638 3 55639 3 55650 3 55660 3 55664 3 55666 3 55675 3 55676 3 55679 3 55680 3 55683 3 55686 3 55697 3 55708 3 55711 3 55714 3 55715 3 55724 3 55736 3 55738 3 55739 3 55742 3 55746 3 55749 3 55759 3 55771 3 55772 3 55777 3 55779 3 55792 3 55795 3 55808 3 55809 3 55813 3 55817 3 55820 3 55821 3 55824 3 55831 3 55833 3 55835 3 55840 3 55848 3 55849 3 55858 3 55862 3 55870 3 55879 3 55891 3 55892 3 55907 3 55908 3 55914 3 55920 3 55922 3 55951 3 55954 3 55977 3 55988 3 55989 3 55997 3 55998 3 56009 3 56013 3 56024 3 56045 3 56058 3 56061 3 56064 3 56072 3 56073 3 56088 3 56100 3 56105 3 56109 3 56112 3 56116 3 56127 3 56128 3 56129 3 56130 3 56135 3 56137 3 56141 3 56144 3 56152 3 56153 3 56160 3 56161 3 56167 3 56169 3 56175 3 56179 3 56184 3 56190 3 56191 3 56196 3 56197 3 56198 3 56201 3 56207 3 56210 3 56223 3 56224 3 56225 3 56227 3 56233 3 56234 3 56237 3 56238 3 56239 3 56245 3 56247 3 56248 3 56249 3 56250 3 56252 3 56262 3 56267 3 56287 3 56291 3 56299 3 56305 3 56317 3 56319 3 56321 3 56322 3 56324 3 56339 3 56342 3 56348 3 56349 3 56362 3 56367 3 56374 3 56390 3 56397 3 56405 3 56409 3 56417 3 56422 3 56428 3 56434 3 56435 3 56437 3 56438 3 56442 3 56453 3 56472 3 56503 3 56508 3 56509 3 56532 3 56535 3 56537 3 56538 3 56563 3 56564 3 56569 3 56579 3 56584 3 56586 3 56590 3 56597 3 56609 3 56625 3 56627 3 56629 3 56630 3 56633 3 56634 3 56636 3 56641 3 56643 3 56649 3 56663 3 56668 3 56685 3 56692 3 56694 3 56697 3 56698 3 56706 3 56707 3 56710 3 56715 3 56719 3 56726 3 56749 3 56750 3 56753 3 56757 3 56763 3 56768 3 56769 3 56772 3 56774 3 56775 3 56777 3 56789 3 56791 3 56797 3 56804 3 56805 3 56811 3 56818 3 56820 3 56821 3 56831 3 56836 3 56838 3 56839 3 56840 3 56841 3 56845 3 56851 3 56853 3 56855 3 56858 3 56860 3 56863 3 56866 3 56867 3 56872 3 56877 3 56890 3 56900 3 56901 3 56906 3 56937 3 56939 3 56940 3 56959 3 56972 3 56977 3 56989 3 56990 3 57005 3 57008 3 57009 3 57016 3 57019 3 57022 3 57023 3 57031 3 57050 3 57056 3 57064 3 57067 3 57073 3 57079 3 57083 3 57091 3 57099 3 57115 3 57116 3 57118 3 57119 3 57121 3 57123 3 57130 3 57154 3 57171 3 57173 3 57178 3 57187 3 57195 3 57197 3 57198 3 57203 3 57213 3 57218 3 57219 3 57223 3 57227 3 57228 3 57230 3 57236 3 57237 3 57241 3 57242 3 57245 3 57258 3 57259 3 57264 3 57269 3 57276 3 57279 3 57296 3 57327 3 57333 3 57340 3 57344 3 57348 3 57351 3 57352 3 57357 3 57358 3 57366 3 57382 3 57393 3 57398 3 57410 3 57412 3 57420 3 57422 3 57424 3 57430 3 57435 3 57443 3 57444 3 57451 3 57453 3 57469 3 57471 3 57479 3 57483 3 57485 3 57488 3 57493 3 57499 3 57501 3 57509 3 57510 3 57511 3 57515 3 57533 3 57540 3 57551 3 57569 3 57572 3 57575 3 57579 3 57587 3 57591 3 57598 3 57600 3 57602 3 57605 3 57607 3 57608 3 57609 3 57617 3 57621 3 57624 3 57629 3 57639 3 57640 3 57650 3 57652 3 57653 3 57654 3 57661 3 57671 3 57686 3 57689 3 57691 3 57700 3 57709 3 57718 3 57724 3 57729 3 57741 3 57743 3 57745 3 57746 3 57749 3 57755 3 57756 3 57758 3 57764 3 57765 3 57767 3 57782 3 57783 3 57784 3 57800 3 57804 3 57807 3 57823 3 57850 3 57853 3 57858 3 57861 3 57865 3 57877 3 57884 3 57891 3 57894 3 57895 3 57907 3 57909 3 57915 3 57916 3 57921 3 57932 3 57935 3 57941 3 57944 3 57947 3 57969 3 57970 3 57971 3 57972 3 57977 3 57978 3 57980 3 57986 3 57999 3 58002 3 58010 3 58011 3 58015 3 58019 3 58022 3 58026 3 58029 3 58034 3 58047 3 58058 3 58061 3 58081 3 58082 3 58084 3 58087 3 58110 3 58113 3 58120 3 58123 3 58132 3 58138 3 58154 3 58156 3 58162 3 58165 3 58171 3 58179 3 58181 3 58183 3 58185 3 58194 3 58197 3 58205 3 58209 3 58210 3 58212 3 58216 3 58218 3 58219 3 58222 3 58253 3 58255 3 58256 3 58257 3 58264 3 58267 3 58275 3 58285 3 58294 3 58301 3 58302 3 58310 3 58311 3 58312 3 58315 3 58331 3 58335 3 58336 3 58339 3 58341 3 58347 3 58349 3 58351 3 58352 3 58357 3 58358 3 58370 3 58371 3 58384 3 58385 3 58387 3 58388 3 58392 3 58398 3 58405 3 58410 3 58418 3 58422 3 58424 3 58431 3 58436 3 58450 3 58453 3 58455 3 58463 3 58469 3 58490 3 58491 3 58497 3 58503 3 58512 3 58514 3 58520 3 58525 3 58530 3 58536 3 58537 3 58562 3 58565 3 58567 3 58568 3 58571 3 58572 3 58576 3 58580 3 58593 3 58610 3 58615 3 58616 3 58619 3 58620 3 58632 3 58636 3 58648 3 58653 3 58655 3 58658 3 58661 3 58664 3 58669 3 58671 3 58676 3 58679 3 58680 3 58689 3 58708 3 58730 3 58732 3 58734 3 58735 3 58737 3 58738 3 58741 3 58743 3 58744 3 58759 3 58762 3 58766 3 58767 3 58769 3 58770 3 58773 3 58774 3 58785 3 58802 3 58805 3 58810 3 58814 3 58822 3 58823 3 58825 3 58827 3 58833 3 58854 3 58862 3 58863 3 58864 3 58866 3 58872 3 58873 3 58877 3 58883 3 58891 3 58894 3 58895 3 58899 3 58900 3 58901 3 58902 3 58905 3 58906 3 58907 3 58912 3 58916 3 58920 3 58926 3 58933 3 58942 3 58951 3 58953 3 58966 3 58967 3 58970 3 58973 3 58980 3 58988 3 58991 3 59004 3 59007 3 59009 3 59014 3 59026 3 59029 3 59032 3 59034 3 59040 3 59046 3 59056 3 59061 3 59063 3 59076 3 59078 3 59080 3 59082 3 59086 3 59091 3 59097 3 59099 3 59105 3 59114 3 59115 3 59126 3 59131 3 59132 3 59140 3 59142 3 59144 3 59164 3 59165 3 59178 3 59184 3 59202 3 59211 3 59221 3 59227 3 59230 3 59235 3 59247 3 59248 3 59255 3 59256 3 59268 3 59280 3 59282 3 59287 3 59291 3 59303 3 59306 3 59310 3 59311 3 59316 3 59318 3 59326 3 59330 3 59331 3 59345 3 59354 3 59355 3 59366 3 59368 3 59370 3 59372 3 59393 3 59399 3 59400 3 59406 3 59410 3 59413 3 59422 3 59427 3 59434 3 59436 3 59447 3 59450 3 59461 3 59462 3 59464 3 59467 3 59474 3 59477 3 59492 3 59497 3 59499 3 59503 3 59504 3 59514 3 59518 3 59522 3 59523 3 59528 3 59538 3 59541 3 59544 3 59546 3 59548 3 59564 3 59566 3 59567 3 59580 3 59582 3 59591 3 59593 3 59596 3 59598 3 59600 3 59602 3 59604 3 59610 3 59617 3 59619 3 59620 3 59622 3 59624 3 59627 3 59634 3 59644 3 59649 3 59653 3 59668 3 59676 3 59679 3 59686 3 59690 3 59691 3 59693 3 59704 3 59705 3 59707 3 59725 3 59739 3 59747 3 59753 3 59755 3 59757 3 59759 3 59760 3 59764 3 59770 3 59773 3 59776 3 59779 3 59781 3 59783 3 59793 3 59798 3 59806 3 59811 3 59814 3 59825 3 59828 3 59829 3 59832 3 59865 3 59871 3 59874 3 59890 3 59896 3 59897 3 59903 3 59905 3 59911 3 59912 3 59918 3 59924 3 59937 3 59939 3 59943 3 59946 3 59951 3 59953 3 59955 3 59965 3 59966 3 59992 3 59994 3 59996 3 60001 3 60003 3 60016 3 60034 3 60040 3 60047 3 60055 3 60057 3 60059 3 60064 3 60072 3 60078 3 60086 3 60087 3 60091 3 60094 3 60104 3 60110 3 60119 3 60129 3 60139 3 60147 3 60156 3 60159 3 60168 3 60169 3 60171 3 60172 3 60173 3 60182 3 60185 3 60191 3 60211 3 60214 3 60224 3 60228 3 60232 3 60236 3 60237 3 60252 3 60271 3 60272 3 60274 3 60283 3 60286 3 60287 3 60296 3 60320 3 60321 3 60322 3 60325 3 60326 3 60330 3 60332 3 60335 3 60340 3 60345 3 60346 3 60348 3 60349 3 60357 3 60362 3 60363 3 60369 3 60381 3 60386 3 60389 3 60390 3 60413 3 60422 3 60428 3 60437 3 60454 3 60455 3 60457 3 60468 3 60474 3 60477 3 60479 3 60481 3 60483 3 60485 3 60497 3 60499 3 60500 3 60509 3 60519 3 60542 3 60544 3 60547 3 60551 3 60554 3 60571 3 60593 3 60605 3 60617 3 60621 3 60622 3 60631 3 60641 3 60667 3 60678 3 60682 3 60683 3 60693 3 60694 3 60735 3 60739 3 60741 3 60746 3 60751 3 60753 3 60755 3 60758 3 60760 3 60775 3 60776 3 60780 3 60787 3 60799 3 60801 3 60804 3 60807 3 60813 3 60828 3 60849 3 60857 3 60858 3 60866 3 60869 3 60871 3 60885 3 60892 3 60899 3 60912 3 60924 3 60930 3 60932 3 60933 3 60934 3 60939 3 60941 3 60944 3 60947 3 60979 3 60985 3 60992 3 60999 3 61000 3 61003 3 61004 3 61007 3 61009 3 61026 3 61027 3 61029 3 61030 3 61031 3 61032 3 61034 3 61039 3 61041 3 61043 3 61048 3 61058 3 61068 3 61069 3 61071 3 61077 3 61087 3 61093 3 61095 3 61101 3 61105 3 61113 3 61115 3 61124 3 61125 3 61128 3 61133 3 61142 3 61146 3 61152 3 61155 3 61157 3 61160 3 61161 3 61162 3 61163 3 61164 3 61174 3 61180 3 61190 3 61196 3 61199 3 61201 3 61203 3 61214 3 61216 3 61221 3 61224 3 61230 3 61232 3 61234 3 61239 3 61244 3 61260 3 61272 3 61274 3 61285 3 61292 3 61299 3 61323 3 61332 3 61334 3 61353 3 61354 3 61360 3 61362 3 61376 3 61379 3 61383 3 61392 3 61394 3 61395 3 61398 3 61407 3 61419 3 61421 3 61426 3 61427 3 61429 3 61430 3 61450 3 61460 3 61462 3 61464 3 61466 3 61468 3 61473 3 61485 3 61486 3 61493 3 61498 3 61501 3 61504 3 61510 3 61515 3 61516 3 61517 3 61524 3 61531 3 61535 3 61540 3 61549 3 61567 3 61568 3 61574 3 61575 3 61580 3 61584 3 61591 3 61596 3 61599 3 61600 3 61601 3 61607 3 61610 3 61611 3 61614 3 61629 3 61635 3 61640 3 61641 3 61653 3 61657 3 61663 3 61672 3 61675 3 61678 3 61683 3 61692 3 61696 3 61697 3 61711 3 61712 3 61731 3 61737 3 61738 3 61740 3 61743 3 61744 3 61754 3 61755 3 61761 3 61769 3 61772 3 61776 3 61782 3 61786 3 61795 3 61804 3 61812 3 61814 3 61816 3 61817 3 61830 3 61832 3 61835 3 61836 3 61841 3 61844 3 61847 3 61848 3 61849 3 61850 3 61854 3 61855 3 61861 3 61862 3 61863 3 61865 3 61878 3 61892 3 61905 3 61909 3 61914 3 61919 3 61922 3 61927 3 61928 3 61933 3 61934 3 61935 3 61943 3 61944 3 61950 3 61952 3 61954 3 61955 3 61956 3 61960 3 61968 3 61971 3 61988 3 61996 3 62010 3 62017 3 62021 3 62032 3 62044 3 62045 3 62064 3 62067 3 62069 3 62074 3 62078 3 62085 3 62092 3 62095 3 62099 3 62101 3 62102 3 62104 3 62109 3 62113 3 62115 3 62116 3 62122 3 62126 3 62130 3 62132 3 62136 3 62137 3 62146 3 62150 3 62154 3 62155 3 62159 3 62160 3 62162 3 62173 3 62179 3 62187 3 62188 3 62189 3 62195 3 62198 3 62200 3 62225 3 62232 3 62238 3 62240 3 62250 3 62257 3 62258 3 62267 3 62275 3 62279 3 62283 3 62285 3 62291 3 62295 3 62304 3 62307 3 62309 3 62312 3 62316 3 62324 3 62341 3 62342 3 62350 3 62357 3 62422 3 62427 3 62434 3 62436 3 62447 3 62449 3 62455 3 62458 3 62459 3 62462 3 62465 3 62474 3 62481 3 62492 3 62494 3 62495 3 62499 3 62500 3 62501 3 62502 3 62511 3 62515 3 62517 3 62519 3 62521 3 62528 3 62529 3 62535 3 62536 3 62540 3 62543 3 62549 3 62553 3 62563 3 62566 3 62583 3 62590 3 62594 3 62595 3 62608 3 62611 3 62628 3 62644 3 62655 3 62662 3 62667 3 62669 3 62670 3 62683 3 62684 3 62686 3 62687 3 62690 3 62693 3 62698 3 62700 3 62705 3 62714 3 62718 3 62719 3 62725 3 62730 3 62736 3 62737 3 62749 3 62750 3 62754 3 62758 3 62765 3 62779 3 62787 3 62789 3 62797 3 62805 3 62813 3 62815 3 62816 3 62819 3 62822 3 62829 3 62835 3 62839 3 62843 3 62845 3 62853 3 62867 3 62874 3 62883 3 62885 3 62895 3 62912 3 62914 3 62919 3 62922 3 62929 3 62932 3 62933 3 62937 3 62949 3 62962 3 62967 3 62969 3 62972 3 62973 3 63003 3 63007 3 63010 3 63016 3 63017 3 63019 3 63031 3 63034 3 63041 3 63044 3 63046 3 63050 3 63051 3 63056 3 63057 3 63062 3 63070 3 63080 3 63084 3 63098 3 63099 3 63115 3 63117 3 63121 3 63124 3 63125 3 63141 3 63149 3 63153 3 63155 3 63156 3 63160 3 63164 3 63165 3 63166 3 63169 3 63171 3 63198 3 63201 3 63210 3 63217 3 63221 3 63241 3 63243 3 63244 3 63251 3 63252 3 63258 3 63259 3 63264 3 63271 3 63273 3 63276 3 63277 3 63287 3 63291 3 63296 3 63298 3 63300 3 63302 3 63308 3 63309 3 63315 3 63317 3 63319 3 63322 3 63323 3 63325 3 63339 3 63347 3 63363 3 63366 3 63389 3 63394 3 63400 3 63408 3 63420 3 63425 3 63436 3 63441 3 63449 3 63479 3 63484 3 63485 3 63488 3 63498 3 63504 3 63510 3 63523 3 63527 3 63537 3 63570 3 63577 3 63600 3 63615 3 63629 3 63636 3 63637 3 63638 3 63651 3 63654 3 63661 3 63675 3 63680 3 63682 3 63687 3 63692 3 63693 3 63695 3 63696 3 63700 3 63710 3 63716 3 63719 3 63724 3 63730 3 63731 3 63735 3 63745 3 63754 3 63757 3 63764 3 63771 3 63776 3 63777 3 63780 3 63784 3 63788 3 63790 3 63795 3 63796 3 63803 3 63805 3 63810 3 63826 3 63831 3 63834 3 63841 3 63846 3 63861 3 63864 3 63867 3 63879 3 63882 3 63885 3 63888 3 63902 3 63908 3 63915 3 63931 3 63934 3 63942 3 63943 3 63955 3 63961 3 63967 3 63968 3 63981 3 63996 3 63997 3 63998 3 64008 3 64011 3 64013 3 64032 3 64034 3 64035 3 64047 3 64048 3 64050 3 64054 3 64056 3 64062 3 64064 3 64066 3 64067 3 64068 3 64070 3 64071 3 64074 3 64084 3 64092 3 64094 3 64096 3 64099 3 64111 3 64122 3 64132 3 64139 3 64147 3 64148 3 64149 3 64151 3 64154 3 64167 3 64170 3 64173 3 64176 3 64186 3 64205 3 64210 3 64212 3 64214 3 64237 3 64242 3 64245 3 64250 3 64252 3 64263 3 64270 3 64275 3 64295 3 64297 3 64315 3 64317 3 64320 3 64329 3 64331 3 64343 3 64347 3 64350 3 64363 3 64375 3 64388 3 64397 3 64405 3 64406 3 64408 3 64434 3 64435 3 64442 3 64449 3 64453 3 64457 3 64459 3 64467 3 64487 3 64495 3 64499 3 64501 3 64507 3 64516 3 64519 3 64540 3 64543 3 64546 3 64554 3 64555 3 64558 3 64561 3 64565 3 64570 3 64581 3 64584 3 64593 3 64606 3 64608 3 64611 3 64613 3 64614 3 64618 3 64619 3 64639 3 64654 3 64657 3 64658 3 64661 3 64667 3 64669 3 64671 3 64679 3 64686 3 64689 3 64705 3 64708 3 64713 3 64714 3 64716 3 64719 3 64720 3 64733 3 64739 3 64750 3 64757 3 64760 3 64764 3 64771 3 64785 3 64787 3 64792 3 64795 3 64840 3 64843 3 64852 3 64853 3 64863 3 64883 3 64904 3 64908 3 64909 3 64919 3 64922 3 64923 3 64931 3 64947 3 64949 3 64952 3 64955 3 64957 3 64958 3 64968 3 64971 3 64972 3 64983 3 64986 3 64992 3 65004 3 65021 3 65028 3 65039 3 65050 3 65054 3 65057 3 65058 3 65060 3 65063 3 65069 3 65070 3 65079 3 65083 3 65086 3 65090 3 65098 3 65101 3 65107 3 65108 3 65109 3 65111 3 65122 3 65128 3 65129 3 65136 3 65141 3 65144 3 65159 3 65162 3 65164 3 65167 3 65169 3 65173 3 65174 3 65175 3 65178 3 65183 3 65187 3 65204 3 65206 3 65224 3 65225 3 65230 3 65249 3 65256 3 65259 3 65262 3 65264 3 65270 3 65278 3 65291 3 65296 3 65305 3 65309 3 65322 3 65325 3 65337 3 65339 3 65349 3 65352 3 65353 3 65354 3 65358 3 65360 3 65365 3 65366 3 65367 3 65376 3 65378 3 65380 3 65397 3 65398 3 65420 3 65421 3 65428 3 65435 3 65436 3 65448 3 65452 3 65455 3 65462 3 65468 3 65474 3 65481 3 65486 3 65489 3 65498 3 65499 3 65500 3 65510 3 65523 3 65528 3 65541 3 65546 3 65553 3 65557 3 65581 3 65588 3 65594 3 65596 3 65601 3 65603 3 65608 3 65615 3 65617 3 65618 3 65621 3 65623 3 65632 3 65634 3 65635 3 65644 3 65647 3 65653 3 65654 3 65657 3 65662 3 65670 3 65676 3 65699 3 65703 3 65724 3 65725 3 65741 3 65744 3 65752 3 65753 3 65756 3 65761 3 65764 3 65790 3 65792 3 65799 3 65801 3 65814 3 65824 3 65862 3 65870 3 65879 3 65884 3 65885 3 65897 3 65903 3 65911 3 65914 3 65919 3 65933 3 65937 3 65941 3 65945 3 65948 3 65957 3 65964 3 65965 3 65969 3 65988 3 65990 3 65993 3 66018 3 66021 3 66027 3 66037 3 66038 3 66040 3 66047 3 66056 3 66057 3 66061 3 66067 3 66075 3 66089 3 66090 3 66091 3 66092 3 66094 3 66095 3 66128 3 66142 3 66143 3 66161 3 66168 3 66169 3 66178 3 66198 3 66200 3 66207 3 66211 3 66222 3 66223 3 66226 3 66231 3 66233 3 66247 3 66261 3 66263 3 66277 3 66280 3 66286 3 66287 3 66289 3 66304 3 66319 3 66324 3 66331 3 66332 3 66335 3 66339 3 66343 3 66347 3 66349 3 66350 3 66354 3 66356 3 66358 3 66365 3 66373 3 66379 3 66387 3 66388 3 66390 3 66397 3 66398 3 66405 3 66419 3 66420 3 66426 3 66434 3 66439 3 66451 3 66454 3 66456 3 66457 3 66458 3 66459 3 66461 3 66473 3 66475 3 66481 3 66487 3 66513 3 66515 3 66518 3 66519 3 66524 3 66532 3 66537 3 66543 3 66547 3 66550 3 66553 3 66561 3 66563 3 66568 3 66571 3 66581 3 66590 3 66591 3 66594 3 66595 3 66599 3 66601 3 66603 3 66606 3 66608 3 66610 3 66613 3 66614 3 66616 3 66622 3 66623 3 66626 3 66627 3 66628 3 66632 3 66634 3 66643 3 66645 3 66652 3 66660 3 66662 3 66663 3 66666 3 66696 3 66708 3 66709 3 66714 3 66715 3 66732 3 66737 3 66739 3 66744 3 66745 3 66749 3 66754 3 66758 3 66759 3 66765 3 66769 3 66775 3 66778 3 66779 3 66781 3 66784 3 66788 3 66798 3 66802 3 66819 3 66829 3 66843 3 66856 3 66865 3 66871 3 66881 3 66887 3 66891 3 66894 3 66899 3 66907 3 66915 3 66918 3 66923 3 66931 3 66934 3 66937 3 66944 3 66952 3 66956 3 66959 3 66961 3 66962 3 66969 3 66970 3 66985 3 66989 3 66990 3 66994 3 67007 3 67008 3 67011 3 67016 3 67034 3 67036 3 67038 3 67041 3 67042 3 67046 3 67048 3 67054 3 67056 3 67062 3 67063 3 67068 3 67071 3 67078 3 67080 3 67085 3 67094 3 67097 3 67102 3 67104 3 67105 3 67107 3 67110 3 67119 3 67132 3 67134 3 67136 3 67142 3 67148 3 67158 3 67162 3 67170 3 67178 3 67179 3 67184 3 67192 3 67195 3 67202 3 67211 3 67221 3 67227 3 67228 3 67235 3 67241 3 67245 3 67249 3 67263 3 67269 3 67273 3 67285 3 67289 3 67295 3 67296 3 67316 3 67317 3 67319 3 67320 3 67330 3 67332 3 67339 3 67342 3 67343 3 67353 3 67358 3 67359 3 67380 3 67392 3 67395 3 67397 3 67401 3 67412 3 67414 3 67416 3 67419 3 67431 3 67435 3 67438 3 67440 3 67442 3 67467 3 67470 3 67471 3 67475 3 67478 3 67481 3 67484 3 67491 3 67496 3 67498 3 67502 3 67508 3 67519 3 67525 3 67526 3 67529 3 67538 3 67539 3 67556 3 67561 3 67568 3 67571 3 67573 3 67578 3 67582 3 67583 3 67592 3 67597 3 67610 3 67618 3 67636 3 67642 3 67644 3 67650 3 67660 3 67691 3 67696 3 67701 3 67705 3 67711 3 67717 3 67723 3 67724 3 67729 3 67739 3 67741 3 67749 3 67757 3 67765 3 67783 3 67786 3 67788 3 67791 3 67797 3 67799 3 67804 3 67818 3 67820 3 67822 3 67823 3 67828 3 67829 3 67830 3 67832 3 67834 3 67841 3 67845 3 67846 3 67847 3 67849 3 67851 3 67855 3 67871 3 67881 3 67887 3 67888 3 67893 3 67904 3 67905 3 67906 3 67908 3 67909 3 67917 3 67922 3 67930 3 67940 3 67943 3 67949 3 67951 3 67953 3 67954 3 67968 3 67972 3 67973 3 67977 3 67991 3 68010 3 68013 3 68031 3 68036 3 68037 3 68039 3 68043 3 68053 3 68057 3 68064 3 68071 3 68075 3 68076 3 68082 3 68083 3 68084 3 68086 3 68091 3 68099 3 68105 3 68106 3 68107 3 68113 3 68115 3 68116 3 68118 3 68125 3 68129 3 68148 3 68153 3 68155 3 68156 3 68163 3 68167 3 68171 3 68172 3 68177 3 68181 3 68190 3 68193 3 68208 3 68209 3 68212 3 68223 3 68232 3 68233 3 68234 3 68239 3 68245 3 68246 3 68249 3 68250 3 68252 3 68255 3 68274 3 68275 3 68280 3 68287 3 68290 3 68304 3 68306 3 68317 3 68322 3 68328 3 68332 3 68335 3 68341 3 68353 3 68357 3 68364 3 68367 3 68369 3 68373 3 68380 3 68389 3 68393 3 68397 3 68414 3 68416 3 68426 3 68434 3 68437 3 68447 3 68450 3 68472 3 68473 3 68484 3 68486 3 68492 3 68497 3 68506 3 68517 3 68521 3 68526 3 68531 3 68534 3 68536 3 68545 3 68549 3 68556 3 68558 3 68576 3 68578 3 68580 3 68584 3 68589 3 68601 3 68609 3 68610 3 68614 3 68619 3 68630 3 68632 3 68635 3 68645 3 68646 3 68650 3 68652 3 68655 3 68659 3 68667 3 68676 3 68684 3 68685 3 68702 3 68714 3 68737 3 68747 3 68751 3 68766 3 68767 3 68774 3 68781 3 68814 3 68819 3 68826 3 68827 3 68841 3 68842 3 68844 3 68849 3 68852 3 68856 3 68858 3 68869 3 68876 3 68895 3 68901 3 68905 3 68910 3 68914 3 68922 3 68925 3 68930 3 68931 3 68934 3 68935 3 68937 3 68946 3 68958 3 68967 3 68976 3 68992 3 68996 3 69003 3 69013 3 69018 3 69019 3 69026 3 69027 3 69030 3 69052 3 69058 3 69060 3 69064 3 69073 3 69076 3 69080 3 69085 3 69089 3 69092 3 69093 3 69106 3 69109 3 69115 3 69117 3 69122 3 69131 3 69137 3 69141 3 69142 3 69158 3 69159 3 69164 3 69166 3 69172 3 69189 3 69196 3 69200 3 69212 3 69213 3 69220 3 69221 3 69252 3 69256 3 69259 3 69262 3 69270 3 69272 3 69275 3 69281 3 69282 3 69291 3 69309 3 69323 3 69348 3 69353 3 69356 3 69369 3 69373 3 69381 3 69392 3 69395 3 69407 3 69417 3 69419 3 69426 3 69427 3 69428 3 69434 3 69441 3 69446 3 69450 3 69456 3 69477 3 69481 3 69492 3 69505 3 69506 3 69525 3 69535 3 69548 3 69552 3 69554 3 69559 3 69593 3 69599 3 69604 3 69609 3 69611 3 69628 3 69631 3 69638 3 69642 3 69644 3 69646 3 69647 3 69649 3 69651 3 69662 3 69666 3 69669 3 69674 3 69678 3 69679 3 69695 3 69696 3 69705 3 69712 3 69714 3 69718 3 69727 3 69732 3 69738 3 69739 3 69741 3 69742 3 69770 3 69773 3 69777 3 69779 3 69790 3 69798 3 69800 3 69809 3 69810 3 69819 3 69831 3 69836 3 69841 3 69844 3 69846 3 69849 3 69855 3 69862 3 69868 3 69875 3 69891 3 69897 3 69899 3 69904 3 69908 3 69912 3 69922 3 69924 3 69931 3 69935 3 69938 3 69939 3 69944 3 69950 3 69952 3 69955 3 69957 3 69959 3 69961 3 69962 3 69963 3 69964 3 69970 3 69976 3 69982 3 69988 3 69995 3 70014 3 70017 3 70027 3 70031 3 70034 3 70035 3 70037 3 70040 3 70046 3 70057 3 70063 3 70064 3 70065 3 70072 3 70078 3 70080 3 70091 3 70099 3 70104 3 70114 3 70130 3 70132 3 70134 3 70137 3 70145 3 70149 3 70152 3 70155 3 70163 3 70169 3 70171 3 70178 3 70180 3 70187 3 70191 3 70196 3 70197 3 70201 3 70209 3 70223 3 70224 3 70228 3 70231 3 70240 3 70243 3 70248 3 70259 3 70262 3 70267 3 70276 3 70278 3 70288 3 70298 3 70309 3 70312 3 70319 3 70324 3 70330 3 70331 3 70337 3 70342 3 70346 3 70354 3 70358 3 70364 3 70367 3 70371 3 70372 3 70380 3 70391 3 70394 3 70398 3 70413 3 70419 3 70431 3 70432 3 70436 3 70446 3 70455 3 70459 3 70480 3 70482 3 70486 3 70492 3 70493 3 70506 3 70518 3 70520 3 70536 3 70537 3 70543 3 70548 3 70560 3 70562 3 70566 3 70569 3 70577 3 70579 3 70582 3 70589 3 70590 3 70609 3 70611 3 70614 3 70615 3 70618 3 70630 3 70631 3 70638 3 70639 3 70646 3 70651 3 70661 3 70671 3 70673 3 70678 3 70681 3 70683 3 70693 3 70696 3 70697 3 70701 3 70707 3 70714 3 70721 3 70723 3 70730 3 70731 3 70738 3 70743 3 70747 3 70750 3 70760 3 70773 3 70785 3 70786 3 70797 3 70799 3 70800 3 70805 3 70807 3 70814 3 70815 3 70819 3 70820 3 70829 3 70835 3 70837 3 70875 3 70888 3 70893 3 70896 3 70899 3 70900 3 70903 3 70908 3 70915 3 70917 3 70921 3 70923 3 70930 3 70932 3 70935 3 70937 3 70938 3 70942 3 70947 3 70951 3 70952 3 70954 3 70971 3 70974 3 70977 3 70992 3 70993 3 70996 3 70998 3 71016 3 71022 3 71027 3 71031 3 71032 3 71038 3 71045 3 71049 3 71051 3 71055 3 71059 3 71072 3 71076 3 71086 3 71088 3 71089 3 71096 3 71098 3 71118 3 71119 3 71126 3 71128 3 71129 3 71150 3 71163 3 71165 3 71168 3 71169 3 71172 3 71175 3 71181 3 71200 3 71201 3 71206 3 71207 3 71208 3 71212 3 71216 3 71218 3 71229 3 71237 3 71245 3 71254 3 71258 3 71259 3 71262 3 71264 3 71265 3 71269 3 71292 3 71300 3 71311 3 71312 3 71323 3 71324 3 71329 3 71338 3 71352 3 71354 3 71392 3 71394 3 71398 3 71399 3 71402 3 71425 3 71428 3 71429 3 71434 3 71438 3 71449 3 71460 3 71464 3 71465 3 71468 3 71474 3 71509 3 71511 3 71513 3 71518 3 71524 3 71528 3 71531 3 71541 3 71544 3 71547 3 71552 3 71554 3 71563 3 71567 3 71569 3 71570 3 71571 3 71572 3 71580 3 71581 3 71586 3 71593 3 71597 3 71598 3 71617 3 71618 3 71621 3 71628 3 71630 3 71639 3 71642 3 71651 3 71653 3 71654 3 71655 3 71682 3 71693 3 71702 3 71713 3 71715 3 71716 3 71729 3 71737 3 71753 3 71757 3 71765 3 71771 3 71775 3 71778 3 71780 3 71781 3 71782 3 71797 3 71801 3 71806 3 71810 3 71816 3 71826 3 71831 3 71836 3 71837 3 71838 3 71845 3 71854 3 71856 3 71863 3 71879 3 71891 3 71902 3 71905 3 71907 3 71925 3 71930 3 71933 3 71935 3 71936 3 71944 3 71946 3 71947 3 71948 3 71950 3 71952 3 71954 3 71956 3 71957 3 71964 3 71965 3 71967 3 71968 3 71971 3 71973 3 71979 3 71987 3 71990 3 72002 3 72015 3 72017 3 72041 3 72042 3 72046 3 72050 3 72052 3 72057 3 72065 3 72076 3 72080 3 72097 3 72098 3 72107 3 72116 3 72127 3 72138 3 72143 3 72150 3 72169 3 72171 3 72178 3 72183 3 72184 3 72199 3 72202 3 72203 3 72206 3 72210 3 72211 3 72215 3 72217 3 72227 3 72231 3 72234 3 72238 3 72239 3 72244 3 72245 3 72248 3 72253 3 72255 3 72260 3 72261 3 72263 3 72265 3 72275 3 72277 3 72279 3 72284 3 72286 3 72287 3 72304 3 72317 3 72323 3 72331 3 72336 3 72338 3 72339 3 72340 3 72345 3 72349 3 72354 3 72363 3 72369 3 72375 3 72377 3 72384 3 72392 3 72394 3 72401 3 72409 3 72410 3 72411 3 72413 3 72418 3 72420 3 72431 3 72437 3 72442 3 72444 3 72449 3 72461 3 72463 3 72470 3 72473 3 72475 3 72476 3 72480 3 72483 3 72485 3 72486 3 72487 3 72489 3 72490 3 72493 3 72495 3 72505 3 72537 3 72542 3 72549 3 72557 3 72560 3 72563 3 72564 3 72578 3 72581 3 72583 3 72584 3 72586 3 72587 3 72591 3 72595 3 72596 3 72604 3 72617 3 72627 3 72644 3 72646 3 72660 3 72661 3 72662 3 72666 3 72669 3 72670 3 72675 3 72677 3 72680 3 72691 3 72698 3 72699 3 72709 3 72711 3 72712 3 72717 3 72725 3 72727 3 72729 3 72732 3 72739 3 72740 3 72741 3 72747 3 72751 3 72776 3 72778 3 72782 3 72784 3 72801 3 72814 3 72822 3 72832 3 72841 3 72845 3 72847 3 72848 3 72854 3 72856 3 72860 3 72863 3 72866 3 72872 3 72873 3 72876 3 72877 3 72890 3 72892 3 72904 3 72909 3 72916 3 72919 3 72930 3 72932 3 72949 3 72958 3 72966 3 72980 3 72981 3 72987 3 72993 3 72995 3 73014 3 73025 3 73026 3 73036 3 73038 3 73042 3 73046 3 73047 3 73053 3 73055 3 73056 3 73059 3 73065 3 73066 3 73077 3 73090 3 73104 3 73113 3 73115 3 73121 3 73122 3 73126 3 73129 3 73130 3 73133 3 73134 3 73136 3 73141 3 73158 3 73164 3 73169 3 73172 3 73181 3 73182 3 73188 3 73192 3 73198 3 73200 3 73204 3 73210 3 73216 3 73226 3 73228 3 73230 3 73234 3 73236 3 73238 3 73247 3 73253 3 73254 3 73258 3 73262 3 73265 3 73280 3 73284 3 73292 3 73293 3 73295 3 73297 3 73298 3 73304 3 73306 3 73317 3 73325 3 73327 3 73340 3 73358 3 73362 3 73368 3 73370 3 73377 3 73382 3 73386 3 73390 3 73393 3 73404 3 73412 3 73427 3 73431 3 73446 3 73447 3 73449 3 73458 3 73460 3 73461 3 73463 3 73475 3 73476 3 73478 3 73488 3 73501 3 73505 3 73506 3 73508 3 73512 3 73521 3 73522 3 73526 3 73540 3 73545 3 73558 3 73559 3 73569 3 73573 3 73576 3 73577 3 73591 3 73598 3 73611 3 73612 3 73614 3 73628 3 73637 3 73638 3 73660 3 73661 3 73665 3 73666 3 73667 3 73670 3 73677 3 73679 3 73683 3 73686 3 73691 3 73692 3 73697 3 73707 3 73711 3 73725 3 73734 3 73736 3 73737 3 73738 3 73740 3 73750 3 73752 3 73761 3 73762 3 73766 3 73768 3 73771 3 73778 3 73779 3 73785 3 73789 3 73798 3 73804 3 73806 3 73810 3 73816 3 73819 3 73820 3 73825 3 73834 3 73842 3 73849 3 73859 3 73878 3 73880 3 73894 3 73895 3 73905 3 73909 3 73910 3 73917 3 73932 3 73936 3 73940 3 73941 3 73954 3 73960 3 73967 3 73971 3 73972 3 73979 3 73992 3 73995 3 73999 3 74012 3 74013 3 74018 3 74032 3 74035 3 74040 3 74042 3 74045 3 74047 3 74049 3 74050 3 74064 3 74073 3 74074 3 74084 3 74089 3 74108 3 74121 3 74122 3 74139 3 74141 3 74142 3 74145 3 74153 3 74158 3 74161 3 74167 3 74172 3 74176 3 74191 3 74192 3 74194 3 74196 3 74202 3 74204 3 74214 3 74215 3 74220 3 74225 3 74227 3 74230 3 74232 3 74235 3 74241 3 74242 3 74250 3 74257 3 74260 3 74263 3 74275 3 74280 3 74287 3 74294 3 74308 3 74311 3 74315 3 74319 3 74322 3 74324 3 74337 3 74339 3 74340 3 74347 3 74351 3 74354 3 74365 3 74372 3 74373 3 74374 3 74381 3 74389 3 74392 3 74395 3 74398 3 74401 3 74404 3 74406 3 74407 3 74410 3 74411 3 74417 3 74430 3 74439 3 74453 3 74458 3 74459 3 74471 3 74473 3 74477 3 74489 3 74494 3 74498 3 74507 3 74508 3 74514 3 74523 3 74524 3 74535 3 74536 3 74541 3 74542 3 74543 3 74545 3 74546 3 74548 3 74553 3 74559 3 74561 3 74566 3 74588 3 74589 3 74613 3 74621 3 74634 3 74642 3 74647 3 74648 3 74652 3 74668 3 74671 3 74677 3 74678 3 74680 3 74699 3 74700 3 74713 3 74716 3 74717 3 74721 3 74722 3 74728 3 74734 3 74736 3 74744 3 74746 3 74758 3 74759 3 74761 3 74774 3 74775 3 74778 3 74788 3 74802 3 74803 3 74804 3 74807 3 74809 3 74815 3 74817 3 74819 3 74824 3 74827 3 74829 3 74835 3 74844 3 74848 3 74861 3 74873 3 74880 3 74884 3 74889 3 74893 3 74894 3 74895 3 74898 3 74899 3 74903 3 74908 3 74912 3 74914 3 74916 3 74925 3 74929 3 74944 3 74949 3 74957 3 74958 3 74964 3 74969 3 74971 3 74980 3 74984 3 74999 3 75003 3 75013 3 75018 3 75025 3 75034 3 75065 3 75066 3 75068 3 75075 3 75079 3 75082 3 75083 3 75087 3 75090 3 75097 3 75100 3 75102 3 75114 3 75121 3 75122 3 75129 3 75139 3 75141 3 75144 3 75150 3 75155 3 75157 3 75166 3 75173 3 75174 3 75177 3 75190 3 75194 3 75195 3 75196 3 75197 3 75200 3 75218 3 75223 3 75227 3 75232 3 75238 3 75243 3 75251 3 75261 3 75263 3 75268 3 75272 3 75273 3 75274 3 75285 3 75286 3 75289 3 75292 3 75306 3 75309 3 75317 3 75319 3 75327 3 75330 3 75331 3 75332 3 75338 3 75352 3 75361 3 75362 3 75374 3 75380 3 75384 3 75385 3 75386 3 75387 3 75388 3 75394 3 75398 3 75405 3 75413 3 75420 3 75427 3 75430 3 75433 3 75439 3 75450 3 75452 3 75475 3 75486 3 75488 3 75513 3 75522 3 75525 3 75526 3 75545 3 75554 3 75559 3 75575 3 75578 3 75583 3 75584 3 75585 3 75587 3 75593 3 75595 3 75599 3 75601 3 75607 3 75622 3 75623 3 75624 3 75628 3 75633 3 75636 3 75640 3 75642 3 75650 3 75651 3 75678 3 75694 3 75696 3 75702 3 75705 3 75714 3 75715 3 75719 3 75732 3 75734 3 75738 3 75744 3 75748 3 75756 3 75767 3 75775 3 75776 3 75784 3 75786 3 75794 3 75797 3 75800 3 75814 3 75830 3 75834 3 75843 3 75849 3 75851 3 75852 3 75854 3 75861 3 75862 3 75871 3 75872 3 75873 3 75881 3 75895 3 75905 3 75907 3 75910 3 75911 3 75919 3 75921 3 75922 3 75923 3 75924 3 75927 3 75931 3 75932 3 75934 3 75938 3 75939 3 75944 3 75953 3 75954 3 75963 3 75969 3 75971 3 75975 3 75976 3 75978 3 75985 3 76010 3 76015 3 76021 3 76023 3 76028 3 76032 3 76034 3 76037 3 76040 3 76051 3 76059 3 76070 3 76073 3 76088 3 76103 3 76104 3 76123 3 76126 3 76129 3 76130 3 76141 3 76146 3 76149 3 76151 3 76153 3 76154 3 76167 3 76171 3 76181 3 76189 3 76192 3 76194 3 76195 3 76200 3 76210 3 76219 3 76223 3 76225 3 76233 3 76247 3 76250 3 76254 3 76257 3 76261 3 76271 3 76272 3 76282 3 76287 3 76288 3 76289 3 76292 3 76301 3 76309 3 76314 3 76341 3 76343 3 76344 3 76347 3 76351 3 76353 3 76355 3 76358 3 76360 3 76362 3 76373 3 76379 3 76381 3 76383 3 76393 3 76403 3 76405 3 76406 3 76413 3 76434 3 76443 3 76447 3 76451 3 76453 3 76454 3 76471 3 76475 3 76476 3 76477 3 76478 3 76482 3 76485 3 76492 3 76504 3 76507 3 76511 3 76515 3 76519 3 76520 3 76525 3 76526 3 76545 3 76558 3 76559 3 76568 3 76572 3 76576 3 76582 3 76584 3 76587 3 76588 3 76589 3 76599 3 76600 3 76602 3 76603 3 76605 3 76613 3 76619 3 76620 3 76626 3 76632 3 76638 3 76640 3 76641 3 76642 3 76644 3 76667 3 76675 3 76681 3 76686 3 76688 3 76697 3 76701 3 76703 3 76709 3 76710 3 76716 3 76720 3 76721 3 76733 3 76734 3 76744 3 76746 3 76757 3 76758 3 76759 3 76763 3 76765 3 76772 3 76785 3 76787 3 76797 3 76798 3 76809 3 76812 3 76815 3 76818 3 76821 3 76822 3 76829 3 76846 3 76850 3 76854 3 76856 3 76861 3 76870 3 76871 3 76880 3 76888 3 76898 3 76899 3 76906 3 76930 3 76931 3 76940 3 76942 3 76951 3 76953 3 76958 3 76959 3 76976 3 76978 3 76981 3 76987 3 76990 3 76992 3 76998 3 77000 3 77001 3 77007 3 77014 3 77016 3 77024 3 77026 3 77028 3 77033 3 77037 3 77038 3 77048 3 77054 3 77059 3 77061 3 77062 3 77075 3 77076 3 77077 3 77085 3 77086 3 77096 3 77099 3 77107 3 77110 3 77126 3 77133 3 77149 3 77150 3 77157 3 77161 3 77164 3 77166 3 77180 3 77192 3 77200 3 77201 3 77206 3 77217 3 77220 3 77223 3 77230 3 77235 3 77241 3 77244 3 77247 3 77254 3 77256 3 77270 3 77281 3 77288 3 77289 3 77294 3 77295 3 77299 3 77301 3 77325 3 77326 3 77338 3 77341 3 77344 3 77355 3 77361 3 77365 3 77367 3 77382 3 77386 3 77387 3 77390 3 77391 3 77394 3 77403 3 77413 3 77428 3 77431 3 77433 3 77434 3 77435 3 77436 3 77438 3 77442 3 77449 3 77450 3 77465 3 77466 3 77507 3 77516 3 77517 3 77521 3 77522 3 77542 3 77549 3 77550 3 77551 3 77552 3 77553 3 77564 3 77565 3 77567 3 77569 3 77571 3 77578 3 77585 3 77593 3 77596 3 77601 3 77603 3 77618 3 77621 3 77628 3 77629 3 77631 3 77633 3 77641 3 77646 3 77647 3 77649 3 77655 3 77656 3 77658 3 77660 3 77664 3 77667 3 77670 3 77671 3 77672 3 77677 3 77694 3 77696 3 77700 3 77715 3 77723 3 77727 3 77731 3 77733 3 77742 3 77744 3 77750 3 77754 3 77767 3 77769 3 77771 3 77779 3 77783 3 77784 3 77785 3 77789 3 77791 3 77802 3 77806 3 77819 3 77827 3 77835 3 77842 3 77854 3 77855 3 77860 3 77864 3 77879 3 77881 3 77883 3 77891 3 77901 3 77904 3 77905 3 77918 3 77928 3 77942 3 77946 3 77948 3 77959 3 77960 3 77965 3 77968 3 77969 3 77972 3 77973 3 77984 3 77995 3 77997 3 77999 3 78002 3 78003 3 78005 3 78007 3 78008 3 78013 3 78021 3 78033 3 78034 3 78036 3 78040 3 78048 3 78055 3 78056 3 78058 3 78071 3 78074 3 78081 3 78084 3 78089 3 78096 3 78103 3 78105 3 78107 3 78112 3 78119 3 78120 3 78127 3 78131 3 78139 3 78144 3 78145 3 78146 3 78166 3 78171 3 78174 3 78176 3 78179 3 78180 3 78185 3 78192 3 78195 3 78197 3 78223 3 78234 3 78239 3 78241 3 78248 3 78257 3 78261 3 78264 3 78267 3 78269 3 78270 3 78273 3 78277 3 78283 3 78284 3 78291 3 78292 3 78297 3 78298 3 78299 3 78300 3 78302 3 78305 3 78336 3 78341 3 78343 3 78345 3 78351 3 78363 3 78365 3 78366 3 78369 3 78371 3 78374 3 78378 3 78390 3 78393 3 78394 3 78400 3 78401 3 78409 3 78421 3 78422 3 78429 3 78453 3 78474 3 78477 3 78478 3 78485 3 78493 3 78497 3 78513 3 78523 3 78525 3 78533 3 78534 3 78556 3 78562 3 78564 3 78574 3 78575 3 78576 3 78577 3 78585 3 78588 3 78590 3 78598 3 78599 3 78607 3 78613 3 78623 3 78634 3 78644 3 78652 3 78654 3 78662 3 78672 3 78692 3 78703 3 78709 3 78752 3 78755 3 78759 3 78766 3 78768 3 78771 3 78772 3 78774 3 78778 3 78781 3 78783 3 78785 3 78786 3 78795 3 78798 3 78807 3 78810 3 78823 3 78842 3 78848 3 78850 3 78862 3 78883 3 78889 3 78891 3 78893 3 78894 3 78896 3 78898 3 78901 3 78902 3 78909 3 78913 3 78917 3 78918 3 78928 3 78939 3 78946 3 78947 3 78957 3 78964 3 78978 3 78988 3 78993 3 78997 3 79004 3 79008 3 79014 3 79030 3 79036 3 79044 3 79051 3 79064 3 79065 3 79071 3 79072 3 79078 3 79079 3 79093 3 79102 3 79106 3 79111 3 79113 3 79116 3 79133 3 79135 3 79141 3 79144 3 79149 3 79152 3 79155 3 79160 3 79175 3 79191 3 79192 3 79200 3 79203 3 79209 3 79211 3 79218 3 79222 3 79228 3 79231 3 79232 3 79237 3 79243 3 79245 3 79246 3 79249 3 79251 3 79258 3 79283 3 79284 3 79285 3 79287 3 79293 3 79298 3 79303 3 79304 3 79305 3 79307 3 79310 3 79311 3 79313 3 79319 3 79327 3 79332 3 79337 3 79338 3 79339 3 79341 3 79356 3 79364 3 79365 3 79367 3 79376 3 79379 3 79381 3 79382 3 79385 3 79391 3 79410 3 79415 3 79448 3 79453 3 79456 3 79457 3 79465 3 79475 3 79478 3 79482 3 79487 3 79490 3 79495 3 79496 3 79507 3 79526 3 79536 3 79537 3 79543 3 79559 3 79563 3 79576 3 79590 3 79598 3 79600 3 79604 3 79609 3 79631 3 79640 3 79644 3 79672 3 79678 3 79679 3 79692 3 79697 3 79700 3 79701 3 79708 3 79713 3 79716 3 79722 3 79723 3 79727 3 79735 3 79736 3 79738 3 79741 3 79753 3 79755 3 79764 3 79778 3 79783 3 79788 3 79797 3 79814 3 79816 3 79817 3 79827 3 79846 3 79851 3 79854 3 79858 3 79870 3 79894 3 79897 3 79905 3 79908 3 79911 3 79912 3 79921 3 79935 3 79944 3 79947 3 79949 3 79950 3 79952 3 79954 3 79956 3 79957 3 79970 3 79972 3 79978 3 79983 3 79988 3 80008 3 80010 3 80012 3 80019 3 80020 3 80028 3 80035 3 80043 3 80056 3 80060 3 80064 3 80065 3 80066 3 80068 3 80073 3 80077 3 80083 3 80084 3 80086 3 80089 3 80106 3 80108 3 80109 3 80113 3 80125 3 80134 3 80135 3 80137 3 80146 3 80147 3 80149 3 80151 3 80152 3 80168 3 80178 3 80179 3 80186 3 80193 3 80199 3 80209 3 80210 3 80215 3 80218 3 80219 3 80223 3 80229 3 80246 3 80248 3 80252 3 80257 3 80258 3 80265 3 80267 3 80269 3 80279 3 80288 3 80289 3 80290 3 80293 3 80298 3 80301 3 80306 3 80307 3 80313 3 80317 3 80319 3 80321 3 80322 3 80327 3 80342 3 80349 3 80356 3 80362 3 80363 3 80365 3 80366 3 80370 3 80378 3 80381 3 80393 3 80403 3 80407 3 80408 3 80414 3 80422 3 80426 3 80432 3 80441 3 80444 3 80445 3 80447 3 80451 3 80468 3 80469 3 80478 3 80480 3 80481 3 80482 3 80484 3 80485 3 80492 3 80496 3 80504 3 80508 3 80513 3 80518 3 80519 3 80530 3 80532 3 80539 3 80540 3 80551 3 80558 3 80570 3 80572 3 80581 3 80585 3 80588 3 80589 3 80590 3 80594 3 80599 3 80601 3 80604 3 80609 3 80621 3 80631 3 80632 3 80636 3 80645 3 80646 3 80648 3 80650 3 80654 3 80659 3 80666 3 80668 3 80681 3 80687 3 80689 3 80702 3 80706 3 80707 3 80720 3 80721 3 80744 3 80752 3 80753 3 80760 3 80766 3 80773 3 80776 3 80780 3 80784 3 80785 3 80787 3 80799 3 80803 3 80818 3 80831 3 80838 3 80853 3 80855 3 80879 3 80893 3 80906 3 80907 3 80919 3 80939 3 80945 3 80951 3 80953 3 80954 3 80956 3 80957 3 80961 3 80962 3 80964 3 80968 3 80970 3 80972 3 80987 3 80993 3 80994 3 81000 3 81003 3 81014 3 81020 3 81024 3 81058 3 81063 3 81064 3 81074 3 81090 3 81092 3 81094 3 81098 3 81102 3 81113 3 81127 3 81132 3 81136 3 81146 3 81147 3 81149 3 81150 3 81151 3 81152 3 81161 3 81170 3 81171 3 81175 3 81177 3 81181 3 81183 3 81190 3 81192 3 81199 3 81220 3 81225 3 81230 3 81232 3 81236 3 81241 3 81251 3 81262 3 81266 3 81281 3 81286 3 81288 3 81289 3 81299 3 81303 3 81317 3 81322 3 81341 3 81347 3 81351 3 81354 3 81358 3 81359 3 81368 3 81372 3 81374 3 81375 3 81376 3 81384 3 81387 3 81406 3 81408 3 81427 3 81439 3 81442 3 81450 3 81455 3 81456 3 81463 3 81466 3 81467 3 81471 3 81473 3 81479 3 81485 3 81486 3 81502 3 81509 3 81510 3 81511 3 81539 3 81542 3 81553 3 81571 3 81576 3 81610 3 81611 3 81613 3 81620 3 81627 3 81630 3 81631 3 81636 3 81639 3 81640 3 81645 3 81650 3 81659 3 81665 3 81666 3 81671 3 81673 3 81681 3 81692 3 81702 3 81709 3 81717 3 81722 3 81728 3 81729 3 81731 3 81732 3 81734 3 81737 3 81738 3 81739 3 81746 3 81747 3 81750 3 81752 3 81755 3 81762 3 81770 3 81775 3 81777 3 81780 3 81796 3 81797 3 81800 3 81808 3 81825 3 81827 3 81830 3 81834 3 81835 3 81841 3 81842 3 81844 3 81857 3 81862 3 81863 3 81870 3 81872 3 81879 3 81889 3 81897 3 81899 3 81901 3 81919 3 81921 3 81927 3 81929 3 81946 3 81950 3 81955 3 81958 3 81973 3 81976 3 81982 3 81991 3 81992 3 81995 3 82000 3 82002 3 82005 3 82010 3 82011 3 82015 3 82019 3 82020 3 82025 3 82031 3 82044 3 82052 3 82063 3 82066 3 82070 3 82077 3 82078 3 82084 3 82090 3 82096 3 82103 3 82106 3 82107 3 82108 3 82110 3 82114 3 82115 3 82119 3 82135 3 82138 3 82147 3 82149 3 82151 3 82152 3 82168 3 82174 3 82182 3 82199 3 82200 3 82204 3 82205 3 82216 3 82221 3 82230 3 82239 3 82240 3 82249 3 82257 3 82293 3 82316 3 82326 3 82347 3 82350 3 82352 3 82357 3 82358 3 82360 3 82362 3 82369 3 82379 3 82390 3 82391 3 82393 3 82402 3 82403 3 82421 3 82430 3 82440 3 82469 3 82471 3 82473 3 82484 3 82487 3 82492 3 82498 3 82499 3 82505 3 82514 3 82517 3 82520 3 82525 3 82527 3 82528 3 82531 3 82533 3 82535 3 82543 3 82544 3 82546 3 82554 3 82555 3 82572 3 82587 3 82595 3 82596 3 82600 3 82606 3 82611 3 82618 3 82622 3 82624 3 82626 3 82633 3 82639 3 82640 3 82642 3 82648 3 82652 3 82654 3 82659 3 82668 3 82671 3 82687 3 82693 3 82697 3 82699 3 82703 3 82719 3 82721 3 82723 3 82728 3 82753 3 82755 3 82766 3 82771 3 82774 3 82775 3 82776 3 82778 3 82785 3 82789 3 82792 3 82797 3 82810 3 82816 3 82820 3 82830 3 82833 3 82836 3 82849 3 82850 3 82855 3 82858 3 82863 3 82865 3 82876 3 82880 3 82882 3 82894 3 82909 3 82910 3 82919 3 82921 3 82924 3 82925 3 82926 3 82928 3 82935 3 82938 3 82950 3 82953 3 82971 3 82986 3 82989 3 82997 3 83004 3 83007 3 83012 3 83013 3 83020 3 83031 3 83033 3 83034 3 83037 3 83038 3 83042 3 83050 3 83052 3 83071 3 83072 3 83076 3 83079 3 83082 3 83085 3 83095 3 83104 3 83105 3 83126 3 83127 3 83129 3 83134 3 83148 3 83149 3 83155 3 83158 3 83160 3 83163 3 83164 3 83178 3 83187 3 83193 3 83194 3 83199 3 83203 3 83205 3 83207 3 83219 3 83232 3 83236 3 83247 3 83250 3 83262 3 83265 3 83266 3 83267 3 83270 3 83283 3 83286 3 83291 3 83292 3 83300 3 83304 3 83305 3 83323 3 83329 3 83332 3 83343 3 83347 3 83358 3 83376 3 83381 3 83393 3 83401 3 83407 3 83416 3 83418 3 83419 3 83427 3 83448 3 83449 3 83465 3 83469 3 83470 3 83476 3 83482 3 83488 3 83502 3 83503 3 83509 3 83514 3 83519 3 83525 3 83527 3 83534 3 83545 3 83550 3 83564 3 83567 3 83576 3 83577 3 83581 3 83607 3 83614 3 83621 3 83622 3 83631 3 83641 3 83642 3 83643 3 83644 3 83668 3 83669 3 83675 3 83682 3 83685 3 83698 3 83703 3 83709 3 83720 3 83725 3 83738 3 83752 3 83754 3 83756 3 83761 3 83765 3 83768 3 83776 3 83777 3 83779 3 83780 3 83801 3 83807 3 83817 3 83821 3 83824 3 83832 3 83833 3 83840 3 83860 3 83861 3 83864 3 83868 3 83873 3 83878 3 83881 3 83884 3 83889 3 83896 3 83902 3 83903 3 83905 3 83918 3 83922 3 83927 3 83932 3 83936 3 83943 3 83947 3 83954 3 83955 3 83960 3 83969 3 83973 3 83976 3 83979 3 83986 3 83990 3 84001 3 84002 3 84013 3 84020 3 84034 3 84042 3 84046 3 84048 3 84055 3 84056 3 84064 3 84065 3 84070 3 84071 3 84078 3 84081 3 84096 3 84097 3 84108 3 84110 3 84119 3 84124 3 84126 3 84137 3 84147 3 84150 3 84157 3 84158 3 84159 3 84163 3 84166 3 84168 3 84170 3 84171 3 84182 3 84195 3 84197 3 84203 3 84206 3 84209 3 84217 3 84222 3 84224 3 84225 3 84228 3 84230 3 84232 3 84260 3 84262 3 84264 3 84265 3 84269 3 84270 3 84273 3 84275 3 84279 3 84293 3 84299 3 84304 3 84307 3 84309 3 84314 3 84322 3 84329 3 84330 3 84336 3 84337 3 84340 3 84345 3 84348 3 84349 3 84354 3 84372 3 84384 3 84385 3 84388 3 84390 3 84393 3 84404 3 84406 3 84415 3 84427 3 84430 3 84448 3 84450 3 84452 3 84465 3 84468 3 84477 3 84479 3 84480 3 84485 3 84505 3 84507 3 84527 3 84531 3 84536 3 84546 3 84548 3 84551 3 84560 3 84563 3 84564 3 84571 3 84579 3 84582 3 84596 3 84634 3 84635 3 84647 3 84652 3 84658 3 84665 3 84668 3 84669 3 84674 3 84679 3 84680 3 84721 3 84739 3 84742 3 84761 3 84765 3 84770 3 84794 3 84799 3 84811 3 84812 3 84818 3 84824 3 84828 3 84840 3 84841 3 84847 3 84848 3 84853 3 84862 3 84869 3 84873 3 84874 3 84877 3 84879 3 84882 3 84889 3 84907 3 84915 3 84923 3 84933 3 84946 3 84957 3 84958 3 84965 3 84966 3 84967 3 84968 3 84969 3 84977 3 84985 3 85000 3 85014 3 85016 3 85026 3 85028 3 85029 3 85035 3 85054 3 85055 3 85060 3 85063 3 85065 3 85067 3 85070 3 85078 3 85080 3 85098 3 85103 3 85112 3 85115 3 85117 3 85118 3 85126 3 85134 3 85138 3 85145 3 85146 3 85154 3 85158 3 85162 3 85173 3 85183 3 85191 3 85193 3 85195 3 85197 3 85198 3 85203 3 85211 3 85213 3 85224 3 85231 3 85248 3 85268 3 85269 3 85285 3 85314 3 85328 3 85329 3 85336 3 85340 3 85345 3 85349 3 85350 3 85353 3 85383 3 85396 3 85403 3 85410 3 85414 3 85416 3 85417 3 85427 3 85430 3 85446 3 85447 3 85449 3 85459 3 85463 3 85467 3 85468 3 85469 3 85470 3 85473 3 85495 3 85502 3 85510 3 85513 3 85515 3 85520 3 85522 3 85524 3 85535 3 85538 3 85545 3 85549 3 85560 3 85563 3 85584 3 85585 3 85590 3 85591 3 85607 3 85630 3 85631 3 85637 3 85649 3 85653 3 85656 3 85662 3 85664 3 85667 3 85675 3 85680 3 85684 3 85696 3 85699 3 85704 3 85710 3 85717 3 85718 3 85725 3 85727 3 85729 3 85751 3 85752 3 85758 3 85764 3 85765 3 85775 3 85777 3 85781 3 85782 3 85811 3 85817 3 85827 3 85831 3 85835 3 85839 3 85841 3 85848 3 85856 3 85860 3 85865 3 85869 3 85880 3 85898 3 85906 3 85907 3 85916 3 85925 3 85927 3 85931 3 85940 3 85944 3 85955 3 85959 3 85962 3 85964 3 85976 3 85980 3 85984 3 85985 3 85990 3 85992 3 85998 3 86003 3 86008 3 86011 3 86016 3 86023 3 86036 3 86039 3 86055 3 86062 3 86068 3 86071 3 86081 3 86095 3 86099 3 86107 3 86109 3 86110 3 86114 3 86117 3 86119 3 86120 3 86123 3 86129 3 86133 3 86137 3 86142 3 86145 3 86150 3 86151 3 86161 3 86173 3 86177 3 86203 3 86206 3 86207 3 86212 3 86214 3 86216 3 86218 3 86224 3 86238 3 86240 3 86254 3 86261 3 86265 3 86267 3 86269 3 86271 3 86273 3 86274 3 86276 3 86279 3 86282 3 86284 3 86285 3 86306 3 86307 3 86309 3 86312 3 86321 3 86325 3 86326 3 86331 3 86333 3 86386 3 86392 3 86394 3 86396 3 86397 3 86404 3 86405 3 86407 3 86412 3 86417 3 86438 3 86445 3 86448 3 86467 3 86497 3 86498 3 86513 3 86516 3 86536 3 86539 3 86540 3 86548 3 86549 3 86555 3 86561 3 86567 3 86569 3 86582 3 86600 3 86610 3 86618 3 86626 3 86629 3 86641 3 86645 3 86648 3 86650 3 86651 3 86658 3 86663 3 86666 3 86670 3 86671 3 86674 3 86677 3 86678 3 86679 3 86680 3 86683 3 86688 3 86694 3 86703 3 86709 3 86710 3 86712 3 86713 3 86720 3 86721 3 86733 3 86775 3 86779 3 86795 3 86797 3 86800 3 86804 3 86810 3 86812 3 86814 3 86818 3 86825 3 86828 3 86831 3 86833 3 86836 3 86838 3 86851 3 86854 3 86855 3 86858 3 86871 3 86884 3 86885 3 86887 3 86906 3 86912 3 86916 3 86919 3 86923 3 86927 3 86928 3 86929 3 86930 3 86933 3 86936 3 86938 3 86940 3 86954 3 86960 3 86979 3 86986 3 86992 3 86995 3 87000 3 87023 3 87028 3 87029 3 87034 3 87040 3 87041 3 87044 3 87051 3 87053 3 87060 3 87065 3 87067 3 87070 3 87075 3 87079 3 87083 3 87090 3 87099 3 87104 3 87119 3 87120 3 87122 3 87126 3 87139 3 87142 3 87145 3 87150 3 87154 3 87157 3 87173 3 87175 3 87193 3 87198 3 87203 3 87211 3 87214 3 87215 3 87220 3 87225 3 87226 3 87231 3 87233 3 87235 3 87237 3 87242 3 87246 3 87247 3 87255 3 87256 3 87260 3 87271 3 87281 3 87284 3 87288 3 87291 3 87295 3 87300 3 87313 3 87315 3 87320 3 87321 3 87328 3 87343 3 87363 3 87364 3 87367 3 87372 3 87378 3 87383 3 87394 3 87401 3 87407 3 87409 3 87412 3 87413 3 87434 3 87437 3 87442 3 87444 3 87445 3 87448 3 87449 3 87451 3 87454 3 87455 3 87459 3 87460 3 87467 3 87495 3 87496 3 87499 3 87503 3 87509 3 87542 3 87547 3 87556 3 87558 3 87559 3 87576 3 87577 3 87585 3 87592 3 87596 3 87603 3 87607 3 87613 3 87615 3 87616 3 87625 3 87627 3 87628 3 87645 3 87646 3 87648 3 87650 3 87653 3 87656 3 87662 3 87672 3 87678 3 87693 3 87706 3 87708 3 87713 3 87716 3 87717 3 87718 3 87724 3 87734 3 87735 3 87743 3 87750 3 87758 3 87759 3 87764 3 87769 3 87788 3 87790 3 87796 3 87797 3 87798 3 87803 3 87809 3 87810 3 87811 3 87822 3 87823 3 87832 3 87833 3 87835 3 87836 3 87839 3 87840 3 87846 3 87849 3 87852 3 87862 3 87875 3 87876 3 87878 3 87889 3 87893 3 87900 3 87913 3 87917 3 87920 3 87934 3 87942 3 87949 3 87953 3 87965 3 87968 3 87979 3 88007 3 88009 3 88012 3 88014 3 88017 3 88019 3 88027 3 88038 3 88040 3 88041 3 88051 3 88052 3 88054 3 88056 3 88061 3 88066 3 88068 3 88076 3 88078 3 88081 3 88095 3 88098 3 88102 3 88110 3 88114 3 88118 3 88121 3 88126 3 88129 3 88133 3 88136 3 88141 3 88154 3 88162 3 88173 3 88179 3 88180 3 88188 3 88194 3 88196 3 88197 3 88206 3 88207 3 88212 3 88218 3 88225 3 88227 3 88228 3 88230 3 88232 3 88233 3 88237 3 88242 3 88250 3 88252 3 88266 3 88267 3 88270 3 88272 3 88276 3 88279 3 88280 3 88299 3 88301 3 88305 3 88311 3 88313 3 88316 3 88325 3 88326 3 88329 3 88332 3 88351 3 88354 3 88358 3 88384 3 88392 3 88394 3 88424 3 88426 3 88432 3 88439 3 88449 3 88457 3 88458 3 88463 3 88483 3 88488 3 88511 3 88516 3 88518 3 88520 3 88529 3 88531 3 88533 3 88534 3 88546 3 88554 3 88556 3 88566 3 88570 3 88572 3 88573 3 88577 3 88580 3 88603 3 88604 3 88612 3 88615 3 88637 3 88638 3 88684 3 88701 3 88702 3 88704 3 88709 3 88712 3 88714 3 88715 3 88721 3 88725 3 88731 3 88745 3 88753 3 88755 3 88756 3 88759 3 88762 3 88764 3 88771 3 88778 3 88780 3 88783 3 88794 3 88796 3 88797 3 88798 3 88808 3 88818 3 88821 3 88835 3 88842 3 88845 3 88847 3 88849 3 88851 3 88852 3 88858 3 88861 3 88863 3 88875 3 88876 3 88878 3 88882 3 88891 3 88904 3 88905 3 88909 3 88928 3 88930 3 88935 3 88958 3 88960 3 88979 3 88980 3 88983 3 88984 3 88994 3 88995 3 89005 3 89011 3 89013 3 89017 3 89025 3 89029 3 89031 3 89034 3 89049 3 89062 3 89083 3 89091 3 89096 3 89102 3 89109 3 89114 3 89137 3 89144 3 89148 3 89162 3 89167 3 89180 3 89185 3 89193 3 89196 3 89201 3 89210 3 89211 3 89218 3 89220 3 89228 3 89247 3 89249 3 89267 3 89270 3 89271 3 89277 3 89285 3 89286 3 89302 3 89303 3 89308 3 89312 3 89314 3 89318 3 89320 3 89322 3 89332 3 89340 3 89345 3 89348 3 89352 3 89355 3 89365 3 89370 3 89372 3 89373 3 89384 3 89386 3 89393 3 89399 3 89403 3 89407 3 89411 3 89415 3 89418 3 89419 3 89420 3 89427 3 89429 3 89437 3 89440 3 89448 3 89460 3 89467 3 89470 3 89481 3 89494 3 89496 3 89518 3 89525 3 89537 3 89538 3 89546 3 89554 3 89556 3 89567 3 89570 3 89573 3 89576 3 89581 3 89590 3 89603 3 89604 3 89607 3 89612 3 89614 3 89624 3 89637 3 89640 3 89643 3 89645 3 89654 3 89673 3 89680 3 89704 3 89706 3 89708 3 89718 3 89722 3 89723 3 89734 3 89740 3 89744 3 89748 3 89755 3 89759 3 89766 3 89768 3 89769 3 89771 3 89781 3 89782 3 89796 3 89803 3 89804 3 89808 3 89816 3 89825 3 89827 3 89829 3 89836 3 89837 3 89839 3 89841 3 89858 3 89861 3 89872 3 89888 3 89899 3 89900 3 89915 3 89916 3 89937 3 89947 3 89948 3 89960 3 89964 3 89967 3 89983 3 89986 3 89989 3 89991 3 89992 3 90003 3 90020 3 90022 3 90024 3 90030 3 90036 3 90045 3 90055 3 90059 3 90060 3 90061 3 90069 3 90071 3 90077 3 90083 3 90086 3 90089 3 90092 3 90095 3 90120 3 90126 3 90135 3 90141 3 90148 3 90149 3 90159 3 90161 3 90170 3 90203 3 90207 3 90208 3 90220 3 90223 3 90225 3 90228 3 90237 3 90249 3 90258 3 90281 3 90288 3 90289 3 90291 3 90296 3 90299 3 90315 3 90325 3 90330 3 90336 3 90343 3 90349 3 90356 3 90360 3 90364 3 90371 3 90380 3 90383 3 90385 3 90387 3 90390 3 90394 3 90404 3 90406 3 90415 3 90423 3 90424 3 90431 3 90438 3 90439 3 90441 3 90449 3 90456 3 90457 3 90461 3 90462 3 90464 3 90465 3 90476 3 90479 3 90480 3 90483 3 90487 3 90497 3 90500 3 90505 3 90507 3 90515 3 90524 3 90526 3 90540 3 90541 3 90542 3 90544 3 90547 3 90553 3 90555 3 90565 3 90569 3 90578 3 90585 3 90586 3 90590 3 90591 3 90599 3 90603 3 90613 3 90618 3 90626 3 90627 3 90651 3 90653 3 90664 3 90671 3 90683 3 90690 3 90691 3 90699 3 90700 3 90701 3 90702 3 90703 3 90706 3 90709 3 90715 3 90721 3 90727 3 90728 3 90734 3 90737 3 90743 3 90749 3 90750 3 90753 3 90758 3 90765 3 90780 3 90784 3 90785 3 90792 3 90798 3 90807 3 90811 3 90817 3 90821 3 90822 3 90834 3 90836 3 90840 3 90842 3 90856 3 90859 3 90861 3 90866 3 90873 3 90874 3 90876 3 90877 3 90885 3 90890 3 90898 3 90901 3 90916 3 90926 3 90937 3 90942 3 90944 3 90951 3 90954 3 90956 3 90960 3 90965 3 90967 3 90969 3 90987 3 90992 3 90995 3 90997 3 90999 3 91020 3 91025 3 91029 3 91032 3 91034 3 91040 3 91041 3 91045 3 91056 3 91060 3 91061 3 91069 3 91073 3 91080 3 91085 3 91088 3 91089 3 91099 3 91103 3 91107 3 91109 3 91114 3 91133 3 91154 3 91168 3 91215 3 91230 3 91231 3 91236 3 91239 3 91270 3 91282 3 91292 3 91305 3 91318 3 91330 3 91335 3 91348 3 91352 3 91367 3 91379 3 91400 3 91405 3 91408 3 91410 3 91413 3 91422 3 91440 3 91446 3 91454 3 91458 3 91464 3 91466 3 91487 3 91490 3 91494 3 91501 3 91503 3 91504 3 91505 3 91511 3 91512 3 91514 3 91520 3 91523 3 91535 3 91537 3 91539 3 91540 3 91545 3 91554 3 91564 3 91570 3 91573 3 91574 3 91584 3 91587 3 91592 3 91601 3 91603 3 91605 3 91613 3 91617 3 91618 3 91634 3 91640 3 91648 3 91657 3 91658 3 91660 3 91667 3 91669 3 91672 3 91684 3 91691 3 91701 3 91703 3 91706 3 91708 3 91711 3 91715 3 91716 3 91717 3 91720 3 91721 3 91722 3 91729 3 91737 3 91746 3 91747 3 91749 3 91754 3 91757 3 91762 3 91770 3 91775 3 91779 3 91785 3 91800 3 91809 3 91813 3 91825 3 91827 3 91832 3 91834 3 91850 3 91851 3 91855 3 91872 3 91873 3 91878 3 91881 3 91892 3 91896 3 91902 3 91914 3 91915 3 91918 3 91919 3 91927 3 91929 3 91950 3 91953 3 91954 3 91955 3 91956 3 91969 3 91973 3 91983 3 91989 3 91990 3 92005 3 92006 3 92008 3 92014 3 92018 3 92021 3 92022 3 92029 3 92040 3 92054 3 92059 3 92060 3 92065 3 92067 3 92068 3 92069 3 92071 3 92072 3 92074 3 92075 3 92077 3 92078 3 92080 3 92092 3 92100 3 92104 3 92107 3 92109 3 92118 3 92131 3 92132 3 92136 3 92142 3 92159 3 92160 3 92166 3 92167 3 92171 3 92172 3 92175 3 92182 3 92199 3 92205 3 92207 3 92208 3 92209 3 92210 3 92211 3 92222 3 92223 3 92229 3 92231 3 92233 3 92236 3 92239 3 92242 3 92254 3 92255 3 92270 3 92274 3 92275 3 92277 3 92290 3 92293 3 92296 3 92305 3 92309 3 92312 3 92318 3 92321 3 92324 3 92331 3 92333 3 92336 3 92339 3 92340 3 92351 3 92352 3 92354 3 92355 3 92367 3 92373 3 92375 3 92378 3 92383 3 92387 3 92389 3 92392 3 92397 3 92413 3 92414 3 92416 3 92417 3 92419 3 92426 3 92433 3 92436 3 92450 3 92457 3 92466 3 92474 3 92476 3 92486 3 92487 3 92496 3 92497 3 92507 3 92508 3 92519 3 92529 3 92531 3 92532 3 92543 3 92546 3 92553 3 92559 3 92573 3 92578 3 92584 3 92588 3 92590 3 92596 3 92601 3 92604 3 92610 3 92613 3 92615 3 92617 3 92619 3 92632 3 92636 3 92641 3 92648 3 92655 3 92657 3 92658 3 92662 3 92665 3 92667 3 92670 3 92673 3 92679 3 92681 3 92685 3 92688 3 92693 3 92695 3 92698 3 92700 3 92714 3 92716 3 92717 3 92720 3 92721 3 92722 3 92727 3 92729 3 92730 3 92732 3 92735 3 92743 3 92747 3 92757 3 92758 3 92760 3 92762 3 92764 3 92769 3 92771 3 92773 3 92775 3 92776 3 92779 3 92780 3 92788 3 92790 3 92804 3 92810 3 92811 3 92813 3 92820 3 92824 3 92827 3 92832 3 92834 3 92839 3 92852 3 92853 3 92855 3 92856 3 92860 3 92861 3 92862 3 92871 3 92879 3 92892 3 92893 3 92894 3 92906 3 92908 3 92921 3 92927 3 92931 3 92934 3 92935 3 92978 3 93006 3 93029 3 93035 3 93044 3 93045 3 93049 3 93053 3 93061 3 93082 3 93086 3 93089 3 93105 3 93109 3 93116 3 93119 3 93126 3 93135 3 93144 3 93146 3 93171 3 93175 3 93176 3 93180 3 93194 3 93196 3 93205 3 93206 3 93210 3 93211 3 93221 3 93222 3 93225 3 93244 3 93247 3 93249 3 93252 3 93254 3 93259 3 93260 3 93272 3 93283 3 93284 3 93285 3 93286 3 93293 3 93300 3 93323 3 93330 3 93331 3 93338 3 93346 3 93354 3 93356 3 93361 3 93365 3 93367 3 93378 3 93382 3 93391 3 93397 3 93409 3 93412 3 93421 3 93427 3 93430 3 93431 3 93432 3 93438 3 93460 3 93462 3 93469 3 93475 3 93477 3 93483 3 93484 3 93492 3 93493 3 93494 3 93497 3 93502 3 93515 3 93516 3 93523 3 93537 3 93542 3 93546 3 93550 3 93555 3 93560 3 93562 3 93567 3 93568 3 93572 3 93573 3 93575 3 93587 3 93588 3 93594 3 93597 3 93599 3 93602 3 93605 3 93611 3 93632 3 93638 3 93641 3 93643 3 93647 3 93652 3 93655 3 93656 3 93666 3 93675 3 93679 3 93682 3 93696 3 93697 3 93699 3 93700 3 93701 3 93708 3 93720 3 93732 3 93734 3 93738 3 93742 3 93744 3 93745 3 93748 3 93758 3 93762 3 93764 3 93767 3 93768 3 93772 3 93775 3 93777 3 93784 3 93790 3 93791 3 93819 3 93821 3 93839 3 93842 3 93844 3 93852 3 93862 3 93878 3 93884 3 93885 3 93887 3 93895 3 93900 3 93901 3 93915 3 93921 3 93924 3 93933 3 93947 3 93948 3 93954 3 93961 3 93966 3 93975 3 93986 3 93988 3 93994 3 94002 3 94004 3 94006 3 94008 3 94017 3 94018 3 94028 3 94030 3 94033 3 94050 3 94052 3 94053 3 94057 3 94058 3 94062 3 94064 3 94068 3 94069 3 94072 3 94088 3 94091 3 94100 3 94102 3 94110 3 94113 3 94117 3 94119 3 94122 3 94130 3 94136 3 94138 3 94148 3 94160 3 94161 3 94165 3 94166 3 94172 3 94177 3 94182 3 94184 3 94187 3 94190 3 94207 3 94214 3 94217 3 94218 3 94221 3 94223 3 94227 3 94229 3 94232 3 94235 3 94240 3 94249 3 94251 3 94255 3 94257 3 94263 3 94269 3 94282 3 94284 3 94290 3 94294 3 94300 3 94320 3 94322 3 94324 3 94330 3 94345 3 94357 3 94359 3 94363 3 94378 3 94385 3 94405 3 94411 3 94414 3 94424 3 94425 3 94433 3 94451 3 94456 3 94463 3 94467 3 94469 3 94475 3 94487 3 94492 3 94494 3 94501 3 94503 3 94507 3 94520 3 94523 3 94530 3 94535 3 94540 3 94546 3 94549 3 94553 3 94569 3 94588 3 94591 3 94595 3 94596 3 94599 3 94601 3 94602 3 94604 3 94605 3 94607 3 94611 3 94616 3 94619 3 94622 3 94627 3 94632 3 94634 3 94636 3 94640 3 94641 3 94648 3 94650 3 94656 3 94661 3 94669 3 94673 3 94674 3 94676 3 94683 3 94688 3 94695 3 94698 3 94699 3 94704 3 94714 3 94720 3 94738 3 94747 3 94758 3 94766 3 94770 3 94783 3 94785 3 94788 3 94792 3 94796 3 94797 3 94819 3 94825 3 94827 3 94836 3 94837 3 94840 3 94846 3 94854 3 94855 3 94860 3 94867 3 94871 3 94872 3 94873 3 94879 3 94884 3 94899 3 94902 3 94903 3 94908 3 94916 3 94918 3 94919 3 94923 3 94932 3 94934 3 94940 3 94941 3 94956 3 94959 3 94960 3 94968 3 94970 3 94973 3 94978 3 94980 3 94984 3 94988 3 94995 3 95004 3 95005 3 95015 3 95017 3 95023 3 95028 3 95029 3 95031 3 95032 3 95038 3 95049 3 95054 3 95055 3 95058 3 95067 3 95075 3 95076 3 95078 3 95081 3 95086 3 95097 3 95106 3 95107 3 95115 3 95118 3 95121 3 95129 3 95132 3 95135 3 95136 3 95144 3 95150 3 95156 3 95171 3 95173 3 95187 3 95204 3 95221 3 95222 3 95230 3 95232 3 95234 3 95238 3 95239 3 95244 3 95251 3 95254 3 95282 3 95288 3 95290 3 95305 3 95315 3 95324 3 95328 3 95330 3 95333 3 95359 3 95364 3 95368 3 95374 3 95377 3 95378 3 95382 3 95384 3 95390 3 95394 3 95406 3 95410 3 95413 3 95424 3 95425 3 95431 3 95435 3 95441 3 95445 3 95457 3 95458 3 95465 3 95469 3 95482 3 95489 3 95491 3 95501 3 95508 3 95515 3 95517 3 95523 3 95530 3 95540 3 95542 3 95547 3 95563 3 95567 3 95583 3 95590 3 95591 3 95598 3 95609 3 95613 3 95616 3 95623 3 95625 3 95626 3 95631 3 95650 3 95657 3 95666 3 95669 3 95674 3 95689 3 95698 3 95701 3 95703 3 95717 3 95722 3 95727 3 95730 3 95731 3 95737 3 95742 3 95744 3 95745 3 95748 3 95752 3 95755 3 95758 3 95767 3 95777 3 95782 3 95785 3 95790 3 95793 3 95801 3 95806 3 95810 3 95811 3 95829 3 95831 3 95832 3 95836 3 95843 3 95871 3 95875 3 95880 3 95884 3 95893 3 95894 3 95898 3 95907 3 95914 3 95925 3 95932 3 95933 3 95936 3 95948 3 95959 3 95971 3 95980 3 95982 3 95986 3 95997 3 95999 3 96009 3 96011 3 96019 3 96032 3 96034 3 96043 3 96047 3 96049 3 96056 3 96058 3 96068 3 96070 3 96071 3 96078 3 96079 3 96081 3 96091 3 96093 3 96098 3 96108 3 96110 3 96119 3 96121 3 96124 3 96128 3 96132 3 96141 3 96145 3 96156 3 96157 3 96158 3 96164 3 96167 3 96175 3 96180 3 96187 3 96188 3 96226 3 96229 3 96230 3 96234 3 96235 3 96239 3 96241 3 96244 3 96245 3 96249 3 96259 3 96264 3 96281 3 96282 3 96285 3 96288 3 96290 3 96296 3 96308 3 96316 3 96319 3 96331 3 96334 3 96347 3 96351 3 96356 3 96362 3 96365 3 96369 3 96383 3 96387 3 96403 3 96411 3 96421 3 96422 3 96431 3 96432 3 96433 3 96437 3 96440 3 96443 3 96444 3 96445 3 96448 3 96450 3 96454 3 96456 3 96463 3 96468 3 96478 3 96482 3 96484 3 96487 3 96488 3 96491 3 96500 3 96503 3 96523 3 96525 3 96527 3 96530 3 96532 3 96535 3 96538 3 96543 3 96546 3 96548 3 96552 3 96553 3 96557 3 96567 3 96573 3 96574 3 96577 3 96578 3 96580 3 96589 3 96590 3 96601 3 96604 3 96613 3 96617 3 96618 3 96619 3 96626 3 96629 3 96632 3 96643 3 96648 3 96649 3 96653 3 96664 3 96666 3 96673 3 96688 3 96689 3 96692 3 96694 3 96697 3 96703 3 96705 3 96711 3 96714 3 96717 3 96727 3 96732 3 96743 3 96748 3 96757 3 96761 3 96779 3 96781 3 96782 3 96789 3 96807 3 96817 3 96838 3 96841 3 96847 3 96857 3 96858 3 96861 3 96866 3 96868 3 96870 3 96879 3 96883 3 96889 3 96896 3 96897 3 96900 3 96909 3 96927 3 96929 3 96931 3 96959 3 96964 3 96975 3 96977 3 96981 3 96989 3 96991 3 96995 3 97002 3 97007 3 97018 3 97025 3 97028 3 97036 3 97038 3 97042 3 97056 3 97057 3 97074 3 97077 3 97080 3 97091 3 97107 3 97110 3 97111 3 97113 3 97117 3 97122 3 97144 3 97145 3 97170 3 97174 3 97176 3 97180 3 97181 3 97197 3 97202 3 97206 3 97219 3 97222 3 97224 3 97232 3 97233 3 97239 3 97240 3 97243 3 97255 3 97261 3 97263 3 97269 3 97278 3 97280 3 97285 3 97290 3 97293 3 97302 3 97303 3 97305 3 97307 3 97326 3 97329 3 97331 3 97333 3 97335 3 97336 3 97338 3 97343 3 97346 3 97357 3 97358 3 97367 3 97368 3 97380 3 97382 3 97390 3 97391 3 97393 3 97395 3 97400 3 97402 3 97403 3 97404 3 97409 3 97413 3 97417 3 97428 3 97429 3 97436 3 97441 3 97451 3 97452 3 97457 3 97459 3 97460 3 97463 3 97474 3 97476 3 97481 3 97482 3 97483 3 97486 3 97497 3 97501 3 97502 3 97503 3 97509 3 97510 3 97511 3 97518 3 97525 3 97528 3 97540 3 97541 3 97543 3 97546 3 97547 3 97552 3 97555 3 97557 3 97559 3 97561 3 97567 3 97568 3 97569 3 97571 3 97572 3 97573 3 97575 3 97577 3 97579 3 97582 3 97591 3 97600 3 97611 3 97617 3 97621 3 97624 3 97633 3 97635 3 97637 3 97643 3 97644 3 97647 3 97650 3 97654 3 97657 3 97671 3 97680 3 97682 3 97686 3 97692 3 97694 3 97697 3 97699 3 97704 3 97706 3 97707 3 97714 3 97718 3 97719 3 97730 3 97731 3 97734 3 97740 3 97747 3 97748 3 97753 3 97797 3 97798 3 97801 3 97802 3 97804 3 97821 3 97824 3 97829 3 97831 3 97844 3 97850 3 97853 3 97866 3 97867 3 97868 3 97874 3 97878 3 97880 3 97881 3 97886 3 97890 3 97899 3 97903 3 97905 3 97930 3 97947 3 97956 3 97957 3 97964 3 97976 3 97979 3 97992 3 97999 3 98003 3 98004 3 98020 3 98024 3 98031 3 98039 3 98049 3 98055 3 98056 3 98071 3 98072 3 98073 3 98075 3 98088 3 98101 3 98106 3 98120 3 98126 3 98127 3 98129 3 98135 3 98141 3 98144 3 98152 3 98168 3 98171 3 98172 3 98178 3 98194 3 98199 3 98205 3 98221 3 98222 3 98223 3 98230 3 98236 3 98241 3 98249 3 98255 3 98256 3 98259 3 98267 3 98277 3 98279 3 98285 3 98286 3 98292 3 98300 3 98312 3 98317 3 98321 3 98323 3 98328 3 98329 3 98330 3 98335 3 98338 3 98339 3 98342 3 98344 3 98350 3 98367 3 98384 3 98388 3 98391 3 98392 3 98401 3 98410 3 98425 3 98426 3 98430 3 98432 3 98435 3 98438 3 98453 3 98456 3 98458 3 98460 3 98470 3 98472 3 98474 3 98475 3 98476 3 98478 3 98487 3 98488 3 98489 3 98490 3 98493 3 98500 3 98504 3 98508 3 98510 3 98512 3 98517 3 98518 3 98547 3 98559 3 98571 3 98592 3 98597 3 98601 3 98620 3 98621 3 98624 3 98630 3 98633 3 98640 3 98642 3 98643 3 98651 3 98656 3 98659 3 98671 3 98675 3 98677 3 98681 3 98683 3 98689 3 98698 3 98699 3 98701 3 98705 3 98709 3 98722 3 98730 3 98742 3 98745 3 98746 3 98759 3 98762 3 98765 3 98768 3 98771 3 98774 3 98780 3 98799 3 98805 3 98806 3 98815 3 98824 3 98828 3 98834 3 98838 3 98839 3 98845 3 98849 3 98855 3 98864 3 98867 3 98869 3 98876 3 98879 3 98899 3 98905 3 98908 3 98915 3 98921 3 98925 3 98928 3 98939 3 98945 3 98957 3 98966 3 98972 3 98981 3 98990 3 98993 3 17 4 19 4 22 4 33 4 41 4 44 4 50 4 54 4 58 4 59 4 64 4 69 4 73 4 74 4 76 4 80 4 88 4 95 4 107 4 108 4 111 4 118 4 119 4 133 4 134 4 142 4 145 4 147 4 154 4 156 4 159 4 162 4 163 4 171 4 172 4 202 4 205 4 209 4 210 4 212 4 213 4 215 4 220 4 223 4 233 4 234 4 245 4 247 4 256 4 260 4 261 4 267 4 282 4 285 4 287 4 293 4 301 4 302 4 305 4 318 4 320 4 323 4 325 4 327 4 328 4 335 4 345 4 346 4 350 4 354 4 358 4 362 4 367 4 368 4 375 4 376 4 378 4 379 4 388 4 389 4 398 4 410 4 414 4 419 4 427 4 431 4 439 4 444 4 451 4 456 4 460 4 461 4 470 4 474 4 478 4 479 4 482 4 483 4 487 4 496 4 505 4 514 4 517 4 519 4 525 4 527 4 529 4 532 4 538 4 540 4 542 4 548 4 554 4 556 4 567 4 580 4 581 4 587 4 589 4 590 4 597 4 606 4 609 4 612 4 615 4 617 4 619 4 624 4 629 4 635 4 646 4 652 4 662 4 665 4 671 4 676 4 677 4 689 4 693 4 696 4 706 4 710 4 711 4 713 4 717 4 725 4 726 4 739 4 740 4 741 4 742 4 744 4 750 4 755 4 777 4 781 4 791 4 797 4 801 4 805 4 809 4 811 4 816 4 817 4 820 4 823 4 825 4 827 4 833 4 839 4 845 4 852 4 873 4 885 4 888 4 909 4 919 4 925 4 929 4 949 4 951 4 953 4 956 4 960 4 962 4 963 4 969 4 978 4 985 4 992 4 996 4 999 4 1013 4 1031 4 1034 4 1036 4 1039 4 1049 4 1051 4 1058 4 1059 4 1066 4 1069 4 1080 4 1085 4 1086 4 1090 4 1091 4 1094 4 1095 4 1103 4 1116 4 1118 4 1133 4 1138 4 1141 4 1153 4 1158 4 1161 4 1163 4 1169 4 1170 4 1173 4 1189 4 1197 4 1203 4 1208 4 1211 4 1215 4 1217 4 1236 4 1238 4 1242 4 1245 4 1261 4 1284 4 1289 4 1290 4 1305 4 1310 4 1313 4 1314 4 1318 4 1319 4 1324 4 1329 4 1336 4 1339 4 1341 4 1344 4 1368 4 1374 4 1382 4 1383 4 1386 4 1390 4 1392 4 1402 4 1411 4 1413 4 1414 4 1430 4 1439 4 1453 4 1462 4 1468 4 1479 4 1491 4 1496 4 1512 4 1533 4 1535 4 1542 4 1543 4 1553 4 1554 4 1571 4 1576 4 1577 4 1580 4 1582 4 1590 4 1597 4 1600 4 1608 4 1609 4 1612 4 1615 4 1617 4 1620 4 1622 4 1626 4 1638 4 1640 4 1647 4 1659 4 1660 4 1663 4 1666 4 1668 4 1677 4 1681 4 1684 4 1686 4 1690 4 1702 4 1705 4 1709 4 1710 4 1721 4 1728 4 1733 4 1742 4 1743 4 1747 4 1757 4 1765 4 1769 4 1770 4 1779 4 1789 4 1811 4 1816 4 1817 4 1827 4 1848 4 1850 4 1862 4 1863 4 1865 4 1866 4 1873 4 1878 4 1887 4 1890 4 1892 4 1898 4 1903 4 1911 4 1924 4 1925 4 1932 4 1934 4 1938 4 1941 4 1947 4 1955 4 1976 4 1983 4 1996 4 1997 4 2000 4 2008 4 2009 4 2019 4 2034 4 2041 4 2050 4 2066 4 2073 4 2092 4 2102 4 2103 4 2110 4 2112 4 2114 4 2121 4 2124 4 2132 4 2135 4 2140 4 2145 4 2146 4 2153 4 2167 4 2168 4 2170 4 2175 4 2180 4 2181 4 2186 4 2190 4 2203 4 2205 4 2207 4 2211 4 2212 4 2221 4 2226 4 2232 4 2238 4 2248 4 2254 4 2272 4 2294 4 2298 4 2308 4 2312 4 2315 4 2325 4 2329 4 2331 4 2333 4 2336 4 2337 4 2358 4 2359 4 2361 4 2364 4 2370 4 2386 4 2393 4 2398 4 2402 4 2406 4 2413 4 2418 4 2421 4 2427 4 2428 4 2437 4 2445 4 2451 4 2453 4 2454 4 2455 4 2461 4 2476 4 2477 4 2480 4 2487 4 2491 4 2493 4 2498 4 2501 4 2523 4 2530 4 2531 4 2536 4 2540 4 2545 4 2553 4 2554 4 2558 4 2563 4 2565 4 2567 4 2570 4 2577 4 2591 4 2593 4 2598 4 2606 4 2613 4 2624 4 2626 4 2644 4 2645 4 2648 4 2665 4 2673 4 2674 4 2677 4 2679 4 2690 4 2694 4 2695 4 2698 4 2703 4 2705 4 2710 4 2711 4 2714 4 2716 4 2726 4 2731 4 2734 4 2735 4 2743 4 2745 4 2762 4 2770 4 2776 4 2778 4 2793 4 2796 4 2803 4 2804 4 2822 4 2839 4 2841 4 2843 4 2846 4 2856 4 2871 4 2873 4 2887 4 2899 4 2907 4 2908 4 2910 4 2914 4 2922 4 2924 4 2926 4 2927 4 2931 4 2933 4 2940 4 2949 4 2964 4 2968 4 2979 4 2982 4 2988 4 2991 4 2992 4 3004 4 3008 4 3011 4 3017 4 3030 4 3038 4 3050 4 3059 4 3067 4 3070 4 3076 4 3087 4 3098 4 3100 4 3114 4 3119 4 3120 4 3123 4 3129 4 3135 4 3138 4 3145 4 3146 4 3149 4 3162 4 3171 4 3181 4 3185 4 3191 4 3196 4 3197 4 3201 4 3202 4 3205 4 3213 4 3215 4 3216 4 3227 4 3232 4 3233 4 3241 4 3247 4 3255 4 3258 4 3269 4 3283 4 3285 4 3289 4 3299 4 3311 4 3334 4 3338 4 3339 4 3345 4 3347 4 3348 4 3353 4 3369 4 3381 4 3383 4 3384 4 3387 4 3400 4 3403 4 3407 4 3414 4 3415 4 3417 4 3418 4 3420 4 3422 4 3426 4 3432 4 3442 4 3445 4 3453 4 3454 4 3467 4 3483 4 3485 4 3486 4 3490 4 3501 4 3503 4 3507 4 3508 4 3515 4 3519 4 3521 4 3523 4 3525 4 3535 4 3539 4 3542 4 3563 4 3567 4 3569 4 3573 4 3580 4 3587 4 3604 4 3608 4 3612 4 3613 4 3614 4 3618 4 3621 4 3647 4 3652 4 3653 4 3656 4 3666 4 3667 4 3668 4 3685 4 3690 4 3711 4 3713 4 3715 4 3731 4 3741 4 3763 4 3769 4 3773 4 3780 4 3787 4 3794 4 3795 4 3802 4 3822 4 3824 4 3836 4 3838 4 3847 4 3849 4 3856 4 3861 4 3862 4 3868 4 3878 4 3903 4 3907 4 3908 4 3918 4 3920 4 3944 4 3945 4 3948 4 3956 4 3963 4 3968 4 3972 4 3973 4 3976 4 3978 4 3985 4 3986 4 3987 4 3993 4 3997 4 4000 4 4004 4 4006 4 4009 4 4017 4 4033 4 4036 4 4048 4 4049 4 4057 4 4059 4 4061 4 4062 4 4063 4 4064 4 4074 4 4085 4 4087 4 4088 4 4090 4 4108 4 4111 4 4113 4 4115 4 4121 4 4123 4 4130 4 4134 4 4136 4 4147 4 4149 4 4151 4 4155 4 4160 4 4174 4 4176 4 4177 4 4180 4 4184 4 4185 4 4187 4 4191 4 4192 4 4194 4 4198 4 4201 4 4209 4 4213 4 4216 4 4236 4 4244 4 4245 4 4249 4 4253 4 4254 4 4266 4 4270 4 4288 4 4299 4 4304 4 4305 4 4311 4 4312 4 4322 4 4326 4 4331 4 4336 4 4342 4 4347 4 4349 4 4350 4 4351 4 4353 4 4357 4 4363 4 4368 4 4372 4 4375 4 4378 4 4383 4 4395 4 4396 4 4397 4 4408 4 4409 4 4410 4 4413 4 4416 4 4429 4 4433 4 4436 4 4437 4 4442 4 4462 4 4466 4 4474 4 4477 4 4484 4 4490 4 4492 4 4497 4 4508 4 4511 4 4525 4 4528 4 4531 4 4533 4 4534 4 4543 4 4556 4 4564 4 4578 4 4581 4 4584 4 4591 4 4597 4 4602 4 4608 4 4610 4 4635 4 4647 4 4655 4 4660 4 4661 4 4667 4 4672 4 4675 4 4676 4 4678 4 4682 4 4694 4 4695 4 4699 4 4700 4 4713 4 4716 4 4721 4 4726 4 4728 4 4730 4 4732 4 4742 4 4749 4 4750 4 4754 4 4760 4 4764 4 4765 4 4769 4 4784 4 4786 4 4787 4 4788 4 4805 4 4811 4 4814 4 4817 4 4818 4 4822 4 4827 4 4831 4 4832 4 4851 4 4860 4 4862 4 4869 4 4874 4 4911 4 4914 4 4915 4 4917 4 4921 4 4923 4 4931 4 4941 4 4945 4 4951 4 4958 4 4959 4 4961 4 4966 4 4969 4 4971 4 4978 4 4981 4 4999 4 5000 4 5001 4 5004 4 5012 4 5021 4 5024 4 5048 4 5056 4 5057 4 5069 4 5070 4 5076 4 5079 4 5094 4 5102 4 5115 4 5118 4 5132 4 5136 4 5142 4 5149 4 5152 4 5156 4 5157 4 5170 4 5173 4 5183 4 5200 4 5209 4 5219 4 5245 4 5246 4 5248 4 5249 4 5251 4 5254 4 5262 4 5266 4 5270 4 5275 4 5283 4 5286 4 5301 4 5302 4 5311 4 5323 4 5324 4 5328 4 5333 4 5338 4 5341 4 5343 4 5347 4 5349 4 5352 4 5364 4 5371 4 5379 4 5383 4 5391 4 5396 4 5409 4 5413 4 5417 4 5421 4 5422 4 5425 4 5438 4 5450 4 5457 4 5459 4 5464 4 5466 4 5467 4 5468 4 5480 4 5481 4 5487 4 5494 4 5524 4 5530 4 5531 4 5534 4 5536 4 5539 4 5540 4 5541 4 5549 4 5555 4 5568 4 5576 4 5580 4 5584 4 5588 4 5592 4 5603 4 5606 4 5609 4 5614 4 5616 4 5619 4 5624 4 5631 4 5637 4 5641 4 5649 4 5650 4 5662 4 5668 4 5669 4 5671 4 5679 4 5681 4 5691 4 5696 4 5703 4 5704 4 5715 4 5725 4 5732 4 5733 4 5736 4 5746 4 5753 4 5758 4 5759 4 5765 4 5773 4 5774 4 5777 4 5786 4 5787 4 5789 4 5792 4 5803 4 5805 4 5821 4 5840 4 5842 4 5857 4 5861 4 5867 4 5868 4 5875 4 5880 4 5881 4 5885 4 5895 4 5896 4 5898 4 5914 4 5917 4 5919 4 5926 4 5928 4 5935 4 5946 4 5947 4 5959 4 5962 4 5965 4 5966 4 5968 4 5971 4 5975 4 5976 4 5986 4 5988 4 6004 4 6023 4 6036 4 6037 4 6046 4 6057 4 6061 4 6066 4 6072 4 6074 4 6077 4 6083 4 6092 4 6099 4 6101 4 6107 4 6115 4 6121 4 6130 4 6135 4 6141 4 6142 4 6144 4 6149 4 6150 4 6152 4 6153 4 6156 4 6160 4 6162 4 6184 4 6188 4 6191 4 6196 4 6202 4 6204 4 6207 4 6211 4 6216 4 6217 4 6221 4 6222 4 6225 4 6239 4 6242 4 6245 4 6246 4 6258 4 6260 4 6265 4 6268 4 6275 4 6284 4 6293 4 6316 4 6319 4 6320 4 6325 4 6326 4 6328 4 6329 4 6330 4 6336 4 6342 4 6343 4 6353 4 6368 4 6379 4 6380 4 6387 4 6388 4 6392 4 6400 4 6410 4 6417 4 6422 4 6423 4 6425 4 6438 4 6453 4 6455 4 6458 4 6459 4 6464 4 6468 4 6476 4 6480 4 6487 4 6490 4 6498 4 6500 4 6506 4 6510 4 6512 4 6519 4 6521 4 6526 4 6527 4 6532 4 6535 4 6538 4 6542 4 6544 4 6559 4 6560 4 6565 4 6566 4 6576 4 6577 4 6581 4 6584 4 6587 4 6594 4 6614 4 6623 4 6630 4 6633 4 6644 4 6658 4 6660 4 6668 4 6670 4 6676 4 6696 4 6704 4 6711 4 6715 4 6727 4 6731 4 6733 4 6735 4 6736 4 6738 4 6743 4 6746 4 6748 4 6751 4 6756 4 6757 4 6760 4 6769 4 6775 4 6777 4 6784 4 6786 4 6816 4 6817 4 6825 4 6840 4 6842 4 6858 4 6859 4 6877 4 6884 4 6888 4 6896 4 6915 4 6919 4 6923 4 6934 4 6935 4 6941 4 6945 4 6953 4 6958 4 6962 4 6963 4 6972 4 6978 4 6982 4 6990 4 6992 4 6999 4 7004 4 7007 4 7013 4 7015 4 7017 4 7021 4 7034 4 7035 4 7043 4 7044 4 7051 4 7062 4 7078 4 7079 4 7083 4 7093 4 7097 4 7100 4 7111 4 7116 4 7129 4 7132 4 7136 4 7138 4 7139 4 7140 4 7146 4 7154 4 7159 4 7164 4 7165 4 7182 4 7189 4 7203 4 7206 4 7214 4 7220 4 7221 4 7236 4 7237 4 7239 4 7240 4 7241 4 7243 4 7247 4 7253 4 7258 4 7262 4 7263 4 7268 4 7270 4 7273 4 7275 4 7278 4 7279 4 7284 4 7299 4 7315 4 7318 4 7321 4 7323 4 7333 4 7338 4 7345 4 7346 4 7348 4 7352 4 7353 4 7355 4 7356 4 7369 4 7379 4 7386 4 7392 4 7401 4 7402 4 7404 4 7405 4 7415 4 7462 4 7466 4 7469 4 7491 4 7492 4 7505 4 7507 4 7517 4 7519 4 7532 4 7537 4 7538 4 7545 4 7549 4 7553 4 7555 4 7563 4 7565 4 7566 4 7576 4 7578 4 7581 4 7615 4 7617 4 7623 4 7628 4 7633 4 7635 4 7636 4 7642 4 7643 4 7652 4 7654 4 7655 4 7657 4 7659 4 7660 4 7662 4 7665 4 7675 4 7701 4 7707 4 7710 4 7721 4 7726 4 7727 4 7734 4 7736 4 7738 4 7739 4 7741 4 7743 4 7745 4 7755 4 7761 4 7771 4 7773 4 7776 4 7788 4 7791 4 7798 4 7799 4 7802 4 7815 4 7825 4 7833 4 7836 4 7845 4 7850 4 7854 4 7855 4 7865 4 7866 4 7867 4 7869 4 7872 4 7893 4 7903 4 7905 4 7928 4 7930 4 7931 4 7932 4 7935 4 7936 4 7939 4 7941 4 7942 4 7950 4 7959 4 7966 4 7970 4 7973 4 7986 4 7988 4 7994 4 8006 4 8011 4 8014 4 8015 4 8018 4 8025 4 8028 4 8037 4 8040 4 8041 4 8047 4 8061 4 8075 4 8082 4 8084 4 8087 4 8088 4 8090 4 8101 4 8102 4 8109 4 8124 4 8135 4 8157 4 8160 4 8166 4 8173 4 8174 4 8193 4 8194 4 8206 4 8208 4 8209 4 8214 4 8237 4 8238 4 8241 4 8242 4 8243 4 8256 4 8263 4 8266 4 8268 4 8277 4 8299 4 8313 4 8328 4 8334 4 8338 4 8340 4 8341 4 8347 4 8350 4 8360 4 8379 4 8387 4 8394 4 8396 4 8397 4 8412 4 8415 4 8420 4 8421 4 8429 4 8437 4 8445 4 8454 4 8460 4 8465 4 8469 4 8474 4 8477 4 8484 4 8487 4 8501 4 8505 4 8508 4 8511 4 8514 4 8527 4 8532 4 8539 4 8540 4 8550 4 8570 4 8571 4 8585 4 8588 4 8590 4 8594 4 8614 4 8623 4 8627 4 8636 4 8646 4 8656 4 8659 4 8663 4 8694 4 8702 4 8703 4 8706 4 8714 4 8720 4 8722 4 8726 4 8731 4 8738 4 8747 4 8768 4 8773 4 8775 4 8781 4 8783 4 8785 4 8786 4 8794 4 8802 4 8806 4 8808 4 8818 4 8822 4 8826 4 8829 4 8833 4 8844 4 8845 4 8847 4 8848 4 8849 4 8854 4 8856 4 8859 4 8864 4 8869 4 8871 4 8874 4 8876 4 8880 4 8890 4 8893 4 8894 4 8896 4 8898 4 8906 4 8908 4 8924 4 8959 4 8963 4 8964 4 8975 4 8982 4 8989 4 8992 4 8995 4 8996 4 8997 4 9003 4 9004 4 9011 4 9012 4 9020 4 9021 4 9034 4 9039 4 9041 4 9042 4 9048 4 9052 4 9065 4 9068 4 9078 4 9094 4 9095 4 9105 4 9113 4 9121 4 9128 4 9131 4 9136 4 9141 4 9145 4 9148 4 9150 4 9152 4 9159 4 9167 4 9170 4 9180 4 9192 4 9193 4 9196 4 9201 4 9205 4 9209 4 9211 4 9213 4 9222 4 9223 4 9224 4 9233 4 9237 4 9239 4 9263 4 9264 4 9275 4 9278 4 9281 4 9286 4 9292 4 9293 4 9294 4 9310 4 9312 4 9322 4 9323 4 9334 4 9339 4 9340 4 9349 4 9356 4 9363 4 9364 4 9366 4 9383 4 9385 4 9393 4 9407 4 9413 4 9418 4 9422 4 9426 4 9429 4 9431 4 9458 4 9459 4 9460 4 9471 4 9472 4 9473 4 9474 4 9476 4 9493 4 9498 4 9501 4 9502 4 9504 4 9525 4 9533 4 9541 4 9542 4 9548 4 9549 4 9555 4 9557 4 9565 4 9580 4 9584 4 9585 4 9587 4 9589 4 9593 4 9595 4 9597 4 9607 4 9612 4 9615 4 9624 4 9625 4 9640 4 9643 4 9644 4 9646 4 9650 4 9655 4 9657 4 9662 4 9664 4 9674 4 9688 4 9692 4 9707 4 9711 4 9712 4 9719 4 9722 4 9727 4 9735 4 9739 4 9747 4 9752 4 9768 4 9782 4 9791 4 9800 4 9807 4 9816 4 9821 4 9826 4 9827 4 9830 4 9837 4 9848 4 9861 4 9868 4 9874 4 9888 4 9894 4 9895 4 9903 4 9905 4 9906 4 9908 4 9909 4 9911 4 9913 4 9921 4 9928 4 9932 4 9935 4 9936 4 9943 4 9948 4 9953 4 9958 4 9966 4 9974 4 9981 4 9982 4 9992 4 9997 4 9999 4 10015 4 10018 4 10035 4 10039 4 10045 4 10048 4 10051 4 10059 4 10061 4 10063 4 10065 4 10071 4 10074 4 10080 4 10084 4 10089 4 10110 4 10113 4 10120 4 10121 4 10129 4 10134 4 10136 4 10142 4 10143 4 10159 4 10168 4 10173 4 10179 4 10191 4 10192 4 10205 4 10213 4 10218 4 10222 4 10230 4 10244 4 10247 4 10250 4 10257 4 10259 4 10267 4 10281 4 10299 4 10318 4 10324 4 10334 4 10344 4 10345 4 10347 4 10352 4 10357 4 10374 4 10377 4 10378 4 10408 4 10409 4 10411 4 10413 4 10418 4 10422 4 10425 4 10434 4 10436 4 10452 4 10454 4 10463 4 10465 4 10468 4 10491 4 10496 4 10500 4 10501 4 10504 4 10519 4 10524 4 10526 4 10529 4 10530 4 10536 4 10547 4 10548 4 10553 4 10557 4 10558 4 10567 4 10568 4 10569 4 10583 4 10596 4 10598 4 10607 4 10608 4 10615 4 10617 4 10625 4 10631 4 10638 4 10640 4 10650 4 10652 4 10653 4 10658 4 10664 4 10666 4 10676 4 10683 4 10684 4 10692 4 10693 4 10703 4 10704 4 10710 4 10711 4 10721 4 10725 4 10726 4 10729 4 10733 4 10734 4 10736 4 10737 4 10740 4 10742 4 10748 4 10749 4 10753 4 10764 4 10767 4 10769 4 10775 4 10781 4 10782 4 10784 4 10795 4 10802 4 10803 4 10811 4 10813 4 10814 4 10816 4 10832 4 10837 4 10843 4 10863 4 10871 4 10872 4 10876 4 10877 4 10881 4 10884 4 10889 4 10893 4 10905 4 10906 4 10913 4 10914 4 10918 4 10920 4 10921 4 10930 4 10934 4 10935 4 10940 4 10945 4 10948 4 10956 4 10957 4 10977 4 10999 4 11003 4 11005 4 11007 4 11021 4 11045 4 11051 4 11059 4 11062 4 11066 4 11067 4 11068 4 11074 4 11081 4 11088 4 11095 4 11096 4 11098 4 11103 4 11124 4 11129 4 11136 4 11138 4 11153 4 11163 4 11165 4 11167 4 11176 4 11211 4 11215 4 11233 4 11247 4 11257 4 11266 4 11267 4 11282 4 11293 4 11301 4 11303 4 11319 4 11322 4 11331 4 11334 4 11337 4 11339 4 11340 4 11346 4 11355 4 11363 4 11378 4 11385 4 11390 4 11393 4 11397 4 11398 4 11410 4 11422 4 11428 4 11437 4 11439 4 11441 4 11450 4 11461 4 11471 4 11474 4 11478 4 11496 4 11516 4 11519 4 11523 4 11529 4 11539 4 11545 4 11549 4 11550 4 11555 4 11558 4 11560 4 11561 4 11563 4 11565 4 11577 4 11579 4 11581 4 11582 4 11591 4 11593 4 11598 4 11599 4 11601 4 11604 4 11606 4 11614 4 11616 4 11620 4 11628 4 11629 4 11631 4 11634 4 11642 4 11651 4 11654 4 11656 4 11662 4 11685 4 11686 4 11687 4 11689 4 11691 4 11710 4 11712 4 11717 4 11722 4 11723 4 11728 4 11729 4 11739 4 11743 4 11756 4 11759 4 11761 4 11764 4 11765 4 11768 4 11769 4 11774 4 11775 4 11780 4 11792 4 11803 4 11811 4 11823 4 11836 4 11838 4 11845 4 11852 4 11855 4 11856 4 11858 4 11860 4 11862 4 11863 4 11868 4 11871 4 11888 4 11889 4 11897 4 11902 4 11910 4 11913 4 11915 4 11919 4 11920 4 11922 4 11925 4 11926 4 11927 4 11928 4 11930 4 11936 4 11939 4 11940 4 11942 4 11943 4 11954 4 11957 4 11960 4 11963 4 11965 4 11970 4 11976 4 11980 4 11988 4 11989 4 11990 4 11992 4 11993 4 11997 4 12003 4 12018 4 12027 4 12028 4 12030 4 12033 4 12035 4 12036 4 12040 4 12047 4 12050 4 12062 4 12069 4 12071 4 12081 4 12083 4 12086 4 12089 4 12095 4 12117 4 12119 4 12122 4 12123 4 12128 4 12131 4 12136 4 12137 4 12140 4 12146 4 12156 4 12157 4 12168 4 12171 4 12173 4 12180 4 12186 4 12192 4 12196 4 12219 4 12223 4 12233 4 12244 4 12257 4 12259 4 12262 4 12263 4 12277 4 12280 4 12281 4 12289 4 12295 4 12298 4 12302 4 12305 4 12311 4 12318 4 12319 4 12325 4 12332 4 12334 4 12337 4 12340 4 12342 4 12344 4 12351 4 12356 4 12361 4 12362 4 12377 4 12391 4 12395 4 12403 4 12404 4 12406 4 12408 4 12409 4 12416 4 12425 4 12430 4 12434 4 12435 4 12444 4 12446 4 12450 4 12457 4 12458 4 12460 4 12463 4 12469 4 12473 4 12475 4 12482 4 12494 4 12495 4 12512 4 12513 4 12520 4 12524 4 12525 4 12530 4 12532 4 12533 4 12536 4 12541 4 12543 4 12544 4 12548 4 12556 4 12563 4 12571 4 12572 4 12578 4 12579 4 12580 4 12586 4 12587 4 12595 4 12597 4 12601 4 12602 4 12609 4 12610 4 12616 4 12618 4 12628 4 12635 4 12636 4 12654 4 12663 4 12672 4 12674 4 12680 4 12683 4 12686 4 12693 4 12696 4 12702 4 12708 4 12714 4 12723 4 12736 4 12746 4 12761 4 12765 4 12778 4 12779 4 12782 4 12784 4 12786 4 12794 4 12797 4 12812 4 12813 4 12817 4 12818 4 12820 4 12821 4 12825 4 12831 4 12832 4 12842 4 12844 4 12850 4 12853 4 12855 4 12857 4 12863 4 12869 4 12879 4 12880 4 12886 4 12887 4 12890 4 12892 4 12908 4 12909 4 12910 4 12913 4 12914 4 12915 4 12917 4 12921 4 12924 4 12926 4 12936 4 12942 4 12945 4 12947 4 12948 4 12949 4 12960 4 12964 4 12966 4 12967 4 12971 4 12986 4 13007 4 13008 4 13010 4 13013 4 13014 4 13026 4 13039 4 13054 4 13068 4 13081 4 13087 4 13090 4 13104 4 13106 4 13107 4 13121 4 13122 4 13123 4 13124 4 13131 4 13140 4 13144 4 13153 4 13157 4 13161 4 13166 4 13170 4 13172 4 13173 4 13181 4 13187 4 13188 4 13198 4 13201 4 13209 4 13212 4 13217 4 13221 4 13224 4 13229 4 13233 4 13237 4 13249 4 13250 4 13255 4 13272 4 13274 4 13278 4 13282 4 13283 4 13294 4 13301 4 13302 4 13316 4 13317 4 13322 4 13323 4 13334 4 13342 4 13344 4 13350 4 13352 4 13354 4 13357 4 13361 4 13366 4 13367 4 13368 4 13380 4 13387 4 13390 4 13400 4 13405 4 13420 4 13429 4 13435 4 13436 4 13440 4 13448 4 13449 4 13450 4 13454 4 13465 4 13471 4 13474 4 13475 4 13477 4 13478 4 13483 4 13486 4 13495 4 13506 4 13508 4 13511 4 13513 4 13515 4 13526 4 13534 4 13547 4 13548 4 13549 4 13553 4 13555 4 13563 4 13569 4 13579 4 13584 4 13585 4 13592 4 13605 4 13611 4 13628 4 13631 4 13641 4 13643 4 13661 4 13662 4 13669 4 13680 4 13692 4 13706 4 13710 4 13720 4 13735 4 13741 4 13750 4 13752 4 13756 4 13759 4 13766 4 13775 4 13788 4 13795 4 13798 4 13802 4 13813 4 13814 4 13821 4 13822 4 13834 4 13836 4 13842 4 13849 4 13854 4 13855 4 13869 4 13875 4 13888 4 13895 4 13903 4 13909 4 13915 4 13916 4 13923 4 13966 4 13968 4 13980 4 13984 4 13989 4 13993 4 14013 4 14024 4 14026 4 14027 4 14028 4 14038 4 14039 4 14040 4 14043 4 14044 4 14047 4 14050 4 14062 4 14064 4 14099 4 14100 4 14107 4 14111 4 14113 4 14121 4 14125 4 14131 4 14137 4 14146 4 14152 4 14159 4 14174 4 14181 4 14183 4 14193 4 14194 4 14197 4 14199 4 14217 4 14220 4 14225 4 14227 4 14234 4 14238 4 14249 4 14257 4 14258 4 14261 4 14262 4 14272 4 14281 4 14306 4 14308 4 14319 4 14329 4 14336 4 14338 4 14341 4 14342 4 14344 4 14351 4 14352 4 14363 4 14369 4 14370 4 14376 4 14378 4 14386 4 14387 4 14407 4 14411 4 14418 4 14430 4 14439 4 14443 4 14447 4 14448 4 14451 4 14452 4 14461 4 14462 4 14469 4 14470 4 14484 4 14485 4 14489 4 14506 4 14510 4 14512 4 14516 4 14518 4 14536 4 14541 4 14549 4 14560 4 14568 4 14570 4 14580 4 14590 4 14602 4 14611 4 14613 4 14618 4 14646 4 14652 4 14661 4 14664 4 14666 4 14685 4 14689 4 14691 4 14698 4 14699 4 14709 4 14713 4 14718 4 14724 4 14726 4 14727 4 14735 4 14741 4 14747 4 14767 4 14777 4 14781 4 14783 4 14784 4 14786 4 14790 4 14791 4 14794 4 14797 4 14798 4 14805 4 14812 4 14822 4 14834 4 14844 4 14849 4 14854 4 14860 4 14869 4 14879 4 14885 4 14886 4 14890 4 14901 4 14909 4 14916 4 14917 4 14919 4 14920 4 14922 4 14926 4 14930 4 14933 4 14947 4 14952 4 14953 4 14955 4 14961 4 14966 4 14974 4 14988 4 14989 4 14992 4 14994 4 14996 4 14998 4 15011 4 15020 4 15033 4 15038 4 15046 4 15067 4 15068 4 15078 4 15084 4 15087 4 15089 4 15090 4 15093 4 15115 4 15126 4 15132 4 15144 4 15148 4 15149 4 15151 4 15154 4 15160 4 15167 4 15168 4 15169 4 15176 4 15182 4 15190 4 15196 4 15197 4 15201 4 15209 4 15224 4 15235 4 15242 4 15244 4 15252 4 15265 4 15273 4 15285 4 15289 4 15290 4 15291 4 15293 4 15294 4 15316 4 15318 4 15322 4 15325 4 15328 4 15342 4 15343 4 15352 4 15355 4 15356 4 15366 4 15367 4 15377 4 15379 4 15382 4 15386 4 15387 4 15391 4 15397 4 15406 4 15409 4 15422 4 15441 4 15461 4 15471 4 15472 4 15474 4 15475 4 15477 4 15484 4 15492 4 15499 4 15500 4 15513 4 15517 4 15520 4 15524 4 15540 4 15542 4 15549 4 15568 4 15583 4 15588 4 15599 4 15604 4 15606 4 15607 4 15612 4 15614 4 15615 4 15617 4 15621 4 15628 4 15629 4 15633 4 15635 4 15660 4 15663 4 15674 4 15676 4 15699 4 15708 4 15711 4 15720 4 15726 4 15727 4 15728 4 15730 4 15731 4 15740 4 15742 4 15745 4 15747 4 15750 4 15754 4 15775 4 15777 4 15779 4 15780 4 15784 4 15786 4 15788 4 15794 4 15798 4 15817 4 15825 4 15826 4 15827 4 15833 4 15837 4 15840 4 15845 4 15853 4 15855 4 15869 4 15872 4 15874 4 15875 4 15884 4 15885 4 15896 4 15904 4 15905 4 15918 4 15919 4 15927 4 15929 4 15939 4 15942 4 15947 4 15950 4 15951 4 15960 4 15964 4 15971 4 15974 4 15980 4 15992 4 15994 4 16008 4 16010 4 16012 4 16020 4 16021 4 16025 4 16034 4 16040 4 16055 4 16061 4 16062 4 16068 4 16072 4 16077 4 16079 4 16081 4 16102 4 16108 4 16132 4 16134 4 16152 4 16156 4 16157 4 16158 4 16163 4 16174 4 16179 4 16192 4 16203 4 16214 4 16224 4 16234 4 16243 4 16247 4 16253 4 16255 4 16257 4 16261 4 16277 4 16281 4 16287 4 16288 4 16292 4 16297 4 16299 4 16305 4 16322 4 16335 4 16340 4 16353 4 16359 4 16376 4 16381 4 16391 4 16392 4 16396 4 16417 4 16424 4 16425 4 16427 4 16439 4 16442 4 16444 4 16448 4 16452 4 16459 4 16468 4 16473 4 16474 4 16486 4 16500 4 16501 4 16510 4 16529 4 16533 4 16535 4 16541 4 16546 4 16556 4 16561 4 16569 4 16582 4 16602 4 16610 4 16613 4 16614 4 16615 4 16616 4 16622 4 16624 4 16628 4 16630 4 16632 4 16641 4 16646 4 16649 4 16675 4 16701 4 16711 4 16713 4 16720 4 16722 4 16728 4 16745 4 16748 4 16752 4 16756 4 16759 4 16767 4 16770 4 16774 4 16775 4 16779 4 16786 4 16794 4 16796 4 16799 4 16801 4 16802 4 16810 4 16812 4 16816 4 16828 4 16831 4 16838 4 16840 4 16844 4 16845 4 16856 4 16860 4 16861 4 16864 4 16869 4 16875 4 16878 4 16880 4 16898 4 16900 4 16906 4 16907 4 16913 4 16914 4 16920 4 16934 4 16938 4 16949 4 16976 4 16990 4 16992 4 16999 4 17000 4 17003 4 17004 4 17016 4 17022 4 17029 4 17030 4 17031 4 17036 4 17037 4 17047 4 17050 4 17055 4 17077 4 17079 4 17085 4 17088 4 17089 4 17102 4 17103 4 17113 4 17120 4 17132 4 17137 4 17138 4 17145 4 17150 4 17153 4 17156 4 17157 4 17159 4 17171 4 17176 4 17178 4 17181 4 17187 4 17206 4 17207 4 17215 4 17223 4 17229 4 17231 4 17232 4 17240 4 17241 4 17247 4 17253 4 17254 4 17275 4 17285 4 17288 4 17289 4 17295 4 17298 4 17310 4 17322 4 17323 4 17338 4 17346 4 17347 4 17353 4 17363 4 17364 4 17371 4 17372 4 17378 4 17383 4 17384 4 17389 4 17390 4 17392 4 17400 4 17408 4 17437 4 17454 4 17457 4 17464 4 17473 4 17495 4 17502 4 17511 4 17528 4 17550 4 17552 4 17558 4 17559 4 17561 4 17569 4 17581 4 17593 4 17601 4 17603 4 17607 4 17616 4 17621 4 17629 4 17635 4 17638 4 17640 4 17642 4 17643 4 17646 4 17647 4 17654 4 17656 4 17663 4 17669 4 17670 4 17674 4 17676 4 17677 4 17687 4 17688 4 17696 4 17704 4 17705 4 17707 4 17708 4 17714 4 17715 4 17719 4 17720 4 17728 4 17743 4 17745 4 17746 4 17749 4 17758 4 17763 4 17766 4 17781 4 17785 4 17795 4 17811 4 17817 4 17818 4 17820 4 17822 4 17826 4 17829 4 17832 4 17836 4 17840 4 17849 4 17854 4 17863 4 17867 4 17888 4 17906 4 17907 4 17918 4 17923 4 17935 4 17953 4 17961 4 17962 4 17965 4 17968 4 17971 4 17974 4 17978 4 17982 4 17985 4 17989 4 17992 4 17998 4 18000 4 18002 4 18014 4 18024 4 18029 4 18035 4 18036 4 18039 4 18043 4 18044 4 18046 4 18056 4 18057 4 18062 4 18068 4 18072 4 18078 4 18085 4 18088 4 18101 4 18105 4 18106 4 18108 4 18113 4 18117 4 18119 4 18120 4 18129 4 18134 4 18145 4 18149 4 18152 4 18158 4 18160 4 18164 4 18169 4 18170 4 18172 4 18174 4 18175 4 18178 4 18183 4 18197 4 18198 4 18203 4 18211 4 18212 4 18214 4 18218 4 18223 4 18231 4 18232 4 18244 4 18245 4 18248 4 18249 4 18258 4 18272 4 18290 4 18302 4 18314 4 18317 4 18323 4 18332 4 18335 4 18340 4 18348 4 18351 4 18352 4 18355 4 18356 4 18360 4 18367 4 18384 4 18388 4 18389 4 18393 4 18412 4 18431 4 18433 4 18444 4 18445 4 18454 4 18462 4 18472 4 18473 4 18475 4 18488 4 18494 4 18518 4 18531 4 18539 4 18544 4 18545 4 18548 4 18550 4 18552 4 18554 4 18559 4 18562 4 18564 4 18568 4 18574 4 18578 4 18582 4 18589 4 18597 4 18608 4 18613 4 18616 4 18620 4 18626 4 18627 4 18631 4 18636 4 18638 4 18640 4 18656 4 18659 4 18665 4 18670 4 18673 4 18682 4 18695 4 18699 4 18702 4 18704 4 18705 4 18717 4 18718 4 18722 4 18726 4 18729 4 18738 4 18741 4 18767 4 18770 4 18775 4 18787 4 18791 4 18795 4 18807 4 18808 4 18811 4 18812 4 18818 4 18819 4 18827 4 18828 4 18833 4 18836 4 18839 4 18851 4 18853 4 18869 4 18870 4 18874 4 18885 4 18895 4 18901 4 18903 4 18913 4 18923 4 18937 4 18943 4 18944 4 18952 4 18954 4 18955 4 18957 4 18969 4 18972 4 18973 4 18976 4 18977 4 18982 4 18986 4 18989 4 19002 4 19004 4 19006 4 19010 4 19022 4 19028 4 19038 4 19043 4 19045 4 19046 4 19053 4 19061 4 19062 4 19071 4 19074 4 19084 4 19093 4 19095 4 19103 4 19108 4 19110 4 19111 4 19124 4 19129 4 19130 4 19134 4 19139 4 19144 4 19146 4 19148 4 19157 4 19161 4 19167 4 19170 4 19173 4 19178 4 19181 4 19189 4 19194 4 19200 4 19210 4 19212 4 19220 4 19226 4 19228 4 19229 4 19232 4 19233 4 19234 4 19238 4 19241 4 19244 4 19249 4 19258 4 19261 4 19266 4 19267 4 19269 4 19274 4 19277 4 19288 4 19289 4 19290 4 19298 4 19299 4 19309 4 19310 4 19311 4 19320 4 19324 4 19325 4 19329 4 19336 4 19343 4 19346 4 19348 4 19349 4 19350 4 19358 4 19379 4 19383 4 19391 4 19394 4 19397 4 19407 4 19410 4 19418 4 19423 4 19426 4 19428 4 19429 4 19433 4 19437 4 19443 4 19444 4 19445 4 19446 4 19451 4 19461 4 19468 4 19470 4 19471 4 19477 4 19487 4 19488 4 19495 4 19498 4 19512 4 19520 4 19530 4 19541 4 19543 4 19544 4 19549 4 19555 4 19560 4 19572 4 19575 4 19584 4 19593 4 19612 4 19615 4 19624 4 19630 4 19635 4 19641 4 19654 4 19661 4 19686 4 19695 4 19707 4 19710 4 19711 4 19716 4 19736 4 19738 4 19739 4 19743 4 19747 4 19757 4 19760 4 19784 4 19796 4 19797 4 19806 4 19809 4 19838 4 19841 4 19854 4 19873 4 19875 4 19882 4 19883 4 19890 4 19895 4 19899 4 19908 4 19909 4 19915 4 19921 4 19928 4 19930 4 19936 4 19938 4 19941 4 19942 4 19950 4 19953 4 19956 4 19961 4 19964 4 19971 4 19976 4 19995 4 20001 4 20009 4 20011 4 20021 4 20034 4 20036 4 20051 4 20053 4 20060 4 20070 4 20075 4 20081 4 20098 4 20101 4 20123 4 20126 4 20130 4 20142 4 20150 4 20153 4 20159 4 20169 4 20170 4 20172 4 20173 4 20175 4 20193 4 20197 4 20204 4 20216 4 20217 4 20220 4 20224 4 20227 4 20228 4 20231 4 20232 4 20235 4 20237 4 20249 4 20251 4 20252 4 20260 4 20263 4 20266 4 20270 4 20271 4 20276 4 20282 4 20283 4 20299 4 20300 4 20302 4 20305 4 20308 4 20310 4 20330 4 20331 4 20356 4 20357 4 20361 4 20362 4 20363 4 20371 4 20372 4 20373 4 20374 4 20375 4 20378 4 20379 4 20390 4 20391 4 20393 4 20397 4 20398 4 20416 4 20419 4 20420 4 20422 4 20426 4 20433 4 20434 4 20443 4 20451 4 20462 4 20476 4 20478 4 20479 4 20486 4 20487 4 20490 4 20493 4 20501 4 20503 4 20509 4 20526 4 20535 4 20544 4 20553 4 20555 4 20556 4 20557 4 20565 4 20569 4 20572 4 20583 4 20589 4 20591 4 20592 4 20599 4 20603 4 20604 4 20606 4 20607 4 20612 4 20613 4 20614 4 20631 4 20644 4 20647 4 20662 4 20668 4 20669 4 20676 4 20677 4 20682 4 20683 4 20689 4 20690 4 20697 4 20700 4 20705 4 20716 4 20723 4 20732 4 20733 4 20746 4 20758 4 20774 4 20779 4 20784 4 20786 4 20793 4 20800 4 20804 4 20812 4 20821 4 20831 4 20835 4 20839 4 20840 4 20844 4 20853 4 20854 4 20858 4 20866 4 20868 4 20873 4 20874 4 20876 4 20879 4 20893 4 20899 4 20911 4 20914 4 20915 4 20918 4 20920 4 20931 4 20932 4 20935 4 20961 4 20976 4 20980 4 20988 4 20989 4 21013 4 21015 4 21021 4 21030 4 21032 4 21033 4 21036 4 21050 4 21070 4 21074 4 21094 4 21106 4 21109 4 21111 4 21120 4 21122 4 21143 4 21144 4 21153 4 21154 4 21162 4 21165 4 21167 4 21168 4 21174 4 21181 4 21183 4 21184 4 21186 4 21188 4 21193 4 21210 4 21211 4 21216 4 21218 4 21219 4 21221 4 21235 4 21237 4 21244 4 21249 4 21289 4 21312 4 21315 4 21341 4 21342 4 21359 4 21360 4 21361 4 21370 4 21373 4 21378 4 21381 4 21396 4 21403 4 21406 4 21407 4 21411 4 21413 4 21419 4 21420 4 21422 4 21423 4 21433 4 21437 4 21448 4 21451 4 21456 4 21459 4 21470 4 21488 4 21489 4 21493 4 21494 4 21497 4 21499 4 21503 4 21525 4 21528 4 21529 4 21539 4 21542 4 21545 4 21550 4 21554 4 21562 4 21567 4 21573 4 21583 4 21592 4 21593 4 21600 4 21612 4 21614 4 21615 4 21631 4 21632 4 21634 4 21646 4 21662 4 21666 4 21671 4 21672 4 21673 4 21685 4 21691 4 21696 4 21697 4 21703 4 21710 4 21711 4 21720 4 21730 4 21740 4 21746 4 21747 4 21748 4 21752 4 21757 4 21759 4 21777 4 21778 4 21783 4 21785 4 21789 4 21790 4 21805 4 21809 4 21815 4 21817 4 21819 4 21821 4 21829 4 21833 4 21847 4 21848 4 21851 4 21854 4 21873 4 21892 4 21894 4 21905 4 21906 4 21907 4 21914 4 21917 4 21929 4 21946 4 21960 4 21969 4 21977 4 21988 4 21998 4 21999 4 22007 4 22010 4 22014 4 22028 4 22029 4 22030 4 22033 4 22034 4 22037 4 22053 4 22060 4 22061 4 22070 4 22081 4 22084 4 22096 4 22101 4 22110 4 22114 4 22117 4 22119 4 22131 4 22133 4 22136 4 22141 4 22142 4 22144 4 22146 4 22147 4 22151 4 22154 4 22173 4 22178 4 22181 4 22201 4 22215 4 22218 4 22222 4 22230 4 22234 4 22243 4 22255 4 22263 4 22266 4 22268 4 22271 4 22276 4 22277 4 22294 4 22299 4 22327 4 22334 4 22335 4 22340 4 22354 4 22355 4 22358 4 22367 4 22371 4 22374 4 22379 4 22385 4 22386 4 22389 4 22390 4 22391 4 22407 4 22421 4 22423 4 22425 4 22427 4 22428 4 22430 4 22431 4 22434 4 22444 4 22453 4 22457 4 22458 4 22459 4 22460 4 22463 4 22487 4 22488 4 22490 4 22493 4 22497 4 22505 4 22507 4 22512 4 22515 4 22520 4 22536 4 22537 4 22548 4 22553 4 22561 4 22566 4 22567 4 22583 4 22585 4 22586 4 22587 4 22598 4 22600 4 22619 4 22620 4 22628 4 22632 4 22656 4 22669 4 22670 4 22671 4 22672 4 22677 4 22681 4 22684 4 22692 4 22713 4 22717 4 22718 4 22721 4 22728 4 22746 4 22768 4 22770 4 22776 4 22781 4 22796 4 22798 4 22800 4 22804 4 22813 4 22820 4 22825 4 22832 4 22834 4 22839 4 22850 4 22853 4 22854 4 22856 4 22868 4 22875 4 22880 4 22903 4 22908 4 22918 4 22921 4 22934 4 22951 4 22954 4 22956 4 22961 4 22966 4 22985 4 22991 4 23010 4 23012 4 23019 4 23021 4 23028 4 23036 4 23060 4 23061 4 23062 4 23063 4 23065 4 23073 4 23076 4 23080 4 23083 4 23090 4 23093 4 23094 4 23096 4 23111 4 23119 4 23126 4 23128 4 23132 4 23134 4 23136 4 23137 4 23145 4 23154 4 23168 4 23172 4 23175 4 23176 4 23180 4 23186 4 23188 4 23190 4 23197 4 23201 4 23208 4 23209 4 23222 4 23232 4 23243 4 23247 4 23253 4 23256 4 23257 4 23260 4 23264 4 23266 4 23274 4 23316 4 23317 4 23320 4 23325 4 23328 4 23329 4 23331 4 23332 4 23335 4 23351 4 23356 4 23363 4 23375 4 23380 4 23391 4 23392 4 23400 4 23410 4 23419 4 23421 4 23424 4 23438 4 23440 4 23441 4 23448 4 23451 4 23455 4 23456 4 23462 4 23481 4 23488 4 23498 4 23503 4 23509 4 23523 4 23528 4 23534 4 23536 4 23541 4 23544 4 23561 4 23570 4 23571 4 23581 4 23584 4 23586 4 23587 4 23588 4 23600 4 23605 4 23608 4 23613 4 23615 4 23621 4 23632 4 23639 4 23641 4 23646 4 23660 4 23662 4 23665 4 23666 4 23672 4 23677 4 23685 4 23691 4 23692 4 23707 4 23718 4 23719 4 23725 4 23726 4 23734 4 23747 4 23749 4 23750 4 23751 4 23757 4 23769 4 23772 4 23777 4 23779 4 23785 4 23791 4 23792 4 23796 4 23806 4 23827 4 23851 4 23856 4 23857 4 23862 4 23864 4 23868 4 23872 4 23885 4 23887 4 23891 4 23892 4 23896 4 23902 4 23911 4 23913 4 23917 4 23921 4 23934 4 23935 4 23941 4 23943 4 23944 4 23951 4 23955 4 23964 4 23966 4 23974 4 23982 4 23999 4 24001 4 24002 4 24007 4 24026 4 24036 4 24044 4 24046 4 24052 4 24068 4 24078 4 24079 4 24087 4 24090 4 24093 4 24096 4 24103 4 24111 4 24116 4 24118 4 24121 4 24129 4 24134 4 24137 4 24140 4 24141 4 24161 4 24170 4 24176 4 24178 4 24184 4 24190 4 24204 4 24206 4 24212 4 24217 4 24219 4 24221 4 24224 4 24225 4 24232 4 24236 4 24237 4 24239 4 24243 4 24255 4 24266 4 24272 4 24273 4 24277 4 24305 4 24310 4 24314 4 24318 4 24322 4 24325 4 24330 4 24337 4 24339 4 24351 4 24359 4 24364 4 24367 4 24375 4 24377 4 24385 4 24387 4 24395 4 24399 4 24400 4 24414 4 24418 4 24419 4 24420 4 24433 4 24441 4 24456 4 24463 4 24465 4 24467 4 24472 4 24475 4 24487 4 24488 4 24496 4 24516 4 24533 4 24536 4 24538 4 24544 4 24552 4 24558 4 24567 4 24572 4 24576 4 24583 4 24589 4 24605 4 24610 4 24616 4 24621 4 24626 4 24628 4 24635 4 24639 4 24653 4 24655 4 24665 4 24667 4 24669 4 24670 4 24692 4 24706 4 24710 4 24713 4 24718 4 24734 4 24737 4 24739 4 24741 4 24744 4 24751 4 24770 4 24783 4 24787 4 24788 4 24795 4 24806 4 24816 4 24828 4 24836 4 24849 4 24853 4 24860 4 24863 4 24864 4 24865 4 24867 4 24871 4 24872 4 24877 4 24879 4 24880 4 24891 4 24893 4 24896 4 24897 4 24905 4 24907 4 24909 4 24912 4 24933 4 24936 4 24937 4 24939 4 24944 4 24949 4 24954 4 24966 4 24967 4 24973 4 24978 4 24981 4 24986 4 24996 4 25002 4 25006 4 25008 4 25013 4 25014 4 25028 4 25030 4 25034 4 25036 4 25039 4 25043 4 25044 4 25046 4 25061 4 25068 4 25077 4 25098 4 25099 4 25102 4 25109 4 25110 4 25112 4 25122 4 25124 4 25134 4 25140 4 25143 4 25150 4 25152 4 25155 4 25158 4 25161 4 25165 4 25166 4 25168 4 25169 4 25185 4 25187 4 25191 4 25194 4 25197 4 25200 4 25201 4 25202 4 25204 4 25209 4 25211 4 25216 4 25217 4 25221 4 25222 4 25231 4 25232 4 25242 4 25245 4 25250 4 25266 4 25271 4 25278 4 25279 4 25294 4 25299 4 25306 4 25311 4 25328 4 25331 4 25337 4 25342 4 25369 4 25375 4 25376 4 25384 4 25395 4 25401 4 25406 4 25408 4 25409 4 25425 4 25432 4 25473 4 25486 4 25487 4 25492 4 25498 4 25499 4 25500 4 25512 4 25522 4 25523 4 25537 4 25548 4 25562 4 25564 4 25577 4 25583 4 25598 4 25603 4 25611 4 25625 4 25627 4 25629 4 25631 4 25641 4 25644 4 25646 4 25652 4 25661 4 25666 4 25668 4 25673 4 25679 4 25682 4 25683 4 25690 4 25691 4 25692 4 25707 4 25710 4 25711 4 25721 4 25722 4 25727 4 25730 4 25735 4 25736 4 25750 4 25755 4 25762 4 25771 4 25779 4 25794 4 25806 4 25809 4 25824 4 25832 4 25834 4 25835 4 25841 4 25853 4 25864 4 25865 4 25869 4 25880 4 25881 4 25890 4 25902 4 25913 4 25925 4 25927 4 25928 4 25933 4 25938 4 25939 4 25957 4 25972 4 25973 4 25986 4 25987 4 25992 4 26001 4 26002 4 26011 4 26012 4 26014 4 26017 4 26027 4 26029 4 26052 4 26065 4 26066 4 26075 4 26091 4 26092 4 26095 4 26112 4 26120 4 26125 4 26129 4 26144 4 26156 4 26157 4 26165 4 26173 4 26183 4 26185 4 26196 4 26200 4 26202 4 26230 4 26232 4 26250 4 26260 4 26268 4 26274 4 26276 4 26281 4 26282 4 26289 4 26290 4 26293 4 26294 4 26300 4 26301 4 26303 4 26309 4 26310 4 26320 4 26321 4 26325 4 26329 4 26336 4 26343 4 26349 4 26355 4 26370 4 26374 4 26375 4 26380 4 26383 4 26391 4 26392 4 26395 4 26396 4 26401 4 26404 4 26436 4 26445 4 26446 4 26457 4 26465 4 26466 4 26478 4 26479 4 26481 4 26490 4 26491 4 26498 4 26502 4 26506 4 26510 4 26512 4 26515 4 26516 4 26520 4 26521 4 26523 4 26528 4 26529 4 26539 4 26540 4 26544 4 26554 4 26571 4 26576 4 26582 4 26588 4 26593 4 26596 4 26603 4 26607 4 26612 4 26614 4 26621 4 26632 4 26636 4 26637 4 26643 4 26654 4 26657 4 26663 4 26674 4 26687 4 26691 4 26699 4 26707 4 26716 4 26727 4 26729 4 26730 4 26731 4 26740 4 26743 4 26755 4 26758 4 26761 4 26773 4 26777 4 26795 4 26797 4 26820 4 26840 4 26843 4 26845 4 26862 4 26863 4 26866 4 26867 4 26882 4 26887 4 26888 4 26891 4 26895 4 26899 4 26906 4 26907 4 26917 4 26918 4 26925 4 26931 4 26932 4 26944 4 26948 4 26951 4 26955 4 26956 4 26958 4 26963 4 26970 4 26974 4 26981 4 26985 4 26986 4 26987 4 26989 4 26997 4 27000 4 27007 4 27020 4 27027 4 27046 4 27053 4 27060 4 27063 4 27066 4 27068 4 27071 4 27084 4 27088 4 27090 4 27097 4 27101 4 27113 4 27127 4 27134 4 27141 4 27150 4 27152 4 27176 4 27181 4 27209 4 27211 4 27215 4 27221 4 27238 4 27243 4 27247 4 27248 4 27250 4 27262 4 27268 4 27272 4 27273 4 27274 4 27286 4 27291 4 27302 4 27311 4 27319 4 27320 4 27332 4 27338 4 27339 4 27341 4 27348 4 27350 4 27356 4 27370 4 27374 4 27376 4 27378 4 27379 4 27380 4 27385 4 27386 4 27393 4 27397 4 27416 4 27430 4 27431 4 27435 4 27436 4 27450 4 27463 4 27474 4 27476 4 27482 4 27483 4 27492 4 27493 4 27496 4 27506 4 27517 4 27523 4 27525 4 27528 4 27529 4 27551 4 27562 4 27563 4 27564 4 27567 4 27569 4 27574 4 27576 4 27586 4 27592 4 27602 4 27605 4 27616 4 27622 4 27623 4 27635 4 27637 4 27640 4 27644 4 27654 4 27661 4 27674 4 27676 4 27679 4 27682 4 27688 4 27692 4 27703 4 27713 4 27714 4 27723 4 27745 4 27746 4 27761 4 27767 4 27772 4 27773 4 27777 4 27801 4 27802 4 27811 4 27817 4 27821 4 27824 4 27834 4 27850 4 27851 4 27860 4 27862 4 27873 4 27878 4 27887 4 27900 4 27904 4 27915 4 27926 4 27927 4 27928 4 27956 4 27965 4 27967 4 27970 4 27971 4 27977 4 27982 4 27984 4 27987 4 27993 4 27995 4 28020 4 28021 4 28032 4 28033 4 28035 4 28036 4 28037 4 28041 4 28044 4 28051 4 28054 4 28055 4 28074 4 28091 4 28092 4 28099 4 28104 4 28112 4 28113 4 28127 4 28128 4 28134 4 28147 4 28150 4 28158 4 28164 4 28171 4 28178 4 28180 4 28182 4 28185 4 28187 4 28198 4 28200 4 28202 4 28211 4 28213 4 28222 4 28230 4 28231 4 28239 4 28249 4 28251 4 28254 4 28257 4 28258 4 28269 4 28280 4 28288 4 28293 4 28296 4 28297 4 28298 4 28309 4 28343 4 28361 4 28364 4 28368 4 28388 4 28392 4 28394 4 28399 4 28402 4 28415 4 28430 4 28432 4 28477 4 28497 4 28500 4 28508 4 28521 4 28525 4 28527 4 28528 4 28529 4 28533 4 28535 4 28544 4 28548 4 28549 4 28554 4 28577 4 28588 4 28593 4 28601 4 28603 4 28606 4 28618 4 28619 4 28623 4 28630 4 28644 4 28655 4 28675 4 28696 4 28709 4 28710 4 28714 4 28723 4 28726 4 28727 4 28729 4 28730 4 28738 4 28745 4 28747 4 28757 4 28759 4 28760 4 28776 4 28778 4 28783 4 28785 4 28790 4 28793 4 28816 4 28820 4 28823 4 28824 4 28838 4 28840 4 28846 4 28847 4 28850 4 28855 4 28858 4 28870 4 28877 4 28880 4 28881 4 28885 4 28888 4 28903 4 28920 4 28921 4 28923 4 28928 4 28941 4 28953 4 28956 4 28964 4 28977 4 28981 4 28982 4 28992 4 28994 4 29013 4 29018 4 29024 4 29027 4 29039 4 29044 4 29047 4 29052 4 29054 4 29056 4 29062 4 29063 4 29068 4 29071 4 29072 4 29087 4 29097 4 29100 4 29101 4 29110 4 29116 4 29117 4 29119 4 29127 4 29135 4 29145 4 29156 4 29162 4 29193 4 29206 4 29218 4 29220 4 29221 4 29224 4 29232 4 29247 4 29248 4 29252 4 29268 4 29273 4 29277 4 29281 4 29282 4 29284 4 29290 4 29299 4 29301 4 29304 4 29305 4 29324 4 29326 4 29333 4 29349 4 29372 4 29381 4 29396 4 29406 4 29414 4 29416 4 29418 4 29435 4 29444 4 29451 4 29457 4 29460 4 29474 4 29480 4 29491 4 29496 4 29499 4 29501 4 29507 4 29542 4 29546 4 29547 4 29550 4 29553 4 29556 4 29562 4 29563 4 29566 4 29568 4 29571 4 29589 4 29592 4 29602 4 29603 4 29611 4 29616 4 29623 4 29628 4 29629 4 29651 4 29652 4 29683 4 29695 4 29699 4 29704 4 29709 4 29723 4 29725 4 29726 4 29727 4 29737 4 29738 4 29744 4 29752 4 29753 4 29754 4 29758 4 29769 4 29776 4 29780 4 29782 4 29785 4 29789 4 29790 4 29791 4 29794 4 29795 4 29808 4 29815 4 29823 4 29825 4 29827 4 29834 4 29843 4 29854 4 29855 4 29867 4 29869 4 29877 4 29878 4 29881 4 29897 4 29900 4 29906 4 29919 4 29924 4 29940 4 29958 4 29959 4 29961 4 29965 4 29967 4 29969 4 29970 4 29991 4 29997 4 29998 4 30001 4 30007 4 30010 4 30016 4 30038 4 30041 4 30055 4 30060 4 30063 4 30067 4 30068 4 30071 4 30072 4 30077 4 30080 4 30082 4 30097 4 30119 4 30127 4 30128 4 30137 4 30141 4 30163 4 30172 4 30180 4 30181 4 30187 4 30189 4 30191 4 30206 4 30214 4 30215 4 30218 4 30219 4 30225 4 30227 4 30229 4 30243 4 30245 4 30247 4 30259 4 30261 4 30266 4 30274 4 30278 4 30280 4 30282 4 30290 4 30293 4 30299 4 30303 4 30311 4 30319 4 30336 4 30351 4 30354 4 30359 4 30367 4 30371 4 30382 4 30384 4 30390 4 30405 4 30410 4 30414 4 30415 4 30420 4 30432 4 30434 4 30436 4 30440 4 30445 4 30450 4 30456 4 30460 4 30471 4 30474 4 30476 4 30487 4 30488 4 30492 4 30500 4 30524 4 30525 4 30527 4 30531 4 30544 4 30550 4 30552 4 30558 4 30564 4 30566 4 30574 4 30576 4 30595 4 30605 4 30606 4 30607 4 30609 4 30614 4 30626 4 30639 4 30640 4 30650 4 30651 4 30655 4 30657 4 30660 4 30664 4 30667 4 30671 4 30675 4 30677 4 30678 4 30680 4 30683 4 30688 4 30691 4 30693 4 30707 4 30708 4 30718 4 30722 4 30724 4 30726 4 30732 4 30737 4 30739 4 30740 4 30753 4 30755 4 30756 4 30767 4 30775 4 30776 4 30781 4 30786 4 30791 4 30792 4 30796 4 30800 4 30806 4 30807 4 30813 4 30816 4 30823 4 30829 4 30836 4 30849 4 30854 4 30858 4 30859 4 30862 4 30873 4 30880 4 30892 4 30901 4 30903 4 30907 4 30918 4 30921 4 30923 4 30928 4 30931 4 30933 4 30937 4 30942 4 30955 4 30957 4 30959 4 30968 4 30969 4 30973 4 30977 4 30978 4 30980 4 30983 4 30988 4 30990 4 30993 4 30995 4 30997 4 31028 4 31045 4 31048 4 31051 4 31055 4 31056 4 31066 4 31069 4 31078 4 31081 4 31083 4 31084 4 31104 4 31106 4 31123 4 31134 4 31140 4 31142 4 31149 4 31151 4 31152 4 31160 4 31165 4 31169 4 31172 4 31173 4 31183 4 31184 4 31190 4 31191 4 31200 4 31204 4 31212 4 31222 4 31223 4 31224 4 31230 4 31245 4 31258 4 31268 4 31269 4 31272 4 31276 4 31277 4 31280 4 31282 4 31283 4 31284 4 31285 4 31294 4 31296 4 31297 4 31299 4 31300 4 31309 4 31310 4 31316 4 31326 4 31334 4 31341 4 31346 4 31353 4 31355 4 31360 4 31370 4 31378 4 31385 4 31393 4 31402 4 31415 4 31424 4 31430 4 31437 4 31445 4 31458 4 31459 4 31463 4 31468 4 31470 4 31480 4 31482 4 31492 4 31493 4 31504 4 31506 4 31511 4 31522 4 31523 4 31526 4 31528 4 31533 4 31540 4 31555 4 31570 4 31572 4 31573 4 31580 4 31593 4 31594 4 31606 4 31607 4 31609 4 31612 4 31616 4 31619 4 31624 4 31630 4 31633 4 31645 4 31651 4 31654 4 31665 4 31668 4 31669 4 31671 4 31682 4 31687 4 31692 4 31693 4 31694 4 31697 4 31700 4 31712 4 31713 4 31714 4 31715 4 31722 4 31725 4 31726 4 31729 4 31730 4 31736 4 31737 4 31747 4 31749 4 31752 4 31758 4 31765 4 31773 4 31774 4 31776 4 31790 4 31791 4 31795 4 31796 4 31809 4 31813 4 31829 4 31837 4 31840 4 31847 4 31859 4 31860 4 31862 4 31872 4 31874 4 31887 4 31891 4 31894 4 31899 4 31902 4 31910 4 31912 4 31913 4 31915 4 31919 4 31920 4 31930 4 31933 4 31944 4 31946 4 31948 4 31950 4 31955 4 31956 4 31959 4 31961 4 31964 4 31966 4 31972 4 31981 4 31992 4 31995 4 31999 4 32000 4 32004 4 32006 4 32010 4 32012 4 32018 4 32019 4 32021 4 32028 4 32029 4 32031 4 32034 4 32037 4 32039 4 32042 4 32065 4 32067 4 32074 4 32076 4 32085 4 32090 4 32091 4 32093 4 32094 4 32101 4 32103 4 32111 4 32113 4 32117 4 32118 4 32120 4 32121 4 32124 4 32127 4 32142 4 32143 4 32153 4 32158 4 32162 4 32163 4 32169 4 32177 4 32184 4 32188 4 32210 4 32212 4 32215 4 32231 4 32235 4 32237 4 32238 4 32240 4 32243 4 32246 4 32247 4 32250 4 32252 4 32254 4 32255 4 32257 4 32262 4 32270 4 32273 4 32275 4 32283 4 32287 4 32288 4 32290 4 32297 4 32298 4 32327 4 32331 4 32333 4 32339 4 32340 4 32343 4 32345 4 32351 4 32352 4 32362 4 32368 4 32370 4 32371 4 32374 4 32376 4 32378 4 32379 4 32382 4 32383 4 32396 4 32402 4 32412 4 32415 4 32421 4 32423 4 32441 4 32463 4 32467 4 32478 4 32485 4 32488 4 32490 4 32493 4 32502 4 32507 4 32513 4 32524 4 32528 4 32531 4 32535 4 32538 4 32540 4 32541 4 32542 4 32547 4 32557 4 32560 4 32572 4 32588 4 32615 4 32619 4 32624 4 32627 4 32644 4 32645 4 32646 4 32648 4 32659 4 32663 4 32673 4 32679 4 32682 4 32684 4 32695 4 32700 4 32701 4 32708 4 32712 4 32725 4 32751 4 32770 4 32776 4 32789 4 32793 4 32796 4 32808 4 32838 4 32840 4 32843 4 32850 4 32856 4 32862 4 32864 4 32870 4 32874 4 32875 4 32877 4 32879 4 32889 4 32905 4 32906 4 32909 4 32910 4 32918 4 32925 4 32928 4 32932 4 32933 4 32938 4 32954 4 32955 4 32962 4 32966 4 32968 4 32971 4 32974 4 32975 4 32976 4 32979 4 32984 4 32988 4 32994 4 32999 4 33006 4 33019 4 33028 4 33034 4 33061 4 33065 4 33076 4 33077 4 33082 4 33086 4 33087 4 33091 4 33096 4 33114 4 33125 4 33131 4 33145 4 33146 4 33156 4 33166 4 33168 4 33178 4 33180 4 33196 4 33197 4 33201 4 33204 4 33205 4 33207 4 33218 4 33219 4 33227 4 33231 4 33241 4 33242 4 33243 4 33245 4 33255 4 33257 4 33263 4 33271 4 33280 4 33281 4 33296 4 33298 4 33310 4 33313 4 33328 4 33330 4 33331 4 33347 4 33354 4 33359 4 33366 4 33369 4 33378 4 33380 4 33390 4 33394 4 33395 4 33396 4 33398 4 33400 4 33409 4 33412 4 33413 4 33414 4 33418 4 33429 4 33439 4 33440 4 33448 4 33453 4 33455 4 33462 4 33466 4 33468 4 33469 4 33473 4 33475 4 33477 4 33484 4 33502 4 33506 4 33508 4 33517 4 33520 4 33522 4 33533 4 33540 4 33541 4 33549 4 33562 4 33572 4 33583 4 33594 4 33604 4 33613 4 33622 4 33626 4 33627 4 33633 4 33643 4 33654 4 33660 4 33661 4 33667 4 33671 4 33672 4 33673 4 33685 4 33687 4 33697 4 33701 4 33706 4 33713 4 33717 4 33723 4 33728 4 33738 4 33740 4 33750 4 33782 4 33795 4 33802 4 33807 4 33809 4 33810 4 33814 4 33819 4 33821 4 33823 4 33827 4 33833 4 33834 4 33842 4 33844 4 33851 4 33857 4 33860 4 33862 4 33863 4 33866 4 33873 4 33889 4 33891 4 33892 4 33895 4 33912 4 33919 4 33920 4 33922 4 33923 4 33925 4 33930 4 33933 4 33943 4 33957 4 33968 4 33973 4 33980 4 33981 4 33986 4 33989 4 33990 4 33997 4 33998 4 34001 4 34005 4 34007 4 34020 4 34023 4 34026 4 34033 4 34039 4 34044 4 34045 4 34048 4 34052 4 34061 4 34069 4 34073 4 34088 4 34096 4 34103 4 34104 4 34105 4 34113 4 34118 4 34120 4 34122 4 34124 4 34128 4 34131 4 34132 4 34145 4 34151 4 34152 4 34161 4 34162 4 34178 4 34188 4 34194 4 34197 4 34217 4 34219 4 34220 4 34234 4 34244 4 34246 4 34247 4 34249 4 34256 4 34259 4 34263 4 34267 4 34278 4 34284 4 34286 4 34300 4 34318 4 34327 4 34328 4 34335 4 34340 4 34345 4 34348 4 34351 4 34357 4 34361 4 34362 4 34370 4 34381 4 34386 4 34387 4 34389 4 34393 4 34401 4 34403 4 34404 4 34408 4 34418 4 34423 4 34432 4 34433 4 34437 4 34439 4 34442 4 34447 4 34448 4 34454 4 34460 4 34466 4 34470 4 34475 4 34479 4 34488 4 34510 4 34511 4 34535 4 34542 4 34551 4 34565 4 34571 4 34580 4 34593 4 34595 4 34596 4 34599 4 34602 4 34603 4 34617 4 34619 4 34623 4 34624 4 34626 4 34634 4 34638 4 34649 4 34651 4 34654 4 34664 4 34669 4 34673 4 34679 4 34701 4 34740 4 34741 4 34763 4 34764 4 34765 4 34771 4 34776 4 34777 4 34779 4 34787 4 34790 4 34795 4 34796 4 34801 4 34810 4 34812 4 34822 4 34835 4 34837 4 34838 4 34850 4 34857 4 34862 4 34866 4 34869 4 34881 4 34927 4 34930 4 34931 4 34939 4 34954 4 34960 4 34968 4 34982 4 34986 4 34992 4 34999 4 35007 4 35009 4 35016 4 35020 4 35029 4 35038 4 35039 4 35044 4 35046 4 35058 4 35070 4 35079 4 35081 4 35082 4 35084 4 35088 4 35095 4 35101 4 35103 4 35111 4 35113 4 35126 4 35128 4 35133 4 35136 4 35158 4 35160 4 35161 4 35163 4 35165 4 35170 4 35173 4 35182 4 35183 4 35186 4 35197 4 35199 4 35203 4 35207 4 35208 4 35219 4 35224 4 35229 4 35232 4 35254 4 35261 4 35262 4 35271 4 35272 4 35278 4 35284 4 35285 4 35292 4 35297 4 35298 4 35299 4 35301 4 35304 4 35312 4 35316 4 35320 4 35333 4 35341 4 35370 4 35373 4 35378 4 35381 4 35388 4 35393 4 35394 4 35403 4 35408 4 35410 4 35412 4 35415 4 35426 4 35428 4 35435 4 35436 4 35437 4 35442 4 35445 4 35451 4 35458 4 35462 4 35472 4 35479 4 35480 4 35482 4 35494 4 35495 4 35504 4 35511 4 35512 4 35517 4 35521 4 35523 4 35536 4 35538 4 35542 4 35543 4 35547 4 35557 4 35562 4 35563 4 35572 4 35573 4 35576 4 35577 4 35582 4 35591 4 35603 4 35620 4 35622 4 35632 4 35635 4 35647 4 35650 4 35659 4 35660 4 35661 4 35663 4 35664 4 35668 4 35670 4 35671 4 35676 4 35717 4 35729 4 35730 4 35732 4 35736 4 35737 4 35740 4 35751 4 35752 4 35753 4 35756 4 35764 4 35773 4 35777 4 35780 4 35784 4 35789 4 35804 4 35805 4 35811 4 35813 4 35826 4 35835 4 35836 4 35840 4 35849 4 35854 4 35858 4 35862 4 35872 4 35875 4 35882 4 35887 4 35899 4 35901 4 35908 4 35910 4 35914 4 35922 4 35933 4 35950 4 35952 4 35965 4 35967 4 35974 4 35975 4 35977 4 35978 4 35980 4 35987 4 36002 4 36003 4 36011 4 36015 4 36017 4 36020 4 36028 4 36033 4 36034 4 36037 4 36041 4 36049 4 36061 4 36062 4 36088 4 36092 4 36093 4 36095 4 36111 4 36114 4 36131 4 36136 4 36137 4 36138 4 36142 4 36146 4 36151 4 36154 4 36156 4 36159 4 36160 4 36161 4 36162 4 36171 4 36180 4 36181 4 36185 4 36186 4 36197 4 36211 4 36212 4 36214 4 36215 4 36228 4 36238 4 36242 4 36248 4 36259 4 36271 4 36272 4 36279 4 36280 4 36283 4 36286 4 36294 4 36306 4 36315 4 36317 4 36320 4 36321 4 36323 4 36324 4 36329 4 36331 4 36332 4 36334 4 36336 4 36337 4 36345 4 36346 4 36361 4 36362 4 36387 4 36397 4 36401 4 36405 4 36408 4 36420 4 36423 4 36424 4 36425 4 36430 4 36435 4 36450 4 36452 4 36454 4 36455 4 36476 4 36477 4 36482 4 36494 4 36496 4 36502 4 36506 4 36511 4 36514 4 36515 4 36520 4 36521 4 36528 4 36529 4 36533 4 36540 4 36541 4 36543 4 36556 4 36557 4 36562 4 36573 4 36576 4 36580 4 36584 4 36585 4 36592 4 36594 4 36611 4 36621 4 36628 4 36633 4 36636 4 36642 4 36644 4 36645 4 36648 4 36658 4 36659 4 36663 4 36664 4 36668 4 36670 4 36674 4 36685 4 36689 4 36705 4 36711 4 36714 4 36722 4 36733 4 36735 4 36736 4 36744 4 36748 4 36762 4 36765 4 36773 4 36775 4 36776 4 36777 4 36782 4 36786 4 36788 4 36797 4 36799 4 36803 4 36804 4 36818 4 36819 4 36827 4 36831 4 36842 4 36843 4 36847 4 36865 4 36868 4 36876 4 36879 4 36880 4 36894 4 36895 4 36912 4 36918 4 36922 4 36925 4 36927 4 36928 4 36935 4 36946 4 36965 4 36968 4 36979 4 36991 4 36999 4 37006 4 37015 4 37026 4 37027 4 37036 4 37041 4 37052 4 37053 4 37057 4 37061 4 37064 4 37075 4 37079 4 37088 4 37092 4 37099 4 37103 4 37104 4 37105 4 37107 4 37109 4 37111 4 37116 4 37125 4 37126 4 37131 4 37134 4 37142 4 37143 4 37148 4 37151 4 37173 4 37179 4 37185 4 37187 4 37190 4 37195 4 37197 4 37202 4 37207 4 37208 4 37212 4 37217 4 37228 4 37231 4 37237 4 37238 4 37248 4 37252 4 37253 4 37262 4 37268 4 37278 4 37293 4 37303 4 37307 4 37310 4 37312 4 37320 4 37324 4 37325 4 37328 4 37334 4 37351 4 37356 4 37359 4 37361 4 37366 4 37373 4 37380 4 37381 4 37385 4 37387 4 37388 4 37389 4 37390 4 37404 4 37405 4 37415 4 37419 4 37427 4 37428 4 37434 4 37436 4 37441 4 37446 4 37456 4 37458 4 37459 4 37475 4 37478 4 37480 4 37483 4 37484 4 37494 4 37496 4 37512 4 37517 4 37526 4 37529 4 37532 4 37533 4 37535 4 37544 4 37550 4 37554 4 37557 4 37565 4 37573 4 37589 4 37590 4 37592 4 37595 4 37604 4 37614 4 37624 4 37628 4 37630 4 37635 4 37636 4 37661 4 37680 4 37682 4 37690 4 37691 4 37697 4 37703 4 37704 4 37706 4 37708 4 37734 4 37736 4 37758 4 37762 4 37769 4 37783 4 37793 4 37797 4 37806 4 37807 4 37820 4 37822 4 37832 4 37835 4 37839 4 37847 4 37865 4 37868 4 37872 4 37877 4 37880 4 37881 4 37886 4 37887 4 37889 4 37891 4 37892 4 37908 4 37910 4 37913 4 37921 4 37926 4 37948 4 37953 4 37955 4 37962 4 37964 4 37976 4 37978 4 37981 4 37982 4 37990 4 37991 4 37992 4 38006 4 38010 4 38022 4 38023 4 38024 4 38031 4 38033 4 38034 4 38040 4 38048 4 38050 4 38055 4 38056 4 38064 4 38072 4 38074 4 38086 4 38092 4 38093 4 38111 4 38120 4 38125 4 38126 4 38141 4 38142 4 38148 4 38150 4 38154 4 38155 4 38165 4 38173 4 38179 4 38212 4 38218 4 38221 4 38223 4 38225 4 38237 4 38238 4 38244 4 38267 4 38272 4 38280 4 38282 4 38287 4 38292 4 38297 4 38306 4 38330 4 38332 4 38334 4 38335 4 38343 4 38350 4 38358 4 38363 4 38370 4 38381 4 38383 4 38393 4 38405 4 38407 4 38408 4 38413 4 38415 4 38420 4 38422 4 38427 4 38429 4 38430 4 38439 4 38440 4 38458 4 38461 4 38463 4 38470 4 38471 4 38474 4 38477 4 38486 4 38487 4 38489 4 38491 4 38492 4 38496 4 38497 4 38501 4 38503 4 38505 4 38513 4 38516 4 38517 4 38524 4 38527 4 38529 4 38530 4 38533 4 38553 4 38557 4 38562 4 38563 4 38564 4 38567 4 38583 4 38584 4 38586 4 38597 4 38598 4 38600 4 38610 4 38625 4 38627 4 38630 4 38632 4 38636 4 38641 4 38644 4 38651 4 38656 4 38658 4 38687 4 38689 4 38699 4 38701 4 38712 4 38727 4 38732 4 38733 4 38737 4 38756 4 38770 4 38773 4 38775 4 38779 4 38801 4 38804 4 38805 4 38821 4 38823 4 38825 4 38826 4 38828 4 38830 4 38831 4 38832 4 38833 4 38839 4 38843 4 38856 4 38861 4 38875 4 38880 4 38885 4 38897 4 38903 4 38918 4 38919 4 38923 4 38930 4 38933 4 38938 4 38941 4 38954 4 38955 4 38962 4 38965 4 38967 4 38983 4 38987 4 38992 4 39006 4 39036 4 39041 4 39048 4 39059 4 39063 4 39066 4 39070 4 39071 4 39073 4 39080 4 39081 4 39084 4 39086 4 39089 4 39098 4 39099 4 39102 4 39103 4 39109 4 39114 4 39121 4 39122 4 39127 4 39130 4 39136 4 39144 4 39145 4 39149 4 39154 4 39157 4 39164 4 39165 4 39169 4 39171 4 39180 4 39181 4 39187 4 39192 4 39195 4 39199 4 39205 4 39209 4 39213 4 39214 4 39215 4 39216 4 39219 4 39220 4 39236 4 39238 4 39252 4 39257 4 39274 4 39275 4 39286 4 39287 4 39288 4 39312 4 39323 4 39326 4 39330 4 39334 4 39336 4 39337 4 39342 4 39351 4 39352 4 39353 4 39359 4 39361 4 39364 4 39365 4 39371 4 39373 4 39384 4 39385 4 39391 4 39394 4 39396 4 39398 4 39399 4 39401 4 39418 4 39428 4 39431 4 39433 4 39436 4 39452 4 39455 4 39457 4 39483 4 39515 4 39517 4 39518 4 39519 4 39532 4 39533 4 39535 4 39539 4 39541 4 39545 4 39550 4 39553 4 39562 4 39564 4 39572 4 39573 4 39577 4 39591 4 39593 4 39605 4 39608 4 39617 4 39624 4 39629 4 39630 4 39640 4 39646 4 39648 4 39650 4 39651 4 39653 4 39657 4 39658 4 39665 4 39668 4 39672 4 39680 4 39689 4 39691 4 39704 4 39705 4 39706 4 39713 4 39734 4 39736 4 39740 4 39762 4 39764 4 39771 4 39772 4 39783 4 39787 4 39807 4 39808 4 39811 4 39817 4 39822 4 39824 4 39832 4 39833 4 39837 4 39848 4 39854 4 39858 4 39860 4 39861 4 39865 4 39868 4 39882 4 39893 4 39895 4 39906 4 39913 4 39915 4 39921 4 39923 4 39924 4 39929 4 39950 4 39959 4 39964 4 39967 4 39976 4 39981 4 39986 4 39995 4 39998 4 39999 4 40001 4 40006 4 40016 4 40026 4 40027 4 40032 4 40033 4 40044 4 40048 4 40051 4 40056 4 40067 4 40075 4 40083 4 40129 4 40145 4 40146 4 40147 4 40151 4 40153 4 40157 4 40163 4 40167 4 40169 4 40172 4 40173 4 40176 4 40183 4 40184 4 40194 4 40202 4 40203 4 40214 4 40216 4 40219 4 40221 4 40223 4 40225 4 40229 4 40231 4 40251 4 40255 4 40256 4 40263 4 40266 4 40267 4 40275 4 40278 4 40314 4 40317 4 40319 4 40329 4 40337 4 40339 4 40340 4 40364 4 40366 4 40367 4 40374 4 40375 4 40389 4 40390 4 40392 4 40394 4 40395 4 40400 4 40401 4 40412 4 40418 4 40420 4 40422 4 40425 4 40432 4 40445 4 40448 4 40450 4 40454 4 40458 4 40463 4 40466 4 40480 4 40481 4 40482 4 40484 4 40490 4 40492 4 40496 4 40497 4 40510 4 40517 4 40520 4 40524 4 40543 4 40563 4 40564 4 40569 4 40573 4 40577 4 40596 4 40597 4 40601 4 40603 4 40604 4 40613 4 40614 4 40615 4 40619 4 40623 4 40630 4 40631 4 40634 4 40637 4 40645 4 40650 4 40668 4 40670 4 40672 4 40678 4 40679 4 40681 4 40683 4 40684 4 40686 4 40688 4 40691 4 40692 4 40698 4 40702 4 40714 4 40724 4 40730 4 40735 4 40737 4 40741 4 40743 4 40744 4 40748 4 40749 4 40751 4 40757 4 40761 4 40766 4 40772 4 40773 4 40777 4 40779 4 40780 4 40782 4 40786 4 40788 4 40790 4 40791 4 40796 4 40797 4 40799 4 40804 4 40809 4 40812 4 40816 4 40817 4 40820 4 40821 4 40825 4 40833 4 40836 4 40838 4 40852 4 40853 4 40854 4 40855 4 40858 4 40866 4 40868 4 40873 4 40879 4 40890 4 40895 4 40903 4 40905 4 40910 4 40912 4 40920 4 40931 4 40942 4 40949 4 40965 4 40972 4 40979 4 40982 4 40984 4 40987 4 40992 4 40996 4 40998 4 41001 4 41002 4 41024 4 41027 4 41028 4 41029 4 41032 4 41047 4 41053 4 41074 4 41088 4 41089 4 41094 4 41106 4 41110 4 41120 4 41128 4 41141 4 41145 4 41148 4 41154 4 41155 4 41158 4 41161 4 41176 4 41179 4 41182 4 41187 4 41192 4 41194 4 41195 4 41202 4 41218 4 41223 4 41228 4 41245 4 41254 4 41256 4 41262 4 41263 4 41270 4 41281 4 41283 4 41286 4 41290 4 41294 4 41297 4 41300 4 41301 4 41312 4 41315 4 41326 4 41327 4 41346 4 41353 4 41362 4 41378 4 41383 4 41384 4 41386 4 41388 4 41393 4 41398 4 41404 4 41410 4 41415 4 41417 4 41426 4 41436 4 41439 4 41443 4 41445 4 41446 4 41461 4 41469 4 41471 4 41504 4 41512 4 41517 4 41520 4 41521 4 41531 4 41534 4 41535 4 41537 4 41538 4 41559 4 41563 4 41570 4 41578 4 41583 4 41584 4 41589 4 41593 4 41598 4 41601 4 41616 4 41618 4 41622 4 41623 4 41625 4 41649 4 41652 4 41653 4 41655 4 41658 4 41663 4 41686 4 41687 4 41689 4 41693 4 41707 4 41717 4 41726 4 41734 4 41736 4 41737 4 41756 4 41757 4 41761 4 41762 4 41764 4 41766 4 41771 4 41781 4 41784 4 41790 4 41794 4 41801 4 41802 4 41807 4 41814 4 41827 4 41831 4 41832 4 41842 4 41844 4 41862 4 41881 4 41882 4 41884 4 41886 4 41889 4 41894 4 41907 4 41914 4 41919 4 41929 4 41946 4 41948 4 41951 4 41966 4 41985 4 41990 4 42007 4 42008 4 42016 4 42018 4 42019 4 42044 4 42045 4 42049 4 42050 4 42054 4 42057 4 42072 4 42074 4 42083 4 42086 4 42088 4 42095 4 42101 4 42105 4 42111 4 42123 4 42126 4 42128 4 42143 4 42145 4 42152 4 42155 4 42162 4 42172 4 42179 4 42185 4 42191 4 42198 4 42202 4 42204 4 42208 4 42213 4 42226 4 42227 4 42233 4 42234 4 42243 4 42250 4 42251 4 42263 4 42265 4 42270 4 42276 4 42278 4 42290 4 42293 4 42299 4 42304 4 42306 4 42307 4 42322 4 42325 4 42329 4 42331 4 42332 4 42337 4 42340 4 42348 4 42352 4 42354 4 42355 4 42366 4 42398 4 42408 4 42415 4 42419 4 42422 4 42431 4 42432 4 42438 4 42441 4 42444 4 42457 4 42459 4 42462 4 42467 4 42469 4 42470 4 42487 4 42488 4 42492 4 42495 4 42499 4 42508 4 42509 4 42526 4 42531 4 42533 4 42534 4 42544 4 42546 4 42548 4 42557 4 42566 4 42568 4 42574 4 42582 4 42583 4 42598 4 42603 4 42614 4 42621 4 42623 4 42628 4 42631 4 42632 4 42635 4 42640 4 42642 4 42648 4 42649 4 42660 4 42667 4 42669 4 42673 4 42674 4 42683 4 42690 4 42691 4 42699 4 42721 4 42725 4 42727 4 42728 4 42734 4 42739 4 42746 4 42751 4 42753 4 42760 4 42761 4 42773 4 42780 4 42785 4 42786 4 42788 4 42794 4 42822 4 42824 4 42829 4 42833 4 42834 4 42838 4 42840 4 42841 4 42846 4 42847 4 42853 4 42856 4 42859 4 42866 4 42871 4 42872 4 42878 4 42880 4 42882 4 42892 4 42906 4 42915 4 42934 4 42941 4 42946 4 42947 4 42957 4 42972 4 42989 4 42992 4 42995 4 42998 4 43005 4 43023 4 43028 4 43029 4 43033 4 43040 4 43043 4 43052 4 43059 4 43061 4 43062 4 43068 4 43078 4 43082 4 43084 4 43094 4 43096 4 43100 4 43103 4 43118 4 43128 4 43129 4 43137 4 43144 4 43153 4 43154 4 43159 4 43161 4 43178 4 43180 4 43186 4 43199 4 43200 4 43204 4 43214 4 43217 4 43218 4 43222 4 43233 4 43236 4 43241 4 43244 4 43247 4 43248 4 43250 4 43254 4 43256 4 43258 4 43274 4 43275 4 43276 4 43277 4 43282 4 43284 4 43287 4 43289 4 43296 4 43297 4 43306 4 43307 4 43309 4 43314 4 43315 4 43318 4 43320 4 43321 4 43323 4 43330 4 43339 4 43343 4 43345 4 43350 4 43355 4 43363 4 43366 4 43372 4 43375 4 43381 4 43383 4 43388 4 43392 4 43394 4 43396 4 43410 4 43411 4 43417 4 43421 4 43425 4 43428 4 43446 4 43455 4 43459 4 43460 4 43483 4 43484 4 43489 4 43490 4 43501 4 43509 4 43516 4 43529 4 43533 4 43535 4 43550 4 43554 4 43555 4 43560 4 43563 4 43574 4 43580 4 43581 4 43585 4 43588 4 43602 4 43603 4 43604 4 43607 4 43625 4 43632 4 43636 4 43638 4 43640 4 43642 4 43648 4 43657 4 43668 4 43672 4 43700 4 43711 4 43714 4 43723 4 43737 4 43738 4 43739 4 43743 4 43753 4 43755 4 43769 4 43772 4 43776 4 43790 4 43799 4 43807 4 43814 4 43816 4 43819 4 43824 4 43828 4 43830 4 43838 4 43848 4 43851 4 43853 4 43855 4 43867 4 43869 4 43871 4 43875 4 43895 4 43899 4 43911 4 43914 4 43918 4 43940 4 43945 4 43957 4 43962 4 43965 4 43974 4 43976 4 43988 4 43989 4 43992 4 44005 4 44006 4 44009 4 44015 4 44016 4 44023 4 44032 4 44036 4 44037 4 44054 4 44055 4 44059 4 44067 4 44072 4 44078 4 44081 4 44085 4 44094 4 44104 4 44108 4 44111 4 44113 4 44118 4 44121 4 44130 4 44134 4 44140 4 44143 4 44164 4 44165 4 44172 4 44173 4 44183 4 44185 4 44195 4 44197 4 44204 4 44208 4 44210 4 44213 4 44214 4 44225 4 44227 4 44230 4 44234 4 44237 4 44239 4 44243 4 44255 4 44257 4 44277 4 44279 4 44284 4 44289 4 44305 4 44307 4 44311 4 44312 4 44313 4 44325 4 44329 4 44331 4 44333 4 44334 4 44339 4 44340 4 44347 4 44349 4 44351 4 44356 4 44359 4 44361 4 44367 4 44371 4 44398 4 44399 4 44437 4 44442 4 44458 4 44468 4 44487 4 44488 4 44489 4 44496 4 44497 4 44502 4 44503 4 44509 4 44517 4 44518 4 44531 4 44540 4 44549 4 44550 4 44559 4 44560 4 44562 4 44563 4 44586 4 44589 4 44593 4 44598 4 44608 4 44609 4 44614 4 44617 4 44618 4 44623 4 44631 4 44636 4 44642 4 44662 4 44673 4 44674 4 44679 4 44693 4 44699 4 44701 4 44704 4 44706 4 44714 4 44718 4 44720 4 44725 4 44727 4 44732 4 44742 4 44744 4 44751 4 44757 4 44773 4 44778 4 44783 4 44790 4 44800 4 44810 4 44816 4 44820 4 44821 4 44824 4 44826 4 44857 4 44860 4 44861 4 44863 4 44864 4 44868 4 44870 4 44877 4 44885 4 44886 4 44893 4 44904 4 44920 4 44924 4 44929 4 44930 4 44935 4 44936 4 44940 4 44952 4 44955 4 44967 4 44978 4 44982 4 44989 4 44990 4 44993 4 45012 4 45015 4 45021 4 45026 4 45037 4 45038 4 45065 4 45067 4 45068 4 45071 4 45073 4 45079 4 45093 4 45098 4 45103 4 45110 4 45114 4 45121 4 45127 4 45129 4 45132 4 45133 4 45134 4 45147 4 45168 4 45180 4 45184 4 45202 4 45204 4 45212 4 45213 4 45218 4 45220 4 45222 4 45233 4 45240 4 45254 4 45261 4 45266 4 45268 4 45270 4 45274 4 45279 4 45282 4 45297 4 45302 4 45305 4 45333 4 45334 4 45337 4 45343 4 45345 4 45347 4 45365 4 45372 4 45374 4 45377 4 45378 4 45381 4 45387 4 45393 4 45398 4 45401 4 45404 4 45408 4 45420 4 45421 4 45428 4 45431 4 45436 4 45456 4 45457 4 45462 4 45467 4 45468 4 45480 4 45486 4 45503 4 45510 4 45521 4 45525 4 45526 4 45528 4 45534 4 45566 4 45571 4 45574 4 45580 4 45586 4 45589 4 45592 4 45594 4 45595 4 45598 4 45601 4 45608 4 45612 4 45618 4 45631 4 45638 4 45643 4 45649 4 45661 4 45664 4 45672 4 45677 4 45681 4 45682 4 45690 4 45691 4 45693 4 45701 4 45711 4 45719 4 45730 4 45734 4 45740 4 45746 4 45751 4 45767 4 45782 4 45792 4 45797 4 45799 4 45803 4 45813 4 45817 4 45824 4 45825 4 45833 4 45838 4 45847 4 45852 4 45855 4 45860 4 45862 4 45869 4 45876 4 45883 4 45884 4 45885 4 45888 4 45889 4 45898 4 45911 4 45916 4 45918 4 45919 4 45923 4 45935 4 45938 4 45939 4 45944 4 45961 4 45963 4 45966 4 45968 4 45970 4 45974 4 45986 4 45993 4 45997 4 45999 4 46004 4 46010 4 46011 4 46017 4 46023 4 46043 4 46045 4 46047 4 46053 4 46057 4 46070 4 46079 4 46083 4 46087 4 46088 4 46091 4 46094 4 46095 4 46103 4 46104 4 46109 4 46113 4 46127 4 46133 4 46149 4 46155 4 46168 4 46170 4 46171 4 46177 4 46192 4 46194 4 46199 4 46202 4 46210 4 46213 4 46218 4 46223 4 46230 4 46232 4 46257 4 46259 4 46264 4 46290 4 46291 4 46297 4 46299 4 46304 4 46306 4 46309 4 46311 4 46322 4 46328 4 46331 4 46335 4 46346 4 46349 4 46350 4 46359 4 46360 4 46366 4 46369 4 46371 4 46373 4 46379 4 46391 4 46392 4 46416 4 46420 4 46433 4 46437 4 46442 4 46449 4 46460 4 46467 4 46473 4 46475 4 46477 4 46478 4 46479 4 46480 4 46489 4 46491 4 46496 4 46500 4 46501 4 46505 4 46518 4 46521 4 46522 4 46524 4 46531 4 46534 4 46535 4 46541 4 46546 4 46547 4 46553 4 46561 4 46566 4 46572 4 46580 4 46582 4 46590 4 46591 4 46600 4 46601 4 46606 4 46607 4 46609 4 46611 4 46622 4 46630 4 46635 4 46638 4 46648 4 46651 4 46654 4 46656 4 46660 4 46663 4 46671 4 46675 4 46679 4 46708 4 46711 4 46713 4 46715 4 46731 4 46741 4 46745 4 46749 4 46759 4 46764 4 46767 4 46768 4 46774 4 46784 4 46789 4 46794 4 46798 4 46801 4 46802 4 46804 4 46810 4 46819 4 46821 4 46826 4 46828 4 46831 4 46839 4 46852 4 46856 4 46868 4 46869 4 46871 4 46877 4 46894 4 46895 4 46920 4 46925 4 46937 4 46950 4 46963 4 46974 4 46975 4 46991 4 47002 4 47008 4 47011 4 47017 4 47028 4 47030 4 47046 4 47050 4 47052 4 47061 4 47062 4 47067 4 47068 4 47069 4 47076 4 47094 4 47110 4 47121 4 47122 4 47144 4 47153 4 47154 4 47155 4 47157 4 47168 4 47177 4 47186 4 47190 4 47203 4 47206 4 47208 4 47210 4 47212 4 47219 4 47221 4 47224 4 47225 4 47235 4 47250 4 47258 4 47270 4 47271 4 47277 4 47278 4 47279 4 47290 4 47292 4 47301 4 47302 4 47311 4 47315 4 47324 4 47333 4 47362 4 47367 4 47369 4 47370 4 47373 4 47382 4 47384 4 47386 4 47399 4 47402 4 47405 4 47409 4 47410 4 47416 4 47427 4 47433 4 47468 4 47469 4 47471 4 47479 4 47481 4 47491 4 47493 4 47498 4 47513 4 47515 4 47523 4 47538 4 47548 4 47553 4 47560 4 47561 4 47570 4 47572 4 47587 4 47599 4 47601 4 47602 4 47604 4 47613 4 47614 4 47621 4 47623 4 47626 4 47627 4 47630 4 47637 4 47645 4 47648 4 47652 4 47677 4 47685 4 47687 4 47693 4 47699 4 47700 4 47705 4 47706 4 47718 4 47722 4 47723 4 47726 4 47728 4 47735 4 47759 4 47773 4 47774 4 47778 4 47785 4 47804 4 47813 4 47829 4 47832 4 47837 4 47850 4 47862 4 47873 4 47875 4 47876 4 47878 4 47879 4 47884 4 47892 4 47911 4 47917 4 47921 4 47928 4 47936 4 47938 4 47940 4 47953 4 47956 4 47957 4 47959 4 47961 4 47971 4 47974 4 47975 4 47985 4 47997 4 47998 4 48003 4 48015 4 48017 4 48018 4 48023 4 48024 4 48025 4 48027 4 48029 4 48031 4 48032 4 48033 4 48037 4 48040 4 48046 4 48052 4 48061 4 48084 4 48085 4 48093 4 48094 4 48102 4 48107 4 48108 4 48109 4 48126 4 48132 4 48153 4 48159 4 48166 4 48184 4 48188 4 48201 4 48205 4 48208 4 48215 4 48219 4 48222 4 48233 4 48236 4 48241 4 48243 4 48248 4 48252 4 48267 4 48269 4 48271 4 48278 4 48286 4 48290 4 48293 4 48297 4 48301 4 48303 4 48305 4 48308 4 48310 4 48316 4 48321 4 48323 4 48324 4 48327 4 48331 4 48341 4 48354 4 48356 4 48358 4 48364 4 48365 4 48377 4 48384 4 48386 4 48389 4 48391 4 48392 4 48401 4 48402 4 48403 4 48405 4 48419 4 48428 4 48434 4 48455 4 48457 4 48468 4 48475 4 48477 4 48478 4 48484 4 48485 4 48489 4 48490 4 48497 4 48501 4 48503 4 48512 4 48525 4 48532 4 48541 4 48542 4 48552 4 48569 4 48572 4 48582 4 48593 4 48614 4 48617 4 48636 4 48638 4 48647 4 48655 4 48663 4 48672 4 48678 4 48679 4 48686 4 48690 4 48693 4 48696 4 48698 4 48701 4 48702 4 48708 4 48709 4 48711 4 48722 4 48734 4 48740 4 48741 4 48744 4 48745 4 48749 4 48750 4 48755 4 48760 4 48763 4 48788 4 48794 4 48798 4 48801 4 48802 4 48819 4 48820 4 48822 4 48824 4 48830 4 48834 4 48842 4 48849 4 48850 4 48854 4 48863 4 48869 4 48880 4 48881 4 48883 4 48885 4 48890 4 48892 4 48899 4 48901 4 48915 4 48919 4 48936 4 48941 4 48944 4 48945 4 48950 4 48952 4 48955 4 48956 4 48965 4 48968 4 48969 4 48977 4 48984 4 49002 4 49013 4 49015 4 49018 4 49022 4 49043 4 49046 4 49051 4 49053 4 49058 4 49060 4 49069 4 49082 4 49083 4 49086 4 49088 4 49091 4 49094 4 49096 4 49101 4 49111 4 49115 4 49119 4 49123 4 49125 4 49132 4 49136 4 49146 4 49147 4 49149 4 49156 4 49159 4 49171 4 49174 4 49181 4 49182 4 49188 4 49192 4 49200 4 49204 4 49218 4 49219 4 49233 4 49234 4 49247 4 49252 4 49253 4 49259 4 49267 4 49281 4 49297 4 49310 4 49315 4 49316 4 49318 4 49324 4 49329 4 49332 4 49338 4 49354 4 49365 4 49371 4 49373 4 49374 4 49381 4 49382 4 49387 4 49389 4 49394 4 49396 4 49409 4 49423 4 49433 4 49436 4 49439 4 49449 4 49463 4 49466 4 49469 4 49474 4 49480 4 49487 4 49500 4 49505 4 49506 4 49507 4 49516 4 49518 4 49519 4 49523 4 49526 4 49529 4 49534 4 49536 4 49538 4 49559 4 49560 4 49580 4 49592 4 49593 4 49596 4 49605 4 49610 4 49619 4 49620 4 49639 4 49641 4 49652 4 49659 4 49665 4 49675 4 49676 4 49678 4 49679 4 49680 4 49686 4 49691 4 49692 4 49706 4 49711 4 49717 4 49728 4 49766 4 49767 4 49777 4 49779 4 49784 4 49787 4 49789 4 49794 4 49796 4 49807 4 49809 4 49811 4 49820 4 49821 4 49826 4 49833 4 49846 4 49850 4 49855 4 49856 4 49867 4 49884 4 49890 4 49891 4 49909 4 49926 4 49928 4 49930 4 49944 4 49959 4 49960 4 49967 4 49971 4 49975 4 49977 4 49979 4 49983 4 49988 4 49991 4 49998 4 50001 4 50002 4 50003 4 50011 4 50014 4 50028 4 50029 4 50032 4 50036 4 50039 4 50052 4 50058 4 50061 4 50071 4 50072 4 50075 4 50078 4 50082 4 50084 4 50092 4 50097 4 50099 4 50101 4 50117 4 50118 4 50121 4 50123 4 50125 4 50132 4 50133 4 50144 4 50145 4 50149 4 50175 4 50178 4 50179 4 50181 4 50191 4 50193 4 50199 4 50204 4 50213 4 50226 4 50239 4 50240 4 50242 4 50247 4 50248 4 50249 4 50253 4 50266 4 50280 4 50281 4 50290 4 50298 4 50305 4 50312 4 50314 4 50315 4 50318 4 50327 4 50331 4 50334 4 50338 4 50339 4 50340 4 50341 4 50351 4 50353 4 50358 4 50373 4 50388 4 50408 4 50411 4 50412 4 50413 4 50417 4 50423 4 50427 4 50443 4 50448 4 50452 4 50453 4 50464 4 50465 4 50467 4 50473 4 50487 4 50489 4 50493 4 50495 4 50506 4 50507 4 50517 4 50522 4 50527 4 50531 4 50538 4 50540 4 50545 4 50549 4 50550 4 50552 4 50559 4 50570 4 50588 4 50594 4 50597 4 50601 4 50602 4 50605 4 50608 4 50611 4 50632 4 50640 4 50646 4 50652 4 50656 4 50661 4 50663 4 50665 4 50676 4 50677 4 50683 4 50701 4 50707 4 50714 4 50721 4 50723 4 50728 4 50738 4 50745 4 50750 4 50751 4 50752 4 50778 4 50781 4 50789 4 50793 4 50811 4 50813 4 50819 4 50833 4 50835 4 50840 4 50861 4 50862 4 50865 4 50874 4 50876 4 50891 4 50898 4 50919 4 50925 4 50929 4 50931 4 50937 4 50938 4 50945 4 50957 4 50959 4 50964 4 50967 4 50972 4 50976 4 50980 4 50981 4 50985 4 50987 4 51000 4 51005 4 51018 4 51029 4 51031 4 51035 4 51038 4 51040 4 51041 4 51044 4 51055 4 51056 4 51065 4 51067 4 51076 4 51083 4 51104 4 51111 4 51113 4 51117 4 51118 4 51134 4 51148 4 51154 4 51160 4 51161 4 51171 4 51175 4 51179 4 51183 4 51186 4 51192 4 51194 4 51206 4 51211 4 51214 4 51217 4 51218 4 51220 4 51228 4 51229 4 51230 4 51231 4 51238 4 51251 4 51256 4 51259 4 51270 4 51278 4 51284 4 51286 4 51288 4 51289 4 51292 4 51294 4 51295 4 51301 4 51306 4 51324 4 51329 4 51336 4 51337 4 51339 4 51342 4 51369 4 51370 4 51373 4 51383 4 51397 4 51401 4 51408 4 51411 4 51414 4 51419 4 51425 4 51427 4 51429 4 51434 4 51439 4 51447 4 51448 4 51450 4 51453 4 51456 4 51467 4 51469 4 51473 4 51491 4 51493 4 51497 4 51498 4 51502 4 51505 4 51509 4 51512 4 51515 4 51523 4 51533 4 51541 4 51544 4 51549 4 51552 4 51554 4 51566 4 51574 4 51575 4 51576 4 51577 4 51583 4 51590 4 51591 4 51595 4 51596 4 51604 4 51615 4 51633 4 51639 4 51642 4 51643 4 51646 4 51647 4 51664 4 51669 4 51686 4 51706 4 51707 4 51710 4 51711 4 51714 4 51716 4 51719 4 51728 4 51733 4 51734 4 51739 4 51741 4 51747 4 51752 4 51758 4 51761 4 51767 4 51769 4 51771 4 51775 4 51776 4 51784 4 51789 4 51790 4 51791 4 51797 4 51803 4 51808 4 51813 4 51816 4 51826 4 51834 4 51838 4 51841 4 51843 4 51847 4 51848 4 51857 4 51862 4 51866 4 51884 4 51886 4 51893 4 51894 4 51897 4 51907 4 51912 4 51916 4 51917 4 51922 4 51930 4 51931 4 51932 4 51937 4 51938 4 51945 4 51948 4 51953 4 51955 4 51958 4 51961 4 51963 4 51968 4 51969 4 51980 4 51983 4 51994 4 52000 4 52003 4 52010 4 52018 4 52022 4 52034 4 52038 4 52039 4 52063 4 52071 4 52082 4 52087 4 52089 4 52090 4 52096 4 52099 4 52101 4 52109 4 52110 4 52111 4 52112 4 52116 4 52121 4 52126 4 52134 4 52140 4 52152 4 52162 4 52170 4 52178 4 52181 4 52186 4 52188 4 52194 4 52198 4 52212 4 52219 4 52221 4 52222 4 52227 4 52240 4 52251 4 52252 4 52253 4 52256 4 52270 4 52271 4 52272 4 52273 4 52275 4 52280 4 52283 4 52291 4 52292 4 52315 4 52317 4 52320 4 52330 4 52345 4 52346 4 52351 4 52354 4 52367 4 52371 4 52373 4 52375 4 52377 4 52380 4 52393 4 52406 4 52408 4 52411 4 52414 4 52426 4 52440 4 52448 4 52459 4 52460 4 52463 4 52470 4 52473 4 52474 4 52475 4 52500 4 52503 4 52507 4 52516 4 52523 4 52525 4 52526 4 52528 4 52531 4 52546 4 52548 4 52567 4 52572 4 52579 4 52600 4 52605 4 52612 4 52621 4 52644 4 52645 4 52648 4 52654 4 52663 4 52665 4 52671 4 52679 4 52682 4 52696 4 52699 4 52708 4 52711 4 52722 4 52724 4 52727 4 52730 4 52733 4 52748 4 52749 4 52756 4 52764 4 52770 4 52775 4 52776 4 52784 4 52791 4 52792 4 52795 4 52801 4 52804 4 52814 4 52817 4 52824 4 52829 4 52836 4 52838 4 52842 4 52845 4 52846 4 52848 4 52849 4 52859 4 52861 4 52873 4 52880 4 52881 4 52884 4 52887 4 52891 4 52893 4 52919 4 52930 4 52933 4 52939 4 52944 4 52945 4 52951 4 52955 4 52960 4 52968 4 52970 4 52972 4 52977 4 52980 4 52982 4 52993 4 52995 4 53003 4 53010 4 53011 4 53019 4 53021 4 53028 4 53030 4 53033 4 53034 4 53036 4 53038 4 53039 4 53043 4 53048 4 53053 4 53058 4 53059 4 53060 4 53067 4 53071 4 53072 4 53077 4 53079 4 53105 4 53106 4 53112 4 53115 4 53117 4 53136 4 53142 4 53146 4 53147 4 53149 4 53160 4 53161 4 53162 4 53173 4 53175 4 53177 4 53203 4 53204 4 53222 4 53225 4 53228 4 53232 4 53236 4 53244 4 53245 4 53247 4 53250 4 53254 4 53273 4 53290 4 53291 4 53292 4 53303 4 53305 4 53308 4 53309 4 53316 4 53324 4 53325 4 53331 4 53336 4 53347 4 53355 4 53356 4 53369 4 53370 4 53384 4 53402 4 53413 4 53415 4 53417 4 53422 4 53423 4 53425 4 53432 4 53433 4 53437 4 53445 4 53449 4 53469 4 53472 4 53480 4 53487 4 53489 4 53496 4 53498 4 53512 4 53522 4 53527 4 53544 4 53549 4 53558 4 53561 4 53571 4 53574 4 53582 4 53586 4 53587 4 53592 4 53593 4 53609 4 53611 4 53621 4 53630 4 53646 4 53647 4 53669 4 53670 4 53672 4 53676 4 53680 4 53686 4 53696 4 53700 4 53701 4 53708 4 53715 4 53742 4 53744 4 53754 4 53755 4 53762 4 53772 4 53775 4 53776 4 53777 4 53784 4 53785 4 53795 4 53796 4 53800 4 53802 4 53806 4 53807 4 53810 4 53812 4 53818 4 53825 4 53831 4 53837 4 53841 4 53847 4 53850 4 53857 4 53876 4 53879 4 53884 4 53886 4 53896 4 53903 4 53907 4 53909 4 53911 4 53917 4 53918 4 53922 4 53924 4 53925 4 53927 4 53933 4 53944 4 53945 4 53951 4 53953 4 53975 4 53984 4 53988 4 53990 4 53994 4 53996 4 53998 4 54005 4 54015 4 54017 4 54022 4 54024 4 54025 4 54033 4 54040 4 54057 4 54063 4 54070 4 54075 4 54076 4 54078 4 54081 4 54083 4 54106 4 54111 4 54112 4 54119 4 54121 4 54133 4 54135 4 54141 4 54153 4 54159 4 54174 4 54180 4 54187 4 54191 4 54193 4 54202 4 54203 4 54206 4 54208 4 54212 4 54213 4 54222 4 54230 4 54241 4 54253 4 54257 4 54258 4 54262 4 54264 4 54276 4 54278 4 54279 4 54282 4 54298 4 54305 4 54314 4 54317 4 54322 4 54325 4 54327 4 54340 4 54347 4 54353 4 54358 4 54359 4 54374 4 54379 4 54381 4 54384 4 54390 4 54393 4 54394 4 54401 4 54411 4 54418 4 54421 4 54426 4 54427 4 54439 4 54440 4 54442 4 54451 4 54454 4 54455 4 54464 4 54465 4 54467 4 54468 4 54493 4 54496 4 54503 4 54509 4 54523 4 54527 4 54533 4 54534 4 54538 4 54554 4 54557 4 54559 4 54563 4 54565 4 54567 4 54569 4 54578 4 54580 4 54586 4 54592 4 54606 4 54611 4 54623 4 54629 4 54630 4 54639 4 54642 4 54660 4 54666 4 54672 4 54677 4 54684 4 54689 4 54698 4 54704 4 54708 4 54718 4 54721 4 54736 4 54737 4 54739 4 54751 4 54761 4 54770 4 54771 4 54773 4 54780 4 54781 4 54790 4 54796 4 54810 4 54816 4 54817 4 54825 4 54839 4 54848 4 54849 4 54858 4 54860 4 54875 4 54877 4 54882 4 54891 4 54909 4 54931 4 54932 4 54940 4 54942 4 54946 4 54965 4 54967 4 54974 4 54977 4 54980 4 54982 4 55000 4 55014 4 55021 4 55039 4 55043 4 55052 4 55069 4 55072 4 55077 4 55080 4 55082 4 55087 4 55097 4 55104 4 55105 4 55114 4 55116 4 55117 4 55130 4 55134 4 55153 4 55158 4 55163 4 55165 4 55170 4 55171 4 55175 4 55177 4 55189 4 55199 4 55200 4 55211 4 55216 4 55225 4 55226 4 55228 4 55234 4 55237 4 55241 4 55244 4 55247 4 55252 4 55253 4 55258 4 55267 4 55273 4 55276 4 55277 4 55282 4 55283 4 55291 4 55292 4 55298 4 55306 4 55308 4 55320 4 55322 4 55324 4 55329 4 55331 4 55344 4 55349 4 55354 4 55365 4 55369 4 55380 4 55387 4 55390 4 55393 4 55399 4 55402 4 55408 4 55411 4 55418 4 55420 4 55432 4 55433 4 55435 4 55445 4 55446 4 55453 4 55461 4 55462 4 55465 4 55470 4 55473 4 55479 4 55484 4 55486 4 55495 4 55496 4 55498 4 55500 4 55507 4 55508 4 55518 4 55527 4 55528 4 55534 4 55536 4 55542 4 55545 4 55546 4 55548 4 55559 4 55560 4 55565 4 55569 4 55577 4 55582 4 55583 4 55585 4 55601 4 55603 4 55604 4 55620 4 55621 4 55645 4 55646 4 55654 4 55658 4 55663 4 55674 4 55677 4 55678 4 55690 4 55692 4 55693 4 55694 4 55695 4 55703 4 55717 4 55726 4 55729 4 55733 4 55740 4 55757 4 55767 4 55768 4 55773 4 55774 4 55788 4 55790 4 55798 4 55804 4 55811 4 55812 4 55819 4 55822 4 55829 4 55845 4 55850 4 55852 4 55856 4 55871 4 55875 4 55876 4 55878 4 55889 4 55896 4 55906 4 55909 4 55910 4 55915 4 55916 4 55925 4 55928 4 55934 4 55940 4 55946 4 55948 4 55966 4 55967 4 55968 4 55974 4 55981 4 55999 4 56000 4 56007 4 56011 4 56014 4 56022 4 56029 4 56031 4 56033 4 56034 4 56036 4 56038 4 56039 4 56059 4 56060 4 56076 4 56080 4 56081 4 56083 4 56084 4 56107 4 56118 4 56120 4 56125 4 56133 4 56143 4 56146 4 56156 4 56157 4 56162 4 56165 4 56168 4 56170 4 56172 4 56185 4 56188 4 56212 4 56218 4 56235 4 56236 4 56242 4 56255 4 56257 4 56269 4 56279 4 56280 4 56281 4 56285 4 56286 4 56293 4 56301 4 56312 4 56313 4 56329 4 56330 4 56343 4 56345 4 56351 4 56356 4 56359 4 56360 4 56363 4 56364 4 56369 4 56391 4 56396 4 56402 4 56411 4 56423 4 56427 4 56439 4 56449 4 56451 4 56462 4 56463 4 56465 4 56468 4 56479 4 56480 4 56481 4 56483 4 56487 4 56496 4 56497 4 56501 4 56512 4 56514 4 56516 4 56518 4 56520 4 56534 4 56542 4 56546 4 56554 4 56576 4 56581 4 56605 4 56606 4 56614 4 56628 4 56631 4 56632 4 56646 4 56650 4 56655 4 56657 4 56659 4 56660 4 56664 4 56667 4 56670 4 56672 4 56676 4 56678 4 56684 4 56701 4 56703 4 56708 4 56716 4 56718 4 56727 4 56732 4 56738 4 56744 4 56745 4 56746 4 56747 4 56755 4 56756 4 56762 4 56773 4 56779 4 56783 4 56792 4 56794 4 56799 4 56801 4 56802 4 56803 4 56812 4 56815 4 56819 4 56826 4 56827 4 56828 4 56833 4 56835 4 56870 4 56871 4 56879 4 56884 4 56908 4 56923 4 56929 4 56932 4 56933 4 56942 4 56946 4 56948 4 56982 4 56984 4 56987 4 56999 4 57002 4 57007 4 57010 4 57011 4 57014 4 57020 4 57024 4 57034 4 57058 4 57059 4 57070 4 57074 4 57082 4 57085 4 57094 4 57095 4 57097 4 57098 4 57101 4 57126 4 57147 4 57148 4 57150 4 57161 4 57182 4 57194 4 57196 4 57199 4 57204 4 57206 4 57207 4 57209 4 57233 4 57240 4 57248 4 57257 4 57268 4 57286 4 57288 4 57291 4 57301 4 57302 4 57304 4 57305 4 57308 4 57316 4 57319 4 57323 4 57325 4 57334 4 57338 4 57341 4 57342 4 57350 4 57353 4 57368 4 57373 4 57377 4 57380 4 57385 4 57388 4 57395 4 57408 4 57414 4 57415 4 57431 4 57440 4 57447 4 57450 4 57457 4 57474 4 57475 4 57492 4 57494 4 57497 4 57506 4 57507 4 57512 4 57517 4 57521 4 57522 4 57527 4 57532 4 57536 4 57537 4 57543 4 57547 4 57550 4 57558 4 57563 4 57564 4 57574 4 57581 4 57584 4 57592 4 57596 4 57619 4 57643 4 57645 4 57657 4 57659 4 57663 4 57664 4 57666 4 57669 4 57674 4 57677 4 57679 4 57680 4 57684 4 57695 4 57697 4 57701 4 57706 4 57714 4 57719 4 57721 4 57744 4 57751 4 57754 4 57771 4 57777 4 57779 4 57792 4 57796 4 57798 4 57801 4 57802 4 57812 4 57816 4 57821 4 57826 4 57828 4 57837 4 57851 4 57860 4 57863 4 57866 4 57868 4 57875 4 57883 4 57885 4 57887 4 57892 4 57893 4 57898 4 57902 4 57910 4 57918 4 57923 4 57927 4 57928 4 57930 4 57939 4 57940 4 57949 4 57958 4 57959 4 57962 4 57966 4 57974 4 57979 4 57981 4 57996 4 58009 4 58012 4 58014 4 58027 4 58028 4 58035 4 58063 4 58064 4 58067 4 58070 4 58073 4 58079 4 58080 4 58088 4 58093 4 58095 4 58098 4 58114 4 58130 4 58143 4 58147 4 58148 4 58167 4 58175 4 58200 4 58202 4 58215 4 58223 4 58230 4 58231 4 58232 4 58233 4 58238 4 58240 4 58249 4 58250 4 58254 4 58259 4 58261 4 58271 4 58277 4 58281 4 58282 4 58292 4 58295 4 58299 4 58300 4 58304 4 58307 4 58320 4 58323 4 58337 4 58348 4 58350 4 58353 4 58364 4 58372 4 58380 4 58381 4 58390 4 58397 4 58401 4 58409 4 58414 4 58416 4 58430 4 58440 4 58441 4 58442 4 58458 4 58461 4 58462 4 58470 4 58472 4 58476 4 58485 4 58495 4 58498 4 58502 4 58507 4 58509 4 58510 4 58515 4 58518 4 58521 4 58526 4 58527 4 58529 4 58533 4 58540 4 58542 4 58543 4 58545 4 58546 4 58548 4 58549 4 58564 4 58566 4 58575 4 58588 4 58597 4 58598 4 58603 4 58618 4 58622 4 58666 4 58678 4 58684 4 58685 4 58692 4 58698 4 58699 4 58703 4 58707 4 58719 4 58720 4 58724 4 58731 4 58739 4 58742 4 58747 4 58748 4 58750 4 58756 4 58764 4 58765 4 58768 4 58772 4 58778 4 58781 4 58783 4 58792 4 58806 4 58811 4 58821 4 58826 4 58832 4 58834 4 58837 4 58838 4 58839 4 58841 4 58844 4 58850 4 58852 4 58858 4 58860 4 58878 4 58886 4 58903 4 58919 4 58924 4 58932 4 58937 4 58938 4 58945 4 58946 4 58949 4 58958 4 58964 4 58981 4 58982 4 58986 4 58990 4 58994 4 58995 4 58997 4 59001 4 59003 4 59017 4 59020 4 59043 4 59045 4 59059 4 59069 4 59072 4 59074 4 59088 4 59094 4 59101 4 59112 4 59117 4 59130 4 59137 4 59139 4 59141 4 59150 4 59158 4 59171 4 59172 4 59173 4 59196 4 59200 4 59204 4 59205 4 59212 4 59215 4 59219 4 59225 4 59229 4 59236 4 59239 4 59249 4 59250 4 59253 4 59254 4 59257 4 59258 4 59259 4 59266 4 59272 4 59285 4 59293 4 59298 4 59328 4 59361 4 59367 4 59369 4 59373 4 59374 4 59379 4 59382 4 59385 4 59390 4 59398 4 59445 4 59446 4 59452 4 59453 4 59454 4 59468 4 59478 4 59484 4 59491 4 59494 4 59500 4 59502 4 59511 4 59513 4 59519 4 59525 4 59529 4 59533 4 59540 4 59549 4 59552 4 59553 4 59556 4 59561 4 59563 4 59565 4 59568 4 59575 4 59581 4 59588 4 59613 4 59632 4 59633 4 59650 4 59651 4 59656 4 59660 4 59664 4 59672 4 59675 4 59677 4 59680 4 59682 4 59694 4 59702 4 59706 4 59713 4 59719 4 59721 4 59732 4 59737 4 59746 4 59761 4 59780 4 59792 4 59799 4 59805 4 59807 4 59816 4 59817 4 59821 4 59823 4 59831 4 59838 4 59839 4 59840 4 59842 4 59844 4 59850 4 59853 4 59855 4 59856 4 59857 4 59858 4 59861 4 59879 4 59882 4 59900 4 59913 4 59929 4 59949 4 59954 4 59967 4 59971 4 59974 4 59976 4 59977 4 59981 4 59997 4 60005 4 60007 4 60018 4 60021 4 60026 4 60027 4 60028 4 60030 4 60038 4 60041 4 60044 4 60046 4 60050 4 60061 4 60085 4 60095 4 60097 4 60100 4 60101 4 60112 4 60115 4 60118 4 60123 4 60124 4 60132 4 60140 4 60141 4 60149 4 60150 4 60162 4 60176 4 60177 4 60189 4 60202 4 60205 4 60208 4 60218 4 60219 4 60229 4 60230 4 60233 4 60234 4 60240 4 60250 4 60264 4 60265 4 60269 4 60275 4 60282 4 60285 4 60298 4 60299 4 60303 4 60318 4 60319 4 60328 4 60329 4 60331 4 60333 4 60350 4 60366 4 60368 4 60383 4 60387 4 60395 4 60398 4 60403 4 60405 4 60414 4 60420 4 60425 4 60426 4 60430 4 60442 4 60444 4 60445 4 60460 4 60464 4 60469 4 60471 4 60473 4 60480 4 60487 4 60490 4 60491 4 60494 4 60501 4 60505 4 60517 4 60518 4 60523 4 60525 4 60527 4 60529 4 60540 4 60541 4 60553 4 60558 4 60563 4 60565 4 60570 4 60572 4 60574 4 60590 4 60598 4 60599 4 60608 4 60609 4 60619 4 60623 4 60624 4 60632 4 60649 4 60656 4 60658 4 60660 4 60662 4 60664 4 60668 4 60669 4 60670 4 60675 4 60676 4 60686 4 60690 4 60701 4 60704 4 60714 4 60716 4 60724 4 60731 4 60743 4 60745 4 60747 4 60761 4 60778 4 60790 4 60794 4 60823 4 60826 4 60827 4 60830 4 60838 4 60841 4 60843 4 60845 4 60848 4 60850 4 60855 4 60859 4 60862 4 60865 4 60867 4 60870 4 60873 4 60875 4 60884 4 60896 4 60905 4 60909 4 60911 4 60920 4 60925 4 60938 4 60951 4 60953 4 60955 4 60965 4 60969 4 60977 4 60978 4 60981 4 60989 4 60991 4 60996 4 61001 4 61002 4 61005 4 61006 4 61012 4 61013 4 61017 4 61023 4 61035 4 61045 4 61046 4 61057 4 61063 4 61073 4 61075 4 61089 4 61098 4 61102 4 61107 4 61109 4 61131 4 61145 4 61148 4 61153 4 61156 4 61159 4 61178 4 61179 4 61195 4 61204 4 61208 4 61210 4 61211 4 61212 4 61218 4 61228 4 61237 4 61238 4 61243 4 61245 4 61250 4 61253 4 61261 4 61280 4 61286 4 61288 4 61298 4 61313 4 61324 4 61328 4 61338 4 61349 4 61356 4 61358 4 61367 4 61372 4 61382 4 61386 4 61393 4 61399 4 61403 4 61410 4 61425 4 61436 4 61437 4 61438 4 61440 4 61441 4 61443 4 61449 4 61480 4 61484 4 61488 4 61496 4 61505 4 61506 4 61511 4 61512 4 61522 4 61534 4 61555 4 61558 4 61563 4 61585 4 61586 4 61593 4 61597 4 61598 4 61606 4 61609 4 61612 4 61615 4 61616 4 61625 4 61627 4 61636 4 61644 4 61648 4 61649 4 61652 4 61654 4 61661 4 61677 4 61680 4 61681 4 61686 4 61688 4 61700 4 61706 4 61708 4 61710 4 61720 4 61725 4 61726 4 61736 4 61748 4 61749 4 61765 4 61766 4 61779 4 61783 4 61788 4 61794 4 61799 4 61809 4 61813 4 61820 4 61823 4 61828 4 61837 4 61845 4 61887 4 61888 4 61891 4 61910 4 61918 4 61921 4 61926 4 61929 4 61938 4 61961 4 61973 4 61980 4 61984 4 61989 4 61997 4 61999 4 62009 4 62013 4 62014 4 62022 4 62025 4 62029 4 62031 4 62035 4 62046 4 62049 4 62050 4 62055 4 62057 4 62058 4 62060 4 62062 4 62063 4 62070 4 62075 4 62082 4 62086 4 62091 4 62105 4 62114 4 62118 4 62129 4 62131 4 62133 4 62152 4 62153 4 62165 4 62171 4 62175 4 62180 4 62181 4 62183 4 62185 4 62186 4 62192 4 62199 4 62211 4 62215 4 62218 4 62223 4 62226 4 62230 4 62236 4 62237 4 62241 4 62242 4 62273 4 62281 4 62284 4 62287 4 62288 4 62292 4 62306 4 62308 4 62311 4 62313 4 62314 4 62322 4 62334 4 62335 4 62336 4 62343 4 62345 4 62347 4 62360 4 62366 4 62374 4 62375 4 62380 4 62390 4 62393 4 62394 4 62395 4 62406 4 62414 4 62416 4 62417 4 62421 4 62437 4 62442 4 62444 4 62451 4 62460 4 62468 4 62475 4 62479 4 62480 4 62488 4 62489 4 62506 4 62508 4 62510 4 62514 4 62516 4 62518 4 62522 4 62523 4 62527 4 62532 4 62534 4 62542 4 62544 4 62550 4 62551 4 62560 4 62587 4 62593 4 62596 4 62606 4 62612 4 62613 4 62616 4 62624 4 62629 4 62631 4 62636 4 62639 4 62650 4 62658 4 62659 4 62661 4 62668 4 62674 4 62689 4 62695 4 62699 4 62708 4 62710 4 62711 4 62716 4 62727 4 62734 4 62747 4 62767 4 62795 4 62800 4 62808 4 62809 4 62818 4 62820 4 62821 4 62824 4 62827 4 62837 4 62838 4 62841 4 62852 4 62857 4 62861 4 62871 4 62881 4 62882 4 62888 4 62889 4 62892 4 62897 4 62900 4 62906 4 62916 4 62923 4 62930 4 62935 4 62943 4 62954 4 62957 4 62966 4 62971 4 62974 4 62981 4 62985 4 62986 4 62995 4 62998 4 63000 4 63002 4 63005 4 63006 4 63009 4 63023 4 63037 4 63049 4 63069 4 63072 4 63078 4 63081 4 63083 4 63091 4 63093 4 63106 4 63109 4 63110 4 63131 4 63136 4 63142 4 63148 4 63159 4 63168 4 63170 4 63177 4 63179 4 63188 4 63190 4 63191 4 63194 4 63195 4 63197 4 63212 4 63220 4 63230 4 63234 4 63238 4 63248 4 63250 4 63254 4 63260 4 63266 4 63284 4 63285 4 63288 4 63297 4 63307 4 63316 4 63320 4 63333 4 63335 4 63342 4 63346 4 63349 4 63354 4 63356 4 63361 4 63365 4 63367 4 63371 4 63372 4 63374 4 63375 4 63382 4 63390 4 63397 4 63398 4 63399 4 63402 4 63403 4 63409 4 63411 4 63413 4 63418 4 63431 4 63434 4 63444 4 63450 4 63453 4 63454 4 63459 4 63461 4 63462 4 63466 4 63468 4 63472 4 63473 4 63474 4 63481 4 63482 4 63496 4 63500 4 63505 4 63513 4 63528 4 63529 4 63533 4 63536 4 63541 4 63542 4 63547 4 63548 4 63549 4 63555 4 63556 4 63562 4 63580 4 63581 4 63590 4 63594 4 63597 4 63605 4 63607 4 63613 4 63621 4 63627 4 63644 4 63645 4 63657 4 63658 4 63667 4 63669 4 63684 4 63686 4 63690 4 63691 4 63694 4 63707 4 63708 4 63712 4 63713 4 63721 4 63726 4 63733 4 63734 4 63741 4 63748 4 63750 4 63752 4 63758 4 63759 4 63770 4 63774 4 63778 4 63783 4 63791 4 63797 4 63800 4 63811 4 63813 4 63832 4 63839 4 63842 4 63845 4 63852 4 63856 4 63858 4 63865 4 63869 4 63878 4 63883 4 63884 4 63922 4 63940 4 63941 4 63948 4 63949 4 63953 4 63966 4 63973 4 63977 4 63979 4 63982 4 63985 4 63989 4 63991 4 64017 4 64019 4 64020 4 64021 4 64058 4 64063 4 64076 4 64088 4 64089 4 64106 4 64110 4 64115 4 64121 4 64125 4 64128 4 64136 4 64137 4 64142 4 64143 4 64144 4 64155 4 64164 4 64165 4 64187 4 64188 4 64191 4 64195 4 64202 4 64206 4 64207 4 64216 4 64218 4 64223 4 64241 4 64247 4 64261 4 64289 4 64298 4 64301 4 64302 4 64304 4 64305 4 64306 4 64322 4 64330 4 64334 4 64338 4 64342 4 64352 4 64376 4 64380 4 64391 4 64396 4 64410 4 64415 4 64420 4 64423 4 64432 4 64433 4 64441 4 64446 4 64452 4 64461 4 64476 4 64478 4 64504 4 64514 4 64517 4 64518 4 64526 4 64536 4 64541 4 64553 4 64560 4 64567 4 64571 4 64585 4 64586 4 64589 4 64592 4 64595 4 64596 4 64629 4 64633 4 64634 4 64636 4 64648 4 64652 4 64653 4 64659 4 64663 4 64674 4 64680 4 64684 4 64685 4 64694 4 64703 4 64707 4 64718 4 64726 4 64729 4 64754 4 64762 4 64773 4 64776 4 64788 4 64789 4 64790 4 64793 4 64803 4 64804 4 64805 4 64809 4 64811 4 64813 4 64817 4 64818 4 64823 4 64824 4 64832 4 64836 4 64849 4 64875 4 64877 4 64878 4 64882 4 64885 4 64886 4 64889 4 64892 4 64897 4 64903 4 64906 4 64916 4 64918 4 64933 4 64938 4 64940 4 64942 4 64943 4 64953 4 64961 4 64962 4 64977 4 64980 4 64997 4 64999 4 65007 4 65011 4 65019 4 65020 4 65030 4 65044 4 65047 4 65053 4 65061 4 65073 4 65075 4 65084 4 65085 4 65088 4 65093 4 65096 4 65099 4 65104 4 65106 4 65112 4 65115 4 65119 4 65130 4 65139 4 65151 4 65155 4 65160 4 65182 4 65186 4 65192 4 65197 4 65205 4 65211 4 65213 4 65215 4 65221 4 65233 4 65245 4 65246 4 65253 4 65274 4 65285 4 65292 4 65293 4 65300 4 65301 4 65312 4 65314 4 65320 4 65336 4 65341 4 65346 4 65347 4 65361 4 65364 4 65370 4 65375 4 65377 4 65382 4 65392 4 65406 4 65410 4 65411 4 65423 4 65438 4 65456 4 65457 4 65464 4 65473 4 65477 4 65482 4 65497 4 65502 4 65507 4 65509 4 65513 4 65514 4 65518 4 65521 4 65531 4 65532 4 65544 4 65556 4 65558 4 65561 4 65566 4 65567 4 65569 4 65576 4 65580 4 65584 4 65600 4 65611 4 65613 4 65630 4 65633 4 65636 4 65645 4 65646 4 65649 4 65659 4 65665 4 65677 4 65682 4 65684 4 65690 4 65691 4 65692 4 65693 4 65697 4 65711 4 65715 4 65716 4 65721 4 65728 4 65737 4 65746 4 65749 4 65754 4 65758 4 65765 4 65767 4 65768 4 65775 4 65777 4 65780 4 65785 4 65786 4 65794 4 65813 4 65827 4 65829 4 65830 4 65840 4 65841 4 65848 4 65849 4 65856 4 65859 4 65861 4 65864 4 65865 4 65867 4 65877 4 65883 4 65886 4 65892 4 65900 4 65905 4 65906 4 65916 4 65928 4 65929 4 65931 4 65932 4 65939 4 65960 4 65962 4 65970 4 65978 4 65983 4 65985 4 65995 4 66004 4 66006 4 66009 4 66015 4 66022 4 66023 4 66029 4 66031 4 66043 4 66046 4 66051 4 66054 4 66068 4 66077 4 66081 4 66083 4 66084 4 66093 4 66113 4 66122 4 66124 4 66130 4 66141 4 66150 4 66153 4 66158 4 66160 4 66163 4 66179 4 66192 4 66193 4 66197 4 66205 4 66206 4 66215 4 66216 4 66218 4 66224 4 66234 4 66235 4 66242 4 66248 4 66256 4 66267 4 66269 4 66273 4 66274 4 66276 4 66282 4 66284 4 66288 4 66299 4 66302 4 66307 4 66309 4 66326 4 66333 4 66348 4 66351 4 66361 4 66366 4 66367 4 66376 4 66377 4 66394 4 66401 4 66402 4 66406 4 66408 4 66411 4 66413 4 66414 4 66418 4 66422 4 66423 4 66425 4 66432 4 66440 4 66446 4 66447 4 66462 4 66465 4 66474 4 66479 4 66488 4 66489 4 66496 4 66498 4 66503 4 66508 4 66516 4 66522 4 66530 4 66535 4 66546 4 66554 4 66565 4 66572 4 66573 4 66576 4 66582 4 66585 4 66586 4 66588 4 66589 4 66593 4 66597 4 66600 4 66602 4 66605 4 66607 4 66609 4 66612 4 66635 4 66646 4 66661 4 66668 4 66679 4 66686 4 66688 4 66693 4 66695 4 66712 4 66718 4 66727 4 66742 4 66747 4 66757 4 66766 4 66773 4 66777 4 66782 4 66790 4 66795 4 66800 4 66801 4 66803 4 66813 4 66820 4 66830 4 66839 4 66846 4 66849 4 66853 4 66868 4 66870 4 66873 4 66878 4 66888 4 66900 4 66911 4 66926 4 66946 4 66947 4 66951 4 66954 4 66955 4 66958 4 66960 4 66963 4 66965 4 66966 4 66974 4 66975 4 66980 4 66987 4 66988 4 66993 4 67002 4 67006 4 67020 4 67026 4 67031 4 67050 4 67064 4 67065 4 67066 4 67067 4 67069 4 67070 4 67076 4 67090 4 67091 4 67095 4 67096 4 67099 4 67101 4 67109 4 67113 4 67120 4 67122 4 67125 4 67128 4 67137 4 67147 4 67152 4 67157 4 67161 4 67166 4 67167 4 67186 4 67189 4 67191 4 67214 4 67220 4 67230 4 67231 4 67244 4 67246 4 67247 4 67252 4 67254 4 67257 4 67260 4 67276 4 67280 4 67292 4 67305 4 67309 4 67310 4 67311 4 67313 4 67322 4 67325 4 67334 4 67336 4 67338 4 67341 4 67344 4 67350 4 67351 4 67357 4 67368 4 67371 4 67375 4 67376 4 67378 4 67381 4 67382 4 67391 4 67393 4 67403 4 67406 4 67420 4 67421 4 67424 4 67428 4 67432 4 67445 4 67448 4 67450 4 67457 4 67458 4 67461 4 67466 4 67476 4 67483 4 67503 4 67505 4 67506 4 67507 4 67516 4 67521 4 67524 4 67530 4 67531 4 67532 4 67536 4 67541 4 67548 4 67549 4 67550 4 67551 4 67554 4 67558 4 67559 4 67563 4 67566 4 67567 4 67570 4 67574 4 67579 4 67580 4 67585 4 67586 4 67588 4 67600 4 67608 4 67613 4 67614 4 67615 4 67620 4 67621 4 67633 4 67635 4 67638 4 67646 4 67648 4 67662 4 67667 4 67668 4 67679 4 67681 4 67683 4 67685 4 67697 4 67698 4 67714 4 67715 4 67718 4 67720 4 67737 4 67745 4 67747 4 67750 4 67752 4 67768 4 67769 4 67771 4 67774 4 67793 4 67798 4 67800 4 67806 4 67808 4 67811 4 67815 4 67819 4 67824 4 67825 4 67835 4 67856 4 67861 4 67864 4 67867 4 67885 4 67896 4 67907 4 67915 4 67921 4 67942 4 67948 4 67955 4 67959 4 67965 4 67978 4 67987 4 67990 4 67992 4 67993 4 67997 4 68002 4 68005 4 68007 4 68009 4 68016 4 68018 4 68019 4 68020 4 68023 4 68066 4 68068 4 68079 4 68103 4 68104 4 68137 4 68138 4 68139 4 68144 4 68146 4 68151 4 68168 4 68182 4 68183 4 68195 4 68206 4 68215 4 68217 4 68229 4 68238 4 68240 4 68241 4 68247 4 68258 4 68260 4 68262 4 68263 4 68270 4 68271 4 68273 4 68279 4 68285 4 68286 4 68289 4 68299 4 68309 4 68315 4 68327 4 68331 4 68333 4 68334 4 68337 4 68354 4 68358 4 68359 4 68361 4 68370 4 68379 4 68384 4 68387 4 68388 4 68392 4 68395 4 68405 4 68406 4 68415 4 68418 4 68423 4 68427 4 68431 4 68435 4 68438 4 68449 4 68454 4 68459 4 68461 4 68476 4 68478 4 68479 4 68485 4 68501 4 68508 4 68509 4 68516 4 68520 4 68527 4 68528 4 68530 4 68533 4 68537 4 68542 4 68551 4 68564 4 68568 4 68571 4 68572 4 68590 4 68592 4 68595 4 68604 4 68616 4 68617 4 68618 4 68622 4 68626 4 68633 4 68636 4 68647 4 68649 4 68651 4 68653 4 68661 4 68664 4 68670 4 68672 4 68682 4 68692 4 68698 4 68699 4 68701 4 68708 4 68710 4 68724 4 68727 4 68740 4 68743 4 68748 4 68761 4 68762 4 68777 4 68779 4 68791 4 68795 4 68808 4 68817 4 68818 4 68821 4 68822 4 68837 4 68873 4 68883 4 68890 4 68893 4 68898 4 68903 4 68907 4 68913 4 68918 4 68926 4 68942 4 68948 4 68950 4 68952 4 68953 4 68961 4 68962 4 68968 4 68985 4 69005 4 69020 4 69025 4 69042 4 69049 4 69054 4 69067 4 69068 4 69070 4 69072 4 69103 4 69120 4 69123 4 69129 4 69130 4 69148 4 69149 4 69154 4 69162 4 69173 4 69175 4 69176 4 69187 4 69207 4 69211 4 69214 4 69222 4 69224 4 69229 4 69234 4 69236 4 69240 4 69258 4 69264 4 69299 4 69304 4 69318 4 69326 4 69327 4 69328 4 69341 4 69344 4 69360 4 69363 4 69370 4 69371 4 69374 4 69377 4 69382 4 69385 4 69394 4 69400 4 69422 4 69423 4 69430 4 69431 4 69442 4 69443 4 69448 4 69455 4 69458 4 69467 4 69469 4 69470 4 69473 4 69478 4 69479 4 69491 4 69494 4 69498 4 69510 4 69511 4 69513 4 69517 4 69518 4 69526 4 69527 4 69531 4 69534 4 69547 4 69569 4 69572 4 69575 4 69578 4 69595 4 69600 4 69603 4 69606 4 69607 4 69615 4 69618 4 69624 4 69639 4 69645 4 69652 4 69654 4 69655 4 69665 4 69671 4 69676 4 69677 4 69683 4 69685 4 69689 4 69693 4 69706 4 69725 4 69730 4 69757 4 69764 4 69771 4 69772 4 69775 4 69781 4 69783 4 69784 4 69787 4 69793 4 69796 4 69807 4 69808 4 69817 4 69827 4 69834 4 69842 4 69856 4 69864 4 69865 4 69869 4 69877 4 69884 4 69885 4 69888 4 69889 4 69906 4 69907 4 69914 4 69928 4 69933 4 69937 4 69946 4 69949 4 69953 4 69965 4 69966 4 69969 4 69972 4 69973 4 69977 4 69990 4 70000 4 70003 4 70008 4 70009 4 70011 4 70030 4 70048 4 70052 4 70053 4 70056 4 70075 4 70079 4 70089 4 70100 4 70107 4 70115 4 70116 4 70117 4 70126 4 70127 4 70139 4 70141 4 70156 4 70158 4 70176 4 70182 4 70183 4 70184 4 70192 4 70195 4 70198 4 70199 4 70212 4 70221 4 70229 4 70234 4 70253 4 70254 4 70255 4 70261 4 70266 4 70269 4 70270 4 70271 4 70272 4 70273 4 70279 4 70280 4 70283 4 70284 4 70289 4 70290 4 70292 4 70301 4 70320 4 70322 4 70323 4 70338 4 70344 4 70345 4 70349 4 70357 4 70359 4 70365 4 70366 4 70381 4 70385 4 70386 4 70390 4 70395 4 70397 4 70401 4 70408 4 70409 4 70410 4 70412 4 70417 4 70422 4 70434 4 70438 4 70440 4 70445 4 70450 4 70452 4 70460 4 70464 4 70466 4 70469 4 70470 4 70474 4 70477 4 70505 4 70525 4 70526 4 70539 4 70544 4 70545 4 70558 4 70563 4 70567 4 70586 4 70587 4 70591 4 70592 4 70593 4 70597 4 70599 4 70620 4 70642 4 70645 4 70649 4 70653 4 70677 4 70682 4 70686 4 70689 4 70694 4 70695 4 70698 4 70700 4 70706 4 70712 4 70717 4 70719 4 70720 4 70724 4 70725 4 70753 4 70759 4 70765 4 70768 4 70771 4 70772 4 70778 4 70779 4 70782 4 70787 4 70796 4 70798 4 70826 4 70827 4 70830 4 70841 4 70851 4 70852 4 70855 4 70861 4 70871 4 70872 4 70877 4 70879 4 70880 4 70882 4 70884 4 70898 4 70913 4 70918 4 70933 4 70939 4 70943 4 70944 4 70946 4 70953 4 70958 4 70966 4 70973 4 70978 4 70982 4 70987 4 71003 4 71008 4 71029 4 71035 4 71037 4 71041 4 71050 4 71054 4 71062 4 71067 4 71070 4 71079 4 71085 4 71087 4 71092 4 71100 4 71101 4 71111 4 71115 4 71121 4 71138 4 71139 4 71142 4 71144 4 71145 4 71157 4 71162 4 71164 4 71173 4 71199 4 71211 4 71217 4 71219 4 71221 4 71240 4 71243 4 71246 4 71253 4 71256 4 71266 4 71270 4 71275 4 71278 4 71286 4 71290 4 71291 4 71296 4 71297 4 71309 4 71314 4 71315 4 71320 4 71326 4 71327 4 71331 4 71348 4 71361 4 71364 4 71372 4 71376 4 71377 4 71379 4 71384 4 71387 4 71389 4 71395 4 71396 4 71407 4 71412 4 71416 4 71420 4 71423 4 71431 4 71442 4 71444 4 71447 4 71456 4 71457 4 71462 4 71476 4 71482 4 71489 4 71491 4 71492 4 71505 4 71510 4 71526 4 71534 4 71537 4 71550 4 71551 4 71555 4 71559 4 71565 4 71566 4 71573 4 71596 4 71604 4 71608 4 71615 4 71626 4 71637 4 71644 4 71660 4 71663 4 71664 4 71669 4 71678 4 71680 4 71684 4 71689 4 71690 4 71704 4 71705 4 71707 4 71709 4 71714 4 71719 4 71720 4 71721 4 71724 4 71743 4 71747 4 71748 4 71750 4 71755 4 71763 4 71767 4 71768 4 71769 4 71772 4 71776 4 71785 4 71786 4 71799 4 71824 4 71828 4 71841 4 71847 4 71849 4 71855 4 71858 4 71869 4 71882 4 71894 4 71906 4 71910 4 71912 4 71913 4 71914 4 71916 4 71918 4 71922 4 71923 4 71926 4 71928 4 71929 4 71931 4 71932 4 71938 4 71969 4 71970 4 71972 4 71984 4 71991 4 72003 4 72023 4 72025 4 72026 4 72028 4 72032 4 72049 4 72061 4 72062 4 72083 4 72089 4 72090 4 72094 4 72102 4 72103 4 72112 4 72115 4 72120 4 72122 4 72134 4 72135 4 72152 4 72154 4 72159 4 72162 4 72165 4 72179 4 72180 4 72193 4 72201 4 72222 4 72225 4 72229 4 72230 4 72232 4 72233 4 72237 4 72242 4 72249 4 72250 4 72252 4 72264 4 72270 4 72280 4 72281 4 72282 4 72289 4 72290 4 72294 4 72295 4 72296 4 72298 4 72301 4 72308 4 72311 4 72313 4 72324 4 72329 4 72348 4 72350 4 72351 4 72353 4 72362 4 72366 4 72370 4 72378 4 72386 4 72389 4 72390 4 72395 4 72397 4 72402 4 72403 4 72415 4 72425 4 72430 4 72439 4 72443 4 72453 4 72504 4 72508 4 72515 4 72516 4 72520 4 72522 4 72530 4 72539 4 72541 4 72562 4 72566 4 72575 4 72577 4 72582 4 72589 4 72593 4 72616 4 72621 4 72622 4 72628 4 72632 4 72647 4 72650 4 72668 4 72671 4 72679 4 72681 4 72692 4 72701 4 72704 4 72708 4 72728 4 72730 4 72731 4 72737 4 72738 4 72749 4 72760 4 72762 4 72763 4 72774 4 72775 4 72799 4 72804 4 72806 4 72808 4 72811 4 72812 4 72820 4 72826 4 72827 4 72834 4 72839 4 72842 4 72849 4 72853 4 72865 4 72882 4 72889 4 72893 4 72905 4 72907 4 72913 4 72927 4 72940 4 72947 4 72948 4 72952 4 72953 4 72954 4 72956 4 72960 4 72971 4 72979 4 72985 4 72989 4 72990 4 72997 4 73005 4 73008 4 73016 4 73029 4 73031 4 73033 4 73040 4 73044 4 73052 4 73060 4 73070 4 73079 4 73085 4 73087 4 73089 4 73099 4 73100 4 73105 4 73125 4 73135 4 73137 4 73148 4 73150 4 73155 4 73157 4 73161 4 73162 4 73180 4 73189 4 73190 4 73202 4 73206 4 73211 4 73218 4 73231 4 73245 4 73250 4 73252 4 73263 4 73264 4 73272 4 73274 4 73277 4 73286 4 73290 4 73294 4 73296 4 73300 4 73305 4 73307 4 73310 4 73313 4 73318 4 73328 4 73338 4 73354 4 73356 4 73361 4 73365 4 73366 4 73371 4 73387 4 73392 4 73396 4 73398 4 73400 4 73401 4 73411 4 73430 4 73436 4 73441 4 73453 4 73454 4 73456 4 73468 4 73473 4 73474 4 73480 4 73482 4 73485 4 73490 4 73493 4 73495 4 73498 4 73499 4 73518 4 73524 4 73538 4 73539 4 73557 4 73588 4 73590 4 73593 4 73597 4 73608 4 73609 4 73617 4 73622 4 73631 4 73633 4 73642 4 73644 4 73646 4 73647 4 73652 4 73656 4 73684 4 73690 4 73693 4 73694 4 73700 4 73712 4 73719 4 73720 4 73726 4 73731 4 73755 4 73758 4 73770 4 73782 4 73787 4 73792 4 73793 4 73805 4 73808 4 73809 4 73813 4 73824 4 73837 4 73848 4 73850 4 73854 4 73863 4 73874 4 73892 4 73902 4 73904 4 73906 4 73912 4 73921 4 73926 4 73935 4 73938 4 73942 4 73947 4 73952 4 73964 4 73965 4 73981 4 73991 4 73994 4 73998 4 74000 4 74005 4 74009 4 74011 4 74015 4 74029 4 74037 4 74041 4 74052 4 74077 4 74079 4 74083 4 74090 4 74092 4 74093 4 74094 4 74095 4 74096 4 74099 4 74101 4 74102 4 74107 4 74113 4 74116 4 74123 4 74125 4 74152 4 74154 4 74155 4 74157 4 74164 4 74165 4 74168 4 74169 4 74171 4 74183 4 74189 4 74197 4 74206 4 74208 4 74209 4 74212 4 74216 4 74218 4 74219 4 74228 4 74244 4 74246 4 74255 4 74267 4 74268 4 74270 4 74271 4 74286 4 74291 4 74299 4 74313 4 74316 4 74333 4 74338 4 74363 4 74366 4 74367 4 74369 4 74385 4 74396 4 74400 4 74412 4 74414 4 74429 4 74431 4 74437 4 74448 4 74454 4 74456 4 74468 4 74475 4 74493 4 74496 4 74506 4 74513 4 74515 4 74518 4 74521 4 74525 4 74527 4 74529 4 74538 4 74551 4 74554 4 74560 4 74575 4 74580 4 74585 4 74591 4 74599 4 74600 4 74601 4 74610 4 74618 4 74622 4 74623 4 74625 4 74631 4 74633 4 74637 4 74644 4 74659 4 74666 4 74670 4 74673 4 74681 4 74682 4 74685 4 74691 4 74693 4 74696 4 74703 4 74704 4 74708 4 74711 4 74714 4 74715 4 74718 4 74727 4 74733 4 74739 4 74740 4 74747 4 74751 4 74766 4 74768 4 74771 4 74773 4 74787 4 74792 4 74798 4 74801 4 74811 4 74816 4 74821 4 74822 4 74846 4 74850 4 74853 4 74854 4 74857 4 74858 4 74863 4 74865 4 74866 4 74869 4 74871 4 74877 4 74883 4 74890 4 74896 4 74900 4 74913 4 74915 4 74918 4 74928 4 74930 4 74940 4 74942 4 74950 4 74967 4 74972 4 74985 4 74986 4 74995 4 74998 4 75012 4 75016 4 75017 4 75021 4 75022 4 75023 4 75028 4 75032 4 75035 4 75040 4 75053 4 75055 4 75057 4 75062 4 75064 4 75077 4 75078 4 75084 4 75098 4 75108 4 75116 4 75126 4 75145 4 75156 4 75158 4 75159 4 75176 4 75179 4 75182 4 75188 4 75199 4 75210 4 75220 4 75228 4 75233 4 75234 4 75236 4 75237 4 75241 4 75245 4 75246 4 75253 4 75276 4 75280 4 75281 4 75287 4 75293 4 75297 4 75302 4 75320 4 75321 4 75328 4 75334 4 75344 4 75350 4 75358 4 75359 4 75377 4 75379 4 75381 4 75382 4 75393 4 75395 4 75404 4 75409 4 75411 4 75415 4 75423 4 75424 4 75425 4 75438 4 75443 4 75447 4 75453 4 75457 4 75464 4 75468 4 75469 4 75471 4 75472 4 75479 4 75481 4 75482 4 75485 4 75487 4 75489 4 75499 4 75500 4 75505 4 75507 4 75511 4 75517 4 75539 4 75546 4 75555 4 75556 4 75558 4 75566 4 75571 4 75620 4 75621 4 75629 4 75634 4 75649 4 75653 4 75654 4 75667 4 75669 4 75679 4 75693 4 75698 4 75726 4 75730 4 75745 4 75753 4 75759 4 75761 4 75765 4 75766 4 75771 4 75772 4 75778 4 75779 4 75783 4 75801 4 75803 4 75804 4 75806 4 75812 4 75815 4 75819 4 75820 4 75837 4 75839 4 75840 4 75845 4 75847 4 75857 4 75860 4 75869 4 75884 4 75887 4 75903 4 75909 4 75937 4 75948 4 75952 4 75962 4 75967 4 75968 4 75974 4 75980 4 75995 4 75997 4 75999 4 76000 4 76014 4 76025 4 76027 4 76035 4 76052 4 76053 4 76057 4 76062 4 76065 4 76066 4 76068 4 76074 4 76075 4 76090 4 76102 4 76105 4 76111 4 76115 4 76125 4 76127 4 76144 4 76152 4 76157 4 76164 4 76175 4 76179 4 76180 4 76184 4 76191 4 76193 4 76203 4 76206 4 76214 4 76218 4 76220 4 76224 4 76228 4 76234 4 76238 4 76241 4 76259 4 76268 4 76269 4 76275 4 76296 4 76305 4 76307 4 76324 4 76334 4 76335 4 76356 4 76357 4 76368 4 76374 4 76388 4 76392 4 76396 4 76399 4 76407 4 76414 4 76421 4 76427 4 76429 4 76436 4 76437 4 76439 4 76449 4 76456 4 76464 4 76465 4 76466 4 76472 4 76487 4 76489 4 76493 4 76496 4 76501 4 76514 4 76522 4 76530 4 76539 4 76544 4 76549 4 76561 4 76566 4 76569 4 76579 4 76590 4 76592 4 76596 4 76616 4 76624 4 76629 4 76653 4 76662 4 76665 4 76678 4 76680 4 76687 4 76714 4 76719 4 76723 4 76735 4 76736 4 76737 4 76750 4 76761 4 76762 4 76767 4 76773 4 76774 4 76775 4 76782 4 76788 4 76792 4 76800 4 76802 4 76803 4 76811 4 76826 4 76828 4 76836 4 76848 4 76851 4 76853 4 76858 4 76859 4 76865 4 76868 4 76876 4 76895 4 76901 4 76903 4 76905 4 76914 4 76918 4 76927 4 76928 4 76933 4 76934 4 76944 4 76946 4 76954 4 76969 4 76973 4 76984 4 76989 4 76994 4 77005 4 77010 4 77017 4 77018 4 77020 4 77021 4 77027 4 77029 4 77032 4 77042 4 77050 4 77052 4 77053 4 77056 4 77063 4 77064 4 77067 4 77068 4 77070 4 77079 4 77081 4 77083 4 77089 4 77090 4 77092 4 77093 4 77098 4 77106 4 77114 4 77122 4 77128 4 77132 4 77143 4 77145 4 77155 4 77160 4 77171 4 77177 4 77182 4 77190 4 77203 4 77214 4 77215 4 77219 4 77229 4 77232 4 77243 4 77249 4 77252 4 77253 4 77257 4 77259 4 77261 4 77264 4 77276 4 77277 4 77284 4 77293 4 77306 4 77311 4 77315 4 77320 4 77327 4 77340 4 77342 4 77346 4 77347 4 77364 4 77373 4 77374 4 77377 4 77378 4 77379 4 77383 4 77408 4 77409 4 77412 4 77420 4 77423 4 77425 4 77426 4 77427 4 77430 4 77448 4 77452 4 77454 4 77457 4 77458 4 77460 4 77461 4 77462 4 77464 4 77468 4 77474 4 77479 4 77491 4 77498 4 77502 4 77509 4 77511 4 77515 4 77519 4 77524 4 77529 4 77532 4 77543 4 77545 4 77548 4 77558 4 77560 4 77562 4 77580 4 77581 4 77586 4 77588 4 77589 4 77591 4 77595 4 77600 4 77610 4 77611 4 77622 4 77623 4 77635 4 77638 4 77640 4 77648 4 77661 4 77666 4 77673 4 77680 4 77686 4 77705 4 77719 4 77720 4 77729 4 77736 4 77738 4 77739 4 77740 4 77746 4 77752 4 77753 4 77755 4 77761 4 77764 4 77772 4 77776 4 77777 4 77780 4 77788 4 77794 4 77797 4 77799 4 77820 4 77826 4 77830 4 77838 4 77843 4 77846 4 77848 4 77850 4 77853 4 77861 4 77862 4 77863 4 77878 4 77880 4 77887 4 77902 4 77903 4 77907 4 77908 4 77910 4 77912 4 77923 4 77924 4 77931 4 77935 4 77944 4 77952 4 77955 4 77961 4 77963 4 77967 4 77983 4 77986 4 77988 4 78010 4 78018 4 78039 4 78050 4 78062 4 78063 4 78064 4 78067 4 78070 4 78076 4 78079 4 78093 4 78100 4 78114 4 78117 4 78118 4 78128 4 78132 4 78141 4 78143 4 78158 4 78161 4 78165 4 78187 4 78202 4 78208 4 78211 4 78233 4 78249 4 78253 4 78256 4 78260 4 78266 4 78278 4 78282 4 78290 4 78313 4 78319 4 78321 4 78329 4 78346 4 78347 4 78349 4 78355 4 78357 4 78360 4 78361 4 78386 4 78404 4 78405 4 78416 4 78417 4 78431 4 78433 4 78442 4 78446 4 78452 4 78454 4 78456 4 78460 4 78466 4 78476 4 78479 4 78481 4 78495 4 78508 4 78512 4 78527 4 78531 4 78537 4 78538 4 78540 4 78543 4 78547 4 78548 4 78555 4 78557 4 78558 4 78593 4 78594 4 78604 4 78624 4 78627 4 78630 4 78635 4 78639 4 78655 4 78665 4 78666 4 78694 4 78697 4 78700 4 78702 4 78706 4 78716 4 78724 4 78725 4 78728 4 78731 4 78736 4 78750 4 78758 4 78764 4 78770 4 78793 4 78794 4 78800 4 78811 4 78815 4 78816 4 78852 4 78858 4 78867 4 78869 4 78875 4 78879 4 78887 4 78890 4 78892 4 78900 4 78906 4 78910 4 78914 4 78920 4 78922 4 78932 4 78934 4 78935 4 78936 4 78937 4 78958 4 78959 4 78961 4 78966 4 78967 4 78976 4 78981 4 78989 4 78995 4 79003 4 79007 4 79017 4 79021 4 79025 4 79028 4 79032 4 79033 4 79048 4 79061 4 79066 4 79076 4 79082 4 79084 4 79088 4 79092 4 79095 4 79096 4 79098 4 79103 4 79105 4 79107 4 79129 4 79130 4 79132 4 79134 4 79140 4 79145 4 79148 4 79153 4 79154 4 79157 4 79164 4 79167 4 79172 4 79176 4 79177 4 79181 4 79196 4 79212 4 79214 4 79229 4 79239 4 79240 4 79248 4 79254 4 79263 4 79265 4 79266 4 79271 4 79272 4 79275 4 79288 4 79294 4 79296 4 79301 4 79302 4 79316 4 79322 4 79328 4 79333 4 79335 4 79336 4 79344 4 79372 4 79387 4 79396 4 79400 4 79401 4 79402 4 79403 4 79408 4 79412 4 79414 4 79420 4 79425 4 79428 4 79432 4 79434 4 79436 4 79440 4 79446 4 79447 4 79460 4 79470 4 79472 4 79473 4 79477 4 79481 4 79483 4 79493 4 79498 4 79519 4 79524 4 79534 4 79540 4 79544 4 79548 4 79553 4 79558 4 79577 4 79578 4 79579 4 79587 4 79608 4 79614 4 79628 4 79629 4 79635 4 79645 4 79651 4 79658 4 79667 4 79668 4 79669 4 79675 4 79690 4 79705 4 79730 4 79739 4 79742 4 79752 4 79761 4 79762 4 79774 4 79782 4 79789 4 79799 4 79800 4 79811 4 79819 4 79821 4 79830 4 79841 4 79845 4 79855 4 79859 4 79861 4 79863 4 79873 4 79878 4 79880 4 79886 4 79891 4 79906 4 79918 4 79930 4 79931 4 79938 4 79939 4 79945 4 79953 4 79955 4 79974 4 79993 4 79996 4 79997 4 80014 4 80021 4 80023 4 80036 4 80039 4 80041 4 80044 4 80046 4 80049 4 80050 4 80054 4 80058 4 80061 4 80062 4 80069 4 80075 4 80078 4 80092 4 80099 4 80107 4 80116 4 80118 4 80139 4 80142 4 80143 4 80159 4 80161 4 80171 4 80172 4 80173 4 80181 4 80182 4 80191 4 80192 4 80196 4 80205 4 80207 4 80221 4 80222 4 80224 4 80232 4 80235 4 80237 4 80239 4 80243 4 80245 4 80254 4 80255 4 80260 4 80266 4 80271 4 80272 4 80284 4 80299 4 80304 4 80314 4 80337 4 80338 4 80346 4 80351 4 80354 4 80364 4 80367 4 80369 4 80371 4 80372 4 80376 4 80377 4 80383 4 80384 4 80391 4 80394 4 80398 4 80404 4 80405 4 80409 4 80412 4 80424 4 80431 4 80453 4 80460 4 80471 4 80472 4 80494 4 80499 4 80501 4 80503 4 80506 4 80511 4 80512 4 80522 4 80536 4 80550 4 80554 4 80563 4 80565 4 80568 4 80574 4 80578 4 80580 4 80586 4 80587 4 80595 4 80600 4 80603 4 80605 4 80606 4 80611 4 80614 4 80625 4 80627 4 80628 4 80634 4 80635 4 80639 4 80640 4 80643 4 80644 4 80656 4 80657 4 80671 4 80673 4 80682 4 80686 4 80688 4 80691 4 80692 4 80695 4 80697 4 80698 4 80700 4 80701 4 80714 4 80715 4 80718 4 80727 4 80731 4 80736 4 80741 4 80746 4 80747 4 80750 4 80754 4 80759 4 80767 4 80768 4 80790 4 80797 4 80798 4 80804 4 80806 4 80810 4 80825 4 80827 4 80829 4 80834 4 80836 4 80840 4 80862 4 80866 4 80869 4 80871 4 80872 4 80873 4 80886 4 80895 4 80899 4 80902 4 80910 4 80928 4 80933 4 80934 4 80936 4 80950 4 80971 4 80973 4 80975 4 80982 4 81001 4 81031 4 81032 4 81035 4 81045 4 81050 4 81053 4 81054 4 81057 4 81059 4 81066 4 81068 4 81073 4 81078 4 81080 4 81083 4 81086 4 81095 4 81103 4 81104 4 81106 4 81110 4 81112 4 81114 4 81125 4 81134 4 81137 4 81138 4 81163 4 81173 4 81176 4 81185 4 81194 4 81200 4 81201 4 81203 4 81208 4 81209 4 81217 4 81218 4 81227 4 81234 4 81237 4 81242 4 81244 4 81245 4 81247 4 81257 4 81276 4 81297 4 81320 4 81323 4 81325 4 81335 4 81343 4 81344 4 81362 4 81366 4 81371 4 81386 4 81405 4 81418 4 81423 4 81432 4 81464 4 81469 4 81470 4 81480 4 81483 4 81484 4 81487 4 81506 4 81514 4 81515 4 81517 4 81522 4 81523 4 81531 4 81532 4 81557 4 81558 4 81562 4 81567 4 81573 4 81579 4 81581 4 81589 4 81595 4 81597 4 81604 4 81609 4 81616 4 81628 4 81633 4 81649 4 81651 4 81654 4 81656 4 81660 4 81661 4 81669 4 81679 4 81684 4 81687 4 81690 4 81701 4 81706 4 81711 4 81713 4 81714 4 81725 4 81742 4 81744 4 81748 4 81749 4 81751 4 81767 4 81768 4 81771 4 81776 4 81781 4 81783 4 81784 4 81791 4 81794 4 81813 4 81838 4 81843 4 81849 4 81861 4 81864 4 81865 4 81868 4 81869 4 81874 4 81877 4 81882 4 81886 4 81891 4 81900 4 81911 4 81912 4 81923 4 81932 4 81937 4 81938 4 81951 4 81953 4 81970 4 81974 4 81987 4 81996 4 81997 4 82008 4 82012 4 82018 4 82021 4 82034 4 82035 4 82043 4 82048 4 82050 4 82053 4 82059 4 82065 4 82082 4 82091 4 82093 4 82113 4 82121 4 82125 4 82126 4 82132 4 82137 4 82139 4 82144 4 82145 4 82150 4 82155 4 82166 4 82183 4 82202 4 82208 4 82209 4 82212 4 82224 4 82226 4 82228 4 82231 4 82237 4 82246 4 82247 4 82250 4 82251 4 82252 4 82256 4 82262 4 82268 4 82276 4 82281 4 82284 4 82287 4 82288 4 82295 4 82308 4 82311 4 82313 4 82323 4 82331 4 82334 4 82340 4 82351 4 82355 4 82367 4 82373 4 82374 4 82380 4 82382 4 82396 4 82409 4 82415 4 82417 4 82431 4 82432 4 82435 4 82444 4 82445 4 82450 4 82451 4 82474 4 82476 4 82485 4 82486 4 82488 4 82506 4 82509 4 82512 4 82518 4 82519 4 82532 4 82539 4 82547 4 82548 4 82549 4 82553 4 82562 4 82563 4 82568 4 82570 4 82592 4 82593 4 82599 4 82616 4 82619 4 82621 4 82645 4 82647 4 82650 4 82653 4 82655 4 82656 4 82660 4 82661 4 82663 4 82669 4 82681 4 82682 4 82685 4 82694 4 82704 4 82707 4 82711 4 82713 4 82720 4 82726 4 82729 4 82733 4 82734 4 82736 4 82741 4 82746 4 82765 4 82777 4 82779 4 82782 4 82788 4 82791 4 82798 4 82800 4 82804 4 82808 4 82812 4 82825 4 82838 4 82842 4 82854 4 82860 4 82864 4 82871 4 82872 4 82899 4 82900 4 82913 4 82915 4 82916 4 82918 4 82927 4 82929 4 82931 4 82934 4 82952 4 82959 4 82969 4 82975 4 82994 4 82999 4 83001 4 83014 4 83015 4 83024 4 83025 4 83027 4 83028 4 83032 4 83047 4 83048 4 83054 4 83058 4 83060 4 83066 4 83067 4 83069 4 83093 4 83098 4 83109 4 83112 4 83115 4 83117 4 83119 4 83121 4 83132 4 83137 4 83138 4 83153 4 83154 4 83157 4 83165 4 83174 4 83191 4 83196 4 83197 4 83201 4 83212 4 83227 4 83229 4 83235 4 83244 4 83254 4 83271 4 83275 4 83277 4 83279 4 83281 4 83282 4 83296 4 83311 4 83315 4 83320 4 83324 4 83326 4 83334 4 83336 4 83340 4 83344 4 83345 4 83369 4 83370 4 83375 4 83392 4 83398 4 83408 4 83413 4 83415 4 83417 4 83432 4 83453 4 83454 4 83471 4 83472 4 83478 4 83480 4 83484 4 83489 4 83490 4 83528 4 83530 4 83532 4 83535 4 83539 4 83540 4 83553 4 83554 4 83557 4 83560 4 83572 4 83579 4 83582 4 83589 4 83596 4 83597 4 83598 4 83603 4 83619 4 83633 4 83634 4 83656 4 83657 4 83661 4 83666 4 83676 4 83678 4 83684 4 83688 4 83694 4 83702 4 83707 4 83715 4 83718 4 83726 4 83732 4 83737 4 83743 4 83766 4 83769 4 83772 4 83778 4 83789 4 83816 4 83818 4 83835 4 83853 4 83854 4 83856 4 83857 4 83859 4 83862 4 83872 4 83877 4 83882 4 83883 4 83886 4 83887 4 83891 4 83894 4 83895 4 83909 4 83911 4 83913 4 83917 4 83925 4 83930 4 83950 4 83956 4 83972 4 83980 4 83982 4 83987 4 83994 4 83996 4 83997 4 84004 4 84015 4 84019 4 84032 4 84037 4 84039 4 84060 4 84061 4 84062 4 84069 4 84073 4 84076 4 84089 4 84092 4 84099 4 84105 4 84117 4 84118 4 84120 4 84121 4 84136 4 84149 4 84161 4 84184 4 84186 4 84189 4 84192 4 84194 4 84201 4 84214 4 84221 4 84223 4 84229 4 84233 4 84237 4 84242 4 84245 4 84247 4 84252 4 84253 4 84261 4 84263 4 84291 4 84296 4 84302 4 84310 4 84316 4 84331 4 84353 4 84374 4 84379 4 84380 4 84389 4 84398 4 84403 4 84413 4 84416 4 84419 4 84431 4 84432 4 84434 4 84437 4 84438 4 84439 4 84449 4 84456 4 84459 4 84464 4 84467 4 84473 4 84487 4 84492 4 84493 4 84495 4 84502 4 84506 4 84511 4 84514 4 84525 4 84533 4 84537 4 84545 4 84566 4 84570 4 84572 4 84573 4 84575 4 84586 4 84587 4 84603 4 84604 4 84605 4 84619 4 84625 4 84626 4 84631 4 84636 4 84639 4 84644 4 84650 4 84651 4 84663 4 84667 4 84671 4 84682 4 84691 4 84703 4 84706 4 84713 4 84716 4 84717 4 84725 4 84727 4 84731 4 84732 4 84750 4 84751 4 84757 4 84760 4 84767 4 84779 4 84780 4 84787 4 84793 4 84801 4 84803 4 84806 4 84813 4 84816 4 84817 4 84830 4 84833 4 84852 4 84854 4 84858 4 84859 4 84867 4 84870 4 84872 4 84881 4 84883 4 84884 4 84892 4 84893 4 84902 4 84916 4 84919 4 84920 4 84921 4 84936 4 84962 4 84976 4 84983 4 84990 4 84991 4 84993 4 84996 4 85005 4 85021 4 85027 4 85031 4 85038 4 85046 4 85049 4 85051 4 85053 4 85056 4 85059 4 85072 4 85076 4 85086 4 85087 4 85088 4 85089 4 85096 4 85105 4 85110 4 85114 4 85116 4 85123 4 85128 4 85133 4 85148 4 85152 4 85157 4 85163 4 85166 4 85179 4 85182 4 85188 4 85190 4 85199 4 85204 4 85205 4 85219 4 85221 4 85228 4 85230 4 85235 4 85241 4 85252 4 85255 4 85257 4 85265 4 85276 4 85281 4 85284 4 85289 4 85298 4 85299 4 85302 4 85307 4 85317 4 85319 4 85334 4 85337 4 85346 4 85348 4 85352 4 85354 4 85355 4 85356 4 85360 4 85364 4 85366 4 85370 4 85376 4 85377 4 85381 4 85382 4 85387 4 85393 4 85399 4 85400 4 85401 4 85402 4 85407 4 85412 4 85422 4 85425 4 85426 4 85437 4 85455 4 85462 4 85464 4 85465 4 85471 4 85472 4 85477 4 85481 4 85501 4 85509 4 85511 4 85512 4 85516 4 85536 4 85537 4 85541 4 85551 4 85557 4 85570 4 85572 4 85575 4 85583 4 85589 4 85599 4 85600 4 85604 4 85608 4 85614 4 85616 4 85621 4 85622 4 85628 4 85629 4 85635 4 85647 4 85652 4 85660 4 85661 4 85665 4 85666 4 85674 4 85694 4 85701 4 85709 4 85712 4 85721 4 85723 4 85735 4 85736 4 85743 4 85744 4 85746 4 85756 4 85762 4 85773 4 85774 4 85780 4 85785 4 85789 4 85791 4 85802 4 85803 4 85806 4 85813 4 85814 4 85818 4 85824 4 85826 4 85833 4 85851 4 85855 4 85859 4 85861 4 85870 4 85878 4 85884 4 85886 4 85888 4 85891 4 85894 4 85895 4 85897 4 85912 4 85930 4 85939 4 85942 4 85967 4 85968 4 85970 4 85974 4 85975 4 85979 4 85981 4 85986 4 86006 4 86013 4 86028 4 86029 4 86030 4 86033 4 86040 4 86044 4 86045 4 86052 4 86057 4 86061 4 86063 4 86064 4 86067 4 86079 4 86082 4 86088 4 86091 4 86092 4 86093 4 86097 4 86102 4 86105 4 86113 4 86131 4 86134 4 86135 4 86154 4 86155 4 86160 4 86171 4 86174 4 86175 4 86181 4 86182 4 86188 4 86195 4 86196 4 86198 4 86201 4 86202 4 86211 4 86221 4 86223 4 86230 4 86231 4 86233 4 86235 4 86246 4 86248 4 86252 4 86255 4 86257 4 86259 4 86264 4 86270 4 86280 4 86281 4 86289 4 86290 4 86291 4 86299 4 86301 4 86310 4 86313 4 86315 4 86322 4 86324 4 86327 4 86334 4 86338 4 86342 4 86354 4 86355 4 86361 4 86363 4 86368 4 86370 4 86374 4 86375 4 86376 4 86377 4 86380 4 86381 4 86388 4 86399 4 86401 4 86406 4 86409 4 86422 4 86423 4 86428 4 86429 4 86431 4 86436 4 86446 4 86452 4 86455 4 86457 4 86468 4 86470 4 86472 4 86474 4 86485 4 86486 4 86496 4 86503 4 86505 4 86506 4 86508 4 86515 4 86525 4 86528 4 86529 4 86543 4 86557 4 86572 4 86578 4 86591 4 86597 4 86605 4 86611 4 86613 4 86621 4 86624 4 86630 4 86632 4 86636 4 86637 4 86664 4 86669 4 86676 4 86687 4 86691 4 86692 4 86701 4 86716 4 86723 4 86726 4 86731 4 86738 4 86739 4 86740 4 86742 4 86762 4 86765 4 86768 4 86770 4 86777 4 86788 4 86793 4 86806 4 86807 4 86816 4 86819 4 86826 4 86839 4 86857 4 86874 4 86875 4 86877 4 86892 4 86894 4 86900 4 86902 4 86907 4 86908 4 86921 4 86924 4 86935 4 86943 4 86944 4 86963 4 86965 4 86972 4 86975 4 86976 4 86993 4 87006 4 87008 4 87014 4 87030 4 87033 4 87036 4 87058 4 87062 4 87063 4 87072 4 87073 4 87092 4 87102 4 87114 4 87125 4 87128 4 87146 4 87149 4 87153 4 87156 4 87160 4 87176 4 87180 4 87188 4 87197 4 87210 4 87213 4 87216 4 87217 4 87228 4 87230 4 87251 4 87252 4 87257 4 87258 4 87267 4 87270 4 87279 4 87296 4 87305 4 87322 4 87325 4 87327 4 87331 4 87337 4 87345 4 87347 4 87362 4 87366 4 87370 4 87393 4 87395 4 87416 4 87420 4 87425 4 87428 4 87446 4 87447 4 87458 4 87471 4 87472 4 87476 4 87479 4 87483 4 87487 4 87500 4 87506 4 87507 4 87513 4 87515 4 87517 4 87523 4 87524 4 87528 4 87530 4 87532 4 87534 4 87535 4 87541 4 87552 4 87557 4 87571 4 87584 4 87597 4 87605 4 87606 4 87611 4 87620 4 87623 4 87626 4 87630 4 87641 4 87647 4 87649 4 87665 4 87669 4 87671 4 87675 4 87676 4 87684 4 87686 4 87689 4 87705 4 87707 4 87709 4 87712 4 87719 4 87725 4 87726 4 87727 4 87740 4 87741 4 87745 4 87753 4 87757 4 87766 4 87770 4 87772 4 87776 4 87789 4 87792 4 87807 4 87819 4 87820 4 87821 4 87825 4 87827 4 87843 4 87855 4 87859 4 87860 4 87861 4 87880 4 87884 4 87888 4 87894 4 87903 4 87912 4 87919 4 87922 4 87926 4 87927 4 87929 4 87930 4 87932 4 87938 4 87941 4 87955 4 87956 4 87962 4 87972 4 87974 4 87984 4 87987 4 87991 4 87994 4 87997 4 88002 4 88008 4 88015 4 88026 4 88031 4 88032 4 88033 4 88039 4 88043 4 88047 4 88050 4 88057 4 88058 4 88097 4 88099 4 88111 4 88124 4 88138 4 88139 4 88144 4 88146 4 88158 4 88164 4 88168 4 88170 4 88178 4 88189 4 88191 4 88193 4 88195 4 88198 4 88213 4 88214 4 88215 4 88226 4 88235 4 88239 4 88243 4 88244 4 88247 4 88248 4 88249 4 88253 4 88256 4 88260 4 88262 4 88263 4 88273 4 88274 4 88284 4 88289 4 88294 4 88315 4 88318 4 88321 4 88328 4 88333 4 88334 4 88348 4 88353 4 88363 4 88364 4 88373 4 88374 4 88379 4 88383 4 88396 4 88398 4 88399 4 88413 4 88419 4 88421 4 88428 4 88435 4 88436 4 88437 4 88438 4 88447 4 88448 4 88451 4 88456 4 88459 4 88466 4 88472 4 88473 4 88478 4 88481 4 88500 4 88502 4 88503 4 88505 4 88506 4 88509 4 88512 4 88517 4 88524 4 88528 4 88530 4 88532 4 88540 4 88541 4 88542 4 88544 4 88545 4 88547 4 88549 4 88561 4 88565 4 88567 4 88579 4 88581 4 88584 4 88586 4 88589 4 88596 4 88600 4 88623 4 88625 4 88626 4 88629 4 88632 4 88634 4 88635 4 88639 4 88649 4 88655 4 88664 4 88665 4 88671 4 88677 4 88683 4 88685 4 88686 4 88689 4 88694 4 88695 4 88697 4 88705 4 88722 4 88726 4 88733 4 88738 4 88739 4 88741 4 88746 4 88757 4 88758 4 88769 4 88770 4 88772 4 88773 4 88775 4 88776 4 88785 4 88788 4 88793 4 88802 4 88807 4 88817 4 88826 4 88827 4 88833 4 88843 4 88850 4 88857 4 88859 4 88865 4 88866 4 88889 4 88890 4 88893 4 88895 4 88897 4 88900 4 88903 4 88907 4 88908 4 88913 4 88915 4 88931 4 88944 4 88955 4 88956 4 88962 4 88963 4 88967 4 88968 4 88973 4 88981 4 88982 4 88985 4 88992 4 88996 4 88997 4 89003 4 89008 4 89010 4 89019 4 89020 4 89026 4 89036 4 89042 4 89043 4 89046 4 89059 4 89060 4 89082 4 89106 4 89111 4 89112 4 89119 4 89120 4 89121 4 89128 4 89134 4 89139 4 89140 4 89141 4 89152 4 89153 4 89155 4 89156 4 89157 4 89163 4 89164 4 89165 4 89175 4 89182 4 89186 4 89194 4 89197 4 89204 4 89213 4 89225 4 89232 4 89234 4 89236 4 89252 4 89266 4 89280 4 89288 4 89292 4 89299 4 89304 4 89305 4 89306 4 89310 4 89317 4 89335 4 89336 4 89337 4 89338 4 89342 4 89363 4 89366 4 89374 4 89375 4 89376 4 89378 4 89380 4 89382 4 89389 4 89391 4 89406 4 89412 4 89432 4 89434 4 89441 4 89442 4 89445 4 89446 4 89449 4 89457 4 89459 4 89466 4 89469 4 89492 4 89504 4 89505 4 89523 4 89528 4 89536 4 89540 4 89542 4 89545 4 89547 4 89549 4 89553 4 89557 4 89558 4 89561 4 89579 4 89582 4 89586 4 89591 4 89596 4 89600 4 89616 4 89620 4 89622 4 89625 4 89631 4 89632 4 89633 4 89634 4 89638 4 89644 4 89647 4 89650 4 89655 4 89661 4 89669 4 89681 4 89682 4 89687 4 89688 4 89689 4 89692 4 89705 4 89707 4 89717 4 89721 4 89729 4 89731 4 89732 4 89738 4 89742 4 89752 4 89753 4 89765 4 89767 4 89773 4 89785 4 89792 4 89801 4 89802 4 89813 4 89819 4 89822 4 89831 4 89833 4 89860 4 89883 4 89906 4 89909 4 89912 4 89913 4 89921 4 89928 4 89939 4 89946 4 89953 4 89955 4 89956 4 89958 4 89959 4 89972 4 89975 4 89976 4 89977 4 89981 4 89984 4 89994 4 90011 4 90013 4 90015 4 90026 4 90037 4 90049 4 90052 4 90053 4 90064 4 90066 4 90074 4 90075 4 90080 4 90087 4 90088 4 90091 4 90097 4 90113 4 90117 4 90122 4 90133 4 90145 4 90147 4 90155 4 90160 4 90174 4 90178 4 90180 4 90184 4 90186 4 90191 4 90204 4 90209 4 90211 4 90212 4 90218 4 90233 4 90235 4 90242 4 90245 4 90246 4 90251 4 90252 4 90253 4 90257 4 90266 4 90274 4 90293 4 90294 4 90303 4 90308 4 90309 4 90312 4 90314 4 90329 4 90338 4 90340 4 90345 4 90350 4 90352 4 90359 4 90365 4 90368 4 90370 4 90372 4 90374 4 90384 4 90400 4 90405 4 90412 4 90416 4 90430 4 90433 4 90436 4 90451 4 90452 4 90453 4 90455 4 90458 4 90459 4 90468 4 90472 4 90473 4 90478 4 90492 4 90495 4 90506 4 90508 4 90510 4 90520 4 90551 4 90558 4 90562 4 90563 4 90566 4 90572 4 90574 4 90589 4 90593 4 90604 4 90616 4 90619 4 90621 4 90628 4 90637 4 90644 4 90658 4 90663 4 90665 4 90668 4 90670 4 90676 4 90689 4 90694 4 90696 4 90718 4 90719 4 90722 4 90759 4 90766 4 90769 4 90774 4 90776 4 90791 4 90795 4 90797 4 90800 4 90804 4 90805 4 90809 4 90818 4 90829 4 90833 4 90838 4 90841 4 90848 4 90854 4 90870 4 90871 4 90878 4 90887 4 90889 4 90897 4 90900 4 90902 4 90903 4 90909 4 90911 4 90918 4 90934 4 90939 4 90947 4 90950 4 90953 4 90955 4 90959 4 90964 4 90983 4 91001 4 91009 4 91013 4 91019 4 91023 4 91026 4 91028 4 91033 4 91037 4 91038 4 91048 4 91051 4 91052 4 91055 4 91063 4 91065 4 91077 4 91083 4 91084 4 91086 4 91090 4 91094 4 91096 4 91097 4 91100 4 91101 4 91106 4 91117 4 91118 4 91121 4 91123 4 91139 4 91142 4 91143 4 91145 4 91148 4 91162 4 91165 4 91170 4 91183 4 91184 4 91186 4 91187 4 91188 4 91191 4 91201 4 91204 4 91213 4 91218 4 91222 4 91224 4 91225 4 91229 4 91234 4 91257 4 91264 4 91272 4 91274 4 91277 4 91283 4 91294 4 91296 4 91308 4 91313 4 91314 4 91316 4 91323 4 91324 4 91326 4 91329 4 91339 4 91345 4 91346 4 91359 4 91362 4 91364 4 91368 4 91369 4 91372 4 91374 4 91375 4 91382 4 91390 4 91397 4 91398 4 91415 4 91418 4 91432 4 91447 4 91449 4 91451 4 91452 4 91456 4 91461 4 91467 4 91468 4 91471 4 91475 4 91477 4 91478 4 91479 4 91480 4 91481 4 91486 4 91525 4 91531 4 91534 4 91544 4 91546 4 91550 4 91551 4 91552 4 91555 4 91559 4 91560 4 91568 4 91569 4 91575 4 91579 4 91582 4 91612 4 91616 4 91620 4 91622 4 91624 4 91631 4 91635 4 91641 4 91644 4 91652 4 91661 4 91663 4 91674 4 91675 4 91681 4 91686 4 91692 4 91700 4 91709 4 91712 4 91714 4 91719 4 91725 4 91750 4 91756 4 91766 4 91768 4 91783 4 91791 4 91792 4 91793 4 91798 4 91801 4 91805 4 91810 4 91814 4 91819 4 91820 4 91839 4 91842 4 91846 4 91847 4 91849 4 91856 4 91857 4 91859 4 91862 4 91871 4 91893 4 91895 4 91898 4 91901 4 91911 4 91922 4 91924 4 91930 4 91937 4 91938 4 91939 4 91942 4 91943 4 91948 4 91961 4 91964 4 91971 4 91982 4 91985 4 91988 4 91997 4 92000 4 92011 4 92012 4 92026 4 92042 4 92044 4 92049 4 92063 4 92064 4 92073 4 92087 4 92089 4 92091 4 92101 4 92105 4 92106 4 92110 4 92143 4 92186 4 92206 4 92213 4 92215 4 92217 4 92225 4 92226 4 92237 4 92248 4 92263 4 92266 4 92272 4 92278 4 92281 4 92289 4 92292 4 92297 4 92298 4 92303 4 92304 4 92310 4 92311 4 92319 4 92320 4 92329 4 92342 4 92343 4 92350 4 92361 4 92364 4 92368 4 92370 4 92374 4 92376 4 92388 4 92394 4 92396 4 92406 4 92422 4 92430 4 92440 4 92442 4 92456 4 92462 4 92463 4 92464 4 92471 4 92479 4 92482 4 92484 4 92490 4 92501 4 92503 4 92504 4 92505 4 92514 4 92522 4 92525 4 92530 4 92535 4 92540 4 92542 4 92547 4 92548 4 92551 4 92563 4 92571 4 92577 4 92581 4 92586 4 92597 4 92598 4 92602 4 92614 4 92628 4 92635 4 92642 4 92649 4 92660 4 92661 4 92674 4 92675 4 92678 4 92683 4 92702 4 92706 4 92723 4 92733 4 92739 4 92746 4 92756 4 92761 4 92770 4 92777 4 92778 4 92782 4 92784 4 92787 4 92789 4 92800 4 92802 4 92807 4 92814 4 92821 4 92833 4 92840 4 92846 4 92864 4 92865 4 92870 4 92898 4 92905 4 92909 4 92915 4 92924 4 92928 4 92932 4 92937 4 92940 4 92946 4 92963 4 92967 4 92968 4 92971 4 92975 4 92979 4 92991 4 92993 4 93000 4 93002 4 93007 4 93008 4 93010 4 93013 4 93020 4 93021 4 93027 4 93046 4 93051 4 93063 4 93070 4 93071 4 93073 4 93080 4 93087 4 93096 4 93125 4 93127 4 93129 4 93132 4 93137 4 93139 4 93142 4 93153 4 93154 4 93158 4 93166 4 93167 4 93185 4 93189 4 93190 4 93195 4 93199 4 93201 4 93204 4 93232 4 93238 4 93242 4 93263 4 93264 4 93266 4 93268 4 93276 4 93282 4 93290 4 93299 4 93302 4 93309 4 93312 4 93327 4 93339 4 93344 4 93345 4 93347 4 93350 4 93352 4 93364 4 93386 4 93388 4 93405 4 93418 4 93420 4 93422 4 93428 4 93437 4 93440 4 93443 4 93447 4 93452 4 93454 4 93456 4 93473 4 93474 4 93476 4 93481 4 93482 4 93490 4 93496 4 93521 4 93522 4 93530 4 93532 4 93540 4 93541 4 93544 4 93557 4 93574 4 93578 4 93580 4 93584 4 93595 4 93598 4 93607 4 93610 4 93613 4 93621 4 93629 4 93633 4 93640 4 93642 4 93663 4 93669 4 93674 4 93687 4 93692 4 93693 4 93719 4 93725 4 93733 4 93755 4 93765 4 93771 4 93794 4 93796 4 93803 4 93806 4 93808 4 93809 4 93812 4 93813 4 93817 4 93822 4 93823 4 93830 4 93831 4 93836 4 93840 4 93845 4 93853 4 93855 4 93863 4 93868 4 93880 4 93882 4 93886 4 93888 4 93903 4 93913 4 93925 4 93935 4 93939 4 93940 4 93942 4 93943 4 93955 4 93957 4 93967 4 93972 4 93978 4 93980 4 93983 4 93995 4 94009 4 94022 4 94036 4 94070 4 94073 4 94080 4 94081 4 94095 4 94107 4 94124 4 94137 4 94141 4 94152 4 94154 4 94155 4 94162 4 94167 4 94179 4 94181 4 94186 4 94194 4 94200 4 94202 4 94204 4 94210 4 94215 4 94222 4 94233 4 94237 4 94242 4 94254 4 94266 4 94270 4 94295 4 94297 4 94298 4 94299 4 94301 4 94309 4 94311 4 94313 4 94315 4 94317 4 94328 4 94331 4 94336 4 94343 4 94349 4 94355 4 94368 4 94371 4 94375 4 94389 4 94390 4 94397 4 94398 4 94408 4 94412 4 94413 4 94416 4 94419 4 94428 4 94429 4 94431 4 94434 4 94435 4 94438 4 94441 4 94443 4 94444 4 94457 4 94460 4 94464 4 94466 4 94471 4 94477 4 94478 4 94482 4 94485 4 94495 4 94500 4 94509 4 94531 4 94542 4 94543 4 94555 4 94560 4 94561 4 94563 4 94564 4 94568 4 94578 4 94579 4 94581 4 94582 4 94583 4 94585 4 94609 4 94610 4 94615 4 94617 4 94621 4 94630 4 94652 4 94655 4 94658 4 94662 4 94667 4 94677 4 94680 4 94694 4 94708 4 94713 4 94717 4 94722 4 94723 4 94725 4 94727 4 94740 4 94742 4 94746 4 94750 4 94762 4 94765 4 94768 4 94769 4 94773 4 94777 4 94804 4 94806 4 94808 4 94809 4 94815 4 94818 4 94820 4 94826 4 94833 4 94856 4 94866 4 94870 4 94876 4 94878 4 94880 4 94881 4 94893 4 94897 4 94911 4 94926 4 94937 4 94942 4 94947 4 94951 4 94954 4 94958 4 94961 4 94964 4 94994 4 95001 4 95007 4 95012 4 95014 4 95018 4 95019 4 95021 4 95035 4 95040 4 95043 4 95068 4 95069 4 95079 4 95084 4 95088 4 95091 4 95093 4 95096 4 95105 4 95113 4 95117 4 95133 4 95134 4 95137 4 95141 4 95163 4 95168 4 95176 4 95181 4 95189 4 95198 4 95208 4 95210 4 95212 4 95215 4 95220 4 95226 4 95240 4 95245 4 95247 4 95266 4 95273 4 95278 4 95281 4 95285 4 95293 4 95294 4 95300 4 95306 4 95311 4 95316 4 95317 4 95326 4 95329 4 95335 4 95337 4 95346 4 95349 4 95350 4 95371 4 95372 4 95380 4 95381 4 95386 4 95388 4 95392 4 95395 4 95396 4 95398 4 95405 4 95421 4 95430 4 95433 4 95449 4 95450 4 95451 4 95452 4 95464 4 95468 4 95474 4 95475 4 95477 4 95480 4 95484 4 95487 4 95497 4 95500 4 95514 4 95519 4 95522 4 95529 4 95533 4 95545 4 95554 4 95556 4 95557 4 95566 4 95574 4 95575 4 95578 4 95592 4 95601 4 95607 4 95612 4 95618 4 95624 4 95627 4 95633 4 95635 4 95637 4 95646 4 95648 4 95651 4 95655 4 95658 4 95660 4 95664 4 95665 4 95668 4 95677 4 95684 4 95691 4 95692 4 95694 4 95700 4 95715 4 95716 4 95733 4 95741 4 95746 4 95751 4 95756 4 95759 4 95760 4 95764 4 95765 4 95772 4 95774 4 95778 4 95784 4 95788 4 95807 4 95808 4 95818 4 95819 4 95822 4 95824 4 95841 4 95848 4 95849 4 95851 4 95855 4 95861 4 95862 4 95867 4 95868 4 95869 4 95870 4 95874 4 95888 4 95912 4 95913 4 95917 4 95920 4 95921 4 95929 4 95935 4 95937 4 95938 4 95942 4 95949 4 95954 4 95955 4 95960 4 95963 4 95972 4 95973 4 95975 4 95994 4 96002 4 96021 4 96022 4 96025 4 96036 4 96038 4 96044 4 96045 4 96048 4 96050 4 96051 4 96053 4 96090 4 96101 4 96105 4 96111 4 96116 4 96129 4 96140 4 96143 4 96150 4 96161 4 96162 4 96168 4 96171 4 96172 4 96179 4 96183 4 96191 4 96192 4 96196 4 96199 4 96202 4 96206 4 96208 4 96211 4 96212 4 96213 4 96237 4 96253 4 96256 4 96263 4 96266 4 96274 4 96295 4 96298 4 96307 4 96310 4 96311 4 96313 4 96318 4 96327 4 96344 4 96345 4 96346 4 96355 4 96358 4 96366 4 96367 4 96378 4 96384 4 96385 4 96390 4 96394 4 96398 4 96399 4 96404 4 96410 4 96413 4 96426 4 96430 4 96441 4 96447 4 96452 4 96455 4 96469 4 96471 4 96472 4 96473 4 96477 4 96495 4 96507 4 96511 4 96519 4 96521 4 96531 4 96536 4 96537 4 96545 4 96551 4 96556 4 96560 4 96561 4 96563 4 96565 4 96571 4 96583 4 96584 4 96602 4 96610 4 96620 4 96638 4 96639 4 96650 4 96659 4 96661 4 96665 4 96668 4 96671 4 96676 4 96677 4 96683 4 96685 4 96696 4 96698 4 96708 4 96729 4 96731 4 96735 4 96746 4 96749 4 96751 4 96767 4 96770 4 96785 4 96786 4 96790 4 96795 4 96803 4 96813 4 96816 4 96818 4 96826 4 96827 4 96848 4 96853 4 96854 4 96859 4 96860 4 96862 4 96864 4 96873 4 96874 4 96895 4 96906 4 96907 4 96910 4 96914 4 96917 4 96932 4 96934 4 96935 4 96937 4 96938 4 96944 4 96954 4 96955 4 96962 4 96965 4 96972 4 96979 4 96982 4 96988 4 96999 4 97000 4 97003 4 97004 4 97013 4 97033 4 97052 4 97062 4 97064 4 97065 4 97070 4 97073 4 97075 4 97076 4 97081 4 97085 4 97088 4 97092 4 97093 4 97109 4 97116 4 97118 4 97120 4 97124 4 97125 4 97133 4 97134 4 97136 4 97138 4 97142 4 97143 4 97150 4 97153 4 97165 4 97172 4 97185 4 97189 4 97195 4 97196 4 97200 4 97204 4 97205 4 97211 4 97216 4 97217 4 97237 4 97257 4 97264 4 97283 4 97286 4 97295 4 97296 4 97297 4 97298 4 97299 4 97306 4 97314 4 97332 4 97334 4 97345 4 97363 4 97365 4 97377 4 97378 4 97383 4 97392 4 97398 4 97411 4 97412 4 97421 4 97424 4 97426 4 97431 4 97433 4 97445 4 97456 4 97464 4 97466 4 97468 4 97479 4 97485 4 97488 4 97508 4 97519 4 97527 4 97529 4 97534 4 97536 4 97548 4 97550 4 97562 4 97587 4 97588 4 97589 4 97593 4 97594 4 97607 4 97610 4 97613 4 97618 4 97628 4 97630 4 97631 4 97642 4 97652 4 97653 4 97678 4 97681 4 97685 4 97687 4 97688 4 97691 4 97695 4 97720 4 97744 4 97745 4 97746 4 97756 4 97757 4 97760 4 97768 4 97777 4 97786 4 97787 4 97791 4 97792 4 97794 4 97813 4 97814 4 97819 4 97836 4 97837 4 97846 4 97859 4 97865 4 97887 4 97895 4 97896 4 97897 4 97904 4 97909 4 97914 4 97920 4 97926 4 97927 4 97937 4 97939 4 97942 4 97944 4 97946 4 97954 4 97963 4 97985 4 97989 4 97991 4 97998 4 98010 4 98019 4 98025 4 98038 4 98042 4 98043 4 98062 4 98067 4 98068 4 98086 4 98087 4 98090 4 98098 4 98103 4 98104 4 98114 4 98116 4 98121 4 98125 4 98130 4 98131 4 98136 4 98137 4 98147 4 98155 4 98159 4 98167 4 98174 4 98187 4 98193 4 98211 4 98218 4 98220 4 98226 4 98231 4 98232 4 98235 4 98238 4 98253 4 98265 4 98270 4 98272 4 98276 4 98278 4 98281 4 98282 4 98290 4 98291 4 98295 4 98302 4 98306 4 98310 4 98311 4 98322 4 98326 4 98327 4 98334 4 98341 4 98343 4 98349 4 98358 4 98365 4 98372 4 98378 4 98380 4 98385 4 98393 4 98407 4 98412 4 98422 4 98423 4 98427 4 98431 4 98446 4 98447 4 98449 4 98452 4 98484 4 98485 4 98486 4 98494 4 98502 4 98509 4 98515 4 98520 4 98521 4 98522 4 98525 4 98528 4 98530 4 98531 4 98532 4 98533 4 98541 4 98550 4 98557 4 98562 4 98563 4 98574 4 98580 4 98584 4 98591 4 98598 4 98602 4 98603 4 98605 4 98609 4 98611 4 98634 4 98635 4 98636 4 98647 4 98650 4 98658 4 98660 4 98662 4 98664 4 98666 4 98667 4 98672 4 98679 4 98691 4 98704 4 98708 4 98713 4 98726 4 98729 4 98740 4 98749 4 98751 4 98752 4 98754 4 98756 4 98761 4 98766 4 98767 4 98773 4 98783 4 98785 4 98791 4 98793 4 98801 4 98803 4 98810 4 98814 4 98818 4 98823 4 98835 4 98841 4 98848 4 98850 4 98865 4 98872 4 98877 4 98883 4 98896 4 98902 4 98903 4 98909 4 98912 4 98926 4 98927 4 98934 4 98951 4 98955 4 98974 4 98979 4 98980 4 98984 4 98987 4 98988 4 98994 4 98995 4 98998 4 99000 4 1 5 2 5 6 5 10 5 25 5 30 5 32 5 38 5 40 5 56 5 65 5 66 5 68 5 70 5 82 5 83 5 93 5 101 5 103 5 110 5 112 5 113 5 122 5 130 5 146 5 157 5 158 5 160 5 161 5 169 5 170 5 191 5 193 5 200 5 219 5 222 5 227 5 229 5 231 5 249 5 265 5 270 5 281 5 290 5 291 5 295 5 314 5 319 5 322 5 324 5 336 5 366 5 377 5 391 5 393 5 401 5 403 5 404 5 408 5 412 5 415 5 417 5 422 5 433 5 445 5 446 5 454 5 457 5 465 5 486 5 488 5 489 5 492 5 495 5 498 5 500 5 509 5 512 5 534 5 535 5 536 5 546 5 549 5 563 5 564 5 575 5 577 5 578 5 592 5 593 5 600 5 602 5 622 5 627 5 628 5 632 5 633 5 638 5 641 5 644 5 647 5 648 5 656 5 657 5 661 5 663 5 667 5 669 5 692 5 702 5 704 5 720 5 721 5 728 5 730 5 735 5 745 5 748 5 759 5 764 5 776 5 780 5 782 5 789 5 794 5 800 5 802 5 815 5 829 5 840 5 856 5 857 5 863 5 867 5 874 5 876 5 882 5 883 5 884 5 886 5 890 5 892 5 897 5 904 5 905 5 913 5 927 5 930 5 934 5 937 5 939 5 945 5 948 5 954 5 955 5 981 5 982 5 984 5 986 5 988 5 993 5 995 5 1003 5 1005 5 1012 5 1015 5 1021 5 1042 5 1043 5 1045 5 1048 5 1064 5 1072 5 1076 5 1077 5 1079 5 1084 5 1093 5 1101 5 1108 5 1114 5 1119 5 1123 5 1124 5 1127 5 1129 5 1131 5 1135 5 1143 5 1155 5 1159 5 1160 5 1166 5 1171 5 1177 5 1180 5 1183 5 1187 5 1193 5 1195 5 1198 5 1201 5 1210 5 1213 5 1224 5 1230 5 1231 5 1237 5 1248 5 1250 5 1255 5 1270 5 1282 5 1292 5 1294 5 1298 5 1299 5 1300 5 1303 5 1304 5 1309 5 1316 5 1321 5 1335 5 1342 5 1346 5 1347 5 1352 5 1353 5 1358 5 1361 5 1365 5 1369 5 1370 5 1373 5 1384 5 1397 5 1398 5 1399 5 1403 5 1410 5 1416 5 1426 5 1429 5 1432 5 1435 5 1455 5 1458 5 1466 5 1470 5 1472 5 1488 5 1489 5 1490 5 1495 5 1507 5 1508 5 1509 5 1513 5 1524 5 1527 5 1530 5 1531 5 1540 5 1546 5 1552 5 1555 5 1562 5 1564 5 1565 5 1579 5 1599 5 1602 5 1604 5 1625 5 1627 5 1629 5 1631 5 1632 5 1637 5 1642 5 1645 5 1649 5 1654 5 1671 5 1672 5 1688 5 1693 5 1696 5 1697 5 1713 5 1715 5 1718 5 1720 5 1723 5 1726 5 1729 5 1744 5 1746 5 1750 5 1752 5 1759 5 1771 5 1780 5 1783 5 1784 5 1788 5 1802 5 1824 5 1826 5 1830 5 1835 5 1838 5 1841 5 1854 5 1867 5 1869 5 1870 5 1872 5 1877 5 1880 5 1885 5 1886 5 1896 5 1900 5 1904 5 1908 5 1933 5 1936 5 1943 5 1946 5 1954 5 1956 5 1957 5 1959 5 1966 5 1968 5 1970 5 1972 5 1975 5 1979 5 1981 5 1982 5 1984 5 1987 5 1991 5 1993 5 2001 5 2010 5 2014 5 2018 5 2024 5 2032 5 2036 5 2037 5 2046 5 2052 5 2054 5 2056 5 2058 5 2063 5 2065 5 2068 5 2070 5 2072 5 2078 5 2080 5 2081 5 2082 5 2089 5 2093 5 2100 5 2101 5 2105 5 2126 5 2139 5 2144 5 2150 5 2154 5 2157 5 2161 5 2173 5 2178 5 2185 5 2196 5 2201 5 2202 5 2209 5 2219 5 2220 5 2222 5 2234 5 2237 5 2240 5 2241 5 2245 5 2249 5 2255 5 2258 5 2259 5 2262 5 2269 5 2286 5 2291 5 2292 5 2302 5 2305 5 2306 5 2310 5 2318 5 2319 5 2322 5 2352 5 2354 5 2357 5 2365 5 2375 5 2387 5 2391 5 2397 5 2403 5 2423 5 2429 5 2442 5 2444 5 2452 5 2463 5 2479 5 2483 5 2485 5 2494 5 2495 5 2503 5 2522 5 2524 5 2526 5 2533 5 2560 5 2564 5 2569 5 2584 5 2590 5 2595 5 2616 5 2621 5 2639 5 2643 5 2646 5 2653 5 2654 5 2658 5 2668 5 2676 5 2688 5 2693 5 2706 5 2707 5 2708 5 2717 5 2723 5 2727 5 2732 5 2733 5 2747 5 2754 5 2755 5 2760 5 2765 5 2766 5 2767 5 2769 5 2773 5 2775 5 2780 5 2781 5 2789 5 2802 5 2814 5 2815 5 2818 5 2819 5 2828 5 2832 5 2833 5 2838 5 2854 5 2857 5 2860 5 2865 5 2866 5 2876 5 2884 5 2892 5 2898 5 2902 5 2905 5 2909 5 2913 5 2915 5 2916 5 2917 5 2928 5 2932 5 2936 5 2938 5 2939 5 2941 5 2944 5 2948 5 2952 5 2955 5 2956 5 2957 5 2967 5 2971 5 2974 5 2976 5 2993 5 2998 5 3001 5 3003 5 3005 5 3020 5 3021 5 3036 5 3039 5 3041 5 3042 5 3048 5 3051 5 3068 5 3081 5 3086 5 3088 5 3094 5 3107 5 3109 5 3147 5 3151 5 3156 5 3159 5 3160 5 3163 5 3169 5 3183 5 3189 5 3190 5 3198 5 3199 5 3200 5 3207 5 3209 5 3220 5 3223 5 3238 5 3244 5 3260 5 3262 5 3266 5 3267 5 3273 5 3295 5 3297 5 3303 5 3313 5 3314 5 3315 5 3321 5 3324 5 3326 5 3335 5 3336 5 3337 5 3356 5 3358 5 3364 5 3368 5 3372 5 3394 5 3404 5 3410 5 3425 5 3427 5 3443 5 3444 5 3456 5 3458 5 3461 5 3493 5 3497 5 3499 5 3502 5 3506 5 3516 5 3518 5 3526 5 3532 5 3543 5 3545 5 3559 5 3560 5 3561 5 3568 5 3571 5 3572 5 3575 5 3576 5 3595 5 3599 5 3605 5 3617 5 3620 5 3623 5 3624 5 3627 5 3636 5 3637 5 3639 5 3646 5 3664 5 3671 5 3673 5 3687 5 3689 5 3691 5 3692 5 3695 5 3698 5 3716 5 3724 5 3737 5 3757 5 3761 5 3765 5 3775 5 3777 5 3778 5 3779 5 3781 5 3782 5 3786 5 3789 5 3799 5 3801 5 3808 5 3810 5 3815 5 3820 5 3844 5 3846 5 3865 5 3869 5 3873 5 3881 5 3883 5 3887 5 3890 5 3895 5 3898 5 3899 5 3914 5 3915 5 3921 5 3927 5 3928 5 3929 5 3933 5 3935 5 3938 5 3947 5 3949 5 3962 5 3971 5 3983 5 3988 5 3992 5 3999 5 4002 5 4003 5 4008 5 4011 5 4012 5 4025 5 4028 5 4037 5 4039 5 4041 5 4043 5 4052 5 4054 5 4071 5 4076 5 4080 5 4082 5 4086 5 4092 5 4096 5 4098 5 4116 5 4126 5 4138 5 4140 5 4141 5 4142 5 4144 5 4157 5 4158 5 4163 5 4175 5 4183 5 4199 5 4208 5 4211 5 4218 5 4219 5 4222 5 4225 5 4228 5 4234 5 4252 5 4258 5 4275 5 4277 5 4278 5 4283 5 4296 5 4302 5 4320 5 4325 5 4327 5 4335 5 4339 5 4344 5 4345 5 4346 5 4364 5 4369 5 4379 5 4380 5 4388 5 4399 5 4406 5 4411 5 4418 5 4422 5 4434 5 4440 5 4449 5 4453 5 4454 5 4473 5 4489 5 4507 5 4514 5 4522 5 4526 5 4542 5 4545 5 4550 5 4559 5 4560 5 4571 5 4579 5 4580 5 4583 5 4588 5 4589 5 4599 5 4614 5 4627 5 4630 5 4637 5 4643 5 4644 5 4652 5 4666 5 4668 5 4671 5 4680 5 4690 5 4712 5 4717 5 4723 5 4741 5 4743 5 4745 5 4748 5 4755 5 4758 5 4776 5 4781 5 4808 5 4812 5 4820 5 4824 5 4830 5 4834 5 4849 5 4853 5 4856 5 4868 5 4870 5 4880 5 4881 5 4891 5 4905 5 4907 5 4912 5 4913 5 4918 5 4920 5 4924 5 4936 5 4940 5 4946 5 4953 5 4954 5 4960 5 4973 5 4974 5 4977 5 4995 5 4996 5 4998 5 5006 5 5010 5 5027 5 5029 5 5037 5 5040 5 5046 5 5051 5 5054 5 5055 5 5059 5 5062 5 5066 5 5077 5 5083 5 5086 5 5087 5 5097 5 5112 5 5122 5 5128 5 5130 5 5134 5 5148 5 5150 5 5159 5 5165 5 5166 5 5169 5 5171 5 5172 5 5174 5 5176 5 5177 5 5184 5 5185 5 5189 5 5195 5 5196 5 5203 5 5207 5 5208 5 5210 5 5212 5 5213 5 5215 5 5216 5 5231 5 5235 5 5237 5 5256 5 5261 5 5280 5 5281 5 5285 5 5288 5 5292 5 5304 5 5307 5 5308 5 5316 5 5337 5 5351 5 5355 5 5363 5 5367 5 5377 5 5388 5 5389 5 5392 5 5399 5 5400 5 5416 5 5434 5 5436 5 5440 5 5446 5 5455 5 5462 5 5463 5 5469 5 5473 5 5483 5 5490 5 5492 5 5498 5 5508 5 5509 5 5510 5 5522 5 5526 5 5533 5 5537 5 5538 5 5542 5 5557 5 5558 5 5559 5 5561 5 5562 5 5569 5 5570 5 5574 5 5575 5 5583 5 5586 5 5587 5 5595 5 5618 5 5622 5 5626 5 5628 5 5629 5 5630 5 5632 5 5652 5 5654 5 5656 5 5664 5 5665 5 5680 5 5682 5 5685 5 5699 5 5700 5 5707 5 5709 5 5716 5 5717 5 5731 5 5735 5 5737 5 5738 5 5740 5 5742 5 5747 5 5750 5 5760 5 5767 5 5769 5 5779 5 5780 5 5783 5 5790 5 5798 5 5806 5 5823 5 5827 5 5831 5 5848 5 5854 5 5855 5 5859 5 5862 5 5864 5 5866 5 5869 5 5872 5 5873 5 5874 5 5878 5 5879 5 5888 5 5893 5 5897 5 5904 5 5905 5 5911 5 5913 5 5920 5 5921 5 5937 5 5945 5 5954 5 5960 5 5967 5 5970 5 5974 5 5982 5 5990 5 5991 5 6001 5 6014 5 6015 5 6024 5 6029 5 6031 5 6033 5 6038 5 6040 5 6043 5 6048 5 6049 5 6051 5 6056 5 6059 5 6064 5 6075 5 6078 5 6082 5 6094 5 6097 5 6103 5 6106 5 6110 5 6116 5 6117 5 6122 5 6123 5 6133 5 6140 5 6164 5 6173 5 6180 5 6181 5 6185 5 6187 5 6189 5 6199 5 6209 5 6232 5 6233 5 6235 5 6236 5 6248 5 6249 5 6250 5 6252 5 6261 5 6262 5 6267 5 6286 5 6288 5 6296 5 6297 5 6299 5 6305 5 6354 5 6373 5 6374 5 6381 5 6385 5 6386 5 6404 5 6415 5 6426 5 6435 5 6451 5 6461 5 6467 5 6473 5 6474 5 6477 5 6485 5 6488 5 6489 5 6492 5 6504 5 6505 5 6508 5 6518 5 6520 5 6523 5 6525 5 6530 5 6590 5 6591 5 6596 5 6597 5 6611 5 6616 5 6617 5 6619 5 6622 5 6635 5 6639 5 6643 5 6645 5 6652 5 6653 5 6657 5 6662 5 6672 5 6679 5 6683 5 6685 5 6690 5 6692 5 6699 5 6710 5 6712 5 6723 5 6724 5 6728 5 6747 5 6753 5 6759 5 6761 5 6779 5 6797 5 6799 5 6801 5 6802 5 6803 5 6810 5 6811 5 6819 5 6821 5 6830 5 6835 5 6837 5 6845 5 6846 5 6851 5 6856 5 6862 5 6865 5 6873 5 6879 5 6880 5 6881 5 6892 5 6897 5 6904 5 6905 5 6906 5 6912 5 6914 5 6921 5 6931 5 6957 5 6968 5 6969 5 6970 5 6973 5 6974 5 6986 5 6995 5 6997 5 7000 5 7010 5 7012 5 7018 5 7027 5 7029 5 7030 5 7047 5 7052 5 7064 5 7084 5 7090 5 7101 5 7104 5 7105 5 7106 5 7133 5 7134 5 7142 5 7143 5 7149 5 7151 5 7162 5 7166 5 7168 5 7169 5 7172 5 7173 5 7175 5 7180 5 7187 5 7188 5 7190 5 7191 5 7192 5 7197 5 7216 5 7222 5 7224 5 7225 5 7231 5 7245 5 7249 5 7260 5 7261 5 7266 5 7267 5 7274 5 7276 5 7286 5 7288 5 7302 5 7303 5 7307 5 7312 5 7320 5 7326 5 7328 5 7332 5 7334 5 7335 5 7359 5 7362 5 7364 5 7365 5 7368 5 7381 5 7383 5 7393 5 7395 5 7411 5 7423 5 7426 5 7451 5 7454 5 7455 5 7477 5 7481 5 7485 5 7490 5 7497 5 7510 5 7511 5 7512 5 7515 5 7516 5 7521 5 7522 5 7526 5 7534 5 7535 5 7536 5 7543 5 7551 5 7552 5 7561 5 7569 5 7570 5 7573 5 7575 5 7583 5 7604 5 7613 5 7619 5 7622 5 7625 5 7627 5 7630 5 7641 5 7656 5 7661 5 7667 5 7669 5 7670 5 7676 5 7682 5 7684 5 7685 5 7693 5 7702 5 7709 5 7712 5 7715 5 7725 5 7744 5 7747 5 7756 5 7766 5 7769 5 7772 5 7774 5 7777 5 7780 5 7781 5 7786 5 7793 5 7806 5 7809 5 7817 5 7823 5 7830 5 7831 5 7834 5 7835 5 7840 5 7847 5 7857 5 7858 5 7859 5 7868 5 7874 5 7879 5 7880 5 7886 5 7890 5 7891 5 7901 5 7904 5 7908 5 7915 5 7920 5 7929 5 7934 5 7951 5 7955 5 7957 5 7987 5 7997 5 8002 5 8003 5 8005 5 8012 5 8027 5 8043 5 8045 5 8049 5 8053 5 8085 5 8091 5 8095 5 8103 5 8104 5 8105 5 8106 5 8113 5 8118 5 8120 5 8126 5 8127 5 8128 5 8133 5 8142 5 8145 5 8146 5 8150 5 8151 5 8152 5 8159 5 8161 5 8163 5 8170 5 8180 5 8187 5 8191 5 8205 5 8211 5 8216 5 8222 5 8224 5 8231 5 8232 5 8233 5 8236 5 8247 5 8250 5 8255 5 8264 5 8276 5 8283 5 8303 5 8309 5 8316 5 8317 5 8322 5 8323 5 8325 5 8330 5 8331 5 8335 5 8349 5 8367 5 8369 5 8370 5 8376 5 8386 5 8391 5 8393 5 8400 5 8401 5 8404 5 8405 5 8418 5 8419 5 8424 5 8425 5 8426 5 8428 5 8430 5 8435 5 8449 5 8457 5 8463 5 8466 5 8482 5 8486 5 8491 5 8495 5 8499 5 8504 5 8510 5 8516 5 8521 5 8524 5 8525 5 8526 5 8534 5 8542 5 8547 5 8549 5 8551 5 8554 5 8555 5 8556 5 8559 5 8567 5 8582 5 8586 5 8593 5 8595 5 8596 5 8604 5 8610 5 8616 5 8620 5 8628 5 8637 5 8644 5 8648 5 8651 5 8653 5 8661 5 8665 5 8667 5 8668 5 8676 5 8677 5 8679 5 8692 5 8700 5 8708 5 8712 5 8713 5 8717 5 8724 5 8728 5 8736 5 8737 5 8742 5 8743 5 8751 5 8753 5 8759 5 8771 5 8793 5 8796 5 8799 5 8801 5 8810 5 8815 5 8824 5 8834 5 8851 5 8857 5 8891 5 8892 5 8897 5 8900 5 8903 5 8911 5 8915 5 8918 5 8931 5 8932 5 8935 5 8941 5 8950 5 8952 5 8961 5 8965 5 8966 5 8973 5 8976 5 8979 5 8985 5 8986 5 8988 5 9015 5 9016 5 9024 5 9031 5 9032 5 9049 5 9058 5 9061 5 9073 5 9084 5 9088 5 9089 5 9092 5 9102 5 9110 5 9117 5 9137 5 9143 5 9154 5 9155 5 9168 5 9169 5 9183 5 9184 5 9185 5 9186 5 9188 5 9198 5 9199 5 9204 5 9208 5 9214 5 9219 5 9221 5 9226 5 9246 5 9265 5 9290 5 9298 5 9299 5 9303 5 9305 5 9306 5 9307 5 9319 5 9320 5 9327 5 9337 5 9344 5 9351 5 9352 5 9360 5 9376 5 9377 5 9379 5 9381 5 9382 5 9394 5 9397 5 9400 5 9417 5 9419 5 9427 5 9433 5 9435 5 9436 5 9443 5 9448 5 9455 5 9461 5 9465 5 9467 5 9468 5 9485 5 9488 5 9508 5 9510 5 9518 5 9520 5 9526 5 9527 5 9535 5 9537 5 9543 5 9551 5 9554 5 9569 5 9578 5 9590 5 9627 5 9631 5 9632 5 9633 5 9634 5 9636 5 9637 5 9663 5 9665 5 9666 5 9667 5 9676 5 9678 5 9683 5 9694 5 9696 5 9701 5 9710 5 9721 5 9725 5 9726 5 9728 5 9745 5 9748 5 9755 5 9759 5 9764 5 9783 5 9793 5 9805 5 9809 5 9810 5 9815 5 9818 5 9824 5 9828 5 9831 5 9835 5 9839 5 9842 5 9844 5 9845 5 9867 5 9876 5 9883 5 9884 5 9889 5 9892 5 9893 5 9914 5 9917 5 9925 5 9933 5 9940 5 9941 5 9944 5 9946 5 9950 5 9963 5 9967 5 9969 5 9973 5 9976 5 9988 5 9989 5 10006 5 10008 5 10023 5 10032 5 10044 5 10046 5 10054 5 10069 5 10075 5 10082 5 10086 5 10095 5 10097 5 10105 5 10106 5 10114 5 10126 5 10130 5 10140 5 10141 5 10146 5 10151 5 10155 5 10161 5 10167 5 10174 5 10176 5 10183 5 10189 5 10190 5 10206 5 10207 5 10211 5 10215 5 10220 5 10221 5 10234 5 10243 5 10254 5 10276 5 10282 5 10290 5 10291 5 10292 5 10300 5 10301 5 10304 5 10309 5 10310 5 10312 5 10316 5 10319 5 10329 5 10331 5 10337 5 10342 5 10360 5 10361 5 10362 5 10363 5 10387 5 10389 5 10398 5 10402 5 10404 5 10407 5 10415 5 10432 5 10435 5 10441 5 10449 5 10456 5 10459 5 10460 5 10461 5 10469 5 10471 5 10472 5 10474 5 10476 5 10482 5 10486 5 10488 5 10495 5 10498 5 10502 5 10505 5 10509 5 10512 5 10514 5 10539 5 10540 5 10541 5 10543 5 10556 5 10560 5 10561 5 10564 5 10589 5 10593 5 10599 5 10609 5 10611 5 10621 5 10633 5 10636 5 10643 5 10644 5 10655 5 10656 5 10662 5 10667 5 10675 5 10678 5 10680 5 10685 5 10690 5 10691 5 10696 5 10698 5 10713 5 10714 5 10717 5 10723 5 10727 5 10741 5 10755 5 10758 5 10759 5 10776 5 10818 5 10822 5 10845 5 10852 5 10855 5 10865 5 10882 5 10885 5 10891 5 10892 5 10894 5 10896 5 10898 5 10903 5 10916 5 10922 5 10926 5 10933 5 10938 5 10941 5 10953 5 10966 5 10967 5 10972 5 10973 5 10978 5 10987 5 11009 5 11013 5 11017 5 11022 5 11024 5 11030 5 11036 5 11052 5 11054 5 11055 5 11069 5 11070 5 11072 5 11076 5 11083 5 11084 5 11090 5 11094 5 11099 5 11104 5 11105 5 11125 5 11146 5 11149 5 11156 5 11166 5 11170 5 11177 5 11179 5 11180 5 11190 5 11191 5 11196 5 11208 5 11209 5 11210 5 11213 5 11217 5 11224 5 11226 5 11232 5 11235 5 11237 5 11239 5 11248 5 11256 5 11261 5 11271 5 11278 5 11280 5 11281 5 11286 5 11294 5 11300 5 11304 5 11305 5 11308 5 11309 5 11313 5 11324 5 11327 5 11342 5 11349 5 11350 5 11353 5 11359 5 11360 5 11367 5 11368 5 11375 5 11376 5 11379 5 11387 5 11391 5 11392 5 11396 5 11412 5 11413 5 11418 5 11421 5 11433 5 11440 5 11456 5 11467 5 11472 5 11475 5 11479 5 11480 5 11485 5 11497 5 11510 5 11511 5 11515 5 11517 5 11518 5 11524 5 11532 5 11541 5 11547 5 11548 5 11552 5 11553 5 11554 5 11571 5 11573 5 11587 5 11590 5 11596 5 11600 5 11608 5 11619 5 11622 5 11623 5 11624 5 11632 5 11637 5 11638 5 11641 5 11645 5 11648 5 11666 5 11669 5 11672 5 11680 5 11682 5 11683 5 11690 5 11693 5 11700 5 11709 5 11714 5 11718 5 11721 5 11742 5 11767 5 11771 5 11773 5 11778 5 11779 5 11782 5 11786 5 11791 5 11795 5 11801 5 11802 5 11805 5 11806 5 11812 5 11829 5 11841 5 11843 5 11853 5 11854 5 11874 5 11875 5 11887 5 11899 5 11914 5 11918 5 11921 5 11929 5 11931 5 11937 5 11938 5 11947 5 11951 5 11956 5 11961 5 11966 5 11971 5 11974 5 11991 5 11996 5 11999 5 12002 5 12016 5 12034 5 12048 5 12049 5 12054 5 12055 5 12074 5 12075 5 12077 5 12080 5 12082 5 12087 5 12093 5 12094 5 12099 5 12100 5 12101 5 12107 5 12109 5 12125 5 12135 5 12143 5 12145 5 12161 5 12167 5 12175 5 12189 5 12190 5 12197 5 12198 5 12206 5 12212 5 12213 5 12214 5 12222 5 12227 5 12229 5 12232 5 12241 5 12246 5 12253 5 12258 5 12265 5 12267 5 12286 5 12294 5 12296 5 12301 5 12317 5 12324 5 12326 5 12329 5 12350 5 12352 5 12366 5 12371 5 12379 5 12380 5 12392 5 12394 5 12402 5 12419 5 12422 5 12428 5 12485 5 12486 5 12487 5 12489 5 12492 5 12493 5 12497 5 12500 5 12503 5 12506 5 12507 5 12514 5 12516 5 12519 5 12521 5 12522 5 12535 5 12542 5 12558 5 12560 5 12564 5 12566 5 12576 5 12585 5 12605 5 12620 5 12621 5 12623 5 12624 5 12629 5 12631 5 12632 5 12640 5 12649 5 12650 5 12660 5 12666 5 12668 5 12673 5 12682 5 12692 5 12707 5 12711 5 12717 5 12731 5 12738 5 12743 5 12744 5 12745 5 12749 5 12753 5 12754 5 12757 5 12766 5 12774 5 12787 5 12788 5 12807 5 12810 5 12819 5 12828 5 12835 5 12836 5 12839 5 12848 5 12866 5 12876 5 12881 5 12891 5 12895 5 12912 5 12930 5 12937 5 12941 5 12950 5 12958 5 12972 5 12979 5 12982 5 12983 5 12994 5 12997 5 12998 5 13000 5 13005 5 13011 5 13015 5 13017 5 13018 5 13022 5 13027 5 13029 5 13033 5 13034 5 13040 5 13051 5 13052 5 13057 5 13060 5 13066 5 13076 5 13079 5 13080 5 13082 5 13085 5 13086 5 13094 5 13100 5 13103 5 13108 5 13113 5 13126 5 13135 5 13137 5 13141 5 13143 5 13145 5 13156 5 13158 5 13159 5 13163 5 13167 5 13169 5 13175 5 13179 5 13180 5 13183 5 13190 5 13193 5 13203 5 13231 5 13248 5 13261 5 13265 5 13268 5 13276 5 13277 5 13280 5 13281 5 13288 5 13292 5 13293 5 13297 5 13299 5 13309 5 13314 5 13318 5 13326 5 13330 5 13333 5 13335 5 13336 5 13360 5 13369 5 13370 5 13374 5 13375 5 13384 5 13386 5 13392 5 13395 5 13402 5 13414 5 13418 5 13419 5 13422 5 13427 5 13433 5 13442 5 13444 5 13446 5 13451 5 13464 5 13468 5 13469 5 13488 5 13501 5 13510 5 13519 5 13521 5 13524 5 13541 5 13542 5 13545 5 13546 5 13550 5 13551 5 13552 5 13570 5 13571 5 13572 5 13574 5 13575 5 13581 5 13582 5 13583 5 13586 5 13588 5 13598 5 13600 5 13604 5 13619 5 13622 5 13633 5 13634 5 13642 5 13645 5 13647 5 13650 5 13651 5 13654 5 13656 5 13660 5 13666 5 13682 5 13695 5 13697 5 13698 5 13705 5 13707 5 13718 5 13723 5 13728 5 13736 5 13739 5 13751 5 13758 5 13772 5 13779 5 13782 5 13790 5 13801 5 13804 5 13805 5 13806 5 13811 5 13818 5 13820 5 13824 5 13831 5 13841 5 13843 5 13845 5 13846 5 13862 5 13872 5 13876 5 13884 5 13894 5 13902 5 13904 5 13922 5 13933 5 13939 5 13945 5 13951 5 13962 5 13965 5 13974 5 13988 5 13991 5 13994 5 14011 5 14014 5 14019 5 14030 5 14031 5 14036 5 14041 5 14042 5 14049 5 14051 5 14057 5 14059 5 14065 5 14074 5 14077 5 14088 5 14090 5 14091 5 14095 5 14103 5 14106 5 14108 5 14114 5 14118 5 14122 5 14130 5 14132 5 14133 5 14142 5 14145 5 14147 5 14157 5 14161 5 14165 5 14168 5 14172 5 14182 5 14188 5 14195 5 14196 5 14209 5 14211 5 14222 5 14224 5 14226 5 14228 5 14231 5 14232 5 14240 5 14241 5 14242 5 14248 5 14263 5 14268 5 14269 5 14271 5 14273 5 14274 5 14275 5 14276 5 14292 5 14295 5 14302 5 14309 5 14313 5 14315 5 14320 5 14321 5 14323 5 14328 5 14330 5 14355 5 14356 5 14367 5 14368 5 14373 5 14379 5 14385 5 14391 5 14392 5 14394 5 14400 5 14405 5 14408 5 14419 5 14420 5 14425 5 14426 5 14441 5 14444 5 14455 5 14460 5 14467 5 14479 5 14481 5 14491 5 14493 5 14498 5 14500 5 14508 5 14520 5 14522 5 14525 5 14526 5 14527 5 14533 5 14544 5 14550 5 14551 5 14557 5 14565 5 14571 5 14574 5 14578 5 14583 5 14584 5 14585 5 14589 5 14596 5 14603 5 14610 5 14617 5 14630 5 14632 5 14635 5 14642 5 14643 5 14649 5 14650 5 14651 5 14662 5 14668 5 14676 5 14686 5 14697 5 14712 5 14715 5 14722 5 14734 5 14743 5 14744 5 14745 5 14748 5 14750 5 14756 5 14757 5 14760 5 14764 5 14770 5 14779 5 14787 5 14807 5 14810 5 14813 5 14820 5 14824 5 14826 5 14830 5 14847 5 14855 5 14861 5 14862 5 14872 5 14873 5 14880 5 14887 5 14889 5 14893 5 14898 5 14902 5 14911 5 14912 5 14914 5 14921 5 14932 5 14935 5 14950 5 14951 5 14956 5 14967 5 14971 5 14977 5 14983 5 14997 5 14999 5 15007 5 15008 5 15014 5 15017 5 15018 5 15019 5 15025 5 15039 5 15044 5 15047 5 15049 5 15053 5 15055 5 15057 5 15059 5 15060 5 15062 5 15066 5 15072 5 15080 5 15091 5 15106 5 15108 5 15120 5 15122 5 15123 5 15129 5 15134 5 15135 5 15137 5 15146 5 15152 5 15156 5 15162 5 15179 5 15187 5 15188 5 15194 5 15195 5 15199 5 15222 5 15223 5 15243 5 15279 5 15286 5 15288 5 15301 5 15306 5 15307 5 15308 5 15320 5 15323 5 15326 5 15332 5 15336 5 15358 5 15359 5 15375 5 15402 5 15408 5 15411 5 15421 5 15424 5 15431 5 15434 5 15438 5 15446 5 15458 5 15482 5 15498 5 15506 5 15507 5 15510 5 15512 5 15522 5 15526 5 15538 5 15546 5 15555 5 15571 5 15572 5 15575 5 15577 5 15589 5 15597 5 15598 5 15601 5 15603 5 15622 5 15624 5 15630 5 15637 5 15638 5 15645 5 15651 5 15658 5 15661 5 15666 5 15668 5 15669 5 15673 5 15678 5 15683 5 15685 5 15690 5 15702 5 15712 5 15722 5 15723 5 15732 5 15736 5 15752 5 15753 5 15763 5 15787 5 15790 5 15796 5 15803 5 15812 5 15813 5 15818 5 15821 5 15835 5 15836 5 15843 5 15844 5 15846 5 15856 5 15857 5 15876 5 15894 5 15897 5 15900 5 15902 5 15925 5 15928 5 15940 5 15946 5 15952 5 15957 5 15958 5 15959 5 15966 5 15984 5 15989 5 15997 5 16000 5 16003 5 16019 5 16028 5 16029 5 16031 5 16051 5 16057 5 16060 5 16064 5 16070 5 16076 5 16082 5 16091 5 16101 5 16107 5 16111 5 16117 5 16120 5 16126 5 16141 5 16142 5 16148 5 16164 5 16166 5 16168 5 16171 5 16172 5 16178 5 16183 5 16188 5 16193 5 16195 5 16198 5 16202 5 16204 5 16215 5 16220 5 16227 5 16228 5 16235 5 16240 5 16242 5 16251 5 16260 5 16265 5 16266 5 16268 5 16270 5 16271 5 16272 5 16276 5 16279 5 16289 5 16300 5 16303 5 16304 5 16315 5 16323 5 16324 5 16327 5 16334 5 16338 5 16341 5 16347 5 16348 5 16352 5 16361 5 16368 5 16374 5 16377 5 16379 5 16382 5 16387 5 16395 5 16397 5 16402 5 16403 5 16406 5 16419 5 16433 5 16438 5 16447 5 16451 5 16467 5 16482 5 16483 5 16485 5 16492 5 16498 5 16499 5 16511 5 16520 5 16530 5 16532 5 16545 5 16547 5 16548 5 16549 5 16554 5 16568 5 16570 5 16571 5 16572 5 16574 5 16577 5 16581 5 16583 5 16584 5 16586 5 16587 5 16593 5 16594 5 16617 5 16620 5 16623 5 16625 5 16627 5 16633 5 16643 5 16656 5 16660 5 16663 5 16668 5 16671 5 16672 5 16673 5 16676 5 16680 5 16681 5 16687 5 16693 5 16704 5 16715 5 16716 5 16733 5 16736 5 16744 5 16746 5 16747 5 16749 5 16761 5 16763 5 16773 5 16787 5 16788 5 16790 5 16798 5 16811 5 16825 5 16827 5 16829 5 16847 5 16848 5 16849 5 16858 5 16859 5 16863 5 16872 5 16877 5 16885 5 16886 5 16892 5 16896 5 16903 5 16922 5 16924 5 16927 5 16931 5 16937 5 16942 5 16944 5 16945 5 16946 5 16950 5 16957 5 16961 5 16964 5 16974 5 16977 5 16979 5 16980 5 16981 5 16982 5 16991 5 17006 5 17009 5 17024 5 17026 5 17038 5 17039 5 17043 5 17053 5 17056 5 17061 5 17062 5 17065 5 17080 5 17094 5 17096 5 17104 5 17106 5 17108 5 17109 5 17116 5 17122 5 17126 5 17127 5 17128 5 17133 5 17139 5 17152 5 17154 5 17155 5 17164 5 17165 5 17166 5 17167 5 17180 5 17205 5 17224 5 17226 5 17234 5 17256 5 17260 5 17261 5 17276 5 17281 5 17291 5 17316 5 17317 5 17318 5 17326 5 17331 5 17332 5 17334 5 17335 5 17339 5 17349 5 17350 5 17354 5 17361 5 17365 5 17374 5 17380 5 17399 5 17405 5 17416 5 17417 5 17419 5 17420 5 17424 5 17426 5 17439 5 17445 5 17447 5 17448 5 17452 5 17465 5 17483 5 17486 5 17491 5 17499 5 17500 5 17501 5 17504 5 17506 5 17510 5 17512 5 17513 5 17519 5 17523 5 17533 5 17535 5 17537 5 17542 5 17555 5 17564 5 17567 5 17572 5 17574 5 17577 5 17580 5 17582 5 17584 5 17599 5 17602 5 17604 5 17605 5 17617 5 17620 5 17622 5 17627 5 17634 5 17641 5 17657 5 17660 5 17665 5 17682 5 17690 5 17697 5 17699 5 17700 5 17718 5 17730 5 17732 5 17760 5 17765 5 17773 5 17782 5 17787 5 17790 5 17792 5 17794 5 17797 5 17798 5 17804 5 17810 5 17812 5 17813 5 17816 5 17821 5 17827 5 17831 5 17843 5 17850 5 17857 5 17859 5 17860 5 17868 5 17871 5 17872 5 17873 5 17878 5 17883 5 17887 5 17894 5 17903 5 17919 5 17920 5 17921 5 17925 5 17927 5 17932 5 17936 5 17938 5 17942 5 17947 5 17950 5 17966 5 17976 5 17979 5 17988 5 17993 5 18005 5 18010 5 18011 5 18013 5 18017 5 18018 5 18020 5 18023 5 18025 5 18031 5 18032 5 18048 5 18050 5 18060 5 18061 5 18069 5 18095 5 18096 5 18104 5 18109 5 18116 5 18121 5 18128 5 18131 5 18132 5 18137 5 18140 5 18141 5 18144 5 18156 5 18168 5 18173 5 18181 5 18186 5 18191 5 18195 5 18196 5 18206 5 18208 5 18216 5 18226 5 18235 5 18239 5 18242 5 18243 5 18247 5 18264 5 18268 5 18269 5 18270 5 18273 5 18278 5 18284 5 18286 5 18292 5 18296 5 18297 5 18298 5 18305 5 18308 5 18311 5 18326 5 18329 5 18339 5 18344 5 18368 5 18370 5 18373 5 18395 5 18399 5 18400 5 18408 5 18410 5 18414 5 18422 5 18423 5 18434 5 18435 5 18437 5 18442 5 18464 5 18467 5 18469 5 18470 5 18471 5 18474 5 18481 5 18489 5 18493 5 18495 5 18496 5 18497 5 18503 5 18510 5 18512 5 18515 5 18523 5 18526 5 18528 5 18533 5 18540 5 18542 5 18543 5 18556 5 18561 5 18576 5 18615 5 18624 5 18625 5 18632 5 18639 5 18643 5 18654 5 18657 5 18661 5 18674 5 18679 5 18683 5 18686 5 18711 5 18716 5 18728 5 18736 5 18737 5 18739 5 18740 5 18744 5 18746 5 18756 5 18771 5 18776 5 18780 5 18788 5 18794 5 18806 5 18814 5 18817 5 18823 5 18824 5 18826 5 18834 5 18841 5 18847 5 18864 5 18888 5 18907 5 18909 5 18914 5 18922 5 18927 5 18931 5 18934 5 18935 5 18938 5 18945 5 18948 5 18951 5 18953 5 18968 5 18979 5 18990 5 18991 5 18993 5 19003 5 19005 5 19009 5 19013 5 19019 5 19023 5 19037 5 19040 5 19047 5 19058 5 19059 5 19076 5 19078 5 19082 5 19086 5 19088 5 19090 5 19096 5 19099 5 19107 5 19115 5 19118 5 19126 5 19136 5 19147 5 19149 5 19152 5 19155 5 19163 5 19174 5 19180 5 19182 5 19183 5 19188 5 19191 5 19198 5 19201 5 19227 5 19231 5 19243 5 19248 5 19252 5 19255 5 19276 5 19286 5 19287 5 19291 5 19292 5 19300 5 19304 5 19312 5 19323 5 19330 5 19355 5 19365 5 19389 5 19390 5 19392 5 19400 5 19403 5 19404 5 19406 5 19417 5 19420 5 19425 5 19438 5 19455 5 19456 5 19480 5 19490 5 19497 5 19502 5 19504 5 19508 5 19509 5 19510 5 19521 5 19536 5 19552 5 19553 5 19557 5 19568 5 19569 5 19571 5 19581 5 19583 5 19585 5 19586 5 19603 5 19606 5 19617 5 19626 5 19628 5 19644 5 19646 5 19647 5 19653 5 19656 5 19658 5 19668 5 19670 5 19674 5 19676 5 19681 5 19683 5 19693 5 19696 5 19697 5 19698 5 19702 5 19714 5 19715 5 19719 5 19720 5 19721 5 19726 5 19734 5 19763 5 19769 5 19770 5 19771 5 19776 5 19778 5 19780 5 19783 5 19795 5 19801 5 19807 5 19808 5 19814 5 19817 5 19822 5 19824 5 19830 5 19840 5 19852 5 19853 5 19859 5 19862 5 19865 5 19866 5 19868 5 19876 5 19878 5 19881 5 19885 5 19888 5 19892 5 19900 5 19902 5 19906 5 19907 5 19916 5 19925 5 19929 5 19934 5 19939 5 19940 5 19946 5 19947 5 19952 5 19955 5 19966 5 19970 5 19973 5 19974 5 19975 5 19981 5 19990 5 19991 5 19992 5 19994 5 19999 5 20010 5 20013 5 20015 5 20035 5 20040 5 20048 5 20049 5 20055 5 20061 5 20065 5 20071 5 20074 5 20090 5 20105 5 20110 5 20112 5 20119 5 20122 5 20124 5 20125 5 20129 5 20136 5 20144 5 20148 5 20155 5 20160 5 20165 5 20167 5 20195 5 20199 5 20202 5 20206 5 20207 5 20210 5 20212 5 20213 5 20229 5 20230 5 20234 5 20240 5 20245 5 20265 5 20275 5 20277 5 20278 5 20279 5 20292 5 20293 5 20295 5 20307 5 20324 5 20327 5 20336 5 20341 5 20342 5 20347 5 20349 5 20354 5 20365 5 20385 5 20387 5 20389 5 20396 5 20404 5 20409 5 20411 5 20412 5 20413 5 20424 5 20425 5 20427 5 20428 5 20432 5 20446 5 20452 5 20454 5 20459 5 20466 5 20469 5 20470 5 20474 5 20482 5 20489 5 20491 5 20494 5 20499 5 20504 5 20512 5 20515 5 20518 5 20522 5 20530 5 20536 5 20539 5 20546 5 20549 5 20561 5 20562 5 20564 5 20567 5 20576 5 20584 5 20594 5 20615 5 20618 5 20620 5 20637 5 20642 5 20643 5 20645 5 20650 5 20655 5 20656 5 20658 5 20666 5 20667 5 20671 5 20691 5 20693 5 20696 5 20699 5 20701 5 20706 5 20708 5 20713 5 20714 5 20717 5 20744 5 20747 5 20750 5 20757 5 20759 5 20760 5 20761 5 20766 5 20775 5 20789 5 20797 5 20798 5 20813 5 20814 5 20815 5 20822 5 20828 5 20833 5 20842 5 20850 5 20855 5 20860 5 20863 5 20864 5 20865 5 20867 5 20880 5 20887 5 20891 5 20902 5 20923 5 20924 5 20940 5 20943 5 20944 5 20946 5 20949 5 20954 5 20963 5 20967 5 20969 5 20974 5 20978 5 20993 5 20995 5 21005 5 21007 5 21008 5 21016 5 21026 5 21031 5 21047 5 21048 5 21051 5 21056 5 21062 5 21078 5 21079 5 21084 5 21087 5 21089 5 21093 5 21096 5 21100 5 21102 5 21128 5 21132 5 21135 5 21137 5 21140 5 21145 5 21147 5 21157 5 21158 5 21163 5 21175 5 21178 5 21179 5 21180 5 21187 5 21189 5 21200 5 21204 5 21226 5 21228 5 21245 5 21246 5 21255 5 21257 5 21263 5 21271 5 21279 5 21281 5 21290 5 21292 5 21301 5 21308 5 21310 5 21316 5 21325 5 21331 5 21336 5 21339 5 21347 5 21350 5 21356 5 21358 5 21362 5 21366 5 21376 5 21380 5 21384 5 21395 5 21397 5 21410 5 21418 5 21427 5 21444 5 21445 5 21449 5 21452 5 21460 5 21471 5 21472 5 21475 5 21476 5 21483 5 21486 5 21487 5 21492 5 21506 5 21507 5 21510 5 21511 5 21516 5 21531 5 21533 5 21537 5 21547 5 21548 5 21549 5 21558 5 21563 5 21568 5 21572 5 21580 5 21584 5 21588 5 21591 5 21608 5 21610 5 21628 5 21644 5 21645 5 21647 5 21650 5 21654 5 21664 5 21668 5 21670 5 21674 5 21684 5 21693 5 21695 5 21700 5 21704 5 21705 5 21712 5 21713 5 21719 5 21726 5 21727 5 21736 5 21738 5 21739 5 21749 5 21766 5 21774 5 21775 5 21776 5 21784 5 21799 5 21802 5 21803 5 21804 5 21826 5 21831 5 21838 5 21846 5 21860 5 21869 5 21870 5 21875 5 21878 5 21881 5 21893 5 21898 5 21899 5 21911 5 21913 5 21920 5 21923 5 21931 5 21937 5 21944 5 21951 5 21953 5 21954 5 21966 5 21979 5 21989 5 21993 5 21994 5 22020 5 22035 5 22064 5 22073 5 22075 5 22076 5 22086 5 22091 5 22092 5 22093 5 22095 5 22102 5 22112 5 22122 5 22130 5 22134 5 22135 5 22138 5 22148 5 22160 5 22164 5 22166 5 22174 5 22175 5 22176 5 22185 5 22190 5 22195 5 22198 5 22202 5 22211 5 22212 5 22213 5 22214 5 22227 5 22231 5 22238 5 22245 5 22252 5 22256 5 22274 5 22275 5 22280 5 22286 5 22289 5 22297 5 22298 5 22303 5 22308 5 22319 5 22321 5 22326 5 22336 5 22359 5 22360 5 22392 5 22398 5 22403 5 22409 5 22417 5 22418 5 22420 5 22433 5 22436 5 22442 5 22443 5 22448 5 22462 5 22465 5 22471 5 22478 5 22492 5 22494 5 22500 5 22516 5 22528 5 22530 5 22534 5 22539 5 22542 5 22544 5 22559 5 22569 5 22571 5 22590 5 22591 5 22592 5 22594 5 22595 5 22597 5 22605 5 22613 5 22616 5 22624 5 22633 5 22640 5 22655 5 22659 5 22663 5 22664 5 22666 5 22673 5 22674 5 22676 5 22688 5 22695 5 22697 5 22698 5 22700 5 22707 5 22709 5 22715 5 22720 5 22727 5 22729 5 22731 5 22732 5 22737 5 22743 5 22745 5 22747 5 22748 5 22751 5 22762 5 22764 5 22783 5 22789 5 22793 5 22794 5 22811 5 22819 5 22827 5 22829 5 22830 5 22835 5 22842 5 22847 5 22848 5 22849 5 22851 5 22855 5 22857 5 22860 5 22873 5 22874 5 22876 5 22885 5 22890 5 22893 5 22894 5 22899 5 22906 5 22909 5 22920 5 22930 5 22936 5 22937 5 22942 5 22945 5 22955 5 22960 5 22977 5 22982 5 22984 5 22986 5 22994 5 22996 5 23001 5 23007 5 23025 5 23029 5 23046 5 23049 5 23064 5 23066 5 23069 5 23071 5 23078 5 23091 5 23097 5 23114 5 23115 5 23118 5 23122 5 23124 5 23143 5 23148 5 23156 5 23159 5 23161 5 23163 5 23166 5 23167 5 23169 5 23178 5 23179 5 23182 5 23183 5 23184 5 23196 5 23203 5 23212 5 23214 5 23218 5 23224 5 23226 5 23234 5 23239 5 23240 5 23241 5 23245 5 23276 5 23277 5 23282 5 23289 5 23290 5 23299 5 23301 5 23305 5 23308 5 23312 5 23339 5 23340 5 23344 5 23346 5 23349 5 23350 5 23355 5 23357 5 23361 5 23362 5 23365 5 23373 5 23378 5 23379 5 23384 5 23388 5 23397 5 23418 5 23423 5 23432 5 23435 5 23437 5 23470 5 23471 5 23482 5 23494 5 23497 5 23502 5 23512 5 23515 5 23524 5 23538 5 23539 5 23542 5 23556 5 23559 5 23566 5 23568 5 23572 5 23576 5 23578 5 23580 5 23582 5 23585 5 23599 5 23602 5 23607 5 23614 5 23619 5 23620 5 23623 5 23634 5 23647 5 23648 5 23649 5 23652 5 23654 5 23655 5 23680 5 23683 5 23689 5 23693 5 23695 5 23696 5 23697 5 23699 5 23703 5 23704 5 23705 5 23714 5 23723 5 23732 5 23736 5 23742 5 23744 5 23745 5 23748 5 23753 5 23762 5 23764 5 23775 5 23776 5 23778 5 23787 5 23788 5 23790 5 23799 5 23807 5 23818 5 23820 5 23821 5 23826 5 23828 5 23842 5 23843 5 23846 5 23848 5 23852 5 23854 5 23855 5 23860 5 23866 5 23869 5 23870 5 23874 5 23897 5 23898 5 23905 5 23916 5 23918 5 23925 5 23929 5 23930 5 23938 5 23952 5 23956 5 23963 5 23967 5 23971 5 23975 5 23976 5 23980 5 23988 5 23996 5 23998 5 24006 5 24009 5 24012 5 24020 5 24022 5 24023 5 24032 5 24040 5 24047 5 24049 5 24054 5 24058 5 24064 5 24073 5 24075 5 24077 5 24085 5 24091 5 24097 5 24098 5 24101 5 24104 5 24117 5 24128 5 24130 5 24132 5 24138 5 24139 5 24143 5 24145 5 24151 5 24155 5 24165 5 24168 5 24172 5 24199 5 24203 5 24211 5 24249 5 24265 5 24267 5 24282 5 24290 5 24294 5 24299 5 24308 5 24311 5 24319 5 24323 5 24334 5 24343 5 24361 5 24362 5 24371 5 24374 5 24398 5 24402 5 24409 5 24410 5 24411 5 24413 5 24415 5 24421 5 24423 5 24428 5 24429 5 24434 5 24442 5 24443 5 24450 5 24453 5 24466 5 24470 5 24477 5 24485 5 24486 5 24495 5 24497 5 24500 5 24502 5 24518 5 24521 5 24526 5 24528 5 24531 5 24546 5 24547 5 24554 5 24559 5 24568 5 24578 5 24585 5 24593 5 24596 5 24612 5 24618 5 24619 5 24622 5 24625 5 24634 5 24636 5 24642 5 24645 5 24650 5 24658 5 24659 5 24660 5 24678 5 24685 5 24696 5 24699 5 24700 5 24705 5 24715 5 24716 5 24722 5 24727 5 24742 5 24748 5 24754 5 24790 5 24792 5 24793 5 24799 5 24812 5 24813 5 24823 5 24831 5 24838 5 24839 5 24845 5 24866 5 24874 5 24878 5 24884 5 24888 5 24894 5 24898 5 24910 5 24913 5 24918 5 24931 5 24950 5 24951 5 24955 5 24968 5 24972 5 24976 5 24980 5 24982 5 24987 5 24990 5 24992 5 25007 5 25016 5 25018 5 25025 5 25027 5 25029 5 25032 5 25047 5 25050 5 25057 5 25070 5 25071 5 25073 5 25078 5 25080 5 25086 5 25088 5 25095 5 25113 5 25118 5 25120 5 25121 5 25135 5 25139 5 25142 5 25144 5 25148 5 25151 5 25153 5 25157 5 25167 5 25173 5 25180 5 25193 5 25199 5 25205 5 25208 5 25225 5 25230 5 25234 5 25239 5 25252 5 25258 5 25259 5 25260 5 25264 5 25276 5 25282 5 25289 5 25296 5 25307 5 25309 5 25310 5 25312 5 25313 5 25316 5 25318 5 25327 5 25336 5 25352 5 25362 5 25363 5 25367 5 25368 5 25373 5 25374 5 25381 5 25382 5 25383 5 25396 5 25402 5 25412 5 25428 5 25434 5 25436 5 25444 5 25446 5 25456 5 25461 5 25466 5 25467 5 25468 5 25475 5 25483 5 25491 5 25496 5 25504 5 25508 5 25521 5 25525 5 25532 5 25539 5 25544 5 25552 5 25553 5 25560 5 25581 5 25585 5 25596 5 25597 5 25600 5 25608 5 25638 5 25654 5 25667 5 25677 5 25686 5 25689 5 25693 5 25697 5 25712 5 25713 5 25726 5 25729 5 25739 5 25740 5 25749 5 25752 5 25757 5 25760 5 25768 5 25770 5 25777 5 25782 5 25786 5 25800 5 25814 5 25831 5 25840 5 25858 5 25862 5 25867 5 25868 5 25872 5 25877 5 25878 5 25879 5 25894 5 25898 5 25911 5 25920 5 25923 5 25930 5 25931 5 25932 5 25941 5 25944 5 25945 5 25947 5 25956 5 25971 5 25976 5 25983 5 25984 5 25985 5 25993 5 25998 5 26015 5 26020 5 26024 5 26025 5 26035 5 26046 5 26047 5 26049 5 26071 5 26072 5 26074 5 26078 5 26082 5 26085 5 26089 5 26102 5 26106 5 26107 5 26110 5 26111 5 26113 5 26115 5 26119 5 26127 5 26128 5 26130 5 26134 5 26140 5 26141 5 26142 5 26158 5 26178 5 26190 5 26191 5 26199 5 26204 5 26212 5 26225 5 26233 5 26242 5 26253 5 26255 5 26269 5 26272 5 26285 5 26288 5 26292 5 26299 5 26305 5 26313 5 26314 5 26317 5 26326 5 26331 5 26337 5 26340 5 26342 5 26344 5 26358 5 26382 5 26384 5 26411 5 26418 5 26429 5 26453 5 26458 5 26464 5 26468 5 26469 5 26471 5 26477 5 26484 5 26494 5 26499 5 26524 5 26526 5 26541 5 26545 5 26549 5 26552 5 26562 5 26567 5 26573 5 26580 5 26581 5 26583 5 26584 5 26595 5 26597 5 26606 5 26616 5 26620 5 26625 5 26627 5 26630 5 26647 5 26650 5 26653 5 26658 5 26660 5 26665 5 26693 5 26696 5 26697 5 26700 5 26709 5 26710 5 26726 5 26728 5 26732 5 26737 5 26742 5 26744 5 26749 5 26770 5 26776 5 26782 5 26800 5 26801 5 26803 5 26806 5 26807 5 26809 5 26810 5 26816 5 26821 5 26834 5 26835 5 26841 5 26842 5 26856 5 26861 5 26865 5 26872 5 26875 5 26876 5 26885 5 26886 5 26894 5 26898 5 26909 5 26919 5 26923 5 26926 5 26938 5 26943 5 26950 5 26952 5 26965 5 26966 5 26977 5 26982 5 26990 5 27014 5 27015 5 27016 5 27019 5 27028 5 27030 5 27034 5 27050 5 27051 5 27054 5 27059 5 27062 5 27072 5 27081 5 27094 5 27096 5 27105 5 27110 5 27111 5 27114 5 27123 5 27124 5 27133 5 27144 5 27153 5 27159 5 27165 5 27167 5 27168 5 27179 5 27182 5 27191 5 27194 5 27197 5 27207 5 27222 5 27232 5 27256 5 27259 5 27260 5 27266 5 27270 5 27275 5 27277 5 27279 5 27287 5 27288 5 27289 5 27299 5 27301 5 27304 5 27308 5 27309 5 27310 5 27322 5 27323 5 27325 5 27336 5 27347 5 27360 5 27363 5 27367 5 27371 5 27373 5 27387 5 27394 5 27401 5 27403 5 27411 5 27440 5 27442 5 27448 5 27453 5 27458 5 27462 5 27468 5 27473 5 27487 5 27491 5 27504 5 27509 5 27511 5 27531 5 27534 5 27535 5 27538 5 27548 5 27558 5 27566 5 27568 5 27570 5 27591 5 27594 5 27600 5 27608 5 27618 5 27627 5 27656 5 27658 5 27673 5 27678 5 27686 5 27689 5 27690 5 27695 5 27696 5 27699 5 27700 5 27704 5 27706 5 27707 5 27709 5 27716 5 27719 5 27726 5 27731 5 27732 5 27742 5 27754 5 27759 5 27768 5 27770 5 27779 5 27787 5 27791 5 27794 5 27798 5 27800 5 27807 5 27808 5 27813 5 27816 5 27819 5 27823 5 27825 5 27828 5 27829 5 27831 5 27832 5 27835 5 27841 5 27849 5 27853 5 27863 5 27872 5 27877 5 27882 5 27888 5 27889 5 27890 5 27893 5 27911 5 27912 5 27913 5 27916 5 27921 5 27923 5 27932 5 27934 5 27936 5 27940 5 27941 5 27947 5 27952 5 27954 5 27962 5 27969 5 27985 5 27988 5 27994 5 28005 5 28012 5 28025 5 28026 5 28034 5 28038 5 28047 5 28058 5 28068 5 28069 5 28082 5 28084 5 28090 5 28097 5 28110 5 28114 5 28118 5 28149 5 28151 5 28152 5 28154 5 28160 5 28161 5 28165 5 28167 5 28169 5 28177 5 28190 5 28205 5 28208 5 28214 5 28241 5 28244 5 28267 5 28270 5 28271 5 28272 5 28278 5 28285 5 28286 5 28289 5 28290 5 28302 5 28305 5 28311 5 28313 5 28314 5 28317 5 28318 5 28326 5 28335 5 28336 5 28356 5 28365 5 28371 5 28375 5 28376 5 28383 5 28385 5 28389 5 28390 5 28391 5 28393 5 28406 5 28411 5 28412 5 28417 5 28420 5 28423 5 28424 5 28426 5 28437 5 28438 5 28442 5 28451 5 28452 5 28453 5 28458 5 28459 5 28462 5 28466 5 28468 5 28470 5 28472 5 28475 5 28476 5 28478 5 28481 5 28486 5 28491 5 28493 5 28496 5 28498 5 28504 5 28509 5 28514 5 28523 5 28532 5 28537 5 28546 5 28550 5 28551 5 28553 5 28555 5 28563 5 28565 5 28568 5 28569 5 28571 5 28572 5 28575 5 28586 5 28592 5 28598 5 28612 5 28616 5 28617 5 28633 5 28635 5 28639 5 28646 5 28659 5 28661 5 28662 5 28664 5 28668 5 28671 5 28673 5 28677 5 28681 5 28694 5 28698 5 28701 5 28705 5 28711 5 28716 5 28732 5 28733 5 28739 5 28742 5 28743 5 28756 5 28764 5 28768 5 28770 5 28773 5 28775 5 28786 5 28792 5 28795 5 28802 5 28804 5 28812 5 28814 5 28848 5 28859 5 28860 5 28862 5 28875 5 28889 5 28894 5 28896 5 28900 5 28904 5 28907 5 28909 5 28911 5 28917 5 28922 5 28925 5 28926 5 28927 5 28930 5 28932 5 28935 5 28936 5 28938 5 28947 5 28955 5 28958 5 28966 5 28980 5 28987 5 29005 5 29010 5 29016 5 29019 5 29030 5 29036 5 29051 5 29057 5 29069 5 29083 5 29088 5 29093 5 29111 5 29126 5 29128 5 29129 5 29130 5 29131 5 29133 5 29137 5 29143 5 29146 5 29151 5 29158 5 29159 5 29172 5 29175 5 29178 5 29185 5 29194 5 29213 5 29225 5 29226 5 29230 5 29237 5 29242 5 29250 5 29253 5 29269 5 29272 5 29276 5 29285 5 29287 5 29292 5 29297 5 29315 5 29319 5 29323 5 29336 5 29340 5 29342 5 29364 5 29365 5 29370 5 29380 5 29382 5 29388 5 29400 5 29401 5 29404 5 29405 5 29420 5 29421 5 29428 5 29431 5 29436 5 29438 5 29440 5 29441 5 29442 5 29446 5 29454 5 29470 5 29481 5 29484 5 29488 5 29493 5 29500 5 29518 5 29522 5 29527 5 29530 5 29536 5 29543 5 29545 5 29549 5 29552 5 29554 5 29560 5 29561 5 29570 5 29572 5 29573 5 29574 5 29575 5 29578 5 29580 5 29585 5 29588 5 29600 5 29608 5 29609 5 29612 5 29633 5 29637 5 29642 5 29643 5 29647 5 29648 5 29655 5 29664 5 29665 5 29668 5 29669 5 29670 5 29671 5 29675 5 29681 5 29687 5 29688 5 29693 5 29703 5 29706 5 29708 5 29715 5 29724 5 29728 5 29732 5 29749 5 29760 5 29761 5 29763 5 29765 5 29766 5 29768 5 29772 5 29775 5 29784 5 29788 5 29792 5 29801 5 29805 5 29811 5 29818 5 29863 5 29871 5 29883 5 29891 5 29902 5 29905 5 29908 5 29911 5 29914 5 29915 5 29921 5 29937 5 29962 5 29968 5 29979 5 29982 5 29984 5 30019 5 30021 5 30022 5 30023 5 30026 5 30028 5 30029 5 30045 5 30049 5 30069 5 30079 5 30085 5 30094 5 30102 5 30112 5 30113 5 30115 5 30121 5 30122 5 30123 5 30124 5 30129 5 30131 5 30147 5 30151 5 30153 5 30154 5 30160 5 30161 5 30162 5 30164 5 30167 5 30168 5 30176 5 30197 5 30198 5 30201 5 30203 5 30207 5 30211 5 30212 5 30220 5 30228 5 30231 5 30233 5 30237 5 30240 5 30249 5 30260 5 30264 5 30267 5 30268 5 30269 5 30276 5 30277 5 30294 5 30316 5 30324 5 30326 5 30327 5 30328 5 30339 5 30347 5 30349 5 30357 5 30374 5 30378 5 30385 5 30407 5 30413 5 30418 5 30427 5 30429 5 30437 5 30441 5 30454 5 30461 5 30462 5 30463 5 30475 5 30477 5 30485 5 30503 5 30512 5 30513 5 30519 5 30520 5 30528 5 30533 5 30534 5 30535 5 30545 5 30546 5 30569 5 30582 5 30583 5 30587 5 30592 5 30596 5 30615 5 30617 5 30635 5 30636 5 30641 5 30643 5 30644 5 30648 5 30649 5 30656 5 30668 5 30689 5 30710 5 30714 5 30717 5 30720 5 30721 5 30725 5 30727 5 30748 5 30751 5 30758 5 30763 5 30765 5 30769 5 30774 5 30784 5 30797 5 30801 5 30805 5 30812 5 30821 5 30822 5 30833 5 30834 5 30840 5 30841 5 30875 5 30877 5 30879 5 30884 5 30886 5 30895 5 30900 5 30913 5 30916 5 30925 5 30936 5 30945 5 30962 5 30991 5 30992 5 31012 5 31029 5 31036 5 31041 5 31065 5 31073 5 31074 5 31086 5 31087 5 31091 5 31093 5 31101 5 31102 5 31116 5 31124 5 31130 5 31131 5 31147 5 31154 5 31175 5 31186 5 31187 5 31193 5 31198 5 31207 5 31208 5 31218 5 31220 5 31225 5 31231 5 31233 5 31243 5 31247 5 31254 5 31255 5 31259 5 31267 5 31290 5 31301 5 31304 5 31306 5 31312 5 31318 5 31319 5 31328 5 31333 5 31348 5 31349 5 31361 5 31369 5 31372 5 31374 5 31375 5 31377 5 31382 5 31386 5 31388 5 31395 5 31412 5 31414 5 31422 5 31425 5 31431 5 31433 5 31438 5 31464 5 31467 5 31472 5 31486 5 31489 5 31498 5 31508 5 31520 5 31544 5 31545 5 31548 5 31551 5 31552 5 31564 5 31565 5 31574 5 31577 5 31579 5 31582 5 31586 5 31587 5 31596 5 31603 5 31604 5 31621 5 31629 5 31631 5 31636 5 31637 5 31638 5 31643 5 31644 5 31647 5 31662 5 31676 5 31677 5 31686 5 31689 5 31699 5 31709 5 31716 5 31724 5 31731 5 31743 5 31748 5 31754 5 31761 5 31771 5 31777 5 31779 5 31786 5 31788 5 31799 5 31803 5 31808 5 31819 5 31828 5 31832 5 31836 5 31838 5 31843 5 31851 5 31852 5 31855 5 31857 5 31858 5 31881 5 31882 5 31884 5 31886 5 31896 5 31905 5 31906 5 31911 5 31931 5 31932 5 31936 5 31937 5 31947 5 31954 5 31960 5 31969 5 31979 5 31983 5 31985 5 31993 5 32008 5 32013 5 32022 5 32027 5 32030 5 32041 5 32044 5 32054 5 32060 5 32061 5 32064 5 32068 5 32072 5 32073 5 32075 5 32078 5 32104 5 32116 5 32125 5 32126 5 32132 5 32137 5 32140 5 32148 5 32151 5 32165 5 32168 5 32170 5 32172 5 32182 5 32191 5 32192 5 32198 5 32201 5 32203 5 32220 5 32221 5 32223 5 32224 5 32233 5 32236 5 32249 5 32259 5 32263 5 32281 5 32289 5 32296 5 32307 5 32308 5 32311 5 32314 5 32320 5 32321 5 32323 5 32330 5 32346 5 32347 5 32353 5 32354 5 32356 5 32364 5 32365 5 32372 5 32392 5 32394 5 32400 5 32404 5 32428 5 32440 5 32448 5 32450 5 32458 5 32464 5 32465 5 32466 5 32468 5 32479 5 32499 5 32501 5 32506 5 32510 5 32514 5 32516 5 32525 5 32543 5 32551 5 32555 5 32564 5 32566 5 32569 5 32571 5 32573 5 32579 5 32585 5 32586 5 32594 5 32628 5 32632 5 32633 5 32634 5 32639 5 32641 5 32643 5 32649 5 32654 5 32655 5 32660 5 32662 5 32671 5 32686 5 32692 5 32694 5 32696 5 32705 5 32715 5 32722 5 32726 5 32728 5 32736 5 32740 5 32743 5 32748 5 32765 5 32772 5 32783 5 32795 5 32803 5 32804 5 32809 5 32811 5 32813 5 32829 5 32836 5 32844 5 32845 5 32849 5 32853 5 32867 5 32881 5 32883 5 32894 5 32901 5 32904 5 32912 5 32913 5 32919 5 32920 5 32923 5 32926 5 32930 5 32951 5 32961 5 32981 5 32986 5 32992 5 33002 5 33005 5 33010 5 33011 5 33023 5 33029 5 33037 5 33044 5 33045 5 33047 5 33053 5 33054 5 33066 5 33067 5 33070 5 33084 5 33085 5 33097 5 33098 5 33102 5 33117 5 33120 5 33133 5 33139 5 33144 5 33154 5 33157 5 33158 5 33161 5 33167 5 33170 5 33171 5 33174 5 33179 5 33195 5 33209 5 33211 5 33212 5 33215 5 33238 5 33252 5 33267 5 33272 5 33278 5 33299 5 33303 5 33304 5 33319 5 33320 5 33339 5 33340 5 33343 5 33346 5 33352 5 33362 5 33367 5 33368 5 33376 5 33381 5 33382 5 33388 5 33401 5 33415 5 33417 5 33419 5 33424 5 33428 5 33444 5 33445 5 33446 5 33463 5 33467 5 33486 5 33488 5 33495 5 33503 5 33510 5 33515 5 33516 5 33518 5 33527 5 33528 5 33534 5 33543 5 33544 5 33547 5 33555 5 33563 5 33568 5 33571 5 33573 5 33575 5 33585 5 33587 5 33588 5 33598 5 33606 5 33610 5 33620 5 33624 5 33625 5 33637 5 33645 5 33659 5 33668 5 33674 5 33676 5 33677 5 33678 5 33680 5 33682 5 33691 5 33695 5 33708 5 33710 5 33715 5 33716 5 33718 5 33719 5 33721 5 33722 5 33727 5 33729 5 33739 5 33751 5 33754 5 33763 5 33770 5 33774 5 33784 5 33785 5 33789 5 33793 5 33820 5 33825 5 33826 5 33828 5 33832 5 33838 5 33845 5 33846 5 33847 5 33848 5 33856 5 33871 5 33875 5 33881 5 33884 5 33893 5 33900 5 33903 5 33911 5 33913 5 33917 5 33936 5 33939 5 33958 5 33963 5 33964 5 33966 5 33982 5 33991 5 34003 5 34013 5 34014 5 34019 5 34021 5 34025 5 34027 5 34028 5 34029 5 34030 5 34034 5 34040 5 34043 5 34047 5 34049 5 34070 5 34093 5 34094 5 34099 5 34107 5 34115 5 34119 5 34125 5 34130 5 34135 5 34147 5 34156 5 34166 5 34181 5 34184 5 34187 5 34189 5 34190 5 34195 5 34200 5 34206 5 34207 5 34210 5 34213 5 34214 5 34216 5 34237 5 34239 5 34242 5 34255 5 34271 5 34272 5 34273 5 34274 5 34281 5 34283 5 34293 5 34298 5 34304 5 34305 5 34312 5 34315 5 34316 5 34323 5 34324 5 34326 5 34331 5 34333 5 34352 5 34354 5 34356 5 34359 5 34364 5 34372 5 34374 5 34375 5 34377 5 34380 5 34396 5 34410 5 34415 5 34417 5 34420 5 34428 5 34431 5 34443 5 34457 5 34464 5 34467 5 34473 5 34474 5 34487 5 34489 5 34500 5 34504 5 34505 5 34514 5 34520 5 34532 5 34537 5 34545 5 34559 5 34563 5 34567 5 34570 5 34573 5 34609 5 34613 5 34620 5 34631 5 34635 5 34641 5 34645 5 34648 5 34656 5 34663 5 34665 5 34668 5 34674 5 34678 5 34680 5 34683 5 34686 5 34693 5 34702 5 34705 5 34718 5 34727 5 34732 5 34739 5 34749 5 34760 5 34762 5 34767 5 34778 5 34781 5 34782 5 34793 5 34800 5 34806 5 34816 5 34820 5 34823 5 34828 5 34831 5 34834 5 34841 5 34844 5 34847 5 34851 5 34865 5 34867 5 34873 5 34874 5 34876 5 34879 5 34897 5 34899 5 34902 5 34909 5 34914 5 34920 5 34923 5 34924 5 34938 5 34945 5 34950 5 34957 5 34959 5 34963 5 34973 5 34974 5 34981 5 34984 5 34988 5 34989 5 34993 5 35011 5 35018 5 35031 5 35037 5 35041 5 35047 5 35053 5 35060 5 35067 5 35069 5 35072 5 35085 5 35086 5 35090 5 35099 5 35102 5 35114 5 35122 5 35131 5 35137 5 35142 5 35150 5 35171 5 35179 5 35191 5 35196 5 35209 5 35211 5 35216 5 35221 5 35230 5 35241 5 35243 5 35248 5 35251 5 35282 5 35283 5 35305 5 35332 5 35336 5 35344 5 35352 5 35356 5 35360 5 35364 5 35371 5 35372 5 35377 5 35379 5 35383 5 35385 5 35391 5 35404 5 35406 5 35413 5 35416 5 35422 5 35429 5 35434 5 35438 5 35444 5 35447 5 35457 5 35487 5 35488 5 35489 5 35493 5 35497 5 35509 5 35510 5 35522 5 35533 5 35535 5 35555 5 35561 5 35566 5 35568 5 35569 5 35575 5 35584 5 35586 5 35593 5 35598 5 35600 5 35601 5 35605 5 35609 5 35612 5 35615 5 35623 5 35629 5 35631 5 35641 5 35646 5 35649 5 35652 5 35677 5 35685 5 35688 5 35689 5 35691 5 35697 5 35722 5 35725 5 35735 5 35739 5 35746 5 35754 5 35757 5 35761 5 35765 5 35769 5 35775 5 35778 5 35788 5 35795 5 35799 5 35807 5 35812 5 35818 5 35834 5 35848 5 35865 5 35868 5 35870 5 35871 5 35876 5 35878 5 35892 5 35911 5 35923 5 35936 5 35943 5 35949 5 35956 5 35962 5 35964 5 35976 5 35983 5 35988 5 35990 5 35996 5 35997 5 36000 5 36006 5 36018 5 36022 5 36024 5 36025 5 36035 5 36038 5 36050 5 36052 5 36055 5 36060 5 36064 5 36077 5 36080 5 36085 5 36086 5 36089 5 36098 5 36100 5 36105 5 36110 5 36115 5 36116 5 36119 5 36121 5 36124 5 36125 5 36126 5 36128 5 36143 5 36148 5 36153 5 36172 5 36174 5 36177 5 36183 5 36184 5 36190 5 36202 5 36203 5 36205 5 36207 5 36219 5 36220 5 36221 5 36222 5 36254 5 36264 5 36265 5 36267 5 36269 5 36295 5 36298 5 36301 5 36307 5 36311 5 36314 5 36318 5 36335 5 36347 5 36349 5 36356 5 36359 5 36367 5 36385 5 36386 5 36389 5 36391 5 36394 5 36396 5 36399 5 36402 5 36407 5 36415 5 36417 5 36436 5 36443 5 36444 5 36453 5 36459 5 36461 5 36464 5 36465 5 36467 5 36468 5 36475 5 36478 5 36505 5 36507 5 36518 5 36538 5 36539 5 36544 5 36548 5 36549 5 36550 5 36552 5 36559 5 36560 5 36582 5 36589 5 36597 5 36598 5 36600 5 36601 5 36603 5 36608 5 36612 5 36622 5 36631 5 36639 5 36641 5 36661 5 36662 5 36671 5 36675 5 36683 5 36687 5 36688 5 36691 5 36694 5 36697 5 36704 5 36706 5 36731 5 36738 5 36756 5 36758 5 36770 5 36783 5 36796 5 36806 5 36808 5 36815 5 36839 5 36851 5 36853 5 36855 5 36860 5 36869 5 36885 5 36891 5 36902 5 36904 5 36920 5 36923 5 36924 5 36933 5 36936 5 36940 5 36941 5 36947 5 36949 5 36952 5 36957 5 36963 5 36970 5 36981 5 36993 5 37022 5 37025 5 37042 5 37045 5 37048 5 37055 5 37058 5 37060 5 37062 5 37066 5 37077 5 37081 5 37083 5 37093 5 37096 5 37113 5 37121 5 37122 5 37123 5 37127 5 37129 5 37136 5 37145 5 37147 5 37149 5 37150 5 37152 5 37155 5 37158 5 37163 5 37164 5 37166 5 37172 5 37174 5 37175 5 37176 5 37194 5 37201 5 37215 5 37216 5 37220 5 37235 5 37236 5 37240 5 37245 5 37246 5 37257 5 37260 5 37261 5 37263 5 37269 5 37270 5 37276 5 37287 5 37292 5 37297 5 37304 5 37309 5 37316 5 37318 5 37319 5 37326 5 37327 5 37343 5 37346 5 37362 5 37376 5 37386 5 37391 5 37403 5 37414 5 37416 5 37417 5 37418 5 37422 5 37424 5 37429 5 37433 5 37438 5 37455 5 37457 5 37462 5 37464 5 37472 5 37476 5 37486 5 37489 5 37493 5 37495 5 37499 5 37500 5 37503 5 37504 5 37511 5 37514 5 37519 5 37520 5 37522 5 37540 5 37546 5 37548 5 37549 5 37551 5 37559 5 37561 5 37563 5 37564 5 37568 5 37586 5 37597 5 37607 5 37619 5 37621 5 37640 5 37651 5 37664 5 37686 5 37687 5 37689 5 37695 5 37700 5 37710 5 37711 5 37712 5 37717 5 37732 5 37733 5 37737 5 37739 5 37740 5 37741 5 37742 5 37745 5 37749 5 37751 5 37753 5 37754 5 37757 5 37760 5 37766 5 37772 5 37776 5 37788 5 37790 5 37794 5 37796 5 37799 5 37809 5 37813 5 37825 5 37838 5 37841 5 37848 5 37855 5 37870 5 37874 5 37885 5 37888 5 37894 5 37898 5 37909 5 37911 5 37914 5 37920 5 37925 5 37927 5 37928 5 37929 5 37935 5 37939 5 37949 5 37950 5 37951 5 37954 5 37959 5 37960 5 37966 5 37971 5 37973 5 37977 5 37989 5 37998 5 37999 5 38001 5 38013 5 38035 5 38038 5 38042 5 38052 5 38057 5 38059 5 38073 5 38080 5 38091 5 38094 5 38105 5 38110 5 38114 5 38123 5 38130 5 38131 5 38136 5 38145 5 38151 5 38161 5 38167 5 38194 5 38196 5 38199 5 38200 5 38201 5 38204 5 38206 5 38207 5 38208 5 38211 5 38215 5 38226 5 38231 5 38239 5 38260 5 38269 5 38277 5 38278 5 38283 5 38284 5 38288 5 38299 5 38305 5 38314 5 38324 5 38331 5 38333 5 38339 5 38345 5 38353 5 38356 5 38384 5 38389 5 38390 5 38391 5 38399 5 38400 5 38411 5 38412 5 38417 5 38425 5 38437 5 38438 5 38446 5 38448 5 38456 5 38467 5 38478 5 38479 5 38488 5 38495 5 38506 5 38510 5 38514 5 38518 5 38538 5 38549 5 38555 5 38560 5 38569 5 38572 5 38573 5 38591 5 38599 5 38611 5 38631 5 38633 5 38634 5 38642 5 38653 5 38657 5 38662 5 38673 5 38694 5 38695 5 38698 5 38704 5 38707 5 38709 5 38710 5 38711 5 38715 5 38716 5 38731 5 38734 5 38751 5 38754 5 38757 5 38761 5 38762 5 38767 5 38771 5 38774 5 38782 5 38798 5 38803 5 38813 5 38837 5 38845 5 38850 5 38865 5 38872 5 38877 5 38886 5 38896 5 38899 5 38902 5 38904 5 38905 5 38911 5 38913 5 38915 5 38929 5 38931 5 38949 5 38951 5 38959 5 38963 5 38970 5 38988 5 38990 5 38996 5 39007 5 39012 5 39020 5 39027 5 39039 5 39044 5 39046 5 39051 5 39062 5 39064 5 39096 5 39097 5 39101 5 39115 5 39120 5 39156 5 39158 5 39161 5 39170 5 39173 5 39174 5 39177 5 39189 5 39191 5 39196 5 39206 5 39225 5 39228 5 39230 5 39231 5 39241 5 39245 5 39246 5 39256 5 39258 5 39263 5 39273 5 39280 5 39285 5 39290 5 39301 5 39305 5 39308 5 39311 5 39314 5 39316 5 39317 5 39321 5 39324 5 39327 5 39329 5 39344 5 39354 5 39356 5 39366 5 39375 5 39376 5 39386 5 39387 5 39390 5 39404 5 39408 5 39414 5 39419 5 39420 5 39421 5 39429 5 39434 5 39437 5 39439 5 39440 5 39448 5 39450 5 39453 5 39454 5 39462 5 39471 5 39476 5 39482 5 39486 5 39497 5 39501 5 39504 5 39505 5 39512 5 39523 5 39524 5 39531 5 39538 5 39555 5 39557 5 39561 5 39567 5 39570 5 39571 5 39575 5 39576 5 39590 5 39596 5 39604 5 39612 5 39631 5 39643 5 39656 5 39670 5 39676 5 39682 5 39684 5 39686 5 39688 5 39698 5 39700 5 39702 5 39709 5 39710 5 39712 5 39716 5 39718 5 39720 5 39722 5 39743 5 39745 5 39757 5 39770 5 39774 5 39798 5 39802 5 39804 5 39806 5 39812 5 39814 5 39818 5 39821 5 39830 5 39839 5 39841 5 39843 5 39853 5 39855 5 39873 5 39875 5 39876 5 39881 5 39885 5 39887 5 39894 5 39907 5 39912 5 39916 5 39920 5 39931 5 39932 5 39939 5 39940 5 39946 5 39957 5 39958 5 39961 5 39973 5 39974 5 39984 5 39985 5 39989 5 39990 5 39996 5 39997 5 40002 5 40004 5 40008 5 40010 5 40013 5 40017 5 40025 5 40039 5 40040 5 40045 5 40047 5 40053 5 40057 5 40060 5 40062 5 40066 5 40077 5 40078 5 40098 5 40100 5 40101 5 40104 5 40112 5 40115 5 40117 5 40118 5 40123 5 40128 5 40159 5 40164 5 40179 5 40180 5 40190 5 40195 5 40205 5 40207 5 40212 5 40217 5 40233 5 40240 5 40248 5 40252 5 40254 5 40268 5 40269 5 40279 5 40281 5 40282 5 40291 5 40297 5 40298 5 40300 5 40305 5 40307 5 40311 5 40312 5 40315 5 40320 5 40323 5 40326 5 40341 5 40348 5 40352 5 40354 5 40355 5 40359 5 40371 5 40376 5 40379 5 40381 5 40387 5 40398 5 40399 5 40405 5 40406 5 40413 5 40433 5 40436 5 40453 5 40455 5 40464 5 40471 5 40498 5 40505 5 40507 5 40511 5 40521 5 40529 5 40533 5 40538 5 40541 5 40542 5 40544 5 40546 5 40567 5 40570 5 40571 5 40572 5 40580 5 40585 5 40590 5 40606 5 40608 5 40611 5 40616 5 40620 5 40626 5 40628 5 40629 5 40643 5 40656 5 40658 5 40659 5 40661 5 40662 5 40664 5 40671 5 40675 5 40693 5 40699 5 40704 5 40705 5 40706 5 40709 5 40712 5 40713 5 40717 5 40729 5 40745 5 40750 5 40752 5 40760 5 40763 5 40781 5 40802 5 40803 5 40819 5 40837 5 40842 5 40844 5 40846 5 40881 5 40884 5 40889 5 40892 5 40901 5 40913 5 40914 5 40915 5 40928 5 40933 5 40934 5 40936 5 40943 5 40953 5 40963 5 40970 5 40975 5 40986 5 40988 5 40993 5 40994 5 40995 5 40997 5 40999 5 41010 5 41014 5 41020 5 41036 5 41039 5 41055 5 41057 5 41061 5 41069 5 41072 5 41077 5 41084 5 41087 5 41102 5 41108 5 41114 5 41117 5 41125 5 41126 5 41130 5 41135 5 41138 5 41151 5 41163 5 41170 5 41178 5 41184 5 41185 5 41188 5 41190 5 41193 5 41203 5 41209 5 41212 5 41214 5 41225 5 41227 5 41229 5 41233 5 41237 5 41241 5 41247 5 41259 5 41260 5 41261 5 41268 5 41275 5 41279 5 41282 5 41289 5 41291 5 41292 5 41299 5 41305 5 41308 5 41309 5 41311 5 41339 5 41342 5 41344 5 41345 5 41348 5 41358 5 41364 5 41366 5 41368 5 41369 5 41372 5 41379 5 41406 5 41414 5 41420 5 41433 5 41437 5 41465 5 41479 5 41480 5 41481 5 41483 5 41484 5 41489 5 41490 5 41491 5 41503 5 41507 5 41511 5 41516 5 41523 5 41529 5 41530 5 41541 5 41547 5 41551 5 41564 5 41568 5 41572 5 41579 5 41588 5 41599 5 41607 5 41610 5 41621 5 41631 5 41633 5 41634 5 41635 5 41659 5 41661 5 41664 5 41671 5 41677 5 41678 5 41683 5 41692 5 41696 5 41713 5 41719 5 41725 5 41730 5 41738 5 41744 5 41746 5 41748 5 41750 5 41754 5 41768 5 41780 5 41786 5 41798 5 41817 5 41820 5 41824 5 41825 5 41829 5 41839 5 41854 5 41855 5 41859 5 41864 5 41868 5 41869 5 41872 5 41892 5 41896 5 41901 5 41908 5 41915 5 41926 5 41930 5 41936 5 41947 5 41955 5 41969 5 41974 5 41976 5 41978 5 41980 5 41989 5 41991 5 42005 5 42015 5 42025 5 42029 5 42038 5 42043 5 42053 5 42055 5 42056 5 42058 5 42059 5 42071 5 42079 5 42080 5 42082 5 42092 5 42096 5 42108 5 42109 5 42112 5 42121 5 42122 5 42125 5 42127 5 42130 5 42134 5 42135 5 42136 5 42140 5 42149 5 42150 5 42151 5 42153 5 42154 5 42156 5 42158 5 42163 5 42164 5 42166 5 42170 5 42171 5 42175 5 42190 5 42192 5 42199 5 42210 5 42211 5 42218 5 42221 5 42222 5 42236 5 42241 5 42258 5 42261 5 42268 5 42272 5 42281 5 42283 5 42296 5 42301 5 42309 5 42310 5 42321 5 42326 5 42336 5 42344 5 42349 5 42363 5 42367 5 42369 5 42379 5 42385 5 42393 5 42396 5 42401 5 42409 5 42412 5 42413 5 42416 5 42418 5 42433 5 42437 5 42463 5 42464 5 42466 5 42491 5 42493 5 42502 5 42513 5 42514 5 42517 5 42519 5 42524 5 42536 5 42538 5 42545 5 42549 5 42561 5 42571 5 42575 5 42581 5 42585 5 42588 5 42589 5 42592 5 42599 5 42605 5 42606 5 42608 5 42611 5 42613 5 42615 5 42622 5 42626 5 42629 5 42641 5 42643 5 42652 5 42653 5 42655 5 42682 5 42687 5 42689 5 42697 5 42698 5 42713 5 42716 5 42717 5 42730 5 42735 5 42738 5 42740 5 42744 5 42748 5 42750 5 42768 5 42782 5 42796 5 42804 5 42817 5 42819 5 42837 5 42849 5 42851 5 42867 5 42869 5 42870 5 42875 5 42877 5 42884 5 42891 5 42898 5 42908 5 42910 5 42914 5 42916 5 42918 5 42921 5 42935 5 42945 5 42954 5 42962 5 42966 5 42971 5 42980 5 42983 5 42987 5 42988 5 42990 5 43007 5 43009 5 43013 5 43018 5 43019 5 43027 5 43041 5 43050 5 43051 5 43055 5 43065 5 43073 5 43081 5 43083 5 43089 5 43091 5 43099 5 43110 5 43111 5 43112 5 43119 5 43122 5 43140 5 43142 5 43148 5 43151 5 43156 5 43158 5 43165 5 43174 5 43189 5 43215 5 43216 5 43220 5 43221 5 43265 5 43266 5 43270 5 43272 5 43291 5 43305 5 43311 5 43312 5 43313 5 43319 5 43325 5 43334 5 43335 5 43338 5 43340 5 43359 5 43361 5 43365 5 43368 5 43376 5 43380 5 43399 5 43402 5 43407 5 43409 5 43420 5 43423 5 43429 5 43430 5 43431 5 43432 5 43434 5 43438 5 43444 5 43450 5 43451 5 43452 5 43454 5 43456 5 43471 5 43472 5 43473 5 43480 5 43486 5 43506 5 43507 5 43510 5 43520 5 43525 5 43530 5 43531 5 43532 5 43538 5 43546 5 43558 5 43559 5 43578 5 43579 5 43590 5 43609 5 43613 5 43616 5 43621 5 43624 5 43631 5 43651 5 43655 5 43658 5 43671 5 43680 5 43684 5 43685 5 43691 5 43699 5 43709 5 43710 5 43720 5 43725 5 43746 5 43756 5 43759 5 43761 5 43768 5 43773 5 43781 5 43784 5 43786 5 43806 5 43808 5 43815 5 43820 5 43821 5 43825 5 43833 5 43839 5 43843 5 43845 5 43849 5 43854 5 43860 5 43873 5 43874 5 43878 5 43881 5 43886 5 43893 5 43897 5 43900 5 43907 5 43912 5 43920 5 43922 5 43928 5 43936 5 43946 5 43954 5 43958 5 43964 5 43971 5 43985 5 43995 5 44003 5 44007 5 44008 5 44011 5 44018 5 44019 5 44024 5 44030 5 44039 5 44053 5 44058 5 44066 5 44070 5 44071 5 44073 5 44074 5 44082 5 44089 5 44101 5 44107 5 44119 5 44120 5 44129 5 44132 5 44137 5 44142 5 44144 5 44145 5 44146 5 44168 5 44171 5 44176 5 44181 5 44186 5 44191 5 44193 5 44202 5 44231 5 44246 5 44247 5 44253 5 44259 5 44263 5 44264 5 44265 5 44268 5 44269 5 44278 5 44285 5 44290 5 44315 5 44321 5 44346 5 44353 5 44358 5 44363 5 44366 5 44368 5 44380 5 44384 5 44390 5 44392 5 44405 5 44406 5 44412 5 44421 5 44426 5 44434 5 44439 5 44440 5 44444 5 44461 5 44463 5 44470 5 44471 5 44478 5 44491 5 44508 5 44511 5 44516 5 44521 5 44526 5 44529 5 44533 5 44538 5 44547 5 44548 5 44552 5 44565 5 44591 5 44603 5 44604 5 44619 5 44620 5 44624 5 44632 5 44637 5 44644 5 44647 5 44653 5 44656 5 44659 5 44663 5 44670 5 44691 5 44708 5 44713 5 44737 5 44741 5 44754 5 44755 5 44759 5 44764 5 44767 5 44771 5 44775 5 44787 5 44789 5 44791 5 44806 5 44808 5 44829 5 44843 5 44845 5 44851 5 44853 5 44854 5 44867 5 44871 5 44872 5 44880 5 44894 5 44897 5 44899 5 44907 5 44913 5 44932 5 44941 5 44944 5 44948 5 44951 5 44954 5 44958 5 44963 5 44968 5 44974 5 44979 5 44981 5 45000 5 45008 5 45010 5 45018 5 45022 5 45039 5 45044 5 45045 5 45049 5 45051 5 45057 5 45058 5 45060 5 45066 5 45084 5 45087 5 45090 5 45094 5 45097 5 45106 5 45112 5 45115 5 45116 5 45120 5 45122 5 45144 5 45155 5 45156 5 45161 5 45165 5 45166 5 45172 5 45173 5 45174 5 45177 5 45181 5 45197 5 45200 5 45214 5 45227 5 45228 5 45239 5 45244 5 45247 5 45273 5 45278 5 45286 5 45292 5 45303 5 45304 5 45306 5 45314 5 45315 5 45316 5 45318 5 45319 5 45328 5 45329 5 45330 5 45342 5 45353 5 45354 5 45360 5 45361 5 45366 5 45394 5 45397 5 45400 5 45402 5 45407 5 45410 5 45411 5 45412 5 45413 5 45417 5 45422 5 45429 5 45440 5 45441 5 45451 5 45453 5 45471 5 45472 5 45476 5 45487 5 45494 5 45500 5 45505 5 45506 5 45513 5 45518 5 45520 5 45524 5 45532 5 45545 5 45550 5 45553 5 45559 5 45604 5 45605 5 45609 5 45620 5 45626 5 45633 5 45634 5 45642 5 45650 5 45653 5 45657 5 45660 5 45663 5 45674 5 45685 5 45686 5 45692 5 45710 5 45712 5 45723 5 45724 5 45728 5 45733 5 45739 5 45742 5 45749 5 45752 5 45756 5 45757 5 45764 5 45770 5 45773 5 45775 5 45778 5 45779 5 45783 5 45784 5 45787 5 45788 5 45790 5 45794 5 45804 5 45811 5 45822 5 45831 5 45848 5 45849 5 45850 5 45858 5 45859 5 45861 5 45866 5 45867 5 45870 5 45873 5 45891 5 45892 5 45903 5 45906 5 45907 5 45909 5 45912 5 45926 5 45936 5 45940 5 45946 5 45950 5 45958 5 45964 5 45978 5 45980 5 45987 5 45988 5 45990 5 45992 5 45998 5 46001 5 46007 5 46018 5 46019 5 46021 5 46024 5 46026 5 46033 5 46036 5 46042 5 46056 5 46061 5 46064 5 46067 5 46069 5 46092 5 46093 5 46105 5 46111 5 46115 5 46126 5 46131 5 46134 5 46136 5 46138 5 46145 5 46156 5 46162 5 46175 5 46180 5 46183 5 46184 5 46187 5 46189 5 46190 5 46204 5 46222 5 46224 5 46225 5 46228 5 46233 5 46237 5 46244 5 46246 5 46248 5 46258 5 46265 5 46272 5 46274 5 46289 5 46296 5 46301 5 46316 5 46325 5 46330 5 46333 5 46336 5 46337 5 46347 5 46348 5 46353 5 46368 5 46381 5 46385 5 46394 5 46395 5 46401 5 46402 5 46403 5 46405 5 46408 5 46410 5 46415 5 46417 5 46423 5 46428 5 46432 5 46434 5 46439 5 46444 5 46452 5 46463 5 46465 5 46471 5 46481 5 46487 5 46493 5 46499 5 46514 5 46515 5 46516 5 46519 5 46523 5 46533 5 46537 5 46545 5 46555 5 46562 5 46563 5 46575 5 46579 5 46583 5 46584 5 46587 5 46589 5 46594 5 46596 5 46618 5 46621 5 46631 5 46642 5 46646 5 46665 5 46667 5 46668 5 46670 5 46672 5 46673 5 46690 5 46692 5 46693 5 46694 5 46696 5 46707 5 46718 5 46719 5 46721 5 46723 5 46755 5 46765 5 46771 5 46785 5 46788 5 46793 5 46799 5 46811 5 46812 5 46823 5 46834 5 46841 5 46844 5 46845 5 46850 5 46851 5 46859 5 46870 5 46872 5 46873 5 46876 5 46878 5 46890 5 46893 5 46900 5 46903 5 46918 5 46923 5 46929 5 46931 5 46944 5 46957 5 46958 5 46964 5 46969 5 46971 5 46983 5 46984 5 46986 5 46995 5 47003 5 47007 5 47010 5 47013 5 47020 5 47027 5 47032 5 47036 5 47037 5 47040 5 47042 5 47044 5 47048 5 47053 5 47065 5 47072 5 47080 5 47093 5 47095 5 47100 5 47105 5 47106 5 47118 5 47125 5 47133 5 47134 5 47140 5 47149 5 47158 5 47159 5 47174 5 47185 5 47187 5 47188 5 47191 5 47192 5 47193 5 47197 5 47217 5 47220 5 47228 5 47233 5 47240 5 47243 5 47249 5 47261 5 47263 5 47267 5 47269 5 47275 5 47276 5 47280 5 47285 5 47295 5 47300 5 47306 5 47313 5 47325 5 47331 5 47340 5 47341 5 47349 5 47350 5 47361 5 47363 5 47372 5 47374 5 47377 5 47378 5 47379 5 47404 5 47406 5 47417 5 47418 5 47422 5 47437 5 47439 5 47444 5 47445 5 47455 5 47457 5 47482 5 47487 5 47490 5 47492 5 47500 5 47508 5 47524 5 47540 5 47549 5 47550 5 47566 5 47567 5 47569 5 47575 5 47579 5 47581 5 47585 5 47594 5 47609 5 47612 5 47634 5 47636 5 47641 5 47651 5 47653 5 47662 5 47680 5 47681 5 47683 5 47684 5 47692 5 47701 5 47702 5 47710 5 47712 5 47714 5 47715 5 47719 5 47721 5 47730 5 47741 5 47745 5 47748 5 47749 5 47763 5 47775 5 47788 5 47794 5 47797 5 47802 5 47803 5 47817 5 47819 5 47821 5 47825 5 47826 5 47828 5 47839 5 47842 5 47846 5 47849 5 47856 5 47877 5 47897 5 47912 5 47914 5 47923 5 47925 5 47947 5 47950 5 47960 5 47964 5 47972 5 47979 5 47983 5 47986 5 47987 5 47996 5 48004 5 48009 5 48010 5 48011 5 48014 5 48019 5 48030 5 48039 5 48042 5 48047 5 48048 5 48049 5 48054 5 48056 5 48057 5 48060 5 48064 5 48069 5 48071 5 48072 5 48079 5 48081 5 48087 5 48089 5 48090 5 48101 5 48103 5 48110 5 48112 5 48115 5 48120 5 48129 5 48134 5 48136 5 48138 5 48141 5 48150 5 48151 5 48155 5 48157 5 48160 5 48169 5 48179 5 48190 5 48197 5 48200 5 48206 5 48213 5 48245 5 48260 5 48261 5 48264 5 48272 5 48273 5 48284 5 48288 5 48295 5 48317 5 48318 5 48330 5 48335 5 48342 5 48343 5 48344 5 48345 5 48348 5 48361 5 48363 5 48368 5 48369 5 48378 5 48379 5 48383 5 48404 5 48406 5 48412 5 48414 5 48439 5 48447 5 48450 5 48453 5 48454 5 48458 5 48459 5 48464 5 48471 5 48487 5 48507 5 48508 5 48521 5 48535 5 48557 5 48564 5 48565 5 48568 5 48581 5 48583 5 48588 5 48594 5 48615 5 48616 5 48619 5 48622 5 48627 5 48632 5 48639 5 48651 5 48653 5 48654 5 48661 5 48662 5 48666 5 48667 5 48671 5 48677 5 48685 5 48687 5 48688 5 48691 5 48720 5 48721 5 48723 5 48729 5 48730 5 48731 5 48736 5 48738 5 48739 5 48743 5 48757 5 48761 5 48768 5 48771 5 48773 5 48775 5 48777 5 48784 5 48793 5 48796 5 48806 5 48813 5 48831 5 48833 5 48837 5 48844 5 48847 5 48857 5 48860 5 48861 5 48862 5 48864 5 48865 5 48870 5 48887 5 48893 5 48898 5 48900 5 48906 5 48913 5 48917 5 48918 5 48926 5 48929 5 48933 5 48935 5 48938 5 48940 5 48946 5 48951 5 48959 5 48973 5 48974 5 48975 5 48987 5 48990 5 49001 5 49006 5 49009 5 49024 5 49026 5 49031 5 49054 5 49062 5 49079 5 49095 5 49105 5 49106 5 49109 5 49112 5 49127 5 49130 5 49135 5 49137 5 49145 5 49150 5 49165 5 49183 5 49189 5 49196 5 49197 5 49201 5 49206 5 49223 5 49238 5 49241 5 49246 5 49255 5 49256 5 49265 5 49272 5 49278 5 49286 5 49288 5 49298 5 49300 5 49304 5 49319 5 49339 5 49341 5 49345 5 49356 5 49359 5 49364 5 49377 5 49379 5 49393 5 49405 5 49410 5 49411 5 49412 5 49414 5 49418 5 49419 5 49425 5 49430 5 49432 5 49434 5 49444 5 49454 5 49456 5 49461 5 49467 5 49492 5 49495 5 49497 5 49508 5 49510 5 49511 5 49513 5 49515 5 49532 5 49540 5 49543 5 49554 5 49558 5 49562 5 49565 5 49567 5 49573 5 49578 5 49585 5 49587 5 49588 5 49591 5 49623 5 49627 5 49628 5 49635 5 49647 5 49655 5 49681 5 49685 5 49699 5 49702 5 49705 5 49709 5 49713 5 49730 5 49731 5 49732 5 49733 5 49736 5 49737 5 49747 5 49753 5 49756 5 49765 5 49773 5 49780 5 49793 5 49800 5 49808 5 49813 5 49816 5 49819 5 49840 5 49858 5 49859 5 49862 5 49863 5 49876 5 49880 5 49883 5 49885 5 49888 5 49889 5 49894 5 49895 5 49918 5 49922 5 49932 5 49934 5 49938 5 49951 5 49953 5 49956 5 49965 5 49973 5 49976 5 49990 5 49993 5 50005 5 50010 5 50025 5 50027 5 50041 5 50043 5 50049 5 50055 5 50057 5 50063 5 50067 5 50095 5 50103 5 50106 5 50113 5 50116 5 50136 5 50137 5 50138 5 50151 5 50160 5 50165 5 50167 5 50170 5 50174 5 50183 5 50185 5 50189 5 50190 5 50192 5 50197 5 50206 5 50227 5 50228 5 50233 5 50246 5 50251 5 50262 5 50268 5 50272 5 50275 5 50286 5 50301 5 50307 5 50309 5 50320 5 50325 5 50326 5 50333 5 50347 5 50350 5 50360 5 50362 5 50363 5 50374 5 50383 5 50384 5 50386 5 50387 5 50395 5 50406 5 50416 5 50421 5 50422 5 50425 5 50428 5 50437 5 50441 5 50442 5 50444 5 50445 5 50449 5 50461 5 50481 5 50488 5 50497 5 50504 5 50505 5 50511 5 50519 5 50520 5 50523 5 50526 5 50528 5 50532 5 50539 5 50542 5 50543 5 50560 5 50567 5 50577 5 50585 5 50587 5 50591 5 50593 5 50596 5 50598 5 50623 5 50635 5 50636 5 50637 5 50645 5 50655 5 50664 5 50666 5 50670 5 50684 5 50695 5 50702 5 50703 5 50718 5 50727 5 50729 5 50730 5 50734 5 50739 5 50742 5 50746 5 50755 5 50762 5 50765 5 50787 5 50790 5 50792 5 50794 5 50806 5 50817 5 50820 5 50821 5 50824 5 50827 5 50836 5 50847 5 50855 5 50857 5 50867 5 50869 5 50888 5 50893 5 50894 5 50901 5 50906 5 50908 5 50909 5 50927 5 50930 5 50946 5 50947 5 50962 5 50983 5 50986 5 50997 5 51004 5 51007 5 51012 5 51028 5 51037 5 51043 5 51045 5 51049 5 51051 5 51053 5 51054 5 51061 5 51078 5 51084 5 51086 5 51088 5 51090 5 51092 5 51095 5 51115 5 51123 5 51124 5 51133 5 51135 5 51145 5 51152 5 51155 5 51159 5 51166 5 51167 5 51168 5 51177 5 51181 5 51182 5 51190 5 51191 5 51196 5 51201 5 51207 5 51208 5 51209 5 51227 5 51233 5 51237 5 51240 5 51242 5 51244 5 51257 5 51262 5 51267 5 51272 5 51279 5 51280 5 51283 5 51285 5 51305 5 51307 5 51310 5 51311 5 51323 5 51332 5 51333 5 51351 5 51360 5 51361 5 51368 5 51374 5 51375 5 51400 5 51405 5 51413 5 51416 5 51435 5 51444 5 51445 5 51449 5 51451 5 51454 5 51461 5 51481 5 51485 5 51489 5 51500 5 51501 5 51503 5 51513 5 51514 5 51517 5 51519 5 51522 5 51527 5 51543 5 51545 5 51559 5 51580 5 51581 5 51594 5 51606 5 51608 5 51611 5 51617 5 51624 5 51630 5 51632 5 51640 5 51655 5 51658 5 51659 5 51667 5 51672 5 51684 5 51690 5 51698 5 51703 5 51705 5 51709 5 51713 5 51723 5 51735 5 51737 5 51743 5 51750 5 51756 5 51759 5 51770 5 51772 5 51777 5 51779 5 51786 5 51787 5 51794 5 51809 5 51817 5 51818 5 51833 5 51836 5 51837 5 51849 5 51863 5 51870 5 51872 5 51876 5 51880 5 51892 5 51918 5 51926 5 51935 5 51941 5 51946 5 51949 5 51959 5 51966 5 51971 5 51979 5 51982 5 51986 5 51989 5 51990 5 51995 5 51996 5 52013 5 52019 5 52024 5 52028 5 52031 5 52048 5 52050 5 52058 5 52066 5 52068 5 52069 5 52075 5 52076 5 52079 5 52081 5 52085 5 52093 5 52095 5 52106 5 52115 5 52128 5 52130 5 52133 5 52135 5 52150 5 52153 5 52157 5 52160 5 52172 5 52174 5 52179 5 52184 5 52185 5 52195 5 52196 5 52197 5 52200 5 52213 5 52215 5 52225 5 52229 5 52232 5 52233 5 52238 5 52242 5 52245 5 52249 5 52258 5 52261 5 52262 5 52266 5 52267 5 52269 5 52274 5 52277 5 52278 5 52286 5 52293 5 52304 5 52305 5 52311 5 52314 5 52321 5 52337 5 52340 5 52343 5 52344 5 52363 5 52366 5 52369 5 52374 5 52388 5 52392 5 52402 5 52405 5 52415 5 52420 5 52421 5 52431 5 52435 5 52439 5 52442 5 52447 5 52458 5 52462 5 52467 5 52476 5 52485 5 52508 5 52514 5 52515 5 52519 5 52533 5 52540 5 52541 5 52542 5 52545 5 52547 5 52554 5 52556 5 52559 5 52574 5 52578 5 52580 5 52589 5 52590 5 52591 5 52592 5 52602 5 52604 5 52607 5 52610 5 52614 5 52619 5 52620 5 52626 5 52627 5 52638 5 52639 5 52640 5 52646 5 52653 5 52655 5 52686 5 52693 5 52695 5 52697 5 52709 5 52717 5 52720 5 52725 5 52729 5 52734 5 52735 5 52739 5 52742 5 52743 5 52754 5 52758 5 52759 5 52762 5 52763 5 52767 5 52771 5 52772 5 52774 5 52783 5 52786 5 52787 5 52802 5 52813 5 52822 5 52826 5 52853 5 52854 5 52858 5 52867 5 52868 5 52871 5 52872 5 52876 5 52882 5 52889 5 52894 5 52900 5 52908 5 52916 5 52922 5 52923 5 52926 5 52932 5 52934 5 52946 5 52947 5 52950 5 52954 5 52964 5 52966 5 52967 5 52969 5 52975 5 52983 5 52986 5 52991 5 53002 5 53007 5 53009 5 53013 5 53015 5 53017 5 53018 5 53042 5 53046 5 53062 5 53064 5 53074 5 53082 5 53099 5 53103 5 53104 5 53108 5 53110 5 53113 5 53116 5 53125 5 53127 5 53128 5 53132 5 53144 5 53164 5 53171 5 53179 5 53181 5 53183 5 53185 5 53192 5 53193 5 53196 5 53199 5 53215 5 53224 5 53226 5 53229 5 53230 5 53235 5 53237 5 53257 5 53258 5 53263 5 53266 5 53268 5 53272 5 53274 5 53277 5 53282 5 53284 5 53289 5 53293 5 53297 5 53299 5 53317 5 53319 5 53330 5 53333 5 53334 5 53335 5 53338 5 53341 5 53345 5 53359 5 53361 5 53366 5 53368 5 53379 5 53380 5 53387 5 53388 5 53391 5 53404 5 53405 5 53406 5 53407 5 53410 5 53416 5 53420 5 53431 5 53447 5 53458 5 53464 5 53467 5 53470 5 53474 5 53483 5 53485 5 53495 5 53499 5 53507 5 53521 5 53524 5 53530 5 53537 5 53542 5 53552 5 53563 5 53564 5 53573 5 53576 5 53579 5 53580 5 53585 5 53591 5 53599 5 53610 5 53623 5 53625 5 53631 5 53634 5 53638 5 53644 5 53652 5 53654 5 53664 5 53666 5 53668 5 53678 5 53679 5 53685 5 53687 5 53698 5 53719 5 53720 5 53723 5 53728 5 53730 5 53734 5 53737 5 53738 5 53745 5 53773 5 53778 5 53779 5 53793 5 53798 5 53808 5 53809 5 53819 5 53827 5 53830 5 53833 5 53836 5 53843 5 53851 5 53852 5 53854 5 53858 5 53860 5 53866 5 53874 5 53887 5 53889 5 53893 5 53895 5 53905 5 53906 5 53915 5 53916 5 53931 5 53938 5 53942 5 53943 5 53950 5 53956 5 53961 5 53963 5 53968 5 53969 5 53970 5 53971 5 53979 5 53989 5 54002 5 54003 5 54009 5 54011 5 54023 5 54027 5 54029 5 54037 5 54043 5 54047 5 54049 5 54051 5 54056 5 54059 5 54062 5 54067 5 54069 5 54071 5 54072 5 54074 5 54079 5 54080 5 54098 5 54122 5 54124 5 54125 5 54129 5 54131 5 54138 5 54145 5 54148 5 54151 5 54157 5 54158 5 54162 5 54171 5 54177 5 54181 5 54190 5 54195 5 54205 5 54210 5 54211 5 54217 5 54228 5 54233 5 54234 5 54246 5 54250 5 54252 5 54255 5 54259 5 54267 5 54284 5 54286 5 54296 5 54297 5 54300 5 54302 5 54303 5 54306 5 54307 5 54308 5 54313 5 54320 5 54321 5 54323 5 54324 5 54339 5 54344 5 54346 5 54355 5 54360 5 54365 5 54366 5 54368 5 54382 5 54387 5 54388 5 54392 5 54396 5 54405 5 54408 5 54409 5 54413 5 54420 5 54422 5 54425 5 54441 5 54445 5 54446 5 54448 5 54462 5 54466 5 54472 5 54487 5 54499 5 54512 5 54520 5 54540 5 54542 5 54547 5 54551 5 54561 5 54572 5 54577 5 54587 5 54588 5 54589 5 54594 5 54597 5 54599 5 54601 5 54604 5 54610 5 54613 5 54620 5 54631 5 54632 5 54636 5 54645 5 54648 5 54649 5 54658 5 54659 5 54662 5 54664 5 54673 5 54678 5 54679 5 54687 5 54703 5 54705 5 54710 5 54715 5 54717 5 54719 5 54730 5 54732 5 54742 5 54743 5 54745 5 54760 5 54765 5 54768 5 54777 5 54778 5 54783 5 54785 5 54787 5 54792 5 54793 5 54798 5 54799 5 54802 5 54805 5 54807 5 54811 5 54813 5 54814 5 54815 5 54819 5 54822 5 54828 5 54830 5 54832 5 54834 5 54842 5 54844 5 54847 5 54854 5 54859 5 54862 5 54870 5 54878 5 54879 5 54894 5 54901 5 54906 5 54910 5 54914 5 54922 5 54933 5 54935 5 54936 5 54939 5 54953 5 54963 5 54968 5 54973 5 54981 5 54983 5 54987 5 55001 5 55004 5 55009 5 55010 5 55012 5 55015 5 55018 5 55026 5 55031 5 55036 5 55038 5 55041 5 55042 5 55047 5 55054 5 55061 5 55064 5 55065 5 55067 5 55070 5 55088 5 55089 5 55090 5 55093 5 55094 5 55102 5 55108 5 55121 5 55123 5 55124 5 55126 5 55128 5 55129 5 55152 5 55155 5 55157 5 55164 5 55167 5 55173 5 55174 5 55178 5 55179 5 55180 5 55185 5 55186 5 55188 5 55208 5 55215 5 55217 5 55219 5 55222 5 55231 5 55239 5 55243 5 55250 5 55255 5 55257 5 55260 5 55264 5 55266 5 55275 5 55290 5 55303 5 55304 5 55321 5 55323 5 55330 5 55332 5 55342 5 55343 5 55350 5 55359 5 55401 5 55403 5 55410 5 55419 5 55421 5 55429 5 55434 5 55443 5 55444 5 55449 5 55450 5 55451 5 55468 5 55472 5 55474 5 55475 5 55487 5 55491 5 55497 5 55501 5 55511 5 55525 5 55529 5 55539 5 55541 5 55543 5 55544 5 55549 5 55552 5 55564 5 55574 5 55580 5 55581 5 55588 5 55591 5 55594 5 55595 5 55617 5 55622 5 55626 5 55628 5 55636 5 55640 5 55641 5 55643 5 55651 5 55653 5 55667 5 55670 5 55673 5 55685 5 55687 5 55700 5 55702 5 55704 5 55710 5 55712 5 55722 5 55730 5 55735 5 55752 5 55754 5 55755 5 55758 5 55776 5 55782 5 55785 5 55791 5 55793 5 55794 5 55800 5 55806 5 55815 5 55818 5 55825 5 55826 5 55830 5 55832 5 55836 5 55838 5 55844 5 55853 5 55860 5 55863 5 55869 5 55881 5 55886 5 55890 5 55901 5 55917 5 55930 5 55937 5 55943 5 55945 5 55950 5 55953 5 55956 5 55958 5 55961 5 55962 5 55965 5 55969 5 55978 5 55980 5 55984 5 55990 5 55991 5 55993 5 55995 5 56002 5 56003 5 56005 5 56012 5 56017 5 56019 5 56020 5 56021 5 56025 5 56028 5 56030 5 56048 5 56049 5 56051 5 56055 5 56067 5 56068 5 56071 5 56086 5 56091 5 56093 5 56096 5 56098 5 56099 5 56102 5 56106 5 56111 5 56122 5 56131 5 56138 5 56140 5 56142 5 56145 5 56147 5 56154 5 56155 5 56164 5 56181 5 56203 5 56209 5 56214 5 56215 5 56216 5 56258 5 56260 5 56266 5 56270 5 56271 5 56274 5 56276 5 56295 5 56297 5 56303 5 56304 5 56332 5 56334 5 56340 5 56346 5 56350 5 56368 5 56376 5 56377 5 56379 5 56380 5 56381 5 56392 5 56394 5 56395 5 56401 5 56403 5 56404 5 56410 5 56414 5 56418 5 56424 5 56443 5 56445 5 56448 5 56454 5 56456 5 56458 5 56461 5 56467 5 56478 5 56484 5 56485 5 56486 5 56490 5 56491 5 56492 5 56498 5 56502 5 56510 5 56511 5 56519 5 56531 5 56544 5 56551 5 56552 5 56556 5 56557 5 56558 5 56559 5 56567 5 56568 5 56573 5 56574 5 56594 5 56596 5 56600 5 56603 5 56604 5 56608 5 56620 5 56635 5 56644 5 56652 5 56656 5 56662 5 56665 5 56666 5 56669 5 56674 5 56675 5 56681 5 56686 5 56691 5 56696 5 56700 5 56714 5 56720 5 56723 5 56728 5 56731 5 56736 5 56737 5 56739 5 56741 5 56742 5 56743 5 56754 5 56760 5 56765 5 56776 5 56778 5 56780 5 56781 5 56784 5 56785 5 56787 5 56809 5 56813 5 56814 5 56816 5 56842 5 56844 5 56848 5 56850 5 56852 5 56854 5 56859 5 56861 5 56862 5 56865 5 56881 5 56883 5 56886 5 56887 5 56888 5 56894 5 56895 5 56902 5 56903 5 56936 5 56952 5 56953 5 56965 5 56967 5 56968 5 56969 5 56974 5 56983 5 56988 5 56993 5 56995 5 56997 5 57025 5 57028 5 57035 5 57037 5 57043 5 57045 5 57048 5 57051 5 57061 5 57065 5 57066 5 57076 5 57081 5 57088 5 57093 5 57102 5 57107 5 57128 5 57131 5 57140 5 57152 5 57153 5 57155 5 57156 5 57158 5 57162 5 57168 5 57181 5 57200 5 57201 5 57202 5 57215 5 57216 5 57217 5 57225 5 57234 5 57238 5 57243 5 57250 5 57255 5 57260 5 57281 5 57285 5 57292 5 57297 5 57300 5 57307 5 57309 5 57312 5 57318 5 57320 5 57328 5 57331 5 57336 5 57339 5 57360 5 57363 5 57367 5 57370 5 57376 5 57378 5 57381 5 57383 5 57386 5 57394 5 57396 5 57400 5 57404 5 57407 5 57413 5 57421 5 57426 5 57434 5 57438 5 57439 5 57441 5 57449 5 57459 5 57462 5 57467 5 57476 5 57477 5 57478 5 57486 5 57495 5 57504 5 57505 5 57514 5 57519 5 57520 5 57526 5 57539 5 57549 5 57554 5 57555 5 57565 5 57566 5 57567 5 57577 5 57582 5 57585 5 57586 5 57590 5 57603 5 57604 5 57612 5 57616 5 57627 5 57632 5 57636 5 57638 5 57642 5 57647 5 57649 5 57662 5 57665 5 57675 5 57682 5 57690 5 57694 5 57698 5 57708 5 57713 5 57715 5 57720 5 57723 5 57731 5 57735 5 57738 5 57739 5 57747 5 57748 5 57750 5 57752 5 57753 5 57760 5 57763 5 57786 5 57787 5 57793 5 57799 5 57820 5 57834 5 57839 5 57840 5 57842 5 57843 5 57844 5 57846 5 57847 5 57848 5 57855 5 57870 5 57882 5 57886 5 57888 5 57897 5 57905 5 57906 5 57936 5 57943 5 57950 5 57963 5 57965 5 57968 5 57973 5 57975 5 57984 5 57987 5 57994 5 57997 5 58004 5 58006 5 58018 5 58038 5 58040 5 58059 5 58074 5 58083 5 58085 5 58086 5 58096 5 58099 5 58101 5 58104 5 58111 5 58115 5 58117 5 58118 5 58125 5 58128 5 58139 5 58140 5 58149 5 58152 5 58159 5 58160 5 58161 5 58164 5 58166 5 58187 5 58189 5 58190 5 58199 5 58211 5 58220 5 58225 5 58226 5 58234 5 58244 5 58245 5 58248 5 58260 5 58262 5 58265 5 58273 5 58274 5 58278 5 58283 5 58287 5 58291 5 58305 5 58317 5 58321 5 58328 5 58329 5 58332 5 58340 5 58342 5 58343 5 58355 5 58373 5 58376 5 58377 5 58399 5 58406 5 58415 5 58417 5 58432 5 58435 5 58446 5 58447 5 58457 5 58474 5 58478 5 58484 5 58488 5 58504 5 58506 5 58516 5 58517 5 58528 5 58538 5 58539 5 58551 5 58554 5 58560 5 58561 5 58563 5 58578 5 58581 5 58584 5 58590 5 58595 5 58602 5 58605 5 58612 5 58613 5 58617 5 58623 5 58629 5 58631 5 58640 5 58649 5 58652 5 58654 5 58659 5 58663 5 58665 5 58667 5 58670 5 58673 5 58690 5 58693 5 58694 5 58696 5 58697 5 58704 5 58710 5 58713 5 58718 5 58722 5 58723 5 58725 5 58745 5 58746 5 58752 5 58777 5 58779 5 58801 5 58807 5 58808 5 58818 5 58831 5 58840 5 58842 5 58843 5 58845 5 58846 5 58849 5 58855 5 58859 5 58861 5 58869 5 58874 5 58875 5 58881 5 58890 5 58896 5 58897 5 58910 5 58911 5 58913 5 58914 5 58921 5 58934 5 58939 5 58948 5 58952 5 58963 5 58974 5 58975 5 58978 5 58985 5 58992 5 58998 5 59000 5 59011 5 59019 5 59022 5 59025 5 59028 5 59041 5 59042 5 59051 5 59062 5 59064 5 59068 5 59077 5 59079 5 59083 5 59085 5 59090 5 59096 5 59106 5 59110 5 59116 5 59119 5 59124 5 59125 5 59136 5 59149 5 59152 5 59153 5 59154 5 59155 5 59170 5 59195 5 59203 5 59209 5 59213 5 59218 5 59222 5 59226 5 59228 5 59231 5 59233 5 59242 5 59252 5 59261 5 59269 5 59270 5 59273 5 59274 5 59288 5 59289 5 59299 5 59301 5 59302 5 59312 5 59313 5 59315 5 59317 5 59322 5 59324 5 59325 5 59329 5 59332 5 59344 5 59348 5 59349 5 59352 5 59371 5 59381 5 59387 5 59397 5 59401 5 59402 5 59407 5 59408 5 59419 5 59423 5 59433 5 59449 5 59457 5 59458 5 59459 5 59466 5 59470 5 59471 5 59480 5 59481 5 59482 5 59488 5 59496 5 59498 5 59505 5 59507 5 59520 5 59524 5 59532 5 59535 5 59543 5 59545 5 59558 5 59569 5 59592 5 59603 5 59605 5 59606 5 59612 5 59614 5 59621 5 59638 5 59641 5 59642 5 59643 5 59648 5 59654 5 59655 5 59657 5 59662 5 59666 5 59670 5 59674 5 59685 5 59695 5 59700 5 59701 5 59703 5 59710 5 59715 5 59724 5 59729 5 59731 5 59735 5 59740 5 59742 5 59754 5 59756 5 59769 5 59778 5 59782 5 59789 5 59790 5 59791 5 59810 5 59815 5 59830 5 59833 5 59837 5 59848 5 59852 5 59859 5 59869 5 59870 5 59886 5 59887 5 59888 5 59891 5 59902 5 59904 5 59906 5 59915 5 59916 5 59927 5 59928 5 59932 5 59942 5 59947 5 59958 5 59970 5 59980 5 59982 5 59984 5 59987 5 59998 5 60004 5 60006 5 60011 5 60014 5 60015 5 60017 5 60019 5 60020 5 60029 5 60033 5 60058 5 60060 5 60069 5 60070 5 60076 5 60084 5 60090 5 60098 5 60099 5 60106 5 60109 5 60117 5 60122 5 60126 5 60152 5 60178 5 60187 5 60188 5 60192 5 60204 5 60216 5 60217 5 60222 5 60223 5 60226 5 60231 5 60238 5 60242 5 60245 5 60255 5 60266 5 60290 5 60291 5 60292 5 60295 5 60297 5 60301 5 60302 5 60304 5 60308 5 60309 5 60313 5 60314 5 60327 5 60341 5 60352 5 60354 5 60361 5 60373 5 60374 5 60377 5 60382 5 60384 5 60408 5 60411 5 60423 5 60434 5 60440 5 60448 5 60451 5 60456 5 60463 5 60466 5 60475 5 60482 5 60484 5 60486 5 60493 5 60495 5 60496 5 60503 5 60504 5 60506 5 60507 5 60508 5 60514 5 60515 5 60522 5 60537 5 60545 5 60552 5 60559 5 60560 5 60562 5 60564 5 60567 5 60568 5 60569 5 60584 5 60585 5 60592 5 60595 5 60596 5 60601 5 60612 5 60618 5 60620 5 60626 5 60627 5 60634 5 60640 5 60648 5 60650 5 60665 5 60672 5 60674 5 60681 5 60706 5 60712 5 60717 5 60720 5 60723 5 60729 5 60730 5 60732 5 60738 5 60740 5 60752 5 60759 5 60764 5 60771 5 60781 5 60783 5 60786 5 60805 5 60810 5 60811 5 60816 5 60818 5 60819 5 60831 5 60833 5 60834 5 60851 5 60852 5 60879 5 60902 5 60903 5 60904 5 60913 5 60915 5 60921 5 60926 5 60935 5 60937 5 60942 5 60943 5 60948 5 60958 5 60961 5 60966 5 60967 5 60970 5 60973 5 60997 5 61010 5 61011 5 61015 5 61020 5 61025 5 61028 5 61033 5 61059 5 61062 5 61066 5 61070 5 61072 5 61083 5 61086 5 61090 5 61096 5 61097 5 61103 5 61104 5 61119 5 61126 5 61134 5 61135 5 61136 5 61138 5 61143 5 61149 5 61158 5 61170 5 61177 5 61185 5 61187 5 61192 5 61205 5 61213 5 61215 5 61217 5 61222 5 61225 5 61226 5 61231 5 61233 5 61235 5 61248 5 61249 5 61257 5 61258 5 61268 5 61270 5 61275 5 61281 5 61294 5 61301 5 61305 5 61307 5 61308 5 61309 5 61314 5 61315 5 61317 5 61319 5 61326 5 61333 5 61341 5 61344 5 61345 5 61347 5 61350 5 61355 5 61363 5 61375 5 61377 5 61378 5 61385 5 61396 5 61397 5 61414 5 61418 5 61423 5 61424 5 61439 5 61445 5 61456 5 61469 5 61472 5 61476 5 61479 5 61487 5 61495 5 61499 5 61518 5 61523 5 61525 5 61526 5 61530 5 61536 5 61539 5 61542 5 61543 5 61544 5 61545 5 61548 5 61552 5 61561 5 61572 5 61579 5 61583 5 61594 5 61603 5 61618 5 61621 5 61624 5 61634 5 61639 5 61666 5 61694 5 61698 5 61702 5 61715 5 61724 5 61735 5 61745 5 61746 5 61753 5 61764 5 61773 5 61777 5 61781 5 61784 5 61792 5 61800 5 61801 5 61811 5 61815 5 61821 5 61822 5 61831 5 61846 5 61853 5 61857 5 61858 5 61859 5 61864 5 61869 5 61870 5 61871 5 61873 5 61875 5 61877 5 61879 5 61881 5 61883 5 61885 5 61886 5 61899 5 61912 5 61913 5 61932 5 61940 5 61942 5 61945 5 61962 5 61965 5 61969 5 61976 5 61983 5 61991 5 61992 5 61993 5 62001 5 62023 5 62024 5 62027 5 62036 5 62042 5 62056 5 62066 5 62068 5 62071 5 62072 5 62073 5 62083 5 62087 5 62090 5 62094 5 62110 5 62119 5 62123 5 62134 5 62145 5 62149 5 62157 5 62161 5 62174 5 62176 5 62190 5 62193 5 62203 5 62208 5 62219 5 62221 5 62233 5 62253 5 62264 5 62265 5 62282 5 62286 5 62297 5 62298 5 62320 5 62321 5 62327 5 62331 5 62337 5 62338 5 62346 5 62355 5 62356 5 62359 5 62362 5 62370 5 62372 5 62376 5 62381 5 62387 5 62402 5 62407 5 62410 5 62412 5 62415 5 62423 5 62433 5 62441 5 62443 5 62448 5 62454 5 62456 5 62464 5 62466 5 62470 5 62484 5 62490 5 62496 5 62498 5 62520 5 62525 5 62526 5 62539 5 62541 5 62545 5 62546 5 62552 5 62556 5 62565 5 62568 5 62579 5 62584 5 62591 5 62592 5 62598 5 62599 5 62600 5 62601 5 62615 5 62617 5 62618 5 62621 5 62625 5 62630 5 62638 5 62640 5 62649 5 62654 5 62665 5 62676 5 62677 5 62680 5 62681 5 62688 5 62702 5 62707 5 62713 5 62723 5 62724 5 62726 5 62728 5 62729 5 62738 5 62741 5 62742 5 62743 5 62751 5 62753 5 62759 5 62760 5 62762 5 62766 5 62769 5 62770 5 62775 5 62777 5 62784 5 62785 5 62794 5 62804 5 62807 5 62817 5 62826 5 62828 5 62830 5 62832 5 62842 5 62848 5 62856 5 62858 5 62865 5 62866 5 62877 5 62880 5 62886 5 62887 5 62894 5 62904 5 62907 5 62920 5 62925 5 62927 5 62959 5 62970 5 62975 5 62976 5 62980 5 62984 5 62988 5 62990 5 62996 5 63004 5 63013 5 63015 5 63021 5 63029 5 63036 5 63038 5 63047 5 63048 5 63060 5 63076 5 63077 5 63092 5 63095 5 63102 5 63103 5 63105 5 63111 5 63118 5 63120 5 63126 5 63132 5 63152 5 63175 5 63182 5 63186 5 63187 5 63199 5 63204 5 63208 5 63209 5 63214 5 63218 5 63219 5 63222 5 63229 5 63236 5 63246 5 63255 5 63257 5 63268 5 63272 5 63283 5 63286 5 63289 5 63292 5 63293 5 63299 5 63304 5 63312 5 63321 5 63352 5 63355 5 63357 5 63358 5 63377 5 63380 5 63381 5 63385 5 63396 5 63401 5 63410 5 63414 5 63416 5 63417 5 63422 5 63423 5 63432 5 63443 5 63447 5 63451 5 63465 5 63471 5 63487 5 63490 5 63492 5 63502 5 63518 5 63521 5 63522 5 63532 5 63543 5 63546 5 63553 5 63558 5 63564 5 63567 5 63571 5 63575 5 63576 5 63583 5 63593 5 63595 5 63602 5 63604 5 63608 5 63616 5 63624 5 63643 5 63652 5 63655 5 63656 5 63660 5 63664 5 63666 5 63673 5 63677 5 63683 5 63698 5 63704 5 63711 5 63722 5 63727 5 63728 5 63732 5 63737 5 63744 5 63746 5 63747 5 63755 5 63756 5 63761 5 63762 5 63773 5 63793 5 63798 5 63804 5 63807 5 63819 5 63821 5 63822 5 63823 5 63830 5 63837 5 63840 5 63843 5 63844 5 63851 5 63872 5 63876 5 63877 5 63881 5 63887 5 63892 5 63894 5 63896 5 63918 5 63919 5 63921 5 63924 5 63950 5 63965 5 63987 5 63992 5 64001 5 64003 5 64006 5 64010 5 64023 5 64027 5 64041 5 64044 5 64049 5 64051 5 64052 5 64060 5 64073 5 64078 5 64079 5 64080 5 64081 5 64085 5 64101 5 64105 5 64112 5 64124 5 64126 5 64131 5 64133 5 64135 5 64141 5 64162 5 64163 5 64172 5 64190 5 64204 5 64215 5 64217 5 64219 5 64221 5 64228 5 64229 5 64233 5 64236 5 64239 5 64240 5 64251 5 64253 5 64276 5 64278 5 64282 5 64287 5 64291 5 64299 5 64300 5 64307 5 64311 5 64318 5 64326 5 64332 5 64345 5 64346 5 64358 5 64362 5 64367 5 64371 5 64378 5 64394 5 64398 5 64400 5 64403 5 64407 5 64409 5 64412 5 64419 5 64425 5 64429 5 64443 5 64447 5 64448 5 64450 5 64451 5 64463 5 64468 5 64469 5 64471 5 64479 5 64481 5 64483 5 64484 5 64486 5 64488 5 64489 5 64493 5 64506 5 64510 5 64515 5 64524 5 64531 5 64532 5 64535 5 64537 5 64545 5 64547 5 64550 5 64551 5 64566 5 64577 5 64582 5 64590 5 64601 5 64604 5 64605 5 64623 5 64627 5 64628 5 64630 5 64632 5 64649 5 64662 5 64665 5 64666 5 64668 5 64677 5 64681 5 64688 5 64691 5 64693 5 64702 5 64706 5 64712 5 64724 5 64727 5 64734 5 64736 5 64737 5 64741 5 64742 5 64744 5 64747 5 64751 5 64752 5 64755 5 64758 5 64765 5 64779 5 64782 5 64812 5 64815 5 64820 5 64826 5 64829 5 64830 5 64833 5 64838 5 64841 5 64844 5 64864 5 64869 5 64874 5 64880 5 64891 5 64898 5 64913 5 64914 5 64915 5 64934 5 64937 5 64945 5 64946 5 64959 5 64982 5 64984 5 64985 5 64991 5 65001 5 65005 5 65009 5 65014 5 65023 5 65025 5 65031 5 65035 5 65037 5 65051 5 65066 5 65071 5 65072 5 65074 5 65076 5 65077 5 65078 5 65089 5 65091 5 65092 5 65103 5 65113 5 65114 5 65116 5 65120 5 65123 5 65131 5 65138 5 65146 5 65149 5 65158 5 65163 5 65166 5 65177 5 65202 5 65207 5 65214 5 65218 5 65239 5 65263 5 65271 5 65275 5 65282 5 65286 5 65316 5 65323 5 65324 5 65329 5 65330 5 65333 5 65334 5 65335 5 65343 5 65344 5 65348 5 65351 5 65357 5 65368 5 65372 5 65383 5 65387 5 65391 5 65393 5 65405 5 65407 5 65418 5 65425 5 65432 5 65434 5 65475 5 65480 5 65483 5 65485 5 65490 5 65495 5 65504 5 65508 5 65511 5 65522 5 65524 5 65527 5 65535 5 65539 5 65545 5 65549 5 65572 5 65575 5 65578 5 65579 5 65585 5 65589 5 65592 5 65606 5 65607 5 65619 5 65629 5 65631 5 65638 5 65640 5 65643 5 65660 5 65666 5 65668 5 65673 5 65674 5 65675 5 65687 5 65696 5 65700 5 65702 5 65706 5 65710 5 65717 5 65718 5 65729 5 65731 5 65732 5 65736 5 65739 5 65748 5 65757 5 65763 5 65779 5 65781 5 65805 5 65809 5 65812 5 65815 5 65820 5 65823 5 65825 5 65832 5 65834 5 65836 5 65863 5 65868 5 65869 5 65872 5 65881 5 65890 5 65891 5 65893 5 65899 5 65918 5 65923 5 65925 5 65927 5 65938 5 65942 5 65952 5 65966 5 65971 5 65976 5 65987 5 66000 5 66010 5 66017 5 66025 5 66032 5 66039 5 66045 5 66049 5 66070 5 66071 5 66086 5 66103 5 66105 5 66109 5 66110 5 66117 5 66133 5 66134 5 66137 5 66146 5 66154 5 66165 5 66177 5 66180 5 66183 5 66189 5 66190 5 66191 5 66203 5 66204 5 66212 5 66219 5 66221 5 66228 5 66239 5 66240 5 66259 5 66265 5 66270 5 66271 5 66272 5 66275 5 66279 5 66281 5 66295 5 66311 5 66314 5 66315 5 66316 5 66323 5 66336 5 66342 5 66355 5 66357 5 66364 5 66386 5 66400 5 66404 5 66409 5 66410 5 66415 5 66421 5 66430 5 66448 5 66464 5 66480 5 66482 5 66484 5 66491 5 66492 5 66497 5 66502 5 66517 5 66551 5 66552 5 66577 5 66580 5 66583 5 66592 5 66596 5 66615 5 66618 5 66619 5 66620 5 66624 5 66631 5 66638 5 66641 5 66642 5 66647 5 66665 5 66670 5 66674 5 66675 5 66676 5 66677 5 66681 5 66683 5 66687 5 66689 5 66697 5 66702 5 66703 5 66705 5 66716 5 66719 5 66722 5 66723 5 66724 5 66728 5 66734 5 66752 5 66755 5 66767 5 66768 5 66776 5 66780 5 66789 5 66796 5 66808 5 66809 5 66810 5 66817 5 66818 5 66822 5 66832 5 66840 5 66841 5 66842 5 66847 5 66860 5 66864 5 66867 5 66876 5 66884 5 66889 5 66890 5 66897 5 66901 5 66908 5 66912 5 66914 5 66916 5 66922 5 66930 5 66941 5 66942 5 66943 5 66948 5 66953 5 66968 5 66977 5 66983 5 66998 5 67004 5 67005 5 67017 5 67021 5 67024 5 67035 5 67040 5 67043 5 67044 5 67045 5 67047 5 67053 5 67055 5 67057 5 67060 5 67073 5 67079 5 67089 5 67111 5 67114 5 67124 5 67126 5 67127 5 67129 5 67140 5 67141 5 67143 5 67154 5 67155 5 67156 5 67160 5 67165 5 67176 5 67181 5 67188 5 67210 5 67216 5 67217 5 67219 5 67229 5 67233 5 67237 5 67238 5 67250 5 67259 5 67272 5 67281 5 67283 5 67294 5 67299 5 67300 5 67301 5 67302 5 67321 5 67323 5 67326 5 67328 5 67335 5 67349 5 67355 5 67365 5 67370 5 67379 5 67386 5 67387 5 67388 5 67399 5 67405 5 67407 5 67411 5 67415 5 67429 5 67433 5 67434 5 67439 5 67441 5 67443 5 67444 5 67446 5 67453 5 67454 5 67464 5 67477 5 67479 5 67487 5 67493 5 67510 5 67518 5 67523 5 67542 5 67544 5 67553 5 67565 5 67581 5 67587 5 67594 5 67595 5 67596 5 67598 5 67599 5 67601 5 67605 5 67609 5 67623 5 67630 5 67631 5 67639 5 67640 5 67641 5 67655 5 67661 5 67665 5 67669 5 67674 5 67675 5 67676 5 67688 5 67690 5 67693 5 67706 5 67713 5 67725 5 67726 5 67735 5 67738 5 67744 5 67755 5 67767 5 67772 5 67773 5 67780 5 67785 5 67787 5 67789 5 67790 5 67792 5 67809 5 67810 5 67812 5 67827 5 67833 5 67843 5 67854 5 67859 5 67860 5 67866 5 67868 5 67872 5 67874 5 67875 5 67886 5 67894 5 67901 5 67902 5 67903 5 67912 5 67925 5 67933 5 67936 5 67941 5 67947 5 67956 5 67967 5 67974 5 67975 5 67985 5 67989 5 67995 5 67996 5 67998 5 68000 5 68003 5 68022 5 68025 5 68033 5 68044 5 68049 5 68052 5 68054 5 68060 5 68062 5 68070 5 68074 5 68081 5 68085 5 68089 5 68094 5 68097 5 68100 5 68123 5 68131 5 68135 5 68136 5 68140 5 68149 5 68154 5 68159 5 68161 5 68162 5 68169 5 68178 5 68192 5 68199 5 68200 5 68202 5 68204 5 68214 5 68219 5 68221 5 68235 5 68243 5 68254 5 68265 5 68277 5 68278 5 68308 5 68311 5 68320 5 68325 5 68329 5 68330 5 68342 5 68355 5 68365 5 68372 5 68386 5 68394 5 68399 5 68402 5 68409 5 68412 5 68421 5 68422 5 68424 5 68429 5 68430 5 68432 5 68439 5 68440 5 68443 5 68448 5 68451 5 68457 5 68462 5 68465 5 68466 5 68467 5 68475 5 68480 5 68488 5 68493 5 68498 5 68499 5 68502 5 68522 5 68525 5 68539 5 68548 5 68550 5 68552 5 68553 5 68557 5 68569 5 68570 5 68574 5 68575 5 68583 5 68591 5 68596 5 68600 5 68605 5 68606 5 68620 5 68621 5 68623 5 68637 5 68640 5 68643 5 68663 5 68671 5 68674 5 68675 5 68712 5 68715 5 68721 5 68722 5 68730 5 68731 5 68732 5 68733 5 68736 5 68738 5 68739 5 68741 5 68742 5 68744 5 68749 5 68750 5 68753 5 68756 5 68757 5 68758 5 68763 5 68765 5 68769 5 68770 5 68771 5 68772 5 68783 5 68785 5 68790 5 68792 5 68794 5 68796 5 68799 5 68811 5 68815 5 68830 5 68838 5 68840 5 68846 5 68863 5 68867 5 68877 5 68878 5 68889 5 68891 5 68912 5 68916 5 68924 5 68927 5 68936 5 68938 5 68939 5 68943 5 68949 5 68966 5 68970 5 68973 5 68979 5 68981 5 68986 5 68994 5 68999 5 69001 5 69004 5 69007 5 69011 5 69012 5 69024 5 69035 5 69044 5 69047 5 69053 5 69055 5 69066 5 69074 5 69086 5 69094 5 69097 5 69110 5 69112 5 69124 5 69126 5 69128 5 69145 5 69160 5 69169 5 69178 5 69179 5 69183 5 69185 5 69191 5 69199 5 69203 5 69204 5 69208 5 69219 5 69231 5 69232 5 69239 5 69247 5 69248 5 69250 5 69261 5 69263 5 69268 5 69269 5 69276 5 69277 5 69280 5 69288 5 69292 5 69303 5 69313 5 69315 5 69320 5 69321 5 69329 5 69345 5 69346 5 69354 5 69355 5 69358 5 69365 5 69366 5 69372 5 69375 5 69376 5 69402 5 69408 5 69420 5 69421 5 69425 5 69433 5 69437 5 69439 5 69459 5 69462 5 69463 5 69475 5 69480 5 69493 5 69495 5 69501 5 69504 5 69514 5 69520 5 69529 5 69533 5 69553 5 69555 5 69563 5 69566 5 69568 5 69570 5 69571 5 69573 5 69574 5 69579 5 69583 5 69584 5 69585 5 69586 5 69587 5 69597 5 69602 5 69617 5 69619 5 69623 5 69629 5 69632 5 69633 5 69656 5 69663 5 69664 5 69686 5 69687 5 69688 5 69690 5 69691 5 69692 5 69697 5 69701 5 69707 5 69708 5 69709 5 69717 5 69720 5 69723 5 69726 5 69735 5 69737 5 69751 5 69752 5 69755 5 69760 5 69776 5 69778 5 69780 5 69785 5 69795 5 69802 5 69816 5 69826 5 69838 5 69852 5 69854 5 69870 5 69873 5 69878 5 69881 5 69882 5 69883 5 69887 5 69892 5 69895 5 69905 5 69913 5 69916 5 69921 5 69923 5 69930 5 69945 5 69956 5 69958 5 69971 5 69978 5 69981 5 69989 5 70010 5 70015 5 70024 5 70044 5 70045 5 70047 5 70049 5 70050 5 70055 5 70067 5 70069 5 70070 5 70074 5 70082 5 70085 5 70086 5 70087 5 70088 5 70095 5 70102 5 70108 5 70113 5 70118 5 70133 5 70146 5 70160 5 70161 5 70172 5 70173 5 70175 5 70179 5 70205 5 70211 5 70216 5 70225 5 70226 5 70232 5 70235 5 70236 5 70239 5 70268 5 70275 5 70282 5 70293 5 70295 5 70308 5 70311 5 70314 5 70317 5 70318 5 70327 5 70333 5 70334 5 70350 5 70360 5 70370 5 70374 5 70376 5 70378 5 70379 5 70389 5 70392 5 70405 5 70420 5 70454 5 70461 5 70471 5 70475 5 70476 5 70490 5 70498 5 70501 5 70502 5 70507 5 70509 5 70514 5 70521 5 70524 5 70532 5 70533 5 70540 5 70542 5 70551 5 70555 5 70570 5 70571 5 70578 5 70604 5 70617 5 70627 5 70635 5 70640 5 70641 5 70654 5 70660 5 70665 5 70668 5 70670 5 70672 5 70674 5 70679 5 70685 5 70692 5 70703 5 70708 5 70711 5 70727 5 70732 5 70734 5 70740 5 70749 5 70758 5 70762 5 70766 5 70767 5 70774 5 70776 5 70777 5 70793 5 70794 5 70811 5 70817 5 70828 5 70831 5 70844 5 70849 5 70854 5 70857 5 70858 5 70859 5 70862 5 70868 5 70886 5 70891 5 70897 5 70907 5 70911 5 70926 5 70940 5 70948 5 70955 5 70964 5 70965 5 70970 5 70972 5 70975 5 70980 5 70989 5 71002 5 71006 5 71007 5 71017 5 71020 5 71021 5 71023 5 71024 5 71030 5 71033 5 71043 5 71048 5 71053 5 71060 5 71065 5 71066 5 71068 5 71083 5 71093 5 71097 5 71099 5 71103 5 71108 5 71116 5 71120 5 71123 5 71124 5 71125 5 71134 5 71135 5 71136 5 71149 5 71152 5 71155 5 71160 5 71167 5 71176 5 71183 5 71186 5 71220 5 71222 5 71223 5 71224 5 71231 5 71235 5 71249 5 71250 5 71252 5 71261 5 71268 5 71272 5 71280 5 71282 5 71284 5 71289 5 71299 5 71305 5 71307 5 71308 5 71313 5 71317 5 71318 5 71325 5 71333 5 71337 5 71340 5 71343 5 71344 5 71350 5 71351 5 71353 5 71356 5 71360 5 71367 5 71368 5 71371 5 71373 5 71374 5 71375 5 71378 5 71400 5 71404 5 71408 5 71411 5 71413 5 71417 5 71419 5 71430 5 71432 5 71433 5 71435 5 71440 5 71454 5 71472 5 71485 5 71498 5 71501 5 71503 5 71504 5 71506 5 71515 5 71519 5 71525 5 71529 5 71540 5 71542 5 71543 5 71546 5 71557 5 71561 5 71562 5 71564 5 71574 5 71576 5 71579 5 71583 5 71584 5 71585 5 71589 5 71601 5 71602 5 71613 5 71619 5 71625 5 71633 5 71643 5 71665 5 71670 5 71673 5 71674 5 71675 5 71677 5 71686 5 71691 5 71699 5 71703 5 71717 5 71731 5 71734 5 71736 5 71740 5 71745 5 71749 5 71761 5 71773 5 71783 5 71784 5 71789 5 71796 5 71798 5 71815 5 71819 5 71834 5 71839 5 71843 5 71857 5 71859 5 71861 5 71868 5 71875 5 71880 5 71881 5 71884 5 71888 5 71892 5 71895 5 71896 5 71901 5 71909 5 71919 5 71920 5 71927 5 71939 5 71945 5 71960 5 71962 5 71975 5 71977 5 71978 5 71989 5 71993 5 71999 5 72004 5 72009 5 72014 5 72029 5 72036 5 72038 5 72039 5 72040 5 72051 5 72056 5 72068 5 72070 5 72087 5 72088 5 72105 5 72109 5 72111 5 72118 5 72121 5 72124 5 72125 5 72126 5 72128 5 72131 5 72137 5 72139 5 72140 5 72142 5 72151 5 72168 5 72170 5 72176 5 72188 5 72195 5 72197 5 72198 5 72220 5 72226 5 72243 5 72258 5 72271 5 72276 5 72283 5 72288 5 72299 5 72306 5 72307 5 72315 5 72321 5 72328 5 72343 5 72357 5 72359 5 72368 5 72374 5 72387 5 72396 5 72399 5 72412 5 72414 5 72419 5 72423 5 72424 5 72432 5 72434 5 72440 5 72445 5 72457 5 72467 5 72469 5 72471 5 72477 5 72479 5 72482 5 72494 5 72496 5 72497 5 72498 5 72501 5 72513 5 72514 5 72525 5 72534 5 72536 5 72544 5 72546 5 72559 5 72561 5 72568 5 72569 5 72572 5 72580 5 72597 5 72600 5 72606 5 72608 5 72612 5 72614 5 72615 5 72618 5 72626 5 72640 5 72641 5 72642 5 72651 5 72654 5 72659 5 72673 5 72674 5 72682 5 72686 5 72687 5 72688 5 72689 5 72693 5 72702 5 72722 5 72724 5 72734 5 72736 5 72750 5 72753 5 72757 5 72758 5 72761 5 72767 5 72769 5 72781 5 72787 5 72789 5 72790 5 72793 5 72794 5 72798 5 72803 5 72809 5 72824 5 72837 5 72851 5 72852 5 72855 5 72859 5 72862 5 72869 5 72871 5 72881 5 72888 5 72896 5 72901 5 72902 5 72911 5 72914 5 72917 5 72921 5 72925 5 72929 5 72931 5 72933 5 72937 5 72938 5 72955 5 72963 5 72964 5 72965 5 72970 5 72976 5 72982 5 72992 5 72994 5 73004 5 73007 5 73017 5 73023 5 73024 5 73034 5 73043 5 73062 5 73069 5 73071 5 73080 5 73084 5 73086 5 73101 5 73106 5 73116 5 73117 5 73123 5 73124 5 73139 5 73140 5 73143 5 73145 5 73146 5 73159 5 73167 5 73168 5 73173 5 73183 5 73184 5 73193 5 73194 5 73196 5 73208 5 73214 5 73215 5 73221 5 73224 5 73229 5 73243 5 73249 5 73269 5 73270 5 73288 5 73299 5 73301 5 73308 5 73312 5 73316 5 73319 5 73329 5 73331 5 73334 5 73345 5 73347 5 73359 5 73360 5 73363 5 73372 5 73375 5 73376 5 73379 5 73380 5 73388 5 73408 5 73414 5 73416 5 73419 5 73420 5 73421 5 73425 5 73437 5 73439 5 73440 5 73442 5 73448 5 73450 5 73451 5 73457 5 73462 5 73464 5 73470 5 73481 5 73483 5 73484 5 73486 5 73487 5 73489 5 73491 5 73496 5 73511 5 73520 5 73528 5 73533 5 73535 5 73537 5 73548 5 73550 5 73555 5 73556 5 73563 5 73567 5 73581 5 73584 5 73587 5 73602 5 73607 5 73610 5 73623 5 73627 5 73639 5 73643 5 73649 5 73651 5 73658 5 73659 5 73671 5 73678 5 73702 5 73710 5 73715 5 73724 5 73743 5 73744 5 73747 5 73751 5 73757 5 73759 5 73763 5 73764 5 73773 5 73775 5 73781 5 73796 5 73802 5 73807 5 73811 5 73814 5 73840 5 73846 5 73847 5 73851 5 73860 5 73864 5 73865 5 73866 5 73871 5 73873 5 73876 5 73877 5 73886 5 73899 5 73914 5 73922 5 73928 5 73930 5 73931 5 73945 5 73949 5 73953 5 73963 5 73977 5 73978 5 73984 5 74001 5 74004 5 74006 5 74007 5 74017 5 74022 5 74028 5 74030 5 74031 5 74033 5 74034 5 74036 5 74046 5 74053 5 74066 5 74072 5 74080 5 74104 5 74114 5 74126 5 74129 5 74130 5 74131 5 74138 5 74151 5 74170 5 74178 5 74181 5 74199 5 74203 5 74211 5 74223 5 74231 5 74234 5 74237 5 74239 5 74243 5 74245 5 74247 5 74251 5 74256 5 74259 5 74262 5 74265 5 74274 5 74278 5 74284 5 74285 5 74297 5 74302 5 74303 5 74314 5 74317 5 74318 5 74325 5 74328 5 74331 5 74335 5 74341 5 74345 5 74352 5 74357 5 74371 5 74382 5 74386 5 74394 5 74399 5 74419 5 74421 5 74422 5 74425 5 74427 5 74428 5 74435 5 74442 5 74446 5 74447 5 74449 5 74457 5 74460 5 74464 5 74467 5 74472 5 74474 5 74479 5 74481 5 74483 5 74484 5 74485 5 74500 5 74505 5 74509 5 74512 5 74516 5 74517 5 74519 5 74526 5 74530 5 74534 5 74540 5 74555 5 74562 5 74576 5 74578 5 74579 5 74582 5 74594 5 74609 5 74612 5 74615 5 74616 5 74629 5 74638 5 74650 5 74651 5 74654 5 74663 5 74674 5 74687 5 74698 5 74707 5 74719 5 74724 5 74725 5 74726 5 74729 5 74737 5 74742 5 74743 5 74748 5 74760 5 74770 5 74784 5 74785 5 74786 5 74789 5 74795 5 74796 5 74797 5 74806 5 74828 5 74839 5 74840 5 74847 5 74851 5 74855 5 74860 5 74872 5 74888 5 74901 5 74902 5 74906 5 74907 5 74917 5 74921 5 74923 5 74924 5 74927 5 74931 5 74945 5 74947 5 74954 5 74961 5 74963 5 74974 5 74976 5 74979 5 75005 5 75015 5 75019 5 75030 5 75033 5 75037 5 75045 5 75051 5 75061 5 75072 5 75076 5 75080 5 75085 5 75096 5 75099 5 75111 5 75127 5 75132 5 75134 5 75142 5 75143 5 75147 5 75154 5 75169 5 75172 5 75187 5 75191 5 75192 5 75207 5 75211 5 75213 5 75217 5 75244 5 75249 5 75252 5 75256 5 75259 5 75262 5 75267 5 75279 5 75290 5 75291 5 75299 5 75301 5 75303 5 75307 5 75312 5 75324 5 75333 5 75339 5 75343 5 75345 5 75360 5 75363 5 75366 5 75368 5 75372 5 75373 5 75375 5 75417 5 75418 5 75426 5 75428 5 75431 5 75436 5 75437 5 75442 5 75444 5 75448 5 75451 5 75454 5 75456 5 75458 5 75461 5 75462 5 75466 5 75473 5 75474 5 75480 5 75483 5 75490 5 75491 5 75494 5 75502 5 75504 5 75509 5 75510 5 75515 5 75527 5 75528 5 75535 5 75540 5 75542 5 75547 5 75552 5 75553 5 75565 5 75570 5 75573 5 75574 5 75582 5 75588 5 75592 5 75597 5 75598 5 75609 5 75610 5 75616 5 75617 5 75626 5 75632 5 75638 5 75666 5 75673 5 75683 5 75686 5 75687 5 75691 5 75708 5 75710 5 75713 5 75720 5 75722 5 75724 5 75727 5 75733 5 75743 5 75747 5 75749 5 75770 5 75777 5 75781 5 75782 5 75790 5 75791 5 75802 5 75807 5 75813 5 75816 5 75817 5 75818 5 75822 5 75826 5 75829 5 75833 5 75842 5 75844 5 75846 5 75874 5 75877 5 75878 5 75883 5 75891 5 75894 5 75899 5 75902 5 75906 5 75912 5 75915 5 75925 5 75926 5 75940 5 75941 5 75943 5 75945 5 75950 5 75955 5 75960 5 75973 5 75977 5 75979 5 75981 5 75982 5 76003 5 76007 5 76018 5 76033 5 76038 5 76039 5 76048 5 76050 5 76069 5 76078 5 76091 5 76094 5 76096 5 76106 5 76112 5 76113 5 76132 5 76136 5 76139 5 76147 5 76155 5 76158 5 76160 5 76162 5 76169 5 76185 5 76197 5 76198 5 76207 5 76212 5 76226 5 76230 5 76235 5 76239 5 76242 5 76245 5 76252 5 76256 5 76262 5 76263 5 76264 5 76284 5 76295 5 76297 5 76299 5 76317 5 76320 5 76325 5 76328 5 76338 5 76342 5 76348 5 76363 5 76376 5 76380 5 76384 5 76395 5 76397 5 76398 5 76400 5 76401 5 76415 5 76416 5 76419 5 76425 5 76433 5 76435 5 76470 5 76495 5 76499 5 76503 5 76521 5 76536 5 76537 5 76538 5 76540 5 76563 5 76565 5 76573 5 76580 5 76581 5 76594 5 76604 5 76614 5 76623 5 76631 5 76635 5 76637 5 76645 5 76646 5 76649 5 76654 5 76661 5 76669 5 76690 5 76692 5 76702 5 76713 5 76718 5 76722 5 76725 5 76749 5 76752 5 76755 5 76766 5 76769 5 76777 5 76779 5 76783 5 76799 5 76808 5 76817 5 76825 5 76837 5 76840 5 76844 5 76849 5 76857 5 76866 5 76867 5 76874 5 76878 5 76882 5 76889 5 76892 5 76896 5 76907 5 76911 5 76920 5 76922 5 76932 5 76938 5 76939 5 76947 5 76952 5 76957 5 76963 5 76964 5 76966 5 76980 5 76985 5 76988 5 76991 5 76993 5 77012 5 77013 5 77057 5 77058 5 77066 5 77088 5 77102 5 77108 5 77116 5 77120 5 77121 5 77125 5 77129 5 77135 5 77138 5 77147 5 77153 5 77156 5 77165 5 77172 5 77175 5 77176 5 77178 5 77184 5 77185 5 77187 5 77196 5 77199 5 77205 5 77212 5 77213 5 77234 5 77245 5 77246 5 77268 5 77269 5 77280 5 77287 5 77292 5 77296 5 77298 5 77303 5 77310 5 77312 5 77322 5 77323 5 77328 5 77330 5 77334 5 77337 5 77339 5 77351 5 77353 5 77368 5 77370 5 77380 5 77393 5 77400 5 77402 5 77415 5 77417 5 77421 5 77437 5 77439 5 77440 5 77441 5 77443 5 77447 5 77455 5 77456 5 77470 5 77476 5 77482 5 77483 5 77484 5 77486 5 77490 5 77494 5 77506 5 77520 5 77530 5 77537 5 77539 5 77544 5 77547 5 77556 5 77563 5 77566 5 77587 5 77594 5 77597 5 77607 5 77616 5 77620 5 77626 5 77627 5 77637 5 77665 5 77689 5 77692 5 77693 5 77704 5 77706 5 77711 5 77732 5 77734 5 77735 5 77737 5 77756 5 77757 5 77758 5 77760 5 77778 5 77781 5 77790 5 77795 5 77800 5 77807 5 77811 5 77814 5 77817 5 77818 5 77821 5 77823 5 77825 5 77828 5 77832 5 77851 5 77856 5 77859 5 77865 5 77867 5 77868 5 77870 5 77876 5 77877 5 77882 5 77886 5 77897 5 77915 5 77916 5 77921 5 77922 5 77933 5 77934 5 77949 5 77950 5 77953 5 77979 5 77980 5 77982 5 77991 5 77994 5 77998 5 78000 5 78004 5 78011 5 78016 5 78020 5 78025 5 78028 5 78030 5 78031 5 78047 5 78052 5 78054 5 78061 5 78069 5 78075 5 78082 5 78104 5 78106 5 78109 5 78113 5 78115 5 78116 5 78122 5 78125 5 78133 5 78135 5 78136 5 78137 5 78149 5 78152 5 78153 5 78155 5 78172 5 78190 5 78203 5 78204 5 78206 5 78213 5 78214 5 78218 5 78222 5 78227 5 78229 5 78242 5 78245 5 78251 5 78255 5 78258 5 78272 5 78276 5 78280 5 78281 5 78293 5 78306 5 78307 5 78311 5 78312 5 78314 5 78325 5 78326 5 78331 5 78333 5 78338 5 78340 5 78348 5 78352 5 78358 5 78368 5 78372 5 78376 5 78379 5 78382 5 78387 5 78395 5 78396 5 78402 5 78403 5 78411 5 78413 5 78414 5 78415 5 78419 5 78427 5 78432 5 78434 5 78439 5 78440 5 78443 5 78448 5 78449 5 78451 5 78459 5 78461 5 78465 5 78467 5 78470 5 78475 5 78484 5 78487 5 78492 5 78499 5 78500 5 78503 5 78515 5 78517 5 78519 5 78520 5 78522 5 78524 5 78528 5 78532 5 78536 5 78542 5 78549 5 78553 5 78554 5 78561 5 78568 5 78569 5 78573 5 78579 5 78582 5 78589 5 78591 5 78592 5 78596 5 78610 5 78611 5 78612 5 78614 5 78617 5 78620 5 78625 5 78626 5 78628 5 78632 5 78636 5 78641 5 78642 5 78648 5 78653 5 78673 5 78674 5 78677 5 78679 5 78681 5 78683 5 78686 5 78704 5 78707 5 78708 5 78712 5 78719 5 78734 5 78735 5 78740 5 78743 5 78745 5 78747 5 78751 5 78765 5 78773 5 78777 5 78788 5 78789 5 78790 5 78791 5 78801 5 78805 5 78806 5 78808 5 78809 5 78813 5 78827 5 78829 5 78831 5 78836 5 78838 5 78843 5 78849 5 78857 5 78861 5 78863 5 78864 5 78872 5 78874 5 78881 5 78885 5 78888 5 78899 5 78904 5 78911 5 78915 5 78919 5 78930 5 78938 5 78941 5 78944 5 78949 5 78950 5 78960 5 78962 5 78963 5 78969 5 78972 5 78974 5 78980 5 78982 5 78985 5 78987 5 78990 5 78992 5 79016 5 79022 5 79023 5 79026 5 79031 5 79039 5 79041 5 79042 5 79054 5 79055 5 79059 5 79060 5 79067 5 79068 5 79083 5 79090 5 79097 5 79109 5 79110 5 79115 5 79117 5 79123 5 79159 5 79163 5 79165 5 79179 5 79180 5 79182 5 79184 5 79186 5 79193 5 79194 5 79198 5 79204 5 79206 5 79208 5 79216 5 79221 5 79230 5 79242 5 79255 5 79259 5 79262 5 79268 5 79269 5 79270 5 79274 5 79276 5 79281 5 79291 5 79295 5 79315 5 79317 5 79320 5 79324 5 79330 5 79334 5 79346 5 79347 5 79357 5 79362 5 79366 5 79368 5 79369 5 79370 5 79374 5 79380 5 79388 5 79389 5 79390 5 79394 5 79404 5 79405 5 79411 5 79423 5 79424 5 79426 5 79427 5 79429 5 79430 5 79437 5 79445 5 79451 5 79452 5 79455 5 79462 5 79463 5 79466 5 79494 5 79499 5 79503 5 79508 5 79510 5 79513 5 79514 5 79515 5 79516 5 79523 5 79528 5 79529 5 79530 5 79538 5 79539 5 79541 5 79542 5 79547 5 79554 5 79564 5 79568 5 79573 5 79574 5 79575 5 79581 5 79582 5 79589 5 79594 5 79595 5 79596 5 79597 5 79602 5 79606 5 79615 5 79616 5 79620 5 79621 5 79622 5 79624 5 79626 5 79627 5 79636 5 79642 5 79646 5 79652 5 79659 5 79660 5 79665 5 79666 5 79682 5 79691 5 79702 5 79703 5 79706 5 79707 5 79711 5 79712 5 79719 5 79726 5 79728 5 79737 5 79745 5 79750 5 79751 5 79754 5 79765 5 79769 5 79770 5 79776 5 79780 5 79784 5 79790 5 79791 5 79801 5 79807 5 79809 5 79813 5 79818 5 79820 5 79822 5 79829 5 79831 5 79832 5 79833 5 79834 5 79840 5 79847 5 79850 5 79852 5 79853 5 79856 5 79868 5 79875 5 79876 5 79877 5 79879 5 79884 5 79893 5 79895 5 79896 5 79898 5 79902 5 79929 5 79943 5 79958 5 79959 5 79961 5 79963 5 79966 5 79971 5 79976 5 79991 5 80001 5 80029 5 80030 5 80031 5 80034 5 80037 5 80047 5 80071 5 80074 5 80080 5 80081 5 80085 5 80094 5 80095 5 80098 5 80102 5 80105 5 80110 5 80119 5 80121 5 80122 5 80123 5 80124 5 80130 5 80132 5 80148 5 80156 5 80157 5 80174 5 80175 5 80180 5 80190 5 80202 5 80208 5 80212 5 80225 5 80226 5 80233 5 80234 5 80250 5 80263 5 80264 5 80268 5 80270 5 80277 5 80286 5 80291 5 80295 5 80311 5 80312 5 80318 5 80325 5 80340 5 80352 5 80358 5 80382 5 80388 5 80402 5 80410 5 80411 5 80417 5 80418 5 80419 5 80425 5 80429 5 80434 5 80436 5 80437 5 80440 5 80443 5 80457 5 80461 5 80470 5 80486 5 80497 5 80507 5 80509 5 80515 5 80527 5 80528 5 80529 5 80543 5 80545 5 80556 5 80557 5 80562 5 80576 5 80584 5 80602 5 80608 5 80610 5 80612 5 80616 5 80633 5 80647 5 80658 5 80664 5 80665 5 80672 5 80677 5 80683 5 80694 5 80711 5 80722 5 80732 5 80733 5 80737 5 80739 5 80743 5 80745 5 80755 5 80764 5 80772 5 80774 5 80775 5 80779 5 80782 5 80786 5 80789 5 80794 5 80812 5 80813 5 80814 5 80817 5 80844 5 80848 5 80857 5 80861 5 80863 5 80876 5 80882 5 80891 5 80892 5 80898 5 80904 5 80908 5 80909 5 80911 5 80914 5 80915 5 80918 5 80924 5 80927 5 80932 5 80937 5 80941 5 80960 5 80963 5 80965 5 80974 5 80981 5 80983 5 80996 5 80999 5 81002 5 81004 5 81006 5 81008 5 81011 5 81016 5 81018 5 81019 5 81021 5 81023 5 81025 5 81026 5 81029 5 81034 5 81036 5 81041 5 81043 5 81069 5 81076 5 81077 5 81088 5 81091 5 81093 5 81097 5 81100 5 81101 5 81108 5 81118 5 81124 5 81135 5 81140 5 81144 5 81156 5 81172 5 81180 5 81204 5 81213 5 81214 5 81215 5 81222 5 81235 5 81238 5 81239 5 81240 5 81248 5 81254 5 81255 5 81258 5 81259 5 81263 5 81264 5 81268 5 81275 5 81279 5 81284 5 81291 5 81294 5 81301 5 81307 5 81312 5 81316 5 81324 5 81329 5 81330 5 81333 5 81338 5 81339 5 81355 5 81356 5 81364 5 81373 5 81377 5 81391 5 81392 5 81393 5 81399 5 81411 5 81414 5 81421 5 81425 5 81430 5 81433 5 81434 5 81441 5 81452 5 81465 5 81472 5 81476 5 81477 5 81478 5 81488 5 81496 5 81507 5 81526 5 81546 5 81548 5 81550 5 81552 5 81559 5 81561 5 81563 5 81568 5 81574 5 81583 5 81584 5 81585 5 81593 5 81598 5 81600 5 81606 5 81608 5 81617 5 81629 5 81632 5 81638 5 81641 5 81644 5 81657 5 81670 5 81678 5 81698 5 81704 5 81705 5 81707 5 81708 5 81710 5 81719 5 81721 5 81726 5 81754 5 81757 5 81758 5 81773 5 81778 5 81789 5 81793 5 81799 5 81801 5 81802 5 81807 5 81812 5 81814 5 81816 5 81822 5 81823 5 81826 5 81829 5 81836 5 81839 5 81851 5 81854 5 81855 5 81867 5 81883 5 81892 5 81893 5 81903 5 81907 5 81908 5 81910 5 81916 5 81917 5 81918 5 81922 5 81924 5 81934 5 81942 5 81943 5 81949 5 81952 5 81956 5 81957 5 81964 5 81979 5 81983 5 81986 5 81988 5 82001 5 82003 5 82004 5 82023 5 82027 5 82030 5 82036 5 82039 5 82040 5 82047 5 82049 5 82056 5 82062 5 82064 5 82067 5 82068 5 82074 5 82075 5 82080 5 82087 5 82092 5 82094 5 82101 5 82102 5 82104 5 82109 5 82116 5 82117 5 82124 5 82129 5 82133 5 82134 5 82136 5 82153 5 82156 5 82161 5 82169 5 82179 5 82189 5 82194 5 82203 5 82210 5 82225 5 82232 5 82233 5 82234 5 82238 5 82244 5 82248 5 82270 5 82272 5 82274 5 82275 5 82278 5 82285 5 82290 5 82291 5 82297 5 82309 5 82314 5 82317 5 82325 5 82328 5 82329 5 82330 5 82333 5 82338 5 82339 5 82341 5 82343 5 82359 5 82375 5 82376 5 82377 5 82384 5 82386 5 82387 5 82392 5 82399 5 82405 5 82419 5 82423 5 82427 5 82453 5 82455 5 82458 5 82462 5 82463 5 82467 5 82470 5 82475 5 82481 5 82490 5 82491 5 82508 5 82516 5 82524 5 82534 5 82538 5 82540 5 82541 5 82545 5 82550 5 82556 5 82557 5 82564 5 82565 5 82567 5 82569 5 82578 5 82586 5 82591 5 82605 5 82608 5 82612 5 82629 5 82630 5 82636 5 82638 5 82641 5 82664 5 82666 5 82672 5 82680 5 82691 5 82705 5 82714 5 82715 5 82716 5 82717 5 82722 5 82730 5 82738 5 82739 5 82743 5 82747 5 82749 5 82772 5 82780 5 82794 5 82799 5 82801 5 82802 5 82803 5 82807 5 82817 5 82823 5 82826 5 82829 5 82831 5 82843 5 82845 5 82848 5 82853 5 82861 5 82870 5 82874 5 82890 5 82904 5 82905 5 82906 5 82907 5 82914 5 82922 5 82940 5 82944 5 82946 5 82954 5 82956 5 82963 5 82966 5 82970 5 82974 5 82979 5 82982 5 82987 5 82991 5 83000 5 83018 5 83019 5 83026 5 83039 5 83040 5 83045 5 83053 5 83055 5 83061 5 83070 5 83073 5 83081 5 83092 5 83106 5 83108 5 83111 5 83120 5 83124 5 83128 5 83143 5 83144 5 83146 5 83150 5 83152 5 83166 5 83168 5 83176 5 83182 5 83183 5 83186 5 83195 5 83200 5 83204 5 83208 5 83211 5 83213 5 83218 5 83243 5 83251 5 83252 5 83255 5 83256 5 83257 5 83258 5 83260 5 83261 5 83264 5 83287 5 83289 5 83295 5 83303 5 83308 5 83309 5 83314 5 83333 5 83335 5 83342 5 83348 5 83351 5 83354 5 83368 5 83377 5 83380 5 83384 5 83395 5 83397 5 83409 5 83420 5 83421 5 83430 5 83431 5 83434 5 83440 5 83443 5 83444 5 83450 5 83456 5 83458 5 83475 5 83481 5 83483 5 83492 5 83496 5 83501 5 83520 5 83521 5 83523 5 83526 5 83537 5 83542 5 83547 5 83548 5 83549 5 83555 5 83569 5 83571 5 83575 5 83578 5 83584 5 83592 5 83599 5 83602 5 83604 5 83610 5 83617 5 83623 5 83626 5 83635 5 83639 5 83640 5 83645 5 83655 5 83663 5 83673 5 83686 5 83696 5 83712 5 83714 5 83716 5 83721 5 83724 5 83730 5 83755 5 83759 5 83760 5 83784 5 83794 5 83795 5 83800 5 83802 5 83808 5 83815 5 83819 5 83820 5 83822 5 83834 5 83836 5 83837 5 83838 5 83845 5 83846 5 83847 5 83850 5 83879 5 83890 5 83892 5 83893 5 83908 5 83920 5 83931 5 83938 5 83941 5 83951 5 83961 5 83962 5 83964 5 83966 5 83971 5 83978 5 83984 5 83993 5 83998 5 84000 5 84003 5 84005 5 84012 5 84025 5 84030 5 84044 5 84047 5 84053 5 84059 5 84063 5 84068 5 84087 5 84088 5 84090 5 84093 5 84098 5 84101 5 84103 5 84106 5 84125 5 84128 5 84129 5 84139 5 84141 5 84154 5 84177 5 84181 5 84183 5 84199 5 84202 5 84208 5 84243 5 84246 5 84258 5 84266 5 84285 5 84297 5 84306 5 84308 5 84317 5 84323 5 84328 5 84332 5 84334 5 84346 5 84351 5 84357 5 84360 5 84361 5 84362 5 84364 5 84366 5 84373 5 84375 5 84392 5 84394 5 84395 5 84397 5 84400 5 84402 5 84407 5 84408 5 84410 5 84412 5 84417 5 84423 5 84435 5 84436 5 84440 5 84447 5 84451 5 84470 5 84475 5 84483 5 84484 5 84486 5 84488 5 84491 5 84497 5 84500 5 84510 5 84517 5 84518 5 84522 5 84529 5 84530 5 84532 5 84541 5 84549 5 84550 5 84557 5 84567 5 84576 5 84580 5 84590 5 84592 5 84593 5 84594 5 84608 5 84612 5 84618 5 84623 5 84627 5 84629 5 84637 5 84640 5 84645 5 84659 5 84666 5 84672 5 84678 5 84687 5 84688 5 84690 5 84694 5 84697 5 84704 5 84715 5 84726 5 84729 5 84730 5 84734 5 84741 5 84743 5 84746 5 84754 5 84763 5 84764 5 84769 5 84771 5 84775 5 84776 5 84784 5 84790 5 84798 5 84804 5 84807 5 84821 5 84826 5 84827 5 84834 5 84838 5 84842 5 84849 5 84866 5 84876 5 84880 5 84896 5 84899 5 84903 5 84910 5 84911 5 84913 5 84917 5 84918 5 84931 5 84941 5 84945 5 84950 5 84953 5 84956 5 84963 5 84978 5 84981 5 84984 5 84986 5 84994 5 85002 5 85003 5 85004 5 85008 5 85012 5 85017 5 85018 5 85030 5 85033 5 85034 5 85040 5 85045 5 85048 5 85057 5 85058 5 85061 5 85064 5 85069 5 85081 5 85082 5 85083 5 85092 5 85097 5 85104 5 85109 5 85120 5 85121 5 85124 5 85130 5 85131 5 85141 5 85159 5 85168 5 85170 5 85171 5 85178 5 85186 5 85187 5 85192 5 85194 5 85210 5 85212 5 85215 5 85216 5 85220 5 85227 5 85232 5 85234 5 85240 5 85247 5 85249 5 85251 5 85261 5 85262 5 85264 5 85266 5 85271 5 85272 5 85277 5 85279 5 85287 5 85303 5 85311 5 85316 5 85321 5 85322 5 85323 5 85324 5 85326 5 85330 5 85333 5 85343 5 85344 5 85351 5 85357 5 85359 5 85363 5 85365 5 85367 5 85368 5 85371 5 85375 5 85380 5 85386 5 85406 5 85409 5 85423 5 85428 5 85432 5 85442 5 85448 5 85456 5 85480 5 85484 5 85485 5 85486 5 85490 5 85494 5 85500 5 85503 5 85506 5 85521 5 85523 5 85527 5 85528 5 85531 5 85533 5 85539 5 85546 5 85548 5 85550 5 85555 5 85558 5 85559 5 85561 5 85569 5 85573 5 85598 5 85603 5 85605 5 85606 5 85625 5 85632 5 85638 5 85639 5 85641 5 85646 5 85654 5 85657 5 85672 5 85677 5 85682 5 85691 5 85698 5 85711 5 85713 5 85719 5 85724 5 85730 5 85733 5 85734 5 85739 5 85740 5 85757 5 85763 5 85766 5 85778 5 85779 5 85787 5 85790 5 85792 5 85795 5 85820 5 85825 5 85832 5 85838 5 85846 5 85853 5 85867 5 85871 5 85876 5 85881 5 85887 5 85890 5 85899 5 85903 5 85905 5 85910 5 85920 5 85922 5 85926 5 85936 5 85943 5 85948 5 85952 5 85953 5 85963 5 85971 5 85972 5 85982 5 86001 5 86002 5 86005 5 86015 5 86018 5 86021 5 86022 5 86026 5 86041 5 86059 5 86060 5 86073 5 86080 5 86101 5 86103 5 86106 5 86112 5 86115 5 86128 5 86130 5 86143 5 86146 5 86147 5 86148 5 86157 5 86159 5 86164 5 86167 5 86169 5 86172 5 86183 5 86185 5 86193 5 86194 5 86204 5 86210 5 86222 5 86227 5 86232 5 86237 5 86239 5 86242 5 86245 5 86250 5 86251 5 86256 5 86260 5 86262 5 86263 5 86272 5 86292 5 86293 5 86295 5 86308 5 86311 5 86314 5 86318 5 86328 5 86332 5 86339 5 86340 5 86341 5 86343 5 86345 5 86346 5 86347 5 86348 5 86351 5 86357 5 86358 5 86359 5 86371 5 86384 5 86387 5 86389 5 86393 5 86408 5 86413 5 86414 5 86430 5 86433 5 86441 5 86442 5 86444 5 86450 5 86460 5 86462 5 86465 5 86479 5 86487 5 86489 5 86494 5 86495 5 86501 5 86512 5 86514 5 86517 5 86520 5 86523 5 86524 5 86526 5 86527 5 86533 5 86534 5 86542 5 86547 5 86551 5 86553 5 86562 5 86564 5 86595 5 86603 5 86612 5 86616 5 86622 5 86631 5 86633 5 86640 5 86642 5 86657 5 86661 5 86662 5 86667 5 86668 5 86675 5 86684 5 86690 5 86696 5 86702 5 86706 5 86708 5 86714 5 86715 5 86718 5 86728 5 86730 5 86734 5 86741 5 86752 5 86757 5 86760 5 86781 5 86783 5 86785 5 86794 5 86802 5 86805 5 86813 5 86815 5 86822 5 86834 5 86835 5 86840 5 86850 5 86859 5 86866 5 86869 5 86870 5 86872 5 86873 5 86878 5 86879 5 86886 5 86890 5 86899 5 86905 5 86913 5 86926 5 86932 5 86941 5 86942 5 86950 5 86952 5 86961 5 86970 5 86981 5 86983 5 86989 5 86991 5 86996 5 87003 5 87007 5 87009 5 87010 5 87011 5 87012 5 87015 5 87018 5 87032 5 87045 5 87046 5 87048 5 87059 5 87061 5 87071 5 87074 5 87088 5 87094 5 87098 5 87103 5 87105 5 87110 5 87111 5 87113 5 87121 5 87124 5 87127 5 87132 5 87137 5 87138 5 87140 5 87155 5 87162 5 87164 5 87171 5 87172 5 87179 5 87187 5 87195 5 87200 5 87205 5 87222 5 87227 5 87236 5 87238 5 87241 5 87250 5 87262 5 87263 5 87264 5 87265 5 87275 5 87280 5 87283 5 87286 5 87289 5 87293 5 87298 5 87299 5 87311 5 87312 5 87324 5 87332 5 87333 5 87342 5 87348 5 87351 5 87360 5 87365 5 87375 5 87376 5 87385 5 87390 5 87400 5 87402 5 87403 5 87404 5 87408 5 87414 5 87415 5 87419 5 87424 5 87426 5 87427 5 87435 5 87441 5 87450 5 87461 5 87463 5 87466 5 87468 5 87469 5 87470 5 87481 5 87488 5 87489 5 87491 5 87501 5 87510 5 87522 5 87527 5 87533 5 87537 5 87545 5 87554 5 87560 5 87569 5 87578 5 87581 5 87589 5 87595 5 87598 5 87604 5 87610 5 87621 5 87622 5 87632 5 87636 5 87643 5 87652 5 87657 5 87666 5 87697 5 87700 5 87703 5 87704 5 87710 5 87711 5 87714 5 87720 5 87731 5 87732 5 87739 5 87748 5 87756 5 87763 5 87767 5 87771 5 87773 5 87782 5 87783 5 87793 5 87794 5 87808 5 87815 5 87824 5 87848 5 87857 5 87870 5 87871 5 87873 5 87882 5 87886 5 87887 5 87897 5 87901 5 87909 5 87910 5 87924 5 87925 5 87935 5 87947 5 87948 5 87951 5 87970 5 87973 5 87976 5 87980 5 87981 5 87988 5 88003 5 88004 5 88005 5 88006 5 88010 5 88013 5 88016 5 88018 5 88020 5 88021 5 88022 5 88034 5 88045 5 88046 5 88048 5 88064 5 88070 5 88072 5 88077 5 88087 5 88089 5 88094 5 88096 5 88100 5 88101 5 88104 5 88106 5 88107 5 88112 5 88117 5 88119 5 88125 5 88142 5 88143 5 88145 5 88149 5 88150 5 88153 5 88155 5 88167 5 88169 5 88175 5 88177 5 88190 5 88200 5 88203 5 88208 5 88211 5 88217 5 88222 5 88236 5 88254 5 88255 5 88264 5 88278 5 88283 5 88285 5 88290 5 88295 5 88298 5 88309 5 88312 5 88320 5 88322 5 88331 5 88336 5 88342 5 88343 5 88367 5 88368 5 88370 5 88372 5 88378 5 88382 5 88393 5 88401 5 88406 5 88411 5 88422 5 88423 5 88430 5 88431 5 88434 5 88444 5 88445 5 88455 5 88460 5 88464 5 88468 5 88479 5 88484 5 88494 5 88498 5 88499 5 88519 5 88522 5 88523 5 88525 5 88537 5 88538 5 88559 5 88571 5 88576 5 88578 5 88583 5 88587 5 88591 5 88592 5 88601 5 88608 5 88616 5 88621 5 88624 5 88640 5 88646 5 88647 5 88653 5 88654 5 88657 5 88661 5 88666 5 88676 5 88678 5 88680 5 88681 5 88682 5 88691 5 88692 5 88696 5 88698 5 88708 5 88716 5 88717 5 88719 5 88720 5 88724 5 88727 5 88736 5 88740 5 88743 5 88744 5 88749 5 88751 5 88761 5 88787 5 88789 5 88799 5 88800 5 88804 5 88805 5 88806 5 88809 5 88825 5 88831 5 88839 5 88846 5 88870 5 88871 5 88872 5 88880 5 88884 5 88894 5 88899 5 88906 5 88914 5 88917 5 88919 5 88920 5 88923 5 88929 5 88936 5 88939 5 88943 5 88946 5 88951 5 88953 5 88961 5 88974 5 88987 5 88990 5 89000 5 89004 5 89030 5 89033 5 89037 5 89041 5 89048 5 89054 5 89055 5 89058 5 89068 5 89071 5 89077 5 89087 5 89099 5 89103 5 89104 5 89110 5 89118 5 89122 5 89127 5 89130 5 89136 5 89138 5 89142 5 89158 5 89161 5 89169 5 89174 5 89176 5 89177 5 89181 5 89183 5 89206 5 89212 5 89216 5 89219 5 89224 5 89239 5 89244 5 89245 5 89246 5 89248 5 89254 5 89256 5 89257 5 89260 5 89261 5 89263 5 89272 5 89273 5 89278 5 89279 5 89284 5 89296 5 89315 5 89323 5 89324 5 89327 5 89328 5 89329 5 89346 5 89358 5 89361 5 89362 5 89368 5 89369 5 89392 5 89394 5 89398 5 89405 5 89416 5 89421 5 89425 5 89426 5 89431 5 89450 5 89462 5 89464 5 89472 5 89475 5 89484 5 89487 5 89493 5 89500 5 89507 5 89520 5 89526 5 89529 5 89533 5 89539 5 89552 5 89555 5 89560 5 89562 5 89563 5 89568 5 89572 5 89577 5 89583 5 89592 5 89599 5 89601 5 89619 5 89621 5 89627 5 89628 5 89629 5 89636 5 89656 5 89657 5 89660 5 89662 5 89671 5 89674 5 89677 5 89678 5 89685 5 89686 5 89690 5 89702 5 89709 5 89726 5 89733 5 89739 5 89743 5 89770 5 89776 5 89783 5 89786 5 89798 5 89800 5 89805 5 89807 5 89812 5 89823 5 89826 5 89828 5 89834 5 89838 5 89840 5 89842 5 89843 5 89844 5 89846 5 89851 5 89857 5 89859 5 89864 5 89865 5 89879 5 89881 5 89886 5 89890 5 89893 5 89897 5 89903 5 89907 5 89908 5 89910 5 89911 5 89917 5 89941 5 89962 5 89963 5 89968 5 89974 5 89987 5 90005 5 90008 5 90010 5 90017 5 90019 5 90021 5 90023 5 90025 5 90027 5 90038 5 90042 5 90054 5 90057 5 90068 5 90079 5 90085 5 90098 5 90104 5 90110 5 90127 5 90128 5 90130 5 90134 5 90138 5 90143 5 90165 5 90169 5 90177 5 90183 5 90195 5 90196 5 90197 5 90241 5 90248 5 90254 5 90268 5 90269 5 90270 5 90271 5 90273 5 90275 5 90279 5 90292 5 90295 5 90300 5 90301 5 90304 5 90310 5 90313 5 90319 5 90335 5 90347 5 90354 5 90355 5 90363 5 90366 5 90373 5 90378 5 90388 5 90408 5 90414 5 90417 5 90418 5 90419 5 90420 5 90425 5 90426 5 90428 5 90440 5 90444 5 90445 5 90446 5 90450 5 90467 5 90471 5 90481 5 90484 5 90501 5 90516 5 90521 5 90525 5 90527 5 90534 5 90537 5 90538 5 90546 5 90556 5 90560 5 90564 5 90567 5 90568 5 90579 5 90581 5 90584 5 90601 5 90602 5 90606 5 90609 5 90611 5 90620 5 90629 5 90630 5 90645 5 90647 5 90652 5 90656 5 90673 5 90678 5 90681 5 90682 5 90684 5 90685 5 90687 5 90697 5 90704 5 90705 5 90717 5 90724 5 90731 5 90733 5 90735 5 90736 5 90745 5 90751 5 90752 5 90761 5 90764 5 90770 5 90778 5 90781 5 90788 5 90799 5 90810 5 90812 5 90814 5 90816 5 90819 5 90826 5 90827 5 90828 5 90830 5 90832 5 90835 5 90839 5 90843 5 90849 5 90850 5 90853 5 90862 5 90868 5 90869 5 90883 5 90884 5 90886 5 90894 5 90905 5 90910 5 90913 5 90919 5 90930 5 90932 5 90933 5 90938 5 90943 5 90945 5 90946 5 90961 5 90963 5 90966 5 90975 5 90978 5 90980 5 90981 5 90982 5 90984 5 90985 5 90993 5 90994 5 90996 5 91005 5 91008 5 91010 5 91014 5 91022 5 91039 5 91049 5 91053 5 91057 5 91062 5 91064 5 91068 5 91078 5 91079 5 91082 5 91091 5 91093 5 91104 5 91105 5 91115 5 91129 5 91130 5 91146 5 91147 5 91150 5 91152 5 91156 5 91161 5 91167 5 91169 5 91181 5 91182 5 91192 5 91211 5 91212 5 91216 5 91220 5 91226 5 91235 5 91237 5 91244 5 91246 5 91248 5 91249 5 91251 5 91252 5 91256 5 91259 5 91280 5 91286 5 91289 5 91300 5 91309 5 91311 5 91312 5 91317 5 91322 5 91344 5 91354 5 91363 5 91365 5 91388 5 91392 5 91396 5 91406 5 91407 5 91416 5 91419 5 91423 5 91426 5 91427 5 91430 5 91434 5 91439 5 91448 5 91459 5 91463 5 91470 5 91473 5 91482 5 91484 5 91485 5 91489 5 91500 5 91509 5 91517 5 91522 5 91526 5 91529 5 91532 5 91533 5 91541 5 91542 5 91547 5 91548 5 91562 5 91576 5 91577 5 91583 5 91594 5 91599 5 91602 5 91626 5 91636 5 91643 5 91650 5 91662 5 91665 5 91680 5 91688 5 91705 5 91730 5 91752 5 91769 5 91788 5 91790 5 91808 5 91815 5 91817 5 91821 5 91823 5 91826 5 91830 5 91831 5 91854 5 91864 5 91870 5 91875 5 91883 5 91886 5 91891 5 91904 5 91907 5 91910 5 91921 5 91928 5 91931 5 91936 5 91940 5 91952 5 91966 5 91968 5 91970 5 91976 5 91980 5 91991 5 91992 5 91994 5 91999 5 92004 5 92010 5 92013 5 92016 5 92020 5 92030 5 92034 5 92038 5 92039 5 92047 5 92061 5 92062 5 92083 5 92084 5 92096 5 92097 5 92102 5 92112 5 92115 5 92117 5 92121 5 92122 5 92123 5 92141 5 92144 5 92147 5 92151 5 92152 5 92157 5 92165 5 92168 5 92169 5 92170 5 92185 5 92192 5 92200 5 92201 5 92212 5 92214 5 92218 5 92220 5 92224 5 92230 5 92262 5 92264 5 92271 5 92276 5 92285 5 92286 5 92291 5 92302 5 92316 5 92341 5 92358 5 92360 5 92362 5 92363 5 92379 5 92381 5 92384 5 92405 5 92407 5 92408 5 92421 5 92428 5 92429 5 92431 5 92432 5 92434 5 92435 5 92441 5 92443 5 92446 5 92451 5 92454 5 92458 5 92460 5 92461 5 92465 5 92467 5 92468 5 92485 5 92489 5 92495 5 92506 5 92509 5 92510 5 92513 5 92524 5 92536 5 92538 5 92541 5 92544 5 92552 5 92562 5 92564 5 92567 5 92583 5 92585 5 92589 5 92595 5 92600 5 92607 5 92609 5 92618 5 92620 5 92621 5 92624 5 92629 5 92637 5 92640 5 92645 5 92646 5 92647 5 92652 5 92668 5 92677 5 92680 5 92682 5 92686 5 92692 5 92696 5 92704 5 92705 5 92708 5 92726 5 92731 5 92741 5 92742 5 92745 5 92749 5 92768 5 92772 5 92793 5 92797 5 92812 5 92816 5 92817 5 92822 5 92828 5 92831 5 92844 5 92849 5 92858 5 92859 5 92863 5 92872 5 92880 5 92883 5 92885 5 92888 5 92897 5 92899 5 92913 5 92922 5 92925 5 92933 5 92939 5 92943 5 92947 5 92948 5 92953 5 92956 5 92959 5 92961 5 92966 5 92973 5 92976 5 92980 5 92985 5 92989 5 92997 5 93001 5 93012 5 93016 5 93018 5 93019 5 93030 5 93033 5 93039 5 93041 5 93042 5 93054 5 93060 5 93062 5 93065 5 93079 5 93091 5 93095 5 93100 5 93111 5 93121 5 93122 5 93124 5 93128 5 93145 5 93150 5 93151 5 93152 5 93170 5 93178 5 93179 5 93187 5 93188 5 93197 5 93200 5 93219 5 93224 5 93228 5 93235 5 93236 5 93237 5 93239 5 93240 5 93241 5 93262 5 93269 5 93273 5 93287 5 93291 5 93292 5 93297 5 93298 5 93304 5 93317 5 93333 5 93336 5 93340 5 93349 5 93358 5 93359 5 93363 5 93369 5 93371 5 93372 5 93373 5 93380 5 93389 5 93390 5 93393 5 93400 5 93401 5 93416 5 93423 5 93433 5 93434 5 93445 5 93446 5 93448 5 93449 5 93451 5 93463 5 93465 5 93491 5 93499 5 93504 5 93519 5 93527 5 93534 5 93536 5 93539 5 93549 5 93561 5 93566 5 93576 5 93579 5 93581 5 93589 5 93590 5 93592 5 93603 5 93608 5 93609 5 93614 5 93619 5 93625 5 93630 5 93634 5 93637 5 93639 5 93644 5 93649 5 93654 5 93657 5 93658 5 93659 5 93664 5 93665 5 93667 5 93668 5 93670 5 93680 5 93690 5 93706 5 93709 5 93716 5 93722 5 93727 5 93746 5 93763 5 93776 5 93778 5 93779 5 93780 5 93787 5 93789 5 93792 5 93793 5 93799 5 93800 5 93829 5 93833 5 93843 5 93846 5 93847 5 93860 5 93867 5 93869 5 93875 5 93890 5 93892 5 93894 5 93909 5 93910 5 93912 5 93916 5 93926 5 93930 5 93931 5 93932 5 93934 5 93936 5 93941 5 93964 5 93971 5 93973 5 93974 5 93976 5 93977 5 93991 5 93993 5 93996 5 93999 5 94029 5 94031 5 94032 5 94035 5 94040 5 94042 5 94045 5 94048 5 94059 5 94071 5 94074 5 94084 5 94085 5 94098 5 94101 5 94103 5 94111 5 94112 5 94125 5 94174 5 94185 5 94188 5 94193 5 94195 5 94198 5 94203 5 94208 5 94216 5 94228 5 94230 5 94231 5 94234 5 94241 5 94243 5 94258 5 94267 5 94271 5 94274 5 94275 5 94276 5 94283 5 94287 5 94288 5 94289 5 94302 5 94304 5 94307 5 94310 5 94323 5 94326 5 94329 5 94333 5 94339 5 94346 5 94351 5 94352 5 94353 5 94358 5 94360 5 94366 5 94372 5 94377 5 94383 5 94384 5 94386 5 94388 5 94394 5 94402 5 94421 5 94422 5 94426 5 94430 5 94440 5 94449 5 94450 5 94454 5 94459 5 94483 5 94484 5 94496 5 94497 5 94506 5 94510 5 94513 5 94517 5 94526 5 94528 5 94551 5 94552 5 94567 5 94570 5 94576 5 94577 5 94594 5 94597 5 94598 5 94606 5 94608 5 94620 5 94624 5 94633 5 94635 5 94639 5 94642 5 94644 5 94647 5 94657 5 94659 5 94660 5 94671 5 94679 5 94689 5 94690 5 94697 5 94706 5 94707 5 94711 5 94712 5 94731 5 94732 5 94734 5 94741 5 94749 5 94754 5 94760 5 94763 5 94764 5 94778 5 94782 5 94784 5 94786 5 94787 5 94791 5 94794 5 94798 5 94799 5 94801 5 94810 5 94811 5 94832 5 94835 5 94841 5 94845 5 94850 5 94851 5 94857 5 94868 5 94874 5 94887 5 94896 5 94898 5 94901 5 94904 5 94907 5 94914 5 94915 5 94922 5 94929 5 94962 5 94965 5 94969 5 94972 5 94987 5 94990 5 94993 5 95002 5 95008 5 95016 5 95046 5 95047 5 95048 5 95050 5 95056 5 95062 5 95065 5 95104 5 95114 5 95124 5 95126 5 95139 5 95140 5 95155 5 95159 5 95160 5 95172 5 95178 5 95179 5 95184 5 95185 5 95192 5 95201 5 95205 5 95206 5 95211 5 95214 5 95216 5 95227 5 95229 5 95248 5 95249 5 95256 5 95263 5 95268 5 95280 5 95284 5 95298 5 95299 5 95309 5 95312 5 95319 5 95320 5 95323 5 95327 5 95331 5 95339 5 95340 5 95345 5 95354 5 95357 5 95362 5 95369 5 95370 5 95375 5 95379 5 95389 5 95393 5 95399 5 95400 5 95407 5 95408 5 95411 5 95412 5 95420 5 95423 5 95434 5 95440 5 95455 5 95460 5 95471 5 95472 5 95473 5 95478 5 95479 5 95483 5 95486 5 95490 5 95494 5 95496 5 95498 5 95499 5 95502 5 95510 5 95511 5 95521 5 95526 5 95527 5 95538 5 95546 5 95559 5 95561 5 95572 5 95573 5 95577 5 95610 5 95611 5 95620 5 95630 5 95639 5 95641 5 95645 5 95652 5 95656 5 95659 5 95663 5 95671 5 95672 5 95681 5 95682 5 95683 5 95687 5 95688 5 95695 5 95711 5 95712 5 95718 5 95720 5 95728 5 95735 5 95736 5 95754 5 95762 5 95763 5 95769 5 95771 5 95779 5 95780 5 95781 5 95783 5 95798 5 95803 5 95814 5 95839 5 95842 5 95844 5 95847 5 95857 5 95859 5 95860 5 95882 5 95883 5 95885 5 95890 5 95899 5 95908 5 95922 5 95934 5 95940 5 95947 5 95952 5 95953 5 95965 5 95966 5 95967 5 95976 5 95979 5 95989 5 95991 5 95993 5 95995 5 95996 5 95998 5 96000 5 96006 5 96007 5 96018 5 96023 5 96027 5 96033 5 96035 5 96057 5 96062 5 96066 5 96069 5 96073 5 96075 5 96077 5 96080 5 96088 5 96094 5 96095 5 96106 5 96109 5 96112 5 96115 5 96118 5 96125 5 96126 5 96127 5 96138 5 96144 5 96146 5 96147 5 96151 5 96159 5 96165 5 96169 5 96176 5 96185 5 96194 5 96200 5 96214 5 96219 5 96221 5 96222 5 96236 5 96246 5 96261 5 96270 5 96294 5 96300 5 96309 5 96314 5 96328 5 96335 5 96339 5 96342 5 96374 5 96375 5 96400 5 96405 5 96407 5 96412 5 96414 5 96439 5 96446 5 96457 5 96460 5 96466 5 96467 5 96474 5 96486 5 96494 5 96496 5 96497 5 96499 5 96502 5 96512 5 96524 5 96526 5 96533 5 96562 5 96572 5 96579 5 96582 5 96594 5 96595 5 96597 5 96603 5 96614 5 96630 5 96633 5 96634 5 96637 5 96642 5 96645 5 96656 5 96663 5 96667 5 96679 5 96680 5 96701 5 96704 5 96710 5 96715 5 96718 5 96739 5 96741 5 96755 5 96759 5 96762 5 96766 5 96769 5 96774 5 96777 5 96778 5 96784 5 96794 5 96796 5 96798 5 96801 5 96802 5 96808 5 96809 5 96810 5 96812 5 96819 5 96822 5 96828 5 96832 5 96844 5 96851 5 96855 5 96877 5 96880 5 96881 5 96886 5 96887 5 96898 5 96899 5 96904 5 96908 5 96911 5 96923 5 96943 5 96945 5 96957 5 96967 5 96968 5 96984 5 96994 5 97001 5 97010 5 97012 5 97022 5 97023 5 97032 5 97037 5 97041 5 97044 5 97048 5 97049 5 97053 5 97055 5 97061 5 97071 5 97072 5 97087 5 97101 5 97105 5 97108 5 97112 5 97114 5 97115 5 97119 5 97126 5 97146 5 97152 5 97160 5 97161 5 97162 5 97166 5 97169 5 97171 5 97178 5 97184 5 97190 5 97199 5 97203 5 97210 5 97214 5 97221 5 97228 5 97234 5 97238 5 97245 5 97249 5 97254 5 97256 5 97258 5 97266 5 97267 5 97268 5 97279 5 97287 5 97291 5 97294 5 97312 5 97316 5 97317 5 97322 5 97324 5 97342 5 97344 5 97347 5 97351 5 97352 5 97353 5 97354 5 97356 5 97366 5 97369 5 97374 5 97375 5 97384 5 97385 5 97386 5 97394 5 97399 5 97406 5 97407 5 97408 5 97410 5 97419 5 97434 5 97453 5 97455 5 97471 5 97492 5 97495 5 97500 5 97515 5 97521 5 97522 5 97523 5 97526 5 97537 5 97542 5 97549 5 97563 5 97566 5 97576 5 97590 5 97599 5 97605 5 97620 5 97623 5 97632 5 97640 5 97645 5 97651 5 97668 5 97669 5 97670 5 97673 5 97674 5 97703 5 97709 5 97715 5 97716 5 97722 5 97728 5 97735 5 97736 5 97737 5 97759 5 97761 5 97766 5 97770 5 97774 5 97779 5 97784 5 97785 5 97803 5 97809 5 97816 5 97818 5 97822 5 97823 5 97830 5 97838 5 97845 5 97852 5 97870 5 97871 5 97882 5 97889 5 97894 5 97910 5 97911 5 97918 5 97924 5 97925 5 97932 5 97934 5 97935 5 97938 5 97940 5 97943 5 97953 5 97955 5 97958 5 97962 5 97968 5 97972 5 97973 5 97977 5 97988 5 97994 5 98002 5 98006 5 98009 5 98023 5 98026 5 98033 5 98035 5 98048 5 98057 5 98060 5 98064 5 98065 5 98066 5 98078 5 98079 5 98085 5 98093 5 98094 5 98095 5 98105 5 98108 5 98111 5 98117 5 98123 5 98124 5 98140 5 98142 5 98149 5 98160 5 98170 5 98186 5 98197 5 98198 5 98202 5 98212 5 98216 5 98248 5 98254 5 98280 5 98284 5 98289 5 98293 5 98296 5 98299 5 98301 5 98304 5 98319 5 98332 5 98340 5 98347 5 98351 5 98363 5 98366 5 98374 5 98379 5 98382 5 98386 5 98394 5 98402 5 98409 5 98413 5 98415 5 98419 5 98437 5 98442 5 98448 5 98450 5 98461 5 98462 5 98471 5 98481 5 98497 5 98499 5 98535 5 98536 5 98537 5 98540 5 98546 5 98552 5 98554 5 98576 5 98585 5 98590 5 98606 5 98615 5 98617 5 98618 5 98622 5 98623 5 98628 5 98632 5 98637 5 98638 5 98645 5 98649 5 98661 5 98673 5 98685 5 98687 5 98688 5 98694 5 98695 5 98697 5 98700 5 98718 5 98727 5 98728 5 98736 5 98738 5 98763 5 98772 5 98778 5 98789 5 98790 5 98792 5 98798 5 98804 5 98817 5 98819 5 98820 5 98821 5 98822 5 98836 5 98843 5 98851 5 98852 5 98854 5 98858 5 98868 5 98873 5 98881 5 98887 5 98893 5 98894 5 98895 5 98901 5 98904 5 98914 5 98916 5 98917 5 98924 5 98930 5 98936 5 98944 5 98950 5 98952 5 98954 5 98965 5 98969 5 98976 5 98982 5 7 6 8 6 14 6 18 6 20 6 26 6 27 6 28 6 45 6 47 6 51 6 71 6 85 6 86 6 87 6 90 6 91 6 96 6 116 6 123 6 126 6 127 6 129 6 132 6 138 6 143 6 174 6 176 6 180 6 182 6 184 6 187 6 188 6 198 6 206 6 218 6 240 6 242 6 243 6 254 6 266 6 268 6 277 6 279 6 283 6 286 6 292 6 294 6 307 6 311 6 312 6 329 6 337 6 340 6 343 6 347 6 348 6 349 6 361 6 370 6 371 6 381 6 390 6 399 6 400 6 407 6 409 6 424 6 442 6 449 6 452 6 455 6 459 6 466 6 469 6 471 6 472 6 473 6 484 6 493 6 497 6 501 6 507 6 515 6 518 6 533 6 539 6 550 6 551 6 561 6 565 6 566 6 568 6 573 6 595 6 605 6 621 6 623 6 630 6 636 6 637 6 650 6 654 6 655 6 660 6 664 6 666 6 674 6 679 6 680 6 685 6 687 6 688 6 697 6 700 6 701 6 707 6 734 6 751 6 752 6 758 6 766 6 768 6 773 6 787 6 788 6 790 6 799 6 803 6 808 6 810 6 822 6 828 6 831 6 832 6 838 6 844 6 847 6 851 6 855 6 858 6 860 6 862 6 864 6 868 6 887 6 889 6 893 6 896 6 908 6 910 6 912 6 917 6 920 6 933 6 942 6 946 6 950 6 968 6 976 6 983 6 989 6 1000 6 1017 6 1018 6 1024 6 1028 6 1029 6 1035 6 1056 6 1065 6 1081 6 1082 6 1105 6 1106 6 1111 6 1113 6 1115 6 1117 6 1122 6 1125 6 1139 6 1154 6 1156 6 1165 6 1167 6 1178 6 1184 6 1185 6 1206 6 1221 6 1223 6 1225 6 1226 6 1229 6 1234 6 1254 6 1256 6 1271 6 1276 6 1277 6 1293 6 1302 6 1311 6 1323 6 1328 6 1338 6 1345 6 1348 6 1351 6 1355 6 1363 6 1364 6 1376 6 1377 6 1378 6 1379 6 1380 6 1381 6 1387 6 1388 6 1389 6 1393 6 1406 6 1407 6 1409 6 1420 6 1424 6 1434 6 1438 6 1441 6 1443 6 1444 6 1449 6 1450 6 1454 6 1469 6 1473 6 1478 6 1480 6 1486 6 1487 6 1492 6 1500 6 1501 6 1503 6 1516 6 1519 6 1520 6 1523 6 1529 6 1534 6 1537 6 1538 6 1545 6 1547 6 1550 6 1557 6 1581 6 1594 6 1596 6 1603 6 1605 6 1616 6 1618 6 1633 6 1641 6 1652 6 1656 6 1661 6 1662 6 1667 6 1669 6 1676 6 1680 6 1689 6 1694 6 1700 6 1707 6 1711 6 1712 6 1722 6 1730 6 1736 6 1738 6 1739 6 1741 6 1748 6 1766 6 1774 6 1778 6 1782 6 1790 6 1795 6 1797 6 1798 6 1803 6 1806 6 1807 6 1808 6 1810 6 1814 6 1825 6 1833 6 1855 6 1857 6 1859 6 1860 6 1861 6 1864 6 1868 6 1879 6 1881 6 1883 6 1893 6 1902 6 1915 6 1916 6 1917 6 1928 6 1939 6 1940 6 1953 6 1961 6 1963 6 1971 6 1980 6 1990 6 1994 6 2007 6 2015 6 2026 6 2033 6 2040 6 2043 6 2047 6 2053 6 2064 6 2084 6 2087 6 2088 6 2090 6 2094 6 2095 6 2099 6 2107 6 2111 6 2118 6 2119 6 2123 6 2128 6 2136 6 2143 6 2147 6 2149 6 2152 6 2158 6 2159 6 2162 6 2169 6 2174 6 2176 6 2177 6 2188 6 2191 6 2192 6 2194 6 2195 6 2197 6 2200 6 2213 6 2218 6 2224 6 2246 6 2250 6 2260 6 2265 6 2274 6 2278 6 2281 6 2282 6 2289 6 2293 6 2297 6 2313 6 2316 6 2321 6 2335 6 2343 6 2346 6 2348 6 2351 6 2355 6 2366 6 2372 6 2373 6 2378 6 2382 6 2384 6 2392 6 2394 6 2399 6 2400 6 2405 6 2409 6 2416 6 2417 6 2420 6 2425 6 2426 6 2434 6 2436 6 2443 6 2448 6 2458 6 2460 6 2469 6 2470 6 2474 6 2481 6 2482 6 2489 6 2502 6 2527 6 2534 6 2537 6 2538 6 2539 6 2542 6 2544 6 2548 6 2552 6 2559 6 2566 6 2571 6 2576 6 2581 6 2583 6 2601 6 2602 6 2603 6 2607 6 2609 6 2610 6 2611 6 2612 6 2614 6 2618 6 2622 6 2623 6 2632 6 2642 6 2650 6 2651 6 2652 6 2657 6 2662 6 2664 6 2671 6 2678 6 2683 6 2691 6 2700 6 2701 6 2713 6 2725 6 2728 6 2742 6 2746 6 2748 6 2751 6 2752 6 2753 6 2756 6 2757 6 2764 6 2771 6 2772 6 2777 6 2783 6 2784 6 2787 6 2795 6 2800 6 2805 6 2807 6 2827 6 2831 6 2834 6 2836 6 2837 6 2864 6 2869 6 2870 6 2877 6 2881 6 2883 6 2888 6 2894 6 2896 6 2900 6 2903 6 2904 6 2906 6 2911 6 2920 6 2923 6 2930 6 2935 6 2951 6 2953 6 2960 6 2970 6 2973 6 2980 6 2981 6 2985 6 2989 6 2990 6 2995 6 2996 6 3000 6 3007 6 3016 6 3022 6 3026 6 3033 6 3037 6 3040 6 3045 6 3058 6 3063 6 3066 6 3071 6 3072 6 3073 6 3074 6 3075 6 3077 6 3079 6 3082 6 3089 6 3095 6 3096 6 3099 6 3102 6 3103 6 3104 6 3106 6 3112 6 3117 6 3118 6 3121 6 3122 6 3127 6 3130 6 3131 6 3132 6 3133 6 3134 6 3144 6 3148 6 3150 6 3153 6 3155 6 3157 6 3165 6 3170 6 3173 6 3175 6 3186 6 3188 6 3192 6 3195 6 3204 6 3206 6 3212 6 3214 6 3218 6 3237 6 3240 6 3242 6 3243 6 3250 6 3253 6 3259 6 3270 6 3275 6 3278 6 3292 6 3296 6 3298 6 3305 6 3306 6 3307 6 3308 6 3328 6 3332 6 3343 6 3349 6 3351 6 3360 6 3361 6 3363 6 3371 6 3385 6 3389 6 3397 6 3398 6 3399 6 3409 6 3412 6 3416 6 3421 6 3428 6 3430 6 3431 6 3436 6 3437 6 3438 6 3439 6 3449 6 3450 6 3451 6 3452 6 3465 6 3473 6 3481 6 3482 6 3489 6 3500 6 3510 6 3512 6 3517 6 3520 6 3527 6 3530 6 3536 6 3546 6 3550 6 3551 6 3553 6 3566 6 3570 6 3574 6 3577 6 3581 6 3586 6 3592 6 3596 6 3597 6 3600 6 3607 6 3610 6 3616 6 3626 6 3631 6 3633 6 3635 6 3643 6 3648 6 3665 6 3669 6 3676 6 3677 6 3684 6 3686 6 3693 6 3694 6 3700 6 3701 6 3704 6 3707 6 3709 6 3717 6 3723 6 3725 6 3730 6 3735 6 3744 6 3753 6 3760 6 3762 6 3767 6 3771 6 3774 6 3792 6 3805 6 3809 6 3826 6 3827 6 3837 6 3842 6 3845 6 3858 6 3859 6 3860 6 3863 6 3864 6 3866 6 3877 6 3879 6 3880 6 3882 6 3886 6 3901 6 3902 6 3905 6 3923 6 3924 6 3925 6 3926 6 3940 6 3953 6 3954 6 3955 6 3959 6 3964 6 3969 6 3974 6 3977 6 4001 6 4005 6 4010 6 4013 6 4015 6 4030 6 4031 6 4050 6 4060 6 4068 6 4078 6 4099 6 4103 6 4105 6 4106 6 4128 6 4129 6 4135 6 4150 6 4159 6 4162 6 4165 6 4168 6 4172 6 4190 6 4193 6 4197 6 4200 6 4206 6 4210 6 4212 6 4214 6 4217 6 4220 6 4226 6 4232 6 4235 6 4241 6 4247 6 4251 6 4256 6 4264 6 4265 6 4269 6 4271 6 4273 6 4274 6 4279 6 4281 6 4301 6 4306 6 4321 6 4324 6 4330 6 4333 6 4340 6 4343 6 4355 6 4358 6 4359 6 4374 6 4377 6 4381 6 4385 6 4389 6 4391 6 4392 6 4412 6 4414 6 4426 6 4427 6 4428 6 4441 6 4444 6 4452 6 4456 6 4463 6 4467 6 4469 6 4472 6 4475 6 4482 6 4486 6 4487 6 4496 6 4498 6 4503 6 4512 6 4516 6 4518 6 4521 6 4524 6 4544 6 4546 6 4553 6 4554 6 4557 6 4561 6 4563 6 4565 6 4566 6 4569 6 4573 6 4582 6 4586 6 4596 6 4598 6 4601 6 4604 6 4611 6 4615 6 4616 6 4617 6 4619 6 4620 6 4624 6 4632 6 4633 6 4639 6 4659 6 4662 6 4681 6 4685 6 4687 6 4692 6 4701 6 4705 6 4709 6 4710 6 4722 6 4725 6 4735 6 4739 6 4746 6 4751 6 4763 6 4772 6 4780 6 4782 6 4791 6 4792 6 4804 6 4826 6 4833 6 4842 6 4843 6 4847 6 4850 6 4861 6 4871 6 4876 6 4882 6 4884 6 4888 6 4892 6 4900 6 4902 6 4908 6 4909 6 4919 6 4925 6 4928 6 4934 6 4935 6 4947 6 4948 6 4964 6 4968 6 4984 6 4985 6 4988 6 4990 6 4991 6 4994 6 5002 6 5015 6 5022 6 5026 6 5031 6 5034 6 5038 6 5041 6 5053 6 5064 6 5074 6 5078 6 5084 6 5090 6 5092 6 5098 6 5100 6 5101 6 5116 6 5117 6 5124 6 5125 6 5147 6 5154 6 5158 6 5178 6 5181 6 5186 6 5193 6 5206 6 5222 6 5227 6 5229 6 5230 6 5236 6 5238 6 5252 6 5258 6 5267 6 5271 6 5272 6 5273 6 5274 6 5282 6 5290 6 5310 6 5315 6 5317 6 5327 6 5335 6 5342 6 5344 6 5346 6 5360 6 5361 6 5362 6 5370 6 5374 6 5375 6 5380 6 5382 6 5385 6 5405 6 5415 6 5424 6 5426 6 5427 6 5430 6 5435 6 5437 6 5439 6 5444 6 5461 6 5465 6 5470 6 5471 6 5472 6 5477 6 5485 6 5493 6 5496 6 5501 6 5513 6 5514 6 5523 6 5527 6 5528 6 5529 6 5544 6 5550 6 5553 6 5571 6 5577 6 5578 6 5579 6 5585 6 5597 6 5601 6 5607 6 5608 6 5615 6 5633 6 5634 6 5638 6 5639 6 5640 6 5642 6 5677 6 5678 6 5683 6 5686 6 5695 6 5697 6 5698 6 5701 6 5712 6 5718 6 5720 6 5724 6 5730 6 5743 6 5749 6 5751 6 5755 6 5772 6 5793 6 5796 6 5799 6 5800 6 5809 6 5810 6 5824 6 5826 6 5830 6 5833 6 5844 6 5865 6 5883 6 5886 6 5889 6 5890 6 5899 6 5902 6 5906 6 5907 6 5912 6 5922 6 5923 6 5924 6 5925 6 5930 6 5938 6 5943 6 5948 6 5949 6 5950 6 5955 6 5985 6 5989 6 6000 6 6002 6 6012 6 6013 6 6044 6 6065 6 6067 6 6069 6 6070 6 6076 6 6081 6 6087 6 6088 6 6090 6 6093 6 6095 6 6102 6 6113 6 6118 6 6119 6 6124 6 6132 6 6138 6 6146 6 6155 6 6157 6 6165 6 6166 6 6167 6 6183 6 6201 6 6205 6 6206 6 6210 6 6218 6 6219 6 6231 6 6244 6 6247 6 6254 6 6255 6 6269 6 6270 6 6271 6 6274 6 6280 6 6283 6 6285 6 6287 6 6294 6 6311 6 6312 6 6317 6 6335 6 6340 6 6345 6 6347 6 6349 6 6351 6 6359 6 6361 6 6363 6 6364 6 6365 6 6411 6 6416 6 6420 6 6424 6 6427 6 6437 6 6448 6 6465 6 6466 6 6472 6 6475 6 6478 6 6496 6 6499 6 6515 6 6528 6 6529 6 6533 6 6534 6 6557 6 6561 6 6562 6 6570 6 6578 6 6586 6 6592 6 6602 6 6604 6 6606 6 6609 6 6618 6 6624 6 6631 6 6632 6 6642 6 6646 6 6663 6 6664 6 6665 6 6673 6 6674 6 6677 6 6682 6 6687 6 6694 6 6698 6 6701 6 6702 6 6706 6 6713 6 6722 6 6726 6 6730 6 6734 6 6739 6 6740 6 6744 6 6749 6 6762 6 6766 6 6774 6 6783 6 6788 6 6789 6 6794 6 6798 6 6808 6 6814 6 6822 6 6831 6 6839 6 6844 6 6849 6 6850 6 6861 6 6868 6 6875 6 6876 6 6889 6 6890 6 6891 6 6900 6 6902 6 6913 6 6918 6 6920 6 6922 6 6924 6 6928 6 6932 6 6947 6 6948 6 6959 6 6960 6 6964 6 6965 6 6977 6 6985 6 6988 6 6989 6 6993 6 6994 6 6998 6 7009 6 7014 6 7020 6 7026 6 7028 6 7037 6 7038 6 7040 6 7041 6 7045 6 7046 6 7049 6 7053 6 7057 6 7058 6 7060 6 7068 6 7076 6 7082 6 7096 6 7099 6 7103 6 7110 6 7114 6 7118 6 7119 6 7125 6 7147 6 7153 6 7171 6 7183 6 7184 6 7185 6 7186 6 7198 6 7200 6 7201 6 7217 6 7228 6 7229 6 7230 6 7233 6 7244 6 7252 6 7259 6 7264 6 7280 6 7282 6 7289 6 7290 6 7297 6 7298 6 7309 6 7310 6 7311 6 7313 6 7316 6 7331 6 7336 6 7340 6 7354 6 7357 6 7374 6 7376 6 7377 6 7385 6 7389 6 7391 6 7399 6 7408 6 7416 6 7417 6 7420 6 7431 6 7437 6 7440 6 7441 6 7445 6 7450 6 7453 6 7457 6 7460 6 7474 6 7475 6 7476 6 7487 6 7488 6 7502 6 7503 6 7504 6 7523 6 7524 6 7528 6 7531 6 7541 6 7544 6 7546 6 7557 6 7559 6 7560 6 7562 6 7564 6 7568 6 7574 6 7587 6 7589 6 7591 6 7614 6 7616 6 7624 6 7629 6 7631 6 7644 6 7645 6 7647 6 7649 6 7664 6 7674 6 7677 6 7687 6 7698 6 7700 6 7704 6 7718 6 7729 6 7731 6 7732 6 7742 6 7746 6 7749 6 7751 6 7753 6 7754 6 7757 6 7765 6 7778 6 7782 6 7784 6 7795 6 7801 6 7805 6 7811 6 7812 6 7819 6 7826 6 7837 6 7839 6 7842 6 7846 6 7848 6 7852 6 7863 6 7864 6 7870 6 7871 6 7881 6 7883 6 7894 6 7896 6 7898 6 7902 6 7917 6 7923 6 7925 6 7937 6 7945 6 7949 6 7952 6 7963 6 7968 6 7974 6 7982 6 7983 6 7995 6 7999 6 8000 6 8010 6 8019 6 8021 6 8023 6 8038 6 8039 6 8048 6 8052 6 8054 6 8060 6 8062 6 8063 6 8069 6 8073 6 8078 6 8098 6 8100 6 8110 6 8111 6 8117 6 8119 6 8130 6 8138 6 8144 6 8147 6 8148 6 8149 6 8154 6 8155 6 8164 6 8168 6 8175 6 8176 6 8177 6 8188 6 8189 6 8215 6 8219 6 8225 6 8240 6 8253 6 8258 6 8261 6 8265 6 8267 6 8270 6 8272 6 8273 6 8275 6 8281 6 8282 6 8285 6 8286 6 8287 6 8288 6 8289 6 8293 6 8296 6 8298 6 8300 6 8304 6 8305 6 8306 6 8307 6 8327 6 8333 6 8336 6 8342 6 8344 6 8348 6 8355 6 8357 6 8363 6 8380 6 8392 6 8395 6 8407 6 8416 6 8417 6 8431 6 8439 6 8455 6 8456 6 8459 6 8461 6 8472 6 8475 6 8481 6 8483 6 8489 6 8493 6 8500 6 8506 6 8517 6 8518 6 8519 6 8522 6 8523 6 8546 6 8552 6 8558 6 8566 6 8574 6 8575 6 8583 6 8587 6 8597 6 8606 6 8611 6 8612 6 8618 6 8619 6 8626 6 8629 6 8631 6 8632 6 8635 6 8640 6 8662 6 8673 6 8675 6 8683 6 8685 6 8689 6 8690 6 8705 6 8707 6 8709 6 8715 6 8727 6 8729 6 8739 6 8741 6 8744 6 8745 6 8749 6 8766 6 8767 6 8769 6 8770 6 8777 6 8778 6 8780 6 8782 6 8788 6 8791 6 8814 6 8827 6 8828 6 8830 6 8836 6 8838 6 8839 6 8850 6 8852 6 8860 6 8862 6 8875 6 8877 6 8878 6 8879 6 8886 6 8901 6 8909 6 8910 6 8912 6 8914 6 8919 6 8926 6 8942 6 8951 6 8955 6 8956 6 8957 6 8958 6 8968 6 8969 6 8978 6 8980 6 8990 6 8991 6 9014 6 9022 6 9026 6 9027 6 9036 6 9059 6 9060 6 9064 6 9067 6 9070 6 9080 6 9103 6 9109 6 9112 6 9115 6 9116 6 9127 6 9142 6 9144 6 9160 6 9164 6 9171 6 9178 6 9182 6 9187 6 9189 6 9194 6 9195 6 9206 6 9225 6 9227 6 9240 6 9244 6 9247 6 9251 6 9267 6 9273 6 9279 6 9283 6 9288 6 9301 6 9302 6 9304 6 9313 6 9314 6 9317 6 9332 6 9342 6 9345 6 9348 6 9361 6 9367 6 9370 6 9372 6 9387 6 9388 6 9389 6 9392 6 9405 6 9408 6 9410 6 9425 6 9449 6 9450 6 9451 6 9452 6 9454 6 9457 6 9462 6 9464 6 9481 6 9484 6 9489 6 9494 6 9496 6 9507 6 9514 6 9522 6 9530 6 9532 6 9534 6 9546 6 9556 6 9564 6 9571 6 9582 6 9594 6 9601 6 9603 6 9614 6 9623 6 9626 6 9629 6 9630 6 9635 6 9642 6 9653 6 9672 6 9675 6 9679 6 9682 6 9687 6 9689 6 9695 6 9708 6 9714 6 9720 6 9723 6 9724 6 9730 6 9738 6 9746 6 9760 6 9769 6 9771 6 9774 6 9781 6 9788 6 9799 6 9808 6 9811 6 9812 6 9813 6 9820 6 9832 6 9833 6 9834 6 9840 6 9841 6 9846 6 9850 6 9851 6 9852 6 9854 6 9858 6 9859 6 9864 6 9873 6 9879 6 9880 6 9890 6 9896 6 9897 6 9899 6 9900 6 9904 6 9907 6 9923 6 9931 6 9938 6 9947 6 9951 6 9954 6 9955 6 9961 6 9962 6 9987 6 9991 6 10005 6 10007 6 10009 6 10011 6 10014 6 10020 6 10025 6 10030 6 10034 6 10050 6 10055 6 10060 6 10072 6 10079 6 10085 6 10092 6 10096 6 10099 6 10101 6 10103 6 10107 6 10108 6 10109 6 10111 6 10112 6 10123 6 10124 6 10125 6 10127 6 10132 6 10138 6 10144 6 10148 6 10154 6 10160 6 10162 6 10169 6 10170 6 10178 6 10185 6 10186 6 10187 6 10188 6 10200 6 10202 6 10209 6 10212 6 10214 6 10216 6 10223 6 10229 6 10233 6 10236 6 10240 6 10242 6 10246 6 10249 6 10252 6 10253 6 10256 6 10260 6 10277 6 10285 6 10295 6 10297 6 10314 6 10323 6 10327 6 10335 6 10339 6 10340 6 10353 6 10354 6 10358 6 10365 6 10368 6 10375 6 10376 6 10384 6 10385 6 10386 6 10392 6 10396 6 10401 6 10420 6 10428 6 10429 6 10433 6 10442 6 10443 6 10445 6 10450 6 10464 6 10467 6 10480 6 10484 6 10492 6 10511 6 10513 6 10515 6 10516 6 10518 6 10531 6 10535 6 10566 6 10571 6 10582 6 10585 6 10595 6 10601 6 10612 6 10614 6 10619 6 10626 6 10635 6 10659 6 10668 6 10669 6 10673 6 10677 6 10682 6 10686 6 10687 6 10694 6 10699 6 10719 6 10722 6 10728 6 10730 6 10731 6 10732 6 10739 6 10744 6 10752 6 10754 6 10783 6 10792 6 10794 6 10804 6 10829 6 10834 6 10835 6 10836 6 10849 6 10853 6 10858 6 10861 6 10864 6 10874 6 10883 6 10910 6 10939 6 10942 6 10947 6 10950 6 10981 6 10992 6 10998 6 11010 6 11011 6 11014 6 11015 6 11019 6 11023 6 11031 6 11033 6 11046 6 11058 6 11060 6 11061 6 11064 6 11065 6 11075 6 11082 6 11085 6 11092 6 11108 6 11109 6 11112 6 11116 6 11117 6 11121 6 11127 6 11134 6 11140 6 11143 6 11147 6 11148 6 11162 6 11172 6 11173 6 11178 6 11186 6 11195 6 11197 6 11201 6 11203 6 11206 6 11207 6 11212 6 11214 6 11216 6 11228 6 11229 6 11231 6 11241 6 11243 6 11258 6 11265 6 11270 6 11274 6 11287 6 11288 6 11297 6 11299 6 11306 6 11307 6 11316 6 11320 6 11321 6 11332 6 11333 6 11336 6 11348 6 11351 6 11352 6 11358 6 11362 6 11364 6 11381 6 11400 6 11401 6 11414 6 11424 6 11426 6 11432 6 11435 6 11436 6 11452 6 11457 6 11460 6 11483 6 11484 6 11488 6 11493 6 11505 6 11508 6 11528 6 11530 6 11531 6 11537 6 11540 6 11542 6 11570 6 11575 6 11576 6 11589 6 11592 6 11594 6 11612 6 11615 6 11617 6 11639 6 11650 6 11655 6 11659 6 11665 6 11673 6 11696 6 11698 6 11702 6 11708 6 11715 6 11727 6 11730 6 11746 6 11751 6 11754 6 11755 6 11777 6 11781 6 11784 6 11788 6 11790 6 11804 6 11813 6 11819 6 11832 6 11839 6 11844 6 11865 6 11872 6 11877 6 11878 6 11881 6 11882 6 11891 6 11898 6 11900 6 11911 6 11916 6 11933 6 11945 6 11950 6 11979 6 12000 6 12004 6 12009 6 12015 6 12020 6 12023 6 12029 6 12038 6 12057 6 12060 6 12108 6 12110 6 12111 6 12114 6 12115 6 12126 6 12129 6 12132 6 12138 6 12148 6 12149 6 12151 6 12153 6 12159 6 12160 6 12165 6 12184 6 12185 6 12199 6 12204 6 12207 6 12208 6 12209 6 12215 6 12216 6 12218 6 12221 6 12235 6 12236 6 12237 6 12242 6 12247 6 12251 6 12256 6 12266 6 12270 6 12278 6 12279 6 12284 6 12291 6 12300 6 12304 6 12307 6 12315 6 12320 6 12321 6 12322 6 12331 6 12335 6 12341 6 12357 6 12358 6 12376 6 12382 6 12384 6 12385 6 12400 6 12410 6 12414 6 12415 6 12424 6 12429 6 12432 6 12438 6 12442 6 12453 6 12466 6 12471 6 12472 6 12476 6 12498 6 12504 6 12511 6 12523 6 12527 6 12534 6 12539 6 12546 6 12554 6 12562 6 12573 6 12583 6 12596 6 12608 6 12614 6 12626 6 12634 6 12637 6 12641 6 12648 6 12652 6 12657 6 12675 6 12681 6 12684 6 12685 6 12687 6 12691 6 12700 6 12713 6 12725 6 12726 6 12730 6 12733 6 12734 6 12735 6 12742 6 12747 6 12758 6 12760 6 12762 6 12764 6 12769 6 12773 6 12795 6 12796 6 12804 6 12805 6 12815 6 12822 6 12830 6 12834 6 12845 6 12846 6 12851 6 12859 6 12862 6 12873 6 12889 6 12896 6 12899 6 12900 6 12901 6 12902 6 12903 6 12905 6 12933 6 12956 6 12975 6 12985 6 12989 6 12992 6 12993 6 12999 6 13003 6 13030 6 13035 6 13041 6 13045 6 13049 6 13056 6 13064 6 13069 6 13071 6 13077 6 13083 6 13088 6 13092 6 13093 6 13096 6 13099 6 13115 6 13117 6 13118 6 13119 6 13120 6 13127 6 13129 6 13133 6 13138 6 13142 6 13149 6 13151 6 13152 6 13154 6 13168 6 13171 6 13177 6 13178 6 13182 6 13191 6 13196 6 13199 6 13202 6 13206 6 13207 6 13208 6 13210 6 13216 6 13232 6 13234 6 13238 6 13241 6 13244 6 13251 6 13260 6 13266 6 13267 6 13271 6 13296 6 13308 6 13310 6 13312 6 13321 6 13325 6 13329 6 13341 6 13345 6 13351 6 13358 6 13372 6 13377 6 13398 6 13403 6 13404 6 13408 6 13417 6 13426 6 13455 6 13456 6 13466 6 13472 6 13479 6 13481 6 13492 6 13496 6 13507 6 13514 6 13518 6 13530 6 13535 6 13536 6 13537 6 13554 6 13556 6 13560 6 13566 6 13590 6 13595 6 13606 6 13609 6 13613 6 13616 6 13629 6 13630 6 13672 6 13673 6 13675 6 13683 6 13708 6 13713 6 13725 6 13726 6 13737 6 13740 6 13744 6 13745 6 13753 6 13754 6 13755 6 13760 6 13761 6 13764 6 13765 6 13770 6 13774 6 13780 6 13781 6 13793 6 13796 6 13799 6 13800 6 13803 6 13823 6 13830 6 13837 6 13838 6 13847 6 13856 6 13859 6 13873 6 13879 6 13880 6 13881 6 13882 6 13889 6 13891 6 13896 6 13897 6 13900 6 13906 6 13907 6 13918 6 13920 6 13924 6 13925 6 13926 6 13932 6 13934 6 13936 6 13937 6 13941 6 13943 6 13944 6 13948 6 13950 6 13956 6 13961 6 13963 6 13972 6 13976 6 13983 6 13992 6 13997 6 14000 6 14007 6 14016 6 14034 6 14052 6 14058 6 14067 6 14069 6 14070 6 14073 6 14080 6 14083 6 14092 6 14093 6 14115 6 14119 6 14120 6 14123 6 14164 6 14170 6 14179 6 14190 6 14192 6 14200 6 14206 6 14212 6 14213 6 14219 6 14221 6 14230 6 14236 6 14246 6 14251 6 14252 6 14267 6 14279 6 14282 6 14285 6 14286 6 14287 6 14290 6 14291 6 14294 6 14312 6 14316 6 14322 6 14326 6 14337 6 14347 6 14349 6 14357 6 14358 6 14362 6 14382 6 14393 6 14396 6 14403 6 14404 6 14409 6 14416 6 14421 6 14427 6 14428 6 14431 6 14432 6 14433 6 14435 6 14436 6 14440 6 14442 6 14454 6 14456 6 14463 6 14503 6 14504 6 14507 6 14529 6 14538 6 14543 6 14553 6 14558 6 14562 6 14566 6 14581 6 14582 6 14591 6 14593 6 14594 6 14599 6 14604 6 14609 6 14614 6 14615 6 14628 6 14636 6 14638 6 14639 6 14641 6 14644 6 14655 6 14658 6 14659 6 14663 6 14670 6 14678 6 14679 6 14687 6 14696 6 14701 6 14708 6 14714 6 14721 6 14728 6 14740 6 14749 6 14762 6 14763 6 14765 6 14776 6 14782 6 14793 6 14800 6 14811 6 14814 6 14816 6 14832 6 14836 6 14837 6 14838 6 14842 6 14845 6 14853 6 14859 6 14866 6 14870 6 14875 6 14883 6 14884 6 14900 6 14910 6 14925 6 14927 6 14928 6 14929 6 14934 6 14939 6 14940 6 14944 6 14963 6 14969 6 14982 6 14984 6 14990 6 14993 6 15005 6 15010 6 15026 6 15027 6 15029 6 15037 6 15073 6 15074 6 15081 6 15101 6 15107 6 15110 6 15113 6 15117 6 15118 6 15119 6 15121 6 15139 6 15145 6 15153 6 15155 6 15161 6 15171 6 15174 6 15175 6 15180 6 15191 6 15192 6 15193 6 15200 6 15202 6 15203 6 15205 6 15207 6 15210 6 15211 6 15213 6 15215 6 15217 6 15219 6 15220 6 15221 6 15234 6 15239 6 15241 6 15250 6 15253 6 15260 6 15261 6 15268 6 15269 6 15275 6 15281 6 15287 6 15304 6 15312 6 15314 6 15315 6 15324 6 15329 6 15330 6 15337 6 15340 6 15345 6 15350 6 15369 6 15374 6 15381 6 15383 6 15390 6 15392 6 15394 6 15395 6 15398 6 15399 6 15400 6 15401 6 15405 6 15413 6 15419 6 15427 6 15428 6 15440 6 15444 6 15447 6 15451 6 15452 6 15453 6 15454 6 15463 6 15469 6 15478 6 15479 6 15480 6 15481 6 15485 6 15491 6 15493 6 15496 6 15504 6 15515 6 15516 6 15521 6 15534 6 15535 6 15541 6 15547 6 15553 6 15554 6 15560 6 15561 6 15563 6 15573 6 15574 6 15580 6 15586 6 15594 6 15609 6 15625 6 15636 6 15642 6 15652 6 15656 6 15659 6 15662 6 15664 6 15672 6 15682 6 15691 6 15692 6 15700 6 15701 6 15707 6 15733 6 15737 6 15738 6 15743 6 15744 6 15758 6 15773 6 15782 6 15799 6 15805 6 15806 6 15824 6 15828 6 15831 6 15860 6 15864 6 15865 6 15868 6 15879 6 15880 6 15887 6 15890 6 15895 6 15899 6 15903 6 15908 6 15909 6 15917 6 15926 6 15931 6 15933 6 15934 6 15937 6 15945 6 15970 6 15975 6 15976 6 15977 6 15978 6 15995 6 15996 6 15998 6 16009 6 16024 6 16032 6 16035 6 16043 6 16052 6 16053 6 16059 6 16069 6 16078 6 16083 6 16085 6 16098 6 16106 6 16114 6 16115 6 16116 6 16128 6 16131 6 16139 6 16144 6 16145 6 16149 6 16160 6 16161 6 16180 6 16182 6 16189 6 16196 6 16199 6 16200 6 16229 6 16230 6 16233 6 16237 6 16239 6 16252 6 16269 6 16274 6 16280 6 16284 6 16286 6 16291 6 16296 6 16310 6 16318 6 16319 6 16320 6 16325 6 16333 6 16350 6 16351 6 16358 6 16362 6 16363 6 16364 6 16366 6 16370 6 16383 6 16385 6 16404 6 16408 6 16412 6 16416 6 16428 6 16429 6 16437 6 16443 6 16445 6 16450 6 16457 6 16458 6 16460 6 16461 6 16462 6 16466 6 16469 6 16471 6 16472 6 16475 6 16476 6 16479 6 16480 6 16484 6 16487 6 16493 6 16494 6 16502 6 16504 6 16507 6 16514 6 16516 6 16521 6 16524 6 16527 6 16531 6 16534 6 16552 6 16553 6 16555 6 16579 6 16595 6 16601 6 16611 6 16612 6 16618 6 16626 6 16640 6 16653 6 16655 6 16657 6 16658 6 16661 6 16666 6 16677 6 16685 6 16686 6 16698 6 16705 6 16706 6 16707 6 16709 6 16710 6 16727 6 16730 6 16739 6 16751 6 16755 6 16760 6 16764 6 16777 6 16793 6 16804 6 16817 6 16819 6 16823 6 16824 6 16826 6 16830 6 16832 6 16841 6 16843 6 16846 6 16851 6 16865 6 16866 6 16871 6 16874 6 16891 6 16893 6 16895 6 16901 6 16902 6 16912 6 16917 6 16926 6 16936 6 16940 6 16952 6 16953 6 16966 6 16970 6 16971 6 16973 6 16985 6 16987 6 16998 6 17001 6 17005 6 17008 6 17010 6 17017 6 17018 6 17028 6 17035 6 17041 6 17042 6 17046 6 17048 6 17051 6 17052 6 17054 6 17060 6 17063 6 17066 6 17074 6 17083 6 17086 6 17087 6 17095 6 17100 6 17101 6 17105 6 17112 6 17124 6 17134 6 17142 6 17143 6 17146 6 17163 6 17174 6 17179 6 17184 6 17185 6 17192 6 17198 6 17211 6 17212 6 17214 6 17216 6 17222 6 17230 6 17244 6 17245 6 17246 6 17250 6 17255 6 17262 6 17263 6 17269 6 17271 6 17273 6 17279 6 17280 6 17286 6 17294 6 17300 6 17301 6 17304 6 17313 6 17314 6 17315 6 17324 6 17325 6 17337 6 17340 6 17344 6 17352 6 17360 6 17367 6 17369 6 17370 6 17373 6 17394 6 17401 6 17409 6 17413 6 17422 6 17423 6 17430 6 17431 6 17433 6 17435 6 17440 6 17444 6 17446 6 17450 6 17451 6 17476 6 17484 6 17496 6 17498 6 17507 6 17508 6 17514 6 17517 6 17518 6 17520 6 17524 6 17527 6 17532 6 17539 6 17540 6 17551 6 17557 6 17571 6 17573 6 17585 6 17588 6 17591 6 17610 6 17614 6 17619 6 17631 6 17632 6 17639 6 17655 6 17664 6 17671 6 17672 6 17673 6 17678 6 17683 6 17691 6 17694 6 17701 6 17706 6 17710 6 17717 6 17722 6 17723 6 17725 6 17729 6 17731 6 17736 6 17741 6 17755 6 17756 6 17759 6 17769 6 17772 6 17774 6 17778 6 17784 6 17786 6 17793 6 17796 6 17802 6 17809 6 17814 6 17825 6 17833 6 17835 6 17838 6 17841 6 17844 6 17847 6 17852 6 17864 6 17869 6 17880 6 17882 6 17896 6 17897 6 17900 6 17901 6 17902 6 17912 6 17916 6 17937 6 17943 6 17948 6 17949 6 17952 6 17955 6 17956 6 17958 6 17963 6 17984 6 17987 6 17990 6 17994 6 18004 6 18006 6 18021 6 18033 6 18052 6 18054 6 18071 6 18076 6 18080 6 18084 6 18087 6 18089 6 18092 6 18100 6 18111 6 18115 6 18118 6 18127 6 18133 6 18142 6 18143 6 18147 6 18159 6 18162 6 18165 6 18176 6 18177 6 18180 6 18182 6 18184 6 18188 6 18202 6 18220 6 18221 6 18222 6 18224 6 18238 6 18241 6 18256 6 18259 6 18266 6 18276 6 18287 6 18291 6 18295 6 18306 6 18307 6 18315 6 18316 6 18322 6 18331 6 18333 6 18334 6 18337 6 18341 6 18342 6 18347 6 18357 6 18359 6 18363 6 18364 6 18372 6 18376 6 18379 6 18390 6 18394 6 18398 6 18401 6 18411 6 18415 6 18418 6 18424 6 18436 6 18439 6 18440 6 18441 6 18447 6 18449 6 18452 6 18453 6 18456 6 18463 6 18465 6 18482 6 18483 6 18484 6 18485 6 18486 6 18490 6 18492 6 18499 6 18500 6 18502 6 18514 6 18521 6 18536 6 18546 6 18549 6 18563 6 18566 6 18569 6 18575 6 18579 6 18590 6 18596 6 18601 6 18602 6 18605 6 18614 6 18618 6 18635 6 18642 6 18645 6 18647 6 18658 6 18663 6 18677 6 18681 6 18688 6 18689 6 18694 6 18713 6 18720 6 18723 6 18725 6 18735 6 18751 6 18754 6 18765 6 18772 6 18777 6 18782 6 18783 6 18784 6 18785 6 18790 6 18797 6 18800 6 18805 6 18813 6 18816 6 18822 6 18831 6 18835 6 18837 6 18838 6 18843 6 18855 6 18856 6 18861 6 18872 6 18876 6 18877 6 18879 6 18889 6 18891 6 18893 6 18894 6 18905 6 18906 6 18911 6 18919 6 18929 6 18940 6 18941 6 18942 6 18947 6 18963 6 18966 6 18971 6 18974 6 18981 6 18983 6 18994 6 18995 6 18996 6 18998 6 19001 6 19007 6 19008 6 19014 6 19015 6 19016 6 19017 6 19018 6 19020 6 19026 6 19032 6 19044 6 19049 6 19052 6 19054 6 19080 6 19081 6 19083 6 19085 6 19089 6 19091 6 19094 6 19097 6 19101 6 19106 6 19109 6 19112 6 19119 6 19128 6 19145 6 19156 6 19160 6 19164 6 19166 6 19168 6 19177 6 19184 6 19185 6 19190 6 19196 6 19197 6 19199 6 19216 6 19218 6 19221 6 19235 6 19236 6 19237 6 19245 6 19247 6 19253 6 19254 6 19257 6 19263 6 19264 6 19279 6 19282 6 19285 6 19293 6 19326 6 19333 6 19335 6 19344 6 19345 6 19353 6 19360 6 19369 6 19373 6 19374 6 19395 6 19398 6 19402 6 19408 6 19412 6 19413 6 19436 6 19439 6 19441 6 19442 6 19450 6 19452 6 19472 6 19473 6 19492 6 19499 6 19500 6 19516 6 19518 6 19525 6 19539 6 19542 6 19546 6 19550 6 19558 6 19562 6 19563 6 19588 6 19590 6 19597 6 19600 6 19610 6 19616 6 19625 6 19629 6 19638 6 19643 6 19645 6 19651 6 19666 6 19667 6 19673 6 19680 6 19684 6 19687 6 19688 6 19689 6 19692 6 19701 6 19703 6 19705 6 19708 6 19712 6 19718 6 19728 6 19742 6 19755 6 19758 6 19761 6 19768 6 19775 6 19779 6 19781 6 19787 6 19802 6 19810 6 19811 6 19815 6 19816 6 19819 6 19823 6 19828 6 19837 6 19844 6 19846 6 19864 6 19869 6 19894 6 19903 6 19910 6 19918 6 19920 6 19924 6 19927 6 19935 6 19943 6 19957 6 19972 6 19977 6 19979 6 19980 6 19984 6 19997 6 20000 6 20022 6 20024 6 20025 6 20027 6 20031 6 20038 6 20039 6 20046 6 20050 6 20064 6 20066 6 20067 6 20072 6 20084 6 20085 6 20086 6 20095 6 20096 6 20097 6 20100 6 20114 6 20115 6 20116 6 20118 6 20131 6 20132 6 20138 6 20139 6 20140 6 20141 6 20145 6 20146 6 20147 6 20149 6 20154 6 20156 6 20158 6 20179 6 20182 6 20189 6 20196 6 20200 6 20201 6 20203 6 20211 6 20214 6 20215 6 20223 6 20225 6 20233 6 20254 6 20256 6 20261 6 20264 6 20268 6 20269 6 20272 6 20281 6 20284 6 20285 6 20286 6 20289 6 20290 6 20294 6 20296 6 20309 6 20317 6 20318 6 20325 6 20326 6 20328 6 20332 6 20367 6 20376 6 20381 6 20394 6 20437 6 20441 6 20444 6 20445 6 20458 6 20464 6 20467 6 20468 6 20473 6 20475 6 20477 6 20483 6 20506 6 20516 6 20517 6 20524 6 20531 6 20533 6 20543 6 20545 6 20548 6 20550 6 20552 6 20560 6 20566 6 20568 6 20581 6 20593 6 20597 6 20601 6 20605 6 20608 6 20622 6 20623 6 20629 6 20633 6 20638 6 20640 6 20646 6 20648 6 20657 6 20663 6 20688 6 20694 6 20702 6 20703 6 20711 6 20721 6 20729 6 20735 6 20739 6 20741 6 20748 6 20769 6 20778 6 20788 6 20792 6 20799 6 20802 6 20805 6 20809 6 20810 6 20817 6 20823 6 20825 6 20834 6 20836 6 20843 6 20852 6 20870 6 20871 6 20884 6 20886 6 20889 6 20890 6 20892 6 20897 6 20898 6 20900 6 20903 6 20905 6 20907 6 20912 6 20916 6 20921 6 20922 6 20925 6 20928 6 20938 6 20948 6 20951 6 20956 6 20958 6 20965 6 20972 6 20973 6 20979 6 20984 6 20994 6 20997 6 20999 6 21002 6 21004 6 21010 6 21024 6 21028 6 21038 6 21045 6 21046 6 21052 6 21059 6 21061 6 21063 6 21067 6 21068 6 21072 6 21073 6 21080 6 21081 6 21090 6 21097 6 21104 6 21107 6 21110 6 21121 6 21123 6 21138 6 21150 6 21151 6 21160 6 21172 6 21185 6 21190 6 21192 6 21197 6 21198 6 21202 6 21224 6 21232 6 21233 6 21241 6 21248 6 21251 6 21253 6 21262 6 21269 6 21274 6 21276 6 21285 6 21300 6 21319 6 21321 6 21323 6 21324 6 21327 6 21329 6 21330 6 21349 6 21357 6 21368 6 21374 6 21375 6 21385 6 21386 6 21387 6 21389 6 21391 6 21416 6 21421 6 21439 6 21440 6 21442 6 21447 6 21453 6 21457 6 21465 6 21477 6 21480 6 21485 6 21490 6 21515 6 21521 6 21530 6 21553 6 21559 6 21560 6 21569 6 21575 6 21581 6 21597 6 21605 6 21607 6 21618 6 21619 6 21624 6 21629 6 21636 6 21642 6 21648 6 21656 6 21665 6 21678 6 21683 6 21688 6 21690 6 21692 6 21694 6 21701 6 21707 6 21709 6 21721 6 21732 6 21737 6 21744 6 21750 6 21753 6 21755 6 21763 6 21773 6 21781 6 21787 6 21792 6 21794 6 21796 6 21814 6 21820 6 21822 6 21832 6 21834 6 21839 6 21844 6 21855 6 21859 6 21867 6 21882 6 21886 6 21887 6 21888 6 21889 6 21890 6 21896 6 21904 6 21912 6 21919 6 21922 6 21940 6 21941 6 21943 6 21949 6 21952 6 21957 6 21961 6 21962 6 21963 6 21964 6 21970 6 21971 6 21972 6 21976 6 21978 6 21987 6 21997 6 22012 6 22015 6 22021 6 22031 6 22032 6 22038 6 22039 6 22040 6 22045 6 22059 6 22062 6 22063 6 22065 6 22067 6 22080 6 22085 6 22087 6 22094 6 22097 6 22100 6 22107 6 22111 6 22127 6 22129 6 22145 6 22150 6 22156 6 22157 6 22158 6 22159 6 22163 6 22167 6 22184 6 22187 6 22192 6 22223 6 22224 6 22236 6 22237 6 22239 6 22248 6 22251 6 22281 6 22290 6 22293 6 22300 6 22305 6 22310 6 22312 6 22325 6 22329 6 22333 6 22342 6 22345 6 22349 6 22352 6 22370 6 22373 6 22378 6 22380 6 22382 6 22394 6 22397 6 22399 6 22413 6 22415 6 22419 6 22426 6 22445 6 22451 6 22452 6 22455 6 22456 6 22464 6 22466 6 22468 6 22472 6 22474 6 22495 6 22498 6 22499 6 22501 6 22503 6 22504 6 22508 6 22513 6 22518 6 22525 6 22531 6 22540 6 22543 6 22551 6 22552 6 22554 6 22560 6 22563 6 22570 6 22579 6 22584 6 22589 6 22608 6 22611 6 22615 6 22626 6 22634 6 22639 6 22644 6 22646 6 22652 6 22653 6 22657 6 22678 6 22679 6 22680 6 22683 6 22689 6 22691 6 22693 6 22702 6 22705 6 22722 6 22726 6 22733 6 22741 6 22744 6 22749 6 22752 6 22755 6 22757 6 22759 6 22760 6 22763 6 22769 6 22771 6 22773 6 22782 6 22786 6 22787 6 22788 6 22791 6 22795 6 22801 6 22802 6 22803 6 22816 6 22821 6 22833 6 22837 6 22845 6 22846 6 22852 6 22871 6 22878 6 22888 6 22895 6 22901 6 22910 6 22912 6 22915 6 22924 6 22925 6 22932 6 22941 6 22948 6 22952 6 22976 6 22978 6 22983 6 22992 6 23006 6 23008 6 23011 6 23016 6 23024 6 23030 6 23035 6 23037 6 23040 6 23044 6 23048 6 23052 6 23054 6 23056 6 23070 6 23088 6 23095 6 23101 6 23105 6 23110 6 23112 6 23113 6 23116 6 23120 6 23127 6 23140 6 23144 6 23146 6 23151 6 23157 6 23158 6 23170 6 23192 6 23193 6 23195 6 23199 6 23204 6 23215 6 23219 6 23220 6 23227 6 23237 6 23244 6 23246 6 23248 6 23265 6 23284 6 23286 6 23300 6 23302 6 23307 6 23324 6 23326 6 23333 6 23341 6 23342 6 23347 6 23370 6 23376 6 23377 6 23383 6 23396 6 23399 6 23402 6 23409 6 23416 6 23420 6 23433 6 23442 6 23445 6 23447 6 23460 6 23468 6 23469 6 23472 6 23478 6 23479 6 23485 6 23489 6 23500 6 23501 6 23506 6 23508 6 23518 6 23531 6 23535 6 23547 6 23552 6 23554 6 23560 6 23563 6 23574 6 23577 6 23579 6 23593 6 23596 6 23597 6 23622 6 23624 6 23633 6 23640 6 23642 6 23657 6 23668 6 23671 6 23675 6 23681 6 23684 6 23694 6 23709 6 23710 6 23712 6 23713 6 23722 6 23733 6 23735 6 23739 6 23741 6 23755 6 23756 6 23761 6 23768 6 23781 6 23783 6 23794 6 23800 6 23801 6 23805 6 23813 6 23814 6 23815 6 23831 6 23836 6 23837 6 23841 6 23853 6 23858 6 23873 6 23877 6 23879 6 23881 6 23884 6 23894 6 23895 6 23906 6 23910 6 23927 6 23939 6 23947 6 23949 6 23953 6 23957 6 23973 6 23977 6 23981 6 23987 6 23991 6 23992 6 23995 6 24011 6 24015 6 24028 6 24030 6 24035 6 24037 6 24041 6 24053 6 24056 6 24062 6 24063 6 24069 6 24072 6 24086 6 24099 6 24112 6 24115 6 24120 6 24133 6 24135 6 24147 6 24149 6 24150 6 24157 6 24164 6 24166 6 24179 6 24186 6 24195 6 24210 6 24215 6 24222 6 24229 6 24230 6 24233 6 24248 6 24258 6 24264 6 24275 6 24280 6 24281 6 24283 6 24288 6 24289 6 24291 6 24306 6 24313 6 24324 6 24338 6 24342 6 24348 6 24353 6 24363 6 24368 6 24378 6 24391 6 24401 6 24404 6 24432 6 24446 6 24451 6 24452 6 24455 6 24460 6 24461 6 24462 6 24482 6 24498 6 24503 6 24506 6 24519 6 24524 6 24545 6 24553 6 24562 6 24569 6 24586 6 24597 6 24606 6 24611 6 24613 6 24623 6 24627 6 24633 6 24638 6 24640 6 24643 6 24649 6 24657 6 24664 6 24668 6 24672 6 24679 6 24681 6 24686 6 24688 6 24693 6 24704 6 24708 6 24709 6 24711 6 24714 6 24724 6 24726 6 24731 6 24743 6 24745 6 24746 6 24749 6 24750 6 24769 6 24772 6 24776 6 24781 6 24782 6 24789 6 24798 6 24805 6 24808 6 24810 6 24814 6 24815 6 24817 6 24822 6 24825 6 24826 6 24830 6 24832 6 24833 6 24837 6 24840 6 24846 6 24854 6 24857 6 24858 6 24861 6 24862 6 24868 6 24869 6 24870 6 24873 6 24881 6 24895 6 24904 6 24906 6 24911 6 24914 6 24916 6 24917 6 24919 6 24924 6 24926 6 24945 6 24953 6 24959 6 24964 6 24971 6 24974 6 24975 6 24989 6 24994 6 24997 6 25010 6 25031 6 25033 6 25037 6 25041 6 25049 6 25058 6 25064 6 25066 6 25074 6 25082 6 25085 6 25089 6 25100 6 25101 6 25106 6 25107 6 25108 6 25114 6 25126 6 25127 6 25131 6 25136 6 25141 6 25154 6 25162 6 25174 6 25179 6 25182 6 25188 6 25207 6 25213 6 25214 6 25218 6 25223 6 25224 6 25228 6 25236 6 25243 6 25244 6 25249 6 25251 6 25253 6 25262 6 25267 6 25268 6 25273 6 25274 6 25275 6 25280 6 25284 6 25288 6 25293 6 25301 6 25302 6 25319 6 25320 6 25329 6 25338 6 25341 6 25343 6 25344 6 25346 6 25359 6 25364 6 25378 6 25380 6 25388 6 25394 6 25410 6 25413 6 25416 6 25420 6 25422 6 25426 6 25427 6 25430 6 25437 6 25441 6 25450 6 25451 6 25454 6 25463 6 25464 6 25472 6 25476 6 25479 6 25482 6 25489 6 25497 6 25505 6 25527 6 25530 6 25533 6 25534 6 25535 6 25546 6 25547 6 25556 6 25558 6 25566 6 25572 6 25578 6 25589 6 25593 6 25595 6 25614 6 25619 6 25621 6 25630 6 25633 6 25637 6 25640 6 25650 6 25659 6 25671 6 25675 6 25680 6 25681 6 25699 6 25701 6 25703 6 25704 6 25706 6 25708 6 25717 6 25728 6 25743 6 25748 6 25769 6 25778 6 25780 6 25781 6 25784 6 25785 6 25789 6 25792 6 25793 6 25795 6 25796 6 25797 6 25799 6 25802 6 25805 6 25812 6 25815 6 25816 6 25819 6 25823 6 25827 6 25830 6 25837 6 25838 6 25843 6 25844 6 25849 6 25856 6 25857 6 25870 6 25875 6 25882 6 25889 6 25892 6 25900 6 25903 6 25904 6 25908 6 25912 6 25917 6 25919 6 25921 6 25924 6 25926 6 25929 6 25934 6 25940 6 25943 6 25960 6 25967 6 25968 6 25970 6 25979 6 25980 6 25981 6 25982 6 25989 6 25994 6 26005 6 26007 6 26009 6 26023 6 26028 6 26030 6 26038 6 26048 6 26055 6 26067 6 26103 6 26114 6 26124 6 26131 6 26135 6 26139 6 26145 6 26154 6 26175 6 26176 6 26181 6 26184 6 26186 6 26193 6 26197 6 26205 6 26210 6 26215 6 26218 6 26222 6 26235 6 26237 6 26271 6 26286 6 26295 6 26296 6 26307 6 26316 6 26319 6 26323 6 26332 6 26333 6 26334 6 26341 6 26346 6 26350 6 26359 6 26365 6 26367 6 26376 6 26385 6 26388 6 26410 6 26415 6 26423 6 26424 6 26427 6 26433 6 26435 6 26438 6 26442 6 26460 6 26475 6 26482 6 26483 6 26485 6 26488 6 26501 6 26507 6 26509 6 26517 6 26525 6 26527 6 26536 6 26537 6 26542 6 26547 6 26550 6 26551 6 26553 6 26560 6 26563 6 26572 6 26575 6 26579 6 26602 6 26609 6 26610 6 26611 6 26622 6 26623 6 26624 6 26626 6 26634 6 26638 6 26641 6 26646 6 26655 6 26661 6 26664 6 26672 6 26673 6 26681 6 26685 6 26692 6 26703 6 26711 6 26712 6 26714 6 26717 6 26723 6 26724 6 26736 6 26752 6 26754 6 26757 6 26765 6 26769 6 26780 6 26784 6 26787 6 26792 6 26796 6 26798 6 26802 6 26815 6 26823 6 26825 6 26826 6 26831 6 26832 6 26837 6 26838 6 26844 6 26847 6 26850 6 26851 6 26855 6 26870 6 26871 6 26878 6 26879 6 26884 6 26893 6 26901 6 26904 6 26911 6 26927 6 26929 6 26933 6 26936 6 26939 6 26953 6 26961 6 26967 6 26968 6 26976 6 26992 6 26993 6 27006 6 27011 6 27012 6 27017 6 27018 6 27023 6 27024 6 27029 6 27031 6 27032 6 27036 6 27039 6 27044 6 27055 6 27067 6 27069 6 27080 6 27083 6 27085 6 27086 6 27087 6 27100 6 27102 6 27103 6 27107 6 27117 6 27118 6 27120 6 27121 6 27122 6 27125 6 27130 6 27137 6 27138 6 27140 6 27142 6 27146 6 27148 6 27155 6 27162 6 27166 6 27170 6 27184 6 27185 6 27188 6 27195 6 27199 6 27201 6 27203 6 27204 6 27205 6 27210 6 27216 6 27217 6 27218 6 27226 6 27229 6 27230 6 27237 6 27241 6 27267 6 27278 6 27295 6 27298 6 27300 6 27303 6 27306 6 27312 6 27317 6 27324 6 27327 6 27330 6 27344 6 27349 6 27354 6 27359 6 27362 6 27366 6 27375 6 27382 6 27391 6 27396 6 27402 6 27404 6 27405 6 27407 6 27412 6 27414 6 27417 6 27429 6 27434 6 27457 6 27459 6 27461 6 27466 6 27469 6 27472 6 27477 6 27478 6 27490 6 27495 6 27500 6 27502 6 27507 6 27508 6 27516 6 27522 6 27526 6 27527 6 27542 6 27546 6 27559 6 27561 6 27571 6 27573 6 27577 6 27579 6 27585 6 27588 6 27596 6 27612 6 27620 6 27624 6 27632 6 27633 6 27636 6 27638 6 27650 6 27662 6 27665 6 27666 6 27675 6 27677 6 27684 6 27697 6 27698 6 27701 6 27705 6 27710 6 27720 6 27722 6 27724 6 27734 6 27736 6 27747 6 27749 6 27755 6 27760 6 27763 6 27774 6 27783 6 27784 6 27790 6 27793 6 27803 6 27804 6 27810 6 27830 6 27836 6 27842 6 27843 6 27855 6 27861 6 27866 6 27868 6 27869 6 27883 6 27892 6 27896 6 27898 6 27919 6 27920 6 27924 6 27933 6 27944 6 27955 6 27957 6 27966 6 27974 6 27978 6 27981 6 27992 6 28008 6 28013 6 28015 6 28017 6 28024 6 28040 6 28050 6 28052 6 28056 6 28057 6 28071 6 28072 6 28076 6 28087 6 28094 6 28096 6 28105 6 28119 6 28123 6 28125 6 28126 6 28130 6 28138 6 28144 6 28153 6 28156 6 28166 6 28183 6 28186 6 28209 6 28220 6 28228 6 28233 6 28234 6 28245 6 28248 6 28265 6 28275 6 28276 6 28277 6 28291 6 28301 6 28310 6 28316 6 28328 6 28332 6 28333 6 28345 6 28347 6 28350 6 28362 6 28367 6 28370 6 28373 6 28378 6 28396 6 28400 6 28401 6 28404 6 28409 6 28410 6 28413 6 28421 6 28429 6 28435 6 28436 6 28439 6 28440 6 28448 6 28449 6 28457 6 28479 6 28489 6 28511 6 28534 6 28540 6 28557 6 28559 6 28566 6 28576 6 28584 6 28585 6 28587 6 28590 6 28595 6 28596 6 28597 6 28607 6 28610 6 28620 6 28627 6 28628 6 28629 6 28643 6 28649 6 28653 6 28665 6 28672 6 28674 6 28676 6 28679 6 28693 6 28712 6 28719 6 28722 6 28744 6 28746 6 28749 6 28752 6 28753 6 28758 6 28762 6 28777 6 28799 6 28800 6 28801 6 28805 6 28809 6 28817 6 28818 6 28828 6 28831 6 28834 6 28836 6 28839 6 28841 6 28843 6 28854 6 28856 6 28864 6 28866 6 28878 6 28884 6 28886 6 28891 6 28897 6 28898 6 28902 6 28910 6 28915 6 28919 6 28924 6 28933 6 28939 6 28942 6 28949 6 28957 6 28959 6 28961 6 28976 6 28978 6 28984 6 28993 6 28998 6 29004 6 29006 6 29021 6 29022 6 29031 6 29043 6 29045 6 29048 6 29049 6 29050 6 29058 6 29066 6 29074 6 29075 6 29077 6 29078 6 29108 6 29109 6 29112 6 29122 6 29124 6 29132 6 29134 6 29139 6 29140 6 29144 6 29154 6 29160 6 29166 6 29171 6 29173 6 29179 6 29180 6 29184 6 29190 6 29202 6 29203 6 29210 6 29212 6 29215 6 29217 6 29234 6 29241 6 29243 6 29251 6 29256 6 29259 6 29260 6 29265 6 29275 6 29279 6 29288 6 29295 6 29296 6 29303 6 29306 6 29308 6 29311 6 29322 6 29332 6 29339 6 29345 6 29352 6 29354 6 29360 6 29362 6 29366 6 29367 6 29373 6 29374 6 29377 6 29386 6 29387 6 29395 6 29397 6 29412 6 29424 6 29427 6 29430 6 29449 6 29450 6 29453 6 29455 6 29458 6 29459 6 29465 6 29468 6 29471 6 29477 6 29486 6 29490 6 29497 6 29511 6 29520 6 29521 6 29524 6 29531 6 29532 6 29551 6 29559 6 29565 6 29567 6 29586 6 29590 6 29591 6 29613 6 29620 6 29624 6 29632 6 29636 6 29640 6 29645 6 29667 6 29673 6 29674 6 29685 6 29696 6 29700 6 29701 6 29707 6 29714 6 29719 6 29729 6 29731 6 29733 6 29743 6 29745 6 29746 6 29747 6 29755 6 29762 6 29773 6 29774 6 29778 6 29779 6 29797 6 29800 6 29807 6 29809 6 29813 6 29816 6 29821 6 29831 6 29832 6 29833 6 29836 6 29840 6 29845 6 29846 6 29851 6 29857 6 29858 6 29860 6 29865 6 29866 6 29874 6 29893 6 29894 6 29895 6 29899 6 29903 6 29907 6 29909 6 29916 6 29922 6 29929 6 29933 6 29936 6 29942 6 29943 6 29946 6 29951 6 29964 6 29966 6 29972 6 29980 6 29981 6 29985 6 29989 6 29993 6 29994 6 29995 6 29996 6 30005 6 30008 6 30015 6 30017 6 30018 6 30020 6 30025 6 30027 6 30030 6 30031 6 30032 6 30056 6 30059 6 30073 6 30081 6 30089 6 30095 6 30096 6 30099 6 30103 6 30104 6 30107 6 30110 6 30118 6 30125 6 30130 6 30140 6 30166 6 30177 6 30184 6 30193 6 30195 6 30202 6 30210 6 30213 6 30222 6 30224 6 30226 6 30235 6 30239 6 30244 6 30251 6 30258 6 30265 6 30273 6 30287 6 30289 6 30297 6 30302 6 30310 6 30320 6 30332 6 30334 6 30345 6 30346 6 30352 6 30353 6 30363 6 30365 6 30369 6 30386 6 30399 6 30400 6 30406 6 30416 6 30423 6 30430 6 30439 6 30452 6 30455 6 30458 6 30465 6 30479 6 30491 6 30493 6 30494 6 30496 6 30497 6 30498 6 30499 6 30507 6 30509 6 30511 6 30515 6 30532 6 30548 6 30553 6 30555 6 30561 6 30578 6 30579 6 30580 6 30584 6 30604 6 30628 6 30633 6 30642 6 30647 6 30653 6 30661 6 30663 6 30665 6 30670 6 30673 6 30684 6 30685 6 30696 6 30698 6 30730 6 30733 6 30741 6 30745 6 30754 6 30760 6 30764 6 30766 6 30768 6 30772 6 30778 6 30783 6 30785 6 30809 6 30810 6 30818 6 30820 6 30824 6 30828 6 30832 6 30844 6 30853 6 30860 6 30863 6 30864 6 30865 6 30866 6 30876 6 30882 6 30888 6 30899 6 30917 6 30919 6 30920 6 30929 6 30940 6 30943 6 30948 6 30953 6 30963 6 30974 6 30984 6 30986 6 30994 6 30998 6 30999 6 31001 6 31004 6 31010 6 31011 6 31016 6 31021 6 31024 6 31030 6 31031 6 31033 6 31035 6 31039 6 31043 6 31053 6 31057 6 31060 6 31063 6 31076 6 31082 6 31098 6 31099 6 31105 6 31109 6 31113 6 31117 6 31119 6 31121 6 31126 6 31139 6 31144 6 31148 6 31166 6 31176 6 31178 6 31194 6 31196 6 31199 6 31202 6 31221 6 31229 6 31237 6 31241 6 31253 6 31256 6 31261 6 31262 6 31263 6 31264 6 31270 6 31271 6 31278 6 31281 6 31286 6 31287 6 31288 6 31293 6 31295 6 31298 6 31313 6 31315 6 31322 6 31323 6 31324 6 31330 6 31335 6 31338 6 31339 6 31342 6 31354 6 31362 6 31363 6 31368 6 31373 6 31376 6 31381 6 31390 6 31391 6 31398 6 31405 6 31407 6 31408 6 31410 6 31420 6 31421 6 31423 6 31428 6 31434 6 31442 6 31444 6 31454 6 31457 6 31461 6 31466 6 31469 6 31485 6 31488 6 31494 6 31499 6 31503 6 31509 6 31513 6 31518 6 31527 6 31529 6 31532 6 31539 6 31541 6 31542 6 31543 6 31546 6 31547 6 31558 6 31561 6 31588 6 31589 6 31598 6 31613 6 31614 6 31615 6 31622 6 31649 6 31650 6 31661 6 31674 6 31691 6 31696 6 31703 6 31706 6 31707 6 31727 6 31728 6 31738 6 31741 6 31750 6 31751 6 31757 6 31759 6 31768 6 31785 6 31789 6 31797 6 31801 6 31807 6 31811 6 31814 6 31824 6 31830 6 31831 6 31839 6 31844 6 31846 6 31848 6 31864 6 31868 6 31873 6 31879 6 31885 6 31893 6 31895 6 31903 6 31921 6 31928 6 31940 6 31949 6 31957 6 31963 6 31965 6 31970 6 31974 6 31975 6 31977 6 31978 6 31984 6 31988 6 31991 6 32001 6 32007 6 32009 6 32014 6 32033 6 32036 6 32040 6 32048 6 32050 6 32051 6 32053 6 32055 6 32080 6 32086 6 32087 6 32088 6 32089 6 32092 6 32098 6 32100 6 32114 6 32128 6 32139 6 32144 6 32145 6 32146 6 32160 6 32175 6 32180 6 32185 6 32189 6 32193 6 32194 6 32207 6 32208 6 32213 6 32218 6 32228 6 32230 6 32232 6 32251 6 32261 6 32268 6 32271 6 32282 6 32293 6 32302 6 32312 6 32332 6 32335 6 32337 6 32342 6 32350 6 32357 6 32360 6 32363 6 32380 6 32381 6 32384 6 32385 6 32389 6 32395 6 32401 6 32431 6 32436 6 32438 6 32443 6 32444 6 32447 6 32451 6 32454 6 32470 6 32473 6 32480 6 32482 6 32484 6 32486 6 32487 6 32492 6 32494 6 32495 6 32496 6 32500 6 32503 6 32526 6 32530 6 32534 6 32548 6 32549 6 32553 6 32556 6 32558 6 32559 6 32567 6 32577 6 32582 6 32591 6 32595 6 32596 6 32597 6 32607 6 32611 6 32614 6 32616 6 32618 6 32622 6 32631 6 32637 6 32640 6 32642 6 32650 6 32652 6 32658 6 32664 6 32677 6 32681 6 32689 6 32693 6 32704 6 32707 6 32711 6 32714 6 32717 6 32719 6 32732 6 32735 6 32737 6 32759 6 32760 6 32761 6 32766 6 32768 6 32769 6 32771 6 32778 6 32785 6 32791 6 32794 6 32798 6 32816 6 32819 6 32822 6 32824 6 32828 6 32834 6 32835 6 32837 6 32841 6 32846 6 32852 6 32857 6 32858 6 32861 6 32890 6 32899 6 32907 6 32921 6 32922 6 32927 6 32929 6 32936 6 32937 6 32943 6 32948 6 32949 6 32953 6 32956 6 32960 6 32964 6 32967 6 32980 6 32982 6 32985 6 32987 6 32996 6 33001 6 33004 6 33007 6 33013 6 33016 6 33018 6 33022 6 33025 6 33027 6 33033 6 33038 6 33039 6 33043 6 33046 6 33052 6 33055 6 33060 6 33068 6 33074 6 33078 6 33081 6 33090 6 33094 6 33115 6 33122 6 33126 6 33128 6 33138 6 33142 6 33150 6 33152 6 33153 6 33160 6 33169 6 33172 6 33175 6 33176 6 33185 6 33188 6 33191 6 33193 6 33208 6 33210 6 33213 6 33214 6 33230 6 33234 6 33239 6 33240 6 33270 6 33286 6 33293 6 33300 6 33316 6 33332 6 33333 6 33334 6 33336 6 33337 6 33351 6 33353 6 33357 6 33365 6 33387 6 33391 6 33402 6 33408 6 33411 6 33416 6 33421 6 33422 6 33441 6 33447 6 33451 6 33456 6 33464 6 33480 6 33481 6 33482 6 33489 6 33490 6 33493 6 33494 6 33499 6 33519 6 33525 6 33530 6 33531 6 33536 6 33546 6 33551 6 33556 6 33558 6 33559 6 33564 6 33579 6 33582 6 33592 6 33593 6 33599 6 33609 6 33611 6 33630 6 33631 6 33638 6 33648 6 33649 6 33662 6 33664 6 33679 6 33681 6 33684 6 33703 6 33714 6 33731 6 33744 6 33749 6 33765 6 33771 6 33773 6 33776 6 33780 6 33798 6 33800 6 33812 6 33815 6 33818 6 33829 6 33836 6 33839 6 33852 6 33853 6 33854 6 33855 6 33864 6 33890 6 33894 6 33896 6 33901 6 33909 6 33916 6 33926 6 33927 6 33931 6 33932 6 33935 6 33952 6 33953 6 33967 6 33972 6 33979 6 33987 6 33988 6 34002 6 34011 6 34035 6 34037 6 34051 6 34056 6 34057 6 34058 6 34059 6 34065 6 34068 6 34072 6 34076 6 34078 6 34079 6 34084 6 34091 6 34101 6 34102 6 34114 6 34121 6 34133 6 34140 6 34143 6 34148 6 34155 6 34157 6 34160 6 34167 6 34168 6 34170 6 34179 6 34193 6 34199 6 34202 6 34209 6 34211 6 34215 6 34227 6 34229 6 34232 6 34233 6 34240 6 34241 6 34243 6 34245 6 34260 6 34265 6 34270 6 34276 6 34280 6 34282 6 34285 6 34303 6 34307 6 34308 6 34309 6 34317 6 34320 6 34322 6 34329 6 34349 6 34382 6 34384 6 34397 6 34398 6 34405 6 34411 6 34425 6 34426 6 34427 6 34434 6 34435 6 34436 6 34451 6 34455 6 34456 6 34459 6 34461 6 34462 6 34469 6 34471 6 34472 6 34481 6 34484 6 34497 6 34503 6 34506 6 34516 6 34522 6 34523 6 34527 6 34528 6 34530 6 34533 6 34540 6 34543 6 34547 6 34549 6 34553 6 34555 6 34556 6 34557 6 34569 6 34579 6 34581 6 34584 6 34591 6 34604 6 34605 6 34608 6 34616 6 34622 6 34625 6 34633 6 34636 6 34639 6 34650 6 34657 6 34660 6 34667 6 34671 6 34672 6 34685 6 34687 6 34692 6 34699 6 34706 6 34714 6 34717 6 34722 6 34723 6 34724 6 34733 6 34734 6 34738 6 34746 6 34747 6 34756 6 34761 6 34768 6 34770 6 34788 6 34799 6 34815 6 34818 6 34819 6 34821 6 34830 6 34845 6 34849 6 34855 6 34856 6 34859 6 34868 6 34877 6 34878 6 34880 6 34886 6 34894 6 34901 6 34910 6 34913 6 34915 6 34918 6 34919 6 34922 6 34925 6 34928 6 34932 6 34933 6 34937 6 34949 6 34952 6 34956 6 34961 6 34967 6 34976 6 34979 6 34985 6 34998 6 35002 6 35006 6 35010 6 35013 6 35017 6 35025 6 35027 6 35030 6 35034 6 35049 6 35057 6 35068 6 35071 6 35075 6 35077 6 35089 6 35097 6 35098 6 35106 6 35110 6 35116 6 35119 6 35127 6 35139 6 35144 6 35145 6 35146 6 35154 6 35159 6 35164 6 35166 6 35168 6 35176 6 35180 6 35189 6 35190 6 35193 6 35195 6 35201 6 35202 6 35222 6 35227 6 35234 6 35236 6 35253 6 35258 6 35265 6 35267 6 35277 6 35279 6 35280 6 35281 6 35286 6 35288 6 35289 6 35296 6 35300 6 35306 6 35309 6 35317 6 35318 6 35319 6 35322 6 35323 6 35325 6 35329 6 35330 6 35334 6 35338 6 35349 6 35351 6 35353 6 35358 6 35359 6 35362 6 35384 6 35389 6 35398 6 35414 6 35430 6 35446 6 35460 6 35461 6 35467 6 35471 6 35498 6 35503 6 35513 6 35516 6 35520 6 35529 6 35537 6 35540 6 35550 6 35553 6 35554 6 35556 6 35558 6 35564 6 35565 6 35571 6 35587 6 35590 6 35592 6 35607 6 35608 6 35610 6 35625 6 35634 6 35636 6 35637 6 35639 6 35640 6 35643 6 35644 6 35654 6 35655 6 35657 6 35658 6 35667 6 35669 6 35683 6 35693 6 35702 6 35706 6 35742 6 35747 6 35748 6 35760 6 35774 6 35776 6 35785 6 35790 6 35793 6 35801 6 35802 6 35809 6 35815 6 35820 6 35822 6 35823 6 35824 6 35825 6 35828 6 35830 6 35838 6 35842 6 35843 6 35852 6 35864 6 35881 6 35886 6 35888 6 35891 6 35893 6 35897 6 35907 6 35913 6 35918 6 35929 6 35931 6 35934 6 35939 6 35960 6 35966 6 35970 6 35981 6 35989 6 35998 6 36005 6 36014 6 36019 6 36021 6 36029 6 36031 6 36032 6 36042 6 36045 6 36053 6 36074 6 36078 6 36081 6 36082 6 36090 6 36096 6 36108 6 36112 6 36117 6 36118 6 36120 6 36134 6 36139 6 36145 6 36157 6 36166 6 36173 6 36188 6 36210 6 36224 6 36227 6 36231 6 36233 6 36236 6 36237 6 36240 6 36245 6 36247 6 36257 6 36258 6 36284 6 36288 6 36292 6 36296 6 36304 6 36308 6 36309 6 36312 6 36327 6 36330 6 36333 6 36340 6 36348 6 36352 6 36354 6 36355 6 36358 6 36364 6 36366 6 36368 6 36377 6 36378 6 36381 6 36383 6 36388 6 36392 6 36398 6 36400 6 36404 6 36412 6 36416 6 36419 6 36429 6 36441 6 36442 6 36445 6 36449 6 36474 6 36487 6 36491 6 36492 6 36493 6 36500 6 36512 6 36522 6 36530 6 36531 6 36532 6 36537 6 36554 6 36558 6 36566 6 36572 6 36574 6 36575 6 36577 6 36579 6 36581 6 36586 6 36587 6 36588 6 36591 6 36596 6 36609 6 36613 6 36619 6 36624 6 36629 6 36630 6 36635 6 36649 6 36654 6 36655 6 36665 6 36666 6 36667 6 36677 6 36679 6 36681 6 36684 6 36695 6 36696 6 36700 6 36702 6 36707 6 36710 6 36717 6 36730 6 36747 6 36759 6 36771 6 36779 6 36780 6 36785 6 36789 6 36790 6 36795 6 36800 6 36801 6 36820 6 36823 6 36825 6 36830 6 36832 6 36835 6 36840 6 36845 6 36848 6 36849 6 36856 6 36862 6 36863 6 36867 6 36870 6 36874 6 36877 6 36881 6 36883 6 36890 6 36892 6 36909 6 36915 6 36931 6 36934 6 36943 6 36944 6 36951 6 36961 6 36977 6 36984 6 36987 6 36997 6 37000 6 37005 6 37010 6 37017 6 37018 6 37019 6 37023 6 37028 6 37031 6 37049 6 37056 6 37059 6 37067 6 37070 6 37071 6 37073 6 37078 6 37080 6 37090 6 37094 6 37100 6 37110 6 37139 6 37165 6 37168 6 37170 6 37182 6 37186 6 37188 6 37191 6 37192 6 37200 6 37204 6 37206 6 37210 6 37218 6 37222 6 37226 6 37239 6 37249 6 37254 6 37264 6 37266 6 37271 6 37272 6 37280 6 37283 6 37284 6 37288 6 37289 6 37302 6 37314 6 37323 6 37329 6 37332 6 37335 6 37337 6 37339 6 37341 6 37349 6 37350 6 37354 6 37355 6 37358 6 37360 6 37363 6 37369 6 37371 6 37377 6 37392 6 37400 6 37402 6 37408 6 37411 6 37420 6 37426 6 37430 6 37431 6 37437 6 37440 6 37445 6 37450 6 37461 6 37474 6 37491 6 37506 6 37508 6 37510 6 37513 6 37521 6 37523 6 37528 6 37530 6 37536 6 37541 6 37545 6 37552 6 37555 6 37562 6 37566 6 37571 6 37577 6 37579 6 37580 6 37583 6 37584 6 37588 6 37601 6 37609 6 37615 6 37623 6 37637 6 37642 6 37643 6 37648 6 37653 6 37659 6 37662 6 37670 6 37675 6 37684 6 37693 6 37696 6 37707 6 37713 6 37715 6 37716 6 37724 6 37727 6 37731 6 37743 6 37744 6 37746 6 37755 6 37756 6 37759 6 37761 6 37770 6 37795 6 37803 6 37817 6 37821 6 37824 6 37826 6 37829 6 37830 6 37831 6 37833 6 37837 6 37842 6 37845 6 37854 6 37856 6 37857 6 37867 6 37869 6 37902 6 37905 6 37915 6 37922 6 37938 6 37943 6 37944 6 37946 6 37957 6 37965 6 37968 6 37969 6 37993 6 38000 6 38003 6 38011 6 38036 6 38051 6 38053 6 38063 6 38066 6 38067 6 38071 6 38084 6 38087 6 38088 6 38089 6 38097 6 38102 6 38106 6 38107 6 38117 6 38122 6 38129 6 38132 6 38156 6 38163 6 38170 6 38177 6 38178 6 38181 6 38185 6 38191 6 38197 6 38227 6 38229 6 38248 6 38253 6 38261 6 38266 6 38285 6 38290 6 38303 6 38308 6 38328 6 38337 6 38340 6 38342 6 38352 6 38362 6 38364 6 38365 6 38366 6 38367 6 38368 6 38374 6 38380 6 38382 6 38385 6 38387 6 38394 6 38395 6 38396 6 38404 6 38406 6 38421 6 38426 6 38428 6 38431 6 38435 6 38441 6 38444 6 38449 6 38450 6 38453 6 38455 6 38473 6 38480 6 38490 6 38515 6 38520 6 38522 6 38528 6 38531 6 38532 6 38539 6 38543 6 38544 6 38547 6 38551 6 38558 6 38595 6 38602 6 38606 6 38608 6 38617 6 38623 6 38624 6 38638 6 38639 6 38648 6 38649 6 38655 6 38661 6 38665 6 38667 6 38668 6 38676 6 38678 6 38683 6 38685 6 38690 6 38697 6 38706 6 38708 6 38714 6 38717 6 38720 6 38726 6 38740 6 38742 6 38746 6 38753 6 38764 6 38765 6 38780 6 38785 6 38788 6 38789 6 38792 6 38797 6 38799 6 38814 6 38820 6 38824 6 38827 6 38835 6 38848 6 38853 6 38858 6 38864 6 38868 6 38869 6 38887 6 38889 6 38894 6 38898 6 38909 6 38921 6 38926 6 38927 6 38936 6 38937 6 38939 6 38940 6 38946 6 38957 6 38958 6 38971 6 38977 6 38978 6 38979 6 38980 6 38981 6 38982 6 38998 6 39008 6 39010 6 39023 6 39025 6 39029 6 39031 6 39032 6 39035 6 39038 6 39040 6 39042 6 39050 6 39052 6 39057 6 39068 6 39075 6 39076 6 39077 6 39078 6 39082 6 39087 6 39088 6 39090 6 39092 6 39106 6 39108 6 39112 6 39116 6 39123 6 39124 6 39125 6 39129 6 39151 6 39152 6 39153 6 39160 6 39166 6 39178 6 39182 6 39198 6 39201 6 39208 6 39212 6 39222 6 39223 6 39224 6 39237 6 39243 6 39279 6 39292 6 39293 6 39296 6 39306 6 39318 6 39319 6 39331 6 39332 6 39341 6 39343 6 39358 6 39362 6 39363 6 39368 6 39369 6 39372 6 39379 6 39382 6 39392 6 39395 6 39402 6 39411 6 39412 6 39413 6 39435 6 39444 6 39460 6 39461 6 39463 6 39477 6 39479 6 39484 6 39490 6 39494 6 39500 6 39507 6 39520 6 39521 6 39527 6 39540 6 39558 6 39583 6 39586 6 39589 6 39598 6 39599 6 39601 6 39616 6 39626 6 39638 6 39641 6 39654 6 39663 6 39674 6 39679 6 39681 6 39683 6 39687 6 39707 6 39711 6 39714 6 39735 6 39746 6 39747 6 39773 6 39775 6 39779 6 39786 6 39790 6 39792 6 39796 6 39809 6 39820 6 39826 6 39827 6 39836 6 39850 6 39851 6 39864 6 39883 6 39891 6 39901 6 39904 6 39910 6 39911 6 39926 6 39938 6 39947 6 39953 6 39954 6 39960 6 39962 6 39969 6 39970 6 39978 6 39991 6 39994 6 40009 6 40028 6 40037 6 40082 6 40085 6 40095 6 40103 6 40108 6 40120 6 40121 6 40136 6 40143 6 40150 6 40162 6 40165 6 40170 6 40182 6 40191 6 40196 6 40200 6 40208 6 40209 6 40210 6 40211 6 40213 6 40228 6 40232 6 40243 6 40258 6 40265 6 40274 6 40277 6 40288 6 40292 6 40316 6 40318 6 40328 6 40338 6 40346 6 40347 6 40351 6 40353 6 40357 6 40360 6 40361 6 40378 6 40388 6 40397 6 40407 6 40409 6 40410 6 40415 6 40421 6 40430 6 40434 6 40437 6 40440 6 40443 6 40449 6 40456 6 40459 6 40462 6 40465 6 40469 6 40473 6 40474 6 40475 6 40479 6 40495 6 40501 6 40509 6 40512 6 40514 6 40527 6 40537 6 40539 6 40550 6 40551 6 40553 6 40554 6 40557 6 40575 6 40576 6 40586 6 40587 6 40589 6 40591 6 40594 6 40602 6 40605 6 40635 6 40636 6 40639 6 40655 6 40666 6 40667 6 40694 6 40703 6 40715 6 40733 6 40738 6 40758 6 40769 6 40774 6 40778 6 40787 6 40792 6 40794 6 40798 6 40806 6 40810 6 40811 6 40813 6 40824 6 40830 6 40831 6 40834 6 40848 6 40850 6 40851 6 40861 6 40870 6 40877 6 40883 6 40885 6 40886 6 40888 6 40904 6 40906 6 40919 6 40922 6 40925 6 40935 6 40940 6 40946 6 40948 6 40950 6 40954 6 40956 6 40957 6 40958 6 40962 6 40964 6 40969 6 40977 6 40985 6 41003 6 41006 6 41007 6 41026 6 41031 6 41033 6 41034 6 41035 6 41038 6 41040 6 41042 6 41044 6 41045 6 41048 6 41049 6 41051 6 41052 6 41060 6 41062 6 41067 6 41070 6 41073 6 41075 6 41082 6 41092 6 41098 6 41105 6 41107 6 41115 6 41118 6 41124 6 41127 6 41129 6 41131 6 41139 6 41143 6 41152 6 41153 6 41157 6 41159 6 41160 6 41164 6 41168 6 41171 6 41172 6 41174 6 41201 6 41205 6 41207 6 41210 6 41211 6 41216 6 41220 6 41221 6 41230 6 41239 6 41240 6 41244 6 41248 6 41251 6 41252 6 41253 6 41280 6 41285 6 41302 6 41306 6 41316 6 41317 6 41318 6 41323 6 41328 6 41349 6 41361 6 41363 6 41365 6 41371 6 41374 6 41377 6 41380 6 41387 6 41395 6 41397 6 41402 6 41403 6 41412 6 41416 6 41418 6 41421 6 41423 6 41424 6 41425 6 41428 6 41429 6 41431 6 41438 6 41442 6 41444 6 41450 6 41482 6 41487 6 41497 6 41498 6 41501 6 41510 6 41514 6 41522 6 41532 6 41543 6 41546 6 41548 6 41554 6 41560 6 41565 6 41567 6 41569 6 41574 6 41575 6 41582 6 41586 6 41591 6 41596 6 41600 6 41603 6 41604 6 41611 6 41614 6 41629 6 41630 6 41632 6 41638 6 41645 6 41657 6 41681 6 41684 6 41695 6 41698 6 41703 6 41705 6 41714 6 41715 6 41720 6 41722 6 41723 6 41727 6 41735 6 41739 6 41743 6 41749 6 41758 6 41777 6 41778 6 41783 6 41787 6 41788 6 41791 6 41792 6 41793 6 41821 6 41822 6 41826 6 41835 6 41840 6 41841 6 41846 6 41851 6 41852 6 41856 6 41857 6 41890 6 41891 6 41903 6 41917 6 41918 6 41920 6 41923 6 41927 6 41932 6 41933 6 41935 6 41943 6 41944 6 41950 6 41952 6 41960 6 41964 6 41965 6 41968 6 41970 6 41975 6 41979 6 41981 6 41982 6 41984 6 41987 6 41992 6 41994 6 41995 6 42000 6 42014 6 42021 6 42028 6 42030 6 42031 6 42032 6 42046 6 42047 6 42048 6 42061 6 42063 6 42066 6 42068 6 42087 6 42099 6 42100 6 42104 6 42107 6 42119 6 42132 6 42133 6 42141 6 42144 6 42147 6 42174 6 42176 6 42188 6 42212 6 42214 6 42235 6 42239 6 42244 6 42252 6 42255 6 42256 6 42284 6 42286 6 42288 6 42292 6 42298 6 42300 6 42302 6 42319 6 42328 6 42330 6 42333 6 42335 6 42351 6 42357 6 42361 6 42382 6 42386 6 42394 6 42395 6 42403 6 42404 6 42410 6 42420 6 42424 6 42425 6 42427 6 42430 6 42434 6 42439 6 42443 6 42445 6 42447 6 42456 6 42458 6 42472 6 42481 6 42484 6 42494 6 42496 6 42500 6 42501 6 42503 6 42510 6 42516 6 42522 6 42525 6 42527 6 42530 6 42542 6 42556 6 42558 6 42564 6 42570 6 42577 6 42594 6 42602 6 42609 6 42620 6 42627 6 42638 6 42645 6 42646 6 42659 6 42666 6 42678 6 42681 6 42685 6 42686 6 42705 6 42715 6 42733 6 42741 6 42743 6 42745 6 42747 6 42749 6 42752 6 42756 6 42765 6 42772 6 42778 6 42798 6 42811 6 42813 6 42816 6 42818 6 42830 6 42842 6 42843 6 42844 6 42848 6 42855 6 42858 6 42865 6 42881 6 42886 6 42895 6 42899 6 42901 6 42912 6 42913 6 42926 6 42928 6 42943 6 42952 6 42953 6 42976 6 42982 6 43001 6 43003 6 43006 6 43011 6 43015 6 43039 6 43046 6 43049 6 43056 6 43063 6 43066 6 43070 6 43072 6 43077 6 43090 6 43098 6 43102 6 43106 6 43120 6 43133 6 43134 6 43135 6 43136 6 43141 6 43162 6 43163 6 43170 6 43172 6 43175 6 43176 6 43184 6 43187 6 43193 6 43202 6 43206 6 43207 6 43208 6 43210 6 43231 6 43251 6 43252 6 43253 6 43260 6 43262 6 43264 6 43269 6 43290 6 43300 6 43301 6 43304 6 43324 6 43326 6 43337 6 43346 6 43347 6 43348 6 43349 6 43357 6 43369 6 43382 6 43384 6 43387 6 43391 6 43395 6 43400 6 43416 6 43418 6 43424 6 43436 6 43442 6 43443 6 43449 6 43458 6 43461 6 43464 6 43469 6 43477 6 43478 6 43495 6 43498 6 43499 6 43500 6 43503 6 43514 6 43518 6 43521 6 43522 6 43526 6 43527 6 43536 6 43539 6 43541 6 43543 6 43549 6 43551 6 43553 6 43565 6 43567 6 43573 6 43576 6 43582 6 43596 6 43600 6 43611 6 43618 6 43629 6 43633 6 43637 6 43650 6 43652 6 43656 6 43664 6 43666 6 43670 6 43673 6 43676 6 43683 6 43693 6 43698 6 43706 6 43708 6 43716 6 43717 6 43718 6 43721 6 43722 6 43732 6 43736 6 43740 6 43744 6 43745 6 43749 6 43751 6 43765 6 43766 6 43778 6 43785 6 43789 6 43797 6 43798 6 43810 6 43813 6 43818 6 43823 6 43827 6 43835 6 43836 6 43840 6 43850 6 43877 6 43883 6 43884 6 43887 6 43891 6 43894 6 43896 6 43905 6 43909 6 43919 6 43921 6 43929 6 43931 6 43933 6 43934 6 43935 6 43937 6 43939 6 43944 6 43948 6 43956 6 43968 6 43969 6 43973 6 43977 6 43984 6 43991 6 43993 6 43994 6 43998 6 44000 6 44002 6 44004 6 44020 6 44021 6 44025 6 44031 6 44034 6 44035 6 44048 6 44050 6 44062 6 44064 6 44076 6 44091 6 44093 6 44095 6 44097 6 44102 6 44112 6 44114 6 44154 6 44160 6 44166 6 44167 6 44175 6 44182 6 44188 6 44203 6 44205 6 44206 6 44217 6 44218 6 44221 6 44222 6 44232 6 44241 6 44242 6 44244 6 44245 6 44248 6 44256 6 44275 6 44288 6 44293 6 44295 6 44300 6 44303 6 44310 6 44316 6 44318 6 44319 6 44322 6 44328 6 44345 6 44357 6 44362 6 44364 6 44370 6 44379 6 44383 6 44387 6 44391 6 44394 6 44403 6 44404 6 44407 6 44415 6 44419 6 44420 6 44422 6 44423 6 44429 6 44431 6 44432 6 44436 6 44438 6 44441 6 44443 6 44451 6 44456 6 44465 6 44479 6 44490 6 44492 6 44495 6 44501 6 44504 6 44505 6 44506 6 44523 6 44524 6 44536 6 44542 6 44544 6 44551 6 44554 6 44556 6 44569 6 44572 6 44573 6 44575 6 44582 6 44588 6 44590 6 44595 6 44597 6 44611 6 44613 6 44615 6 44622 6 44625 6 44628 6 44640 6 44646 6 44648 6 44652 6 44655 6 44661 6 44668 6 44669 6 44672 6 44675 6 44676 6 44677 6 44686 6 44688 6 44694 6 44697 6 44702 6 44721 6 44728 6 44752 6 44753 6 44758 6 44761 6 44784 6 44788 6 44792 6 44794 6 44803 6 44818 6 44819 6 44825 6 44831 6 44832 6 44835 6 44839 6 44848 6 44849 6 44887 6 44892 6 44896 6 44905 6 44906 6 44911 6 44912 6 44916 6 44922 6 44925 6 44926 6 44927 6 44928 6 44934 6 44939 6 44943 6 44946 6 44949 6 44950 6 44960 6 44964 6 44973 6 44976 6 44988 6 44994 6 44996 6 44998 6 44999 6 45001 6 45002 6 45011 6 45023 6 45025 6 45031 6 45033 6 45047 6 45052 6 45053 6 45054 6 45055 6 45070 6 45074 6 45076 6 45081 6 45102 6 45107 6 45108 6 45113 6 45117 6 45118 6 45123 6 45128 6 45131 6 45135 6 45138 6 45140 6 45145 6 45152 6 45159 6 45160 6 45163 6 45170 6 45187 6 45188 6 45189 6 45193 6 45196 6 45199 6 45207 6 45209 6 45224 6 45226 6 45243 6 45248 6 45252 6 45253 6 45262 6 45283 6 45288 6 45291 6 45293 6 45294 6 45298 6 45299 6 45312 6 45327 6 45336 6 45338 6 45339 6 45340 6 45351 6 45356 6 45358 6 45368 6 45370 6 45371 6 45390 6 45391 6 45403 6 45409 6 45430 6 45438 6 45439 6 45443 6 45445 6 45460 6 45461 6 45469 6 45474 6 45477 6 45483 6 45488 6 45498 6 45502 6 45504 6 45507 6 45511 6 45516 6 45519 6 45530 6 45531 6 45537 6 45546 6 45555 6 45560 6 45561 6 45564 6 45573 6 45587 6 45596 6 45597 6 45599 6 45615 6 45617 6 45628 6 45630 6 45636 6 45648 6 45651 6 45656 6 45658 6 45676 6 45678 6 45699 6 45715 6 45720 6 45721 6 45722 6 45725 6 45726 6 45727 6 45732 6 45736 6 45738 6 45744 6 45745 6 45755 6 45762 6 45771 6 45776 6 45785 6 45793 6 45796 6 45810 6 45820 6 45821 6 45836 6 45842 6 45843 6 45845 6 45846 6 45856 6 45865 6 45872 6 45875 6 45882 6 45900 6 45908 6 45910 6 45922 6 45930 6 45932 6 45937 6 45945 6 45947 6 45951 6 45954 6 45955 6 45956 6 45972 6 45976 6 45989 6 45995 6 46000 6 46002 6 46008 6 46025 6 46028 6 46030 6 46034 6 46044 6 46048 6 46049 6 46050 6 46051 6 46052 6 46058 6 46060 6 46066 6 46068 6 46074 6 46080 6 46081 6 46082 6 46085 6 46110 6 46112 6 46116 6 46119 6 46120 6 46123 6 46125 6 46141 6 46148 6 46158 6 46185 6 46186 6 46188 6 46193 6 46196 6 46201 6 46212 6 46214 6 46217 6 46220 6 46249 6 46253 6 46260 6 46261 6 46268 6 46269 6 46270 6 46271 6 46275 6 46279 6 46280 6 46281 6 46298 6 46323 6 46329 6 46355 6 46356 6 46361 6 46362 6 46370 6 46375 6 46378 6 46383 6 46397 6 46400 6 46407 6 46411 6 46418 6 46422 6 46427 6 46429 6 46436 6 46440 6 46443 6 46446 6 46450 6 46454 6 46455 6 46476 6 46483 6 46486 6 46520 6 46543 6 46549 6 46565 6 46568 6 46573 6 46578 6 46604 6 46610 6 46612 6 46615 6 46625 6 46632 6 46637 6 46639 6 46645 6 46653 6 46664 6 46677 6 46684 6 46688 6 46702 6 46714 6 46716 6 46729 6 46735 6 46744 6 46746 6 46747 6 46748 6 46750 6 46758 6 46760 6 46761 6 46769 6 46776 6 46778 6 46795 6 46808 6 46827 6 46832 6 46833 6 46842 6 46843 6 46848 6 46855 6 46857 6 46861 6 46866 6 46874 6 46879 6 46883 6 46891 6 46899 6 46909 6 46912 6 46913 6 46914 6 46915 6 46916 6 46917 6 46927 6 46933 6 46936 6 46942 6 46948 6 46949 6 46952 6 46956 6 46962 6 46977 6 46987 6 46990 6 46992 6 46994 6 46998 6 47023 6 47024 6 47026 6 47031 6 47034 6 47035 6 47038 6 47039 6 47045 6 47054 6 47056 6 47058 6 47073 6 47074 6 47075 6 47086 6 47088 6 47090 6 47091 6 47096 6 47113 6 47114 6 47120 6 47126 6 47136 6 47137 6 47141 6 47142 6 47143 6 47147 6 47156 6 47162 6 47166 6 47170 6 47173 6 47176 6 47180 6 47183 6 47189 6 47211 6 47216 6 47222 6 47229 6 47231 6 47234 6 47237 6 47247 6 47259 6 47260 6 47264 6 47281 6 47283 6 47289 6 47291 6 47297 6 47303 6 47304 6 47305 6 47307 6 47319 6 47320 6 47322 6 47323 6 47335 6 47337 6 47342 6 47343 6 47344 6 47347 6 47352 6 47356 6 47358 6 47366 6 47376 6 47383 6 47388 6 47389 6 47391 6 47393 6 47407 6 47419 6 47424 6 47428 6 47431 6 47434 6 47451 6 47465 6 47475 6 47485 6 47486 6 47496 6 47499 6 47501 6 47504 6 47506 6 47521 6 47525 6 47531 6 47536 6 47544 6 47547 6 47551 6 47555 6 47558 6 47562 6 47582 6 47590 6 47591 6 47593 6 47598 6 47600 6 47605 6 47606 6 47619 6 47635 6 47638 6 47654 6 47663 6 47665 6 47674 6 47676 6 47688 6 47690 6 47694 6 47696 6 47697 6 47711 6 47713 6 47724 6 47729 6 47744 6 47746 6 47752 6 47756 6 47761 6 47762 6 47764 6 47770 6 47776 6 47782 6 47787 6 47790 6 47791 6 47792 6 47795 6 47796 6 47798 6 47807 6 47815 6 47844 6 47847 6 47866 6 47870 6 47881 6 47893 6 47894 6 47895 6 47902 6 47904 6 47909 6 47916 6 47924 6 47926 6 47944 6 47945 6 47951 6 47976 6 47977 6 47978 6 47994 6 48000 6 48002 6 48016 6 48020 6 48021 6 48034 6 48035 6 48038 6 48041 6 48043 6 48078 6 48092 6 48097 6 48100 6 48111 6 48125 6 48128 6 48147 6 48148 6 48170 6 48172 6 48175 6 48176 6 48177 6 48178 6 48182 6 48185 6 48186 6 48189 6 48192 6 48196 6 48220 6 48223 6 48231 6 48232 6 48235 6 48240 6 48247 6 48257 6 48274 6 48294 6 48296 6 48298 6 48304 6 48314 6 48319 6 48322 6 48326 6 48328 6 48332 6 48338 6 48375 6 48382 6 48397 6 48399 6 48400 6 48407 6 48416 6 48427 6 48431 6 48432 6 48435 6 48445 6 48460 6 48461 6 48465 6 48469 6 48486 6 48495 6 48498 6 48499 6 48500 6 48505 6 48506 6 48516 6 48517 6 48520 6 48526 6 48529 6 48531 6 48536 6 48548 6 48550 6 48551 6 48561 6 48573 6 48574 6 48576 6 48580 6 48584 6 48596 6 48604 6 48607 6 48618 6 48621 6 48625 6 48630 6 48643 6 48649 6 48665 6 48683 6 48697 6 48703 6 48713 6 48719 6 48732 6 48733 6 48747 6 48756 6 48759 6 48790 6 48811 6 48812 6 48823 6 48827 6 48828 6 48867 6 48871 6 48876 6 48886 6 48889 6 48903 6 48907 6 48910 6 48912 6 48914 6 48953 6 48961 6 48963 6 48971 6 48978 6 48981 6 48986 6 48992 6 48994 6 49004 6 49017 6 49032 6 49033 6 49037 6 49038 6 49042 6 49044 6 49055 6 49061 6 49068 6 49072 6 49074 6 49078 6 49084 6 49085 6 49100 6 49104 6 49108 6 49114 6 49116 6 49126 6 49138 6 49140 6 49142 6 49143 6 49151 6 49155 6 49166 6 49170 6 49173 6 49176 6 49202 6 49215 6 49220 6 49224 6 49225 6 49226 6 49229 6 49237 6 49268 6 49273 6 49282 6 49284 6 49285 6 49287 6 49293 6 49295 6 49307 6 49312 6 49313 6 49314 6 49317 6 49328 6 49330 6 49331 6 49334 6 49336 6 49346 6 49348 6 49352 6 49358 6 49360 6 49375 6 49383 6 49385 6 49390 6 49395 6 49401 6 49403 6 49415 6 49416 6 49420 6 49421 6 49431 6 49443 6 49445 6 49459 6 49460 6 49462 6 49472 6 49473 6 49477 6 49482 6 49485 6 49488 6 49491 6 49499 6 49501 6 49502 6 49522 6 49528 6 49533 6 49535 6 49542 6 49546 6 49550 6 49556 6 49564 6 49569 6 49571 6 49579 6 49582 6 49589 6 49595 6 49603 6 49608 6 49614 6 49625 6 49626 6 49637 6 49640 6 49648 6 49656 6 49657 6 49658 6 49664 6 49666 6 49668 6 49682 6 49683 6 49693 6 49694 6 49695 6 49696 6 49697 6 49701 6 49714 6 49721 6 49724 6 49727 6 49735 6 49740 6 49745 6 49751 6 49752 6 49755 6 49757 6 49763 6 49769 6 49770 6 49776 6 49788 6 49797 6 49801 6 49825 6 49830 6 49832 6 49842 6 49845 6 49848 6 49865 6 49870 6 49873 6 49882 6 49886 6 49892 6 49903 6 49905 6 49906 6 49907 6 49908 6 49913 6 49914 6 49915 6 49920 6 49921 6 49923 6 49931 6 49937 6 49948 6 49964 6 49985 6 49986 6 49987 6 49996 6 49999 6 50004 6 50008 6 50012 6 50022 6 50031 6 50034 6 50038 6 50040 6 50042 6 50047 6 50054 6 50062 6 50064 6 50069 6 50076 6 50079 6 50080 6 50083 6 50089 6 50090 6 50093 6 50100 6 50107 6 50111 6 50112 6 50128 6 50142 6 50157 6 50168 6 50176 6 50186 6 50188 6 50195 6 50196 6 50198 6 50208 6 50209 6 50212 6 50220 6 50223 6 50229 6 50237 6 50243 6 50254 6 50255 6 50257 6 50258 6 50264 6 50267 6 50273 6 50278 6 50279 6 50282 6 50285 6 50287 6 50295 6 50297 6 50302 6 50303 6 50310 6 50316 6 50321 6 50322 6 50329 6 50332 6 50335 6 50336 6 50337 6 50342 6 50346 6 50348 6 50354 6 50364 6 50372 6 50375 6 50382 6 50389 6 50391 6 50393 6 50394 6 50410 6 50415 6 50424 6 50426 6 50430 6 50434 6 50438 6 50447 6 50450 6 50454 6 50455 6 50457 6 50458 6 50466 6 50470 6 50475 6 50480 6 50486 6 50492 6 50496 6 50498 6 50512 6 50530 6 50535 6 50536 6 50537 6 50548 6 50557 6 50564 6 50566 6 50568 6 50575 6 50581 6 50586 6 50606 6 50614 6 50617 6 50620 6 50625 6 50629 6 50631 6 50641 6 50651 6 50653 6 50659 6 50662 6 50709 6 50722 6 50731 6 50735 6 50737 6 50748 6 50763 6 50770 6 50771 6 50775 6 50776 6 50786 6 50788 6 50791 6 50795 6 50799 6 50802 6 50803 6 50816 6 50825 6 50826 6 50828 6 50830 6 50838 6 50848 6 50853 6 50858 6 50868 6 50872 6 50873 6 50878 6 50879 6 50884 6 50886 6 50892 6 50905 6 50918 6 50922 6 50924 6 50941 6 50958 6 50961 6 50963 6 50968 6 50974 6 50975 6 50989 6 50991 6 51001 6 51009 6 51010 6 51014 6 51017 6 51020 6 51021 6 51023 6 51025 6 51030 6 51032 6 51033 6 51047 6 51057 6 51058 6 51060 6 51063 6 51066 6 51070 6 51074 6 51075 6 51079 6 51082 6 51096 6 51099 6 51105 6 51107 6 51110 6 51120 6 51122 6 51149 6 51150 6 51164 6 51184 6 51200 6 51216 6 51219 6 51222 6 51223 6 51234 6 51235 6 51252 6 51261 6 51274 6 51275 6 51281 6 51290 6 51296 6 51302 6 51303 6 51309 6 51317 6 51327 6 51330 6 51335 6 51349 6 51353 6 51356 6 51357 6 51376 6 51379 6 51387 6 51388 6 51389 6 51391 6 51406 6 51421 6 51423 6 51426 6 51437 6 51438 6 51440 6 51446 6 51452 6 51455 6 51462 6 51465 6 51466 6 51472 6 51487 6 51488 6 51494 6 51495 6 51504 6 51507 6 51510 6 51530 6 51536 6 51540 6 51555 6 51556 6 51558 6 51561 6 51592 6 51597 6 51598 6 51601 6 51616 6 51622 6 51631 6 51635 6 51638 6 51653 6 51670 6 51671 6 51674 6 51678 6 51682 6 51683 6 51685 6 51689 6 51691 6 51696 6 51700 6 51715 6 51726 6 51732 6 51736 6 51738 6 51740 6 51744 6 51745 6 51753 6 51754 6 51760 6 51762 6 51763 6 51768 6 51778 6 51781 6 51796 6 51801 6 51802 6 51805 6 51814 6 51819 6 51823 6 51835 6 51846 6 51852 6 51864 6 51873 6 51875 6 51877 6 51879 6 51881 6 51883 6 51885 6 51890 6 51903 6 51910 6 51911 6 51919 6 51920 6 51924 6 51925 6 51927 6 51929 6 51934 6 51942 6 51943 6 51952 6 51960 6 51965 6 51973 6 51976 6 51978 6 51985 6 51988 6 52006 6 52008 6 52021 6 52029 6 52036 6 52037 6 52042 6 52044 6 52045 6 52047 6 52053 6 52057 6 52059 6 52062 6 52074 6 52077 6 52084 6 52091 6 52092 6 52094 6 52100 6 52102 6 52107 6 52113 6 52119 6 52124 6 52127 6 52129 6 52132 6 52136 6 52144 6 52151 6 52156 6 52163 6 52164 6 52169 6 52180 6 52182 6 52183 6 52192 6 52203 6 52204 6 52208 6 52218 6 52226 6 52228 6 52230 6 52236 6 52237 6 52259 6 52279 6 52287 6 52295 6 52297 6 52299 6 52300 6 52307 6 52310 6 52313 6 52316 6 52322 6 52324 6 52326 6 52327 6 52333 6 52336 6 52341 6 52349 6 52350 6 52353 6 52355 6 52364 6 52376 6 52381 6 52385 6 52389 6 52398 6 52399 6 52400 6 52412 6 52417 6 52423 6 52424 6 52425 6 52445 6 52451 6 52457 6 52466 6 52479 6 52481 6 52487 6 52489 6 52497 6 52501 6 52505 6 52517 6 52520 6 52534 6 52537 6 52539 6 52550 6 52569 6 52570 6 52573 6 52576 6 52588 6 52598 6 52608 6 52609 6 52611 6 52628 6 52629 6 52636 6 52652 6 52656 6 52658 6 52670 6 52674 6 52681 6 52683 6 52698 6 52706 6 52714 6 52716 6 52721 6 52728 6 52736 6 52737 6 52738 6 52744 6 52745 6 52753 6 52755 6 52757 6 52760 6 52769 6 52788 6 52789 6 52790 6 52798 6 52800 6 52803 6 52808 6 52818 6 52825 6 52833 6 52837 6 52840 6 52850 6 52852 6 52856 6 52869 6 52877 6 52878 6 52886 6 52890 6 52892 6 52904 6 52910 6 52913 6 52914 6 52929 6 52937 6 52943 6 52949 6 52953 6 52963 6 52965 6 52971 6 52988 6 53004 6 53026 6 53037 6 53044 6 53045 6 53047 6 53052 6 53054 6 53055 6 53061 6 53066 6 53068 6 53069 6 53070 6 53073 6 53085 6 53090 6 53092 6 53096 6 53119 6 53123 6 53126 6 53131 6 53133 6 53135 6 53137 6 53158 6 53163 6 53167 6 53168 6 53170 6 53184 6 53188 6 53189 6 53195 6 53198 6 53201 6 53206 6 53208 6 53211 6 53213 6 53214 6 53217 6 53220 6 53246 6 53260 6 53265 6 53275 6 53278 6 53281 6 53288 6 53301 6 53315 6 53322 6 53327 6 53332 6 53343 6 53344 6 53346 6 53353 6 53357 6 53358 6 53363 6 53372 6 53374 6 53377 6 53389 6 53390 6 53397 6 53401 6 53428 6 53436 6 53439 6 53443 6 53451 6 53476 6 53486 6 53492 6 53500 6 53508 6 53511 6 53515 6 53518 6 53523 6 53526 6 53531 6 53535 6 53536 6 53540 6 53546 6 53551 6 53556 6 53559 6 53565 6 53567 6 53589 6 53601 6 53602 6 53605 6 53606 6 53613 6 53626 6 53640 6 53642 6 53648 6 53649 6 53656 6 53657 6 53659 6 53660 6 53661 6 53662 6 53665 6 53677 6 53681 6 53682 6 53689 6 53693 6 53694 6 53697 6 53704 6 53711 6 53714 6 53716 6 53721 6 53722 6 53725 6 53750 6 53753 6 53761 6 53763 6 53765 6 53770 6 53782 6 53787 6 53791 6 53805 6 53811 6 53820 6 53829 6 53839 6 53840 6 53844 6 53855 6 53859 6 53862 6 53864 6 53867 6 53875 6 53880 6 53881 6 53897 6 53901 6 53921 6 53929 6 53932 6 53937 6 53957 6 53958 6 53962 6 53965 6 53966 6 53967 6 53977 6 53980 6 53991 6 53992 6 53995 6 54000 6 54006 6 54008 6 54013 6 54030 6 54034 6 54039 6 54050 6 54052 6 54054 6 54064 6 54084 6 54085 6 54090 6 54093 6 54096 6 54102 6 54114 6 54115 6 54117 6 54136 6 54142 6 54143 6 54161 6 54164 6 54167 6 54169 6 54182 6 54183 6 54185 6 54186 6 54189 6 54197 6 54198 6 54209 6 54219 6 54224 6 54227 6 54236 6 54240 6 54260 6 54271 6 54277 6 54283 6 54310 6 54311 6 54318 6 54319 6 54326 6 54332 6 54333 6 54336 6 54351 6 54354 6 54362 6 54369 6 54371 6 54372 6 54375 6 54377 6 54383 6 54385 6 54386 6 54399 6 54417 6 54423 6 54428 6 54431 6 54433 6 54434 6 54450 6 54458 6 54463 6 54470 6 54475 6 54476 6 54477 6 54478 6 54479 6 54488 6 54492 6 54497 6 54498 6 54500 6 54507 6 54508 6 54521 6 54525 6 54530 6 54545 6 54549 6 54560 6 54566 6 54570 6 54571 6 54576 6 54590 6 54591 6 54602 6 54603 6 54605 6 54607 6 54612 6 54614 6 54617 6 54618 6 54619 6 54622 6 54628 6 54635 6 54641 6 54644 6 54653 6 54656 6 54667 6 54670 6 54682 6 54683 6 54688 6 54690 6 54691 6 54694 6 54711 6 54713 6 54734 6 54755 6 54756 6 54766 6 54782 6 54801 6 54804 6 54818 6 54838 6 54843 6 54846 6 54852 6 54864 6 54871 6 54874 6 54876 6 54884 6 54896 6 54899 6 54905 6 54907 6 54913 6 54916 6 54924 6 54928 6 54929 6 54930 6 54937 6 54938 6 54951 6 54954 6 54964 6 54966 6 54972 6 54986 6 54988 6 54991 6 54995 6 54999 6 55007 6 55016 6 55032 6 55037 6 55051 6 55053 6 55057 6 55076 6 55078 6 55079 6 55085 6 55101 6 55106 6 55107 6 55127 6 55131 6 55135 6 55136 6 55137 6 55141 6 55150 6 55154 6 55156 6 55161 6 55168 6 55169 6 55183 6 55187 6 55197 6 55201 6 55210 6 55212 6 55220 6 55221 6 55235 6 55236 6 55254 6 55261 6 55265 6 55268 6 55269 6 55270 6 55271 6 55272 6 55279 6 55288 6 55313 6 55318 6 55327 6 55328 6 55341 6 55347 6 55351 6 55353 6 55364 6 55367 6 55374 6 55376 6 55384 6 55391 6 55392 6 55398 6 55404 6 55406 6 55412 6 55415 6 55422 6 55426 6 55430 6 55439 6 55440 6 55447 6 55448 6 55480 6 55481 6 55482 6 55490 6 55492 6 55510 6 55512 6 55517 6 55521 6 55531 6 55535 6 55562 6 55571 6 55576 6 55597 6 55606 6 55608 6 55618 6 55624 6 55627 6 55637 6 55647 6 55652 6 55661 6 55665 6 55681 6 55691 6 55701 6 55706 6 55713 6 55723 6 55725 6 55731 6 55734 6 55737 6 55741 6 55745 6 55750 6 55751 6 55756 6 55760 6 55761 6 55762 6 55763 6 55769 6 55783 6 55787 6 55796 6 55799 6 55801 6 55807 6 55810 6 55839 6 55866 6 55867 6 55868 6 55872 6 55873 6 55874 6 55877 6 55880 6 55884 6 55885 6 55888 6 55893 6 55897 6 55902 6 55904 6 55913 6 55923 6 55929 6 55938 6 55942 6 55944 6 55947 6 55952 6 55963 6 55976 6 55982 6 55983 6 55985 6 55987 6 55994 6 55996 6 56006 6 56010 6 56015 6 56016 6 56023 6 56032 6 56037 6 56046 6 56050 6 56054 6 56056 6 56063 6 56065 6 56077 6 56078 6 56079 6 56092 6 56097 6 56108 6 56113 6 56115 6 56117 6 56121 6 56123 6 56134 6 56148 6 56151 6 56158 6 56163 6 56174 6 56177 6 56186 6 56187 6 56194 6 56199 6 56202 6 56204 6 56205 6 56213 6 56219 6 56228 6 56229 6 56241 6 56244 6 56251 6 56261 6 56265 6 56268 6 56272 6 56282 6 56290 6 56298 6 56306 6 56311 6 56316 6 56320 6 56323 6 56327 6 56328 6 56357 6 56358 6 56365 6 56370 6 56383 6 56386 6 56399 6 56407 6 56412 6 56413 6 56416 6 56425 6 56429 6 56430 6 56432 6 56436 6 56446 6 56452 6 56455 6 56460 6 56466 6 56470 6 56474 6 56488 6 56494 6 56499 6 56523 6 56524 6 56528 6 56541 6 56545 6 56549 6 56555 6 56561 6 56562 6 56565 6 56575 6 56578 6 56580 6 56582 6 56585 6 56589 6 56592 6 56595 6 56602 6 56616 6 56617 6 56619 6 56626 6 56638 6 56640 6 56647 6 56654 6 56658 6 56677 6 56683 6 56687 6 56688 6 56695 6 56699 6 56702 6 56705 6 56722 6 56725 6 56730 6 56733 6 56734 6 56735 6 56759 6 56764 6 56766 6 56771 6 56788 6 56790 6 56795 6 56806 6 56822 6 56824 6 56829 6 56843 6 56846 6 56847 6 56874 6 56875 6 56878 6 56880 6 56882 6 56885 6 56896 6 56897 6 56899 6 56907 6 56910 6 56912 6 56920 6 56921 6 56926 6 56927 6 56930 6 56931 6 56934 6 56938 6 56950 6 56951 6 56955 6 56958 6 56963 6 56975 6 56976 6 56979 6 56986 6 57001 6 57004 6 57012 6 57030 6 57032 6 57036 6 57041 6 57052 6 57053 6 57055 6 57060 6 57069 6 57080 6 57087 6 57089 6 57096 6 57100 6 57105 6 57106 6 57117 6 57120 6 57122 6 57127 6 57133 6 57136 6 57141 6 57142 6 57144 6 57146 6 57163 6 57167 6 57170 6 57183 6 57184 6 57185 6 57186 6 57189 6 57191 6 57192 6 57210 6 57214 6 57229 6 57235 6 57246 6 57256 6 57262 6 57267 6 57271 6 57275 6 57289 6 57298 6 57313 6 57315 6 57321 6 57324 6 57326 6 57329 6 57354 6 57355 6 57356 6 57362 6 57369 6 57372 6 57374 6 57379 6 57397 6 57399 6 57401 6 57406 6 57416 6 57417 6 57418 6 57423 6 57437 6 57445 6 57458 6 57461 6 57463 6 57480 6 57481 6 57487 6 57491 6 57496 6 57516 6 57518 6 57524 6 57529 6 57534 6 57538 6 57544 6 57553 6 57557 6 57560 6 57561 6 57570 6 57576 6 57588 6 57593 6 57594 6 57595 6 57606 6 57611 6 57614 6 57625 6 57628 6 57631 6 57633 6 57644 6 57648 6 57651 6 57656 6 57660 6 57676 6 57678 6 57681 6 57683 6 57692 6 57699 6 57704 6 57725 6 57727 6 57736 6 57742 6 57759 6 57762 6 57766 6 57769 6 57770 6 57773 6 57776 6 57781 6 57785 6 57789 6 57794 6 57803 6 57806 6 57808 6 57809 6 57810 6 57811 6 57815 6 57817 6 57831 6 57836 6 57838 6 57845 6 57852 6 57854 6 57867 6 57874 6 57889 6 57896 6 57901 6 57908 6 57913 6 57914 6 57917 6 57920 6 57922 6 57924 6 57925 6 57937 6 57938 6 57942 6 57948 6 57961 6 57964 6 57976 6 57982 6 57983 6 57992 6 57998 6 58003 6 58007 6 58013 6 58020 6 58023 6 58024 6 58025 6 58030 6 58033 6 58039 6 58041 6 58043 6 58051 6 58052 6 58053 6 58055 6 58056 6 58068 6 58069 6 58071 6 58077 6 58089 6 58097 6 58100 6 58106 6 58108 6 58109 6 58116 6 58124 6 58126 6 58136 6 58144 6 58145 6 58146 6 58150 6 58153 6 58157 6 58174 6 58178 6 58182 6 58188 6 58192 6 58201 6 58204 6 58207 6 58208 6 58214 6 58217 6 58229 6 58237 6 58241 6 58242 6 58243 6 58246 6 58252 6 58276 6 58280 6 58284 6 58297 6 58306 6 58308 6 58314 6 58322 6 58324 6 58333 6 58338 6 58354 6 58356 6 58359 6 58361 6 58366 6 58367 6 58374 6 58378 6 58379 6 58389 6 58395 6 58402 6 58403 6 58413 6 58423 6 58426 6 58434 6 58443 6 58444 6 58445 6 58448 6 58451 6 58456 6 58473 6 58479 6 58483 6 58492 6 58505 6 58519 6 58523 6 58531 6 58534 6 58535 6 58544 6 58552 6 58558 6 58559 6 58585 6 58586 6 58589 6 58592 6 58601 6 58604 6 58606 6 58608 6 58609 6 58611 6 58621 6 58625 6 58627 6 58628 6 58630 6 58635 6 58641 6 58642 6 58646 6 58647 6 58674 6 58682 6 58687 6 58688 6 58691 6 58702 6 58706 6 58728 6 58729 6 58736 6 58740 6 58754 6 58758 6 58761 6 58775 6 58780 6 58789 6 58793 6 58794 6 58798 6 58799 6 58803 6 58813 6 58816 6 58817 6 58824 6 58830 6 58836 6 58847 6 58851 6 58856 6 58857 6 58865 6 58879 6 58880 6 58882 6 58887 6 58892 6 58909 6 58923 6 58930 6 58931 6 58943 6 58955 6 58957 6 58959 6 58961 6 58965 6 58968 6 58969 6 58979 6 58983 6 58987 6 58999 6 59002 6 59008 6 59010 6 59013 6 59015 6 59016 6 59018 6 59023 6 59033 6 59053 6 59065 6 59066 6 59071 6 59075 6 59093 6 59102 6 59111 6 59127 6 59133 6 59138 6 59151 6 59156 6 59157 6 59160 6 59161 6 59166 6 59174 6 59183 6 59191 6 59201 6 59206 6 59207 6 59208 6 59220 6 59232 6 59240 6 59243 6 59245 6 59267 6 59275 6 59276 6 59279 6 59283 6 59292 6 59294 6 59295 6 59296 6 59305 6 59307 6 59320 6 59327 6 59333 6 59334 6 59335 6 59337 6 59338 6 59342 6 59347 6 59351 6 59356 6 59358 6 59364 6 59376 6 59377 6 59380 6 59395 6 59414 6 59417 6 59418 6 59421 6 59425 6 59428 6 59429 6 59435 6 59440 6 59444 6 59451 6 59463 6 59469 6 59472 6 59476 6 59486 6 59487 6 59490 6 59493 6 59495 6 59501 6 59509 6 59512 6 59515 6 59517 6 59531 6 59536 6 59537 6 59539 6 59551 6 59554 6 59555 6 59560 6 59583 6 59586 6 59594 6 59599 6 59608 6 59611 6 59618 6 59623 6 59628 6 59630 6 59652 6 59658 6 59661 6 59667 6 59669 6 59671 6 59678 6 59681 6 59696 6 59698 6 59708 6 59709 6 59711 6 59722 6 59728 6 59744 6 59751 6 59752 6 59758 6 59767 6 59774 6 59786 6 59795 6 59812 6 59820 6 59841 6 59847 6 59849 6 59854 6 59866 6 59873 6 59877 6 59884 6 59885 6 59895 6 59898 6 59901 6 59907 6 59908 6 59914 6 59917 6 59919 6 59921 6 59922 6 59923 6 59935 6 59940 6 59941 6 59944 6 59957 6 59961 6 59968 6 59973 6 59985 6 59995 6 59999 6 60008 6 60009 6 60010 6 60013 6 60022 6 60023 6 60024 6 60025 6 60035 6 60036 6 60049 6 60051 6 60052 6 60065 6 60066 6 60089 6 60102 6 60105 6 60107 6 60120 6 60125 6 60130 6 60134 6 60135 6 60138 6 60143 6 60144 6 60146 6 60151 6 60155 6 60160 6 60163 6 60164 6 60165 6 60166 6 60167 6 60170 6 60175 6 60186 6 60190 6 60194 6 60200 6 60201 6 60210 6 60215 6 60227 6 60248 6 60263 6 60268 6 60273 6 60280 6 60281 6 60306 6 60310 6 60311 6 60312 6 60315 6 60316 6 60337 6 60339 6 60342 6 60359 6 60367 6 60375 6 60376 6 60379 6 60380 6 60385 6 60393 6 60394 6 60399 6 60400 6 60406 6 60412 6 60415 6 60421 6 60429 6 60431 6 60432 6 60433 6 60438 6 60441 6 60446 6 60450 6 60453 6 60458 6 60462 6 60470 6 60498 6 60502 6 60513 6 60528 6 60530 6 60532 6 60533 6 60534 6 60548 6 60549 6 60561 6 60566 6 60573 6 60576 6 60579 6 60586 6 60602 6 60603 6 60607 6 60610 6 60633 6 60637 6 60639 6 60642 6 60643 6 60644 6 60646 6 60655 6 60657 6 60671 6 60673 6 60677 6 60680 6 60684 6 60687 6 60688 6 60691 6 60692 6 60695 6 60705 6 60707 6 60709 6 60713 6 60718 6 60721 6 60733 6 60734 6 60742 6 60748 6 60754 6 60762 6 60773 6 60789 6 60793 6 60797 6 60802 6 60817 6 60820 6 60839 6 60842 6 60846 6 60853 6 60860 6 60861 6 60876 6 60880 6 60882 6 60889 6 60900 6 60907 6 60908 6 60916 6 60918 6 60923 6 60928 6 60936 6 60945 6 60950 6 60956 6 60963 6 60983 6 60993 6 60995 6 60998 6 61016 6 61018 6 61021 6 61022 6 61038 6 61042 6 61060 6 61074 6 61081 6 61084 6 61085 6 61092 6 61100 6 61106 6 61111 6 61117 6 61121 6 61137 6 61140 6 61154 6 61173 6 61189 6 61193 6 61197 6 61198 6 61202 6 61207 6 61219 6 61220 6 61229 6 61247 6 61251 6 61252 6 61254 6 61263 6 61265 6 61266 6 61267 6 61271 6 61277 6 61278 6 61282 6 61287 6 61290 6 61291 6 61293 6 61295 6 61302 6 61306 6 61316 6 61321 6 61325 6 61327 6 61329 6 61330 6 61335 6 61342 6 61346 6 61348 6 61357 6 61365 6 61371 6 61380 6 61384 6 61389 6 61391 6 61404 6 61405 6 61408 6 61415 6 61416 6 61420 6 61422 6 61432 6 61433 6 61434 6 61435 6 61444 6 61447 6 61452 6 61453 6 61454 6 61455 6 61465 6 61470 6 61477 6 61481 6 61483 6 61494 6 61497 6 61502 6 61514 6 61519 6 61520 6 61528 6 61529 6 61537 6 61553 6 61559 6 61562 6 61573 6 61576 6 61577 6 61588 6 61589 6 61592 6 61595 6 61605 6 61608 6 61613 6 61617 6 61620 6 61623 6 61628 6 61631 6 61638 6 61643 6 61645 6 61646 6 61650 6 61651 6 61656 6 61659 6 61667 6 61687 6 61691 6 61693 6 61701 6 61703 6 61723 6 61728 6 61730 6 61733 6 61739 6 61750 6 61752 6 61757 6 61759 6 61760 6 61767 6 61774 6 61778 6 61785 6 61789 6 61791 6 61810 6 61824 6 61825 6 61834 6 61838 6 61839 6 61840 6 61852 6 61867 6 61882 6 61894 6 61897 6 61898 6 61902 6 61904 6 61907 6 61908 6 61911 6 61916 6 61917 6 61930 6 61939 6 61946 6 61947 6 61953 6 61958 6 61972 6 61974 6 61975 6 61978 6 61979 6 61981 6 62012 6 62016 6 62018 6 62020 6 62026 6 62037 6 62041 6 62043 6 62051 6 62053 6 62054 6 62076 6 62079 6 62080 6 62089 6 62093 6 62097 6 62098 6 62111 6 62117 6 62124 6 62163 6 62168 6 62172 6 62178 6 62196 6 62207 6 62209 6 62212 6 62227 6 62229 6 62239 6 62243 6 62244 6 62246 6 62248 6 62252 6 62271 6 62274 6 62277 6 62280 6 62290 6 62294 6 62323 6 62329 6 62330 6 62332 6 62361 6 62364 6 62365 6 62369 6 62384 6 62386 6 62389 6 62419 6 62425 6 62429 6 62445 6 62446 6 62453 6 62461 6 62463 6 62476 6 62482 6 62486 6 62493 6 62503 6 62531 6 62533 6 62537 6 62547 6 62554 6 62555 6 62561 6 62564 6 62567 6 62569 6 62570 6 62577 6 62578 6 62581 6 62582 6 62588 6 62597 6 62604 6 62605 6 62610 6 62619 6 62620 6 62626 6 62633 6 62641 6 62643 6 62663 6 62664 6 62666 6 62673 6 62679 6 62682 6 62685 6 62696 6 62706 6 62721 6 62733 6 62744 6 62746 6 62755 6 62756 6 62768 6 62771 6 62773 6 62781 6 62790 6 62791 6 62793 6 62801 6 62803 6 62833 6 62834 6 62840 6 62844 6 62847 6 62859 6 62862 6 62868 6 62870 6 62872 6 62878 6 62890 6 62891 6 62899 6 62905 6 62924 6 62928 6 62940 6 62941 6 62944 6 62945 6 62955 6 62958 6 62960 6 62961 6 62978 6 62987 6 62989 6 62991 6 62993 6 62997 6 63012 6 63014 6 63020 6 63027 6 63028 6 63030 6 63035 6 63042 6 63059 6 63063 6 63067 6 63071 6 63075 6 63079 6 63082 6 63087 6 63090 6 63096 6 63104 6 63108 6 63114 6 63127 6 63128 6 63135 6 63140 6 63144 6 63173 6 63174 6 63180 6 63181 6 63184 6 63189 6 63192 6 63202 6 63207 6 63211 6 63224 6 63226 6 63232 6 63235 6 63237 6 63242 6 63253 6 63256 6 63265 6 63267 6 63278 6 63294 6 63295 6 63301 6 63306 6 63310 6 63324 6 63329 6 63332 6 63336 6 63341 6 63345 6 63348 6 63350 6 63359 6 63384 6 63391 6 63395 6 63405 6 63433 6 63445 6 63446 6 63456 6 63457 6 63460 6 63467 6 63469 6 63475 6 63493 6 63494 6 63499 6 63501 6 63503 6 63506 6 63512 6 63515 6 63516 6 63517 6 63519 6 63524 6 63534 6 63545 6 63554 6 63559 6 63561 6 63563 6 63569 6 63573 6 63574 6 63582 6 63587 6 63598 6 63609 6 63611 6 63612 6 63622 6 63623 6 63626 6 63628 6 63632 6 63635 6 63647 6 63665 6 63668 6 63674 6 63676 6 63679 6 63685 6 63699 6 63701 6 63703 6 63706 6 63714 6 63720 6 63725 6 63729 6 63738 6 63766 6 63768 6 63772 6 63781 6 63792 6 63794 6 63799 6 63801 6 63812 6 63815 6 63817 6 63818 6 63829 6 63833 6 63838 6 63847 6 63848 6 63854 6 63855 6 63860 6 63875 6 63889 6 63890 6 63891 6 63897 6 63904 6 63909 6 63911 6 63912 6 63913 6 63914 6 63916 6 63920 6 63929 6 63930 6 63938 6 63944 6 63947 6 63951 6 63954 6 63956 6 63958 6 63969 6 63972 6 63974 6 63975 6 63978 6 63983 6 64000 6 64004 6 64007 6 64012 6 64015 6 64018 6 64025 6 64028 6 64031 6 64038 6 64039 6 64040 6 64043 6 64045 6 64055 6 64072 6 64082 6 64083 6 64090 6 64093 6 64097 6 64104 6 64123 6 64127 6 64134 6 64140 6 64150 6 64152 6 64153 6 64160 6 64174 6 64178 6 64184 6 64193 6 64196 6 64199 6 64200 6 64226 6 64230 6 64234 6 64246 6 64255 6 64260 6 64262 6 64265 6 64267 6 64272 6 64274 6 64281 6 64286 6 64292 6 64293 6 64313 6 64327 6 64336 6 64337 6 64339 6 64340 6 64341 6 64344 6 64349 6 64369 6 64370 6 64372 6 64374 6 64379 6 64381 6 64382 6 64385 6 64386 6 64387 6 64389 6 64399 6 64404 6 64411 6 64417 6 64421 6 64422 6 64427 6 64436 6 64438 6 64439 6 64444 6 64455 6 64465 6 64474 6 64475 6 64482 6 64485 6 64496 6 64502 6 64508 6 64511 6 64525 6 64528 6 64539 6 64556 6 64569 6 64572 6 64574 6 64587 6 64591 6 64597 6 64599 6 64600 6 64602 6 64607 6 64616 6 64617 6 64622 6 64625 6 64631 6 64638 6 64640 6 64645 6 64656 6 64664 6 64672 6 64675 6 64687 6 64692 6 64697 6 64701 6 64709 6 64710 6 64711 6 64715 6 64721 6 64722 6 64731 6 64732 6 64766 6 64767 6 64768 6 64772 6 64774 6 64784 6 64801 6 64808 6 64814 6 64827 6 64847 6 64850 6 64854 6 64856 6 64860 6 64865 6 64866 6 64870 6 64872 6 64879 6 64887 6 64894 6 64902 6 64905 6 64920 6 64921 6 64924 6 64925 6 64928 6 64930 6 64936 6 64939 6 64970 6 64974 6 64987 6 64989 6 65008 6 65017 6 65024 6 65034 6 65038 6 65052 6 65059 6 65065 6 65082 6 65087 6 65095 6 65102 6 65133 6 65137 6 65142 6 65143 6 65145 6 65154 6 65156 6 65161 6 65168 6 65172 6 65176 6 65181 6 65185 6 65188 6 65189 6 65191 6 65194 6 65195 6 65198 6 65199 6 65201 6 65219 6 65223 6 65226 6 65227 6 65229 6 65231 6 65236 6 65237 6 65238 6 65242 6 65248 6 65277 6 65279 6 65280 6 65281 6 65284 6 65289 6 65295 6 65304 6 65307 6 65310 6 65311 6 65315 6 65317 6 65318 6 65321 6 65331 6 65340 6 65342 6 65345 6 65350 6 65374 6 65381 6 65388 6 65389 6 65394 6 65395 6 65399 6 65400 6 65401 6 65403 6 65409 6 65414 6 65417 6 65422 6 65429 6 65433 6 65439 6 65453 6 65463 6 65466 6 65478 6 65484 6 65488 6 65515 6 65530 6 65533 6 65540 6 65543 6 65555 6 65560 6 65562 6 65570 6 65571 6 65591 6 65595 6 65598 6 65599 6 65610 6 65614 6 65622 6 65626 6 65637 6 65655 6 65671 6 65678 6 65685 6 65686 6 65689 6 65694 6 65704 6 65705 6 65712 6 65713 6 65714 6 65719 6 65722 6 65726 6 65733 6 65742 6 65750 6 65751 6 65755 6 65760 6 65762 6 65766 6 65769 6 65774 6 65776 6 65789 6 65793 6 65800 6 65804 6 65817 6 65818 6 65822 6 65831 6 65844 6 65850 6 65853 6 65854 6 65873 6 65875 6 65876 6 65908 6 65910 6 65915 6 65922 6 65926 6 65940 6 65946 6 65956 6 65958 6 65959 6 65973 6 65977 6 65982 6 65989 6 65996 6 65999 6 66007 6 66011 6 66028 6 66030 6 66033 6 66034 6 66042 6 66050 6 66052 6 66055 6 66072 6 66074 6 66080 6 66087 6 66098 6 66100 6 66101 6 66102 6 66108 6 66114 6 66115 6 66116 6 66131 6 66132 6 66135 6 66136 6 66140 6 66144 6 66145 6 66147 6 66149 6 66151 6 66156 6 66162 6 66164 6 66167 6 66171 6 66174 6 66182 6 66184 6 66185 6 66186 6 66195 6 66201 6 66208 6 66210 6 66214 6 66227 6 66229 6 66230 6 66244 6 66249 6 66251 6 66254 6 66257 6 66262 6 66266 6 66283 6 66290 6 66292 6 66293 6 66305 6 66310 6 66312 6 66325 6 66329 6 66341 6 66344 6 66345 6 66352 6 66359 6 66363 6 66369 6 66383 6 66384 6 66385 6 66391 6 66399 6 66412 6 66427 6 66431 6 66437 6 66442 6 66443 6 66444 6 66445 6 66452 6 66455 6 66472 6 66477 6 66500 6 66511 6 66520 6 66523 6 66525 6 66527 6 66534 6 66541 6 66545 6 66560 6 66564 6 66566 6 66574 6 66579 6 66598 6 66637 6 66640 6 66654 6 66656 6 66658 6 66672 6 66678 6 66685 6 66690 6 66692 6 66698 6 66699 6 66700 6 66704 6 66711 6 66721 6 66726 6 66729 6 66730 6 66735 6 66736 6 66738 6 66743 6 66748 6 66753 6 66756 6 66760 6 66761 6 66762 6 66763 6 66764 6 66770 6 66772 6 66805 6 66806 6 66807 6 66815 6 66821 6 66823 6 66835 6 66836 6 66837 6 66845 6 66848 6 66850 6 66854 6 66857 6 66866 6 66875 6 66877 6 66880 6 66883 6 66885 6 66893 6 66904 6 66906 6 66910 6 66919 6 66932 6 66933 6 66939 6 66945 6 66949 6 66967 6 66991 6 66997 6 67001 6 67009 6 67013 6 67015 6 67019 6 67023 6 67025 6 67029 6 67037 6 67049 6 67058 6 67072 6 67075 6 67083 6 67084 6 67086 6 67087 6 67103 6 67106 6 67108 6 67112 6 67117 6 67118 6 67121 6 67169 6 67172 6 67173 6 67174 6 67175 6 67177 6 67182 6 67190 6 67206 6 67209 6 67213 6 67218 6 67225 6 67236 6 67239 6 67251 6 67255 6 67258 6 67261 6 67262 6 67264 6 67265 6 67266 6 67267 6 67268 6 67270 6 67275 6 67277 6 67284 6 67287 6 67290 6 67293 6 67307 6 67314 6 67315 6 67324 6 67327 6 67337 6 67345 6 67352 6 67360 6 67362 6 67366 6 67372 6 67383 6 67390 6 67408 6 67409 6 67422 6 67425 6 67455 6 67459 6 67468 6 67469 6 67486 6 67494 6 67497 6 67540 6 67546 6 67575 6 67576 6 67589 6 67603 6 67606 6 67622 6 67627 6 67643 6 67645 6 67651 6 67653 6 67657 6 67663 6 67694 6 67700 6 67703 6 67704 6 67709 6 67710 6 67722 6 67732 6 67742 6 67748 6 67751 6 67753 6 67754 6 67756 6 67761 6 67764 6 67770 6 67776 6 67794 6 67795 6 67796 6 67801 6 67805 6 67814 6 67837 6 67842 6 67852 6 67853 6 67857 6 67858 6 67862 6 67863 6 67870 6 67873 6 67876 6 67878 6 67883 6 67884 6 67892 6 67898 6 67899 6 67900 6 67910 6 67913 6 67919 6 67920 6 67924 6 67928 6 67931 6 67939 6 67945 6 67952 6 67957 6 67960 6 67962 6 67982 6 67986 6 68001 6 68004 6 68015 6 68030 6 68032 6 68035 6 68038 6 68041 6 68042 6 68046 6 68050 6 68051 6 68059 6 68063 6 68069 6 68072 6 68073 6 68078 6 68087 6 68092 6 68096 6 68108 6 68119 6 68120 6 68128 6 68134 6 68145 6 68150 6 68152 6 68170 6 68173 6 68176 6 68186 6 68189 6 68203 6 68213 6 68218 6 68222 6 68225 6 68227 6 68231 6 68236 6 68248 6 68251 6 68256 6 68266 6 68281 6 68282 6 68288 6 68294 6 68296 6 68297 6 68298 6 68301 6 68307 6 68318 6 68323 6 68326 6 68336 6 68338 6 68340 6 68344 6 68349 6 68350 6 68351 6 68352 6 68356 6 68368 6 68376 6 68378 6 68383 6 68396 6 68398 6 68401 6 68404 6 68410 6 68411 6 68413 6 68419 6 68428 6 68436 6 68452 6 68453 6 68458 6 68464 6 68477 6 68482 6 68483 6 68490 6 68491 6 68503 6 68505 6 68510 6 68512 6 68513 6 68514 6 68515 6 68532 6 68535 6 68541 6 68543 6 68554 6 68555 6 68560 6 68562 6 68563 6 68566 6 68577 6 68581 6 68593 6 68599 6 68607 6 68625 6 68628 6 68634 6 68638 6 68641 6 68644 6 68654 6 68657 6 68660 6 68666 6 68668 6 68669 6 68673 6 68683 6 68686 6 68688 6 68691 6 68694 6 68697 6 68700 6 68704 6 68705 6 68706 6 68707 6 68711 6 68713 6 68725 6 68726 6 68754 6 68760 6 68775 6 68784 6 68786 6 68787 6 68793 6 68802 6 68803 6 68806 6 68812 6 68813 6 68816 6 68829 6 68831 6 68833 6 68834 6 68839 6 68845 6 68847 6 68848 6 68851 6 68854 6 68857 6 68861 6 68862 6 68864 6 68865 6 68868 6 68874 6 68880 6 68887 6 68892 6 68899 6 68904 6 68906 6 68917 6 68919 6 68951 6 68954 6 68956 6 68963 6 68972 6 68978 6 68982 6 68984 6 68993 6 68997 6 69000 6 69008 6 69010 6 69015 6 69017 6 69021 6 69028 6 69029 6 69038 6 69039 6 69040 6 69046 6 69048 6 69050 6 69051 6 69056 6 69057 6 69059 6 69062 6 69065 6 69075 6 69082 6 69090 6 69099 6 69101 6 69111 6 69113 6 69114 6 69121 6 69127 6 69139 6 69146 6 69153 6 69157 6 69163 6 69192 6 69193 6 69194 6 69195 6 69197 6 69202 6 69205 6 69215 6 69223 6 69228 6 69230 6 69233 6 69235 6 69244 6 69253 6 69255 6 69257 6 69265 6 69267 6 69273 6 69279 6 69285 6 69286 6 69287 6 69290 6 69307 6 69331 6 69334 6 69335 6 69336 6 69339 6 69342 6 69350 6 69352 6 69361 6 69364 6 69383 6 69386 6 69388 6 69389 6 69393 6 69401 6 69406 6 69410 6 69435 6 69438 6 69445 6 69447 6 69460 6 69483 6 69485 6 69497 6 69499 6 69500 6 69503 6 69507 6 69508 6 69519 6 69522 6 69524 6 69528 6 69530 6 69537 6 69538 6 69542 6 69544 6 69556 6 69558 6 69588 6 69590 6 69612 6 69614 6 69622 6 69635 6 69636 6 69643 6 69648 6 69650 6 69681 6 69698 6 69699 6 69700 6 69702 6 69713 6 69721 6 69724 6 69728 6 69740 6 69749 6 69753 6 69754 6 69762 6 69766 6 69769 6 69774 6 69782 6 69789 6 69794 6 69799 6 69806 6 69813 6 69825 6 69830 6 69845 6 69850 6 69853 6 69857 6 69858 6 69859 6 69860 6 69861 6 69874 6 69879 6 69894 6 69900 6 69902 6 69903 6 69915 6 69925 6 69934 6 69941 6 69943 6 69948 6 69954 6 69960 6 69967 6 69974 6 69980 6 69986 6 69994 6 70007 6 70016 6 70021 6 70022 6 70023 6 70025 6 70032 6 70051 6 70060 6 70062 6 70068 6 70073 6 70076 6 70077 6 70084 6 70096 6 70098 6 70105 6 70111 6 70128 6 70140 6 70153 6 70181 6 70186 6 70189 6 70190 6 70193 6 70194 6 70200 6 70202 6 70207 6 70208 6 70210 6 70213 6 70230 6 70244 6 70246 6 70247 6 70256 6 70258 6 70287 6 70294 6 70299 6 70305 6 70310 6 70313 6 70315 6 70332 6 70340 6 70341 6 70351 6 70352 6 70355 6 70356 6 70363 6 70377 6 70387 6 70396 6 70402 6 70403 6 70404 6 70406 6 70416 6 70423 6 70429 6 70430 6 70433 6 70442 6 70451 6 70463 6 70467 6 70468 6 70481 6 70484 6 70487 6 70496 6 70499 6 70504 6 70508 6 70523 6 70529 6 70530 6 70531 6 70534 6 70546 6 70550 6 70553 6 70554 6 70556 6 70568 6 70572 6 70573 6 70575 6 70576 6 70580 6 70584 6 70594 6 70595 6 70596 6 70601 6 70602 6 70607 6 70610 6 70622 6 70625 6 70628 6 70637 6 70647 6 70648 6 70652 6 70664 6 70675 6 70684 6 70688 6 70691 6 70699 6 70702 6 70705 6 70709 6 70710 6 70718 6 70722 6 70726 6 70729 6 70733 6 70744 6 70751 6 70755 6 70756 6 70780 6 70781 6 70791 6 70801 6 70802 6 70818 6 70822 6 70825 6 70834 6 70842 6 70843 6 70847 6 70848 6 70865 6 70873 6 70885 6 70892 6 70902 6 70904 6 70905 6 70909 6 70912 6 70916 6 70920 6 70924 6 70928 6 70929 6 70941 6 70949 6 70956 6 70957 6 70960 6 70967 6 70979 6 70981 6 70986 6 70988 6 70990 6 70997 6 71000 6 71005 6 71013 6 71028 6 71036 6 71039 6 71040 6 71052 6 71058 6 71061 6 71063 6 71064 6 71071 6 71081 6 71091 6 71104 6 71109 6 71112 6 71113 6 71117 6 71122 6 71130 6 71133 6 71143 6 71170 6 71174 6 71178 6 71179 6 71180 6 71192 6 71193 6 71194 6 71196 6 71197 6 71198 6 71202 6 71203 6 71210 6 71213 6 71215 6 71226 6 71238 6 71241 6 71260 6 71263 6 71271 6 71273 6 71281 6 71285 6 71302 6 71303 6 71310 6 71322 6 71328 6 71330 6 71341 6 71345 6 71359 6 71382 6 71383 6 71385 6 71391 6 71405 6 71409 6 71421 6 71422 6 71424 6 71426 6 71436 6 71441 6 71445 6 71446 6 71448 6 71461 6 71467 6 71473 6 71480 6 71484 6 71486 6 71488 6 71497 6 71502 6 71507 6 71516 6 71522 6 71523 6 71527 6 71532 6 71553 6 71568 6 71577 6 71578 6 71605 6 71606 6 71607 6 71612 6 71645 6 71649 6 71652 6 71657 6 71658 6 71659 6 71667 6 71688 6 71692 6 71695 6 71696 6 71697 6 71710 6 71711 6 71712 6 71725 6 71726 6 71733 6 71735 6 71744 6 71752 6 71754 6 71758 6 71759 6 71760 6 71762 6 71766 6 71777 6 71800 6 71803 6 71805 6 71807 6 71811 6 71825 6 71827 6 71829 6 71832 6 71835 6 71846 6 71850 6 71851 6 71852 6 71853 6 71862 6 71866 6 71873 6 71874 6 71897 6 71900 6 71904 6 71921 6 71937 6 71942 6 71943 6 71953 6 71966 6 71976 6 71981 6 71985 6 71992 6 71995 6 71996 6 72006 6 72007 6 72008 6 72010 6 72012 6 72016 6 72021 6 72024 6 72031 6 72034 6 72054 6 72055 6 72059 6 72064 6 72067 6 72077 6 72078 6 72082 6 72085 6 72092 6 72096 6 72099 6 72100 6 72101 6 72110 6 72114 6 72119 6 72129 6 72130 6 72136 6 72144 6 72146 6 72148 6 72149 6 72163 6 72164 6 72172 6 72177 6 72181 6 72185 6 72186 6 72187 6 72194 6 72196 6 72204 6 72213 6 72216 6 72219 6 72221 6 72236 6 72240 6 72256 6 72257 6 72266 6 72267 6 72268 6 72291 6 72303 6 72305 6 72312 6 72320 6 72322 6 72325 6 72327 6 72337 6 72346 6 72355 6 72356 6 72361 6 72364 6 72365 6 72372 6 72373 6 72380 6 72382 6 72383 6 72385 6 72393 6 72421 6 72426 6 72438 6 72441 6 72447 6 72452 6 72456 6 72460 6 72465 6 72468 6 72481 6 72484 6 72492 6 72517 6 72518 6 72519 6 72523 6 72524 6 72527 6 72540 6 72552 6 72555 6 72570 6 72571 6 72588 6 72592 6 72598 6 72599 6 72607 6 72609 6 72624 6 72625 6 72633 6 72639 6 72657 6 72663 6 72664 6 72672 6 72676 6 72685 6 72690 6 72694 6 72695 6 72700 6 72703 6 72707 6 72710 6 72713 6 72716 6 72720 6 72721 6 72723 6 72735 6 72745 6 72754 6 72777 6 72783 6 72786 6 72791 6 72800 6 72802 6 72829 6 72830 6 72833 6 72844 6 72850 6 72858 6 72861 6 72868 6 72875 6 72880 6 72883 6 72897 6 72903 6 72912 6 72924 6 72934 6 72935 6 72950 6 72959 6 72968 6 72972 6 73002 6 73015 6 73030 6 73037 6 73048 6 73051 6 73054 6 73061 6 73068 6 73076 6 73078 6 73088 6 73094 6 73098 6 73108 6 73119 6 73120 6 73132 6 73138 6 73149 6 73154 6 73165 6 73166 6 73170 6 73176 6 73177 6 73179 6 73186 6 73187 6 73191 6 73199 6 73201 6 73205 6 73207 6 73209 6 73213 6 73217 6 73222 6 73225 6 73227 6 73237 6 73246 6 73248 6 73256 6 73273 6 73279 6 73323 6 73332 6 73337 6 73352 6 73369 6 73381 6 73384 6 73385 6 73389 6 73391 6 73394 6 73403 6 73407 6 73410 6 73413 6 73417 6 73423 6 73434 6 73444 6 73459 6 73465 6 73492 6 73503 6 73517 6 73519 6 73523 6 73531 6 73532 6 73534 6 73552 6 73554 6 73562 6 73564 6 73568 6 73580 6 73582 6 73585 6 73589 6 73592 6 73595 6 73600 6 73604 6 73615 6 73618 6 73626 6 73636 6 73640 6 73641 6 73645 6 73654 6 73657 6 73664 6 73668 6 73674 6 73675 6 73676 6 73680 6 73682 6 73695 6 73699 6 73704 6 73706 6 73713 6 73714 6 73716 6 73722 6 73723 6 73729 6 73732 6 73735 6 73741 6 73753 6 73767 6 73774 6 73776 6 73786 6 73794 6 73800 6 73812 6 73815 6 73822 6 73823 6 73828 6 73831 6 73836 6 73841 6 73844 6 73845 6 73853 6 73862 6 73869 6 73870 6 73872 6 73875 6 73879 6 73884 6 73885 6 73887 6 73891 6 73896 6 73897 6 73898 6 73903 6 73911 6 73918 6 73920 6 73924 6 73927 6 73933 6 73943 6 73957 6 73958 6 73959 6 73961 6 73966 6 73968 6 73970 6 73973 6 73976 6 73980 6 73982 6 73983 6 73987 6 73988 6 73990 6 73997 6 74002 6 74014 6 74021 6 74038 6 74039 6 74044 6 74051 6 74058 6 74062 6 74071 6 74076 6 74086 6 74087 6 74100 6 74103 6 74106 6 74118 6 74119 6 74127 6 74136 6 74144 6 74148 6 74149 6 74159 6 74180 6 74185 6 74186 6 74195 6 74213 6 74222 6 74224 6 74233 6 74240 6 74252 6 74253 6 74258 6 74276 6 74279 6 74289 6 74292 6 74293 6 74296 6 74298 6 74304 6 74305 6 74312 6 74323 6 74329 6 74332 6 74334 6 74342 6 74343 6 74349 6 74356 6 74358 6 74370 6 74376 6 74377 6 74378 6 74379 6 74383 6 74384 6 74387 6 74397 6 74409 6 74413 6 74416 6 74432 6 74434 6 74436 6 74441 6 74444 6 74461 6 74462 6 74463 6 74469 6 74476 6 74478 6 74480 6 74491 6 74492 6 74495 6 74504 6 74520 6 74537 6 74544 6 74547 6 74549 6 74558 6 74564 6 74568 6 74570 6 74584 6 74590 6 74596 6 74604 6 74607 6 74608 6 74620 6 74628 6 74630 6 74635 6 74636 6 74639 6 74641 6 74643 6 74645 6 74655 6 74656 6 74660 6 74664 6 74665 6 74679 6 74688 6 74689 6 74692 6 74702 6 74709 6 74710 6 74731 6 74732 6 74753 6 74755 6 74763 6 74776 6 74790 6 74791 6 74799 6 74818 6 74831 6 74833 6 74834 6 74841 6 74842 6 74845 6 74849 6 74862 6 74868 6 74870 6 74874 6 74876 6 74878 6 74882 6 74886 6 74905 6 74910 6 74935 6 74936 6 74943 6 74951 6 74952 6 74953 6 74960 6 74962 6 74966 6 74968 6 74973 6 74977 6 74994 6 75007 6 75020 6 75026 6 75029 6 75031 6 75036 6 75038 6 75041 6 75047 6 75050 6 75052 6 75056 6 75059 6 75063 6 75067 6 75069 6 75071 6 75074 6 75081 6 75088 6 75094 6 75109 6 75110 6 75115 6 75118 6 75120 6 75123 6 75124 6 75128 6 75131 6 75146 6 75148 6 75152 6 75153 6 75183 6 75186 6 75202 6 75203 6 75208 6 75214 6 75216 6 75219 6 75221 6 75224 6 75226 6 75229 6 75231 6 75242 6 75247 6 75255 6 75258 6 75266 6 75295 6 75298 6 75300 6 75311 6 75318 6 75322 6 75323 6 75336 6 75337 6 75353 6 75355 6 75357 6 75364 6 75365 6 75367 6 75370 6 75378 6 75390 6 75397 6 75399 6 75400 6 75402 6 75403 6 75412 6 75414 6 75421 6 75435 6 75446 6 75455 6 75460 6 75465 6 75478 6 75492 6 75497 6 75506 6 75512 6 75519 6 75531 6 75533 6 75536 6 75537 6 75543 6 75549 6 75560 6 75562 6 75563 6 75564 6 75572 6 75581 6 75594 6 75596 6 75600 6 75603 6 75604 6 75605 6 75614 6 75639 6 75643 6 75644 6 75645 6 75647 6 75655 6 75657 6 75658 6 75660 6 75661 6 75662 6 75668 6 75670 6 75676 6 75677 6 75681 6 75682 6 75688 6 75704 6 75706 6 75707 6 75709 6 75716 6 75718 6 75723 6 75725 6 75737 6 75762 6 75763 6 75769 6 75789 6 75792 6 75796 6 75798 6 75824 6 75825 6 75831 6 75836 6 75853 6 75863 6 75864 6 75866 6 75875 6 75876 6 75882 6 75886 6 75888 6 75892 6 75893 6 75896 6 75897 6 75914 6 75930 6 75933 6 75936 6 75949 6 75957 6 75958 6 75965 6 75970 6 75983 6 75987 6 75989 6 75990 6 76005 6 76008 6 76009 6 76012 6 76017 6 76019 6 76046 6 76047 6 76054 6 76067 6 76076 6 76081 6 76089 6 76093 6 76099 6 76100 6 76101 6 76107 6 76109 6 76133 6 76137 6 76148 6 76150 6 76161 6 76163 6 76165 6 76170 6 76172 6 76174 6 76176 6 76201 6 76204 6 76217 6 76222 6 76232 6 76237 6 76243 6 76253 6 76266 6 76267 6 76273 6 76276 6 76277 6 76278 6 76279 6 76285 6 76291 6 76293 6 76300 6 76302 6 76304 6 76312 6 76316 6 76318 6 76322 6 76326 6 76330 6 76333 6 76336 6 76339 6 76340 6 76346 6 76352 6 76354 6 76359 6 76365 6 76372 6 76377 6 76391 6 76394 6 76402 6 76404 6 76408 6 76409 6 76410 6 76417 6 76418 6 76424 6 76431 6 76440 6 76448 6 76455 6 76457 6 76462 6 76468 6 76469 6 76498 6 76500 6 76508 6 76509 6 76513 6 76524 6 76529 6 76534 6 76535 6 76543 6 76550 6 76555 6 76571 6 76574 6 76585 6 76593 6 76598 6 76601 6 76609 6 76610 6 76621 6 76628 6 76634 6 76639 6 76651 6 76666 6 76673 6 76674 6 76676 6 76685 6 76694 6 76695 6 76698 6 76704 6 76708 6 76711 6 76715 6 76724 6 76730 6 76738 6 76739 6 76740 6 76741 6 76745 6 76748 6 76768 6 76776 6 76781 6 76784 6 76789 6 76790 6 76791 6 76794 6 76796 6 76804 6 76823 6 76827 6 76831 6 76834 6 76839 6 76843 6 76852 6 76869 6 76875 6 76877 6 76879 6 76883 6 76885 6 76886 6 76887 6 76891 6 76913 6 76923 6 76925 6 76936 6 76941 6 76943 6 76956 6 76962 6 76971 6 76975 6 76982 6 76996 6 76997 6 77002 6 77011 6 77015 6 77019 6 77022 6 77025 6 77031 6 77034 6 77036 6 77039 6 77043 6 77060 6 77073 6 77082 6 77087 6 77091 6 77095 6 77104 6 77127 6 77130 6 77134 6 77136 6 77140 6 77146 6 77152 6 77158 6 77173 6 77179 6 77181 6 77186 6 77189 6 77193 6 77197 6 77198 6 77207 6 77210 6 77225 6 77228 6 77231 6 77239 6 77242 6 77248 6 77250 6 77258 6 77271 6 77278 6 77282 6 77285 6 77286 6 77290 6 77297 6 77300 6 77302 6 77304 6 77319 6 77333 6 77343 6 77348 6 77349 6 77350 6 77354 6 77357 6 77359 6 77363 6 77369 6 77372 6 77375 6 77376 6 77381 6 77388 6 77389 6 77392 6 77396 6 77398 6 77404 6 77406 6 77416 6 77418 6 77451 6 77467 6 77475 6 77478 6 77495 6 77497 6 77500 6 77503 6 77510 6 77518 6 77523 6 77528 6 77535 6 77536 6 77540 6 77568 6 77572 6 77573 6 77574 6 77577 6 77583 6 77617 6 77624 6 77632 6 77634 6 77639 6 77643 6 77651 6 77652 6 77662 6 77674 6 77678 6 77681 6 77682 6 77684 6 77687 6 77688 6 77691 6 77695 6 77702 6 77709 6 77712 6 77714 6 77721 6 77728 6 77743 6 77751 6 77763 6 77768 6 77774 6 77775 6 77782 6 77792 6 77801 6 77809 6 77810 6 77813 6 77816 6 77822 6 77833 6 77839 6 77844 6 77845 6 77872 6 77884 6 77888 6 77889 6 77890 6 77895 6 77896 6 77898 6 77906 6 77913 6 77914 6 77917 6 77919 6 77927 6 77929 6 77930 6 77940 6 77945 6 77954 6 77956 6 77962 6 77970 6 77975 6 77977 6 77981 6 77989 6 78009 6 78014 6 78022 6 78032 6 78035 6 78038 6 78043 6 78045 6 78046 6 78051 6 78065 6 78066 6 78073 6 78085 6 78090 6 78091 6 78092 6 78097 6 78098 6 78101 6 78102 6 78110 6 78111 6 78123 6 78124 6 78129 6 78134 6 78140 6 78142 6 78157 6 78159 6 78162 6 78167 6 78168 6 78169 6 78170 6 78175 6 78182 6 78184 6 78186 6 78196 6 78200 6 78201 6 78205 6 78224 6 78225 6 78226 6 78237 6 78265 6 78268 6 78279 6 78287 6 78289 6 78296 6 78309 6 78310 6 78320 6 78330 6 78332 6 78335 6 78342 6 78344 6 78353 6 78354 6 78367 6 78383 6 78385 6 78392 6 78398 6 78406 6 78408 6 78418 6 78420 6 78426 6 78428 6 78437 6 78438 6 78441 6 78447 6 78450 6 78457 6 78462 6 78468 6 78473 6 78480 6 78482 6 78490 6 78501 6 78504 6 78505 6 78509 6 78510 6 78511 6 78526 6 78535 6 78544 6 78545 6 78546 6 78550 6 78559 6 78560 6 78566 6 78567 6 78570 6 78571 6 78586 6 78587 6 78595 6 78602 6 78605 6 78609 6 78615 6 78629 6 78646 6 78647 6 78650 6 78651 6 78656 6 78657 6 78658 6 78667 6 78668 6 78671 6 78688 6 78710 6 78714 6 78717 6 78721 6 78727 6 78738 6 78739 6 78742 6 78749 6 78753 6 78763 6 78767 6 78775 6 78782 6 78797 6 78804 6 78812 6 78818 6 78820 6 78822 6 78825 6 78833 6 78835 6 78840 6 78847 6 78856 6 78860 6 78868 6 78870 6 78878 6 78884 6 78886 6 78895 6 78916 6 78921 6 78923 6 78925 6 78926 6 78951 6 78953 6 78956 6 78971 6 78973 6 78979 6 78991 6 78994 6 79002 6 79006 6 79010 6 79027 6 79045 6 79047 6 79049 6 79050 6 79052 6 79053 6 79057 6 79062 6 79063 6 79069 6 79075 6 79086 6 79089 6 79101 6 79114 6 79127 6 79131 6 79139 6 79156 6 79158 6 79161 6 79215 6 79217 6 79220 6 79223 6 79224 6 79225 6 79226 6 79234 6 79253 6 79256 6 79267 6 79280 6 79282 6 79286 6 79292 6 79297 6 79299 6 79306 6 79312 6 79314 6 79326 6 79331 6 79340 6 79345 6 79349 6 79352 6 79355 6 79360 6 79361 6 79363 6 79375 6 79395 6 79397 6 79409 6 79418 6 79419 6 79433 6 79450 6 79454 6 79471 6 79501 6 79512 6 79517 6 79518 6 79521 6 79551 6 79555 6 79562 6 79565 6 79566 6 79570 6 79571 6 79572 6 79584 6 79599 6 79603 6 79607 6 79611 6 79612 6 79617 6 79618 6 79619 6 79623 6 79625 6 79637 6 79639 6 79641 6 79647 6 79650 6 79656 6 79663 6 79674 6 79681 6 79686 6 79689 6 79693 6 79709 6 79714 6 79715 6 79718 6 79721 6 79725 6 79733 6 79749 6 79756 6 79757 6 79759 6 79771 6 79772 6 79775 6 79777 6 79781 6 79792 6 79793 6 79795 6 79804 6 79805 6 79806 6 79808 6 79810 6 79812 6 79825 6 79828 6 79836 6 79838 6 79857 6 79864 6 79867 6 79871 6 79874 6 79882 6 79883 6 79885 6 79888 6 79899 6 79900 6 79901 6 79903 6 79907 6 79915 6 79916 6 79925 6 79926 6 79928 6 79936 6 79937 6 79941 6 79964 6 79992 6 79994 6 79999 6 80003 6 80004 6 80007 6 80009 6 80013 6 80015 6 80017 6 80022 6 80024 6 80026 6 80027 6 80055 6 80057 6 80070 6 80079 6 80088 6 80090 6 80091 6 80096 6 80097 6 80100 6 80101 6 80111 6 80115 6 80128 6 80133 6 80136 6 80138 6 80140 6 80141 6 80158 6 80162 6 80163 6 80165 6 80166 6 80167 6 80169 6 80177 6 80195 6 80198 6 80201 6 80203 6 80214 6 80216 6 80220 6 80236 6 80240 6 80241 6 80242 6 80276 6 80278 6 80283 6 80287 6 80292 6 80297 6 80300 6 80308 6 80315 6 80316 6 80320 6 80323 6 80324 6 80326 6 80331 6 80344 6 80345 6 80348 6 80368 6 80373 6 80374 6 80390 6 80396 6 80397 6 80399 6 80400 6 80401 6 80415 6 80430 6 80435 6 80446 6 80459 6 80462 6 80463 6 80465 6 80466 6 80467 6 80473 6 80476 6 80477 6 80488 6 80490 6 80505 6 80514 6 80523 6 80525 6 80526 6 80533 6 80534 6 80535 6 80538 6 80546 6 80548 6 80549 6 80553 6 80561 6 80567 6 80569 6 80571 6 80577 6 80583 6 80591 6 80593 6 80597 6 80598 6 80613 6 80615 6 80618 6 80619 6 80622 6 80623 6 80638 6 80649 6 80660 6 80669 6 80670 6 80674 6 80675 6 80676 6 80712 6 80713 6 80726 6 80728 6 80729 6 80734 6 80738 6 80748 6 80757 6 80762 6 80763 6 80770 6 80778 6 80788 6 80791 6 80805 6 80822 6 80823 6 80824 6 80842 6 80845 6 80846 6 80847 6 80856 6 80858 6 80859 6 80864 6 80867 6 80877 6 80878 6 80881 6 80885 6 80888 6 80894 6 80897 6 80905 6 80912 6 80921 6 80922 6 80923 6 80926 6 80935 6 80938 6 80940 6 80942 6 80944 6 80948 6 80949 6 80959 6 80966 6 80979 6 80985 6 80988 6 80997 6 81007 6 81009 6 81017 6 81022 6 81028 6 81052 6 81055 6 81061 6 81062 6 81065 6 81070 6 81072 6 81075 6 81079 6 81084 6 81087 6 81107 6 81109 6 81121 6 81123 6 81142 6 81143 6 81145 6 81148 6 81160 6 81162 6 81174 6 81182 6 81184 6 81189 6 81197 6 81205 6 81210 6 81211 6 81212 6 81226 6 81229 6 81253 6 81260 6 81261 6 81267 6 81273 6 81278 6 81285 6 81292 6 81296 6 81302 6 81305 6 81306 6 81308 6 81314 6 81332 6 81340 6 81345 6 81350 6 81360 6 81363 6 81365 6 81380 6 81383 6 81395 6 81396 6 81397 6 81398 6 81402 6 81403 6 81409 6 81416 6 81422 6 81424 6 81426 6 81435 6 81436 6 81437 6 81440 6 81443 6 81446 6 81447 6 81448 6 81449 6 81451 6 81459 6 81460 6 81461 6 81475 6 81490 6 81491 6 81492 6 81493 6 81503 6 81508 6 81513 6 81518 6 81519 6 81527 6 81529 6 81535 6 81537 6 81538 6 81541 6 81543 6 81551 6 81554 6 81560 6 81564 6 81566 6 81570 6 81575 6 81580 6 81587 6 81594 6 81601 6 81602 6 81612 6 81619 6 81623 6 81624 6 81625 6 81637 6 81647 6 81653 6 81658 6 81662 6 81667 6 81682 6 81689 6 81691 6 81693 6 81694 6 81696 6 81697 6 81700 6 81703 6 81712 6 81718 6 81727 6 81730 6 81733 6 81741 6 81765 6 81766 6 81785 6 81787 6 81788 6 81790 6 81795 6 81817 6 81818 6 81819 6 81828 6 81833 6 81840 6 81845 6 81846 6 81847 6 81848 6 81856 6 81859 6 81860 6 81875 6 81878 6 81881 6 81884 6 81894 6 81895 6 81898 6 81905 6 81909 6 81933 6 81941 6 81944 6 81960 6 81962 6 81975 6 81977 6 81978 6 82007 6 82013 6 82014 6 82016 6 82017 6 82022 6 82024 6 82033 6 82041 6 82045 6 82054 6 82057 6 82058 6 82069 6 82072 6 82088 6 82095 6 82100 6 82105 6 82120 6 82122 6 82130 6 82131 6 82140 6 82148 6 82158 6 82159 6 82170 6 82171 6 82172 6 82173 6 82175 6 82181 6 82188 6 82192 6 82193 6 82195 6 82198 6 82201 6 82207 6 82211 6 82214 6 82219 6 82227 6 82241 6 82242 6 82243 6 82253 6 82258 6 82260 6 82263 6 82265 6 82269 6 82271 6 82280 6 82282 6 82289 6 82292 6 82300 6 82301 6 82302 6 82303 6 82304 6 82305 6 82310 6 82315 6 82332 6 82345 6 82349 6 82361 6 82368 6 82370 6 82383 6 82388 6 82395 6 82397 6 82406 6 82407 6 82411 6 82412 6 82420 6 82429 6 82433 6 82436 6 82442 6 82443 6 82452 6 82457 6 82460 6 82461 6 82464 6 82465 6 82466 6 82477 6 82478 6 82479 6 82480 6 82493 6 82500 6 82503 6 82507 6 82510 6 82513 6 82529 6 82536 6 82542 6 82561 6 82574 6 82583 6 82588 6 82597 6 82610 6 82614 6 82627 6 82635 6 82670 6 82676 6 82678 6 82684 6 82688 6 82698 6 82701 6 82709 6 82737 6 82751 6 82756 6 82761 6 82763 6 82767 6 82768 6 82769 6 82770 6 82783 6 82787 6 82795 6 82796 6 82806 6 82811 6 82815 6 82822 6 82824 6 82828 6 82834 6 82835 6 82837 6 82839 6 82840 6 82847 6 82856 6 82862 6 82867 6 82883 6 82884 6 82885 6 82889 6 82893 6 82901 6 82902 6 82903 6 82920 6 82930 6 82943 6 82955 6 82958 6 82961 6 82962 6 82968 6 82978 6 82993 6 82995 6 83002 6 83003 6 83005 6 83010 6 83011 6 83021 6 83023 6 83030 6 83043 6 83057 6 83074 6 83086 6 83087 6 83090 6 83101 6 83102 6 83107 6 83130 6 83139 6 83140 6 83141 6 83142 6 83156 6 83161 6 83167 6 83169 6 83170 6 83180 6 83192 6 83198 6 83220 6 83222 6 83224 6 83225 6 83230 6 83245 6 83246 6 83248 6 83259 6 83263 6 83272 6 83288 6 83290 6 83293 6 83306 6 83312 6 83319 6 83325 6 83327 6 83338 6 83341 6 83350 6 83356 6 83359 6 83361 6 83362 6 83364 6 83366 6 83385 6 83387 6 83396 6 83403 6 83404 6 83405 6 83406 6 83410 6 83412 6 83414 6 83428 6 83433 6 83436 6 83439 6 83442 6 83451 6 83452 6 83464 6 83468 6 83473 6 83477 6 83486 6 83487 6 83493 6 83500 6 83505 6 83506 6 83507 6 83508 6 83511 6 83515 6 83516 6 83524 6 83529 6 83536 6 83546 6 83552 6 83561 6 83563 6 83565 6 83568 6 83570 6 83574 6 83583 6 83586 6 83588 6 83590 6 83591 6 83595 6 83600 6 83608 6 83612 6 83620 6 83624 6 83625 6 83629 6 83646 6 83649 6 83650 6 83658 6 83662 6 83665 6 83671 6 83674 6 83679 6 83692 6 83697 6 83719 6 83722 6 83731 6 83736 6 83739 6 83741 6 83742 6 83744 6 83745 6 83746 6 83747 6 83750 6 83757 6 83762 6 83763 6 83771 6 83774 6 83783 6 83785 6 83791 6 83796 6 83798 6 83806 6 83813 6 83823 6 83829 6 83842 6 83843 6 83849 6 83851 6 83855 6 83858 6 83863 6 83865 6 83866 6 83875 6 83899 6 83904 6 83914 6 83915 6 83916 6 83919 6 83921 6 83923 6 83924 6 83929 6 83940 6 83942 6 83949 6 83957 6 83981 6 83985 6 83989 6 83991 6 83992 6 83995 6 84009 6 84010 6 84014 6 84016 6 84017 6 84024 6 84026 6 84028 6 84033 6 84036 6 84052 6 84058 6 84066 6 84072 6 84074 6 84075 6 84077 6 84080 6 84091 6 84095 6 84100 6 84104 6 84109 6 84114 6 84116 6 84122 6 84130 6 84132 6 84133 6 84134 6 84135 6 84143 6 84145 6 84155 6 84172 6 84173 6 84174 6 84179 6 84180 6 84188 6 84190 6 84193 6 84196 6 84211 6 84212 6 84213 6 84215 6 84220 6 84227 6 84234 6 84235 6 84236 6 84239 6 84240 6 84244 6 84255 6 84259 6 84277 6 84278 6 84280 6 84281 6 84282 6 84283 6 84284 6 84286 6 84290 6 84303 6 84305 6 84311 6 84312 6 84313 6 84320 6 84324 6 84326 6 84341 6 84344 6 84356 6 84358 6 84365 6 84369 6 84370 6 84378 6 84382 6 84386 6 84401 6 84418 6 84420 6 84421 6 84425 6 84429 6 84443 6 84444 6 84455 6 84460 6 84471 6 84472 6 84474 6 84478 6 84481 6 84490 6 84499 6 84504 6 84513 6 84515 6 84516 6 84519 6 84520 6 84521 6 84523 6 84526 6 84528 6 84538 6 84539 6 84540 6 84544 6 84554 6 84559 6 84578 6 84601 6 84606 6 84607 6 84611 6 84621 6 84622 6 84630 6 84632 6 84638 6 84646 6 84649 6 84657 6 84661 6 84664 6 84670 6 84673 6 84677 6 84685 6 84689 6 84695 6 84698 6 84699 6 84700 6 84701 6 84711 6 84712 6 84720 6 84724 6 84728 6 84736 6 84738 6 84748 6 84759 6 84762 6 84766 6 84772 6 84773 6 84778 6 84781 6 84783 6 84786 6 84792 6 84800 6 84805 6 84832 6 84835 6 84843 6 84845 6 84861 6 84886 6 84888 6 84890 6 84894 6 84898 6 84905 6 84925 6 84928 6 84929 6 84930 6 84932 6 84937 6 84942 6 84943 6 84964 6 84970 6 84975 6 84979 6 84982 6 84988 6 84989 6 84995 6 84997 6 84999 6 85001 6 85006 6 85010 6 85011 6 85013 6 85019 6 85020 6 85022 6 85024 6 85032 6 85037 6 85043 6 85047 6 85050 6 85068 6 85074 6 85084 6 85085 6 85090 6 85094 6 85095 6 85102 6 85106 6 85107 6 85108 6 85125 6 85127 6 85137 6 85139 6 85143 6 85150 6 85156 6 85160 6 85164 6 85181 6 85185 6 85206 6 85208 6 85209 6 85218 6 85222 6 85225 6 85237 6 85238 6 85244 6 85245 6 85250 6 85258 6 85259 6 85263 6 85267 6 85274 6 85286 6 85291 6 85294 6 85300 6 85304 6 85310 6 85313 6 85315 6 85325 6 85327 6 85338 6 85341 6 85358 6 85373 6 85391 6 85394 6 85398 6 85404 6 85429 6 85431 6 85433 6 85435 6 85440 6 85441 6 85443 6 85445 6 85450 6 85452 6 85453 6 85460 6 85475 6 85476 6 85487 6 85489 6 85493 6 85498 6 85508 6 85514 6 85517 6 85519 6 85525 6 85534 6 85564 6 85566 6 85567 6 85568 6 85574 6 85577 6 85579 6 85580 6 85581 6 85586 6 85592 6 85594 6 85595 6 85596 6 85601 6 85612 6 85618 6 85619 6 85623 6 85643 6 85644 6 85645 6 85658 6 85670 6 85671 6 85676 6 85678 6 85679 6 85683 6 85686 6 85693 6 85702 6 85705 6 85707 6 85714 6 85716 6 85722 6 85726 6 85731 6 85747 6 85748 6 85749 6 85750 6 85755 6 85759 6 85760 6 85767 6 85769 6 85771 6 85784 6 85786 6 85796 6 85805 6 85807 6 85810 6 85823 6 85828 6 85829 6 85830 6 85837 6 85840 6 85847 6 85852 6 85863 6 85864 6 85866 6 85874 6 85875 6 85882 6 85883 6 85892 6 85902 6 85909 6 85911 6 85913 6 85921 6 85934 6 85935 6 85937 6 85941 6 85945 6 85946 6 85947 6 85951 6 85954 6 85983 6 85987 6 85993 6 85994 6 85995 6 85997 6 86000 6 86009 6 86010 6 86012 6 86020 6 86024 6 86027 6 86034 6 86046 6 86050 6 86065 6 86066 6 86074 6 86075 6 86085 6 86098 6 86100 6 86108 6 86132 6 86136 6 86138 6 86141 6 86163 6 86166 6 86170 6 86176 6 86178 6 86190 6 86199 6 86200 6 86205 6 86208 6 86217 6 86220 6 86244 6 86247 6 86253 6 86258 6 86268 6 86275 6 86283 6 86286 6 86287 6 86296 6 86297 6 86298 6 86305 6 86319 6 86350 6 86366 6 86367 6 86372 6 86378 6 86379 6 86403 6 86410 6 86415 6 86416 6 86425 6 86432 6 86435 6 86469 6 86482 6 86483 6 86484 6 86488 6 86490 6 86491 6 86502 6 86504 6 86511 6 86519 6 86521 6 86538 6 86546 6 86554 6 86556 6 86560 6 86565 6 86566 6 86571 6 86574 6 86575 6 86576 6 86577 6 86583 6 86585 6 86587 6 86589 6 86592 6 86593 6 86594 6 86596 6 86598 6 86602 6 86623 6 86627 6 86643 6 86649 6 86652 6 86654 6 86655 6 86660 6 86681 6 86685 6 86689 6 86698 6 86704 6 86722 6 86727 6 86729 6 86732 6 86746 6 86747 6 86750 6 86755 6 86756 6 86759 6 86764 6 86766 6 86771 6 86772 6 86782 6 86786 6 86792 6 86796 6 86809 6 86817 6 86821 6 86823 6 86827 6 86842 6 86845 6 86848 6 86856 6 86860 6 86861 6 86863 6 86864 6 86876 6 86895 6 86896 6 86901 6 86903 6 86920 6 86931 6 86934 6 86937 6 86951 6 86953 6 86957 6 86962 6 86968 6 86969 6 86971 6 86973 6 86974 6 86984 6 86988 6 86994 6 86997 6 86998 6 86999 6 87002 6 87019 6 87024 6 87027 6 87037 6 87039 6 87049 6 87056 6 87076 6 87077 6 87091 6 87096 6 87101 6 87108 6 87123 6 87130 6 87131 6 87133 6 87135 6 87141 6 87151 6 87167 6 87168 6 87170 6 87177 6 87178 6 87183 6 87185 6 87190 6 87192 6 87196 6 87199 6 87201 6 87209 6 87219 6 87224 6 87229 6 87232 6 87239 6 87240 6 87243 6 87244 6 87248 6 87253 6 87259 6 87282 6 87287 6 87290 6 87294 6 87301 6 87304 6 87306 6 87309 6 87316 6 87317 6 87323 6 87334 6 87340 6 87350 6 87352 6 87353 6 87355 6 87357 6 87358 6 87377 6 87382 6 87384 6 87386 6 87388 6 87392 6 87397 6 87418 6 87422 6 87429 6 87438 6 87440 6 87443 6 87456 6 87473 6 87474 6 87475 6 87478 6 87480 6 87482 6 87484 6 87492 6 87498 6 87502 6 87511 6 87519 6 87525 6 87536 6 87538 6 87540 6 87543 6 87548 6 87549 6 87550 6 87553 6 87555 6 87562 6 87563 6 87565 6 87572 6 87573 6 87574 6 87575 6 87579 6 87587 6 87591 6 87599 6 87608 6 87614 6 87617 6 87618 6 87624 6 87629 6 87631 6 87635 6 87638 6 87639 6 87654 6 87655 6 87658 6 87660 6 87667 6 87670 6 87683 6 87685 6 87688 6 87690 6 87691 6 87692 6 87694 6 87695 6 87696 6 87702 6 87722 6 87733 6 87736 6 87737 6 87746 6 87754 6 87762 6 87768 6 87774 6 87777 6 87780 6 87795 6 87804 6 87805 6 87816 6 87826 6 87830 6 87831 6 87834 6 87837 6 87841 6 87845 6 87850 6 87854 6 87858 6 87864 6 87872 6 87877 6 87891 6 87899 6 87916 6 87933 6 87939 6 87952 6 87957 6 87958 6 87963 6 87966 6 87975 6 87995 6 87998 6 88024 6 88025 6 88035 6 88037 6 88053 6 88055 6 88060 6 88063 6 88080 6 88085 6 88116 6 88123 6 88127 6 88131 6 88147 6 88148 6 88151 6 88152 6 88159 6 88163 6 88166 6 88174 6 88181 6 88183 6 88185 6 88187 6 88199 6 88201 6 88204 6 88229 6 88234 6 88240 6 88241 6 88246 6 88251 6 88257 6 88265 6 88268 6 88269 6 88282 6 88291 6 88292 6 88300 6 88303 6 88304 6 88306 6 88307 6 88317 6 88323 6 88339 6 88341 6 88344 6 88350 6 88356 6 88361 6 88365 6 88366 6 88371 6 88375 6 88377 6 88385 6 88386 6 88387 6 88389 6 88390 6 88395 6 88397 6 88400 6 88403 6 88404 6 88405 6 88408 6 88410 6 88412 6 88416 6 88417 6 88420 6 88425 6 88427 6 88441 6 88450 6 88453 6 88467 6 88474 6 88476 6 88486 6 88487 6 88489 6 88490 6 88491 6 88492 6 88493 6 88497 6 88501 6 88513 6 88515 6 88552 6 88569 6 88588 6 88597 6 88602 6 88607 6 88611 6 88613 6 88617 6 88643 6 88644 6 88648 6 88651 6 88659 6 88667 6 88669 6 88670 6 88672 6 88674 6 88687 6 88690 6 88699 6 88703 6 88707 6 88710 6 88718 6 88735 6 88752 6 88754 6 88763 6 88777 6 88781 6 88791 6 88811 6 88813 6 88815 6 88819 6 88828 6 88832 6 88848 6 88853 6 88855 6 88868 6 88877 6 88879 6 88881 6 88892 6 88901 6 88912 6 88918 6 88924 6 88934 6 88937 6 88938 6 88941 6 88947 6 88970 6 88971 6 88977 6 88978 6 88988 6 88989 6 88991 6 89007 6 89012 6 89024 6 89027 6 89035 6 89039 6 89050 6 89053 6 89056 6 89061 6 89066 6 89070 6 89072 6 89080 6 89081 6 89084 6 89085 6 89092 6 89095 6 89098 6 89100 6 89105 6 89107 6 89113 6 89115 6 89126 6 89129 6 89131 6 89133 6 89143 6 89146 6 89172 6 89178 6 89179 6 89190 6 89195 6 89198 6 89200 6 89205 6 89214 6 89222 6 89230 6 89233 6 89237 6 89238 6 89240 6 89265 6 89268 6 89269 6 89275 6 89287 6 89298 6 89301 6 89311 6 89325 6 89326 6 89334 6 89349 6 89350 6 89353 6 89354 6 89357 6 89360 6 89367 6 89371 6 89381 6 89388 6 89402 6 89409 6 89413 6 89414 6 89428 6 89435 6 89438 6 89439 6 89443 6 89455 6 89458 6 89465 6 89468 6 89474 6 89478 6 89495 6 89503 6 89509 6 89511 6 89512 6 89516 6 89517 6 89519 6 89522 6 89531 6 89532 6 89535 6 89541 6 89565 6 89575 6 89578 6 89584 6 89587 6 89588 6 89594 6 89597 6 89606 6 89609 6 89615 6 89618 6 89626 6 89641 6 89649 6 89651 6 89666 6 89670 6 89691 6 89693 6 89694 6 89698 6 89699 6 89700 6 89701 6 89703 6 89725 6 89727 6 89730 6 89735 6 89736 6 89737 6 89741 6 89745 6 89746 6 89751 6 89758 6 89760 6 89772 6 89774 6 89780 6 89794 6 89799 6 89809 6 89810 6 89815 6 89845 6 89847 6 89849 6 89855 6 89856 6 89869 6 89871 6 89875 6 89876 6 89885 6 89887 6 89889 6 89895 6 89898 6 89901 6 89902 6 89922 6 89924 6 89925 6 89933 6 89938 6 89940 6 89949 6 89951 6 89954 6 89961 6 89966 6 89970 6 89971 6 89980 6 89990 6 89993 6 89995 6 90004 6 90009 6 90012 6 90029 6 90040 6 90047 6 90048 6 90051 6 90056 6 90058 6 90063 6 90072 6 90082 6 90090 6 90094 6 90100 6 90102 6 90105 6 90107 6 90112 6 90116 6 90118 6 90121 6 90123 6 90124 6 90125 6 90129 6 90136 6 90139 6 90150 6 90154 6 90166 6 90173 6 90181 6 90182 6 90192 6 90201 6 90206 6 90213 6 90217 6 90219 6 90222 6 90226 6 90227 6 90231 6 90234 6 90236 6 90238 6 90247 6 90256 6 90272 6 90276 6 90280 6 90284 6 90287 6 90297 6 90298 6 90305 6 90311 6 90317 6 90318 6 90324 6 90332 6 90334 6 90344 6 90353 6 90358 6 90367 6 90375 6 90377 6 90381 6 90389 6 90392 6 90397 6 90403 6 90421 6 90422 6 90429 6 90442 6 90454 6 90474 6 90477 6 90485 6 90491 6 90493 6 90498 6 90512 6 90513 6 90517 6 90519 6 90522 6 90529 6 90532 6 90548 6 90549 6 90559 6 90573 6 90575 6 90588 6 90596 6 90597 6 90600 6 90610 6 90612 6 90617 6 90625 6 90631 6 90632 6 90634 6 90635 6 90638 6 90639 6 90649 6 90650 6 90662 6 90675 6 90688 6 90692 6 90698 6 90707 6 90714 6 90730 6 90738 6 90739 6 90742 6 90754 6 90760 6 90762 6 90771 6 90773 6 90782 6 90790 6 90794 6 90808 6 90820 6 90824 6 90837 6 90855 6 90864 6 90881 6 90888 6 90893 6 90904 6 90912 6 90920 6 90923 6 90929 6 90931 6 90936 6 90941 6 90949 6 90968 6 90970 6 90971 6 90973 6 90974 6 90979 6 90998 6 91003 6 91004 6 91007 6 91017 6 91018 6 91021 6 91027 6 91036 6 91054 6 91058 6 91066 6 91067 6 91071 6 91075 6 91081 6 91092 6 91110 6 91113 6 91124 6 91125 6 91126 6 91127 6 91128 6 91131 6 91136 6 91140 6 91149 6 91153 6 91155 6 91164 6 91174 6 91178 6 91193 6 91195 6 91198 6 91199 6 91200 6 91206 6 91209 6 91214 6 91221 6 91223 6 91232 6 91242 6 91258 6 91260 6 91263 6 91266 6 91268 6 91275 6 91278 6 91279 6 91287 6 91288 6 91303 6 91319 6 91320 6 91332 6 91334 6 91336 6 91338 6 91340 6 91342 6 91351 6 91353 6 91355 6 91356 6 91360 6 91366 6 91373 6 91376 6 91381 6 91385 6 91386 6 91387 6 91389 6 91399 6 91404 6 91417 6 91424 6 91429 6 91438 6 91441 6 91443 6 91444 6 91450 6 91460 6 91469 6 91474 6 91483 6 91492 6 91493 6 91498 6 91502 6 91508 6 91510 6 91513 6 91518 6 91524 6 91538 6 91563 6 91567 6 91571 6 91585 6 91590 6 91593 6 91596 6 91607 6 91611 6 91619 6 91625 6 91629 6 91630 6 91632 6 91638 6 91646 6 91649 6 91659 6 91664 6 91676 6 91685 6 91687 6 91695 6 91696 6 91698 6 91713 6 91724 6 91728 6 91731 6 91732 6 91739 6 91745 6 91748 6 91753 6 91761 6 91767 6 91778 6 91786 6 91794 6 91803 6 91811 6 91829 6 91838 6 91840 6 91860 6 91865 6 91868 6 91876 6 91885 6 91888 6 91894 6 91903 6 91905 6 91908 6 91912 6 91913 6 91917 6 91923 6 91945 6 91957 6 91963 6 91965 6 91972 6 91975 6 91981 6 91996 6 91998 6 92003 6 92009 6 92017 6 92019 6 92023 6 92024 6 92027 6 92028 6 92032 6 92033 6 92037 6 92041 6 92048 6 92052 6 92053 6 92055 6 92058 6 92079 6 92082 6 92085 6 92090 6 92094 6 92111 6 92119 6 92129 6 92133 6 92135 6 92137 6 92164 6 92174 6 92178 6 92179 6 92187 6 92189 6 92193 6 92194 6 92196 6 92221 6 92232 6 92243 6 92246 6 92247 6 92250 6 92251 6 92269 6 92287 6 92300 6 92307 6 92308 6 92326 6 92332 6 92337 6 92346 6 92353 6 92356 6 92357 6 92359 6 92365 6 92366 6 92369 6 92377 6 92409 6 92418 6 92424 6 92425 6 92427 6 92453 6 92459 6 92472 6 92473 6 92493 6 92494 6 92499 6 92515 6 92516 6 92526 6 92527 6 92528 6 92534 6 92550 6 92554 6 92556 6 92570 6 92575 6 92576 6 92582 6 92612 6 92626 6 92643 6 92644 6 92650 6 92651 6 92656 6 92671 6 92684 6 92689 6 92690 6 92699 6 92701 6 92710 6 92715 6 92718 6 92724 6 92728 6 92744 6 92748 6 92759 6 92774 6 92786 6 92794 6 92795 6 92808 6 92809 6 92825 6 92829 6 92830 6 92835 6 92836 6 92837 6 92838 6 92848 6 92850 6 92866 6 92867 6 92873 6 92881 6 92884 6 92901 6 92902 6 92903 6 92904 6 92910 6 92911 6 92912 6 92923 6 92942 6 92951 6 92954 6 92964 6 92969 6 92972 6 92974 6 92981 6 92984 6 92986 6 92994 6 92995 6 93003 6 93004 6 93005 6 93014 6 93015 6 93022 6 93026 6 93031 6 93032 6 93034 6 93043 6 93050 6 93055 6 93056 6 93057 6 93058 6 93064 6 93074 6 93075 6 93076 6 93077 6 93078 6 93098 6 93101 6 93102 6 93104 6 93112 6 93114 6 93115 6 93133 6 93136 6 93149 6 93155 6 93156 6 93160 6 93161 6 93164 6 93168 6 93173 6 93174 6 93181 6 93183 6 93192 6 93202 6 93209 6 93212 6 93214 6 93215 6 93223 6 93234 6 93246 6 93248 6 93253 6 93255 6 93256 6 93258 6 93294 6 93305 6 93308 6 93310 6 93313 6 93315 6 93316 6 93320 6 93328 6 93329 6 93334 6 93335 6 93337 6 93351 6 93362 6 93366 6 93368 6 93376 6 93381 6 93383 6 93385 6 93396 6 93399 6 93406 6 93407 6 93411 6 93414 6 93415 6 93417 6 93435 6 93436 6 93439 6 93441 6 93444 6 93450 6 93457 6 93461 6 93467 6 93468 6 93472 6 93485 6 93498 6 93500 6 93501 6 93503 6 93508 6 93512 6 93517 6 93525 6 93526 6 93529 6 93554 6 93556 6 93558 6 93565 6 93583 6 93596 6 93601 6 93604 6 93620 6 93622 6 93626 6 93628 6 93651 6 93671 6 93677 6 93685 6 93688 6 93689 6 93698 6 93703 6 93711 6 93712 6 93714 6 93724 6 93726 6 93740 6 93756 6 93760 6 93761 6 93766 6 93795 6 93797 6 93801 6 93802 6 93814 6 93815 6 93816 6 93825 6 93828 6 93835 6 93848 6 93849 6 93850 6 93857 6 93871 6 93877 6 93889 6 93893 6 93897 6 93899 6 93902 6 93904 6 93906 6 93907 6 93908 6 93914 6 93918 6 93922 6 93927 6 93937 6 93945 6 93953 6 93959 6 93962 6 93963 6 93979 6 93989 6 93990 6 94013 6 94020 6 94023 6 94024 6 94025 6 94026 6 94027 6 94039 6 94041 6 94047 6 94049 6 94055 6 94067 6 94075 6 94089 6 94096 6 94104 6 94108 6 94114 6 94116 6 94128 6 94131 6 94133 6 94135 6 94142 6 94143 6 94146 6 94153 6 94157 6 94158 6 94163 6 94164 6 94171 6 94180 6 94192 6 94199 6 94219 6 94225 6 94238 6 94245 6 94262 6 94268 6 94272 6 94277 6 94279 6 94280 6 94281 6 94291 6 94293 6 94305 6 94306 6 94308 6 94327 6 94332 6 94334 6 94340 6 94342 6 94344 6 94347 6 94350 6 94365 6 94367 6 94374 6 94379 6 94381 6 94387 6 94391 6 94395 6 94396 6 94399 6 94401 6 94406 6 94409 6 94415 6 94417 6 94418 6 94436 6 94445 6 94452 6 94455 6 94473 6 94479 6 94491 6 94498 6 94504 6 94505 6 94512 6 94516 6 94525 6 94533 6 94534 6 94536 6 94541 6 94545 6 94550 6 94557 6 94562 6 94589 6 94600 6 94603 6 94612 6 94613 6 94629 6 94638 6 94649 6 94651 6 94653 6 94664 6 94672 6 94675 6 94685 6 94686 6 94687 6 94691 6 94692 6 94701 6 94705 6 94709 6 94710 6 94719 6 94726 6 94729 6 94733 6 94737 6 94739 6 94748 6 94752 6 94753 6 94771 6 94774 6 94789 6 94813 6 94814 6 94817 6 94822 6 94824 6 94831 6 94834 6 94838 6 94853 6 94863 6 94869 6 94883 6 94891 6 94905 6 94906 6 94909 6 94917 6 94920 6 94924 6 94928 6 94935 6 94938 6 94939 6 94943 6 94948 6 94952 6 94953 6 94963 6 94976 6 94977 6 94981 6 94982 6 94991 6 94996 6 94997 6 94999 6 95003 6 95006 6 95022 6 95024 6 95025 6 95030 6 95033 6 95039 6 95041 6 95042 6 95053 6 95060 6 95064 6 95066 6 95080 6 95087 6 95089 6 95090 6 95094 6 95100 6 95101 6 95112 6 95116 6 95119 6 95123 6 95125 6 95128 6 95138 6 95146 6 95147 6 95148 6 95151 6 95152 6 95157 6 95164 6 95166 6 95175 6 95177 6 95188 6 95196 6 95200 6 95203 6 95207 6 95219 6 95223 6 95224 6 95228 6 95231 6 95237 6 95241 6 95242 6 95255 6 95258 6 95262 6 95269 6 95272 6 95274 6 95283 6 95287 6 95292 6 95295 6 95296 6 95297 6 95303 6 95310 6 95314 6 95325 6 95342 6 95355 6 95358 6 95361 6 95363 6 95376 6 95387 6 95391 6 95401 6 95403 6 95414 6 95415 6 95416 6 95432 6 95436 6 95437 6 95439 6 95443 6 95444 6 95447 6 95463 6 95466 6 95470 6 95476 6 95481 6 95493 6 95507 6 95512 6 95534 6 95541 6 95544 6 95562 6 95565 6 95570 6 95571 6 95579 6 95586 6 95587 6 95595 6 95597 6 95599 6 95602 6 95603 6 95605 6 95632 6 95638 6 95640 6 95642 6 95643 6 95647 6 95654 6 95667 6 95673 6 95676 6 95680 6 95686 6 95696 6 95708 6 95709 6 95714 6 95723 6 95724 6 95734 6 95739 6 95743 6 95747 6 95749 6 95753 6 95757 6 95770 6 95773 6 95791 6 95799 6 95802 6 95804 6 95812 6 95817 6 95826 6 95827 6 95834 6 95835 6 95837 6 95838 6 95840 6 95853 6 95856 6 95866 6 95873 6 95881 6 95886 6 95889 6 95897 6 95903 6 95904 6 95919 6 95931 6 95939 6 95950 6 95951 6 95961 6 95962 6 95978 6 95987 6 96012 6 96013 6 96015 6 96020 6 96024 6 96026 6 96029 6 96030 6 96037 6 96042 6 96054 6 96055 6 96065 6 96085 6 96086 6 96087 6 96102 6 96114 6 96120 6 96130 6 96133 6 96134 6 96136 6 96137 6 96139 6 96142 6 96153 6 96155 6 96160 6 96173 6 96177 6 96181 6 96189 6 96197 6 96201 6 96203 6 96204 6 96207 6 96210 6 96220 6 96223 6 96224 6 96238 6 96242 6 96247 6 96250 6 96252 6 96258 6 96262 6 96265 6 96267 6 96269 6 96275 6 96277 6 96279 6 96283 6 96284 6 96286 6 96303 6 96312 6 96315 6 96317 6 96322 6 96323 6 96324 6 96330 6 96336 6 96340 6 96343 6 96352 6 96357 6 96360 6 96364 6 96372 6 96380 6 96381 6 96392 6 96393 6 96396 6 96401 6 96408 6 96416 6 96420 6 96424 6 96427 6 96428 6 96429 6 96435 6 96436 6 96438 6 96451 6 96461 6 96462 6 96479 6 96480 6 96481 6 96489 6 96501 6 96505 6 96506 6 96510 6 96514 6 96544 6 96547 6 96566 6 96568 6 96570 6 96581 6 96588 6 96591 6 96592 6 96621 6 96622 6 96627 6 96640 6 96646 6 96652 6 96654 6 96658 6 96670 6 96690 6 96700 6 96707 6 96712 6 96722 6 96734 6 96737 6 96738 6 96740 6 96742 6 96745 6 96752 6 96773 6 96776 6 96783 6 96788 6 96792 6 96799 6 96811 6 96814 6 96823 6 96830 6 96836 6 96842 6 96850 6 96856 6 96865 6 96867 6 96875 6 96884 6 96890 6 96913 6 96918 6 96919 6 96925 6 96928 6 96930 6 96940 6 96941 6 96951 6 96953 6 96969 6 96970 6 96978 6 96986 6 96992 6 97006 6 97015 6 97019 6 97024 6 97039 6 97045 6 97046 6 97047 6 97051 6 97058 6 97060 6 97066 6 97067 6 97068 6 97089 6 97096 6 97099 6 97100 6 97104 6 97128 6 97132 6 97148 6 97151 6 97175 6 97179 6 97182 6 97186 6 97193 6 97198 6 97209 6 97231 6 97242 6 97244 6 97259 6 97260 6 97265 6 97277 6 97281 6 97284 6 97289 6 97301 6 97309 6 97311 6 97318 6 97319 6 97325 6 97330 6 97337 6 97359 6 97361 6 97364 6 97372 6 97381 6 97396 6 97401 6 97416 6 97420 6 97427 6 97430 6 97435 6 97438 6 97446 6 97454 6 97467 6 97469 6 97475 6 97477 6 97478 6 97487 6 97491 6 97498 6 97505 6 97512 6 97516 6 97539 6 97544 6 97545 6 97554 6 97558 6 97585 6 97592 6 97598 6 97603 6 97612 6 97614 6 97615 6 97626 6 97634 6 97636 6 97639 6 97648 6 97658 6 97660 6 97661 6 97664 6 97676 6 97677 6 97689 6 97690 6 97698 6 97710 6 97713 6 97717 6 97721 6 97725 6 97726 6 97727 6 97729 6 97732 6 97733 6 97742 6 97743 6 97754 6 97767 6 97772 6 97782 6 97788 6 97799 6 97805 6 97808 6 97811 6 97812 6 97815 6 97817 6 97826 6 97832 6 97835 6 97841 6 97842 6 97843 6 97856 6 97861 6 97862 6 97863 6 97864 6 97869 6 97876 6 97884 6 97891 6 97901 6 97907 6 97912 6 97915 6 97916 6 97917 6 97929 6 97931 6 97941 6 97948 6 97960 6 97969 6 97974 6 97978 6 97981 6 97990 6 97993 6 97996 6 98008 6 98011 6 98012 6 98013 6 98014 6 98017 6 98022 6 98027 6 98030 6 98032 6 98037 6 98046 6 98050 6 98058 6 98059 6 98061 6 98069 6 98074 6 98077 6 98080 6 98082 6 98083 6 98092 6 98118 6 98122 6 98138 6 98139 6 98145 6 98148 6 98151 6 98157 6 98165 6 98169 6 98175 6 98176 6 98179 6 98184 6 98189 6 98190 6 98196 6 98201 6 98203 6 98208 6 98209 6 98215 6 98228 6 98240 6 98245 6 98252 6 98258 6 98262 6 98271 6 98273 6 98274 6 98283 6 98294 6 98303 6 98305 6 98308 6 98313 6 98314 6 98316 6 98318 6 98324 6 98333 6 98337 6 98346 6 98348 6 98353 6 98357 6 98359 6 98361 6 98362 6 98364 6 98368 6 98370 6 98376 6 98387 6 98397 6 98398 6 98399 6 98403 6 98404 6 98408 6 98414 6 98417 6 98420 6 98428 6 98429 6 98436 6 98440 6 98451 6 98455 6 98464 6 98473 6 98479 6 98480 6 98482 6 98496 6 98498 6 98501 6 98506 6 98514 6 98548 6 98551 6 98553 6 98555 6 98564 6 98568 6 98569 6 98577 6 98582 6 98587 6 98596 6 98600 6 98608 6 98613 6 98614 6 98619 6 98625 6 98626 6 98639 6 98646 6 98655 6 98663 6 98674 6 98678 6 98680 6 98682 6 98684 6 98692 6 98716 6 98721 6 98723 6 98724 6 98731 6 98732 6 98733 6 98734 6 98735 6 98744 6 98747 6 98755 6 98757 6 98775 6 98776 6 98781 6 98788 6 98794 6 98796 6 98800 6 98807 6 98812 6 98816 6 98826 6 98830 6 98831 6 98840 6 98842 6 98844 6 98853 6 98856 6 98857 6 98866 6 98870 6 98878 6 98880 6 98889 6 98898 6 98906 6 98910 6 98932 6 98933 6 98948 6 98953 6 98958 6 98967 6 98968 6 98973 6 98975 6 98985 6 98986 6 98991 6 98996 6 98997 6 \. -- -- Data for Name: campaigns; Type: TABLE DATA; Schema: zillion_test; Owner: postgres -- COPY zillion_test.campaigns (id, name, category, partner_id, created_at) FROM stdin; 1 Campaign 1A fruits 1 2019-03-26 21:02:15+00 2 Campaign 2A vegetables 1 2019-03-26 21:02:15+00 3 Campaign 1B fruits 2 2019-03-26 21:02:15+00 4 Campaign 2B vegetables 2 2019-03-26 21:02:15+00 5 Campaign 1C fruits 3 2019-03-26 21:02:15+00 6 Campaign 2C vegetables 3 2019-03-26 21:02:15+00 \. -- -- Data for Name: partners; Type: TABLE DATA; Schema: zillion_test; Owner: postgres -- COPY zillion_test.partners (id, name, created_at) FROM stdin; 1 Partner A 2019-03-26 21:02:15+00 2 Partner B 2019-03-26 21:02:15+00 3 Partner C 2019-03-26 21:02:15+00 \. -- -- Name: campaign_transactions_id_seq; Type: SEQUENCE SET; Schema: zillion_test; Owner: postgres -- SELECT pg_catalog.setval('zillion_test.campaign_transactions_id_seq', 99000, true); -- -- Name: campaigns_id_seq; Type: SEQUENCE SET; Schema: zillion_test; Owner: postgres -- SELECT pg_catalog.setval('zillion_test.campaigns_id_seq', 6, true); -- -- Name: partners_id_seq; Type: SEQUENCE SET; Schema: zillion_test; Owner: postgres -- SELECT pg_catalog.setval('zillion_test.partners_id_seq', 3, true); -- -- Name: campaigns idx_16390_primary; Type: CONSTRAINT; Schema: zillion_test; Owner: postgres -- ALTER TABLE ONLY zillion_test.campaigns ADD CONSTRAINT idx_16390_primary PRIMARY KEY (id); -- -- Name: campaign_cost idx_16395_primary; Type: CONSTRAINT; Schema: zillion_test; Owner: postgres -- ALTER TABLE ONLY zillion_test.campaign_cost ADD CONSTRAINT idx_16395_primary PRIMARY KEY (campaign_id); -- -- Name: campaign_transactions idx_16400_primary; Type: CONSTRAINT; Schema: zillion_test; Owner: postgres -- ALTER TABLE ONLY zillion_test.campaign_transactions ADD CONSTRAINT idx_16400_primary PRIMARY KEY (id); -- -- Name: partners idx_16406_primary; Type: CONSTRAINT; Schema: zillion_test; Owner: postgres -- ALTER TABLE ONLY zillion_test.partners ADD CONSTRAINT idx_16406_primary PRIMARY KEY (id); -- -- Name: idx_16390_idx_name; Type: INDEX; Schema: zillion_test; Owner: postgres -- CREATE UNIQUE INDEX idx_16390_idx_name ON zillion_test.campaigns USING btree (name); -- -- Name: idx_16400_idx_campaign_id; Type: INDEX; Schema: zillion_test; Owner: postgres -- CREATE INDEX idx_16400_idx_campaign_id ON zillion_test.campaign_transactions USING btree (campaign_id); -- -- Name: idx_16406_idx_name; Type: INDEX; Schema: zillion_test; Owner: postgres -- CREATE UNIQUE INDEX idx_16406_idx_name ON zillion_test.partners USING btree (name); -- -- PostgreSQL database dump complete -- ================================================ FILE: tests/test_adhoc_ds_config.json ================================================ { "datasources": { "test_adhoc_db": { "connect": "sqlite:////tmp/test_adhoc_db", "tables": { "main.dma_zip": { "type": "dimension", "data_url": "https://raw.githubusercontent.com/totalhack/zillion/master/tests/dma_zip.csv", "if_exists": "replace", "drop_dupes": true, "convert_types": { "DMA_Code": "text", "DMA_Description": "text" }, "create_fields": true, "primary_key": ["Zip_Code"], "columns": { "Zip_Code": { "fields": ["Zip_Code"] }, "DMA_Code": { "fields": ["DMA_Code"] }, "DMA_Description": { "fields": ["DMA_Description"] } } } } } } } ================================================ FILE: tests/test_config.yaml ================================================ DEBUG: false LOG_LEVEL: WARNING LOAD_TABLE_CHUNK_SIZE: 5000 ZILLION_DB_URL: sqlite:////tmp/zillion.db # OPENAI_API_KEY: OPENAI_MODEL: gpt-3.5-turbo QDRANT_HOST: localhost ADHOC_DATASOURCE_DIRECTORY: /tmp DATASOURCE_QUERY_MODE: sequential DATASOURCE_QUERY_TIMEOUT: null DATASOURCE_QUERY_WORKERS: 4 DATASOURCE_CONTEXTS: testdb2: schema: testdb2 test_adhoc_db: user: totalhack duckdb: schema: zillion_test mysql: user: root host: 127.0.0.1 schema: zillion_test postgresql: user: postgres host: 127.0.0.1 schema: zillion_test TEST: MySQLHost: 127.0.0.1 MySQLPort: 3306 MySQLUser: root MySQLTestSchema: zillion_test PostgreSQLHost: 127.0.0.1 PostgreSQLPort: 5432 PostgreSQLUser: postgres PostgreSQLTestSchema: zillion_test DuckDBTestSchemaBase: zillion_test ================================================ FILE: tests/test_core.py ================================================ from collections import OrderedDict import os import pytest import time from marshmallow import ValidationError from tlbx import json import yaml from .test_utils import * from zillion.configs import load_warehouse_config, load_warehouse_config_from_env from zillion.core import * from zillion.datasource import * from zillion.sql_utils import contains_aggregation, contains_sql_keywords from zillion.warehouse import Warehouse def test_zillion_config(): if "ZILLION_CONFIG" in os.environ: del os.environ["ZILLION_CONFIG"] cfg = load_zillion_config() # Should load the dev config assert cfg["DATASOURCE_CONTEXTS"] != {} os.environ["ZILLION_LOG_LEVEL"] = "INFO" cfg = load_zillion_config() assert cfg["LOG_LEVEL"] == "INFO" os.environ["ZILLION_DEBUG"] = "true" cfg = load_zillion_config() set_log_level_from_config(cfg) assert default_logger.level == logging.DEBUG os.environ["ZILLION_DEBUG"] = "false" cfg = load_zillion_config() set_log_level_from_config(cfg) assert default_logger.level == logging.WARNING def test_wh_config_init(config): pass def test_wh_config_include(config): config["includes"] = ["test_include_wh_config.json"] wh = Warehouse(config=config) wh.get_metric("rpl_include") ds = wh.get_datasource("testdb1") assert not ds.metadata.tables["main.partners"].zillion.active def test_datasource_config_init(ds_config): ds = DataSource("testdb1", config=ds_config) print() # Format test output ds.print_info() assert ds def test_load_remote_wh_config(): cfg = load_warehouse_config(REMOTE_CONFIG_URL) def test_wh_from_url_wh_config(): f = "test_wh_config.json" wh = Warehouse(config=f) def test_wh_from_yaml_url_wh_config(): json_file = "test_wh_config.json" with open(json_file, "r") as jf: json_data = json.load(jf) yaml_file = json_file.replace("json", "yaml") with open(yaml_file, "w") as yf: yaml.dump(json_data, yf, indent=2, sort_keys=False) wh = Warehouse(config=yaml_file) def test_load_wh_config_from_env(): var = "ZILLION_TEST_WH_CONFIG" os.environ[var] = REMOTE_CONFIG_URL cfg = load_warehouse_config_from_env(var) def test_wh_save_and_load(): name = "test_warehouse_%s" % time.time() config_url = REMOTE_CONFIG_URL wh = Warehouse(config=config_url) wh_id = wh.save(name, config_url, meta=dict(test=1)) wh = Warehouse.load(wh_id) assert wh.name == name Warehouse.delete(wh_id) def test_datasource_metadata_init(ds_config): metadata = create_test_metadata(ds_config) ds = DataSource("testdb1", metadata=metadata) print() # Format test output ds.print_info() assert ds def test_datasource_metadata_and_config_init(ds_config): metadata = create_test_metadata(ds_config) del ds_config["connect"] # Pass metadata with existing zillion info as well as table config ds = DataSource("testdb1", metadata=metadata, config=ds_config) print() # Format test output ds.print_info() assert ds def test_datasource_from_config(ds_config): ds = DataSource("testdb1", config=ds_config) print() # Format test output ds.print_info() assert ds def test_datasource_skip_conversion_fields(ds_config): ds_config["skip_conversion_fields"] = True ds = DataSource("testdb1", config=ds_config) assert not ds.has_dimension("sale_hour") def test_datasource_config_data_url(ds_config): ds_config["connect"] = { "params": { "data_url": "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true", "if_exists": "replace", } } ds = DataSource("testdb1", config=ds_config) print() # Format test output ds.print_info() assert ds def test_datasource_config_data_url_replace_after(ds_config): ds_config["connect"] = { "params": { "data_url": "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true", "if_exists": "replace_after", "replace_after": "0 minutes", } } ds = DataSource("testdb1", config=ds_config) fname = "/tmp/testdb1.db" mtime = get_modified_time(fname) assert (time.time() - mtime) < 5 # Make sure the file is ~new assert ds ds_config["connect"]["params"]["replace_after"] = "1 minutes" ds = DataSource("testdb1", config=ds_config) new_mtime = get_modified_time(fname) assert new_mtime == mtime # Make sure it was not replaced def test_parse_replace_after(): assert int(parse_replace_after("1 seconds")) == 1 assert int(parse_replace_after("1 Minutes")) == 60 assert int(parse_replace_after("10 hours")) == 60 * 60 * 10 assert int(parse_replace_after("1.2 days")) == 60 * 60 * 24 * 1.2 assert int(parse_replace_after("0 weeks")) == 0 with pytest.raises(ZillionException): parse_replace_after(" weeks") with pytest.raises(ZillionException): parse_replace_after("a weeks") with pytest.raises(ZillionException): parse_replace_after("1 x") def test_datasource_from_db_file(ds_config): ds_name = "testdb1" data_url = "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true" ds = DataSource.from_db_file( data_url, name=ds_name, config=ds_config, if_exists="replace" ) assert ds print() # Format test output ds.print_info() # Test with local file URL ds = DataSource.from_db_file("testdb1", config=ds_config, if_exists="replace") assert ds print() # Format test output ds.print_info() def test_datasource_config_table_data_url(adhoc_config): ds_config = adhoc_config["datasources"]["test_adhoc_db"] ds = DataSource("test_adhoc_db", config=ds_config) print() # Format test output ds.print_info() assert ds def test_datasource_metadata_and_table_data_url(ds_config, adhoc_config): copyfile("testdb1", "/tmp/testdb1") ds_config["connect"] = "sqlite:////tmp/testdb1" metadata = create_test_metadata(ds_config) del ds_config["connect"] drop_metadata_table_if_exists(metadata, "main.dma_zip") # Borrow the adhoc table config that has a data_url setup adhoc_table_config = adhoc_config["datasources"]["test_adhoc_db"]["tables"][ "main.dma_zip" ] ds_config["tables"]["main.dma_zip"] = adhoc_table_config try: ds = DataSource("testdb1", metadata=metadata, config=ds_config) assert "main.dma_zip" in metadata.tables finally: drop_metadata_table_if_exists(metadata, "main.dma_zip") def test_datasource_apply_config_table_data_url(ds_config, adhoc_config): copyfile("testdb1", "/tmp/testdb1") ds_config["connect"] = "sqlite:////tmp/testdb1" metadata = create_test_metadata(ds_config) del ds_config["connect"] drop_metadata_table_if_exists(metadata, "main.dma_zip") try: ds = DataSource("testdb1", metadata=metadata, config=ds_config) # Borrow the adhoc table config that has a data_url setup adhoc_table_config = adhoc_config["datasources"]["test_adhoc_db"]["tables"][ "main.dma_zip" ] ds_config["tables"]["main.dma_zip"] = adhoc_table_config ds.apply_config(ds_config) assert "main.dma_zip" in metadata.tables finally: drop_metadata_table_if_exists(metadata, "main.dma_zip") def test_warehouse_init(config): ds = DataSource("testdb1", config=config["datasources"]["testdb1"]) wh = Warehouse(config=config, datasources=[ds]) assert len(wh.datasources) == 2 def test_warehouse_no_config(ds_config): ds = DataSource("testdb1", config=ds_config) wh = Warehouse(datasources=[ds]) assert wh.get_dimension_names() assert len(wh.datasource_names) == 1 def test_warehouse_has_zillion_info_no_config(ds_config): ds = DataSource("testdb1", config=ds_config) for table in ds.metadata.tables.values(): table.info["zillion"].type = TableTypes.METRIC wh = Warehouse(datasources=[ds]) assert not wh.get_datasource("testdb1").dimension_tables def test_field_display_name(config): wh = Warehouse(config=config) partner_name = wh.get_field("partner_name") # Regular dim/field assert partner_name.display_name == "Partner Name" rpl = wh.get_field("rpl") # Formula Metric assert rpl.display_name == "Revenue/Lead" main_sales_created_at = wh.get_field("main_sales_created_at") # Field from column assert main_sales_created_at.display_name == "Main Sales Created At" sale_hour = wh.get_field("sale_hour") # Auto conversion field assert sale_hour.display_name == "Sale Hour" def test_field_description(config): wh = Warehouse(config=config) partner_name = wh.get_field("partner_name") # Regular dim/field assert partner_name.description is None print(partner_name.display_name, partner_name.description) rpl = wh.get_field("rpl") # Formula Metric assert rpl.description is not None print(rpl.display_name, rpl.description) sale_hour = wh.get_field("sale_hour") # Auto conversion field assert sale_hour.description is not None print(sale_hour.display_name, sale_hour.description) def test_field_meta(config): wh = Warehouse(config=config) field = wh.get_field("rpl") assert field.meta and field.meta["metafield"] == "metavalue" def test_reserved_field_name(config): config["datasources"]["testdb1"]["metrics"].append( {"name": "row_hash", "type": "integer", "aggregation": AggregationTypes.SUM} ) ds = DataSource("testdb1", config=config["datasources"]["testdb1"]) with pytest.raises(WarehouseException): wh = Warehouse(config=config, datasources=[ds]) def test_field_name_starts_with_number(config): config["datasources"]["testdb1"]["metrics"].append( {"name": "1test", "type": "integer", "aggregation": AggregationTypes.SUM} ) with pytest.raises(ValidationError): ds = DataSource("testdb1", config=config["datasources"]["testdb1"]) def test_dimension_to_config(config): wh = Warehouse(config=config) field = wh.get_dimension("partner_name") info(field.to_config()) def test_metric_to_config(config): wh = Warehouse(config=config) field = wh.get_metric("revenue") cfg = field.to_config() assert "formula" not in cfg info(cfg) def test_formula_metric_to_config(config): wh = Warehouse(config=config) field = wh.get_metric("rpl") cfg = field.to_config() assert "type" not in cfg info(cfg) def test_get_metric_configs(config): wh = Warehouse(config=config) metrics = wh.get_metric_configs() assert "revenue" in metrics def test_get_dimension_configs(config): wh = Warehouse(config=config) dims = wh.get_dimension_configs() assert "partner_name" in dims def test_dimension_copy(config): wh = Warehouse(config=config) field = wh.get_dimension("partner_name") info(field.copy()) def test_metric_copy(config): wh = Warehouse(config=config) field = wh.get_metric("revenue") info(field.copy()) def test_formula_metric_copy(config): wh = Warehouse(config=config) field = wh.get_metric("rpl") info(field.copy()) def test_warehouse_technical_within_formula(config): config["metrics"].append( { "name": "revenue_ma_5_sum_5", "aggregation": AggregationTypes.SUM, "rounding": 2, "formula": "{revenue_ma_5}/{revenue_sum_5}", } ) with pytest.raises(InvalidFieldException): wh = Warehouse(config=config) def test_warehouse_metric_divisor(config): wh = Warehouse(config=config) # These are dynamically generated from the divisors config on the revenue metric assert wh.has_metric("revenue_per_lead") assert wh.has_metric("revenue_per_sale") def test_warehouse_metric_multiple_aggregations(config): wh = Warehouse(config=config) # These are dynamically generated for metrics that have multiple aggregations assert wh.has_metric("sales_sum_custom_name") assert wh.has_metric("sales_variant_mean") def test_warehouse_remote_datasource_config(config): config["datasources"]["testdb2"] = ( "https://raw.githubusercontent.com/totalhack/zillion/master/tests/test_sqlite_ds_config.json" ) wh = Warehouse(config=config) assert wh.has_metric("aggr_sales") def test_warehouse_remote_csv_table(adhoc_config): table_config = adhoc_config["datasources"]["test_adhoc_db"]["tables"][ "main.dma_zip" ] table_config["adhoc_table_options"] = {"nrows": 30} wh = Warehouse(config=adhoc_config) assert wh.has_dimension("Zip_Code") def test_warehouse_remote_google_sheet(adhoc_config): url = "https://docs.google.com/spreadsheets/d/1iCzY4av_tinUpG2Q0mQhbxd77XOREwfbPAVZPObzFeE/edit?usp=sharing" adhoc_config["datasources"]["test_adhoc_db"]["tables"]["main.dma_zip"][ "data_url" ] = url wh = Warehouse(config=adhoc_config) assert wh.has_dimension("Zip_Code") def test_warehouse_remote_xlsx_table(adhoc_config): url = ( "https://raw.githubusercontent.com/totalhack/zillion/master/tests/dma_zip.xlsx" ) adhoc_config["datasources"]["test_adhoc_db"]["tables"]["main.dma_zip"][ "data_url" ] = url wh = Warehouse(config=adhoc_config) assert wh.has_dimension("Zip_Code") def test_warehouse_remote_json_table(adhoc_config): url = ( "https://raw.githubusercontent.com/totalhack/zillion/master/tests/dma_zip.json" ) adhoc_config["datasources"]["test_adhoc_db"]["tables"]["main.dma_zip"][ "data_url" ] = url wh = Warehouse(config=adhoc_config) assert wh.has_dimension("Zip_Code") def test_warehouse_remote_html_table(adhoc_config): url = ( "https://raw.githubusercontent.com/totalhack/zillion/master/tests/dma_zip.html" ) adhoc_config["datasources"]["test_adhoc_db"]["tables"]["main.dma_zip"][ "data_url" ] = url wh = Warehouse(config=adhoc_config) wh.print_info() assert wh.has_dimension("Zip_Code") def test_reuse_existing_remote_table(adhoc_config): ds_name = "test_adhoc_db" ds_configs = adhoc_config["datasources"] for ds_name, ds_config in ds_configs.items(): for table in ds_config["tables"].values(): table["if_exists"] = IfExistsModes.IGNORE ds = DataSource(ds_name, config=ds_configs[ds_name]) ds = DataSource(ds_name, config=ds_configs[ds_name]) for ds_name, ds_config in ds_configs.items(): for table in ds_config["tables"].values(): table["if_exists"] = IfExistsModes.FAIL with pytest.raises(ValueError): dsf = DataSource(ds_name, config=ds_configs[ds_name]) def test_bad_table_data_url(ds_config): ds_config["tables"]["main.sales"]["data_url"] = "test" with pytest.raises(AssertionError): ds = DataSource("test", config=ds_config) def test_warehouse_from_data_file(): url = ( "https://raw.githubusercontent.com/totalhack/zillion/master/tests/dma_zip.xlsx" ) wh = Warehouse.from_data_file(url, ["Zip_Code"]) wh.print_info() assert wh.has_dimension("Zip_Code") def test_warehouse_from_db_file(): data_url = "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true" wh = Warehouse.from_db_file(data_url, if_exists="replace") wh.print_info() def test_column_config_override(config): table_config = config["datasources"]["testdb1"]["tables"]["main.sales"] table_config["columns"]["revenue"]["active"] = False wh = Warehouse(config=config) assert not "sales" in wh.get_datasource("testdb1").get_tables_with_field("revenue") def test_table_config_override(config): table_config = config["datasources"]["testdb1"]["tables"]["main.sales"] table_config["active"] = False wh = Warehouse(config=config) assert not wh.get_datasource("testdb1").has_table("main.sales") def test_no_create_fields_no_columns(config): table_config = config["datasources"]["testdb1"]["tables"]["main.partners"] del table_config["columns"] table_config["create_fields"] = False with pytest.raises(ZillionException): wh = Warehouse(config=config) def test_no_create_fields_has_columns(config): del config["datasources"]["testdb2"] campaigns_config = config["datasources"]["testdb1"]["tables"]["main.campaigns"] campaigns_config["create_fields"] = False # This will raise an error because the fields referenced in the columns' # field lists don't exist with pytest.raises(WarehouseException): wh = Warehouse(config=config) def test_no_create_fields_field_exists_has_columns(config): del config["datasources"]["testdb2"] table_config = config["datasources"]["testdb1"]["tables"]["main.partners"] table_config["create_fields"] = False wh = Warehouse(config=config) # ds_partner_name was already defined, make sure it doesnt get overwritten dim = wh.get_dimension("ds_partner_name") assert dim.sa_type.length == 50 def test_create_fields_no_columns(config): del config["datasources"]["testdb2"] table_config = config["datasources"]["testdb1"]["tables"]["main.partners"] table_config["create_fields"] = True del table_config["columns"] table_config["primary_key"] = ["fake_field"] # Primary key mismatch in parent/child relationship with partners/campaigns with pytest.raises(ZillionException): wh = Warehouse(config=config) def test_create_fields_has_columns(config): del config["datasources"]["testdb2"] table_config = config["datasources"]["testdb1"]["tables"]["main.partners"] table_config["create_fields"] = True wh = Warehouse(config=config) assert wh.has_dimension("partner_id") assert wh.has_dimension("partner_name") assert not wh.has_dimension("partners_name") # This one is auto-generated with create_fields, so it has a default naming # style: assert wh.has_dimension("main_partners_created_at") def test_get_dimension_table_set(wh): possible = [{"partner_id", "partner_name"}, {"campaign_name", "partner_name"}] impossible = [ {"lead_id", "partner_id"}, {"sale_id", "lead_id", "campaign_name", "partner_name"}, ] for grain in possible: ts = wh.get_dimension_table_set(grain, grain) for grain in impossible: with pytest.raises(UnsupportedGrainException): ts = wh.get_dimension_table_set(grain, grain) def test_get_metric_table_set(wh): possible = [ ("leads", {"partner_id", "partner_name"}), ("leads", {"campaign_name", "partner_name"}), ("revenue", {"campaign_name", "partner_name", "lead_id"}), ] impossible = [("leads", {"sale_id"})] for metric, grain in possible: wh.get_metric_table_set(metric, grain, grain) for metric, grain in impossible: with pytest.raises(UnsupportedGrainException): wh.get_metric_table_set(metric, grain, grain) def test_get_supported_dimensions(wh): metrics = ["leads", "main_sales_quantity"] dims = wh._get_supported_dimensions(metrics) assert dims & {"campaign_name", "partner_name"} assert not (dims & {"sale_id"}) def test_contains_aggregation(): sql_with_aggr = [ "select sum(column) from table", "select avg(column) from table", "sum(column)", "avg(column)", ] sql_without_aggr = [ "select column from table", "column", "a + b", "(a) + (b)", "(a + b)", "sum", "sum + avg", ] for sql in sql_with_aggr: assert contains_aggregation(sql) for sql in sql_without_aggr: assert not contains_aggregation(sql) def test_contains_sql_keyword(): sql_with_keywords = [ "select col from table", "drop table", "delete from *", # "where 1", # "column", ] sql_without_keywords = [ "distinct", "avg(`select`)", "ifnull(col)", "avg(col)", "col", "a + b", "(a) + (b)", "(a + b)", ] for sql in sql_with_keywords: assert contains_sql_keywords(sql) for sql in sql_without_keywords: assert not contains_sql_keywords(sql) def test_adhoc_datatable_no_columns(): size = 10 column_types = dict(partner_name=str, adhoc_metric=float) data = create_adhoc_data(column_types, size) name = "adhoc_table1" primary_key = ["partner_name"] dt = AdHocDataTable( name, data, TableTypes.METRIC, primary_key=primary_key, # With this setup it creates fields for all columns in the table columns=None, if_exists=IfExistsModes.REPLACE, schema="main", use_full_column_names=True, ) ds = DataSource.from_datatables("adhoc_ds", [dt]) assert ds.has_dimension("main_adhoc_table1_partner_name") ds.print_info() def test_adhoc_datatable_has_columns(): size = 10 column_types = dict(partner_name=str, adhoc_metric=float) data = create_adhoc_data(column_types, size) name = "adhoc_table1" primary_key = ["partner_name"] columns = OrderedDict(partner_name={"fields": ["partner_name"]}) dt = AdHocDataTable( name, data, TableTypes.METRIC, primary_key=primary_key, # With this setup it will only create fields for columns specified columns=columns, if_exists=IfExistsModes.REPLACE, schema="main", ) ds = DataSource.from_datatables("adhoc_ds", [dt]) assert ds.has_dimension("partner_name") assert not ds.has_metric("adhoc_metric") def test_csv_datatable(): name = "dma_zip" file_name = "dma_zip.csv" primary_key = ["Zip_Code"] columns = OrderedDict( Zip_Code={"fields": ["Zip_Code"]}, DMA_Code={"fields": ["DMA_Code"]} ) dt = CSVDataTable( name, file_name, TableTypes.DIMENSION, primary_key=primary_key, columns=columns, if_exists=IfExistsModes.REPLACE, schema="main", ) ds = DataSource.from_datatables("adhoc_ds", [dt]) ds.print_info() assert "Zip_Code" in ds.get_dimensions() def test_excel_datatable(): name = "dma_zip" file_name = "dma_zip.xlsx" primary_key = ["Zip_Code"] columns = OrderedDict( Zip_Code={"fields": ["Zip_Code"]}, DMA_Code={"fields": ["DMA_Code"]} ) dt = ExcelDataTable( name, file_name, TableTypes.DIMENSION, primary_key=primary_key, columns=columns, if_exists=IfExistsModes.REPLACE, schema="main", ) ds = DataSource.from_datatables("adhoc_ds", [dt]) dims = ds.get_dimensions() assert "Zip_Code" in dims assert "DMA_Description" not in dims def test_json_datatable(): name = "dma_zip" file_name = "dma_zip.json" primary_key = ["Zip_Code"] dt = JSONDataTable( name, file_name, TableTypes.DIMENSION, primary_key=primary_key, if_exists=IfExistsModes.REPLACE, schema="main", use_full_column_names=True, ) ds = DataSource.from_datatables("adhoc_ds", [dt]) assert "main_dma_zip_Zip_Code" in ds.get_dimensions() def test_html_datatable(): name = "dma_zip" file_name = "dma_zip.html" primary_key = ["Zip_Code"] dt = HTMLDataTable( name, file_name, TableTypes.DIMENSION, primary_key=primary_key, if_exists=IfExistsModes.REPLACE, schema="main", use_full_column_names=True, ) ds = DataSource.from_datatables("adhoc_ds", [dt]) assert "main_dma_zip_Zip_Code" in ds.get_dimensions() ================================================ FILE: tests/test_duckdb.py ================================================ import pytest from .test_utils import * from zillion.core import * from zillion.datasource import * @pytest.mark.skipif(not pytest.importorskip("duckdb"), reason="duckdb not installed") def test_duckdb_datasource(duckdb_wh): metrics = ["revenue", "leads"] dimensions = ["partner_name"] result = duckdb_wh.execute(metrics, dimensions=dimensions) assert result info(result.df) # TODO no support to kill queries in duckdb yet! # def test_duckdb_sequential_timeout(duckdb_wh): # with update_zillion_config( # dict( # DATASOURCE_QUERY_MODE=DataSourceQueryModes.SEQUENTIAL, # DATASOURCE_QUERY_TIMEOUT=1e-2, # ) # ): # metrics = ["leads"] # dimensions = ["benchmark"] # with pytest.raises(DataSourceQueryTimeoutException): # duckdb_wh.execute(metrics, dimensions=dimensions) # def test_duckdb_multithreaded_timeout(duckdb_wh): # with update_zillion_config( # dict( # DATASOURCE_QUERY_MODE=DataSourceQueryModes.MULTITHREAD, # DATASOURCE_QUERY_TIMEOUT=1e-2, # ) # ): # metrics = ["cost"] # dimensions = ["benchmark"] # with pytest.raises(DataSourceQueryTimeoutException): # duckdb_wh.execute(metrics, dimensions=dimensions) @pytest.mark.skipif(not pytest.importorskip("duckdb"), reason="duckdb not installed") def test_duckdb_date_dimension_conversions(duckdb_wh): params = get_date_conversion_test_params() result = duckdb_wh.execute(**params) assert result df = result.df.reset_index() row = df.iloc[0] info(df) for field, value in EXPECTED_DATE_CONVERSION_VALUES: print(f"Checking {field} = {value}") assert row[field] == value @pytest.mark.skipif(not pytest.importorskip("duckdb"), reason="duckdb not installed") def test_duckdb_where_criteria_conversions(duckdb_wh): metrics = ["leads"] dimensions = ["campaign_created_at"] for field, op, val in CRITERIA_CONVERSION_TESTS: print("criteria:", field, op, val) criteria = [("campaign_name", "=", "Campaign 2B"), (field, op, val)] result = wh_execute(duckdb_wh, locals()) assert result.df.index.any() assert len(result.df) == 1 assert result.df["leads"][0] == 1 ================================================ FILE: tests/test_duckdb_wh_config.json ================================================ { "metrics": [ { "name": "rpl", "display_name": "Revenue/Lead", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "description": "Revenue per Lead", "meta": { "metafield": "metavalue" } }, { "name": "rpl_weighted", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "weighting_metric": "main_sales_quantity" }, { "name": "rpl_lead_weighted", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "weighting_metric": "leads" }, { "name": "rpl_lead_formula_weighted", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "weighting_metric": "leads_formula" }, { "name": "rps_lead_weighted", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{sales}", "weighting_metric": "leads" }, { "name": "rpl_squared", "aggregation": "mean", "rounding": 2, "formula": "{rpl}*{rpl}" }, { "name": "rpl_unsquared", "aggregation": "mean", "rounding": 2, "formula": "{rpl_squared}/{rpl}" }, { "name": "rpl_ma_5", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "technical": "mean(5)" }, { "name": "revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "divisors": { "metrics": [ "leads", "sales" ], "rounding": 2, "formula": "1.0*IFNULL({metric},0)/{divisor}" } }, { "name": "revenue_ma_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "mean(5)" }, { "name": "revenue_sum_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "sum(5)" }, { "name": "revenue_cumsum", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "cumsum" }, { "name": "revenue_boll_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "boll(5)" }, { "name": "revenue_diff", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "diff" }, { "name": "revenue_pct_diff", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "pct_change" }, { "name": "revenue_ds", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2 }, { "name": "leads", "type": "integer", "aggregation": "sum" }, { "name": "leads_formula", "formula": "{leads}", "aggregation": "sum" }, { "name": "sales", "type": "integer", "aggregation": "sum" }, { "name": "revenue_required_grain", "type": "numeric(10,2)", "aggregation": "sum", "required_grain": [ "campaign_name" ] }, { "name": "revenue_ifnull", "type": "numeric(10,2)", "aggregation": "sum", "ifnull": 0 }, { "name": "revenue_per_lead_required_grain", "aggregation": "mean", "formula": "1.0*{revenue}/{leads}", "required_grain": [ "campaign_name" ] }, { "name": "revenue_formula_required_grain", "aggregation": "mean", "formula": "1.0*{revenue_required_grain}" }, { "name": "repeated_metric", "type": "integer", "aggregation": "sum" } ], "dimensions": [ { "name": "partner_name", "type": "string(32)", "values": [ "Partner C", "Partner B", "Partner A" ], "sorter": "zillion.field.sort_by_value_order" }, { "name": "partner_name_formula", "formula": "IFNULL({partner_name}, 'test')" }, { "name": "partner_name_formula_nested", "formula": "{partner_name_formula}" } ], "datasources": { "zillion_test": { "connect": "duckdb:///zillion_test", "metrics": [ { "name": "lead_count", "type": "integer", "aggregation": "count" }, { "name": "lead_count_distinct", "type": "integer", "aggregation": "count_distinct" }, { "name": "ds_sales", "type": "integer", "aggregation": "sum" }, { "name": "revenue_mean", "type": "numeric(10,2)", "aggregation": "mean", "rounding": 2, "weighting_metric": "main_sales_quantity" }, { "name": "revenue_mean_ds_weighted", "type": "numeric(10,2)", "aggregation": "mean", "rounding": 2, "weighting_metric": "main_sales_quantity" } ], "dimensions": [ { "name": "ds_partner_name", "type": "string(50)" }, { "name": "campaign_name_length", "type": "integer" }, { "name": "revenue_decile", "type": "integer" }, { "name": "benchmark", "type": "string" } ], "tables": { "main.partners": { "type": "dimension", "create_fields": true, "siblings": [ "main.partner_sibling" ], "primary_key": [ "partner_id" ], "columns": { "id": { "fields": [ "partner_id" ] }, "name": { "fields": [ "partner_name", "ds_partner_name", { "name": "benchmark", "ds_formula": "generate_series(1,8000000)" } ] } } }, "main.partner_sibling": { "type": "dimension", "create_fields": true, "primary_key": [ "partner_id" ], "columns": { "partner_id": { "fields": [ "partner_id" ] }, "sibling_dim": { "fields": [ "partner_sibling_dim" ] } } }, "main.campaigns": { "type": "dimension", "create_fields": true, "parent": "main.partners", "primary_key": [ "campaign_id" ], "columns": { "id": { "fields": [ "campaign_id" ] }, "name": { "fields": [ "campaign_name", { "name": "campaign_name_length", "ds_formula": "LENGTH(campaigns.name)" } ] }, "partner_id": { "fields": [ "partner_id" ] }, "created_at": { "fields": [ "campaign_created_at" ], "allow_type_conversions": true, "type_conversion_prefix": "campaign_" } } }, "main.leads": "test_table_config.json", "main.sales": { "type": "metric", "priority": 2, "create_fields": true, "parent": "main.leads", "primary_key": [ "sale_id" ], "columns": { "id": { "fields": [ "sale_id", { "name": "sales", "ds_formula": "COUNT(DISTINCT sales.id)" }, { "name": "ds_sales", "ds_formula": "COUNT(DISTINCT sales.id)" }, { "name": "repeated_metric", "ds_formula": "COUNT(DISTINCT sales.id)" } ] }, "created_at": { "allow_type_conversions": true, "type_conversion_prefix": "sale_" }, "lead_id": { "fields": [ { "name": "lead_id", "ds_formula": "sales.lead_id", "ds_criteria_conversions": { "=": [ [ "=", "{}" ] ] } } ] }, "revenue": { "fields": [ "revenue", "revenue_ma_5", "revenue_sum_5", "revenue_boll_5", "revenue_cumsum", "revenue_diff", "revenue_pct_diff", "revenue_mean", "revenue_required_grain", "revenue_ifnull", { "name": "revenue_ds", "ds_formula": "IFNULL(sales.revenue, 0)" }, { "name": "revenue_mean_ds_weighted", "ds_formula": "SUM(1.0*sales.revenue*sales.quantity)/SUM(sales.quantity)" }, { "name": "revenue_decile", "ds_formula": "10*ROUND(sales.revenue/10.0, 0)" } ] } } } } } } } ================================================ FILE: tests/test_example_wh_config.py ================================================ from zillion.configs import load_warehouse_config from zillion.core import RollupTypes, info from zillion.warehouse import Warehouse config = load_warehouse_config("../examples/example_wh_config.json") def test_example_wh_init(): wh = Warehouse(config=config) wh.print_info() def test_example_wh_report1(): wh = Warehouse(config=config) result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["partner_name"] ) assert result info(result.df) def test_example_wh_report2(): wh = Warehouse(config=config) result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["campaign_name"], criteria=[("partner_name", "=", "Partner A")], ) assert result info(result.df) def test_example_wh_report3(): wh = Warehouse(config=config) result = wh.execute( metrics=["sales", "leads", "revenue"], dimensions=["partner_name", "campaign_name"], rollup=RollupTypes.ALL, ) assert result info(result.df) ================================================ FILE: tests/test_include_wh_config.json ================================================ { "metrics": [ { "name": "rpl_include", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}" } ], "datasources": { "testdb1": { "connect": "sqlite:///testdb1", "tables": { "main.partners": { "type": "dimension", "active": false, "primary_key": [ "partner_id" ], "columns": { "id": { "fields": [ "partner_id" ] }, "name": { "fields": [ "partner_name_include" ] } } } } } } } ================================================ FILE: tests/test_mysql.py ================================================ import pytest from .test_utils import * from zillion.core import * from zillion.datasource import * def test_mysql_datasource(mysql_wh): metrics = ["cost", "clicks", "transactions"] dimensions = ["partner_name"] result = mysql_wh.execute(metrics, dimensions=dimensions) assert result info(result.df) def test_mysql_table_data_url(mysql_ds_config, adhoc_config): adhoc_table_config = adhoc_config["datasources"]["test_adhoc_db"]["tables"][ "main.dma_zip" ] mysql_ds_config["tables"]["zillion_test.dma_zip"] = adhoc_table_config ds = DataSource("mysql", config=mysql_ds_config) assert ds.has_table("zillion_test.dma_zip") def test_mysql_ignore_table_data_url(mysql_ds_config, adhoc_config): adhoc_table_config = adhoc_config["datasources"]["test_adhoc_db"]["tables"][ "main.dma_zip" ] adhoc_table_config["if_exists"] = IfExistsModes.IGNORE mysql_ds_config["tables"]["zillion_test.dma_zip"] = adhoc_table_config ds = DataSource("mysql", config=mysql_ds_config) assert ds.has_table("zillion_test.dma_zip") def test_mysql_report_repeat_criteria(wh): metrics = ["rpl", "sales"] dimensions = ["date"] criteria = [("date", ">=", "2020-04-29"), ("date", "<", "2020-05-01")] result = wh_execute(wh, locals()) assert result and result.rowcount > 0 info(result.df) def test_mysql_sequential_timeout(mysql_wh): with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.SEQUENTIAL, DATASOURCE_QUERY_TIMEOUT=1e-2, ) ): metrics = ["benchmark"] dimensions = ["partner_name"] with pytest.raises(DataSourceQueryTimeoutException): result = mysql_wh.execute(metrics, dimensions=dimensions) def test_mysql_multithreaded_timeout(mysql_wh): with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.MULTITHREAD, DATASOURCE_QUERY_TIMEOUT=1e-1, ) ): metrics = ["benchmark", "transactions"] dimensions = ["partner_name"] with pytest.raises(DataSourceQueryTimeoutException): result = mysql_wh.execute(metrics, dimensions=dimensions) def test_mysql_date_dimension_conversions(mysql_wh): params = get_date_conversion_test_params() result = mysql_wh.execute(**params) assert result df = result.df.reset_index() row = df.iloc[0] info(df) for field, value in EXPECTED_DATE_CONVERSION_VALUES: print(f"Checking {field} = {value}") assert row[field] == value def test_mysql_where_criteria_conversions(mysql_wh): metrics = ["clicks"] dimensions = ["campaign_created_at"] for field, op, val in CRITERIA_CONVERSION_TESTS: print("criteria:", field, op, val) criteria = [("campaign_name", "=", "Campaign 2B"), (field, op, val)] result = wh_execute(mysql_wh, locals()) assert result.df.index.any() assert len(result.df) == 1 assert result.df["clicks"][0] == 85 ================================================ FILE: tests/test_mysql_ds_config.json ================================================ { "connect": "mysql+pymysql://{user}@{host}/{schema}", "prefix_with": "STRAIGHT_JOIN", "metrics": [ { "name": "clicks", "type": "integer", "aggregation": "sum" }, { "name": "cost", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2 } ], "tables": { "zillion_test.partners": { "type": "dimension", "create_fields": true, "primary_key": [ "partner_id" ], "columns": { "id": { "fields": [ "partner_id" ] }, "name": { "fields": [ "partner_name" ] } } }, "zillion_test.campaigns": { "type": "dimension", "create_fields": true, "parent": "zillion_test.partners", "primary_key": [ "campaign_id" ], "columns": { "id": { "fields": [ "campaign_id" ] }, "name": { "fields": [ "campaign_name" ] }, "partner_id": { "fields": [ "partner_id" ] }, "created_at": { "fields": [ "campaign_created_at" ], "allow_type_conversions": true, "type_conversion_prefix": "campaign_" } } }, "zillion_test.campaign_cost": { "type": "metric", "create_fields": true, "prefix_with": "STRAIGHT_JOIN", "primary_key": [ "campaign_id" ], "columns": { "campaign_id": { "fields": [ "campaign_id" ] }, "cost": { "fields": [ "cost", { "name": "benchmark", "ds_formula": "benchmark(2000000, md5('when will it end?'))" } ] }, "clicks": { "fields": [ "clicks" ] } } }, "zillion_test2.campaign_transactions": { "type": "metric", "create_fields": true, "primary_key": [ "transaction_id" ], "columns": { "id": { "fields": [ "transaction_id", { "name": "transactions", "ds_formula": "COUNT(DISTINCT campaign_transactions.id)" } ] }, "campaign_id": { "fields": [ "campaign_id" ] } } } } } ================================================ FILE: tests/test_nlp.py ================================================ from datetime import datetime, timedelta import pytest from .test_utils import * from zillion.nlp import * def n_days_ago(n): return (datetime.now() - timedelta(days=n)).date() GENERIC_NLP_QUERIES = [ [ "show me revenue and sales for yesterday", dict( metrics=["revenue", "sales"], criteria=[["date", "=", str(n_days_ago(1))]], ), ], [ "revenue and sales by date for the last 30 days. Rows with more than 5 sales.", dict( metrics=["revenue", "sales"], dimensions=["date"], criteria=[["date", ">=", str(n_days_ago(30))]], row_filters=[["sales", ">", 5]], ), ], [ "top 10 campaigns by revenue yesterday for ad engine Google. Include totals.", dict( metrics=["revenue"], dimensions=["campaign"], criteria=[ ["date", "=", str(n_days_ago(1))], ["ad_engine", "=", "Google"], ], limit=10, order_by=[["revenue", "desc"]], rollup="totals", ), ], ] @pytest.mark.nlp def test_text_to_report_no_fields(): for query, expected in GENERIC_NLP_QUERIES: print(f"Testing query: {query}") report = text_to_report_params(query, prompt_version="no_fields") print(f"Report: {report}") assert report == expected ALL_FIELDS_NLP_QUERIES = [ [ "show me revenue and sales for yesterday", dict( metrics=["revenue", "sales"], criteria=[["date", "=", str(n_days_ago(1))]], ), ], ] @pytest.mark.nlp def test_text_to_report_all_fields(config): wh = Warehouse(config=config) for query, expected in ALL_FIELDS_NLP_QUERIES: print(f"Testing query: {query}") report = text_to_report_params(query, warehouse=wh, prompt_version="all_fields") print(f"Report: {report}") assert report == expected DIMENSION_FIELDS_NLP_QUERIES = [ [ "show me revenue and sales for yesterday", dict( metrics=["revenue", "sales"], criteria=[["date", "=", str(n_days_ago(1))]], ), ], ] @pytest.mark.nlp def test_text_to_report_dimension_fields(config): wh = Warehouse(config=config) for query, expected in DIMENSION_FIELDS_NLP_QUERIES: print(f"Testing query: {query}") report = text_to_report_params( query, warehouse=wh, prompt_version="dimension_fields" ) print(f"Report: {report}") assert report == expected @pytest.mark.nlp def test_init_warehouse_embeddings(config): wh = Warehouse(config=config) wh.init_embeddings(force_recreate=True) # Query the embeddings API to confirm that meta settings are honored res = embeddings_api.get_embeddings(wh._get_embeddings_collection_name()) res = {row["payload"]["page_content"]: row for row in res} info(res) # These fields had embeddings set manually assert res["Revenue per Lead Meta"]["payload"]["metadata"]["name"] == "rpl" assert res["rpl weighted 2"]["payload"]["metadata"]["name"] == "rpl_lead_weighted" # This has nlp disabled at field level assert "rpl weighted" not in res # This has nlp disabled via regex assert "rpl_ma_5" not in res # This has nlp disabled via group assert "rpl_unsquared" not in res # This got added in error at one point and may be a bug! # Make sure it doesnt show up again. assert "year2" not in res @pytest.mark.nlp def test_openai_embeddings_cached(): key = zillion_config["OPENAI_API_KEY"] emb = OpenAIEmbeddingsCached(openai_api_key=key) res = emb.embed_query("revenue") assert emb._cache["revenue"] == res res = emb.embed_documents(["sales", "revenue"]) assert emb._cache["sales"] == res[0] assert emb._cache["revenue"] == res[1] @pytest.mark.nlp def test_map_warehouse_report_params(config): wh = Warehouse(config=config) wh.init_embeddings() query = "Revenue and Sales by day for the last 7 days" params = text_to_report_params(query) report = map_warehouse_report_params(wh, params) expected = dict( metrics=["revenue", "sales"], dimensions=["date"], criteria=[("date", ">=", str(n_days_ago(7)))], ) assert report == expected @pytest.mark.nlp def test_warehouse_execute_text(config): wh = Warehouse(config=config) query = "revenue and sales by campaign name" res = wh.execute_text(query) assert res and res.rowcount == 5 and res.df.loc["Campaign 1A"]["revenue"] == 83.0 @pytest.mark.nlp def test_nlp_datasource_from_db_file(ds_config): ds_name = "testdb1" data_url = "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true" ds = DataSource.from_db_file( data_url, name=ds_name, config=ds_config, if_exists="replace", nlp=True ) assert ds print() # Format test output ds.print_info() ================================================ FILE: tests/test_performance.py ================================================ import contextlib import cProfile import pstats import pytest import time from .test_utils import * from zillion.core import * from zillion.datasource import * @contextlib.contextmanager def profiled(pattern=None): pr = cProfile.Profile() pr.enable() yield pr.disable() stats = pstats.Stats(pr) stats.sort_stats("cumulative") dbg("Top 10 calls by cumulative time:") stats.print_stats(10) if pattern: stats.sort_stats("time") dbg("Top 10 %s calls by function time:" % pattern) stats.print_stats(pattern, 10) def get_adhoc_ds(size): metrics = ["adhoc_metric1", "adhoc_metric2", "adhoc_metric3", "adhoc_metric4"] dimensions = ["partner_name", "campaign_name", "lead_id"] primary_key = ["partner_name"] column_types = dict( partner_name=str, campaign_name=str, lead_id=int, adhoc_metric1=float, adhoc_metric2=float, adhoc_metric3=float, adhoc_metric4=float, ) table_config = { "type": TableTypes.METRIC, "if_exists": IfExistsModes.REPLACE, "create_fields": True, "columns": OrderedDict( partner_name={"fields": ["partner_name"]}, campaign_name={"fields": ["campaign_name"]}, lead_id={"fields": ["lead_id"]}, adhoc_metric1={"fields": ["adhoc_metric1"]}, adhoc_metric2={"fields": ["adhoc_metric2"]}, adhoc_metric3={"fields": ["adhoc_metric3"]}, adhoc_metric4={"fields": ["adhoc_metric4"]}, ), } start = time.time() dt = create_adhoc_datatable( "adhoc_table1", table_config, primary_key, column_types, size ) adhoc_ds = DataSource.from_datatables("adhoc_large_db", [dt]) dbg("Created DataSource in %.3fs" % (time.time() - start)) return metrics, dimensions, adhoc_ds @pytest.mark.longrun def test_performance_adhoc_ds(wh): size = 1e5 metrics, dimensions, adhoc_ds = get_adhoc_ds(size) with profiled("zillion"): result = wh.execute( metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) assert result @pytest.mark.longrun def test_performance_multi_rollup(wh): size = 1e5 metrics, dimensions, adhoc_ds = get_adhoc_ds(size) rollup = 2 with profiled("zillion"): result = wh.execute( metrics, dimensions=dimensions, rollup=rollup, adhoc_datasources=[adhoc_ds] ) assert result ================================================ FILE: tests/test_postgresql.py ================================================ import pytest from .test_utils import * from zillion.core import * from zillion.datasource import * def test_postgresql_datasource(postgresql_wh): metrics = ["cost", "clicks", "transactions"] dimensions = ["partner_name"] result = postgresql_wh.execute(metrics, dimensions=dimensions) assert result info(result.df) def test_postgresql_sequential_timeout(postgresql_wh): with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.SEQUENTIAL, DATASOURCE_QUERY_TIMEOUT=1e-2, ) ): metrics = ["cost"] dimensions = ["benchmark"] with pytest.raises(DataSourceQueryTimeoutException): result = postgresql_wh.execute(metrics, dimensions=dimensions) info(result.df) def test_postgresql_multithreaded_timeout(postgresql_wh): with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.MULTITHREAD, DATASOURCE_QUERY_TIMEOUT=1e-2, ) ): metrics = ["cost"] dimensions = ["benchmark"] with pytest.raises(DataSourceQueryTimeoutException): postgresql_wh.execute(metrics, dimensions=dimensions) def test_postgresql_date_dimension_conversions(postgresql_wh): params = get_date_conversion_test_params() result = postgresql_wh.execute(**params) assert result df = result.df.reset_index() row = df.iloc[0] info(df) for field, value in EXPECTED_DATE_CONVERSION_VALUES: print(f"Checking {field} = {value}") assert row[field] == value def test_postgresql_where_criteria_conversions(postgresql_wh): metrics = ["clicks"] dimensions = ["campaign_created_at"] for field, op, val in CRITERIA_CONVERSION_TESTS: print("criteria:", field, op, val) criteria = [("campaign_name", "=", "Campaign 2B"), (field, op, val)] result = wh_execute(postgresql_wh, locals()) assert result.df.index.any() assert len(result.df) == 1 assert result.df["clicks"][0] == 85 ================================================ FILE: tests/test_postgresql_ds_config.json ================================================ { "connect": "postgresql+psycopg2://{user}@{host}/{schema}", "metrics": [ { "name": "clicks", "type": "integer", "aggregation": "sum" }, { "name": "cost", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2 } ], "dimensions": [ { "name": "benchmark", "type": "integer" } ], "tables": { "zillion_test.partners": { "type": "dimension", "create_fields": true, "primary_key": [ "partner_id" ], "columns": { "id": { "fields": [ "partner_id" ] }, "name": { "fields": [ "partner_name" ] } } }, "zillion_test.campaigns": { "type": "dimension", "create_fields": true, "parent": "zillion_test.partners", "primary_key": [ "campaign_id" ], "columns": { "id": { "fields": [ "campaign_id" ] }, "name": { "fields": [ "campaign_name" ] }, "partner_id": { "fields": [ "partner_id" ] }, "created_at": { "fields": [ "campaign_created_at" ], "allow_type_conversions": true, "type_conversion_prefix": "campaign_" } } }, "zillion_test.campaign_cost": { "type": "metric", "create_fields": true, "primary_key": [ "campaign_id" ], "columns": { "campaign_id": { "fields": [ "campaign_id" ] }, "cost": { "fields": [ "cost", { "name": "benchmark", "ds_formula": "generate_series(1,2000000) / generate_series(1,2000000)" } ] }, "clicks": { "fields": [ "clicks" ] } } }, "zillion_test.campaign_transactions": { "type": "metric", "create_fields": true, "primary_key": [ "transaction_id" ], "columns": { "id": { "fields": [ "transaction_id", { "name": "transactions", "ds_formula": "COUNT(DISTINCT campaign_transactions.id)" } ] }, "campaign_id": { "fields": [ "campaign_id" ] } } } } } ================================================ FILE: tests/test_reports.py ================================================ import pytest import threading import pandas as pd from .test_utils import * from zillion.configs import zillion_config from zillion.core import * from zillion.field import Metric from zillion.report import ROLLUP_INDEX_LABEL def test_basic_report(wh): metrics = ["revenue", "main_sales_quantity"] dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] row_filters = [("revenue", ">", 11)] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_none_criteria(wh): metrics = ["revenue"] dimensions = ["partner_name", "campaign_name"] criteria = [("partner_name", "=", None)] result = wh_execute(wh, locals()) assert result and result.rowcount == 0 info(result.df) def test_report_invalid_criteria_value(wh): metrics = ["revenue"] dimensions = ["partner_name"] criteria = [("partner_name", "=", "XYZ")] with pytest.raises(InvalidDimensionValueException): result = wh_execute(wh, locals()) def test_report_criteria_values_from_callable(wh): field = wh.get_field("partner_name") field.values = "zillion.field.values_from_db" conn = zillion_engine.connect() try: conn.execute( DimensionValues.insert(), name="partner_name", warehouse_id=0, values=json.dumps(["Partner A", "Partner B", "Partner C", "XYZ"]), ) except sa.exc.IntegrityError: pass finally: conn.close() metrics = ["revenue"] dimensions = ["partner_name"] criteria = [("partner_name", "=", "ABC")] with pytest.raises(InvalidDimensionValueException): result = wh_execute(wh, locals()) # This is added as an acceptable value in the list returned # by get_partner_name_values, but isn't an actual partner value criteria = [("partner_name", "=", "XYZ")] result = wh_execute(wh, locals()) assert len(result.df) == 0 # Should allow comparing to lists of values criteria = [("partner_name", "in", ["Partner A", "XYZ"])] result = wh_execute(wh, locals()) assert len(result.df) == 1 criteria = [("partner_name", "in", ["ABC"])] with pytest.raises(InvalidDimensionValueException): result = wh_execute(wh, locals()) # NULL comparisons should be allowed criteria = [("partner_name", "=", None)] result = wh_execute(wh, locals()) assert len(result.df) == 0 def test_report_sequential_timeout(wh): metrics = ["adhoc_metric", "revenue"] dimensions = ["partner_name"] adhoc_ds = get_adhoc_datasource(size=1e6, name="adhoc_large_db", reuse=True) with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.SEQUENTIAL, DATASOURCE_QUERY_TIMEOUT=1e-2, ) ): with pytest.raises(DataSourceQueryTimeoutException): result = wh.execute( metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) def test_report_multithreaded_timeout(wh): metrics = ["adhoc_metric", "revenue"] dimensions = ["partner_name"] adhoc_ds = get_adhoc_datasource(size=1e6, name="adhoc_large_db", reuse=True) with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.MULTITHREAD, DATASOURCE_QUERY_TIMEOUT=1e-2, ) ): with pytest.raises(DataSourceQueryTimeoutException): result = wh.execute( metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) def test_report_one_worker(wh): metrics = ["sales", "revenue", "leads"] dimensions = ["partner_name"] with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.MULTITHREAD, DATASOURCE_QUERY_WORKERS=1, ) ): result = wh_execute(wh, locals()) @pytest.mark.longrun def test_report_reuse_after_timeout(wh): metrics = ["adhoc_metric", "revenue"] dimensions = ["partner_name"] adhoc_ds = get_adhoc_datasource(size=1e6, name="adhoc_large_db", reuse=True) with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.SEQUENTIAL, DATASOURCE_QUERY_TIMEOUT=1e-2, ) ): report = Report( wh, metrics=metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) with pytest.raises(DataSourceQueryTimeoutException): result = report.execute() result = report.execute() assert result info(result.df) def test_report_kill(wh): metrics = ["adhoc_metric", "revenue"] dimensions = ["partner_name"] adhoc_ds = get_adhoc_datasource(size=1e6, name="adhoc_large_db", reuse=True) t = None try: report = Report( wh, metrics=metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) t = threading.Timer(0.1, report.kill, kwargs=dict(raise_if_failed=True)) t.start() with pytest.raises(ExecutionKilledException): result = report.execute() finally: if t: t.cancel() def test_report_reuse_after_kill(wh): metrics = ["adhoc_metric", "revenue"] dimensions = ["partner_name"] criteria = [("partner_name", "like", "%zz%")] adhoc_ds = get_adhoc_datasource(size=1e6, name="adhoc_large_db", reuse=True) t = None try: report = Report( wh, metrics=metrics, dimensions=dimensions, criteria=criteria, adhoc_datasources=[adhoc_ds], ) t = threading.Timer(0.01, report.kill) t.start() with pytest.raises(ExecutionKilledException): result = report.execute() finally: if t: t.cancel() result = report.execute() assert result info(result.df) def test_report_timeout_then_kill(wh): metrics = ["adhoc_metric", "revenue"] dimensions = ["partner_name"] adhoc_ds = get_adhoc_datasource(size=1e6, name="adhoc_large_db", reuse=True) t = None with update_zillion_config( dict( DATASOURCE_QUERY_MODE=DataSourceQueryModes.SEQUENTIAL, DATASOURCE_QUERY_TIMEOUT=1e-3, ) ): report = Report( wh, metrics=metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) with pytest.raises(DataSourceQueryTimeoutException): result = report.execute() try: t = threading.Timer(0.1, report.kill) t.start() with pytest.raises(ExecutionKilledException): result = report.execute() finally: if t: t.cancel() def test_impossible_report(wh): metrics = ["leads"] dimensions = ["sale_id"] criteria = [("campaign_name", "!=", "Campaign 2B")] with pytest.raises(UnsupportedGrainException): result = wh_execute(wh, locals()) def test_report_count_aggr(wh): metrics = ["leads", "lead_count", "lead_count_distinct"] dimensions = ["campaign_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_criteria_between(wh): metrics = ["leads"] dimensions = ["lead_id"] criteria = [("lead_id", "between", [1, 5])] result = wh_execute(wh, locals()) assert result and result.rowcount > 0 criteria = [("lead_id", "not between", [1, 10])] result = wh_execute(wh, locals()) assert result.rowcount == 0 def test_report_criteria_in(wh): metrics = ["leads"] dimensions = ["date"] criteria = [("date", "in", ["2020-04-29", "2020-04-30"])] result = wh_execute(wh, locals()) assert result criteria = [("date", "not in", ["2020-04-29", "2020-04-30"])] result = wh_execute(wh, locals()) assert result.rowcount == 0 criteria = [("date", "in", "2020-04-29, 2020-04-30")] result = wh_execute(wh, locals()) assert result.rowcount == 0 def test_report_criteria_like(wh): metrics = ["leads"] dimensions = ["campaign_name"] criteria = [("campaign_name", "like", ["%1%", "%2%"])] result = wh_execute(wh, locals()) info(result.df) assert result and result.rowcount == 5 def test_report_repeat_criteria(wh): metrics = ["rpl", "sales"] dimensions = ["date"] criteria = [("date", ">", "2020-04-29"), ("date", "<", "2020-05-01")] result = wh_execute(wh, locals()) assert result and result.rowcount > 0 info(result.df) def test_report_between_date_criteria(wh): metrics = ["rpl", "sales"] dimensions = ["date"] criteria = [("date", "between", ["2020-04-29", "2020-05-01"])] result = wh_execute(wh, locals()) assert result and result.rowcount > 0 info(result.df) def test_row_filter_single_dimension(wh): metrics = ["leads", "sales"] dimensions = ["month"] criteria = [["year", "=", "2020"]] rollup = RollupTypes.TOTALS row_filters = [["leads", ">", "10"]] result = wh_execute(wh, locals()) info(result.df) def test_row_filter_invalid_type(wh): metrics = ["leads", "sales"] dimensions = ["month"] criteria = [["year", "=", "2020"]] rollup = RollupTypes.TOTALS row_filters = [["leads", ">", "x"]] with pytest.raises(ZillionException): result = wh_execute(wh, locals()) def test_row_filter_formula_metric(wh): metrics = ["leads", "sales", "rpl"] dimensions = ["date"] criteria = [["year", "=", "2020"]] row_filters = [["rpl", ">", "500"]] result = wh_execute(wh, locals()) info(result.df) assert result and result.rowcount == 0 def test_report_pivot(wh): metrics = ["revenue", "main_sales_quantity"] dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] row_filters = [("revenue", ">", 11)] rollup = RollupTypes.TOTALS pivot = ["partner_name"] limit = 3 order_by = [("revenue", OrderByTypes.ASC)] result = wh_execute(wh, locals()) assert result and result.df.loc["Campaign 1C"]["revenue"]["Partner C"] == 118.5 info(result.df) def test_report_order_by(wh): # Note: partner_name has custom sort setup in config metrics = ["revenue"] dimensions = ["partner_name", "lead_id"] order_by = [("partner_name", "desc"), ("lead_id", "asc")] result = wh_execute(wh, locals()) assert result and result.df.reset_index()["partner_name"].values[-1] == "Partner C" info(result.df) def test_report_order_by_only_dims(wh): # Note: partner_name has custom sort setup in config dimensions = ["partner_name", "campaign_name"] order_by = [("partner_name", "desc"), ("campaign_name", "asc")] result = wh_execute(wh, locals()) assert result and result.df.reset_index()["partner_name"].values[-1] == "Partner C" info(result.df) def test_report_order_by_custom_sort(wh): # Note: partner_name has custom sort setup in config metrics = ["revenue"] dimensions = ["partner_name", "campaign_name"] order_by = [("partner_name", "asc"), ("campaign_name", "asc")] limit = 4 limit_first = False result = wh_execute(wh, locals()) info(result.df) assert result.df.index[0][0] == "Partner C" def test_report_custom_sort_no_order_by(wh): # Note: partner_name has custom sort setup in config metrics = ["revenue"] dimensions = ["partner_name", "campaign_name"] result = wh_execute(wh, locals()) info(result.df) assert result.df.index[0][0] == "Partner C" # TODO: this test data is no longer available! # def test_report_custom_sort_conversion_field(): # # TODO: put together a smaller dataset to test this # config = "https://raw.githubusercontent.com/totalhack/zillion-covid-19/master/zillion_covid_19/covid_warehouse.json" # wh = Warehouse(config=config) # metrics = ["cases"] # dimensions = ["month_name"] # result = wh_execute(wh, locals()) # info(result.df) # assert result.df.index[0] == "January" # def test_report_custom_sort_rollups(wh): # config = "https://raw.githubusercontent.com/totalhack/zillion-covid-19/master/zillion_covid_19/covid_warehouse.json" # wh = Warehouse(config=config) # metrics = ["cases"] # dimensions = ["day_name", "date"] # criteria = [("date", "between", ["2020-07-01", "2020-08-01"])] # rollup = RollupTypes.ALL # result = wh_execute(wh, locals()) # assert result # assert result.df.reset_index()["date"].values[-1] == ROLLUP_INDEX_LABEL # assert result.df.reset_index()["date"].values[-2] == ROLLUP_INDEX_LABEL # assert result.df.reset_index()["day_name"].values[-1] == ROLLUP_INDEX_LABEL # assert result.df.reset_index()["day_name"].values[-2] == "Sunday" # info(result.df) def test_report_limit(wh): metrics = ["revenue"] dimensions = ["lead_id"] limit = 2 result = wh_execute(wh, locals()) assert result and len(result.df) == 2 info(result.df) def test_report_limit_only_dims(wh): dimensions = ["partner_name", "campaign_name"] limit = 2 result = wh_execute(wh, locals()) assert result and len(result.df) == 2 info(result.df) def test_report_order_by_and_limit(wh): # Note: partner_name has custom sort setup in config metrics = ["revenue"] dimensions = ["partner_name", "lead_id"] order_by = [("partner_name", "desc"), ("lead_id", "asc")] limit = 1 result = wh_execute(wh, locals()) assert result and result.df.reset_index()["partner_name"].values[-1] == "Partner A" info(result.df) def test_report_limit_first(wh): metrics = ["revenue"] dimensions = ["lead_id"] rollup = RollupTypes.TOTALS limit = 2 limit_first = True result = wh_execute(wh, locals()) assert result and len(result.df) == 3 and result.df["revenue"].values[-1] == 83.0 info(result.df) def test_report_df_display(wh): metrics = ["revenue", "main_sales_quantity"] dimensions = ["partner_name", "campaign_name"] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result assert result.df_display["Revenue"].any() info(result.df_display) def test_report_df_display_no_dims(wh): metrics = ["revenue", "main_sales_quantity"] result = wh_execute(wh, locals()) assert result assert result.df_display["Revenue"].any() info(result.df_display) def test_report_df_display_no_metrics(wh): dimensions = ["partner_name", "campaign_name"] result = wh_execute(wh, locals()) assert result assert result.df_display.reset_index()["Partner Name"].any() info(result.df_display) def test_report_technical_ma(wh): metrics = ["revenue", "revenue_ma_5"] # TODO: it doesnt make sense to use these dimensions, but no date/time # dims have been added as of the time of creating this test. dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] row_filters = [("revenue_ma_5", ">", 82)] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result and len(result.df) == 3 info(result.df) def test_report_adhoc_technicals(wh): dim_groups = [["partner_name", "campaign_name", "sale_id"], ["sale_id"]] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = RollupTypes.TOTALS technical_strings = [ "mean(5, 1)", "sum(2)", "median(3)", "std(2)", "var(2)", "min(2)", "max(2)", "boll(2)", "diff(1)", "pct_change", "cumsum", "cummin", "cummax", "rank", "pct_rank", ] for tech in technical_strings: for mode in (TechnicalModes.GROUP, TechnicalModes.ALL): for dimensions in dim_groups: tech_str = tech + ":" + mode metrics = [ "revenue", { "formula": "{revenue}", "technical": tech_str, "name": "my_revenue_tech", }, ] result = wh_execute(wh, locals()) assert result info("Technical: %s Mode: %s Dims: %s" % (tech_str, mode, dimensions)) info(result.df) def test_report_no_dimension_technical(wh): dimensions = None criteria = [("campaign_name", "!=", "Campaign 2B")] technical_strings = [ "mean(5, 1)", "diff(1)", "pct_change", "boll(2)", "cumsum", "rank", "pct_rank", ] for tech in technical_strings: for mode in (TechnicalModes.GROUP, TechnicalModes.ALL): tech_str = tech + ":" + mode metrics = [ "revenue", { "formula": "{revenue}", "technical": tech_str, "name": "my_revenue_tech", }, ] result = wh_execute(wh, locals()) assert result info("Technical: %s Mode: %s" % (tech_str, mode)) info(result.df) def test_report_technical_formula_ma(wh): metrics = ["revenue", "rpl", "rpl_ma_5"] # TODO: it doesnt make sense to use these dimensions, but no date/time # dims have been added as of the time of creating this test. dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] row_filters = [("revenue", ">", 8)] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_technical_rolling_sum(wh): metrics = ["revenue", "revenue_sum_5"] # TODO: it doesnt make sense to use these dimensions, but no date/time # dims have been added as of the time of creating this test. dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_technical_cumsum(wh): metrics = ["revenue", "revenue_cumsum"] # TODO: it doesnt make sense to use these dimensions, but no date/time # dims have been added as of the time of creating this test. dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_technical_diff(wh): metrics = ["revenue", "revenue_diff"] # TODO: it doesnt make sense to use these dimensions, but no date/time # dims have been added as of the time of creating this test. dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_technical_pct_diff(wh): metrics = ["revenue", "revenue_pct_diff"] # TODO: it doesnt make sense to use these dimensions, but no date/time # dims have been added as of the time of creating this test. dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_technical_bollinger(wh): metrics = ["revenue", "revenue_boll_5"] # TODO: it doesnt make sense to use these dimensions, but no date/time # dims have been added as of the time of creating this test. dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) row = result.df.loc[("Partner A", "Campaign 2A")] assert row["revenue_boll_5"] == pytest.approx(82.5, rel=1e-3) assert row["revenue_boll_5_lower"] == pytest.approx(81.09, rel=1e-3) assert row["revenue_boll_5_upper"] == pytest.approx(83.91, rel=1e-3) result_display = result.df_display assert "Revenue Boll 5 Upper" in result_display.columns df = result.df # Find bollinger-related columns (case-insensitive) boll_cols = [c for c in df.columns if "boll" in str(c).lower()] assert boll_cols, "No bollinger columns found in result.df" assert len(boll_cols) >= 3 # Ensure bollinger columns are numeric for c in boll_cols: assert pd.api.types.is_numeric_dtype(df[c]), f"{c} is not numeric" # For any row with at least three non-null boll values, validate ordering and symmetry for _, row in df.iterrows(): vals = [(c, row[c]) for c in boll_cols if not pd.isna(row[c])] if len(vals) >= 3: # identify upper, middle, lower by value vals_sorted = sorted(vals, key=lambda x: x[1], reverse=True) upper_val = vals_sorted[0][1] middle_val = vals_sorted[1][1] lower_val = vals_sorted[2][1] assert upper_val > middle_val assert middle_val > lower_val # upper-middle should be approximately equal to middle-lower (symmetry) diff1 = upper_val - middle_val diff2 = middle_val - lower_val tol = max(1e-6, abs(middle_val) * 1e-6) assert abs(diff1 - diff2) <= tol # Also verify display DataFrame contains the human-friendly Bollinger column name assert any( "Revenue Boll" in str(c) and "Upper" in str(c) for c in result.df_display.columns ) def test_report_no_dimensions(wh): metrics = ["revenue", "main_sales_quantity"] criteria = [("campaign_name", "=", "Campaign 2B")] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_no_metrics(wh): metrics = [] dimensions = ["partner_name", "campaign_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_null_criteria(wh): metrics = ["revenue"] dimensions = ["partner_name"] criteria = [("campaign_name", "!=", None)] result = wh_execute(wh, locals()) assert result info(result.df) # Test a conversion field criteria = [("month", "=", None)] result = wh_execute(wh, locals()) assert result and result.rowcount == 0 info(result.df) # Test a conversion field != criteria = [("month", "!=", None)] result = wh_execute(wh, locals()) assert result and result.rowcount > 0 info(result.df) # Test a conversion field "in" criteria = [("month", "in", [None, "2020-04"])] result = wh_execute(wh, locals()) assert result and result.rowcount > 0 info(result.df) def test_report_incomplete_dimensions(config): del config["datasources"]["testdb2"] metrics = ["sales"] dimensions = ["campaign_name"] table_config = config["datasources"]["testdb1"]["tables"]["main.sales"] # This should prevent it from joining back through the lead table, # thus preventing the report from running. table_config["incomplete_dimensions"] = ["lead_id"] wh = Warehouse(config=config) with pytest.raises(UnsupportedGrainException): result = wh_execute(wh, locals()) table_config["incomplete_dimensions"] = ["xyz"] with pytest.raises(WarehouseException): wh = Warehouse(config=config) def test_report_inactive_table(config): table_config = config["datasources"]["testdb1"]["tables"]["main.sales"] table_config["active"] = False del config["datasources"]["testdb2"] wh = Warehouse(config=config) metrics = ["revenue"] dimensions = ["partner_name"] with pytest.raises(UnsupportedGrainException): result = wh_execute(wh, locals()) metrics = ["leads"] result = wh_execute(wh, locals()) def test_report_count_metric(wh): metrics = ["leads"] dimensions = ["campaign_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_alias_metric(wh): metrics = ["revenue_mean"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_alias_dimension(wh): metrics = ["revenue"] dimensions = ["lead_id"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_sibling_dimension(wh): metrics = ["revenue"] dimensions = ["partner_sibling_dim"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_multiple_queries(wh): metrics = ["revenue", "leads"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_formula_metric(wh): metrics = ["rpl", "revenue", "leads"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_formula_metric_divisor(wh): metrics = ["revenue_per_lead"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_nested_formula_metric(wh): metrics = ["rpl_squared", "rpl_unsquared", "rpl", "leads"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_ds_dimension_formula(wh): metrics = ["sales"] dimensions = ["revenue_decile"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_ds_metric_formula(wh): metrics = ["revenue", "revenue_ds"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_where_ds_formula(wh): metrics = ["sales"] criteria = [("revenue_decile", ">=", 0)] dimensions = ["campaign_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_metric_formula_with_dim(config): config["metrics"].append( { "name": "revenue_formula_with_dim", "aggregation": AggregationTypes.SUM, "formula": "1.0*{revenue}*IFNULL({campaign_name}, 0)", } ) wh = Warehouse(config=config) metrics = ["revenue", "revenue_formula_with_dim"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_only_dimensions_ds_formula(wh): criteria = [("campaign_name_length", ">", 5)] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result.df.index.any() info(result.df) def test_report_non_existent_metric(wh): metrics = ["sales1234"] dimensions = ["campaign_id"] with pytest.raises(InvalidFieldException): result = wh_execute(wh, locals()) def test_report_metric_required_grain(wh): metrics = ["revenue", "revenue_required_grain"] dimensions = ["campaign_id"] with pytest.raises(UnsupportedGrainException): result = wh_execute(wh, locals()) dimensions = ["campaign_name"] result = wh_execute(wh, locals()) assert result def test_report_metric_formula_required_grain(wh): metrics = ["revenue", "revenue_per_lead_required_grain"] dimensions = ["campaign_id"] with pytest.raises(UnsupportedGrainException): result = wh_execute(wh, locals()) def test_report_metric_formula_field_required_grain(wh): metrics = ["revenue", "revenue_formula_required_grain"] dimensions = ["campaign_id"] with pytest.raises(UnsupportedGrainException): result = wh_execute(wh, locals()) def test_report_partial_grain(wh): metrics = ["revenue", "leads"] dimensions = ["sale_id"] allow_partial = True result = wh_execute(wh, locals()) assert result and result.is_partial # Weighting fact can't meet grain metrics = ["revenue", "rps_lead_weighted"] result = wh_execute(wh, locals()) assert result and result.is_partial # Part of formula can't meet grain metrics = ["revenue", "rpl"] result = wh_execute(wh, locals()) info(result.df) assert result and result.is_partial # Only metric available can't meet grain metrics = ["leads"] with pytest.raises(UnsupportedGrainException): result = wh_execute(wh, locals()) def test_report_metric_ifnull(wh): metrics = ["revenue", "revenue_ifnull"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) def test_report_weighted_formula_metric(wh): metrics = ["rpl_weighted", "rpl", "main_sales_quantity", "revenue", "leads"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result assert result.df.loc["Partner B"]["rpl"] == 9.5 assert result.df.loc["Partner B"]["rpl_weighted"] == 9.5 info(result.df) def test_report_weighted_ds_metric_formula(wh): metrics = ["revenue_mean", "revenue_mean_ds_weighted"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_weighted_metric(wh): metrics = ["main_sales_quantity", "revenue_mean", "revenue", "leads"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) assert result.df.loc["Partner A"]["revenue_mean"] == 14.67 def test_report_multiple_weighted_metrics(wh): metrics = ["rpl_weighted", "rpl_lead_weighted", "rpl_lead_formula_weighted"] dimensions = ["partner_name"] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_repeat_weighted_metrics(wh): metrics = ["rpl_weighted", "revenue_mean"] dimensions = ["partner_name"] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_weighted_rollup(wh): metrics = ["main_sales_quantity", "revenue_mean", "leads"] dimensions = ["partner_name"] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) assert result.rollup_rows["revenue_mean"][0] == 17.08 def test_report_weighted_multi_rollup(wh): metrics = ["main_sales_quantity", "revenue_mean", "leads"] dimensions = ["partner_name", "campaign_name", "lead_id"] rollup = 2 result = wh_execute(wh, locals()) assert result info(result.df) test_row = result.df.loc["Partner A", ROLLUP_INDEX_LABEL, ROLLUP_INDEX_LABEL] assert test_row["revenue_mean"] == 14.67 def test_report_multi_dimension(wh): metrics = ["leads", "sales"] dimensions = ["partner_name", "lead_id"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_rollup(wh): metrics = ["revenue"] dimensions = ["partner_name", "campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) info(result.df) revenue = result.rollup_rows.iloc[-1]["revenue"] revenue_sum = result.non_rollup_rows.sum()["revenue"] assert revenue == revenue_sum def test_report_multi_rollup(wh): metrics = ["revenue"] dimensions = ["partner_name", "campaign_name", "lead_id"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = 3 result = wh_execute(wh, locals()) info(result.df) revenue = result.rollup_rows.iloc[-1]["revenue"] revenue_sum = result.non_rollup_rows.sum()["revenue"] assert revenue == revenue_sum def test_report_all_rollup(wh): metrics = ["revenue"] dimensions = ["partner_name", "campaign_name", "lead_id"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = RollupTypes.ALL result = wh_execute(wh, locals()) info(result.df) revenue = result.rollup_rows.iloc[-1]["revenue"] revenue_sum = result.non_rollup_rows.sum()["revenue"] assert revenue == revenue_sum def test_report_rollup_order_null(wh): import numpy as np metrics = ["revenue", "leads"] dimensions = ["partner_name", "campaign_name", "lead_name"] rollup = RollupTypes.ALL result = wh_execute(wh, locals()) info(result.df) revenue = result.rollup_rows.iloc[-1]["revenue"] revenue_sum = result.non_rollup_rows.sum()["revenue"] assert revenue == revenue_sum sub_df = result.df.loc["Partner C", "Campaign 1C"] assert np.isnan(sub_df.index[0]) # Test with null not in last dimension dimensions = ["partner_name", "lead_name", "campaign_name"] result = wh_execute(wh, locals()) info(result.df_display) revenue = result.rollup_rows.iloc[-1]["revenue"] revenue_sum = result.non_rollup_rows.sum()["revenue"] assert revenue == revenue_sum sub_df = result.df.loc["Partner C", np.nan] info(sub_df) assert sub_df.index[0] == "Campaign 1C" # Test single dimension case dimensions = ["lead_name"] result = wh_execute(wh, locals()) info(result.df_display) revenue = result.rollup_rows.iloc[-1]["revenue"] revenue_sum = result.non_rollup_rows.sum()["revenue"] assert revenue == revenue_sum assert result.df.loc[np.nan]["leads"] == 1 def test_report_multi_rollup_pivot(wh): metrics = ["revenue"] dimensions = ["partner_name", "campaign_name", "lead_id"] criteria = [("campaign_name", "!=", "Campaign 2B")] rollup = 3 pivot = ["campaign_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_adhoc_metric(wh): metrics = ["revenue", {"formula": "{revenue} > 3*{lead_id}", "name": "testmetric"}] dimensions = ["partner_name", "lead_id"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_adhoc_metric_display_name(wh): metrics = [ "revenue", { "formula": "{revenue} > 3*{lead_id}", "name": "testmetric", "display_name": "Test Metric", }, ] dimensions = ["partner_name", "lead_id"] result = wh_execute(wh, locals()) assert result result = result.df_display assert "Test Metric" in result.columns def test_report_adhoc_nested_metric(wh): metrics = [ "revenue", "rpl_squared", {"formula": "{rpl_unsquared} > 10", "name": "testmetric"}, ] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_adhoc_aggregation(wh): metrics = [ "revenue", "rpl_lead_weighted", {"formula": "{rpl}", "name": "rpl_avg", "aggregation": "mean", "rounding": 2}, ] dimensions = ["partner_name"] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_adhoc_weighting(wh): metrics = [ "revenue", "rpl_lead_weighted", { "formula": "{revenue}/{leads}", "name": "rpl_w", "weighting_metric": "leads", "rounding": 2, }, ] dimensions = ["partner_name"] rollup = RollupTypes.TOTALS result = wh_execute(wh, locals()) assert result info(result.df) def test_report_adhoc_dimension(wh): # Basic Ad Hoc metrics = ["revenue", "leads", "rpl_lead_weighted"] dimensions = [ {"name": "partner_is_a", "formula": "({partner_name} = 'Partner A')"}, ] result = wh_execute(wh, locals()) assert result info(result.df) # Ad Hoc with metrics - not allowed dimensions = [ {"name": "adhoc_dim1_with_metric", "formula": "({leads} > 10)"}, ] with pytest.raises(InvalidFieldException): result = wh_execute(wh, locals()) # Metric validation vs baseline dimensions = ["partner_name", "campaign_name"] result = wh_execute(wh, locals()) info(result.df) partner_a_rev = result.df.loc["Partner A"].sum()["revenue"] # Note: This happens to have an even number of leads so a simple mean works partner_a_rpl = result.df.loc["Partner A"].mean()["rpl_lead_weighted"] # Basic comparisons dimensions = [ {"name": "partner_is_a", "formula": "({partner_name} = 'Partner A')"}, ] result = wh_execute(wh, locals()) info(result.df) assert result.df.loc[1]["revenue"] == partner_a_rev assert result.df.loc[1]["rpl_lead_weighted"] == partner_a_rpl dimensions = [ {"name": "partner_is_a", "formula": "({partner_name} = 'Partner A')"}, "campaign_name", ] result = wh_execute(wh, locals()) info(result.df) assert result.df.loc[1].sum()["revenue"] == partner_a_rev assert result.df.loc[1].mean()["rpl_lead_weighted"] == partner_a_rpl # Rollup vs baseline rollup = RollupTypes.ALL result = wh_execute(wh, locals()) info(result.df) assert result.rollup_rows.loc[1].sum()["revenue"] == partner_a_rev assert result.rollup_rows.loc[1].mean()["rpl_lead_weighted"] == partner_a_rpl # Criteria rollup = None criteria = [("partner_name", "=", "Partner A")] result = wh_execute(wh, locals()) info(result.df) assert result.df.loc[1].sum()["revenue"] == partner_a_rev assert result.df.loc[1].mean()["rpl_lead_weighted"] == partner_a_rpl # Row Filters row_filters = [("revenue", ">", 20)] criteria = None result = wh_execute(wh, locals()) info(result.df) assert result.df.loc[1].sum()["revenue"] == partner_a_rev assert result.df.loc[1].mean()["rpl_lead_weighted"] == partner_a_rpl def test_report_formula_dimension(wh): metrics = ["revenue", "leads"] dimensions = ["partner_name_formula", "partner_name_formula_nested"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_where_criteria_conversions(config): config = config.copy() config["datasources"]["testdb1"]["tables"]["main.campaigns"]["columns"][ "created_at" ]["disabled_type_conversions"] = [] wh = Warehouse(config=config) metrics = ["leads"] dimensions = ["campaign_created_at"] for field, op, val in CRITERIA_CONVERSION_TESTS: print("criteria:", field, op, val) criteria = [("campaign_name", "=", "Campaign 2B"), (field, op, val)] result = wh_execute(wh, locals()) assert result.df.index.any() assert len(result.df) == 1 assert result.df["leads"][0] == 1 def test_report_sqlite_date_conversions(config): config = config.copy() config["datasources"]["testdb1"]["tables"]["main.campaigns"]["columns"][ "created_at" ]["disabled_type_conversions"] = [] wh = Warehouse(config=config) params = get_date_conversion_test_params() result = wh.execute(**params) assert result df = result.df.reset_index() row = df.iloc[0] info(df) for field, value in EXPECTED_DATE_CONVERSION_VALUES: print(f"Checking {field} = {value}") assert row[field] == value def test_report_datasource_priority(wh): metrics = ["revenue", "leads", "sales"] dimensions = ["partner_name"] report = Report(wh, metrics=metrics, dimensions=dimensions) assert report.queries[0].get_datasource_name() == "testdb1" def test_report_table_priority(config): wh = Warehouse(config=config) metrics = ["repeated_metric"] dimensions = ["partner_name"] report = Report(wh, metrics=metrics, dimensions=dimensions) assert report.queries[0].get_datasource_name() == "testdb1" assert report.queries[0].table_set.ds_table.name == "leads" config["datasources"]["testdb1"]["tables"]["main.sales"]["priority"] = 0 wh = Warehouse(config=config) report = Report(wh, metrics=metrics, dimensions=dimensions) assert report.queries[0].get_datasource_name() == "testdb1" assert report.queries[0].table_set.ds_table.name == "sales" def test_report_disabled_tables(wh): metrics = ["revenue", "leads", "sales"] dimensions = ["partner_name"] disabled_tables = ["main.sales"] report = Report( wh, metrics=metrics, dimensions=dimensions, disabled_tables=disabled_tables ) all_tables = set() for query in report.queries: tables = [x.fullname for x in query.get_tables()] all_tables.update(tables) # Should use the aggregated stats table instead assert "main.sales" not in all_tables disabled_tables = ["main.sales", "main.aggregated_stats"] with pytest.raises(UnsupportedGrainException): Report( wh, metrics=metrics, dimensions=dimensions, disabled_tables=disabled_tables ) # Test dim-only case metrics = None dimensions = ["partner_name"] disabled_tables = ["main.partners"] with pytest.raises(UnsupportedGrainException): Report( wh, metrics=metrics, dimensions=dimensions, disabled_tables=disabled_tables ) def test_report_multi_datasource(wh): metrics = ["revenue", "leads", "sales", "revenue_mean"] dimensions = ["partner_name"] report = Report(wh, metrics=metrics, dimensions=dimensions) assert len(report.queries) == 2 result = report.execute() assert result info(result.df) def test_report_save_and_load(saved_wh): metrics = ["revenue", "leads", "sales"] dimensions = ["partner_name"] rollup = RollupTypes.ALL report = Report(saved_wh, metrics=metrics, dimensions=dimensions, rollup=rollup) spec_id = report.save() # Sneaking a test of these in here too wh = Warehouse.load_warehouse_for_report(spec_id) report = Warehouse.load_report_and_warehouse(spec_id) try: result = saved_wh.execute_id(spec_id) assert result info(result.df) finally: saved_wh.delete_report(spec_id) def test_report_save_with_meta(saved_wh): metrics = ["revenue"] dimensions = ["partner_name"] report = Report(saved_wh, metrics=metrics, dimensions=dimensions) spec_id = report.save(meta=dict(title="My test report")) try: report = saved_wh.load_report(spec_id) assert report.meta and report.meta.get("title", None) == "My test report" finally: saved_wh.delete_report(spec_id) def test_report_adhoc_metric_save_and_load(saved_wh): metrics = ["revenue", {"formula": "{revenue} > 3*{lead_id}", "name": "testmetric"}] dimensions = ["partner_name", "lead_id"] report = Report(saved_wh, metrics=metrics, dimensions=dimensions) spec_id = report.save() try: result = saved_wh.execute_id(spec_id) assert result info(result.df) finally: saved_wh.delete_report(spec_id) def test_report_load_invalid_id(saved_wh): with pytest.raises(InvalidReportIdException): result = saved_wh.execute_id(-1) def test_report_sub_report_by_id(saved_wh): metrics = ["leads"] dimensions = ["partner_name"] row_filters = [("leads", ">", 2)] # Should only leave Partner A report = Report( saved_wh, metrics=metrics, dimensions=dimensions, row_filters=row_filters ) spec_id = report.save() spec_id2 = None try: criteria = [("partner_name", "in report", spec_id)] report = Report( saved_wh, metrics=["sales"], dimensions=dimensions, criteria=criteria, ) # Save and load a report with a sub-report spec_id2 = report.save() report = saved_wh.load_report(spec_id2) result = report.execute() assert result.df.index.unique("partner_name").tolist() == ["Partner A"] info(result.df) criteria = [("partner_name", "not in report", spec_id)] report = Report( saved_wh, metrics=["sales"], dimensions=dimensions, criteria=criteria, ) result = report.execute() assert set(result.df.index.unique("partner_name").tolist()) == set( [ "Partner B", "Partner C", ] ) info(result.df) # Invalid sub report spec ID with pytest.raises(InvalidReportIdException): criteria = [("partner_name", "not in report", -1)] report = Report( saved_wh, metrics=["sales"], dimensions=dimensions, criteria=criteria, ) finally: saved_wh.delete_report(spec_id) if spec_id2: saved_wh.delete_report(spec_id2) def test_report_sub_report_with_params(saved_wh): report = Report( saved_wh, metrics=["sales"], dimensions=["partner_name"], criteria=[ ( "partner_name", "in report", dict( metrics=["leads"], dimensions=["partner_name"], row_filters=[("leads", ">", 2)], # Should only leave Partner A ), ) ], ) result = report.execute() assert result.df.index.unique("partner_name").tolist() == ["Partner A"] info(result.df) # Invalid sub report field with pytest.raises(InvalidFieldException): Report( saved_wh, metrics=["sales"], dimensions=["partner_name"], criteria=[ ( "partner_name", "in report", dict(metrics=["blabla"], dimensions=["partner_name"]), ) ], ) # Invalid sub report fields with pytest.raises(TypeError): Report( saved_wh, metrics=["sales"], dimensions=["partner_name"], criteria=[ ( "partner_name", "in report", dict( foo=["blabla"], ), ) ], ) def test_report_adhoc_datasource(wh, adhoc_ds): metrics = ["revenue", "adhoc_metric"] dimensions = ["partner_name"] result = wh.execute(metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds]) assert result info(result.df) def test_report_save_and_load_adhoc_datasource(saved_wh, adhoc_ds): metrics = ["revenue", "leads", "adhoc_metric"] dimensions = ["partner_name"] report = saved_wh.save_report( metrics=metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) spec_id = report.save() try: result = saved_wh.execute_id(spec_id, adhoc_datasources=[adhoc_ds]) assert result info(result.df) finally: saved_wh.delete_report(spec_id) def test_report_missing_adhoc_datasource_save_and_load(saved_wh, adhoc_ds): metrics = ["revenue", "leads", "adhoc_metric"] dimensions = ["partner_name"] report = saved_wh.save_report( metrics=metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) spec_id = report.save() try: with pytest.raises(ReportException): result = saved_wh.execute_id(spec_id) finally: saved_wh.delete_report(spec_id) def test_report_invalid_adhoc_datasource(wh, adhoc_ds): metrics = ["revenue", "adhoc_metric"] dimensions = ["partner_name"] metric = Metric("campaign_name", "String(32)") # This is a dimension in other DSes adhoc_ds.add_metric(metric) with pytest.raises(WarehouseException): result = wh.execute( metrics, dimensions=dimensions, adhoc_datasources=[adhoc_ds] ) def test_regular_datasource_adhoc(config): ds1 = DataSource("testdb1", config=config["datasources"]["testdb1"]) ds2 = DataSource("testdb2", config=config["datasources"]["testdb2"]) wh = Warehouse(datasources=[ds1]) metrics = ["leads", "sales", "aggr_sales"] dimensions = ["partner_name", "campaign_name"] result = wh.execute(metrics, dimensions=dimensions, adhoc_datasources=[ds2]) assert result info(result.df) def test_only_adhoc_datasource(adhoc_ds): wh = Warehouse(datasources=[adhoc_ds]) metrics = ["adhoc_metric"] dimensions = ["partner_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_no_use_full_column_names(config): ds = DataSource("testdb2", config=config["datasources"]["testdb2"]) wh = Warehouse(datasources=[ds]) metrics = ["leads", "sales", "aggr_sales"] dimensions = ["partner_name", "campaign_name"] result = wh_execute(wh, locals()) assert result info(result.df) def test_report_column_required_grain(config): ds = DataSource("testdb2", config=config["datasources"]["testdb2"]) wh = Warehouse(datasources=[ds]) metrics = ["revenue", "sales"] dimensions = ["campaign_name"] with pytest.raises(UnsupportedGrainException): result = wh_execute(wh, locals()) def test_ds_metric_formula_sql_injection(config): # example = r"""I don't like "special" ch;ars ¯\_(ツ)_/¯""" table_config = config["datasources"]["testdb1"]["tables"]["main.sales"] column_config = table_config["columns"]["revenue"] column_config["fields"].append( { "name": "ds_injection", "ds_formula": "IFNULL(sales.revenue, 0);select * from sales", } ) metrics = ["revenue", "ds_injection"] dimensions = ["partner_name"] wh = Warehouse(config=config) with pytest.raises(DisallowedSQLException): result = wh_execute(wh, locals()) def test_ds_dim_formula_sql_injection(config): # example = r"""I don't like "special" ch;ars ¯\_(ツ)_/¯""" table_config = config["datasources"]["testdb1"]["tables"]["main.sales"] column_config = table_config["columns"]["lead_id"] column_config["fields"].append( { "name": "ds_injection", "ds_formula": "IF(sales.lead_id > 0, 1, 0);select * from sales", } ) metrics = ["revenue"] dimensions = ["partner_name", "ds_injection"] wh = Warehouse(config=config) with pytest.raises(DisallowedSQLException): result = wh_execute(wh, locals()) def test_metric_formula_sql_injection(config): config["metrics"].append( dict( name="rpl_injection", aggregation=AggregationTypes.MEAN, rounding=2, formula="{revenue}/{leads};select * from leads", ) ) metrics = ["revenue", "rpl_injection"] dimensions = ["partner_name"] wh = Warehouse(config=config) with pytest.raises(DisallowedSQLException): result = wh_execute(wh, locals()) def test_weighting_metric_sql_injection(config): config["metrics"].append( dict( name="rpl_injection", aggregation=AggregationTypes.MEAN, rounding=2, formula="{revenue}/{leads}", weighting_metric="main_sales_quantity;select * from leads", ) ) metrics = ["revenue", "rpl_injection"] dimensions = ["partner_name"] wh = Warehouse(config=config) with pytest.raises(InvalidFieldException): result = wh_execute(wh, locals()) def test_adhoc_metric_sql_injection(wh): metrics = [ "revenue", {"formula": "{revenue};select * from leads", "name": "rev_injection"}, ] dimensions = ["partner_name"] with pytest.raises(DisallowedSQLException): result = wh_execute(wh, locals()) def test_criteria_sql_injection(wh): metrics = ["leads", "sales"] dimensions = ["campaign_name"] criteria = [("campaign_name", "!=", "Campaign 2B';select * from leads --")] result = wh_execute(wh, locals()) criteria = [("select * from leads", "!=", "Campaign 2B")] with pytest.raises(InvalidFieldException): result = wh_execute(wh, locals()) criteria = [("campaign_name", "select * from leads", "Campaign 2B")] with pytest.raises(ZillionException): result = wh_execute(wh, locals()) criteria = [("campaign_date", "=", "select * from leads --")] result = wh_execute(wh, locals()) criteria = [("campaign_date", "=", "';select * from leads --")] result = wh_execute(wh, locals()) criteria = [("campaign_date", "=", "'select * from leads;'")] result = wh_execute(wh, locals()) criteria = [("campaign_date", "=", '";select * from leads --')] result = wh_execute(wh, locals()) def test_row_filter_sql_injection(wh): metrics = ["leads", "revenue"] dimensions = ["partner_name"] row_filters = [("revenue", ">", "11;select * from leads")] with pytest.raises(ZillionException): result = wh_execute(wh, locals()) def test_pivot_sql_injection(wh): metrics = ["leads", "revenue"] dimensions = ["partner_name", "campaign_name"] pivot = ["partner_name;select * from leads"] with pytest.raises(ZillionException): result = wh_execute(wh, locals()) def test_metric_name_sql_injection(config): config["metrics"].append( dict( name="select * from leads", aggregation=AggregationTypes.MEAN, rounding=2, formula="{revenue}/{leads}", ) ) from marshmallow.exceptions import ValidationError with pytest.raises(ValidationError): wh = Warehouse(config=config) def test_dimension_name_sql_injection(config): config["dimensions"].append(dict(name="select * from leads", type="String(64)")) from marshmallow.exceptions import ValidationError with pytest.raises(ValidationError): wh = Warehouse(config=config) def test_type_conversion_prefix_sql_injection(config): table_config = config["datasources"]["testdb1"]["tables"]["main.sales"] table_config["columns"]["created_at"]["type_conversion_prefix"] = ( "select * from sales;--" ) metrics = ["sales"] dimensions = ["partner_name"] from marshmallow.exceptions import ValidationError with pytest.raises(ValidationError): wh = Warehouse(config=config) def test_table_name_sql_injection(config): tables = config["datasources"]["testdb1"]["tables"] del tables["main.sales"] # Since this table doesn't actually match a table name it shouldn't ever # become a part of the warehouse. tables["select * from leads;--"] = { "type": TableTypes.METRIC, "create_fields": True, "columns": { "id": { "fields": [{"name": "sales", "ds_formula": "COUNT(DISTINCT sales.id)"}] }, "lead_id": {"fields": ["lead_id"]}, }, } with pytest.raises(DisallowedSQLException): Warehouse(config=config) ================================================ FILE: tests/test_scripts.py ================================================ import pytest from unittest.mock import patch TEST_DB_URL = "https://github.com/totalhack/zillion/blob/master/tests/testdb1?raw=true" def test_bootstrap_datasource_config(): from zillion.scripts.bootstrap_datasource_config import main with patch( "argparse._sys.argv", ["bootstrap_datasource_config.py", TEST_DB_URL, "/tmp/config.json", "--verify"], ): main() @pytest.mark.nlp def test_nlp_bootstrap_datasource_config(): from zillion.scripts.bootstrap_datasource_config import main with patch( "argparse._sys.argv", [ "bootstrap_datasource_config.py", TEST_DB_URL, "/tmp/config.json", "--verify", "--nlp", ], ): main() ================================================ FILE: tests/test_sqlite_ds_config.json ================================================ { "connect": { "func": "zillion.datasource.url_connect", "params": { "connect_url": "sqlite:///{schema}" } }, "metrics": [ { "name": "aggr_sales", "type": "integer", "aggregation": "sum" } ], "tables": { "main.partners": { "type": "dimension", "create_fields": true, "primary_key": [ "partner_id" ], "columns": { "id": { "fields": [ "partner_id" ] }, "name": { "fields": [ "partner_name" ] } } }, "main.campaigns": { "type": "dimension", "create_fields": true, "parent": "main.partners", "primary_key": [ "campaign_id" ], "columns": { "id": { "fields": [ "campaign_id" ] }, "name": { "fields": [ "campaign_name" ] }, "partner_id": { "fields": [ "partner_id" ] } } }, "main.aggregated_stats": { "type": "metric", "create_fields": true, "use_full_column_names": false, "primary_key": [ "partner_id", "campaign_id" ], "columns": { "partner_id": { "fields": [ "partner_id" ] }, "campaign_id": { "fields": [ "campaign_id" ] }, "sales": { "fields": [ "sales", "aggr_sales" ] }, "revenue": { "required_grain": [ "partner_name" ], "fields": [ "revenue" ] } } } } } ================================================ FILE: tests/test_table_config.json ================================================ { "type": "metric", "priority": 1, "create_fields": true, "primary_key": [ "lead_id" ], "columns": { "id": { "fields": [ "lead_id", "lead_count", "lead_count_distinct", { "name": "leads", "ds_formula": "COUNT(DISTINCT leads.id)" }, { "name": "repeated_metric", "ds_formula": "COUNT(DISTINCT leads.id)" } ] }, "name": { "fields": [ "lead_name" ] }, "created_at": { "allow_type_conversions": true }, "campaign_id": { "fields": [ "campaign_id" ] } } } ================================================ FILE: tests/test_utils.py ================================================ """ To setup testing against local databases: mysql -u root -h 127.0.0.1 < zillion_test.mysql.sql psql -h 127.0.0.1 -U postgres zillion_test < zillion_test.postgres.sql rm /tmp/adhoc_large_db.db (if it exists) """ from collections import OrderedDict from contextlib import contextmanager import copy import logging import os import random import sys from shutil import copyfile import pymysql from tlbx import st, random_string, shell import sqlalchemy as sa from zillion.configs import ( load_warehouse_config, load_datasource_config, zillion_config, TableInfo, ) from zillion.core import * from zillion.datasource import ( DataSource, AdHocDataTable, SQLiteDataTable, get_adhoc_datasource_filename, get_adhoc_datasource_url, ) from zillion.field import DATETIME_CONVERSION_FIELDS from zillion.model import * from zillion.report import Report from zillion.warehouse import Warehouse if os.path.exists("tests"): sys.exit("ERROR: Please run tests from within the tests directory") DEFAULT_TEST_DB = "testdb1" TEST_WH_CONFIG = load_warehouse_config("test_wh_config.json") TEST_ADHOC_CONFIG = load_warehouse_config("test_adhoc_ds_config.json") REMOTE_CONFIG_URL = "https://raw.githubusercontent.com/totalhack/zillion/master/tests/test_wh_config.json" logging.getLogger().setLevel(logging.INFO) default_logger.setLevel(logging.INFO) logging.info(f"Config: {zillion_config}") test_config = zillion_config["TEST"] @contextmanager def update_zillion_config(updates): """Helper to make temporary updates to global config""" old = {k: v for k, v in zillion_config.items() if k in updates} try: zillion_config.update(updates) yield finally: zillion_config.update(old) def mysql_data_init(): host = test_config["MySQLHost"] port = int(test_config["MySQLPort"]) user = test_config["MySQLUser"] cmd = f"mysql -u {user} -h {host} -P {port}" cmd += " < setup/zillion_test.mysql.sql" res = shell(cmd) assert res.returncode == 0, f"Error initializing MySQL: {res.stderr}" def postgresql_data_init(): host = test_config["PostgreSQLHost"] port = int(test_config["PostgreSQLPort"]) user = test_config["PostgreSQLUser"] schema = test_config["PostgreSQLTestSchema"] cmd = ( f"psql -U {user} -h {host} -p {port} {schema} < setup/zillion_test.postgres.sql" ) res = shell(cmd) assert res.returncode == 0, f"Error initializing PostgreSQL: {res.stderr}" def duckdb_data_init(conn): for table in ["partners", "campaigns", "partner_sibling", "leads", "sales"]: print(f"Creating table {table}") conn.execute( f"CREATE TABLE {table} AS SELECT * FROM read_csv_auto('setup/{table}.csv')" ) def get_pymysql_conn(): host = test_config["MySQLHost"] port = int(test_config["MySQLPort"]) user = test_config["MySQLUser"] password = test_config.get("MySQLPassword", None) schema = test_config["MySQLTestSchema"] conn = pymysql.connect( host=host, port=port, db=schema, user=user, passwd=password, cursorclass=pymysql.cursors.DictCursor, ) return conn def get_sqlalchemy_mysql_engine(): host = test_config["MySQLHost"] port = int(test_config["MySQLPort"]) user = test_config["MySQLUser"] password = test_config.get("MySQLPassword", None) schema = test_config["MySQLTestSchema"] if host in ["localhost", "127.0.0.1"] and not password: conn_str = "mysql+pymysql://%(user)s@%(host)s/%(schema)s" % locals() else: conn_str = ( "mysql+pymysql://%(user)s:%(password)s@%(host)s:%(port)s/%(schema)s" % locals() ) engine = sa.create_engine(conn_str) return engine def get_sqlalchemy_mysql_conn(): engine = get_sqlalchemy_mysql_engine() return engine.connect() def get_sqlalchemy_postgresql_engine(): host = test_config["PostgreSQLHost"] port = int(test_config["PostgreSQLPort"]) user = test_config["PostgreSQLUser"] schema = test_config["PostgreSQLTestSchema"] conn_str = "postgresql+psycopg2://%(user)s@%(host)s:%(port)s/%(schema)s" % locals() engine = sa.create_engine(conn_str) return engine def get_sqlalchemy_postgresql_conn(): engine = get_sqlalchemy_postgresql_engine() return engine.connect() def get_sqlalchemy_duckdb_engine(): schema_base = test_config["DuckDBTestSchemaBase"] if sys.version_info >= (3, 12): schema = f"{schema_base}_1.x.duckdb" else: schema = f"{schema_base}_0.7.duckdb" conn_str = f"duckdb:///{schema}" engine = sa.create_engine(conn_str) return engine def get_sqlalchemy_duckdb_conn(): engine = get_sqlalchemy_duckdb_engine() return engine.connect() # NOTE: defaults to mysql, should be cleaned up def get_sql(sql): conn = get_pymysql_conn() try: cursor = conn.cursor() cursor.execute(sql) return cursor.fetchall() finally: conn.close() def create_test_metadata(ds_config): metadata = sa.MetaData() metadata.bind = sa.create_engine(ds_config["connect"]) metadata.reflect(schema="main") # Create zillion info directly on metadata partners_info = TableInfo.create( dict(type=TableTypes.DIMENSION, create_fields=True, primary_key=["partner_id"]) ) campaigns_info = TableInfo.create( dict(type=TableTypes.DIMENSION, create_fields=True, primary_key=["campaign_id"]) ) metadata.tables["main.partners"].info["zillion"] = partners_info metadata.tables["main.campaigns"].info["zillion"] = campaigns_info return metadata def drop_metadata_table_if_exists(metadata, table_name): if table_name not in metadata.tables: return table = metadata.tables[table_name] table.drop() metadata.remove(table) def create_adhoc_data(column_types, size): data = [] def get_random_value(coltype): if coltype == str: return random_string() elif coltype == int: return random.randint(0, 1e2) elif coltype == float: return random.random() * 1e2 else: assert False, "Unsupported column type: %s" % coltype for i in range(0, int(size)): row = dict() for column_name, column_type in column_types.items(): row[column_name] = get_random_value(column_type) data.append(row) return data def create_adhoc_datatable(name, table_config, primary_key, column_types, size): assert table_config["columns"].keys() == column_types.keys(), ( "Mismatch between table_config columns and column_types" ) data = create_adhoc_data(column_types, size) dt = AdHocDataTable( name, data, table_config["type"], primary_key=primary_key, columns=table_config.get("columns", None), if_exists=table_config.get("if_exists", IfExistsModes.FAIL), schema="main", ) return dt def get_adhoc_table_config(): table_config = { "type": TableTypes.METRIC, "if_exists": IfExistsModes.REPLACE, "create_fields": False, "columns": OrderedDict( partner_name={"fields": ["partner_name"]}, adhoc_metric={"fields": ["adhoc_metric"]}, ), } return table_config def get_dma_zip_table_config(): table_config = { "type": TableTypes.DIMENSION, "create_fields": True, "columns": OrderedDict( Zip_Code={"fields": ["zip_code"]}, DMA_Code={"fields": ["dma_code"]}, DMA_Description={"fields": ["dma_description"]}, ), } return table_config def get_adhoc_datasource(size=10, name="adhoc_table1", reuse=False): table_config = get_adhoc_table_config() primary_key = ["partner_name"] column_types = dict(partner_name=str, adhoc_metric=float) config = { "metrics": [ { "name": "adhoc_metric", "type": "Numeric(10,2)", "aggregation": AggregationTypes.SUM, } ], "dimensions": [{"name": "partner_name", "type": "String(32)"}], } if reuse: fname = get_adhoc_datasource_filename(name) if os.path.exists(fname): info("Reusing datasource file %s" % fname) dt = SQLiteDataTable( name, None, table_config["type"], primary_key=primary_key, columns=table_config.get("columns", None), schema="main", ) return DataSource.from_datatables(name, [dt], config=config) dt = create_adhoc_datatable(name, table_config, primary_key, column_types, size) return DataSource.from_datatables(name, [dt], config=config) def get_testdb_url(dbname=DEFAULT_TEST_DB): return "sqlite:///%s" % dbname EXPECTED_DATE_CONVERSION_VALUES = [ ("campaign_year", 2019), ("campaign_quarter", "2019-Q1"), ("campaign_quarter_of_year", 1), ("campaign_month", "2019-03"), ("campaign_month_name", "March"), ("campaign_month_of_year", 3), ("campaign_week", "2019-W13"), ("campaign_week_of_year", 13), ("campaign_week_of_month", 5), ("campaign_period_of_month_7d", 4), ("campaign_date", "2019-03-26"), ("campaign_day_name", "Tuesday"), ("campaign_day_of_week", 2), ("campaign_is_weekday", 1), ("campaign_day_of_month", 26), ("campaign_day_of_year", 85), ("campaign_hour", "2019-03-26 21:00:00"), ("campaign_hour_of_day", 21), ("campaign_minute", "2019-03-26 21:02:00"), ("campaign_minute_of_hour", 2), ("campaign_datetime", "2019-03-26 21:02:15"), ] def get_date_conversion_test_params(): metrics = None criteria = [("campaign_name", "=", "Campaign 2B")] dimensions = ["campaign_%s" % v.name for v in DATETIME_CONVERSION_FIELDS] return dict(metrics=metrics, criteria=criteria, dimensions=dimensions) CRITERIA_CONVERSION_TESTS = [ # TODO: add value validation for every case ("campaign_date", "=", "2019-03-26"), ("campaign_date", "!=", "2019-03-25"), ("campaign_date", ">", "2019-03-25"), ("campaign_date", ">=", "2019-03-26"), ("campaign_date", "<", "2019-03-27"), ("campaign_date", "<=", "2019-03-26"), ("campaign_date", "between", ["2019-03-26", "2019-03-27"]), ("campaign_date", "not between", ["2019-03-25", "2019-03-25"]), # ("campaign_year", "=", "2019"), ("campaign_year", "!=", "2020"), ("campaign_year", ">", "2018"), ("campaign_year", ">=", "2019"), ("campaign_year", "<", "2020"), ("campaign_year", "<=", "2019"), ("campaign_year", "between", ["2019", "2020"]), ("campaign_year", "not between", ["2017", "2018"]), # ("campaign_month", "=", "2019-03"), ("campaign_month", "!=", "2019-02"), ("campaign_month", ">", "2019-02"), ("campaign_month", ">=", "2019-03"), ("campaign_month", "<", "2019-04"), ("campaign_month", "<=", "2019-03"), ("campaign_month", "between", ["2019-03", "2019-03"]), ("campaign_month", "not between", ["2019-01", "2019-02"]), # ("campaign_hour", "=", "2019-03-26 21:00:00"), ("campaign_hour", "!=", "2019-03-26 20:00:00"), ("campaign_hour", ">", "2019-03-26 04:00:00"), ("campaign_hour", ">=", "2019-03-26 21:00:00"), ("campaign_hour", "<", "2019-03-26 22:00:00"), ("campaign_hour", ">=", "2019-03-26 21:00:00"), ("campaign_hour", "between", ["2019-03-26 20:00:00", "2019-03-26 22:00:00"]), ("campaign_hour", "not between", ["2019-03-26 04:00:00", "2019-03-26 05:00:00"]), # ("campaign_minute", "=", "2019-03-26 21:02:00"), ("campaign_minute", "!=", "2019-03-26 21:01:00"), ("campaign_minute", ">", "2019-03-26 21:01:00"), ("campaign_minute", ">=", "2019-03-26 21:02:00"), ("campaign_minute", "<", "2019-03-26 21:03:00"), ("campaign_minute", ">=", "2019-03-26 21:02:00"), ("campaign_minute", "between", ["2019-03-26 21:01:00", "2019-03-26 21:02:00"]), ("campaign_minute", "not between", ["2019-03-26 21:01:00", "2019-03-26 21:01:00"]), # ("campaign_datetime", "=", "2019-03-26 21:02:15"), ("campaign_datetime", "!=", "2019-03-26 21:02:00"), ("campaign_datetime", ">", "2019-03-26 21:02:10"), ("campaign_datetime", ">=", "2019-03-26 21:02:15"), ("campaign_datetime", "<", "2019-03-26 21:02:16"), ("campaign_datetime", "<=", "2019-03-26 21:02:15"), ("campaign_datetime", "between", ["2019-03-26 21:02:15", "2019-03-26 21:02:16"]), ( "campaign_datetime", "not between", ["2019-03-26 21:00:01", "2019-03-26 21:00:02"], ), ] def wh_execute_args(d): exec_params = set( [ "metrics", "dimensions", "criteria", "row_filters", "rollup", "pivot", "order_by", "limit", "limit_first", "adhoc_datasources", "allow_partial", "disabled_tables", ] ) return {k: v for k, v in d.items() if k in exec_params} def wh_execute(wh, d): return wh.execute(**wh_execute_args(d)) ================================================ FILE: tests/test_wh_config.json ================================================ { "meta": { "nlp": { "collection_name": null, "field_disabled_patterns": ["rpl_ma_5"], "field_disabled_groups": ["No NLP"] } }, "metrics": [ { "name": "rpl", "display_name": "Revenue/Lead", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "description": "Revenue per Lead", "meta": { "metafield": "metavalue", "nlp": { "enabled": true, "embedding_text": "Revenue per Lead Meta" } } }, { "name": "rpl_weighted", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "weighting_metric": "main_sales_quantity", "meta": { "nlp": { "enabled": false } } }, { "name": "rpl_lead_weighted", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "weighting_metric": "leads", "meta": { "nlp": { "embedding_text": ["rpl weighted 1", "rpl weighted 2"] } } }, { "name": "rpl_lead_formula_weighted", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "weighting_metric": "leads_formula" }, { "name": "rps_lead_weighted", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{sales}", "weighting_metric": "leads" }, { "name": "rpl_squared", "aggregation": "mean", "rounding": 2, "formula": "{rpl}*{rpl}" }, { "name": "rpl_unsquared", "aggregation": "mean", "rounding": 2, "formula": "{rpl_squared}/{rpl}", "meta": { "group": "No NLP" } }, { "name": "rpl_ma_5", "aggregation": "mean", "rounding": 2, "formula": "{revenue}/{leads}", "technical": "mean(5)" }, { "name": "revenue", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "divisors": { "metrics": ["leads", "sales"], "rounding": 2, "formula": "1.0*IFNULL({metric},0)/{divisor}" } }, { "name": "revenue_ma_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "mean(5)" }, { "name": "revenue_sum_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "sum(5)" }, { "name": "revenue_cumsum", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "cumsum" }, { "name": "revenue_boll_5", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "boll(5)" }, { "name": "revenue_diff", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "diff" }, { "name": "revenue_pct_diff", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2, "technical": "pct_change" }, { "name": "revenue_ds", "type": "numeric(10,2)", "aggregation": "sum", "rounding": 2 }, { "name": "leads", "type": "integer", "aggregation": "sum" }, { "name": "leads_formula", "formula": "{leads}", "aggregation": "sum" }, { "name": "sales", "type": "integer", "aggregation": "sum" }, { "name": "sales_variant", "aggregation": { "mean": { "type": "numeric(10,2)", "rounding": 2 }, "sum": { "name": "sales_sum_custom_name", "type": "integer" } }, "divisors": { "metrics": ["leads"], "rounding": 2, "formula": "1.0*IFNULL({metric},0)/{divisor}" } }, { "name": "revenue_required_grain", "type": "numeric(10,2)", "aggregation": "sum", "required_grain": ["campaign_name"] }, { "name": "revenue_ifnull", "type": "numeric(10,2)", "aggregation": "sum", "ifnull": 0 }, { "name": "revenue_per_lead_required_grain", "aggregation": "mean", "formula": "1.0*{revenue}/{leads}", "required_grain": ["campaign_name"] }, { "name": "revenue_formula_required_grain", "aggregation": "mean", "formula": "1.0*{revenue_required_grain}" }, { "name": "repeated_metric", "type": "integer", "aggregation": "sum" } ], "dimensions": [ { "name": "partner_name", "type": "string(32)", "values": ["Partner C", "Partner B", "Partner A"], "sorter": "zillion.field.sort_by_value_order" }, { "name": "partner_name_formula", "formula": "IFNULL({partner_name}, 'test')" }, { "name": "partner_name_formula_nested", "formula": "{partner_name_formula}" } ], "datasources": { "testdb1": { "connect": "sqlite:///testdb1", "metrics": [ { "name": "lead_count", "type": "integer", "aggregation": "count" }, { "name": "lead_count_distinct", "type": "integer", "aggregation": "count_distinct" }, { "name": "ds_sales", "type": "integer", "aggregation": "sum" }, { "name": "revenue_mean", "type": "numeric(10,2)", "aggregation": "mean", "rounding": 2, "weighting_metric": "main_sales_quantity" }, { "name": "revenue_mean_ds_weighted", "type": "numeric(10,2)", "aggregation": "mean", "rounding": 2, "weighting_metric": "main_sales_quantity" } ], "dimensions": [ { "name": "ds_partner_name", "type": "string(50)" }, { "name": "campaign_name_length", "type": "integer" }, { "name": "revenue_decile", "type": "integer" } ], "tables": { "main.partners": { "type": "dimension", "create_fields": true, "siblings": ["main.partner_sibling"], "primary_key": ["partner_id"], "columns": { "id": { "fields": ["partner_id"] }, "name": { "fields": ["partner_name", "ds_partner_name"] } } }, "main.partner_sibling": { "type": "dimension", "create_fields": true, "primary_key": ["partner_id"], "columns": { "partner_id": { "fields": ["partner_id"] }, "sibling_dim": { "fields": ["partner_sibling_dim"] } } }, "main.campaigns": { "type": "dimension", "create_fields": true, "parent": "main.partners", "primary_key": ["campaign_id"], "columns": { "id": { "fields": ["campaign_id"] }, "name": { "fields": [ "campaign_name", { "name": "campaign_name_length", "ds_formula": "LENGTH(campaigns.name)" } ] }, "partner_id": { "fields": ["partner_id"] }, "created_at": { "fields": ["campaign_created_at"], "allow_type_conversions": true, "type_conversion_prefix": "campaign_", "disabled_type_conversions": ["hour"] } } }, "main.leads": "test_table_config.json", "main.sales": { "type": "metric", "priority": 2, "create_fields": true, "parent": "main.leads", "primary_key": ["sale_id"], "columns": { "id": { "fields": [ "sale_id", { "name": "sales", "ds_formula": "COUNT(DISTINCT sales.id)" }, { "name": "ds_sales", "ds_formula": "COUNT(DISTINCT sales.id)" }, { "name": "repeated_metric", "ds_formula": "COUNT(DISTINCT sales.id)" } ] }, "created_at": { "allow_type_conversions": true, "type_conversion_prefix": "sale_" }, "lead_id": { "fields": [ { "name": "lead_id", "ds_formula": "sales.lead_id", "ds_criteria_conversions": { "=": [["=", "{}"]] } } ] }, "revenue": { "fields": [ "revenue", "revenue_ma_5", "revenue_sum_5", "revenue_boll_5", "revenue_cumsum", "revenue_diff", "revenue_pct_diff", "revenue_mean", "revenue_required_grain", "revenue_ifnull", { "name": "revenue_ds", "ds_formula": "IFNULL(sales.revenue, 0)" }, { "name": "revenue_mean_ds_weighted", "ds_formula": "SUM(1.0*sales.revenue*sales.quantity)/SUM(sales.quantity)" }, { "name": "revenue_decile", "ds_formula": "10*ROUND(sales.revenue/10.0, 0)" } ] } } } } }, "testdb2": "test_sqlite_ds_config.json" } } ================================================ FILE: zillion/__init__.py ================================================ """Zillion package""" from .version import __version__ from .core import ( FieldTypes, TableTypes, AggregationTypes, TechnicalTypes, TechnicalModes, RollupTypes, DataSourceQueryModes, IfExistsModes, load_zillion_config, ) from .configs import ( load_warehouse_config, load_warehouse_config_from_env, load_datasource_config, load_datasource_config_from_env, ) from .datasource import DataSource from .warehouse import Warehouse from .report import Report ================================================ FILE: zillion/configs.py ================================================ import sys from collections import OrderedDict, defaultdict import os import string from marshmallow import ( Schema, fields as original_mfields, ValidationError, pre_load, EXCLUDE, RAISE, ) import pandas as pd # Monkey-patching for marshmallow.fields if sys.version_info >= (3, 12): # No patching needed for Python 3.12+, use load_default directly mfields = original_mfields else: # Patch marshmallow.fields for older Python versions class PatchedField(original_mfields.Field): def __init__(self, *args, **kwargs): if "load_default" in kwargs: kwargs["missing"] = kwargs.pop("load_default") kwargs["default"] = kwargs["missing"] elif "missing" in kwargs or "default" in kwargs: if "missing" in kwargs: kwargs["load_default"] = kwargs.pop("missing") if "default" in kwargs: kwargs["load_default"] = kwargs.pop("default") super().__init__(*args, **kwargs) # Replace specific fields that use 'missing' or 'default' original_mfields.Dict = type("Dict", (PatchedField, original_mfields.Dict), {}) original_mfields.List = type("List", (PatchedField, original_mfields.List), {}) original_mfields.Str = type("Str", (PatchedField, original_mfields.Str), {}) original_mfields.String = type( "String", (PatchedField, original_mfields.String), {} ) original_mfields.Boolean = type( "Boolean", (PatchedField, original_mfields.Boolean), {} ) original_mfields.Integer = type( "Integer", (PatchedField, original_mfields.Integer), {} ) original_mfields.Float = type("Float", (PatchedField, original_mfields.Float), {}) original_mfields.Field = type("Field", (PatchedField, original_mfields.Field), {}) # Re-assign mfields to the patched version mfields = original_mfields from zillion.core import * from zillion.sql_utils import ( column_fullname, type_string_to_sa_type, InvalidSQLAlchemyTypeString, ) FIELD_NAME_ALLOWED_CHARS_STR = ( string.ascii_uppercase + string.ascii_lowercase + string.digits + "_" ) FIELD_NAME_ALLOWED_CHARS = set(FIELD_NAME_ALLOWED_CHARS_STR) FIELD_DISPLAY_NAME_ALLOWED_CHARS_STR = ( string.ascii_uppercase + string.ascii_lowercase + string.digits + "_-:/|<>+-=@[]{}()$%&*?,. " ) FIELD_DISPLAY_NAME_ALLOWED_CHARS = set(FIELD_DISPLAY_NAME_ALLOWED_CHARS_STR) TABLE_NAME_ALLOWED_CHARS_STR = ( string.ascii_uppercase + string.ascii_lowercase + string.digits + "_" ) TABLE_NAME_ALLOWED_CHARS = set(TABLE_NAME_ALLOWED_CHARS_STR) DATASOURCE_NAME_ALLOWED_CHARS_STR = ( string.ascii_uppercase + string.ascii_lowercase + string.digits + "_" ) DATASOURCE_NAME_ALLOWED_CHARS = set(DATASOURCE_NAME_ALLOWED_CHARS_STR) DATASOURCE_CONNECT_FUNC_DEFAULT = "zillion.datasource.url_connect" def parse_schema_file(f, schema): """Parse a marshmallow schema file **Parameters:** * **f** - (*str or buffer*) A file path or buffer to read the raw schema contents from. Both JSON and YAML are supported. * **schema** - (*marshmallow schema*) The marshmallow schema to use to parse the data **Returns:** (*dict*) - A dict structure loaded from the schema file """ raw = read_filepath_or_buffer(f) try: result = load_json_or_yaml_from_str(raw, f, schema=schema) except ValidationError as e: error("Schema Validation Error: %s" % schema) print(json.dumps(str(e), indent=2)) raise return result def load_warehouse_config(cfg): """Parse a warehouse JSON config **Parameters:** * **cfg** - (*dict, str, or buffer*) A warehouse config dict or a file path/buffer to read the config contents from. **Returns:** (*dict*) - The parsed warehouse config """ if isinstance(cfg, dict): return WarehouseConfigSchema().load(cfg) return parse_schema_file(cfg, WarehouseConfigSchema()) def load_warehouse_config_from_env(var): """Parse a warehouse JSON config from a location stored in an environment variable""" f = os.environ.get(var) return load_warehouse_config(f) def load_datasource_config(cfg): """Parse a datasource JSON config **Parameters:** * **cfg** - (*dict, str, or buffer*) A datasource config dict or a file path/buffer to read the config contents from. **Returns:** (*dict*) - The parsed datasource config """ if isinstance(cfg, dict): return DataSourceConfigSchema().load(cfg) return parse_schema_file(cfg, DataSourceConfigSchema()) def load_datasource_config_from_env(var): """Parse a datasource JSON config from a location stored in an environment variable""" f = os.environ.get(var) return load_datasource_config(f) def table_safe_name(name): """Replace characters with underscores if they are not in TABLE_NAME_ALLOWED_CHARS **Parameters:** * **name** - (*str*) The field name to process **Returns:** (*str*) - The "safe" table name """ for char in name: if char not in TABLE_NAME_ALLOWED_CHARS: name = name.replace(char, "_") return name def field_safe_name(name): """Replace characters with underscores if they are not in FIELD_NAME_ALLOWED_CHARS **Parameters:** * **name** - (*str*) The field name to process **Returns:** (*str*) - The "safe" field name """ for char in name: if char not in FIELD_NAME_ALLOWED_CHARS: name = name.replace(char, "_") return name def default_field_name(column): """Get the default field name from a SQLAlchemy column **Parameters:** * **column** - (*SQLAlchemy column*) A column to get the default field name for **Returns:** (*str*) - The default field name for the column """ return field_safe_name(column_fullname(column)) def default_field_display_name(name): """Determine a default display name from the field name **Parameters:** * **name** - (*str*) The field name to process **Returns:** (*str*) - The field display name """ name = field_safe_name(name) display_name = " ".join(name.replace("_", " ").split()).title() return display_name def is_active(obj): """Helper to test if an object is an active part of the zillion config""" if not getattr(obj, "zillion", None): return False if not obj.zillion.active: return False return True def is_valid_table_type(val): """Validate table type""" if val in TableTypes: return True raise ValidationError("Invalid table type: %s" % val) def is_valid_table_name(val): """Validate table name""" if val.count(".") > 1: raise ValidationError("Table name has more than one period: %s" % val) return True def is_valid_if_exists(val): """Validate if_exists param""" if val in IfExistsModes: return True raise ValidationError("Invalid if_exists value: %s" % val) def is_valid_field_name(val): """Validate field name""" if val is None: raise ValidationError("Field name can not be null") if val[0] in string.digits: raise ValidationError("Field name can not start with a number") if set(val) <= FIELD_NAME_ALLOWED_CHARS: return True raise ValidationError( 'Field name "%s" has invalid characters. Allowed: %s' % (val, FIELD_NAME_ALLOWED_CHARS_STR) ) def is_valid_field_display_name(val): """Validate field display name""" if val is None: raise ValidationError("Field display name can not be null") if set(val) <= FIELD_DISPLAY_NAME_ALLOWED_CHARS: return True raise ValidationError( 'Field display name "%s" has invalid characters. Allowed: %s' % (val, FIELD_DISPLAY_NAME_ALLOWED_CHARS_STR) ) def is_valid_sqlalchemy_type(val): """Validate SQLAlchemy type string""" if val is not None: try: type_string_to_sa_type(val) except InvalidSQLAlchemyTypeString as e: raise ValidationError("Invalid sqlalchemy type: %s" % val) return True def has_valid_sqlalchemy_type_values(val): """Validate a mapping that has sqlalchemy type strings as values""" if not val: return True if not isinstance(val, dict): raise ValidationError("Expected dict: %s" % val) for v in val.values(): is_valid_sqlalchemy_type(v) def is_valid_aggregation(val): """Validate aggregation type""" if isinstance(val, dict): valid = all(v in AggregationTypes for v in val) else: valid = val in AggregationTypes if valid: return True raise ValidationError("Invalid aggregation: %s" % val) def is_valid_column_field_config(val): """Validate column field config""" if isinstance(val, str): return True if isinstance(val, dict): schema = ColumnFieldConfigSchema() schema.load(val) return True raise ValidationError("Invalid column field config: %s" % val) def is_valid_technical_type(val): """Validate technical type""" if val in TechnicalTypes: return True raise ValidationError("Invalid technical type: %s" % val) def is_valid_technical_mode(val): """Validate technical mode""" if val in TechnicalModes: return True raise ValidationError("Invalid technical mode: %s" % val) def is_valid_technical(val): """Validate technical""" try: create_technical(val) except InvalidTechnicalException as e: raise ValidationError("Invalid technical: %s" % val) from e return True def is_valid_dimension_values(val): """Validate dimension values""" if isinstance(val, list): return True if isinstance(val, str): return True raise ValidationError("Invalid dimension values: %s" % val) def is_valid_datasource_criteria_conversions(val): """Validate datasource criteria conversions""" if val is None: return True if not isinstance(val, dict): raise ValidationError( "Invalid datasource criteria conversion, must be a dict " "mapping criteria operations to criteria conversions: %s" % val ) for op, new_criteria in val.items(): if op not in CRITERIA_OPERATIONS: raise ValidationError("Invalid criteria operation: %s" % op) if not isinstance(new_criteria, list): raise ValidationError( "Criteria conversions must be a list of new criteria to apply: %s" % new_criteria ) for row in new_criteria: if not len(row) == 2: raise ValidationError( "Criteria conversion row must have 2 items: %s" % row ) row_op, row_formula = row if not row_op in CRITERIA_OPERATIONS: raise ValidationError("Invalid criteria operation: %s" % row) if callable(row_formula): # No way to check this further, assumes the callable is returning # a properly formated value that would satistify the check below. continue # We allow 2-item list/tuple for between/in criteria, otherwise # it must be a string. if not isinstance(row_formula, str): allows_list = row_op in ["between", "not between", "in", "not in"] valid_list = ( isinstance(row_formula, (list, tuple)) and len(row_formula) == 2 ) if not allows_list or not valid_list: raise ValidationError( "Invalid criteria conversion values: %s" % row ) return True def is_valid_connect_type(val): """Validate technical type""" if isinstance(val, str): try: import_object(val) except Exception as e: raise ValidationError("Could not import connect type: %s" % val) from e return True raise ValidationError("Invalid connect type: %s" % val) def is_valid_datasource_connect(val): """Validate datasource connect value""" if isinstance(val, str): return True if isinstance(val, dict): schema = DataSourceConnectSchema() schema.load(val) return True raise ValidationError("Invalid datasource connect config: %s" % val) def is_valid_datasource_config(val): """Validate datasource config""" if not isinstance(val, dict): raise ValidationError("Invalid datasource config: %s" % val) schema = DataSourceConfigSchema() val = schema.load(val) return True def is_valid_field_nlp_embedding_text_config(val): """Validate field nlp embedding text config""" if isinstance(val, str): return True if isinstance(val, list) and all(isinstance(x, str) for x in val): return True raise ValidationError("Invalid nlp embedding_text field config: %s" % val) def is_valid_divisors_config(val): """Validate metric divisors""" if isinstance(val, dict): schema = DivisorsConfigSchema() schema.load(val) return True raise ValidationError("Invalid metric divisors config: %s" % val) def get_divisor_metrics(metric): """Given a metric with a divisor config, generate the formula metrics""" new_metrics = [] dconfig = metric.get("divisors", {}) if not dconfig: return [] raiseif( metric["aggregation"] == AggregationTypes.MEAN, "Divisor metrics not supported for metrics with aggregation type 'mean'", ) for divisor in dconfig["metrics"]: new_metric = {} # Formula fields will get substituted at report time so we need to # maintain braces around the fields name. metric_ph = "{" + metric["name"] + "}" divisor_ph = "{" + divisor + "}" if "name" in dconfig: new_metric["name"] = dconfig["name"].format(divisor=f"{divisor}") else: # Naively try to convert from plural to singular by chopping 's' new_metric["name"] = f"{metric['name']}_per_{divisor.rstrip('s')}" if "formula" in dconfig: new_metric["formula"] = dconfig["formula"].format( metric=f"{metric_ph}", divisor=f"{divisor_ph}" ) else: # TODO Assumes sqlite! new_metric["formula"] = f"1.0*IFNULL({metric_ph},0)/{divisor_ph}" new_metric["aggregation"] = "mean" new_metric["weighting_metric"] = divisor new_metric["rounding"] = dconfig.get("rounding", metric.get("rounding", None)) new_metric["description"] = f"Auto-generated {metric['name']} divisor metric" meta = (metric.get("meta", {}) or {}).copy() new_metric["meta"] = meta or None new_metrics.append(new_metric) return new_metrics def get_aggregation_metrics(metric): """Get the final metrics for a field that may have multiple aggregations""" if not isinstance(metric.get("aggregation", None), dict): return [metric] final = [] for agg, cfg in metric["aggregation"].items(): m = metric.copy() m["name"] = f"{metric['name']}_{agg}" m.update(cfg) m["aggregation"] = agg final.append(m) return final # Inspiration: https://gist.github.com/ramnes/89245fbd9f2dfff52a78 class PolyNested(mfields.Nested): """A polytype nested field that iterates through a list of possible types""" def _deserialize(self, value, attr, data, partial=None, **kwargs): raiseifnot(isinstance(self.nested, list), "Expected list of schemas") errors = [] for schema in self.nested: if isinstance(schema, type): schema = schema() try: result = schema.load(value) except ValidationError as e: errors.append(e) continue return result raise ValidationError( "Could not deserialize value with PolyNested schemas. Errors:%s Data:%s Schemas:%s" % (errors, value, self.nested) ) class BaseSchema(Schema): """Base Schema with custom JSON module **Attributes:** * **meta** - (*dict, optional) A dict of additional custom attributes for the config object """ meta = mfields.Dict(keys=mfields.Str(), load_default=None, required=False) class Meta: """Use the json module as imported from tlbx""" render_module = json class TechnicalInfoSchema(BaseSchema): """The schema of a technical configuration""" type = mfields.String(required=True, validate=is_valid_technical_type) params = mfields.Dict(keys=mfields.Str(), load_default=None) mode = mfields.String(validate=is_valid_technical_mode, load_default=None) class TechnicalField(mfields.Field): """A field for defining technical calculations""" def _validate(self, value): is_valid_technical(value) super()._validate(value) class DataSourceCriteriaConversionsField(mfields.Field): """A field for defining column-level criteria conversions. This allows for optimizing queries by converting values instead of applying a function on the column to evaluate criteria, which can otherwise prevent index usage.""" def _validate(self, value): is_valid_datasource_criteria_conversions(value) super()._validate(value) class DimensionValuesField(mfields.Field): """A field for defining dimension values""" def _validate(self, value): is_valid_dimension_values(value) super()._validate(value) class ColumnFieldConfigSchema(BaseSchema): """The schema of a column's field attribute **Attributes:** * **name** - (*str*) The name of the field * **ds_formula** - (*str*) A formula used to calculate the field value at the datasource query level. It must use syntax specific to the datasource. """ name = mfields.Str(required=True, validate=is_valid_field_name) ds_formula = mfields.Str(required=True) ds_criteria_conversions = DataSourceCriteriaConversionsField(load_default=None) class ColumnFieldConfigField(mfields.Field): """A marshmallow field for the column's field attribute""" def _validate(self, value): is_valid_column_field_config(value) super()._validate(value) class ColumnInfoSchema(BaseSchema): """The schema of column info that ends up in the zillion column metadata **Attributes:** * **fields** - (*list of ColumnFieldConfigField, optional*) A list of field names or definitions * **allow_type_conversions** - (*bool, optional*) A flag denoting whether additional fields may be inferred from this column based on its column type (such as deriving year from a date). * **type_conversion_prefix** - (*str, optional*) A prefix to apply to all fields defined through automated type conversions. * **disabled_type_conversions** - (*list of str, optional*) A list of type conversion names to disable. * **active** - (*bool, optional*) A flag denoting whether this column is active. * **required_grain** - (*list of str, optional*) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this column. """ fields = mfields.List(ColumnFieldConfigField()) allow_type_conversions = mfields.Boolean(load_default=False) type_conversion_prefix = mfields.String(load_default=None) disabled_type_conversions = mfields.List(mfields.Str, load_default=None) active = mfields.Boolean(load_default=True) required_grain = mfields.List(mfields.Str, load_default=None) class ColumnConfigSchema(ColumnInfoSchema): """The schema of a column configuration""" pass class TableTypeField(mfields.Field): """A field for the type of a table""" def _validate(self, value): is_valid_table_type(value) super()._validate(value) class TableInfoSchema(BaseSchema): """The schema of table info that ends up in the zillion table metadata **Attributes:** * **type** - (*str*) Specifies the TableType * **active** - (*bool, optional*) A flag denoting whether this table is active or not. * **parent** - (*str, optional*) A reference to the full name of a parent table. This impacts the possible join relationships of this table. It is assumed to be safe to join back to any parent or ancestor table via shared keys (the child table must have the primary key of the parent table). * **siblings** - (*list, optional*) A list of references to the full names of sibling tables. This impacts the possible join relationships of this table. It is assumed to be safe to join back to any sibling table via shared keys (the table must have the primary key of the sibling table). * **create_fields** - (*bool, optional*) If true, try to create Field objects from all columns in the table. Specifying the fields in a column config will override this behavior. Metric vs Dimension fields are inferred from the type. It is generally better to be explicit about your fields and field types, but this option provides convenience for special cases, particularly adhoc use cases. * **use_full_column_names** - (*bool, optional*) If True and create_fields is True, fully qualify the created field names using the full table and column names. If false, assume it is safe to simply use the column name as the field name. * **primary_key** - (*list of str*) A list of fields representing the primary key of the table * **incomplete_dimensions** - (*list of str, optional*) If specified, a list of dimensions that are not safe to use for joins. * **priority** - (*int, optional*) Set the priority of this table relative to other tables. All tables default to priority=1. When choosing the best table, lower numbers are considered higher priority. Tables at the same priority level use the length of their TableSet for the given query as the tie-breaker. See `Warehouse._choose_best_table_set`. * **prefix_with** - (*str, optional*) prefix all queries against this Table using SQLAlchemy's prefix_with function. If a query contains multiple tables with prefix_with set, the first in the join takes precedence. """ type = TableTypeField(required=True) active = mfields.Boolean(load_default=True) parent = mfields.Str(load_default=None) siblings = mfields.List(mfields.Str, load_default=None) create_fields = mfields.Boolean(load_default=False) use_full_column_names = mfields.Boolean(load_default=True) primary_key = mfields.List(mfields.Str, required=True) incomplete_dimensions = mfields.List(mfields.Str, load_default=None) priority = mfields.Integer(load_default=1) prefix_with = mfields.Str(load_default=None) class TableConfigSchema(TableInfoSchema): """The schema of a table configuration **Attributes:** * **columns** - (*dict, optional*) A dict mapping of column name to ColumnConfigSchema * **data_url** - (*str, optional*) A url used to download table data if this is an adhoc table * **if_exists** - (*str, optional*) Control whether to replace, fail, or ignore when the table data already exists. * **drop_dupes** - (*bool, optional*) Drop duplicate primary key rows when loading a table from a data_url * **convert_types** - (*dict, optional*) A mapping of column names to types to convert to when loading a table from a data url. The types must be strings representing valid sqlalchemy types. Ex: {"col1": "date", "col2": "integer"} * **primary_key** - (*list of str, optional*) A list of fields representing the primary key of the table * **adhoc_table_options** - (*dict, optional*) A dict of additional params to pass to the adhoc table class as kwargs """ columns = mfields.Dict( keys=mfields.Str(), values=mfields.Nested(ColumnConfigSchema), load_default=None, required=False, ) data_url = mfields.String() if_exists = mfields.String(validate=is_valid_if_exists) drop_dupes = mfields.Boolean(load_default=False) convert_types = mfields.Dict( keys=mfields.Str(), values=mfields.Str(), load_default=None, validate=has_valid_sqlalchemy_type_values, ) primary_key = mfields.List(mfields.String()) adhoc_table_options = mfields.Dict(keys=mfields.Str()) class NLPEmbeddingTextField(mfields.Field): """A marshmallow field for the field's NLP embedding text setting""" def _validate(self, value): is_valid_field_nlp_embedding_text_config(value) super()._validate(value) class FieldMetaNLPConfigSchema(BaseSchema): """The schema of a warehouse's NLP settings in the meta dict **Attributes:** * **enabled** - (*bool, optional*) A flag denoting whether this field should be included in NLP embeddings. * **embedding_text** - (*str or list, optional*) A string or list of texts to use when creating embeddings for this field. If not specified, the field's name will be used. """ enabled = mfields.Boolean(load_default=True) embedding_text = NLPEmbeddingTextField(load_default=None) def check_field_meta_nlp_config(data): """Validate the NLP settings in the meta dict of a field config""" meta = data.get("meta", []) if not meta: return data nlp = meta.get("nlp", None) if not nlp: return data schema = FieldMetaNLPConfigSchema() schema.load(nlp) return data class FieldConfigSchema(BaseSchema): """The base schema of a field configuration **Attributes:** * **name** - (*str*) The name of the field * **type** - (*str*) A string representing the data type of the field. This will be converted to a SQLAlchemy type via `ast.literal_eval`. * **display_name** - (*str, optional*) The display name of the field * **description** - (*str, optional*) The description of the field """ name = mfields.String(required=True, validate=is_valid_field_name) type = mfields.String(load_default=None, validate=is_valid_sqlalchemy_type) display_name = mfields.String( load_default=None, validate=is_valid_field_display_name ) description = mfields.String(load_default=None) @pre_load def _check_meta(self, data, **kwargs): """Validate some particular keys in the meta field if present""" return check_field_meta_nlp_config(data) class FormulaFieldConfigSchema(BaseSchema): """The base schema of a formula field configuration **Attributes:** * **name** - (*str*) The name of the field * **formula** - (*str, optional*) A formula used to compute the field value. Formula fields are applied at the combined query layer, rather than in datasources queries, so the syntax must match that of the combined query layer database. * **display_name** - (*str, optional*) The display name of the field * **description** - (*str, optional*) The description of the field """ name = mfields.String(required=True, validate=is_valid_field_name) formula = mfields.String(required=True) display_name = mfields.String( load_default=None, validate=is_valid_field_display_name ) description = mfields.String(load_default=None) @pre_load def _check_meta(self, data, **kwargs): """Validate some particular keys in the meta field if present""" return check_field_meta_nlp_config(data) class MetricConfigSchemaMixin: """Common attributes and logic for metric configs **Attributes:** * **aggregation** - (*str, optional*) A string representing the aggregation type to apply to this metric. See `zillion.core.AggregationTypes`. * **rounding** - (*int, optional*) If specified, the number of decimal places to round to * **weighting_metric** - (*str, optional*) A reference to a metric to use for weighting when aggregating averages * **technical** - (*str or dict, optional*) A string or dict that will be parsed as a TechnicalField to define a technical computation to be applied to the metric. * **required_grain** - (*list of str, optional*) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this metric. * **ifnull** - (*float, optional*) A numeric value to use in place of NULLs in the Combined Layer query. """ aggregation = mfields.Field( load_default=AggregationTypes.SUM, validate=is_valid_aggregation, ) rounding = mfields.Integer(load_default=None) weighting_metric = mfields.Str(load_default=None) technical = TechnicalField(load_default=None) required_grain = mfields.List(mfields.Str, load_default=None) def _validate_weighting_aggregation(self, data): if ( data["weighting_metric"] and not data["aggregation"] == AggregationTypes.MEAN ): raise ValidationError( 'only "%s" aggregation type is allowed with weighting metrics: %s' % (AggregationTypes.MEAN, data) ) class DivisorsConfigSchema(BaseSchema): """The schema of metric divisor settings **Attributes:** * **metrics** - (*list of str*) A list of metric names to use as divisors * **rounding** - (*int, optional*) If specified, the number of decimal places to round each new metric to. * **name** - (*str, optional*) A template to use for the name where {divisor} can be substituted for the divisor metric name. Defaults to "{metric}_per_{divisor}". It will naively attempt to singularize the divisor name by stripping a trailing 's'. * **formula** - (*str, optional*) A template to use for the formula where {divisor} can be substituted for the divisor metric name. """ metrics = mfields.List(mfields.Str, required=True) rounding = mfields.Integer(load_default=None) name = mfields.String(load_default=None) formula = mfields.String(load_default=None) class DivisorsConfigField(mfields.Field): """The schema of a metric divisors field""" def _validate(self, value): is_valid_divisors_config(value) super()._validate(value) class MetricConfigSchema(FieldConfigSchema, MetricConfigSchemaMixin): """The schema of a metric configuration **Attributes:** * **ifnull** - (*float, optional*) A numeric value to use in place of NULLs in the Combined Layer query. * **divisors** - (*dict, optional*) Divisor config for this metric. This is used to automatically add fields from this metric by dividing by other fields. See DivisorsConfigField for more info on the format. """ ifnull = mfields.Float(load_default=None) divisors = DivisorsConfigField(load_default=None) class FormulaMetricConfigSchema(FormulaFieldConfigSchema, MetricConfigSchemaMixin): """The schema of a formula metric configuration""" pass class DimensionConfigSchemaMixin: """Common attributes and logic for dimension configs **Attributes:** * **values** - (*str or list, optional*) A list of allowed dimension values or a name of a callable to provide a list of values. If a string representing a callable is passed, it must be importable and the callable must accept two arguments: (warehouse ID, dimension object). An example callable would be `zillion.field.values_from_db` which reads allowed dimension values from the dimension_values table in the Zillion database. * **sorter** - (*str, optional*) A reference to an importable callable that accepts three arguments: (warehouse ID, dimension object, values). Currently values is a pandas Series and the callable is expected to return a Series. See `zillion.field.sort_by_value_order` for an example. """ values = DimensionValuesField(load_default=None) sorter = mfields.Str(load_default=None) class DimensionConfigSchema(FieldConfigSchema, DimensionConfigSchemaMixin): """The schema of a dimension configuration""" pass class FormulaDimensionConfigSchema( FormulaFieldConfigSchema, DimensionConfigSchemaMixin ): """The schema of a formula dimension configuration""" pass class AdHocFieldSchema(FormulaFieldConfigSchema): """Base schema for an adhoc field""" pass class AdHocMetricSchema(AdHocFieldSchema): """The schema of an adhoc metric **Attributes:** * **aggregation** - (*str, optional*) A string representing the aggregation type to apply to this metric. See `zillion.core.AggregationTypes`. * **technical** - (*str or dict, optional*) A string or dict that will be parsed as a TechnicalField to define a technical computation to be applied to the metric. * **rounding** - (*int, optional*) If specified, the number of decimal places to round to * **weighting_metric** - (*str, optional*) A reference to a metric to use for weighting when aggregating averages * **required_grain** - (*list of str, optional*) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this metric. """ aggregation = mfields.String( load_default=AggregationTypes.SUM, validate=is_valid_aggregation, ) technical = TechnicalField(load_default=None) rounding = mfields.Integer(load_default=None) weighting_metric = mfields.Str(load_default=None) required_grain = mfields.List(mfields.Str, load_default=None) class TableNameField(mfields.Str): """The schema of a table configuration represented as a marshmallow Field""" def _validate(self, value): is_valid_table_name(value) super()._validate(value) class DataSourceConnectSchema(BaseSchema): """The schema of a technical configuration""" func = mfields.String( validate=is_valid_connect_type, load_default=DATASOURCE_CONNECT_FUNC_DEFAULT, ) params = mfields.Dict(keys=mfields.Str(), load_default=None) class DataSourceConnectField(mfields.Field): """The schema of a datasource connect field""" def _validate(self, value): is_valid_datasource_connect(value) super()._validate(value) def check_metric_configs(data): """Create and augment metrics as needed""" final = [] metrics = data.get("metrics", []) for metric in metrics: final.extend(get_aggregation_metrics(metric)) for metric in final[:]: # If a metric has a technical, its aggregation might be implicit or not directly defined. # We should skip the aggregation check for technical metrics. if "technical" in metric: continue # TODO: if "aggregation" is not present, fail integrity check! if ( metric.get("aggregation") == AggregationTypes.MEAN ): # Use .get to avoid KeyError continue final.extend(get_divisor_metrics(metric)) data["metrics"] = final return data class DataSourceConfigSchema(BaseSchema): """The schema of a datasource configuration **Attributes:** * **connect** - (*str or dict*) A connection string or dict for establishing the datasource connection. This may have placeholders that get filled in from the DATASOURCE_CONTEXTS of the zillion config. See DataSourceConnectField for more details on passing a dict. * **skip_conversion_fields** - (*bool, optional*) Don't add any conversion fields when applying a config * **prefix_with** - (*str, optional*) prefix all queries against this DataSource using SQLAlchemy's prefix_with function. The table-level prefix_with setting overrides this setting. * **metrics** - (*marshmallow field, optional*) A list of MetricConfigSchema * **dimensions** - (*marshmallow field, optional*) A list of DimensionConfigSchema * **tables** - (*marshmallow field, optional*) A dict mapping of TableNameField -> TableConfigSchema """ connect = DataSourceConnectField(load_default=None) skip_conversion_fields = mfields.Boolean(load_default=False) prefix_with = mfields.Str(load_default=None) metrics = mfields.List(PolyNested([MetricConfigSchema, FormulaMetricConfigSchema])) dimensions = mfields.List( PolyNested([DimensionConfigSchema, FormulaDimensionConfigSchema]) ) tables = mfields.Dict( keys=TableNameField(), values=mfields.Nested(TableConfigSchema) ) @pre_load def _check_table_refs(self, data, **kwargs): """Load remote table configs before processing""" for table_name, table_config in data.get("tables", {}).items(): if not isinstance(table_config, str): continue raw = read_filepath_or_buffer(table_config) config = load_json_or_yaml_from_str( raw, f=table_config, schema=TableConfigSchema() ) data["tables"][table_name] = config return data @pre_load def _check_metrics(self, data, **kwargs): """Create and augment metrics as needed""" return check_metric_configs(data) class DataSourceConfigField(mfields.Field): """The schema of a datasource configuration represented as a marshmallow Field""" def _validate(self, value): is_valid_datasource_config(value) super()._validate(value) class WarehouseMetaNLPConfigSchema(BaseSchema): """The schema of a warehouse's NLP settings in the meta dict **Attributes:** * **collection_name** - (*str, optional*) The name of the field embedding collection. If not provided the collection name will be set based on the warehouse name or as a fallback name if no warehouse name has been set. * **field_disabled_patterns** - (*list of str, optional*) A list of regex patterns to control which fields to exclude from NLP processing. * **field_disabled_groups** - (*list of str, optional*) A list of group names to control which fields to exclude from NLP processing based on the field's `meta["group"]` setting if present. """ collection_name = mfields.Str(load_default=None) field_disabled_patterns = mfields.List(mfields.Str(), load_default=None) field_disabled_groups = mfields.List(mfields.Str(), load_default=None) class WarehouseConfigSchema(BaseSchema): """The schema of a warehouse configuration. **Attributes:** * **includes** - (*marshmallow field, optional*) A list of warehouse files to import. Later items in the list will override earlier items for overlapping keys. Any settings in the warehouse config will take precedence. * **metrics** - (*marshmallow field, optional*) A list of MetricConfigSchema * **dimensions** - (*marshmallow field, optional*) A list of DimensionConfigSchema * **datasources** - (*marshmallow field*) A dict mapping of datasource name -> DataSourceConfigField """ includes = mfields.List(mfields.Str(), load_default=None) metrics = mfields.List(PolyNested([MetricConfigSchema, FormulaMetricConfigSchema])) dimensions = mfields.List( PolyNested([DimensionConfigSchema, FormulaDimensionConfigSchema]) ) datasources = mfields.Dict( keys=mfields.Str(), values=DataSourceConfigField, required=True ) @pre_load def _check_meta(self, data, **kwargs): """Validate some particular keys in the meta field if present""" meta = data.get("meta", []) if not meta: return data nlp = meta.get("nlp", None) if not nlp: return data schema = WarehouseMetaNLPConfigSchema() schema.load(nlp) return data @pre_load def _check_includes(self, data, **kwargs): """Load included warehouse configs as baseline, merge in later includes and settings in this config as overrides""" includes = data.get("includes", []) if not includes: return data for fname in includes.copy(): raw = read_filepath_or_buffer(fname) config = load_json_or_yaml_from_str(raw, f=fname) data = dictmerge(config, data, overwrite=True, extend=True) return data @pre_load def _check_ds_refs(self, data, **kwargs): """Load remote datasource configs before processing""" for ds_name, ds_config in data.get("datasources", {}).items(): if not isinstance(ds_config, str): continue raw = read_filepath_or_buffer(ds_config) config = load_json_or_yaml_from_str( raw, f=ds_config, schema=DataSourceConfigSchema() ) data["datasources"][ds_name] = config return data @pre_load def _check_metrics(self, data, **kwargs): """Create and augment metrics as needed""" return check_metric_configs(data) class ConfigMixin: """Mixin to allow validation against a marshmallow schema""" schema = None def __init__(self, *args, **kwargs): """Validate the object against a marshmallow schema""" raiseifnot(self.schema, "ConfigMixin requires a schema attribute") self.schema().load(self.__dict__, unknown=EXCLUDE) def to_config(self): """Get the config for this object""" return self.schema().load(self.__dict__, unknown=EXCLUDE) @classmethod def from_config(cls, config): """Create a the object from a config""" return cls(**config) class ZillionInfo(MappingMixin): """Information that defines a part of the zillion configuration. The information may come from a JSON config file or directly from the SQLALchemy object's `info.zillion` attribute. The JSON schema is parsed with a marshmallow schema object. See the particular schema used with each subclass for details on fields. **Parameters:** * **kwargs** - Parameters that will be parsed with the given marshmallow schema. **Attributes:** * **schema** - (*marshmallow schema*) A class attribute that specifies the marshmallow schema used to parse the input args on init. """ schema = None @initializer def __init__(self, **kwargs): raiseifnot(self.schema, "ZillionInfo subclass must have a schema defined") self.schema().load(self) @classmethod def schema_validate(cls, zillion_info, unknown=RAISE): """Validate an info dict against a schema. **Parameters:** * **zillion_info** - (*dict*) A dict to validate against the schema * **unknown** - (*optional*) A flag passed through to marshmallow's schema processing """ return cls.schema(unknown=unknown).validate(zillion_info) @classmethod def schema_load(cls, zillion_info, unknown=RAISE): """Load an info dict with a marshmallow schema **Parameters:** * **zillion_info** - (*dict*) A dict to load with the schema * **unknown** - (*optional*) A flag passed through to marshmallow's schema processing **Returns:** (*dict*) - The loaded schema result """ return cls.schema().load(zillion_info, unknown=unknown) @classmethod def create(cls, zillion_info, unknown=RAISE): """Factory to create a ZillionInfo object from the class schema""" if isinstance(zillion_info, cls): return zillion_info raiseifnot( isinstance(zillion_info, dict), "Raw info must be a dict: %s" % zillion_info ) zillion_info = cls.schema().load(zillion_info, unknown=unknown) return cls(**zillion_info) class TableInfo(ZillionInfo, PrintMixin): """ZillionInfo for a table. See TableInfoSchema for more details about fields.""" repr_attrs = ["type", "active", "create_fields", "parent", "priority"] schema = TableInfoSchema class ColumnInfo(ZillionInfo, PrintMixin): """ZillionInfo for a column in a table. See ColumnInfoSchema for more details about fields.""" repr_attrs = ["fields", "active"] schema = ColumnInfoSchema def __init__(self, **kwargs): super(ColumnInfo, self).__init__(**kwargs) self._field_map = OrderedDict() for field in self.fields: self._add_field_to_map(field) def has_field(self, field): """Determine if the column supports the given field""" if not isinstance(field, str): field = field["name"] if field in self._field_map: return True return False def add_field(self, field): """Add the field to the column's fields""" self._add_field_to_map(field) self.fields.append(field) def get_field(self, name): """Get the reference to the field defined on this column. This may return a string or a dict depending on how the field was defined on the column. **Parameters:** * **name** - (*str*) The name of the field **Returns:** (*str or dict*) - The name of the field or the dict defining the field """ raiseifnot(self.has_field(name), "Field %s is not in column fields" % name) return self._field_map[name] or name def get_fields(self): """Get all fields mapped on this column""" return {k: v for k, v in self._field_map.items()} def get_field_names(self): """Get the names of all fields mapped on this column""" return self._field_map.keys() def field_ds_formula(self, name): """Get the datasource-level formula for a field if it exists""" field = self.get_field(name) if isinstance(field, str): return None return field.get("ds_formula", None) def has_field_ds_formula(self, name): """True if a datasource-level formula for a field exists""" field = self.get_field(name) if isinstance(field, str): return False formula = field.get("ds_formula", None) return True if formula else False def get_criteria_conversion(self, field_name, operation): """Get the datasource-level criteria conversion for a field/operation""" field = self.get_field(field_name) if not isinstance(field, dict): return None convs = field.get("ds_criteria_conversions", None) if not convs: return None return convs.get(operation, None) def _add_field_to_map(self, field): """Add to the map of fields on this column""" raiseif(self.has_field(field), "Field %s is already added" % field) if isinstance(field, str): self._field_map[field] = None else: raiseifnot( isinstance(field, dict) and "name" in field, "Invalid field config: %s" % field, ) self._field_map[field["name"]] = field # TODO: might be a better home for some of the Technical stuff class Technical(MappingMixin, PrintMixin): """A technical computation on a DataFrame column **Parameters:** * **type** - (*str*) The TechnicalType * **params** - (*dict*) Params for the technical computation * **mode** - (*str*) The mode that controls how to apply the technical computation across the data's dimensions. See TechnicalModes for options. If None, the default mode will be set based on the technical type. **Attributes:** * **allowed_params** - (*set*) Define the allowed technical parameters """ repr_attrs = ["type", "params", "mode"] allowed_params = set() @initializer def __init__(self, type, params, mode=None): if mode is None: self.mode = self.get_default_mode() raiseifnot( self.mode in TechnicalModes, "Invalid Technical mode: %s" % self.mode ) self._check_params(params) @classmethod def _check_params(cls, params): """Validate the technical params""" if not params: return for k, v in params.items(): if k not in cls.allowed_params: raise InvalidTechnicalException("Invalid param for %s: %s" % (cls, k)) @classmethod def parse_technical_string_params(cls, val): """Return named params from a technical string""" ttype, params, mode = _extract_technical_string_parts(val) if params: raise InvalidTechnicalException( "Invalid %s technical string: %s, no args allowed" % (ttype, val) ) return {} @classmethod def get_default_mode(cls): """Get the default mode for applying the technical calculation""" return TechnicalModes.GROUP def _apply(self, df_slice, column, rounding=None): """Apply the technical computation along a target slice of a dataframe""" raise NotImplementedError def apply(self, df, column, rounding=None): """Apply a technical computation to a dataframe. If the dataframe has a multilevel index and the technical is being applied in group mode, then the data will be sliced along the second to last level and the technical applied to each subgroup. Otherwise the technical is applied across the entire dataframe. The technical is applied to the dataframe in place. **Parameters:** * **df** - (*DataFrame*) A DataFrame to apply a technical computation to * **column** - (*str*) The name of the target column for the technical computation * **rounding** - (*dict, optional*) The rounding settings for the report's columns """ if df.empty: return if self.type == TechnicalTypes.BOLL: # Special handling for BollingerTechnical if self.mode == TechnicalModes.GROUP and hasattr(df.index, "levels"): group_by_level = list(range(df.index.nlevels - 1)) if not group_by_level: df_result = self._apply(df, column, rounding=rounding) df.loc[:, df_result.columns] = ( df_result # Assign back to original df ) return # Collect modified groups modified_groups = [] for name, group in df.groupby(level=group_by_level): modified_groups.append( self._apply(group, column, rounding=rounding) ) # Concatenate modified groups and assign back to original df df_result = pd.concat(modified_groups) df.loc[:, df_result.columns] = df_result.reindex(df.index) else: df_result = self._apply(df, column, rounding=rounding) df.loc[:, df_result.columns] = df_result else: # For other technicals, use transform if self.mode == TechnicalModes.GROUP and hasattr(df.index, "levels"): group_by_level = list(range(df.index.nlevels - 1)) if not group_by_level: df[column] = self._apply(df, column, rounding=rounding) return df[column] = df.groupby(level=group_by_level)[column].transform( lambda x: self._apply(x, column, rounding=rounding) ) else: df[column] = self._apply(df[column], column, rounding=rounding) class PandasTechnical(Technical): """A generic Technical runs a pandas method""" def _apply(self, df_or_series_slice, column, rounding=None): """This assumes the Technical type string matches the pandas method name""" if isinstance(df_or_series_slice, pd.DataFrame): series_to_operate_on = df_or_series_slice[df_or_series_slice.columns[0]] else: # It's a Series series_to_operate_on = df_or_series_slice method = getattr(series_to_operate_on, self.type.lower()) return method(**self.params) class RankTechnical(PandasTechnical): """A Technical specific to the pandas rank function""" def _apply(self, df_or_series_slice, column, rounding=None): params = {} if self.type == TechnicalTypes.PCT_RANK: params = {"pct": True} if isinstance(df_or_series_slice, pd.DataFrame): series_to_operate_on = df_or_series_slice[df_or_series_slice.columns[0]] else: # It's a Series series_to_operate_on = df_or_series_slice return series_to_operate_on.rank(**params) class DiffTechnical(PandasTechnical): """A Technical that computes a periodic diff on a DataFrame""" allowed_params = set(["periods"]) @classmethod def parse_technical_string_params(cls, val): """Return named params from a technical string""" ttype, params, mode = _extract_technical_string_parts(val) if len(params) > 1: raise InvalidTechnicalException( "Invalid %s technical string: %s, only 1 arg allowed" % (ttype, val) ) if params and params[0] is not None: return dict(periods=int(params[0])) return {} class RollingTechnical(Technical): """A Technical that uses the pandas rolling feature""" allowed_params = set(["window", "min_periods", "center"]) def _apply(self, df_or_series_slice, column, rounding=None): """Apply a rolling function to a column of a DataFrame""" if isinstance(df_or_series_slice, pd.DataFrame): series_to_operate_on = df_or_series_slice[df_or_series_slice.columns[0]] else: # It's a Series series_to_operate_on = df_or_series_slice rolling = series_to_operate_on.rolling(**self.params) method = getattr(rolling, self.type.lower()) return method() @classmethod def parse_technical_string_params(cls, val): """Return named params from a technical string""" ttype, params, mode = _extract_technical_string_parts(val) if len(params) not in (1, 2): raise InvalidTechnicalException( "Invalid %s technical string: %s, 1 or 2 args allowed" % (ttype, val) ) result = dict(window=int(params[0]), min_periods=1) if len(params) == 2: result["min_periods"] = int(params[1]) return result class BollingerTechnical(RollingTechnical): """Compute a rolling average and bollinger bands for a column. This adds additional columns to the input dataframe.""" def _apply(self, df_slice, column, rounding=None): # df_slice is now a DataFrame (either the whole df or a group) # We need to operate on the column within this df_slice original_column_name = df_slice.columns[0] series_to_operate_on = df_slice[original_column_name] rolling = series_to_operate_on.rolling(**self.params) ma = rolling.mean() std = rolling.std() lower = ma - 2 * std upper = ma + 2 * std col_lower = column + "_lower" col_upper = column + "_upper" # Modify df_slice in place df_slice[column] = ma if ( rounding and original_column_name in rounding ): # Use original_column_name for rounding key df_slice[col_lower] = round(lower, rounding[original_column_name]) df_slice[col_upper] = round(upper, rounding[original_column_name]) else: df_slice[col_lower] = lower df_slice[col_upper] = upper return df_slice ROLLING_TECHNICALS = set( [ TechnicalTypes.MEAN, TechnicalTypes.SUM, TechnicalTypes.MEDIAN, TechnicalTypes.MIN, TechnicalTypes.MAX, TechnicalTypes.STD, TechnicalTypes.VAR, TechnicalTypes.BOLL, ] ) DIFF_TECHNICALS = set([TechnicalTypes.DIFF, TechnicalTypes.PCT_CHANGE]) RANK_TECHNICALS = set([TechnicalTypes.RANK, TechnicalTypes.PCT_RANK]) TECHNICAL_CLASS_MAP = defaultdict(lambda: PandasTechnical) TECHNICAL_CLASS_MAP.update({k: RollingTechnical for k in ROLLING_TECHNICALS}) TECHNICAL_CLASS_MAP.update({k: DiffTechnical for k in DIFF_TECHNICALS}) TECHNICAL_CLASS_MAP.update({k: RankTechnical for k in RANK_TECHNICALS}) TECHNICAL_CLASS_MAP[TechnicalTypes.BOLL] = BollingerTechnical def _extract_technical_string_parts(val): """Extract params for a technical from shorthand string General format: TYPE(PARAM1, ...):MODE Params and mode are optional. """ params = [] mode = None if ":" in val: tech_params, mode = val.split(":") else: tech_params = val if "(" in tech_params: parts = tech_params.rstrip(")").split("(") ttype = parts[0] params = [x.strip() for x in parts[1].split(",") if x] else: ttype = tech_params raiseifnot(ttype, "No technical type could be parsed from string: %s" % val) return ttype, params, mode def parse_technical_string(val): """Parse Technical args from a shorthand string **Parameters:** * **val** - (*str*) The technical string to parse. The general format is: `type(*args):mode`. The type must be a valid value in TechnicalTypes. The argument requirements vary by type, and are optional in some cases. The mode controls whether the computation is done across the last group or the full data. The mode is optional, and will default to a value specific to that technical type (usually "group" mode). Examples: * "mean(5)" for moving average, window=5 * "mean(5,2)" for moving average, window=5, min_period=2 * "cumsum" for cumulative sum (no args) * "cumsum:all" for cumulative sum across all data, regardless of dimension **Returns:** (*dict*) - A dict of Technical args """ ttype, params, mode = _extract_technical_string_parts(val) if not ttype in TechnicalTypes: raise InvalidTechnicalException("Invalid technical type: %s" % ttype) result = dict(type=ttype, params={}, mode=mode) cls = TECHNICAL_CLASS_MAP[ttype] result["params"] = cls.parse_technical_string_params(val) return result def create_technical(info): """Create a technical instance from the input object **Parameters:** * **info** - (*str or dict*) If str, parse as atechnical string. If a dict, parse as TechnicalInfoSchema. **Returns:** (*Technical*) - A Technical object based on the input. """ if isinstance(info, Technical): return info if isinstance(info, str): info = parse_technical_string(info) raiseifnot(isinstance(info, dict), "Raw info must be a dict: %s" % info) info = TechnicalInfoSchema().load(info) if info["type"] not in TechnicalTypes: raise InvalidTechnicalException("Invalid technical type: %s" % info["type"]) cls = TECHNICAL_CLASS_MAP[info["type"]] return cls(info["type"], info.get("params", {}), info.get("mode", None)) ================================================ FILE: zillion/core.py ================================================ # pylint: disable=unused-import,missing-class-docstring from collections.abc import MutableMapping from itertools import chain, combinations import logging import os import requests import sys import time nlp_installed = False try: import langchain import qdrant_client nlp_installed = True except ImportError: pass from tlbx import ( st, dbg as _dbg, dbgsql as _dbgsql, info as _info, warn as _warn, error as _error, pf, pp, format_msg, sqlformat, rmfile, get_caller, open_filepath_or_buffer, get_string_format_args, json, chunks, iter_or, is_int, orderedsetify, initializer, PrintMixin, MappingMixin, ClassValueContainsMeta, get_class_var_values, get_class_vars, import_object, ) import yaml # Last unicode char - this helps get the rollup rows to sort last, but may # need to be replaced for presentation. ROLLUP_INDEX_LABEL = chr(1114111) # HACK: pandas can't group MultiIndex NaN values, so we replace them with a # value we *hope* to never see in the index as a workaround. NAN_DIMENSION_VALUE_LABEL = chr(1114110) # This is more friendly for front-end viewing, but has a better chance of # conflicting with actual report data. ROLLUP_INDEX_DISPLAY_LABEL = "::" ADHOC_DS_URL = "adhoc" # A placeholder to denote its an adhoc datasource RESERVED_FIELD_NAMES = set(["row_hash"]) DEFAULT_REPLACE_AFTER = "1 days" CRITERIA_OPERATIONS = set( [ ">", ">=", "<", "<=", "=", "!=", "in", "not in", "in report", "not in report", "between", "not between", "like", "not like", ] ) ROW_FILTER_OPERATIONS = set([">", ">=", "<", "<=", "=", "!="]) class ZillionException(Exception): pass class InvalidTechnicalException(ZillionException): pass class WarehouseException(ZillionException): pass class InvalidWarehouseIdException(ZillionException): pass class ReportException(ZillionException): pass class InvalidReportIdException(ZillionException): pass class UnsupportedGrainException(ZillionException): pass class UnsupportedKillException(ZillionException): pass class FailedKillException(ZillionException): pass class DataSourceQueryTimeoutException(ZillionException): pass class ExecutionKilledException(ZillionException): pass class ExecutionLockException(ZillionException): pass class InvalidFieldException(ZillionException): pass class InvalidDimensionValueException(ZillionException): pass class DisallowedSQLException(ZillionException): pass class MaxFormulaDepthException(ZillionException): pass class FieldTypes(metaclass=ClassValueContainsMeta): """Allowed field types""" DIMENSION = "dimension" METRIC = "metric" class TableTypes(metaclass=ClassValueContainsMeta): """Allowed table types""" DIMENSION = "dimension" METRIC = "metric" class AggregationTypes(metaclass=ClassValueContainsMeta): """Allowed aggregation types. These aggregations are limited by what can be done in most SQL databases""" MEAN = "mean" SUM = "sum" MIN = "min" MAX = "max" COUNT = "count" COUNT_DISTINCT = "count_distinct" class TechnicalTypes(metaclass=ClassValueContainsMeta): """Allowed technical types""" MEAN = "mean" SUM = "sum" MEDIAN = "median" STD = "std" VAR = "var" MIN = "min" MAX = "max" BOLL = "boll" DIFF = "diff" PCT_CHANGE = "pct_change" CUMSUM = "cumsum" CUMMIN = "cummin" CUMMAX = "cummax" RANK = "rank" PCT_RANK = "pct_rank" class TechnicalModes(metaclass=ClassValueContainsMeta): """Allowed Technical modes **Attributes:** * **GROUP** - (*str*) Apply the technical to the last grouping of the data for a multi-dimensional report * **ALL** - (*str*) Apply the technical across all result data """ GROUP = "group" ALL = "all" class RollupTypes(metaclass=ClassValueContainsMeta): """Allowed Rollup Types""" TOTALS = "totals" ALL = "all" class OrderByTypes(metaclass=ClassValueContainsMeta): """Allowed Order By Types""" ASC = "asc" DESC = "desc" class DataSourceQueryModes(metaclass=ClassValueContainsMeta): """Allowed datasource query modes""" SEQUENTIAL = "sequential" MULTITHREAD = "multithread" class ExecutionState: """Allowed report/query execution states""" READY = "ready" QUERYING = "querying" KILLED = "killed" class IfExistsModes(metaclass=ClassValueContainsMeta): """Allowed modes when creating tables from data. This is based off of pandas `if_exists` param in the `DataFrame.to_sql` method, with the addition of an "ignore" option. The "append" option is also removed for now since there isn't a safe/generic way to guarantee a proper primary key has been set on the table.""" FAIL = "fail" REPLACE = "replace" # APPEND = "append" IGNORE = "ignore" class IfFileExistsModes(IfExistsModes): """An extension of the modes above specific to downloaded files. This allows the config to specify that a downloaded file should be replaced after a certain amount of time. See code that uses this for implementation details. """ REPLACE_AFTER = "replace_after" # ---- TODO: move below to utils file def powerset(iterable, max_combo_len=None): """powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)""" s = list(iterable) if max_combo_len is None: max_combo_len = len(s) return chain.from_iterable(combinations(s, r) for r in range(max_combo_len + 1)) def raiseif(cond, msg="", exc=ZillionException): """Convenience assert-like utility""" if cond: raise exc(msg) def raiseifnot(cond, msg="", exc=ZillionException): """Convenience assert-like utility""" if not cond: raise exc(msg) def igetattr(obj, attr, *args): """Case-insensitive getattr""" for a in dir(obj): if a.lower() == attr.lower(): return getattr(obj, a) if args: return args[0] raise AttributeError("type object '%s' has no attribute '%s'" % (type(obj), attr)) def read_filepath_or_buffer(f, open_flags="r", compression=None): """Open and read files or buffers, local or remote""" f, handles, close = open_filepath_or_buffer( f, open_flags=open_flags, compression=compression ) try: data = f.read() finally: if close: try: f.close() except ValueError: pass return data def download_file(url, outfile=None): """Utility to download a datafile""" if not outfile: outfile = url.split("/")[-1] dbg("Downloading %s to %s" % (url, outfile)) with requests.get(url, stream=True) as r: r.raise_for_status() with open(outfile, "wb") as f: for chunk in r.iter_content(chunk_size=8192): f.write(chunk) return outfile def get_modified_time(fname): """Utility to get the modified time of a file""" return os.stat(fname).st_mtime def get_time_since_modified(fname): """Utility to get the time since a file was last modified""" return time.time() - get_modified_time(fname) def load_yaml(fname): """Wrapper to safe_load that also expands environment vars""" with open(fname) as f: val = yaml.safe_load(os.path.expandvars(f.read())) return val def load_json_or_yaml_from_str(string, f=None, schema=None): """Load the file as json or yaml depending on the extension (if f is a string) or by trying both (if f is not a string). If you know ahead of time that your data is one or the other, you should use yaml or json load directly. **Parameters:** * **string** - (*str*) The raw json or yaml string * **f** - (*str or buffer*) A file path or buffer where contents were read from * **schema** - (*optional*) Validate against this schema **Returns:** (*dict*) - A dict structure loaded from the json/yaml """ load_result = None if f and isinstance(f, str): # f is assumed to be a filename f = f.lower() if f.endswith("yaml") or f.endswith("yml"): load_result = yaml.safe_load(string) elif f.endswith("json"): load_result = json.loads(string) if load_result is None: # f is not a filename, we try json and then fall back to yaml try: load_result = json.loads(string) except Exception as ej: try: load_result = yaml.safe_load(string) except Exception as ey: raise Exception("Could not load string as json or yaml") if schema: return schema.load(load_result) return load_result def dictmerge(x, y, path=None, overwrite=False, extend=False): """Adapted version of tlbx's dictmerge that supports extending lists""" if path is None: path = [] for key in y: if key in x: if isinstance(x[key], (dict, MutableMapping)) and isinstance( y[key], (dict, MutableMapping) ): dictmerge( x[key], y[key], path + [str(key)], overwrite=overwrite, extend=extend, ) elif x[key] == y[key]: pass # same leaf value else: if not overwrite: raise Exception("Conflict at %s" % ".".join(path + [str(key)])) if isinstance(x[key], list) and isinstance(y[key], list) and extend: x[key].extend(y[key]) else: x[key] = y[key] else: x[key] = y[key] return x def load_zillion_config(): """If the ZILLION_CONFIG environment variable is defined, read the YAML config from this file. Environment variable substitution is supported in the yaml file. Otherwise return a default config. Environment variables prefixed with "ZILLION_" will also be read in (with the prefix stripped) and take precedence. **Returns:** (*dict*) - The zillion config dict. """ zillion_config_fname = os.environ.get("ZILLION_CONFIG", None) if zillion_config_fname: # Load with support for filling in env var values config = load_yaml(zillion_config_fname) for k, v in config.copy().items(): # Hack: some older config items had ZILLION prefixed. As a workaround # we now always remove that prefix and map to the key without the prefix. if k.startswith("ZILLION_"): config[k.replace("ZILLION_", "")] = v del config[k] else: # Check if dev_config.yml exists in the current or parent directory dev_config_path = None for path in [os.getcwd(), os.path.dirname(os.getcwd())]: potential_path = os.path.join(path, "dev_config.yml") if os.path.exists(potential_path): dev_config_path = potential_path break if dev_config_path: print(f"No ZILLION_CONFIG specified, using {dev_config_path}") config = load_yaml(dev_config_path) else: print("No ZILLION_CONFIG specified, using default settings") config = dict( DEBUG=False, LOG_LEVEL="WARNING", DB_URL="sqlite:////tmp/zillion.db", ADHOC_DATASOURCE_DIRECTORY="/tmp", LOAD_TABLE_CHUNK_SIZE=5000, OPENAI_API_KEY=None, OPENAI_MODEL="gpt-3.5-turbo", QDRANT_HOST=None, DATASOURCE_QUERY_MODE=DataSourceQueryModes.SEQUENTIAL, DATASOURCE_QUERY_TIMEOUT=None, DATASOURCE_MAX_JOIN_CANDIDATES=100, DATASOURCE_MAX_JOINS=None, DATASOURCE_CONTEXTS={}, ) for k, v in os.environ.items(): if k.startswith("ZILLION_"): config[k.replace("ZILLION_", "")] = v if isinstance(config.get("DATASOURCE_CONTEXTS", None), str): config["DATASOURCE_CONTEXTS"] = load_json_or_yaml_from_str( config["DATASOURCE_CONTEXTS"] ) return config zillion_config = load_zillion_config() def get_zillion_config_log_level(): return getattr(logging, zillion_config.get("LOG_LEVEL", "WARNING").upper()) default_logger = logging.getLogger("zillion") def set_log_level_from_config(cfg): global default_logger if str(cfg.get("DEBUG", "false")).lower() in ("true", "1"): # Make sure logs can show up in testing handler = logging.StreamHandler(sys.stdout) default_logger.handlers = [] default_logger.propagate = False default_logger.addHandler(handler) default_logger.setLevel(logging.DEBUG) print("---- Zillion debug logging enabled ----") else: default_logger.setLevel(get_zillion_config_log_level()) set_log_level_from_config(zillion_config) def set_log_level(level): """Set the log level for the zillion logger""" global default_logger default_logger.setLevel(level) def dbg(msg, **kwargs): """Call tlbx dbg with zillion logger""" kwargs["logger"] = kwargs.get("logger", default_logger) kwargs["label"] = kwargs.get("label", get_caller()) _dbg(msg, **kwargs) def dbgsql(msg, **kwargs): """Call tlbx dbgsql with zillion logger""" kwargs["logger"] = kwargs.get("logger", default_logger) kwargs["label"] = kwargs.get("label", get_caller()) _dbgsql(msg, **kwargs) def info(msg, **kwargs): """Call tlbx info with zillion logger""" kwargs["logger"] = kwargs.get("logger", default_logger) kwargs["label"] = kwargs.get("label", get_caller()) _info(msg, **kwargs) def warn(msg, **kwargs): """Call tlbx warn with zillion logger""" kwargs["logger"] = kwargs.get("logger", default_logger) kwargs["label"] = kwargs.get("label", get_caller()) _warn(msg, **kwargs) def error(msg, **kwargs): """Call tlbx error with zillion logger""" kwargs["logger"] = kwargs.get("logger", default_logger) kwargs["label"] = kwargs.get("label", get_caller()) _error(msg, **kwargs) ================================================ FILE: zillion/datasource.py ================================================ from collections import defaultdict import datetime import os import random from urllib.parse import urlparse, urlunparse, parse_qs import pandas as pd from pandas.io.sql import SQLTable, pandasSQL_builder import networkx as nx from ordered_set import OrderedSet import sqlalchemy as sa from zillion.configs import ( load_datasource_config, DATASOURCE_NAME_ALLOWED_CHARS, DATASOURCE_NAME_ALLOWED_CHARS_STR, TableInfo, ColumnInfo, DataSourceConnectSchema, TableConfigSchema, default_field_name, default_field_display_name, table_safe_name, is_valid_field_name, is_valid_datasource_criteria_conversions, is_active, EXCLUDE, ) from zillion.core import * from zillion.field import ( Metric, Dimension, get_table_metrics, get_table_fields, get_table_field_column, get_dialect_type_conversions, table_field_allows_grain, FieldManagerMixin, ) from zillion.nlp import get_nlp_table_info from zillion.sql_utils import ( column_fullname, contains_sql_keywords, infer_aggregation_and_rounding, is_probably_metric, get_schema_and_table_name, get_schemas, filter_dialect_schemas, check_metadata_url, type_string_to_sa_type, ) DEFAULT_DB_ENGINE_POOL_SIZE = 10 DEFAULT_DB_ENGINE_MAX_OVERFLOW = 20 def entity_name_from_file(filename): return os.path.basename(filename.split("?")[0]).split(".")[0] def get_ds_config_context(name): """Helper to get datasource context from the zillion config""" return zillion_config.get("DATASOURCE_CONTEXTS", {}).get(name, {}) def populate_url_context(url, ds_name): """Helper to do variable replacement in URLs""" ds_config_context = get_ds_config_context(ds_name) if get_string_format_args(url): url = url.format(**ds_config_context) return url def get_engine_extra_kwargs(url): """Get the extra kwargs for the SQLAlchemy engine based on the URL""" if "sqlite" in url: return {} return { "pool_size": zillion_config.get( "DB_ENGINE_POOL_SIZE", DEFAULT_DB_ENGINE_POOL_SIZE ), "max_overflow": zillion_config.get( "DB_ENGINE_MAX_OVERFLOW", DEFAULT_DB_ENGINE_MAX_OVERFLOW ), } def connect_url_to_metadata(url, ds_name=None): """Create a bound SQLAlchemy MetaData object from a database URL. The ds_name param is used to determine datasource config context for variable substitution.""" if ds_name: url = populate_url_context(url, ds_name) check_metadata_url(url) metadata = sa.MetaData() metadata.bind = sa.create_engine( url, pool_pre_ping=True, **get_engine_extra_kwargs(url), ) return metadata def parse_replace_after(replace_after): """Parse a case-insensitive interval string of the format "number interval". The number may be a float, and the inverval options are: seconds, minutes, hours, days, weeks. """ parts = replace_after.lower().strip().split() raiseifnot( len(parts) == 2, "Invalid replace_after format: '%s' expected: 'number interval'", ) multipliers = dict( seconds=1, minutes=60, hours=60 * 60, days=24 * 60 * 60, weeks=7 * 24 * 60 * 60 ) try: num = float(parts[0]) except ValueError: raise ZillionException("Invalid replace_after numeric value: %s" % parts[0]) try: multiplier = multipliers[parts[1]] except KeyError: raise ZillionException("Invalid replace_after interval value: %s" % parts[1]) return num * multiplier def data_url_to_metadata( data_url, ds_name, if_exists=IfFileExistsModes.FAIL, replace_after=DEFAULT_REPLACE_AFTER, ): """Create a bound SQLAlchemy MetaData object from a data URL. The ds_name param is used to determine datasource config context for variable substitution.""" dbfile = get_adhoc_datasource_filename(ds_name) skip = False if os.path.isfile(dbfile): raiseif(if_exists == IfFileExistsModes.FAIL, "File %s already exists" % dbfile) if if_exists == IfFileExistsModes.IGNORE: skip = True if if_exists == IfFileExistsModes.REPLACE_AFTER: seconds = parse_replace_after(replace_after) if get_time_since_modified(dbfile) < seconds: skip = True if not skip: data_url = populate_url_context(data_url, ds_name) f = download_file(data_url, outfile=dbfile) connect_url = get_adhoc_datasource_url(ds_name) engine = sa.create_engine( connect_url, echo=False, pool_pre_ping=True, **get_engine_extra_kwargs(connect_url), ) metadata = sa.MetaData() metadata.bind = engine return metadata def metadata_from_connect(connect, ds_name): """Create a bound SQLAlchemy MetaData object from a "connect" param. The connect value may be a connection string or a DataSourceConnectSchema dict. See the DataSourceConnectSchema docs for more details on that format.""" if isinstance(connect, str): return connect_url_to_metadata(connect, ds_name=ds_name) schema = DataSourceConnectSchema() connect = schema.load(connect) func = import_object(connect["func"]) params = connect.get("params", {}) result = func(ds_name, **params) raiseifnot( isinstance(result, sa.MetaData), "Connect function did not return a MetaData object: %s" % result, ) raiseifnot( result.is_bound(), "Connect function did not return a bound MetaData object: %s" % result, ) return result def reflect_metadata(metadata, reflect_only=None): """Reflect the metadata object from the connection. If reflect_only is passed, reflect only the tables specified in that list""" raiseifnot(metadata.is_bound(), "MetaData must be bound to an engine") only_schema_tables = defaultdict(list) only_tables = [] if reflect_only: for table_name in reflect_only: schema, table_name = get_schema_and_table_name(table_name) if schema: only_schema_tables[schema].append(table_name) else: only_tables.append(table_name) dialect = metadata.bind.dialect.name schemas = get_schemas(metadata.bind) schemas = filter_dialect_schemas(schemas, dialect) for schema in schemas: only = only_schema_tables.get(schema, []) or [] if only_tables: only.extend(only_tables) metadata.reflect(schema=schema, views=True, only=only or None) def get_adhoc_datasource_filename(ds_name): """Get the filename where the adhoc datasource will be located""" dir_name = zillion_config["ADHOC_DATASOURCE_DIRECTORY"] return "%s/%s.db" % (dir_name, ds_name) def get_adhoc_datasource_url(ds_name): """Get a connection URL for the datasource""" return "sqlite:///%s" % get_adhoc_datasource_filename(ds_name) def url_connect( ds_name, connect_url=None, data_url=None, if_exists=IfFileExistsModes.FAIL, replace_after=DEFAULT_REPLACE_AFTER, ): """A URL-based datasource connector. This is meant to be used as the "func" value of a DataSourceConnectSchema. Only one of connect_url or data_url may be specified. **Parameters:** * **ds_name** - (*str*) The name of the datasource to get a connection for * **connect_url** - (*str, optional*) If a connect_url is passed, it will create a bound MetaData object from that connection string. * **data_url** - (*str, optional*) If a data_url is passed, it will first download that data (or make sure it is already downloaded) and then create a connection to that data file, which is assumed to be a SQLite database. The name of the database file will be based on the name of the datasource passed in. * **if_exists** - (*str, optional*) If a data_url is in use, this will control handling of existing data under the same filename. If "fail", an exception will be raised if the file already exists. If "ignore", it will skip downloading the file if it exists. If "replace", it will create or replace the file. If "replace_after" it will check the age of the file and replace it after the age interval provided in the `replace_after` param. * **replace_after** - (*str, optional*) If `if_exists` is "replace_after, use this value to determine the age threshold. The format is "number interval", where the number may be an int or float and the interval options are: seconds, minutes, hours, days, weeks. Note that this only occurs when `url_connect` is called, which is typically on datasource init; it does not replace itself periodically while the datasource is instantiated. """ raiseif(connect_url and data_url, "Only one of connect_url or data_url may be set") raiseifnot(connect_url or data_url, "One of connect_url or data_url must be set") if if_exists and data_url: raiseifnot( if_exists in IfFileExistsModes, "Invalid if_exists value: %s" % if_exists ) if data_url: return data_url_to_metadata( data_url, ds_name, if_exists=if_exists, replace_after=replace_after ) return connect_url_to_metadata(connect_url, ds_name=ds_name) class TableSet(PrintMixin): """A set of tables in a datasource that can meet a grain and provide target fields. **Parameters:** * **datasource** - (*DataSource*) The DataSource containing all tables * **ds_table** - (*Table*) A table containing a desired metric or dimension * **join** - (*Join*) A join to related tables that satisfies the grain and provides the target fields * **grain** - (*list of str*) A list of dimensions that must be supported by the join * **target_fields** - (*list of str*) A list of fields being targeted """ repr_attrs = ["datasource", "join", "grain", "target_fields"] @initializer def __init__(self, datasource, ds_table, join, grain, target_fields): pass def get_covered_metrics(self, wh): """Get a list of metrics covered by this table set **Parameters:** * **wh** - (*Warehouse*) The warehouse to use as a reference for metric fields **Returns:** (*list of str*) - A list of metric names covered in this TableSet """ adhoc_dses = [] if self.datasource.name not in wh.datasource_names: adhoc_dses = [self.datasource] covered_metrics = get_table_metrics(wh, self.ds_table, adhoc_fms=adhoc_dses) return covered_metrics def get_covered_fields(self): """Get a list of all covered fields in this table set""" return get_table_fields(self.ds_table) def __len__(self): if not self.join: return 1 return len(self.join.table_names) class JoinPart(PrintMixin): """A part of a join that defines a join between two particular tables""" repr_attrs = ["datasource", "table_names", "join_fields"] @initializer def __init__(self, datasource, table_names, join_fields): pass class Join(PrintMixin): """Represents a join (potentially multi-part) that will be part of a query **Parameters:** * **join_parts** - (*list of JoinParts*) A list of JoinParts that will make up a single Join * **field_map** - (*dict*) The requested fields this join is meant to satisfy """ repr_attrs = ["datasource", "table_names", "field_map"] @initializer def __init__(self, join_parts, field_map): """Initialize the Join from the given join parts""" self.datasource = None self.table_names = OrderedSet() for join_part in self.join_parts: self.add_join_part_tables(join_part) def __key(self): return tuple(self.table_names) def __hash__(self): return hash(self.__key()) def __eq__(self, other): return isinstance(self, type(other)) and self.__key() == other.__key() def __len__(self): return len(self.table_names) def add_join_part_tables(self, join_part): """Add tables from join parts to the table list""" if not self.datasource: self.datasource = join_part.datasource else: raiseifnot( join_part.datasource.name == self.datasource.name, ( "Can not form %s using join_parts from different datasources" % self.__class__ ), ) for table_name in join_part.table_names: self.table_names.add(table_name) def get_covered_fields(self): """Generate a list of all possible fields this can cover""" fields = set() for table_name in self.table_names: table = self.datasource.metadata.tables[table_name] covered_fields = get_table_fields(table) fields = fields | covered_fields return fields def add_field(self, field): """Denote that this field is covered in this join""" raiseif(field in self.field_map, "Field %s is already in field map" % field) for table_name in self.table_names: table = self.datasource.metadata.tables[table_name] covered_fields = get_table_fields(table) if field in covered_fields: column = get_table_field_column(table, field) self.field_map[field] = column return raise ZillionException( "Field %s is not in any join tables: %s" % (field, self.table_names) ) def add_fields(self, fields): """Add multiple fields as covered in this join""" for field in fields: if field not in self.field_map: self.add_field(field) def join_parts_for_table(self, table_name): """Get a list of JoinParts that reference a particular table""" return [jp for jp in self.join_parts if table_name in jp.table_names] def join_fields_for_table(self, table_name): """Get a list of join fields for a particular table in the join""" result = set() for jp in self.join_parts_for_table(table_name): if jp.join_fields: result |= set(jp.join_fields) return result @classmethod def combine(cls, join1, join2): """Create a new Join object that combines the parts and fields of the given joins""" raiseifnot( join1.datasource == join2.datasource, "Can not combine joins from different datasources", ) new_join = cls( [x for x in join1.join_parts], {k: v for k, v in join1.field_map.items()} ) for join_part in join2.join_parts: new_join.add_join_part_tables(join_part) new_join.join_parts.append(join_part) for field in join2.field_map: if field not in new_join.field_map: new_join.add_field(field) return new_join def join_from_path(ds, path, field_map=None): """Given a path in the datasource graph, get the corresponding Join **Parameters:** * **ds** - (*DataSource*) The datasource for the join * **path** - (*list of str*) A list of tables that form a join path * **field_map** - (*dict, optional*) Passed through to Join init **Returns:** (*Join*) - A Join between all tables in the path """ join_parts = [] if len(path) == 1: # A placeholder join that is really just a single table join_part = JoinPart(ds, path, None) join_parts.append(join_part) else: for i, node in enumerate(path): if i == (len(path) - 1): break start, end = path[i], path[i + 1] edge = ds._graph.edges[start, end] join_part = JoinPart(ds, [start, end], edge["join_fields"]) join_parts.append(join_part) return Join(join_parts, field_map=field_map) class NeighborTable(PrintMixin): """Represents a neighboring node in the datasource graph""" repr_attrs = ["table_name", "join_fields"] @initializer def __init__(self, table, join_fields): self.table_name = table.fullname class DataSource(FieldManagerMixin, PrintMixin): """A component of a warehouse that houses one or more related tables **Parameters:** * **name** - (*str*) The name of the datasource * **metadata** - (*SQLAlchemy metadata, optional*) A SQLAlchemy metadata object that may have zillion configuration information defined in the table and column `info.zillion` attribute * **config** - (*dict, str, or buffer, optional*) A dict adhering to the DataSourceConfigSchema or a file location to load the config from * **nlp** - (*bool, optional*) If true, allow NLP analysis when creating fields """ repr_attrs = ["name"] def __init__(self, name, metadata=None, config=None, nlp=False): self.name = self._check_or_create_name(name) self._metrics = {} self._dimensions = {} self._graph = None self.prefix_with = None reflect = False if config: config = load_datasource_config(config) else: config = {} connect = config.get("connect", None) raiseifnot(metadata or connect, "You must pass metadata or config->connect") raiseif( connect and metadata, "Only one of metadata or config->connect may be specified", ) if connect: self.metadata = metadata_from_connect(connect, self.name) reflect = True else: raiseifnot( isinstance(metadata, sa.MetaData), "Invalid MetaData object: %s" % metadata, ) self.metadata = metadata raiseifnot( self.metadata.bind, "MetaData object must have a bind (engine) attribute specified", ) self.apply_config(config, reflect=reflect, nlp=nlp) @property def metric_tables(self): """A mapping of metric table names to table objects""" return { table_name: table for table_name, table in self.metadata.tables.items() if is_active(table) and table.zillion.type == TableTypes.METRIC } @property def dimension_tables(self): """A dimension of metric table names to table objects""" return { table_name: table for table_name, table in self.metadata.tables.items() if is_active(table) and table.zillion.type == TableTypes.DIMENSION } def has_table(self, table, check_active=True): """Check whether the table is in this datasource's metadata **Parameters:** * **table** - (*SQLAlchemy Table*) A SQLAlchemy table * **check_active** - (*bool, optional*) If true, check that the table is active **Returns:** (*bool*) - True if the table's fullname is in the metadata.tables map """ if isinstance(table, str): name = table else: name = table.fullname if name not in self.metadata.tables: return False if not check_active: return True return is_active(self.metadata.tables[name]) def get_table(self, fullname, check_active=True): """Get the table object from the datasource's metadata **Parameters:** * **fullname** - (*str*) The full name of the table * **check_active** - (*bool, optional*) If true, check that the table **Returns:** (*Table*) - The SQLAlchemy table object from the metadata """ table = self.metadata.tables[fullname] if check_active and not is_active(table): raise ZillionException("Table %s is not active" % fullname) return table def get_tables_with_field(self, field_name, table_type=None): """Get a list of Tables that have a field **Parameters:** * **field_name** - (*str*) The name of the field to check for * **table_type** - (*str, optional*) Check only this TableType **Returns:** (*list*) - A list of Table objects """ tables = [] for table in self.metadata.tables.values(): if not is_active(table): continue if table_type and table.zillion.type != table_type: continue if field_name in get_table_fields(table): tables.append(table) return tables def get_metric_tables_with_metric(self, metric_name): """Get a list of metric table objects with the given metric""" return self.get_tables_with_field(metric_name, table_type=TableTypes.METRIC) def get_dim_tables_with_dim(self, dim_name): """Get a list of dimension table objects with the given dimension""" return self.get_tables_with_field(dim_name, table_type=TableTypes.DIMENSION) def get_columns_with_field(self, field_name): """Get a list of column objects that support a field""" columns = [] for table in self.metadata.tables.values(): if not is_active(table): continue for col in table.c: if not is_active(col): continue if field_name in col.zillion.get_field_names(): columns.append(col) return columns def apply_config(self, config, reflect=False, nlp=False): """Apply a datasource config to this datasource's metadata. This will also ensure zillion info is present on the metadata, populate global fields, and rebuild the datasource graph. **Parameters:** * **config** - (*dict*) The datasource config to apply * **reflect** - (*bool, optional*) If true, use SQLAlchemy to reflect the database. Table-level reflection will also occur if any tables are created from data URLs * **nlp** - (*bool, optional*) If true, allow NLP analysis when creating fields """ raiseifnot(self.metadata, "apply_config called with no datasource metadata") reflect_only = None adhoc_tables = self._load_adhoc_tables(config) if adhoc_tables and not reflect: reflect = True reflect_only = adhoc_tables if reflect: reflect_metadata(self.metadata, reflect_only=reflect_only) if config.get("tables", None): # HACK: Backup in case the engine in use does not support reflection, # such as certain versions of duckdb_engine for table_name in config["tables"].keys(): if contains_sql_keywords(table_name): raise DisallowedSQLException( f"Table name %s contains SQL keywords: {table_name}" ) if table_name not in self.metadata.tables: dbg(f"Manually reflecting missing table: {table_name}") schema, name = get_schema_and_table_name(table_name) sa.Table( name, self.metadata, schema=schema, autoload_with=self.metadata.bind, ) if config.get("tables", None): self._apply_table_configs(config["tables"]) self._ensure_metadata_info() if not config.get("skip_conversion_fields", False): self._add_conversion_fields() self.prefix_with = config.get("prefix_with", None) self._populate_fields(config, nlp=nlp) self._build_graph() def find_neighbor_tables(self, table): """Find tables that can be joined to or are parents of the given table **Parameters:** * **table** - (*SQLAlchemy Table*) The table to find neighbors for **Returns:** (*list*) - A list of NeighborTables """ neighbor_tables = [] fields = get_table_fields(table) def check_pk_fields(pk_fields, t, ttype): for pk_field in pk_fields: raiseifnot( pk_field in fields, ( "Table %s is %s of %s but primary key %s is not in both" % (t.fullname, ttype, table.fullname, pk_fields) ), ) if table.zillion.type == TableTypes.METRIC: # Find dimension tables whose primary key is contained in the # metric table for dim_table in self.dimension_tables.values(): dt_pk_fields = dim_table.zillion.primary_key can_join = True for field in dt_pk_fields: if field not in fields: can_join = False break if can_join: neighbor_tables.append(NeighborTable(dim_table, dt_pk_fields)) # Add parent table if present parent_name = table.zillion.parent if parent_name: try: parent = self.metadata.tables[parent_name] except KeyError: raise AssertionError( "Parent %s of %s not defined" % (parent_name, table.fullname) ) pk_fields = parent.zillion.primary_key check_pk_fields(pk_fields, parent, "parent") neighbor_tables.append(NeighborTable(parent, pk_fields)) if parent.zillion.type == TableTypes.DIMENSION and parent.zillion.siblings: # Add parent dimension sibling tables if present for sibling_name in parent.zillion.siblings: try: sibling = self.metadata.tables[sibling_name] except KeyError: raise AssertionError( "Sibling %s of %s not defined" % (sibling_name, parent.fullname) ) raiseifnot( sibling.zillion.type == TableTypes.DIMENSION, "Sibling tables can only be dimension tables", ) pk_fields = sibling.zillion.primary_key check_pk_fields(pk_fields, sibling, "sibling") neighbor_tables.append(NeighborTable(sibling, pk_fields)) return neighbor_tables def find_descendent_tables(self, table): """Find graph descendents of the table""" return nx.descendants(self._graph, table.fullname) def get_possible_joins(self, table, grain): """This takes a given table (usually a metric table) and tries to find one or more joins to each dimension of the grain. It's possible some of these joins satisfy other parts of the grain too which leaves room for consolidation, but it's also possible to have it generate independent, non-overlapping joins to meet the grain. **Parameters:** * **table** - (*SQLAlchemy Table*) Table to analyze for joins to grain * **grain** - (*iterable*) An iterable of dimension names that the given table must join to **Returns:** (*dict*) - A mapping of dimension -> dimension joins """ raiseifnot( self.has_table(table), "Could not find table %s in datasource %s" % (table.fullname, self.name), ) if not grain: dbg("No grain specified, ignoring joins") return None possible_dim_joins = {} for dimension in grain: dim_joins = self._find_joins_to_dimension(table, dimension) if not dim_joins: dbg( "table %s can not satisfy dimension %s" % (table.fullname, dimension) ) return None possible_dim_joins[dimension] = dim_joins possible_joins = self._consolidate_field_joins(table, grain, possible_dim_joins) dbg("possible joins:") dbg(possible_joins) return possible_joins def find_possible_table_sets( self, ds_tables_with_field, field, grain, dimension_grain ): """Find table sets that meet the grain **Parameters:** * **ds_tables_with_field** - (*list of tables*) A list of datasource tables that have the target field * **field** - (*str*) The target field we are trying to cover * **grain** - (*iterable*) The grain the table set must support * **dimension_grain** - The subset of the grain that are requested dimensions **Returns:** (*list*) - A list of TableSets """ table_sets = [] for field_table in ds_tables_with_field: if not table_field_allows_grain(field_table, field, dimension_grain): continue if (not grain) or grain.issubset(get_table_fields(field_table)): table_set = TableSet(self, field_table, None, grain, set([field])) table_sets.append(table_set) dbg("full grain (%s) covered in %s" % (grain, field_table.fullname)) continue joins = self.get_possible_joins(field_table, grain) if not joins: dbg("table %s can not join at grain %s" % (field_table.fullname, grain)) continue dbg( "adding %d possible join(s) to table %s" % (len(joins), field_table.fullname) ) for join, covered_dims in joins.items(): table_set = TableSet(self, field_table, join, grain, set([field])) table_sets.append(table_set) return table_sets def get_dialect_name(self): """Get the name of the SQLAlchemy metadata dialect""" return self.metadata.bind.dialect.name def get_params(self): """Get a simple dict representation of the datasource params. This is currently not sufficient to completely rebuild the datasource.""" # TODO: does this need to store entire config? return dict(name=self.name) def print_info(self): """Print the structure of the datasource""" print("---- Datasource %s" % self.name) print("metrics:") self.print_metrics(indent=2) print("dimensions:") self.print_dimensions(indent=2) print() for table in self.metadata.tables.values(): print(format_msg("table: %s" % table.fullname, label=None)) zillion_info = table.info.get("zillion", None) if not zillion_info: print(format_msg("table has no zillion info", label=None, indent=2)) continue for column in table.c: print(format_msg("column: %s" % column.name, label=None, indent=2)) zillion_info = column.info.get("zillion", None) if not zillion_info: print( format_msg("column has no zillion info", label=None, indent=4) ) continue print(format_msg(column.info["zillion"], label=None, indent=4)) def _load_adhoc_tables(self, config): """Extract and init the adhoc tables in the DS config. This will return a list of processed adhoc tables by name""" ds_config_context = get_ds_config_context(self.name) adhoc_tables = [] for table_name, table_config in config.get("tables", {}).items(): cfg = table_config.copy() data_url = cfg.get("data_url", None) if not data_url: continue adhoc_tables.append(table_name) # TODO: we currently ignore this with adhoc tables since we # don't want to accidentally leak secrets from the DS context. # It's allowed for datasource connect urls since those form the # entire datasource so it's possible to apply an appropriate # context. Here we probably need a way to specify which context # is allowed for adhoc tables within each DS context. # # if get_string_format_args(cfg["data_url"]): # cfg["data_url"] = cfg["data_url"].format(**ds_config_context) schema, table_name = get_schema_and_table_name(table_name) dt = datatable_from_config(table_name, cfg, schema=schema) dt.to_sql(self.metadata.bind) return adhoc_tables def _apply_table_configs(self, table_configs): """Take configs and apply them to the table/column metadata""" for table in self.metadata.tables.values(): if table.fullname not in table_configs: continue table_config = table_configs[table.fullname] table_info = TableInfo.schema_load(table_config, unknown=EXCLUDE) zillion_info = table.info.get("zillion", {}) # Config takes precedence over values on table objects zillion_info.update(table_info) table.info["zillion"] = TableInfo.create(zillion_info) column_configs = table_config.get("columns", None) if not column_configs: continue for column in table.columns: if column.name not in column_configs: continue column_config = column_configs[column.name] zillion_info = column.info.get("zillion", {}) # Config takes precedence over values on column objects zillion_info.update(column_config) if table.info["zillion"].use_full_column_names: field_name = default_field_name(column) else: field_name = column.name is_valid_field_name(field_name) zillion_info["fields"] = zillion_info.get("fields", [field_name]) column.info["zillion"] = ColumnInfo.create(zillion_info) def _ensure_metadata_info(self): """Ensure that all zillion info are of proper type""" for table in self.metadata.tables.values(): zillion_info = table.info.get("zillion", None) if not zillion_info: setattr(table, "zillion", None) continue table.info["zillion"] = TableInfo.create(zillion_info) setattr(table, "zillion", table.info["zillion"]) column_count = 0 for column in table.c: zillion_info = column.info.get("zillion", None) or {} if not zillion_info: if not table.zillion.create_fields: raiseif( column.primary_key, ( "Primary key column %s must have zillion info defined" % column_fullname(column) ), ) # If create_fields IS set the zillion info would # automatically get created on the column and fields # would automatically be created from the columns. # Since it is NOT set, we just set the attribute to # None and move on. setattr(column, "zillion", None) continue if table.zillion.use_full_column_names: field_name = default_field_name(column) else: field_name = column.name is_valid_field_name(field_name) zillion_info["fields"] = zillion_info.get("fields", [field_name]) if column.primary_key: raiseifnot( zillion_info["fields"], ( "Primary key column %s must have fields defined and" "one must be a valid dimension" ) % column_fullname(column), ) column.info["zillion"] = ColumnInfo.create(zillion_info) setattr(column, "zillion", column.info["zillion"]) column_count += 1 raiseifnot( column_count, "Table %s has no columns with zillion info defined" % table.fullname, ) def _add_conversion_fields(self): """Add conversion fields where they are supported""" for table in self.metadata.tables.values(): if not is_active(table): continue table_fields = get_table_fields(table) types_converted = set() for column in table.c: if not is_active(column): continue if not column.zillion.allow_type_conversions: continue convs = get_dialect_type_conversions(self.get_dialect_name(), column) if convs: raiseif( type(column.type) in types_converted, ( "Table %s has multiple columns of same type allowing conversions" % table.fullname ), ) types_converted.add(type(column.type)) for conv in convs: field = conv["field"] if column.zillion.disabled_type_conversions: if field.name in column.zillion.disabled_type_conversions: dbg( f"Skipping conversion field {field.name} for column {column.name}" ) continue ds_formula = conv["ds_formula"] ds_criteria_conversions = conv["ds_criteria_conversions"] is_valid_datasource_criteria_conversions(ds_criteria_conversions) field_def = field.copy() field_name = field_def.name if not field_def.description: field_def.description = "Automatic conversion field" if column.zillion.type_conversion_prefix: field_name = column.zillion.type_conversion_prefix + field_name is_valid_field_name(field_name) field_def.name = field_name field_def.display_name = default_field_display_name(field_name) if field_name in table_fields: dbg( "Skipping conversion field %s for column %s, already in table" % (field_name, column_fullname(column)) ) continue dbg( "Adding conversion field %s for column %s" % (field_name, column_fullname(column)) ) column.zillion.add_field( dict( name=field_name, ds_formula=ds_formula, ds_criteria_conversions=ds_criteria_conversions, ) ) if not self.has_field(field_name): if isinstance(field_def, Dimension): self.add_dimension(field_def) else: self.add_metric(field_def) def _add_metric_column(self, column, field, aggregation=None, rounding=None): """Add a metric to the datasource from a column""" if not self.has_metric(field): dbg( "Adding metric %s from column %s.%s" % (field, self.name, column_fullname(column)) ) _aggregation, _rounding = infer_aggregation_and_rounding(column) aggregation = ( aggregation.lower() if aggregation is not None else _aggregation ) rounding = int(rounding) if rounding is not None else _rounding metric = Metric( field, column.type, aggregation=aggregation, rounding=rounding ) self.add_metric(metric) def _add_dimension_column(self, column, field): """Add a dimension to the datasource from a column""" if not self.has_dimension(field): dbg( "Adding dimension %s from column %s.%s" % (field, self.name, column_fullname(column)) ) dimension = Dimension(field, column.type) self.add_dimension(dimension) def _add_metric_table_fields(self, table, nlp=False): """Populate fields from a metric table""" nlp_table_info = get_nlp_table_info(table) if nlp else {} for column in table.c: if not is_active(column): continue for field, field_def in column.zillion.get_fields().items(): if self.has_field(field): continue if not table.zillion.create_fields: # If create_fields is False we do not automatically create fields # from columns. The field would have to be explicitly defined # in the metrics/dimensions of the datasource. continue formula = ( field_def.get("ds_formula", None) if isinstance(field_def, dict) else None ) nlp_column_info = nlp_table_info.get(column.name, {}) if is_probably_metric( column, formula=formula, nlp_column_info=nlp_column_info ): self._add_metric_column( column, field, aggregation=nlp_column_info.get("aggregation", None), rounding=nlp_column_info.get("rounding", None), ) else: self._add_dimension_column(column, field) def _add_dimension_table_fields(self, table): """Populate fields from a dimension table""" for column in table.c: if not is_active(column): continue for field in column.zillion.get_field_names(): if self.has_metric(field): raise ZillionException( "Dimension table has metric field: %s" % field ) if self.has_dimension(field): continue if not table.zillion.create_fields: # If create_fields is False we do not automatically create fields # from columns. The field would have to be explicitly defined # in the metrics/dimensions of the datasource. continue self._add_dimension_column(column, field) def _populate_fields(self, config, nlp=False): """Populate fields from a datasource config""" self._populate_global_fields(config, force=True) for table in self.metadata.tables.values(): if not is_active(table): continue if table.zillion.type == TableTypes.METRIC: self._add_metric_table_fields(table, nlp=nlp) elif table.zillion.type == TableTypes.DIMENSION: self._add_dimension_table_fields(table) else: raise ZillionException("Invalid table type: %s" % table.zillion.type) def _build_graph(self): """Build a directional graph representing the relationships between tables in the datasource""" graph = nx.DiGraph() self._graph = graph for table in self.metadata.tables.values(): if not is_active(table): continue self._graph.add_node(table.fullname) neighbors = self.find_neighbor_tables(table) for neighbor in neighbors: self._graph.add_node(neighbor.table.fullname) self._graph.add_edge( table.fullname, neighbor.table.fullname, join_fields=neighbor.join_fields, ) def _invert_field_joins(self, field_joins): """Take a map of fields to relevant joins and invert it""" join_fields = defaultdict(set) for field, joins in field_joins.items(): for join in joins: if join in join_fields: dbg("join %s already used, adding field %s" % (join, field)) join_fields[join].add(field) return join_fields def _populate_max_join_field_coverage(self, join_fields, grain): """Populate the relevant grain fields a join can cover""" for join, covered_fields in join_fields.items(): for field in grain: if field in covered_fields: continue all_covered_fields = join.get_covered_fields() if field in all_covered_fields: covered_fields.add(field) def _eliminate_redundant_joins(self, sorted_join_fields, main_table): """Eliminate joins that aren't providing unique fields or are just table supersets of other joins""" joins_to_delete = set() for join, covered_fields in sorted_join_fields: if join in joins_to_delete: continue dbg( "Finding redundant joins for %s / %s" % (join.table_names, covered_fields) ) for other_join, other_covered_fields in sorted_join_fields: if join == other_join or join in joins_to_delete: continue is_superset = join.table_names.issubset(other_join.table_names) has_unique_fields = other_covered_fields - covered_fields if is_superset and not has_unique_fields: dbg( "Removing redundant join %s / %s" % (other_join.table_names, other_covered_fields), indent=4, ) joins_to_delete.add(other_join) # If this join goes through a table that contains the PK of the # main table, remove joins that cover the same grain but don't # have that PK. This is assumed to lead to more efficient joins # and match the intent of the schema. if ( other_covered_fields == covered_fields and len(join) > 1 and len(other_join) > 1 ): main_pk = main_table.zillion.primary_key join_table_two_pk = self.get_table( join.table_names[1] ).zillion.primary_key other_table_two_pk = self.get_table( other_join.table_names[1] ).zillion.primary_key if join_table_two_pk == main_pk and other_table_two_pk != main_pk: dbg( "Removing redundant join %s / %s" % (other_join.table_names, other_covered_fields), indent=4, ) joins_to_delete.add(other_join) dbg(f"Removing {len(joins_to_delete)} redundant joins") sorted_join_fields = [ (join, fields) for join, fields in sorted_join_fields if join not in joins_to_delete ] return sorted_join_fields def _find_join_combinations(self, sorted_join_fields, grain): """Find candidate joins that cover the entire grain""" candidates = [] required_joins = [] optional_joins = [] max_joins = zillion_config.get("DATASOURCE_MAX_JOINS", None) max_candidates = zillion_config.get("DATASOURCE_MAX_JOIN_CANDIDATES", None) # First find joins that provide unique components of the grain # as they will be required. Do this by looking at the covered fields # of the join to see if any are unique among all joins. for join, covered_fields in sorted_join_fields: unique_covered = covered_fields.copy() for other_join, other_covered_fields in sorted_join_fields: if join == other_join: continue unique_covered -= other_covered_fields if unique_covered: required_joins.append((join, covered_fields)) else: optional_joins.append((join, covered_fields)) dbg(f"{len(sorted_join_fields)} total joins, {len(required_joins)} required") optional_powerset = powerset(optional_joins, max_combo_len=max_joins) for i, optional_join_combo in enumerate(optional_powerset): join_combo = list(optional_join_combo) + required_joins if not join_combo: continue if i > 0 and i % 10000 == 0: warn(f"{i} join combos and counting, {len(candidates)} candidates...") covered = set() has_subsets = False for join, covered_dims in join_combo: covered |= covered_dims # If any of the other joins are a subset of this join we # ignore it. The powerset has every combination so it will # eventually hit the case where there are only distinct joins. for other_join, _ in join_combo: if join == other_join: continue if other_join.table_names.issubset(join.table_names): has_subsets = True break if has_subsets: break if has_subsets: continue if len(covered) != len(grain): # dbg(f"does not cover grain: {covered} / {grain}") continue # This combination of joins covers the entire grain. Add it as # a candidate if there isn't an existing candidate that is a # subset of these joins skip = False joins = {x[0] for x in join_combo} for other_join_combo in candidates: other_joins = {x[0] for x in other_join_combo} if other_joins.issubset(joins): skip = True break if skip: # dbg("Skipping subset join list combination") continue # dbg("Adding join combo") candidates.append(join_combo) if max_candidates and len(candidates) >= max_candidates: warn(f"Hit max join candidates, returning {len(candidates)}") break return candidates def _combine_orthogonal_joins(self, candidates): """Combine any joins that orthogonally stem from a common table. NOTE: this needs more thorough review, and there may be a better way to handle this or combine joins at a different step in the process. """ result = [] for join_combo in candidates: root_joins = {} for join, covered_fields in join_combo: root_table = join.table_names[0] if root_table not in root_joins: root_joins[root_table] = (join, covered_fields) else: existing_join, existing_fields = root_joins[root_table] dbg( f"Combining join {join.table_names} into {existing_join.table_names}" ) new_join = Join.combine(existing_join, join) new_fields = existing_fields | covered_fields root_joins[root_table] = (new_join, new_fields) final_combo = tuple([x for x in root_joins.values()]) for row in final_combo: dbg(f"Final combo join: {row[0].table_names}") result.append(final_combo) return result def _choose_best_join_combination(self, candidates): """Choose the best join combination from the candidates. Currently "best" is just defined as the candidate with the fewest tables.""" ordered = sorted( candidates, key=lambda x: len(iter_or([y[0].table_names for y in x])) ) chosen = ordered[0] join_fields = {} for join, covered_fields in chosen: join_fields[join] = covered_fields dbg(f"join {join.table_names} covers {covered_fields}") join.add_fields(covered_fields) return join_fields def _consolidate_field_joins(self, table, grain, field_joins): """This takes a mapping of fields to joins that satisfy each field and returns a minimized map of joins to fields satisfied by that join.""" # Some preliminary shuffling of the inputs to support later logic join_fields = self._invert_field_joins(field_joins) self._populate_max_join_field_coverage(join_fields, grain) # Sort by number of dims covered desc, number of tables involved asc sorted_join_fields = sorted( join_fields.items(), key=lambda kv: (len(kv[1]), -len(kv[0])), reverse=True ) if len(sorted_join_fields[0][1]) == len(grain): # Single join covers entire grain. It should be ~optimal based on sorting. join = sorted_join_fields[0][0] covered_fields = sorted_join_fields[0][1] join.add_fields(covered_fields) return {join: covered_fields} sorted_join_fields = self._eliminate_redundant_joins(sorted_join_fields, table) candidates = self._find_join_combinations(sorted_join_fields, grain) candidates = self._combine_orthogonal_joins(candidates) join_fields = self._choose_best_join_combination(candidates) return join_fields def _find_joins_to_dimension(self, table, dimension): """Find joins to a dimension from a table""" joins = [] dim_columns = self.get_columns_with_field(dimension) dim_column_table_map = {c.table.fullname: c for c in dim_columns} for column in dim_columns: if column.table == table: paths = [[table.fullname]] else: paths = nx.all_simple_paths( self._graph, table.fullname, column.table.fullname ) if not paths: continue for path in paths: # For each path, if this dim can be found earlier in the path then # reference it in the earlier (child) table field_map = None for table_name in path: if table_name in dim_column_table_map: field_map = {dimension: dim_column_table_map[table_name]} break raiseifnot( field_map, "Could not map dimension %s to column" % dimension ) join = join_from_path(self, path, field_map=field_map) if table.zillion.incomplete_dimensions: join_fields = join.join_fields_for_table(table.fullname) if set(table.zillion.incomplete_dimensions) & join_fields: dbg( "Skipping table %s join due to incomplete dimensions" % table.fullname ) continue joins.append(join) dbg("Found joins to dim %s for table %s:" % (dimension, table.fullname)) dbg(joins) return joins @classmethod def from_db_file( cls, file, name=None, config=None, if_exists=IfFileExistsModes.FAIL, replace_after=DEFAULT_REPLACE_AFTER, nlp=False, ): """Create a DataSource from a sqlite db file path or url **Parameters:** * **file** - (*str*) A file path/url pointing to a SQLite database * **name** - (*str, optional*) The name to give the datasource. If blank it will be derived from the file name. * **config** - (*dict, optional*) A DataSourceConfigSchema dict config. Note that the connect param of this config will be overwritten if present! * **if_exists** - (*str, optional*) Control behavior when the database already exists * **replace_after** - (*str, optional*) Replace the data file after this interval if `if_exists` is "replace_after". See `url_connect` docs for more information. * **nlp** - (*bool, optional*) If true, allow NLP analysis when creating fields **Returns:** (*DataSource*) - A DataSource created from the db and config """ config = (config or {}).copy() connect = config.get("connect", {}) if connect: connect = {} warn("Overwriting datasource connect settings for from_db_file()") connect["func"] = "zillion.datasource.url_connect" if os.path.isfile(file): url = "sqlite:///" + os.path.abspath(file) connect["params"] = dict(connect_url=url, if_exists=if_exists) else: connect["params"] = dict(data_url=file, if_exists=if_exists) if replace_after: connect["params"]["replace_after"] = replace_after config["connect"] = connect name = name or entity_name_from_file(file) return cls(name, config=config, nlp=nlp) @classmethod def from_datatables(cls, name, datatables, config=None, nlp=False): """Create a DataSource from a list of datatables **Parameters:** * **name** - (*str*) The name to give the datasource * **datatables** - (*list of AdHocDataTables*) A list of AdHocDataTables to use to create the DataSource * **config** - (*dict, optional*) A DataSourceConfigSchema dict config * **nlp** - (*bool, optional*) If true, allow NLP analysis when creating fields **Returns:** (*DataSource*) - A DataSource created from the datatables and config """ config = config or dict(tables={}) ds_name = cls._check_or_create_name(name) if config.get("connect", None): metadata = metadata_from_connect(config["connect"], name) engine = metadata.bind del config["connect"] # will pass metadata directly else: # No connection URL specified, let's create an adhoc SQLite DB conn_url = get_adhoc_datasource_url(ds_name) engine = sa.create_engine( conn_url, echo=False, pool_pre_ping=True, **get_engine_extra_kwargs(conn_url), ) metadata = sa.MetaData() metadata.bind = engine for dt in datatables: dt.to_sql(engine) config.setdefault("tables", {})[dt.fullname] = dt.table_config reflect_metadata(metadata) return cls(ds_name, metadata=metadata, config=config, nlp=nlp) @classmethod def from_data_file( cls, file, primary_key, ds_name=None, schema="main", table_name=None, # TODO infer table type from columns if not provided table_type="metric", nlp=False, **kwargs, ): """Create a DataSource from a data file path/url that represents a single table **Parameters:** * **file** - (*str*) A file path/url pointing to a data file. If remote the file will be downloaded to the adhoc data directory. * **primary_key** - (*list of str*) A list of fields representing the primary key of the table * **ds_name** - (*str, optional*) The name to give the datasource * **schema** - (*str, optional*) The schema to create the table in * **table_name** - (*str, optional*) The name to give the table. If blank it will be derived from the file name. * **table_type** - (*str, optional*) Specifies the TableType * **kwargs** - (*dict, optional*) Additional keyword arguments to pass to the the AdHocDataTable * **nlp** - (*bool, optional*) If true, allow NLP analysis when creating fields **Returns:** (*DataSource*) - A DataSource created from the file data and config """ raiseifnot(schema, "Schema must be specified") table_name = table_name or table_safe_name(entity_name_from_file(file)) table_config = dict( data_url=file, type=table_type, primary_key=primary_key, **kwargs, ) dt = datatable_from_config(table_name, table_config, schema=schema) return cls.from_datatables(ds_name, [dt], nlp=nlp) @classmethod def _check_or_create_name(cls, name): """Validate the datasource name or create one if necessary""" if not name: datestr = datetime.datetime.utcnow().strftime("%Y%m%d%H%M%S") name = "zillion_ds_%s_%s" % (datestr, random.randint(0, int(1e9))) return name raiseifnot( set(name) <= DATASOURCE_NAME_ALLOWED_CHARS, ( 'DataSource name "%s" has invalid characters. Allowed: %s' % (name, DATASOURCE_NAME_ALLOWED_CHARS_STR) ), ) return name class AdHocDataTable(PrintMixin): """Create an adhoc table from raw data that can be added to a DataSource **Parameters:** * **name** - (*str*) The name of the table * **data** - (*iterable, DataFrame, or str*) The data to create the adhoc table from * **table_type** - (*str*) Specify the TableType * **columns** - (*dict, optional*) Column configuration for the table * **primary_key** - (*list of str, optional*) A list of fields that make up the primary key of the table * **parent** - (*str, optional*) A reference to a parent table in the same datasource * **if_exists** - (*str, optional*) Control behavior when datatables already exist in the database * **drop_dupes** - (*bool, optional*) Drop duplicate primary key rows when loading the table * **convert_types** - (*dict, optional*) A mapping of column names to types to convert to when loading the table. The types must be strings representing valid sqlalchemy types. Ex: {"col1": "date", "col2": "integer"} * **fillna_value** - (*str or int, optional*) Fill null values in primary key columns with this value before writing to a SQL database. * **schema** - (*str, optional*) The schema in which the table resides * **kwargs** - Keyword arguments passed to pandas.DataFrame.from_records if a DataFrame is created from iterable data """ repr_attrs = ["name", "primary_key", "table_config"] @initializer def __init__( self, name, data, table_type, columns=None, primary_key=None, parent=None, if_exists=IfExistsModes.FAIL, drop_dupes=False, convert_types=None, fillna_value="", use_full_column_names=False, schema=None, **kwargs, ): """Initializes the datatable by parsing its config, but does not actually add it to a particular DB yet. It is assumed the DataSource will do that later. """ self.df_kwargs = kwargs or {} self.fillna_value = fillna_value or "" self.primary_key_columns = None if primary_key: if not columns: # Assume specified primary key fields match column names self.primary_key_columns = self.primary_key else: pk_columns = [] for pk in self.primary_key: found = False for column_name, column_config in columns.items(): if pk in column_config.get("fields", []): pk_columns.append(column_name) found = True break if not found: pk_columns.append(pk) self.primary_key_columns = pk_columns self.table_config = TableConfigSchema().load( dict( type=table_type, columns=self.columns, create_fields=True, parent=parent, if_exists=if_exists, drop_dupes=drop_dupes, convert_types=convert_types, primary_key=primary_key, use_full_column_names=use_full_column_names, ) ) @property def fullname(self): """Table full name""" if self.schema: return "%s.%s" % (self.schema, self.name) return self.name def get_dataframe(self): """Get the DataFrame representation of the data""" if isinstance(self.data, pd.DataFrame): return self.data kwargs = self.df_kwargs.copy() if self.columns: kwargs["columns"] = self.columns return pd.DataFrame.from_records( self.data, index=self.primary_key_columns, **kwargs ) def table_exists(self, engine): """Determine if this table exists""" return engine.has_table(self.name) def to_sql(self, engine, method="multi", chunksize=int(1e3)): """Use pandas to push the adhoc table data to a SQL database. **Parameters:** * **engine** - (*SQLAlchemy connection engine*) The engine used to connect to the database * **method** - (*str, optional*) Passed through to pandas * **chunksize** - (*int, optional*) Passed through to pandas """ if_exists = self.if_exists if sa.inspect(engine).has_table(self.name, schema=self.schema): if if_exists == IfExistsModes.FAIL: raise ValueError(f"Table {self.fullname} already exists.") if if_exists == IfExistsModes.IGNORE: return if if_exists == IfExistsModes.REPLACE: meta = sa.MetaData(bind=engine) table = sa.Table(self.name, meta, schema=self.schema) table.drop(engine, checkfirst=True) df = self.get_dataframe() if self.primary_key_columns: if isinstance(df.index, pd.MultiIndex): df.index = pd.MultiIndex.from_frame( df.index.to_frame().fillna(self.fillna_value) ) else: df.index = df.index.fillna(self.fillna_value) if (not df.empty) and self.drop_dupes: orig_len = len(df) df = df[~df.reset_index().duplicated(subset=self.primary_key).values] if len(df) != orig_len: warn( "DataFrame size dropped from %s to %s due to duplicates" % (orig_len, len(df)) ) columns = [] # Handle columns from DataFrame for c in df.columns: col_type = ( self.convert_types.get(c) if self.convert_types and c in self.convert_types else str(df.dtypes[c]) ) columns.append(sa.Column(c, type_string_to_sa_type(col_type))) # Handle index columns if df.index.names[0] is not None: for name, series in df.index.to_frame().items(): col_type = ( self.convert_types.get(name) if self.convert_types and name in self.convert_types else str(series.dtype) ) columns.append(sa.Column(name, type_string_to_sa_type(col_type))) meta = sa.MetaData(bind=engine) table = sa.Table( self.name, meta, *columns, sa.PrimaryKeyConstraint(*df.index.names, name=f"pk_{self.name}"), schema=self.schema, ) meta.create_all(engine, tables=[table], checkfirst=True) # Insert the data into the table with engine.connect() as connection: raw_connection = connection.connection cursor = raw_connection.cursor() # Use backticks for MySQL, double quotes for SQLite dialect_name = engine.dialect.name if dialect_name == "mysql": col_quote = lambda x: f"`{x}`" # noqa: E731 else: col_quote = lambda x: f'"{x}"' # noqa: E731 cols = ",".join([col_quote(c) for c in df.columns]) ix_cols = ",".join([col_quote(i) for i in df.index.names if i is not None]) if ix_cols and cols: cols = f"{ix_cols},{cols}" elif ix_cols: cols = f"{ix_cols}" elif not cols: raise ValueError("No columns found for SQL insert.") # Determine placeholder style based on dialect dialect_name = engine.dialect.name if dialect_name == "sqlite": placeholder = "?" else: placeholder = "%s" placeholders = ",".join( [placeholder] * (len(df.columns) + len(df.index.names)) ) sql = f"INSERT INTO {self.fullname} ({cols}) VALUES ({placeholders})" data = [ tuple(row) for row in df.reset_index().itertuples(index=False, name=None) ] cursor.executemany(sql, data) raw_connection.commit() class SQLiteDataTable(AdHocDataTable): """AdHocDataTable from an existing sqlite database on the local filesystem Note: the "data" param to AdHocDataTable is ignored. This is simply a workaround to get an AdHocDataTable reference for an existing SQLite DB without having to recreate anything from data. """ def get_dataframe(self): raise NotImplementedError def to_sql(self, engine, **kwargs): raiseifnot(self.table_exists(engine), "SQLiteDataTable table does not exist") class CSVDataTable(AdHocDataTable): """AdHocDataTable from a JSON file using pandas.read_csv""" def get_dataframe(self): info("Reading CSV from %s" % self.data) return pd.read_csv( self.data, index_col=self.primary_key_columns, usecols=list(self.columns.keys()) if self.columns else None, **self.df_kwargs, ) class ExcelDataTable(AdHocDataTable): """AdHocDataTable from a JSON file using pandas.read_excel""" def get_dataframe(self): info("Reading Excel File from %s" % self.data) df = pd.read_excel( self.data, usecols=list(self.columns.keys()) if self.columns else None, **self.df_kwargs, ) if self.primary_key_columns and df.index.names != self.primary_key_columns: df = df.set_index(self.primary_key_columns) return df class JSONDataTable(AdHocDataTable): """AdHocDataTable from a JSON file using pandas.read_json""" def get_dataframe(self, orient="table"): info("Reading JSON from %s" % self.data) df = pd.read_json(self.data, orient=orient, **self.df_kwargs) if self.primary_key_columns and df.index.names != self.primary_key_columns: df = df.set_index(self.primary_key_columns) return df class HTMLDataTable(AdHocDataTable): """AdHocDataTable from an html table using pandas.read_html. By default it expects a table in the same format as produced by: `df.reset_index().to_html("table.html", index=False)`""" def get_dataframe(self): info("Reading HTML from %s" % self.data) dfs = pd.read_html(self.data, **self.df_kwargs) raiseifnot(dfs, "No html table found") raiseifnot(len(dfs) == 1, "More than one html table found") df = dfs[0] if self.primary_key_columns and df.index.names != self.primary_key_columns: df = df.set_index(self.primary_key_columns) return df class GoogleSheetsDataTable(AdHocDataTable): """AdHocDataTable from a google sheet. Parsed as a CSVDataTable.""" def get_dataframe(self): parsed = urlparse(self.data) params = parse_qs(parsed.query) if params.get("format", None) == ["csv"]: pass elif parsed.path.endswith("/edit"): parsed = parsed._replace( path=parsed.path.replace("/edit", "/export"), query="format=csv" ) url = urlunparse(parsed) else: raise ZillionException("Unsupported google docs URL: %s" % url) info("Reading Google Sheets CSV from %s" % url) return pd.read_csv( url, index_col=self.primary_key_columns, usecols=list(self.columns.keys()) if self.columns else None, **self.df_kwargs, ) def datatable_from_config(name, config, schema=None, **kwargs): """Factory to create an AdHocDataTable from a given config. The type of the AdHocDataTable created will be inferred from the config["url"] param. **Parameters:** * **name** - (*str*) The name of the table * **config** - (*dict*) The configuration of the table * **schema** - (*str, optional*) The schema in which the table resides * **kwargs** - Passed to init of the particular AdHocDataTable class **Returns:** (*AdHocDataTable*) - Return the created AdHocDataTable (subclass) """ url = config["data_url"] if url.endswith("csv"): cls = CSVDataTable elif url.endswith("xlsx") or url.endswith("xls"): cls = ExcelDataTable elif url.endswith("json"): cls = JSONDataTable elif url.endswith("html"): cls = HTMLDataTable elif "docs.google.com" in url: cls = GoogleSheetsDataTable else: raise AssertionError("Unrecognized data url extension: %s" % url) kwargs.update(config.get("adhoc_table_options", {})) return cls( name, url, config["type"], config.get("columns", None), primary_key=config.get("primary_key", None), parent=config.get("parent", None), if_exists=config.get("if_exists", IfExistsModes.FAIL), drop_dupes=config.get("drop_dupes", False), convert_types=config.get("convert_types", None), fillna_value=config.get("fillna_value", None), use_full_column_names=config.get("use_full_column_names", False), schema=schema, **kwargs, ) ================================================ FILE: zillion/dialects/__init__.py ================================================ from .duckdb import * from .mysql import * from .postgresql import * from .sqlite import * ================================================ FILE: zillion/dialects/conversions.py ================================================ import sqlalchemy as sa class DialectDateConversions: @classmethod def f(cls, func, i=0): """Generate a callable of a conversion function taking a specific index from the input data""" return lambda x, cls=cls, i=i: getattr(cls, func)(x[i]) @classmethod def raw_value(cls, v): return sa.literal(v) @classmethod def date_year_start(cls, v): raise NotImplementedError @classmethod def date_year_plus_year(cls, v): raise NotImplementedError @classmethod def datetime_year_end(cls, x): raise NotImplementedError @classmethod def date_month_start(cls, x): raise NotImplementedError @classmethod def date_month_plus_month(cls, x): raise NotImplementedError @classmethod def datetime_month_end(cls, x): raise NotImplementedError @classmethod def date_plus_day(cls, x): raise NotImplementedError @classmethod def datetime_day_end(cls, x): raise NotImplementedError @classmethod def datetime_hour_plus_hour(cls, x): raise NotImplementedError @classmethod def datetime_hour_end(cls, x): raise NotImplementedError @classmethod def datetime_minute_plus_minute(cls, x): raise NotImplementedError @classmethod def datetime_minute_end(cls, x): raise NotImplementedError @classmethod def get_year_criteria_conversions(cls): return { "=": [ [">=", cls.f("date_year_start")], ["<", cls.f("date_year_plus_year")], ], # NOTE: all of the conditions in the criteria replacement lists get AND'd together # so we can't simply do "x < 2020-01-01 or x >= 2021-01-01" "!=": [ ["not between", [cls.f("date_year_start"), cls.f("datetime_year_end")]] ], ">": [[">=", cls.f("date_year_plus_year")]], ">=": [[">=", cls.f("date_year_start")]], "<": [["<", cls.f("date_year_start")]], "<=": [["<", cls.f("date_year_plus_year")]], "between": [ [">=", cls.f("date_year_start")], ["<", cls.f("date_year_plus_year", i=1)], ], "not between": [ [ "not between", [cls.f("date_year_start"), cls.f("datetime_year_end", i=1)], ] ], } @classmethod def get_month_criteria_conversions(cls): return { "=": [ [">=", cls.f("date_month_start")], ["<", cls.f("date_month_plus_month")], ], "!=": [ [ "not between", [cls.f("date_month_start"), cls.f("datetime_month_end")], ] ], ">": [[">=", cls.f("date_month_plus_month")]], ">=": [[">=", cls.f("date_month_start")]], "<": [["<", cls.f("date_month_start")]], "<=": [["<", cls.f("date_month_plus_month")]], "between": [ [">=", cls.f("date_month_start")], ["<", cls.f("date_month_plus_month", i=1)], ], "not between": [ [ "not between", [cls.f("date_month_start"), cls.f("datetime_month_end", i=1)], ] ], } @classmethod def get_date_criteria_conversions(cls): return { "=": [[">=", cls.f("raw_value")], ["<", cls.f("date_plus_day")]], "!=": [["not between", [cls.f("raw_value"), cls.f("datetime_day_end")]]], ">": [[">=", cls.f("date_plus_day")]], ">=": [[">=", cls.f("raw_value")]], "<": [["<", cls.f("raw_value")]], "<=": [["<", cls.f("date_plus_day")]], "between": [[">=", cls.f("raw_value")], ["<", cls.f("date_plus_day", i=1)]], "not between": [ ["not between", [cls.f("raw_value"), cls.f("datetime_day_end", i=1)]] ], } @classmethod def get_hour_criteria_conversions(cls): return { "=": [[">=", cls.f("raw_value")], ["<", cls.f("datetime_hour_plus_hour")]], "!=": [["not between", [cls.f("raw_value"), cls.f("datetime_hour_end")]]], ">": [[">=", cls.f("datetime_hour_plus_hour")]], ">=": [[">=", cls.f("raw_value")]], "<": [["<", cls.f("raw_value")]], "<=": [["<", cls.f("datetime_hour_plus_hour")]], "between": [ [">=", cls.f("raw_value")], ["<", cls.f("datetime_hour_plus_hour", i=1)], ], "not between": [ ["not between", [cls.f("raw_value"), cls.f("datetime_hour_end", i=1)]] ], } @classmethod def get_minute_criteria_conversions(cls): return { "=": [ [">=", cls.f("raw_value")], ["<", cls.f("datetime_minute_plus_minute")], ], "!=": [["not between", [cls.f("raw_value"), cls.f("datetime_minute_end")]]], ">": [[">=", cls.f("datetime_minute_plus_minute")]], ">=": [[">=", cls.f("raw_value")]], "<": [["<", cls.f("raw_value")]], "<=": [["<", cls.f("datetime_minute_plus_minute")]], "between": [ [">=", cls.f("raw_value")], ["<", cls.f("datetime_minute_plus_minute", i=1)], ], "not between": [ ["not between", [cls.f("raw_value"), cls.f("datetime_minute_end", i=1)]] ], } @classmethod def get_datetime_criteria_conversions(cls): return { "=": [["=", cls.f("raw_value")]], "!=": [["!=", cls.f("raw_value")]], ">": [[">", cls.f("raw_value")]], ">=": [[">=", cls.f("raw_value")]], "<": [["<", cls.f("raw_value")]], "<=": [["<=", cls.f("raw_value")]], "between": [["between", [cls.f("raw_value"), cls.f("raw_value", i=1)]]], "not between": [ ["not between", [cls.f("raw_value"), cls.f("raw_value", i=1)]] ], } ================================================ FILE: zillion/dialects/duckdb.py ================================================ import sys import sqlalchemy as sa from sqlalchemy import func from sqlalchemy.dialects.postgresql import DATE, TIMESTAMP from sqlalchemy.sql.elements import Grouping from tlbx import st from zillion.dialects.conversions import DialectDateConversions # Have to add all the sa.literals to avoid compile errors while printing # queries: https://github.com/sqlalchemy/sqlalchemy/issues/5859 class DuckDBDialectDateConversions(DialectDateConversions): @classmethod def date_year_start(cls, x): return func.CAST(sa.literal(str(x) + "-01-01"), DATE) @classmethod def date_year_plus_year(cls, x): return Grouping( func.CAST(sa.literal(str(x) + "-01-01"), DATE) + func.to_years(1) ) @classmethod def datetime_year_end(cls, x): return Grouping( func.CAST(sa.literal(str(x) + "-01-01"), TIMESTAMP) + func.to_years(1) - func.to_seconds(1) ) @classmethod def date_month_start(cls, x): if sys.version_info >= (3, 12): return func.CAST(sa.literal(str(x) + "-01"), DATE) return func.strftime(func.CAST(sa.literal(str(x) + "-01"), DATE), "%Y-%m") @classmethod def date_month_plus_month(cls, x): if sys.version_info >= (3, 12): return Grouping( func.CAST(sa.literal(str(x) + "-01"), DATE) + func.to_months(1) ) return func.strftime( func.CAST(sa.literal(str(x) + "-01"), DATE) + func.to_months(1), "%Y-%m" ) @classmethod def datetime_month_end(cls, x): return Grouping( func.CAST(sa.literal(str(x) + "-01"), TIMESTAMP) + func.to_months(1) - func.to_seconds(1) ) @classmethod def date_plus_day(cls, x): return Grouping(func.CAST(sa.literal(str(x)), DATE) + func.to_days(1)) @classmethod def datetime_day_end(cls, x): return Grouping( func.CAST(sa.literal(str(x)), TIMESTAMP) + func.to_days(1) - func.to_seconds(1) ) @classmethod def datetime_hour_plus_hour(cls, x): return Grouping(func.CAST(sa.literal(str(x)), TIMESTAMP) + func.to_hours(1)) @classmethod def datetime_hour_end(cls, x): return Grouping( func.CAST(sa.literal(str(x)), TIMESTAMP) + func.to_hours(1) - func.to_seconds(1) ) @classmethod def datetime_minute_plus_minute(cls, x): return Grouping(func.CAST(sa.literal(str(x)), TIMESTAMP) + func.to_minutes(1)) @classmethod def datetime_minute_end(cls, x): return Grouping( func.CAST(sa.literal(str(x)), TIMESTAMP) + func.to_minutes(1) - func.to_seconds(1) ) DUCKDB_DIALECT_CONVERSIONS = { "year": { "ds_formula": "EXTRACT(YEAR FROM {})", "ds_criteria_conversions": DuckDBDialectDateConversions.get_year_criteria_conversions(), }, "quarter": "strftime({}, '%Y-Q') || date_part('quarter', {})", "quarter_of_year": "EXTRACT(QUARTER FROM {})", "month": { "ds_formula": "strftime({}, '%Y-%m')", "ds_criteria_conversions": DuckDBDialectDateConversions.get_month_criteria_conversions(), }, "month_name": "strftime({}, '%B')", "month_of_year": "EXTRACT(MONTH FROM {})", "week": "strftime({}, '%Y-W') || EXTRACT(WEEK FROM {})", "week_of_month": "EXTRACT(WEEK FROM {}) - EXTRACT(WEEK FROM CAST(DATE_TRUNC('month', {}) as date)) + 1", "week_of_year": "EXTRACT(WEEK FROM {})", # HACK: attempt to get tests compatible with mysql and sqlite "period_of_month_7d": "FLOOR((EXTRACT(DAY FROM {}) - 1) / 7) + 1", "date": { "ds_formula": "strftime({}, '%Y-%m-%d')", "ds_criteria_conversions": DuckDBDialectDateConversions.get_date_criteria_conversions(), }, "day_name": "strftime({}, '%A')", "day_of_week": "EXTRACT(ISODOW FROM {})", # Monday = 1 "is_weekday": ( "CASE EXTRACT(ISODOW FROM {}) " "WHEN 1 THEN 1 " "WHEN 2 THEN 1 " "WHEN 3 THEN 1 " "WHEN 4 THEN 1 " "WHEN 5 THEN 1 " "WHEN 6 THEN 0 " "WHEN 7 THEN 0 " "ELSE NULL " "END" ), "day_of_month": "EXTRACT(DAY FROM {})", "day_of_year": "EXTRACT(DOY FROM {})", "hour": { "ds_formula": "strftime({}, '%Y-%m-%d %H:00:00')", "ds_criteria_conversions": DuckDBDialectDateConversions.get_hour_criteria_conversions(), }, "hour_of_day": "EXTRACT(HOUR FROM {})", "minute": { "ds_formula": "strftime({}, '%Y-%m-%d %H:%M:00')", "ds_criteria_conversions": DuckDBDialectDateConversions.get_minute_criteria_conversions(), }, "minute_of_hour": "EXTRACT(MINUTE FROM {})", "datetime": { "ds_formula": "strftime({}, '%Y-%m-%d %H:%M:%S')", "ds_criteria_conversions": DuckDBDialectDateConversions.get_datetime_criteria_conversions(), }, "unixtime": "EXTRACT(epoch from {})", } ================================================ FILE: zillion/dialects/mysql.py ================================================ from sqlalchemy import func, text from zillion.dialects.conversions import DialectDateConversions class MySQLDialectDateConversions(DialectDateConversions): @classmethod def date_year_start(cls, x): return func.CONCAT(x, "-01-01") @classmethod def date_year_plus_year(cls, x): return func.DATE_ADD(str(x) + "-01-01", text("INTERVAL 1 YEAR")) @classmethod def datetime_year_end(cls, x): return func.DATE_SUB( func.DATE_ADD(str(x) + "-01-01", text("INTERVAL 1 YEAR")), text("INTERVAL 1 SECOND"), ) @classmethod def date_month_start(cls, x): return func.CONCAT(x, "-01") @classmethod def date_month_plus_month(cls, x): return func.DATE_ADD(str(x) + "-01", text("INTERVAL 1 MONTH")) @classmethod def datetime_month_end(cls, x): return func.DATE_SUB( func.DATE_ADD(str(x) + "-01", text("INTERVAL 1 MONTH")), text("INTERVAL 1 SECOND"), ) @classmethod def date_plus_day(cls, x): return func.DATE_ADD(x, text("INTERVAL 1 DAY")) @classmethod def datetime_day_end(cls, x): return func.DATE_SUB( func.DATE_ADD(x, text("INTERVAL 1 DAY")), text("INTERVAL 1 SECOND") ) @classmethod def datetime_hour_plus_hour(cls, x): return func.DATE_ADD(x, text("INTERVAL 1 HOUR")) @classmethod def datetime_hour_end(cls, x): return func.DATE_SUB( func.DATE_ADD(x, text("INTERVAL 1 HOUR")), text("INTERVAL 1 SECOND") ) @classmethod def datetime_minute_plus_minute(cls, x): return func.DATE_ADD(x, text("INTERVAL 1 MINUTE")) @classmethod def datetime_minute_end(cls, x): return func.DATE_SUB( func.DATE_ADD(x, text("INTERVAL 1 MINUTE")), text("INTERVAL 1 SECOND") ) MYSQL_DIALECT_CONVERSIONS = { "year": { "ds_formula": "EXTRACT(YEAR FROM {})", "ds_criteria_conversions": MySQLDialectDateConversions.get_year_criteria_conversions(), }, "quarter": "CONCAT(YEAR({}), '-Q', QUARTER({}))", "quarter_of_year": "EXTRACT(QUARTER FROM {})", "month": { "ds_formula": "DATE_FORMAT({}, '%Y-%m')", "ds_criteria_conversions": MySQLDialectDateConversions.get_month_criteria_conversions(), }, "month_name": "MONTHNAME({})", "month_of_year": "EXTRACT(MONTH FROM {})", "week": "CONCAT(YEAR({}), '-W', LPAD(WEEK({}, 1), 2, '0'))", "week_of_month": "WEEK({}, 1) - WEEK(DATE_FORMAT({},'%Y-%m-01'), 1) + 1", "week_of_year": "WEEK({}, 1)", # Monday week start "period_of_month_7d": "FLOOR((DAYOFMONTH({}) - 1) / 7) + 1", "date": { "ds_formula": "DATE_FORMAT({}, '%Y-%m-%d')", "ds_criteria_conversions": MySQLDialectDateConversions.get_date_criteria_conversions(), }, "day_name": "DAYNAME({})", "day_of_week": "WEEKDAY({}) + 1", # Monday = 1 "is_weekday": "IF((WEEKDAY({}) + 1) < 6, 1, 0)", # Monday = 1 "day_of_month": "EXTRACT(DAY FROM {})", "day_of_year": "DAYOFYEAR({})", "hour": { "ds_formula": "DATE_FORMAT({}, '%Y-%m-%d %H:00:00')", "ds_criteria_conversions": MySQLDialectDateConversions.get_hour_criteria_conversions(), }, "hour_of_day": "EXTRACT(HOUR FROM {})", "minute": { "ds_formula": "DATE_FORMAT({}, '%Y-%m-%d %H:%i:00')", "ds_criteria_conversions": MySQLDialectDateConversions.get_minute_criteria_conversions(), }, "minute_of_hour": "EXTRACT(MINUTE FROM {})", "datetime": { "ds_formula": "DATE_FORMAT({}, '%Y-%m-%d %H:%i:%S')", "ds_criteria_conversions": MySQLDialectDateConversions.get_datetime_criteria_conversions(), }, "unixtime": "UNIX_TIMESTAMP({})", } ================================================ FILE: zillion/dialects/postgresql.py ================================================ from sqlalchemy import func, text from sqlalchemy.dialects.postgresql import INTERVAL from sqlalchemy.sql.functions import concat from zillion.dialects.conversions import DialectDateConversions def get_interval(n, t): return func.cast(concat(n, f" {t}"), INTERVAL) class PostgreSQLDialectDateConversions(DialectDateConversions): @classmethod def date_year_start(cls, x): return func.TO_DATE(str(x) + "-01-01", "YYYY-MM-DD") @classmethod def date_year_plus_year(cls, x): return func.TO_DATE(str(x) + "-01-01", "YYYY-MM-DD") + get_interval(1, "YEARS") @classmethod def datetime_year_end(cls, x): return ( func.TO_DATE(str(x) + "-01-01", "YYYY-MM-DD") + get_interval(1, "YEARS") - get_interval(1, "SECONDS") ) @classmethod def date_month_start(cls, x): return func.TO_DATE(str(x) + "-01", "YYYY-MM") @classmethod def date_month_plus_month(cls, x): return func.TO_DATE(str(x) + "-01", "YYYY-MM") + get_interval(1, "MONTHS") @classmethod def datetime_month_end(cls, x): return ( func.TO_DATE(str(x) + "-01", "YYYY-MM") + get_interval(1, "MONTHS") - get_interval(1, "SECONDS") ) @classmethod def date_plus_day(cls, x): return func.TO_DATE(x, "YYYY-MM-DD") + get_interval(1, "DAYS") @classmethod def datetime_day_end(cls, x): return ( func.TO_DATE(x, "YYYY-MM-DD") + get_interval(1, "DAYS") - get_interval(1, "SECONDS") ) @classmethod def datetime_hour_plus_hour(cls, x): return func.TO_TIMESTAMP(x, "YYYY-MM-DD HH24:MI:SS") + get_interval(1, "HOURS") @classmethod def datetime_hour_end(cls, x): return ( func.TO_TIMESTAMP(x, "YYYY-MM-DD HH24:MI:SS") + get_interval(1, "HOURS") - get_interval(1, "SECONDS") ) @classmethod def datetime_minute_plus_minute(cls, x): return func.TO_TIMESTAMP(x, "YYYY-MM-DD HH24:MI:SS") + get_interval( 1, "MINUTES" ) @classmethod def datetime_minute_end(cls, x): return ( func.TO_TIMESTAMP(x, "YYYY-MM-DD HH24:MI:SS") + get_interval(1, "MINUTES") - get_interval(1, "SECONDS") ) POSTGRESQL_DIALECT_CONVERSIONS = { "year": { "ds_formula": "EXTRACT(YEAR FROM {})", "ds_criteria_conversions": PostgreSQLDialectDateConversions.get_year_criteria_conversions(), }, "quarter": "TO_CHAR({}, 'FMYYYY-\"Q\"Q')", "quarter_of_year": "EXTRACT(QUARTER FROM {})", "month": { "ds_formula": "TO_CHAR({}, 'FMYYYY-MM')", "ds_criteria_conversions": PostgreSQLDialectDateConversions.get_month_criteria_conversions(), }, "month_name": "TO_CHAR({}, 'FMMonth')", "month_of_year": "EXTRACT(MONTH FROM {})", "week": "TO_CHAR({}, 'FMYYYY-\"W\"IW')", "week_of_month": "EXTRACT(WEEK FROM {}) - EXTRACT(WEEK FROM CAST(DATE_TRUNC('month', {}) as date)) + 1", "week_of_year": "EXTRACT(WEEK FROM {})", # HACK: attempt to get tests compatible with mysql and sqlite "period_of_month_7d": "FLOOR((EXTRACT(DAY FROM {}) - 1) / 7) + 1", "date": { "ds_formula": "TO_CHAR({}, 'FMYYYY-MM-DD')", "ds_criteria_conversions": PostgreSQLDialectDateConversions.get_date_criteria_conversions(), }, "day_name": "TO_CHAR({}, 'FMDay')", "day_of_week": "EXTRACT(ISODOW FROM {})", # Monday = 1 "is_weekday": ( "CASE EXTRACT(ISODOW FROM {}) " "WHEN 1 THEN 1 " "WHEN 2 THEN 1 " "WHEN 3 THEN 1 " "WHEN 4 THEN 1 " "WHEN 5 THEN 1 " "WHEN 6 THEN 0 " "WHEN 7 THEN 0 " "ELSE NULL " "END" ), "day_of_month": "EXTRACT(DAY FROM {})", "day_of_year": "EXTRACT(DOY FROM {})", "hour": { "ds_formula": "TO_CHAR({}, 'FMYYYY-MM-DD HH24:00:00')", "ds_criteria_conversions": PostgreSQLDialectDateConversions.get_hour_criteria_conversions(), }, "hour_of_day": "EXTRACT(HOUR FROM {})", "minute": { "ds_formula": "TO_CHAR({}, 'FMYYYY-MM-DD HH24:MI:00')", "ds_criteria_conversions": PostgreSQLDialectDateConversions.get_minute_criteria_conversions(), }, "minute_of_hour": "EXTRACT(MINUTE FROM {})", "datetime": { "ds_formula": "TO_CHAR({}, 'FMYYYY-MM-DD HH24:MI:SS')", "ds_criteria_conversions": PostgreSQLDialectDateConversions.get_datetime_criteria_conversions(), }, "unixtime": "EXTRACT(epoch from {})", } ================================================ FILE: zillion/dialects/sqlite.py ================================================ from sqlalchemy import func from tlbx import st from zillion.dialects.conversions import DialectDateConversions class SQLiteDialectDateConversions(DialectDateConversions): @classmethod def date_year_start(cls, x): return func.DATE(str(x) + "-01-01") @classmethod def date_year_plus_year(cls, x): return func.DATE(str(x) + "-01-01", "+1 year") @classmethod def datetime_year_end(cls, x): return func.DATETIME(str(x) + "-01-01", "+1 year", "-1 second") @classmethod def date_month_start(cls, x): return func.DATE(str(x) + "-01") @classmethod def date_month_plus_month(cls, x): return func.DATE(str(x) + "-01", "+1 month") @classmethod def datetime_month_end(cls, x): return func.DATETIME(str(x) + "-01", "+1 month", "-1 second") @classmethod def date_plus_day(cls, x): return func.DATE(x, "+1 day") @classmethod def datetime_day_end(cls, x): return func.DATETIME(x, "+1 day", "-1 second") @classmethod def datetime_hour_plus_hour(cls, x): return func.DATETIME(x, "+1 hour") @classmethod def datetime_hour_end(cls, x): return func.DATETIME(x, "+1 hour", "-1 second") @classmethod def datetime_minute_plus_minute(cls, x): return func.DATETIME(x, "+1 minute") @classmethod def datetime_minute_end(cls, x): return func.DATETIME(x, "+1 minute", "-1 second") SQLITE_DIALECT_CONVERSIONS = { "year": { "ds_formula": "cast(strftime('%Y', {}) as integer)", "ds_criteria_conversions": SQLiteDialectDateConversions.get_year_criteria_conversions(), }, "quarter": "strftime('%Y', {}) || '-Q' || ((cast(strftime('%m', {}) as integer) + 2) / 3)", # 2020-Q1 "quarter_of_year": "(cast(strftime('%m', {}) as integer) + 2) / 3", "month": { "ds_formula": "strftime('%Y-%m', {})", "ds_criteria_conversions": SQLiteDialectDateConversions.get_month_criteria_conversions(), }, "month_name": ( "CASE strftime('%m', {}) " "WHEN '01' THEN 'January' " "WHEN '02' THEN 'February' " "WHEN '03' THEN 'March' " "WHEN '04' THEN 'April' " "WHEN '05' THEN 'May' " "WHEN '06' THEN 'June' " "WHEN '07' THEN 'July' " "WHEN '08' THEN 'August' " "WHEN '09' THEN 'September' " "WHEN '10' THEN 'October' " "WHEN '11' THEN 'November' " "WHEN '12' THEN 'December' " "ELSE NULL " "END" ), "month_of_year": "cast(strftime('%m', {}) as integer)", "week": "strftime('%Y', {}) || '-W' || printf('%02d', cast(strftime('%W', {}) as integer) + 1)", "week_of_month": "cast(strftime('%W', {}) as integer) - cast(strftime('%W', strftime('%Y-%m-01', {})) as integer) + 1", "week_of_year": "cast(strftime('%W', {}) as integer)+1", "period_of_month_7d": "cast((cast(strftime('%d', {}) as integer) - 1) / 7 as integer) + 1", "date": { "ds_formula": "strftime('%Y-%m-%d', {})", "ds_criteria_conversions": SQLiteDialectDateConversions.get_date_criteria_conversions(), }, "day_name": ( "CASE cast(strftime('%w', {}) as integer) " "WHEN 0 THEN 'Sunday' " "WHEN 1 THEN 'Monday' " "WHEN 2 THEN 'Tuesday' " "WHEN 3 THEN 'Wednesday' " "WHEN 4 THEN 'Thursday' " "WHEN 5 THEN 'Friday' " "WHEN 6 THEN 'Saturday' " "ELSE NULL " "END" ), "day_of_week": "(cast(strftime('%w', {}) as integer) + 6) % 7 + 1", # Convert to Monday = 1 "is_weekday": ( "CASE cast(strftime('%w', {}) as integer) " "WHEN 0 THEN 0 " "WHEN 1 THEN 1 " "WHEN 2 THEN 1 " "WHEN 3 THEN 1 " "WHEN 4 THEN 1 " "WHEN 5 THEN 1 " "WHEN 6 THEN 0 " "ELSE NULL " "END" ), "day_of_month": "cast(strftime('%d', {}) as integer)", "day_of_year": "cast(strftime('%j', {}) as integer)", "hour": { "ds_formula": "strftime('%Y-%m-%d %H:00:00', {})", "ds_criteria_conversions": SQLiteDialectDateConversions.get_hour_criteria_conversions(), }, "hour_of_day": "cast(strftime('%H', {}) as integer)", "minute": { "ds_formula": "strftime('%Y-%m-%d %H:%M:00', {})", "ds_criteria_conversions": SQLiteDialectDateConversions.get_minute_criteria_conversions(), }, "minute_of_hour": "cast(strftime('%M', {}) as integer)", "datetime": { "ds_formula": "strftime('%Y-%m-%d %H:%M:%S', {})", "ds_criteria_conversions": SQLiteDialectDateConversions.get_datetime_criteria_conversions(), }, "unixtime": "cast(strftime('%s', {}) as integer)", } ================================================ FILE: zillion/field.py ================================================ import sqlalchemy as sa from zillion.configs import ( ConfigMixin, FieldConfigSchema, FormulaFieldConfigSchema, MetricConfigSchema, FormulaMetricConfigSchema, DimensionConfigSchema, AdHocMetricSchema, AdHocFieldSchema, create_technical, is_active, default_field_display_name, ) from zillion.core import * from zillion.dialects import * from zillion.model import zillion_engine, DimensionValues from zillion.sql_utils import ( aggregation_to_sqla_func, contains_aggregation, contains_sql_keywords, type_string_to_sa_type, to_generic_sa_type, sqla_compile, column_fullname, ) MAX_FORMULA_DEPTH = 5 # This default warehouse ID is used if no ID has been populated # on the Warehouse when checking dimension values. FIELD_VALUE_DEFAULT_WAREHOUSE_ID = 0 FIELD_VALUE_CHECK_OPERATIONS = set(["=", "!=", "in", "not in"]) class Field(ConfigMixin, PrintMixin): """Represents the concept a column is capturing, which may be shared by columns in other tables or datasources. For example, you may have a several columns in your databases/tables that represent the concept of "revenue". In other words, a column is like an instance of a Field. **Parameters:** * **name** - (*str*) The name of the field * **type** - (*str or SQLAlchemy type*) The column type for the field. * **display_name** - (*str, optional*) The display name of the field * **description** - (*str, optional*) The description of the field * **meta** - (*dict, optional*) A dict of additional custom attributes * **kwargs** - Additional attributes stored on the field object **Attributes:** * **name** - (*str*) The name of the field * **type** - (*str*) A string representing the generic SQLAlchemy type * **display_name** - (*str, optional*) The display name of the field * **description** - (*str, optional*) The description of the field * **meta** - (*dict, optional*) A dict of additional custom attributes * **sa_type** - (*SQLAlchemy type*) If a dialect-specific type object is passed in on init it will be coerced to a generic type. * **field_type** - (*str*) A valid FieldType string * **schema** - (*Marshmallow schema*) A FieldConfigSchema class """ repr_attrs = ["name", "type"] field_type = None schema = FieldConfigSchema @initializer def __init__( self, name, type, display_name=None, description=None, meta=None, **kwargs ): self.sa_type = None if isinstance(type, str): self.sa_type = type_string_to_sa_type(type) elif type: self.sa_type = to_generic_sa_type(type) self.type = repr(self.sa_type) # This will do schema validation super().__init__() def copy(self): """Copy this field""" return self.__class__.from_config(self.to_config()) def get_all_raw_fields(self, warehouse, adhoc_fms=None): """Get all raw fields involved in calculating this field. **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse that will contain all relevant fields * **adhoc_fms** - (*list, optional*) A list of FieldManagers **Returns:** (*set*) - The set of all raw fields that make up this field. """ res, _ = self.get_formula_fields(warehouse, adhoc_fms=adhoc_fms) if not res: res = {self.name} return res def get_formula_fields(self, warehouse, depth=0, adhoc_fms=None): """Get the fields that are part of this field's formula **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse that will contain all relevant fields * **depth** - (*int, optional*) Track the depth of recursion into the formula * **adhoc_fms** - (*list, optional*) A list of FieldManagers **Returns:** (*set, str*) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields). """ return None, None def get_ds_expression(self, column, label=True, ignore_formula=False): """Get the datasource-level sql expression for this field **Parameters:** * **column** - (*Column*) A SQLAlchemy column that supports this field * **label** - (*bool, optional*) If true, label the expression with the field name * **ignore_formula** - (*bool, optional*) If true, don't apply any available datasource formulas """ ds_formula = column.zillion.field_ds_formula(self.name) if ignore_formula or (not ds_formula): if label: return column.label(self.name) return column if contains_sql_keywords(ds_formula): raise DisallowedSQLException( "Formula contains disallowed sql: %s" % ds_formula ) if not (ds_formula.startswith("(") and ds_formula.endswith("(")): ds_formula = "(" + ds_formula + ")" if label: return sa.literal_column(ds_formula).label(self.name) return sa.literal_column(ds_formula) def get_final_select_clause(self, *args, **kwargs): """The sql clause used when selecting at the combined query layer""" return self.name # https://stackoverflow.com/questions/2909106/whats-a-correct-and-good-way-to-implement-hash def __key(self): return self.name def __hash__(self): return hash(self.__key()) def __eq__(self, other): return isinstance(self, type(other)) and self.__key() == other.__key() class Metric(Field): """Fields that represent values to be measured and possibly broken down along Dimensions **Parameters:** * **name** - (*str*) The name of the field * **type** - (*str or SQLAlchemy type*) The column type for the field * **display_name** - (*str, optional*) The display name of the field * **description** - (*str, optional*) The description of the field * **meta** - (*dict, optional*) A dict of additional custom attributes * **aggregation** - (*str, optional*) The AggregationType to apply to the metric * **rounding** - (*int, optional*) If specified, the number of decimal places to round to * **weighting_metric** - (*str, optional*) A reference to a metric to use for weighting when aggregating averages * **technical** - (*object, optional*) A Technical object or definition used to defined a technical computation to be applied to the metric * **required_grain** - (*list of str, optional*) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this metric. * **ifnull** - (*float, optional*) A numeric value to use in place of NULLs in the Combined Layer query. * **kwargs** - kwargs passed to super class """ field_type = FieldTypes.METRIC schema = MetricConfigSchema def __init__( self, name, type, display_name=None, description=None, meta=None, aggregation=AggregationTypes.SUM, rounding=None, weighting_metric=None, technical=None, required_grain=None, ifnull=None, **kwargs, ): if weighting_metric: raiseifnot( aggregation == AggregationTypes.MEAN, 'Weighting metrics are only supported for "%s" aggregation type' % AggregationTypes.MEAN, ) if technical: technical = create_technical(technical) super(Metric, self).__init__( name, type, display_name=display_name, description=description, meta=meta, aggregation=aggregation, rounding=rounding, weighting_metric=weighting_metric, technical=technical, required_grain=required_grain, ifnull=ifnull, **kwargs, ) def get_all_raw_fields(self, warehouse, adhoc_fms=None): """Get all raw fields involved in calculating this field. **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse that will contain all relevant fields * **adhoc_fms** - (*list, optional*) A list of FieldManagers **Returns:** (*set*) - The set of all raw fields that make up this field. """ res, _ = self.get_formula_fields(warehouse, adhoc_fms=adhoc_fms) if not res: res = {self.name} if self.weighting_metric: weighting_field = warehouse.get_field(self.weighting_metric) res |= weighting_field.get_all_raw_fields(warehouse, adhoc_fms=adhoc_fms) return res def get_ds_expression(self, column, label=True): """Get the datasource-level sql expression for this metric **Parameters:** * **column** - (*Column*) A SQLAlchemy column that supports this metric * **label** - (*bool, optional*) If true, label the expression with the field name """ expr = column aggr = aggregation_to_sqla_func(self.aggregation) skip_aggr = False ds_formula = column.zillion.field_ds_formula(self.name) if ds_formula: if contains_sql_keywords(ds_formula): raise DisallowedSQLException( "Formula contains disallowed sql: %s" % ds_formula ) if contains_aggregation(ds_formula): dbg("Datasource formula contains aggregation, skipping default logic") skip_aggr = True expr = sa.literal_column(ds_formula) if not skip_aggr: if self.aggregation in [ AggregationTypes.COUNT, AggregationTypes.COUNT_DISTINCT, ]: if self.rounding: dbg("Ignoring rounding for count field: %s" % self.name) if label: return aggr(expr).label(self.name) return aggr(expr) if self.weighting_metric: w_column = get_table_field_column(column.table, self.weighting_metric) w_ds_formula = w_column.zillion.field_ds_formula(self.weighting_metric) if w_ds_formula and contains_aggregation(w_ds_formula): dbg( f"Weighting field {self.weighting_metric} contains aggregation, skipping ds-level weighting" ) expr = aggr(expr) else: # Perform weighting in the datasource formula w_column_name = column_fullname(w_column) # NOTE: 1.0 multiplication is a hack to ensure results are not rounded # to integer values improperly by some database dialects such as sqlite expr = sa.func.SUM( sa.text("1.0") * expr * sa.text(w_column_name) ) / sa.func.SUM(sa.text(w_column_name)) else: expr = aggr(expr) if label: return expr.label(self.name) return expr def get_final_select_clause(self, *args, ifnull_clause=None, **kwargs): """The sql clause used when selecting at the combined query layer""" if self.ifnull is not None: return ifnull_clause(self.name, self.ifnull) return self.name class Dimension(Field): """Fields that represent attributes of data that are used for grouping or filtering **Parameters:** * **name** - (*str*) The name of the field * **type** - (*str or SQLAlchemy type*) The column type for the field. * **display_name** - (*str, optional*) The display name of the field * **description** - (*str, optional*) The description of the field * **values** - (*str or list, optional*) A list of allowed dimension values or a name of a callable to provide a list of values * **sorter** - (*str, optional*) A reference to an importable callable that accepts three arguments: (warehouse ID, dimension object, values). Currently values is a pandas Series and the callable is expected to return a Series. See `zillion.field.sort_by_value_order` for an example. * **meta** - (*dict, optional*) A dict of additional custom attributes * **kwargs** - Additional attributes stored on the field object """ field_type = FieldTypes.DIMENSION schema = DimensionConfigSchema @initializer def __init__( self, name, type, display_name=None, description=None, values=None, sorter=None, meta=None, **kwargs, ): if values and isinstance(values, list): self.values = set(self.values) self._values_func = None super(Dimension, self).__init__( name, type, display_name=display_name, description=description, values=values, sorter=sorter, meta=meta, **kwargs, ) def get_values(self, warehouse_id, refresh=False): """Get allowed values for this Dimension **Parameters:** * **warehouse_id** - (*int*) A zillion warehouse ID * **refresh** - (*bool, optional*) Refresh the values if applicable **Returns:** (*list or None*) - A list of valid values or None if no value restrictions have been set. """ if self.values is None: return None if isinstance(self.values, str): func = import_object(self.values) self._values_func = func self.values = func(warehouse_id, self) elif refresh and self._values_func: self.values = func(warehouse_id, self) return self.values def is_valid_value(self, warehouse_id, value, ignore_none=True): """Check if a value is allowed for this Dimension **Parameters:** * **warehouse_id** - (*int*) A zillion warehouse ID * **value** - (*any*) Check if this value or list of values is valid * **ignore_none** - (*bool*) If True, consider value=None to always be valid. **Returns:** (*bool*) - True if the dimension value is valid """ if ignore_none and value is None: return True allowed_values = self.get_values(warehouse_id) if not allowed_values: return True values = value if isinstance(value, (list, tuple)) else [value] for test_value in values: if ignore_none and test_value is None: continue if test_value not in allowed_values: return False return True def sort(self, warehouse_id, values): """Sort the given dimension values according to the sorter **Parameters:** * **warehouse_id** - (*int*) A zillion warehouse ID * **values** - (*Series*) A pandas Series of values to sort **Returns:** (*Series*) - A pandas Series representing the sort order """ raiseifnot(self.sorter, "No sorter defined on Dimension") func = import_object(self.sorter) return func(warehouse_id, self, values) class FormulaField(Field): """A field defined by a formula **Parameters:** * **name** - (*str*) The name of the field * **formula** - (*str*) The formula used to calculate the field * **kwargs** - kwargs passed to the super class """ repr_attrs = ["name", "formula"] schema = FormulaFieldConfigSchema def __init__(self, name, formula, **kwargs): super(FormulaField, self).__init__(name, None, formula=formula, **kwargs) def get_formula_fields(self, warehouse, depth=0, adhoc_fms=None): """Get the fields that are part of this field's formula **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse that will contain all relevant fields * **depth** - (*int, optional*) Track the depth of recursion into the formula * **adhoc_fms** - (*list, optional*) A list of FieldManagers **Returns:** (*set, str*) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields). """ if depth > MAX_FORMULA_DEPTH: raise MaxFormulaDepthException raw_formula = self.formula raw_fields = set() formula_fields = get_string_format_args(self.formula) field_formula_map = {} for field_name in formula_fields: field = warehouse.get_field(field_name, adhoc_fms=adhoc_fms) if getattr(field, "technical", None): raise InvalidFieldException( "Formula field %s contains field with technical: %s" % (self.name, field.name) ) if isinstance(field, FormulaField): try: sub_fields, sub_formula = field.get_formula_fields( warehouse, depth=depth + 1, adhoc_fms=adhoc_fms ) except MaxFormulaDepthException: if depth != 0: raise raise MaxFormulaDepthException( "Maximum formula recursion depth exceeded for %s: %s" % (self.name, self.formula) ) for sub_field in sub_fields: raw_fields.add(sub_field) field_formula_map[field_name] = "(" + sub_formula + ")" else: field_formula_map[field_name] = "{" + field_name + "}" raw_fields.add(field_name) raw_formula = self.formula.format(**field_formula_map) return raw_fields, raw_formula def get_ds_expression(self, *args, **kwargs): """Raise an error if called on FormulaFields""" raise ZillionException("Formula-based Fields do not support get_ds_expression") def get_final_select_clause(self, warehouse, adhoc_fms=None, **kwargs): """Get a SQL select clause for this formula **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse that will contain all relevant fields * **adhoc_fms** - (*list, optional*) A list of FieldManagers **Returns:** (*SQLAlchemy clause*) - A compiled sqlalchemy clause for the formula """ formula_fields, raw_formula = self.get_formula_fields( warehouse, adhoc_fms=adhoc_fms ) format_args = {k: k for k in formula_fields} formula = raw_formula.format(**format_args) if contains_sql_keywords(formula): raise DisallowedSQLException( "Formula contains disallowed sql: %s" % formula ) return sqla_compile(sa.text(formula)) def _check_formula_fields(self, warehouse, adhoc_fms=None): """Check that all underlying fields exist in the warehouse""" fields, _ = self.get_formula_fields(warehouse, adhoc_fms=adhoc_fms) if not fields: raise InvalidFieldException( "No fields found in formula for field:%s formula:%s" % (self.name, self.formula) ) for field in fields: warehouse.get_field(field, adhoc_fms=adhoc_fms) return fields class FormulaDimension(FormulaField): """A dimension defined by a formula""" field_type = FieldTypes.DIMENSION def _check_formula_fields(self, warehouse, adhoc_fms=None): """Confirm a valid dimension formula""" fields = super(FormulaDimension, self)._check_formula_fields( warehouse, adhoc_fms=adhoc_fms ) for field in fields: if warehouse.has_metric(field, adhoc_fms=adhoc_fms): raise InvalidFieldException( "FormulaDimension can not contain metrics: field:%s formula:%s" % (self.name, self.formula) ) return fields class FormulaMetric(FormulaField): """A metric defined by a formula **Parameters:** * **name** - (*str*) The name of the metric * **formula** - (*str*) The formula used to calculate the metric * **display_name** - (*str, optional*) The display name of the field * **description** - (*str, optional*) The description of the field * **meta** - (*dict, optional*) A dict of additional custom attributes * **aggregation** - (*str, optional*) The AggregationType to apply to the metric * **rounding** - (*int, optional*) If specified, the number of decimal places to round to * **weighting_metric** - (*str, optional*) A reference to a metric to use for weighting when aggregating averages * **technical** - (*object, optional*) A Technical object or definition used to defined a technical computation to be applied to the metric * **required_grain** - (*list of str, optional*) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this metric. * **kwargs** - kwargs passed to super class """ repr_attrs = ["name", "formula", "aggregation", "technical"] field_type = FieldTypes.METRIC schema = FormulaMetricConfigSchema def __init__( self, name, formula, display_name=None, description=None, meta=None, aggregation=AggregationTypes.SUM, rounding=None, weighting_metric=None, technical=None, required_grain=None, **kwargs, ): if technical: technical = create_technical(technical) super(FormulaMetric, self).__init__( name, formula, display_name=display_name, description=description, meta=meta, aggregation=aggregation, rounding=rounding, weighting_metric=weighting_metric, technical=technical, required_grain=required_grain, **kwargs, ) def get_all_raw_fields(self, warehouse, adhoc_fms=None): """Get all raw fields involved in calculating this field. **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse that will contain all relevant fields * **adhoc_fms** - (*list, optional*) A list of FieldManagers **Returns:** (*set*) - The set of all raw fields that make up this field. """ res, _ = self.get_formula_fields(warehouse, adhoc_fms=adhoc_fms) if not res: res = {self.name} if self.weighting_metric: weighting_field = warehouse.get_field(self.weighting_metric) res |= weighting_field.get_all_raw_fields(warehouse, adhoc_fms=adhoc_fms) return res class AdHocField(FormulaField): """An ad hoc representation of a field""" @classmethod def create(cls, obj): """Copy this AdHocField""" schema = AdHocFieldSchema() field_def = schema.load(obj) return cls( field_def["name"], field_def["formula"], display_name=field_def["display_name"], description=field_def["description"], ) class AdHocMetric(FormulaMetric): """An ad hoc representation of a Metric **Parameters:** * **name** - (*str*) The name of the metric * **formula** - (*str*) The formula used to calculate the metric * **display_name** - (*str, optional*) The display name of the field * **description** - (*str, optional*) The description of the field * **meta** - (*dict, optional*) A dict of additional custom attributes * **aggregation** - (*str, optional*) The AggregationType to apply to the metric * **technical** - (*object, optional*) A Technical object or definition used to defined a technical computation to be applied to the metric * **rounding** - (*int, optional*) If specified, the number of decimal places to round to * **weighting_metric** - (*str, optional*) A reference to a metric to use for weighting when aggregating averages * **required_grain** - (*list of str, optional*) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this metric. """ schema = AdHocMetricSchema def __init__( self, name, formula, display_name=None, description=None, meta=None, aggregation=AggregationTypes.SUM, technical=None, rounding=None, weighting_metric=None, required_grain=None, ): """Init an AdHoc representation of a Metric""" super(AdHocMetric, self).__init__( name, formula, display_name=display_name, description=description, meta=meta, aggregation=aggregation, technical=technical, rounding=rounding, weighting_metric=weighting_metric, required_grain=required_grain, ) @classmethod def create(cls, obj): """Create an AdHocMetric from an AdHocMetricSchema dict""" schema = AdHocMetricSchema() field_def = schema.load(obj) return cls( field_def["name"], field_def["formula"], display_name=field_def["display_name"], description=field_def["description"], meta=field_def["meta"], aggregation=field_def["aggregation"], technical=field_def["technical"], rounding=field_def["rounding"], weighting_metric=field_def["weighting_metric"], required_grain=field_def["required_grain"], ) class AdHocDimension(FormulaDimension): """An ad hoc representation of a Dimension""" field_type = FieldTypes.DIMENSION @classmethod def create(cls, obj): """Copy this AdHocDimension""" schema = AdHocFieldSchema() field_def = schema.load(obj) return cls( field_def["name"], field_def["formula"], display_name=field_def["display_name"], description=field_def["description"], ) def create_metric(metric_def): """Create a Metric object from a dict of params **Parameters:** * **metric_def** - (*dict*) A dict of params to init a Metric. If a formula param is present a FormulaMetric will be created. """ if "formula" in metric_def: metric = FormulaMetric.from_config(metric_def) else: metric = Metric.from_config(metric_def) return metric def create_dimension(dim_def): """Create a Dimension object from a dict of params **Parameters:** * **dim_def** - (*dict*) A dict of params to init a Dimension. If a formula param is present a FormulaDimension will be created. """ if "formula" in dim_def: dimension = FormulaDimension.from_config(dim_def) else: dimension = Dimension.from_config(dim_def) return dimension class FieldManagerMixin: """An interface for managing fields (metrics and dimensions) stored on an object. **Attributes:** * **metrics_attr** - (*str*) The name of the attribute where metrics are stored * **dimensions_attr** - (*str*) The name of the attribute where dimensions are stored """ metrics_attr = "_metrics" dimensions_attr = "_dimensions" def get_child_field_managers(self): """Get a list of child FieldManagers""" return [] def get_field_managers(self, adhoc_fms=None): """Get a list of all child FieldManagers including adhoc""" return self.get_child_field_managers() + (adhoc_fms or []) def get_direct_metrics(self): """Get metrics directly stored on this FieldManager""" return getattr(self, self.metrics_attr) def get_direct_dimensions(self): """Get dimensions directly stored on this FieldManager""" return getattr(self, self.dimensions_attr) def directly_has_metric(self, name): """Check if this FieldManager directly stores this metric""" return name in getattr(self, self.metrics_attr) def directly_has_dimension(self, name): """Check if this FieldManager directly stores this dimension""" return name in getattr(self, self.dimensions_attr) def directly_has_field(self, name): """Check if this FieldManager directly stores this field""" return name in getattr(self, self.metrics_attr) or name in getattr( self, self.dimensions_attr ) def print_metrics(self, indent=None): """Print all metrics in this FieldManager""" print(format_msg(getattr(self, self.metrics_attr), label=None, indent=indent)) def print_dimensions(self, indent=None): """Print all dimensions in this FieldManager""" print( format_msg(getattr(self, self.dimensions_attr), label=None, indent=indent) ) def has_metric(self, name, adhoc_fms=None): """Check whether a metric is contained in this FieldManager""" if self.directly_has_metric(name): return True for fm in self.get_field_managers(adhoc_fms=adhoc_fms): if fm.has_metric(name): return True return False def has_dimension(self, name, adhoc_fms=None): """Check whether a dimension is contained in this FieldManager""" if self.directly_has_dimension(name): return True for fm in self.get_field_managers(adhoc_fms=adhoc_fms): if fm.has_dimension(name): return True return False def has_field(self, name, adhoc_fms=None): """Check whether a field is contained in this FieldManager""" if self.directly_has_field(name): return True for fm in self.get_field_managers(adhoc_fms=adhoc_fms): if fm.has_field(name): return True return False def get_metric(self, obj, adhoc_fms=None): """Get a reference to a metric on this FieldManager. If the object passed is a dict it is expected to define an AdHocMetric.""" if isinstance(obj, str): if self.directly_has_metric(obj): return getattr(self, self.metrics_attr)[obj] for fm in self.get_field_managers(adhoc_fms=adhoc_fms): if fm.has_metric(obj): return fm.get_metric(obj) raise InvalidFieldException("Invalid metric name: %s" % obj) if isinstance(obj, dict): metric = AdHocMetric.create(obj) raiseif( self.has_metric(metric.name, adhoc_fms=adhoc_fms), "AdHocMetric can not use name of an existing metric: %s" % metric.name, ) metric._check_formula_fields(self, adhoc_fms=adhoc_fms) return metric raise InvalidFieldException("Invalid metric object: %s" % obj) def get_dimension(self, obj, adhoc_fms=None): """Get a reference to a dimension on this FieldManager""" if isinstance(obj, str): if self.directly_has_dimension(obj): return getattr(self, self.dimensions_attr)[obj] for fm in self.get_field_managers(adhoc_fms=adhoc_fms): if fm.has_dimension(obj): return fm.get_dimension(obj) raise InvalidFieldException("Invalid dimension name: %s" % obj) if isinstance(obj, dict): dim = AdHocDimension.create(obj) raiseif( self.has_dimension(dim.name, adhoc_fms=adhoc_fms), "AdHocDimension can not use name of an existing dimension: %s" % dim.name, ) dim._check_formula_fields(self, adhoc_fms=adhoc_fms) return dim raise InvalidFieldException("Invalid dimension object: %s" % obj) def get_field(self, obj, adhoc_fms=None): """Get a reference to a field on this FieldManager""" if isinstance(obj, str): if self.has_metric(obj, adhoc_fms=adhoc_fms): return self.get_metric(obj, adhoc_fms=adhoc_fms) if self.has_dimension(obj, adhoc_fms=adhoc_fms): return self.get_dimension(obj, adhoc_fms=adhoc_fms) raise InvalidFieldException("Invalid field name: %s" % obj) if isinstance(obj, dict): field = AdHocField.create(obj) raiseif( self.has_field(field.name, adhoc_fms=adhoc_fms), "AdHocField can not use name of an existing field: %s" % field.name, ) field._check_formula_fields(self, adhoc_fms=adhoc_fms) return field raise InvalidFieldException("Invalid field object: %s" % obj) def get_field_instances(self, field, adhoc_fms=None): """Get a dict of FieldManagers (including child and adhoc FMs) that support a field""" instances = {} if self.directly_has_field(field): instances[self] = self.get_field(field) for fm in self.get_field_managers(adhoc_fms=adhoc_fms): if fm.has_field(field): instances.update(fm.get_field_instances(field)) if not instances: raise InvalidFieldException("Invalid field name: %s" % field) return instances def get_metrics(self, adhoc_fms=None): """Get a dict of all metrics supported by this FieldManager""" metrics = {} for fm in self.get_field_managers(adhoc_fms=adhoc_fms): fm_metrics = fm.get_metrics() metrics.update(fm_metrics) metrics.update(getattr(self, self.metrics_attr)) return metrics def get_dimensions(self, adhoc_fms=None): """Get a dict of all dimensions supported by this FieldManager""" dimensions = {} for fm in self.get_field_managers(adhoc_fms=adhoc_fms): fm_dimensions = fm.get_dimensions() dimensions.update(fm_dimensions) dimensions.update(getattr(self, self.dimensions_attr)) return dimensions def get_fields(self, adhoc_fms=None): """Get a dict of all fields supported by this FieldManager""" fields = {} for fm in self.get_field_managers(adhoc_fms=adhoc_fms): fm_fields = fm.get_fields() fields.update(fm_fields) fields.update(getattr(self, self.metrics_attr)) fields.update(getattr(self, self.dimensions_attr)) return fields def get_direct_fields(self): """Get a dict of all fields directly supported by this FieldManager""" fields = {} fields.update(getattr(self, self.metrics_attr)) fields.update(getattr(self, self.dimensions_attr)) return fields def get_direct_metric_configs(self): """Get a dict of metric configs directly supported by this FieldManager""" return {f.name: f.to_config() for f in self.get_direct_metrics().values()} def get_direct_dimension_configs(self): """Get a dict of dimension configs directly supported by this FieldManager""" return {f.name: f.to_config() for f in self.get_direct_dimensions().values()} def get_metric_configs(self, adhoc_fms=None): """Get a dict of all metric configs supported by this FieldManager""" configs = {} for fm in self.get_field_managers(adhoc_fms=adhoc_fms): fm_configs = fm.get_metric_configs() configs.update(fm_configs) configs.update(self.get_direct_metric_configs()) return configs def get_dimension_configs(self, adhoc_fms=None): """Get a dict of all dimension configs supported by this FieldManager""" configs = {} for fm in self.get_field_managers(adhoc_fms=adhoc_fms): fm_configs = fm.get_dimension_configs() configs.update(fm_configs) configs.update(self.get_direct_dimension_configs()) return configs def get_metric_names(self, adhoc_fms=None): """Get a set of metric names supported by this FieldManager""" return set(self.get_metrics(adhoc_fms=adhoc_fms).keys()) def get_dimension_names(self, adhoc_fms=None): """Get a set of dimension names supported by this FieldManager""" return set(self.get_dimensions(adhoc_fms=adhoc_fms).keys()) def get_field_names(self, adhoc_fms=None): """Get a set of field names supported by this FieldManager""" return set(self.get_fields(adhoc_fms=adhoc_fms).keys()) def add_metric(self, metric, force=False): """Add a reference to a metric to this FieldManager""" if self.has_dimension(metric.name): raise InvalidFieldException( "Trying to add metric with same name as a dimension: %s" % metric.name ) if (not force) and self.has_metric(metric.name): warn("Metric %s already exists on %s" % (metric.name, self)) return getattr(self, self.metrics_attr)[metric.name] = metric def add_dimension(self, dimension, force=False): """Add a reference to a dimension to this FieldManager""" if self.has_metric(dimension.name): raise InvalidFieldException( "Trying to add dimension with same name as a metric: %s" % dimension.name ) if (not force) and self.has_dimension(dimension.name): warn("Dimension %s already exists on %s" % (dimension.name, self)) return getattr(self, self.dimensions_attr)[dimension.name] = dimension def _add_default_display_names(self, adhoc_fms=None, display_names=None): """Populate default display names on all fields""" fields = self.get_direct_fields() display_names = display_names or {} for field, config in fields.items(): if display_names.get(field, None) and not config.display_name: # Make sure we use consistent names if one was specified # in a parent field manager. config.display_name = display_names[field] else: default = default_field_display_name(field) config.display_name = config.display_name or default display_names[field] = config.display_name for fm in self.get_field_managers(adhoc_fms=adhoc_fms): fm._add_default_display_names(display_names=display_names) def _populate_global_fields(self, config, force=False): """Populate fields on this FieldManager from a config **Parameters:** * **config** - (*dict*) A config containing lists of metrics and/or dimensions to add to this FieldManager * **force** - (*bool, optional*) If true, overwrite fields that already exist """ formula_metrics = [] formula_dims = [] for metric_def in config.get("metrics", []): if isinstance(metric_def, dict): metric = create_metric(metric_def) else: raiseifnot( isinstance(metric_def, (Metric, FormulaMetric)), "Metric definition must be a dict-like object or a Metric object", ) metric = metric_def if isinstance(metric, FormulaMetric): formula_metrics.append(metric) # These get added later else: self.add_metric(metric, force=force) for dim_def in config.get("dimensions", []): if isinstance(dim_def, dict): dim = create_dimension(dim_def) else: raiseifnot( isinstance(dim_def, (Dimension, FormulaDimension)), "Dimension definition must be a dict-like object or a Dimension object", ) dim = dim_def if isinstance(dim, FormulaDimension): formula_dims.append(dim) # These get added later else: self.add_dimension(dim, force=force) # Defer formulas so params can be checked against existing fields for metric in formula_metrics: metric._check_formula_fields(self) self.add_metric(metric, force=force) for dim in formula_dims: dim._check_formula_fields(self) self.add_dimension(dim, force=force) def _find_field_sources(self, field, adhoc_fms=None): """Get a list of FieldManagers supporting a field. This will search the current FieldManager and all child/adhoc FMs. **Parameters:** * **field** - (*str*) The name of a field * **adhoc_fms** - (*list, optional*) A list of FieldManagers **Returns:** (*list*) - A list of FieldManagers that support the field """ sources = [] if self.directly_has_field(field): sources.append(self) for fm in self.get_field_managers(adhoc_fms=adhoc_fms): if fm.directly_has_field(field): sources.append(fm) return sources def get_table_metrics(fm, table, adhoc_fms=None): """Get a list of metrics supported by a table **Parameters:** * **fm** - (*FieldManager*) An object supporting the FieldManager interface * **table** - (*SQLAlchemy Table*) The table to get a list of supported dimensions for * **adhoc_fms** - (*list, optional*) AdHoc FieldManagers relevant to this request **Returns:** (*set*) - A set of metric names """ metrics = set() for col in table.c: if not is_active(col): continue for field in col.zillion.get_field_names(): if fm.has_metric(field, adhoc_fms=adhoc_fms): metrics.add(field) return metrics def get_table_dimensions(fm, table, adhoc_fms=None): """Get a list of dimensions supported by a table **Parameters:** * **fm** - (*FieldManager*) An object supporting the FieldManager interface * **table** - (*SQLAlchemy Table*) The table to get a list of supported dimensions for * **adhoc_fms** - (*list, optional*) AdHoc FieldManagers relevant to this request **Returns:** (*set*) - A set of dimension names """ dims = set() for col in table.c: if not is_active(col): continue for field in col.zillion.get_field_names(): if fm.has_dimension(field, adhoc_fms=adhoc_fms): dims.add(field) return dims def get_table_fields(table): """Get a list of field names supported by a table **Parameters:** * **table** - (*SQLAlchemy Table*) The table to get a list of supported fields for **Returns:** (*set*) - A set of field names """ fields = set() for col in table.c: if not is_active(col): continue for field in col.zillion.get_field_names(): fields.add(field) return fields def get_table_field_column(table, field_name): """Return the column within a table that supports a given field **Parameters:** * **table** - (*Table*) SQLAlchemy table onject * **field_name** - (*str*) The name of a field supported by the table **Returns:** (*Column*) - A SQLAlchemy column object """ for col in table.c: if not is_active(col): continue for field in col.zillion.get_field_names(): if field == field_name: return col raise ZillionException( "Field %s inactive or not found in table %s" % (field_name, table.fullname) ) def table_field_allows_grain(table, field, grain): """Check whether a field in a table is restricted by required_grain **Parameters:** * **table** - (*Table*) SQLAlchemy table object * **field** - (*str*) The name of a field in the table * **grain** - (*list of str*) A list of dimensions that form the target grain """ grain = grain or set() column = get_table_field_column(table, field) if not column.zillion.required_grain: return True if set(column.zillion.required_grain).issubset(grain): return True return False def values_from_db(warehouse_id, field): """Get allowed field values from the dimension_values table. If warehouse_id is `None` the warehouse_id is defaulted to the value of `zillion.field.FIELD_VALUE_DEFAULT_WAREHOUSE_ID`. This allows pulling dimension values even when a `Warehouse` has not been saved. **Parameters:** * **warehouse_id** - (*int*) A zillion warehouse ID * **field** - (*Field*) A zillion Dimension object **Returns:** (*list or None*) - A list of valid values or None if no row is found for this dimension. """ if warehouse_id is None: warehouse_id = FIELD_VALUE_DEFAULT_WAREHOUSE_ID s = sa.select(DimensionValues.c).where( sa.and_( DimensionValues.c.warehouse_id == warehouse_id, DimensionValues.c.name == field.name, ) ) conn = zillion_engine.connect() try: result = conn.execute(s) row = result.fetchone() if not row: return None return json.loads(row["values"]) finally: conn.close() def sort_by_value_order(warehouse_id, field, values): """Sort values by the order of the value list defined on the field **Parameters:** * **warehouse_id** - (*int*) A zillion warehouse ID * **field** - (*Field*) A zillion Field object * **values** - (*Series*) A pandas Series to sort **Returns:** (*Series*) - A pandas Series representing the sort order. If no value list is found for the field, the input values are returned as is. """ value_order = field.get_values(warehouse_id) if not value_order: return values mapping = {value: order for order, value in enumerate(value_order)} # In case a rollup row is present, include it in mapping and aim to # have it sort ~last mapping[ROLLUP_INDEX_LABEL] = float("inf") return values.map(mapping) def get_conversions_for_type(coltype): """Get all conversions for a particular column type **Parameters:** * **coltype** - A SQLAlchemy column type class **Returns:** (*dict*) - The conversion map for the given column type. Returns None if no conversions are found. """ for basetype, fields in TYPE_ALLOWED_CONVERSIONS.items(): if issubclass(coltype, basetype): return fields return None def replace_non_named_formula_args(formula, column): """Do formula arg replacement but raise an error if any named args are present""" format_args = get_string_format_args(formula) raiseif( any([x != "" for x in format_args]), "Formula has unexpected named format arguments: %s" % formula, ) if format_args: formula = formula.format(*[column_fullname(column) for i in format_args]) return formula def get_dialect_type_conversions(dialect, column): """Get all conversions supported by this column type for this dialect **Parameters:** * **dialect** - (*str*) SQLAlchemy dialect name * **column** - (*Column*) SQLAlchemy column object **Returns:** (*list*) - A list of dicts containing datasource formulas and criteria conversions for each field this column can be converted to """ coltype = type(column.type) conv_fields = get_conversions_for_type(coltype) if not conv_fields: return [] results = [] for field in conv_fields: field_name = field.name dialect_field_convs = DIALECT_CONVERSIONS[dialect].get(field_name, None) if not dialect_field_convs: continue if isinstance(dialect_field_convs, str): ds_formula = dialect_field_convs ds_criteria_conversions = None else: # Assumes dict ds_formula = dialect_field_convs.get("ds_formula", None) ds_criteria_conversions = dialect_field_convs.get( "ds_criteria_conversions", None ) raiseifnot( ds_formula or ds_criteria_conversions, "One of ds_formula or ds_criteria_conversions must be set on dialect conversions for %s/%s" % (dialect, field_name), ) if ds_formula: ds_formula = replace_non_named_formula_args(ds_formula, column) results.append( dict( field=field, ds_formula=ds_formula, ds_criteria_conversions=ds_criteria_conversions, ) ) return results DATETIME_CONVERSION_FIELDS = [ Dimension("year", "Integer", description="Year"), Dimension("quarter", "String(8)", description="Year and quarter (YYYY-QN)"), Dimension( "quarter_of_year", "SmallInteger", description="Numeric quarter of the year" ), Dimension("month", "String(8)", description="Year and month (YYYY-MM)"), Dimension( "month_name", "String(8)", description="Full name of the month", values=[ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ], sorter="zillion.field.sort_by_value_order", ), Dimension("month_of_year", "SmallInteger", description="Numeric month of the year"), Dimension( "week_of_month", "SmallInteger", description="Numeric calendar week of the month", ), Dimension("week", "String(8)", description="Year and week (YYYY-WN)"), Dimension( "week_of_year", "SmallInteger", description="Numeric calendar week of the year" ), Dimension( "period_of_month_7d", "SmallInteger", description="Numeric 7-day period of the month", ), Dimension("date", "String(10)", description="Date string formatted YYYY-MM-DD"), Dimension( "day_name", "String(10)", description="Full name of a day of the week", values=[ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", ], sorter="zillion.field.sort_by_value_order", ), Dimension( "day_of_week", "SmallInteger", description="Numeric day of the week (monday = 1)", ), Dimension( "is_weekday", "SmallInteger", description="Flag denoting whether the day is a weekday", ), Dimension("day_of_month", "SmallInteger", description="Numeric day of the month"), Dimension("day_of_year", "SmallInteger", description="Numeric day of the year"), Dimension( "hour", "String(20)", description="Datetime string rounded to the hour (YYYY-MM-DD HH:00:00)", ), Dimension("hour_of_day", "SmallInteger", description="Numeric hour of day (0-23)"), Dimension( "minute", "String(20)", description="Datetime string rounded to the minute (YYYY-MM-DD HH:MM:00)", ), Dimension( "minute_of_hour", "SmallInteger", description="Numeric minute of the hour" ), Dimension( "datetime", "String(20)", description="Datetime string formatted YYYY-MM-DD HH:MM:SS", ), # TODO: not fully tested/supported yet, ignore for now # Dimension("unixtime", "BigInteger", description="Unix time in seconds"), ] DATE_CONVERSION_FIELDS = [] for _dim in DATETIME_CONVERSION_FIELDS: if _dim.name == "hour": break DATE_CONVERSION_FIELDS.append(_dim) # Map all dialect-specific type conversions, including ds_formulas that can # be applied directly to columns (i.e. DATE(some_datetime) == '2020-01-01') # and ds_criteria_conversions that can apply conversions to criteria values # instead. # # Note: For date types: somewhat adhering to ISO 8601, but ignoring the "T" # between the date/time and not including timezone offsets for now because # zillion assumes everything is in the same timezone (or the datasource # formulas take care of aligning timezones). DIALECT_CONVERSIONS = { "duckdb": DUCKDB_DIALECT_CONVERSIONS, "sqlite": SQLITE_DIALECT_CONVERSIONS, "mysql": MYSQL_DIALECT_CONVERSIONS, "postgresql": POSTGRESQL_DIALECT_CONVERSIONS, } TYPE_ALLOWED_CONVERSIONS = { sa.DateTime: DATETIME_CONVERSION_FIELDS, sa.DATETIME: DATETIME_CONVERSION_FIELDS, sa.TIMESTAMP: DATETIME_CONVERSION_FIELDS, sa.Date: DATE_CONVERSION_FIELDS, sa.DATE: DATE_CONVERSION_FIELDS, } ================================================ FILE: zillion/model.py ================================================ nlp_installed = False import sqlalchemy as sa from zillion.core import zillion_config, nlp_installed zillion_engine = sa.create_engine(zillion_config["DB_URL"], pool_pre_ping=True) zillion_metadata = sa.MetaData() zillion_metadata.bind = zillion_engine Warehouses = sa.Table( "warehouses", zillion_metadata, sa.Column("id", sa.Integer, primary_key=True), sa.Column("name", sa.String(128), nullable=False, unique=True), sa.Column("params", sa.Text, nullable=False), sa.Column("meta", sa.Text), sa.Column("created_at", sa.DateTime, server_default=sa.func.NOW()), ) ReportSpecs = sa.Table( "report_specs", zillion_metadata, sa.Column("id", sa.Integer, primary_key=True), sa.Column("warehouse_id", sa.Integer, nullable=False), sa.Column("params", sa.Text, nullable=False), sa.Column("meta", sa.Text), sa.Column("created_at", sa.DateTime, server_default=sa.func.NOW()), ) DimensionValues = sa.Table( "dimension_values", zillion_metadata, sa.Column("name", sa.String(100), primary_key=True), sa.Column("warehouse_id", sa.Integer, primary_key=True), sa.Column("values", sa.Text, nullable=False), sa.Column("created_at", sa.DateTime, server_default=sa.func.NOW()), ) if nlp_installed: EmbeddingsCache = sa.Table( "embeddings_cache", zillion_metadata, sa.Column("text_hash", sa.String(100), primary_key=True), sa.Column("model", sa.String(100), primary_key=True), sa.Column("text", sa.Text, nullable=False), sa.Column("vector", sa.LargeBinary, nullable=False), sa.Column("created_at", sa.DateTime, server_default=sa.func.NOW()), ) zillion_metadata.create_all(zillion_engine) ================================================ FILE: zillion/nlp.py ================================================ from datetime import datetime, timedelta import hashlib import re import struct import time try: from qdrant_client import QdrantClient from qdrant_client.http import models as rest from qdrant_client.http.models import Distance, VectorParams from langchain.chains import LLMChain from langchain.embeddings.openai import OpenAIEmbeddings from langchain.llms import OpenAI, OpenAIChat from langchain.prompts import PromptTemplate from langchain.vectorstores import Qdrant from pydantic import Extra except ImportError: pass from sqlalchemy import and_ from sqlalchemy.schema import CreateTable from tlbx import raiseifnot, st, json, rgetkey from zillion.core import ( dbg, info, warn, error, zillion_config, nlp_installed, RollupTypes, FieldTypes, ) LLM_MAX_TOKENS = -1 LLM_REQUEST_TIMEOUT = 20 OPENAI_DAVINCI_MODEL_NAME = "text-davinci-003" OPENAI_VECTOR_SIZE = 1536 MIN_FIELD_SIMILARITY_SCORE = 0.8 DEFAULT_VECTOR_SIZE = OPENAI_VECTOR_SIZE DEFAULT_WAREHOUSE_COLLECTION_NAME = "default_warehouse_fields" embeddings_api = None def hash_text(text): """Hash a string to a 32-character hex string""" "" return hashlib.md5(text.encode("utf-8")).hexdigest() if nlp_installed: from zillion.model import ( EmbeddingsCache as EmbeddingsCacheTable, zillion_engine, ) class EmbeddingsCache: """ A cache for embeddings. This is a wrapper around a database table that stores embeddings for text. It also provides a cache for embeddings that have been retrieved from the database. **Parameters:** * **table** - (*SQLAlchemy Table*) The database table to use for the cache * **model** - (*str*) The model to use for the embeddings * **binary** - (*bool, optional) Whether embeddings are store in binary format * **binary_size** - (*int, optional) The size of the vector for converting to/from binary """ def __init__( self, table, model, binary=True, binary_size=DEFAULT_VECTOR_SIZE, ): self.table = table self.model = model self.binary = binary self.binary_size = binary_size self.conn = zillion_engine.connect() self.init_cache() @classmethod def get_text_hash(cls, text): """Get the hash of a text string""" return hash_text(text) @property def cache(self): if not hasattr(self, "_cache"): self._cache = {} return self._cache @cache.setter def cache(self, value): self._cache = value def decode(self, blob): """Decode a binary blob into a list of floats""" return struct.unpack("f" * self.binary_size, blob) def encode(self, values): """Encode a list of floats into a binary blob""" return struct.pack("f" * self.binary_size, *values) def init_cache(self): """Initialize the in-memory cache""" stmt = self.table.select() result = self.conn.execute(stmt).fetchall() for row in result: text_hash = row["text_hash"] vector = row["vector"] if self.binary: vector = self.decode(vector) self.cache[(text_hash, self.model)] = vector info(f"Initialized embeddings cache with {len(self.cache)} records") def _get_key(self, text): """Get the in-memory cache key. Matches the unique/primary key of the cache database table""" return (self.get_text_hash(text), self.model) def __getitem__(self, key): """Get an embedding from the cache. If it's not in the cache, it will be retrieved from the database. **Parameters:** * **key** - (*str*) The text to get the embedding for **Returns:** * (*list*) The embedding vector """ cache_key = self._get_key(key) text_hash, _ = cache_key value = self.cache.get(cache_key) if value is None: stmt = self.table.select().where( and_( self.table.c.text_hash == text_hash, self.table.c.model == self.model, ) ) result = self.conn.execute(stmt).fetchone() if result: value = result["vector"] if self.binary: value = self.decode(value) self.cache[cache_key] = value return value def __setitem__(self, key, value): """Set an embedding in the cache. If it's not in the cache, it will be added to the database. **Parameters:** * **key** - (*str*) The text to set the embedding for * **value** - (*list*) The embedding vector """ record = self.__getitem__(key) cache_key = self._get_key(key) text_hash, _ = cache_key if self.binary: vector = self.encode(value) if record: stmt = ( self.table.update() .where( and_( self.table.c.text_hash == text_hash, self.table.c.model == self.model, ) ) .values(vector=vector, text=key) ) else: stmt = self.table.insert().values( text_hash=text_hash, model=self.model, text=key, vector=vector ) self.conn.execute(stmt) self.cache[cache_key] = value def __delitem__(self, key): """Delete an embedding from the cache **Parameters:** * **key** - (*str*) The text to delete the embedding for """ cache_key = self._get_key(key) text_hash, _ = cache_key stmt = self.table.delete().where(self.table.c.text_hash == text_hash) self.conn.execute(stmt) if cache_key in self.cache: del self.cache[cache_key] class OpenAIEmbeddingsCached(OpenAIEmbeddings): """OpenAI Embeddings with a cache for faster retrieval and to avoid extra API calls""" class Config: """Configuration for this pydantic object.""" extra = Extra.allow def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._cache = EmbeddingsCache( EmbeddingsCacheTable, self.query_model_name, binary=True, binary_size=OPENAI_VECTOR_SIZE, ) def embed_query(self, query): """Embed a query and cache the result""" res = self._cache[query] if res: return res embedding = super().embed_query(query) self._cache[query] = embedding return embedding def embed_documents(self, documents): """Embed documents and cache the results""" uncached = [d for d in documents if not self._cache[d]] info(f"Embedding {len(uncached)}/{len(documents)} uncached documents") if uncached: embeddings = super().embed_documents(uncached) for document, embedding in zip(uncached, embeddings): self._cache[document] = embedding return [self._cache[d] for d in documents] class QdrantCustom(Qdrant): """Qdrant with custom ID generation and bulk embedding""" @classmethod def get_id(cls, text): """Get the hash of a text string to use as an ID""" return hash_text(text) def add_texts(self, texts, metadatas=None, bulk_embedder=None): """Add texts to Qdrant. If a bulk embedder is provided, it will be used to embed the texts in bulk. Otherwise, the texts will be embedded one at a time. **Parameters:** * **texts** - (*list*) List of texts to add to Qdrant * **metadatas** - (*list, optional*) List of metadata dictionaries to add to Qdrant * **bulk_embedder - (*callable, optional*) A function that takes a list of texts and returns a list of embeddings **Returns:** * **ids** - (*list*) List of IDs for the texts added to Qdrant """ ids = [self.get_id(text) for text in texts] if bulk_embedder: vectors = bulk_embedder(texts) else: vectors = [self.embedding_function(text) for text in texts] payloads = self._build_payloads( texts, metadatas, self.content_payload_key, self.metadata_payload_key, ) start = time.time() self.client.upsert( collection_name=self.collection_name, points=rest.Batch.construct( ids=ids, vectors=[list(v) for v in vectors], payloads=payloads ), ) info(f"Added {len(texts)} texts to Qdrant in {time.time() - start:.2f}s") return ids def similarity_search_with_score(self, query, k=4, **kwargs): """Search for similar texts to a query and return the results with scores **Parameters:** * **query** - (*str*) The query text to search for * **k** - (*int, optional*) The number of results to return * **kwargs** - (*dict, optional*) Additional keyword arguments to pass to Qdrant **Returns:** * **results** - (*list*) List of tuples of the form (document, score) """ embedding = self.embedding_function(query) results = self.client.search( collection_name=self.collection_name, query_vector=list(embedding), with_payload=True, limit=k, **kwargs, ) return [ ( self._document_from_scored_point( result, self.content_payload_key, self.metadata_payload_key ), result.score, ) for result in results ] class EmbeddingsAPI: """API for embedding texts and querying Qdrant""" def __init__(self): key = zillion_config["OPENAI_API_KEY"] self.embeddings = OpenAIEmbeddingsCached(openai_api_key=key) # We delay connecting to Qdrant until we need it. This way # we can init the API globally without Qdrant necessarily running. self.client = None def connect(self): """Connect to Qdrant""" host = zillion_config["QDRANT_HOST"] info(f"Connecting to Qdrant host: {host}...") if host == ":memory:": self.client = QdrantClient(location=host) elif host.startswith("http") or host in [ "localhost", "127.0.0.1", "host.docker.internal", "qdrant", # Docker container name ]: self.client = QdrantClient(host=host, port=6333, prefer_grpc=True) else: self.client = QdrantClient(path=host) def ensure_client(self): """Make sure we have a client. If not, connect to Qdrant.""" if not self.client: self.connect() def embed_documents(self, rows): """Embed a list of texts""" return self.embeddings.embed_documents(rows) def embed_query(self, query): """Embed a query""" return self.embeddings.embed_query(query) def recreate_collection( self, collection_name, vector_size=None, distance=Distance.COSINE, sample=None, **kwargs, ): """Create or recreate a collection in Qdrant **Parameters:** * **collection_name** - (*str*) Name of the collection * **vector_size** - (*int, optional*) Size of the vector. If not provided, will be inferred from the sample. * **distance** - (*Distance, optional*) Distance metric to use. Defaults to cosine. * **sample** - (*str, optional*) A sample text to use to infer the vector size. **Returns:** * **collection** - (*QdrantCollection*) The collection """ info(f"Recreating collection {collection_name}...") if sample and vector_size is None: vector_size = len(self.embed_documents([sample])[0]) elif vector_size is None: vector_size = DEFAULT_VECTOR_SIZE self.ensure_client() self.client.recreate_collection( collection_name=collection_name, vectors_config=VectorParams(size=vector_size, distance=distance), **kwargs, ) return self.get_collection(collection_name) def create_collection_if_necessary( self, collection_name, vector_size=None, distance=Distance.COSINE, sample=None, **kwargs, ): """Create a collection if it doesn't already exist. If it does exist, just return the collection. **Parameters:** * **collection_name** - (*str*) Name of the collection * **vector_size** - (*int, optional*) Size of the vector. If not provided, will be inferred from the sample. * **distance** - (*Distance, optional*) Distance metric to use. Defaults to cosine. * **sample** - (*str, optional*) A sample text to use to infer the vector size. **Returns:** * **collection** - (*QdrantCollection*) The collection """ try: collection = self.get_collection(collection_name) if collection: info( f"Collection {collection_name} already exists. Skipping creation." ) return collection except Exception as e: if "not found" not in str(e).lower(): raise e return self.recreate_collection( collection_name, vector_size=vector_size, distance=distance, sample=sample, **kwargs, ) def add_texts( self, collection_name, texts, metadatas=None, force_recreate=False ): """Add texts to Qdrant. See QdrantCustom.add_texts for details.""" self.ensure_client() if force_recreate: self.recreate_collection( collection_name, sample=texts[0], metadatas=metadatas ) else: self.create_collection_if_necessary(collection_name, sample=texts[0]) qdrant = QdrantCustom( self.client, collection_name, self.embeddings.embed_query ) qdrant.add_texts( texts, metadatas=metadatas, bulk_embedder=self.embeddings.embed_documents, ) def similarity_search_with_score(self, collection_name, query, **kwargs): """Search for similar texts to a query and return the results with scores. See QdrantCustom.similarity_search_with_score for details.""" self.ensure_client() qdrant = QdrantCustom( self.client, collection_name, self.embeddings.embed_query ) return qdrant.similarity_search_with_score(query, **kwargs) def get_collection(self, name): """Get a collection by name""" self.ensure_client() return self.client.get_collection(collection_name=name) def delete_collection(self, name): """Delete a collection by name""" self.ensure_client() return self.client.delete_collection(collection_name=name) def get_embeddings( self, collection_name, with_payload=True, with_vectors=False ): """Get all embeddings in a collection **Parameters:** * **collection_name** - (*str*) Name of the collection * **with_payload** - (*bool, optional*) Whether to include the payload. Defaults to True. * **with_vectors** - (*bool, optional*) Whether to include the vectors. Defaults to False. **Returns:** * **result** - (*list*) List of embeddings """ self.ensure_client() collection = self.get_collection(collection_name) raiseifnot(collection, f"No collection found: {collection_name}") result = [] offset = None while True: points, next_page_offset = self.client.scroll( collection_name=collection_name, with_payload=with_payload, with_vectors=with_vectors, limit=500, offset=offset, ) result.extend([dict(x) for x in points]) if next_page_offset is None: break offset = next_page_offset return result def delete_embeddings(self, collection_name, texts): """Delete embeddings by text **Parameters:** * **collection_name** - (*str*) Name of the collection * **texts** - (*list*) List of texts to delete """ ids = [QdrantCustom.get_id(text) for text in texts] self.ensure_client() self.client.delete( collection_name=collection_name, points_selector=rest.PointIdsList(points=ids), ) def upsert_embedding(self, collection_name, text, payload): """Upsert an embedding **Parameters:** * **collection_name** - (*str*) Name of the collection * **text** - (*str*) Text to upsert * **payload** - (*dict*) Payload to upsert **Returns:** * **result** - (*dict*) Result of the upsert """ self.ensure_client() qdrant = QdrantCustom( self.client, collection_name, self.embeddings.embed_query ) return qdrant.add_texts([text], metadatas=[payload]) if nlp_installed: embeddings_api = EmbeddingsAPI() def field_name_to_embedding_text(name): """Convert a field name to a format for embedding""" return name.replace("_", " ").lower() def get_warehouse_collection_name(warehouse): """Get the collection name for a warehouse's embeddings. If it is set on the config, use that. Otherwise try to use a warehouse name or fall back to a default name.""" meta = warehouse.meta or {} if meta.get("nlp", {}).get("collection_name", None): return meta["nlp"]["collection_name"] if not warehouse.name: warn( f"Warehouse has no name. Using default embeddings collection name: {DEFAULT_WAREHOUSE_COLLECTION_NAME}" ) return DEFAULT_WAREHOUSE_COLLECTION_NAME return warehouse.name def warehouse_field_nlp_enabled(warehouse, field_def): """Check if NLP is enabled for a field. If it is disabled at any level, it will be considered disabled.""" wh_meta = warehouse.meta or {} field_meta = field_def.meta or {} # 1) Check disabled groups at warehouse level if rgetkey(wh_meta, "nlp.field_disabled_groups", None) and "group" in field_meta: if field_meta["group"] in wh_meta["nlp"]["field_disabled_groups"]: return False # 2) Check disabled fields by regex at warehouse level if rgetkey(wh_meta, "nlp.field_disabled_patterns", None): for pattern in wh_meta["nlp"]["field_disabled_patterns"]: if re.match(pattern, field_def.name): return False # 3) Check field level settings return rgetkey(field_meta, "nlp.enabled", True) is not False def init_warehouse_embeddings(warehouse, force_recreate=False): """ Initialize embeddings for the warehouse. **Parameters:** * **warehouse** - (Warehouse) The warehouse to initialize embeddings for. * **force_recreate** - (*bool, optional*) If True, force the embeddings collection to be recreated from scratch. **Returns:** (*Embeddings*) - The initialized EmbeddingsAPI object. """ collection_name = get_warehouse_collection_name(warehouse) fields = warehouse.get_fields() texts = [] metadatas = [] count = 0 for name, fdef in fields.items(): if not warehouse_field_nlp_enabled(warehouse, fdef): continue count += 1 settings = (fdef.meta or {}).get("nlp", {}) or {} if settings.get("embedding_text", None): # Allow overriding the default embedding text emb_texts = settings["embedding_text"] if isinstance(emb_texts, str): emb_texts = [emb_texts] else: emb_texts = [field_name_to_embedding_text(name)] for emb_text in emb_texts: texts.append(emb_text) metadatas.append({"name": name, "field_type": fdef.field_type}) start = time.time() info( f"Initializing {count}/{len(fields)} fields in embedding collection {collection_name}..." ) embeddings_api.add_texts( collection_name=collection_name, texts=texts, metadatas=metadatas, force_recreate=force_recreate, ) info(f"Done in {time.time() - start:3f} seconds.") return collection_name def get_openai_class(model=None): """Get the OpenAI class to use for a given model.""" model = model or zillion_config["OPENAI_MODEL"] return OpenAI if model == OPENAI_DAVINCI_MODEL_NAME else OpenAIChat def get_openai_model_context_size(model): """Logic copied from langchain since no util exposed""" if model == "text-davinci-003": return 4097 elif model == "text-curie-001": return 2048 elif model == "text-babbage-001": return 2048 elif model == "text-ada-001": return 2048 elif model == "code-davinci-002": return 8000 elif model == "code-cushman-001": return 2048 else: return 4097 def build_llm(model=None, max_tokens=None, request_timeout=LLM_REQUEST_TIMEOUT): """Build an LLM using langchain and the OpenAI API. **Parameters:** * **model** - (str, optional) The OpenAI model to use. Defaults to the model specified in the zillion config. * **max_tokens** - (int) The maximum number of tokens to generate. * **request_timeout** - (int) The maximum number of seconds to wait for a response from the OpenAI API. **Returns:** (*llm*) - A langchain OpenAI LLM """ model = model or zillion_config["OPENAI_MODEL"] key = zillion_config["OPENAI_API_KEY"] raiseifnot(model and key, "Missing OpenAI API key or model name in zillion config") max_tokens = max_tokens or LLM_MAX_TOKENS dbg(f"Building OpenAI {model} chain with max_tokens={max_tokens}") openai_class = get_openai_class(model) return openai_class( model_name=model, temperature=0, max_tokens=max_tokens, request_timeout=request_timeout, max_retries=1, openai_api_key=key, ) def build_chain( prompt, model=None, max_tokens=LLM_MAX_TOKENS, request_timeout=LLM_REQUEST_TIMEOUT, llm=None, ): """Build a chain using langchain and the OpenAI API. **Parameters:** * **prompt** - (PromptTemplate) The prompt to use. * **model** - (str, optional) The OpenAI model to use. Defaults to the model specified in the zillion config. * **max_tokens** - (int) The maximum number of tokens to generate. * **request_timeout** - (int) The maximum number of seconds to wait for a response from the OpenAI API. * **llm** - (llm, optional) The LLM to use. Defaults to a new LLM built using the OpenAI API. **Returns:** (*LLMChain*) - A langchain LLMChain object. """ llm = llm or build_llm( model=model, max_tokens=max_tokens, request_timeout=request_timeout ) return LLMChain(llm=llm, prompt=prompt) TEXT_TO_REPORT_NO_FIELDS = """You are an expert SQL analyst that takes natural language input and outputs metrics, dimensions, criteria, ordering, and limit settings in JSON format. If a relative date is specified, such as "yesterday", replace it with the actual date. The current date is: {current_date} Generic Example 1: Input: revenue and sales by date for the last 30 days. Rows with more than 5 sales. Output: {{ "metrics": ["revenue", "sales"], "dimensions": ["date"], "criteria": [ ["date", ">=", "{thirty_days_ago}"] ], "row_filters": [ ["sales", ">", 5] ] }} Generic Example 2: Input: show me the top 10 campaigns by revenue yesterday for ad engine Google. Include totals. Output: {{ "metrics": ["revenue"], "dimensions": ["campaign"], "criteria": [ ["date", "=", "{yesterday}"], ["ad_engine", "=", "Google"] ], "limit": 10, "order_by": [ ["revenue", "desc"] ], "rollup": "totals" }} ---- Complete the following. Use JSON format and include no other commentary. Input: {query} JSON Output:""" TEXT_TO_REPORT_ALL_FIELDS = """You are an expert SQL analyst that takes natural language input and outputs metrics, dimensions, criteria, ordering, and limit settings in JSON format. If a relative date is specified, such as "yesterday", replace it with the actual date. The current date is: {current_date} Supported metrics: {metrics} Supported dimensions: {dimensions} Generic Example 1: Input: revenue and sales by date for the last 30 days. Rows with more than 5 sales. JSON Output: {{ "metrics": ["revenue", "sales"], "dimensions": ["date"], "criteria": [ ["date", ">=", "{thirty_days_ago}"] ], "row_filters": [ ["sales", ">", 5] ] }} Generic Example 2: Input: show me the top 10 campaigns by revenue yesterday for ad engine Google. Include totals. JSON Output: {{ "metrics": ["revenue"], "dimensions": ["campaign"], "criteria": [ ["date", "=", "{yesterday}"], ["ad_engine", "=", "Google"] ], "limit": 10, "order_by": [ ["revenue", "desc"] ], "rollup": "totals" }} ---- Complete the following. Use JSON format and include no other commentary. Use only supported metrics and dimensions. Input: {query} JSON Output:""" TEXT_TO_REPORT_DIMENSION_FIELDS = """You are an expert SQL analyst that takes natural language input and outputs metrics, dimensions, criteria, ordering, and limit settings in JSON format. If a relative date is specified, such as "yesterday", replace it with the actual date. The current date is: {current_date} Supported dimensions: {dimensions} Generic Example 1: Input: revenue and sales by date for the last 30 days. Rows with more than 5 sales. JSON Output: {{ "metrics": ["revenue", "sales"], "dimensions": ["date"], "criteria": [ ["date", ">=", "{thirty_days_ago}"] ], "row_filters": [ ["sales", ">", 5] ] }} Generic Example 2: Input: show me the top 10 campaigns by revenue yesterday for ad engine Google. Include totals. JSON Output: {{ "metrics": ["revenue"], "dimensions": ["campaign"], "criteria": [ ["date", "=", "{yesterday}"], ["ad_engine", "=", "Google"] ], "limit": 10, "order_by": [ ["revenue", "desc"] ], "rollup": "totals" }} ---- Complete the following. Use JSON format and include no other commentary. Input: {query} JSON Output:""" def parse_text_to_report_json_output(output): """Parse the output of a chain that produces Zillion args as JSON **Parameters:** * **output** - (str) The output of the chain, expected to be valid JSON. **Returns:** (*dict*) - A dict of Zillion report params. Any empty values will be removed. """ if not output: return None try: return {k: v for k, v in json.loads(output).items() if v} except Exception as e: error(f"Error parsing JSON:\n{output}") raise # TODO - share code for configs below PROMPT_CONFIGS = dict( no_fields=dict( prompt_text=TEXT_TO_REPORT_NO_FIELDS, input_variables=["query", "current_date", "yesterday", "thirty_days_ago"], context_func=lambda wh: dict( current_date=datetime.now().strftime("%Y-%m-%d %H:%M:%S"), yesterday=str(datetime.now().date() - timedelta(days=1)), thirty_days_ago=str(datetime.now().date() - timedelta(days=30)), ), parser=parse_text_to_report_json_output, ), all_fields=dict( prompt_text=TEXT_TO_REPORT_ALL_FIELDS, input_variables=[ "query", "current_date", "yesterday", "thirty_days_ago", "metrics", "dimensions", ], context_func=lambda wh: dict( metrics=get_metrics_prompt_str(wh), dimensions=get_dimensions_prompt_str(wh), current_date=datetime.now().strftime("%Y-%m-%d %H:%M:%S"), yesterday=str(datetime.now().date() - timedelta(days=1)), thirty_days_ago=str(datetime.now().date() - timedelta(days=30)), ), parser=parse_text_to_report_json_output, ), dimension_fields=dict( prompt_text=TEXT_TO_REPORT_DIMENSION_FIELDS, input_variables=[ "query", "current_date", "yesterday", "thirty_days_ago", "dimensions", ], context_func=lambda wh: dict( dimensions=get_dimensions_prompt_str(wh), current_date=datetime.now().strftime("%Y-%m-%d %H:%M:%S"), yesterday=str(datetime.now().date() - timedelta(days=1)), thirty_days_ago=str(datetime.now().date() - timedelta(days=30)), ), parser=parse_text_to_report_json_output, ), ) def get_field_name_variants(name): """Get a list of possible close variants of a field name. This is an 80/20 hack to help with fuzzy matching of field names. **Parameters:** * **name** - (str) The name of the field **Returns:** (*set*) - A set of possible variants of the field name """ res = {name} for alt in [ name.lower(), name.title(), name.replace(" ", "_"), name.replace("_", " "), ]: if alt not in res: res.add(alt) return res # NOTE: # If we ever support fuzzy matching to known dimension values, # could use a library like: https://github.com/seatgeek/thefuzz def get_field_fuzzy(warehouse, name, field_type=None): """Try to do a fuzzy match to warehouse fields. The field names from the LLM are not always exact matches to the warehouse field. **Parameters:** * **warehouse** - (Warehouse) The warehouse to look for a field match * **name** - (str) The name of the field to match * **field_type** - (str, optional) The type of field to match. If not passed, will match any field type. **Returns:** (*str*) - The name of the field that was matched, or the original name """ has_field_func = warehouse.has_field if field_type == FieldTypes.METRIC: has_field_func = warehouse.has_metric if field_type == FieldTypes.DIMENSION: has_field_func = warehouse.has_dimension # Check ~exact matches alts = get_field_name_variants(name) for alt in alts: if has_field_func(alt) and warehouse_field_nlp_enabled( warehouse, warehouse.get_field(alt) ): return alt # Check embeddings collection_name = warehouse._get_embeddings_collection_name() raiseifnot(collection_name, "No embeddings collection name found") res = embeddings_api.similarity_search_with_score(collection_name, name) if field_type: res = [r for r in (res or []) if r[0].metadata["field_type"] == field_type] if not res: return name best, score = res[0] if score >= MIN_FIELD_SIMILARITY_SCORE: dbg(f"Found fuzzy match for {name}: {best.metadata['name']} / {score}") return best.metadata["name"] else: warn(f"No good match found for '{name}': {res}") # No good match found but guess the original name return name def map_warehouse_report_params(warehouse, report): """Map an LLM report params dict to the warehouse's field names. **Parameters:** * **warehouse** - (Warehouse) The warehouse to map the report params to * **report** - (dict) The report params dict **Returns:** (*dict*) - A new report params dict with the warehouse's field names """ res = {} for k, v in report.items(): if k == "metrics": res[k] = [ get_field_fuzzy(warehouse, m, field_type=FieldTypes.METRIC) for m in v ] elif k == "dimensions": res[k] = [ get_field_fuzzy(warehouse, d, field_type=FieldTypes.DIMENSION) for d in v ] elif k == "criteria": res[k] = [ ( get_field_fuzzy(warehouse, c, field_type=FieldTypes.DIMENSION), op, val, ) for c, op, val in v ] elif k == "row_filters": res[k] = [(get_field_fuzzy(warehouse, f), op, val) for f, op, val in v] elif k == "rollup": # TODO should we semantic match to valid values? # i.e. "summary" -> "totals if v and v.lower() in ["totals", "summary"]: res[k] = RollupTypes.TOTALS elif v and v.lower() == "all": res[k] = RollupTypes.ALL elif k == "order_by": res[k] = [(get_field_fuzzy(warehouse, f), d) for f, d in v] elif k == "limit": res[k] = int(v) if v is not None else None else: raise ValueError(f"Unexpected key {k}") return res def get_fields_prompt_str(warehouse, fields): """Get a string representing names/types of given fields""" res = [] for name, fdef in fields.items(): if not warehouse_field_nlp_enabled(warehouse, fdef): continue if getattr(fdef, "formula", None): type_str = "numeric" else: type_str = str(fdef.type).lower() if fdef.type else "unknown" res.append(f"{name} ({type_str})") return "\n".join(res) def get_metrics_prompt_str(warehouse): return get_fields_prompt_str(warehouse, warehouse.get_metrics()) def get_dimensions_prompt_str(warehouse): return get_fields_prompt_str(warehouse, warehouse.get_dimensions()) class MaxTokensException(Exception): pass def text_to_report_params(query, warehouse=None, prompt_version="no_fields"): """Convert a natural language input to Zillion report params **Parameters:** * **query** - (str) The natural language query to convert. * **warehouse** - (Warehouse, optional) The warehouse to map the report params to * **prompt_version** - (str) The version of the prompt to use **Returns:** (*dict*) - A dict of Zillion report params. The field names extracted are not guaranteed to exist in any warehouse or datasource and need to be analyzed separately. """ prompt_config = PROMPT_CONFIGS[prompt_version] context = prompt_config["context_func"](warehouse) context["query"] = query prompt = PromptTemplate( input_variables=prompt_config["input_variables"], template=prompt_config["prompt_text"], ) llm = build_llm(max_tokens=-1) text_to_report_chain = build_chain(prompt, llm=llm) prompt_tokens = text_to_report_chain.llm.get_num_tokens(prompt.format(**context)) max_tokens = get_openai_model_context_size(text_to_report_chain.llm.model_name) if (prompt_tokens + 500) >= max_tokens: raise MaxTokensException(f"Prompt is too long: {prompt_tokens} tokens") llm_start = time.time() output = text_to_report_chain.run(**context).strip(". -\n\r") dbg(f"LLM took {time.time() - llm_start:.3f}s") return prompt_config["parser"](output) NLP_TABLE_RELATIONSHIP_PROMPT = """Given the following tables, what are the suggested foreign key relationships starting from these tables? Rules: - If there isn't a good option you must skip that table and output nothing. - Only include relationships between the tables given below. Do not reference any other tables not in the list. - Ignore self-referencing relationships (i.e. a table with a column that references itself) {table_defs} List the output relationships in child column -> parent column format with no other explanation or output. Include schema and table names in the column names if possible. For example, if the table was called "main.users" and the column was called "id", the column format must be "main.users.id". Output:""" def parse_nlp_table_relationships(output): """ Parse the output of the NLP table relationships prompt. **Parameters:** * **output** - (*str*) The output of the prompt **Returns:** (*dict*) - Map child columns to parent columns """ if not output: return {} child_parent = {} for row in output.strip().split("\n"): if not row: continue if "->" not in row: warn(f"Invalid row in NLP table relationships output: {row}") continue child_column, parent_column = [x.strip() for x in row.split("->")] child_parent[child_column] = parent_column return child_parent def get_nlp_table_relationships(metadata, table_names): """ Get the NLP table relationships for the given tables. Note: if a table has a composite primary key it will be skipped. **Parameters:** * **metadata** - (*SQLAlchemy Metadata*) The metadata for the database * **table_names** - (*list of str*) The names of the tables to get the relationships for **Returns:** (*dict*) - Map child columns to parent columns """ if not table_names: return {} table_defs = [] def get_column_str(c): return f"{c.name} ({c.type}) primary_key:{c.primary_key}" for table_name in table_names: table = metadata.tables[table_name] if len(table.primary_key) > 1: warn(f"Skipping table {table_name} with composite primary key") continue table_defs.append( f"Table: {table_name}\n" "Fields:\n" f"{chr(10).join(get_column_str(c) for c in table.columns)}" ) table_defs_str = "\n\n".join(table_defs) prompt = PromptTemplate( input_variables=["table_defs"], template=NLP_TABLE_RELATIONSHIP_PROMPT, ) relationship_chain = build_chain(prompt) llm_start = time.time() output = relationship_chain.run(table_defs_str).strip(". -\n\r") dbg(output) dbg(f"LLM took {time.time() - llm_start:.3f}s") return parse_nlp_table_relationships(output) NLP_TABLE_COLUMN_PROMPT = """For each column in the following table definition, list the following comma separated: * The column name * Whether the column is a metric or dimension * The aggregation type for the metric (sum or mean), or "NULL" if it is a dimension * The rounding for "mean" metrics, "NULL" if it is a dimension or "sum" metric Example output rows: id,dimension,NULL,NULL revenue,metric,sum,2 cpc,metric,mean,2 Table definition: {create_table} """ def parse_nlp_table_info(output): """Parse the output from the LLM to get the table info **Parameters:** * **output** - (*str*) The output from the LLM **Returns:** (*dict*) - A mapping of column names to properties """ res = {} for row in output.strip().split("\n"): name, type, aggregation, rounding = [x.strip() for x in row.split(",")] res[name] = dict( type=type, aggregation=aggregation if aggregation != "NULL" else None, rounding=int(rounding) if rounding != "NULL" else None, ) return res table_info_chain = None def get_nlp_table_info(table): """Build a langchain chain to get the table info from the LLM **Parameters:** * **table** - (*SQLAlchemy table*) The table to analyze **Returns:** (*dict*) - A mapping of column names to properties """ raiseifnot(table.bind, "Table must be bound to an engine") create_table = str(CreateTable(table).compile(table.bind)).strip() global table_info_chain if not table_info_chain: prompt = PromptTemplate( input_variables=["create_table"], template=NLP_TABLE_COLUMN_PROMPT ) table_info_chain = build_chain(prompt) llm_start = time.time() output = table_info_chain.run(create_table).strip(". -\n\r") info(output) info(f"LLM took {time.time() - llm_start:.3f}s") return parse_nlp_table_info(output) ================================================ FILE: zillion/report.py ================================================ from collections import OrderedDict from concurrent.futures import as_completed, ThreadPoolExecutor from contextlib import contextmanager import decimal import logging import random from sqlite3 import connect, Row import threading import time import uuid import numpy as np from pymysql.converters import escape_string import pandas as pd import sqlalchemy as sa from stopit import async_raise from tlbx import is_int, st from zillion.configs import default_field_display_name from zillion.core import * from zillion.field import ( FormulaDimension, get_table_fields, get_table_field_column, FormulaField, FIELD_VALUE_CHECK_OPERATIONS, ) from zillion.model import zillion_engine, ReportSpecs from zillion.nlp import ( text_to_report_params, MaxTokensException, map_warehouse_report_params, ) from zillion.sql_utils import ( sqla_compile, get_sqla_criterion_expr, to_sqlite_type, type_string_to_sa_type, ) logging.getLogger(name="stopit").setLevel(logging.ERROR) MAX_REPORT_DEPTH = 3 PANDAS_ROLLUP_AGGR_TRANSLATION = { AggregationTypes.COUNT: "sum", AggregationTypes.COUNT_DISTINCT: "sum", } class ExecutionStateMixin: """A mixin to manage the state of a report or query""" def __init__(self): self._lock = threading.RLock() self._state = None @property def _ready(self): """Return True if in the ready state""" return self._state == ExecutionState.READY @property def _querying(self): """Return True if in the querying state""" return self._state == ExecutionState.QUERYING @property def _killed(self): """Return True if in the killed state""" return self._state == ExecutionState.KILLED @contextmanager def _get_lock(self, timeout=None): """Acquire the lock for this object **Parameters:** * **timeout** - (*float, optional*) A timeout to wait trying to acquire the lock """ timeout = timeout or -1 # convert to `acquire` default if falsey result = self._lock.acquire(timeout=timeout) if not result: raise ExecutionLockException("lock wait timeout after %.3fs" % timeout) try: yield finally: self._lock.release() def _raise_if_killed(self, timeout=None): """Raise an exception if in the killed state **Parameters:** * **timeout** - (*float, optional*) A timeout to wait trying to acquire the lock """ with self._get_lock(timeout=timeout): if self._killed: raise ExecutionKilledException def _get_state(self): """Get the current object state""" return self._state def _set_state( self, state, timeout=None, assert_ready=False, raise_if_killed=False, set_if_killed=False, ): """Set the current object state **Parameters:** * **state** - (*str*) A valid ExecutionState * **timeout** - (*float, optional*) A timeout to wait trying to acquire the lock * **assert_ready** - (*bool, optional*) Raise an exception if not in the ready state when called * **raise_if_killed** - (*bool, optional*) Raise an exception if in the killed state * **set_if_killed** - (*bool, optional*) Set the execution state even if killed """ raiseifnot( state in get_class_var_values(ExecutionState), "Invalid state value: %s" % state, ) cls_name = self.__class__.__name__ with self._get_lock(timeout=timeout): if assert_ready: raiseifnot( self._ready, "%s: expected ready state, got: %s" % (cls_name, self._state), ) if raise_if_killed: try: self._raise_if_killed() except ExecutionKilledException: if set_if_killed: dbg( "%s: state transition: %s -> %s" % (cls_name, self._state, state) ) self._state = state raise dbg("%s: state transition: %s -> %s" % (cls_name, self._state, state)) self._state = state class DataSourceQuery(ExecutionStateMixin, PrintMixin): """Build a query to run against a particular datasource **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse * **metrics** - (*OrderedDict*) An OrderedDict mapping metric names to Metric objects * **dimensions** - (*OrderedDict*) An OrderedDict mapping dimension names to Dimension objects * **criteria** - (*list*) A list of criteria to be applied when querying. See the Report docs for more details. * **table_set** - (*TableSet*) Build the query against this set of tables that supports the requested metrics and grain """ repr_attrs = ["metrics", "dimensions", "criteria"] @initializer def __init__(self, warehouse, metrics, dimensions, criteria, table_set): self._conn = None self.field_map = {} self.metrics = metrics or {} self.dimensions = dimensions or {} self.select = self._build_select() super().__init__() self._set_state(ExecutionState.READY) def get_datasource(self): """Get a reference to the datasource for this query""" return self.table_set.datasource def get_datasource_name(self): """Get the name of the datasource used in this query""" return self.get_datasource().name def get_tables(self): """Get a reference to the tables used in this query""" ds = self.get_datasource() if not self.table_set.join: return [self.table_set.ds_table] return [ds.get_table(name) for name in self.table_set.join.table_names] def get_dialect_name(self): """Get the name of the datasource dialect""" return self._get_bind().dialect.name def covers_metric(self, metric): """Check whether a metric is covered in this query **Parameters:** * **metric** - (*str*) A metric name **Returns:** (*bool*) - True if this metric is covered in this query """ if metric in self.table_set.get_covered_metrics(self.warehouse): return True return False def covers_field(self, field): """Check whether a field is covered in this query **Parameters:** * **field** - (*str*) A field name **Returns:** (*bool*) - True if this field is covered in this query """ if field in self.table_set.get_covered_fields(): return True return False def add_metric(self, metric, adhoc_fms=None): """Add a metric to this query **Parameters:** * **metric** - (*str*) A metric name * **adhoc_fms** - (*list, optional*) A list of adhoc FieldManagers """ raiseifnot( self.covers_metric(metric), "Metric %s can not be covered by query" % metric ) self.table_set.target_fields.add(metric) # TODO: this implies metrics defined on multiple levels will # favor warehouse-level definition. self.metrics[metric] = self.warehouse.get_metric(metric, adhoc_fms=adhoc_fms) self.select = self.select.column(self._get_field_expression(metric)) def get_conn(self): """Get a connection to this query's datasource""" bind = self._get_bind() conn = bind.connect() return conn def execute(self, timeout=None, label=None): """Execute the datasource query **Parameters:** * **timeout** - (*float, optional*) A query timeout in seconds * **label** - (*str, optional*) A label to apply to the SQL query **Returns:** (*DataSourceQueryResult*) - The result of the SQL query """ start = time.time() is_timeout = False t = None self._set_state(ExecutionState.QUERYING, assert_ready=True) try: raiseif(self._conn, "Called execute with active query connection") self._conn = self.get_conn() if label: self.select = self.select.comment(label) try: dbg("\n" + self._format_query()) def do_timeout(main_thread): nonlocal is_timeout is_timeout = True self.kill(main_thread=main_thread) if timeout: main_thread = threading.current_thread() t = threading.Timer(timeout, lambda: do_timeout(main_thread)) t.start() try: result = self._conn.execute(self.select) data = result.fetchall() except Exception as e: if not is_timeout: raise diff = time.time() - start self._conn.invalidate() raise DataSourceQueryTimeoutException( "query timed out after %.3fs" % diff ) finally: if t: t.cancel() finally: try: self._conn.close() except Exception as e: warn("Exception on connection close: %s" % str(e)) self._conn = None diff = time.time() - start dbg("Got %d rows in %.3fs" % (len(data), diff)) return DataSourceQueryResult(self, data, diff) finally: raise_if_killed = not is_timeout self._set_state( ExecutionState.READY, raise_if_killed=raise_if_killed, set_if_killed=True, ) def kill(self, main_thread=None): """Kill this datasource query **Parameters:** * **main_thread** - (*Thread, optional*) A reference to the thread that started the query. This is used as a backup for dialects that don't have a supported way to kill a query. An exception will be asynchronously raised in this thread. It is not guaranteed to actually interrupt the query. """ with self._get_lock(): if self._ready: warn("kill called on query that isn't running") return if self._killed: warn("kill called on query already being killed") return self._set_state(ExecutionState.KILLED) # I don't see how this could happen, but get loud if it does... raiseifnot(self._conn, "Attempting to kill with no active query connection") raw_conn = self._conn.connection dialect = self.get_dialect_name() dbg("Attempting kill on %s conn: %s" % (dialect, self._conn)) if dialect == "mysql" and callable(getattr(raw_conn, "thread_id", None)): kill_conn = self.get_conn() conn_id = raw_conn.thread_id() try: kill_conn.execute("kill {}".format(conn_id)) finally: kill_conn.close() elif dialect == "sqlite" and callable(getattr(raw_conn, "interrupt", None)): raw_conn.interrupt() elif dialect == "postgresql" and callable(getattr(raw_conn, "cancel", None)): raw_conn.cancel() # TODO: assumes psycopg2 elif main_thread: # This isn't guaranteed to work as the thread may be waiting for # an external resource to finish, but worth a shot. warn("Trying async raise for unsupported dialect=%s" % dialect) async_raise(main_thread.ident, ExecutionKilledException) else: raise UnsupportedKillException("No kill support for dialect=%s" % dialect) def _format_query(self): """Return a formatted query string""" return sqlformat(sqla_compile(self.select)) def _get_bind(self): """Get a connection to the datasource""" ds = self.get_datasource() raiseifnot( ds.metadata.bind, 'Datasource "%s" does not have metadata.bind set' % ds.name, ) return ds.metadata.bind def _add_prefix_with(self, select): """Prefix the query if any tables or the datasource says so""" prefix_with = None for table in self.get_tables(): if table.zillion.prefix_with: # First table takes precedence prefix_with = table.zillion.prefix_with dbg(f"Found prefix {prefix_with} from table {table.name}") break prefix_with = prefix_with or self.get_datasource().prefix_with if prefix_with: dbg(f"Prefixing query with: {prefix_with}") select = select.prefix_with(prefix_with) return select def _build_select(self): """Build the select for this datasource query""" # https://docs.sqlalchemy.org/en/latest/core/selectable.html select = sa.select() join = self._get_join() select = select.select_from(join) for dimension in self.dimensions: select = select.column(self._get_field_expression(dimension)) for metric in self.metrics: select = select.column(self._get_field_expression(metric)) select = self._add_where(select) select = self._add_group_by(select) select = self._add_prefix_with(select) return select def _get_field(self, name): """Get a reference to a field that is part of this query **Parameters:** * **name** - (*str*) A field name **Returns:** (*Field*) - A Field object """ if name in self.metrics: return self.metrics[name] if name in self.dimensions: return self.dimensions[name] for row in self.criteria: if row[0].name == name: return row[0] raise ZillionException("Could not find field for DataSourceQuery: %s" % name) def _column_for_field(self, field, table=None): """Get the column that will be providing this field **Parameters:** * **field** - (*str*) A field name * **table** - (*Table, optional*) Limit the search to this table **Returns:** (*SQLALchemy column*) - The table column that provides this field """ ts = self.table_set if table is not None: column = get_table_field_column( ts.datasource.get_table(table.fullname), field ) else: if ts.join and field in ts.join.field_map: column = ts.join.field_map[field] elif field in get_table_fields( ts.datasource.get_table(ts.ds_table.fullname) ): column = self._column_for_field(field, table=ts.ds_table) else: raise ZillionException( "Could not determine column for field %s" % field ) self.field_map[field] = column return column def _get_field_expression(self, field, label=True): """Get the expression for this field **Parameters:** * **field** - (*str*) A field name to get an expression for * **label** - (*bool, optional*) If True, label the expression with the field name **Returns:** (*str*) - A string representing the field SQL expression """ column = self._column_for_field(field) field_obj = self._get_field(field) return field_obj.get_ds_expression(column, label=label) def _get_join(self): """Get a SQLAlchemy join for this query""" ts = self.table_set sqla_join = None last_table = None joined_tables = set() if not ts.join: return ts.ds_table for join_part in ts.join.join_parts: for table_name in join_part.table_names: table = ts.datasource.get_table(table_name) if sqla_join is None: sqla_join = table last_table = table joined_tables.add(table_name) continue if table == last_table: continue if table_name == ts.ds_table.fullname: # If we come across the main table again we assume it's an orthogonal # join to find other dimensions and "restart" the join from there. # XXX: there is likely a better way to handle this. raiseifnot( table_name in joined_tables, f"Main table_set table {table_name} was expected to be in joined_tables {joined_tables}", ) last_table = table continue if table_name in joined_tables: # This table is already included in the join, assume it is safe to reuse # XXX: could use more testing to confirm this is always safe last_table = table continue joined_tables.add(table_name) conditions = [] for field in join_part.join_fields: last_column = self._column_for_field(field, table=last_table) column = self._column_for_field(field, table=table) conditions.append(column == last_column) sqla_join = sqla_join.outerjoin(table, sa.and_(*tuple(conditions))) last_table = table return sqla_join def _convert_criteria(self, field, conversion, value): """Convert the values of a criteria according to the conversion formulas provided for this field. A single criteria may expand into multiple criteria.""" final_criteria = [] for new_op, new_values in conversion: if not isinstance(new_values, (list, tuple)): new_values = [new_values] fmt_values = [] for new_value in new_values: # Substitute the original value(s) into the formula if not isinstance(value, (list, tuple)): orig_values = [value] else: orig_values = value[:] if callable(new_value): new_value = new_value(orig_values) else: new_value = sa.text(new_value) if new_value._bindparams: new_value = new_value.bindparams( **{ str(i): v for i, v in enumerate(orig_values) if str(i) in new_value._bindparams } ) fmt_values.append(new_value) final_criteria.append((field.name, new_op, fmt_values)) return final_criteria def _add_where(self, select): """Add a where clause to a SQLAlchemy select""" if not self.criteria: return select for row in self.criteria: # A single criteria may be converted into multiple criteria # with column criteria conversions. field, op, value = row column = self._column_for_field(field.name) if op in FIELD_VALUE_CHECK_OPERATIONS and not field.is_valid_value( self.warehouse.id, value ): raise InvalidDimensionValueException( "Invalid criteria value '%s' for dimension '%s'" % (value, field.name) ) conv = column.zillion.get_criteria_conversion(field.name, op) if conv: expr = field.get_ds_expression(column, label=False, ignore_formula=True) if value is None: # HACK: workaround for when conversion fields are filtered against None. # SQLAlchemy v1.3 pukes instead of using NULL when compiling the query. final_criteria = [(field, op, None)] else: final_criteria = self._convert_criteria(field, conv, value) else: expr = self._get_field_expression(field.name, label=False) final_criteria = [row] for criteria in final_criteria: criterion = sa.and_(get_sqla_criterion_expr(expr, criteria)) select = select.where(criterion) return select def _add_group_by(self, select): """Add a group by clause to a SQLAlchemy select""" if not self.dimensions: return select return select.group_by( *[sa.text(str(x)) for x in range(1, len(self.dimensions) + 1)] ) def _add_order_by(self, select, asc=True): """Add an order by clause to a SQLAlchemy select""" if not self.dimensions: return select order_func = sa.asc if not asc: order_func = sa.desc return select.order_by(*[order_func(sa.text(x)) for x in self.dimensions]) class DataSourceQuerySummary(PrintMixin): """A summary of the execution results for a DataSourceQuery **Parameters:** * **query** - (*DataSourceQuery*) The DataSourceQuery that was executed * **data** - (*iterable*) The result rows * **duration** - (*float*) The duration of the query execution in seconds """ repr_attrs = ["datasource_name", "rowcount", "duration"] def __init__(self, query, data, duration): self.datasource_name = query.get_datasource_name() self.metrics = query.metrics self.dimensions = query.dimensions self.select = query.select self.duration = round(duration, 4) self.rowcount = len(data) def format(self): """Return a formatted summary of the DataSourceQuery results""" sql = self._format_query() parts = [ "%s" % sql, "\n%d rows in %.4f seconds" % (self.rowcount, self.duration), "Datasource: %s" % self.datasource_name, "Metrics: %s" % list(self.metrics), "Dimensions: %s" % list(self.dimensions), ] return "\n".join(parts) def _format_query(self): """Return a formatted SQL query for the select that was executed""" return sqlformat(sqla_compile(self.select)) class DataSourceQueryResult(PrintMixin): """The results for a DataSourceQuery **Parameters:** * **query** - (*DataSourceQuery*) The DataSourceQuery that was executed * **data** - (*iterable*) The result rows * **duration** - (*float*) The duration of the query execution in seconds """ repr_attrs = ["summary"] def __init__(self, query, data, duration): self.query = query self.data = data self.summary = DataSourceQuerySummary(query, data, duration) class BaseCombinedResult: """A combination of datasource query results **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse * **ds_query_results** - (*list*) A list of DataSourceQueryResult objects * **primary_ds_dimensions** - (*list*) A list of dimensions that will be used to create the hash primary key of the combined result table * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this combined result """ @initializer def __init__( self, warehouse, ds_query_results, primary_ds_dimensions, adhoc_datasources=None ): self.conn = self.get_conn() self.cursor = self.get_cursor(self.conn) self.warnings = [] self.adhoc_datasources = adhoc_datasources or [] self.table_name = "zillion_%s_%s" % ( str(time.time()).replace(".", "_"), random.randint(0, int(1e9)), ) self.primary_ds_dimensions = ( orderedsetify(primary_ds_dimensions) if primary_ds_dimensions else [] ) self.ds_dimensions, self.ds_metrics = self._get_fields() self.create_table() self.load_table() def get_conn(self): """Get a database connection to the combined result database""" raise NotImplementedError def get_cursor(self, conn): """Get a cursor from a database connection""" raise NotImplementedError def create_table(self): """Create the combined result table""" raise NotImplementedError def load_table(self): """Load the combined result table""" raise NotImplementedError def clean_up(self): """Clean up any resources that can/should be cleaned up""" raise NotImplementedError def add_warning(self, msg, log=True): if log: warn(msg) self.warnings.append(msg) def ifnull_clause(self, column_clause, ifnull_value): """Produce an ifnull clause specific to this database dialect""" raise NotImplementedError def get_metric_clause(self, metric, has_formula_dims): """Get a select clause for a metric including aggregation""" raise NotImplementedError def get_final_result( self, metrics, dimensions, row_filters, rollup, pivot, order_by, limit, limit_first, ): """Get the final result from the combined result table""" raise NotImplementedError def _get_row_hash(self, row): """Get a hash representing a primary key for the row. The default implementation simply uses the builtin `hash` function which will only provide consistent results in the same python process. This will also impact performance for very large results. Each non-null item within the primary dimensions is converted to its string representation before hashing. **Parameters:** * **row** - (*iterable*) An iterable of query result rows. It is assumed the primary datasource dimensions are the first columns in each row, and that the column order is consistent between rows. **Returns:** (*int*) - A hash value representing a key for this row. """ return hash( tuple( str(x) if x is not None else x for x in row[: len(self.primary_ds_dimensions)] ) ) def _get_fields(self): """Returns a 2-item tuple of dimension and metric dicts""" dimensions = OrderedDict() metrics = OrderedDict() for qr in self.ds_query_results: for dim_name, dim in qr.query.dimensions.items(): if dim_name in dimensions: continue dimensions[dim_name] = dim for metric_name, metric in qr.query.metrics.items(): if metric_name in metrics: continue metrics[metric_name] = metric return dimensions, metrics def _get_field_names(self): """Get a list of field names in this combined result""" dims, metrics = self._get_fields() return list(dims.keys()) + list(metrics.keys()) class SQLiteMemoryCombinedResult(BaseCombinedResult): """Combine query results in an in-memory SQLite database""" def get_conn(self): """Get a SQLite memory database connection""" return connect(":memory:") def get_cursor(self, conn): """Get a SQLite cursor from the connection""" conn.row_factory = Row return conn.cursor() def create_table(self): """Create a table in the SQLite database to store the combined result""" create_sql = "CREATE TEMP TABLE %s (" % self.table_name column_clauses = ["row_hash BIGINT NOT NULL PRIMARY KEY"] for field_name, field in self.ds_dimensions.items(): type_str = str(to_sqlite_type(field.sa_type)) clause = "%s %s DEFAULT NULL" % (field_name, type_str) column_clauses.append(clause) for field_name, field in self.ds_metrics.items(): type_str = str(to_sqlite_type(field.sa_type)) clause = "%s %s DEFAULT NULL" % (field_name, type_str) column_clauses.append(clause) create_sql += ", ".join(column_clauses) create_sql += ") WITHOUT ROWID" create_sql = escape_string(create_sql) dbg(create_sql) self.cursor.execute(create_sql) if self.primary_ds_dimensions: index_sql = "CREATE INDEX idx_dims ON %s (%s)" % ( self.table_name, ", ".join(self.primary_ds_dimensions), ) index_sql = escape_string(index_sql) dbgsql(index_sql) self.cursor.execute(index_sql) self.conn.commit() def load_table(self): """Load the combined result table""" for qr in self.ds_query_results: for rows in chunks(qr.data, zillion_config["LOAD_TABLE_CHUNK_SIZE"]): insert_sql, values = self._get_bulk_insert_sql(rows) self.cursor.executemany(insert_sql, values) self.conn.commit() def ifnull_clause(self, column_clause, ifnull_value): """Produce an ifnull clause specific to this database dialect""" return f"IFNULL({column_clause}, {ifnull_value})" def get_metric_clause(self, metric, has_formula_dims): """Get a select clause for a metric including aggregation""" aggr = metric.aggregation.lower() clause = metric.get_final_select_clause( self.warehouse, adhoc_fms=self.adhoc_datasources, ifnull_clause=self.ifnull_clause, ) if aggr == AggregationTypes.SUM: return f"SUM(%s) as %s" % (clause, metric.name) if aggr == AggregationTypes.MEAN: if metric.weighting_metric: w_metrics = self.warehouse.get_metric(metric.weighting_metric) w_clause = w_metrics.get_final_select_clause( self.warehouse, adhoc_fms=self.adhoc_datasources, ifnull_clause=self.ifnull_clause, ) # All the 1.0 stuff is to work around sqlite default casting return f"1.0 * SUM((1.0*%s) * (%s))/SUM(%s) as %s" % ( clause, w_clause, w_clause, metric.name, ) else: return f"AVG(1.0 * %s) as %s" % (clause, metric.name) if aggr == AggregationTypes.MIN: return f"MIN(%s) as %s" % (clause, metric.name) if aggr == AggregationTypes.MAX: return f"MAX(%s) as %s" % (clause, metric.name) if aggr in (AggregationTypes.COUNT, AggregationTypes.COUNT_DISTINCT): if has_formula_dims and aggr == AggregationTypes.COUNT_DISTINCT: self.add_warning( f"COUNT DISTINCT metric {metric.name} may not aggregate correctly due to formula dimensions" ) return f"SUM(%s) as %s" % (clause, metric.name) raise AssertionError(f"Can not translate aggregation type: {aggr}") def get_final_result( self, metrics, dimensions, row_filters, rollup, pivot, order_by, limit, limit_first, ): """Get the final reseult from the combined result table **Parameters:** * **metrics** - (*OrderedDict*) An OrderedDict mapping metric names to Metric objects * **dimensions** - (*OrderedDict*) An OrderedDict mapping dimension names to Dimension objects * **row_filters** - (*list*) A list of criteria to filter which rows get returned * **rollup** - (*str or int*) Controls how metrics are rolled up / aggregated by dimension. See the Report docs for more details. * **pivot** - (*list*) A list of dimensions to pivot to columns * **order_by** - (*list*) A list of (field, asc/desc) tuples that control the ordering of the returned result * **limit** - (*int*) A limit on the number of rows returned * **limit_first** - (*bool, optional*) Whether to apply limits before rollups/ordering **Returns:** (*DataFrame*) - A DataFrame with the final report result **Notes:** The default ordering of operations is meant to roughly parallel that of MySQL's rollup, having, order by and limit behavior. The operations are applied in the following order: technicals, rollups, rounding, order_by, row_filters, limit, pivot. If you set `limit_first=True` the the row_filter and limit operations are moved ahead of the rollups: technicals, row_filters, limit, rollups, rounding, order_by, pivot. """ start = time.time() columns = [] dimension_aliases = [] custom_sorts = [] formula_dims = [] default_order_by = [] for dim in dimensions.values(): if isinstance(dim, FormulaDimension): formula_dims.append(dim) columns.append( "%s as %s" % ( dim.get_final_select_clause( self.warehouse, adhoc_fms=self.adhoc_datasources ), dim.name, ) ) dimension_aliases.append(dim.name) if getattr(dim, "sorter", None): custom_sorts.append((dim.name, OrderByTypes.ASC)) default_order_by.append((dim.name, OrderByTypes.ASC)) if custom_sorts and not order_by: # We still need to do ordering even if no order_by was specified # if some of the dimensions use custom sorting. order_by = default_order_by technicals = {} rounding = {} added_metrics = set() only_weighted_metrics = set() for metric in metrics.values(): if metric.name not in added_metrics: if metric.technical: technicals[metric.name] = metric.technical if metric.rounding is not None: rounding[metric.name] = metric.rounding columns.append(self.get_metric_clause(metric, formula_dims)) added_metrics.add(metric.name) if metric.weighting_metric: weighting_metric = self.warehouse.get_metric(metric.weighting_metric) wm_name = weighting_metric.name if wm_name not in added_metrics: columns.append( self.get_metric_clause(weighting_metric, formula_dims) ) added_metrics.add(wm_name) if wm_name not in metrics: only_weighted_metrics.add(wm_name) sql = self._get_final_select_sql(columns, dimension_aliases, formula_dims) df = pd.read_sql(sql, self.conn, index_col=dimension_aliases or None) if technicals and not df.empty: df = self._apply_technicals(df, technicals, rounding) if limit_first: df = self._apply_limits(df, row_filters, limit, metrics, dimensions) if rollup and not df.empty: df = self._apply_rollup(df, rollup, metrics, dimensions) if only_weighted_metrics: df.drop(columns=only_weighted_metrics, inplace=True) if rounding and not df.empty: df = df.round(rounding) if order_by and not (df.empty and df.index.empty): ob_fields = [] ascending = [] for row in order_by: field, ob_type = row ob_fields.append(field) ascending.append(True if ob_type == OrderByTypes.ASC else False) df = df.sort_values( by=ob_fields, ascending=ascending, key=lambda x: self._sort(x, rollup) ) if not limit_first: df = self._apply_limits(df, row_filters, limit, metrics, dimensions) if pivot and not df.empty: df = df.unstack(pivot) dbg(df) dbg("Final result took %.3fs" % (time.time() - start)) return df def clean_up(self): """Clean up the SQLite combined result table""" drop_sql = "DROP TABLE IF EXISTS %s " % self.table_name self.cursor.execute(drop_sql) self.conn.commit() self.conn.close() def _sort(self, series, rollup): """Apply custom sort logic to a pandas Series if possible""" field = self.warehouse.get_field(series.name) if not getattr(field, "sorter", None): # Try to sort null values to the start series = series.fillna(float("-inf")) if rollup: py_type = type_string_to_sa_type(field.type).python_type if py_type in [int, float]: # Convert rollups to inf so they sort to the bottom return series.replace(ROLLUP_INDEX_LABEL, float("inf")) return series return field.sort(self.warehouse.id, series) def _wavg(self, d, w, raise_on_zero_div_error=False): try: return (d * w).sum() / w.sum() except ZeroDivisionError as e: if raise_on_zero_div_error: raise self.add_warning( f"ZeroDivisionError during wavg for field '{d.name}', using simple mean instead" ) return d.mean() # Return mean if there are no weights def _select_all(self): """Helper to get all rows from the combined result table""" qr = self.cursor.execute("SELECT * FROM %s" % self.table_name) return [OrderedDict(row) for row in qr.fetchall()] def _get_final_select_sql(self, columns, dimension_aliases, formula_dims): """Create the final select SQL statement **Parameters:** * **columns** - (*list*) A list of column clauses * **dimension_aliases** - (*list*) A list of dimension column names **Returns:** (*str*) - A SQL statement """ columns_clause = ", ".join(columns) order_clause = "1" group_by_clause = "row_hash" if dimension_aliases: has_extra_dims = len(self.ds_dimensions) != len(dimension_aliases) order_clause = ", ".join(["%s ASC" % d for d in dimension_aliases]) if formula_dims or has_extra_dims: # Formula dims can change the grouping at the combined query # level so we need to explicitly group by requested dimensions # instead of the row hash which could be more granular. group_by_clause = ", ".join(dimension_aliases) sql = "SELECT %s FROM %s GROUP BY %s ORDER BY %s" % ( columns_clause, self.table_name, group_by_clause, order_clause, ) dbg("\n" + sqlformat(sql)) return sql def _get_bulk_insert_sql(self, rows): """Get a bulk SQL statement to insert the rows into the combined result table. This will will also create the hash primary key column for each row. **Parameters:** * **rows** - (*iterable*) An iterable of result rows **Returns:** (*str, list*) - A 2-item tuple containg the bulk SQL query the the values for parameter replacement """ columns = list(rows[0].keys()) placeholder = "(%s)" % (", ".join(["?"] * (1 + len(columns)))) columns_clause = "row_hash, " + ", ".join(columns) sql = "INSERT INTO %s (%s) VALUES %s" % ( self.table_name, columns_clause, placeholder, ) update_clauses = [] for k in columns: if k in self.primary_ds_dimensions: continue update_clauses.append("%s=excluded.%s" % (k, k)) if update_clauses: update_clause = " ON CONFLICT(row_hash) DO UPDATE SET " + ", ".join( update_clauses ) sql = sql + update_clause values = [] for row in rows: row_values = [self._get_row_hash(row)] for value in row.values(): # Note: sqlite cant handle Decimal values. Alternative approach: # https://stackoverflow.com/questions/6319409/how-to-convert-python-decimal-to-sqlite-numeric if isinstance(value, decimal.Decimal): value = float(value) row_values.append(value) values.append(row_values) return escape_string(sql), values def _apply_row_filters(self, df, row_filters, metrics, dimensions): """Apply row level filters to the final result DataFrame. This uses pandas' `DataFrame.query` method. **Parameters:** * **df** - (*DataFrame*) The DataFrame to apply filters to * **row_filters** - (*list*) A list of row filter criteria. See the Report docs for more details. * **metrics** - (*OrderedDict*) A ordered mapping of metric names to objects * **dimensions** - (*OrderedDict*) A ordered mapping of dimension names to objects **Returns:** (*DataFrame*) - The filtered DataFrame """ filter_parts = [] fields = {} fields.update(metrics) fields.update(dimensions) for row_filter in row_filters: field, op, value = row_filter if field not in fields: self.add_warning( 'Row filter field "%s" is not in result table, ignoring filter' % field ) continue raiseifnot( op in ROW_FILTER_OPERATIONS, "Invalid row filter operation: %s" % op ) if op == "=": op = "==" # pandas expects this for comparison if fields[field].type: sa_type = type_string_to_sa_type(fields[field].type) py_type = sa_type.python_type else: # It's a formula field which doesn't have a type, so we default to float. py_type = float if not isinstance(value, py_type): try: value = py_type(value) except Exception as e: raise ZillionException( "Row filter for field '%s' has invalid value type %s and could not be converted to %s" % (field, type(value), py_type) ) if isinstance(value, str): value = "'%s'" % value filter_parts.append("(%s %s %s)" % (field, op, value)) if not filter_parts: return df result = df.query(" and ".join(filter_parts)) # https://stackoverflow.com/questions/28772494/how-do-you-update-the-levels-of-a-pandas-multiindex-after-slicing-its-dataframe if dimensions and len(dimensions) > 1: result.index = result.index.remove_unused_levels() return result def _get_multi_rollup_df(self, df, rollup, dimensions, aggrs, wavgs): """Calculate and insert multi level rollup rows to a DataFrame. Note that this process will likely become a noticeable factor in performance as the size of the DataFrame and depth of rollups grow. **Parameters:** * **df** - (*DataFrame*) The DataFrame to add a multi-level rollup to * **rollup** - (*int or str*) Controls how metrics are rolled up / aggregated by dimension. See the Report docs for more details. * **dimensions** - (*OrderedDict*) An ordered mapping of dimension names to objects * **aggrs** - (*dict*) A mapping of aggregations to apply per DataFrame column. This will get passed to the pandas `agg` method of each group. * **wavgs** - (*list*) A list of metric name, weighting metric tuples to denote which columns require a weighted average **Returns:** (*DataFrame*) - The DataFrame with rollup rows added in. The rollup rows are marked in the DataFrame index with a special index label so they can easily be found/filtered later. """ level_aggrs = [df] dim_names = list(dimensions.keys()) # HACK: pandas has a bug when grouping MultiIndex with NaNs as values if isinstance(df.index, pd.MultiIndex): df.index = pd.MultiIndex.from_frame( df.index.to_frame().fillna(NAN_DIMENSION_VALUE_LABEL) ) else: df.index = df.index.fillna(NAN_DIMENSION_VALUE_LABEL) for metric_name, weighting_metric in wavgs: aggrs[metric_name] = lambda x, wm=weighting_metric: self._wavg( x, df.loc[x.index, wm] ) for level in range(rollup): if (level + 1) == len(dimensions): # Unnecessary to rollup at the most granular level break grouped = df.groupby(level=list(range(0, level + 1))) level_aggr = grouped.agg(aggrs, skipna=True) # for the remaining levels, set index cols to ROLLUP_INDEX_LABEL if level != (len(dimensions) - 1): new_index_dims = [] for dim in dim_names[level + 1 :]: level_aggr[dim] = ROLLUP_INDEX_LABEL new_index_dims.append(dim) level_aggr = level_aggr.set_index(new_index_dims, append=True) level_aggrs.append(level_aggr) df = pd.concat(level_aggrs, sort=False, copy=False) # HACK: undo NaN placeholders df.rename(index={NAN_DIMENSION_VALUE_LABEL: np.NaN}, inplace=True) df.sort_index(inplace=True, na_position="first") return df def _apply_rollup(self, df, rollup, metrics, dimensions): """Apply a rollup to a result DataFrame. This is only allowed if dimensions are present in the report. **Parameters:** * **df** - (*DataFrame*) The dataframe to apply the rollup to * **rollup** - (*str or int*) Controls how metrics are rolled up / aggregated by dimension. See the Report docs for more details. * **metrics** - (*OrderedDict*) An OrderedDict mapping metric names to Metric objects * **dimensions** - (*OrderedDict*) An OrderedDict mapping dimension names to Dimension objects **Returns:** (*DataFrame*) - A DataFrame with the rollup rows added """ raiseifnot(dimensions, "Can not rollup without dimensions") aggrs = {} wavgs = [] for metric in metrics.values(): if metric.technical: # Skip rollups of technicals since they often dont make sense continue if metric.weighting_metric: wavgs.append((metric.name, metric.weighting_metric)) aggr_func = PANDAS_ROLLUP_AGGR_TRANSLATION.get( metric.aggregation.lower(), metric.aggregation.lower() ) aggrs[metric.name] = aggr_func totals = df.agg(aggrs, skipna=True) for metric_name, weighting_metric in wavgs: if df[metric_name].isna().any() and isinstance( metrics[metric_name], FormulaField ): # Weighted avg results can be thrown off if the target field has NaNs but # is a formula field that might have non-NaN values in the same row for its # component formula fields. Down the road it might be better to put all # non-formula rollup values back into the DB and apply formulas on the rollup # values to compute the rollup values of formula fields. self.add_warning( f"NULL vals found during wavg for formula field '{metric_name}', ignoring NULL rows" ) totals[metric_name] = self._wavg(df[metric_name], df[weighting_metric]) if rollup == RollupTypes.ALL: rollup = len(dimensions) apply_totals = True if rollup != RollupTypes.TOTALS: df = self._get_multi_rollup_df(df, rollup, dimensions, aggrs, wavgs) if rollup != len(dimensions): apply_totals = False if apply_totals: totals_rollup_index = ( (ROLLUP_INDEX_LABEL,) * len(dimensions) if len(dimensions) > 1 else ROLLUP_INDEX_LABEL ) with pd.option_context("mode.chained_assignment", None): df.loc[totals_rollup_index, :] = totals return df def _apply_technicals(self, df, technicals, rounding): """Apply technical computations on the DataFrame **Parameters:** * **df** - (*DataFrame*) The DataFrame to apply the technicals to * **technicals** - (*dict*) A mapping of metric names to Technical definitions * **rounding** - (*int*) The number of decimal places to round to **Returns:** (*DataFrame*) - A DataFrame that has the target metrics replaced with their technical computed values. Additional columns related to the technicals may be added in some cases as well, such as in those that show lower and upper bounds. """ for metric, tech in technicals.items(): tech.apply(df, metric, rounding=rounding) return df def _apply_limits(self, df, row_filters, limit, metrics, dimensions): """Apply row filters and limits to the DataFrame **Parameters:** * **df** - (*DataFrame*) The DataFrame to apply filters/limits to * **row_filters** - (*list*) A list of criteria to filter which rows get returned * **limit** - (*int*) A limit on the number of rows returned * **metrics** - (*OrderedDict*) An OrderedDict mapping metric names to Metric objects * **dimensions** - (*OrderedDict*) An OrderedDict mapping dimension names to Dimension objects **Returns:** (*DataFrame*) - A DataFrame that has the filters/limits applied """ if row_filters and not df.empty: df = self._apply_row_filters(df, row_filters, metrics, dimensions) if limit and not (df.empty and df.index.empty): df = df.iloc[:limit] return df class Report(ExecutionStateMixin): """Build a report against a warehouse. On init DataSource queries are built, but nothing is executed. **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse object to run the report against * **metrics** - (*list, optional*) A list of metric names, or dicts in the case of AdHocMetrics. These will be the measures of your report, or the statistics you are interested in computing at the given dimension grain. * **dimensions** - (*list, optional*) A list of dimension names to control the grain of the report. You can think of dimensions similarly to the "group by" in a SQL query. * **criteria** - (*list, optional*) A list of criteria to be applied when querying. Each criteria in the list is represented by a 3-item list or tuple. See `core.CRITERIA_OPERATIONS` for all supported operations. Note that some operations, such as "like", have varying behavior by datasource dialect. Some examples: * ["field_a", ">", 1] * ["field_b", "=", "2020-04-01"] * ["field_c", "like", "%example%"] * ["field_d", "in", ["a", "b", "c"]] * **row_filters** - (*list, optional*) A list of criteria to apply at the final step (combined query layer) to filter which rows get returned. The format here is the same as for the criteria arg, though the operations are limited to the values of `core.ROW_FILTER_OPERATIONS`. * **rollup** - (*str or int, optional*) Controls how metrics are rolled up / aggregated by dimension depth. If not passed no rollup will be computed. If the special value "totals" is passed, only a final tally rollup row will be added. If an int, then it controls the maximum depth to roll up the data, starting from the most granular (last) dimension of the report. Note that the rollup=3 case is like adding a totals row to the "=2" case, as a totals row is a rollup of all dimension levels. Setting rollup=len(dims) is equivalent to rollup="all". For example, if you ran a report with dimensions ["a", "b", "c"]: * **rollup="totals"** - adds a single, final rollup row * **rollup="all"** - rolls up all dimension levels * **rollup=1** - rolls up the first dimension only * **rollup=2** - rolls up the first two dimensions * **rollup=3** - rolls up all three dimensions * Any other non-None value would raise an error * **pivot** - (*list, optional*) A list of dimensions to pivot to columns * **order_by** - (*list, optional*) A list of (field, asc/desc) tuples that control the ordering of the returned result * **limit** - (*int, optional*) A limit on the number of rows returned * **limit_first** - (*bool, optional*) Whether to apply limits before rollups/ordering * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this report * **allow_partial** - (*boolean, optional*) Allow reports where only some metrics can meet the requested grain. * **disabled_tables** - (*list, optional*) A list of table names to disable for this report. * **report_depth** - (*int, optional*) The depth of subreport recursion we are currently in. This is used to prevent infinite recursion when building subreports. **Notes:** The order_by and limit functionality is only applied on the final/combined result, NOT in your DataSource queries. In most cases when you are dealing with DataSource tables that are of a decent size you will want to make sure to include criteria that limit the scope of your query and/or take advantage of underlying table indexing. If you were to use order_by or limit without any criteria or dimensions, you would effectively select all rows from the underlying datasource table into memory (or at least try to). """ def __init__( self, warehouse, metrics=None, dimensions=None, criteria=None, row_filters=None, rollup=None, pivot=None, order_by=None, limit=None, limit_first=False, adhoc_datasources=None, allow_partial=False, disabled_tables=None, report_depth=1, ): start = time.time() raiseif( report_depth > MAX_REPORT_DEPTH, f"Max sub-report depth exceeded ({MAX_REPORT_DEPTH})", ) self.report_depth = report_depth self.spec_id = None self.meta = None self.uuid = uuid.uuid1() self.warehouse = warehouse self.allow_partial = allow_partial self.disabled_tables = disabled_tables or [] self.is_partial = False self.unsupported_grain_metrics = {} if adhoc_datasources: self.warehouse.run_integrity_checks(adhoc_datasources=adhoc_datasources) self._requested_metrics = metrics self._requested_dimensions = dimensions self._requested_criteria = criteria self.metrics = self._get_fields_dict( metrics, FieldTypes.METRIC, adhoc_datasources=adhoc_datasources ) self.dimensions = self._get_fields_dict( dimensions, FieldTypes.DIMENSION, adhoc_datasources=adhoc_datasources ) raiseifnot( self.metrics or self.dimensions, "One of metrics or dimensions must be specified for Report", ) criteria = self._process_subreports( criteria, adhoc_datasources=adhoc_datasources ) self.criteria = self._populate_criteria_fields( criteria or [], adhoc_datasources=adhoc_datasources ) self.row_filters = row_filters or [] self.rollup = None if rollup is not None: raiseifnot(dimensions, "Must specify dimensions in order to use rollup") if rollup not in RollupTypes: raiseifnot( is_int(rollup) and (0 < int(rollup) <= len(dimensions)), "Invalid rollup value: %s" % rollup, ) self.rollup = int(rollup) else: self.rollup = rollup self.pivot = pivot or [] if pivot: raiseifnot( set(self.pivot).issubset(set(self.dimensions)), "Pivot fields must be a subset of dimensions", ) # TODO: apply order_by and limits at the datasource level # when possible. self.order_by = order_by or [] if order_by: self._check_order_by(self.order_by) self.limit = limit or None if self.limit is not None: raiseifnot( isinstance(self.limit, int) and self.limit > 0, "Limit must be an integer > 0", ) self.limit_first = limit_first self.adhoc_datasources = adhoc_datasources or [] self.ds_metrics = OrderedDict() self.ds_dimensions = OrderedDict() for metric in self.metrics.values(): self._add_ds_fields(metric) for dim in self.dimensions.values(): self._add_ds_fields(dim) self._check_required_grain() self.queries = self._build_ds_queries( allow_partial=allow_partial, disabled_tables=disabled_tables ) self.combined_query = None self.result = None super().__init__() self._set_state(ExecutionState.READY) dbg("Report init took %.3fs" % (time.time() - start)) def get_params(self): """Get a dict of params used to create the Report""" used_datasources = list({q.get_datasource_name() for q in self.queries}) datasources = [ds.get_params() for ds in self.warehouse.datasources] return dict( kwargs=dict( metrics=self._requested_metrics, dimensions=self._requested_dimensions, criteria=self._requested_criteria, row_filters=self.row_filters, rollup=self.rollup, pivot=self.pivot, order_by=self.order_by, limit=self.limit, limit_first=self.limit_first, allow_partial=self.allow_partial, ), datasources=datasources, used_datasources=used_datasources, ) def get_json(self): """Get a JSON representation of the Report params""" return json.dumps(self.get_params()) def save(self, meta=None): """Save the report spec and return the saved spec ID **Parameters:** * **meta** - (*object, optional*) A metadata object to be serialized as JSON and stored with the report **Returns:** (*int*) - The ID of the saved ReportSpec """ raiseifnot( self.warehouse.id, "The Warehouse must be saved before ReportSpecs can be saved", ) conn = zillion_engine.connect() try: result = conn.execute( ReportSpecs.insert(), warehouse_id=self.warehouse.id, params=self.get_json(), meta=json.dumps(meta), ) spec_id = result.inserted_primary_key[0] raiseifnot(spec_id, "No report spec ID found") finally: conn.close() self.spec_id = spec_id self.meta = meta return spec_id def execute(self): """Execute the datasource queries, combine the results, and do the final result selection. Save the ReportResult on the result attribute""" start = time.time() self._set_state(ExecutionState.QUERYING, assert_ready=True) try: query_results = self._execute_ds_queries(self.queries) summaries = [x.summary for x in query_results] self._raise_if_killed() cr = self._create_combined_result(query_results) used_metrics = self.metrics if self.is_partial: used_metrics = OrderedDict() for metric_name, metric in self.metrics.items(): if metric_name in self.unsupported_grain_metrics: dbg(f"skipping {metric_name} due to unsupported grain") continue metric_raw_fields = metric.get_all_raw_fields( self.warehouse, adhoc_fms=self.adhoc_datasources ) if metric_raw_fields & self.unsupported_grain_metrics.keys(): dbg( f"skipping {metric_name} due to unsupported formula/weighting metric grain" ) continue used_metrics[metric_name] = metric try: self._raise_if_killed() final_result = cr.get_final_result( used_metrics, self.dimensions, self.row_filters, self.rollup, self.pivot, self.order_by, self.limit, self.limit_first, ) diff = time.time() - start self.result = ReportResult( final_result, diff, summaries, used_metrics, self.dimensions, self.rollup, unsupported_grain_metrics=self.unsupported_grain_metrics, warnings=cr.warnings.copy(), ) return self.result finally: cr.clean_up() finally: self._set_state( ExecutionState.READY, raise_if_killed=True, set_if_killed=True ) def kill(self, soft=False, raise_if_failed=False): """Kill a running report **Parameters:** * **soft** - (*bool, optional*) If true, set the report state to killed without attempting to kill any running datasource queries. * **raise_if_failed** - (*bool, optional*) If true, raise FailedKillException if any exceptions occurred when trying to kill datasource queries. Otherwise a warning will be emitted. """ dbg("killing report %s" % self.uuid) with self._get_lock(): if self._ready: warn("kill called on report that isn't running") return if self._killed: warn("kill called on report already being killed") return if soft: self._set_state(ExecutionState.KILLED) return querying = self._querying # grab state before changing it self._set_state(ExecutionState.KILLED) if querying: dbg("attempting kill on %d report queries" % len(self.queries)) exceptions = [] for query in self.queries: try: query.kill() except Exception as e: setattr(e, "query", query) exceptions.append(e) if exceptions: if raise_if_failed: raise FailedKillException(exceptions) warn("failed to kill some queries: %s" % exceptions) def get_grain(self): """Get the grain of this report, which accounts for dimension fields required in the requested dimensions, criteria, and formula-based fields.""" if not (self.ds_dimensions or self.criteria): return None grain = set() if self.ds_dimensions: grain = grain | self.ds_dimensions.keys() if self.criteria: grain = grain | {x[0].name for x in self.criteria} return grain def get_dimension_grain(self): """Get the portion of the grain specific to request dimensions""" if not self.dimensions: return None return set(self.dimensions.keys()) def _get_fields_dict(self, names, field_type, adhoc_datasources=None): """Get a dict mapping of field names to Field objects **Parameters:** * **names** - (*list*) A list of field names * **field_type** - (*str*) The FieldType * **adhoc_datasources** - (*list, optional*) A list of FieldManagers **Returns:** (*dict*) - A mapping of field names to Field objects """ d = OrderedDict() for name in names or []: if field_type == FieldTypes.METRIC: field = self.warehouse.get_metric(name, adhoc_fms=adhoc_datasources) elif field_type == FieldTypes.DIMENSION: field = self.warehouse.get_dimension(name, adhoc_fms=adhoc_datasources) else: raise ZillionException("Invalid field type: %s" % field_type) d[field.name] = field return d def _populate_criteria_fields(self, criteria, adhoc_datasources=None): """Given the requested criteria, replace the field name references with the corresponding Field objects.""" field_names = [row[0] for row in criteria] fields_dict = self._get_fields_dict( field_names, FieldTypes.DIMENSION, adhoc_datasources=adhoc_datasources ) final_criteria = [] for row in criteria: row = list(row) field = fields_dict[row[0]] # Replace field name with field object if isinstance(field, FormulaField): raise ReportException( "FormulaFields are not allowed in criteria: %s" % field.name ) row[0] = field final_criteria.append(row) return final_criteria def _process_subreports(self, criteria, adhoc_datasources=None): """Process subreports in requested criteria and return an updated criteria object""" if not criteria: return criteria final_criteria = [] for row in criteria: field, op, value = row if op not in ["in report", "not in report"]: final_criteria.append(row) continue if is_int(value): # The value is assumed to be a report spec ID report = self.load( self.warehouse, value, adhoc_datasources=adhoc_datasources ) elif isinstance(value, dict): # The value is assumed to be a dict of report params report = Report( self.warehouse, **value, adhoc_datasources=adhoc_datasources, report_depth=self.report_depth + 1, ) else: raise ReportException(f"Invalid {op} criteria value: {value}") if field not in report.get_dimension_grain(): raise ReportException( f"Invalid subreport, missing required dimension: {field}" ) res = report.execute() # The field is a dimension so it will be part of the index values = res.non_rollup_rows.index.unique(field).tolist() dbg(f"Subreport has {len(values)} values for {field}") if op == "in report": final_criteria.append([field, "in", values]) else: final_criteria.append([field, "not in", values]) return final_criteria def _check_order_by(self, order_by): """Validate the format of the order_by specification""" raiseifnot( isinstance(order_by, (tuple, list)), "order_by must be a tuple or list" ) fields = set() for row in order_by: raiseifnot( len(row) == 2, "order_by must be an iterable of (field, order type) pairs", ) field, ob_type = row raiseifnot(ob_type in OrderByTypes, "Invalid order_by type: %s" % ob_type) fields.add(field) raiseifnot( fields.issubset(set(self.dimensions) | set(self.metrics)), "Order by fields must be a subset of Report fields", ) def _add_ds_fields(self, field): """Add all datasource fields that are part of this field. This will add to either the ds_metrics or ds_dimensions attributes. **Parameters:** * **field** - (*Field*) A Field object to analyze """ raw_fields = field.get_all_raw_fields( self.warehouse, adhoc_fms=self.adhoc_datasources ) for raw_field in raw_fields: if raw_field == field.name: if field.field_type == FieldTypes.METRIC: self.ds_metrics[raw_field] = field elif field.field_type == FieldTypes.DIMENSION: self.ds_dimensions[raw_field] = field else: raise ZillionException("Invalid field_type: %s" % field.field_type) continue if self.warehouse.has_metric(raw_field, adhoc_fms=self.adhoc_datasources): self.ds_metrics[raw_field] = self.warehouse.get_metric( raw_field, adhoc_fms=self.adhoc_datasources ) elif self.warehouse.has_dimension( raw_field, adhoc_fms=self.adhoc_datasources ): self.ds_dimensions[raw_field] = self.warehouse.get_dimension( raw_field, adhoc_fms=self.adhoc_datasources ) else: raise ZillionException( "Could not find field %s in warehouse" % raw_field ) def _get_query_label(self, query_label): """Get a standardized label for the report query""" return "Report: %s | Query: %s" % (str(self.uuid), query_label) def _execute_ds_queries_sequential(self, queries): """Execute all DataSource queries in sequential order **Parameters:** * **queries** - (*list*) A list of DataSourceQuery objects **Returns:** (*list*) - A list of query execution results """ results = [] timeout = zillion_config["DATASOURCE_QUERY_TIMEOUT"] for i, query in enumerate(queries): self._raise_if_killed() label = self._get_query_label("%s / %s" % (i + 1, len(queries))) result = query.execute(timeout=timeout, label=label) results.append(result) return results def _execute_ds_queries_multithread(self, queries): """Execute all DataSource queries in a ThreadPoolExecutor **Parameters:** * **queries** - (*list*) A list of DataSourceQuery objects **Returns:** (*list*) - A list of query execution results """ # TODO: If any query times out, the entire report fails. It might be # better if partial results could be returned. finished = {} timeout = zillion_config["DATASOURCE_QUERY_TIMEOUT"] workers = min( zillion_config.get("DATASOURCE_QUERY_WORKERS", len(queries)), len(queries) ) with ThreadPoolExecutor(max_workers=workers) as executor: futures_map = {} for i, query in enumerate(queries): label = self._get_query_label("%s / %s" % (i + 1, len(queries))) future = executor.submit(query.execute, timeout=timeout, label=label) futures_map[future] = query for future in as_completed(futures_map): data = future.result() query = futures_map[future] finished[future] = data return finished.values() def _execute_ds_queries(self, queries): """Execute a set of DataSource queries. The DATASOURCE_QUERY_MODE config var will control the execution mode. **Parameters:** * **queries** - (*list*) A list of DataSourceQuery objects **Returns:** (*list*) - A list of query execution results """ mode = zillion_config["DATASOURCE_QUERY_MODE"] dbg("Executing %s datasource queries in %s mode" % (len(queries), mode)) start = time.time() if mode == DataSourceQueryModes.SEQUENTIAL: return self._execute_ds_queries_sequential(queries) if mode == DataSourceQueryModes.MULTITHREAD: return self._execute_ds_queries_multithread(queries) dbg("DataSource queries took %.3fs" % (time.time() - start)) raise ZillionException("Invalid DATASOURCE_QUERY_MODE: %s" % mode) def _check_required_grain(self): """Check that the dimension grain requirements are met for requested fields""" grain = self.get_dimension_grain() or set() grain_errors = [] for metric in self.metrics.values(): if metric.required_grain: if not set(metric.required_grain).issubset(grain): grain_errors.append( "Grain %s is not a superset of required_grain %s for metric: %s" % (grain, metric.required_grain, metric.name) ) for metric in self.ds_metrics.values(): if metric.required_grain: if not set(metric.required_grain).issubset(grain): grain_errors.append( "Grain %s is not a superset of required_grain %s for metric: %s" % (grain, metric.required_grain, metric.name) ) if grain_errors: raise UnsupportedGrainException(grain_errors) def _build_ds_queries(self, allow_partial=False, disabled_tables=None): """Build all datasource-level queries needed for this report""" grain = self.get_grain() dim_grain = self.get_dimension_grain() grain_errors = [] queries = [] def metric_covered_in_queries(metric): for query in queries: if query.covers_metric(metric): query.add_metric(metric, adhoc_fms=self.adhoc_datasources) return query return False for metric_name, metric in self.ds_metrics.items(): existing_query = metric_covered_in_queries(metric_name) if existing_query: dbg("Metric %s is covered by existing query" % metric_name) continue try: table_set = self.warehouse.get_metric_table_set( metric_name, grain, dimension_grain=dim_grain, adhoc_datasources=self.adhoc_datasources, disabled_tables=disabled_tables, ) except UnsupportedGrainException as e: # Gather all grain errors to be raised in one exception grain_errors.append(str(e)) self.unsupported_grain_metrics[metric_name] = str(e) continue query = DataSourceQuery( self.warehouse, {metric.name: metric}, self.ds_dimensions, self.criteria, table_set, ) queries.append(query) if grain_errors: if allow_partial and queries: warn( f"Running partial report for {len(queries)}/{len(self.ds_metrics)} metrics" ) self.is_partial = True else: raise UnsupportedGrainException(grain_errors) if not self.ds_metrics: dbg("No metrics requested, getting dimension table sets") table_set = self.warehouse.get_dimension_table_set( grain, dimension_grain=dim_grain, adhoc_datasources=self.adhoc_datasources, disabled_tables=disabled_tables, ) query = DataSourceQuery( self.warehouse, None, self.ds_dimensions, self.criteria, table_set ) queries.append(query) for query in queries: dbgsql(sqla_compile(query.select)) return queries def _create_combined_result(self, ds_query_results): """Create a single combined result from the datasource query resultss **Parameters:** * **ds_query_results** - (*list*) A list of DataSourceQueryResult objects """ start = time.time() result = SQLiteMemoryCombinedResult( self.warehouse, ds_query_results, list(self.ds_dimensions.keys()), adhoc_datasources=self.adhoc_datasources, ) dbg("Combined result took %.3fs" % (time.time() - start)) return result @classmethod def from_params(cls, warehouse, params, adhoc_datasources=None, report_depth=1): """Build a report from a set of report params **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse object * **params** - (*dict*) A dict of Report params * **adhoc_datasources** - (*list, optional*) A list of FieldManagers * **report_depth** - (*int, optional*) The depth of the subreport, used internally to prevent too much recursion. """ used_dses = set(params.get("used_datasources", [])) wh_dses = warehouse.datasource_names all_dses = set(wh_dses) | {x.name for x in (adhoc_datasources or [])} if not used_dses.issubset(all_dses): raise ReportException( "Report requires datasources that are not present: %s Found: %s" % (used_dses - all_dses, all_dses) ) return Report( warehouse, **params["kwargs"], adhoc_datasources=adhoc_datasources, report_depth=report_depth, ) @classmethod def from_text( cls, warehouse, text, adhoc_datasources=None, allow_partial=False, report_depth=1, ): """Build a report from a set of report params **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse object * **text** - (*str*) A natural language query * **adhoc_datasources** - (*list, optional*) A list of FieldManagers * **allow_partial** - (*bool, optional*) Allow partial report results * **report_depth** - (*int, optional*) The depth of the subreport, used internally to prevent too much recursion. **Returns:** * **report** - (*Report*) A report object """ params = None prompts = ["all_fields", "dimension_fields", "no_fields"] for prompt in prompts: try: params = text_to_report_params(text, warehouse, prompt_version=prompt) break except MaxTokensException as e: warn(f"Max tokens exceeded, retrying with fallback prompt") raiseifnot(params, "Could not parse report params from text: %s" % text) report_params = map_warehouse_report_params(warehouse, params) return Report( warehouse, **report_params, adhoc_datasources=adhoc_datasources, allow_partial=allow_partial, report_depth=report_depth, ) @classmethod def load(cls, warehouse, spec_id, adhoc_datasources=None, report_depth=1): """Load a report from a spec ID **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse object * **spec_id** - (*int*) A ReportSpec ID * **adhoc_datasources** - (*list, optional*) A list of FieldManagers * **report_depth** - (*int, optional*) The depth of the subreport, used internally to prevent too much recursion. """ spec = cls._load_report_spec(warehouse, spec_id) if not spec: raise InvalidReportIdException( "Could not find report for spec id: %s" % spec_id ) params = json.loads(spec["params"]) meta = json.loads(spec["meta"]) if spec["meta"] else None result = cls.from_params( warehouse, params, adhoc_datasources=adhoc_datasources, report_depth=report_depth, ) result.meta = meta return result @classmethod def load_warehouse_id_for_report(cls, spec_id): """Get the Warehouse ID for a particular report spec **Parameters:** * **spec_id** - (*int*) A ReportSpec ID **Returns:** (*dict*) - A Warehouse ID """ s = sa.select([ReportSpecs.c.warehouse_id]).where(ReportSpecs.c.id == spec_id) conn = zillion_engine.connect() try: result = conn.execute(s) row = result.fetchone() if not row: return None return row["warehouse_id"] finally: conn.close() @classmethod def delete(cls, warehouse, spec_id): """Delete a saved report spec **Parameters:** * **spec_id** - (*int*) The ID of a ReportSpec to delete """ s = ReportSpecs.delete().where( sa.and_( ReportSpecs.c.warehouse_id == warehouse.id, ReportSpecs.c.id == spec_id ) ) conn = zillion_engine.connect() try: conn.execute(s) finally: conn.close() @classmethod def _load_report_spec(cls, warehouse, spec_id): """Get a ReportSpec row from a ReportSpec ID. The report spec must exist within the context of the given warehouse. **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse object * **spec_id** - (*int*) The ID of the ReportSpec to load **Returns:** (*dict*) - A ReportSpec row """ raiseifnot( warehouse.id, "trying to load ReportSpec for unspecified Warehouse ID" ) s = sa.select(ReportSpecs.c).where( sa.and_( ReportSpecs.c.warehouse_id == warehouse.id, ReportSpecs.c.id == spec_id ) ) conn = zillion_engine.connect() try: result = conn.execute(s) row = result.fetchone() return row finally: conn.close() @classmethod def _load_params(cls, warehouse, spec_id): """Get Report params from a ReportSpec ID **Parameters:** * **warehouse** - (*Warehouse*) A zillion warehouse object * **spec_id** - (*int*) The ID of the ReportSpec to load params for **Returns:** (*dict*) - A dict of Report params """ spec = cls._load_report_spec(warehouse, spec_id) if not spec: raise InvalidReportIdException( "Could not find report for spec id: %s" % spec_id ) return json.loads(spec["params"]) class ReportResult(PrintMixin): """Encapsulates a report result as well as some additional helpers and summary statistics. **Parameters:** * **df** - (*DataFrame*) The DataFrame containing the final report result * **duration** - (*float*) The report execution duration in seconds * **query_summaries** - (*list of DataSourceQuerySummary*) Summaries of the underyling query results. * **metrics** - (*OrderedDict*) A mapping of requested metrics to Metric objects * **dimensions** - (*OrderedDict*) A mapping of requested dimensions to Dimension objects * **rollup** - (*str or int*) See the Report docs for more details. * **unsupported_grain_metrics** - (*dict*) A dictionary mapping metric names to reasons why they could not meet the requested grain of the Report. """ repr_attrs = ["rowcount", "duration", "is_partial", "query_summaries"] @initializer def __init__( self, df, duration, query_summaries, metrics, dimensions, rollup, unsupported_grain_metrics=None, warnings=None, ): raiseif(metrics and (not isinstance(metrics, OrderedDict))) raiseif(dimensions and (not isinstance(dimensions, OrderedDict))) self.duration = round(duration, 4) self.rowcount = len(df) self.is_partial = True if unsupported_grain_metrics else False @property def rollup_mask(self): """Get a mask of rows that contain the rollup marker""" mask = None index = self.df.index for i in range(index.nlevels): if mask is None: mask = index.isin([ROLLUP_INDEX_LABEL], i) else: mask = mask | index.isin([ROLLUP_INDEX_LABEL], i) return mask @property def rollup_rows(self): """Get the rows of the dataframe that are rollups""" return self.df.loc[self.rollup_mask] @property def non_rollup_rows(self): """Get the rows of the dataframe that are not rollups""" return self.df.loc[~self.rollup_mask] @property def display_name_map(self): """Get the map from default to display names""" name_map = {v.name: v.display_name or v.name for v in self.dimensions.values()} for column in self.df.columns: if column in self.metrics: field = self.metrics[column] name_map[column] = field.display_name or field.name else: # Some technicals add additional columns, this ensures they # use a reasonable display format instead of getting ignored. name_map[column] = default_field_display_name(column) return name_map @property def df_display(self): """Get the rows of the dataframe with data in display format. This includes replacing rollup markers with display values""" df = self.df if self.rollup: df = df.rename(index={ROLLUP_INDEX_LABEL: ROLLUP_INDEX_DISPLAY_LABEL}) if self.dimensions: df.index.names = [ v.display_name or v.name for v in self.dimensions.values() ] return df.rename(columns=self.display_name_map) ================================================ FILE: zillion/scripts/__init__.py ================================================ ================================================ FILE: zillion/scripts/bootstrap_datasource_config.py ================================================ """ This is a helper script to bootstrap the creation of a config for a datasource. This is useful when you have an existing database that you want to create a DataSource or Warehouse for, but would like to save some time on the boilerplate work that goes into creating and structuring the config file. This script will reflect the database schema and do its best to infer the metric, dimension, and table configurations. Note that this does not produce a full Warehouse config -- you'll still need to add the datasource config to a warehouse config. WARNING: Any secret information (e.g. passwords) in the given connection url will be stored in plaintext in the output file. See https://totalhack.github.io/zillion/#config-variables for more information on how to use config variables as secret placeholders. WARNING: This is not intended to produce a production-ready config output! It is strongly recommended that you review the output and customize to your needs. """ import argparse import getpass import os from tlbx import Script, Arg, prompt_user, json, st import yaml from zillion.configs import ( field_safe_name, default_field_display_name, DataSourceConfigSchema, ) from zillion.core import ( set_log_level, info, warn, FieldTypes, TableTypes, IfFileExistsModes, ) from zillion.datasource import ( entity_name_from_file, data_url_to_metadata, connect_url_to_metadata, reflect_metadata, DataSource, ) from zillion.nlp import get_nlp_table_info, get_nlp_table_relationships from zillion.sql_utils import ( column_fullname, is_probably_metric, to_generic_sa_type, infer_aggregation_and_rounding, ) from zillion.warehouse import Warehouse set_log_level("INFO") def get_primary_key(table, full_names=False): """Get the primary key fields for a table, optionally with fully qualified names""" if full_names: return [field_safe_name(column_fullname(x)) for x in table.primary_key.columns] return [ field_safe_name(table.name + "_" + x.name) for x in table.primary_key.columns ] def get_field_name(table, column, full_names=False): """Get the field name for a column, optionally with fully qualified names""" if full_names: return field_safe_name(column_fullname(column)) return field_safe_name(table.name + "_" + column.name) def get_foreign_key_relationships(metadata, table_configs): """Get the foreign key relationships between tables **Parameters:** * **metadata** - (*SQLAlchemy metadata*) The SQLAlchemy metadata object * **table_configs** - (*dict*) The table configs to use **Returns:** * **metric_rel** - (*dict*) A dictionary mapping metric child->parent relationships * **dim_rel** - (*dict*) A dictionary mapping dimension child->parent relationships """ metric_rel = {} dim_rel = {} for table_name, table_config in table_configs.items(): table = metadata.tables[table_name] if not table.foreign_keys: continue for fk in table.foreign_keys: # SQLAlchemy does it backwards from how we view parent/child! child = column_fullname(fk.parent) parent = column_fullname(fk.column) if table_config["type"] == TableTypes.METRIC: metric_rel[child] = parent else: dim_rel[child] = parent return metric_rel, dim_rel def infer_table_relationships(metadata, table_configs, nlp=False): """Infer table relationships from the database schema and modify the table configs in place. Foreign key relationships defined in the metadata take precedence over relationships inferred from NLP. **Parameters:** * **metadata** - (*SQLAlchemy metadata*) The SQLAlchemy metadata object * **table_configs** - (*list of dicts*) The table configs to use * **nlp** - (*bool, optional*) Whether to use NLP to infer relationships. Requires the NLP extension to be installed. """ metric_rel, dim_rel = get_foreign_key_relationships(metadata, table_configs) if nlp: info(f"---- Inferring metric table relationships from NLP") # Metric tables can join to either type, so include all configs nlp_metric_rel = get_nlp_table_relationships(metadata, table_configs) # FK relationships take precedence over NLP nlp_metric_rel.update(metric_rel) metric_rel = nlp_metric_rel dim_tables = { k for k, v in table_configs.items() if v["type"] == TableTypes.DIMENSION } info(f"---- Inferring dimension relationships from NLP") nlp_dim_rel = get_nlp_table_relationships(metadata, dim_tables) # FK relationships take precedence over NLP nlp_dim_rel.update(dim_rel) dim_rel = nlp_dim_rel all_rel = {**metric_rel, **dim_rel} for child_column_full, parent_column_full in all_rel.items(): child_table = ".".join(child_column_full.split(".")[:-1]) parent_table = ".".join(parent_column_full.split(".")[:-1]) if child_table not in table_configs: warn( f"Table {child_table} not found for {child_column_full}->{parent_column_full}, LLM may have made it up." ) continue child_config = table_configs[child_table] if parent_table not in table_configs: warn( f"Table {parent_table} not found for {child_column_full}->{parent_column_full}, LLM may have made it up." ) continue parent_config = table_configs[parent_table] if child_table == parent_table: warn(f"Skipping self-referential relationship for {child_column_full}") continue if child_config.get("parent", None): warn(f"Parent already set for {child_table}, skipping") continue parent_pk = parent_config["primary_key"] if len(parent_pk) != 1: warn(f"Multiple primary key columns found for {parent_table}, skipping") continue if ( child_config["type"] == TableTypes.DIMENSION and parent_config["type"] == TableTypes.METRIC ): warn( f"Skipping dimension->metric relationship for {child_column_full}->{parent_column_full}" ) continue set_parent = True if ( child_config["type"] == TableTypes.METRIC and parent_config["type"] == TableTypes.DIMENSION ): # This is not a parent-child relationship, just a joinable dimension # Ensure the "parent" pk is in the child fields set_parent = False child_column = child_column_full.split(".")[-1] parent_pk = parent_pk[0] if set_parent: child_config["parent"] = parent_table for cname, cconfig in child_config["columns"].items(): if cname != child_column: continue fields = cconfig["fields"] if parent_pk in fields: # Field already references the parent pk continue fields.append(parent_pk) def get_configs( metadata, tables=None, ignore_tables=None, manual_table_types=False, full_names=False, nlp=False, ): """Get the fields and table configs for a database schema **Parameters:** * **metadata** - (SQLAlchemy metadata) The SQLAlchemy metadata object * **tables** - (list of str) The tables to include, if None include all * **ignore_tables** - (list of str) The tables to ignore, if None ignore none * **manual_table_types** - (bool) Whether to prompt the user for table types * **full_names** - (bool) Whether to use fully qualified names for fields * **nlp** - (bool) Whether to use NLP to infer relationships. Requires the NLP extension to be installed. **Returns:** * **table_configs** - (dict) The table configs * **metrics** - (list of str) The metric fields * **dimensions** - (list of str) The dimension fields """ metrics = [] dimensions = [] table_configs = {} for table_name, table in metadata.tables.items(): if tables and table_name not in tables: info(f"Skipping table: {table_name}") continue if ignore_tables and table_name in ignore_tables: info(f"Skipping table: {table_name}") continue info(f"\n---- Table: {table_name}") table_type = None table_metrics = [] table_dimensions = [] table_columns = {} primary_key = get_primary_key(table, full_names=full_names) nlp_table_info = get_nlp_table_info(table) if nlp else {} if manual_table_types: type_prompt = prompt_user( "Metric table (m), Dimension table (d), or skip (s)?", ["m", "d", "s"] ) if type_prompt == "s": continue table_type = ( TableTypes.METRIC if type_prompt == "m" else TableTypes.DIMENSION ) for column in table.c: field_name = get_field_name(table, column, full_names=full_names) table_columns[str(column.name)] = dict(fields=[field_name]) coltype = str(to_generic_sa_type(column.type)).lower() nlp_column_info = nlp_table_info.get(column.name, {}) if ( table_type == TableTypes.METRIC or (not manual_table_types) ) and is_probably_metric(column, nlp_column_info=nlp_column_info): if table_type is None: info(f"{table_name} inferred as metric table") table_type = TableTypes.METRIC field_type = FieldTypes.METRIC aggregation = nlp_column_info.get("aggregation", None) rounding = nlp_column_info.get("rounding", None) _aggregation, _rounding = infer_aggregation_and_rounding(column) table_metrics.append( dict( name=field_name, display_name=default_field_display_name(field_name), type=coltype, aggregation=( aggregation.lower() if aggregation != None else _aggregation ), rounding=int(rounding) if rounding != None else _rounding, ) ) else: field_type = FieldTypes.DIMENSION table_dimensions.append( dict( name=field_name, display_name=default_field_display_name(field_name), type=coltype, ) ) info(f"Adding {field_type} for {table_name}.{column.name}") if table_type is None: info(f"{table_name} inferred as dimension table") table_type = TableTypes.DIMENSION table_configs[table_name] = dict( type=table_type, primary_key=primary_key, columns=table_columns, ) metrics.extend(table_metrics) dimensions.extend(table_dimensions) return table_configs, metrics, dimensions class SecureAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): if values is None: values = getpass.getpass(self.dest + ": ") setattr(namespace, self.dest, values) @Script( Arg( "url", action=SecureAction, nargs="?", type=str, help="Database connection string or url. You will be prompted for this on script run.", ), Arg("filename", type=str, help="Filename to output config to"), Arg( "--tables", nargs="+", default=None, help="A list of full table names to filter to (.)", ), Arg( "--ignore-tables", nargs="+", default=None, help="A list of full table names to ignore (.
)", ), Arg("--ds-name", type=str, default=None, help="Name to give the DataSource"), Arg( "--full-names", action="store_true", default=False, help="Use full column names" ), Arg( "--verify", action="store_true", default=False, help="Verify config by loading as a Warehouse to run integrity checks", ), Arg( "--manual-table-types", action="store_true", default=False, help="Prompt to confirm table types instead of inferring from presence of metrics", ), Arg( "--yaml", action="store_true", dest="use_yaml", default=False, help="Output config as YAML instead of JSON", ), Arg("--indent", type=int, default=4, help="Config file indentation"), Arg( "--nlp", action="store_true", default=False, help="Leverage NLP/AI to bootstrap the configuration. Requires OpenAI settings in your zillion config file.", ), ) def main( url, filename, tables=None, ignore_tables=None, ds_name=None, full_names=False, verify=False, manual_table_types=False, use_yaml=False, indent=None, nlp=False, ): connect_params = {} if os.path.isfile(url) or url.startswith("http"): ds_name = ds_name or entity_name_from_file(url) metadata = data_url_to_metadata( url, ds_name, if_exists=IfFileExistsModes.IGNORE ) connect_params = dict(data_url=url, if_exists=IfFileExistsModes.IGNORE) else: metadata = connect_url_to_metadata(url, ds_name=ds_name) connect_params = dict(connect_url=url) reflect_metadata(metadata) table_configs, metrics, dimensions = get_configs( metadata, tables=tables, ignore_tables=ignore_tables, manual_table_types=manual_table_types, full_names=full_names, nlp=nlp, ) infer_table_relationships(metadata, table_configs, nlp=nlp) res = dict( connect=dict(params=connect_params), metrics=metrics, dimensions=dimensions, tables=table_configs, ) schema = DataSourceConfigSchema() schema.load(res) info("Creating Datasource") ds = DataSource(ds_name or "bootstrap", config=res) with open(filename, "w") as f: if use_yaml: f.write(yaml.dump(res, indent=indent, sort_keys=False)) else: f.write(json.dumps(res, indent=indent)) info(f"Wrote output to {filename}") warn( f"WARNING: your connection string is stored in {filename}! If it has sensitive information you should use datasource context vars with placeholders instead.\nSee https://totalhack.github.io/zillion/#config-variables" ) if verify: info("Verifying Warehouse") Warehouse(datasources=[ds]) if __name__ == "__main__": main() ================================================ FILE: zillion/scripts/json_to_yaml.py ================================================ #!/usr/bin/env python import sys, yaml, json print(yaml.dump(json.loads(sys.stdin.read()), indent=2, sort_keys=False)) ================================================ FILE: zillion/scripts/load_config.py ================================================ #!/usr/bin/env python """Helper script to load a config for testing/inspection. This will drop you into a PDB shell with the loaded Warehouse object available as `wh`.""" import ast import logging import time from tlbx import Script, Arg, raiseif, st from zillion.core import info, set_log_level from zillion.datasource import DataSource from zillion.warehouse import Warehouse @Script( Arg("config", help="Path to warehouse config file"), Arg( "-ds", "--ds_config", action="store_true", default=False, help="Interpret the config as a DataSource config and create a Warehouse from the DataSource", ), Arg("-ll", "--log_level", type=int, default=logging.INFO, help="Set log level"), ) def main( config=None, ds_config=False, log_level=None, ): if log_level: set_log_level(log_level) start = time.time() if ds_config: ds = DataSource("bootstrap", config=config) wh = Warehouse(datasources=[ds]) else: wh = Warehouse(config=config) info(f"Loaded config in {time.time() - start:.2f} seconds") info(f"Use the 'wh' variable to inspect the loaded Warehouse object.") st() if __name__ == "__main__": main() ================================================ FILE: zillion/scripts/run_report.py ================================================ #!/usr/bin/env python """Helper script to run reports in the command line""" import ast import logging from tlbx import Script, Arg, raiseif, st from zillion.core import info, set_log_level, nlp_installed from zillion.datasource import DataSource from zillion.warehouse import Warehouse @Script( Arg("config", help="Path to warehouse config file"), Arg( "-ds", "--ds-config", action="store_true", default=False, help="Interpret the config as a DataSource config and create a Warehouse from the DataSource", ), Arg("-m", "--metrics", nargs="+", help="Metrics to include in report"), Arg("-d", "--dimensions", nargs="+", help="Dimensions to include in report"), Arg("-c", "--criteria", help="String to be eval'd as criteria param"), Arg("-o", "--order-by", help="String to be eval'd as order by param"), Arg("-r", "--rollup", help="Rollup setting"), Arg("-rf", "--row-filters", help="String to be eval'd as row filter param"), Arg("-l", "--limit", type=int, help="Limit setting"), Arg( "-t", "--text", type=str, help="Execute a report from natural language text. Requires the NLP extension.", ), Arg("-ll", "--log-level", type=int, default=20, help="Set log level"), Arg( "-s", "--set-trace", action="store_true", default=False, help="Drop into debugger to inspect the DataFrame", ), ) def main( config=None, ds_config=False, metrics=None, dimensions=None, criteria=None, order_by=None, row_filters=None, rollup=None, limit=None, text=None, log_level=None, set_trace=None, ): if log_level: set_log_level(log_level) raiseif( text and not nlp_installed, "The NLP extension is not installed. Please install it with `pip install zillion[nlp]` to use the --text option.", ) if ds_config: ds = DataSource("bootstrap", config=config) wh = Warehouse(datasources=[ds]) else: wh = Warehouse(config=config) if text: info(f"Executing report from text: {text}") result = wh.execute_text(text) else: if criteria: criteria = ast.literal_eval(criteria) if order_by: order_by = ast.literal_eval(order_by) if row_filters: row_filters = ast.literal_eval(row_filters) params = dict( metrics=metrics, dimensions=dimensions, criteria=criteria, order_by=order_by, row_filters=row_filters, rollup=rollup, limit=limit, ) info("Executing report with params:") info(params) result = wh.execute(**params) info(result.df_display) if set_trace: info("Dropping into debugger. The DataFrame is available as `result.df`") st() if __name__ == "__main__": main() ================================================ FILE: zillion/scripts/yaml_to_json.py ================================================ #!/usr/bin/env python import sys, yaml, json print(json.dumps(yaml.safe_load(sys.stdin.read()), indent=4)) ================================================ FILE: zillion/sql_utils.py ================================================ import ast import os import re import sqlalchemy as sa from sqlalchemy.dialects.mysql import dialect as mysql_dialect from sqlalchemy.dialects.postgresql import dialect as postgresql_dialect from sqlalchemy.dialects.sqlite import dialect as sqlite_dialect from sqlalchemy.engine import reflection from sqlalchemy.engine.url import make_url from sqlalchemy.ext.compiler import compiles from sqlalchemy.sql import expression as exp import sqlparse as sp from zillion.core import * # from zillion.nlp import build_chain, PromptTemplate DIGIT_THRESHOLD_FOR_MEAN_AGGR = 1 INTEGER_SA_TYPES = [ sa.BigInteger, sa.BIGINT, sa.Integer, sa.INT, sa.INTEGER, sa.SmallInteger, sa.SMALLINT, ] FLOAT_SA_TYPES = [ sa.DECIMAL, sa.Float, sa.FLOAT, sa.Numeric, sa.NUMERIC, sa.REAL, sa.dialects.postgresql.DOUBLE_PRECISION, sa.dialects.postgresql.MONEY, ] NUMERIC_SA_TYPES = INTEGER_SA_TYPES + FLOAT_SA_TYPES DATETIME_SA_TYPES = [sa.DateTime, sa.DATETIME, sa.Time, sa.TIME, sa.TIMESTAMP] DATE_SA_TYPES = [sa.Date, sa.DATE] AGGREGATION_SQLA_FUNC_MAP = { AggregationTypes.MEAN: sa.func.AVG, AggregationTypes.COUNT: sa.func.COUNT, AggregationTypes.COUNT_DISTINCT: lambda x: sa.func.COUNT(sa.distinct(x)), AggregationTypes.MIN: sa.func.MIN, AggregationTypes.MAX: sa.func.MAX, AggregationTypes.SUM: sa.func.SUM, } SQL_AGGREGATION_FUNCS = set( [ "AVG", "SUM", "MIN", "MAX", "COUNT", "COUNT_DISTINCT", "STD", "MEDIAN", "MODE", "VAR", ] ) # This establishes a baseline of schemas to ignore during reflection DIALECT_IGNORE_SCHEMAS = { "mysql": set(["information_schema", "performance_schema", "mysql", "sys"]), "postgresql": set(["information_schema", r"pg_(.*)"]), } class InvalidSQLAlchemyTypeString(Exception): pass def contains_sql_keywords(sql): """Determine whether a SQL query contains special SQL keywords (DML, DDL, etc.) **Parameters:** * **sql** - (*str or sqlparse result*) The SQL query to check for keywords **Returns:** (*bool*) - True if the SQL string contains keywords """ if isinstance(sql, str): sql = sp.parse(sql) for token in sql: if token.ttype in (sp.tokens.DML, sp.tokens.DDL, sp.tokens.CTE): return True if isinstance(token, sp.sql.TokenList): token_result = contains_sql_keywords(token) if token_result: return True return False def contains_aggregation(sql): """Determine whether a SQL query contains aggregation functions. **Warning:** This relies on a non-exhaustive list of SQL aggregation functions to look for. This will likely need updating. **Parameters:** * **sql** - (*str or sqlparse result*) The SQL query to check for aggregation functions **Returns:** (*bool*) - True if the SQL string contains aggregation """ if isinstance(sql, str): sql = sp.parse(sql) for token in sql: if isinstance(token, sp.sql.Function): name = token.get_name() if name.upper() in SQL_AGGREGATION_FUNCS: return True if isinstance(token, sp.sql.TokenList): token_result = contains_aggregation(token) if token_result: return True return False def type_string_to_sa_type(type_string): """Convert a field type string to a SQLAlchemy type. The type string will be evaluated as a python statement or class name to init from the SQLAlchemy top level module. Dialect-specific SQLAlchemy types are not currently supported. **Parameters:** * **type_string** - (*str*) A string representing a SQLAlchemy type, such as "Integer", or "String(32)". This does a case-insensitive search and will return the first matching SQLAlchemy type. **Returns:** (*SQLAlchemy type object*) - An init'd SQLAlchemy type object """ PANDAS_TYPE_MAP = { "int": "Integer", "int64": "BigInteger", "float": "Float", "float64": "Float", "object": "String", "bool": "Boolean", "datetime": "DateTime", "datetime64[ns]": "DateTime", } type_string = PANDAS_TYPE_MAP.get(type_string, type_string) try: tree = ast.parse(type_string) ast_obj = tree.body[0].value if isinstance(ast_obj, ast.Name): type_name = ast_obj.id type_args = [] type_kwargs = {} else: type_name = ast_obj.func.id type_args = [arg.n for arg in ast_obj.args] type_kwargs = {k.arg: k.value.n for k in ast_obj.keywords} type_cls = igetattr(sa.types, type_name, None) if not type_cls: raise InvalidSQLAlchemyTypeString( "Could not find matching type for %s" % type_name ) return type_cls(*type_args, **type_kwargs) except Exception as e: raise InvalidSQLAlchemyTypeString("Unable to parse %s" % type_string) from e def to_generic_sa_type(type): """Return a generic SQLAlchemy type object from a type that may be dialect- specific. This will attempt to preserve common type settings such as specified field length, scale, and precision. On error it will fall back to trying to init the generic type with no params. """ params = {} for param in ["length", "precision", "scale"]: if hasattr(type, param): params[param] = getattr(type, param) try: return type._type_affinity(**params) except Exception as e: if "unexpected keyword" not in str(e): raise return type._type_affinity() def infer_aggregation_and_rounding(column): """Infer the aggregation and rounding settings based on the column type. This is just a rough / best guess based on the column type, precision and rounding settings. **Parameters:** * **column** - (*SQLAlchemy column*) The column to analyze **Returns:** (*AggregationType, int*) - A 2-item tuple of the aggregation type and rounding to use """ if isinstance(column.type, tuple(INTEGER_SA_TYPES)): return AggregationTypes.SUM, 0 if isinstance(column.type, tuple(FLOAT_SA_TYPES)): rounding = column.type.scale precision = column.type.precision if rounding is None and precision is None: aggregation = AggregationTypes.SUM else: if rounding: whole_digits = precision - rounding if whole_digits <= DIGIT_THRESHOLD_FOR_MEAN_AGGR: aggregation = AggregationTypes.MEAN else: aggregation = AggregationTypes.SUM else: # We really don't know what to do here, so we'll just # guess SUM. aggregation = AggregationTypes.SUM return aggregation, rounding raise ZillionException("Column %s is not a numeric type" % column) def aggregation_to_sqla_func(aggregation): """Convert an AggregationType string to a SQLAlchemy function""" return AGGREGATION_SQLA_FUNC_MAP[aggregation] def is_numeric_type(type): """Determine if this is a numeric SQLAlchemy type""" raiseif(isinstance(type, str), "Expected a SQLAlchemy type, got string") if isinstance(type, tuple(NUMERIC_SA_TYPES)): return True return False def is_probably_metric(column, formula=None, nlp_column_info=None): """Determine if a column is probably a metric. This is used when trying to automatically init/reflect a datasource and determine the field types for columns. The logic is very coarse, and should not be relied on for more than quick/convenient use cases. **Parameters:** * **column** - (*SQLAlchemy column*) The column to analyze * **formula** - (*str, optional*) A formula to calculate the column * **nlp_column_info** - (*dict, optional*) Column attributes inferred from natural language processing of the table/column definitions **Returns:** (*bool*) - True if the column is probably a metric """ if formula and contains_aggregation(formula): return True if column.primary_key: return False if column.name.endswith("_id") or column.name.endswith("Id") or column.name == "id": return False if nlp_column_info: if nlp_column_info.get("type", None) == FieldTypes.METRIC: return True return False if not isinstance(column.type, tuple(NUMERIC_SA_TYPES)): return False return True def sqla_compile(expr): """Compile a SQL expression **Parameters:** * **expr** - (*SQLAlchemy expression*) The SQLAlchemy expression to compile **Returns:** (*str*) - The compiled expression string """ return str(expr.compile(compile_kwargs={"literal_binds": True})) def printexpr(expr): """Print a SQLAlchemy expression""" print(sqla_compile(expr)) def column_fullname(column, prefix=None): """Get a fully qualified name for a column **Parameters:** * **column** - (*SQLAlchemy column*) A SQLAlchemy column object to get the full name for * **prefix** - (*str, optional*) If specified, a manual prefix to prepend to the output string. This will automatically be separted with a ".". **Returns:** (*str*) - A fully qualified column name. The exact format will vary depending on your SQLAlchemy metadata, but an example would be: schema.table.column """ name = "%s.%s" % (column.table.fullname, column.name) if prefix: name = prefix + "." + name return name def get_schema_and_table_name(table): """Extract the schema and table name from a full table name. If the table name is not schema-qualified, return None for the schema name""" schema = None table_name = table if "." in table: parts = table.split(".") raiseifnot(len(parts) == 2, "Invalid table name: %s" % table) schema, table_name = parts return schema, table_name def get_sqla_criterion_expr(column, criterion, negate=False): """Create a SQLAlchemy criterion expression **Parameters:** * **column** - (*SQLAlchemy column*) A SQLAlchemy column object to be used in the expression * **criterion** - (*3-item iterable*) A 3-item tuple or list of the format [field, operation, value(s)]. See `core.CRITERIA_OPERATIONS` for supported operations. The value item may take on different formats depending on the operation. In most cases passing an iterable will result in multiple criteria of that operation being formed. For example, ("my_field", "=", [1,2,3]) would logically or 3 conditions of equality to the 3 values in the list. The "between" operations expect each value to be a 2-item iterable representing the lower and upper bound of the criterion. * **negate** - (*bool, optional*) Negate the expression **Returns:** (*SQLAlchemy expression*) - A SQLALchemy expression representing the criterion **Notes:** Postgresql "like" is case sensitive, but mysql "like" is not. Postgresql also supports "ilike" to specify case insensitive, so one option is to look at the dialect to determine the function, but that is not supported yet. """ field, op, values = criterion op = op.lower() if not isinstance(values, (list, tuple)): values = [values] use_or = True has_null = any([v is None for v in values]) if op == "=": clauses = [column == v if v is not None else column.is_(None) for v in values] elif op == "!=": clauses = [column != v if v is not None else column.isnot(None) for v in values] elif op == ">": clauses = [column > v for v in values] elif op == "<": clauses = [column < v for v in values] elif op == ">=": clauses = [column >= v for v in values] elif op == "<=": clauses = [column <= v for v in values] elif op == "in": if has_null: clauses = [ column == v if v is not None else column.is_(None) for v in values ] else: clauses = [column.in_(values)] elif op == "not in": use_or = False if has_null: clauses = [ column != v if v is not None else column.isnot(None) for v in values ] else: clauses = [sa.not_(column.in_(values))] elif op == "between": raiseifnot(len(values) == 2, "Between clause value must have length of 2") clauses = [column.between(values[0], values[1])] elif op == "not between": raiseifnot(len(values) == 2, "Between clause value must have length of 2") clauses = [sa.not_(column.between(values[0], values[1]))] elif op == "like": clauses = [column.like(v) for v in values] elif op == "not like": use_or = False clauses = [sa.not_(column.like(v)) for v in values] else: raise ZillionException("Invalid criterion operand: %s" % op) if use_or: clause = sa.or_(*clauses) else: clause = sa.and_(*clauses) if negate: clause = sa.not_(clause) return clause def check_metadata_url(url, confirm_exists=False): """Check validity of the metadata URL""" url = make_url(url) dialect = url.get_dialect().name if confirm_exists: if dialect == "sqlite": raiseifnot( os.path.isfile(url.database), "SQLite DB does not exist: %s" % url.database, ) else: raise AssertionError( "confirm_exists not supported for dialect: %s" % dialect ) def comment(self, c): """See https://github.com/sqlalchemy/sqlalchemy/wiki/CompiledComments""" self._added_comment = c return self exp.ClauseElement.comment = comment exp.ClauseElement._added_comment = None def _compile_element(elem, prepend_newline=False): """See https://github.com/sqlalchemy/sqlalchemy/wiki/CompiledComments""" @compiles(elem) def add_comment(element, compiler, **kw): meth = getattr(compiler, "visit_%s" % element.__visit_name__) text = meth(element, **kw) if element._added_comment: # Modified this line to not add newline text = "-- %s\n" % element._added_comment + text elif prepend_newline: text = "\n" + text return text _compile_element(exp.Case) _compile_element(exp.Label, True) _compile_element(exp.ColumnClause) _compile_element(exp.Join) _compile_element(exp.Select) _compile_element(exp.Alias) _compile_element(exp.Exists) def get_schemas(engine): """Inspect the SQLAlchemy engine to get a list of schemas""" insp = reflection.Inspector.from_engine(engine) return insp.get_schema_names() # -------- Some DB-specific stuff def to_mysql_type(type): """Compile into a MySQL SQLAlchemy type""" return type.compile(dialect=mysql_dialect()) def to_postgresql_type(type): """Compile into a PostgreSQL SQLAlchemy type""" return type.compile(dialect=postgresql_dialect()) def to_sqlite_type(type): """Compile into a SQLite SQLAlchemy type""" return type.compile(dialect=sqlite_dialect()) def to_duckdb_type(type): """Compile into a DuckDB SQLAlchemy type""" from duckdb_engine import Dialect as duckdb_dialect return type.compile(dialect=duckdb_dialect()) def filter_dialect_schemas(schemas, dialect): """Filter out a set of baseline/system schemas for a dialect **Parameters:** * **schemas** - (*list*) A list of schema names * **dialect** - (*str*) The name of a SQLAlchemy dialect **Returns:** (*list*) - A filtered list of schema names """ ignores = DIALECT_IGNORE_SCHEMAS.get(dialect, None) if not ignores: return schemas final = [] for schema in schemas: add = True for ignore in ignores: if re.match(ignore, schema): add = False break if add: final.append(schema) return final def get_postgres_schemas(conn): """Helper to list PostgreSQL schemas""" qr = conn.execute( sa.text( "SELECT schema_name FROM information_schema.schemata " "WHERE schema_name not LIKE 'pg_%' and schema_name != 'information_schema'" ) ) return [x["schema_name"] for x in qr.fetchall()] def get_postgres_pid(conn): """Helper to get the PostgreSQL connection PID""" qr = conn.execute("select pg_backend_pid()") pid = qr.fetchone()[0] return pid ================================================ FILE: zillion/version.py ================================================ """Package version""" __version__ = "0.14.0" ================================================ FILE: zillion/warehouse.py ================================================ from collections import defaultdict, OrderedDict import time import sqlalchemy as sa from zillion.configs import load_warehouse_config, is_active from zillion.core import * from zillion.datasource import DataSource from zillion.field import get_table_dimensions, get_table_fields, FieldManagerMixin from zillion.model import zillion_engine, Warehouses from zillion.nlp import init_warehouse_embeddings from zillion.report import Report from zillion.sql_utils import is_numeric_type, column_fullname class Warehouse(FieldManagerMixin): """A reporting warehouse that contains various datasources to run queries against and combine data in report results. The warehouse may contain global definitions for metrics and dimensions, and will also perform integrity checks of any added datasources. Note that the id, name, and meta attributes will only be populated when the Warehouse is persisted or loaded from a database. **Parameters:** * **config** - (*dict, str, or buffer, optional*) A dict adhering to the WarehouseConfigSchema or a file location to load the config from * **datasources** - (*list, optional*) A list of DataSources that will make up the warehouse * **ds_priority** - (*list, optional*) An ordered list of datasource names establishing querying priority. This comes into play when part of a report may be satisfied by multiple datasources. Datasources earlier in this list will be higher priority. * **nlp** - (*bool, optional*) If true, allow NLP analysis when creating fields """ def __init__(self, config=None, datasources=None, ds_priority=None, nlp=False): # Note: id/name get updated on save/load self.id = None self.name = None self.meta = None self.nlp = nlp self._datasources = OrderedDict() self._metrics = {} self._dimensions = {} self._supported_dimension_cache = {} for ds in datasources or []: self.add_datasource(ds, skip_integrity_checks=True) if config: config = load_warehouse_config(config) self.apply_config(config, skip_integrity_checks=True, nlp=nlp) raiseifnot(self._datasources, "No datasources provided or found in config") self._add_default_display_names() self.run_integrity_checks() self.ds_priority = ds_priority or list(self._datasources.keys()) raiseifnot( isinstance(self.ds_priority, list), ( "Invalid format for ds_priority, must be list of datasource names: %s" % self.ds_priority ), ) raiseifnot( len(self.ds_priority) == len(self._datasources), "Length mismatch between ds_priority and datasources", ) for ds_name in self.ds_priority: raiseifnot( ds_name in self._datasources, "Datasource %s is in ds_priority but not in datasource map" % ds_name, ) def __repr__(self): return "<%s(name=%s)> Datasources: %s" % ( self.__class__.__name__, self.name, self.datasource_names, ) @property def datasources(self): """The datasource objects in this warehouse""" return self._datasources.values() @property def datasource_names(self): """The names of datasources in this warehouse""" return self._datasources.keys() def print_info(self): """Print the warehouse structure""" print("---- Warehouse") print("metrics:") self.print_metrics(indent=2) print("dimensions:") self.print_dimensions(indent=2) for ds in self.datasources: print() ds.print_info() def get_datasource(self, name, adhoc_datasources=None): """Get the datasource object corresponding to this datasource name **Parameters:** * **name** - (*str*) The name of the datasource * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this request **Returns:** (*DataSource*) - The matching datasource object """ if name in self._datasources: return self._datasources[name] for adhoc_datasource in adhoc_datasources or []: if adhoc_datasource.name == name: return adhoc_datasource raise ZillionException('Could not find datasource with name "%s"' % name) def get_child_field_managers(self): """Get a list of all datasources in this warehouse""" return list(self.datasources) def add_datasource(self, ds, skip_integrity_checks=False): """Add a datasource to this warehouse **Parameters:** * **ds** - (*DataSource*) The datasource object to add * **skip_integrity_checks** - (*bool, optional*) If True, skip warehouse integrity checks """ dbg("Adding datasource %s" % ds.name) self._datasources[ds.name] = ds self._clear_supported_dimension_cache() if not skip_integrity_checks: self.run_integrity_checks() def remove_datasource(self, ds, skip_integrity_checks=False): """Remove a datasource from this config **Parameters:** * **ds** - (*DataSource*) The datasource object to remove * **skip_integrity_checks** - (*bool, optional*) If True, skip warehouse integrity checks """ dbg("Removing datasource %s" % ds.name) del self._datasources[ds.name] self._clear_supported_dimension_cache() if not skip_integrity_checks: self.run_integrity_checks() def apply_config(self, config, skip_integrity_checks=False, nlp=False): """Apply a warehouse config **Parameters:** * **config** - (*dict*) A dict adhering to the WarehouseConfigSchema * **skip_integrity_checks** - (*bool, optional*) If True, skip warehouse integrity checks * **nlp** - (*bool, optional*) If true, allow NLP analysis when creating fields """ self._create_or_update_datasources( config.get("datasources", {}), skip_integrity_checks=skip_integrity_checks, nlp=nlp, ) if config.get("meta", None): meta = self.meta or {} # The config meta takes precedence over any existing meta settings self.meta = dictmerge(meta, config["meta"], overwrite=True) # NOTE: this goes second in case any formula fields reference fields # defined or created in the datasources. It may make more sense to # only defer population of formula fields. self._populate_global_fields(config, force=True) self._clear_supported_dimension_cache() def run_integrity_checks(self, adhoc_datasources=None): """Run a series of integrity checks on the warehouse and its datasources. This will raise a WarehouseException with all failed checks. **Parameters:** * **adhoc_datasources** - (*list, optional*) A list of FieldManagers to include for this request """ errors = [] if adhoc_datasources: for ds in adhoc_datasources: if ds.name in self.datasource_names: errors.append( "Adhoc DataSource '%s' name conflicts with existing DataSource" % ds.name ) errors.extend( self._check_reserved_field_names(adhoc_datasources=adhoc_datasources) ) errors.extend( self._check_conflicting_fields(adhoc_datasources=adhoc_datasources) ) errors.extend(self._check_fields_have_type(adhoc_datasources=adhoc_datasources)) errors.extend( self._check_primary_key_dimensions(adhoc_datasources=adhoc_datasources) ) errors.extend( self._check_weighting_metrics(adhoc_datasources=adhoc_datasources) ) errors.extend(self._check_required_grain(adhoc_datasources=adhoc_datasources)) errors.extend( self._check_incomplete_dimensions(adhoc_datasources=adhoc_datasources) ) errors.extend( self._check_valid_table_parents(adhoc_datasources=adhoc_datasources) ) if errors: raise WarehouseException("Integrity check(s) failed.\n%s" % pf(errors)) def load_report(self, spec_id, adhoc_datasources=None): """Load a report from a spec ID **Parameters:** * **spec_id** - (*int*) The ID of a report spec * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this request **Returns:** (*Report*) - A report built from this report spec """ raiseifnot( self.id, "The Warehouse must be saved before ReportSpecs can be loaded for the Warehouse", ) return Report.load(self, spec_id, adhoc_datasources=adhoc_datasources) def delete_report(self, spec_id): """Delete a report by spec ID **Parameters:** * **spec_id** - (*int*) The ID of a report spec to delete """ raiseifnot( self.id, "The Warehouse must be saved before ReportSpecs can be deleted for the Warehouse", ) Report.delete(self, spec_id) def save_report(self, meta=None, **kwargs): """Init a Report and save it as a ReportSpec. Note that the Warehouse must be saved before any ReportSpecs can be saved for the Warehouse. **Parameters:** * **meta** - (*object, optional*) A metadata object to be serialized as JSON and stored with the report * ****kwargs** - Passed through to Report **Returns:** (*Report*) - The built report with the spec ID populated """ raiseifnot( self.id, "The Warehouse must be saved before ReportSpecs can be saved for the Warehouse", ) report = Report(self, **kwargs) report.save(meta=meta) return report def save(self, name, config_url, meta=None): """Save the warehouse config and return the ID **Parameters:** * **name** - (*str*) A name to give the Warehouse * **config_url** - (*str*) A URL pointing to a config file that can be used to recreate the warehouse * **meta** - (*object, optional*) A metadata object to be serialized as JSON and stored with the warehouse. This will be merged into existing meta settings if present and take precedence. **Returns:** (*int*) - The ID of the saved Warehouse """ raiseifnot(name, "A unique name must be specified to save a Warehouse") raiseifnot( # TODO: better check for valid URL config_url and isinstance(config_url, str), "A config URL must be specified to save a Warehouse", ) params = dict(ds_priority=self.ds_priority, config=config_url, nlp=self.nlp) self.meta = dictmerge(self.meta or {}, meta or {}, overwrite=True) conn = zillion_engine.connect() try: result = conn.execute( Warehouses.insert(), name=name, params=json.dumps(params), meta=json.dumps(self.meta), ) wh_id = result.inserted_primary_key[0] raiseifnot(wh_id, "No warehouse ID found") finally: conn.close() self.id = wh_id self.name = name return wh_id def execute( self, metrics=None, dimensions=None, criteria=None, row_filters=None, rollup=None, pivot=None, order_by=None, limit=None, limit_first=False, adhoc_datasources=None, allow_partial=False, disabled_tables=None, ): """Build and execute a Report **Returns:** (*ReportResult*) - The result of the report """ start = time.time() report = Report( self, metrics=metrics, dimensions=dimensions, criteria=criteria, row_filters=row_filters, rollup=rollup, pivot=pivot, order_by=order_by, limit=limit, limit_first=limit_first, adhoc_datasources=adhoc_datasources, allow_partial=allow_partial, disabled_tables=disabled_tables, ) result = report.execute() dbg("warehouse report took %.3fs" % (time.time() - start)) return result def execute_id(self, spec_id, adhoc_datasources=None): """Build and execute a report from a spec ID **Parameters:** * **spec_id** - (*int*) The ID of a report spec * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this request **Returns:** (*ReportResult*) - The result of the report """ start = time.time() report = self.load_report(spec_id, adhoc_datasources=adhoc_datasources) result = report.execute() dbg("warehouse report took %.3fs" % (time.time() - start)) return result def execute_text(self, text, adhoc_datasources=None, allow_partial=False): """Build and execute a report from a natural language query. Requires the nlp extension to be installed. **Parameters:** * **text** - (*str*) A natural language query * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this request * **allow_partial** - (*bool, optional*) If True, allow partial **Returns:** (*ReportResult*) - The result of the report """ if not nlp_installed: raise WarehouseException("nlp extension is not installed") if not self._get_embeddings_collection_name(): info("Initializing Warehouse embeddings") self.init_embeddings() start = time.time() report = Report.from_text( self, text, adhoc_datasources=adhoc_datasources, allow_partial=allow_partial ) result = report.execute() dbg("warehouse report took %.3fs" % (time.time() - start)) return result def get_metric_table_set( self, metric, grain, dimension_grain, adhoc_datasources=None, disabled_tables=None, ): """Get a TableSet that can satisfy a metric at a given grain **Parameters:** * **metric** - (*str*) A metric name * **grain** - (*list*) A list of dimension names representing the full grain required including dimension and criteria grain * **dimension_grain** - (*list of str*) A list of dimension names representing the requested dimensions for report grouping * **adhoc_datasources** - (*list, optional*) A list of FieldManagers for this request * **disabled_tables** - (*list, optional*) A list of table names to disable for this request. **Returns:** (*TableSet*) - A TableSet that can satisfy this request """ dbg("metric:%s grain:%s" % (metric, grain)) ds_metric_tables = self._get_ds_tables_with_metric( metric, adhoc_datasources=adhoc_datasources, disabled_tables=disabled_tables ) ds_table_sets = self._get_ds_table_sets( ds_metric_tables, metric, grain, dimension_grain, adhoc_datasources=adhoc_datasources, ) if not ds_table_sets: msg = self._generate_unsupported_grain_msg( grain, metric, adhoc_datasources=adhoc_datasources, disabled_tables=disabled_tables, ) raise UnsupportedGrainException(msg) table_set = self._choose_best_table_set(ds_table_sets) return table_set def get_dimension_table_set( self, grain, dimension_grain, adhoc_datasources=None, disabled_tables=None ): """Get a TableSet that can satisfy dimension table joins across this grain **Parameters:** * **grain** - (*list*) A list of dimension names representing the full grain required including dimension and criteria grain * **dimension_grain** - (*list of str*) A list of dimension names representing the requested dimensions for report grouping * **adhoc_datasources** - (*list, optional*) A list of FieldManagers for this request * **disabled_tables** - (*list, optional*) A list of table names to disable for this request. **Returns:** (*TableSet*) - A TableSet that can satisfy this request """ dbg("grain:%s" % grain) table_set = None for dim_name in grain: ds_dim_tables = self._get_ds_dim_tables_with_dim( dim_name, adhoc_datasources=adhoc_datasources, disabled_tables=disabled_tables, ) ds_table_sets = self._get_ds_table_sets( ds_dim_tables, dim_name, grain, dimension_grain, adhoc_datasources=adhoc_datasources, ) if not ds_table_sets: continue table_set = self._choose_best_table_set(ds_table_sets) break if not table_set: raise UnsupportedGrainException( "No dimension table set found to meet grain: %s" % grain ) return table_set def init_embeddings(self, force_recreate=False): """Initialize the warehouse embeddings collection. This is necessary to use natural language query to report features. **Parameters:** * **force_recreate** - (*bool, optional*) If True, force the embeddings collection to be recreated from scratch. """ collection_name = init_warehouse_embeddings(self, force_recreate=force_recreate) self._set_embeddings_collection_name(collection_name) def _get_embeddings_collection_name(self): """Get the name of the embeddings collection for this warehouse""" return (self.meta or {}).get("nlp", {}).get("collection_name", None) def _set_embeddings_collection_name(self, name): """Set the name of the embeddings collection for this warehouse""" self.meta = self.meta or {} self.meta.setdefault("nlp", {})["collection_name"] = name def _create_or_update_datasources( self, ds_configs, skip_integrity_checks=False, nlp=False ): """Given a set of datasource configs, create or update the datasources on this warehouse. If a datasource exists already it will be updated by applying the datasource config. Otherwise this attempts to create a datasource from the config. **Parameters:** * **ds_configs** - (*dict*) A dict mapping datasource names to datasource configs * **skip_integrity_checks** - (*bool, optional*) If True, skip warehouse integrity checks * **nlp** - (*bool, optional*) If true, allow NLP analysis when creating fields """ for ds_name in ds_configs: if ds_name in self.datasource_names: self.get_datasource(ds_name).apply_config(ds_configs[ds_name]) continue ds = DataSource(ds_name, config=ds_configs[ds_name], nlp=nlp) self.add_datasource(ds, skip_integrity_checks=skip_integrity_checks) def _clear_supported_dimension_cache(self): """Clear the cache of supported dimensions""" self._supported_dimension_cache = {} def _check_reserved_field_names(self, adhoc_datasources=None): """Integrity check against reserved field names""" errors = [] for field in self.get_field_names(adhoc_fms=adhoc_datasources): if field in RESERVED_FIELD_NAMES: errors.append("Field name %s is reserved" % field) return errors def _check_conflicting_fields(self, adhoc_datasources=None): """Integrity check for conflicting field definitions""" errors = [] for field in self.get_field_names(adhoc_fms=adhoc_datasources): if self.has_metric( field, adhoc_fms=adhoc_datasources ) and self.has_dimension(field, adhoc_fms=adhoc_datasources): errors.append("Field %s is in both metrics and dimensions" % field) instances = self.get_field_instances(field, adhoc_fms=adhoc_datasources) field_type_mismatch = False data_type_mismatch = False aggregation_mismatch = False field_type = None field_aggr = None field_is_numeric = None for fm, field_def in instances.items(): if not field_type: field_type = field_def.field_type field_is_numeric = is_numeric_type(field_def.sa_type) field_aggr = getattr(field_def, "aggregation", None) continue if field_def.field_type != field_type: field_type_mismatch = True if is_numeric_type(field_def.sa_type) != field_is_numeric: data_type_mismatch = True if field_def.field_type == FieldTypes.METRIC: if field_def.aggregation != field_aggr: aggregation_mismatch = True if field_type_mismatch: errors.append("Field %s is in both metrics and dimensions" % field) if data_type_mismatch: errors.append("Field %s has data type mismatches" % field) if aggregation_mismatch: errors.append("Field %s has aggregation mismatches" % field) return errors def _check_fields_have_type(self, adhoc_datasources=None): """Integrity check for field types""" errors = [] for ds in self.get_field_managers(adhoc_fms=adhoc_datasources): for table in ds.metadata.tables.values(): if not is_active(table): continue for column in table.c: if not is_active(column): continue for field in column.zillion.get_field_names(): if not ( self.has_metric(field, adhoc_fms=adhoc_datasources) or self.has_dimension(field, adhoc_fms=adhoc_datasources) ): errors.append( "Field %s for column %s->%s is not defined as a metric or dimension" % (field, ds.name, column_fullname(column)) ) return errors def _check_primary_key_dimensions(self, adhoc_datasources=None): """Integrity check for primary keys""" errors = [] for ds in self.get_field_managers(adhoc_fms=adhoc_datasources): for table in ds.metadata.tables.values(): if not is_active(table): continue primary_key = table.zillion.primary_key table_dims = get_table_dimensions( self, table, adhoc_fms=adhoc_datasources ) for pk_field in primary_key: if not self.has_dimension(pk_field): errors.append( "Primary key field is not a dimension: %s" % pk_field ) if pk_field not in table_dims: errors.append( "Primary key dimension %s is not in table %s" % (pk_field, table.fullname) ) return errors def _check_weighting_metrics(self, adhoc_datasources=None): """Integrity check for weighting metrics""" errors = [] for metric in self.get_metrics(adhoc_fms=adhoc_datasources).values(): if not metric.weighting_metric: continue for ds in self.get_field_managers(adhoc_fms=adhoc_datasources): tables = ds.get_tables_with_field(metric.name) if not tables: continue for table in tables: if metric.weighting_metric not in get_table_fields(table): errors.append( "Table %s->%s has metric %s but not weighting metric %s" % ( ds.name, table.fullname, metric.name, metric.weighting_metric, ) ) return errors def _check_required_grain(self, adhoc_datasources=None): """Integrity check for required_grain settings""" errors = [] for metric in self.get_metrics(adhoc_fms=adhoc_datasources).values(): if not metric.required_grain: continue for field in metric.required_grain: if not self.has_dimension(field, adhoc_fms=adhoc_datasources): errors.append( "Metric %s references unknown dimension %s in required_grain" % (metric.name, field) ) for ds in self.get_field_managers(adhoc_fms=adhoc_datasources): for table in ds.metadata.tables.values(): if not is_active(table): continue for column in table.c: if not is_active(column): continue if not column.zillion.required_grain: continue for field in column.zillion.required_grain: if not self.has_dimension(field, adhoc_fms=adhoc_datasources): errors.append( "Column %s->%s references unknown dimension %s in required_grain" % (ds.name, column_fullname(column), field) ) return errors def _check_incomplete_dimensions(self, adhoc_datasources=None): """Integrity check for incomplete_dimensions settings""" errors = [] for ds in self.get_field_managers(adhoc_fms=adhoc_datasources): for table in ds.metadata.tables.values(): if not is_active(table): continue if not table.zillion.incomplete_dimensions: continue for field in table.zillion.incomplete_dimensions: if not self.has_dimension(field, adhoc_fms=adhoc_datasources): errors.append( "Table %s->%s references unknown dimension %s in incomplete_dimensions" % (ds.name, table.fullname, field) ) return errors def _check_valid_table_parents(self, adhoc_datasources=None): """Integrity check for table parents""" errors = [] for ds in self.get_field_managers(adhoc_fms=adhoc_datasources): for table in ds.metadata.tables.values(): if not is_active(table): continue if not table.zillion.parent: continue if not ds.has_table(table.zillion.parent, check_active=False): errors.append( "Table %s->%s references unknown parent %s" % (ds.name, table.fullname, table.zillion.parent) ) parent = ds.get_table(table.zillion.parent, check_active=False) if table.zillion.type != parent.zillion.type: errors.append( "Table %s->%s references parent %s with different table type" % (ds.name, table.fullname, table.zillion.parent) ) return errors def _get_supported_dimensions_for_metric( self, metric, use_cache=True, adhoc_datasources=None, disabled_tables=None ): """Get a set of all supported dimensions for a metric **Parameters:** * **metric** - (*str or Metric*) A metric name or Metric object * **use_cache** - (*bool, optional*) If True, try to pull the result from the supported dimension cache * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this request * **disabled_tables** - (*list, optional*) A list of table names to disable for this request. Using this causes supported dimension cache logic to be ignored. **Returns:** (*set*) - A set of dims supported by this metric """ dims = set() metric = self.get_metric(metric, adhoc_fms=adhoc_datasources) if ( (not disabled_tables) and use_cache and metric.name in self._supported_dimension_cache ): return self._supported_dimension_cache[metric] for ds in self.datasources: ds_tables = ds.get_tables_with_field(metric.name) used_tables = set() for ds_table in ds_tables: if disabled_tables: if ds_table.fullname in disabled_tables: continue if ds_table.fullname not in used_tables: dims |= get_table_dimensions( self, ds_table, adhoc_fms=adhoc_datasources ) used_tables.add(ds_table.fullname) desc_tables = ds.find_descendent_tables(ds_table) for desc_table in desc_tables: if desc_table not in used_tables: dims |= get_table_dimensions( self, ds.get_table(desc_table), adhoc_fms=adhoc_datasources ) used_tables.add(desc_table) if not disabled_tables: self._supported_dimension_cache[metric] = dims return dims def _get_supported_dimensions( self, metrics, adhoc_datasources=None, disabled_tables=None ): """Get all of the supported dimensions shared among these metrics **Parameters:** * **metrics** - (*list*) A list of metric names or Metric objects * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this request * **disabled_tables** - (*list, optional*) A list of table names to disable for this request. Using this causes supported dimension cache logic to be ignored. **Returns:** (*set*) - A set of dims supported by all of these metrics """ dims = set() for metric in metrics: supported_dims = self._get_supported_dimensions_for_metric( metric, adhoc_datasources=adhoc_datasources, disabled_tables=disabled_tables, ) dims = (dims & supported_dims) if len(dims) > 0 else supported_dims return dims def _get_ds_tables_with_metric( self, metric, adhoc_datasources=None, disabled_tables=None ): """Get a list of tables in each datasource that provide this metric **Parameters:** * **metric** - (*str*) The name of a metric * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this request **Returns:** (*dict*) - A dict mapping datasource names to a list of tables supporting this metric """ ds_tables = defaultdict(list) count = 0 for ds in self.get_field_managers(adhoc_fms=adhoc_datasources): tables = ds.get_tables_with_field(metric) if not tables: continue if disabled_tables: tables = [t for t in tables if t.fullname not in disabled_tables] if not tables: continue ds_tables[ds.name] = tables count += 1 dbg( "found %d datasources, %d columns for metric %s" % (len(ds_tables), count, metric) ) return ds_tables def _get_ds_dim_tables_with_dim( self, dim, adhoc_datasources=None, disabled_tables=None ): """Get a list of tables in each datasource that provide this dimension **Parameters:** * **dim** - (*str*) The name of a dimension * **adhoc_datasources** - (*list, optional*) A list of FieldManagers specific to this request * **disabled_tables** - (*list, optional*) A list of table names to disable for this request. **Returns:** (*dict*) - A dict mapping datasource names to a list of tables supporting this dimension """ ds_tables = defaultdict(list) count = 0 for ds in self.get_field_managers(adhoc_fms=adhoc_datasources): tables = ds.get_dim_tables_with_dim(dim) if not tables: continue if disabled_tables: tables = [t for t in tables if t.fullname not in disabled_tables] ds_tables[ds.name] = tables count += 1 dbg( "found %d datasources, %d columns for dim %s" % (len(ds_tables), count, dim) ) return ds_tables def _get_ds_table_sets( self, ds_tables, field, grain, dimension_grain, adhoc_datasources=None ): """Get a list of TableSets that can satisfy the grain in each datasource **Parameters:** * **ds_tables** - (*dict*) A mapping of datasource names to tables containing the field * **field** - (*str*) A field name that is contained in the datasource tables * **grain** - (*list*) A list of dimension names representing the full grain required including dimension and criteria grain * **dimension_grain** - (*list of str*) A list of dimension names representing the requested dimensions for report grouping * **adhoc_datasources** - (*list, optional*) A list of FieldManagers for this request **Returns:** (*dict*) - A dict mapping datasource names to possible TableSets that satisfy the field/grain requirements """ ds_table_sets = {} for ds_name, ds_tables_with_field in ds_tables.items(): ds = self.get_datasource(ds_name, adhoc_datasources=adhoc_datasources) possible_table_sets = ds.find_possible_table_sets( ds_tables_with_field, field, grain, dimension_grain ) if not possible_table_sets: continue ds_table_sets[ds_name] = possible_table_sets dbg(ds_table_sets) return ds_table_sets def _choose_best_datasource(self, ds_names): """Choose the best datasource to use. Currently this will used the ds_priority attribute to make the decision. If that is not defined it will just take the first datasource in the list. There is room for improvement by taking into account expected query performance. **Parameters:** * **ds_names** - (*list*) A list of datasource names **Returns:** (*str*) - The name of the best datasource to use """ if self.ds_priority: for ds_name in self.ds_priority: if ds_name in ds_names: return ds_name dbg("No datasource priorities established, choosing first option") raiseifnot(ds_names, "No datasource names provided") return ds_names[0] def _choose_best_table_set(self, ds_table_sets): """Choose the best TableSet to use among possible options. This will first choose the best datasource among the available options, and then the best TableSet within that. Currently the best TableSet is chosen simply as the one with the fewest number of tables in its join. **Parameters:** * **ds_table_sets** - (*dict*) A dict mapping datasource names to lists of possible TableSets **Returns:** (*TableSet*) - The best available TableSet """ ds_name = self._choose_best_datasource(list(ds_table_sets.keys())) table_sets = ds_table_sets[ds_name] best_priority = None table_sets_by_priority = defaultdict(list) for ts in table_sets: priority = ts.ds_table.zillion.priority raiseif( priority is None, f"Expected priority on table {ts.ds_table.fullname}" ) table_sets_by_priority[priority].append(ts) if best_priority is None: best_priority = priority else: best_priority = min(priority, best_priority) dbg(f"Best table set priority = {best_priority}") top_table_sets = table_sets_by_priority[best_priority] if len(top_table_sets) > 1: # TODO: table set priorities based on expected query performance dbg("Picking smallest of %d top table sets" % len(top_table_sets)) return sorted(top_table_sets, key=len)[0] def _generate_unsupported_grain_msg( self, grain, metric, adhoc_datasources=None, disabled_tables=None ): """Generate a messaged that aims to help pinpoint why a metric can not meet a specific grain **Parameters:** * **grain** - (*list*) A list of dimensions * **metric** - (*str*) A metric name * **adhoc_datasources** - (*list, optional*) A list of FieldManagers for this report * **disabled_tables** - (*list, optional*) A list of table names to disable for this request. **Returns:** (*str*) - A message explaining the unsupported grain issue """ grain = grain or set() supported = self._get_supported_dimensions_for_metric( metric, adhoc_datasources=adhoc_datasources, disabled_tables=disabled_tables ) unsupported = grain - supported if unsupported: msg = ( "metric %s can not meet grain %s due to unsupported dimensions: %s" % (metric, grain, unsupported) ) else: msg = "metric %s can not meet grain %s in any single datasource" % ( metric, grain, ) return msg @classmethod def load(cls, id): """Load a Warehouse from a Warehouse ID **Parameters:** * **id** - (*int*) A Warehouse ID **Returns:** (*Warehouse*) - A Warehouse object """ wh = cls._load_warehouse(id) if not wh: raise InvalidWarehouseIdException( "Could not find Warehouse for id: %s" % id ) params = json.loads(wh["params"]) meta = json.loads(wh["meta"]) if wh["meta"] else None result = Warehouse(**params) result.meta = meta result.name = wh.name result.id = id return result @classmethod def load_warehouse_for_report(cls, spec_id): """Load the warehouse corresponding to the ReportSpec **Parameters:** * **spec_id** - (*int*) A ReportSpec ID **Returns:** (*Warehouse*) - A Warehouse object """ wh_id = Report.load_warehouse_id_for_report(spec_id) raiseifnot(wh_id, "No warehouse ID found for spec ID %s" % spec_id) return cls.load(wh_id) @classmethod def load_report_and_warehouse(cls, spec_id): """Load a Report and Warehouse from a ReportSpec. The Warehouse will be populated on the returned Report object. **Parameters:** * **spec_id** - (*int*) A ReportSpec ID **Returns:** (*Report*) - A Report built from this report spec """ wh = cls.load_warehouse_for_report(spec_id) return wh.load_report(spec_id) @classmethod def delete(cls, id): """Delete a saved warehouse. Note that this does not delete any report specs that reference this warehouse ID. **Parameters:** * **id** - (*int*) The ID of a Warehouse to delete """ s = Warehouses.delete().where(Warehouses.c.id == id) conn = zillion_engine.connect() try: conn.execute(s) finally: conn.close() @classmethod def _load_warehouse(cls, id): """Get a Warehouse row from a Warehouse ID **Parameters:** * **id** - (*int*) The ID of the Warehouse to load **Returns:** (*dict*) - A Warehouse row """ s = sa.select(Warehouses.c).where(Warehouses.c.id == id) conn = zillion_engine.connect() try: result = conn.execute(s) row = result.fetchone() return row finally: conn.close() @classmethod def from_db_file(cls, *args, **kwargs): """Pass args through to DataSource.from_db_file and create a Warehouse""" ds = DataSource.from_db_file(*args, **kwargs) return cls(datasources=[ds]) @classmethod def from_data_file(cls, *args, **kwargs): """Pass args through to DataSource.from_data_file and create a Warehouse""" ds = DataSource.from_data_file(*args, **kwargs) return cls(datasources=[ds])