Commit 806e5f5
authored
SEA: Decouple Link Fetching (#632)
* test getting the list of allowed configurations
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce diff
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce diff
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* house constants in enums for readability and immutability
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add note on hybrid disposition
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* [squashed from cloudfetch-sea] introduce external links + arrow functionality
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce responsibility of Queue
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce repetition in arrow tablee creation
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce redundant code in CloudFetchQueue
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* move chunk link progression to separate func
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove redundant log
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* improve logging
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove reliance on schema_bytes in SEA
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove redundant note on arrow_schema_bytes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* use more fetch methods
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove redundant schema_bytes from parent constructor
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* only call get_chunk_link with non null chunk index
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* align SeaResultSet structure with ThriftResultSet
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remvoe _fill_result_buffer from SeaResultSet
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce code repetition
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* align SeaResultSet with ext-links-sea
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove redundant methods
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* update unit tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove accidental venv changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* pre-fetch next chunk link on processing current
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce nesting
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* line break after multi line pydoc
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* re-introduce schema_bytes for better abstraction (likely temporary)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add fetchmany_arrow and fetchall_arrow
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove accidental changes in sea backend tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove irrelevant changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary test changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary changes in thrift backend tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unimplemented methods test
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unimplemented method tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* modify example scripts to include fetch calls
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add GetChunksResponse
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove changes to sea test
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* re-introduce accidentally removed description extraction method
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* fix type errors (ssl_options, CHUNK_PATH_WITH_ID..., etc.)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* access ssl_options through connection
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* DEBUG level
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove explicit multi chunk test
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* move cloud fetch queues back into utils.py
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove excess docstrings
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* move ThriftCloudFetchQueue above SeaCloudFetchQueue
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* fix sea connector tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* correct patch module path in cloud fetch queue tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unimplemented methods test
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* correct add_link docstring
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove invalid import
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* better align queries with JDBC impl
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* line breaks after multi-line PRs
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unused imports
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* fix: introduce ExecuteResponse import
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unimplemented metadata methods test, un-necessary imports
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* introduce unit tests for metadata methods
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove verbosity in ResultSetFilter docstring
Co-authored-by: jayant <167047871+jayantsing-db@users.noreply.github.com>
* remove un-necessary info in ResultSetFilter docstring
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove explicit type checking, string literals around forward annotations
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* house SQL commands in constants
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* convert complex types to string if not _use_arrow_native_complex_types
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* introduce unit tests for altered functionality
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* Revert "Merge branch 'fetch-json-inline' into ext-links-sea"
This reverts commit dabba55, reversing
changes made to dd7dc6a.
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce verbosity of ResultSetFilter docstring
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unused imports
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* Revert "Merge branch 'fetch-json-inline' into ext-links-sea"
This reverts commit 3a999c0, reversing
changes made to a1f9b9c.
* Revert "reduce verbosity of ResultSetFilter docstring"
This reverts commit a1f9b9c.
* Reapply "Merge branch 'fetch-json-inline' into ext-links-sea"
This reverts commit 48ad7b3.
* Revert "Merge branch 'fetch-json-inline' into ext-links-sea"
This reverts commit dabba55, reversing
changes made to dd7dc6a.
* remove un-necessary filters changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary backend changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove constants changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove changes in filters tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unit test backend and JSON queue changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove changes in sea result set testing
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* Revert "remove changes in sea result set testing"
This reverts commit d210ccd.
* Revert "remove unit test backend and JSON queue changes"
This reverts commit f6c5950.
* Revert "remove changes in filters tests"
This reverts commit f3f795a.
* Revert "remove constants changes"
This reverts commit 802d045.
* Revert "remove un-necessary backend changes"
This reverts commit 20822e4.
* Revert "remove un-necessary filters changes"
This reverts commit 5e75fb5.
* remove unused imports
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* working version
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* adopy _wait_until_command_done
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* introduce metadata commands
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* use new backend structure
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* constrain backend diff
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove changes to filters
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* make _parse methods in models internal
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce changes in unit tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* run small queries with SEA during integration tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* run some tests for sea
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* allow empty schema bytes for alignment with SEA
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* pass is_vl_op to Sea backend ExecuteResponse
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove catalog requirement in get_tables
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* move filters.py to SEA utils
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* ensure SeaResultSet
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* prevent circular imports
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unused imports
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove cast, throw error if not SeaResultSet
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* pass param as TSparkParameterValue
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove failing test (temp)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove SeaResultSet type assertion
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* change errors to align with spec, instead of arbitrary ValueError
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* make SEA backend methods return SeaResultSet
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* use spec-aligned Exceptions in SEA backend
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove defensive row type check
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* raise ProgrammingError for invalid id
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* make is_volume_operation strict bool
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove complex types code
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* Revert "remove complex types code"
This reverts commit 138359d.
* introduce type conversion for primitive types for JSON + INLINE
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove SEA running on metadata queries (known failures
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary docstrings
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* align expected types with databricks sdk
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* link rest api reference to validate types
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove test_catalogs_returns_arrow_table test
metadata commands not expected to pass
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* fix fetchall_arrow and fetchmany_arrow
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove thrift aligned test_cancel_during_execute from SEA tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary changes in example scripts
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary chagnes in example scripts
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* _convert_json_table -> _create_json_table
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove accidentally removed test
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove new unit tests (to be re-added based on new arch)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove changes in sea_result_set functionality (to be re-added)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* introduce more integration tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove SEA tests in parameterized queries
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove partial parameter fix changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary timestamp tests
(pass with minor disparity)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* slightly stronger typing of _convert_json_types
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* stronger typing of json utility func s
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* stronger typing of fetch*_json
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unused helper methods in SqlType
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* line breaks after multi line pydocs, remove excess logs
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* line breaks after multi line pydocs, reduce diff of redundant changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce diff of redundant changes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* mandate ResultData in SeaResultSet constructor
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove complex type conversion
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* correct fetch*_arrow
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* recover old sea tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* move queue and result set into SEA specific dir
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* pass ssl_options into CloudFetchQueue
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce diff
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove redundant conversion.py
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* fix type issues
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* ValueError not ProgrammingError
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* reduce diff
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* introduce SEA cloudfetch e2e tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* allow empty cloudfetch result
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add unit tests for CloudFetchQueue and SeaResultSet
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* skip pyarrow dependent tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* simplify download process: no pre-fetching
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* correct class name in logs
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* align with old impl
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* align next_n_rows with prev imple
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* align remaining_rows with prev impl
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary Optional params
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary changes in thrift field if tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove unused imports
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* init hybrid
* run large queries
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* hybrid disposition
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-ncessary log
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* formatting (black)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove redundant tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* multi frame decompression of lz4
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* ensure no compression (temp)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* introduce separate link fetcher
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* log time to create table
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add chunk index to table creation time log
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove custom multi-frame decompressor for lz4
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove excess logs
* remove redundant tests (temp)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add link to download manager before notifying consumer
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* move link fetching immediately before table creation so link expiry is not an issue
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* resolve merge artifacts
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove redundant methods
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* formatting (black)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* introduce callback to handle link expiry
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* fix types
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* fix param type in unit tests
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* formatting + minor type fixes
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* Revert "introduce callback to handle link expiry"
This reverts commit bd51b1c.
* remove unused callback (to be introduced later)
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* correct param extraction
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove common constructor for databricks client abc
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* make SEA Http Client instance a private member
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* make GetChunksResponse model more robust
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add link to doc of GetChunk response model
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* pass result_data instead of "initial links" into SeaCloudFetchQueue
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* move download_manager init into parent CloudFetchQueue
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* raise ServerOperationError for no 0th chunk
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* unused iports
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* return None in case of empty respose
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* ensure table is empty on no initial link s
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* account for total chunk count
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* iterate by chunk index instead of link
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* make LinkFetcher convert link static
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add helper for link addition, check for edge case to prevent inf wait
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* add unit tests for LinkFetcher
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary download manager check
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove un-necessary string literals around param type
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* remove duplicate download_manager init
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* account for empty response in LinkFetcher init
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* make get_chunk_link return mandatory ExternalLink
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* set shutdown_event instead of breaking on completion so get_chunk_link is informed
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* docstrings, logging, pydoc
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* use total_chunk_cound > 0
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* clarify that link has already been submitted on getting row_offset
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* return None for out of range
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
* default link_fetcher to None
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
---------
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>1 parent 8fbca9d commit 806e5f5
File tree
2 files changed
+371
-89
lines changed- src/databricks/sql/backend/sea
- tests/unit
2 files changed
+371
-89
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
121 | 122 | | |
122 | 123 | | |
123 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
124 | 298 | | |
125 | 299 | | |
126 | 300 | | |
| |||
158 | 332 | | |
159 | 333 | | |
160 | 334 | | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | 335 | | |
166 | 336 | | |
167 | 337 | | |
168 | 338 | | |
169 | 339 | | |
170 | 340 | | |
171 | 341 | | |
172 | | - | |
173 | 342 | | |
174 | 343 | | |
175 | 344 | | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | 345 | | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
185 | 356 | | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
| 357 | + | |
| 358 | + | |
198 | 359 | | |
199 | | - | |
200 | | - | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
201 | 363 | | |
202 | 364 | | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
225 | 368 | | |
226 | | - | |
| 369 | + | |
| 370 | + | |
227 | 371 | | |
228 | 372 | | |
| 373 | + | |
| 374 | + | |
229 | 375 | | |
230 | 376 | | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
0 commit comments